No Description

index.js.map 3.0MB

1
  1. {"version":3,"file":"index.js","sources":["../../node_modules/object-assign/index.js","../../node_modules/draft-js/node_modules/immutable/dist/immutable.js","../../node_modules/draft-js/lib/BlockMapBuilder.js","../../node_modules/draft-js/lib/CharacterMetadata.js","../../node_modules/draft-js/lib/findRangesImmutable.js","../../node_modules/draft-js/lib/ContentBlock.js","../../node_modules/draft-js/lib/ContentBlockNode.js","../../node_modules/draft-js/lib/DraftFeatureFlags-core.js","../../node_modules/draft-js/lib/DraftFeatureFlags.js","../../node_modules/draft-js/lib/ContentStateInlineStyle.js","../../node_modules/draft-js/lib/applyEntityToContentBlock.js","../../node_modules/draft-js/lib/applyEntityToContentState.js","../../node_modules/draft-js/lib/DraftEntitySegments.js","../../node_modules/fbjs/lib/invariant.js","../../node_modules/draft-js/lib/getRangesForDraftEntity.js","../../node_modules/draft-js/lib/getCharacterRemovalRange.js","../../node_modules/draft-js/lib/generateRandomKey.js","../../node_modules/draft-js/lib/randomizeBlockMapKeys.js","../../node_modules/draft-js/lib/removeEntitiesAtEdges.js","../../node_modules/draft-js/lib/getContentStateFragment.js","../../node_modules/draft-js/lib/insertIntoList.js","../../node_modules/draft-js/lib/insertFragmentIntoContentState.js","../../node_modules/draft-js/lib/insertTextIntoContentState.js","../../node_modules/draft-js/lib/modifyBlockForContentState.js","../../node_modules/draft-js/lib/getNextDelimiterBlockKey.js","../../node_modules/draft-js/lib/removeRangeFromContentState.js","../../node_modules/draft-js/lib/splitBlockInContentState.js","../../node_modules/draft-js/lib/DraftModifier.js","../../node_modules/fbjs/lib/emptyFunction.js","../../node_modules/draft-js/lib/BlockTree.js","../../node_modules/draft-js/lib/DraftEntityInstance.js","../../node_modules/draft-js/lib/DraftEntity.js","../../node_modules/draft-js/lib/SelectionState.js","../../node_modules/draft-js/lib/sanitizeDraftText.js","../../node_modules/draft-js/lib/ContentState.js","../../node_modules/fbjs/lib/UnicodeBidiDirection.js","../../node_modules/fbjs/lib/UnicodeBidi.js","../../node_modules/fbjs/lib/UnicodeBidiService.js","../../node_modules/fbjs/lib/nullthrows.js","../../node_modules/draft-js/lib/EditorBidiService.js","../../node_modules/draft-js/lib/EditorState.js","../../node_modules/draft-js/lib/moveBlockInContentState.js","../../node_modules/draft-js/lib/AtomicBlockUtils.js","../../node_modules/draft-js/lib/CompositeDraftDecorator.js","../../node_modules/fbjs/lib/cx.js","../../node_modules/draft-js/lib/DefaultDraftBlockRenderMap.js","../../node_modules/draft-js/lib/DefaultDraftInlineStyle.js","../../node_modules/fbjs/lib/Keys.js","../../node_modules/draft-js/lib/getEntityKeyForSelection.js","../../node_modules/draft-js/lib/isEventHandled.js","../../node_modules/draft-js/lib/isSelectionAtLeafStart.js","../../node_modules/draft-js/lib/DraftEditorCompositionHandler.js","../../node_modules/ua-parser-js/src/ua-parser.js","../../node_modules/fbjs/lib/UserAgentData.js","../../node_modules/fbjs/lib/VersionRange.js","../../node_modules/fbjs/lib/mapObject.js","../../node_modules/fbjs/lib/memoizeStringOnly.js","../../node_modules/fbjs/lib/UserAgent.js","../../node_modules/draft-js/lib/DraftEditorTextNode.react.js","../../node_modules/draft-js/lib/DraftJsDebugLogging.js","../../node_modules/fbjs/lib/isNode.js","../../node_modules/fbjs/lib/isTextNode.js","../../node_modules/fbjs/lib/containsNode.js","../../node_modules/fbjs/lib/getActiveElement.js","../../node_modules/draft-js/lib/setDraftEditorSelection.js","../../node_modules/draft-js/lib/DraftEditorLeaf.react.js","../../node_modules/draft-js/lib/DraftOffsetKey.js","../../node_modules/fbjs/lib/Scroll.js","../../node_modules/fbjs/lib/camelize.js","../../node_modules/fbjs/lib/hyphenate.js","../../node_modules/fbjs/lib/getStyleProperty.js","../../node_modules/fbjs/lib/Style.js","../../node_modules/fbjs/lib/getElementRect.js","../../node_modules/fbjs/lib/getElementPosition.js","../../node_modules/fbjs/lib/getDocumentScrollElement.js","../../node_modules/fbjs/lib/getUnboundedScrollPosition.js","../../node_modules/fbjs/lib/getScrollPosition.js","../../node_modules/fbjs/lib/getViewportDimensions.js","../../node_modules/draft-js/lib/DraftEditorBlock.react.js","../../node_modules/fbjs/lib/joinClasses.js","../../node_modules/draft-js/lib/DraftEditorContents-core.react.js","../../node_modules/draft-js/lib/DraftEditorContents.react.js","../../node_modules/fbjs/lib/PhotosMimeType.js","../../node_modules/fbjs/lib/createArrayFromMixed.js","../../node_modules/fbjs/lib/DataTransfer.js","../../node_modules/draft-js/lib/getSelectionOffsetKeyForNode.js","../../node_modules/draft-js/lib/findAncestorOffsetKey.js","../../node_modules/draft-js/lib/getTextContentFromFiles.js","../../node_modules/draft-js/lib/getUpdatedSelectionState.js","../../node_modules/draft-js/lib/DraftEditorDragHandler.js","../../node_modules/setimmediate/setImmediate.js","../../node_modules/fbjs/lib/setImmediate.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/getFragmentFromSelection.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/KeyBindingUtil.js","../../node_modules/draft-js/lib/SecondaryClipboard.js","../../node_modules/fbjs/lib/UnicodeUtils.js","../../node_modules/draft-js/lib/getRangeClientRects.js","../../node_modules/draft-js/lib/expandRangeToStartOfLine.js","../../node_modules/draft-js/lib/getDraftEditorSelectionWithNodes.js","../../node_modules/draft-js/lib/moveSelectionBackward.js","../../node_modules/draft-js/lib/removeTextWithStrategy.js","../../node_modules/draft-js/lib/keyCommandBackspaceToStartOfLine.js","../../node_modules/fbjs/lib/TokenizeUtil.js","../../node_modules/draft-js/lib/DraftRemovableWord.js","../../node_modules/draft-js/lib/keyCommandBackspaceWord.js","../../node_modules/draft-js/lib/moveSelectionForward.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/editOnKeyDown.js","../../node_modules/fbjs/lib/URI.js","../../node_modules/draft-js/lib/getSafeBodyFromHTML.js","../../node_modules/draft-js/lib/convertFromHTMLToContentBlocks.js","../../node_modules/draft-js/lib/DraftPasteProcessor.js","../../node_modules/draft-js/lib/adjustBlockDepthForContentState.js","../../node_modules/draft-js/lib/RichTextEditorUtil.js","../../node_modules/draft-js/lib/splitTextIntoTextBlocks.js","../../node_modules/draft-js/lib/editOnPaste.js","../../node_modules/draft-js/lib/getDraftEditorSelection.js","../../node_modules/draft-js/lib/editOnSelect.js","../../node_modules/draft-js/lib/DraftEditorEditHandler.js","../../node_modules/draft-js/lib/DraftEditorPlaceholder.react.js","../../node_modules/draft-js/lib/getDefaultKeyBinding.js","../../node_modules/draft-js/lib/DraftEditor.react.js","../../node_modules/draft-js/lib/DraftStringKey.js","../../node_modules/draft-js/lib/encodeEntityRanges.js","../../node_modules/draft-js/lib/encodeInlineStyleRanges.js","../../node_modules/draft-js/lib/convertFromDraftStateToRaw.js","../../node_modules/draft-js/lib/DraftTreeAdapter.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/convertFromRawToDraftState.js","../../node_modules/draft-js/lib/getRangeBoundingClientRect.js","../../node_modules/draft-js/lib/getVisibleSelectionRect.js","../../node_modules/draft-js/lib/Draft.js","../../node_modules/immutable/dist/immutable.js","../../node_modules/draftjs-utils/lib/draftjs-utils.js","../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../node_modules/invariant/browser.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/draft-convert/lib/util/updateMutation.js","../../node_modules/draft-convert/lib/util/rangeSort.js","../../node_modules/draft-convert/lib/encodeBlock.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/draft-convert/lib/util/splitReactElement.js","../../node_modules/draft-convert/lib/util/getElementHTML.js","../../node_modules/draft-convert/lib/util/getElementTagLength.js","../../node_modules/draft-convert/lib/blockEntities.js","../../node_modules/draft-convert/lib/util/styleObjectFunction.js","../../node_modules/draft-convert/lib/util/accumulateFunction.js","../../node_modules/draft-convert/lib/default/defaultInlineHTML.js","../../node_modules/draft-convert/lib/blockInlineStyles.js","../../node_modules/draft-convert/lib/util/blockTypeObjectFunction.js","../../node_modules/draft-convert/lib/util/getBlockTags.js","../../node_modules/draft-convert/lib/util/getNestedBlockTags.js","../../node_modules/draft-convert/lib/default/defaultBlockHTML.js","../../node_modules/draft-convert/lib/convertToHTML.js","../../node_modules/draft-convert/node_modules/immutable/dist/immutable.js","../../node_modules/draft-convert/lib/util/parseHTML.js","../../node_modules/draft-convert/lib/convertFromHTML.js","../../node_modules/draft-convert/lib/index.js","../../node_modules/braft-convert/dist/configs.js","../../node_modules/braft-convert/dist/index.js","../../node_modules/braft-utils/dist/content.js","../../node_modules/braft-utils/dist/base.js","../../node_modules/braft-utils/dist/color.js","../../node_modules/braft-utils/dist/index.js","../../node_modules/braft-editor/node_modules/immutable/dist/immutable.js","../../node_modules/braft-finder/dist/index.js","../../node_modules/braft-editor/node_modules/draftjs-utils/lib/draftjs-utils.js","../../node_modules/braft-editor/dist/index.js","../../node_modules/braft-extensions/dist/emoticon.js","../../node_modules/braft-extensions/dist/max-length.js","../../src/components/Editor/BraftEditor/index.tsx"],"sourcesContent":["/*\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) 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}));","/**\n * Copyright (c) 2013-present, 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 * @providesModule BlockMapBuilder\n * @format\n * \n */\n\n'use strict';\n\nvar Immutable = require('immutable');\n\nvar OrderedMap = Immutable.OrderedMap;\n\n\nvar BlockMapBuilder = {\n createFromArray: function createFromArray(blocks) {\n return OrderedMap(blocks.map(function (block) {\n return [block.getKey(), block];\n }));\n }\n};\n\nmodule.exports = BlockMapBuilder;","/**\n * Copyright (c) 2013-present, 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 * @providesModule CharacterMetadata\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _require = require('immutable'),\n Map = _require.Map,\n OrderedSet = _require.OrderedSet,\n Record = _require.Record;\n\n// 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();\n\nvar defaultRecord = {\n style: EMPTY_SET,\n entity: null\n};\n\nvar CharacterMetadataRecord = Record(defaultRecord);\n\nvar CharacterMetadata = function (_CharacterMetadataRec) {\n _inherits(CharacterMetadata, _CharacterMetadataRec);\n\n function CharacterMetadata() {\n _classCallCheck(this, CharacterMetadata);\n\n return _possibleConstructorReturn(this, _CharacterMetadataRec.apply(this, arguments));\n }\n\n CharacterMetadata.prototype.getStyle = function getStyle() {\n return this.get('style');\n };\n\n CharacterMetadata.prototype.getEntity = function getEntity() {\n return this.get('entity');\n };\n\n CharacterMetadata.prototype.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 /**\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 };\n\n // Fill in unspecified properties, if necessary.\n var configMap = Map(defaultConfig).merge(config);\n\n var existing = pool.get(configMap);\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 return CharacterMetadata;\n}(CharacterMetadataRecord);\n\nvar EMPTY = new CharacterMetadata();\nvar pool = Map([[Map(defaultRecord), EMPTY]]);\n\nCharacterMetadata.EMPTY = EMPTY;\n\nmodule.exports = CharacterMetadata;","/**\n * Copyright (c) 2013-present, 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 * @providesModule findRangesImmutable\n * @format\n * \n */\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\n haystack.reduce(function (value, nextValue, nextIndex) {\n if (!areEqualFn(value, nextValue)) {\n if (filterFn(value)) {\n foundFn(cursor, nextIndex);\n }\n cursor = nextIndex;\n }\n return nextValue;\n });\n\n filterFn(haystack.last()) && foundFn(cursor, haystack.count());\n}\n\nmodule.exports = findRangesImmutable;","/**\n * Copyright (c) 2013-present, 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 * @providesModule ContentBlock\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CharacterMetadata = require('./CharacterMetadata');\nvar Immutable = require('immutable');\n\nvar findRangesImmutable = require('./findRangesImmutable');\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\n\n\nvar EMPTY_SET = OrderedSet();\n\nvar defaultRecord = {\n key: '',\n type: 'unstyled',\n text: '',\n characterList: List(),\n depth: 0,\n data: Map()\n};\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\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlock = function (_ContentBlockRecord) {\n _inherits(ContentBlock, _ContentBlockRecord);\n\n function ContentBlock(config) {\n _classCallCheck(this, ContentBlock);\n\n return _possibleConstructorReturn(this, _ContentBlockRecord.call(this, decorateCharacterList(config)));\n }\n\n ContentBlock.prototype.getKey = function getKey() {\n return this.get('key');\n };\n\n ContentBlock.prototype.getType = function getType() {\n return this.get('type');\n };\n\n ContentBlock.prototype.getText = function getText() {\n return this.get('text');\n };\n\n ContentBlock.prototype.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n ContentBlock.prototype.getLength = function getLength() {\n return this.getText().length;\n };\n\n ContentBlock.prototype.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n ContentBlock.prototype.getData = function getData() {\n return this.get('data');\n };\n\n ContentBlock.prototype.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n ContentBlock.prototype.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n };\n\n /**\n * Execute a callback for every contiguous range of styles within the block.\n */\n\n\n ContentBlock.prototype.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n };\n\n /**\n * Execute a callback for every contiguous range of entities within the block.\n */\n\n\n ContentBlock.prototype.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) 2013-present, 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 * @providesModule ContentBlockNode\n * @format\n * \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\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CharacterMetadata = require('./CharacterMetadata');\nvar Immutable = require('immutable');\n\nvar findRangesImmutable = require('./findRangesImmutable');\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\n\n\nvar EMPTY_SET = OrderedSet();\n\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\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlockNode = function (_Record) {\n _inherits(ContentBlockNode, _Record);\n\n function ContentBlockNode() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultRecord;\n\n _classCallCheck(this, ContentBlockNode);\n\n return _possibleConstructorReturn(this, _Record.call(this, decorateCharacterList(props)));\n }\n\n ContentBlockNode.prototype.getKey = function getKey() {\n return this.get('key');\n };\n\n ContentBlockNode.prototype.getType = function getType() {\n return this.get('type');\n };\n\n ContentBlockNode.prototype.getText = function getText() {\n return this.get('text');\n };\n\n ContentBlockNode.prototype.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n ContentBlockNode.prototype.getLength = function getLength() {\n return this.getText().length;\n };\n\n ContentBlockNode.prototype.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n ContentBlockNode.prototype.getData = function getData() {\n return this.get('data');\n };\n\n ContentBlockNode.prototype.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n ContentBlockNode.prototype.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n };\n\n ContentBlockNode.prototype.getChildKeys = function getChildKeys() {\n return this.get('children');\n };\n\n ContentBlockNode.prototype.getParentKey = function getParentKey() {\n return this.get('parent');\n };\n\n ContentBlockNode.prototype.getPrevSiblingKey = function getPrevSiblingKey() {\n return this.get('prevSibling');\n };\n\n ContentBlockNode.prototype.getNextSiblingKey = function getNextSiblingKey() {\n return this.get('nextSibling');\n };\n\n ContentBlockNode.prototype.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n };\n\n ContentBlockNode.prototype.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 2013-present, 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 * @providesModule DraftFeatureFlags-core\n * @format\n * \n */\n\n'use strict';\n\nvar DraftFeatureFlags = {\n draft_killswitch_allow_nontextnodes: false,\n draft_segmented_entities_behavior: false,\n draft_handlebeforeinput_composed_text: false,\n draft_tree_data_support: false\n};\n\nmodule.exports = DraftFeatureFlags;","/**\n * Copyright 2013-present, 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 * @providesModule DraftFeatureFlags\n * @format\n * \n */\n\n'use strict';\n\nvar DraftFeatureFlags = require('./DraftFeatureFlags-core');\n\nmodule.exports = DraftFeatureFlags;","/**\n * Copyright (c) 2013-present, 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 * @providesModule ContentStateInlineStyle\n * @format\n * \n */\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\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\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 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\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = ContentStateInlineStyle;","/**\n * Copyright (c) 2013-present, 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 * @providesModule applyEntityToContentBlock\n * @format\n * \n */\n\n'use strict';\n\nvar CharacterMetadata = require('./CharacterMetadata');\n\nfunction applyEntityToContentBlock(contentBlock, start, end, entityKey) {\n var characterList = contentBlock.getCharacterList();\n while (start < end) {\n characterList = characterList.set(start, CharacterMetadata.applyEntity(characterList.get(start), entityKey));\n start++;\n }\n return contentBlock.set('characterList', characterList);\n}\n\nmodule.exports = applyEntityToContentBlock;","/**\n * Copyright (c) 2013-present, 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 * @providesModule applyEntityToContentState\n * @format\n * \n */\n\n'use strict';\n\nvar Immutable = require('immutable');\n\nvar applyEntityToContentBlock = require('./applyEntityToContentBlock');\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\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\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = applyEntityToContentState;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEntitySegments\n * @format\n * \n */\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 ( /*string*/segment, /*number*/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 return segment;\n });\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;\n\n // Our selection overlaps this segment.\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};\n\nmodule.exports = DraftEntitySegments;","/**\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\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\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\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 args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getRangesForDraftEntity\n * @format\n * \n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\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 */\nfunction getRangesForDraftEntity(block, key) {\n var ranges = [];\n block.findEntityRanges(function (c) {\n return c.getEntity() === key;\n }, function (start, end) {\n ranges.push({ start: start, 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\n return ranges;\n}\n\nmodule.exports = getRangesForDraftEntity;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getCharacterRemovalRange\n * @format\n * \n */\n\n'use strict';\n\nvar DraftEntitySegments = require('./DraftEntitySegments');\n\nvar getRangesForDraftEntity = require('./getRangesForDraftEntity');\nvar invariant = require('fbjs/lib/invariant');\n\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 */\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 if (!startEntityKey && !endEntityKey) {\n return selectionState;\n }\n var newSelectionState = selectionState;\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 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 newSelectionState = newSelectionState.merge({\n focusOffset: _endSelectionState.getEndOffset(),\n isBackward: false\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 var entity = entityMap.__get(entityKey);\n var mutability = entity.getMutability();\n var sideToConsider = isEntityAtStart ? start : end;\n\n // `MUTABLE` entities can just have the specified range of text removed\n // directly. No adjustments are needed.\n if (mutability === 'MUTABLE') {\n return selectionState;\n }\n\n // Find the entity range that overlaps with our removal range.\n var entityRanges = getRangesForDraftEntity(block, entityKey).filter(function (range) {\n return sideToConsider <= range.end && sideToConsider >= range.start;\n });\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\n var entityRange = entityRanges[0];\n\n // For `IMMUTABLE` entity types, we will remove the entire entity range.\n if (mutability === 'IMMUTABLE') {\n return selectionState.merge({\n anchorOffset: entityRange.start,\n focusOffset: entityRange.end,\n isBackward: false\n });\n }\n\n // For `SEGMENTED` entity types, determine the appropriate segment to\n // remove.\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\n return selectionState.merge({\n anchorOffset: removalRange.start,\n focusOffset: removalRange.end,\n isBackward: false\n });\n}\n\nmodule.exports = getCharacterRemovalRange;","/**\n * Copyright (c) 2013-present, 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 * @providesModule generateRandomKey\n * @format\n * \n */\n\n'use strict';\n\nvar seenKeys = {};\nvar MULTIPLIER = Math.pow(2, 24);\n\nfunction generateRandomKey() {\n var key = void 0;\n while (key === undefined || seenKeys.hasOwnProperty(key) || !isNaN(+key)) {\n key = Math.floor(Math.random() * MULTIPLIER).toString(32);\n }\n seenKeys[key] = true;\n return key;\n}\n\nmodule.exports = generateRandomKey;","/**\n * Copyright (c) 2013-present, 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 * @providesModule randomizeBlockMapKeys\n * @format\n * \n */\n\n'use strict';\n\nvar ContentBlockNode = require('./ContentBlockNode');\nvar Immutable = require('immutable');\n\nvar generateRandomKey = require('./generateRandomKey');\n\nvar OrderedMap = Immutable.OrderedMap;\n\n\nvar randomizeContentBlockNodeKeys = function randomizeContentBlockNodeKeys(blockMap) {\n var newKeysRef = {};\n\n // we keep track of root blocks in order to update subsequent sibling links\n var lastRootBlock = void 0;\n\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();\n\n // new key that we will use to build linking\n var key = generateRandomKey();\n\n // we will add it here to re-use it later\n newKeysRef[oldKey] = key;\n\n if (nextKey) {\n var nextBlock = blockMapState.get(nextKey);\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 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 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) 2013-present, 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 * @providesModule removeEntitiesAtEdges\n * @format\n * \n */\n\n'use strict';\n\nvar CharacterMetadata = require('./CharacterMetadata');\n\nvar findRangesImmutable = require('./findRangesImmutable');\nvar invariant = require('fbjs/lib/invariant');\n\nfunction removeEntitiesAtEdges(contentState, selectionState) {\n var blockMap = contentState.getBlockMap();\n var entityMap = contentState.getEntityMap();\n\n var updatedBlocks = {};\n\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 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\nfunction getRemovalRange(characters, key, offset) {\n var removalRange;\n findRangesImmutable(characters, function (a, b) {\n return a.getEntity() === b.getEntity();\n }, function (element) {\n return element.getEntity() === key;\n }, function (start, end) {\n if (start <= offset && end >= offset) {\n removalRange = { start: start, end: end };\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 if (entity.getMutability() !== 'MUTABLE') {\n var _getRemovalRange = getRemovalRange(chars, entityAfterCursor, offset),\n start = _getRemovalRange.start,\n end = _getRemovalRange.end;\n\n var current;\n while (start < end) {\n current = chars.get(start);\n chars = chars.set(start, CharacterMetadata.applyEntity(current, null));\n start++;\n }\n return block.set('characterList', chars);\n }\n }\n\n return block;\n}\n\nmodule.exports = removeEntitiesAtEdges;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getContentStateFragment\n * @format\n * \n */\n\n'use strict';\n\nvar randomizeBlockMapKeys = require('./randomizeBlockMapKeys');\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();\n\n // 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 var contentWithoutEdgeEntities = removeEntitiesAtEdges(contentState, selectionState);\n\n var blockMap = contentWithoutEdgeEntities.getBlockMap();\n var blockKeys = blockMap.keySeq();\n var startIndex = blockKeys.indexOf(startKey);\n var endIndex = blockKeys.indexOf(endKey) + 1;\n\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;","/**\n * Copyright (c) 2013-present, 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 * @providesModule insertIntoList\n * @format\n * \n */\n\n'use strict';\n\n/**\n * Maintain persistence for target list when appending and prepending.\n */\nfunction insertIntoList(targetList, toInsert, offset) {\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 return targetList;\n}\n\nmodule.exports = insertIntoList;","/**\n * Copyright (c) 2013-present, 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 * @providesModule insertFragmentIntoContentState\n * @format\n * \n */\n\n'use strict';\n\nvar BlockMapBuilder = require('./BlockMapBuilder');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar Immutable = require('immutable');\n\nvar insertIntoList = require('./insertIntoList');\nvar invariant = require('fbjs/lib/invariant');\nvar randomizeBlockMapKeys = require('./randomizeBlockMapKeys');\n\nvar List = Immutable.List;\n\n\nvar updateExistingBlock = function updateExistingBlock(contentState, selectionState, blockMap, fragmentBlock, targetKey, targetOffset) {\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\n var newBlock = targetBlock.merge({\n text: text.slice(0, targetOffset) + fragmentBlock.getText() + text.slice(targetOffset),\n characterList: insertIntoList(chars, fragmentBlock.getCharacterList(), targetOffset),\n data: fragmentBlock.getData()\n });\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/**\n * Appends text/characterList from the fragment first block to\n * target block.\n */\nvar updateHead = function updateHead(block, targetOffset, fragment) {\n var text = block.getText();\n var chars = block.getCharacterList();\n\n // Modify head portion of block.\n var headText = text.slice(0, targetOffset);\n var headCharacters = chars.slice(0, targetOffset);\n var appendToHead = fragment.first();\n\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/**\n * Appends offset text/characterList from the target block to the last\n * fragment block.\n */\nvar updateTail = function updateTail(block, targetOffset, fragment) {\n // Modify tail portion of block.\n var text = block.getText();\n var chars = block.getCharacterList();\n\n // Modify head portion of block.\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\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 = [];\n\n // 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 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 }\n\n // update the last root block fragment\n blockMapState.setIn([lastRootFragmentBlockKey, 'nextSibling'], targetNextKey);\n\n // update the original target next block\n if (targetNextKey) {\n blockMapState.setIn([targetNextKey, 'prevSibling'], lastRootFragmentBlockKey);\n }\n\n // update fragment parent links\n fragmentRootBlocks.forEach(function (blockKey) {\n return blockMapState.setIn([blockKey, 'parent'], targetParentKey);\n });\n\n // update targetBlock parent child links\n if (targetParentKey) {\n var targetParent = blockMap.get(targetParentKey);\n var originalTargetParentChildKeys = targetParent.getChildKeys();\n\n var targetBlockIndex = originalTargetParentChildKeys.indexOf(targetKey);\n var insertionIndex = targetBlockIndex + 1;\n\n var newChildrenKeysArray = originalTargetParentChildKeys.toArray();\n\n // insert fragment children\n newChildrenKeysArray.splice.apply(newChildrenKeysArray, [insertionIndex, 0].concat(fragmentRootBlocks));\n\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\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 }\n\n // Insert fragment blocks after the head and before the tail.\n fragment\n // 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 });\n\n // update tail\n newBlockArr.push(updateTail(block, targetOffset, fragment));\n });\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 !selectionState.isCollapsed() ? process.env.NODE_ENV !== 'production' ? invariant(false, '`insertFragment` should only be called with a collapsed selection state.') : invariant(false) : void 0;\n\n var blockMap = contentState.getBlockMap();\n var fragment = randomizeBlockMapKeys(fragmentBlockMap);\n var targetKey = selectionState.getStartKey();\n var targetOffset = selectionState.getStartOffset();\n\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 }\n\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 if (fragment.size === 1) {\n return updateExistingBlock(contentState, selectionState, blockMap, fragment.first(), targetKey, targetOffset);\n }\n\n return insertFragment(contentState, selectionState, blockMap, fragment, targetKey, targetOffset);\n};\n\nmodule.exports = insertFragmentIntoContentState;","/**\n * Copyright (c) 2013-present, 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 * @providesModule insertTextIntoContentState\n * @format\n * \n */\n\n'use strict';\n\nvar Immutable = require('immutable');\n\nvar insertIntoList = require('./insertIntoList');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Repeat = Immutable.Repeat;\n\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\n var len = text.length;\n if (!len) {\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\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\n var newOffset = offset + len;\n\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;","/**\n * Copyright (c) 2013-present, 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 * @providesModule modifyBlockForContentState\n * @format\n * \n */\n\n'use strict';\n\nvar Immutable = require('immutable');\n\nvar Map = Immutable.Map;\n\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\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = modifyBlockForContentState;","'use strict';\n\n/**\n * Copyright (c) 2013-present, 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 * @providesModule getNextDelimiterBlockKey\n * @format\n * \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\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 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;","/**\n * Copyright (c) 2013-present, 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 * @providesModule removeRangeFromContentState\n * @format\n * \n */\n\n'use strict';\n\nvar ContentBlockNode = require('./ContentBlockNode');\nvar Immutable = require('immutable');\n\nvar getNextDelimiterBlockKey = require('./getNextDelimiterBlockKey');\n\nvar List = Immutable.List,\n Map = Immutable.Map;\n\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/**\n * Ancestors needs to be preserved when there are non selected\n * children to make sure we do not leave any orphans behind\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 while (blockNode && blockNode.getParentKey()) {\n var parentKey = blockNode.getParentKey();\n if (parentKey) {\n parents.push(parentKey);\n }\n blockNode = parentKey ? blockMap.get(parentKey) : null;\n }\n\n return parents;\n};\n\n/**\n * Get all next delimiter keys until we hit a root delimiter and return\n * an array of key references\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 while (nextDelimiter && blockMap.get(nextDelimiter)) {\n var _block = blockMap.get(nextDelimiter);\n nextDelimiters.push(nextDelimiter);\n\n // we do not need to keep checking all root node siblings, just the first occurance\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 }\n\n // note that we need to make sure we refer to the original block since this\n // function is called within a withMutations\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 }\n\n // note that we need to make sure we refer to the original block since this\n // function is called within a withMutations\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(startBlock, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(startBlock, blocks, originalBlockMap)\n });\n });\n\n // update endblock if its retained\n transformBlock(endBlock.getKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(endBlock, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(endBlock, blocks, originalBlockMap)\n });\n });\n\n // update start block parent ancestors\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 });\n\n // update start block next - can only happen if startBlock == endBlock\n transformBlock(startBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: startBlock.getPrevSiblingKey()\n });\n });\n\n // update start block prev\n transformBlock(startBlock.getPrevSiblingKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(startBlock, blocks, originalBlockMap)\n });\n });\n\n // update end block next\n transformBlock(endBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: getPrevValidSibling(endBlock, blocks, originalBlockMap)\n });\n });\n\n // update end block prev\n transformBlock(endBlock.getPrevSiblingKey(), blocks, function (block) {\n return block.merge({\n nextSibling: endBlock.getNextSiblingKey()\n });\n });\n\n // update end block parent ancestors\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 });\n\n // update next delimiters all the way to a root delimiter\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 });\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\n var startBlock = blockMap.get(startKey);\n var endBlock = blockMap.get(endKey);\n\n // we assume that ContentBlockNode and ContentBlocks are not mixed together\n var isExperimentalTreeBlock = startBlock instanceof ContentBlockNode;\n\n // used to retain blocks that should not be deleted to avoid orphan children\n var parentAncestors = [];\n\n if (isExperimentalTreeBlock) {\n var endBlockchildrenKeys = endBlock.getChildKeys();\n var endBlockAncestors = getAncestorsKeys(endKey, blockMap);\n\n // endBlock has unselected sibblings so we can not remove its ancestors parents\n if (endBlock.getNextSiblingKey()) {\n parentAncestors = parentAncestors.concat(endBlockAncestors);\n }\n\n // endBlock has children so can not remove this block or any of its ancestors\n if (!endBlockchildrenKeys.isEmpty()) {\n parentAncestors = parentAncestors.concat(endBlockAncestors.concat([endKey]));\n }\n\n // we need to retain all ancestors of the next delimiter block\n parentAncestors = parentAncestors.concat(getAncestorsKeys(getNextDelimiterBlockKey(endBlock, blockMap), blockMap));\n }\n\n var characterList = void 0;\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 });\n\n var newBlocks = 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\n var updatedBlockMap = blockMap.merge(newBlocks).filter(function (block) {\n return !!block;\n });\n\n if (isExperimentalTreeBlock) {\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/**\n * Maintain persistence for target list when removing characters on the\n * head and tail of the character list.\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 return targetList;\n};\n\nmodule.exports = removeRangeFromContentState;","/**\n * Copyright (c) 2013-present, 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 * @providesModule splitBlockInContentState\n * @format\n * \n */\n\n'use strict';\n\nvar ContentBlockNode = require('./ContentBlockNode');\nvar Immutable = require('immutable');\n\nvar generateRandomKey = require('./generateRandomKey');\nvar invariant = require('fbjs/lib/invariant');\n\nvar List = Immutable.List,\n Map = Immutable.Map;\n\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();\n\n // update block parent\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\n newChildrenArray.splice(insertionIndex, 0, belowBlockKey);\n\n return block.merge({\n children: List(newChildrenArray)\n });\n });\n\n // update original next block\n transformBlock(originalBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: belowBlockKey\n });\n });\n\n // update original block\n transformBlock(originalBlockKey, blocks, function (block) {\n return block.merge({\n nextSibling: belowBlockKey\n });\n });\n\n // update below block\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\n var key = selectionState.getAnchorKey();\n var offset = selectionState.getAnchorOffset();\n var blockMap = contentState.getBlockMap();\n var blockToSplit = blockMap.get(key);\n var text = blockToSplit.getText();\n var chars = blockToSplit.getCharacterList();\n var keyBelow = generateRandomKey();\n var isExperimentalTreeBlock = blockToSplit instanceof ContentBlockNode;\n\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\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\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) 2013-present, 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 * @providesModule DraftModifier\n * @format\n * \n */\n\n'use strict';\n\nvar CharacterMetadata = require('./CharacterMetadata');\nvar ContentStateInlineStyle = require('./ContentStateInlineStyle');\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar Immutable = require('immutable');\n\nvar applyEntityToContentState = require('./applyEntityToContentState');\nvar getCharacterRemovalRange = require('./getCharacterRemovalRange');\nvar getContentStateFragment = require('./getContentStateFragment');\nvar insertFragmentIntoContentState = require('./insertFragmentIntoContentState');\nvar insertTextIntoContentState = require('./insertTextIntoContentState');\nvar invariant = require('fbjs/lib/invariant');\nvar modifyBlockForContentState = require('./modifyBlockForContentState');\nvar removeEntitiesAtEdges = require('./removeEntitiesAtEdges');\nvar removeRangeFromContentState = require('./removeRangeFromContentState');\nvar splitBlockInContentState = require('./splitBlockInContentState');\n\nvar OrderedSet = Immutable.OrderedSet;\n\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\n var character = CharacterMetadata.create({\n style: inlineStyle || OrderedSet(),\n entity: entityKey || null\n });\n\n return insertTextIntoContentState(withoutText, withoutText.getSelectionAfter(), text, character);\n },\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\n moveText: function moveText(contentState, removalRange, targetRange) {\n var movedFragment = getContentStateFragment(contentState, removalRange);\n\n var afterRemoval = DraftModifier.removeRange(contentState, removalRange, 'backward');\n\n return DraftModifier.replaceWithFragment(afterRemoval, targetRange, movedFragment);\n },\n\n replaceWithFragment: function replaceWithFragment(contentState, targetRange, fragment) {\n var withoutEntities = removeEntitiesAtEdges(contentState, targetRange);\n var withoutText = removeRangeFromContentState(withoutEntities, targetRange);\n\n return insertFragmentIntoContentState(withoutText, withoutText.getSelectionAfter(), fragment);\n },\n\n removeRange: function removeRange(contentState, rangeToRemove, removalDirection) {\n var startKey = void 0,\n endKey = void 0,\n startBlock = void 0,\n endBlock = void 0;\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 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\n var startEntityKey = startBlock.getEntityAt(startOffset);\n var endEntityKey = endBlock.getEntityAt(endOffset - 1);\n\n // Check whether the selection state overlaps with a single entity.\n // If so, try to remove the appropriate substring of the entity text.\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 var adjustedRemovalRange = rangeToRemove;\n if (DraftFeatureFlags.draft_segmented_entities_behavior) {\n // Adjust the selection to properly delete segemented and immutable\n // entities\n adjustedRemovalRange = getCharacterRemovalRange(contentState.getEntityMap(), startBlock, endBlock, rangeToRemove, removalDirection);\n }\n\n var withoutEntities = removeEntitiesAtEdges(contentState, adjustedRemovalRange);\n return removeRangeFromContentState(withoutEntities, adjustedRemovalRange);\n },\n\n splitBlock: function splitBlock(contentState, selectionState) {\n var withoutEntities = removeEntitiesAtEdges(contentState, selectionState);\n var withoutText = removeRangeFromContentState(withoutEntities, selectionState);\n\n return splitBlockInContentState(withoutText, withoutText.getSelectionAfter());\n },\n\n applyInlineStyle: function applyInlineStyle(contentState, selectionState, inlineStyle) {\n return ContentStateInlineStyle.add(contentState, selectionState, inlineStyle);\n },\n\n removeInlineStyle: function removeInlineStyle(contentState, selectionState, inlineStyle) {\n return ContentStateInlineStyle.remove(contentState, selectionState, inlineStyle);\n },\n\n setBlockType: function setBlockType(contentState, selectionState, blockType) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({ type: blockType, depth: 0 });\n });\n },\n\n setBlockData: function setBlockData(contentState, selectionState, blockData) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({ data: blockData });\n });\n },\n\n mergeBlockData: function mergeBlockData(contentState, selectionState, blockData) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({ 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};\n\nmodule.exports = DraftModifier;","\"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\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\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 */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, 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 * @providesModule BlockTree\n * @format\n * \n */\n\n'use strict';\n\nvar Immutable = require('immutable');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar findRangesImmutable = require('./findRangesImmutable');\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat,\n Record = Immutable.Record;\n\n\nvar returnTrue = emptyFunction.thatReturnsTrue;\n\nvar FINGERPRINT_DELIMITER = '-';\n\nvar defaultLeafRange = {\n start: null,\n end: null\n};\n\nvar LeafRange = Record(defaultLeafRange);\n\nvar defaultDecoratorRange = {\n start: null,\n end: null,\n decoratorKey: null,\n leaves: null\n};\n\nvar DecoratorRange = Record(defaultDecoratorRange);\n\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 if (!textLength) {\n return List.of(new DecoratorRange({\n start: 0,\n end: 0,\n decoratorKey: null,\n leaves: List.of(new LeafRange({ start: 0, end: 0 }))\n }));\n }\n\n var leafSets = [];\n var decorations = decorator ? decorator.getDecorations(block, contentState) : List(Repeat(null, textLength));\n\n var chars = block.getCharacterList();\n\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\n return List(leafSets);\n },\n\n /**\n * Create a string representation of the given tree map. This allows us\n * to rapidly determine whether a tree has undergone a significant\n * structural change.\n */\n getFingerprint: function getFingerprint(tree) {\n return tree.map(function (leafSet) {\n var decoratorKey = leafSet.get('decoratorKey');\n var fingerprintString = decoratorKey !== null ? decoratorKey + '.' + (leafSet.get('end') - leafSet.get('start')) : '';\n return '' + fingerprintString + '.' + leafSet.get('leaves').size;\n }).join(FINGERPRINT_DELIMITER);\n }\n};\n\n/**\n * Generate LeafRange records for a given character list.\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) 2013-present, 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 * @providesModule DraftEntityInstance\n * @legacyServerCallableInstance\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Immutable = require('immutable');\n\nvar Record = Immutable.Record;\n\n\nvar DraftEntityInstanceRecord = Record({\n type: 'TOKEN',\n mutability: 'IMMUTABLE',\n data: Object\n});\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 = function (_DraftEntityInstanceR) {\n _inherits(DraftEntityInstance, _DraftEntityInstanceR);\n\n function DraftEntityInstance() {\n _classCallCheck(this, DraftEntityInstance);\n\n return _possibleConstructorReturn(this, _DraftEntityInstanceR.apply(this, arguments));\n }\n\n DraftEntityInstance.prototype.getType = function getType() {\n return this.get('type');\n };\n\n DraftEntityInstance.prototype.getMutability = function getMutability() {\n return this.get('mutability');\n };\n\n DraftEntityInstance.prototype.getData = function getData() {\n return this.get('data');\n };\n\n return DraftEntityInstance;\n}(DraftEntityInstanceRecord);\n\nmodule.exports = DraftEntityInstance;","'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\n/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEntity\n * @format\n * \n */\n\nvar DraftEntityInstance = require('./DraftEntityInstance');\nvar Immutable = require('immutable');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar Map = Immutable.Map;\n\n\nvar instances = Map();\nvar instanceKey = 0;\n\n/**\n * Temporary utility for generating the warnings\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 * 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\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({ type: type, mutability: mutability, data: data || {} }));\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 var key = '' + ++instanceKey;\n instances = instances.set(key, instance);\n return key;\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 var newData = _extends({}, instance.getData(), toMerge);\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 var newInstance = instance.set('data', newData);\n instances = instances.set(key, newInstance);\n return newInstance;\n }\n};\n\nmodule.exports = DraftEntity;","/**\n * Copyright (c) 2013-present, 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 * @providesModule SelectionState\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Immutable = require('immutable');\n\nvar Record = Immutable.Record;\n\n\nvar defaultRecord = {\n anchorKey: '',\n anchorOffset: 0,\n focusKey: '',\n focusOffset: 0,\n isBackward: false,\n hasFocus: false\n};\n\nvar SelectionStateRecord = Record(defaultRecord);\n\nvar SelectionState = function (_SelectionStateRecord) {\n _inherits(SelectionState, _SelectionStateRecord);\n\n function SelectionState() {\n _classCallCheck(this, SelectionState);\n\n return _possibleConstructorReturn(this, _SelectionStateRecord.apply(this, arguments));\n }\n\n SelectionState.prototype.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 SelectionState.prototype.getAnchorKey = function getAnchorKey() {\n return this.get('anchorKey');\n };\n\n SelectionState.prototype.getAnchorOffset = function getAnchorOffset() {\n return this.get('anchorOffset');\n };\n\n SelectionState.prototype.getFocusKey = function getFocusKey() {\n return this.get('focusKey');\n };\n\n SelectionState.prototype.getFocusOffset = function getFocusOffset() {\n return this.get('focusOffset');\n };\n\n SelectionState.prototype.getIsBackward = function getIsBackward() {\n return this.get('isBackward');\n };\n\n SelectionState.prototype.getHasFocus = function getHasFocus() {\n return this.get('hasFocus');\n };\n\n /**\n * Return whether the specified range overlaps with an edge of the\n * SelectionState.\n */\n\n\n SelectionState.prototype.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 <= selectionEnd && selectionStart <= end;\n }\n\n if (blockKey !== anchorKey && blockKey !== focusKey) {\n return false;\n }\n\n var offsetToCheck = blockKey === anchorKey ? this.getAnchorOffset() : this.getFocusOffset();\n\n return start <= offsetToCheck && end >= offsetToCheck;\n };\n\n SelectionState.prototype.isCollapsed = function isCollapsed() {\n return this.getAnchorKey() === this.getFocusKey() && this.getAnchorOffset() === this.getFocusOffset();\n };\n\n SelectionState.prototype.getStartKey = function getStartKey() {\n return this.getIsBackward() ? this.getFocusKey() : this.getAnchorKey();\n };\n\n SelectionState.prototype.getStartOffset = function getStartOffset() {\n return this.getIsBackward() ? this.getFocusOffset() : this.getAnchorOffset();\n };\n\n SelectionState.prototype.getEndKey = function getEndKey() {\n return this.getIsBackward() ? this.getAnchorKey() : this.getFocusKey();\n };\n\n SelectionState.prototype.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) 2013-present, 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 * @providesModule sanitizeDraftText\n * @format\n * \n */\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) 2013-present, 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 * @providesModule ContentState\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BlockMapBuilder = require('./BlockMapBuilder');\nvar CharacterMetadata = require('./CharacterMetadata');\nvar ContentBlock = require('./ContentBlock');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar DraftEntity = require('./DraftEntity');\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar Immutable = require('immutable');\nvar SelectionState = require('./SelectionState');\n\nvar generateRandomKey = require('./generateRandomKey');\nvar sanitizeDraftText = require('./sanitizeDraftText');\n\nvar List = Immutable.List,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\n\n\nvar experimentalTreeDataSupport = DraftFeatureFlags.draft_tree_data_support;\n\nvar defaultRecord = {\n entityMap: null,\n blockMap: null,\n selectionBefore: null,\n selectionAfter: null\n};\n\nvar ContentBlockNodeRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\n\nvar ContentStateRecord = Record(defaultRecord);\n\nvar ContentState = function (_ContentStateRecord) {\n _inherits(ContentState, _ContentStateRecord);\n\n function ContentState() {\n _classCallCheck(this, ContentState);\n\n return _possibleConstructorReturn(this, _ContentStateRecord.apply(this, arguments));\n }\n\n ContentState.prototype.getEntityMap = function getEntityMap() {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity;\n };\n\n ContentState.prototype.getBlockMap = function getBlockMap() {\n return this.get('blockMap');\n };\n\n ContentState.prototype.getSelectionBefore = function getSelectionBefore() {\n return this.get('selectionBefore');\n };\n\n ContentState.prototype.getSelectionAfter = function getSelectionAfter() {\n return this.get('selectionAfter');\n };\n\n ContentState.prototype.getBlockForKey = function getBlockForKey(key) {\n var block = this.getBlockMap().get(key);\n return block;\n };\n\n ContentState.prototype.getKeyBefore = function getKeyBefore(key) {\n return this.getBlockMap().reverse().keySeq().skipUntil(function (v) {\n return v === key;\n }).skip(1).first();\n };\n\n ContentState.prototype.getKeyAfter = function getKeyAfter(key) {\n return this.getBlockMap().keySeq().skipUntil(function (v) {\n return v === key;\n }).skip(1).first();\n };\n\n ContentState.prototype.getBlockAfter = function getBlockAfter(key) {\n return this.getBlockMap().skipUntil(function (_, k) {\n return k === key;\n }).skip(1).first();\n };\n\n ContentState.prototype.getBlockBefore = function getBlockBefore(key) {\n return this.getBlockMap().reverse().skipUntil(function (_, k) {\n return k === key;\n }).skip(1).first();\n };\n\n ContentState.prototype.getBlocksAsArray = function getBlocksAsArray() {\n return this.getBlockMap().toArray();\n };\n\n ContentState.prototype.getFirstBlock = function getFirstBlock() {\n return this.getBlockMap().first();\n };\n\n ContentState.prototype.getLastBlock = function getLastBlock() {\n return this.getBlockMap().last();\n };\n\n ContentState.prototype.getPlainText = function getPlainText(delimiter) {\n return this.getBlockMap().map(function (block) {\n return block ? block.getText() : '';\n }).join(delimiter || '\\n');\n };\n\n ContentState.prototype.getLastCreatedEntityKey = function getLastCreatedEntityKey() {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity.__getLastCreatedEntityKey();\n };\n\n ContentState.prototype.hasText = function hasText() {\n var blockMap = this.getBlockMap();\n return blockMap.size > 1 || blockMap.first().getLength() > 0;\n };\n\n ContentState.prototype.createEntity = function createEntity(type, mutability, data) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__create(type, mutability, data);\n return this;\n };\n\n ContentState.prototype.mergeEntityData = function mergeEntityData(key, toMerge) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__mergeData(key, toMerge);\n return this;\n };\n\n ContentState.prototype.replaceEntityData = function replaceEntityData(key, newData) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__replaceData(key, newData);\n return this;\n };\n\n ContentState.prototype.addEntity = function addEntity(instance) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__add(instance);\n return this;\n };\n\n ContentState.prototype.getEntity = function getEntity(key) {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity.__get(key);\n };\n\n ContentState.createFromBlockArray = function createFromBlockArray(\n // 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\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 return ContentState;\n}(ContentStateRecord);\n\nmodule.exports = ContentState;","/**\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\n'use strict';\n\nvar invariant = require('./invariant');\n\nvar NEUTRAL = 'NEUTRAL'; // No strong direction\nvar LTR = 'LTR'; // Left-to-Right direction\nvar RTL = 'RTL'; // Right-to-Left direction\n\nvar globalDir = null;\n\n// == Helpers ==\n\n/**\n * Check if a directionality value is a Strong one\n */\nfunction isStrong(dir) {\n return dir === LTR || dir === RTL;\n}\n\n/**\n * Get string value to be used for `dir` HTML attribute or `direction` CSS\n * property.\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/**\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 */\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}\n\n// == Global Direction ==\n\n/**\n * Set the global direction.\n */\nfunction setGlobalDir(dir) {\n globalDir = dir;\n}\n\n/**\n * Initialize the global direction\n */\nfunction initGlobalDir() {\n setGlobalDir(LTR);\n}\n\n/**\n * Get the global direction\n */\nfunction getGlobalDir() {\n if (!globalDir) {\n this.initGlobalDir();\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};\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 * 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\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\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\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\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\n};\n\nvar REGEX_STRONG = new RegExp('[' + RANGE_BY_BIDI_TYPE.L + RANGE_BY_BIDI_TYPE.R + RANGE_BY_BIDI_TYPE.AL + ']');\n\nvar REGEX_RTL = new RegExp('[' + RANGE_BY_BIDI_TYPE.R + RANGE_BY_BIDI_TYPE.AL + ']');\n\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 */\nfunction firstStrongChar(str) {\n var match = REGEX_STRONG.exec(str);\n return match == null ? null : match[0];\n}\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 */\nfunction firstStrongCharDir(str) {\n var strongChar = firstStrongChar(str);\n if (strongChar == null) {\n return UnicodeBidiDirection.NEUTRAL;\n }\n return REGEX_RTL.exec(strongChar) ? UnicodeBidiDirection.RTL : UnicodeBidiDirection.LTR;\n}\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 */\nfunction resolveBlockDir(str, fallback) {\n fallback = fallback || UnicodeBidiDirection.NEUTRAL;\n if (!str.length) {\n return fallback;\n }\n var blockDir = firstStrongCharDir(str);\n return blockDir === UnicodeBidiDirection.NEUTRAL ? fallback : blockDir;\n}\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 */\nfunction getDirection(str, strongFallback) {\n if (!strongFallback) {\n strongFallback = UnicodeBidiDirection.getGlobalDir();\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/**\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 */\nfunction isDirectionLTR(str, strongFallback) {\n return getDirection(str, strongFallback) === UnicodeBidiDirection.LTR;\n}\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 */\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};\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 * 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\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar UnicodeBidi = require('./UnicodeBidi');\nvar UnicodeBidiDirection = require('./UnicodeBidiDirection');\n\nvar invariant = require('./invariant');\n\nvar UnicodeBidiService = function () {\n\n /**\n * Stateful class for paragraph direction detection\n *\n * @param defaultDir Default direction of the service\n */\n function UnicodeBidiService(defaultDir) {\n _classCallCheck(this, UnicodeBidiService);\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 this._defaultDir = defaultDir;\n this.reset();\n }\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 UnicodeBidiService.prototype.reset = function reset() {\n this._lastDir = this._defaultDir;\n };\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 UnicodeBidiService.prototype.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;","\"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\nvar nullthrows = function nullthrows(x) {\n if (x != null) {\n return x;\n }\n throw new Error(\"Got unexpected null or undefined\");\n};\n\nmodule.exports = nullthrows;","/**\n * Copyright (c) 2013-present, 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 * @providesModule EditorBidiService\n * @format\n * \n */\n\n'use strict';\n\nvar Immutable = require('immutable');\nvar UnicodeBidiService = require('fbjs/lib/UnicodeBidiService');\n\nvar nullthrows = require('fbjs/lib/nullthrows');\n\nvar OrderedMap = Immutable.OrderedMap;\n\n\nvar bidiService;\n\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};\n\nmodule.exports = EditorBidiService;","/**\n * Copyright (c) 2013-present, 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 * @providesModule EditorState\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BlockTree = require('./BlockTree');\nvar ContentState = require('./ContentState');\nvar EditorBidiService = require('./EditorBidiService');\nvar Immutable = require('immutable');\nvar SelectionState = require('./SelectionState');\n\nvar OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Stack = Immutable.Stack;\n\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};\n\nvar EditorStateRecord = Record(defaultRecord);\n\nvar EditorState = function () {\n EditorState.createEmpty = function createEmpty(decorator) {\n return EditorState.createWithContent(ContentState.createFromText(''), decorator);\n };\n\n EditorState.createWithContent = function createWithContent(contentState, decorator) {\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 = _extends({}, config, {\n treeMap: generateNewTreeMap(currentContent, decorator),\n directionMap: EditorBidiService.getDirectionMap(currentContent)\n });\n return new EditorState(new EditorStateRecord(recordConfig));\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 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 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 if (newContent !== existingContent) {\n state.set('treeMap', regenerateTreeForNewBlocks(editorState, newContent.getBlockMap(), newContent.getEntityMap(), decorator));\n }\n\n state.merge(put);\n });\n\n return new EditorState(map);\n };\n\n EditorState.prototype.toJS = function toJS() {\n return this.getImmutable().toJS();\n };\n\n EditorState.prototype.getAllowUndo = function getAllowUndo() {\n return this.getImmutable().get('allowUndo');\n };\n\n EditorState.prototype.getCurrentContent = function getCurrentContent() {\n return this.getImmutable().get('currentContent');\n };\n\n EditorState.prototype.getUndoStack = function getUndoStack() {\n return this.getImmutable().get('undoStack');\n };\n\n EditorState.prototype.getRedoStack = function getRedoStack() {\n return this.getImmutable().get('redoStack');\n };\n\n EditorState.prototype.getSelection = function getSelection() {\n return this.getImmutable().get('selection');\n };\n\n EditorState.prototype.getDecorator = function getDecorator() {\n return this.getImmutable().get('decorator');\n };\n\n EditorState.prototype.isInCompositionMode = function isInCompositionMode() {\n return this.getImmutable().get('inCompositionMode');\n };\n\n EditorState.prototype.mustForceSelection = function mustForceSelection() {\n return this.getImmutable().get('forceSelection');\n };\n\n EditorState.prototype.getNativelyRenderedContent = function getNativelyRenderedContent() {\n return this.getImmutable().get('nativelyRenderedContent');\n };\n\n EditorState.prototype.getLastChangeType = function getLastChangeType() {\n return this.getImmutable().get('lastChangeType');\n };\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 EditorState.prototype.getInlineStyleOverride = function getInlineStyleOverride() {\n return this.getImmutable().get('inlineStyleOverride');\n };\n\n EditorState.setInlineStyleOverride = function setInlineStyleOverride(editorState, inlineStyleOverride) {\n return EditorState.set(editorState, { 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 EditorState.prototype.getCurrentInlineStyle = function getCurrentInlineStyle() {\n var override = this.getInlineStyleOverride();\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 EditorState.prototype.getBlockTree = function getBlockTree(blockKey) {\n return this.getImmutable().getIn(['treeMap', blockKey]);\n };\n\n EditorState.prototype.isSelectionAtStartOfContent = function isSelectionAtStartOfContent() {\n var firstKey = this.getCurrentContent().getBlockMap().first().getKey();\n return this.getSelection().hasEdgeWithin(firstKey, 0, 0);\n };\n\n EditorState.prototype.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 EditorState.prototype.getDirectionMap = function getDirectionMap() {\n return this.getImmutable().get('directionMap');\n };\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 /**\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 return updateSelection(editorState, selection, true);\n };\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\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 /**\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 /**\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 if (editorState.getCurrentContent() === contentState) {\n return editorState;\n }\n\n var forceSelection = changeType !== 'insert-characters';\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();\n\n // Don't discard inline style overrides for the following change types:\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\n return EditorState.set(editorState, editorStateChanges);\n };\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 if (!newCurrentContent) {\n return editorState;\n }\n\n var currentContent = editorState.getCurrentContent();\n var directionMap = EditorBidiService.getDirectionMap(newCurrentContent, editorState.getDirectionMap());\n\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 /**\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 if (!newCurrentContent) {\n return editorState;\n }\n\n var currentContent = editorState.getCurrentContent();\n var directionMap = EditorBidiService.getDirectionMap(newCurrentContent, editorState.getDirectionMap());\n\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 /**\n * Not for public consumption.\n */\n\n\n function EditorState(immutable) {\n _classCallCheck(this, EditorState);\n\n this._immutable = immutable;\n }\n\n /**\n * Not for public consumption.\n */\n\n\n EditorState.prototype.getImmutable = function getImmutable() {\n return this._immutable;\n };\n\n return EditorState;\n}();\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/**\n * Regenerate the entire tree map for a given ContentState and decorator.\n * Returns an OrderedMap that maps all available ContentBlock objects.\n */\nfunction generateNewTreeMap(contentState, decorator) {\n return contentState.getBlockMap().map(function (block) {\n return BlockTree.generate(contentState, block, decorator);\n }).toOrderedMap();\n}\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 */\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/**\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 */\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/**\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 */\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);\n\n // If the cursor is not at the start of the block, look backward to\n // preserve the style of the preceding character.\n if (startOffset > 0) {\n return startBlock.getInlineStyleAt(startOffset - 1);\n }\n\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 if (startBlock.getLength()) {\n return startBlock.getInlineStyleAt(0);\n }\n\n // Otherwise, look upward in the document to find the closest character.\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);\n\n // If there is a character just inside the selection, use its style.\n if (startOffset < startBlock.getLength()) {\n return startBlock.getInlineStyleAt(startOffset);\n }\n\n // Check if the selection at the end of a non-empty block. Use the last\n // style in the block.\n if (startOffset > 0) {\n return startBlock.getInlineStyleAt(startOffset - 1);\n }\n\n // Otherwise, look upward in the document to find the closest character.\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) return lastNonEmpty.getInlineStyleAt(lastNonEmpty.getLength() - 1);\n return OrderedSet();\n}\n\nmodule.exports = EditorState;","/**\n * Copyright (c) 2013-present, 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 * @providesModule moveBlockInContentState\n * @format\n * \n */\n\n'use strict';\n\nvar ContentBlockNode = require('./ContentBlockNode');\nvar Immutable = require('immutable');\n\nvar getNextDelimiterBlockKey = require('./getNextDelimiterBlockKey');\nvar invariant = require('fbjs/lib/invariant');\n\nvar OrderedMap = Immutable.OrderedMap,\n List = Immutable.List;\n\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 }\n // possible values of 'insertionMode' are: 'after', 'before'\n var isInsertedAfterTarget = insertionMode === 'after';\n\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\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 });\n\n // update old prev\n transformBlock(originalPrevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: originalNextSiblingKey\n });\n });\n\n // update old next\n transformBlock(originalNextSiblingKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalPrevSiblingKey\n });\n });\n\n // update new next\n transformBlock(newNextSiblingKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalBlockKey\n });\n });\n\n // update new prev\n transformBlock(newPrevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: originalBlockKey\n });\n });\n\n // update new parent\n transformBlock(newParentKey, blocks, function (block) {\n var newParentChildrenList = block.getChildKeys();\n var targetBlockIndex = newParentChildrenList.indexOf(originalTargetKey);\n\n var insertionIndex = isInsertedAfterTarget ? targetBlockIndex + 1 : targetBlockIndex !== 0 ? targetBlockIndex - 1 : 0;\n\n var newChildrenArray = newParentChildrenList.toArray();\n newChildrenArray.splice(insertionIndex, 0, originalBlockKey);\n\n return block.merge({\n children: List(newChildrenArray)\n });\n });\n\n // update block\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\n var targetKey = targetBlock.getKey();\n var blockKey = blockToBeMoved.getKey();\n\n !(blockKey !== targetKey) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n\n var blockMap = contentState.getBlockMap();\n var isExperimentalTreeBlock = blockToBeMoved instanceof ContentBlockNode;\n\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\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\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\n var blocksAfter = blockMapWithoutBlocksToBeMoved.toSeq().skipUntil(function (v) {\n return v === targetBlock;\n }).skip(1);\n\n var slicedBlocks = blocksToBeMoved.map(function (block) {\n return [block.getKey(), block];\n });\n\n var newBlocks = OrderedMap();\n\n if (insertionMode === 'before') {\n var blockBefore = contentState.getBlockBefore(targetKey);\n\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\n newBlocks = blocksBefore.concat([].concat(slicedBlocks, [[targetKey, targetBlock]]), blocksAfter).toOrderedMap();\n } else if (insertionMode === 'after') {\n var blockAfter = contentState.getBlockAfter(targetKey);\n\n !(!blockAfter || blockAfter.getKey() !== blockKey) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n\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) 2013-present, 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 * @providesModule AtomicBlockUtils\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nvar BlockMapBuilder = require('./BlockMapBuilder');\nvar CharacterMetadata = require('./CharacterMetadata');\nvar ContentBlock = require('./ContentBlock');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\nvar Immutable = require('immutable');\nvar SelectionState = require('./SelectionState');\n\nvar generateRandomKey = require('./generateRandomKey');\nvar moveBlockInContentState = require('./moveBlockInContentState');\n\nvar experimentalTreeDataSupport = DraftFeatureFlags.draft_tree_data_support;\nvar ContentBlockRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat;\n\n\nvar AtomicBlockUtils = {\n insertAtomicBlock: function insertAtomicBlock(editorState, entityKey, character) {\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n\n var afterRemoval = DraftModifier.removeRange(contentState, selectionState, 'backward');\n\n var targetSelection = afterRemoval.getSelectionAfter();\n var afterSplit = DraftModifier.splitBlock(afterRemoval, targetSelection);\n var insertionTarget = afterSplit.getSelectionAfter();\n\n var asAtomicBlock = DraftModifier.setBlockType(afterSplit, insertionTarget, 'atomic');\n\n var charData = CharacterMetadata.create({ entity: entityKey });\n\n var atomicBlockConfig = {\n key: generateRandomKey(),\n type: 'atomic',\n text: character,\n characterList: List(Repeat(charData, character.length))\n };\n\n var atomicDividerBlockConfig = {\n key: generateRandomKey(),\n type: 'unstyled'\n };\n\n if (experimentalTreeDataSupport) {\n atomicBlockConfig = _extends({}, atomicBlockConfig, {\n nextSibling: atomicDividerBlockConfig.key\n });\n atomicDividerBlockConfig = _extends({}, atomicDividerBlockConfig, {\n prevSibling: atomicBlockConfig.key\n });\n }\n\n var fragmentArray = [new ContentBlockRecord(atomicBlockConfig), new ContentBlockRecord(atomicDividerBlockConfig)];\n\n var fragment = BlockMapBuilder.createFromArray(fragmentArray);\n\n var withAtomicBlock = DraftModifier.replaceWithFragment(asAtomicBlock, insertionTarget, fragment);\n\n var newContent = withAtomicBlock.merge({\n selectionBefore: selectionState,\n selectionAfter: withAtomicBlock.getSelectionAfter().set('hasFocus', true)\n });\n\n return EditorState.push(editorState, newContent, 'insert-fragment');\n },\n\n moveAtomicBlock: function moveAtomicBlock(editorState, atomicBlock, targetRange, insertionMode) {\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n\n var withMovedAtomicBlock = void 0;\n\n if (insertionMode === 'before' || insertionMode === 'after') {\n var targetBlock = contentState.getBlockForKey(insertionMode === 'before' ? targetRange.getStartKey() : targetRange.getEndKey());\n\n withMovedAtomicBlock = moveBlockInContentState(contentState, atomicBlock, targetBlock, insertionMode);\n } else {\n var afterRemoval = DraftModifier.removeRange(contentState, targetRange, 'backward');\n\n var selectionAfterRemoval = afterRemoval.getSelectionAfter();\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\n var selectionAfterSplit = afterSplit.getSelectionAfter();\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\n return EditorState.push(editorState, newContent, 'move-block');\n }\n};\n\nmodule.exports = AtomicBlockUtils;","/**\n * Copyright (c) 2013-present, 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 * @providesModule CompositeDraftDecorator\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Immutable = require('immutable');\n\nvar List = Immutable.List;\n\n\nvar DELIMITER = '.';\n\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 = function () {\n function CompositeDraftDecorator(decorators) {\n _classCallCheck(this, CompositeDraftDecorator);\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 CompositeDraftDecorator.prototype.getDecorations = function getDecorations(block, contentState) {\n var decorations = Array(block.getText().length).fill(null);\n\n this._decorators.forEach(function ( /*object*/decorator, /*number*/ii) {\n var counter = 0;\n var strategy = decorator.strategy;\n var callback = function callback( /*number*/start, /*number*/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 strategy(block, callback, contentState);\n });\n\n return List(decorations);\n };\n\n CompositeDraftDecorator.prototype.getComponentForKey = function getComponentForKey(key) {\n var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n return this._decorators[componentKey].component;\n };\n\n CompositeDraftDecorator.prototype.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/**\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 return true;\n}\n\n/**\n * Splice the specified component into our decoration array at the desired\n * range.\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;","'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 return Array.prototype.map.call(arguments, replace).join(' ');\n}\n\nfunction replace(str) {\n return str.replace(/\\//g, '-');\n}\n\nmodule.exports = cx;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DefaultDraftBlockRenderMap\n * @format\n * \n */\n\n'use strict';\n\nvar _require = require('immutable'),\n Map = _require.Map;\n\nvar React = require('react');\n\nvar cx = require('fbjs/lib/cx');\n\nvar UL_WRAP = React.createElement('ul', { className: cx('public/DraftStyleDefault/ul') });\nvar OL_WRAP = React.createElement('ol', { className: cx('public/DraftStyleDefault/ol') });\nvar PRE_WRAP = React.createElement('pre', { 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 '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});\n\nmodule.exports = DefaultDraftBlockRenderMap;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DefaultDraftInlineStyle\n * @format\n * \n */\n\n'use strict';\n\nmodule.exports = {\n BOLD: {\n fontWeight: 'bold'\n },\n\n CODE: {\n fontFamily: 'monospace',\n wordWrap: 'break-word'\n },\n\n ITALIC: {\n fontStyle: 'italic'\n },\n\n STRIKETHROUGH: {\n textDecoration: 'line-through'\n },\n\n UNDERLINE: {\n textDecoration: 'underline'\n }\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 */\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};","/**\n * Copyright (c) 2013-present, 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 * @providesModule getEntityKeyForSelection\n * @format\n * \n */\n\n'use strict';\n\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 */\nfunction getEntityKeyForSelection(contentState, targetSelection) {\n var entityKey;\n\n if (targetSelection.isCollapsed()) {\n var key = targetSelection.getAnchorKey();\n var offset = targetSelection.getAnchorOffset();\n if (offset > 0) {\n entityKey = contentState.getBlockForKey(key).getEntityAt(offset - 1);\n if (entityKey !== contentState.getBlockForKey(key).getEntityAt(offset)) {\n return null;\n }\n return filterKey(contentState.getEntityMap(), entityKey);\n }\n return null;\n }\n\n var startKey = targetSelection.getStartKey();\n var startOffset = targetSelection.getStartOffset();\n var startBlock = contentState.getBlockForKey(startKey);\n\n entityKey = startOffset === startBlock.getLength() ? null : startBlock.getEntityAt(startOffset);\n\n return filterKey(contentState.getEntityMap(), entityKey);\n}\n\n/**\n * Determine whether an entity key corresponds to a `MUTABLE` entity. If so,\n * return it. If not, return null.\n */\nfunction filterKey(entityMap, entityKey) {\n if (entityKey) {\n var entity = entityMap.__get(entityKey);\n return entity.getMutability() === 'MUTABLE' ? entityKey : null;\n }\n return null;\n}\n\nmodule.exports = getEntityKeyForSelection;","/**\n * Copyright (c) 2013-present, 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 * @providesModule isEventHandled\n * @format\n * \n */\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;","/**\n * Copyright (c) 2013-present, 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 * @providesModule isSelectionAtLeafStart\n * @format\n * \n */\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\n var isAtStart = false;\n\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 if (offset === leafStart) {\n isAtStart = true;\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n\n return isAtStart;\n}\n\nmodule.exports = isSelectionAtLeafStart;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorCompositionHandler\n * @format\n * \n */\n\n'use strict';\n\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\nvar Keys = require('fbjs/lib/Keys');\n\nvar getEntityKeyForSelection = require('./getEntityKeyForSelection');\nvar isEventHandled = require('./isEventHandled');\nvar isSelectionAtLeafStart = require('./isSelectionAtLeafStart');\n\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 */\nvar RESOLVE_DELAY = 20;\n\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 */\nvar resolved = false;\nvar stillComposing = false;\nvar textInputData = '';\n\nvar DraftEditorCompositionHandler = {\n onBeforeInput: function onBeforeInput(editor, e) {\n textInputData = (textInputData || '') + e.data;\n },\n\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 },\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\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 editor._onKeyDown(e);\n return;\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 resolved = true;\n var composedChars = textInputData;\n textInputData = '';\n\n var editorState = EditorState.set(editor._latestEditorState, {\n inCompositionMode: false\n });\n\n var currentStyle = editorState.getCurrentInlineStyle();\n var entityKey = getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection());\n\n var mustReset = !composedChars || isSelectionAtLeafStart(editorState) || currentStyle.size > 0 || entityKey !== null;\n\n if (mustReset) {\n editor.restoreEditorDOM();\n }\n\n editor.exitCurrentMode();\n\n if (composedChars) {\n if (DraftFeatureFlags.draft_handlebeforeinput_composed_text && editor.props.handleBeforeInput && isEventHandled(editor.props.handleBeforeInput(composedChars, editorState))) {\n return;\n }\n // If characters have been composed, re-rendering with the update\n // is sufficient to reset the editor.\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), composedChars, currentStyle, entityKey);\n editor.update(EditorState.push(editorState, contentState, 'insert-characters'));\n return;\n }\n\n if (mustReset) {\n editor.update(EditorState.set(editorState, {\n nativelyRenderedContent: null,\n forceSelection: true\n }));\n }\n }\n};\n\nmodule.exports = DraftEditorCompositionHandler;","/*!\n * UAParser.js v0.7.21\n * Lightweight JavaScript-based User-Agent string parser\n * https://github.com/faisalman/ua-parser-js\n *\n * Copyright © 2012-2019 Faisal Salman <f@faisalman.com>\n * Licensed under MIT License\n */\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '0.7.21',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major', // deprecated\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded';\n\n\n ///////////\n // Helper\n //////////\n\n\n var util = {\n extend : function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n has : function (str1, str2) {\n if (typeof str1 === \"string\") {\n return str2.toLowerCase().indexOf(str1.toLowerCase()) !== -1;\n } else {\n return false;\n }\n },\n lowerize : function (str) {\n return str.toLowerCase();\n },\n major : function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g,'').split(\".\")[0] : undefined;\n },\n trim : function (str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n };\n\n\n ///////////////\n // Map helper\n //////////////\n\n\n var mapper = {\n\n rgx : function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length == 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length == 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n str : function (str, map) {\n\n for (var i in map) {\n // check if array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (util.has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (util.has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n }\n };\n\n\n ///////////////\n // String map\n //////////////\n\n\n var maps = {\n\n browser : {\n oldsafari : {\n version : {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n }\n }\n },\n\n device : {\n amazon : {\n model : {\n 'Fire Phone' : ['SD', 'KF']\n }\n },\n sprint : {\n model : {\n 'Evo Shift 4G' : '7373KT'\n },\n vendor : {\n 'HTC' : 'APA',\n 'Sprint' : 'Sprint'\n }\n }\n },\n\n os : {\n windows : {\n version : {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n }\n }\n }\n };\n\n\n //////////////\n // Regex map\n /////////////\n\n\n var regexes = {\n\n browser : [[\n\n // Presto based\n /(opera\\smini)\\/([\\w\\.-]+)/i, // Opera Mini\n /(opera\\s[mobiletab]+).+version\\/([\\w\\.-]+)/i, // Opera Mobi/Tablet\n /(opera).+version\\/([\\w\\.]+)/i, // Opera > 9.80\n /(opera)[\\/\\s]+([\\w\\.]+)/i // Opera < 9.80\n ], [NAME, VERSION], [\n\n /(opios)[\\/\\s]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [[NAME, 'Opera Mini'], VERSION], [\n\n /\\s(opr)\\/([\\w\\.]+)/i // Opera Webkit\n ], [[NAME, 'Opera'], VERSION], [\n\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/\\s]?([\\w\\.]*)/i,\n // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant\\s|iemobile|slim)(?:browser)?[\\/\\s]?([\\w\\.]*)/i,\n // Avant/IEMobile/SlimBrowser\n /(bidubrowser|baidubrowser)[\\/\\s]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie)\\s([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based\n /(rekonq)\\/([\\w\\.]*)/i, // Rekonq\n /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\\/([\\w\\.-]+)/i\n // Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n ], [NAME, VERSION], [\n\n /(konqueror)\\/([\\w\\.]+)/i // Konqueror\n ], [[NAME, 'Konqueror'], VERSION], [\n\n /(trident).+rv[:\\s]([\\w\\.]+).+like\\sgecko/i // IE11\n ], [[NAME, 'IE'], VERSION], [\n\n /(edge|edgios|edga|edg)\\/((\\d+)?[\\w\\.]+)/i // Microsoft Edge\n ], [[NAME, 'Edge'], VERSION], [\n\n /(yabrowser)\\/([\\w\\.]+)/i // Yandex\n ], [[NAME, 'Yandex'], VERSION], [\n\n /(Avast)\\/([\\w\\.]+)/i // Avast Secure Browser\n ], [[NAME, 'Avast Secure Browser'], VERSION], [\n\n /(AVG)\\/([\\w\\.]+)/i // AVG Secure Browser\n ], [[NAME, 'AVG Secure Browser'], VERSION], [\n\n /(puffin)\\/([\\w\\.]+)/i // Puffin\n ], [[NAME, 'Puffin'], VERSION], [\n\n /(focus)\\/([\\w\\.]+)/i // Firefox Focus\n ], [[NAME, 'Firefox Focus'], VERSION], [\n\n /(opt)\\/([\\w\\.]+)/i // Opera Touch\n ], [[NAME, 'Opera Touch'], VERSION], [\n\n /((?:[\\s\\/])uc?\\s?browser|(?:juc.+)ucweb)[\\/\\s]?([\\w\\.]+)/i // UCBrowser\n ], [[NAME, 'UCBrowser'], VERSION], [\n\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n\n /(windowswechat qbcore)\\/([\\w\\.]+)/i // WeChat Desktop for Windows Built-in Browser\n ], [[NAME, 'WeChat(Win) Desktop'], VERSION], [\n\n /(micromessenger)\\/([\\w\\.]+)/i // WeChat\n ], [[NAME, 'WeChat'], VERSION], [\n\n /(brave)\\/([\\w\\.]+)/i // Brave browser\n ], [[NAME, 'Brave'], VERSION], [\n\n /(qqbrowserlite)\\/([\\w\\.]+)/i // QQBrowserLite\n ], [NAME, VERSION], [\n\n /(QQ)\\/([\\d\\.]+)/i // QQ, aka ShouQ\n ], [NAME, VERSION], [\n\n /m?(qqbrowser)[\\/\\s]?([\\w\\.]+)/i // QQBrowser\n ], [NAME, VERSION], [\n\n /(baiduboxapp)[\\/\\s]?([\\w\\.]+)/i // Baidu App\n ], [NAME, VERSION], [\n\n /(2345Explorer)[\\/\\s]?([\\w\\.]+)/i // 2345 Browser\n ], [NAME, VERSION], [\n\n /(MetaSr)[\\/\\s]?([\\w\\.]+)/i // SouGouBrowser\n ], [NAME], [\n\n /(LBBROWSER)/i // LieBao Browser\n ], [NAME], [\n\n /xiaomi\\/miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI Browser']], [\n\n /;fbav\\/([\\w\\.]+);/i // Facebook App for iOS & Android\n ], [VERSION, [NAME, 'Facebook']], [\n\n /safari\\s(line)\\/([\\w\\.]+)/i, // Line App for iOS\n /android.+(line)\\/([\\w\\.]+)\\/iab/i // Line App for Android\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)|\\s)/i // Chrome Headless\n ], [VERSION, [NAME, 'Chrome Headless']], [\n\n /\\swv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, /(.+)/, '$1 WebView'], VERSION], [\n\n /((?:oculus|samsung)browser)\\/([\\w\\.]+)/i\n ], [[NAME, /(.+(?:g|us))(.+)/, '$1 $2'], VERSION], [ // Oculus / Samsung Browser\n\n /android.+version\\/([\\w\\.]+)\\s+(?:mobile\\s?safari|safari)*/i // Android Browser\n ], [VERSION, [NAME, 'Android Browser']], [\n\n /(sailfishbrowser)\\/([\\w\\.]+)/i // Sailfish Browser\n ], [[NAME, 'Sailfish Browser'], VERSION], [\n\n /(chrome|omniweb|arora|[tizenoka]{5}\\s?browser)\\/v?([\\w\\.]+)/i\n // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /(dolfin)\\/([\\w\\.]+)/i // Dolphin\n ], [[NAME, 'Dolphin'], VERSION], [\n\n /(qihu|qhbrowser|qihoobrowser|360browser)/i // 360\n ], [[NAME, '360 Browser']], [\n\n /((?:android.+)crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [[NAME, 'Chrome'], VERSION], [\n\n /(coast)\\/([\\w\\.]+)/i // Opera Coast\n ], [[NAME, 'Opera Coast'], VERSION], [\n\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, 'Firefox']], [\n\n /version\\/([\\w\\.]+).+?mobile\\/\\w+\\s(safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n\n /version\\/([\\w\\.]+).+?(mobile\\s?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n\n /webkit.+?(gsa)\\/([\\w\\.]+).+?(mobile\\s?safari|safari)(\\/[\\w\\.]+)/i // Google Search Appliance on iOS\n ], [[NAME, 'GSA'], VERSION], [\n\n /webkit.+?(mobile\\s?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape)\\/([\\w\\.-]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo\\sbrowser|minimo|conkeror)[\\/\\s]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([\\w\\.-]+)$/i,\n\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(mozilla)\\/([\\w\\.]+).+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\\/\\s]?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir\n /(links)\\s\\(([\\w\\.]+)/i, // Links\n /(gobrowser)\\/?([\\w\\.]*)/i, // GoBrowser\n /(ice\\s?browser)\\/v?([\\w\\._]+)/i, // ICE Browser\n /(mosaic)[\\/\\s]([\\w\\.]+)/i // Mosaic\n ], [NAME, VERSION]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\\)]/i // AMD64\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, util.lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32\n ], [[ARCHITECTURE, 'ia32']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows\\s(ce|mobile);\\sppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?:\\smac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, '', util.lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|arm(?:64|(?=v\\d+[;l]))|(?=atmel\\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, util.lowerize]]\n ],\n\n device : [[\n\n /\\((ipad|playbook);[\\w\\s\\),;-]+(rim|apple)/i // iPad/PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/ // iPad\n ], [MODEL, [VENDOR, 'Apple'], [TYPE, TABLET]], [\n\n /(apple\\s{0,1}tv)/i // Apple TV\n ], [[MODEL, 'Apple TV'], [VENDOR, 'Apple'], [TYPE, SMARTTV]], [\n\n /(archos)\\s(gamepad2?)/i, // Archos\n /(hp).+(touchpad)/i, // HP TouchPad\n /(hp).+(tablet)/i, // HP Tablet\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /\\s(nook)[\\w\\s]+build\\/(\\w+)/i, // Nook\n /(dell)\\s(strea[kpr\\s\\d]*[\\dko])/i // Dell Streak\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(kf[A-z]+)\\sbuild\\/.+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [\n /(sd|kf)[0349hijorstuw]+\\sbuild\\/.+silk\\//i // Fire Phone\n ], [[MODEL, mapper.str, maps.device.amazon.model], [VENDOR, 'Amazon'], [TYPE, MOBILE]], [\n /android.+aft([bms])\\sbuild/i // Fire TV\n ], [MODEL, [VENDOR, 'Amazon'], [TYPE, SMARTTV]], [\n\n /\\((ip[honed|\\s\\w*]+);.+(apple)/i // iPod/iPhone\n ], [MODEL, VENDOR, [TYPE, MOBILE]], [\n /\\((ip[honed|\\s\\w*]+);/i // iPod/iPhone\n ], [MODEL, [VENDOR, 'Apple'], [TYPE, MOBILE]], [\n\n /(blackberry)[\\s-]?(\\w+)/i, // BlackBerry\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\\s_-]?([\\w-]*)/i,\n // BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp)\\s([\\w\\s]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i // Asus\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /\\(bb10;\\s(\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, 'BlackBerry'], [TYPE, MOBILE]], [\n // Asus Tablets\n /android.+(transfo[prime\\s]{4,10}\\s\\w+|eeepc|slider\\s\\w+|nexus 7|padfone|p00c)/i\n ], [MODEL, [VENDOR, 'Asus'], [TYPE, TABLET]], [\n\n /(sony)\\s(tablet\\s[ps])\\sbuild\\//i, // Sony\n /(sony)?(?:sgp.+)\\sbuild\\//i\n ], [[VENDOR, 'Sony'], [MODEL, 'Xperia Tablet'], [TYPE, TABLET]], [\n /android.+\\s([c-g]\\d{4}|so[-l]\\w+)(?=\\sbuild\\/|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, 'Sony'], [TYPE, MOBILE]], [\n\n /\\s(ouya)\\s/i, // Ouya\n /(nintendo)\\s([wids3u]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n\n /android.+;\\s(shield)\\sbuild/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n\n /(playstation\\s[34portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [\n\n /(sprint\\s(\\w+))/i // Sprint Phones\n ], [[VENDOR, mapper.str, maps.device.sprint.vendor], [MODEL, mapper.str, maps.device.sprint.model], [TYPE, MOBILE]], [\n\n /(htc)[;_\\s-]+([\\w\\s]+(?=\\)|\\sbuild)|\\w+)/i, // HTC\n /(zte)-(\\w*)/i, // ZTE\n /(alcatel|geeksphone|nexian|panasonic|(?=;\\s)sony)[_\\s-]?([\\w-]*)/i\n // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n /(nexus\\s9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n\n /d\\/huawei([\\w\\s-]+)[;\\)]/i,\n /(nexus\\s6p|vog-l29|ane-lx1|eml-l29)/i // Huawei\n ], [MODEL, [VENDOR, 'Huawei'], [TYPE, MOBILE]], [\n\n /android.+(bah2?-a?[lw]\\d{2})/i // Huawei MediaPad\n ], [MODEL, [VENDOR, 'Huawei'], [TYPE, TABLET]], [\n\n /(microsoft);\\s(lumia[\\s\\w]+)/i // Microsoft Lumia\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /[\\s\\(;](xbox(?:\\sone)?)[\\s\\);]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, 'Microsoft'], [TYPE, CONSOLE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, 'Microsoft'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\s(milestone|droid(?:[2-4x]|\\s(?:bionic|x2|pro|razr))?:?(\\s4g)?)[\\w\\s]+build\\//i,\n /mot[\\s-]?(\\w*)/i,\n /(XT\\d{3,4}) build\\//i,\n /(nexus\\s6)/i\n ], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [\n /android.+\\s(mz60\\d|xoom[\\s2]{0,2})\\sbuild\\//i\n ], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [\n\n /hbbtv\\/\\d+\\.\\d+\\.\\d+\\s+\\([\\w\\s]*;\\s*(\\w[^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, util.trim], [MODEL, util.trim], [TYPE, SMARTTV]], [\n\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, 'Samsung'], [TYPE, SMARTTV]], [\n\n /\\(dtv[\\);].+(aquos)/i // Sharp\n ], [MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]], [\n\n /android.+((sch-i[89]0\\d|shw-m380s|gt-p\\d{4}|gt-n\\d+|sgh-t8[56]9|nexus 10))/i,\n /((SM-T\\w+))/i\n ], [[VENDOR, 'Samsung'], MODEL, [TYPE, TABLET]], [ // Samsung\n /smart-tv.+(samsung)/i\n ], [VENDOR, [TYPE, SMARTTV], MODEL], [\n /((s[cgp]h-\\w+|gt-\\w+|galaxy\\snexus|sm-\\w[\\w\\d]+))/i,\n /(sam[sung]*)[\\s-]*(\\w+-?[\\w-]*)/i,\n /sec-((sgh\\w+))/i\n ], [[VENDOR, 'Samsung'], MODEL, [TYPE, MOBILE]], [\n\n /sie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n\n /(maemo|nokia).*(n900|lumia\\s\\d+)/i, // Nokia\n /(nokia)[\\s_-]?([\\w-]*)/i\n ], [[VENDOR, 'Nokia'], MODEL, [TYPE, MOBILE]], [\n\n /android[x\\d\\.\\s;]+\\s([ab][1-7]\\-?[0178a]\\d\\d?)/i // Acer\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n /android.+([vl]k\\-?\\d{3})\\s+build/i // LG Tablet\n ], [MODEL, [VENDOR, 'LG'], [TYPE, TABLET]], [\n /android\\s3\\.[\\s\\w;-]{10}(lg?)-([06cv9]{3,4})/i // LG Tablet\n ], [[VENDOR, 'LG'], MODEL, [TYPE, TABLET]], [\n /(lg) netcast\\.tv/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nexus\\s[45])/i, // LG\n /lg[e;\\s\\/-]+(\\w*)/i,\n /android.+lg(\\-?[\\d\\w]+)\\s+build/i\n ], [MODEL, [VENDOR, 'LG'], [TYPE, MOBILE]], [\n\n /(lenovo)\\s?(s(?:5000|6000)(?:[\\w-]+)|tab(?:[\\s\\w]+))/i // Lenovo tablets\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /android.+(ideatab[a-z0-9\\-\\s]+)/i // Lenovo\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n /(lenovo)[_\\s-]?([\\w-]+)/i\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /linux;.+((jolla));/i // Jolla\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /((pebble))app\\/[\\d\\.]+\\s/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n\n /android.+;\\s(oppo)\\s?([\\w\\s]+)\\sbuild/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /crkey/i // Google Chromecast\n ], [[MODEL, 'Chromecast'], [VENDOR, 'Google'], [TYPE, SMARTTV]], [\n\n /android.+;\\s(glass)\\s\\d/i // Google Glass\n ], [MODEL, [VENDOR, 'Google'], [TYPE, WEARABLE]], [\n\n /android.+;\\s(pixel c)[\\s)]/i // Google Pixel C\n ], [MODEL, [VENDOR, 'Google'], [TYPE, TABLET]], [\n\n /android.+;\\s(pixel( [23])?( xl)?)[\\s)]/i // Google Pixel\n ], [MODEL, [VENDOR, 'Google'], [TYPE, MOBILE]], [\n\n /android.+;\\s(\\w+)\\s+build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /android.+(hm[\\s\\-_]*note?[\\s_]*(?:\\d\\w)?)\\s+build/i, // Xiaomi Hongmi\n /android.+(mi[\\s\\-_]*(?:a\\d|one|one[\\s_]plus|note lte)?[\\s_]*(?:\\d?\\w?)[\\s_]*(?:plus)?)\\s+build/i, \n // Xiaomi Mi\n /android.+(redmi[\\s\\-_]*(?:note)?(?:[\\s_]*[\\w\\s]+))\\s+build/i // Redmi Phones\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [\n /android.+(mi[\\s\\-_]*(?:pad)(?:[\\s_]*[\\w\\s]+))\\s+build/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [\n /android.+;\\s(m[1-5]\\snote)\\sbuild/i // Meizu\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n /(mz)-([\\w-]{2,})/i\n ], [[VENDOR, 'Meizu'], MODEL, [TYPE, MOBILE]], [\n\n /android.+a000(1)\\s+build/i, // OnePlus\n /android.+oneplus\\s(a\\d{4})[\\s)]/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n /android.+[;\\/]\\s*(RCT[\\d\\w]+)\\s+build/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n\n /android.+[;\\/\\s]+(Venue[\\d\\s]{2,7})\\s+build/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(Q[T|M][\\d\\w]+)\\s+build/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s+(Barnes[&\\s]+Noble\\s+|BN[RT])(V?.*)\\s+build/i // Barnes & Noble Tablet\n ], [[VENDOR, 'Barnes & Noble'], MODEL, [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s+(TM\\d{3}.*\\b)\\s+build/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n\n /android.+;\\s(k88)\\sbuild/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(gen\\d{3})\\s+build.*49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n\n /android.+[;\\/]\\s*(zur\\d{3})\\s+build/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*((Zeki)?TB.*\\b)\\s+build/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n\n /(android).+[;\\/]\\s+([YR]\\d{2})\\s+build/i,\n /android.+[;\\/]\\s+(Dragon[\\-\\s]+Touch\\s+|DT)(\\w{5})\\sbuild/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(NS-?\\w{0,9})\\sbuild/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*((NX|Next)-?\\w{0,9})\\s+build/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(Xtreme\\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\\s+build/i\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [ // Voice Xtreme Phones\n\n /android.+[;\\/]\\s*(LVTEL\\-)?(V1[12])\\s+build/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n\n /android.+;\\s(PH-1)\\s/i\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [ // Essential PH-1\n\n /android.+[;\\/]\\s*(V(100MD|700NA|7011|917G).*\\b)\\s+build/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(Le[\\s\\-]+Pan)[\\s\\-]+(\\w{1,9})\\s+build/i // Le Pan Tablets\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(Trio[\\s\\-]*.*)\\s+build/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*(Trinity)[\\-\\s]*(T\\d{3})\\s+build/i // Trinity Tablets\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /android.+[;\\/]\\s*TU_(1491)\\s+build/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n\n /android.+(KS(.+))\\s+build/i // Amazon Kindle Tablets\n ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [\n\n /android.+(Gigaset)[\\s\\-]+(Q\\w{1,9})\\s+build/i // Gigaset Tablets\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /\\s(tablet|tab)[;\\/]/i, // Unidentifiable Tablet\n /\\s(mobile)(?:[;\\/]|\\ssafari)/i // Unidentifiable Mobile\n ], [[TYPE, util.lowerize], VENDOR, MODEL], [\n\n /[\\s\\/\\(](smart-?tv)[;\\)]/i // SmartTV\n ], [[TYPE, SMARTTV]], [\n\n /(android[\\w\\.\\s\\-]{0,9});.+build/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+\\sedge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, 'EdgeHTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, \n // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /(khtml|tasman|links)[\\/\\s]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/\\s]([23]\\.[\\d\\.]+)/i // iCab\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9}).+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows based\n /microsoft\\s(windows)\\s(vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows)\\snt\\s6\\.2;\\s(arm)/i, // Windows RT\n /(windows\\sphone(?:\\sos)*)[\\s\\/]?([\\d\\.\\s\\w]*)/i, // Windows Phone\n /(windows\\smobile|windows)[\\s\\/]?([ntce\\d\\.\\s]+\\w)/i\n ], [NAME, [VERSION, mapper.str, maps.os.windows.version]], [\n /(win(?=3|9|n)|win\\s9x\\s)([nt\\d\\.]+)/i\n ], [[NAME, 'Windows'], [VERSION, mapper.str, maps.os.windows.version]], [\n\n // Mobile/Embedded OS\n /\\((bb)(10);/i // BlackBerry 10\n ], [[NAME, 'BlackBerry'], VERSION], [\n /(blackberry)\\w*\\/?([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/\\s]([\\w\\.]+)/i, // Tizen/KaiOS\n /(android|webos|palm\\sos|qnx|bada|rim\\stablet\\sos|meego|sailfish|contiki)[\\/\\s-]?([\\w\\.]*)/i\n // Android/WebOS/Palm/QNX/Bada/RIM/MeeGo/Contiki/Sailfish OS\n ], [NAME, VERSION], [\n /(symbian\\s?os|symbos|s60(?=;))[\\/\\s-]?([\\w\\.]*)/i // Symbian\n ], [[NAME, 'Symbian'], VERSION], [\n /\\((series40);/i // Series 40\n ], [NAME], [\n /mozilla.+\\(mobile;.+gecko.+firefox/i // Firefox OS\n ], [[NAME, 'Firefox OS'], VERSION], [\n\n // Console\n /(nintendo|playstation)\\s([wids34portablevu]+)/i, // Nintendo/Playstation\n\n // GNU/Linux based\n /(mint)[\\/\\s\\(]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[;\\s]/i, // Mageia/VectorLinux\n /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\\/\\s-]?(?!chrom)([\\w\\.-]*)/i,\n // Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware\n // Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus\n /(hurd|linux)\\s?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu)\\s?([\\w\\.]*)/i // GNU\n ], [NAME, VERSION], [\n\n /(cros)\\s[\\w]+\\s([\\w\\.]+\\w)/i // Chromium OS\n ], [[NAME, 'Chromium OS'], VERSION],[\n\n // Solaris\n /(sunos)\\s?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n\n // BSD based\n /\\s([frentopc-]{0,4}bsd|dragonfly)\\s?([\\w\\.]*)/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly\n ], [NAME, VERSION],[\n\n /(haiku)\\s(\\w+)/i // Haiku\n ], [NAME, VERSION],[\n\n /cfnetwork\\/.+darwin/i,\n /ip[honead]{2,4}(?:.*os\\s([\\w]+)\\slike\\smac|;\\sopera)/i // iOS\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n\n /(mac\\sos\\sx)\\s?([\\w\\s\\.]*)/i,\n /(macintosh|mac(?=_powerpc)\\s)/i // Mac OS\n ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [\n\n // Other\n /((?:open)?solaris)[\\/\\s-]?([\\w\\.]*)/i, // Solaris\n /(aix)\\s((\\d)(?=\\.|\\)|\\s)[\\w\\.])*/i, // AIX\n /(plan\\s9|minix|beos|os\\/2|amigaos|morphos|risc\\sos|openvms|fuchsia)/i,\n // Plan9/Minix/BeOS/OS2/AmigaOS/MorphOS/RISCOS/OpenVMS/Fuchsia\n /(unix)\\s?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n\n /////////////////\n // Constructor\n ////////////////\n var UAParser = function (uastring, extensions) {\n\n if (typeof uastring === 'object') {\n extensions = uastring;\n uastring = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(uastring, extensions).getResult();\n }\n\n var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);\n var rgxmap = extensions ? util.extend(regexes, extensions) : regexes;\n\n this.getBrowser = function () {\n var browser = { name: undefined, version: undefined };\n mapper.rgx.call(browser, ua, rgxmap.browser);\n browser.major = util.major(browser.version); // deprecated\n return browser;\n };\n this.getCPU = function () {\n var cpu = { architecture: undefined };\n mapper.rgx.call(cpu, ua, rgxmap.cpu);\n return cpu;\n };\n this.getDevice = function () {\n var device = { vendor: undefined, model: undefined, type: undefined };\n mapper.rgx.call(device, ua, rgxmap.device);\n return device;\n };\n this.getEngine = function () {\n var engine = { name: undefined, version: undefined };\n mapper.rgx.call(engine, ua, rgxmap.engine);\n return engine;\n };\n this.getOS = function () {\n var os = { name: undefined, version: undefined };\n mapper.rgx.call(os, ua, rgxmap.os);\n return os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return ua;\n };\n this.setUA = function (uastring) {\n ua = uastring;\n return this;\n };\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = {\n NAME : NAME,\n MAJOR : MAJOR, // deprecated\n VERSION : VERSION\n };\n UAParser.CPU = {\n ARCHITECTURE : ARCHITECTURE\n };\n UAParser.DEVICE = {\n MODEL : MODEL,\n VENDOR : VENDOR,\n TYPE : TYPE,\n CONSOLE : CONSOLE,\n MOBILE : MOBILE,\n SMARTTV : SMARTTV,\n TABLET : TABLET,\n WEARABLE: WEARABLE,\n EMBEDDED: EMBEDDED\n };\n UAParser.ENGINE = {\n NAME : NAME,\n VERSION : VERSION\n };\n UAParser.OS = {\n NAME : NAME,\n VERSION : VERSION\n };\n\n ///////////\n // Export\n //////////\n\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === 'function' && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (window) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = window && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (uastring) {\n parser.setUA(uastring);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\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 * 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\n'use strict';\n\nvar UAParser = require('ua-parser-js');\n\nvar UNKNOWN = 'Unknown';\n\nvar PLATFORM_MAP = {\n 'Mac OS': 'Mac OS X'\n};\n\n/**\n * Convert from UAParser platform name to what we expect.\n */\nfunction convertPlatformName(name) {\n return PLATFORM_MAP[name] || name;\n}\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 */\nfunction getBrowserVersion(version) {\n if (!version) {\n return {\n major: '',\n minor: ''\n };\n }\n var parts = version.split('.');\n return {\n major: parts[0],\n minor: parts[1]\n };\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 */\nvar parser = new UAParser();\nvar results = parser.getResult();\n\n// Do some conversion first.\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};\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\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/**\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 */\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/**\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 */\nfunction checkRangeExpression(range, version) {\n var expressions = range.split(rangeRegex);\n\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\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\n return checkSimpleExpression('>=' + startVersion, version) && checkSimpleExpression('<=' + endVersion, version);\n }\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 */\nfunction checkSimpleExpression(range, version) {\n range = range.trim();\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 case '<=':\n return checkLessThanOrEqual(versionComponents, rangeComponents);\n case '>=':\n return checkGreaterThanOrEqual(versionComponents, rangeComponents);\n case '>':\n return checkGreaterThan(versionComponents, rangeComponents);\n case '~':\n case '~>':\n return checkApproximateVersion(versionComponents, rangeComponents);\n default:\n return checkEqual(versionComponents, rangeComponents);\n }\n}\n\n/**\n * Checks whether `a` is less than `b`.\n *\n * @param {array<string>} a\n * @param {array<string>} b\n * @returns {boolean}\n */\nfunction checkLessThan(a, b) {\n return compareComponents(a, b) === -1;\n}\n\n/**\n * Checks whether `a` is less than or equal to `b`.\n *\n * @param {array<string>} a\n * @param {array<string>} b\n * @returns {boolean}\n */\nfunction checkLessThanOrEqual(a, b) {\n var result = compareComponents(a, b);\n return result === -1 || result === 0;\n}\n\n/**\n * Checks whether `a` is equal to `b`.\n *\n * @param {array<string>} a\n * @param {array<string>} b\n * @returns {boolean}\n */\nfunction checkEqual(a, b) {\n return compareComponents(a, b) === 0;\n}\n\n/**\n * Checks whether `a` is greater than or equal to `b`.\n *\n * @param {array<string>} a\n * @param {array<string>} b\n * @returns {boolean}\n */\nfunction checkGreaterThanOrEqual(a, b) {\n var result = compareComponents(a, b);\n return result === 1 || result === 0;\n}\n\n/**\n * Checks whether `a` is greater than `b`.\n *\n * @param {array<string>} a\n * @param {array<string>} b\n * @returns {boolean}\n */\nfunction checkGreaterThan(a, b) {\n return compareComponents(a, b) === 1;\n}\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<string>} a\n * @param {array<string>} b\n * @returns {boolean}\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 var lastIndex = upperBound.length - 1;\n var numeric = parseInt(upperBound[lastIndex], 10);\n if (isNumber(numeric)) {\n upperBound[lastIndex] = numeric + 1 + '';\n }\n\n return checkGreaterThanOrEqual(a, lowerBound) && checkLessThan(a, upperBound);\n}\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 */\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\n return {\n modifier: matches[1],\n rangeComponents: [matches[2]].concat(rangeComponents.slice(1))\n };\n}\n\n/**\n * Determines if `number` is a number.\n *\n * @param {mixed} number\n * @returns {boolean}\n */\nfunction isNumber(number) {\n return !isNaN(number) && isFinite(number);\n}\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 */\nfunction isSimpleVersion(range) {\n return !getModifierAndComponents(range).modifier;\n}\n\n/**\n * Zero-pads array `array` until it is at least `length` long.\n *\n * @param {array} array\n * @param {number} length\n */\nfunction zeroPad(array, length) {\n for (var i = array.length; i < length; i++) {\n array[i] = '0';\n }\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<string>} a\n * @param {array<string>} b\n * @returns {array<array<string>>}\n */\nfunction normalizeVersions(a, b) {\n a = a.slice();\n b = b.slice();\n\n zeroPad(a, b.length);\n\n // mark \"x\" and \"*\" components as equal\n for (var i = 0; i < b.length; i++) {\n var matches = b[i].match(/^[x*]$/i);\n if (matches) {\n b[i] = a[i] = '0';\n\n // final \"*\" greedily zeros all remaining components\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\n return [a, b];\n}\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 */\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/**\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 */\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/**\n * Compares arrays of version components.\n *\n * @param {array<string>} a\n * @param {array<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 */\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 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 * <version Must be less than version\n * <=version Must be less than or equal to version\n * ~version Must be at least version, but less than the next significant\n * revision above version:\n * \"~1.2.3\" is equivalent to \">= 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};\n\nmodule.exports = VersionRange;","/**\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 hasOwnProperty = Object.prototype.hasOwnProperty;\n\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 */\nfunction mapObject(object, callback, context) {\n if (!object) {\n return null;\n }\n var result = {};\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 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\n'use strict';\n\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 return cache[string];\n };\n}\n\nmodule.exports = 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'use strict';\n\nvar UserAgentData = require('./UserAgentData');\nvar VersionRange = require('./VersionRange');\n\nvar mapObject = require('./mapObject');\nvar memoizeStringOnly = require('./memoizeStringOnly');\n\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 */\nfunction compare(name, version, query, normalizer) {\n // check for exact match with no version\n if (name === query) {\n return true;\n }\n\n // check for non-matching names\n if (!query.startsWith(name)) {\n return false;\n }\n\n // full comparison with version\n var range = query.slice(name.length);\n if (version) {\n range = normalizer ? normalizer(range) : range;\n return VersionRange.contains(range, version);\n }\n\n return false;\n}\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 */\nfunction normalizePlatformVersion(version) {\n if (UserAgentData.platformName === 'Windows') {\n return version.replace(/^\\s*NT/, '');\n }\n\n return version;\n}\n\n/**\n * Provides client-side access to the authoritative PHP-generated User Agent\n * information supplied by the server.\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 /**\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 /**\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 /**\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 /**\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 /**\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};\n\nmodule.exports = mapObject(UserAgent, memoizeStringOnly);","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorTextNode.react\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar invariant = require('fbjs/lib/invariant');\n\n// In IE, spans with <br> tags render as two newlines. By rendering a span\n// with only a newline character, we can be sure to render a single line.\nvar useNewlineChar = UserAgent.isBrowser('IE <= 11');\n\n/**\n * Check whether the node should be considered a newline.\n */\nfunction isNewline(node) {\n return useNewlineChar ? node.textContent === '\\n' : node.tagName === 'BR';\n}\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 <span> is naked, Chrome and Safari may do\n * bizarre things to do the DOM -- split text nodes, create extra spans, etc.\n * If the <span> 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 */\nvar NEWLINE_A = useNewlineChar ? React.createElement(\n 'span',\n { key: 'A', 'data-text': 'true' },\n '\\n'\n) : React.createElement('br', { key: 'A', 'data-text': 'true' });\n\nvar NEWLINE_B = useNewlineChar ? React.createElement(\n 'span',\n { key: 'B', 'data-text': 'true' },\n '\\n'\n) : React.createElement('br', { key: 'B', 'data-text': 'true' });\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 = function (_React$Component) {\n _inherits(DraftEditorTextNode, _React$Component);\n\n function DraftEditorTextNode(props) {\n _classCallCheck(this, DraftEditorTextNode);\n\n // By flipping this flag, we also keep flipping keys which forces\n // React to remount this node every time it rerenders.\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this._forceFlag = false;\n return _this;\n }\n\n DraftEditorTextNode.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var node = ReactDOM.findDOMNode(this);\n var shouldBeNewline = nextProps.children === '';\n !(node instanceof Element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'node is not an Element') : invariant(false) : void 0;\n if (shouldBeNewline) {\n return !isNewline(node);\n }\n return node.textContent !== nextProps.children;\n };\n\n DraftEditorTextNode.prototype.componentDidMount = function componentDidMount() {\n this._forceFlag = !this._forceFlag;\n };\n\n DraftEditorTextNode.prototype.componentDidUpdate = function componentDidUpdate() {\n this._forceFlag = !this._forceFlag;\n };\n\n DraftEditorTextNode.prototype.render = function render() {\n if (this.props.children === '') {\n return this._forceFlag ? NEWLINE_A : NEWLINE_B;\n }\n return React.createElement(\n 'span',\n { key: this._forceFlag ? 'A' : 'B', 'data-text': 'true' },\n this.props.children\n );\n };\n\n return DraftEditorTextNode;\n}(React.Component);\n\nmodule.exports = DraftEditorTextNode;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftJsDebugLogging\n */\n\n'use strict';\n\nmodule.exports = {\n logSelectionStateFailure: function logSelectionStateFailure() {\n return null;\n }\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 * @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 */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;","'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\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\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 */\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) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\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 * 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 * @providesModule setDraftEditorSelection\n * @format\n * \n */\n\n'use strict';\n\nvar DraftJsDebugLogging = require('./DraftJsDebugLogging');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar invariant = require('fbjs/lib/invariant');\n\nfunction getAnonymizedDOM(node, getNodeLabels) {\n if (!node) {\n return '[empty]';\n }\n\n var anonymized = anonymizeTextWithin(node, getNodeLabels);\n if (anonymized.nodeType === Node.TEXT_NODE) {\n return anonymized.textContent;\n }\n\n !(anonymized instanceof Element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Node must be an Element if it is not a text node.') : invariant(false) : void 0;\n return anonymized.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 document.createTextNode('[text ' + length + (labels.length ? ' | ' + labels.join(', ') : '') + ']');\n }\n\n var clone = node.cloneNode();\n if (clone.nodeType === 1 && labels.length) {\n clone.setAttribute('data-labels', labels.join(', '));\n }\n var childNodes = node.childNodes;\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;\n while (currentNode) {\n if (currentNode instanceof Element && currentNode.hasAttribute('contenteditable')) {\n // found the Draft editor container\n return getAnonymizedDOM(currentNode, getNodeLabels);\n } else {\n currentNode = currentNode.parentNode;\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/**\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 */\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 if (!containsNode(document.documentElement, node)) {\n return;\n }\n\n var selection = global.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();\n\n // IE doesn't support backward selection. Swap key/offset pairs.\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\n var hasFocus = focusKey === blockKey && nodeStart <= focusOffset && nodeEnd >= focusOffset;\n\n // If the selection is entirely bound within this node, set the selection\n // and be done.\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 }\n\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 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 }\n\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 if (hasAnchor) {\n var storedFocusNode = selection.focusNode;\n var storedFocusOffset = selection.focusOffset;\n\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n addFocusToSelection(selection, storedFocusNode, storedFocusOffset, selectionState);\n }\n }\n}\n\n/**\n * Extend selection towards focus point.\n */\nfunction addFocusToSelection(selection, node, offset, selectionState) {\n var activeElement = getActiveElement();\n if (selection.extend && 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\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({ offset: offset }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n }\n\n // logging to catch bug that is being reported in t18110632\n var nodeWasFocus = node === selection.focusNode;\n try {\n selection.extend(node, offset);\n } catch (e) {\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node, function (n) {\n var labels = [];\n if (n === activeElement) {\n labels.push('active element');\n }\n if (n === selection.anchorNode) {\n labels.push('selection anchor node');\n }\n if (n === selection.focusNode) {\n labels.push('selection focus node');\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 });\n // allow the error to be thrown -\n // better than continuing in a broken state\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 var range = selection.getRangeAt(0);\n range.setEnd(node, offset);\n selection.addRange(range.cloneRange());\n }\n}\n\nfunction addPointToSelection(selection, node, offset, selectionState) {\n var range = document.createRange();\n // logging to catch bug that is being reported in t16250795\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({ offset: offset }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n }\n range.setStart(node, offset);\n selection.addRange(range);\n}\n\nmodule.exports = setDraftEditorSelection;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorLeaf.react\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DraftEditorTextNode = require('./DraftEditorTextNode.react');\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar invariant = require('fbjs/lib/invariant');\nvar setDraftEditorSelection = require('./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 = function (_React$Component) {\n _inherits(DraftEditorLeaf, _React$Component);\n\n function DraftEditorLeaf() {\n _classCallCheck(this, DraftEditorLeaf);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n DraftEditorLeaf.prototype._setSelection = function _setSelection() {\n var selection = this.props.selection;\n\n // If selection state is irrelevant to the parent block, no-op.\n\n if (selection == null || !selection.getHasFocus()) {\n return;\n }\n\n var _props = this.props,\n block = _props.block,\n start = _props.start,\n text = _props.text;\n\n var blockKey = block.getKey();\n var end = start + text.length;\n if (!selection.hasEdgeWithin(blockKey, start, end)) {\n return;\n }\n\n // Determine the appropriate target node for selection. If the child\n // is not a text node, it is a <br /> spacer. In this case, use the\n // <span> itself as the selection target.\n var node = ReactDOM.findDOMNode(this);\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 = void 0;\n\n if (child.nodeType === Node.TEXT_NODE) {\n targetNode = child;\n } else if (child.tagName === 'BR') {\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 * By making individual leaf instances aware of their context within\n * the text of the editor, we can set our selection range more\n * easily than we could in the non-React world.\n *\n * Note that this depends on our maintaining tight control over the\n * DOM structure of the DraftEditor component. If leaves had multiple\n * text nodes, this would be harder.\n */\n\n DraftEditorLeaf.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var leafNode = ReactDOM.findDOMNode(this.leaf);\n !leafNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing leafNode') : invariant(false) : void 0;\n return leafNode.textContent !== nextProps.text || nextProps.styleSet !== this.props.styleSet || nextProps.forceSelection;\n };\n\n DraftEditorLeaf.prototype.componentDidUpdate = function componentDidUpdate() {\n this._setSelection();\n };\n\n DraftEditorLeaf.prototype.componentDidMount = function componentDidMount() {\n this._setSelection();\n };\n\n DraftEditorLeaf.prototype.render = function render() {\n var _this2 = this;\n\n var block = this.props.block;\n var text = this.props.text;\n\n // 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 _props2 = this.props,\n customStyleMap = _props2.customStyleMap,\n customStyleFn = _props2.customStyleFn,\n offsetKey = _props2.offsetKey,\n styleSet = _props2.styleSet;\n\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(\n 'span',\n {\n 'data-offset-key': offsetKey,\n ref: function ref(_ref) {\n return _this2.leaf = _ref;\n },\n style: styleObj },\n React.createElement(\n DraftEditorTextNode,\n null,\n text\n )\n );\n };\n\n return DraftEditorLeaf;\n}(React.Component);\n\nmodule.exports = DraftEditorLeaf;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftOffsetKey\n * @format\n * \n */\n\n'use strict';\n\nvar KEY_DELIMITER = '-';\n\nvar DraftOffsetKey = {\n encode: function encode(blockKey, decoratorKey, leafKey) {\n return blockKey + KEY_DELIMITER + decoratorKey + KEY_DELIMITER + leafKey;\n },\n\n decode: function decode(offsetKey) {\n var _offsetKey$split = offsetKey.split(KEY_DELIMITER),\n blockKey = _offsetKey$split[0],\n decoratorKey = _offsetKey$split[1],\n leafKey = _offsetKey$split[2];\n\n return {\n blockKey: blockKey,\n decoratorKey: parseInt(decoratorKey, 10),\n leafKey: parseInt(leafKey, 10)\n };\n }\n};\n\nmodule.exports = DraftOffsetKey;","\"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/**\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\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) ?\n // 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 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 if (_isViewportScrollElement(element, doc)) {\n doc.body.scrollLeft = doc.documentElement.scrollLeft = newLeft;\n } else {\n element.scrollLeft = newLeft;\n }\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 */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\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 * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\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 */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","'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\nvar camelize = require('./camelize');\nvar hyphenate = require('./hyphenate');\n\nfunction asString(value) /*?string*/{\n return value == null ? value : String(value);\n}\n\nfunction getStyleProperty( /*DOMNode*/node, /*string*/name) /*?string*/{\n var computedStyle = void 0;\n\n // W3C Standard\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 if (computedStyle) {\n return asString(computedStyle.getPropertyValue(hyphenate(name)));\n }\n }\n // Safari\n if (document.defaultView && document.defaultView.getComputedStyle) {\n computedStyle = document.defaultView.getComputedStyle(node, null);\n // A Safari bug causes this to return null for `display: none` elements.\n if (computedStyle) {\n return asString(computedStyle.getPropertyValue(hyphenate(name)));\n }\n if (name === 'display') {\n return 'none';\n }\n }\n // Internet Explorer\n if (node.currentStyle) {\n if (name === 'float') {\n return asString(node.currentStyle.cssFloat || node.currentStyle.styleFloat);\n }\n return asString(node.currentStyle[camelize(name)]);\n }\n return asString(node.style && node.style[camelize(name)]);\n}\n\nmodule.exports = getStyleProperty;","'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\nvar getStyleProperty = require('./getStyleProperty');\n\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 */\nfunction _isNodeScrollable(element, name) {\n var overflow = Style.get(element, name);\n return overflow === 'auto' || overflow === 'scroll';\n}\n\n/**\n * Utilities for querying and mutating style properties.\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 var ownerDocument = node.ownerDocument;\n while (node && node !== ownerDocument.body) {\n if (_isNodeScrollable(node, 'overflow') || _isNodeScrollable(node, 'overflowY') || _isNodeScrollable(node, 'overflowX')) {\n return node;\n }\n node = node.parentNode;\n }\n return ownerDocument.defaultView || ownerDocument.parentWindow;\n }\n\n};\n\nmodule.exports = Style;","'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\nvar containsNode = require('./containsNode');\n\n/**\n * Gets an element's bounding rect in pixels relative to the viewport.\n *\n * @param {DOMElement} elem\n * @return {object}\n */\nfunction getElementRect(elem) {\n var docElem = elem.ownerDocument.documentElement;\n\n // 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 if (!('getBoundingClientRect' in elem) || !containsNode(docElem, elem)) {\n return {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n }\n\n // Subtracts clientTop/Left because IE8- added a 2px border to the\n // <html> 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 var rect = elem.getBoundingClientRect();\n\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;","'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\nvar getElementRect = require('./getElementRect');\n\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 */\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;","/**\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'use strict';\n\nvar isWebkit = typeof navigator !== 'undefined' && navigator.userAgent.indexOf('AppleWebKit') > -1;\n\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 */\nfunction getDocumentScrollElement(doc) {\n doc = doc || document;\n if (doc.scrollingElement) {\n return doc.scrollingElement;\n }\n return !isWebkit && doc.compatMode === 'CSS1Compat' ? doc.documentElement : doc.body;\n}\n\nmodule.exports = getDocumentScrollElement;","/**\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'use strict';\n\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 return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;","/**\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'use strict';\n\nvar getDocumentScrollElement = require('./getDocumentScrollElement');\nvar getUnboundedScrollPosition = require('./getUnboundedScrollPosition');\n\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 */\nfunction getScrollPosition(scrollable) {\n var documentScrollElement = getDocumentScrollElement(scrollable.ownerDocument || scrollable.document);\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n scrollable = documentScrollElement;\n }\n var scrollPosition = getUnboundedScrollPosition(scrollable);\n\n var viewport = scrollable === documentScrollElement ? scrollable.ownerDocument.documentElement : scrollable;\n\n var xMax = scrollable.scrollWidth - viewport.clientWidth;\n var yMax = scrollable.scrollHeight - viewport.clientHeight;\n\n scrollPosition.x = Math.max(0, Math.min(scrollPosition.x, xMax));\n scrollPosition.y = Math.max(0, Math.min(scrollPosition.y, yMax));\n\n return scrollPosition;\n}\n\nmodule.exports = getScrollPosition;","\"use strict\";\n\nfunction getViewportWidth() {\n var width = void 0;\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 * 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 */\n\nfunction getViewportHeight() {\n var height = void 0;\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/**\n * Gets the viewport dimensions including any scrollbars.\n */\nfunction getViewportDimensions() {\n return {\n width: window.innerWidth || getViewportWidth(),\n height: window.innerHeight || getViewportHeight()\n };\n}\n\n/**\n * Gets the viewport dimensions excluding any scrollbars.\n */\ngetViewportDimensions.withoutScrollbars = function () {\n return {\n width: getViewportWidth(),\n height: getViewportHeight()\n };\n};\n\nmodule.exports = getViewportDimensions;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorBlock.react\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DraftEditorLeaf = require('./DraftEditorLeaf.react');\nvar DraftOffsetKey = require('./DraftOffsetKey');\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar Scroll = require('fbjs/lib/Scroll');\nvar Style = require('fbjs/lib/Style');\nvar UnicodeBidi = require('fbjs/lib/UnicodeBidi');\nvar UnicodeBidiDirection = require('fbjs/lib/UnicodeBidiDirection');\n\nvar cx = require('fbjs/lib/cx');\nvar getElementPosition = require('fbjs/lib/getElementPosition');\nvar getScrollPosition = require('fbjs/lib/getScrollPosition');\nvar getViewportDimensions = require('fbjs/lib/getViewportDimensions');\nvar invariant = require('fbjs/lib/invariant');\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/**\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\nvar DraftEditorBlock = function (_React$Component) {\n _inherits(DraftEditorBlock, _React$Component);\n\n function DraftEditorBlock() {\n _classCallCheck(this, DraftEditorBlock);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n DraftEditorBlock.prototype.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 /**\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 DraftEditorBlock.prototype.componentDidMount = function componentDidMount() {\n var selection = this.props.selection;\n var endKey = selection.getEndKey();\n if (!selection.getHasFocus() || endKey !== this.props.block.getKey()) {\n return;\n }\n\n var blockNode = ReactDOM.findDOMNode(this);\n var scrollParent = Style.getScrollParent(blockNode);\n var scrollPosition = getScrollPosition(scrollParent);\n var scrollDelta = void 0;\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 if (scrollDelta > 0) {\n window.scrollTo(scrollPosition.x, scrollPosition.y + scrollDelta + SCROLL_BUFFER);\n }\n } else {\n !(blockNode instanceof HTMLElement) ? 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 scrollBottom = scrollParent.offsetHeight + scrollPosition.y;\n scrollDelta = blockBottom - scrollBottom;\n if (scrollDelta > 0) {\n Scroll.setTop(scrollParent, Scroll.getTop(scrollParent) + scrollDelta + SCROLL_BUFFER);\n }\n }\n };\n\n DraftEditorBlock.prototype._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\n return this.props.tree.map(function (leafSet, ii) {\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 ? _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\n var decoratorKey = leafSet.get('decoratorKey');\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\n var DecoratorComponent = decorator.getComponentForKey(decoratorKey);\n if (!DecoratorComponent) {\n return leaves;\n }\n\n var decoratorProps = decorator.getPropsForKey(decoratorKey);\n var decoratorOffsetKey = DraftOffsetKey.encode(blockKey, ii, 0);\n var decoratedText = text.slice(leavesForLeafSet.first().get('start'), leavesForLeafSet.last().get('end'));\n\n // 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 var dir = UnicodeBidiDirection.getHTMLDirIfDifferent(UnicodeBidi.getDirection(decoratedText), _this2.props.direction);\n\n return React.createElement(\n DecoratorComponent,\n _extends({}, decoratorProps, {\n contentState: _this2.props.contentState,\n decoratedText: decoratedText,\n dir: dir,\n key: decoratorOffsetKey,\n entityKey: block.getEntityAt(leafSet.get('start')),\n offsetKey: decoratorOffsetKey }),\n leaves\n );\n }).toArray();\n };\n\n DraftEditorBlock.prototype.render = function render() {\n var _props = this.props,\n direction = _props.direction,\n offsetKey = _props.offsetKey;\n\n var className = cx({\n 'public/DraftStyleDefault/block': true,\n 'public/DraftStyleDefault/ltr': direction === 'LTR',\n 'public/DraftStyleDefault/rtl': direction === 'RTL'\n });\n\n return React.createElement(\n 'div',\n { 'data-offset-key': offsetKey, className: className },\n this._renderChildren()\n );\n };\n\n return DraftEditorBlock;\n}(React.Component);\n\nmodule.exports = DraftEditorBlock;","/**\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 static-only\n */\n\n'use strict';\n\n/**\n * Combines multiple className strings into one.\n * http://jsperf.com/joinclasses-args-vs-array\n *\n * @param {...?string} className\n * @return {string}\n */\n\nfunction joinClasses(className /*, ... */) {\n if (!className) {\n className = '';\n }\n var nextClass = void 0;\n var argLength = arguments.length;\n if (argLength > 1) {\n for (var ii = 1; ii < argLength; ii++) {\n nextClass = arguments[ii];\n if (nextClass) {\n className = (className ? className + ' ' : '') + nextClass;\n }\n }\n }\n return className;\n}\n\nmodule.exports = joinClasses;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorContents-core.react\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DraftEditorBlock = require('./DraftEditorBlock.react');\nvar DraftOffsetKey = require('./DraftOffsetKey');\nvar EditorState = require('./EditorState');\nvar React = require('react');\n\nvar cx = require('fbjs/lib/cx');\nvar joinClasses = require('fbjs/lib/joinClasses');\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/**\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\nvar DraftEditorContents = function (_React$Component) {\n _inherits(DraftEditorContents, _React$Component);\n\n function DraftEditorContents() {\n _classCallCheck(this, DraftEditorContents);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n DraftEditorContents.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var prevEditorState = this.props.editorState;\n var nextEditorState = nextProps.editorState;\n\n var prevDirectionMap = prevEditorState.getDirectionMap();\n var nextDirectionMap = nextEditorState.getDirectionMap();\n\n // Text direction has changed for one or more blocks. We must re-render.\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\n var wasComposing = prevEditorState.isInCompositionMode();\n var nowComposing = nextEditorState.isInCompositionMode();\n\n // If the state is unchanged or we're currently rendering a natively\n // rendered state, there's nothing new to be done.\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 DraftEditorContents.prototype.render = function render() {\n var _props = this.props,\n blockRenderMap = _props.blockRenderMap,\n blockRendererFn = _props.blockRendererFn,\n blockStyleFn = _props.blockStyleFn,\n customStyleMap = _props.customStyleMap,\n customStyleFn = _props.customStyleFn,\n editorState = _props.editorState,\n editorKey = _props.editorKey,\n textDirectionality = _props.textDirectionality;\n\n\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\n var blocksAsArray = content.getBlocksAsArray();\n var processedBlocks = [];\n\n var currentDepth = null;\n var lastWrapperTemplate = null;\n\n for (var ii = 0; ii < blocksAsArray.length; ii++) {\n var _block = blocksAsArray[ii];\n var key = _block.getKey();\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 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 key: key,\n offsetKey: offsetKey,\n selection: selection,\n tree: editorState.getBlockTree(key)\n };\n\n var configForType = blockRenderMap.get(blockType) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n\n var Element = configForType.element || blockRenderMap.get('unstyled').element;\n\n var depth = _block.getDepth();\n var className = '';\n if (blockStyleFn) {\n className = blockStyleFn(_block);\n }\n\n // List items are special snowflakes, since we handle nesting and\n // counters manually.\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 if (customEditable !== undefined) {\n childProps = _extends({}, childProps, {\n contentEditable: customEditable,\n suppressContentEditableWarning: true\n });\n }\n\n var child = React.createElement(Element, childProps, React.createElement(Component, componentProps));\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 lastWrapperTemplate = wrapperTemplate;\n }\n\n // Group contiguous runs of blocks that have the same wrapperTemplate\n var outputBlocks = [];\n for (var _ii = 0; _ii < processedBlocks.length;) {\n var info = processedBlocks[_ii];\n if (info.wrapperTemplate) {\n var blocks = [];\n do {\n blocks.push(processedBlocks[_ii].block);\n _ii++;\n } while (_ii < processedBlocks.length && processedBlocks[_ii].wrapperTemplate === info.wrapperTemplate);\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(\n 'div',\n { 'data-contents': 'true' },\n outputBlocks\n );\n };\n\n return DraftEditorContents;\n}(React.Component);\n\nmodule.exports = DraftEditorContents;","/**\n * Copyright 2013-present, 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 * @providesModule DraftEditorContents.react\n * @format\n * \n */\n\n'use strict';\n\nvar DraftEditorContents = require('./DraftEditorContents-core.react');\n\nmodule.exports = DraftEditorContents;","'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) && (\n // 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 * @typechecks\n */\n\nvar invariant = require('./invariant');\n\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 */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\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\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\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\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;\n\n // 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 if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\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 var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\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 */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // 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' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\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 */\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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\nvar PhotosMimeType = require('./PhotosMimeType');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar emptyFunction = require('./emptyFunction');\n\nvar CR_LF_REGEX = new RegExp('\\r\\n', 'g');\nvar LF_ONLY = '\\n';\n\nvar RICH_TEXT_TYPES = {\n 'text/rtf': 1,\n 'text/html': 1\n};\n\n/**\n * If DataTransferItem is a file then return the Blob of data.\n *\n * @param {object} item\n * @return {?blob}\n */\nfunction getFileFromDataTransfer(item) {\n if (item.kind == 'file') {\n return item.getAsFile();\n }\n}\n\nvar DataTransfer = function () {\n /**\n * @param {object} data\n */\n function DataTransfer(data) {\n _classCallCheck(this, DataTransfer);\n\n this.data = data;\n\n // Types could be DOMStringList or array\n this.types = data.types ? createArrayFromMixed(data.types) : [];\n }\n\n /**\n * Is this likely to be a rich text data transfer?\n *\n * @return {boolean}\n */\n\n\n DataTransfer.prototype.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 }\n\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 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 /**\n * Get raw text.\n *\n * @return {?string}\n */\n\n\n DataTransfer.prototype.getText = function getText() {\n var text;\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 return text ? text.replace(CR_LF_REGEX, LF_ONLY) : null;\n };\n\n /**\n * Get HTML paste data\n *\n * @return {?string}\n */\n\n\n DataTransfer.prototype.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 /**\n * Is this a link data transfer?\n *\n * @return {boolean}\n */\n\n\n DataTransfer.prototype.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 /**\n * Get a link url.\n *\n * @return {?string}\n */\n\n\n DataTransfer.prototype.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 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 /**\n * Is this an image data transfer?\n *\n * @return {boolean}\n */\n\n\n DataTransfer.prototype.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 for (var i = 0; i < items.length; i++) {\n var type = items[i].type;\n if (!PhotosMimeType.isImage(type)) {\n return false;\n }\n }\n\n return true;\n };\n\n DataTransfer.prototype.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 return null;\n };\n\n /**\n * Get files.\n *\n * @return {array}\n */\n\n\n DataTransfer.prototype.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 /**\n * Are there any files to fetch?\n *\n * @return {boolean}\n */\n\n\n DataTransfer.prototype.hasFiles = function hasFiles() {\n return this.getFiles().length > 0;\n };\n\n return DataTransfer;\n}();\n\nmodule.exports = DataTransfer;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getSelectionOffsetKeyForNode\n * @format\n * \n */\n\n'use strict';\n\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\nfunction getSelectionOffsetKeyForNode(node) {\n if (node instanceof Element) {\n var offsetKey = node.getAttribute('data-offset-key');\n if (offsetKey) {\n return offsetKey;\n }\n for (var ii = 0; ii < node.childNodes.length; ii++) {\n var childOffsetKey = getSelectionOffsetKeyForNode(node.childNodes[ii]);\n if (childOffsetKey) {\n return childOffsetKey;\n }\n }\n }\n return null;\n}\n\nmodule.exports = getSelectionOffsetKeyForNode;","/**\n * Copyright (c) 2013-present, 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 * @providesModule findAncestorOffsetKey\n * @format\n * \n */\n\n'use strict';\n\nvar getSelectionOffsetKeyForNode = require('./getSelectionOffsetKeyForNode');\n\n/**\n * Get the key from the node's nearest offset-aware ancestor.\n */\nfunction findAncestorOffsetKey(node) {\n var searchNode = node;\n while (searchNode && searchNode !== document.documentElement) {\n var key = getSelectionOffsetKeyForNode(searchNode);\n if (key != null) {\n return key;\n }\n searchNode = searchNode.parentNode;\n }\n return null;\n}\n\nmodule.exports = findAncestorOffsetKey;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getTextContentFromFiles\n * @format\n * \n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar TEXT_CLIPPING_REGEX = /\\.textClipping$/;\n\nvar TEXT_TYPES = {\n 'text/plain': true,\n 'text/html': true,\n 'text/rtf': true\n};\n\n// Somewhat arbitrary upper bound on text size. Let's not lock up the browser.\nvar TEXT_SIZE_UPPER_BOUND = 5000;\n\n/**\n * Extract the text content from a file list.\n */\nfunction getTextContentFromFiles(files, callback) {\n var readCount = 0;\n var results = [];\n files.forEach(function ( /*blob*/file) {\n readFile(file, function ( /*string*/text) {\n readCount++;\n text && results.push(text.slice(0, TEXT_SIZE_UPPER_BOUND));\n if (readCount == files.length) {\n callback(results.join('\\r'));\n }\n });\n });\n}\n\n/**\n * todo isaac: Do work to turn html/rtf into a content fragment.\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 = '';\n // 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 if (TEXT_CLIPPING_REGEX.test(file.name)) {\n contents = file.name.replace(TEXT_CLIPPING_REGEX, '');\n }\n callback(contents);\n return;\n }\n\n var reader = new FileReader();\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 reader.onerror = function () {\n callback('');\n };\n reader.readAsText(file);\n}\n\nmodule.exports = getTextContentFromFiles;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getUpdatedSelectionState\n * @format\n * \n */\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 if (process.env.NODE_ENV !== 'production') {\n if (!anchorKey || !focusKey) {\n /*eslint-disable no-console */\n console.warn('Invalid selection state.', arguments, editorState.toJS());\n /*eslint-enable no-console */\n return selection;\n }\n }\n\n var anchorPath = DraftOffsetKey.decode(anchorKey);\n var anchorBlockKey = anchorPath.blockKey;\n var anchorLeaf = editorState.getBlockTree(anchorBlockKey).getIn([anchorPath.decoratorKey, 'leaves', anchorPath.leafKey]);\n\n var focusPath = DraftOffsetKey.decode(focusKey);\n var focusBlockKey = focusPath.blockKey;\n var focusLeaf = editorState.getBlockTree(focusBlockKey).getIn([focusPath.decoratorKey, 'leaves', focusPath.leafKey]);\n\n var anchorLeafStart = anchorLeaf.get('start');\n var focusLeafStart = focusLeaf.get('start');\n\n var anchorBlockOffset = anchorLeaf ? anchorLeafStart + anchorOffset : null;\n var focusBlockOffset = focusLeaf ? focusLeafStart + focusOffset : null;\n\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 if (anchorBlockKey === focusBlockKey) {\n var anchorLeafEnd = anchorLeaf.get('end');\n var focusLeafEnd = focusLeaf.get('end');\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) 2013-present, 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 * @providesModule DraftEditorDragHandler\n * @format\n * \n */\n\n'use strict';\n\nvar DataTransfer = require('fbjs/lib/DataTransfer');\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\n\nvar findAncestorOffsetKey = require('./findAncestorOffsetKey');\nvar getTextContentFromFiles = require('./getTextContentFromFiles');\nvar getUpdatedSelectionState = require('./getUpdatedSelectionState');\nvar isEventHandled = require('./isEventHandled');\nvar nullthrows = require('fbjs/lib/nullthrows');\n\n/**\n * Get a SelectionState for the supplied mouse event.\n */\nfunction getSelectionForEvent(event, editorState) {\n var node = null;\n var offset = null;\n\n if (typeof document.caretRangeFromPoint === 'function') {\n var dropRange = document.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\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 },\n\n /**\n * Handle data being dropped.\n */\n onDrop: function onDrop(editor, e) {\n var data = new DataTransfer(e.nativeEvent.dataTransfer);\n\n var editorState = editor._latestEditorState;\n var dropSelection = getSelectionForEvent(e.nativeEvent, editorState);\n\n e.preventDefault();\n editor.exitCurrentMode();\n\n if (dropSelection == null) {\n return;\n }\n\n var files = data.getFiles();\n if (files.length > 0) {\n if (editor.props.handleDroppedFiles && isEventHandled(editor.props.handleDroppedFiles(dropSelection, files))) {\n return;\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 if (editor.props.handleDrop && isEventHandled(editor.props.handleDrop(dropSelection, data, dragType))) {\n return;\n }\n\n if (editor._internalDrag) {\n editor.update(moveText(editorState, dropSelection));\n return;\n }\n\n editor.update(insertTextAtSelection(editorState, dropSelection, data.getText()));\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/**\n * Insert text at a specified selection.\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;","(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 <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\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\n// setimmediate adds setImmediate to the global. We want to make sure we export\n// the actual function.\n\nrequire('setimmediate');\nmodule.exports = global.setImmediate;","/**\n * Copyright (c) 2013-present, 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 * @providesModule editOnBeforeInput\n * @format\n * \n */\n\n'use strict';\n\nvar BlockTree = require('./BlockTree');\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar getEntityKeyForSelection = require('./getEntityKeyForSelection');\nvar isEventHandled = require('./isEventHandled');\nvar isSelectionAtLeafStart = require('./isSelectionAtLeafStart');\nvar nullthrows = require('fbjs/lib/nullthrows');\nvar setImmediate = require('fbjs/lib/setImmediate');\n\n// 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.\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/**\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 */\nfunction replaceText(editorState, text, inlineStyle, entityKey) {\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), text, inlineStyle, entityKey);\n return EditorState.push(editorState, contentState, 'insert-characters');\n}\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 */\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\n var chars = e.data;\n\n // In some cases (ex: IE ideographic space insertion) no character data\n // is provided. There's nothing to do when this happens.\n if (!chars) {\n return;\n }\n\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 if (editor.props.handleBeforeInput && isEventHandled(editor.props.handleBeforeInput(chars, editorState))) {\n e.preventDefault();\n return;\n }\n\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 var selection = editorState.getSelection();\n var selectionStart = selection.getStartOffset();\n var selectionEnd = selection.getEndOffset();\n var anchorKey = selection.getAnchorKey();\n\n if (!selection.isCollapsed()) {\n e.preventDefault();\n\n // If the currently selected text matches what the user is trying to\n // replace it with, let's just update the `SelectionState`. If not, update\n // the `ContentState` with the new text.\n var currentlySelectedChars = editorState.getCurrentContent().getPlainText().slice(selectionStart, selectionEnd);\n if (chars === currentlySelectedChars) {\n editor.update(EditorState.forceSelection(editorState, selection.merge({\n focusOffset: selectionEnd\n })));\n } else {\n editor.update(replaceText(editorState, chars, editorState.getCurrentInlineStyle(), getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection())));\n }\n return;\n }\n\n var newEditorState = replaceText(editorState, chars, editorState.getCurrentInlineStyle(), getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection()));\n\n // Bunch of different cases follow where we need to prevent native insertion.\n var mustPreventNative = false;\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 if (!mustPreventNative) {\n // Chrome will also split up a node into two pieces if it contains a Tab\n // char, for no explicable reason. Seemingly caused by this commit:\n // https://chromium.googlesource.com/chromium/src/+/013ac5eaf3%5E%21/\n var nativeSelection = global.getSelection();\n // Selection is necessarily collapsed at this point due to earlier check.\n if (nativeSelection.anchorNode && nativeSelection.anchorNode.nodeType === Node.TEXT_NODE) {\n // See isTabHTMLSpanElement in chromium EditingUtilities.cpp.\n var parentNode = nativeSelection.anchorNode.parentNode;\n mustPreventNative = parentNode.nodeName === 'SPAN' && parentNode.firstChild.nodeType === Node.TEXT_NODE && parentNode.firstChild.nodeValue.indexOf('\\t') !== -1;\n }\n }\n if (!mustPreventNative) {\n // Check the old and new \"fingerprints\" of the current block to determine\n // whether this insertion requires any addition or removal of text nodes,\n // in which case we would prevent the native character insertion.\n var originalFingerprint = BlockTree.getFingerprint(editorState.getBlockTree(anchorKey));\n var newFingerprint = BlockTree.getFingerprint(newEditorState.getBlockTree(anchorKey));\n mustPreventNative = originalFingerprint !== newFingerprint;\n }\n if (!mustPreventNative) {\n mustPreventNative = mustPreventDefaultForCharacter(chars);\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 editor.update(newEditorState);\n return;\n }\n\n // We made it all the way! Let the browser do its thing and insert the char.\n newEditorState = EditorState.set(newEditorState, {\n nativelyRenderedContent: newEditorState.getCurrentContent()\n });\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 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) 2013-present, 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 * @providesModule editOnBlur\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\n\nvar containsNode = require('fbjs/lib/containsNode');\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 if (getActiveElement() === document.body) {\n var _selection = global.getSelection();\n var editorNode = editor.editor;\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 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) 2013-present, 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 * @providesModule editOnCompositionStart\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\n\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 */\nfunction editOnCompositionStart(editor, e) {\n editor.setMode('composite');\n editor.update(EditorState.set(editor._latestEditorState, { inCompositionMode: true }));\n // Allow composition handler to interpret the compositionstart event\n editor._onCompositionStart(e);\n}\n\nmodule.exports = editOnCompositionStart;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getFragmentFromSelection\n * @format\n * \n */\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;","/**\n * Copyright (c) 2013-present, 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 * @providesModule editOnCopy\n * @format\n * \n */\n\n'use strict';\n\nvar getFragmentFromSelection = require('./getFragmentFromSelection');\n\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 */\nfunction editOnCopy(editor, e) {\n var editorState = editor._latestEditorState;\n var selection = editorState.getSelection();\n\n // No selection, so there's nothing to copy.\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) 2013-present, 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 * @providesModule editOnCut\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\nvar Style = require('fbjs/lib/Style');\n\nvar getFragmentFromSelection = require('./getFragmentFromSelection');\nvar getScrollPosition = require('fbjs/lib/getScrollPosition');\n\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 */\nfunction editOnCut(editor, e) {\n var editorState = editor._latestEditorState;\n var selection = editorState.getSelection();\n var element = e.target;\n var scrollPosition = void 0;\n\n // No selection, so there's nothing to cut.\n if (selection.isCollapsed()) {\n e.preventDefault();\n return;\n }\n\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 if (element instanceof Node) {\n scrollPosition = getScrollPosition(Style.getScrollParent(element));\n }\n\n var fragment = getFragmentFromSelection(editorState);\n editor.setClipboard(fragment);\n\n // Set `cut` mode to disable all event handling temporarily.\n editor.setMode('cut');\n\n // Let native `cut` behavior occur, then recover control.\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) 2013-present, 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 * @providesModule editOnDragOver\n * @format\n * \n */\n\n'use strict';\n\n/**\n * Drag behavior has begun from outside the editor element.\n */\nfunction editOnDragOver(editor, e) {\n editor._internalDrag = false;\n editor.setMode('drag');\n e.preventDefault();\n}\n\nmodule.exports = editOnDragOver;","/**\n * Copyright (c) 2013-present, 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 * @providesModule editOnDragStart\n * @format\n * \n */\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) 2013-present, 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 * @providesModule editOnFocus\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nfunction editOnFocus(editor, e) {\n var editorState = editor._latestEditorState;\n var currentSelection = editorState.getSelection();\n if (currentSelection.getHasFocus()) {\n return;\n }\n\n var selection = currentSelection.set('hasFocus', true);\n editor.props.onFocus && editor.props.onFocus(e);\n\n // 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 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) 2013-present, 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 * @providesModule editOnInput\n * @format\n * \n */\n\n'use strict';\n\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar DraftModifier = require('./DraftModifier');\nvar DraftOffsetKey = require('./DraftOffsetKey');\nvar EditorState = require('./EditorState');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar findAncestorOffsetKey = require('./findAncestorOffsetKey');\nvar nullthrows = require('fbjs/lib/nullthrows');\n\nvar isGecko = UserAgent.isEngine('Gecko');\n\nvar DOUBLE_NEWLINE = '\\n\\n';\n\n/**\n * This function is 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 */\nfunction editOnInput(editor) {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n }\n\n var domSelection = global.getSelection();\n\n var anchorNode = domSelection.anchorNode,\n isCollapsed = domSelection.isCollapsed;\n\n var isNotTextNode = anchorNode.nodeType !== Node.TEXT_NODE;\n var isNotTextOrElementNode = anchorNode.nodeType !== Node.TEXT_NODE && anchorNode.nodeType !== Node.ELEMENT_NODE;\n\n if (DraftFeatureFlags.draft_killswitch_allow_nontextnodes) {\n if (isNotTextNode) {\n return;\n }\n } else {\n if (isNotTextOrElementNode) {\n // TODO: (t16149272) figure out context for this change\n return;\n }\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 anchorNode.nodeValue = span.textContent;\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);\n\n // 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 if (domText.endsWith(DOUBLE_NEWLINE)) {\n domText = domText.slice(0, -1);\n }\n\n // No change -- the DOM is up to date. Nothing to do here.\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 return;\n }\n\n var selection = editorState.getSelection();\n\n // We'll replace the entire leaf with the text content of the target.\n var targetRange = selection.merge({\n anchorOffset: start,\n focusOffset: end,\n isBackward: false\n });\n\n var entityKey = block.getEntityAt(start);\n var entity = entityKey && content.getEntity(entityKey);\n var entityType = entity && entity.getMutability();\n var preserveEntity = entityType === 'MUTABLE';\n\n // 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 var changeType = preserveEntity ? 'spellcheck-change' : 'apply-entity';\n\n var newContent = DraftModifier.replaceText(content, targetRange, domText, block.getInlineStyleAt(start), preserveEntity ? block.getEntityAt(start) : null);\n\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\n anchorOffset = isCollapsed ? endOffset + charDelta : startOffset;\n focusOffset = endOffset + charDelta;\n }\n\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 var contentWithAdjustedDOMSelection = newContent.merge({\n selectionBefore: content.getSelectionAfter(),\n selectionAfter: selection.merge({ anchorOffset: anchorOffset, focusOffset: focusOffset })\n });\n\n editor.update(EditorState.push(editorState, contentWithAdjustedDOMSelection, changeType));\n}\n\nmodule.exports = editOnInput;","/**\n * Copyright (c) 2013-present, 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 * @providesModule KeyBindingUtil\n * @format\n * \n */\n\n'use strict';\n\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar isOSX = UserAgent.isPlatform('Mac OS X');\n\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\n isOptionKeyCommand: function isOptionKeyCommand(e) {\n return isOSX && e.altKey;\n },\n\n hasCommandModifier: function hasCommandModifier(e) {\n return isOSX ? !!e.metaKey && !e.altKey : KeyBindingUtil.isCtrlKeyCommand(e);\n }\n};\n\nmodule.exports = KeyBindingUtil;","/**\n * Copyright (c) 2013-present, 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 * @providesModule SecondaryClipboard\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\n\nvar getContentStateFragment = require('./getContentStateFragment');\nvar nullthrows = require('fbjs/lib/nullthrows');\n\nvar clipboard = null;\n\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 */\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 return editorState;\n }\n\n targetRange = selection.set('focusOffset', blockEnd);\n } else {\n targetRange = selection;\n }\n\n targetRange = nullthrows(targetRange);\n clipboard = getContentStateFragment(content, targetRange);\n\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\n paste: function paste(editorState) {\n if (!clipboard) {\n return editorState;\n }\n\n var newContent = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), clipboard);\n\n return EditorState.push(editorState, newContent, 'insert-fragment');\n }\n};\n\nmodule.exports = SecondaryClipboard;","/**\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\n'use strict';\n\nvar invariant = require('./invariant');\n\n// These two ranges are consecutive so anything in [HIGH_START, LOW_END] is a\n// surrogate code unit.\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/**\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 */\nfunction isCodeUnitInSurrogateRange(codeUnit) {\n return SURROGATE_HIGH_START <= codeUnit && codeUnit <= SURROGATE_LOW_END;\n}\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 */\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 if (index + 1 === str.length) {\n return false;\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/**\n * @param {string} str Non-empty string\n * @return {boolean} True if the input includes any surrogate code units\n */\nfunction hasSurrogateUnit(str) {\n return SURROGATE_UNITS_REGEX.test(str);\n}\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 */\nfunction getUTF16Length(str, pos) {\n return 1 + isCodeUnitInSurrogateRange(str.charCodeAt(pos));\n}\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 */\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 for (var pos = 0; pos < str.length; pos += getUTF16Length(str, pos)) {\n len++;\n }\n return len;\n}\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 */\nfunction substr(str, start, length) {\n start = start || 0;\n length = length === undefined ? Infinity : length || 0;\n\n // Call the native functions if there's no surrogate char\n if (!hasSurrogateUnit(str)) {\n return str.substr(start, length);\n }\n\n // Obvious cases\n var size = str.length;\n if (size <= 0 || start > size || length <= 0) {\n return '';\n }\n\n // Find the actual starting position\n var posA = 0;\n if (start > 0) {\n for (; start > 0 && posA < size; start--) {\n posA += getUTF16Length(str, posA);\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 if (posA < 0) {\n posA = 0;\n }\n }\n\n // Find the actual ending position\n var posB = size;\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/**\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 */\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 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/**\n * Get a list of Unicode code-points from a String\n *\n * @param {string} str Valid Unicode string\n * @return {array<number>} A list of code-points in [0..0x10FFFF]\n */\nfunction getCodePoints(str) {\n var codePoints = [];\n for (var pos = 0; pos < str.length; pos += getUTF16Length(str, pos)) {\n codePoints.push(str.codePointAt(pos));\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};\n\nmodule.exports = UnicodeUtils;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getRangeClientRects\n * @format\n * \n */\n\n'use strict';\n\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar isChrome = UserAgent.isBrowser('Chrome');\n\n// 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/* eslint-disable consistent-return */\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 if (atCommonAncestor) {\n tempRange.setStart(range.startContainer, range.startOffset);\n } else {\n tempRange.setStart(tempRange.endContainer, 0);\n }\n var rects = Array.from(tempRange.getClientRects());\n clientRects.push(rects);\n if (atCommonAncestor) {\n var _ref;\n\n clientRects.reverse();\n return (_ref = []).concat.apply(_ref, clientRects);\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 */\nvar getRangeClientRects = isChrome ? getRangeClientRectsChrome : function (range) {\n return Array.from(range.getClientRects());\n};\n\nmodule.exports = getRangeClientRects;","'use strict';\n\n/**\n * Copyright (c) 2013-present, 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 * @providesModule expandRangeToStartOfLine\n * @format\n * \n */\n\nvar UnicodeUtils = require('fbjs/lib/UnicodeUtils');\n\nvar getRangeClientRects = require('./getRangeClientRects');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the computed line height, in pixels, for the provided element.\n */\nfunction getLineHeightPx(element) {\n var computed = getComputedStyle(element);\n var div = document.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\n var documentBody = document.body;\n !documentBody ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing document.body') : invariant(false) : void 0;\n\n // forced layout here\n documentBody.appendChild(div);\n var rect = div.getBoundingClientRect();\n documentBody.removeChild(div);\n\n return rect.height;\n}\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 */\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 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 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/**\n * Return the length of a node, as used by Range offsets.\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 case Node.TEXT_NODE:\n case Node.PROCESSING_INSTRUCTION_NODE:\n case Node.COMMENT_NODE:\n return node.length;\n default:\n return node.childNodes.length;\n }\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 */\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\n var containingElement = range.startContainer;\n if (containingElement.nodeType !== 1) {\n containingElement = containingElement.parentNode;\n }\n var lineHeight = getLineHeightPx(containingElement);\n\n // Imagine our text looks like:\n // <div><span>once upon a time, there was a <em>boy\n // who lived</em> </span><q><strong>under^ the\n // stairs</strong> in a small closet.</q></div>\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 // \"<strong>\", then before \"<div>\"), 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 <em>, 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 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 }\n\n // In the above example, range now spans from \"<div>\" to \"under\",\n // bestContainer is <div>, and bestOffset is 1 (index of <q> inside <div>)].\n // Picking out which child to recurse into here is a special case since we\n // don't want to check past <q> -- once we find that the final range starts\n // in <span>, we can look at all of its children (and all of their children)\n // to find the break point.\n\n // At all times, (bestContainer, bestOffset) is the latest single-line start\n // point that we know of.\n var currentContainer = bestContainer;\n var maxIndexToConsider = bestOffset - 1;\n\n do {\n var nodeValue = currentContainer.nodeValue;\n\n for (var ii = maxIndexToConsider; 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 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) 2013-present, 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 * @providesModule getDraftEditorSelectionWithNodes\n * @format\n * \n */\n\n'use strict';\n\nvar findAncestorOffsetKey = require('./findAncestorOffsetKey');\nvar getSelectionOffsetKeyForNode = require('./getSelectionOffsetKeyForNode');\nvar getUpdatedSelectionState = require('./getUpdatedSelectionState');\nvar invariant = require('fbjs/lib/invariant');\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;\n\n // 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 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;\n\n // 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 <div> is\n // selected and the user presses the right arrow, Firefox keeps the selection\n // on the <div>. 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 <div>. 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);\n\n // 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 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/**\n * Identify the first leaf descendant for the given node.\n */\nfunction getFirstLeaf(node) {\n while (node.firstChild && (\n // data-blocks has no offset\n node.firstChild instanceof Element && node.firstChild.getAttribute('data-blocks') === 'true' || getSelectionOffsetKeyForNode(node.firstChild))) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Identify the last leaf descendant for the given node.\n */\nfunction getLastLeaf(node) {\n while (node.lastChild && (\n // data-blocks has no offset\n node.lastChild instanceof Element && node.lastChild.getAttribute('data-blocks') === 'true' || getSelectionOffsetKeyForNode(node.lastChild))) {\n node = node.lastChild;\n }\n return node;\n}\n\nfunction getPointForNonTextNode(editorRoot, startNode, childOffset) {\n var node = startNode;\n var offsetKey = findAncestorOffsetKey(node);\n\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;\n\n // If the editorRoot is the selection, step downward into the content\n // wrapper.\n if (editorRoot === node) {\n node = node.firstChild;\n !(node instanceof Element && node.getAttribute('data-contents') === 'true') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid DraftEditorContents structure.') : invariant(false) : void 0;\n if (childOffset > 0) {\n childOffset = node.childNodes.length;\n }\n }\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 if (childOffset === 0) {\n var key = null;\n if (offsetKey != null) {\n key = offsetKey;\n } else {\n var firstLeaf = getFirstLeaf(node);\n key = nullthrows(getSelectionOffsetKeyForNode(firstLeaf));\n }\n return { key: key, offset: 0 };\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/**\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 */\nfunction getTextContentLength(node) {\n var textContent = node.textContent;\n return textContent === '\\n' ? 0 : textContent.length;\n}\n\nmodule.exports = getDraftEditorSelectionWithNodes;","/**\n * Copyright (c) 2013-present, 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 * @providesModule moveSelectionBackward\n * @format\n * \n */\n\n'use strict';\n\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 */\nfunction moveSelectionBackward(editorState, maxDistance) {\n var selection = editorState.getSelection();\n var content = editorState.getCurrentContent();\n var key = selection.getStartKey();\n var offset = selection.getStartOffset();\n\n var focusKey = key;\n var focusOffset = 0;\n\n if (maxDistance > offset) {\n var keyBefore = content.getKeyBefore(key);\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) 2013-present, 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 * @providesModule removeTextWithStrategy\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\n\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 */\nfunction removeTextWithStrategy(editorState, strategy, direction) {\n var selection = editorState.getSelection();\n var content = editorState.getCurrentContent();\n var target = selection;\n if (selection.isCollapsed()) {\n if (direction === 'forward') {\n if (editorState.isSelectionAtEndOfContent()) {\n return content;\n }\n } else if (editorState.isSelectionAtStartOfContent()) {\n return content;\n }\n\n target = strategy(editorState);\n if (target === selection) {\n return content;\n }\n }\n return DraftModifier.removeRange(content, target, direction);\n}\n\nmodule.exports = removeTextWithStrategy;","/**\n * Copyright (c) 2013-present, 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 * @providesModule keyCommandBackspaceToStartOfLine\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\n\nvar expandRangeToStartOfLine = require('./expandRangeToStartOfLine');\nvar getDraftEditorSelectionWithNodes = require('./getDraftEditorSelectionWithNodes');\nvar moveSelectionBackward = require('./moveSelectionBackward');\nvar removeTextWithStrategy = require('./removeTextWithStrategy');\n\nfunction keyCommandBackspaceToStartOfLine(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n if (selection.isCollapsed() && selection.getAnchorOffset() === 0) {\n return moveSelectionBackward(strategyState, 1);\n }\n\n var domSelection = global.getSelection();\n var range = domSelection.getRangeAt(0);\n range = expandRangeToStartOfLine(range);\n\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) 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\n'use strict';\n\n// \\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]';\n\nmodule.exports = {\n getPunctuation: function getPunctuation() {\n return PUNCTUATION;\n }\n};","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftRemovableWord\n * @format\n * \n */\n\n'use strict';\n\nvar TokenizeUtil = require('fbjs/lib/TokenizeUtil');\n\nvar punctuation = TokenizeUtil.getPunctuation();\n\n// 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.\nvar CHAMELEON_CHARS = '[\\'\\u2018\\u2019]';\n\n// Remove the underscore, which should count as part of the removable word. The\n// \"chameleon chars\" also count as punctuation in this regex.\nvar WHITESPACE_AND_PUNCTUATION = '\\\\s|(?![_])' + punctuation;\n\nvar DELETE_STRING = '^' + '(?:' + WHITESPACE_AND_PUNCTUATION + ')*' + '(?:' + CHAMELEON_CHARS + '|(?!' + WHITESPACE_AND_PUNCTUATION + ').)*' + '(?:(?!' + WHITESPACE_AND_PUNCTUATION + ').)';\nvar DELETE_REGEX = new RegExp(DELETE_STRING);\n\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\n getForward: function getForward(text) {\n return getRemovableWord(text, false);\n }\n};\n\nmodule.exports = DraftRemovableWord;","/**\n * Copyright (c) 2013-present, 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 * @providesModule keyCommandBackspaceWord\n * @format\n * \n */\n\n'use strict';\n\nvar DraftRemovableWord = require('./DraftRemovableWord');\nvar EditorState = require('./EditorState');\n\nvar moveSelectionBackward = require('./moveSelectionBackward');\nvar removeTextWithStrategy = require('./removeTextWithStrategy');\n\n/**\n * Delete the word that is left of the cursor, as well as any spaces or\n * punctuation after the word.\n */\nfunction keyCommandBackspaceWord(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var offset = selection.getStartOffset();\n // If there are no words before the cursor, remove the preceding newline.\n if (offset === 0) {\n return moveSelectionBackward(strategyState, 1);\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) 2013-present, 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 * @providesModule moveSelectionForward\n * @format\n * \n */\n\n'use strict';\n\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 */\nfunction moveSelectionForward(editorState, maxDistance) {\n var selection = editorState.getSelection();\n var key = selection.getStartKey();\n var offset = selection.getStartOffset();\n var content = editorState.getCurrentContent();\n\n var focusKey = key;\n var focusOffset;\n\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({ focusKey: focusKey, focusOffset: focusOffset });\n}\n\nmodule.exports = moveSelectionForward;","/**\n * Copyright (c) 2013-present, 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 * @providesModule keyCommandDeleteWord\n * @format\n * \n */\n\n'use strict';\n\nvar DraftRemovableWord = require('./DraftRemovableWord');\nvar EditorState = require('./EditorState');\n\nvar moveSelectionForward = require('./moveSelectionForward');\nvar removeTextWithStrategy = require('./removeTextWithStrategy');\n\n/**\n * Delete the word that is right of the cursor, as well as any spaces or\n * punctuation before the word.\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);\n\n // If there are no words in front of the cursor, remove the newline.\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) 2013-present, 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 * @providesModule keyCommandInsertNewline\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\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) 2013-present, 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 * @providesModule keyCommandMoveSelectionToEndOfBlock\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\n\n/**\n * See comment for `moveSelectionToStartOfBlock`.\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) 2013-present, 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 * @providesModule keyCommandMoveSelectionToStartOfBlock\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\n\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 */\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) 2013-present, 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 * @providesModule keyCommandPlainBackspace\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\nvar UnicodeUtils = require('fbjs/lib/UnicodeUtils');\n\nvar moveSelectionBackward = require('./moveSelectionBackward');\nvar removeTextWithStrategy = require('./removeTextWithStrategy');\n\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 */\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) 2013-present, 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 * @providesModule keyCommandPlainDelete\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\nvar UnicodeUtils = require('fbjs/lib/UnicodeUtils');\n\nvar moveSelectionForward = require('./moveSelectionForward');\nvar removeTextWithStrategy = require('./removeTextWithStrategy');\n\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 */\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\n return EditorState.push(editorState, afterRemoval.set('selectionBefore', selection), selection.isCollapsed() ? 'delete-character' : 'remove-range');\n}\n\nmodule.exports = keyCommandPlainDelete;","/**\n * Copyright (c) 2013-present, 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 * @providesModule keyCommandTransposeCharacters\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\n\nvar getContentStateFragment = require('./getContentStateFragment');\n\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 */\nfunction keyCommandTransposeCharacters(editorState) {\n var selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n return editorState;\n }\n\n var offset = selection.getAnchorOffset();\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();\n\n // Nothing to transpose if there aren't two characters.\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 }\n\n // Extract the character to move as a fragment. This preserves its\n // styling and entity, if any.\n var movedFragment = getContentStateFragment(content, removalRange);\n var afterRemoval = DraftModifier.removeRange(content, removalRange, 'backward');\n\n // After the removal, the insertion target is one character back.\n var selectionAfter = afterRemoval.getSelectionAfter();\n var targetOffset = selectionAfter.getAnchorOffset() - 1;\n var targetRange = selectionAfter.merge({\n anchorOffset: targetOffset,\n focusOffset: targetOffset\n });\n\n var afterInsert = DraftModifier.replaceWithFragment(afterRemoval, targetRange, movedFragment);\n\n var newEditorState = EditorState.push(editorState, afterInsert, 'insert-fragment');\n\n return EditorState.acceptSelection(newEditorState, finalSelection);\n}\n\nmodule.exports = keyCommandTransposeCharacters;","/**\n * Copyright (c) 2013-present, 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 * @providesModule keyCommandUndo\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\n\nfunction keyCommandUndo(e, editorState, updateFn) {\n var undoneState = EditorState.undo(editorState);\n\n // 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 if (editorState.getLastChangeType() === 'spellcheck-change') {\n var nativelyRenderedContent = undoneState.getCurrentContent();\n updateFn(EditorState.set(undoneState, { nativelyRenderedContent: nativelyRenderedContent }));\n return;\n }\n\n // Otheriwse, manage the undo behavior manually.\n e.preventDefault();\n if (!editorState.getNativelyRenderedContent()) {\n updateFn(undoneState);\n return;\n }\n\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 updateFn(EditorState.set(editorState, { nativelyRenderedContent: null }));\n\n // Wait to ensure that the re-render has occurred before performing\n // the undo action.\n setTimeout(function () {\n updateFn(undoneState);\n }, 0);\n}\n\nmodule.exports = keyCommandUndo;","/**\n * Copyright (c) 2013-present, 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 * @providesModule editOnKeyDown\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\nvar KeyBindingUtil = require('./KeyBindingUtil');\nvar Keys = require('fbjs/lib/Keys');\nvar SecondaryClipboard = require('./SecondaryClipboard');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar isEventHandled = require('./isEventHandled');\nvar keyCommandBackspaceToStartOfLine = require('./keyCommandBackspaceToStartOfLine');\nvar keyCommandBackspaceWord = require('./keyCommandBackspaceWord');\nvar keyCommandDeleteWord = require('./keyCommandDeleteWord');\nvar keyCommandInsertNewline = require('./keyCommandInsertNewline');\nvar keyCommandMoveSelectionToEndOfBlock = require('./keyCommandMoveSelectionToEndOfBlock');\nvar keyCommandMoveSelectionToStartOfBlock = require('./keyCommandMoveSelectionToStartOfBlock');\nvar keyCommandPlainBackspace = require('./keyCommandPlainBackspace');\nvar keyCommandPlainDelete = require('./keyCommandPlainDelete');\nvar keyCommandTransposeCharacters = require('./keyCommandTransposeCharacters');\nvar keyCommandUndo = require('./keyCommandUndo');\n\nvar isOptionKeyCommand = KeyBindingUtil.isOptionKeyCommand;\n\nvar isChrome = UserAgent.isBrowser('Chrome');\n\n/**\n * Map a `DraftEditorCommand` command value to a corresponding function.\n */\nfunction onKeyCommand(command, editorState) {\n switch (command) {\n case 'redo':\n return EditorState.redo(editorState);\n case 'delete':\n return keyCommandPlainDelete(editorState);\n case 'delete-word':\n return keyCommandDeleteWord(editorState);\n case 'backspace':\n return keyCommandPlainBackspace(editorState);\n case 'backspace-word':\n return keyCommandBackspaceWord(editorState);\n case 'backspace-to-start-of-line':\n return keyCommandBackspaceToStartOfLine(editorState);\n case 'split-block':\n return keyCommandInsertNewline(editorState);\n case 'transpose-characters':\n return keyCommandTransposeCharacters(editorState);\n case 'move-selection-to-start-of-block':\n return keyCommandMoveSelectionToStartOfBlock(editorState);\n case 'move-selection-to-end-of-block':\n return keyCommandMoveSelectionToEndOfBlock(editorState);\n case 'secondary-cut':\n return SecondaryClipboard.cut(editorState);\n case 'secondary-paste':\n return SecondaryClipboard.paste(editorState);\n default:\n return editorState;\n }\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 */\nfunction editOnKeyDown(editor, e) {\n var keyCode = e.which;\n var editorState = editor._latestEditorState;\n\n switch (keyCode) {\n case Keys.RETURN:\n e.preventDefault();\n // The top-level component may manually handle newline insertion. If\n // no special handling is performed, fall through to command handling.\n if (editor.props.handleReturn && isEventHandled(editor.props.handleReturn(e, editorState))) {\n return;\n }\n break;\n case Keys.ESC:\n e.preventDefault();\n editor.props.onEscape && editor.props.onEscape(e);\n return;\n case Keys.TAB:\n editor.props.onTab && editor.props.onTab(e);\n return;\n case Keys.UP:\n editor.props.onUpArrow && editor.props.onUpArrow(e);\n return;\n case Keys.RIGHT:\n editor.props.onRightArrow && editor.props.onRightArrow(e);\n return;\n case Keys.DOWN:\n editor.props.onDownArrow && editor.props.onDownArrow(e);\n return;\n case Keys.LEFT:\n editor.props.onLeftArrow && editor.props.onLeftArrow(e);\n return;\n case Keys.SPACE:\n // Handling for OSX where option + space scrolls.\n if (isChrome && isOptionKeyCommand(e)) {\n e.preventDefault();\n // Insert a nbsp into the editor.\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), '\\xA0');\n editor.update(EditorState.push(editorState, contentState, 'insert-characters'));\n return;\n }\n }\n\n var command = editor.props.keyBindingFn(e);\n\n // If no command is specified, allow keydown event to continue.\n if (!command) {\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 }\n\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 e.preventDefault();\n\n // Allow components higher up the tree to handle the command first.\n if (editor.props.handleKeyCommand && isEventHandled(editor.props.handleKeyCommand(command, editorState))) {\n return;\n }\n\n var newState = onKeyCommand(command, editorState);\n if (newState !== editorState) {\n editor.update(newState);\n }\n}\n\nmodule.exports = editOnKeyDown;","/**\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'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar URI = function () {\n function URI(uri) {\n _classCallCheck(this, URI);\n\n this._uri = uri;\n }\n\n URI.prototype.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 * 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 * @providesModule getSafeBodyFromHTML\n * @format\n * \n */\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');\n\n// 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;\n // Provides a safe context\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 return root;\n}\n\nmodule.exports = getSafeBodyFromHTML;","/**\n * Copyright (c) 2013-present, 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 * @providesModule convertFromHTMLToContentBlocks\n * @format\n * \n */\n\n'use strict';\n\nvar _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; };\n\nvar _knownListItemDepthCl,\n _assign = require('object-assign');\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');\nvar ContentBlock = require('./ContentBlock');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar DefaultDraftBlockRenderMap = require('./DefaultDraftBlockRenderMap');\nvar DraftEntity = require('./DraftEntity');\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar Immutable = require('immutable');\n\nvar _require = require('immutable'),\n Set = _require.Set;\n\nvar URI = require('fbjs/lib/URI');\n\nvar cx = require('fbjs/lib/cx');\nvar generateRandomKey = require('./generateRandomKey');\nvar getSafeBodyFromHTML = require('./getSafeBodyFromHTML');\nvar invariant = require('fbjs/lib/invariant');\nvar sanitizeDraftText = require('./sanitizeDraftText');\n\nvar experimentalTreeDataSupport = DraftFeatureFlags.draft_tree_data_support;\n\nvar List = Immutable.List,\n OrderedSet = Immutable.OrderedSet;\n\n\nvar NBSP = '&nbsp;';\nvar SPACE = ' ';\n\n// Arbitrary max indent\nvar MAX_DEPTH = 4;\n\n// used for replacing characters in HTML\nvar REGEX_CR = new RegExp('\\r', 'g');\nvar REGEX_LF = new RegExp('\\n', 'g');\nvar REGEX_NBSP = new RegExp(NBSP, 'g');\nvar REGEX_CARRIAGE = new RegExp('&#13;?', 'g');\nvar REGEX_ZWS = new RegExp('&#8203;?', 'g');\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\nvar boldValues = ['bold', 'bolder', '500', '600', '700', '800', '900'];\nvar notBoldValues = ['light', 'lighter', '100', '200', '300', '400'];\n\n// Block tag flow is different because LIs do not have\n// a deterministic style ;_;\nvar inlineTags = {\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};\n\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);\n\nvar anchorAttr = ['className', 'href', 'rel', 'target', 'title'];\n\nvar imgAttr = ['alt', 'className', 'height', 'src', 'width'];\n\nvar lastBlock = void 0;\n\nvar EMPTY_CHUNK = {\n text: '',\n inlines: [],\n entities: [],\n blocks: []\n};\n\nvar EMPTY_BLOCK = {\n children: List(),\n depth: 0,\n key: '',\n type: ''\n};\n\nvar getListBlockType = function getListBlockType(tag, lastList) {\n if (tag === 'li') {\n return lastList === 'ol' ? 'ordered-list-item' : 'unordered-list-item';\n }\n return null;\n};\n\nvar getBlockMapSupportedTags = function getBlockMapSupportedTags(blockRenderMap) {\n var unstyledElement = blockRenderMap.get('unstyled').element;\n var tags = Set([]);\n\n blockRenderMap.forEach(function (draftBlock) {\n if (draftBlock.aliasedElements) {\n draftBlock.aliasedElements.forEach(function (tag) {\n tags = tags.add(tag);\n });\n }\n\n tags = tags.add(draftBlock.element);\n });\n\n return tags.filter(function (tag) {\n return tag && tag !== unstyledElement;\n }).toArray().sort();\n};\n\n// custom element conversions\nvar getMultiMatchedType = function getMultiMatchedType(tag, lastList, multiMatchExtractor) {\n for (var ii = 0; ii < multiMatchExtractor.length; ii++) {\n var matchType = multiMatchExtractor[ii](tag, lastList);\n if (matchType) {\n return matchType;\n }\n }\n return null;\n};\n\nvar getBlockTypeForTag = function getBlockTypeForTag(tag, lastList, blockRenderMap) {\n var matchedTypes = blockRenderMap.filter(function (draftBlock) {\n return draftBlock.element === tag || draftBlock.wrapper === tag || draftBlock.aliasedElements && draftBlock.aliasedElements.some(function (alias) {\n return alias === tag;\n });\n }).keySeq().toSet().toArray().sort();\n\n // if we dont have any matched type, return unstyled\n // if we have one matched type return it\n // if we have multi matched types use the multi-match function to gather type\n switch (matchedTypes.length) {\n case 0:\n return 'unstyled';\n case 1:\n return matchedTypes[0];\n default:\n return getMultiMatchedType(tag, lastList, [getListBlockType]) || 'unstyled';\n }\n};\n\nvar processInlineTag = function processInlineTag(tag, node, currentStyle) {\n var styleToCheck = inlineTags[tag];\n if (styleToCheck) {\n currentStyle = currentStyle.add(styleToCheck).toOrderedSet();\n } else if (node instanceof HTMLElement) {\n var htmlElement = node;\n currentStyle = currentStyle.withMutations(function (style) {\n var fontWeight = htmlElement.style.fontWeight;\n var fontStyle = htmlElement.style.fontStyle;\n var textDecoration = htmlElement.style.textDecoration;\n\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 if (textDecoration === 'line-through') {\n style.add('STRIKETHROUGH');\n }\n if (textDecoration === 'none') {\n style.remove('UNDERLINE');\n style.remove('STRIKETHROUGH');\n }\n }).toOrderedSet();\n }\n return currentStyle;\n};\n\nvar joinChunks = function joinChunks(A, B, experimentalHasNestedBlocks) {\n // Sometimes two blocks will touch in the DOM and we need to strip the\n // extra delimiter to preserve niceness.\n var lastInA = A.text.slice(-1);\n var firstInB = B.text.slice(0, 1);\n\n if (lastInA === '\\r' && firstInB === '\\r' && !experimentalHasNestedBlocks) {\n A.text = A.text.slice(0, -1);\n A.inlines.pop();\n A.entities.pop();\n A.blocks.pop();\n }\n\n // Kill whitespace after blocks\n if (lastInA === '\\r') {\n if (B.text === SPACE || B.text === '\\n') {\n return A;\n } else if (firstInB === SPACE || firstInB === '\\n') {\n B.text = B.text.slice(1);\n B.inlines.shift();\n B.entities.shift();\n }\n }\n\n return {\n text: A.text + B.text,\n inlines: A.inlines.concat(B.inlines),\n entities: A.entities.concat(B.entities),\n blocks: A.blocks.concat(B.blocks)\n };\n};\n\n/**\n * Check to see if we have anything like <p> <blockquote> <h1>... to create\n * block tags from. If we do, we can use those and ignore <div> tags. If we\n * don't, we can treat <div> tags as meaningful (unstyled) blocks.\n */\nvar containsSemanticBlockMarkup = function containsSemanticBlockMarkup(html, blockTags) {\n return blockTags.some(function (tag) {\n return html.indexOf('<' + tag) !== -1;\n });\n};\n\nvar hasValidLinkText = function hasValidLinkText(link) {\n !(link instanceof HTMLAnchorElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Link must be an HTMLAnchorElement.') : invariant(false) : void 0;\n var protocol = link.protocol;\n return protocol === 'http:' || protocol === 'https:' || protocol === 'mailto:';\n};\n\nvar getWhitespaceChunk = function getWhitespaceChunk(inEntity) {\n var entities = new Array(1);\n if (inEntity) {\n entities[0] = inEntity;\n }\n return _extends({}, EMPTY_CHUNK, {\n text: SPACE,\n inlines: [OrderedSet()],\n entities: entities\n });\n};\n\nvar getSoftNewlineChunk = function getSoftNewlineChunk() {\n return _extends({}, EMPTY_CHUNK, {\n text: '\\n',\n inlines: [OrderedSet()],\n entities: new Array(1)\n });\n};\n\nvar getChunkedBlock = function getChunkedBlock() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return _extends({}, EMPTY_BLOCK, props);\n};\n\nvar getBlockDividerChunk = function getBlockDividerChunk(block, depth) {\n var parentKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n return {\n text: '\\r',\n inlines: [OrderedSet()],\n entities: new Array(1),\n blocks: [getChunkedBlock({\n parent: parentKey,\n key: generateRandomKey(),\n type: block,\n depth: Math.max(0, Math.min(MAX_DEPTH, depth))\n })]\n };\n};\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 */\nvar getListItemDepth = function getListItemDepth(node) {\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n Object.keys(knownListItemDepthClasses).some(function (depthClass) {\n if (node.classList.contains(depthClass)) {\n depth = knownListItemDepthClasses[depthClass];\n }\n });\n return depth;\n};\n\nvar genFragment = function genFragment(entityMap, node, inlineStyle, lastList, inBlock, blockTags, depth, blockRenderMap, inEntity, parentKey) {\n var lastLastBlock = lastBlock;\n var nodeName = node.nodeName.toLowerCase();\n var newEntityMap = entityMap;\n var nextBlockType = 'unstyled';\n var newBlock = false;\n var inBlockType = inBlock && getBlockTypeForTag(inBlock, lastList, blockRenderMap);\n var chunk = _extends({}, EMPTY_CHUNK);\n var newChunk = null;\n var blockKey = void 0;\n\n // Base Case\n if (nodeName === '#text') {\n var _text = node.textContent;\n var nodeTextContent = _text.trim();\n\n // We should not create blocks for leading spaces that are\n // existing around ol/ul and their children list items\n if (lastList && nodeTextContent === '' && node.parentElement) {\n var parentNodeName = node.parentElement.nodeName.toLowerCase();\n if (parentNodeName === 'ol' || parentNodeName === 'ul') {\n return { chunk: _extends({}, EMPTY_CHUNK), entityMap: entityMap };\n }\n }\n\n if (nodeTextContent === '' && inBlock !== 'pre') {\n return { chunk: getWhitespaceChunk(inEntity), entityMap: entityMap };\n }\n if (inBlock !== 'pre') {\n // Can't use empty string because MSWord\n _text = _text.replace(REGEX_LF, SPACE);\n }\n\n // save the last block so we can use it later\n lastBlock = nodeName;\n\n return {\n chunk: {\n text: _text,\n inlines: Array(_text.length).fill(inlineStyle),\n entities: Array(_text.length).fill(inEntity),\n blocks: []\n },\n entityMap: entityMap\n };\n }\n\n // save the last block so we can use it later\n lastBlock = nodeName;\n\n // BR tags\n if (nodeName === 'br') {\n if (lastLastBlock === 'br' && (!inBlock || inBlockType === 'unstyled')) {\n return {\n chunk: getBlockDividerChunk('unstyled', depth, parentKey),\n entityMap: entityMap\n };\n }\n return { chunk: getSoftNewlineChunk(), entityMap: entityMap };\n }\n\n // IMG tags\n if (nodeName === 'img' && node instanceof HTMLImageElement && node.attributes.getNamedItem('src') && node.attributes.getNamedItem('src').value) {\n var image = node;\n var entityConfig = {};\n\n imgAttr.forEach(function (attr) {\n var imageAttribute = image.getAttribute(attr);\n if (imageAttribute) {\n entityConfig[attr] = imageAttribute;\n }\n });\n // Forcing this node to have children because otherwise no entity will be\n // created for this node.\n // The child text node cannot just have a space or return as content -\n // we strip those out.\n // See https://github.com/facebook/draft-js/issues/231 for some context.\n node.textContent = '\\uD83D\\uDCF7';\n\n // TODO: update this when we remove DraftEntity entirely\n inEntity = DraftEntity.__create('IMAGE', 'MUTABLE', entityConfig || {});\n }\n\n // Inline tags\n inlineStyle = processInlineTag(nodeName, node, inlineStyle);\n\n // Handle lists\n if (nodeName === 'ul' || nodeName === 'ol') {\n if (lastList) {\n depth += 1;\n }\n lastList = nodeName;\n }\n\n if (!experimentalTreeDataSupport && nodeName === 'li' && node instanceof HTMLElement) {\n depth = getListItemDepth(node, depth);\n }\n\n var blockType = getBlockTypeForTag(nodeName, lastList, blockRenderMap);\n var inListBlock = lastList && inBlock === 'li' && nodeName === 'li';\n var inBlockOrHasNestedBlocks = (!inBlock || experimentalTreeDataSupport) && blockTags.indexOf(nodeName) !== -1;\n\n // Block Tags\n if (inListBlock || inBlockOrHasNestedBlocks) {\n chunk = getBlockDividerChunk(blockType, depth, parentKey);\n blockKey = chunk.blocks[0].key;\n inBlock = nodeName;\n newBlock = !experimentalTreeDataSupport;\n }\n\n // this is required so that we can handle 'ul' and 'ol'\n if (inListBlock) {\n nextBlockType = lastList === 'ul' ? 'unordered-list-item' : 'ordered-list-item';\n }\n\n // Recurse through children\n var child = node.firstChild;\n if (child != null) {\n nodeName = child.nodeName.toLowerCase();\n }\n\n var entityId = null;\n\n while (child) {\n if (child instanceof HTMLAnchorElement && child.href && hasValidLinkText(child)) {\n (function () {\n var anchor = child;\n var entityConfig = {};\n\n anchorAttr.forEach(function (attr) {\n var anchorAttribute = anchor.getAttribute(attr);\n if (anchorAttribute) {\n entityConfig[attr] = anchorAttribute;\n }\n });\n\n entityConfig.url = new URI(anchor.href).toString();\n // TODO: update this when we remove DraftEntity completely\n entityId = DraftEntity.__create('LINK', 'MUTABLE', entityConfig || {});\n })();\n } else {\n entityId = undefined;\n }\n\n var _genFragment = genFragment(newEntityMap, child, inlineStyle, lastList, inBlock, blockTags, depth, blockRenderMap, entityId || inEntity, experimentalTreeDataSupport ? blockKey : null),\n generatedChunk = _genFragment.chunk,\n maybeUpdatedEntityMap = _genFragment.entityMap;\n\n newChunk = generatedChunk;\n newEntityMap = maybeUpdatedEntityMap;\n\n chunk = joinChunks(chunk, newChunk, experimentalTreeDataSupport);\n var sibling = child.nextSibling;\n\n // Put in a newline to break up blocks inside blocks\n if (!parentKey && sibling && blockTags.indexOf(nodeName) >= 0 && inBlock) {\n chunk = joinChunks(chunk, getSoftNewlineChunk());\n }\n if (sibling) {\n nodeName = sibling.nodeName.toLowerCase();\n }\n child = sibling;\n }\n\n if (newBlock) {\n chunk = joinChunks(chunk, getBlockDividerChunk(nextBlockType, depth, parentKey));\n }\n\n return { chunk: chunk, entityMap: newEntityMap };\n};\n\nvar getChunkForHTML = function getChunkForHTML(html, DOMBuilder, blockRenderMap, entityMap) {\n html = html.trim().replace(REGEX_CR, '').replace(REGEX_NBSP, SPACE).replace(REGEX_CARRIAGE, '').replace(REGEX_ZWS, '');\n\n var supportedBlockTags = getBlockMapSupportedTags(blockRenderMap);\n\n var safeBody = DOMBuilder(html);\n if (!safeBody) {\n return null;\n }\n lastBlock = null;\n\n // Sometimes we aren't dealing with content that contains nice semantic\n // tags. In this case, use divs to separate everything out into paragraphs\n // and hope for the best.\n var workingBlocks = containsSemanticBlockMarkup(html, supportedBlockTags) ? supportedBlockTags : ['div'];\n\n // Start with -1 block depth to offset the fact that we are passing in a fake\n // UL block to start with.\n var fragment = genFragment(entityMap, safeBody, OrderedSet(), 'ul', null, workingBlocks, -1, blockRenderMap);\n\n var chunk = fragment.chunk;\n var newEntityMap = fragment.entityMap;\n\n // join with previous block to prevent weirdness on paste\n if (chunk.text.indexOf('\\r') === 0) {\n chunk = {\n text: chunk.text.slice(1),\n inlines: chunk.inlines.slice(1),\n entities: chunk.entities.slice(1),\n blocks: chunk.blocks\n };\n }\n\n // Kill block delimiter at the end\n if (chunk.text.slice(-1) === '\\r') {\n chunk.text = chunk.text.slice(0, -1);\n chunk.inlines = chunk.inlines.slice(0, -1);\n chunk.entities = chunk.entities.slice(0, -1);\n chunk.blocks.pop();\n }\n\n // If we saw no block tags, put an unstyled one in\n if (chunk.blocks.length === 0) {\n chunk.blocks.push(_extends({}, EMPTY_CHUNK, {\n type: 'unstyled',\n depth: 0\n }));\n }\n\n // Sometimes we start with text that isn't in a block, which is then\n // followed by blocks. Need to fix up the blocks to add in\n // an unstyled block for this content\n if (chunk.text.split('\\r').length === chunk.blocks.length + 1) {\n chunk.blocks.unshift({ type: 'unstyled', depth: 0 });\n }\n\n return { chunk: chunk, entityMap: newEntityMap };\n};\n\nvar convertChunkToContentBlocks = function convertChunkToContentBlocks(chunk) {\n if (!chunk || !chunk.text || !Array.isArray(chunk.blocks)) {\n return null;\n }\n\n var initialState = {\n cacheRef: {},\n contentBlocks: []\n };\n\n var start = 0;\n\n var rawBlocks = chunk.blocks,\n rawInlines = chunk.inlines,\n rawEntities = chunk.entities;\n\n\n var BlockNodeRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\n\n return chunk.text.split('\\r').reduce(function (acc, textBlock, index) {\n // Make absolutely certain that our text is acceptable.\n textBlock = sanitizeDraftText(textBlock);\n\n var block = rawBlocks[index];\n var end = start + textBlock.length;\n var inlines = rawInlines.slice(start, end);\n var entities = rawEntities.slice(start, end);\n var characterList = List(inlines.map(function (style, index) {\n var data = { style: style, entity: null };\n if (entities[index]) {\n data.entity = entities[index];\n }\n return CharacterMetadata.create(data);\n }));\n start = end + 1;\n\n var depth = block.depth,\n type = block.type,\n parent = block.parent;\n\n\n var key = block.key || generateRandomKey();\n var parentTextNodeKey = null; // will be used to store container text nodes\n\n // childrens add themselves to their parents since we are iterating in order\n if (parent) {\n var parentIndex = acc.cacheRef[parent];\n var parentRecord = acc.contentBlocks[parentIndex];\n\n // if parent has text we need to split it into a separate unstyled element\n if (parentRecord.getChildKeys().isEmpty() && parentRecord.getText()) {\n var parentCharacterList = parentRecord.getCharacterList();\n var parentText = parentRecord.getText();\n parentTextNodeKey = generateRandomKey();\n\n var textNode = new ContentBlockNode({\n key: parentTextNodeKey,\n text: parentText,\n characterList: parentCharacterList,\n parent: parent,\n nextSibling: key\n });\n\n acc.contentBlocks.push(textNode);\n\n parentRecord = parentRecord.withMutations(function (block) {\n block.set('characterList', List()).set('text', '').set('children', parentRecord.children.push(textNode.getKey()));\n });\n }\n\n acc.contentBlocks[parentIndex] = parentRecord.set('children', parentRecord.children.push(key));\n }\n\n var blockNode = new BlockNodeRecord({\n key: key,\n parent: parent,\n type: type,\n depth: depth,\n text: textBlock,\n characterList: characterList,\n prevSibling: parentTextNodeKey || (index === 0 || rawBlocks[index - 1].parent !== parent ? null : rawBlocks[index - 1].key),\n nextSibling: index === rawBlocks.length - 1 || rawBlocks[index + 1].parent !== parent ? null : rawBlocks[index + 1].key\n });\n\n // insert node\n acc.contentBlocks.push(blockNode);\n\n // cache ref for building links\n acc.cacheRef[blockNode.key] = index;\n\n return acc;\n }, initialState).contentBlocks;\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\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\n // TODO: replace DraftEntity with an OrderedMap here\n var chunkData = getChunkForHTML(html, DOMBuilder, blockRenderMap, DraftEntity);\n\n if (chunkData == null) {\n return null;\n }\n\n var chunk = chunkData.chunk,\n entityMap = chunkData.entityMap;\n\n var contentBlocks = convertChunkToContentBlocks(chunk);\n\n return {\n contentBlocks: contentBlocks,\n entityMap: entityMap\n };\n};\n\nmodule.exports = convertFromHTMLtoContentBlocks;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftPasteProcessor\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nvar CharacterMetadata = require('./CharacterMetadata');\nvar ContentBlock = require('./ContentBlock');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar Immutable = require('immutable');\n\nvar convertFromHTMLtoContentBlocks = require('./convertFromHTMLToContentBlocks');\nvar generateRandomKey = require('./generateRandomKey');\nvar getSafeBodyFromHTML = require('./getSafeBodyFromHTML');\nvar sanitizeDraftText = require('./sanitizeDraftText');\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat;\n\n\nvar experimentalTreeDataSupport = DraftFeatureFlags.draft_tree_data_support;\nvar ContentBlockRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\n\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\n var blockNodeConfig = {\n key: key,\n type: type,\n text: textLine,\n characterList: List(Repeat(character, textLine.length))\n };\n\n // next block updates previous block\n if (experimentalTreeDataSupport && index !== 0) {\n var prevSiblingIndex = index - 1;\n // update previous block\n var previousBlock = acc[prevSiblingIndex] = acc[prevSiblingIndex].merge({\n nextSibling: key\n });\n blockNodeConfig = _extends({}, blockNodeConfig, {\n prevSibling: previousBlock.getKey()\n });\n }\n\n acc.push(new ContentBlockRecord(blockNodeConfig));\n\n return acc;\n }, []);\n }\n};\n\nmodule.exports = DraftPasteProcessor;","/**\n * Copyright (c) 2013-present, 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 * @providesModule adjustBlockDepthForContentState\n * @format\n * \n */\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\n blockMap = blockMap.merge(blocks);\n\n return contentState.merge({\n blockMap: blockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = adjustBlockDepthForContentState;","/**\n * Copyright (c) 2013-present, 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 * @providesModule RichTextEditorUtil\n * @format\n * \n */\n\n'use strict';\n\nvar DraftModifier = require('./DraftModifier');\nvar EditorState = require('./EditorState');\nvar SelectionState = require('./SelectionState');\n\nvar adjustBlockDepthForContentState = require('./adjustBlockDepthForContentState');\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\n getCurrentBlockType: function getCurrentBlockType(editorState) {\n var selection = editorState.getSelection();\n return editorState.getCurrentContent().getBlockForKey(selection.getStartKey()).getType();\n },\n\n getDataObjectForLinkURL: function getDataObjectForLinkURL(uri) {\n return { url: uri.toString() };\n },\n\n handleKeyCommand: function handleKeyCommand(editorState, command) {\n switch (command) {\n case 'bold':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'BOLD');\n case 'italic':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'ITALIC');\n case 'underline':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'UNDERLINE');\n case 'code':\n return RichTextEditorUtil.toggleCode(editorState);\n case 'backspace':\n case 'backspace-word':\n case 'backspace-to-start-of-line':\n return RichTextEditorUtil.onBackspace(editorState);\n case 'delete':\n case 'delete-word':\n case 'delete-to-end-of-block':\n return RichTextEditorUtil.onDelete(editorState);\n default:\n // they may have custom editor commands; ignore those\n return null;\n }\n },\n\n insertSoftNewline: function insertSoftNewline(editorState) {\n var contentState = DraftModifier.insertText(editorState.getCurrentContent(), editorState.getSelection(), '\\n', editorState.getCurrentInlineStyle(), null);\n\n var newEditorState = EditorState.push(editorState, contentState, 'insert-characters');\n\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 if (!selection.isCollapsed() || selection.getAnchorOffset() || selection.getFocusOffset()) {\n return null;\n }\n\n // First, try to remove a preceding atomic block.\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 if (withoutAtomicBlock !== content) {\n return EditorState.push(editorState, withoutAtomicBlock, 'remove-range');\n }\n }\n\n // If that doesn't succeed, try to remove the current block style.\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\n onDelete: function onDelete(editorState) {\n var selection = editorState.getSelection();\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();\n\n // The cursor is somewhere within the text. Behave normally.\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\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\n onTab: function onTab(event, editorState, maxDepth) {\n var selection = editorState.getSelection();\n var key = selection.getAnchorKey();\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 if (type !== 'unordered-list-item' && type !== 'ordered-list-item') {\n return editorState;\n }\n\n event.preventDefault();\n\n // Only allow indenting one level beyond the block above, and only if\n // the block above is a list item as well.\n var blockAbove = content.getBlockBefore(key);\n if (!blockAbove) {\n return editorState;\n }\n\n var typeAbove = blockAbove.getType();\n if (typeAbove !== 'unordered-list-item' && typeAbove !== 'ordered-list-item') {\n return editorState;\n }\n\n var depth = block.getDepth();\n if (!event.shiftKey && depth === maxDepth) {\n return editorState;\n }\n\n maxDepth = Math.min(blockAbove.getDepth() + 1, maxDepth);\n\n var withAdjustment = adjustBlockDepthForContentState(content, selection, event.shiftKey ? -1 : 1, maxDepth);\n\n return EditorState.push(editorState, withAdjustment, 'adjust-depth');\n },\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;\n\n // 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 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\n return EditorState.push(editorState, DraftModifier.setBlockType(content, target, typeToSet), 'change-block-type');\n },\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();\n\n // 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 if (selection.isCollapsed()) {\n return EditorState.setInlineStyleOverride(editorState, currentStyle.has(inlineStyle) ? currentStyle.remove(inlineStyle) : currentStyle.add(inlineStyle));\n }\n\n // If characters are selected, immediately apply or remove the\n // inline style on the document state itself.\n var content = editorState.getCurrentContent();\n var newContent;\n\n // If the style is already present for the selection range, remove it.\n // Otherwise, apply it.\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\n toggleLink: function toggleLink(editorState, targetSelection, entityKey) {\n var withoutLink = DraftModifier.applyEntity(editorState.getCurrentContent(), targetSelection, entityKey);\n\n return EditorState.push(editorState, withoutLink, 'apply-entity');\n },\n\n /**\n * When a collapsed cursor is at the start of the first styled block, or\n * an empty styled block, changes block to 'unstyled'. Returns null if\n * block or selection does not meet that criteria.\n */\n tryToRemoveBlockStyle: function tryToRemoveBlockStyle(editorState) {\n var selection = editorState.getSelection();\n var offset = selection.getAnchorOffset();\n if (selection.isCollapsed() && offset === 0) {\n var key = selection.getAnchorKey();\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(key);\n\n var firstBlock = content.getFirstBlock();\n if (block.getLength() > 0 && block !== firstBlock) {\n return null;\n }\n\n var type = block.getType();\n var blockBefore = content.getBlockBefore(key);\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 return null;\n }\n};\n\nmodule.exports = RichTextEditorUtil;","/**\n * Copyright (c) 2013-present, 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 * @providesModule splitTextIntoTextBlocks\n * @format\n * \n */\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;","/**\n * Copyright (c) 2013-present, 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 * @providesModule editOnPaste\n * @format\n * \n */\n\n'use strict';\n\nvar BlockMapBuilder = require('./BlockMapBuilder');\nvar CharacterMetadata = require('./CharacterMetadata');\nvar DataTransfer = require('fbjs/lib/DataTransfer');\nvar DraftModifier = require('./DraftModifier');\nvar DraftPasteProcessor = require('./DraftPasteProcessor');\nvar EditorState = require('./EditorState');\nvar RichTextEditorUtil = require('./RichTextEditorUtil');\n\nvar getEntityKeyForSelection = require('./getEntityKeyForSelection');\nvar getTextContentFromFiles = require('./getTextContentFromFiles');\nvar isEventHandled = require('./isEventHandled');\nvar splitTextIntoTextBlocks = require('./splitTextIntoTextBlocks');\n\n/**\n * Paste content.\n */\nfunction editOnPaste(editor, e) {\n e.preventDefault();\n var data = new DataTransfer(e.clipboardData);\n\n // Get files, unless this is likely to be a string the user wants inline.\n if (!data.isRichText()) {\n var files = data.getFiles();\n var defaultFileText = data.getText();\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\n getTextContentFromFiles(files, function ( /*string*/fileText) {\n fileText = fileText || defaultFileText;\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\n var text = DraftPasteProcessor.processText(blocks, character, currentBlockType);\n var fragment = BlockMapBuilder.createFromArray(text);\n\n var withInsertedText = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), fragment);\n\n editor.update(EditorState.push(editorState, withInsertedText, 'insert-fragment'));\n });\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.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 if (data.isRichText() && internalClipboard) {\n if (\n // If the editorKey is present in the pasted HTML, it should be safe to\n // assume this is an internal paste.\n html.indexOf(editor.getEditorKey()) !== -1 ||\n // 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 }\n\n // If there is html paste data, try to parse that.\n if (html) {\n var htmlFragment = DraftPasteProcessor.processHTML(html, editor.props.blockRenderMap);\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 }\n\n // Otherwise, create a new fragment from our pasted text. Also\n // empty the internal clipboard, since it's no longer valid.\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\n var currentBlockType = RichTextEditorUtil.getCurrentBlockType(editorState);\n\n var textFragment = DraftPasteProcessor.processText(textBlocks, character, currentBlockType);\n\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);\n // 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) 2013-present, 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 * @providesModule getDraftEditorSelection\n * @format\n * \n */\n\n'use strict';\n\nvar getDraftEditorSelectionWithNodes = require('./getDraftEditorSelectionWithNodes');\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 getDraftEditorSelection(editorState, root) {\n var selection = global.getSelection();\n\n // No active selection.\n if (selection.rangeCount === 0) {\n return {\n selectionState: editorState.getSelection().set('hasFocus', false),\n needsRecovery: false\n };\n }\n\n return getDraftEditorSelectionWithNodes(editorState, root, selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n}\n\nmodule.exports = getDraftEditorSelection;","/**\n * Copyright (c) 2013-present, 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 * @providesModule editOnSelect\n * @format\n * \n */\n\n'use strict';\n\nvar EditorState = require('./EditorState');\nvar ReactDOM = require('react-dom');\n\nvar getDraftEditorSelection = require('./getDraftEditorSelection');\nvar invariant = require('fbjs/lib/invariant');\n\nfunction editOnSelect(editor) {\n if (editor._blockSelectEvents || editor._latestEditorState !== editor.props.editorState) {\n return;\n }\n\n var editorState = editor.props.editorState;\n var editorNode = ReactDOM.findDOMNode(editor.editorContainer);\n !editorNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing editorNode') : invariant(false) : void 0;\n !(editorNode.firstChild instanceof HTMLElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'editorNode.firstChild is not an HTMLElement') : invariant(false) : void 0;\n var documentSelection = getDraftEditorSelection(editorState, editorNode.firstChild);\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 editor.update(editorState);\n }\n}\n\nmodule.exports = editOnSelect;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorEditHandler\n * @format\n * \n */\n\n'use strict';\n\nvar onBeforeInput = require('./editOnBeforeInput');\nvar onBlur = require('./editOnBlur');\nvar onCompositionStart = require('./editOnCompositionStart');\nvar onCopy = require('./editOnCopy');\nvar onCut = require('./editOnCut');\nvar onDragOver = require('./editOnDragOver');\nvar onDragStart = require('./editOnDragStart');\nvar onFocus = require('./editOnFocus');\nvar onInput = require('./editOnInput');\nvar onKeyDown = require('./editOnKeyDown');\nvar onPaste = require('./editOnPaste');\nvar onSelect = require('./editOnSelect');\n\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};\n\nmodule.exports = DraftEditorEditHandler;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditorPlaceholder.react\n * @format\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : 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 = function (_React$Component) {\n _inherits(DraftEditorPlaceholder, _React$Component);\n\n function DraftEditorPlaceholder() {\n _classCallCheck(this, DraftEditorPlaceholder);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n DraftEditorPlaceholder.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return this.props.text !== nextProps.text || this.props.editorState.getSelection().getHasFocus() !== nextProps.editorState.getSelection().getHasFocus();\n };\n\n DraftEditorPlaceholder.prototype.render = function render() {\n var hasFocus = this.props.editorState.getSelection().getHasFocus();\n\n var className = cx({\n 'public/DraftEditorPlaceholder/root': true,\n 'public/DraftEditorPlaceholder/hasFocus': hasFocus\n });\n\n var contentStyle = {\n whiteSpace: 'pre-wrap'\n };\n\n return React.createElement(\n 'div',\n { className: className },\n React.createElement(\n 'div',\n {\n className: cx('public/DraftEditorPlaceholder/inner'),\n id: this.props.accessibilityID,\n style: contentStyle },\n this.props.text\n )\n );\n };\n\n return DraftEditorPlaceholder;\n}(React.Component);\n\nmodule.exports = DraftEditorPlaceholder;","/**\n * Copyright (c) 2013-present, 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 * @providesModule getDefaultKeyBinding\n * @format\n * \n */\n\n'use strict';\n\nvar KeyBindingUtil = require('./KeyBindingUtil');\nvar Keys = require('fbjs/lib/Keys');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar isOSX = UserAgent.isPlatform('Mac OS X');\nvar isWindows = UserAgent.isPlatform('Windows');\n\n// 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.\nvar shouldFixFirefoxMovement = isOSX && UserAgent.isBrowser('Firefox < 29');\n\nvar hasCommandModifier = KeyBindingUtil.hasCommandModifier,\n isCtrlKeyCommand = KeyBindingUtil.isCtrlKeyCommand;\n\n\nfunction shouldRemoveWord(e) {\n return isOSX && e.altKey || isCtrlKeyCommand(e);\n}\n\n/**\n * Get the appropriate undo/redo command for a Z key command.\n */\nfunction getZCommand(e) {\n if (!hasCommandModifier(e)) {\n return null;\n }\n return e.shiftKey ? 'redo' : 'undo';\n}\n\nfunction getDeleteCommand(e) {\n // Allow default \"cut\" behavior for Windows on Shift + Delete.\n if (isWindows && e.shiftKey) {\n return null;\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 return shouldRemoveWord(e) ? 'backspace-word' : 'backspace';\n}\n\n/**\n * Retrieve a bound key command for the given event.\n */\nfunction getDefaultKeyBinding(e) {\n switch (e.keyCode) {\n case 66:\n // B\n return hasCommandModifier(e) ? 'bold' : null;\n case 68:\n // D\n return isCtrlKeyCommand(e) ? 'delete' : null;\n case 72:\n // H\n return isCtrlKeyCommand(e) ? 'backspace' : null;\n case 73:\n // I\n return hasCommandModifier(e) ? 'italic' : null;\n case 74:\n // J\n return hasCommandModifier(e) ? 'code' : null;\n case 75:\n // K\n return !isWindows && isCtrlKeyCommand(e) ? 'secondary-cut' : null;\n case 77:\n // M\n return isCtrlKeyCommand(e) ? 'split-block' : null;\n case 79:\n // O\n return isCtrlKeyCommand(e) ? 'split-block' : null;\n case 84:\n // T\n return isOSX && isCtrlKeyCommand(e) ? 'transpose-characters' : null;\n case 85:\n // U\n return hasCommandModifier(e) ? 'underline' : null;\n case 87:\n // W\n return isOSX && isCtrlKeyCommand(e) ? 'backspace-word' : null;\n case 89:\n // Y\n if (isCtrlKeyCommand(e)) {\n return isWindows ? 'redo' : 'secondary-paste';\n }\n return null;\n case 90:\n // Z\n return getZCommand(e) || null;\n case Keys.RETURN:\n return 'split-block';\n case Keys.DELETE:\n return getDeleteCommand(e);\n case Keys.BACKSPACE:\n return getBackspaceCommand(e);\n // LEFT/RIGHT handlers serve as a workaround for a Firefox bug.\n case Keys.LEFT:\n return shouldFixFirefoxMovement && hasCommandModifier(e) ? 'move-selection-to-start-of-block' : null;\n case Keys.RIGHT:\n return shouldFixFirefoxMovement && hasCommandModifier(e) ? 'move-selection-to-end-of-block' : null;\n default:\n return null;\n }\n}\n\nmodule.exports = getDefaultKeyBinding;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftEditor.react\n * @format\n * \n * @preventMunge\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DefaultDraftBlockRenderMap = require('./DefaultDraftBlockRenderMap');\nvar DefaultDraftInlineStyle = require('./DefaultDraftInlineStyle');\nvar DraftEditorCompositionHandler = require('./DraftEditorCompositionHandler');\nvar DraftEditorContents = require('./DraftEditorContents.react');\nvar DraftEditorDragHandler = require('./DraftEditorDragHandler');\nvar DraftEditorEditHandler = require('./DraftEditorEditHandler');\nvar DraftEditorPlaceholder = require('./DraftEditorPlaceholder.react');\nvar EditorState = require('./EditorState');\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar Scroll = require('fbjs/lib/Scroll');\nvar Style = require('fbjs/lib/Style');\nvar UserAgent = require('fbjs/lib/UserAgent');\n\nvar cx = require('fbjs/lib/cx');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar generateRandomKey = require('./generateRandomKey');\nvar getDefaultKeyBinding = require('./getDefaultKeyBinding');\nvar getScrollPosition = require('fbjs/lib/getScrollPosition');\nvar invariant = require('fbjs/lib/invariant');\nvar nullthrows = require('fbjs/lib/nullthrows');\n\nvar isIE = UserAgent.isBrowser('IE');\n\n// IE does not support the `input` event on contentEditable, so we can't\n// observe spellcheck behavior.\nvar allowSpellCheck = !isIE;\n\n// Define a set of handler objects to correspond to each possible `mode`\n// of editor behavior.\nvar handlerMap = {\n edit: DraftEditorEditHandler,\n composite: DraftEditorCompositionHandler,\n drag: DraftEditorDragHandler,\n cut: null,\n render: null\n};\n\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 */\nvar DraftEditor = function (_React$Component) {\n _inherits(DraftEditor, _React$Component);\n\n function DraftEditor(props) {\n _classCallCheck(this, DraftEditor);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.focus = function (scrollPosition) {\n var editorState = _this.props.editorState;\n\n var alreadyHasFocus = editorState.getSelection().getHasFocus();\n var editorNode = ReactDOM.findDOMNode(_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 !(editorNode instanceof HTMLElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'editorNode is not an HTMLElement') : invariant(false) : void 0;\n editorNode.focus();\n\n // Restore scroll position\n if (scrollParent === window) {\n window.scrollTo(x, y);\n } else {\n Scroll.setTop(scrollParent, y);\n }\n\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 if (!alreadyHasFocus) {\n _this.update(EditorState.forceSelection(editorState, editorState.getSelection()));\n }\n };\n\n _this.blur = function () {\n var editorNode = ReactDOM.findDOMNode(_this.editor);\n !(editorNode instanceof HTMLElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'editorNode is not an HTMLElement') : invariant(false) : void 0;\n editorNode.blur();\n };\n\n _this.setMode = function (mode) {\n _this._handler = handlerMap[mode];\n };\n\n _this.exitCurrentMode = function () {\n _this.setMode('edit');\n };\n\n _this.restoreEditorDOM = function (scrollPosition) {\n _this.setState({ contentsKey: _this.state.contentsKey + 1 }, function () {\n _this.focus(scrollPosition);\n });\n };\n\n _this.setClipboard = function (clipboard) {\n _this._clipboard = clipboard;\n };\n\n _this.getClipboard = function () {\n return _this._clipboard;\n };\n\n _this.update = function (editorState) {\n _this._latestEditorState = editorState;\n _this.props.onChange(editorState);\n };\n\n _this.onDragEnter = function () {\n _this._dragCount++;\n };\n\n _this.onDragLeave = function () {\n _this._dragCount--;\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\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 // See `restoreEditorDOM()`.\n _this.state = { contentsKey: 0 };\n return _this;\n }\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 /**\n * Define proxies that can route events to the current handler.\n */\n\n\n DraftEditor.prototype._buildHandler = function _buildHandler(eventName) {\n var _this2 = this;\n\n return function (e) {\n if (!_this2.props.readOnly) {\n var method = _this2._handler && _this2._handler[eventName];\n method && method(_this2, e);\n }\n };\n };\n\n DraftEditor.prototype._showPlaceholder = function _showPlaceholder() {\n return !!this.props.placeholder && !this.props.editorState.isInCompositionMode() && !this.props.editorState.getCurrentContent().hasText();\n };\n\n DraftEditor.prototype._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\n return React.createElement(DraftEditorPlaceholder, placeHolderProps);\n }\n return null;\n };\n\n DraftEditor.prototype.render = function render() {\n var _this3 = this;\n\n var _props = this.props,\n blockRenderMap = _props.blockRenderMap,\n blockRendererFn = _props.blockRendererFn,\n blockStyleFn = _props.blockStyleFn,\n customStyleFn = _props.customStyleFn,\n customStyleMap = _props.customStyleMap,\n editorState = _props.editorState,\n readOnly = _props.readOnly,\n textAlignment = _props.textAlignment,\n textDirectionality = _props.textDirectionality;\n\n\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\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 };\n\n // The aria-expanded and aria-haspopup properties should only be rendered\n // for a combobox.\n var ariaRole = this.props.role || 'textbox';\n var ariaExpanded = ariaRole === 'combobox' ? !!this.props.ariaExpanded : null;\n\n var editorContentsProps = {\n blockRenderMap: blockRenderMap,\n blockRendererFn: blockRendererFn,\n blockStyleFn: blockStyleFn,\n customStyleMap: _extends({}, DefaultDraftInlineStyle, customStyleMap),\n customStyleFn: customStyleFn,\n editorKey: this._editorKey,\n editorState: editorState,\n key: 'contents' + this.state.contentsKey,\n textDirectionality: textDirectionality\n };\n\n return React.createElement(\n 'div',\n { className: rootClass },\n this._renderPlaceholder(),\n React.createElement(\n 'div',\n {\n className: cx('DraftEditor/editorContainer'),\n ref: function ref(_ref3) {\n return _this3.editorContainer = _ref3;\n } },\n React.createElement(\n 'div',\n {\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.props.ariaDescribedBy || this._placeholderAccessibilityID,\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 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 <font> 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: function ref(_ref2) {\n return _this3.editor = _ref2;\n },\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(DraftEditorContents, editorContentsProps)\n )\n )\n );\n };\n\n DraftEditor.prototype.componentDidMount = function componentDidMount() {\n this.setMode('edit');\n\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 if (isIE) {\n document.execCommand('AutoUrlDetect', false, false);\n }\n };\n\n /**\n * Prevent selection events from affecting the current editor state. This\n * is mostly intended to defend against IE, which fires off `selectionchange`\n * events regardless of whether the selection is set via the browser or\n * programmatically. We only care about selection events that occur because\n * of browser interaction, not re-renders and forced selections.\n */\n\n\n DraftEditor.prototype.componentWillUpdate = function componentWillUpdate(nextProps) {\n this._blockSelectEvents = true;\n this._latestEditorState = nextProps.editorState;\n };\n\n DraftEditor.prototype.componentDidUpdate = function componentDidUpdate() {\n this._blockSelectEvents = false;\n this._latestCommittedEditorState = this.props.editorState;\n };\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 /**\n * Used via `this.setMode(...)`.\n *\n * Set the behavior mode for the editor component. This switches the current\n * handler module to ensure that DOM events are managed appropriately for\n * the active mode.\n */\n\n\n /**\n * Used via `this.restoreEditorDOM()`.\n *\n * Force a complete re-render of the DraftEditorContents based on the current\n * EditorState. This is useful when we know we are going to lose control of\n * the DOM state (cut command, IME) and we want to make sure that\n * reconciliation occurs on a version of the DOM that is synchronized with\n * our EditorState.\n */\n\n\n /**\n * Used via `this.setClipboard(...)`.\n *\n * Set the clipboard state for a cut/copy event.\n */\n\n\n /**\n * Used via `this.getClipboard()`.\n *\n * Retrieve the clipboard state for a cut/copy event.\n */\n\n\n /**\n * Used via `this.update(...)`.\n *\n * Propagate a new `EditorState` object to higher-level components. This is\n * the method by which event handlers inform the `DraftEditor` component of\n * state changes. A component that composes a `DraftEditor` **must** provide\n * an `onChange` prop to receive state updates passed along from this\n * function.\n */\n\n\n /**\n * Used in conjunction with `onDragLeave()`, by counting the number of times\n * a dragged element enters and leaves the editor (or any of its children),\n * to determine when the dragged element absolutely leaves the editor.\n */\n\n\n /**\n * See `onDragEnter()`.\n */\n\n\n return DraftEditor;\n}(React.Component);\n\nDraftEditor.defaultProps = {\n blockRenderMap: DefaultDraftBlockRenderMap,\n blockRendererFn: emptyFunction.thatReturnsNull,\n blockStyleFn: emptyFunction.thatReturns(''),\n keyBindingFn: getDefaultKeyBinding,\n readOnly: false,\n spellCheck: false,\n stripPastedStyles: false\n};\n\n\nmodule.exports = DraftEditor;","/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftStringKey\n * @format\n * \n */\n\n'use strict';\n\nvar DraftStringKey = {\n stringify: function stringify(key) {\n return '_' + String(key);\n },\n\n unstringify: function unstringify(key) {\n return key.slice(1);\n }\n};\n\nmodule.exports = DraftStringKey;","/**\n * Copyright (c) 2013-present, 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 * @providesModule encodeEntityRanges\n * @format\n * \n */\n\n'use strict';\n\nvar DraftStringKey = require('./DraftStringKey');\nvar UnicodeUtils = require('fbjs/lib/UnicodeUtils');\n\nvar strlen = UnicodeUtils.strlen;\n\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 ( /*number*/start, /*number*/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) 2013-present, 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 * @providesModule encodeInlineStyleRanges\n * @format\n * \n */\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};\nvar isTruthy = function isTruthy(a) {\n return !!a;\n};\nvar EMPTY_ARRAY = [];\n\n/**\n * Helper function for getting encoded styles for each inline style. Convert\n * to UTF-8 character counts for storage.\n */\nfunction getEncodedInlinesForType(block, styleList, styleToEncode) {\n var ranges = [];\n\n // Obtain an array with ranges for only the specified style.\n var filteredInlines = styleList.map(function (style) {\n return style.has(styleToEncode);\n }).toList();\n\n findRangesImmutable(filteredInlines, areEqual,\n // 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\n return ranges;\n}\n\n/*\n * Retrieve the encoded arrays of inline styles, with each individual style\n * treated separately.\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\n return Array.prototype.concat.apply(EMPTY_ARRAY, ranges.toJS());\n}\n\nmodule.exports = encodeInlineStyleRanges;","/**\n * Copyright (c) 2013-present, 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 * @providesModule convertFromDraftStateToRaw\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nvar ContentBlock = require('./ContentBlock');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar DraftStringKey = require('./DraftStringKey');\n\nvar encodeEntityRanges = require('./encodeEntityRanges');\nvar encodeInlineStyleRanges = require('./encodeInlineStyleRanges');\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\n var parentKey = block.getParentKey();\n var rawBlock = blockCacheRef[block.getKey()] = _extends({}, 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\n\n var rawBlocks = [];\n\n var blockCacheRef = {};\n var entityCacheRef = {};\n var entityStorageKey = 0;\n\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);\n // Stringify to maintain order of otherwise numeric keys.\n var stringifiedEntityKey = DraftStringKey.stringify(entityKey);\n // This makes this function resilient to two entities\n // erroneously having the same key\n if (entityCacheRef[stringifiedEntityKey]) {\n return;\n }\n entityCacheRef[stringifiedEntityKey] = entityKey;\n // 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 entityMap[stringifiedEntityKey] = '' + entityStorageKey;\n entityStorageKey++;\n });\n\n insertRawBlock(block, entityMap, rawBlocks, blockCacheRef);\n });\n\n return {\n blocks: rawBlocks,\n entityMap: entityMap\n };\n};\n\n// Flip storage map so that our storage keys map to global\n// DraftEntity keys.\nvar encodeRawEntityMap = function encodeRawEntityMap(contentState, rawState) {\n var blocks = rawState.blocks,\n entityMap = rawState.entityMap;\n\n\n var rawEntityMap = {};\n\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\n return {\n blocks: blocks,\n entityMap: rawEntityMap\n };\n};\n\nvar convertFromDraftStateToRaw = function convertFromDraftStateToRaw(contentState) {\n var rawDraftContentState = {\n entityMap: {},\n blocks: []\n };\n\n // add blocks\n rawDraftContentState = encodeRawBlocks(contentState, rawDraftContentState);\n\n // add entities\n rawDraftContentState = encodeRawEntityMap(contentState, rawDraftContentState);\n\n return rawDraftContentState;\n};\n\nmodule.exports = convertFromDraftStateToRaw;","'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\n/**\n * Copyright (c) 2013-present, 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 * @providesModule DraftTreeAdapter\n * @format\n * \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\nvar invariant = require('fbjs/lib/invariant');\n\nvar traverseInDepthOrder = function traverseInDepthOrder(blocks, fn) {\n var stack = [].concat(blocks).reverse();\n while (stack.length) {\n var _block = stack.pop();\n\n fn(_block);\n\n var children = _block.children;\n\n !Array.isArray(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tree raw block') : invariant(false) : void 0;\n\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 var type = block.type;\n\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 ? _extends({}, child, { depth: (block.depth || 0) + 1 }) : child;\n });\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 */\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\n var transformedBlocks = [];\n\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 = _extends({}, block);\n\n if (isListBlock(block)) {\n newBlock.depth = newBlock.depth || 0;\n addDepthToChildren(block);\n }\n\n delete newBlock.children;\n\n transformedBlocks.push(newBlock);\n });\n\n draftTreeState.blocks = transformedBlocks;\n\n return _extends({}, draftTreeState, {\n blocks: transformedBlocks\n });\n },\n\n\n /**\n * Converts from draft raw state to tree draft state\n */\n fromRawStateToRawTreeState: function fromRawStateToRawTreeState(draftState) {\n var lastListDepthCacheRef = {};\n var transformedBlocks = [];\n\n draftState.blocks.forEach(function (block) {\n var isList = isListBlock(block);\n var depth = block.depth || 0;\n var treeBlock = _extends({}, block, {\n children: []\n });\n\n if (!isList) {\n // reset the cache path\n lastListDepthCacheRef = {};\n transformedBlocks.push(treeBlock);\n return;\n }\n\n // update our depth cache reference path\n lastListDepthCacheRef[depth] = treeBlock;\n\n // if we are greater than zero we must have seen a parent already\n if (depth > 0) {\n var parent = lastListDepthCacheRef[depth - 1];\n\n !parent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid depth for RawDraftContentBlock') : invariant(false) : void 0;\n\n // push nested list blocks\n parent.children.push(treeBlock);\n return;\n }\n\n // push root list blocks\n transformedBlocks.push(treeBlock);\n });\n\n return _extends({}, draftState, {\n blocks: transformedBlocks\n });\n }\n};\n\nmodule.exports = DraftTreeAdapter;","/**\n * Copyright (c) 2013-present, 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 * @providesModule createCharacterList\n * @format\n * \n */\n\n'use strict';\n\nvar CharacterMetadata = require('./CharacterMetadata');\nvar Immutable = require('immutable');\n\nvar List = Immutable.List;\n\n\nfunction createCharacterList(inlineStyles, entities) {\n var characterArray = inlineStyles.map(function (style, ii) {\n var entity = entities[ii];\n return CharacterMetadata.create({ style: style, entity: entity });\n });\n return List(characterArray);\n}\n\nmodule.exports = createCharacterList;","/**\n * Copyright (c) 2013-present, 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 * @providesModule decodeEntityRanges\n * @format\n * \n */\n\n'use strict';\n\nvar UnicodeUtils = require('fbjs/lib/UnicodeUtils');\n\nvar substr = UnicodeUtils.substr;\n\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 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 for (var ii = start; ii < end; ii++) {\n entities[ii] = range.key;\n }\n });\n }\n return entities;\n}\n\nmodule.exports = decodeEntityRanges;","/**\n * Copyright (c) 2013-present, 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 * @providesModule decodeInlineStyleRanges\n * @format\n * \n */\n\n'use strict';\n\nvar _require = require('immutable'),\n OrderedSet = _require.OrderedSet;\n\nvar UnicodeUtils = require('fbjs/lib/UnicodeUtils');\n\nvar substr = UnicodeUtils.substr;\n\n\nvar EMPTY_SET = OrderedSet();\n\n/**\n * Convert to native JavaScript string lengths to determine ranges.\n */\nfunction decodeInlineStyleRanges(text, ranges) {\n var styles = Array(text.length).fill(EMPTY_SET);\n if (ranges) {\n ranges.forEach(function ( /*object*/range) {\n var cursor = substr(text, 0, range.offset).length;\n var end = cursor + substr(text, range.offset, range.length).length;\n while (cursor < end) {\n styles[cursor] = styles[cursor].add(range.style);\n cursor++;\n }\n });\n }\n return styles;\n}\n\nmodule.exports = decodeInlineStyleRanges;","/**\n * Copyright (c) 2013-present, 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 * @providesModule convertFromRawToDraftState\n * @format\n * \n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar _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; };\n\nvar ContentBlock = require('./ContentBlock');\nvar ContentBlockNode = require('./ContentBlockNode');\nvar ContentState = require('./ContentState');\nvar DraftEntity = require('./DraftEntity');\nvar DraftFeatureFlags = require('./DraftFeatureFlags');\nvar DraftTreeAdapter = require('./DraftTreeAdapter');\nvar Immutable = require('immutable');\nvar SelectionState = require('./SelectionState');\n\nvar createCharacterList = require('./createCharacterList');\nvar decodeEntityRanges = require('./decodeEntityRanges');\nvar decodeInlineStyleRanges = require('./decodeInlineStyleRanges');\nvar generateRandomKey = require('./generateRandomKey');\nvar invariant = require('fbjs/lib/invariant');\n\nvar experimentalTreeDataSupport = DraftFeatureFlags.draft_tree_data_support;\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedMap = Immutable.OrderedMap;\n\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\n\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\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\n\n var entityRanges = rawEntityRanges || [];\n var inlineStyleRanges = rawInlineStyleRanges || [];\n\n // Translate entity range keys to the DraftEntity map.\n return createCharacterList(decodeInlineStyleRanges(text, inlineStyleRanges), decodeEntityRanges(text, entityRanges.filter(function (range) {\n return entityMap.hasOwnProperty(range.key);\n }).map(function (range) {\n return _extends({}, range, { key: entityMap[range.key] });\n })));\n};\n\nvar addKeyIfMissing = function addKeyIfMissing(block) {\n return _extends({}, block, {\n key: block.key || generateRandomKey()\n });\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 */\nvar updateNodeStack = function updateNodeStack(stack, nodes, parentRef) {\n var nodesWithParentRef = nodes.map(function (block) {\n return _extends({}, block, {\n parentRef: parentRef\n });\n });\n\n // since we pop nodes from the stack we need to insert them in reverse\n return stack.concat(nodesWithParentRef.reverse());\n};\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 */\nvar decodeContentBlockNodes = function decodeContentBlockNodes(blocks, entityMap) {\n return blocks\n // 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;\n\n // ensure children have valid keys to enable sibling links\n var children = block.children.map(addKeyIfMissing);\n\n // root level nodes\n var contentBlockNode = new ContentBlockNode(_extends({}, 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 }));\n\n // push root node to blockMap\n blockMap = blockMap.set(contentBlockNode.getKey(), contentBlockNode);\n\n // this stack is used to ensure we visit all nodes respecting depth ordering\n var stack = updateNodeStack([], children, contentBlockNode);\n\n // start computing children nodes\n while (stack.length > 0) {\n // we pop from the stack and start processing this node\n var node = stack.pop();\n\n // parentRef already points to a converted ContentBlockNode\n var parentRef = node.parentRef;\n var siblings = parentRef.getChildKeys();\n var _index = siblings.indexOf(node.key);\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 }\n\n // ensure children have valid keys to enable sibling links\n var _children = node.children.map(addKeyIfMissing);\n\n var _contentBlockNode = new ContentBlockNode(_extends({}, 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 }));\n\n // push node to blockMap\n blockMap = blockMap.set(_contentBlockNode.getKey(), _contentBlockNode);\n\n // this stack is used to ensure we visit all nodes respecting depth ordering\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 = Array.isArray(rawState.blocks[0].children);\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 return decodeContentBlockNodes(rawBlocks, entityMap);\n};\n\nvar decodeRawEntityMap = function decodeRawEntityMap(rawState) {\n var rawEntityMap = rawState.entityMap;\n\n var entityMap = {};\n\n // TODO: Update this once we completely remove DraftEntity\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;\n\n // get the key reference to created entity\n\n entityMap[rawEntityKey] = DraftEntity.__create(type, mutability, data || {});\n });\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;\n\n // decode entities\n var entityMap = decodeRawEntityMap(rawState);\n\n // decode blockMap\n var blockMap = decodeRawBlocks(rawState, entityMap);\n\n // create initial selection\n var selectionState = blockMap.isEmpty() ? new SelectionState() : SelectionState.createEmpty(blockMap.first().getKey());\n\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) 2013-present, 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 * @providesModule getRangeBoundingClientRect\n * @format\n * \n */\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 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) 2013-present, 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 * @providesModule getVisibleSelectionRect\n * @format\n * \n */\n\n'use strict';\n\nvar getRangeBoundingClientRect = require('./getRangeBoundingClientRect');\n\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 */\nfunction getVisibleSelectionRect(global) {\n var selection = global.getSelection();\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;\n\n // When a re-render leads to a node being removed, the DOM selection will\n // temporarily be placed on an ancestor node, which leads to an invalid\n // bounding rect. Discard this state.\n\n if (top === 0 && right === 0 && bottom === 0 && left === 0) {\n return null;\n }\n\n return boundingRect;\n}\n\nmodule.exports = getVisibleSelectionRect;","/**\n * Copyright (c) 2013-present, 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 * @providesModule Draft\n * @format\n * \n */\n\n'use strict';\n\nvar AtomicBlockUtils = require('./AtomicBlockUtils');\nvar BlockMapBuilder = require('./BlockMapBuilder');\nvar CharacterMetadata = require('./CharacterMetadata');\nvar CompositeDraftDecorator = require('./CompositeDraftDecorator');\nvar ContentBlock = require('./ContentBlock');\nvar ContentState = require('./ContentState');\nvar DefaultDraftBlockRenderMap = require('./DefaultDraftBlockRenderMap');\nvar DefaultDraftInlineStyle = require('./DefaultDraftInlineStyle');\nvar DraftEditor = require('./DraftEditor.react');\nvar DraftEditorBlock = require('./DraftEditorBlock.react');\nvar DraftEntity = require('./DraftEntity');\nvar DraftModifier = require('./DraftModifier');\nvar DraftEntityInstance = require('./DraftEntityInstance');\nvar EditorState = require('./EditorState');\nvar KeyBindingUtil = require('./KeyBindingUtil');\nvar RichTextEditorUtil = require('./RichTextEditorUtil');\nvar SelectionState = require('./SelectionState');\n\nvar convertFromDraftStateToRaw = require('./convertFromDraftStateToRaw');\nvar convertFromHTMLToContentBlocks = require('./convertFromHTMLToContentBlocks');\nvar convertFromRawToDraftState = require('./convertFromRawToDraftState');\nvar generateRandomKey = require('./generateRandomKey');\nvar getDefaultKeyBinding = require('./getDefaultKeyBinding');\nvar getVisibleSelectionRect = require('./getVisibleSelectionRect');\n\nvar DraftPublic = {\n Editor: DraftEditor,\n EditorBlock: DraftEditorBlock,\n EditorState: EditorState,\n\n CompositeDecorator: CompositeDraftDecorator,\n Entity: DraftEntity,\n EntityInstance: DraftEntityInstance,\n\n BlockMapBuilder: BlockMapBuilder,\n CharacterMetadata: CharacterMetadata,\n ContentBlock: ContentBlock,\n ContentState: ContentState,\n SelectionState: SelectionState,\n\n AtomicBlockUtils: AtomicBlockUtils,\n KeyBindingUtil: KeyBindingUtil,\n Modifier: DraftModifier,\n RichUtils: RichTextEditorUtil,\n\n DefaultDraftBlockRenderMap: DefaultDraftBlockRenderMap,\n DefaultDraftInlineStyle: DefaultDraftInlineStyle,\n\n convertFromHTML: convertFromHTMLToContentBlocks,\n convertFromRaw: convertFromRawToDraftState,\n convertToRaw: convertFromDraftStateToRaw,\n genKey: generateRandomKey,\n getDefaultKeyBinding: getDefaultKeyBinding,\n getVisibleSelectionRect: getVisibleSelectionRect\n};\n\nmodule.exports = DraftPublic;","/**\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(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.Immutable = {})));\n}(this, (function (exports) { 'use strict';\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 function MakeRef() {\n return { value: false };\n }\n\n function SetRef(ref) {\n if (ref) {\n ref.value = true;\n }\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 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 (\n ((begin === 0 && !isNeg(begin)) ||\n (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size))\n );\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 // Sanitize indices using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n return index === undefined\n ? defaultIndex\n : isNeg(index)\n ? size === Infinity\n ? size\n : Math.max(0, size + index) | 0\n : size === undefined || size === index\n ? index\n : Math.min(size, index) | 0;\n }\n\n function isNeg(value) {\n // Account for -0 which is negative, but not less than 0.\n return value < 0 || (value === 0 && 1 / value === -Infinity);\n }\n\n // Note: value is unchanged to not break immutable-devtools.\n var IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\n function isCollection(maybeCollection) {\n return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n }\n\n var IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\n function isKeyed(maybeKeyed) {\n return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n }\n\n var IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\n function isIndexed(maybeIndexed) {\n return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n }\n\n function isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n }\n\n var Collection = function Collection(value) {\n return isCollection(value) ? value : Seq(value);\n };\n\n var KeyedCollection = /*@__PURE__*/(function (Collection) {\n function KeyedCollection(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n if ( Collection ) KeyedCollection.__proto__ = Collection;\n KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n KeyedCollection.prototype.constructor = KeyedCollection;\n\n return KeyedCollection;\n }(Collection));\n\n var IndexedCollection = /*@__PURE__*/(function (Collection) {\n function IndexedCollection(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n if ( Collection ) IndexedCollection.__proto__ = Collection;\n IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n IndexedCollection.prototype.constructor = IndexedCollection;\n\n return IndexedCollection;\n }(Collection));\n\n var SetCollection = /*@__PURE__*/(function (Collection) {\n function SetCollection(value) {\n return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n if ( Collection ) SetCollection.__proto__ = Collection;\n SetCollection.prototype = Object.create( Collection && Collection.prototype );\n SetCollection.prototype.constructor = SetCollection;\n\n return SetCollection;\n }(Collection));\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n\n var IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\n function isSeq(maybeSeq) {\n return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n }\n\n var IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\n function isRecord(maybeRecord) {\n return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n }\n\n function isImmutable(maybeImmutable) {\n return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n }\n\n var IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\n function isOrdered(maybeOrdered) {\n return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n }\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 var Iterator = function Iterator(next) {\n this.next = next;\n };\n\n Iterator.prototype.toString = function toString () {\n return '[Iterator]';\n };\n\n Iterator.KEYS = ITERATE_KEYS;\n Iterator.VALUES = ITERATE_VALUES;\n Iterator.ENTRIES = ITERATE_ENTRIES;\n\n Iterator.prototype.inspect = Iterator.prototype.toSource = function() {\n return this.toString();\n };\n Iterator.prototype[ITERATOR_SYMBOL] = function() {\n return this;\n };\n\n function iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult\n ? (iteratorResult.value = value)\n : (iteratorResult = {\n value: value,\n 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 =\n iterable &&\n ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function isArrayLike(value) {\n if (Array.isArray(value) || typeof value === 'string') {\n return true;\n }\n\n return (\n value &&\n typeof value === 'object' &&\n Number.isInteger(value.length) &&\n value.length >= 0 &&\n (value.length === 0\n ? // Only {length: 0} is considered Array-like.\n Object.keys(value).length === 1\n : // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n value.hasOwnProperty(value.length - 1))\n );\n }\n\n var Seq = /*@__PURE__*/(function (Collection$$1) {\n function Seq(value) {\n return value === null || value === undefined\n ? emptySequence()\n : isImmutable(value)\n ? value.toSeq()\n : seqFromValue(value);\n }\n\n if ( Collection$$1 ) Seq.__proto__ = Collection$$1;\n Seq.prototype = Object.create( Collection$$1 && Collection$$1.prototype );\n Seq.prototype.constructor = Seq;\n\n Seq.prototype.toSeq = function toSeq () {\n return this;\n };\n\n Seq.prototype.toString = function toString () {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function cacheResult () {\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 __iterate (fn, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n while (i !== size) {\n var entry = cache[reverse ? size - ++i : i++];\n if (fn(entry[1], entry[0], this) === false) {\n break;\n }\n }\n return i;\n }\n return this.__iterateUncached(fn, reverse);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function __iterator (type, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var entry = cache[reverse ? size - ++i : i++];\n return iteratorValue(type, entry[0], entry[1]);\n });\n }\n return this.__iteratorUncached(type, reverse);\n };\n\n return Seq;\n }(Collection));\n\n var KeyedSeq = /*@__PURE__*/(function (Seq) {\n function KeyedSeq(value) {\n return value === null || value === undefined\n ? emptySequence().toKeyedSeq()\n : isCollection(value)\n ? isKeyed(value)\n ? value.toSeq()\n : value.fromEntrySeq()\n : isRecord(value)\n ? value.toSeq()\n : keyedSeqFromValue(value);\n }\n\n if ( Seq ) KeyedSeq.__proto__ = Seq;\n KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n KeyedSeq.prototype.constructor = KeyedSeq;\n\n KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n return this;\n };\n\n return KeyedSeq;\n }(Seq));\n\n var IndexedSeq = /*@__PURE__*/(function (Seq) {\n function IndexedSeq(value) {\n return value === null || value === undefined\n ? emptySequence()\n : isCollection(value)\n ? isKeyed(value)\n ? value.entrySeq()\n : value.toIndexedSeq()\n : isRecord(value)\n ? value.toSeq().entrySeq()\n : indexedSeqFromValue(value);\n }\n\n if ( Seq ) IndexedSeq.__proto__ = Seq;\n IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n IndexedSeq.prototype.constructor = IndexedSeq;\n\n IndexedSeq.of = function of (/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n return this;\n };\n\n IndexedSeq.prototype.toString = function toString () {\n return this.__toString('Seq [', ']');\n };\n\n return IndexedSeq;\n }(Seq));\n\n var SetSeq = /*@__PURE__*/(function (Seq) {\n function SetSeq(value) {\n return (isCollection(value) && !isAssociative(value)\n ? value\n : IndexedSeq(value)\n ).toSetSeq();\n }\n\n if ( Seq ) SetSeq.__proto__ = Seq;\n SetSeq.prototype = Object.create( Seq && Seq.prototype );\n SetSeq.prototype.constructor = SetSeq;\n\n SetSeq.of = function of (/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function toSetSeq () {\n return this;\n };\n\n return SetSeq;\n }(Seq));\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n\n Seq.prototype[IS_SEQ_SYMBOL] = true;\n\n // #pragma Root Sequences\n\n var ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ArraySeq.prototype.constructor = ArraySeq;\n\n ArraySeq.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n while (i !== size) {\n var ii = reverse ? size - ++i : i++;\n if (fn(array[ii], ii, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var ii = reverse ? size - ++i : i++;\n return iteratorValue(type, ii, array[ii]);\n });\n };\n\n return ArraySeq;\n }(IndexedSeq));\n\n var ObjectSeq = /*@__PURE__*/(function (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 if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ObjectSeq.prototype.constructor = ObjectSeq;\n\n ObjectSeq.prototype.get = function get (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 has (key) {\n return hasOwnProperty.call(this._object, key);\n };\n\n ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n while (i !== size) {\n var key = keys[reverse ? size - ++i : i++];\n if (fn(object[key], key, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var key = keys[reverse ? size - ++i : i++];\n return iteratorValue(type, key, object[key]);\n });\n };\n\n return ObjectSeq;\n }(KeyedSeq));\n ObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\n var CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n function CollectionSeq(collection) {\n this._collection = collection;\n this.size = collection.length || collection.size;\n }\n\n if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n CollectionSeq.prototype.constructor = CollectionSeq;\n\n CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\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 CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\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 return CollectionSeq;\n }(IndexedSeq));\n\n // # pragma Helper functions\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 = Array.isArray(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n if (seq) {\n return seq.fromEntrySeq();\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n value\n );\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n throw new TypeError(\n 'Expected Array or collection object of values: ' + value\n );\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of values, or keyed object: ' + value\n );\n }\n\n function maybeIndexedSeqFromValue(value) {\n return isArrayLike(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n }\n\n var IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\n function isMap(maybeMap) {\n return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n }\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n function isValueObject(maybeValue) {\n return Boolean(\n maybeValue &&\n typeof maybeValue.equals === 'function' &&\n typeof maybeValue.hashCode === 'function'\n );\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 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 are Value Objects: they implement `equals()`\n * and `hashCode()`.\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 (\n typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function'\n ) {\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 return !!(\n isValueObject(valueA) &&\n isValueObject(valueB) &&\n valueA.equals(valueB)\n );\n }\n\n var imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n ? Math.imul\n : function imul(a, b) {\n a |= 0; // int\n 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 var defaultValueOf = Object.prototype.valueOf;\n\n function hash(o) {\n switch (typeof o) {\n case 'boolean':\n // The hash values for built-in constants are a 1 value for each 5-byte\n // shift region expect for the first, which encodes the value. This\n // reduces the odds of a hash collision for these common values.\n return o ? 0x42108421 : 0x42108420;\n case 'number':\n return hashNumber(o);\n case 'string':\n return o.length > STRING_HASH_CACHE_MIN_STRLEN\n ? cachedHashString(o)\n : hashString(o);\n case 'object':\n case 'function':\n if (o === null) {\n return 0x42108422;\n }\n if (typeof o.hashCode === 'function') {\n // Drop any high bits from accidentally long hash codes.\n return smi(o.hashCode(o));\n }\n if (o.valueOf !== defaultValueOf && typeof o.valueOf === 'function') {\n o = o.valueOf(o);\n }\n return hashJSObj(o);\n case 'undefined':\n return 0x42108423;\n default:\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n throw new Error('Value type ' + typeof o + ' cannot be hashed.');\n }\n }\n\n // Compress arbitrarily large numbers into smi hashes.\n function hashNumber(n) {\n if (n !== n || n === Infinity) {\n return 0;\n }\n var hash = n | 0;\n if (hash !== n) {\n hash ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n n /= 0xffffffff;\n hash ^= n;\n }\n return smi(hash);\n }\n\n function cachedHashString(string) {\n var hashed = stringHashCache[string];\n if (hashed === undefined) {\n hashed = 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] = hashed;\n }\n return hashed;\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 hashed = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n }\n return smi(hashed);\n }\n\n function hashJSObj(obj) {\n var hashed;\n if (usingWeakMap) {\n hashed = weakMap.get(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = obj[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n if (!canDefineProperty) {\n hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = getIENodeHash(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = ++objHashUID;\n if (objHashUID & 0x40000000) {\n objHashUID = 0;\n }\n\n if (usingWeakMap) {\n weakMap.set(obj, hashed);\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: hashed,\n });\n } else if (\n obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n ) {\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(\n this,\n arguments\n );\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\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] = hashed;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hashed;\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 var ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq$$1) {\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n if ( KeyedSeq$$1 ) ToKeyedSequence.__proto__ = KeyedSeq$$1;\n ToKeyedSequence.prototype = Object.create( KeyedSeq$$1 && KeyedSeq$$1.prototype );\n ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function has (key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function reverse () {\n var this$1 = this;\n\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () { return this$1._iter.toSeq().reverse(); };\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function map (mapper, context) {\n var this$1 = this;\n\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () { return this$1._iter.toSeq().map(mapper, context); };\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\n return this._iter.__iterate(function (v, k) { return fn(v, k, this$1); }, reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n return this._iter.__iterator(type, reverse);\n };\n\n return ToKeyedSequence;\n }(KeyedSeq));\n ToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\n var ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq$$1) {\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( IndexedSeq$$1 ) ToIndexedSequence.__proto__ = IndexedSeq$$1;\n ToIndexedSequence.prototype = Object.create( IndexedSeq$$1 && IndexedSeq$$1.prototype );\n ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n ToIndexedSequence.prototype.includes = function includes (value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\n var i = 0;\n reverse && ensureSize(this);\n return this._iter.__iterate(\n function (v) { return fn(v, reverse ? this$1.size - ++i : i++, this$1); },\n reverse\n );\n };\n\n ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n var this$1 = this;\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var i = 0;\n reverse && ensureSize(this);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(\n type,\n reverse ? this$1.size - ++i : i++,\n step.value,\n step\n );\n });\n };\n\n return ToIndexedSequence;\n }(IndexedSeq));\n\n var ToSetSequence = /*@__PURE__*/(function (SetSeq$$1) {\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( SetSeq$$1 ) ToSetSequence.__proto__ = SetSeq$$1;\n ToSetSequence.prototype = Object.create( SetSeq$$1 && SetSeq$$1.prototype );\n ToSetSequence.prototype.constructor = ToSetSequence;\n\n ToSetSequence.prototype.has = function has (key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\n return this._iter.__iterate(function (v) { return fn(v, v, this$1); }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function __iterator (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\n ? step\n : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n return ToSetSequence;\n }(SetSeq));\n\n var FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq$$1) {\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n if ( KeyedSeq$$1 ) FromEntriesSequence.__proto__ = KeyedSeq$$1;\n FromEntriesSequence.prototype = Object.create( KeyedSeq$$1 && KeyedSeq$$1.prototype );\n FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\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 indexedCollection = isCollection(entry);\n return fn(\n indexedCollection ? entry.get(1) : entry[1],\n indexedCollection ? entry.get(0) : entry[0],\n this$1\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function __iterator (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 indexedCollection = isCollection(entry);\n return iteratorValue(\n type,\n indexedCollection ? entry.get(0) : entry[0],\n indexedCollection ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n return FromEntriesSequence;\n }(KeyedSeq));\n\n ToIndexedSequence.prototype.cacheResult = ToKeyedSequence.prototype.cacheResult = ToSetSequence.prototype.cacheResult = FromEntriesSequence.prototype.cacheResult = cacheResultThrough;\n\n function flipFactory(collection) {\n var flipSequence = makeSequence(collection);\n flipSequence._iter = collection;\n flipSequence.size = collection.size;\n flipSequence.flip = function () { return collection; };\n flipSequence.reverse = function() {\n var reversedSequence = collection.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function () { return collection.reverse(); };\n return reversedSequence;\n };\n flipSequence.has = function (key) { return collection.includes(key); };\n flipSequence.includes = function (key) { return collection.has(key); };\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\n return collection.__iterate(function (v, k) { return fn(k, v, this$1) !== false; }, reverse);\n };\n flipSequence.__iteratorUncached = function(type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = collection.__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 collection.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n };\n return flipSequence;\n }\n\n function mapFactory(collection, mapper, context) {\n var mappedSequence = makeSequence(collection);\n mappedSequence.size = collection.size;\n mappedSequence.has = function (key) { return collection.has(key); };\n mappedSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v === NOT_SET\n ? notSetValue\n : mapper.call(context, v, key, collection);\n };\n mappedSequence.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\n return collection.__iterate(\n function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1) !== false; },\n reverse\n );\n };\n mappedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = collection.__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, collection),\n step\n );\n });\n };\n return mappedSequence;\n }\n\n function reverseFactory(collection, useKeys) {\n var this$1 = this;\n\n var reversedSequence = makeSequence(collection);\n reversedSequence._iter = collection;\n reversedSequence.size = collection.size;\n reversedSequence.reverse = function () { return collection; };\n if (collection.flip) {\n reversedSequence.flip = function() {\n var flipSequence = flipFactory(collection);\n flipSequence.reverse = function () { return collection.flip(); };\n return flipSequence;\n };\n }\n reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n reversedSequence.includes = function (value) { return collection.includes(value); };\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function(fn, reverse) {\n var this$1 = this;\n\n var i = 0;\n reverse && ensureSize(collection);\n return collection.__iterate(\n function (v, k) { return fn(v, useKeys ? k : reverse ? this$1.size - ++i : i++, this$1); },\n !reverse\n );\n };\n reversedSequence.__iterator = function (type, reverse) {\n var i = 0;\n reverse && ensureSize(collection);\n var iterator = collection.__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 return iteratorValue(\n type,\n useKeys ? entry[0] : reverse ? this$1.size - ++i : i++,\n entry[1],\n step\n );\n });\n };\n return reversedSequence;\n }\n\n function filterFactory(collection, predicate, context, useKeys) {\n var filterSequence = makeSequence(collection);\n if (useKeys) {\n filterSequence.has = function (key) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n };\n filterSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, collection)\n ? v\n : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function(type, reverse) {\n var iterator = collection.__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, collection)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n return filterSequence;\n }\n\n function countByFactory(collection, grouper, context) {\n var groups = Map().asMutable();\n collection.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n });\n return groups.asImmutable();\n }\n\n function groupByFactory(collection, grouper, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n collection.__iterate(function (v, k) {\n groups.update(\n grouper.call(context, v, k, collection),\n function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n }\n\n function sliceFactory(collection, begin, end, useKeys) {\n var originalSize = collection.size;\n\n if (wholeSlice(begin, end, originalSize)) {\n return collection;\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 collection'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(collection.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(collection);\n\n // If collection.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 =\n sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n sliceSeq.get = function(index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize\n ? collection.get(index + resolvedBegin, notSetValue)\n : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\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 collection.__iterate(function (v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return (\n fn(v, useKeys ? k : iterations - 1, this$1) !== false &&\n iterations !== sliceSize\n );\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 if (sliceSize === 0) {\n return new Iterator(iteratorDone);\n }\n var iterator = collection.__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 || step.done) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n }\n return iteratorValue(type, iterations - 1, step.value[1], step);\n });\n };\n\n return sliceSeq;\n }\n\n function takeWhileFactory(collection, predicate, context) {\n var takeSequence = makeSequence(collection);\n takeSequence.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n collection.__iterate(\n function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1); }\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function(type, reverse) {\n var this$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__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$1)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n }\n\n function skipWhileFactory(collection, predicate, context, useKeys) {\n var skipSequence = makeSequence(collection);\n skipSequence.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n collection.__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$1);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function(type, reverse) {\n var this$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step;\n var k;\n var v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n }\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$1));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n }\n\n function concatFactory(collection, values) {\n var isKeyedCollection = isKeyed(collection);\n var iters = [collection]\n .concat(values)\n .map(function (v) {\n if (!isCollection(v)) {\n v = isKeyedCollection\n ? keyedSeqFromValue(v)\n : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedCollection) {\n v = KeyedCollection(v);\n }\n return v;\n })\n .filter(function (v) { return v.size !== 0; });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (\n singleton === collection ||\n (isKeyedCollection && isKeyed(singleton)) ||\n (isIndexed(collection) && isIndexed(singleton))\n ) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedCollection) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(collection)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n }\n\n function flattenFactory(collection, depth, useKeys) {\n var flatSequence = makeSequence(collection);\n flatSequence.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {\n iter.__iterate(function (v, k) {\n if ((!depth || currentDepth < depth) && isCollection(v)) {\n flatDeep(v, currentDepth + 1);\n } else {\n iterations++;\n if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n stopped = true;\n }\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(collection, 0);\n return iterations;\n };\n flatSequence.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__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) && isCollection(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 function flatMapFactory(collection, mapper, context) {\n var coerce = collectionClass(collection);\n return collection\n .toSeq()\n .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n .flatten(true);\n }\n\n function interposeFactory(collection, separator) {\n var interposedSequence = makeSequence(collection);\n interposedSequence.size = collection.size && collection.size * 2 - 1;\n interposedSequence.__iterateUncached = function(fn, reverse) {\n var this$1 = this;\n\n var iterations = 0;\n collection.__iterate(\n function (v) { return (!iterations || fn(separator, iterations++, this$1) !== false) &&\n fn(v, iterations++, this$1) !== false; },\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = collection.__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 function sortFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedCollection = isKeyed(collection);\n var index = 0;\n var entries = collection\n .toSeq()\n .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n .valueSeq()\n .toArray();\n entries.sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; }).forEach(\n isKeyedCollection\n ? function (v, i) {\n entries[i].length = 2;\n }\n : function (v, i) {\n entries[i] = v[1];\n }\n );\n return isKeyedCollection\n ? KeyedSeq(entries)\n : isIndexed(collection)\n ? IndexedSeq(entries)\n : SetSeq(entries);\n }\n\n function maxFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = collection\n .toSeq()\n .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n return entry && entry[0];\n }\n return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\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 (\n (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n comp > 0\n );\n }\n\n function zipWithFactory(keyIter, zipper, iters, zipAll) {\n var zipSequence = makeSequence(keyIter);\n var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n zipSequence.size = zipAll ? sizes.max() : sizes.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(\n function (i) { return ((i = Collection(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 = zipAll ? steps.every(function (s) { return s.done; }) : 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 // #pragma Helper Functions\n\n function reify(iter, seq) {\n return iter === seq ? iter : 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 collectionClass(collection) {\n return isKeyed(collection)\n ? KeyedCollection\n : isIndexed(collection)\n ? IndexedCollection\n : SetCollection;\n }\n\n function makeSequence(collection) {\n return Object.create(\n (isKeyed(collection)\n ? KeyedSeq\n : isIndexed(collection)\n ? 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 }\n return Seq.prototype.cacheResult.call(this);\n }\n\n function defaultComparator(a, b) {\n if (a === undefined && b === undefined) {\n return 0;\n }\n\n if (a === undefined) {\n return 1;\n }\n\n if (b === undefined) {\n return -1;\n }\n\n return a > b ? 1 : a < b ? -1 : 0;\n }\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 invariant(condition, error) {\n if (!condition) { throw new Error(error); }\n }\n\n function assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n }\n\n function coerceKeyPath(keyPath) {\n if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n return keyPath;\n }\n if (isOrdered(keyPath)) {\n return keyPath.toArray();\n }\n throw new TypeError(\n 'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n );\n }\n\n function isPlainObj(value) {\n return (\n value &&\n (typeof value.constructor !== 'function' ||\n value.constructor.name === 'Object')\n );\n }\n\n /**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\n function isDataStructure(value) {\n return (\n typeof value === 'object' &&\n (isImmutable(value) || Array.isArray(value) || isPlainObj(value))\n );\n }\n\n /**\n * Converts a value to a string, adding quotes if a string was provided.\n */\n function quoteString(value) {\n try {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n } catch (_ignoreError) {\n return JSON.stringify(value);\n }\n }\n\n function has(collection, key) {\n return isImmutable(collection)\n ? collection.has(key)\n : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n }\n\n function get(collection, key, notSetValue) {\n return isImmutable(collection)\n ? collection.get(key, notSetValue)\n : !has(collection, key)\n ? notSetValue\n : typeof collection.get === 'function'\n ? collection.get(key)\n : collection[key];\n }\n\n function shallowCopy(from) {\n if (Array.isArray(from)) {\n return arrCopy(from);\n }\n var to = {};\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n return to;\n }\n\n function remove(collection, key) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.remove) {\n throw new TypeError(\n 'Cannot update immutable value without .remove() method: ' + collection\n );\n }\n return collection.remove(key);\n }\n if (!hasOwnProperty.call(collection, key)) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n if (Array.isArray(collectionCopy)) {\n collectionCopy.splice(key, 1);\n } else {\n delete collectionCopy[key];\n }\n return collectionCopy;\n }\n\n function set(collection, key, value) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.set) {\n throw new TypeError(\n 'Cannot update immutable value without .set() method: ' + collection\n );\n }\n return collection.set(key, value);\n }\n if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n collectionCopy[key] = value;\n return collectionCopy;\n }\n\n function updateIn(collection, keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeeply(\n isImmutable(collection),\n collection,\n coerceKeyPath(keyPath),\n 0,\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? notSetValue : updatedValue;\n }\n\n function updateInDeeply(\n inImmutable,\n existing,\n keyPath,\n i,\n notSetValue,\n updater\n ) {\n var wasNotSet = existing === NOT_SET;\n if (i === keyPath.length) {\n var existingValue = wasNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n if (!wasNotSet && !isDataStructure(existing)) {\n throw new TypeError(\n 'Cannot update within non-data-structure value in path [' +\n keyPath.slice(0, i).map(quoteString) +\n ']: ' +\n existing\n );\n }\n var key = keyPath[i];\n var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n var nextUpdated = updateInDeeply(\n nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n nextExisting,\n keyPath,\n i + 1,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting\n ? existing\n : nextUpdated === NOT_SET\n ? remove(existing, key)\n : set(\n wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n key,\n nextUpdated\n );\n }\n\n function setIn(collection, keyPath, value) {\n return updateIn(collection, keyPath, NOT_SET, function () { return value; });\n }\n\n function setIn$1(keyPath, v) {\n return setIn(this, keyPath, v);\n }\n\n function removeIn(collection, keyPath) {\n return updateIn(collection, keyPath, function () { return NOT_SET; });\n }\n\n function deleteIn(keyPath) {\n return removeIn(this, keyPath);\n }\n\n function update(collection, key, notSetValue, updater) {\n return updateIn(collection, [key], notSetValue, updater);\n }\n\n function update$1(key, notSetValue, updater) {\n return arguments.length === 1\n ? key(this)\n : update(this, key, notSetValue, updater);\n }\n\n function updateIn$1(keyPath, notSetValue, updater) {\n return updateIn(this, keyPath, notSetValue, updater);\n }\n\n function merge() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeIntoKeyedWith(this, iters);\n }\n\n function mergeWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n if (typeof merger !== 'function') {\n throw new TypeError('Invalid merger function: ' + merger);\n }\n return mergeIntoKeyedWith(this, iters, merger);\n }\n\n function mergeIntoKeyedWith(collection, collections, merger) {\n var iters = [];\n for (var ii = 0; ii < collections.length; ii++) {\n var collection$1 = KeyedCollection(collections[ii]);\n if (collection$1.size !== 0) {\n iters.push(collection$1);\n }\n }\n if (iters.length === 0) {\n return collection;\n }\n if (\n collection.toSeq().size === 0 &&\n !collection.__ownerID &&\n iters.length === 1\n ) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function (collection) {\n var mergeIntoCollection = merger\n ? function (value, key) {\n update(\n collection,\n key,\n NOT_SET,\n function (oldVal) { return (oldVal === NOT_SET ? value : merger(oldVal, 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(mergeIntoCollection);\n }\n });\n }\n\n function merge$1(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeWithSources(collection, sources);\n }\n\n function mergeWith$1(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeWithSources(collection, sources, merger);\n }\n\n function mergeDeep(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(collection, sources);\n }\n\n function mergeDeepWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeDeepWithSources(collection, sources, merger);\n }\n\n function mergeDeepWithSources(collection, sources, merger) {\n return mergeWithSources(collection, sources, deepMergerWith(merger));\n }\n\n function mergeWithSources(collection, sources, merger) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot merge into non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n return typeof merger === 'function' && collection.mergeWith\n ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n : collection.merge\n ? collection.merge.apply(collection, sources)\n : collection.concat.apply(collection, sources);\n }\n var isArray = Array.isArray(collection);\n var merged = collection;\n var Collection$$1 = isArray ? IndexedCollection : KeyedCollection;\n var mergeItem = isArray\n ? function (value) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged.push(value);\n }\n : function (value, key) {\n var hasVal = hasOwnProperty.call(merged, key);\n var nextVal =\n hasVal && merger ? merger(merged[key], value, key) : value;\n if (!hasVal || nextVal !== merged[key]) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged[key] = nextVal;\n }\n };\n for (var i = 0; i < sources.length; i++) {\n Collection$$1(sources[i]).forEach(mergeItem);\n }\n return merged;\n }\n\n function deepMergerWith(merger) {\n function deepMerger(oldValue, newValue, key) {\n return isDataStructure(oldValue) && isDataStructure(newValue)\n ? mergeWithSources(oldValue, [newValue], deepMerger)\n : merger\n ? merger(oldValue, newValue, key)\n : newValue;\n }\n return deepMerger;\n }\n\n function mergeDeep$1() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeDeepWithSources(this, iters);\n }\n\n function mergeDeepWith$1(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(this, iters, merger);\n }\n\n function mergeIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n }\n\n function mergeDeepIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n );\n }\n\n function withMutations(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n }\n\n function asMutable() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n }\n\n function asImmutable() {\n return this.__ensureOwner();\n }\n\n function wasAltered() {\n return this.__altered;\n }\n\n var Map = /*@__PURE__*/(function (KeyedCollection$$1) {\n function Map(value) {\n return value === null || value === undefined\n ? emptyMap()\n : isMap(value) && !isOrdered(value)\n ? value\n : emptyMap().withMutations(function (map) {\n var iter = KeyedCollection$$1(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( KeyedCollection$$1 ) Map.__proto__ = KeyedCollection$$1;\n Map.prototype = Object.create( KeyedCollection$$1 && KeyedCollection$$1.prototype );\n Map.prototype.constructor = Map;\n\n Map.of = function of () {\n var keyValues = [], len = arguments.length;\n while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n return emptyMap().withMutations(function (map) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function toString () {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function get (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 set (k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.remove = function remove (k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteAll = function deleteAll (keys) {\n var collection = Collection(keys);\n\n if (collection.size === 0) {\n return this;\n }\n\n return this.withMutations(function (map) {\n collection.forEach(function (key) { return map.remove(key); });\n });\n };\n\n Map.prototype.clear = function clear () {\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.sort = function sort (comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n Map.prototype.map = function map (mapper, context) {\n return this.withMutations(function (map) {\n map.forEach(function (value, key) {\n map.set(key, mapper.call(context, value, key, map));\n });\n });\n };\n\n // @pragma Mutability\n\n Map.prototype.__iterator = function __iterator (type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\n var iterations = 0;\n this._root &&\n this._root.iterate(function (entry) {\n iterations++;\n return fn(entry[1], entry[0], this$1);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyMap();\n }\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 return Map;\n }(KeyedCollection));\n\n Map.isMap = isMap;\n\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SYMBOL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeAll = MapPrototype.deleteAll;\n MapPrototype.setIn = setIn$1;\n MapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\n MapPrototype.update = update$1;\n MapPrototype.updateIn = updateIn$1;\n MapPrototype.merge = MapPrototype.concat = merge;\n MapPrototype.mergeWith = mergeWith;\n MapPrototype.mergeDeep = mergeDeep$1;\n MapPrototype.mergeDeepWith = mergeDeepWith$1;\n MapPrototype.mergeIn = mergeIn;\n MapPrototype.mergeDeepIn = mergeDeepIn;\n MapPrototype.withMutations = withMutations;\n MapPrototype.wasAltered = wasAltered;\n MapPrototype.asImmutable = asImmutable;\n MapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\n MapPrototype['@@transducer/step'] = function(result, arr) {\n return result.set(arr[0], arr[1]);\n };\n MapPrototype['@@transducer/result'] = function(obj) {\n return obj.asImmutable();\n };\n\n // #pragma Trie Nodes\n\n var ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n };\n\n ArrayMapNode.prototype.get = function get (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 update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; 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\n ? newEntries.pop()\n : (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 var BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n };\n\n BitmapIndexedNode.prototype.get = function get (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\n ? notSetValue\n : this.nodes[popCount(bitmap & (bit - 1))].get(\n shift + SHIFT,\n keyHash,\n key,\n notSetValue\n );\n };\n\n BitmapIndexedNode.prototype.update = function update (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(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\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 (\n exists &&\n !newNode &&\n nodes.length === 2 &&\n isLeafNode(nodes[idx ^ 1])\n ) {\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\n ? newNode\n ? setAt(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 var HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n };\n\n HashArrayMapNode.prototype.get = function get (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\n ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n : notSetValue;\n };\n\n HashArrayMapNode.prototype.update = function update (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(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\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 = setAt(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 var HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n };\n\n HashCollisionNode.prototype.get = function get (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 update (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 var len = entries.length;\n for (; 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\n ? newEntries.pop()\n : (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 var ValueNode = function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n };\n\n ValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n };\n\n ValueNode.prototype.update = function update (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 // #pragma Iterators\n\n ArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate = function(\n fn,\n reverse\n ) {\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 = HashArrayMapNode.prototype.iterate = function(\n fn,\n reverse\n ) {\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 // eslint-disable-next-line no-unused-vars\n ValueNode.prototype.iterate = function(fn, reverse) {\n return fn(this.entry);\n };\n\n var MapIterator = /*@__PURE__*/(function (Iterator$$1) {\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 if ( Iterator$$1 ) MapIterator.__proto__ = Iterator$$1;\n MapIterator.prototype = Object.create( Iterator$$1 && Iterator$$1.prototype );\n MapIterator.prototype.constructor = MapIterator;\n\n MapIterator.prototype.next = function next () {\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 = (void 0);\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(\n type,\n node.entries[this._reverse ? maxIndex - index : index]\n );\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 return MapIterator;\n }(Iterator));\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$$1) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash$$1;\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();\n var didAlter = MakeRef();\n newRoot = updateNode(\n map._root,\n map.__ownerID,\n 0,\n undefined,\n k,\n v,\n didChangeSize,\n didAlter\n );\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(\n node,\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n ) {\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(\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n }\n\n function isLeafNode(node) {\n return (\n node.constructor === ValueNode || node.constructor === HashCollisionNode\n );\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 =\n idx1 === idx2\n ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n 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 popCount(x) {\n x -= (x >> 1) & 0x55555555;\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n }\n\n function setAt(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 var IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\n function isList(maybeList) {\n return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n }\n\n var List = /*@__PURE__*/(function (IndexedCollection$$1) {\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 = IndexedCollection$$1(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 if ( IndexedCollection$$1 ) List.__proto__ = IndexedCollection$$1;\n List.prototype = Object.create( IndexedCollection$$1 && IndexedCollection$$1.prototype );\n List.prototype.constructor = List;\n\n List.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function toString () {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function get (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 set (index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function remove (index) {\n return !this.has(index)\n ? this\n : index === 0\n ? this.shift()\n : index === this.size - 1\n ? this.pop()\n : this.splice(index, 1);\n };\n\n List.prototype.insert = function insert (index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function clear () {\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 push (/*...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 pop () {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function unshift (/*...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 shift () {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.concat = function concat (/*...collections*/) {\n var arguments$1 = arguments;\n\n var seqs = [];\n for (var i = 0; i < arguments.length; i++) {\n var argument = arguments$1[i];\n var seq = IndexedCollection$$1(\n typeof argument !== 'string' && hasIterator(argument)\n ? argument\n : [argument]\n );\n if (seq.size !== 0) {\n seqs.push(seq);\n }\n }\n if (seqs.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n return this.constructor(seqs[0]);\n }\n return this.withMutations(function (list) {\n seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n });\n };\n\n List.prototype.setSize = function setSize (size) {\n return setListBounds(this, 0, size);\n };\n\n List.prototype.map = function map (mapper, context) {\n var this$1 = this;\n\n return this.withMutations(function (list) {\n for (var i = 0; i < this$1.size; i++) {\n list.set(i, mapper.call(context, list.get(i), i, list));\n }\n });\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function slice (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 __iterator (type, reverse) {\n var index = reverse ? this.size : 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, reverse ? --index : index++, value);\n });\n };\n\n List.prototype.__iterate = function __iterate (fn, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, reverse ? --index : index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyList();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeList(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n ownerID,\n this.__hash\n );\n };\n\n return List;\n }(IndexedCollection));\n\n List.isList = isList;\n\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SYMBOL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.merge = ListPrototype.concat;\n ListPrototype.setIn = setIn$1;\n ListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\n ListPrototype.update = update$1;\n ListPrototype.updateIn = updateIn$1;\n ListPrototype.mergeIn = mergeIn;\n ListPrototype.mergeDeepIn = mergeDeepIn;\n ListPrototype.withMutations = withMutations;\n ListPrototype.wasAltered = wasAltered;\n ListPrototype.asImmutable = asImmutable;\n ListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\n ListPrototype['@@transducer/step'] = function(result, arr) {\n return result.push(arr);\n };\n ListPrototype['@@transducer/result'] = function(obj) {\n return obj.asImmutable();\n };\n\n var VNode = 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 removeBefore (ownerID, level, index) {\n if (index === level ? 1 << level : 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 =\n 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 removeAfter (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 =\n 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 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 while (true) {\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],\n level - SHIFT,\n offset + (idx << level)\n );\n }\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();\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(\n newRoot,\n list.__ownerID,\n list._level,\n index,\n value,\n didAlter\n );\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(\n lowerNode,\n ownerID,\n level - SHIFT,\n index,\n value,\n didAlter\n );\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 if (didAlter) {\n SetRef(didAlter);\n }\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 |= 0;\n }\n if (end !== undefined) {\n 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 =\n end === undefined\n ? oldCapacity\n : end < 0\n ? oldCapacity + end\n : 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(\n newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n owner\n );\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(\n newRoot && newRoot.array.length ? [newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail =\n newTailOffset < oldTailOffset\n ? listNodeFor(list, newCapacity - 1)\n : newTailOffset > oldTailOffset\n ? new VNode([], owner)\n : oldTail;\n\n // Merge Tail into tree.\n if (\n oldTail &&\n newTailOffset > oldTailOffset &&\n newOrigin < oldCapacity &&\n oldTail.array.length\n ) {\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(\n owner,\n newLevel,\n newTailOffset - offsetShift\n );\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 getTailOffset(size) {\n return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n }\n\n var OrderedMap = /*@__PURE__*/(function (Map$$1) {\n function OrderedMap(value) {\n return value === null || value === undefined\n ? emptyOrderedMap()\n : isOrderedMap(value)\n ? value\n : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( Map$$1 ) OrderedMap.__proto__ = Map$$1;\n OrderedMap.prototype = Object.create( Map$$1 && Map$$1.prototype );\n OrderedMap.prototype.constructor = OrderedMap;\n\n OrderedMap.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function toString () {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function get (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 clear () {\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 set (k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function remove (k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered() || this._list.wasAltered();\n };\n\n OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\n return this._list.__iterate(\n function (entry) { return entry && fn(entry[1], entry[0], this$1); },\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function __ensureOwner (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 if (this.size === 0) {\n return emptyOrderedMap();\n }\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 return OrderedMap;\n }(Map));\n\n OrderedMap.isOrderedMap = isOrderedMap;\n\n OrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\n OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\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 (\n EMPTY_ORDERED_MAP ||\n (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n );\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) {\n // 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\n .toKeyedSeq()\n .map(function (entry) { return entry[0]; })\n .flip()\n .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 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 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 var IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\n function isStack(maybeStack) {\n return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n }\n\n var Stack = /*@__PURE__*/(function (IndexedCollection$$1) {\n function Stack(value) {\n return value === null || value === undefined\n ? emptyStack()\n : isStack(value)\n ? value\n : emptyStack().pushAll(value);\n }\n\n if ( IndexedCollection$$1 ) Stack.__proto__ = IndexedCollection$$1;\n Stack.prototype = Object.create( IndexedCollection$$1 && IndexedCollection$$1.prototype );\n Stack.prototype.constructor = Stack;\n\n Stack.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function toString () {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function get (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 peek () {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function push (/*...values*/) {\n var arguments$1 = arguments;\n\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$1[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 pushAll (iter) {\n iter = IndexedCollection$$1(iter);\n if (iter.size === 0) {\n return this;\n }\n if (this.size === 0 && isStack(iter)) {\n return iter;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.__iterate(function (value) {\n newSize++;\n head = {\n value: value,\n next: head,\n };\n }, /* reverse */ true);\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 pop () {\n return this.slice(1);\n };\n\n Stack.prototype.clear = function clear () {\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 slice (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$$1.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 __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyStack();\n }\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 __iterate (fn, reverse) {\n var this$1 = this;\n\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterate(\n function (v, k) { return fn(v, k, this$1); },\n reverse\n );\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 __iterator (type, reverse) {\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterator(type, reverse);\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 return Stack;\n }(IndexedCollection));\n\n Stack.isStack = isStack;\n\n var StackPrototype = Stack.prototype;\n StackPrototype[IS_STACK_SYMBOL] = true;\n StackPrototype.shift = StackPrototype.pop;\n StackPrototype.unshift = StackPrototype.push;\n StackPrototype.unshiftAll = StackPrototype.pushAll;\n StackPrototype.withMutations = withMutations;\n StackPrototype.wasAltered = wasAltered;\n StackPrototype.asImmutable = asImmutable;\n StackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\n StackPrototype['@@transducer/step'] = function(result, arr) {\n return result.unshift(arr);\n };\n StackPrototype['@@transducer/result'] = function(obj) {\n return obj.asImmutable();\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 var IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\n function isSet(maybeSet) {\n return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n }\n\n function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isCollection(b) ||\n (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n (a.__hash !== undefined &&\n b.__hash !== undefined &&\n 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 (\n 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\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 (\n notAssociative\n ? !a.has(v)\n : flipped\n ? !is(v, a.get(k, NOT_SET))\n : !is(a.get(k, NOT_SET), v)\n ) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n }\n\n /**\n * Contributes additional methods to a constructor\n */\n function mixin(ctor, methods) {\n var keyCopier = function (key) {\n ctor.prototype[key] = methods[key];\n };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n function toJS(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (!isCollection(value)) {\n if (!isDataStructure(value)) {\n return value;\n }\n value = Seq(value);\n }\n if (isKeyed(value)) {\n var result$1 = {};\n value.__iterate(function (v, k) {\n result$1[k] = toJS(v);\n });\n return result$1;\n }\n var result = [];\n value.__iterate(function (v) {\n result.push(toJS(v));\n });\n return result;\n }\n\n var Set = /*@__PURE__*/(function (SetCollection$$1) {\n function Set(value) {\n return value === null || value === undefined\n ? emptySet()\n : isSet(value) && !isOrdered(value)\n ? value\n : emptySet().withMutations(function (set) {\n var iter = SetCollection$$1(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( SetCollection$$1 ) Set.__proto__ = SetCollection$$1;\n Set.prototype = Object.create( SetCollection$$1 && SetCollection$$1.prototype );\n Set.prototype.constructor = Set;\n\n Set.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n Set.intersect = function intersect (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.union = function union (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.union.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.prototype.toString = function toString () {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function has (value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function add (value) {\n return updateSet(this, this._map.set(value, value));\n };\n\n Set.prototype.remove = function remove (value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function clear () {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.map = function map (mapper, context) {\n var this$1 = this;\n\n var removes = [];\n var adds = [];\n this.forEach(function (value) {\n var mapped = mapper.call(context, value, value, this$1);\n if (mapped !== value) {\n removes.push(value);\n adds.push(mapped);\n }\n });\n return this.withMutations(function (set) {\n removes.forEach(function (value) { return set.remove(value); });\n adds.forEach(function (value) { return set.add(value); });\n });\n };\n\n Set.prototype.union = function union () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\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 SetCollection$$1(iters[ii]).forEach(function (value) { return set.add(value); });\n }\n });\n };\n\n Set.prototype.intersect = function intersect () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection$$1(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (!iters.every(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.subtract = function subtract () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection$$1(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (iters.some(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1 = this;\n\n return this._map.__iterate(function (k) { return fn(k, k, this$1); }, reverse);\n };\n\n Set.prototype.__iterator = function __iterator (type, reverse) {\n return this._map.__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return this.__empty();\n }\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n return Set;\n }(SetCollection));\n\n Set.isSet = isSet;\n\n var SetPrototype = Set.prototype;\n SetPrototype[IS_SET_SYMBOL] = true;\n SetPrototype[DELETE] = SetPrototype.remove;\n SetPrototype.merge = SetPrototype.concat = SetPrototype.union;\n SetPrototype.withMutations = withMutations;\n SetPrototype.asImmutable = asImmutable;\n SetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\n SetPrototype['@@transducer/step'] = function(result, arr) {\n return result.add(arr);\n };\n SetPrototype['@@transducer/result'] = function(obj) {\n return obj.asImmutable();\n };\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\n ? set\n : newMap.size === 0\n ? 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 /**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\n var Range = /*@__PURE__*/(function (IndexedSeq$$1) {\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 if ( IndexedSeq$$1 ) Range.__proto__ = IndexedSeq$$1;\n Range.prototype = Object.create( IndexedSeq$$1 && IndexedSeq$$1.prototype );\n Range.prototype.constructor = Range;\n\n Range.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Range []';\n }\n return (\n 'Range [ ' +\n this._start +\n '...' +\n this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]'\n );\n };\n\n Range.prototype.get = function get (index, notSetValue) {\n return this.has(index)\n ? this._start + wrapIndex(this, index) * this._step\n : notSetValue;\n };\n\n Range.prototype.includes = function includes (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return (\n possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex)\n );\n };\n\n Range.prototype.slice = function slice (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(\n this.get(begin, this._end),\n this.get(end, this._end),\n this._step\n );\n };\n\n Range.prototype.indexOf = function indexOf (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 lastIndexOf (searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n while (i !== size) {\n if (fn(value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n value += reverse ? -step : step;\n }\n return i;\n };\n\n Range.prototype.__iterator = function __iterator (type, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var v = value;\n value += reverse ? -step : step;\n return iteratorValue(type, reverse ? size - ++i : i++, v);\n });\n };\n\n Range.prototype.equals = function equals (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 return Range;\n }(IndexedSeq));\n\n var EMPTY_RANGE;\n\n function getIn(collection, searchKeyPath, notSetValue) {\n var keyPath = coerceKeyPath(searchKeyPath);\n var i = 0;\n while (i !== keyPath.length) {\n collection = get(collection, keyPath[i++], NOT_SET);\n if (collection === NOT_SET) {\n return notSetValue;\n }\n }\n return collection;\n }\n\n function getIn$1(searchKeyPath, notSetValue) {\n return getIn(this, searchKeyPath, notSetValue);\n }\n\n function hasIn(collection, keyPath) {\n return getIn(collection, keyPath, NOT_SET) !== NOT_SET;\n }\n\n function hasIn$1(searchKeyPath) {\n return hasIn(this, searchKeyPath);\n }\n\n function toObject() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n return object;\n }\n\n // Note: all of these methods are deprecated.\n Collection.isIterable = isCollection;\n Collection.isKeyed = isKeyed;\n Collection.isIndexed = isIndexed;\n Collection.isAssociative = isAssociative;\n Collection.isOrdered = isOrdered;\n\n Collection.Iterator = Iterator;\n\n mixin(Collection, {\n // ### Conversion to other types\n\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n var useTuples = isKeyed(this);\n var i = 0;\n this.__iterate(function (v, k) {\n // Keyed collections produce an array of tuples.\n array[i++] = useTuples ? [k, v] : v;\n });\n return array;\n },\n\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function toJS$1() {\n return toJS(this);\n },\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: toObject,\n\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function toOrderedSet() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n\n toSeq: function toSeq() {\n return isIndexed(this)\n ? this.toIndexedSeq()\n : isKeyed(this)\n ? this.toKeyedSeq()\n : this.toSetSeq();\n },\n\n toStack: function toStack() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n // ### Common JavaScript methods and properties\n\n toString: function toString() {\n return '[Collection]';\n },\n\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return (\n head +\n ' ' +\n this.toSeq()\n .map(this.__toStringMapper)\n .join(', ') +\n ' ' +\n tail\n );\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function concat() {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return reify(this, concatFactory(this, values));\n },\n\n includes: function includes(searchValue) {\n return this.some(function (value) { return is(value, searchValue); });\n },\n\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function every(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 filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function join(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 keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function reduce$1(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n false\n );\n },\n\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n true\n );\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function some(predicate, context) {\n return !this.every(not(predicate), context);\n },\n\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n // ### More sequential methods\n\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n },\n\n count: function count(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function entrySeq() {\n var collection = this;\n if (collection._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(collection._cache);\n }\n var entriesSequence = collection\n .toSeq()\n .map(entryMapper)\n .toIndexedSeq();\n entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n return entriesSequence;\n },\n\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\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 findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .find(predicate, context, notSetValue);\n },\n\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq()\n .reverse()\n .findKey(predicate, context);\n },\n\n first: function first(notSetValue) {\n return this.find(returnTrue, null, notSetValue);\n },\n\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n },\n\n getIn: getIn$1,\n\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: hasIn$1,\n\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n return this.every(function (value) { return iter.includes(value); });\n },\n\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) { return is(value, searchValue); });\n },\n\n keySeq: function keySeq() {\n return this.toSeq()\n .map(keyMapper)\n .toIndexedSeq();\n },\n\n last: function last(notSetValue) {\n return this.toSeq()\n .reverse()\n .first(notSetValue);\n },\n\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq()\n .reverse()\n .keyOf(searchValue);\n },\n\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function min(comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator\n );\n },\n\n minBy: function minBy(mapper, comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator,\n mapper\n );\n },\n\n rest: function rest() {\n return this.slice(1);\n },\n\n skip: function skip(amount) {\n return amount === 0 ? this : this.slice(Math.max(0, amount));\n },\n\n skipLast: function skipLast(amount) {\n return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function takeLast(amount) {\n return this.slice(-Math.max(0, amount));\n },\n\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n update: function update(fn) {\n return fn(this);\n },\n\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n\n // ### Hashable Object\n\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashCollection(this));\n },\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n });\n\n var CollectionPrototype = Collection.prototype;\n CollectionPrototype[IS_COLLECTION_SYMBOL] = true;\n CollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\n CollectionPrototype.toJSON = CollectionPrototype.toArray;\n CollectionPrototype.__toStringMapper = quoteString;\n CollectionPrototype.inspect = CollectionPrototype.toSource = function() {\n return this.toString();\n };\n CollectionPrototype.chain = CollectionPrototype.flatMap;\n CollectionPrototype.contains = CollectionPrototype.includes;\n\n mixin(KeyedCollection, {\n // ### More sequential methods\n\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function mapEntries(mapper, context) {\n var this$1 = this;\n\n var iterations = 0;\n return reify(\n this,\n this.toSeq()\n .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1); })\n .fromEntrySeq()\n );\n },\n\n mapKeys: function mapKeys(mapper, context) {\n var this$1 = this;\n\n return reify(\n this,\n this.toSeq()\n .flip()\n .map(function (k, v) { return mapper.call(context, k, v, this$1); })\n .flip()\n );\n },\n });\n\n var KeyedCollectionPrototype = KeyedCollection.prototype;\n KeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\n KeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\n KeyedCollectionPrototype.toJSON = toObject;\n KeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\n mixin(IndexedCollection, {\n // ### Conversion to other types\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function splice(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 // ### More collection methods\n\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function first(notSetValue) {\n return this.get(0, notSetValue);\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 ||\n (this.size === Infinity || (this.size !== undefined && index > this.size))\n ? notSetValue\n : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n },\n\n has: function has(index) {\n index = wrapIndex(this, index);\n return (\n index >= 0 &&\n (this.size !== undefined\n ? this.size === Infinity || index < this.size\n : this.indexOf(index) !== -1)\n );\n },\n\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function interleave(/*...collections*/) {\n var collections = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * collections.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n\n last: function last(notSetValue) {\n return this.get(-1, notSetValue);\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function zip(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections));\n },\n\n zipAll: function zipAll(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n },\n\n zipWith: function zipWith(zipper /*, ...collections */) {\n var collections = arrCopy(arguments);\n collections[0] = this;\n return reify(this, zipWithFactory(this, zipper, collections));\n },\n });\n\n var IndexedCollectionPrototype = IndexedCollection.prototype;\n IndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\n IndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\n mixin(SetCollection, {\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function includes(value) {\n return this.has(value);\n },\n\n // ### More sequential methods\n\n keySeq: function keySeq() {\n return this.valueSeq();\n },\n });\n\n SetCollection.prototype.has = CollectionPrototype.includes;\n SetCollection.prototype.contains = SetCollection.prototype.includes;\n\n // Mixin subclasses\n\n mixin(KeyedSeq, KeyedCollection.prototype);\n mixin(IndexedSeq, IndexedCollection.prototype);\n mixin(SetSeq, SetCollection.prototype);\n\n // #pragma Helper functions\n\n function reduce(collection, reducer, reduction, context, useFirst, reverse) {\n assertNotInfinite(collection.size);\n collection.__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 }, reverse);\n return reduction;\n }\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 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 hashCollection(collection) {\n if (collection.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(collection);\n var keyed = isKeyed(collection);\n var h = ordered ? 1 : 0;\n var size = collection.__iterate(\n keyed\n ? ordered\n ? function (v, k) {\n h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n }\n : function (v, k) {\n h = (h + hashMerge(hash(v), hash(k))) | 0;\n }\n : ordered\n ? function (v) {\n h = (31 * h + hash(v)) | 0;\n }\n : function (v) {\n h = (h + hash(v)) | 0;\n }\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 OrderedSet = /*@__PURE__*/(function (Set$$1) {\n function OrderedSet(value) {\n return value === null || value === undefined\n ? emptyOrderedSet()\n : isOrderedSet(value)\n ? value\n : emptyOrderedSet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( Set$$1 ) OrderedSet.__proto__ = Set$$1;\n OrderedSet.prototype = Object.create( Set$$1 && Set$$1.prototype );\n OrderedSet.prototype.constructor = OrderedSet;\n\n OrderedSet.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function toString () {\n return this.__toString('OrderedSet {', '}');\n };\n\n return OrderedSet;\n }(Set));\n\n OrderedSet.isOrderedSet = isOrderedSet;\n\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\n OrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\n OrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\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 (\n EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n );\n }\n\n var Record = function Record(defaultValues, name) {\n var hasInitialized;\n\n var RecordType = function Record(values) {\n var this$1 = this;\n\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 var indices = (RecordTypePrototype._indices = {});\n // Deprecated: left to attempt not to break any external code which\n // relies on a ._name property existing on record instances.\n // Use Record.getDescriptiveName() instead\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n for (var i = 0; i < keys.length; i++) {\n var propName = keys[i];\n indices[propName] = i;\n if (RecordTypePrototype[propName]) {\n /* eslint-disable no-console */\n typeof console === 'object' &&\n console.warn &&\n console.warn(\n 'Cannot define ' +\n recordName(this) +\n ' with property \"' +\n propName +\n '\" since that property name is part of the Record API.'\n );\n /* eslint-enable no-console */\n } else {\n setProp(RecordTypePrototype, propName);\n }\n }\n }\n this.__ownerID = undefined;\n this._values = List().withMutations(function (l) {\n l.setSize(this$1._keys.length);\n KeyedCollection(values).forEach(function (v, k) {\n l.set(this$1._indices[k], v === this$1._defaultValues[k] ? undefined : v);\n });\n });\n };\n\n var RecordTypePrototype = (RecordType.prototype = Object.create(\n RecordPrototype\n ));\n RecordTypePrototype.constructor = RecordType;\n\n if (name) {\n RecordType.displayName = name;\n }\n\n return RecordType;\n };\n\n Record.prototype.toString = function toString () {\n var str = recordName(this) + ' { ';\n var keys = this._keys;\n var k;\n for (var i = 0, l = keys.length; i !== l; i++) {\n k = keys[i];\n str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n }\n return str + ' }';\n };\n\n Record.prototype.equals = function equals (other) {\n return (\n this === other ||\n (other &&\n this._keys === other._keys &&\n recordSeq(this).equals(recordSeq(other)))\n );\n };\n\n Record.prototype.hashCode = function hashCode () {\n return recordSeq(this).hashCode();\n };\n\n // @pragma Access\n\n Record.prototype.has = function has (k) {\n return this._indices.hasOwnProperty(k);\n };\n\n Record.prototype.get = function get (k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var index = this._indices[k];\n var value = this._values.get(index);\n return value === undefined ? this._defaultValues[k] : value;\n };\n\n // @pragma Modification\n\n Record.prototype.set = function set (k, v) {\n if (this.has(k)) {\n var newValues = this._values.set(\n this._indices[k],\n v === this._defaultValues[k] ? undefined : v\n );\n if (newValues !== this._values && !this.__ownerID) {\n return makeRecord(this, newValues);\n }\n }\n return this;\n };\n\n Record.prototype.remove = function remove (k) {\n return this.set(k);\n };\n\n Record.prototype.clear = function clear () {\n var newValues = this._values.clear().setSize(this._keys.length);\n return this.__ownerID ? this : makeRecord(this, newValues);\n };\n\n Record.prototype.wasAltered = function wasAltered () {\n return this._values.wasAltered();\n };\n\n Record.prototype.toSeq = function toSeq () {\n return recordSeq(this);\n };\n\n Record.prototype.toJS = function toJS$1 () {\n return toJS(this);\n };\n\n Record.prototype.entries = function entries () {\n return this.__iterator(ITERATE_ENTRIES);\n };\n\n Record.prototype.__iterator = function __iterator (type, reverse) {\n return recordSeq(this).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function __iterate (fn, reverse) {\n return recordSeq(this).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newValues = this._values.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._values = newValues;\n return this;\n }\n return makeRecord(this, newValues, ownerID);\n };\n\n Record.isRecord = isRecord;\n Record.getDescriptiveName = recordName;\n var RecordPrototype = Record.prototype;\n RecordPrototype[IS_RECORD_SYMBOL] = true;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\n RecordPrototype.getIn = getIn$1;\n RecordPrototype.hasIn = CollectionPrototype.hasIn;\n RecordPrototype.merge = merge;\n RecordPrototype.mergeWith = mergeWith;\n RecordPrototype.mergeIn = mergeIn;\n RecordPrototype.mergeDeep = mergeDeep$1;\n RecordPrototype.mergeDeepWith = mergeDeepWith$1;\n RecordPrototype.mergeDeepIn = mergeDeepIn;\n RecordPrototype.setIn = setIn$1;\n RecordPrototype.update = update$1;\n RecordPrototype.updateIn = updateIn$1;\n RecordPrototype.withMutations = withMutations;\n RecordPrototype.asMutable = asMutable;\n RecordPrototype.asImmutable = asImmutable;\n RecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\n RecordPrototype.toJSON = RecordPrototype.toObject =\n CollectionPrototype.toObject;\n RecordPrototype.inspect = RecordPrototype.toSource = function() {\n return this.toString();\n };\n\n function makeRecord(likeRecord, values, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._values = values;\n record.__ownerID = ownerID;\n return record;\n }\n\n function recordName(record) {\n return record.constructor.displayName || record.constructor.name || 'Record';\n }\n\n function recordSeq(record) {\n return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n }\n\n function setProp(prototype, name) {\n try {\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 } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n }\n\n /**\n * Returns a lazy Seq of `value` repeated `times` times. When `times` is\n * undefined, returns an infinite sequence of `value`.\n */\n var Repeat = /*@__PURE__*/(function (IndexedSeq$$1) {\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 if ( IndexedSeq$$1 ) Repeat.__proto__ = IndexedSeq$$1;\n Repeat.prototype = Object.create( IndexedSeq$$1 && IndexedSeq$$1.prototype );\n Repeat.prototype.constructor = Repeat;\n\n Repeat.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function includes (searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function slice (begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size)\n ? this\n : new Repeat(\n this._value,\n resolveEnd(end, size) - resolveBegin(begin, size)\n );\n };\n\n Repeat.prototype.reverse = function reverse () {\n return this;\n };\n\n Repeat.prototype.indexOf = function indexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var i = 0;\n while (i !== size) {\n if (fn(this._value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n }\n return i;\n };\n\n Repeat.prototype.__iterator = function __iterator (type, reverse) {\n var this$1 = this;\n\n var size = this.size;\n var i = 0;\n return new Iterator(\n function () { return i === size\n ? iteratorDone()\n : iteratorValue(type, reverse ? size - ++i : i++, this$1._value); }\n );\n };\n\n Repeat.prototype.equals = function equals (other) {\n return other instanceof Repeat\n ? is(this._value, other._value)\n : deepEqual(other);\n };\n\n return Repeat;\n }(IndexedSeq));\n\n var EMPTY_REPEAT;\n\n function fromJS(value, converter) {\n return fromJSWith(\n [],\n converter || defaultConverter,\n value,\n '',\n converter && converter.length > 2 ? [] : undefined,\n { '': value }\n );\n }\n\n function fromJSWith(stack, converter, value, key, keyPath, parentValue) {\n var toSeq = Array.isArray(value)\n ? IndexedSeq\n : isPlainObj(value)\n ? KeyedSeq\n : null;\n if (toSeq) {\n if (~stack.indexOf(value)) {\n throw new TypeError('Cannot convert circular structure to Immutable');\n }\n stack.push(value);\n keyPath && key !== '' && keyPath.push(key);\n var converted = converter.call(\n parentValue,\n key,\n toSeq(value).map(function (v, k) { return fromJSWith(stack, converter, v, k, keyPath, value); }\n ),\n keyPath && keyPath.slice()\n );\n stack.pop();\n keyPath && keyPath.pop();\n return converted;\n }\n return value;\n }\n\n function defaultConverter(k, v) {\n return isKeyed(v) ? v.toMap() : v.toList();\n }\n\n var version = \"4.0.0-rc.11\";\n\n var Immutable = {\n version: version,\n\n Collection: Collection,\n // Note: Iterable is deprecated\n Iterable: Collection,\n\n Seq: Seq,\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 hash: hash,\n\n isImmutable: isImmutable,\n isCollection: isCollection,\n isKeyed: isKeyed,\n isIndexed: isIndexed,\n isAssociative: isAssociative,\n isOrdered: isOrdered,\n isValueObject: isValueObject,\n isSeq: isSeq,\n isList: isList,\n isMap: isMap,\n isOrderedMap: isOrderedMap,\n isStack: isStack,\n isSet: isSet,\n isOrderedSet: isOrderedSet,\n isRecord: isRecord,\n\n get: get,\n getIn: getIn,\n has: has,\n hasIn: hasIn,\n merge: merge$1,\n mergeDeep: mergeDeep,\n mergeWith: mergeWith$1,\n mergeDeepWith: mergeDeepWith,\n remove: remove,\n removeIn: removeIn,\n set: set,\n setIn: setIn,\n update: update,\n updateIn: updateIn,\n };\n\n // Note: Iterable is deprecated\n var Iterable = Collection;\n\n exports.default = Immutable;\n exports.version = version;\n exports.Collection = Collection;\n exports.Iterable = Iterable;\n exports.Seq = Seq;\n exports.Map = Map;\n exports.OrderedMap = OrderedMap;\n exports.List = List;\n exports.Stack = Stack;\n exports.Set = Set;\n exports.OrderedSet = OrderedSet;\n exports.Record = Record;\n exports.Range = Range;\n exports.Repeat = Repeat;\n exports.is = is;\n exports.fromJS = fromJS;\n exports.hash = hash;\n exports.isImmutable = isImmutable;\n exports.isCollection = isCollection;\n exports.isKeyed = isKeyed;\n exports.isIndexed = isIndexed;\n exports.isAssociative = isAssociative;\n exports.isOrdered = isOrdered;\n exports.isValueObject = isValueObject;\n exports.get = get;\n exports.getIn = getIn;\n exports.has = has;\n exports.hasIn = hasIn;\n exports.merge = merge$1;\n exports.mergeDeep = mergeDeep;\n exports.mergeWith = mergeWith$1;\n exports.mergeDeepWith = mergeDeepWith;\n exports.remove = remove;\n exports.removeIn = removeIn;\n exports.set = set;\n exports.setIn = setIn;\n exports.update = update;\n exports.updateIn = updateIn;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"draft-js\"),require(\"immutable\")):\"function\"==typeof define&&define.amd?define([\"draft-js\",\"immutable\"],e):\"object\"==typeof exports?exports.draftjsUtils=e(require(\"draft-js\"),require(\"immutable\")):t.draftjsUtils=e(t[\"draft-js\"],t.immutable)}(window,function(n,r){return u={},o.m=i=[function(t,e){t.exports=n},function(t,e){t.exports=r},function(t,e,n){t.exports=n(3)},function(t,e,n){\"use strict\";n.r(e);var C=n(0),i=n(1);function m(t){var e=t.getSelection(),n=t.getCurrentContent(),r=e.getStartKey(),o=e.getEndKey(),i=n.getBlockMap();return i.toSeq().skipUntil(function(t,e){return e===r}).takeUntil(function(t,e){return e===o}).concat([[o,i.get(o)]])}function a(t){return m(t).toList()}function f(t){if(t)return a(t).get(0)}function r(t){if(t){var n=f(t),e=t.getCurrentContent().getBlockMap().toSeq().toList(),r=0;if(e.forEach(function(t,e){t.get(\"key\")===n.get(\"key\")&&(r=e-1)}),-1<r)return e.get(r)}}function o(t){return t?t.getCurrentContent().getBlockMap().toList():new i.List}function u(t){var e=a(t);if(!e.some(function(t){return t.type!==e.get(0).type}))return e.get(0).type}function c(t){var e=C.RichUtils.tryToRemoveBlockStyle(t);return e?C.EditorState.push(t,e,\"change-block-type\"):t}function l(t){var e=\"\",n=t.getSelection(),r=n.getAnchorOffset(),o=n.getFocusOffset(),i=a(t);if(0<i.size){if(n.getIsBackward()){var u=r;r=o,o=u}for(var c=0;c<i.size;c+=1){var f=0===c?r:0,l=c===i.size-1?o:i.get(c).getText().length;e+=i.get(c).getText().slice(f,l)}}return e}function s(t){var e=t.getCurrentContent(),n=t.getSelection(),r=C.Modifier.removeRange(e,n,\"forward\"),o=r.getSelectionAfter(),i=r.getBlockForKey(o.getStartKey());return r=C.Modifier.insertText(r,o,\"\\n\",i.getInlineStyleAt(o.getStartOffset()),null),C.EditorState.push(t,r,\"insert-fragment\")}function g(t){var e=C.Modifier.splitBlock(t.getCurrentContent(),t.getSelection());return c(C.EditorState.push(t,e,\"split-block\"))}function d(t){var e=t.getCurrentContent().getBlockMap().toList(),n=t.getSelection().merge({anchorKey:e.first().get(\"key\"),anchorOffset:0,focusKey:e.last().get(\"key\"),focusOffset:e.last().getLength()}),r=C.Modifier.removeRange(t.getCurrentContent(),n,\"forward\");return C.EditorState.push(t,r,\"remove-range\")}function S(t,e){var n=C.Modifier.setBlockData(t.getCurrentContent(),t.getSelection(),e);return C.EditorState.push(t,n,\"change-block-data\")}function p(t){var r=new i.Map({}),e=a(t);if(e&&0<e.size)for(var n=function(t){var n=e.get(t).getData();if(!n||0===n.size)return r=r.clear(),\"break\";if(0===t)r=n;else if(r.forEach(function(t,e){n.get(e)&&n.get(e)===t||(r=r.delete(e))}),0===r.size)return r=r.clear(),\"break\"},o=0;o<e.size;o+=1){if(\"break\"===n(o))break}return r}var y=Object(i.Map)({code:{element:\"pre\"}}),v=C.DefaultDraftBlockRenderMap.merge(y);function b(t){if(t){var e=t.getType();return\"unordered-list-item\"===e||\"ordered-list-item\"===e}return!1}function h(t,e,n){var r,o=t.getSelection();r=o.getIsBackward()?o.getFocusKey():o.getAnchorKey();var i=t.getCurrentContent(),u=i.getBlockForKey(r),c=u.getType();if(\"unordered-list-item\"!==c&&\"ordered-list-item\"!==c)return t;var f=i.getBlockBefore(r);if(!f)return t;if(f.getType()!==c)return t;var l=u.getDepth();if(1===e&&l===n)return t;var a,s,g,d,S,p,y,v=Math.min(f.getDepth()+1,n),b=(s=e,g=v,d=(a=t).getSelection(),S=a.getCurrentContent(),p=S.getBlockMap(),y=m(a).map(function(t){var e=t.getDepth()+s;return e=Math.max(0,Math.min(e,g)),t.set(\"depth\",e)}),p=p.merge(y),S.merge({blockMap:p,selectionBefore:d,selectionAfter:d}));return C.EditorState.push(t,b,\"adjust-depth\")}function O(t,e){var n;return 13===(n=e).which&&(n.getModifierState(\"Shift\")||n.getModifierState(\"Alt\")||n.getModifierState(\"Control\"))?t.getSelection().isCollapsed()?C.RichUtils.insertSoftNewline(t):s(t):function(t){var e=t.getSelection();if(e.isCollapsed()){var n=t.getCurrentContent(),r=e.getStartKey(),o=n.getBlockForKey(r);if(!b(o)&&\"unstyled\"!==o.getType()&&o.getLength()===e.getStartOffset())return g(t);if(b(o)&&0===o.getLength()){var i=o.getDepth();if(0===i)return c(t);if(0<i)return h(t,-1,i)}}}(t)}function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function E(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function I(t){return(I=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function R(t){var e=t.getSelection();if(e.isCollapsed()){var n={},r=t.getCurrentInlineStyle().toList().toJS();if(r)return[\"BOLD\",\"ITALIC\",\"UNDERLINE\",\"STRIKETHROUGH\",\"CODE\",\"SUPERSCRIPT\",\"SUBSCRIPT\"].forEach(function(t){n[t]=0<=r.indexOf(t)}),n}var u=e.getStartOffset(),c=e.getEndOffset(),f=a(t);if(0<f.size){var o=function(){for(var n={BOLD:!0,ITALIC:!0,UNDERLINE:!0,STRIKETHROUGH:!0,CODE:!0,SUPERSCRIPT:!0,SUBSCRIPT:!0},r=0;r<f.size;r+=1){var t=0===r?u:0,e=r===f.size-1?c:f.get(r).getText().length;t===e&&0===t?(t=1,e=2):t===e&&--t;for(var o=function(t){var e=f.get(r).getInlineStyleAt(t);[\"BOLD\",\"ITALIC\",\"UNDERLINE\",\"STRIKETHROUGH\",\"CODE\",\"SUPERSCRIPT\",\"SUBSCRIPT\"].forEach(function(t){n[t]=n[t]&&e.get(t)===t})},i=t;i<e;i+=1)o(i)}return{v:n}}();if(\"object\"===I(o))return o.v}return{}}function B(t){var e,n=t.getSelection(),r=n.getStartOffset(),o=n.getEndOffset();r===o&&0===r?o=1:r===o&&--r;for(var i=f(t),u=r;u<o;u+=1){var c=i.getEntityAt(u);if(!c){e=void 0;break}if(u===r)e=c;else if(e!==c){e=void 0;break}}return e}function T(t,e){var n,r=f(t);return r.findEntityRanges(function(t){return t.get(\"entity\")===e},function(t,e){n={start:t,end:e,text:r.get(\"text\").slice(t,e)}}),n}function P(t,e,n){x[t][\"\".concat(t.toLowerCase(),\"-\").concat(n)]=E({},\"\".concat(e),n)}function j(){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?k(Object(n),!0).forEach(function(t){E(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},x.color,{},x.bgcolor,{},x.fontSize,{},x.fontFamily,{CODE:x.CODE,SUPERSCRIPT:x.SUPERSCRIPT,SUBSCRIPT:x.SUBSCRIPT})}var x={color:{},bgcolor:{},fontSize:{},fontFamily:{},CODE:{fontFamily:\"monospace\",wordWrap:\"break-word\",background:\"#f1f1f1\",borderRadius:3,padding:\"1px 3px\"},SUPERSCRIPT:{fontSize:11,position:\"relative\",top:-8,display:\"inline-flex\"},SUBSCRIPT:{fontSize:11,position:\"relative\",bottom:-8,display:\"inline-flex\"}};function M(t,e,n){var r=t.getSelection(),o=Object.keys(x[e]).reduce(function(t,e){return C.Modifier.removeInlineStyle(t,r,e)},t.getCurrentContent()),i=C.EditorState.push(t,o,\"changeinline-style\"),u=t.getCurrentInlineStyle();if(r.isCollapsed()&&(i=u.reduce(function(t,e){return C.RichUtils.toggleInlineStyle(t,e)},i)),\"SUPERSCRIPT\"===e||\"SUBSCRIPT\"==e)u.has(n)||(i=C.RichUtils.toggleInlineStyle(i,n));else{var c=\"bgcolor\"===e?\"backgroundColor\":e;u.has(\"\".concat(c,\"-\").concat(n))||(i=C.RichUtils.toggleInlineStyle(i,\"\".concat(e.toLowerCase(),\"-\").concat(n)),P(e,c,n))}return i}function L(t){t&&t.getCurrentContent().getBlockMap().map(function(t){return t.get(\"characterList\")}).toList().flatten().forEach(function(t){t&&0===t.indexOf(\"color-\")?P(\"color\",\"color\",t.substr(6)):t&&0===t.indexOf(\"bgcolor-\")?P(\"bgcolor\",\"backgroundColor\",t.substr(8)):t&&0===t.indexOf(\"fontsize-\")?P(\"fontSize\",\"fontSize\",+t.substr(9)):t&&0===t.indexOf(\"fontfamily-\")&&P(\"fontFamily\",\"fontFamily\",t.substr(11))})}function U(t,e,n){var r=t.getInlineStyleAt(n).toList().filter(function(t){return t.startsWith(e.toLowerCase())});if(r&&0<r.size)return r.get(0)}function w(r,l){if(r&&l&&0<l.length){var t=function(){var t=r.getSelection(),i={};if(t.isCollapsed())return l.forEach(function(t){i[t]=function(t,e){var n=t.getCurrentInlineStyle().toList().filter(function(t){return t.startsWith(e.toLowerCase())});if(n&&0<n.size)return n.get(0)}(r,t)}),{v:i};var u=t.getStartOffset(),c=t.getEndOffset(),f=a(r);if(0<f.size){for(var e=function(n){var t=0===n?u:0,e=n===f.size-1?c:f.get(n).getText().length;t===e&&0===t?(t=1,e=2):t===e&&--t;for(var r=function(e){e===t?l.forEach(function(t){i[t]=U(f.get(n),t,e)}):l.forEach(function(t){i[t]&&i[t]!==U(f.get(n),t,e)&&(i[t]=void 0)})},o=t;o<e;o+=1)r(o)},n=0;n<f.size;n+=1)e(n);return{v:i}}}();if(\"object\"===I(t))return t.v}return{}}function D(e){var t=e.getCurrentInlineStyle(),n=e.getCurrentContent();return t.forEach(function(t){n=C.Modifier.removeInlineStyle(n,e.getSelection(),t)}),C.EditorState.push(e,n,\"change-inline-style\")}n.d(e,\"isListBlock\",function(){return b}),n.d(e,\"changeDepth\",function(){return h}),n.d(e,\"handleNewLine\",function(){return O}),n.d(e,\"getEntityRange\",function(){return T}),n.d(e,\"getCustomStyleMap\",function(){return j}),n.d(e,\"toggleCustomInlineStyle\",function(){return M}),n.d(e,\"getSelectionEntity\",function(){return B}),n.d(e,\"extractInlineStyle\",function(){return L}),n.d(e,\"removeAllInlineStyles\",function(){return D}),n.d(e,\"getSelectionInlineStyle\",function(){return R}),n.d(e,\"getSelectionCustomInlineStyle\",function(){return w}),n.d(e,\"getSelectedBlocksMap\",function(){return m}),n.d(e,\"getSelectedBlocksList\",function(){return a}),n.d(e,\"getSelectedBlock\",function(){return f}),n.d(e,\"getBlockBeforeSelectedBlock\",function(){return r}),n.d(e,\"getAllBlocks\",function(){return o}),n.d(e,\"getSelectedBlocksType\",function(){return u}),n.d(e,\"removeSelectedBlocksStyle\",function(){return c}),n.d(e,\"getSelectionText\",function(){return l}),n.d(e,\"addLineBreakRemovingSelection\",function(){return s}),n.d(e,\"insertNewUnstyledBlock\",function(){return g}),n.d(e,\"clearEditorContent\",function(){return d}),n.d(e,\"setBlockData\",function(){return S}),n.d(e,\"getSelectedBlocksMetadata\",function(){return p}),n.d(e,\"blockRenderMap\",function(){return v})}],o.c=u,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,\"a\",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p=\"\",o(o.s=2);function o(t){if(u[t])return u[t].exports;var e=u[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}var i,u});","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","/**\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\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\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = updateMutation;\n\nfunction updateMutation(mutation, originalOffset, originalLength, newLength, prefixLength, suffixLength) {\n // three cases we can reasonably adjust - disjoint mutations that\n // happen later on where the offset will need to be changed,\n // mutations that completely contain the new one where we can adjust\n // the length, and mutations that occur partially within the new one.\n var lengthDiff = newLength - originalLength;\n var mutationAfterChange = originalOffset + originalLength <= mutation.offset;\n\n if (mutationAfterChange) {\n return Object.assign({}, mutation, {\n offset: mutation.offset + lengthDiff\n });\n }\n\n var mutationContainsChange = originalOffset >= mutation.offset && originalOffset + originalLength <= mutation.offset + mutation.length;\n\n if (mutationContainsChange) {\n return Object.assign({}, mutation, {\n length: mutation.length + lengthDiff\n });\n }\n\n var mutationWithinPrefixChange = mutation.offset >= originalOffset && mutation.offset + mutation.length <= originalOffset + originalLength && prefixLength > 0;\n\n if (mutationWithinPrefixChange) {\n return Object.assign({}, mutation, {\n offset: mutation.offset + prefixLength\n });\n }\n\n var mutationContainsPrefix = mutation.offset < originalOffset && mutation.offset + mutation.length <= originalOffset + originalLength && mutation.offset + mutation.length > originalOffset && prefixLength > 0;\n\n if (mutationContainsPrefix) {\n return [Object.assign({}, mutation, {\n length: originalOffset - mutation.offset\n }), Object.assign({}, mutation, {\n offset: originalOffset + prefixLength,\n length: mutation.offset - originalOffset + mutation.length\n })];\n }\n\n var mutationContainsSuffix = mutation.offset >= originalOffset && mutation.offset + mutation.length > originalOffset + originalLength && originalOffset + originalLength > mutation.offset && suffixLength > 0;\n\n if (mutationContainsSuffix) {\n return [Object.assign({}, mutation, {\n offset: mutation.offset + prefixLength,\n length: originalOffset + originalLength - mutation.offset\n }), Object.assign({}, mutation, {\n offset: originalOffset + originalLength + prefixLength + suffixLength,\n length: mutation.offset + mutation.length - (originalOffset + originalLength)\n })];\n }\n\n return mutation;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default = function _default(r1, r2) {\n if (r1.offset === r2.offset) {\n return r2.length - r1.length;\n }\n\n return r1.offset - r2.offset;\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _updateMutation = _interopRequireDefault(require(\"./util/updateMutation\"));\n\nvar _rangeSort = _interopRequireDefault(require(\"./util/rangeSort\"));\n\nvar ENTITY_MAP = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#x27;',\n '`': '&#x60;',\n '\\n': '<br/>'\n};\n\nvar _default = function _default(block) {\n var blockText = (0, _toConsumableArray2[\"default\"])(block.text);\n var entities = block.entityRanges.sort(_rangeSort[\"default\"]);\n var styles = block.inlineStyleRanges.sort(_rangeSort[\"default\"]);\n var resultText = '';\n\n var _loop = function _loop(index) {\n var _char = blockText[index];\n\n if (ENTITY_MAP[_char] !== undefined) {\n var encoded = ENTITY_MAP[_char];\n var resultIndex = (0, _toConsumableArray2[\"default\"])(resultText).length;\n resultText += encoded;\n\n var updateForChar = function updateForChar(mutation) {\n return (0, _updateMutation[\"default\"])(mutation, resultIndex, _char.length, encoded.length, 0, 0);\n };\n\n entities = entities.map(updateForChar);\n styles = styles.map(updateForChar);\n } else {\n resultText += _char;\n }\n };\n\n for (var index = 0; index < blockText.length; index++) {\n _loop(index);\n }\n\n return Object.assign({}, block, {\n text: resultText,\n inlineStyleRanges: styles,\n entityRanges: entities\n });\n};\n\nexports[\"default\"] = _default;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = splitReactElement;\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _server = _interopRequireDefault(require(\"react-dom/server\"));\n\n// see http://w3c.github.io/html/syntax.html#writing-html-documents-elements\nvar VOID_TAGS = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'];\n\nfunction splitReactElement(element) {\n if (VOID_TAGS.indexOf(element.type) !== -1) {\n return _server[\"default\"].renderToStaticMarkup(element);\n }\n\n var tags = _server[\"default\"].renderToStaticMarkup(_react[\"default\"].cloneElement(element, {}, '\\r')).split('\\r');\n\n (0, _invariant[\"default\"])(tags.length > 1, \"convertToHTML: Element of type \".concat(element.type, \" must render children\"));\n (0, _invariant[\"default\"])(tags.length < 3, \"convertToHTML: Element of type \".concat(element.type, \" cannot use carriage return character\"));\n return {\n start: tags[0],\n end: tags[1]\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getElementHTML;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _server = _interopRequireDefault(require(\"react-dom/server\"));\n\nvar _splitReactElement = _interopRequireDefault(require(\"./splitReactElement\"));\n\nfunction hasChildren(element) {\n return _react[\"default\"].isValidElement(element) && _react[\"default\"].Children.count(element.props.children) > 0;\n}\n\nfunction getElementHTML(element) {\n var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (element === undefined || element === null) {\n return element;\n }\n\n if (typeof element === 'string') {\n return element;\n }\n\n if (_react[\"default\"].isValidElement(element)) {\n if (hasChildren(element)) {\n return _server[\"default\"].renderToStaticMarkup(element);\n }\n\n var tags = (0, _splitReactElement[\"default\"])(element);\n\n if (text !== null && (0, _typeof2[\"default\"])(tags) === 'object') {\n var start = tags.start,\n end = tags.end;\n return start + text + end;\n }\n\n return tags;\n }\n\n (0, _invariant[\"default\"])(Object.prototype.hasOwnProperty.call(element, 'start') && Object.prototype.hasOwnProperty.call(element, 'end'), 'convertToHTML: received conversion data without either an HTML string, ReactElement or an object with start/end tags');\n\n if (text !== null) {\n var _start = element.start,\n _end = element.end;\n return _start + text + _end;\n }\n\n return element;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _splitReactElement = _interopRequireDefault(require(\"./splitReactElement\"));\n\nvar getElementTagLength = function getElementTagLength(element) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'start';\n\n if (_react[\"default\"].isValidElement(element)) {\n var splitElement = (0, _splitReactElement[\"default\"])(element);\n\n if (typeof splitElement === 'string') {\n return 0;\n }\n\n var length = splitElement[type].length;\n\n var child = _react[\"default\"].Children.toArray(element.props.children)[0];\n\n return length + (child && _react[\"default\"].isValidElement(child) ? getElementTagLength(child, type) : 0);\n }\n\n if ((0, _typeof2[\"default\"])(element) === 'object') {\n return element[type] ? element[type].length : 0;\n }\n\n return 0;\n};\n\nvar _default = getElementTagLength;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _updateMutation = _interopRequireDefault(require(\"./util/updateMutation\"));\n\nvar _rangeSort = _interopRequireDefault(require(\"./util/rangeSort\"));\n\nvar _getElementHTML = _interopRequireDefault(require(\"./util/getElementHTML\"));\n\nvar _getElementTagLength = _interopRequireDefault(require(\"./util/getElementTagLength\"));\n\nvar converter = function converter() {\n var entity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var originalText = arguments.length > 1 ? arguments[1] : undefined;\n return originalText;\n};\n\nvar _default = function _default(block, entityMap) {\n var entityConverter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : converter;\n var resultText = (0, _toConsumableArray2[\"default\"])(block.text);\n var getEntityHTML = entityConverter;\n\n if (entityConverter.__isMiddleware) {\n getEntityHTML = entityConverter(converter);\n }\n\n if (Object.prototype.hasOwnProperty.call(block, 'entityRanges') && block.entityRanges.length > 0) {\n var entities = block.entityRanges.sort(_rangeSort[\"default\"]);\n var styles = block.inlineStyleRanges;\n\n var _loop = function _loop(index) {\n var entityRange = entities[index];\n var entity = entityMap[entityRange.key];\n var originalText = resultText.slice(entityRange.offset, entityRange.offset + entityRange.length).join('');\n var entityHTML = getEntityHTML(entity, originalText);\n var converted = (0, _toConsumableArray2[\"default\"])((0, _getElementHTML[\"default\"])(entityHTML, originalText) || originalText);\n var prefixLength = (0, _getElementTagLength[\"default\"])(entityHTML, 'start');\n var suffixLength = (0, _getElementTagLength[\"default\"])(entityHTML, 'end');\n\n var updateLaterMutation = function updateLaterMutation(mutation, mutationIndex) {\n if (mutationIndex > index || Object.prototype.hasOwnProperty.call(mutation, 'style')) {\n return (0, _updateMutation[\"default\"])(mutation, entityRange.offset, entityRange.length, converted.length, prefixLength, suffixLength);\n }\n\n return mutation;\n };\n\n var updateLaterMutations = function updateLaterMutations(mutationList) {\n return mutationList.reduce(function (acc, mutation, mutationIndex) {\n var updatedMutation = updateLaterMutation(mutation, mutationIndex);\n\n if (Array.isArray(updatedMutation)) {\n return acc.concat(updatedMutation);\n }\n\n return acc.concat([updatedMutation]);\n }, []);\n };\n\n entities = updateLaterMutations(entities);\n styles = updateLaterMutations(styles);\n resultText = [].concat((0, _toConsumableArray2[\"default\"])(resultText.slice(0, entityRange.offset)), (0, _toConsumableArray2[\"default\"])(converted), (0, _toConsumableArray2[\"default\"])(resultText.slice(entityRange.offset + entityRange.length)));\n };\n\n for (var index = 0; index < entities.length; index++) {\n _loop(index);\n }\n\n return Object.assign({}, block, {\n text: resultText.join(''),\n inlineStyleRanges: styles,\n entityRanges: entities\n });\n }\n\n return block;\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default = function _default(object) {\n return function (style) {\n if (typeof object === 'function') {\n return object(style);\n }\n\n return object[style];\n };\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default = function _default(newFn, rest) {\n return function () {\n var newResult = newFn.apply(void 0, arguments);\n\n if (newResult !== undefined && newResult !== null) {\n return newResult;\n }\n\n return rest.apply(void 0, arguments);\n };\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = defaultInlineHTML;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction defaultInlineHTML(style) {\n switch (style) {\n case 'BOLD':\n return _react[\"default\"].createElement(\"strong\", null);\n\n case 'ITALIC':\n return _react[\"default\"].createElement(\"em\", null);\n\n case 'UNDERLINE':\n return _react[\"default\"].createElement(\"u\", null);\n\n case 'CODE':\n return _react[\"default\"].createElement(\"code\", null);\n\n default:\n return {\n start: '',\n end: ''\n };\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _styleObjectFunction = _interopRequireDefault(require(\"./util/styleObjectFunction\"));\n\nvar _accumulateFunction = _interopRequireDefault(require(\"./util/accumulateFunction\"));\n\nvar _getElementHTML = _interopRequireDefault(require(\"./util/getElementHTML\"));\n\nvar _rangeSort = _interopRequireDefault(require(\"./util/rangeSort\"));\n\nvar _defaultInlineHTML = _interopRequireDefault(require(\"./default/defaultInlineHTML\"));\n\nvar subtractStyles = function subtractStyles(original, toRemove) {\n return original.filter(function (el) {\n return !toRemove.some(function (elToRemove) {\n return elToRemove.style === el.style;\n });\n });\n};\n\nvar popEndingStyles = function popEndingStyles(styleStack, endingStyles) {\n return endingStyles.reduceRight(function (stack, style) {\n var styleToRemove = stack[stack.length - 1];\n (0, _invariant[\"default\"])(styleToRemove.style === style.style, \"Style \".concat(styleToRemove.style, \" to be removed doesn't match expected \").concat(style.style));\n return stack.slice(0, -1);\n }, styleStack);\n};\n\nvar characterStyles = function characterStyles(offset, ranges) {\n return ranges.filter(function (range) {\n return offset >= range.offset && offset < range.offset + range.length;\n });\n};\n\nvar rangeIsSubset = function rangeIsSubset(firstRange, secondRange) {\n // returns true if the second range is a subset of the first\n var secondStartWithinFirst = firstRange.offset <= secondRange.offset;\n var secondEndWithinFirst = firstRange.offset + firstRange.length >= secondRange.offset + secondRange.length;\n return secondStartWithinFirst && secondEndWithinFirst;\n};\n\nvar latestStyleLast = function latestStyleLast(s1, s2) {\n // make sure longer-lasting styles are added first\n var s2endIndex = s2.offset + s2.length;\n var s1endIndex = s1.offset + s1.length;\n return s2endIndex - s1endIndex;\n};\n\nvar getStylesToReset = function getStylesToReset(remainingStyles, newStyles) {\n var i = 0;\n\n while (i < remainingStyles.length) {\n if (newStyles.every(rangeIsSubset.bind(null, remainingStyles[i]))) {\n i++;\n } else {\n return remainingStyles.slice(i);\n }\n }\n\n return [];\n};\n\nvar appendStartMarkup = function appendStartMarkup(inlineHTML, string, styleRange) {\n return string + (0, _getElementHTML[\"default\"])(inlineHTML(styleRange.style)).start;\n};\n\nvar prependEndMarkup = function prependEndMarkup(inlineHTML, string, styleRange) {\n return (0, _getElementHTML[\"default\"])(inlineHTML(styleRange.style)).end + string;\n};\n\nvar defaultCustomInlineHTML = function defaultCustomInlineHTML(next) {\n return function (style) {\n return next(style);\n };\n};\n\ndefaultCustomInlineHTML.__isMiddleware = true;\n\nvar _default = function _default(rawBlock) {\n var customInlineHTML = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultCustomInlineHTML;\n (0, _invariant[\"default\"])(rawBlock !== null && rawBlock !== undefined, 'Expected raw block to be non-null');\n var inlineHTML;\n\n if (customInlineHTML.__isMiddleware === true) {\n inlineHTML = customInlineHTML(_defaultInlineHTML[\"default\"]);\n } else {\n inlineHTML = (0, _accumulateFunction[\"default\"])((0, _styleObjectFunction[\"default\"])(customInlineHTML), (0, _styleObjectFunction[\"default\"])(_defaultInlineHTML[\"default\"]));\n }\n\n var result = '';\n var styleStack = [];\n var sortedRanges = rawBlock.inlineStyleRanges.sort(_rangeSort[\"default\"]);\n var originalTextArray = (0, _toConsumableArray2[\"default\"])(rawBlock.text);\n\n for (var i = 0; i < originalTextArray.length; i++) {\n var styles = characterStyles(i, sortedRanges);\n var endingStyles = subtractStyles(styleStack, styles);\n var newStyles = subtractStyles(styles, styleStack);\n var remainingStyles = subtractStyles(styleStack, endingStyles); // reset styles: look for any already existing styles that will need to\n // end before styles that are being added on this character. to solve this\n // close out those current tags and all nested children,\n // then open new ones nested within the new styles.\n\n var resetStyles = getStylesToReset(remainingStyles, newStyles);\n var openingStyles = resetStyles.concat(newStyles).sort(latestStyleLast);\n var openingStyleTags = openingStyles.reduce(appendStartMarkup.bind(null, inlineHTML), '');\n var endingStyleTags = endingStyles.concat(resetStyles).reduce(prependEndMarkup.bind(null, inlineHTML), '');\n result += endingStyleTags + openingStyleTags + originalTextArray[i];\n styleStack = popEndingStyles(styleStack, resetStyles.concat(endingStyles));\n styleStack = styleStack.concat(openingStyles);\n (0, _invariant[\"default\"])(styleStack.length === styles.length, \"Character \".concat(i, \": \").concat(styleStack.length - styles.length, \" styles left on stack that should no longer be there\"));\n }\n\n result = styleStack.reduceRight(function (res, openStyle) {\n return res + (0, _getElementHTML[\"default\"])(inlineHTML(openStyle.style)).end;\n }, result);\n return result;\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _default = function _default(typeObject) {\n return function (block) {\n if (typeof typeObject === 'function') {\n // handle case where typeObject is already a function\n return typeObject(block);\n }\n\n return typeObject[block.type];\n };\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getBlockTags;\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _server = _interopRequireDefault(require(\"react-dom/server\"));\n\nvar _splitReactElement = _interopRequireDefault(require(\"./splitReactElement\"));\n\nfunction hasChildren(element) {\n return _react[\"default\"].isValidElement(element) && _react[\"default\"].Children.count(element.props.children) > 0;\n}\n\nfunction getBlockTags(blockHTML) {\n (0, _invariant[\"default\"])(blockHTML !== null && blockHTML !== undefined, 'Expected block HTML value to be non-null');\n\n if (typeof blockHTML === 'string') {\n return blockHTML;\n }\n\n if (_react[\"default\"].isValidElement(blockHTML)) {\n if (hasChildren(blockHTML)) {\n return _server[\"default\"].renderToStaticMarkup(blockHTML);\n }\n\n return (0, _splitReactElement[\"default\"])(blockHTML);\n }\n\n if (Object.prototype.hasOwnProperty.call(blockHTML, 'element') && _react[\"default\"].isValidElement(blockHTML.element)) {\n return Object.assign({}, blockHTML, (0, _splitReactElement[\"default\"])(blockHTML.element));\n }\n\n (0, _invariant[\"default\"])(Object.prototype.hasOwnProperty.call(blockHTML, 'start') && Object.prototype.hasOwnProperty.call(blockHTML, 'end'), 'convertToHTML: received block information without either a ReactElement or an object with start/end tags');\n return blockHTML;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getNestedBlockTags;\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _splitReactElement2 = _interopRequireDefault(require(\"./splitReactElement\"));\n\nfunction getNestedBlockTags(blockHTML) {\n (0, _invariant[\"default\"])(blockHTML !== null && blockHTML !== undefined, 'Expected block HTML value to be non-null');\n\n if (_react[\"default\"].isValidElement(blockHTML.nest)) {\n var _splitReactElement = (0, _splitReactElement2[\"default\"])(blockHTML.nest),\n start = _splitReactElement.start,\n end = _splitReactElement.end;\n\n return Object.assign({}, blockHTML, {\n nestStart: start,\n nestEnd: end\n });\n }\n\n (0, _invariant[\"default\"])(Object.prototype.hasOwnProperty.call(blockHTML, 'nestStart') && Object.prototype.hasOwnProperty.call(blockHTML, 'nestEnd'), 'convertToHTML: received block information without either a ReactElement or an object with start/end tags');\n return blockHTML;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _default = {\n unstyled: _react[\"default\"].createElement(\"p\", null),\n paragraph: _react[\"default\"].createElement(\"p\", null),\n 'header-one': _react[\"default\"].createElement(\"h1\", null),\n 'header-two': _react[\"default\"].createElement(\"h2\", null),\n 'header-three': _react[\"default\"].createElement(\"h3\", null),\n 'header-four': _react[\"default\"].createElement(\"h4\", null),\n 'header-five': _react[\"default\"].createElement(\"h5\", null),\n 'header-six': _react[\"default\"].createElement(\"h6\", null),\n blockquote: _react[\"default\"].createElement(\"blockquote\", null),\n 'unordered-list-item': {\n element: _react[\"default\"].createElement(\"li\", null),\n nest: _react[\"default\"].createElement(\"ul\", null)\n },\n 'ordered-list-item': {\n element: _react[\"default\"].createElement(\"li\", null),\n nest: _react[\"default\"].createElement(\"ol\", null)\n },\n media: _react[\"default\"].createElement(\"figure\", null),\n atomic: _react[\"default\"].createElement(\"figure\", null)\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _server = _interopRequireDefault(require(\"react-dom/server\"));\n\nvar _draftJs = require(\"draft-js\");\n\nvar _encodeBlock = _interopRequireDefault(require(\"./encodeBlock\"));\n\nvar _blockEntities = _interopRequireDefault(require(\"./blockEntities\"));\n\nvar _blockInlineStyles = _interopRequireDefault(require(\"./blockInlineStyles\"));\n\nvar _accumulateFunction = _interopRequireDefault(require(\"./util/accumulateFunction\"));\n\nvar _blockTypeObjectFunction = _interopRequireDefault(require(\"./util/blockTypeObjectFunction\"));\n\nvar _getBlockTags = _interopRequireDefault(require(\"./util/getBlockTags\"));\n\nvar _getNestedBlockTags = _interopRequireDefault(require(\"./util/getNestedBlockTags\"));\n\nvar _defaultBlockHTML = _interopRequireDefault(require(\"./default/defaultBlockHTML\"));\n\n// import Immutable from 'immutable'; // eslint-disable-line no-unused-vars\nvar defaultEntityToHTML = function defaultEntityToHTML(entity, originalText) {\n return originalText;\n};\n\nvar convertToHTML = function convertToHTML(_ref) {\n var _ref$styleToHTML = _ref.styleToHTML,\n styleToHTML = _ref$styleToHTML === void 0 ? {} : _ref$styleToHTML,\n _ref$blockToHTML = _ref.blockToHTML,\n blockToHTML = _ref$blockToHTML === void 0 ? {} : _ref$blockToHTML,\n _ref$entityToHTML = _ref.entityToHTML,\n entityToHTML = _ref$entityToHTML === void 0 ? defaultEntityToHTML : _ref$entityToHTML;\n return function (contentState) {\n (0, _invariant[\"default\"])(contentState !== null && contentState !== undefined, 'Expected contentState to be non-null');\n var getBlockHTML;\n\n if (blockToHTML.__isMiddleware === true) {\n getBlockHTML = blockToHTML((0, _blockTypeObjectFunction[\"default\"])(_defaultBlockHTML[\"default\"]));\n } else {\n getBlockHTML = (0, _accumulateFunction[\"default\"])((0, _blockTypeObjectFunction[\"default\"])(blockToHTML), (0, _blockTypeObjectFunction[\"default\"])(_defaultBlockHTML[\"default\"]));\n }\n\n var rawState = (0, _draftJs.convertToRaw)(contentState);\n var listStack = [];\n var result = rawState.blocks.map(function (block) {\n var type = block.type,\n depth = block.depth;\n var closeNestTags = '';\n var openNestTags = '';\n var blockHTMLResult = getBlockHTML(block);\n\n if (!blockHTMLResult) {\n throw new Error(\"convertToHTML: missing HTML definition for block with type \".concat(block.type));\n }\n\n if (!blockHTMLResult.nest) {\n // this block can't be nested, so reset all nesting if necessary\n closeNestTags = listStack.reduceRight(function (string, nestedBlock) {\n return string + (0, _getNestedBlockTags[\"default\"])(getBlockHTML(nestedBlock)).nestEnd;\n }, '');\n listStack = [];\n } else {\n while (depth + 1 !== listStack.length || type !== listStack[depth].type) {\n if (depth + 1 === listStack.length) {\n // depth is right but doesn't match type\n var blockToClose = listStack[depth];\n closeNestTags += (0, _getNestedBlockTags[\"default\"])(getBlockHTML(blockToClose)).nestEnd;\n openNestTags += (0, _getNestedBlockTags[\"default\"])(getBlockHTML(block)).nestStart;\n listStack[depth] = block;\n } else if (depth + 1 < listStack.length) {\n var _blockToClose = listStack[listStack.length - 1];\n closeNestTags += (0, _getNestedBlockTags[\"default\"])(getBlockHTML(_blockToClose)).nestEnd;\n listStack = listStack.slice(0, -1);\n } else {\n openNestTags += (0, _getNestedBlockTags[\"default\"])(getBlockHTML(block)).nestStart;\n listStack.push(block);\n }\n }\n }\n\n var innerHTML = (0, _blockInlineStyles[\"default\"])((0, _blockEntities[\"default\"])((0, _encodeBlock[\"default\"])(block), rawState.entityMap, entityToHTML), styleToHTML);\n var blockHTML = (0, _getBlockTags[\"default\"])(getBlockHTML(block));\n var html;\n\n if (typeof blockHTML === 'string') {\n html = blockHTML;\n } else {\n html = blockHTML.start + innerHTML + blockHTML.end;\n }\n\n if (innerHTML.length === 0 && Object.prototype.hasOwnProperty.call(blockHTML, 'empty')) {\n if (_react[\"default\"].isValidElement(blockHTML.empty)) {\n html = _server[\"default\"].renderToStaticMarkup(blockHTML.empty);\n } else {\n html = blockHTML.empty;\n }\n }\n\n return closeNestTags + openNestTags + html;\n }).join('');\n result = listStack.reduce(function (res, nestBlock) {\n return res + (0, _getNestedBlockTags[\"default\"])(getBlockHTML(nestBlock)).nestEnd;\n }, result);\n return result;\n };\n};\n\nvar _default = function _default() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && Object.prototype.hasOwnProperty.call(args[0], '_map') && args[0].getBlockMap != null) {\n // skip higher-order function and use defaults\n return convertToHTML({}).apply(void 0, args);\n }\n\n return convertToHTML.apply(void 0, args);\n};\n\nexports[\"default\"] = _default;","/**\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parseHTML;\n\nvar fallback = function fallback(html) {\n var doc = document.implementation.createHTMLDocument('');\n doc.documentElement.innerHTML = html;\n return doc;\n};\n\nfunction parseHTML(html) {\n var doc;\n\n if (typeof DOMParser !== 'undefined') {\n var parser = new DOMParser();\n doc = parser.parseFromString(html, 'text/html');\n\n if (doc === null || doc.body === null) {\n doc = fallback(html);\n }\n } else {\n doc = fallback(html);\n }\n\n return doc.body;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _immutable = require(\"immutable\");\n\nvar _draftJs = require(\"draft-js\");\n\nvar _parseHTML = _interopRequireDefault(require(\"./util/parseHTML\"));\n\nvar _rangeSort = _interopRequireDefault(require(\"./util/rangeSort\"));\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * Copyright (c) 2013-present, 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 /src directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\nvar NBSP = '&nbsp;';\nvar SPACE = ' '; // Arbitrary max indent\n\nvar MAX_DEPTH = 4; // used for replacing characters in HTML\n\n/* eslint-disable no-control-regex */\n\nvar REGEX_CR = new RegExp('\\r', 'g');\nvar REGEX_LF = new RegExp('\\n', 'g');\nvar REGEX_NBSP = new RegExp(NBSP, 'g');\nvar REGEX_BLOCK_DELIMITER = new RegExp('\\r', 'g');\n/* eslint-enable no-control-regex */\n// Block tag flow is different because LIs do not have\n// a deterministic style ;_;\n\nvar blockTags = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'blockquote', 'pre'];\nvar inlineTags = {\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};\n\nvar handleMiddleware = function handleMiddleware(maybeMiddleware, base) {\n if (maybeMiddleware && maybeMiddleware.__isMiddleware === true) {\n return maybeMiddleware(base);\n }\n\n return maybeMiddleware;\n};\n\nvar defaultHTMLToBlock = function defaultHTMLToBlock(nodeName, node, lastList) {\n return undefined;\n};\n\nvar defaultHTMLToStyle = function defaultHTMLToStyle(nodeName, node, currentStyle) {\n return currentStyle;\n};\n\nvar defaultHTMLToEntity = function defaultHTMLToEntity(nodeName, node) {\n return undefined;\n};\n\nvar defaultTextToEntity = function defaultTextToEntity(text) {\n return [];\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\nvar sanitizeDraftText = function sanitizeDraftText(input) {\n return input.replace(REGEX_BLOCK_DELIMITER, '');\n};\n\nfunction getEmptyChunk() {\n return {\n text: '',\n inlines: [],\n entities: [],\n blocks: []\n };\n}\n\nfunction getWhitespaceChunk(inEntity) {\n var entities = new Array(1);\n\n if (inEntity) {\n entities[0] = inEntity;\n }\n\n return {\n text: SPACE,\n inlines: [(0, _immutable.OrderedSet)()],\n entities: entities,\n blocks: []\n };\n}\n\nfunction getSoftNewlineChunk(block, depth) {\n var flat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : (0, _immutable.Map)();\n\n if (flat === true) {\n return {\n text: '\\r',\n inlines: [(0, _immutable.OrderedSet)()],\n entities: new Array(1),\n blocks: [{\n type: block,\n data: data,\n depth: Math.max(0, Math.min(MAX_DEPTH, depth))\n }],\n isNewline: true\n };\n }\n\n return {\n text: '\\n',\n inlines: [(0, _immutable.OrderedSet)()],\n entities: new Array(1),\n blocks: []\n };\n}\n\nfunction getBlockDividerChunk(block, depth) {\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _immutable.Map)();\n return {\n text: '\\r',\n inlines: [(0, _immutable.OrderedSet)()],\n entities: new Array(1),\n blocks: [{\n type: block,\n data: data,\n depth: Math.max(0, Math.min(MAX_DEPTH, depth))\n }]\n };\n}\n\nfunction getBlockTypeForTag(tag, lastList) {\n switch (tag) {\n case 'h1':\n return 'header-one';\n\n case 'h2':\n return 'header-two';\n\n case 'h3':\n return 'header-three';\n\n case 'h4':\n return 'header-four';\n\n case 'h5':\n return 'header-five';\n\n case 'h6':\n return 'header-six';\n\n case 'li':\n if (lastList === 'ol') {\n return 'ordered-list-item';\n }\n\n return 'unordered-list-item';\n\n case 'blockquote':\n return 'blockquote';\n\n case 'pre':\n return 'code-block';\n\n case 'div':\n case 'p':\n return 'unstyled';\n\n default:\n return null;\n }\n}\n\nfunction baseCheckBlockType(nodeName, node, lastList) {\n return getBlockTypeForTag(nodeName, lastList);\n}\n\nfunction processInlineTag(tag, node, currentStyle) {\n var styleToCheck = inlineTags[tag];\n\n if (styleToCheck) {\n currentStyle = currentStyle.add(styleToCheck).toOrderedSet();\n } else if (node instanceof HTMLElement) {\n var htmlElement = node;\n currentStyle = currentStyle.withMutations(function (style) {\n if (htmlElement.style.fontWeight === 'bold') {\n style.add('BOLD');\n }\n\n if (htmlElement.style.fontStyle === 'italic') {\n style.add('ITALIC');\n }\n\n if (htmlElement.style.textDecoration === 'underline') {\n style.add('UNDERLINE');\n }\n\n if (htmlElement.style.textDecoration === 'line-through') {\n style.add('STRIKETHROUGH');\n }\n }).toOrderedSet();\n }\n\n return currentStyle;\n}\n\nfunction baseProcessInlineTag(tag, node) {\n var inlineStyles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _immutable.OrderedSet)();\n return processInlineTag(tag, node, inlineStyles);\n}\n\nfunction joinChunks(A, B) {\n var flat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // Sometimes two blocks will touch in the DOM and we need to strip the\n // extra delimiter to preserve niceness.\n var firstInB = B.text.slice(0, 1);\n var lastInA = A.text.slice(-1);\n var adjacentDividers = lastInA === '\\r' && firstInB === '\\r';\n var isJoiningBlocks = A.text !== '\\r' && B.text !== '\\r'; // when joining two full blocks like this we want to pop one divider\n\n var addingNewlineToEmptyBlock = A.text === '\\r' && !A.isNewline && B.isNewline; // when joining a newline to an empty block we want to remove the newline\n\n if (adjacentDividers && (isJoiningBlocks || addingNewlineToEmptyBlock)) {\n A.text = A.text.slice(0, -1);\n A.inlines.pop();\n A.entities.pop();\n A.blocks.pop();\n } // Kill whitespace after blocks if flat mode is on\n\n\n if (A.text.slice(-1) === '\\r' && flat === true) {\n if (B.text === SPACE || B.text === '\\n') {\n return A;\n } else if (firstInB === SPACE || firstInB === '\\n') {\n B.text = B.text.slice(1);\n B.inlines.shift();\n B.entities.shift();\n }\n }\n\n var isNewline = A.text.length === 0 && B.isNewline;\n return {\n text: A.text + B.text,\n inlines: A.inlines.concat(B.inlines),\n entities: A.entities.concat(B.entities),\n blocks: A.blocks.concat(B.blocks),\n isNewline: isNewline\n };\n}\n/*\n * Check to see if we have anything like <p> <blockquote> <h1>... to create\n * block tags from. If we do, we can use those and ignore <div> tags. If we\n * don't, we can treat <div> tags as meaningful (unstyled) blocks.\n */\n\n\nfunction containsSemanticBlockMarkup(html) {\n return blockTags.some(function (tag) {\n return html.indexOf(\"<\".concat(tag)) !== -1;\n });\n}\n\nfunction genFragment(node, inlineStyle, lastList, inBlock, fragmentBlockTags, depth, processCustomInlineStyles, checkEntityNode, checkEntityText, checkBlockType, createEntity, getEntity, mergeEntityData, replaceEntityData, options, inEntity) {\n var nodeName = node.nodeName.toLowerCase();\n var newBlock = false;\n var nextBlockType = 'unstyled'; // Base Case\n\n if (nodeName === '#text') {\n var text = node.textContent;\n\n if (text.trim() === '' && inBlock === null) {\n return getEmptyChunk();\n }\n\n if (text.trim() === '' && inBlock !== 'code-block') {\n return getWhitespaceChunk(inEntity);\n }\n\n if (inBlock !== 'code-block') {\n // Can't use empty string because MSWord\n text = text.replace(REGEX_LF, SPACE);\n }\n\n var entities = Array(text.length).fill(inEntity);\n var offsetChange = 0;\n var textEntities = checkEntityText(text, createEntity, getEntity, mergeEntityData, replaceEntityData).sort(_rangeSort[\"default\"]);\n textEntities.forEach(function (_ref) {\n var entity = _ref.entity,\n offset = _ref.offset,\n length = _ref.length,\n result = _ref.result;\n var adjustedOffset = offset + offsetChange;\n\n if (result === null || result === undefined) {\n result = text.substr(adjustedOffset, length);\n }\n\n var textArray = text.split('');\n textArray.splice.bind(textArray, adjustedOffset, length).apply(textArray, result.split(''));\n text = textArray.join('');\n entities.splice.bind(entities, adjustedOffset, length).apply(entities, Array(result.length).fill(entity));\n offsetChange += result.length - length;\n });\n return {\n text: text,\n inlines: Array(text.length).fill(inlineStyle),\n entities: entities,\n blocks: []\n };\n } // BR tags\n\n\n if (nodeName === 'br') {\n var _blockType = inBlock;\n\n if (_blockType === null) {\n // BR tag is at top level, treat it as an unstyled block\n return getSoftNewlineChunk('unstyled', depth, true);\n }\n\n return getSoftNewlineChunk(_blockType || 'unstyled', depth, options.flat);\n }\n\n var chunk = getEmptyChunk();\n var newChunk = null; // Inline tags\n\n inlineStyle = processInlineTag(nodeName, node, inlineStyle);\n inlineStyle = processCustomInlineStyles(nodeName, node, inlineStyle); // Handle lists\n\n if (nodeName === 'ul' || nodeName === 'ol') {\n if (lastList) {\n depth += 1;\n }\n\n lastList = nodeName;\n inBlock = null;\n } // Block Tags\n\n\n var blockInfo = checkBlockType(nodeName, node, lastList, inBlock);\n var blockType;\n var blockDataMap;\n\n if (blockInfo === false) {\n return getEmptyChunk();\n }\n\n blockInfo = blockInfo || {};\n\n if (typeof blockInfo === 'string') {\n blockType = blockInfo;\n blockDataMap = (0, _immutable.Map)();\n } else {\n blockType = typeof blockInfo === 'string' ? blockInfo : blockInfo.type;\n blockDataMap = blockInfo.data ? (0, _immutable.Map)(blockInfo.data) : (0, _immutable.Map)();\n }\n\n if (!inBlock && (fragmentBlockTags.indexOf(nodeName) !== -1 || blockType)) {\n chunk = getBlockDividerChunk(blockType || getBlockTypeForTag(nodeName, lastList), depth, blockDataMap);\n inBlock = blockType || getBlockTypeForTag(nodeName, lastList);\n newBlock = true;\n } else if (lastList && (inBlock === 'ordered-list-item' || inBlock === 'unordered-list-item') && nodeName === 'li') {\n var listItemBlockType = getBlockTypeForTag(nodeName, lastList);\n chunk = getBlockDividerChunk(listItemBlockType, depth);\n inBlock = listItemBlockType;\n newBlock = true;\n nextBlockType = lastList === 'ul' ? 'unordered-list-item' : 'ordered-list-item';\n } else if (inBlock && inBlock !== 'atomic' && blockType === 'atomic') {\n inBlock = blockType;\n newBlock = true;\n chunk = getSoftNewlineChunk(blockType, depth, true, // atomic blocks within non-atomic blocks must always be split out\n blockDataMap);\n } // Recurse through children\n\n\n var child = node.firstChild; // hack to allow conversion of atomic blocks from HTML (e.g. <figure><img\n // src=\"...\" /></figure>). since metadata must be stored on an entity text\n // must exist for the entity to apply to. the way chunks are joined strips\n // whitespace at the end so it cannot be a space character.\n\n if (child == null && inEntity && (blockType === 'atomic' || inBlock === 'atomic')) {\n child = document.createTextNode('a');\n }\n\n if (child != null) {\n nodeName = child.nodeName.toLowerCase();\n }\n\n var entityId = null;\n\n while (child) {\n entityId = checkEntityNode(nodeName, child, createEntity, getEntity, mergeEntityData, replaceEntityData);\n newChunk = genFragment(child, inlineStyle, lastList, inBlock, fragmentBlockTags, depth, processCustomInlineStyles, checkEntityNode, checkEntityText, checkBlockType, createEntity, getEntity, mergeEntityData, replaceEntityData, options, entityId || inEntity);\n chunk = joinChunks(chunk, newChunk, options.flat);\n var sibling = child.nextSibling; // Put in a newline to break up blocks inside blocks\n\n if (sibling && fragmentBlockTags.indexOf(nodeName) >= 0 && inBlock) {\n var newBlockInfo = checkBlockType(nodeName, child, lastList, inBlock);\n var newBlockType = void 0;\n var newBlockData = void 0;\n\n if (newBlockInfo !== false) {\n newBlockInfo = newBlockInfo || {};\n\n if (typeof newBlockInfo === 'string') {\n newBlockType = newBlockInfo;\n newBlockData = (0, _immutable.Map)();\n } else {\n newBlockType = newBlockInfo.type || getBlockTypeForTag(nodeName, lastList);\n newBlockData = newBlockInfo.data ? (0, _immutable.Map)(newBlockInfo.data) : (0, _immutable.Map)();\n }\n\n chunk = joinChunks(chunk, getSoftNewlineChunk(newBlockType, depth, options.flat, newBlockData), options.flat);\n }\n }\n\n if (sibling) {\n nodeName = sibling.nodeName.toLowerCase();\n }\n\n child = sibling;\n }\n\n if (newBlock) {\n chunk = joinChunks(chunk, getBlockDividerChunk(nextBlockType, depth, (0, _immutable.Map)()), options.flat);\n }\n\n return chunk;\n}\n\nfunction getChunkForHTML(html, processCustomInlineStyles, checkEntityNode, checkEntityText, checkBlockType, createEntity, getEntity, mergeEntityData, replaceEntityData, options, DOMBuilder) {\n html = html.trim().replace(REGEX_CR, '').replace(REGEX_NBSP, SPACE);\n var safeBody = DOMBuilder(html);\n\n if (!safeBody) {\n return null;\n } // Sometimes we aren't dealing with content that contains nice semantic\n // tags. In this case, use divs to separate everything out into paragraphs\n // and hope for the best.\n\n\n var workingBlocks = containsSemanticBlockMarkup(html) ? blockTags.concat(['div']) : ['div']; // Start with -1 block depth to offset the fact that we are passing in a fake\n // UL block to sta rt with.\n\n var chunk = genFragment(safeBody, (0, _immutable.OrderedSet)(), 'ul', null, workingBlocks, -1, processCustomInlineStyles, checkEntityNode, checkEntityText, checkBlockType, createEntity, getEntity, mergeEntityData, replaceEntityData, options); // join with previous block to prevent weirdness on paste\n\n if (chunk.text.indexOf('\\r') === 0) {\n chunk = {\n text: chunk.text.slice(1),\n inlines: chunk.inlines.slice(1),\n entities: chunk.entities.slice(1),\n blocks: chunk.blocks\n };\n } // Kill block delimiter at the end\n\n\n if (chunk.text.slice(-1) === '\\r') {\n chunk.text = chunk.text.slice(0, -1);\n chunk.inlines = chunk.inlines.slice(0, -1);\n chunk.entities = chunk.entities.slice(0, -1);\n chunk.blocks.pop();\n } // If we saw no block tags, put an unstyled one in\n\n\n if (chunk.blocks.length === 0) {\n chunk.blocks.push({\n type: 'unstyled',\n data: (0, _immutable.Map)(),\n depth: 0\n });\n } // Sometimes we start with text that isn't in a block, which is then\n // followed by blocks. Need to fix up the blocks to add in\n // an unstyled block for this content\n\n\n if (chunk.text.split('\\r').length === chunk.blocks.length + 1) {\n chunk.blocks.unshift({\n type: 'unstyled',\n data: (0, _immutable.Map)(),\n depth: 0\n });\n }\n\n return chunk;\n}\n\nfunction convertFromHTMLtoContentBlocks(html, processCustomInlineStyles, checkEntityNode, checkEntityText, checkBlockType, createEntity, getEntity, mergeEntityData, replaceEntityData, options, DOMBuilder, generateKey) {\n // Be ABSOLUTELY SURE that the dom builder you pass hare 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 var chunk = getChunkForHTML(html, processCustomInlineStyles, checkEntityNode, checkEntityText, checkBlockType, createEntity, getEntity, mergeEntityData, replaceEntityData, options, DOMBuilder, generateKey);\n\n if (chunk == null) {\n return [];\n }\n\n var start = 0;\n return chunk.text.split('\\r').map(function (textBlock, blockIndex) {\n // Make absolutely certain that our text is acceptable.\n textBlock = sanitizeDraftText(textBlock);\n var end = start + textBlock.length;\n var inlines = nullthrows(chunk).inlines.slice(start, end);\n var entities = nullthrows(chunk).entities.slice(start, end);\n var characterList = (0, _immutable.List)(inlines.map(function (style, entityIndex) {\n var data = {\n style: style,\n entity: null\n };\n\n if (entities[entityIndex]) {\n data.entity = entities[entityIndex];\n }\n\n return _draftJs.CharacterMetadata.create(data);\n }));\n start = end + 1;\n return new _draftJs.ContentBlock({\n key: generateKey(),\n type: nullthrows(chunk).blocks[blockIndex].type,\n data: nullthrows(chunk).blocks[blockIndex].data,\n depth: nullthrows(chunk).blocks[blockIndex].depth,\n text: textBlock,\n characterList: characterList\n });\n });\n}\n\nvar convertFromHTML = function convertFromHTML(_ref2) {\n var _ref2$htmlToStyle = _ref2.htmlToStyle,\n htmlToStyle = _ref2$htmlToStyle === void 0 ? defaultHTMLToStyle : _ref2$htmlToStyle,\n _ref2$htmlToEntity = _ref2.htmlToEntity,\n htmlToEntity = _ref2$htmlToEntity === void 0 ? defaultHTMLToEntity : _ref2$htmlToEntity,\n _ref2$textToEntity = _ref2.textToEntity,\n textToEntity = _ref2$textToEntity === void 0 ? defaultTextToEntity : _ref2$textToEntity,\n _ref2$htmlToBlock = _ref2.htmlToBlock,\n htmlToBlock = _ref2$htmlToBlock === void 0 ? defaultHTMLToBlock : _ref2$htmlToBlock;\n return function (html) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n flat: false\n };\n var DOMBuilder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _parseHTML[\"default\"];\n var generateKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _draftJs.genKey;\n\n var contentState = _draftJs.ContentState.createFromText('');\n\n var createEntityWithContentState = function createEntityWithContentState() {\n if (contentState.createEntity) {\n var _contentState;\n\n contentState = (_contentState = contentState).createEntity.apply(_contentState, arguments);\n return contentState.getLastCreatedEntityKey();\n }\n\n return _draftJs.Entity.create.apply(_draftJs.Entity, arguments);\n };\n\n var getEntityWithContentState = function getEntityWithContentState() {\n if (contentState.getEntity) {\n var _contentState2;\n\n return (_contentState2 = contentState).getEntity.apply(_contentState2, arguments);\n }\n\n return _draftJs.Entity.get.apply(_draftJs.Entity, arguments);\n };\n\n var mergeEntityDataWithContentState = function mergeEntityDataWithContentState() {\n if (contentState.mergeEntityData) {\n var _contentState3;\n\n contentState = (_contentState3 = contentState).mergeEntityData.apply(_contentState3, arguments);\n return;\n }\n\n _draftJs.Entity.mergeData.apply(_draftJs.Entity, arguments);\n };\n\n var replaceEntityDataWithContentState = function replaceEntityDataWithContentState() {\n if (contentState.replaceEntityData) {\n var _contentState4;\n\n contentState = (_contentState4 = contentState).replaceEntityData.apply(_contentState4, arguments);\n return;\n }\n\n _draftJs.Entity.replaceData.apply(_draftJs.Entity, arguments);\n };\n\n var contentBlocks = convertFromHTMLtoContentBlocks(html, handleMiddleware(htmlToStyle, baseProcessInlineTag), handleMiddleware(htmlToEntity, defaultHTMLToEntity), handleMiddleware(textToEntity, defaultTextToEntity), handleMiddleware(htmlToBlock, baseCheckBlockType), createEntityWithContentState, getEntityWithContentState, mergeEntityDataWithContentState, replaceEntityDataWithContentState, options, DOMBuilder, generateKey);\n\n var blockMap = _draftJs.BlockMapBuilder.createFromArray(contentBlocks);\n\n var firstBlockKey = contentBlocks[0].getKey();\n return contentState.merge({\n blockMap: blockMap,\n selectionBefore: _draftJs.SelectionState.createEmpty(firstBlockKey),\n selectionAfter: _draftJs.SelectionState.createEmpty(firstBlockKey)\n });\n };\n};\n\nvar _default = function _default() {\n if (arguments.length >= 1 && typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n return convertFromHTML({}).apply(void 0, arguments);\n }\n\n return convertFromHTML.apply(void 0, arguments);\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"convertToHTML\", {\n enumerable: true,\n get: function get() {\n return _convertToHTML[\"default\"];\n }\n});\nObject.defineProperty(exports, \"convertFromHTML\", {\n enumerable: true,\n get: function get() {\n return _convertFromHTML[\"default\"];\n }\n});\nObject.defineProperty(exports, \"parseHTML\", {\n enumerable: true,\n get: function get() {\n return _parseHTML[\"default\"];\n }\n});\n\nvar _convertToHTML = _interopRequireDefault(require(\"./convertToHTML\"));\n\nvar _convertFromHTML = _interopRequireDefault(require(\"./convertFromHTML\"));\n\nvar _parseHTML = _interopRequireDefault(require(\"./util/parseHTML\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFromHTMLConfig = exports.getToHTMLConfig = exports.blocks = exports.getHexColor = exports.defaultFontFamilies = exports.namedColors = undefined;\n\nvar _extends = Object.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; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar namedColors = exports.namedColors = {\n \"aliceblue\": \"#f0f8ff\",\n \"antiquewhite\": \"#faebd7\",\n \"aqua\": \"#00ffff\",\n \"aquamarine\": \"#7fffd4\",\n \"azure\": \"#f0ffff\",\n \"beige\": \"#f5f5dc\",\n \"bisque\": \"#ffe4c4\",\n \"black\": \"#000000\",\n \"blanchedalmond\": \"#ffebcd\",\n \"blue\": \"#0000ff\",\n \"blueviolet\": \"#8a2be2\",\n \"brown\": \"#a52a2a\",\n \"burlywood\": \"#deb887\",\n \"cadetblue\": \"#5f9ea0\",\n \"chartreuse\": \"#7fff00\",\n \"chocolate\": \"#d2691e\",\n \"coral\": \"#ff7f50\",\n \"cornflowerblue\": \"#6495ed\",\n \"cornsilk\": \"#fff8dc\",\n \"crimson\": \"#dc143c\",\n \"cyan\": \"#00ffff\",\n \"darkblue\": \"#00008b\",\n \"darkcyan\": \"#008b8b\",\n \"darkgoldenrod\": \"#b8860b\",\n \"darkgray\": \"#a9a9a9\",\n \"darkgreen\": \"#006400\",\n \"darkkhaki\": \"#bdb76b\",\n \"darkmagenta\": \"#8b008b\",\n \"darkolivegreen\": \"#556b2f\",\n \"darkorange\": \"#ff8c00\",\n \"darkorchid\": \"#9932cc\",\n \"darkred\": \"#8b0000\",\n \"darksalmon\": \"#e9967a\",\n \"darkseagreen\": \"#8fbc8f\",\n \"darkslateblue\": \"#483d8b\",\n \"darkslategray\": \"#2f4f4f\",\n \"darkturquoise\": \"#00ced1\",\n \"darkviolet\": \"#9400d3\",\n \"deeppink\": \"#ff1493\",\n \"deepskyblue\": \"#00bfff\",\n \"dimgray\": \"#696969\",\n \"dodgerblue\": \"#1e90ff\",\n \"firebrick\": \"#b22222\",\n \"floralwhite\": \"#fffaf0\",\n \"forestgreen\": \"#228b22\",\n \"fuchsia\": \"#ff00ff\",\n \"gainsboro\": \"#dcdcdc\",\n \"ghostwhite\": \"#f8f8ff\",\n \"gold\": \"#ffd700\",\n \"goldenrod\": \"#daa520\",\n \"gray\": \"#808080\",\n \"green\": \"#008000\",\n \"greenyellow\": \"#adff2f\",\n \"honeydew\": \"#f0fff0\",\n \"hotpink\": \"#ff69b4\",\n \"indianred \": \"#cd5c5c\",\n \"indigo\": \"#4b0082\",\n \"ivory\": \"#fffff0\",\n \"khaki\": \"#f0e68c\",\n \"lavender\": \"#e6e6fa\",\n \"lavenderblush\": \"#fff0f5\",\n \"lawngreen\": \"#7cfc00\",\n \"lemonchiffon\": \"#fffacd\",\n \"lightblue\": \"#add8e6\",\n \"lightcoral\": \"#f08080\",\n \"lightcyan\": \"#e0ffff\",\n \"lightgoldenrodyellow\": \"#fafad2\",\n \"lightgrey\": \"#d3d3d3\",\n \"lightgreen\": \"#90ee90\",\n \"lightpink\": \"#ffb6c1\",\n \"lightsalmon\": \"#ffa07a\",\n \"lightseagreen\": \"#20b2aa\",\n \"lightskyblue\": \"#87cefa\",\n \"lightslategray\": \"#778899\",\n \"lightsteelblue\": \"#b0c4de\",\n \"lightyellow\": \"#ffffe0\",\n \"lime\": \"#00ff00\",\n \"limegreen\": \"#32cd32\",\n \"linen\": \"#faf0e6\",\n \"magenta\": \"#ff00ff\",\n \"maroon\": \"#800000\",\n \"mediumaquamarine\": \"#66cdaa\",\n \"mediumblue\": \"#0000cd\",\n \"mediumorchid\": \"#ba55d3\",\n \"mediumpurple\": \"#9370d8\",\n \"mediumseagreen\": \"#3cb371\",\n \"mediumslateblue\": \"#7b68ee\",\n \"mediumspringgreen\": \"#00fa9a\",\n \"mediumturquoise\": \"#48d1cc\",\n \"mediumvioletred\": \"#c71585\",\n \"midnightblue\": \"#191970\",\n \"mintcream\": \"#f5fffa\",\n \"mistyrose\": \"#ffe4e1\",\n \"moccasin\": \"#ffe4b5\",\n \"navajowhite\": \"#ffdead\",\n \"navy\": \"#000080\",\n \"oldlace\": \"#fdf5e6\",\n \"olive\": \"#808000\",\n \"olivedrab\": \"#6b8e23\",\n \"orange\": \"#ffa500\",\n \"orangered\": \"#ff4500\",\n \"orchid\": \"#da70d6\",\n \"palegoldenrod\": \"#eee8aa\",\n \"palegreen\": \"#98fb98\",\n \"paleturquoise\": \"#afeeee\",\n \"palevioletred\": \"#d87093\",\n \"papayawhip\": \"#ffefd5\",\n \"peachpuff\": \"#ffdab9\",\n \"peru\": \"#cd853f\",\n \"pink\": \"#ffc0cb\",\n \"plum\": \"#dda0dd\",\n \"powderblue\": \"#b0e0e6\",\n \"purple\": \"#800080\",\n \"rebeccapurple\": \"#663399\",\n \"red\": \"#ff0000\",\n \"rosybrown\": \"#bc8f8f\",\n \"royalblue\": \"#4169e1\",\n \"saddlebrown\": \"#8b4513\",\n \"salmon\": \"#fa8072\",\n \"sandybrown\": \"#f4a460\",\n \"seagreen\": \"#2e8b57\",\n \"seashell\": \"#fff5ee\",\n \"sienna\": \"#a0522d\",\n \"silver\": \"#c0c0c0\",\n \"skyblue\": \"#87ceeb\",\n \"slateblue\": \"#6a5acd\",\n \"slategray\": \"#708090\",\n \"snow\": \"#fffafa\",\n \"springgreen\": \"#00ff7f\",\n \"steelblue\": \"#4682b4\",\n \"tan\": \"#d2b48c\",\n \"teal\": \"#008080\",\n \"thistle\": \"#d8bfd8\",\n \"tomato\": \"#ff6347\",\n \"turquoise\": \"#40e0d0\",\n \"violet\": \"#ee82ee\",\n \"wheat\": \"#f5deb3\",\n \"white\": \"#ffffff\",\n \"whitesmoke\": \"#f5f5f5\",\n \"yellow\": \"#ffff00\",\n \"yellowgreen\": \"#9acd32\"\n};\n\nvar getStyleValue = function getStyleValue(style) {\n return style.split('-')[1];\n};\nvar defaultUnitExportFn = function defaultUnitExportFn(unit) {\n return unit + 'px';\n};\nvar defaultUnitImportFn = function defaultUnitImportFn(unit) {\n return unit.replace('px', '');\n};\n\nvar ignoredNodeAttributes = ['style'];\nvar ignoredEntityNodeAttributes = ['style', 'href', 'target', 'alt', 'title', 'id', 'controls', 'autoplay', 'loop', 'poster'];\n\nvar spreadNodeAttributes = function spreadNodeAttributes(attributesObject) {\n return Object.keys(attributesObject).reduce(function (attributeString, attributeName) {\n return attributeString + \" \" + attributeName + \"=\\\"\" + attributesObject[attributeName] + \"\\\"\";\n }, '').replace(/^\\s$/, '');\n};\n\nvar defaultFontFamilies = exports.defaultFontFamilies = [{\n name: 'Araial',\n family: 'Arial, Helvetica, sans-serif'\n}, {\n name: 'Georgia',\n family: 'Georgia, serif'\n}, {\n name: 'Impact',\n family: 'Impact, serif'\n}, {\n name: 'Monospace',\n family: '\"Courier New\", Courier, monospace'\n}, {\n name: 'Tahoma',\n family: \"tahoma, arial, 'Hiragino Sans GB', 宋体, sans-serif\"\n}];\n\nvar getHexColor = exports.getHexColor = function getHexColor(color) {\n\n color = color.replace('color:', '').replace(';', '').replace(' ', '');\n\n if (/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(color)) {\n return color;\n } else if (namedColors[color]) {\n return namedColors[color];\n } else if (color.indexOf('rgb') === 0) {\n\n var rgbArray = color.split(',');\n var convertedColor = rgbArray.length < 3 ? null : '#' + [rgbArray[0], rgbArray[1], rgbArray[2]].map(function (x) {\n var hex = parseInt(x.replace(/\\D/g, ''), 10).toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n }).join('');\n\n return (/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(convertedColor) ? convertedColor : null\n );\n } else {\n return null;\n }\n};\n\nvar blocks = exports.blocks = {\n 'header-one': 'h1',\n 'header-two': 'h2',\n 'header-three': 'h3',\n 'header-four': 'h4',\n 'header-five': 'h5',\n 'header-six': 'h6',\n 'unstyled': 'p',\n 'blockquote': 'blockquote'\n};\n\nvar blockTypes = Object.keys(blocks);\nvar blockNames = blockTypes.map(function (key) {\n return blocks[key];\n});\n\nvar convertAtomicBlock = function convertAtomicBlock(block, contentState, blockNodeAttributes) {\n\n if (!block || !block.key) {\n return _react2.default.createElement(\"p\", null);\n }\n\n var contentBlock = contentState.getBlockForKey(block.key);\n\n var className = blockNodeAttributes.class,\n nodeAttrAsProps = _objectWithoutProperties(blockNodeAttributes, [\"class\"]);\n\n nodeAttrAsProps.className = className;\n\n if (!contentBlock) {\n return _react2.default.createElement(\"p\", null);\n }\n\n var entityKey = contentBlock.getEntityAt(0);\n\n if (!entityKey) {\n return _react2.default.createElement(\"p\", null);\n }\n\n var entity = contentState.getEntity(entityKey);\n var mediaType = entity.getType().toLowerCase();\n\n var _block$data = block.data,\n float = _block$data.float,\n alignment = _block$data.alignment;\n\n var _entity$getData = entity.getData(),\n url = _entity$getData.url,\n link = _entity$getData.link,\n link_target = _entity$getData.link_target,\n width = _entity$getData.width,\n height = _entity$getData.height,\n meta = _entity$getData.meta;\n\n if (mediaType === 'image') {\n\n var imageWrapStyle = {};\n var styledClassName = '';\n\n if (float) {\n imageWrapStyle.float = float;\n styledClassName += ' float-' + float;\n } else if (alignment) {\n imageWrapStyle.textAlign = alignment;\n styledClassName += ' align-' + alignment;\n }\n\n if (link) {\n return _react2.default.createElement(\n \"div\",\n { className: \"media-wrap image-wrap\" + styledClassName, style: imageWrapStyle },\n _react2.default.createElement(\n \"a\",\n { style: { display: 'inline-block' }, href: link, target: link_target },\n _react2.default.createElement(\"img\", _extends({}, nodeAttrAsProps, meta, { src: url, width: width, height: height, style: { width: width, height: height } }))\n )\n );\n } else {\n return _react2.default.createElement(\n \"div\",\n { className: \"media-wrap image-wrap\" + styledClassName, style: imageWrapStyle },\n _react2.default.createElement(\"img\", _extends({}, nodeAttrAsProps, meta, { src: url, width: width, height: height, style: { width: width, height: height } }))\n );\n }\n } else if (mediaType === 'audio') {\n return _react2.default.createElement(\n \"div\",\n { className: \"media-wrap audio-wrap\" },\n _react2.default.createElement(\"audio\", _extends({ controls: true }, nodeAttrAsProps, meta, { src: url }))\n );\n } else if (mediaType === 'video') {\n return _react2.default.createElement(\n \"div\",\n { className: \"media-wrap video-wrap\" },\n _react2.default.createElement(\"video\", _extends({ controls: true }, nodeAttrAsProps, meta, { src: url, width: width, height: height }))\n );\n } else if (mediaType === 'embed') {\n return _react2.default.createElement(\n \"div\",\n { className: \"media-wrap embed-wrap\" },\n _react2.default.createElement(\"div\", { dangerouslySetInnerHTML: { __html: url } })\n );\n } else if (mediaType === 'hr') {\n return _react2.default.createElement(\"hr\", null);\n } else {\n return _react2.default.createElement(\"p\", null);\n }\n};\n\nvar entityToHTML = function entityToHTML(options) {\n return function (entity, originalText) {\n var entityExportFn = options.entityExportFn;\n\n var entityType = entity.type.toLowerCase();\n\n if (entityExportFn) {\n var customOutput = entityExportFn(entity, originalText);\n if (customOutput) {\n return customOutput;\n }\n }\n\n if (entityType === 'link') {\n var _ref = entity.data.nodeAttributes || {},\n className = _ref.class,\n nodeAttrAsProps = _objectWithoutProperties(_ref, [\"class\"]);\n\n nodeAttrAsProps.className = className;\n return _react2.default.createElement(\"a\", _extends({ href: entity.data.href, target: entity.data.target }, nodeAttrAsProps));\n }\n };\n};\n\nvar styleToHTML = function styleToHTML(options) {\n return function (style) {\n\n var unitExportFn = options.unitExportFn || defaultUnitExportFn;\n\n if (options.styleExportFn) {\n var customOutput = options.styleExportFn(style, options);\n if (customOutput) {\n return customOutput;\n }\n }\n\n style = style.toLowerCase();\n\n if (style === 'strikethrough') {\n return _react2.default.createElement(\"span\", { style: { textDecoration: 'line-through' } });\n } else if (style === 'superscript') {\n return _react2.default.createElement(\"sup\", null);\n } else if (style === 'subscript') {\n return _react2.default.createElement(\"sub\", null);\n } else if (style.indexOf('color-') === 0) {\n return _react2.default.createElement(\"span\", { style: { color: '#' + getStyleValue(style) } });\n } else if (style.indexOf('bgcolor-') === 0) {\n return _react2.default.createElement(\"span\", { style: { backgroundColor: '#' + getStyleValue(style) } });\n } else if (style.indexOf('fontsize-') === 0) {\n return _react2.default.createElement(\"span\", { style: { fontSize: unitExportFn(getStyleValue(style), 'font-size', 'html') } });\n } else if (style.indexOf('lineheight-') === 0) {\n return _react2.default.createElement(\"span\", { style: { lineHeight: unitExportFn(getStyleValue(style), 'line-height', 'html') } });\n } else if (style.indexOf('letterspacing-') === 0) {\n return _react2.default.createElement(\"span\", { style: { letterSpacing: unitExportFn(getStyleValue(style), 'letter-spacing', 'html') } });\n } else if (style.indexOf('fontfamily-') === 0) {\n var fontFamily = options.fontFamilies.find(function (item) {\n return item.name.toLowerCase() === getStyleValue(style);\n });\n if (!fontFamily) return;\n return _react2.default.createElement(\"span\", { style: { fontFamily: fontFamily.family } });\n }\n };\n};\n\nvar blockToHTML = function blockToHTML(options) {\n return function (block) {\n var blockExportFn = options.blockExportFn,\n contentState = options.contentState;\n\n\n if (blockExportFn) {\n var customOutput = blockExportFn(contentState, block);\n if (customOutput) {\n return customOutput;\n }\n }\n\n var blockStyle = '';\n\n var blockType = block.type.toLowerCase();\n var _block$data2 = block.data,\n textAlign = _block$data2.textAlign,\n textIndent = _block$data2.textIndent,\n _block$data2$nodeAttr = _block$data2.nodeAttributes,\n nodeAttributes = _block$data2$nodeAttr === undefined ? {} : _block$data2$nodeAttr;\n\n var attributeString = spreadNodeAttributes(nodeAttributes);\n\n if (textAlign || textIndent) {\n\n blockStyle = ' style=\"';\n\n if (textAlign) {\n blockStyle += \"text-align:\" + textAlign + \";\";\n }\n\n if (textIndent && !isNaN(textIndent) && textIndent > 0) {\n blockStyle += \"text-indent:\" + textIndent * 2 + \"em;\";\n }\n\n blockStyle += '\"';\n }\n\n if (blockType === 'atomic') {\n return convertAtomicBlock(block, contentState, nodeAttributes);\n } else if (blockType === 'code-block') {\n\n var previousBlock = contentState.getBlockBefore(block.key);\n var nextBlock = contentState.getBlockAfter(block.key);\n var previousBlockType = previousBlock && previousBlock.getType();\n var nextBlockType = nextBlock && nextBlock.getType();\n\n var start = '';\n var end = '';\n\n if (previousBlockType !== 'code-block') {\n start = \"<pre\" + attributeString + \"><code>\";\n } else {\n start = '';\n }\n\n if (nextBlockType !== 'code-block') {\n end = '</code></pre>';\n } else {\n end = '<br/>';\n }\n\n return { start: start, end: end };\n } else if (blocks[blockType]) {\n return {\n start: \"<\" + blocks[blockType] + blockStyle + attributeString + \">\",\n end: \"</\" + blocks[blockType] + \">\"\n };\n } else if (blockType === 'unordered-list-item') {\n return {\n start: \"<li\" + blockStyle + attributeString + \">\",\n end: '</li>',\n nest: _react2.default.createElement(\"ul\", null)\n };\n } else if (blockType === 'ordered-list-item') {\n return {\n start: \"<li\" + blockStyle + attributeString + \">\",\n end: '</li>',\n nest: _react2.default.createElement(\"ol\", null)\n };\n }\n };\n};\n\nvar htmlToStyle = function htmlToStyle(options, source) {\n return function (nodeName, node, currentStyle) {\n\n if (!node || !node.style) {\n return currentStyle;\n }\n\n var unitImportFn = options.unitImportFn || defaultUnitImportFn;\n var newStyle = currentStyle;\n\n [].forEach.call(node.style, function (style) {\n\n if (nodeName === 'span' && style === 'color') {\n var color = getHexColor(node.style.color);\n newStyle = color ? newStyle.add('COLOR-' + color.replace('#', '').toUpperCase()) : newStyle;\n } else if (nodeName === 'span' && style === 'background-color') {\n var _color = getHexColor(node.style.backgroundColor);\n newStyle = _color ? newStyle.add('BGCOLOR-' + _color.replace('#', '').toUpperCase()) : newStyle;\n } else if (nodeName === 'span' && style === 'font-size') {\n newStyle = newStyle.add('FONTSIZE-' + unitImportFn(node.style.fontSize, 'font-size', source));\n } else if (nodeName === 'span' && style === 'line-height' && !isNaN(parseFloat(node.style.lineHeight, 10))) {\n newStyle = newStyle.add('LINEHEIGHT-' + unitImportFn(node.style.lineHeight, 'line-height', source));\n } else if (nodeName === 'span' && style === 'letter-spacing' && !isNaN(parseFloat(node.style.letterSpacing, 10))) {\n newStyle = newStyle.add('LETTERSPACING-' + unitImportFn(node.style.letterSpacing, 'letter-spacing', source));\n } else if (nodeName === 'span' && style === 'text-decoration') {\n if (node.style.textDecoration === 'line-through') {\n newStyle = newStyle.add('STRIKETHROUGH');\n } else if (node.style.textDecoration === 'underline') {\n newStyle = newStyle.add('UNDERLINE');\n }\n } else if (nodeName === 'span' && style === 'font-family') {\n var fontFamily = options.fontFamilies.find(function (item) {\n return item.family.toLowerCase() === node.style.fontFamily.toLowerCase();\n });\n if (!fontFamily) return;\n newStyle = newStyle.add('FONTFAMILY-' + fontFamily.name.toUpperCase());\n }\n });\n\n if (nodeName === 'sup') {\n newStyle = newStyle.add('SUPERSCRIPT');\n } else if (nodeName === 'sub') {\n newStyle = newStyle.add('SUBSCRIPT');\n }\n\n options.styleImportFn && (newStyle = options.styleImportFn(nodeName, node, newStyle, source) || newStyle);\n return newStyle;\n };\n};\n\nvar htmlToEntity = function htmlToEntity(options, source) {\n return function (nodeName, node, createEntity) {\n\n if (options && options.entityImportFn) {\n var customInput = options.entityImportFn(nodeName, node, createEntity, source);\n if (customInput) {\n return customInput;\n }\n }\n\n nodeName = nodeName.toLowerCase();\n\n var alt = node.alt,\n title = node.title,\n id = node.id,\n controls = node.controls,\n autoplay = node.autoplay,\n loop = node.loop,\n poster = node.poster;\n\n var meta = {};\n var nodeAttributes = {};\n\n id && (meta.id = id);\n alt && (meta.alt = alt);\n title && (meta.title = title);\n controls && (meta.controls = controls);\n autoplay && (meta.autoPlay = autoplay);\n loop && (meta.loop = loop);\n poster && (meta.poster = poster);\n\n node.attributes && Object.keys(node.attributes).forEach(function (key) {\n var attr = node.attributes[key];\n ignoredEntityNodeAttributes.indexOf(attr.name) === -1 && (nodeAttributes[attr.name] = attr.value);\n });\n\n if (nodeName === 'a' && !node.querySelectorAll('img').length) {\n var href = node.getAttribute('href');\n var _target = node.getAttribute('target');\n return createEntity('LINK', 'MUTABLE', { href: href, target: _target, nodeAttributes: nodeAttributes });\n } else if (nodeName === 'audio') {\n return createEntity('AUDIO', 'IMMUTABLE', { url: node.getAttribute('src'), meta: meta, nodeAttributes: nodeAttributes });\n } else if (nodeName === 'video') {\n return createEntity('VIDEO', 'IMMUTABLE', { url: node.getAttribute('src'), meta: meta, nodeAttributes: nodeAttributes });\n } else if (nodeName === 'img') {\n\n var parentNode = node.parentNode;\n var entityData = { meta: meta };\n var _node$style = node.style,\n width = _node$style.width,\n height = _node$style.height;\n\n\n entityData.url = node.getAttribute('src');\n width && (entityData.width = width);\n height && (entityData.height = height);\n\n if (parentNode.nodeName.toLowerCase() === 'a') {\n entityData.link = parentNode.getAttribute('href');\n entityData.link_target = parentNode.getAttribute('target');\n }\n\n return createEntity('IMAGE', 'IMMUTABLE', entityData);\n } else if (nodeName === 'hr') {\n return createEntity('HR', 'IMMUTABLE', {});\n } else if (node.parentNode && node.parentNode.classList.contains('embed-wrap')) {\n\n var embedContent = node.innerHTML || node.outerHTML;\n\n if (embedContent) {\n return createEntity('EMBED', 'IMMUTABLE', {\n url: embedContent\n });\n }\n }\n };\n};\n\nvar htmlToBlock = function htmlToBlock(options, source) {\n return function (nodeName, node) {\n\n if (options && options.blockImportFn) {\n var customInput = options.blockImportFn(nodeName, node, source);\n if (customInput) {\n return customInput;\n }\n }\n\n var nodeAttributes = {};\n var nodeStyle = node.style || {};\n\n node.attributes && Object.keys(node.attributes).forEach(function (key) {\n var attr = node.attributes[key];\n ignoredNodeAttributes.indexOf(attr.name) === -1 && (nodeAttributes[attr.name] = attr.value);\n });\n\n if (node.classList && node.classList.contains('media-wrap')) {\n\n return {\n type: 'atomic',\n data: {\n nodeAttributes: nodeAttributes,\n float: nodeStyle.float,\n alignment: nodeStyle.textAlign\n }\n };\n } else if (nodeName === 'img') {\n\n return {\n type: 'atomic',\n data: {\n nodeAttributes: nodeAttributes,\n float: nodeStyle.float,\n alignment: nodeStyle.textAlign\n }\n };\n } else if (nodeName === 'hr') {\n\n return {\n type: 'atomic',\n data: { nodeAttributes: nodeAttributes }\n };\n } else if (nodeName === 'pre') {\n\n node.innerHTML = node.innerHTML.replace(/<code(.*?)>/g, '').replace(/<\\/code>/g, '');\n\n return {\n type: 'code-block',\n data: { nodeAttributes: nodeAttributes }\n };\n } else if (blockNames.indexOf(nodeName) !== -1) {\n\n var blockData = { nodeAttributes: nodeAttributes };\n\n if (nodeStyle.textAlign) {\n blockData.textAlign = nodeStyle.textAlign;\n }\n\n if (nodeStyle.textIndent) {\n blockData.textIndent = /^\\d+em$/.test(nodeStyle.textIndent) ? Math.ceil(parseInt(nodeStyle.textIndent, 10) / 2) : 1;\n }\n\n return {\n type: blockTypes[blockNames.indexOf(nodeName)],\n data: blockData\n };\n }\n };\n};\n\nvar getToHTMLConfig = exports.getToHTMLConfig = function getToHTMLConfig(options) {\n\n return {\n styleToHTML: styleToHTML(options),\n entityToHTML: entityToHTML(options),\n blockToHTML: blockToHTML(options)\n };\n};\n\nvar getFromHTMLConfig = exports.getFromHTMLConfig = function getFromHTMLConfig(options) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'unknow';\n\n\n return {\n htmlToStyle: htmlToStyle(options, source),\n htmlToEntity: htmlToEntity(options, source),\n htmlToBlock: htmlToBlock(options, source)\n };\n};\n//# sourceMappingURL=configs.js.map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertRawToEditorState = exports.convertEditorStateToRaw = exports.convertHTMLToEditorState = exports.convertEditorStateToHTML = exports.convertHTMLToRaw = exports.convertRawToHTML = undefined;\n\nvar _extends = Object.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; };\n\nvar _draftConvert = require('draft-convert');\n\nvar _configs = require('./configs');\n\nvar _draftJs = require('draft-js');\n\nvar defaultConvertOptions = {\n fontFamilies: _configs.defaultFontFamilies\n};\n\nvar convertRawToHTML = exports.convertRawToHTML = function convertRawToHTML(rawContent, options) {\n\n options = _extends({}, defaultConvertOptions, options);\n\n try {\n var contentState = (0, _draftJs.convertFromRaw)(rawContent);\n options.contentState = contentState;\n return (0, _draftConvert.convertToHTML)((0, _configs.getToHTMLConfig)(options))(contentState);\n } catch (error) {\n console.warn(error);\n return '';\n }\n};\n\nvar convertHTMLToRaw = exports.convertHTMLToRaw = function convertHTMLToRaw(HTMLString, options, source) {\n\n options = _extends({}, defaultConvertOptions, options);\n\n try {\n var contentState = (0, _draftConvert.convertFromHTML)((0, _configs.getFromHTMLConfig)(options, source))(HTMLString);\n return (0, _draftJs.convertToRaw)(contentState);\n } catch (error) {\n console.warn(error);\n return {};\n }\n};\n\nvar convertEditorStateToHTML = exports.convertEditorStateToHTML = function convertEditorStateToHTML(editorState, options) {\n\n options = _extends({}, defaultConvertOptions, options);\n\n try {\n var contentState = editorState.getCurrentContent();\n options.contentState = contentState;\n return (0, _draftConvert.convertToHTML)((0, _configs.getToHTMLConfig)(options))(contentState);\n } catch (error) {\n console.warn(error);\n return '';\n }\n};\n\nvar convertHTMLToEditorState = exports.convertHTMLToEditorState = function convertHTMLToEditorState(HTMLString, editorDecorators, options, source) {\n\n options = _extends({}, defaultConvertOptions, options);\n\n try {\n return _draftJs.EditorState.createWithContent((0, _draftConvert.convertFromHTML)((0, _configs.getFromHTMLConfig)(options, source))(HTMLString), editorDecorators);\n } catch (error) {\n console.warn(error);\n return _draftJs.EditorState.createEmpty(editorDecorators);\n }\n};\n\nvar convertEditorStateToRaw = exports.convertEditorStateToRaw = function convertEditorStateToRaw(editorState) {\n return (0, _draftJs.convertToRaw)(editorState.getCurrentContent());\n};\n\nvar convertRawToEditorState = exports.convertRawToEditorState = function convertRawToEditorState(rawContent, editorDecorators) {\n\n try {\n return _draftJs.EditorState.createWithContent((0, _draftJs.convertFromRaw)(rawContent), editorDecorators);\n } catch (error) {\n console.warn(error);\n return _draftJs.EditorState.createEmpty(editorDecorators);\n }\n};\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.redo = exports.undo = exports.handleKeyCommand = exports.clear = exports.setMediaPosition = exports.removeMedia = exports.setMediaData = exports.insertMedias = exports.insertHorizontalLine = exports.insertAtomicBlock = exports.insertHTML = exports.insertText = exports.toggleSelectionLetterSpacing = exports.toggleSelectionFontFamily = exports.toggleSelectionLineHeight = exports.toggleSelectionFontSize = exports.toggleSelectionBackgroundColor = exports.toggleSelectionColor = exports.decreaseSelectionIndent = exports.increaseSelectionIndent = exports.toggleSelectionIndent = exports.toggleSelectionAlignment = exports.removeSelectionInlineStyles = exports.toggleSelectionInlineStyle = exports.selectionHasInlineStyle = exports.getSelectionInlineStyle = exports.toggleSelectionLink = exports.toggleSelectionEntity = exports.getSelectionEntityData = exports.getSelectionEntityType = exports.toggleSelectionBlockType = exports.getSelectionText = exports.getSelectionBlockType = exports.getSelectionBlockData = exports.setSelectionBlockData = exports.getSelectedBlocks = exports.updateEachCharacterOfSelection = exports.getSelectionBlock = exports.removeBlock = exports.selectNextBlock = exports.selectBlock = exports.selectionContainsStrictBlock = exports.selectionContainsBlockType = exports.isSelectionCollapsed = exports.createEditorState = exports.createEmptyEditorState = exports.isEditorState = exports.registerStrictBlockType = undefined;\n\nvar _draftJs = require('draft-js');\n\nvar _draftjsUtils = require('draftjs-utils');\n\nvar _braftConvert = require('braft-convert');\n\nvar _immutable = require('immutable');\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar strictBlockTypes = ['atomic'];\n\nvar registerStrictBlockType = exports.registerStrictBlockType = function registerStrictBlockType(blockType) {\n strictBlockTypes.indexOf(blockType) === -1 && strictBlockTypes.push(blockType);\n};\n\nvar isEditorState = exports.isEditorState = function isEditorState(editorState) {\n return editorState instanceof _draftJs.EditorState;\n};\n\nvar createEmptyEditorState = exports.createEmptyEditorState = function createEmptyEditorState(editorDecorators) {\n return _draftJs.EditorState.createEmpty(editorDecorators);\n};\n\nvar createEditorState = exports.createEditorState = function createEditorState(contentState, editorDecorators) {\n return _draftJs.EditorState.createWithContent(contentState, editorDecorators);\n};\n\nvar isSelectionCollapsed = exports.isSelectionCollapsed = function isSelectionCollapsed(editorState) {\n return editorState.getSelection().isCollapsed();\n};\n\nvar selectionContainsBlockType = exports.selectionContainsBlockType = function selectionContainsBlockType(editorState, blockType) {\n return getSelectedBlocks(editorState).find(function (block) {\n return block.getType() === blockType;\n });\n};\n\nvar selectionContainsStrictBlock = exports.selectionContainsStrictBlock = function selectionContainsStrictBlock(editorState) {\n return getSelectedBlocks(editorState).find(function (block) {\n return ~strictBlockTypes.indexOf(block.getType());\n });\n};\n\nvar selectBlock = exports.selectBlock = function selectBlock(editorState, block) {\n\n var blockKey = block.getKey();\n\n return _draftJs.EditorState.forceSelection(editorState, new _draftJs.SelectionState({\n anchorKey: blockKey,\n anchorOffset: 0,\n focusKey: blockKey,\n focusOffset: block.getLength()\n }));\n};\n\nvar selectNextBlock = exports.selectNextBlock = function selectNextBlock(editorState, block) {\n var nextBlock = editorState.getCurrentContent().getBlockAfter(block.getKey());\n return nextBlock ? selectBlock(editorState, nextBlock) : editorState;\n};\n\nvar removeBlock = exports.removeBlock = function removeBlock(editorState, block) {\n var lastSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var nextContentState = void 0,\n nextEditorState = void 0;\n var blockKey = block.getKey();\n\n nextContentState = _draftJs.Modifier.removeRange(editorState.getCurrentContent(), new _draftJs.SelectionState({\n anchorKey: blockKey,\n anchorOffset: 0,\n focusKey: blockKey,\n focusOffset: block.getLength()\n }), 'backward');\n\n nextContentState = _draftJs.Modifier.setBlockType(nextContentState, nextContentState.getSelectionAfter(), 'unstyled');\n nextEditorState = _draftJs.EditorState.push(editorState, nextContentState, 'remove-range');\n return _draftJs.EditorState.forceSelection(nextEditorState, lastSelection || nextContentState.getSelectionAfter());\n};\n\nvar getSelectionBlock = exports.getSelectionBlock = function getSelectionBlock(editorState) {\n return editorState.getCurrentContent().getBlockForKey(editorState.getSelection().getAnchorKey());\n};\n\nvar updateEachCharacterOfSelection = exports.updateEachCharacterOfSelection = function updateEachCharacterOfSelection(editorState, callback) {\n\n var selectionState = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n var contentBlocks = contentState.getBlockMap();\n var selectedBlocks = getSelectedBlocks(editorState);\n\n if (selectedBlocks.length === 0) {\n return editorState;\n }\n\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n\n var nextContentBlocks = contentBlocks.map(function (block) {\n\n if (selectedBlocks.indexOf(block) === -1) {\n return block;\n }\n\n var blockKey = block.getKey();\n var charactersList = block.getCharacterList();\n var nextCharactersList = null;\n\n if (blockKey === startKey && blockKey === endKey) {\n nextCharactersList = charactersList.map(function (character, index) {\n if (index >= startOffset && index < endOffset) {\n return callback(character);\n }\n return character;\n });\n } else if (blockKey === startKey) {\n nextCharactersList = charactersList.map(function (character, index) {\n if (index >= startOffset) {\n return callback(character);\n }\n return character;\n });\n } else if (blockKey === endKey) {\n nextCharactersList = charactersList.map(function (character, index) {\n if (index < endOffset) {\n return callback(character);\n }\n return character;\n });\n } else {\n nextCharactersList = charactersList.map(function (character) {\n return callback(character);\n });\n }\n\n return block.merge({\n 'characterList': nextCharactersList\n });\n });\n\n return _draftJs.EditorState.push(editorState, contentState.merge({\n blockMap: nextContentBlocks,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n }), 'update-selection-character-list');\n};\n\nvar getSelectedBlocks = exports.getSelectedBlocks = function getSelectedBlocks(editorState) {\n\n var selectionState = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n\n var startKey = selectionState.getStartKey();\n var endKey = selectionState.getEndKey();\n var isSameBlock = startKey === endKey;\n var startingBlock = contentState.getBlockForKey(startKey);\n var selectedBlocks = [startingBlock];\n\n if (!isSameBlock) {\n var blockKey = startKey;\n\n while (blockKey !== endKey) {\n var nextBlock = contentState.getBlockAfter(blockKey);\n selectedBlocks.push(nextBlock);\n blockKey = nextBlock.getKey();\n }\n }\n\n return selectedBlocks;\n};\n\nvar setSelectionBlockData = exports.setSelectionBlockData = function setSelectionBlockData(editorState, blockData, override) {\n\n var newBlockData = override ? blockData : Object.assign({}, getSelectionBlockData(editorState).toJS(), blockData);\n\n Object.keys(newBlockData).forEach(function (key) {\n if (newBlockData.hasOwnProperty(key) && newBlockData[key] === undefined) {\n delete newBlockData[key];\n }\n });\n\n return (0, _draftjsUtils.setBlockData)(editorState, newBlockData);\n};\n\nvar getSelectionBlockData = exports.getSelectionBlockData = function getSelectionBlockData(editorState, name) {\n var blockData = getSelectionBlock(editorState).getData();\n return name ? blockData.get(name) : blockData;\n};\n\nvar getSelectionBlockType = exports.getSelectionBlockType = function getSelectionBlockType(editorState) {\n return getSelectionBlock(editorState).getType();\n};\n\nvar getSelectionText = exports.getSelectionText = function getSelectionText(editorState) {\n\n var selectionState = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n\n if (selectionState.isCollapsed() || getSelectionBlockType(editorState) === 'atomic') {\n return '';\n }\n\n var anchorKey = selectionState.getAnchorKey();\n var currentContentBlock = contentState.getBlockForKey(anchorKey);\n var start = selectionState.getStartOffset();\n var end = selectionState.getEndOffset();\n\n return currentContentBlock.getText().slice(start, end);\n};\n\nvar toggleSelectionBlockType = exports.toggleSelectionBlockType = function toggleSelectionBlockType(editorState, blockType) {\n\n if (selectionContainsStrictBlock(editorState)) {\n return editorState;\n }\n\n return _draftJs.RichUtils.toggleBlockType(editorState, blockType);\n};\n\nvar getSelectionEntityType = exports.getSelectionEntityType = function getSelectionEntityType(editorState) {\n\n var entityKey = (0, _draftjsUtils.getSelectionEntity)(editorState);\n\n if (entityKey) {\n var entity = editorState.getCurrentContent().getEntity(entityKey);\n return entity ? entity.get('type') : null;\n }\n\n return null;\n};\n\nvar getSelectionEntityData = exports.getSelectionEntityData = function getSelectionEntityData(editorState, type) {\n\n var entityKey = (0, _draftjsUtils.getSelectionEntity)(editorState);\n\n if (entityKey) {\n var entity = editorState.getCurrentContent().getEntity(entityKey);\n if (entity && entity.get('type') === type) {\n return entity.getData();\n } else {\n return {};\n }\n } else {\n return {};\n }\n};\n\nvar toggleSelectionEntity = exports.toggleSelectionEntity = function toggleSelectionEntity(editorState, entity) {\n\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n\n if (selectionState.isCollapsed() || getSelectionBlockType(editorState) === 'atomic') {\n return editorState;\n }\n\n if (!entity || !entity.type || getSelectionEntityType(editorState) === entity.type) {\n return _draftJs.EditorState.push(editorState, _draftJs.Modifier.applyEntity(contentState, selectionState, null), 'apply-entity');\n }\n\n try {\n\n var nextContentState = contentState.createEntity(entity.type, entity.mutability, entity.data);\n var entityKey = nextContentState.getLastCreatedEntityKey();\n\n var nextEditorState = _draftJs.EditorState.set(editorState, {\n currentContent: nextContentState\n });\n\n return _draftJs.EditorState.push(nextEditorState, _draftJs.Modifier.applyEntity(nextContentState, selectionState, entityKey), 'apply-entity');\n } catch (error) {\n console.warn(error);\n return editorState;\n }\n};\n\nvar toggleSelectionLink = exports.toggleSelectionLink = function toggleSelectionLink(editorState, href, target) {\n\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n\n var entityData = { href: href, target: target };\n\n if (selectionState.isCollapsed() || getSelectionBlockType(editorState) === 'atomic') {\n return editorState;\n }\n\n if (href === false) {\n return _draftJs.RichUtils.toggleLink(editorState, selectionState, null);\n }\n\n if (href === null) {\n delete entityData.href;\n }\n\n try {\n\n var nextContentState = contentState.createEntity('LINK', 'MUTABLE', entityData);\n var entityKey = nextContentState.getLastCreatedEntityKey();\n\n var nextEditorState = _draftJs.EditorState.set(editorState, {\n currentContent: nextContentState\n });\n\n nextEditorState = _draftJs.RichUtils.toggleLink(nextEditorState, selectionState, entityKey);\n nextEditorState = _draftJs.EditorState.forceSelection(nextEditorState, selectionState.merge({\n anchorOffset: selectionState.getEndOffset(),\n focusOffset: selectionState.getEndOffset()\n }));\n\n nextEditorState = _draftJs.EditorState.push(nextEditorState, _draftJs.Modifier.insertText(nextEditorState.getCurrentContent(), nextEditorState.getSelection(), ''), 'insert-text');\n\n return nextEditorState;\n } catch (error) {\n console.warn(error);\n return editorState;\n }\n};\n\nvar getSelectionInlineStyle = exports.getSelectionInlineStyle = function getSelectionInlineStyle(editorState) {\n return editorState.getCurrentInlineStyle();\n};\n\nvar selectionHasInlineStyle = exports.selectionHasInlineStyle = function selectionHasInlineStyle(editorState, style) {\n return getSelectionInlineStyle(editorState).has(style.toUpperCase());\n};\n\nvar toggleSelectionInlineStyle = exports.toggleSelectionInlineStyle = function toggleSelectionInlineStyle(editorState, style) {\n var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n\n var nextEditorState = editorState;\n style = prefix + style.toUpperCase();\n\n if (prefix) {\n\n nextEditorState = updateEachCharacterOfSelection(nextEditorState, function (characterMetadata) {\n\n return characterMetadata.toJS().style.reduce(function (characterMetadata, characterStyle) {\n if (characterStyle.indexOf(prefix) === 0 && style !== characterStyle) {\n return _draftJs.CharacterMetadata.removeStyle(characterMetadata, characterStyle);\n } else {\n return characterMetadata;\n }\n }, characterMetadata);\n });\n }\n\n return _draftJs.RichUtils.toggleInlineStyle(nextEditorState, style);\n};\n\nvar removeSelectionInlineStyles = exports.removeSelectionInlineStyles = function removeSelectionInlineStyles(editorState) {\n\n return updateEachCharacterOfSelection(editorState, function (characterMetadata) {\n return characterMetadata.merge({\n style: _immutable2.default.OrderedSet([])\n });\n });\n};\n\nvar toggleSelectionAlignment = exports.toggleSelectionAlignment = function toggleSelectionAlignment(editorState, alignment) {\n return setSelectionBlockData(editorState, {\n textAlign: getSelectionBlockData(editorState, 'textAlign') !== alignment ? alignment : undefined\n });\n};\n\nvar toggleSelectionIndent = exports.toggleSelectionIndent = function toggleSelectionIndent(editorState, textIndent) {\n var maxIndent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 6;\n\n return textIndent < 0 || textIndent > maxIndent || isNaN(textIndent) ? editorState : setSelectionBlockData(editorState, {\n textIndent: textIndent || undefined\n });\n};\n\nvar increaseSelectionIndent = exports.increaseSelectionIndent = function increaseSelectionIndent(editorState) {\n var maxIndent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n\n var currentIndent = getSelectionBlockData(editorState, 'textIndent') || 0;\n return toggleSelectionIndent(editorState, currentIndent + 1, maxIndent);\n};\n\nvar decreaseSelectionIndent = exports.decreaseSelectionIndent = function decreaseSelectionIndent(editorState) {\n var currentIndent = getSelectionBlockData(editorState, 'textIndent') || 0;\n return toggleSelectionIndent(editorState, currentIndent - 1);\n};\n\nvar toggleSelectionColor = exports.toggleSelectionColor = function toggleSelectionColor(editorState, color) {\n return toggleSelectionInlineStyle(editorState, color.replace('#', ''), 'COLOR-');\n};\n\nvar toggleSelectionBackgroundColor = exports.toggleSelectionBackgroundColor = function toggleSelectionBackgroundColor(editorState, color) {\n return toggleSelectionInlineStyle(editorState, color.replace('#', ''), 'BGCOLOR-');\n};\n\nvar toggleSelectionFontSize = exports.toggleSelectionFontSize = function toggleSelectionFontSize(editorState, fontSize) {\n return toggleSelectionInlineStyle(editorState, fontSize, 'FONTSIZE-');\n};\n\nvar toggleSelectionLineHeight = exports.toggleSelectionLineHeight = function toggleSelectionLineHeight(editorState, lineHeight) {\n return toggleSelectionInlineStyle(editorState, lineHeight, 'LINEHEIGHT-');\n};\n\nvar toggleSelectionFontFamily = exports.toggleSelectionFontFamily = function toggleSelectionFontFamily(editorState, fontFamily) {\n return toggleSelectionInlineStyle(editorState, fontFamily, 'FONTFAMILY-');\n};\n\nvar toggleSelectionLetterSpacing = exports.toggleSelectionLetterSpacing = function toggleSelectionLetterSpacing(editorState, letterSpacing) {\n return toggleSelectionInlineStyle(editorState, letterSpacing, 'LETTERSPACING-');\n};\n\nvar insertText = exports.insertText = function insertText(editorState, text, inlineStyle, entity) {\n\n var selectionState = editorState.getSelection();\n var currentSelectedBlockType = getSelectionBlockType(editorState);\n\n if (currentSelectedBlockType === 'atomic') {\n return editorState;\n }\n\n var entityKey = void 0;\n var contentState = editorState.getCurrentContent();\n\n if (entity && entity.type) {\n contentState = contentState.createEntity(entity.type, entity.mutability || 'MUTABLE', entity.data || entityData);\n entityKey = contentState.getLastCreatedEntityKey();\n }\n\n if (!selectionState.isCollapsed()) {\n return _draftJs.EditorState.push(editorState, _draftJs.Modifier.replaceText(contentState, selectionState, text, inlineStyle, entityKey), 'replace-text');\n } else {\n return _draftJs.EditorState.push(editorState, _draftJs.Modifier.insertText(contentState, selectionState, text, inlineStyle, entityKey), 'insert-text');\n }\n};\n\nvar insertHTML = exports.insertHTML = function insertHTML(editorState, htmlString, source) {\n\n if (!htmlString) {\n return editorState;\n }\n\n var selectionState = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n var options = editorState.convertOptions || {};\n\n try {\n var _convertFromRaw = (0, _draftJs.convertFromRaw)((0, _braftConvert.convertHTMLToRaw)(htmlString, options, source)),\n blockMap = _convertFromRaw.blockMap;\n\n return _draftJs.EditorState.push(editorState, _draftJs.Modifier.replaceWithFragment(contentState, selectionState, blockMap), 'insert-fragment');\n } catch (error) {\n console.warn(error);\n return editorState;\n }\n};\n\nvar insertAtomicBlock = exports.insertAtomicBlock = function insertAtomicBlock(editorState, type) {\n var immutable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n\n if (selectionContainsStrictBlock(editorState)) {\n return insertAtomicBlock(selectNextBlock(editorState, getSelectionBlock(editorState)), type, immutable, data);\n }\n\n var selectionState = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n\n if (!selectionState.isCollapsed() || getSelectionBlockType(editorState) === 'atomic') {\n return editorState;\n }\n\n var contentStateWithEntity = contentState.createEntity(type, immutable ? 'IMMUTABLE' : 'MUTABLE', data);\n var entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n var newEditorState = _draftJs.AtomicBlockUtils.insertAtomicBlock(editorState, entityKey, ' ');\n\n return newEditorState;\n};\n\nvar insertHorizontalLine = exports.insertHorizontalLine = function insertHorizontalLine(editorState) {\n return insertAtomicBlock(editorState, 'HR');\n};\n\nvar insertMedias = exports.insertMedias = function insertMedias(editorState) {\n var medias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n\n if (!medias.length) {\n return editorState;\n }\n\n return medias.reduce(function (editorState, media) {\n var url = media.url,\n link = media.link,\n link_target = media.link_target,\n name = media.name,\n type = media.type,\n width = media.width,\n height = media.height,\n meta = media.meta;\n\n return insertAtomicBlock(editorState, type, true, { url: url, link: link, link_target: link_target, name: name, type: type, width: width, height: height, meta: meta });\n }, editorState);\n};\n\nvar setMediaData = exports.setMediaData = function setMediaData(editorState, entityKey, data) {\n return _draftJs.EditorState.push(editorState, editorState.getCurrentContent().mergeEntityData(entityKey, data), 'change-block-data');\n};\n\nvar removeMedia = exports.removeMedia = function removeMedia(editorState, mediaBlock) {\n return removeBlock(editorState, mediaBlock);\n};\n\nvar setMediaPosition = exports.setMediaPosition = function setMediaPosition(editorState, mediaBlock, position) {\n\n var newPosition = {};\n var float = position.float,\n alignment = position.alignment;\n\n\n if (typeof float !== 'undefined') {\n newPosition.float = mediaBlock.getData().get('float') === float ? null : float;\n }\n\n if (typeof alignment !== 'undefined') {\n newPosition.alignment = mediaBlock.getData().get('alignment') === alignment ? null : alignment;\n }\n\n return setSelectionBlockData(selectBlock(editorState, mediaBlock), newPosition);\n};\n\nvar clear = exports.clear = function clear(editorState) {\n\n var contentState = editorState.getCurrentContent();\n\n var firstBlock = contentState.getFirstBlock();\n var lastBlock = contentState.getLastBlock();\n\n var allSelected = new _draftJs.SelectionState({\n anchorKey: firstBlock.getKey(),\n anchorOffset: 0,\n focusKey: lastBlock.getKey(),\n focusOffset: lastBlock.getLength(),\n hasFocus: true\n });\n\n return _draftJs.RichUtils.toggleBlockType(_draftJs.EditorState.push(editorState, _draftJs.Modifier.removeRange(contentState, allSelected, 'backward'), 'remove-range'), 'unstyled');\n};\n\nvar handleKeyCommand = exports.handleKeyCommand = function handleKeyCommand(editorState, command) {\n return _draftJs.RichUtils.handleKeyCommand(editorState, command);\n};\n\nvar undo = exports.undo = function undo(editorState) {\n return _draftJs.EditorState.undo(editorState);\n};\n\nvar redo = exports.redo = function redo(editorState) {\n return _draftJs.EditorState.redo(editorState);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar braftUniqueIndex = 0;\n\nvar UniqueIndex = exports.UniqueIndex = function UniqueIndex() {\n return braftUniqueIndex += 1;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _namedColors = {\n \"aliceblue\": \"#f0f8ff\",\n \"antiquewhite\": \"#faebd7\",\n \"aqua\": \"#00ffff\",\n \"aquamarine\": \"#7fffd4\",\n \"azure\": \"#f0ffff\",\n \"beige\": \"#f5f5dc\",\n \"bisque\": \"#ffe4c4\",\n \"black\": \"#000000\",\n \"blanchedalmond\": \"#ffebcd\",\n \"blue\": \"#0000ff\",\n \"blueviolet\": \"#8a2be2\",\n \"brown\": \"#a52a2a\",\n \"burlywood\": \"#deb887\",\n \"cadetblue\": \"#5f9ea0\",\n \"chartreuse\": \"#7fff00\",\n \"chocolate\": \"#d2691e\",\n \"coral\": \"#ff7f50\",\n \"cornflowerblue\": \"#6495ed\",\n \"cornsilk\": \"#fff8dc\",\n \"crimson\": \"#dc143c\",\n \"cyan\": \"#00ffff\",\n \"darkblue\": \"#00008b\",\n \"darkcyan\": \"#008b8b\",\n \"darkgoldenrod\": \"#b8860b\",\n \"darkgray\": \"#a9a9a9\",\n \"darkgreen\": \"#006400\",\n \"darkkhaki\": \"#bdb76b\",\n \"darkmagenta\": \"#8b008b\",\n \"darkolivegreen\": \"#556b2f\",\n \"darkorange\": \"#ff8c00\",\n \"darkorchid\": \"#9932cc\",\n \"darkred\": \"#8b0000\",\n \"darksalmon\": \"#e9967a\",\n \"darkseagreen\": \"#8fbc8f\",\n \"darkslateblue\": \"#483d8b\",\n \"darkslategray\": \"#2f4f4f\",\n \"darkturquoise\": \"#00ced1\",\n \"darkviolet\": \"#9400d3\",\n \"deeppink\": \"#ff1493\",\n \"deepskyblue\": \"#00bfff\",\n \"dimgray\": \"#696969\",\n \"dodgerblue\": \"#1e90ff\",\n \"firebrick\": \"#b22222\",\n \"floralwhite\": \"#fffaf0\",\n \"forestgreen\": \"#228b22\",\n \"fuchsia\": \"#ff00ff\",\n \"gainsboro\": \"#dcdcdc\",\n \"ghostwhite\": \"#f8f8ff\",\n \"gold\": \"#ffd700\",\n \"goldenrod\": \"#daa520\",\n \"gray\": \"#808080\",\n \"green\": \"#008000\",\n \"greenyellow\": \"#adff2f\",\n \"honeydew\": \"#f0fff0\",\n \"hotpink\": \"#ff69b4\",\n \"indianred \": \"#cd5c5c\",\n \"indigo\": \"#4b0082\",\n \"ivory\": \"#fffff0\",\n \"khaki\": \"#f0e68c\",\n \"lavender\": \"#e6e6fa\",\n \"lavenderblush\": \"#fff0f5\",\n \"lawngreen\": \"#7cfc00\",\n \"lemonchiffon\": \"#fffacd\",\n \"lightblue\": \"#add8e6\",\n \"lightcoral\": \"#f08080\",\n \"lightcyan\": \"#e0ffff\",\n \"lightgoldenrodyellow\": \"#fafad2\",\n \"lightgrey\": \"#d3d3d3\",\n \"lightgreen\": \"#90ee90\",\n \"lightpink\": \"#ffb6c1\",\n \"lightsalmon\": \"#ffa07a\",\n \"lightseagreen\": \"#20b2aa\",\n \"lightskyblue\": \"#87cefa\",\n \"lightslategray\": \"#778899\",\n \"lightsteelblue\": \"#b0c4de\",\n \"lightyellow\": \"#ffffe0\",\n \"lime\": \"#00ff00\",\n \"limegreen\": \"#32cd32\",\n \"linen\": \"#faf0e6\",\n \"magenta\": \"#ff00ff\",\n \"maroon\": \"#800000\",\n \"mediumaquamarine\": \"#66cdaa\",\n \"mediumblue\": \"#0000cd\",\n \"mediumorchid\": \"#ba55d3\",\n \"mediumpurple\": \"#9370d8\",\n \"mediumseagreen\": \"#3cb371\",\n \"mediumslateblue\": \"#7b68ee\",\n \"mediumspringgreen\": \"#00fa9a\",\n \"mediumturquoise\": \"#48d1cc\",\n \"mediumvioletred\": \"#c71585\",\n \"midnightblue\": \"#191970\",\n \"mintcream\": \"#f5fffa\",\n \"mistyrose\": \"#ffe4e1\",\n \"moccasin\": \"#ffe4b5\",\n \"navajowhite\": \"#ffdead\",\n \"navy\": \"#000080\",\n \"oldlace\": \"#fdf5e6\",\n \"olive\": \"#808000\",\n \"olivedrab\": \"#6b8e23\",\n \"orange\": \"#ffa500\",\n \"orangered\": \"#ff4500\",\n \"orchid\": \"#da70d6\",\n \"palegoldenrod\": \"#eee8aa\",\n \"palegreen\": \"#98fb98\",\n \"paleturquoise\": \"#afeeee\",\n \"palevioletred\": \"#d87093\",\n \"papayawhip\": \"#ffefd5\",\n \"peachpuff\": \"#ffdab9\",\n \"peru\": \"#cd853f\",\n \"pink\": \"#ffc0cb\",\n \"plum\": \"#dda0dd\",\n \"powderblue\": \"#b0e0e6\",\n \"purple\": \"#800080\",\n \"rebeccapurple\": \"#663399\",\n \"red\": \"#ff0000\",\n \"rosybrown\": \"#bc8f8f\",\n \"royalblue\": \"#4169e1\",\n \"saddlebrown\": \"#8b4513\",\n \"salmon\": \"#fa8072\",\n \"sandybrown\": \"#f4a460\",\n \"seagreen\": \"#2e8b57\",\n \"seashell\": \"#fff5ee\",\n \"sienna\": \"#a0522d\",\n \"silver\": \"#c0c0c0\",\n \"skyblue\": \"#87ceeb\",\n \"slateblue\": \"#6a5acd\",\n \"slategray\": \"#708090\",\n \"snow\": \"#fffafa\",\n \"springgreen\": \"#00ff7f\",\n \"steelblue\": \"#4682b4\",\n \"tan\": \"#d2b48c\",\n \"teal\": \"#008080\",\n \"thistle\": \"#d8bfd8\",\n \"tomato\": \"#ff6347\",\n \"turquoise\": \"#40e0d0\",\n \"violet\": \"#ee82ee\",\n \"wheat\": \"#f5deb3\",\n \"white\": \"#ffffff\",\n \"whitesmoke\": \"#f5f5f5\",\n \"yellow\": \"#ffff00\",\n \"yellowgreen\": \"#9acd32\"\n};\n\nvar _getHexColor = function _getHexColor(color) {\n\n color = color.replace('color:', '').replace(';', '').replace(' ', '');\n\n if (/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(color)) {\n return color;\n } else if (namedColors[color]) {\n return namedColors[color];\n } else if (color.indexOf('rgb') === 0) {\n\n var rgbArray = color.split(',');\n var convertedColor = rgbArray.length < 3 ? null : '#' + [rgbArray[0], rgbArray[1], rgbArray[2]].map(function (x) {\n var hex = parseInt(x.replace(/\\D/g, ''), 10).toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n }).join('');\n\n return (/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(convertedColor) ? convertedColor : null\n );\n } else {\n return null;\n }\n};\n\nvar namedColors = exports.namedColors = _namedColors;\nvar getHexColor = exports.getHexColor = _getHexColor;\n\nvar detectColorsFromHTMLString = exports.detectColorsFromHTMLString = function detectColorsFromHTMLString(html) {\n return typeof html !== 'string' ? [] : (html.match(/color:[^;]{3,24};/g) || []).map(getHexColor).filter(function (color) {\n return color;\n });\n};\n\nvar detectColorsFromDraftState = exports.detectColorsFromDraftState = function detectColorsFromDraftState(draftState) {\n\n var result = [];\n\n if (!draftState || !draftState.blocks || !draftState.blocks.length) {\n return result;\n }\n\n draftState.blocks.forEach(function (block) {\n if (block && block.inlineStyleRanges && block.inlineStyleRanges.length) {\n block.inlineStyleRanges.forEach(function (inlineStyle) {\n if (inlineStyle.style && inlineStyle.style.indexOf('COLOR-') >= 0) {\n result.push('#' + inlineStyle.style.split('COLOR-')[1]);\n }\n });\n }\n });\n\n return result.filter(function (color) {\n return color;\n });\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorUtils = exports.BaseUtils = exports.ContentUtils = undefined;\n\nvar _content = require('./content');\n\nvar _ContentUtils = _interopRequireWildcard(_content);\n\nvar _base = require('./base');\n\nvar _BaseUtils = _interopRequireWildcard(_base);\n\nvar _color = require('./color');\n\nvar _ColorUtils = _interopRequireWildcard(_color);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar ContentUtils = exports.ContentUtils = _ContentUtils;\nvar BaseUtils = exports.BaseUtils = _BaseUtils;\nvar ColorUtils = exports.ColorUtils = _ColorUtils;","/**\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}));","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\")) : factory(root[\"react\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__2__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar compressImage = exports.compressImage = function compressImage(url) {\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1280;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 800;\n\n\n return new Promise(function (resolve, reject) {\n\n var image = new Image();\n\n image.src = url;\n\n image.onerror = function (error) {\n reject(error);\n };\n\n image.onload = function () {\n\n try {\n\n var compressCanvas = document.createElement('canvas');\n var scale = this.width > width || this.height > height ? this.width > this.height ? width / this.width : height / this.height : 1;\n\n compressCanvas.width = this.width * scale;\n compressCanvas.height = this.height * scale;\n\n var canvasContext = compressCanvas.getContext('2d');\n canvasContext.drawImage(this, 0, 0, compressCanvas.width, compressCanvas.height);\n\n resolve({\n url: compressCanvas.toDataURL('image/png', 1),\n width: compressCanvas.width,\n height: compressCanvas.height\n });\n } catch (error) {\n reject(error);\n }\n };\n });\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar UniqueIndex = exports.UniqueIndex = function UniqueIndex() {\n\n if (isNaN(window.__BRAFT_MM_UNIQUE_INDEX__)) {\n window.__BRAFT_MM_UNIQUE_INDEX__ = 1;\n } else {\n window.__BRAFT_MM_UNIQUE_INDEX__ += 1;\n }\n\n return window.__BRAFT_MM_UNIQUE_INDEX__;\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: 'Kaldır',\n cancel: 'İptal',\n confirm: 'Onayla',\n insert: 'Seçilenleri ekle',\n width: 'Genişlik',\n height: 'Yükseklik',\n image: 'Resim',\n video: 'Görüntü',\n audio: 'Ses',\n embed: 'Nesne göm',\n caption: 'Kitaplık',\n dragTip: 'Tıkla ya da dosya sürükle',\n dropTip: 'Yüklemek için sürükleyin',\n selectAll: 'Tümünü seç',\n deselect: 'Seçimi kaldır',\n removeSelected: 'Seçilenleri kaldır',\n externalInputPlaceHolder: 'Kaynak adı|Kaynak bağlantısı',\n externalInputTip: 'Kaynak asını ve bağlantısını \"|\" ile ayırın ve Enter\\' a basın.',\n addLocalFile: 'Yerel\\' den ekle',\n addExternalSource: 'Harici kaynaktan ekle',\n unnamedItem: 'Adlandırılmamış giriş',\n confirmInsert: 'Seçilenleri ekle'\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: '削除する',\n cancel: 'キャンセル',\n confirm: '確認する',\n insert: '選択したアイテムを挿入',\n width: '幅',\n height: '身長',\n image: '絵',\n video: 'ビデオ',\n audio: '音声',\n embed: '埋め込みメディア',\n caption: 'メディアライブラリー',\n dragTip: 'ファイルをこの位置までクリックまたはドラッグします',\n dropTip: 'アップロードするマウスを放します',\n selectAll: 'すべて選択',\n deselect: '選択を解除',\n removeSelected: '選択したアイテムを削除',\n externalInputPlaceHolder: 'リソース名|リソースアドレス',\n externalInputTip: 'リソース名とリソースアドレスは \"|\"で区切ります。',\n addLocalFile: 'ローカルリソースを追加する',\n addExternalSource: 'ネットワークリソースを追加する',\n unnamedItem: '名前のないアイテム',\n confirmInsert: '選択したアイテムを挿入'\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: '삭제',\n cancel: '취소',\n confirm: '확인',\n insert: '선택한항목삽입',\n width: '너비',\n height: '높이',\n image: '그림',\n video: '비디오',\n audio: '오디오',\n embed: '임베디드미디어',\n caption: '미디어라이브러리',\n dragTip: '파일을 클릭하거나이 지점으로 드래그하십시오.',\n dropTip: '업로드하려면마우스를놓으십시오.',\n selectAll: '모두 선택',\n deselect: '선택 취소',\n removeSelected: '선택한 항목 삭제',\n externalInputPlaceHolder: '리소스 이름 | 리소스 주소',\n externalInputTip: '자원 이름과 자원 주소를 \"|\"',\n addLocalFile: '로컬 리소스 추가',\n addExternalSource: '네트워크 리소스 추가',\n unnamedItem: '이름없는 항목',\n confirmInsert: '선택한 항목 삽입'\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: 'Usuń',\n cancel: 'Anuluj',\n confirm: 'Potwierdź',\n insert: 'Wstaw wybrane elementy',\n width: 'Szerokość',\n height: 'Wysokość',\n image: 'Obraz',\n video: 'Wideo',\n audio: 'Dźwięk',\n embed: 'Obiekt',\n caption: 'Biblioteka mediów',\n dragTip: 'Kliknij lub przenieś tu pliki',\n dropTip: 'Upuść aby dodać plik',\n selectAll: 'Zaznacz wszystko',\n deselect: 'Odznacz',\n removeSelected: 'Usuń wybrane',\n externalInputPlaceHolder: 'Nazwa źródła|Adres URL',\n externalInputTip: 'Oddziel nazwę i adres URL źródła z pomocą \"|\", Potwierdź Enter-em',\n addLocalFile: 'Dodaj z komputera',\n addExternalSource: 'Dodaj z Internetu',\n unnamedItem: 'Bez nazwy',\n confirmInsert: 'Dodaj wybrane elementy'\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: '删除',\n cancel: '取消',\n confirm: '确认',\n insert: '插入所选项目',\n width: '宽度',\n height: '高度',\n image: '图片',\n video: '视频',\n audio: '音频',\n embed: '嵌入式媒体',\n caption: '媒体库',\n dragTip: '点击或拖动文件至此',\n dropTip: '放开鼠标以上传',\n selectAll: '选择全部',\n deselect: '取消选择',\n removeSelected: '删除选中项目',\n externalInputPlaceHolder: '资源名称|资源地址',\n externalInputTip: '使用“|”分隔资源名称和资源地址',\n addLocalFile: '添加本地资源',\n addExternalSource: '添加网络资源',\n unnamedItem: '未命名项目',\n confirmInsert: '插入选中项目'\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: '删除',\n cancel: '取消',\n confirm: '确认',\n insert: '插入所选项目',\n width: '宽度',\n height: '高度',\n image: '图片',\n video: '视频',\n audio: '音频',\n embed: '嵌入式媒体',\n caption: '媒体库',\n dragTip: '点击或拖动文件至此',\n dropTip: '放开鼠标以上传',\n selectAll: '选择全部',\n deselect: '取消选择',\n removeSelected: '删除选中项目',\n externalInputPlaceHolder: '资源名称|资源地址',\n externalInputTip: '使用“|”分隔资源名称和资源地址',\n addLocalFile: '添加本地资源',\n addExternalSource: '添加网络资源',\n unnamedItem: '未命名项目',\n confirmInsert: '插入选中项目'\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n remove: 'Remove',\n cancel: 'Cancel',\n confirm: 'Confirm',\n insert: 'Insert Selected Items',\n width: 'Width',\n height: 'Height',\n image: 'Image',\n video: 'Video',\n audio: 'Audio',\n embed: 'Embed',\n caption: 'Media Library',\n dragTip: 'Click Or Drag Files Here',\n dropTip: 'Drop To Upload',\n selectAll: 'Select All',\n deselect: 'Deselect',\n removeSelected: 'Remove Selected Items',\n externalInputPlaceHolder: 'Source Name|Source URL',\n externalInputTip: 'Split source name and source URL with \"|\", confirm by hit Enter.',\n addLocalFile: 'Add from local',\n addExternalSource: 'Add from Internet',\n unnamedItem: 'Unnamed Item',\n confirmInsert: 'Insert selected items'\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _en = __webpack_require__(9);\n\nvar _en2 = _interopRequireDefault(_en);\n\nvar _zh = __webpack_require__(8);\n\nvar _zh2 = _interopRequireDefault(_zh);\n\nvar _zhHant = __webpack_require__(7);\n\nvar _zhHant2 = _interopRequireDefault(_zhHant);\n\nvar _pl = __webpack_require__(6);\n\nvar _pl2 = _interopRequireDefault(_pl);\n\nvar _kr = __webpack_require__(5);\n\nvar _kr2 = _interopRequireDefault(_kr);\n\nvar _jpn = __webpack_require__(4);\n\nvar _jpn2 = _interopRequireDefault(_jpn);\n\nvar _tr = __webpack_require__(3);\n\nvar _tr2 = _interopRequireDefault(_tr);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n \"en\": _en2.default,\n \"zh\": _zh2.default,\n \"zh-hant\": _zhHant2.default,\n \"pl\": _pl2.default,\n \"kr\": _kr2.default,\n \"jpn\": _jpn2.default,\n \"tr\": _tr2.default\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(11);\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:font/ttf;base64,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\"\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar escape = __webpack_require__(15);\nexports = module.exports = __webpack_require__(14)(false);\n// imports\n\n\n// module\nexports.push([module.i, \"@font-face {\\n font-family: 'bf-icons';\\n src: url(\" + escape(__webpack_require__(13)) + \") format(\\\"truetype\\\");\\n font-weight: normal;\\n font-style: normal; }\\n\\n.braft-finder [class^=\\\"braft-icon-\\\"], .braft-finder [class*=\\\" braft-icon-\\\"] {\\n /* use !important to prevent issues with browser extensions that change fonts */\\n font-family: 'bf-icons' !important;\\n font-style: normal;\\n font-weight: normal;\\n font-variant: normal;\\n text-transform: none;\\n /* Better Font Rendering =========== */\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n.braft-finder .braft-icon-code:before {\\n content: \\\"\\\\E903\\\"; }\\n\\n.braft-finder .braft-icon-pause:before {\\n content: \\\"\\\\E034\\\"; }\\n\\n.braft-finder .braft-icon-play_arrow:before {\\n content: \\\"\\\\E037\\\"; }\\n\\n.braft-finder .braft-icon-bin:before {\\n content: \\\"\\\\E9AC\\\"; }\\n\\n.braft-finder .braft-icon-replay:before {\\n content: \\\"\\\\E042\\\"; }\\n\\n.braft-finder .braft-icon-close:before {\\n content: \\\"\\\\E913\\\"; }\\n\\n.braft-finder .braft-icon-music:before {\\n content: \\\"\\\\E90E\\\"; }\\n\\n.braft-finder .braft-icon-camera:before {\\n content: \\\"\\\\E911\\\"; }\\n\\n.braft-finder .braft-icon-file-text:before {\\n content: \\\"\\\\E926\\\"; }\\n\\n.braft-finder .braft-icon-film:before {\\n content: \\\"\\\\E91C\\\"; }\\n\\n.braft-finder .braft-icon-paste:before {\\n content: \\\"\\\\E92D\\\"; }\\n\\n.braft-finder .braft-icon-spinner:before {\\n content: \\\"\\\\E980\\\"; }\\n\\n.braft-finder .braft-icon-media:before {\\n content: \\\"\\\\E90F\\\"; }\\n\\n.braft-finder .braft-icon-add:before {\\n content: \\\"\\\\E918\\\"; }\\n\\n.braft-finder .braft-icon-done:before {\\n content: \\\"\\\\E912\\\"; }\\n\\n.braft-finder .braft-icon-drop-down:before {\\n content: \\\"\\\\E906\\\"; }\\n\\n.braft-finder .braft-icon-drop-up:before {\\n content: \\\"\\\\E909\\\"; }\\n\\n.braft-finder .braft-icon-help:before {\\n content: \\\"\\\\E902\\\"; }\\n\\n.braft-finder .braft-icon-info:before {\\n content: \\\"\\\\E901\\\"; }\\n\\n.braft-finder .braft-icon-menu:before {\\n content: \\\"\\\\E908\\\"; }\\n\\n.pull-left {\\n float: left; }\\n\\n.pull-right {\\n float: right; }\\n\\n.braft-finder .bf-uploader {\\n position: relative;\\n height: 370px;\\n margin: 0; }\\n .braft-finder .bf-uploader.draging .bf-list-wrap,\\n .braft-finder .bf-uploader.draging .bf-add-external {\\n pointer-events: none; }\\n .braft-finder .bf-uploader input::-webkit-input-placeholder {\\n color: #ccc; }\\n .braft-finder .bf-uploader input::-moz-placeholder {\\n color: #ccc; }\\n .braft-finder .bf-uploader input::-ms-input-placeholder {\\n color: #ccc; }\\n\\n.braft-finder .bf-list-wrap {\\n position: relative;\\n height: 370px; }\\n\\n.braft-finder .bf-list-tools {\\n z-index: 1;\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n height: 20px;\\n padding: 0 15px;\\n background-color: #fff; }\\n .braft-finder .bf-list-tools span {\\n height: 26px;\\n font-size: 12px;\\n line-height: 20px;\\n cursor: pointer;\\n user-select: none; }\\n .braft-finder .bf-list-tools span[disabled] {\\n opacity: .3;\\n pointer-events: none; }\\n .braft-finder .bf-list-tools .bf-select-all,\\n .braft-finder .bf-list-tools .bf-deselect-all {\\n float: left;\\n margin-right: 5px;\\n color: #bbb; }\\n .braft-finder .bf-list-tools .bf-select-all:hover,\\n .braft-finder .bf-list-tools .bf-deselect-all:hover {\\n color: #3498db; }\\n .braft-finder .bf-list-tools .bf-remove-selected {\\n float: right;\\n color: #e74c3c; }\\n .braft-finder .bf-list-tools .bf-remove-selected:hover {\\n color: #c92e1e; }\\n\\n.braft-finder .bf-list {\\n position: absolute;\\n z-index: 1;\\n top: 30px;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n margin: 0;\\n padding: 0 10px;\\n list-style: none;\\n overflow: auto; }\\n .braft-finder .bf-list::-webkit-scrollbar {\\n width: 5px;\\n height: 5px;\\n background-color: #fff; }\\n .braft-finder .bf-list::-webkit-scrollbar-track {\\n background-color: #fff; }\\n .braft-finder .bf-list::-webkit-scrollbar-thumb {\\n background-color: rgba(0, 0, 0, 0.1); }\\n\\n.braft-finder .bf-item,\\n.braft-finder .bf-add-item {\\n position: relative;\\n display: block;\\n float: left;\\n width: 113px;\\n height: 113px;\\n margin: 5px;\\n overflow: hidden;\\n border-radius: 3px; }\\n\\n.braft-finder .bf-item.uploading {\\n pointer-events: none; }\\n\\n.braft-finder .bf-item.error::before {\\n display: block;\\n content: \\\"\\\\E901\\\"; }\\n\\n.braft-finder .bf-item.error::after {\\n position: absolute;\\n z-index: 1;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: rgba(231, 76, 60, 0.8);\\n content: ''; }\\n\\n.braft-finder .bf-item.error:hover::after {\\n background-color: rgba(231, 76, 60, 0.9); }\\n\\n.braft-finder .bf-item.error .bf-item-uploading {\\n display: none; }\\n\\n.braft-finder .bf-add-item {\\n background-color: #ecedef;\\n color: #999; }\\n .braft-finder .bf-add-item:hover {\\n background-color: #e1e2e3; }\\n .braft-finder .bf-add-item i {\\n display: block;\\n width: 113px;\\n height: 113px;\\n font-size: 48px;\\n line-height: 113px;\\n text-align: center; }\\n .braft-finder .bf-add-item input {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n opacity: 0;\\n cursor: pointer; }\\n\\n.braft-finder .bf-item::before {\\n display: none;\\n position: absolute;\\n z-index: 2;\\n top: 0;\\n left: 0;\\n width: 113px;\\n height: 113px;\\n color: #fff;\\n font-size: 48px;\\n font-family: 'bf-icons';\\n line-height: 113px;\\n text-align: center; }\\n\\n.braft-finder .bf-item::after {\\n position: absolute;\\n z-index: 1;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: rgba(52, 152, 219, 0);\\n content: ''; }\\n\\n.braft-finder .bf-item:hover::after {\\n background-color: rgba(52, 152, 219, 0.3); }\\n\\n.braft-finder .bf-item:hover .bf-item-remove {\\n display: block; }\\n\\n.braft-finder .bf-item.active::before {\\n display: block;\\n content: \\\"\\\\E912\\\"; }\\n\\n.braft-finder .bf-item.active::after {\\n background-color: rgba(52, 152, 219, 0.6); }\\n\\n.braft-finder .bf-item.active:hover::after {\\n background-color: rgba(52, 152, 219, 0.8); }\\n\\n.braft-finder .bf-item.active:hover .bf-item-remove {\\n display: none; }\\n\\n.braft-finder .bf-item-uploading {\\n box-sizing: border-box;\\n position: absolute;\\n z-index: 3;\\n top: 52px;\\n left: 10px;\\n width: 93px;\\n height: 10px;\\n overflow: hidden;\\n background-color: rgba(255, 255, 255, 0.3);\\n border-radius: 5px;\\n box-shadow: 0 0 0 100px rgba(0, 0, 0, 0.5); }\\n\\n.braft-finder .bf-item-uploading-bar {\\n height: 10px;\\n background-color: #3498db;\\n border-radius: 0; }\\n\\n.braft-finder .bf-item-remove {\\n display: none;\\n position: absolute;\\n z-index: 2;\\n top: 0;\\n right: 0;\\n width: 28px;\\n height: 28px;\\n color: #fff;\\n font-size: 18px;\\n line-height: 28px;\\n text-align: center;\\n cursor: pointer; }\\n .braft-finder .bf-item-remove:hover {\\n color: #e74c3c; }\\n\\n.braft-finder .bf-item-title {\\n display: none;\\n box-sizing: border-box;\\n position: absolute;\\n z-index: 2;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 40px;\\n padding: 0 5px;\\n overflow: hidden;\\n background-image: linear-gradient(rgba(0, 0, 0, 0), black);\\n color: #fff;\\n font-size: 12px;\\n line-height: 55px;\\n text-align: center;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.braft-finder .bf-image {\\n width: 100%;\\n height: 100%;\\n background-color: #eee;\\n user-select: none; }\\n .braft-finder .bf-image img {\\n display: block;\\n width: 100%;\\n height: 100%;\\n object-fit: cover; }\\n\\n.braft-finder .bf-video {\\n background-color: #8e44ad; }\\n\\n.braft-finder .bf-audio {\\n background-color: #f39c12; }\\n\\n.braft-finder .bf-embed {\\n background-color: #f1c40f; }\\n\\n.braft-finder .bf-icon {\\n display: block;\\n width: 113px;\\n height: 113px;\\n overflow: hidden;\\n color: #fff;\\n text-align: center;\\n text-decoration: none; }\\n .braft-finder .bf-icon i, .braft-finder .bf-icon span {\\n display: block; }\\n .braft-finder .bf-icon i {\\n margin-top: 35px;\\n font-size: 24px; }\\n .braft-finder .bf-icon span {\\n width: 103px;\\n margin: 10px auto;\\n overflow: hidden;\\n font-size: 12px;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.braft-finder .bf-drag-uploader {\\n box-sizing: border-box;\\n position: absolute;\\n z-index: 2;\\n top: 0;\\n right: 15px;\\n left: 15px;\\n height: 100%;\\n background-color: #fff;\\n border: dashed 1px #bbb;\\n text-align: center;\\n opacity: 0;\\n pointer-events: none; }\\n .braft-finder .bf-drag-uploader:hover, .braft-finder .bf-drag-uploader.draging {\\n background-color: #f1f2f3; }\\n .braft-finder .bf-drag-uploader.active {\\n opacity: 1;\\n pointer-events: auto; }\\n\\n.braft-finder .bf-uploader-buttons {\\n height: 370px;\\n margin: auto;\\n text-align: center; }\\n\\n.braft-finder .bf-drag-tip {\\n display: inline-block;\\n margin-top: 150px;\\n color: #ccc;\\n text-align: center;\\n font-size: 28px;\\n font-weight: normal;\\n line-height: 40px; }\\n .braft-finder .bf-drag-tip input {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n opacity: 0;\\n color: #fff;\\n text-indent: -100px;\\n cursor: pointer; }\\n\\n.braft-finder .bf-manager-footer {\\n height: 36px;\\n margin: 10px 0;\\n padding: 0 15px; }\\n .braft-finder .bf-manager-footer .button {\\n float: right;\\n height: 36px;\\n margin-left: 5px;\\n padding: 0 35px;\\n font-size: 12px;\\n font-weight: 700;\\n border: none;\\n border-radius: 3px;\\n cursor: pointer; }\\n .braft-finder .bf-manager-footer .button-insert {\\n color: #fff;\\n background-color: #3498db; }\\n .braft-finder .bf-manager-footer .button-insert:hover {\\n background-color: #2084c7; }\\n .braft-finder .bf-manager-footer .button-insert[disabled] {\\n opacity: .3;\\n pointer-events: none;\\n filter: grayscale(0.4); }\\n .braft-finder .bf-manager-footer .button-cancel {\\n color: #999;\\n background-color: #e8e8e9; }\\n .braft-finder .bf-manager-footer .button-cancel:hover {\\n background-color: #d8d8d9; }\\n\\n.braft-finder .bf-toggle-external-form {\\n color: #666;\\n font-size: 12px;\\n line-height: 36px; }\\n .braft-finder .bf-toggle-external-form span {\\n color: #bbb;\\n line-height: 16px;\\n cursor: pointer;\\n user-select: none; }\\n .braft-finder .bf-toggle-external-form span:hover {\\n color: #3498db; }\\n .braft-finder .bf-toggle-external-form span i {\\n position: relative;\\n top: 2px;\\n font-size: 16px; }\\n\\n.braft-finder .bf-add-external {\\n position: absolute;\\n z-index: 3;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: #fff; }\\n .braft-finder .bf-add-external input {\\n border: solid 1px rgba(0, 0, 0, 0.3);\\n border: solid 0.5px rgba(0, 0, 0, 0.3);\\n box-shadow: none; }\\n .braft-finder .bf-add-external input:focus {\\n border-color: #3498db;\\n box-shadow: none; }\\n\\n.braft-finder .bf-external-form {\\n width: 500px;\\n max-width: 90%;\\n margin: 91px auto 0 auto; }\\n\\n.braft-finder .bf-external-input {\\n position: relative;\\n width: 100%;\\n height: 40px;\\n margin-bottom: 10px; }\\n .braft-finder .bf-external-input div {\\n position: absolute;\\n top: 0;\\n right: 85px;\\n left: 0;\\n height: 40px; }\\n .braft-finder .bf-external-input input,\\n .braft-finder .bf-external-input textarea {\\n display: block;\\n box-sizing: border-box;\\n width: 100%;\\n height: 40px;\\n padding: 0 10px;\\n border: none;\\n border-radius: 3px;\\n outline: none;\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3);\\n color: #999;\\n font-size: 18px; }\\n .braft-finder .bf-external-input input:focus,\\n .braft-finder .bf-external-input textarea:focus {\\n box-shadow: inset 0 0 0 1px #3498db; }\\n .braft-finder .bf-external-input textarea {\\n height: 100px;\\n font-size: 14px; }\\n .braft-finder .bf-external-input button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 80px;\\n height: 40px;\\n background-color: #3498db;\\n border: none;\\n border-radius: 3px;\\n color: #fff;\\n font-size: 14px;\\n font-weight: bold;\\n cursor: pointer; }\\n .braft-finder .bf-external-input button:disabled {\\n opacity: .3;\\n pointer-events: none;\\n filter: grayscale(0.4); }\\n .braft-finder .bf-external-input button:hover {\\n background-color: #2084c7; }\\n\\n.braft-finder .bf-switch-external-type {\\n overflow: hidden;\\n text-align: center; }\\n .braft-finder .bf-switch-external-type button {\\n width: auto;\\n height: 30px;\\n margin: 10px 5px;\\n padding: 0 10px;\\n background-color: #e8e9ea;\\n border: none;\\n border-radius: 3px;\\n color: #999;\\n font-size: 12px;\\n cursor: pointer; }\\n .braft-finder .bf-switch-external-type button:hover {\\n background-color: #d8d9da; }\\n .braft-finder .bf-switch-external-type button:only-child {\\n display: none; }\\n .braft-finder .bf-switch-external-type[data-type=\\\"IMAGE\\\"] [data-type=\\\"IMAGE\\\"],\\n .braft-finder .bf-switch-external-type[data-type=\\\"VIDEO\\\"] [data-type=\\\"VIDEO\\\"],\\n .braft-finder .bf-switch-external-type[data-type=\\\"AUDIO\\\"] [data-type=\\\"AUDIO\\\"],\\n .braft-finder .bf-switch-external-type[data-type=\\\"EMBED\\\"] [data-type=\\\"EMBED\\\"],\\n .braft-finder .bf-switch-external-type[data-type=\\\"FILE\\\"] [data-type=\\\"FILE\\\"] {\\n background-color: #3498db;\\n color: #fff; }\\n\\n.braft-finder .bf-external-tip {\\n display: block;\\n margin-top: 15px;\\n color: #ccc;\\n font-size: 12px;\\n text-align: center; }\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar content = __webpack_require__(16);\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(12)(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.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; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(17);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _base = __webpack_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultAccepts = {\n image: 'image/png,image/jpeg,image/gif,image/webp,image/apng,image/svg',\n video: 'video/mp4',\n audio: 'audio/mp3'\n};\n\nvar BraftFinderView = function (_React$Component) {\n _inherits(BraftFinderView, _React$Component);\n\n function BraftFinderView(props) {\n _classCallCheck(this, BraftFinderView);\n\n var _this = _possibleConstructorReturn(this, (BraftFinderView.__proto__ || Object.getPrototypeOf(BraftFinderView)).call(this, props));\n\n _this.toggleSelectItem = function (event) {\n\n var itemId = event.currentTarget.dataset.id;\n var item = _this.controller.getMediaItem(itemId);\n\n if (!item) {\n return false;\n }\n\n if (item.selected) {\n\n if (!_this.props.onBeforeDeselect || _this.props.onBeforeDeselect([item], _this.controller.getItems()) !== false) {\n _this.controller.deselectMediaItem(itemId);\n _this.props.onDeselect && _this.props.onDeselect([item], _this.controller.getItems());\n }\n } else {\n\n if (!_this.props.onBeforeSelect || _this.props.onBeforeSelect([item], _this.controller.getItems()) !== false) {\n _this.controller.selectMediaItem(itemId);\n _this.props.onSelect && _this.props.onSelect([item], _this.controller.getItems());\n }\n }\n };\n\n _this.removeItem = function (event) {\n\n var itemId = event.currentTarget.dataset.id;\n var item = _this.controller.getMediaItem(itemId);\n\n if (!item) {\n return false;\n }\n\n if (!_this.props.onBeforeRemove || _this.props.onBeforeRemove([item], _this.controller.getItems()) !== false) {\n _this.controller.removeMediaItem(itemId);\n _this.props.onRemove && _this.props.onRemove([item], _this.controller.getItems());\n }\n\n event.stopPropagation();\n };\n\n _this.selectAllItems = function () {\n\n var allItems = _this.controller.getItems();\n\n if (!_this.props.onBeforeSelect || _this.props.onBeforeSelect(allItems, allItems) !== false) {\n _this.controller.selectAllItems();\n _this.props.onSelect && _this.props.onSelect(allItems, allItems);\n }\n };\n\n _this.deselectAllItems = function () {\n\n var allItems = _this.controller.getItems();\n\n if (!_this.props.onBeforeDeselect || _this.props.onBeforeDeselect(allItems, allItems) !== false) {\n _this.controller.deselectAllItems();\n _this.props.onDeselect && _this.props.onDeselect(allItems, allItems);\n }\n };\n\n _this.removeSelectedItems = function () {\n\n var selectedItems = _this.controller.getSelectedItems();\n\n if (!_this.props.onBeforeRemove || _this.props.onBeforeRemove(selectedItems, _this.controller.getItems()) !== false) {\n _this.controller.removeSelectedItems();\n _this.props.onRemove && _this.props.onRemove(selectedItems, _this.controller.getItems());\n }\n };\n\n _this.handleDragLeave = function (event) {\n event.preventDefault();\n _this.dragCounter--;\n _this.dragCounter === 0 && _this.setState({\n draging: false\n });\n };\n\n _this.handleDragDrop = function (event) {\n event.preventDefault();\n _this.dragCounter = 0;\n _this.setState({ draging: false });\n _this.reslovePickedFiles(event);\n };\n\n _this.handleDragEnter = function (event) {\n event.preventDefault();\n _this.dragCounter++;\n _this.setState({ draging: true });\n };\n\n _this.reslovePickedFiles = function (event) {\n\n event.persist();\n\n var _ref = event.type === 'drop' ? event.dataTransfer : event.target,\n files = _ref.files;\n\n if (_this.props.onFileSelect) {\n var result = _this.props.onFileSelect(files);\n if (result === false) {\n return false;\n } else if (result instanceof FileList || result instanceof Array) {\n files = result;\n }\n }\n\n var accepts = _extends({}, defaultAccepts, _this.props.accepts);\n\n _this.controller.resolveFiles({\n files: files,\n onItemReady: function onItemReady(_ref2) {\n var id = _ref2.id;\n return _this.controller.selectMediaItem(id);\n },\n onAllReady: function onAllReady() {\n return event.target.value = null;\n }\n }, 0, accepts);\n };\n\n _this.inputExternal = function (event) {\n _this.setState({\n external: _extends({}, _this.state.external, {\n url: event.target.value\n })\n });\n };\n\n _this.switchExternalType = function (event) {\n _this.setState({\n external: _extends({}, _this.state.external, { type: event.target.dataset.type })\n });\n };\n\n _this.confirmAddExternal = function (event) {\n\n if (event.target.nodeName.toLowerCase() === 'button' || event.keyCode === 13) {\n var _this$state$external = _this.state.external,\n url = _this$state$external.url,\n type = _this$state$external.type;\n\n url = url.split('|');\n var name = url.length > 1 ? url[0] : _this.props.language.unnamedItem;\n url = url.length > 1 ? url[1] : url[0];\n var thumbnail = type === 'IMAGE' ? url : null;\n\n _this.controller.addItems([{\n thumbnail: thumbnail, url: url, name: name, type: type,\n id: new Date().getTime() + '_' + (0, _base.UniqueIndex)(),\n uploading: false,\n uploadProgress: 1,\n selected: true\n }]);\n\n _this.setState({\n showExternalForm: false,\n external: {\n url: '',\n type: 'IMAGE'\n }\n });\n }\n };\n\n _this.toggleExternalForm = function () {\n _this.setState({\n showExternalForm: !_this.state.showExternalForm\n });\n };\n\n _this.cancelInsert = function () {\n _this.props.onCancel && _this.props.onCancel();\n };\n\n _this.confirmInsert = function () {\n\n var selectedItems = _this.controller.getSelectedItems();\n\n if (_this.props.onBeforeInsert) {\n\n var filteredItems = _this.props.onBeforeInsert(selectedItems);\n\n if (filteredItems && filteredItems instanceof Array) {\n _this.controller.deselectAllItems();\n _this.props.onInsert && _this.props.onInsert(filteredItems);\n } else if (filteredItems !== false) {\n _this.controller.deselectAllItems();\n _this.props.onInsert && _this.props.onInsert(selectedItems);\n }\n } else {\n _this.controller.deselectAllItems();\n _this.props.onInsert && _this.props.onInsert(selectedItems);\n }\n };\n\n _this.dragCounter = 0;\n _this.controller = _this.props.controller;\n var initialItems = _this.controller.getItems();\n\n _this.state = {\n draging: false,\n error: false,\n confirmable: initialItems.find(function (_ref3) {\n var selected = _ref3.selected;\n return selected;\n }),\n external: {\n url: '',\n type: 'IMAGE'\n },\n fileAccept: '',\n showExternalForm: false,\n allowExternal: false,\n items: initialItems\n };\n\n _this.changeListenerId = _this.controller.onChange(function (items) {\n _this.setState({ items: items, confirmable: items.find(function (_ref4) {\n var selected = _ref4.selected;\n return selected;\n }) });\n _this.props.onChange && _this.props.onChange(items);\n });\n\n return _this;\n }\n\n _createClass(BraftFinderView, [{\n key: 'mapPropsToState',\n value: function mapPropsToState(props) {\n var accepts = props.accepts,\n externals = props.externals;\n\n\n accepts = _extends({}, defaultAccepts, accepts);\n\n var fileAccept = !accepts ? [defaultAccepts.image, defaultAccepts.video, defaultAccepts.audio].join(',') : [accepts.image, accepts.video, accepts.audio].filter(function (item) {\n return item;\n }).join(',');\n\n var external = {\n url: '',\n type: externals.image ? 'IMAGE' : externals.audio ? 'AUDIO' : externals.video ? 'VIDEO' : externals.embed ? 'EMBED' : ''\n };\n\n return {\n fileAccept: fileAccept,\n external: external,\n allowExternal: externals && (externals.image || externals.audio || externals.video || externals.embed)\n };\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.setState(this.mapPropsToState(this.props));\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.setState(this.mapPropsToState(nextProps));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.controller.offChange(this.changeListenerId);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n language = _props.language,\n externals = _props.externals;\n var _state = this.state,\n items = _state.items,\n draging = _state.draging,\n confirmable = _state.confirmable,\n fileAccept = _state.fileAccept,\n external = _state.external,\n showExternalForm = _state.showExternalForm,\n allowExternal = _state.allowExternal;\n\n\n return _react2.default.createElement(\n 'div',\n { className: 'braft-finder' },\n _react2.default.createElement(\n 'div',\n {\n onDragEnter: this.handleDragEnter,\n onDragOver: this.handleDragEnter,\n onDragLeave: this.handleDragLeave,\n onDrop: this.handleDragDrop,\n className: 'bf-uploader'\n },\n _react2.default.createElement(\n 'div',\n { className: \"bf-drag-uploader \" + (draging || !items.length ? 'active ' : ' ') + (draging ? 'draging' : '') },\n _react2.default.createElement(\n 'span',\n { className: 'bf-drag-tip' },\n _react2.default.createElement('input', { accept: fileAccept, onChange: this.reslovePickedFiles, multiple: true, type: 'file' }),\n draging ? language.dropTip : language.dragTip\n )\n ),\n items.length ? _react2.default.createElement(\n 'div',\n { className: 'bf-list-wrap' },\n _react2.default.createElement(\n 'div',\n { className: 'bf-list-tools' },\n _react2.default.createElement(\n 'span',\n { onClick: this.selectAllItems, className: 'bf-select-all' },\n _react2.default.createElement('i', { className: 'braft-icon-done' }),\n ' ',\n language.selectAll\n ),\n _react2.default.createElement(\n 'span',\n { onClick: this.deselectAllItems, disabled: !confirmable, className: 'bf-deselect-all' },\n _react2.default.createElement('i', { className: 'braft-icon-close' }),\n ' ',\n language.deselect\n ),\n _react2.default.createElement(\n 'span',\n { onClick: this.removeSelectedItems, disabled: !confirmable, className: 'bf-remove-selected' },\n _react2.default.createElement('i', { className: 'braft-icon-bin' }),\n ' ',\n language.removeSelected\n )\n ),\n this.buildItemList()\n ) : null,\n showExternalForm && allowExternal ? _react2.default.createElement(\n 'div',\n { className: 'bf-add-external' },\n _react2.default.createElement(\n 'div',\n { className: 'bf-external-form' },\n _react2.default.createElement(\n 'div',\n { className: 'bf-external-input' },\n _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement('input', { onKeyDown: this.confirmAddExternal, value: external.url, onChange: this.inputExternal, placeholder: language.externalInputPlaceHolder })\n ),\n _react2.default.createElement(\n 'button',\n { type: 'button', onClick: this.confirmAddExternal, disabled: !external.url.trim().length },\n language.confirm\n )\n ),\n _react2.default.createElement(\n 'div',\n { 'data-type': external.type, className: 'bf-switch-external-type' },\n externals.image ? _react2.default.createElement(\n 'button',\n { type: 'button', onClick: this.switchExternalType, 'data-type': 'IMAGE' },\n language.image\n ) : null,\n externals.audio ? _react2.default.createElement(\n 'button',\n { type: 'button', onClick: this.switchExternalType, 'data-type': 'AUDIO' },\n language.audio\n ) : null,\n externals.video ? _react2.default.createElement(\n 'button',\n { type: 'button', onClick: this.switchExternalType, 'data-type': 'VIDEO' },\n language.video\n ) : null,\n externals.embed ? _react2.default.createElement(\n 'button',\n { type: 'button', onClick: this.switchExternalType, 'data-type': 'EMBED' },\n language.embed\n ) : null\n ),\n _react2.default.createElement(\n 'span',\n { className: 'bf-external-tip' },\n language.externalInputTip\n )\n )\n ) : null\n ),\n _react2.default.createElement(\n 'footer',\n { className: 'bf-manager-footer' },\n _react2.default.createElement(\n 'div',\n { className: 'pull-left' },\n allowExternal ? _react2.default.createElement(\n 'span',\n {\n onClick: this.toggleExternalForm,\n className: 'bf-toggle-external-form'\n },\n showExternalForm ? _react2.default.createElement(\n 'span',\n { className: 'bf-bottom-text' },\n _react2.default.createElement('i', { className: 'braft-icon-add' }),\n ' ',\n language.addLocalFile\n ) : _react2.default.createElement(\n 'span',\n { className: 'bf-bottom-text' },\n _react2.default.createElement('i', { className: 'braft-icon-add' }),\n ' ',\n language.addExternalSource\n )\n ) : null\n ),\n _react2.default.createElement(\n 'div',\n { className: 'pull-right' },\n _react2.default.createElement(\n 'button',\n { onClick: this.confirmInsert, className: 'button button-insert', disabled: !confirmable },\n language.insert\n ),\n _react2.default.createElement(\n 'button',\n { onClick: this.cancelInsert, className: 'button button-cancel' },\n language.cancel\n )\n )\n )\n );\n }\n }, {\n key: 'buildItemList',\n value: function buildItemList() {\n var _this2 = this;\n\n return _react2.default.createElement(\n 'ul',\n { className: 'bf-list' },\n _react2.default.createElement(\n 'li',\n { className: 'bf-add-item' },\n _react2.default.createElement('i', { className: 'braft-icon-add' }),\n _react2.default.createElement('input', { accept: this.state.fileAccept, onChange: this.reslovePickedFiles, multiple: true, type: 'file' })\n ),\n this.state.items.map(function (item, index) {\n\n var previewerComponents = null;\n var progressMarker = item.uploading && !_this2.props.hideProgress ? _react2.default.createElement(\n 'div',\n { className: 'bf-item-uploading' },\n _react2.default.createElement('div', { className: 'bf-item-uploading-bar', style: { width: item.uploadProgress / 1 + '%' } })\n ) : '';\n\n switch (item.type) {\n case 'IMAGE':\n previewerComponents = _react2.default.createElement(\n 'div',\n { className: 'bf-image' },\n progressMarker,\n _react2.default.createElement('img', { src: item.thumbnail || item.url })\n );\n break;\n case 'VIDEO':\n previewerComponents = _react2.default.createElement(\n 'div',\n { className: 'bf-icon bf-video', title: item.url },\n progressMarker,\n _react2.default.createElement('i', { className: 'braft-icon-film' }),\n _react2.default.createElement(\n 'span',\n null,\n item.name || item.url\n )\n );\n break;\n case 'AUDIO':\n previewerComponents = _react2.default.createElement(\n 'div',\n { className: 'bf-icon bf-audio', title: item.url },\n progressMarker,\n _react2.default.createElement('i', { className: 'braft-icon-music' }),\n _react2.default.createElement(\n 'span',\n null,\n item.name || item.url\n )\n );\n break;\n case 'EMBED':\n previewerComponents = _react2.default.createElement(\n 'div',\n { className: 'bf-icon bf-embed', title: item.url },\n progressMarker,\n _react2.default.createElement('i', { className: 'braft-icon-code' }),\n _react2.default.createElement(\n 'span',\n null,\n item.name || _this2.props.language.embed\n )\n );\n break;\n default:\n previewerComponents = _react2.default.createElement(\n 'a',\n { className: 'bf-icon bf-file', title: item.url, href: item.url },\n progressMarker,\n _react2.default.createElement('i', { className: 'braft-icon-file-text' }),\n _react2.default.createElement(\n 'span',\n null,\n item.name || item.url\n )\n );\n break;\n }\n\n var className = ['bf-item'];\n item.selected && className.push('active');\n item.uploading && className.push('uploading');\n item.error && className.push('error');\n\n return _react2.default.createElement(\n 'li',\n {\n key: index,\n title: item.name,\n 'data-id': item.id,\n className: className.join(' '),\n onClick: _this2.toggleSelectItem\n },\n previewerComponents,\n _react2.default.createElement('span', { 'data-id': item.id, onClick: _this2.removeItem, className: 'bf-item-remove braft-icon-close' }),\n _react2.default.createElement(\n 'span',\n { className: 'bf-item-title' },\n item.name\n )\n );\n })\n );\n }\n }]);\n\n return BraftFinderView;\n}(_react2.default.Component);\n\nBraftFinderView.defaultProps = {\n accepts: defaultAccepts,\n externals: {\n image: true,\n video: true,\n audio: true,\n embed: true\n }\n};\nexports.default = BraftFinderView;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.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; };\n\nvar _base = __webpack_require__(1);\n\nvar _image = __webpack_require__(0);\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultValidator = function defaultValidator() {\n return true;\n};\n\nvar BraftFinderController = function BraftFinderController() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, BraftFinderController);\n\n _initialiseProps.call(this);\n\n this.items = props.items || [];\n this.uploadFn = props.uploader;\n this.validateFn = props.validator || defaultValidator;\n\n this.changeListeners = [];\n}\n\n// resolvePastedFiles ({ clipboardData }, callback) {\n\n// if (clipboardData && clipboardData.items && clipboardData.items[0].type.indexOf('image') > -1) {\n// this.uploadImage(clipboardData.items[0].getAsFile(), callback)\n// }\n\n// }\n\n;\n\nvar _initialiseProps = function _initialiseProps() {\n var _this = this;\n\n this.setProps = function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n _this.items = props.items || _this.items || [];\n _this.uploadFn = props.uploader;\n _this.validateFn = props.validator || defaultValidator;\n };\n\n this.getMediaItem = function (id) {\n return _this.items.find(function (item) {\n return item.id === id;\n });\n };\n\n this.getSelectedItems = function () {\n return _this.items.filter(function (item) {\n return item.selected;\n });\n };\n\n this.getItems = function () {\n return _this.items;\n };\n\n this.setItems = function (items) {\n _this.items = items.map(function (item) {\n return _extends({}, item, { id: item.id.toString() });\n }) || [];\n _this.applyChange();\n _this.uploadItems();\n };\n\n this.addMediaItem = function (item) {\n _this.addItems([item]);\n };\n\n this.addItems = function (items) {\n _this.items = [].concat(_toConsumableArray(_this.items), _toConsumableArray(items.map(function (item) {\n return _extends({}, item, { id: item.id.toString() });\n })));\n _this.applyChange();\n _this.uploadItems();\n };\n\n this.selectMediaItem = function (id) {\n var item = _this.getMediaItem(id);\n if (item && (item.uploading || item.error)) {\n return false;\n }\n _this.setMediaItemState(id, {\n selected: true\n });\n };\n\n this.selectAllItems = function () {\n _this.items = _this.items.filter(function (item) {\n return !item.error && !item.uploading;\n }).map(function (item) {\n return _extends({}, item, { selected: true });\n });\n _this.applyChange();\n };\n\n this.deselectMediaItem = function (id) {\n _this.setMediaItemState(id, {\n selected: false\n });\n };\n\n this.deselectAllItems = function () {\n _this.items = _this.items.map(function (item) {\n return _extends({}, item, { selected: false });\n });\n _this.applyChange();\n };\n\n this.removeMediaItem = function (id) {\n _this.items = _this.items.filter(function (item) {\n return item.id !== id;\n });\n _this.applyChange();\n };\n\n this.removeItems = function () {\n var ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n _this.items = _this.items.filter(function (item) {\n return !ids.includes(item.id);\n });\n _this.applyChange();\n };\n\n this.removeSelectedItems = function () {\n _this.items = _this.items.filter(function (item) {\n return !item.selected;\n });\n _this.applyChange();\n };\n\n this.removeErrorItems = function () {\n _this.items = _this.items.filter(function (item) {\n return !item.error;\n });\n _this.applyChange();\n };\n\n this.removeAllItems = function () {\n _this.items = [];\n _this.applyChange();\n };\n\n this.setMediaItemState = function (id, state) {\n _this.items = _this.items.map(function (item) {\n return item.id === id ? _extends({}, item, state) : item;\n });\n _this.applyChange();\n };\n\n this.reuploadErrorItems = function () {\n _this.uploadItems(true);\n };\n\n this.uploadItems = function () {\n var ignoreError = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n\n _this.items.forEach(function (item, index) {\n\n if (item.uploading || item.url) {\n return false;\n }\n\n if (!ignoreError && item.error) {\n return false;\n }\n\n if (item.type === 'IMAGE') {\n _this.createThumbnail(item);\n _this.uploadFn = _this.uploadFn || _this.createInlineImage;\n } else if (!_this.uploadFn) {\n _this.setMediaItemState(item.id, { error: 1 });\n return false;\n }\n\n _this.setMediaItemState(item.id, {\n uploading: true,\n uploadProgress: 0,\n error: 0\n });\n\n _this.uploadFn({\n id: item.id,\n file: item.file,\n success: function success(res) {\n _this.handleUploadSuccess(item.id, res);\n },\n progress: function progress(_progress) {\n _this.setMediaItemState(item.id, {\n uploading: true,\n uploadProgress: _progress\n });\n },\n error: function error(_error) {\n _this.setMediaItemState(item.id, {\n uploading: false,\n error: 2\n });\n }\n });\n });\n };\n\n this.createThumbnail = function (_ref) {\n var id = _ref.id,\n file = _ref.file;\n\n\n (0, _image.compressImage)(URL.createObjectURL(file), 226, 226).then(function (result) {\n _this.setMediaItemState(id, { thumbnail: result.url });\n });\n };\n\n this.createInlineImage = function (param) {\n\n (0, _image.compressImage)(URL.createObjectURL(param.file), 1280, 800).then(function (result) {\n param.success({ url: result.url });\n }).catch(function (error) {\n param.error(error);\n });\n };\n\n this.handleUploadSuccess = function (id, data) {\n\n _this.setMediaItemState(id, _extends({}, data, {\n file: null,\n uploadProgress: 1,\n uploading: false,\n selected: false\n }));\n\n var item = _this.getMediaItem(data.id || id);\n item.onReady && item.onReady(item);\n };\n\n this.applyChange = function () {\n _this.changeListeners.forEach(function (_ref2) {\n var callback = _ref2.callback;\n return callback(_this.items);\n });\n };\n\n this.uploadImage = function (file, callback) {\n\n var fileId = new Date().getTime() + '_' + (0, _base.UniqueIndex)();\n\n _this.addMediaItem({\n type: 'IMAGE',\n id: fileId,\n file: file,\n name: fileId,\n size: file.size,\n uploadProgress: 0,\n uploading: false,\n selected: false,\n error: 0,\n onReady: callback\n });\n };\n\n this.uploadImageRecursively = function (files, callback) {\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n\n if (files[index] && files[index].type.indexOf('image') > -1) {\n _this.uploadImage(files[index], function (image) {\n callback && callback(image);\n index < files.length - 1 && _this.uploadImageRecursively(files, callback, index + 1);\n });\n } else {\n index < files.length - 1 && _this.uploadImageRecursively(files, callback, index + 1);\n }\n };\n\n this.addResolvedFiles = function (param, index, accepts) {\n\n var data = {\n id: new Date().getTime() + '_' + (0, _base.UniqueIndex)(),\n file: param.files[index],\n name: param.files[index].name,\n size: param.files[index].size,\n uploadProgress: 0,\n uploading: false,\n selected: false,\n error: 0,\n onReady: function onReady(item) {\n param.onItemReady && param.onItemReady(item);\n }\n };\n\n if (param.files[index].type.indexOf('image/') === 0 && accepts.image) {\n data.type = 'IMAGE';\n _this.addMediaItem(data);\n } else if (param.files[index].type.indexOf('video/') === 0 && accepts.video) {\n data.type = 'VIDEO';\n _this.addMediaItem(data);\n } else if (param.files[index].type.indexOf('audio/') === 0 && accepts.audio) {\n data.type = 'AUDIO';\n _this.addMediaItem(data);\n }\n\n setTimeout(function () {\n _this.resolveFiles(param, index + 1, accepts);\n }, 60);\n };\n\n this.resolveFiles = function (param, index, accepts) {\n\n if (index < param.files.length) {\n\n var validateResult = _this.validateFn(param.files[index]);\n\n if (validateResult instanceof Promise) {\n validateResult.then(function () {\n _this.addResolvedFiles(param, index, accepts);\n });\n } else if (validateResult) {\n _this.addResolvedFiles(param, index, accepts);\n }\n } else {\n param.onAllReady && param.onAllReady();\n }\n };\n\n this.onChange = function (callback) {\n\n var listenerId = (0, _base.UniqueIndex)();\n\n _this.changeListeners.push({\n id: listenerId,\n callback: callback\n });\n\n return listenerId;\n };\n\n this.offChange = function (listenerId) {\n _this.changeListeners = _this.changeListeners.filter(function (_ref3) {\n var id = _ref3.id;\n return id !== listenerId;\n });\n };\n};\n\nexports.default = BraftFinderController;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ImageUtils = undefined;\n\nvar _extends = Object.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; };\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _controller = __webpack_require__(19);\n\nvar _controller2 = _interopRequireDefault(_controller);\n\nvar _view = __webpack_require__(18);\n\nvar _view2 = _interopRequireDefault(_view);\n\nvar _languages = __webpack_require__(10);\n\nvar _languages2 = _interopRequireDefault(_languages);\n\nvar _image = __webpack_require__(0);\n\nvar ImageUtils = _interopRequireWildcard(_image);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BraftFinder = function (_FinderController) {\n _inherits(BraftFinder, _FinderController);\n\n function BraftFinder(props) {\n _classCallCheck(this, BraftFinder);\n\n var _this = _possibleConstructorReturn(this, (BraftFinder.__proto__ || Object.getPrototypeOf(BraftFinder)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.superProps = props;\n return _this;\n }\n\n return BraftFinder;\n}(_controller2.default);\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.ReactComponent = function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n var componentProps = _extends({}, _this2.superProps, props);\n\n var language = (typeof componentProps.language === 'function' ? componentProps.language(_languages2.default, 'braft-finder') : _languages2.default[componentProps.language]) || _languages2.default['zh'];\n\n return _react2.default.createElement(_view2.default, _extends({}, componentProps, {\n language: language,\n controller: _this2\n }));\n };\n};\n\nexports.default = BraftFinder;\nexports.ImageUtils = ImageUtils;\n\n/***/ })\n/******/ ]);\n});","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"draft-js\"),require(\"immutable\")):\"function\"==typeof define&&define.amd?define([\"draft-js\",\"immutable\"],t):\"object\"==typeof exports?exports.draftjsUtils=t(require(\"draft-js\"),require(\"immutable\")):e.draftjsUtils=t(e[\"draft-js\"],e.immutable)}(\"undefined\"!=typeof self?self:this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=3)}([function(t,n){t.exports=e},function(e,t,n){\"use strict\";function r(e){var t=e.getSelection(),n=e.getCurrentContent(),r=t.getStartKey(),o=t.getEndKey(),i=n.getBlockMap();return i.toSeq().skipUntil(function(e,t){return t===r}).takeUntil(function(e,t){return t===o}).concat([[o,i.get(o)]])}function o(e){return r(e).toList()}function i(e){if(e)return o(e).get(0)}function l(e){if(e){var t=i(e),n=e.getCurrentContent(),r=n.getBlockMap().toSeq().toList(),o=0;if(r.forEach(function(e,n){e.get(\"key\")===t.get(\"key\")&&(o=n-1)}),o>-1)return r.get(o)}}function c(e){return e?e.getCurrentContent().getBlockMap().toList():new v.List}function a(e){var t=o(e);if(!t.some(function(e){return e.type!==t.get(0).type}))return t.get(0).type}function f(e){var t=p.RichUtils.tryToRemoveBlockStyle(e);return t?p.EditorState.push(e,t,\"change-block-type\"):e}function u(e){var t=\"\",n=e.getSelection(),r=n.getAnchorOffset(),i=n.getFocusOffset(),l=o(e);if(l.size>0){if(n.getIsBackward()){var c=r;r=i,i=c}for(var a=0;a<l.size;a+=1){var f=0===a?r:0,u=a===l.size-1?i:l.get(a).getText().length;t+=l.get(a).getText().slice(f,u)}}return t}function s(e){var t=e.getCurrentContent(),n=e.getSelection(),r=p.Modifier.removeRange(t,n,\"forward\"),o=r.getSelectionAfter(),i=r.getBlockForKey(o.getStartKey());return r=p.Modifier.insertText(r,o,\"\\n\",i.getInlineStyleAt(o.getStartOffset()),null),p.EditorState.push(e,r,\"insert-fragment\")}function g(e){var t=p.Modifier.splitBlock(e.getCurrentContent(),e.getSelection());return f(p.EditorState.push(e,t,\"split-block\"))}function d(e){var t=e.getCurrentContent().getBlockMap().toList(),n=e.getSelection().merge({anchorKey:t.first().get(\"key\"),anchorOffset:0,focusKey:t.last().get(\"key\"),focusOffset:t.last().getLength()}),r=p.Modifier.removeRange(e.getCurrentContent(),n,\"forward\");return p.EditorState.push(e,r,\"remove-range\")}function S(e,t){var n=p.Modifier.setBlockData(e.getCurrentContent(),e.getSelection(),t);return p.EditorState.push(e,n,\"change-block-data\")}function y(e){var t=new v.Map({}),n=o(e);if(n&&n.size>0)for(var r=0;r<n.size;r+=1){var i=function(e){var r=n.get(e).getData();if(!r||0===r.size)return t=t.clear(),\"break\";if(0===e)t=r;else if(t.forEach(function(e,n){r.get(n)&&r.get(n)===e||(t=t.delete(n))}),0===t.size)return t=t.clear(),\"break\"}(r);if(\"break\"===i)break}return t}Object.defineProperty(t,\"__esModule\",{value:!0}),t.blockRenderMap=void 0,t.getSelectedBlocksMap=r,t.getSelectedBlocksList=o,t.getSelectedBlock=i,t.getBlockBeforeSelectedBlock=l,t.getAllBlocks=c,t.getSelectedBlocksType=a,t.removeSelectedBlocksStyle=f,t.getSelectionText=u,t.addLineBreakRemovingSelection=s,t.insertNewUnstyledBlock=g,t.clearEditorContent=d,t.setBlockData=S,t.getSelectedBlocksMetadata=y;var p=n(0),v=n(6),k=(0,v.Map)({code:{element:\"pre\"}});t.blockRenderMap=p.DefaultDraftBlockRenderMap.merge(k)},function(e,t,n){\"use strict\";function r(e){if(e){var t=e.getType();return\"unordered-list-item\"===t||\"ordered-list-item\"===t}return!1}function o(e,t,n){var r=e.getSelection(),o=e.getCurrentContent(),i=o.getBlockMap(),l=(0,c.getSelectedBlocksMap)(e).map(function(e){var r=e.getDepth()+t;return r=Math.max(0,Math.min(r,n)),e.set(\"depth\",r)});return i=i.merge(l),o.merge({blockMap:i,selectionBefore:r,selectionAfter:r})}function i(e,t,n){var r=e.getSelection(),i=void 0;i=r.getIsBackward()?r.getFocusKey():r.getAnchorKey();var c=e.getCurrentContent(),a=c.getBlockForKey(i),f=a.getType();if(\"unordered-list-item\"!==f&&\"ordered-list-item\"!==f)return e;var u=c.getBlockBefore(i);if(!u)return e;if(u.getType()!==f)return e;var s=a.getDepth();if(1===t&&s===n)return e;var g=Math.min(u.getDepth()+1,n),d=o(e,t,g);return l.EditorState.push(e,d,\"adjust-depth\")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.isListBlock=r,t.changeDepth=i;var l=n(0),c=n(1)},function(e,t,n){e.exports=n(4)},function(e,t,n){\"use strict\";var r=n(5),o=n(1),i=n(7),l=function(e){return e&&e.__esModule?e:{default:e}}(i),c=n(2);e.exports={getSelectedBlocksMap:o.getSelectedBlocksMap,getSelectedBlocksList:o.getSelectedBlocksList,getSelectedBlock:o.getSelectedBlock,getBlockBeforeSelectedBlock:o.getBlockBeforeSelectedBlock,getAllBlocks:o.getAllBlocks,getSelectedBlocksType:o.getSelectedBlocksType,removeSelectedBlocksStyle:o.removeSelectedBlocksStyle,getSelectionText:o.getSelectionText,addLineBreakRemovingSelection:o.addLineBreakRemovingSelection,insertNewUnstyledBlock:o.insertNewUnstyledBlock,clearEditorContent:o.clearEditorContent,setBlockData:o.setBlockData,getSelectedBlocksMetadata:o.getSelectedBlocksMetadata,blockRenderMap:o.blockRenderMap,getEntityRange:r.getEntityRange,getCustomStyleMap:r.getCustomStyleMap,toggleCustomInlineStyle:r.toggleCustomInlineStyle,getSelectionEntity:r.getSelectionEntity,extractInlineStyle:r.extractInlineStyle,removeAllInlineStyles:r.removeAllInlineStyles,getSelectionInlineStyle:r.getSelectionInlineStyle,getSelectionCustomInlineStyle:r.getSelectionCustomInlineStyle,handleNewLine:l.default,isListBlock:c.isListBlock,changeDepth:c.changeDepth}},function(e,t,n){\"use strict\";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.getSelection();if(t.isCollapsed()){var n={},r=e.getCurrentInlineStyle().toList().toJS();if(r)return[\"BOLD\",\"ITALIC\",\"UNDERLINE\",\"STRIKETHROUGH\",\"CODE\",\"SUPERSCRIPT\",\"SUBSCRIPT\"].forEach(function(e){n[e]=r.indexOf(e)>=0}),n}var o=t.getStartOffset(),i=t.getEndOffset(),l=(0,p.getSelectedBlocksList)(e);if(l.size>0){var c=function(){for(var e={BOLD:!0,ITALIC:!0,UNDERLINE:!0,STRIKETHROUGH:!0,CODE:!0,SUPERSCRIPT:!0,SUBSCRIPT:!0},t=0;t<l.size;t+=1){var n=0===t?o:0,r=t===l.size-1?i:l.get(t).getText().length;n===r&&0===n?(n=1,r=2):n===r&&(n-=1);for(var c=n;c<r;c+=1)!function(n){var r=l.get(t).getInlineStyleAt(n);[\"BOLD\",\"ITALIC\",\"UNDERLINE\",\"STRIKETHROUGH\",\"CODE\",\"SUPERSCRIPT\",\"SUBSCRIPT\"].forEach(function(t){e[t]=e[t]&&r.get(t)===t})}(c)}return{v:e}}();if(\"object\"===(void 0===c?\"undefined\":S(c)))return c.v}return{}}function i(e){var t=void 0,n=e.getSelection(),r=n.getStartOffset(),o=n.getEndOffset();r===o&&0===r?o=1:r===o&&(r-=1);for(var i=(0,p.getSelectedBlock)(e),l=r;l<o;l+=1){var c=i.getEntityAt(l);if(!c){t=void 0;break}if(l===r)t=c;else if(t!==c){t=void 0;break}}return t}function l(e,t){var n=(0,p.getSelectedBlock)(e),r=void 0;return n.findEntityRanges(function(e){return e.get(\"entity\")===t},function(e,t){r={start:e,end:t,text:n.get(\"text\").slice(e,t)}}),r}function c(e,t,n){var r=e.getSelection(),o=Object.keys(v[t]).reduce(function(e,t){return y.Modifier.removeInlineStyle(e,r,t)},e.getCurrentContent()),i=y.EditorState.push(e,o,\"changeinline-style\"),l=e.getCurrentInlineStyle();if(r.isCollapsed()&&(i=l.reduce(function(e,t){return y.RichUtils.toggleInlineStyle(e,t)},i)),\"SUPERSCRIPT\"===t||\"SUBSCRIPT\"==t)l.has(n)||(i=y.RichUtils.toggleInlineStyle(i,n));else{var c=\"bgcolor\"===t?\"backgroundColor\":t;l.has(c+\"-\"+n)||(i=y.RichUtils.toggleInlineStyle(i,t.toLowerCase()+\"-\"+n),k(t,c,n))}return i}function a(e){if(e){e.getCurrentContent().getBlockMap().map(function(e){return e.get(\"characterList\")}).toList().flatten().forEach(function(e){e&&0===e.indexOf(\"color-\")?k(\"color\",\"color\",e.substr(6)):e&&0===e.indexOf(\"bgcolor-\")?k(\"bgcolor\",\"backgroundColor\",e.substr(8)):e&&0===e.indexOf(\"fontsize-\")?k(\"fontSize\",\"fontSize\",+e.substr(9)):e&&0===e.indexOf(\"fontfamily-\")&&k(\"fontFamily\",\"fontFamily\",e.substr(11))})}}function f(e,t,n){var r=e.getInlineStyleAt(n).toList(),o=r.filter(function(e){return e.startsWith(t.toLowerCase())});if(o&&o.size>0)return o.get(0)}function u(e,t){var n=e.getCurrentInlineStyle().toList(),r=n.filter(function(e){return e.startsWith(t.toLowerCase())});if(r&&r.size>0)return r.get(0)}function s(e,t){if(e&&t&&t.length>0){var n=function(){var n=e.getSelection(),r={};if(n.isCollapsed())return t.forEach(function(t){r[t]=u(e,t)}),{v:r};var o=n.getStartOffset(),i=n.getEndOffset(),l=(0,p.getSelectedBlocksList)(e);if(l.size>0){for(var c=0;c<l.size;c+=1)!function(e){var n=0===e?o:0,c=e===l.size-1?i:l.get(e).getText().length;n===c&&0===n?(n=1,c=2):n===c&&(n-=1);for(var a=n;a<c;a+=1)!function(o){o===n?t.forEach(function(t){r[t]=f(l.get(e),t,o)}):t.forEach(function(t){r[t]&&r[t]!==f(l.get(e),t,o)&&(r[t]=void 0)})}(a)}(c);return{v:r}}}();if(\"object\"===(void 0===n?\"undefined\":S(n)))return n.v}return{}}function g(e){var t=e.getCurrentInlineStyle(),n=e.getCurrentContent();return t.forEach(function(t){n=y.Modifier.removeInlineStyle(n,e.getSelection(),t)}),y.EditorState.push(e,n,\"change-inline-style\")}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getCustomStyleMap=void 0;var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},S=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.getSelectionInlineStyle=o,t.getSelectionEntity=i,t.getEntityRange=l,t.toggleCustomInlineStyle=c,t.extractInlineStyle=a,t.getSelectionCustomInlineStyle=s,t.removeAllInlineStyles=g;var y=n(0),p=n(1),v={color:{},bgcolor:{},fontSize:{},fontFamily:{},CODE:{fontFamily:\"monospace\",wordWrap:\"break-word\",background:\"#f1f1f1\",borderRadius:3,padding:\"1px 3px\"},SUPERSCRIPT:{fontSize:11,position:\"relative\",top:-8,display:\"inline-flex\"},SUBSCRIPT:{fontSize:11,position:\"relative\",bottom:-8,display:\"inline-flex\"}},k=function(e,t,n){v[e][e.toLowerCase()+\"-\"+n]=r({},\"\"+t,n)};t.getCustomStyleMap=function(){return d({},v.color,v.bgcolor,v.fontSize,v.fontFamily,{CODE:v.CODE,SUPERSCRIPT:v.SUPERSCRIPT,SUBSCRIPT:v.SUBSCRIPT})}},function(e,n){e.exports=t},function(e,t,n){\"use strict\";function r(e){var t=e.getSelection();if(t.isCollapsed()){var n=e.getCurrentContent(),r=t.getStartKey(),o=n.getBlockForKey(r);if(!(0,a.isListBlock)(o)&&\"unstyled\"!==o.getType()&&o.getLength()===t.getStartOffset())return(0,c.insertNewUnstyledBlock)(e);if((0,a.isListBlock)(o)&&0===o.getLength()){var i=o.getDepth();if(0===i)return(0,c.removeSelectedBlocksStyle)(e);if(i>0)return(0,a.changeDepth)(e,-1,i)}}}function o(e){return 13===e.which&&(e.getModifierState(\"Shift\")||e.getModifierState(\"Alt\")||e.getModifierState(\"Control\"))}function i(e,t){if(o(t)){return e.getSelection().isCollapsed()?l.RichUtils.insertSoftNewline(e):(0,c.addLineBreakRemovingSelection)(e)}return r(e)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=i;var l=n(0),c=n(1),a=n(2)}])});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"braft-utils\"), require(\"draft-js\"), require(\"immutable\"), require(\"braft-convert\"), require(\"react-dom\"), require(\"braft-finder\"), require(\"draftjs-utils\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"braft-utils\", \"draft-js\", \"immutable\", \"braft-convert\", \"react-dom\", \"braft-finder\", \"draftjs-utils\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"braft-utils\"), require(\"draft-js\"), require(\"immutable\"), require(\"braft-convert\"), require(\"react-dom\"), require(\"braft-finder\"), require(\"draftjs-utils\")) : factory(root[\"react\"], root[\"braft-utils\"], root[\"draft-js\"], root[\"immutable\"], root[\"braft-convert\"], root[\"react-dom\"], root[\"braft-finder\"], root[\"draftjs-utils\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__14__, __WEBPACK_EXTERNAL_MODULE__16__, __WEBPACK_EXTERNAL_MODULE__17__, __WEBPACK_EXTERNAL_MODULE__23__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 39);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(2);\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__6__;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(15);\n\nvar assertThisInitialized = __webpack_require__(1);\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\nfunction _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar setPrototypeOf = __webpack_require__(26);\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nfunction _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayWithoutHoles = __webpack_require__(27);\n\nvar iterableToArray = __webpack_require__(28);\n\nvar nonIterableSpread = __webpack_require__(29);\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__13__;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__14__;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__16__;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__17__;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Immutable = __webpack_require__(13);\n\nvar KEY_SEPARATOR = '-';\n\nfunction MultiDecorator(decorators) {\n this.decorators = Immutable.List(decorators);\n}\n\n/**\n Return list of decoration IDs per character\n\n @param {ContentBlock}\n @return {List<String>}\n*/\nMultiDecorator.prototype.getDecorations = function(block) {\n var decorations = Array(block.getText().length).fill(null);\n\n this.decorators.forEach(function(decorator, i) {\n var _decorations = decorator.getDecorations(block);\n\n _decorations.forEach(function(key, offset) {\n if (!key) {\n return;\n }\n\n key = i + KEY_SEPARATOR + key;\n\n decorations[offset] = key;\n });\n });\n\n return Immutable.List(decorations);\n};\n\n/**\n Return component to render a decoration\n\n @param {String}\n @return {Function}\n*/\nMultiDecorator.prototype.getComponentForKey = function(key) {\n var decorator = this.getDecoratorForKey(key);\n return decorator.getComponentForKey(\n this.getInnerKey(key)\n );\n};\n\n/**\n Return props to render a decoration\n\n @param {String}\n @return {Object}\n*/\nMultiDecorator.prototype.getPropsForKey = function(key) {\n var decorator = this.getDecoratorForKey(key);\n return decorator.getPropsForKey(\n this.getInnerKey(key)\n );\n};\n\n/**\n Return a decorator for a specific key\n\n @param {String}\n @return {Decorator}\n*/\nMultiDecorator.prototype.getDecoratorForKey = function(key) {\n var parts = key.split(KEY_SEPARATOR);\n var index = Number(parts[0]);\n\n return this.decorators.get(index);\n};\n\n/**\n Return inner key for a decorator\n\n @param {String}\n @return {String}\n*/\nMultiDecorator.prototype.getInnerKey = function(key) {\n var parts = key.split(KEY_SEPARATOR);\n return parts.slice(1).join(KEY_SEPARATOR);\n};\n\nmodule.exports = MultiDecorator;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule CharacterMetadata\n * @format\n * \n */\n\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _require = __webpack_require__(13),\n Map = _require.Map,\n OrderedSet = _require.OrderedSet,\n Record = _require.Record;\n\n// 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();\n\nvar defaultRecord = {\n style: EMPTY_SET,\n entity: null\n};\n\nvar CharacterMetadataRecord = Record(defaultRecord);\n\nvar CharacterMetadata = function (_CharacterMetadataRec) {\n _inherits(CharacterMetadata, _CharacterMetadataRec);\n\n function CharacterMetadata() {\n _classCallCheck(this, CharacterMetadata);\n\n return _possibleConstructorReturn(this, _CharacterMetadataRec.apply(this, arguments));\n }\n\n CharacterMetadata.prototype.getStyle = function getStyle() {\n return this.get('style');\n };\n\n CharacterMetadata.prototype.getEntity = function getEntity() {\n return this.get('entity');\n };\n\n CharacterMetadata.prototype.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 /**\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 };\n\n // Fill in unspecified properties, if necessary.\n var configMap = Map(defaultConfig).merge(config);\n\n var existing = pool.get(configMap);\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 return CharacterMetadata;\n}(CharacterMetadataRecord);\n\nvar EMPTY = new CharacterMetadata();\nvar pool = Map([[Map(defaultRecord), EMPTY]]);\n\nCharacterMetadata.EMPTY = EMPTY;\n\nmodule.exports = CharacterMetadata;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule findRangesImmutable\n * @format\n * \n */\n\n\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\n haystack.reduce(function (value, nextValue, nextIndex) {\n if (!areEqualFn(value, nextValue)) {\n if (filterFn(value)) {\n foundFn(cursor, nextIndex);\n }\n cursor = nextIndex;\n }\n return nextValue;\n });\n\n filterFn(haystack.last()) && foundFn(cursor, haystack.count());\n}\n\nmodule.exports = findRangesImmutable;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar objectWithoutPropertiesLoose = __webpack_require__(25);\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule getFragmentFromSelection\n * @format\n * \n */\n\n\n\nvar getContentStateFragment = __webpack_require__(30);\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;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__23__;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arrayWithHoles = __webpack_require__(36);\n\nvar iterableToArrayLimit = __webpack_require__(37);\n\nvar nonIterableRest = __webpack_require__(38);\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nfunction _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule getContentStateFragment\n * @format\n * \n */\n\n\n\nvar randomizeBlockMapKeys = __webpack_require__(31);\nvar removeEntitiesAtEdges = __webpack_require__(34);\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();\n\n // 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 var contentWithoutEdgeEntities = removeEntitiesAtEdges(contentState, selectionState);\n\n var blockMap = contentWithoutEdgeEntities.getBlockMap();\n var blockKeys = blockMap.keySeq();\n var startIndex = blockKeys.indexOf(startKey);\n var endIndex = blockKeys.indexOf(endKey) + 1;\n\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;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule randomizeBlockMapKeys\n * @format\n * \n */\n\n\n\nvar ContentBlockNode = __webpack_require__(32);\nvar Immutable = __webpack_require__(13);\n\nvar generateRandomKey = __webpack_require__(33);\n\nvar OrderedMap = Immutable.OrderedMap;\n\n\nvar randomizeContentBlockNodeKeys = function randomizeContentBlockNodeKeys(blockMap) {\n var newKeysRef = {};\n\n // we keep track of root blocks in order to update subsequent sibling links\n var lastRootBlock = void 0;\n\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();\n\n // new key that we will use to build linking\n var key = generateRandomKey();\n\n // we will add it here to re-use it later\n newKeysRef[oldKey] = key;\n\n if (nextKey) {\n var nextBlock = blockMapState.get(nextKey);\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 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 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\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule ContentBlockNode\n * @format\n * \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\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CharacterMetadata = __webpack_require__(19);\nvar Immutable = __webpack_require__(13);\n\nvar findRangesImmutable = __webpack_require__(20);\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\n\n\nvar EMPTY_SET = OrderedSet();\n\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\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlockNode = function (_Record) {\n _inherits(ContentBlockNode, _Record);\n\n function ContentBlockNode() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultRecord;\n\n _classCallCheck(this, ContentBlockNode);\n\n return _possibleConstructorReturn(this, _Record.call(this, decorateCharacterList(props)));\n }\n\n ContentBlockNode.prototype.getKey = function getKey() {\n return this.get('key');\n };\n\n ContentBlockNode.prototype.getType = function getType() {\n return this.get('type');\n };\n\n ContentBlockNode.prototype.getText = function getText() {\n return this.get('text');\n };\n\n ContentBlockNode.prototype.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n ContentBlockNode.prototype.getLength = function getLength() {\n return this.getText().length;\n };\n\n ContentBlockNode.prototype.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n ContentBlockNode.prototype.getData = function getData() {\n return this.get('data');\n };\n\n ContentBlockNode.prototype.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n ContentBlockNode.prototype.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n };\n\n ContentBlockNode.prototype.getChildKeys = function getChildKeys() {\n return this.get('children');\n };\n\n ContentBlockNode.prototype.getParentKey = function getParentKey() {\n return this.get('parent');\n };\n\n ContentBlockNode.prototype.getPrevSiblingKey = function getPrevSiblingKey() {\n return this.get('prevSibling');\n };\n\n ContentBlockNode.prototype.getNextSiblingKey = function getNextSiblingKey() {\n return this.get('nextSibling');\n };\n\n ContentBlockNode.prototype.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n };\n\n ContentBlockNode.prototype.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\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule generateRandomKey\n * @format\n * \n */\n\n\n\nvar seenKeys = {};\nvar MULTIPLIER = Math.pow(2, 24);\n\nfunction generateRandomKey() {\n var key = void 0;\n while (key === undefined || seenKeys.hasOwnProperty(key) || !isNaN(+key)) {\n key = Math.floor(Math.random() * MULTIPLIER).toString(32);\n }\n seenKeys[key] = true;\n return key;\n}\n\nmodule.exports = generateRandomKey;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, 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 * @providesModule removeEntitiesAtEdges\n * @format\n * \n */\n\n\n\nvar CharacterMetadata = __webpack_require__(19);\n\nvar findRangesImmutable = __webpack_require__(20);\nvar invariant = __webpack_require__(35);\n\nfunction removeEntitiesAtEdges(contentState, selectionState) {\n var blockMap = contentState.getBlockMap();\n var entityMap = contentState.getEntityMap();\n\n var updatedBlocks = {};\n\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 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\nfunction getRemovalRange(characters, key, offset) {\n var removalRange;\n findRangesImmutable(characters, function (a, b) {\n return a.getEntity() === b.getEntity();\n }, function (element) {\n return element.getEntity() === key;\n }, function (start, end) {\n if (start <= offset && end >= offset) {\n removalRange = { start: start, end: end };\n }\n });\n !(typeof removalRange === 'object') ? false ? undefined : 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 if (entity.getMutability() !== 'MUTABLE') {\n var _getRemovalRange = getRemovalRange(chars, entityAfterCursor, offset),\n start = _getRemovalRange.start,\n end = _getRemovalRange.end;\n\n var current;\n while (start < end) {\n current = chars.get(start);\n chars = chars.set(start, CharacterMetadata.applyEntity(current, null));\n start++;\n }\n return block.set('characterList', chars);\n }\n }\n\n return block;\n}\n\nmodule.exports = removeEntitiesAtEdges;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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\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\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (false) {}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\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 args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/typeof.js\nvar helpers_typeof = __webpack_require__(15);\nvar typeof_default = /*#__PURE__*/__webpack_require__.n(helpers_typeof);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/objectSpread.js\nvar objectSpread = __webpack_require__(5);\nvar objectSpread_default = /*#__PURE__*/__webpack_require__.n(objectSpread);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(21);\nvar objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/classCallCheck.js\nvar classCallCheck = __webpack_require__(4);\nvar classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/createClass.js\nvar createClass = __webpack_require__(7);\nvar createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(8);\nvar possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(9);\nvar getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/inherits.js\nvar inherits = __webpack_require__(10);\nvar inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(1);\nvar assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/defineProperty.js\nvar defineProperty = __webpack_require__(2);\nvar defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/toConsumableArray.js\nvar toConsumableArray = __webpack_require__(12);\nvar toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);\n\n// EXTERNAL MODULE: ../node_modules/draft-js/dist/Draft.css\nvar Draft = __webpack_require__(40);\n\n// EXTERNAL MODULE: ./assets/scss/_base.scss\nvar _base = __webpack_require__(42);\n\n// EXTERNAL MODULE: external \"react\"\nvar external_react_ = __webpack_require__(0);\nvar external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);\n\n// CONCATENATED MODULE: ./languages/en.js\n/* harmony default export */ var en = ({\n base: {\n remove: 'Remove',\n cancel: 'Cancel',\n confirm: 'Confirm',\n inert: 'Insert',\n width: 'Width',\n height: 'Height'\n },\n controls: {\n clear: 'Clear',\n undo: 'Undo',\n redo: 'Redo',\n fontSize: 'Font Size',\n color: 'Color',\n textColor: 'Text',\n tempColors: 'Temp Colors',\n backgroundColor: 'Background',\n bold: 'Bold',\n lineHeight: 'Line Height',\n letterSpacing: 'Letter Spacing',\n textIndent: 'Text Indent',\n increaseIndent: 'Increase Indent',\n decreaseIndent: 'Decrease Indent',\n italic: 'Italic',\n underline: 'Underline',\n strikeThrough: 'Strike Through',\n fontFamily: 'Font Family',\n textAlign: 'Text Alignment',\n alignLeft: 'Left Alignment',\n alignCenter: 'Center Alignment',\n alignRight: 'Right Alignment',\n alignJustify: 'Justify Alignment',\n floatLeft: 'Left Float',\n floatRight: 'Right Float',\n superScript: 'Super Script',\n subScript: 'Sub Script',\n removeStyles: 'Remove Styles',\n headings: 'Headings',\n header: 'Header',\n normal: 'Normal',\n orderedList: 'Ordered List',\n unorderedList: 'Unordered List',\n blockQuote: 'Quote',\n code: 'Code',\n link: 'Link',\n unlink: 'Unlink',\n hr: 'Horizontal Line',\n media: 'Media',\n mediaLibirary: 'Media Library',\n emoji: 'Emoji',\n fullscreen: 'Fullscreen',\n exitFullscreen: 'Exit Fullscreen'\n },\n linkEditor: {\n textInputPlaceHolder: 'Input link text',\n linkInputPlaceHolder: 'Input link URL',\n inputWithEnterPlaceHolder: 'Input link URL and press Enter',\n openInNewWindow: 'Open in new window',\n removeLink: 'Remove Link'\n },\n audioPlayer: {\n title: 'Play Audio'\n },\n videoPlayer: {\n title: 'Play Video',\n embedTitle: 'Embed Media'\n },\n media: {\n image: 'Image',\n video: 'Video',\n audio: 'Audio',\n embed: 'Embed'\n }\n});\n// CONCATENATED MODULE: ./languages/zh.js\n/* harmony default export */ var zh = ({\n base: {\n remove: '删除',\n cancel: '取消',\n confirm: '确定',\n inert: '插入',\n width: '宽度',\n height: '高度'\n },\n controls: {\n clear: '清除内容',\n undo: '撤销',\n redo: '重做',\n fontSize: '字号',\n lineHeight: '行高',\n letterSpacing: '字间距',\n textIndent: '段落缩进',\n increaseIndent: '增加缩进',\n decreaseIndent: '减少缩进',\n border: '边框',\n color: '颜色',\n textColor: '文字颜色',\n backgroundColor: '背景颜色',\n tempColors: '临时颜色',\n bold: '加粗',\n italic: '斜体',\n underline: '下划线',\n strikeThrough: '删除线',\n fontFamily: '字体',\n textAlign: '文本对齐',\n alignLeft: '居左',\n alignCenter: '居中',\n alignRight: '居右',\n alignJustify: '两端',\n floatLeft: '左浮动',\n floatRight: '右浮动',\n superScript: '上标',\n subScript: '下标',\n removeStyles: '清除样式',\n headings: '标题',\n header: '标题',\n normal: '常规',\n orderedList: '有序列表',\n unorderedList: '无序列表',\n blockQuote: '引用',\n code: '代码',\n link: '链接',\n unlink: '清除链接',\n hr: '水平线',\n media: '媒体',\n mediaLibirary: '媒体库',\n emoji: '小表情',\n fullscreen: '全屏',\n exitFullscreen: '退出全屏'\n },\n linkEditor: {\n textInputPlaceHolder: '输入链接文字',\n linkInputPlaceHolder: '输入链接地址',\n inputWithEnterPlaceHolder: '输入链接地址并回车',\n openInNewWindow: '在新窗口打开',\n removeLink: '移除链接'\n },\n audioPlayer: {\n title: '播放音频文件'\n },\n videoPlayer: {\n title: '播放视频文件',\n embedTitle: '嵌入式媒体'\n },\n media: {\n image: '图像',\n video: '视频',\n audio: '音频',\n embed: '嵌入式媒体'\n }\n});\n// CONCATENATED MODULE: ./languages/zh-hant.js\n/* harmony default export */ var zh_hant = ({\n base: {\n remove: '刪除',\n cancel: '取消',\n confirm: '確定',\n inert: '插入',\n width: '宽度',\n height: '高度'\n },\n controls: {\n clear: '清除内容',\n undo: '撤銷',\n redo: '重做',\n fontSize: '字號',\n color: '顏色',\n textColor: '文字顏色',\n backgroundColor: '背景顏色',\n tempColors: '臨時顏色',\n bold: '加粗',\n lineHeight: '行高',\n letterSpacing: '字間距',\n textIndent: '段落縮進',\n increaseIndent: '增加縮進',\n decreaseIndent: '减少縮進',\n border: '邊框',\n italic: '斜體',\n underline: '下劃線',\n strikeThrough: '刪除線',\n fontFamily: '字體',\n textAlign: '文本對齊',\n alignLeft: '居左',\n alignCenter: '居中',\n alignRight: '居右',\n alignJustify: '兩端對齊',\n floatLeft: '左浮動',\n floatRight: '右浮動',\n superScript: '上標',\n subScript: '下標',\n removeStyles: '清除样式',\n headings: '標題',\n header: '標題',\n normal: '常規',\n orderedList: '有序列表',\n unorderedList: '無序列表',\n blockQuote: '引用',\n code: '代碼',\n link: '鏈接',\n unlink: '清除鏈接',\n hr: '水平线',\n media: '媒體',\n mediaLibirary: '媒體库',\n emoji: '小表情',\n fullscreen: '全熒幕',\n exitFullscreen: '退出全熒幕'\n },\n linkEditor: {\n textInputPlaceHolder: '輸入鏈接文字',\n linkInputPlaceHolder: '輸入鏈接地址',\n inputWithEnterPlaceHolder: '輸入鏈接地址並回車',\n openInNewWindow: '在新窗口打開',\n removeLink: '移除鏈接'\n },\n audioPlayer: {\n title: '播放音頻文件'\n },\n videoPlayer: {\n title: '播放視頻文件',\n embedTitle: '嵌入式媒體'\n },\n media: {\n image: '圖像',\n video: '視頻',\n audio: '音頻',\n embed: '嵌入式媒體'\n }\n});\n// CONCATENATED MODULE: ./languages/pl.js\n/* harmony default export */ var pl = ({\n base: {\n remove: 'Usuń',\n cancel: 'Anuluj',\n confirm: 'Potwierdź',\n inert: 'Wstaw',\n width: 'Szerokość',\n height: 'Wysokość'\n },\n controls: {\n clear: 'Wyczyść',\n undo: 'Cofnij',\n redo: 'Przywróć',\n fontSize: 'Wielkość',\n color: 'Kolor',\n textColor: 'Kolor tekstu',\n tempColors: 'Kolory',\n backgroundColor: 'Tło',\n bold: 'Pogrubienie',\n lineHeight: 'Wysokość linii',\n letterSpacing: 'Odstęp znaków',\n textIndent: 'Wcięcie tekstu',\n increaseIndent: 'Zwiększ wcięcie',\n decreaseIndent: 'Zmniejsz wcięcie',\n italic: 'Italiki',\n underline: 'Podkreślenie',\n strikeThrough: 'Przekreślenie',\n fontFamily: 'Czcionka',\n textAlign: 'Wyrównanie tekstu',\n alignLeft: 'Do lewej',\n alignCenter: 'Wycentruj',\n alignRight: 'Do prawej',\n alignJustify: 'Wyjustuj',\n floatLeft: 'Do lewej',\n floatRight: 'Do prawej',\n superScript: 'Superskrypt',\n subScript: 'Subskrypt',\n removeStyles: 'Usuń stylowanie',\n headings: 'Nagłówki',\n header: 'Nagłówek',\n normal: 'Normalny',\n orderedList: 'Lista uporządkowana',\n unorderedList: 'Lista nieuporządkowana',\n blockQuote: 'Cytat',\n code: 'Kod',\n link: 'Link',\n unlink: 'Usuń link',\n hr: 'Linia pozioma',\n media: 'Media',\n mediaLibirary: 'Biblioteka mediów',\n emoji: 'Emoji'\n },\n linkEditor: {\n textInputPlaceHolder: 'Wpisz tekst linku',\n linkInputPlaceHolder: 'Wpisz Adres URL',\n inputWithEnterPlaceHolder: 'Wpisz adres URL i naciśnij Enter',\n openInNewWindow: 'Otwórz w nowym oknie',\n removeLink: 'Usuń link'\n },\n audioPlayer: {\n title: 'Odtwórz audio'\n },\n videoPlayer: {\n title: 'Odtwórz wideo',\n embedTitle: 'Tytuł'\n },\n media: {\n image: 'Obraz',\n video: 'Wideo',\n audio: 'Audio',\n embed: 'Obiekt osadzony'\n }\n});\n// CONCATENATED MODULE: ./languages/kr.js\n/* harmony default export */ var kr = ({\n base: {\n remove: '삭제',\n cancel: '취소',\n confirm: '결정',\n inert: '삽입',\n width: '너비',\n height: '높이'\n },\n controls: {\n clear: '콘텐츠지우기',\n undo: '취소',\n redo: '다시하기',\n fontSize: '글자크기',\n lineHeight: '행높이',\n letterSpacing: '단어간격',\n textIndent: '단락들여쓰기',\n increaseIndent: '들여쓰기늘리기',\n decreaseIndent: '들여쓰기줄이기',\n border: '국경',\n color: '색상',\n textColor: '텍스트색상',\n backgroundColor: '배경색상',\n tempColors: '임시색',\n bold: '굵게',\n italic: '기울임꼴',\n underline: '밑줄',\n strikeThrough: '취소선',\n fontFamily: '글꼴',\n textAlign: '텍스트정렬',\n alignLeft: '왼쪽',\n alignCenter: '중심',\n alignRight: '오른쪽',\n alignJustify: '양쪽끝',\n floatLeft: '떠다니기',\n floatRight: '오른쪽부동',\n superScript: '위첨자',\n subScript: '첨자',\n removeStyles: '스타일지우기',\n headings: '제목',\n header: '제목',\n normal: '재래식',\n orderedList: '순서가지정된목록',\n unorderedList: '정렬되지않은목록',\n blockQuote: '참고문헌',\n code: '코드',\n link: '링크',\n unlink: '링크삭제',\n hr: '수평선',\n media: '미디어',\n mediaLibirary: '미디어라이브러리',\n emoji: '작은표현',\n fullscreen: '전체화면',\n exitFullscreen: '전체화면종료'\n },\n linkEditor: {\n textInputPlaceHolder: '링크텍스트입력',\n linkInputPlaceHolder: '링크주소입력',\n inputWithEnterPlaceHolder: '링크주소입력.',\n openInNewWindow: '새창열기',\n removeLink: '링크삭제'\n },\n audioPlayer: {\n title: '오디오파일재생'\n },\n videoPlayer: {\n title: '비디오파일재생',\n embedTitle: '임베디드미디어'\n },\n media: {\n image: '이미지',\n video: '비디오',\n audio: '오디오',\n embed: '임베디드미디어'\n }\n});\n// CONCATENATED MODULE: ./languages/tr.js\n/* harmony default export */ var tr = ({\n base: {\n remove: 'Kaldır',\n cancel: 'İptal',\n confirm: 'Onayla',\n inert: 'Ekle',\n width: 'Genişlik',\n height: 'Yükseklik'\n },\n controls: {\n clear: 'Temizle',\n undo: 'Geri al',\n redo: 'İleri al',\n fontSize: 'Yazı boyutu',\n color: 'Renk',\n textColor: 'Yazı rengi',\n tempColors: 'Geçici renkler',\n backgroundColor: 'Arkaplan',\n bold: 'Kalın',\n lineHeight: 'Satır yüksekliği',\n letterSpacing: 'Harf aralığı',\n textIndent: 'Çentik aralığı',\n increaseIndent: 'Çentiği genişlet',\n decreaseIndent: 'Çentiği daralt',\n italic: 'Eğik',\n underline: 'Altı çizili',\n strikeThrough: 'Üstü çizili',\n fontFamily: 'Yazı tipi',\n textAlign: 'Metin Hizalama',\n alignLeft: 'Sola hizala',\n alignCenter: 'Ortaya hizala',\n alignRight: 'Sağa hizala',\n alignJustify: 'Her iki tarafa hizala',\n floatLeft: 'Sola yatır',\n floatRight: 'Sağa yatır',\n superScript: 'Ana kod',\n subScript: 'Alt kod',\n removeStyles: 'Stilleri kaldır',\n headings: 'Başlıklar',\n header: 'Başlık',\n normal: 'Normal',\n orderedList: 'Sıralı liste',\n unorderedList: 'Sırasız liste',\n blockQuote: 'Alıntı',\n code: 'Kod',\n link: 'Bağlantı',\n unlink: 'Bağlantıyı kaldır',\n hr: 'Yatay çizgi',\n media: 'Medya',\n mediaLibirary: 'Kütüphane',\n emoji: 'İfade',\n fullscreen: 'Tam ekran',\n exitFullscreen: 'Tam ekrandan çık'\n },\n linkEditor: {\n textInputPlaceHolder: 'Bağlantı metnini girin',\n linkInputPlaceHolder: 'Bağlantı URL\\' si girin',\n inputWithEnterPlaceHolder: 'Bağlantı URL\\'si girin ve Enter\\' a basın',\n openInNewWindow: 'Yeni pencerede aç',\n removeLink: 'Bağlantıyı kaldır'\n },\n audioPlayer: {\n title: 'Ses çal'\n },\n videoPlayer: {\n title: 'Görüntü oynat',\n embedTitle: 'Görüntüyü göm'\n },\n media: {\n image: 'Resim',\n video: 'Görüntü',\n audio: 'Ses',\n embed: 'Gömülü nesne'\n }\n});\n// CONCATENATED MODULE: ./languages/jpn.js\n/* harmony default export */ var jpn = ({\n base: {\n remove: '削除',\n cancel: 'キャンセル',\n confirm: '決定',\n inert: '挿入',\n width: '幅',\n height: '高さ'\n },\n controls: {\n clear: 'クリアコンテンツ',\n undo: 'キャンセル',\n redo: 'キャンセル',\n fontSize: 'フォントサイズ',\n lineHeight: 'フォントサイズ',\n letterSpacing: 'ワード間隔',\n textIndent: '段落のインデント',\n increaseIndent: 'インデントを増やす',\n decreaseIndent: 'インデントを減らす',\n border: '国境',\n color: '色',\n textColor: 'テキストの色',\n backgroundColor: '背景色',\n tempColors: '仮色',\n bold: '太字',\n italic: 'イタリック体',\n underline: '下線',\n strikeThrough: '取り消し線',\n fontFamily: 'フォント',\n textAlign: 'テキストの配置',\n alignLeft: '左',\n alignCenter: '中央揃え',\n alignRight: '右に立つ',\n alignJustify: '両端',\n floatLeft: '左フローティング',\n floatRight: '右フローティング',\n superScript: '上付き',\n subScript: '下付き文字',\n removeStyles: 'クリアスタイル',\n headings: '役職',\n header: '役職',\n normal: '従来の',\n orderedList: '順序付きリスト',\n unorderedList: '番号なしリスト',\n blockQuote: '参照',\n code: 'コード',\n link: 'リンク',\n unlink: 'リンクを解除',\n hr: '横線',\n media: 'メディア',\n mediaLibirary: 'メディアライブラリー',\n emoji: '小さな表現',\n fullscreen: '全画面',\n exitFullscreen: '全画面を退く'\n },\n linkEditor: {\n textInputPlaceHolder: 'リンクテキストを入力',\n linkInputPlaceHolder: 'リンクアドレスを入力',\n inputWithEnterPlaceHolder: 'リンクアドレスを入力して戻ります',\n openInNewWindow: '新しいウィンドウで開く',\n removeLink: '新しいウィンドウで開く'\n },\n audioPlayer: {\n title: 'オーディオファイルを再生する'\n },\n videoPlayer: {\n title: 'ビデオファイルを再生する',\n embedTitle: '埋め込みメディア'\n },\n media: {\n image: '画像',\n video: 'ビデオ',\n audio: '音声',\n embed: '埋め込みメディア'\n }\n});\n// CONCATENATED MODULE: ./languages/ru.js\n/* harmony default export */ var ru = ({\n base: {\n remove: 'Удалить',\n cancel: 'Отмена',\n confirm: 'Подтвердить',\n insert: 'Вставить',\n width: 'Ширина',\n height: 'Высота'\n },\n controls: {\n clear: 'Очистить',\n undo: 'Отменить',\n redo: 'Повторить',\n fontSize: 'Размер шрифта',\n color: 'Цвет',\n textColor: 'Цвет текста',\n tempColors: 'Temp Colors',\n backgroundColor: 'Цвет фона',\n bold: 'Жирный',\n lineHeight: 'Межстрочный интервал',\n letterSpacing: 'Межбуквенный интервал',\n textIndent: 'Отступ',\n increaseIndent: 'Увеличить отступ',\n decreaseIndent: 'Уменьшить отступ',\n italic: 'Курсив',\n underline: 'Подчеркнутый',\n strikeThrough: 'Перечеркнутый',\n fontFamily: 'Шрифт',\n textAlign: 'Расположение текста',\n alignLeft: 'По левому краю',\n alignCenter: 'По центру',\n alignRight: 'По правому краю',\n alignJustify: 'По ширине',\n floatLeft: 'Обтекание слева',\n floatRight: 'Обтекание справа',\n superScript: 'Надстрочный индекс',\n subScript: 'Подстрочный индекс',\n removeStyles: 'Убрать стили',\n headings: 'Заголовки',\n header: 'Заголовок',\n normal: 'Обычный',\n orderedList: 'Упорядоченный список',\n unorderedList: 'Неупорядоченный список',\n blockQuote: 'Цитата',\n code: 'Код',\n link: 'Вставить ссылку',\n unlink: 'Убрать ссылку',\n hr: 'Горизонтальная линия',\n media: 'Медиа',\n mediaLibirary: 'Медиа библиотека',\n emoji: 'Emoji',\n fullscreen: 'Полноэкранный режим',\n exitFullscreen: 'Выйти из полноэкранного режима'\n },\n linkEditor: {\n textInputPlaceHolder: 'Введите текст ссылки',\n linkInputPlaceHolder: 'Вставить ссылку',\n inputWithEnterPlaceHolder: 'Вставить ссылку и нажать Enter',\n openInNewWindow: 'Открыть в новом окне',\n removeLink: 'Убрать ссылку'\n },\n audioPlayer: {\n title: 'Воспроизвести аудиофайл'\n },\n videoPlayer: {\n title: 'Воспроизвести видеофайл',\n embedTitle: 'Embed Media'\n },\n media: {\n image: 'Картинка',\n video: 'Видео',\n audio: 'Аудио',\n embed: 'Встроенное'\n }\n});\n// CONCATENATED MODULE: ./languages/fr.js\n/* harmony default export */ var fr = ({\n base: {\n remove: 'Supprimer',\n cancel: 'Annuler',\n confirm: 'Confirmer',\n inert: 'Insérer',\n width: 'Largeur',\n height: 'Hauteur'\n },\n controls: {\n clear: 'Effacer',\n undo: 'Annuler',\n redo: 'Refaire',\n fontSize: 'Taille de police',\n color: 'Couleur',\n textColor: 'Texte',\n tempColors: 'Couleurs temporaire',\n backgroundColor: 'Couleur d\\'arrière plan',\n bold: 'Gras',\n lineHeight: 'Hauteur de ligne',\n letterSpacing: 'Espacement des lettres',\n textIndent: 'Indentation du texte',\n increaseIndent: 'Augmenter l\\'indentation',\n decreaseIndent: 'Réduire l\\'indentation',\n italic: 'Italique',\n underline: 'Souligner',\n strikeThrough: 'Barrer',\n fontFamily: 'Police d\\'écriture',\n textAlign: 'Alignement du texte',\n alignLeft: 'Aligner à gauche',\n alignCenter: 'Aligner au centre',\n alignRight: 'Aligner à droite',\n alignJustify: 'Justifier',\n floatLeft: 'Déplacer à gauche',\n floatRight: 'Déplacer à droite',\n superScript: 'Super-script',\n subScript: 'Sous-script',\n removeStyles: 'Supprimer les styles',\n headings: 'Titres',\n header: 'Entêtes',\n normal: 'Normal',\n orderedList: 'Liste ordonnée',\n unorderedList: 'Liste non-ordonnée',\n blockQuote: 'Citation',\n code: 'Code',\n link: 'Insérer un lien',\n unlink: 'Supprimer le lien',\n hr: 'Ligne horizontale',\n media: 'Média',\n mediaLibirary: 'Bibliothêque',\n emoji: 'Emoji',\n fullscreen: 'Plein écran',\n exitFullscreen: 'Quitter le plein écran'\n },\n linkEditor: {\n textInputPlaceHolder: 'Insérer le texte à afficher',\n linkInputPlaceHolder: 'Insérer le lien URL',\n inputWithEnterPlaceHolder: 'Insérer le lien URL puis appuyer sur Entrée',\n openInNewWindow: 'Ouvrir dans une nouvelle fenêtre',\n removeLink: 'Supprimer le lien'\n },\n audioPlayer: {\n title: 'Lancer le son audio'\n },\n videoPlayer: {\n title: 'Lancer la video',\n embedTitle: 'Intégrer média'\n },\n media: {\n image: 'Image',\n video: 'Vidéo',\n audio: 'Audio',\n embed: 'Intégré'\n }\n});\n// CONCATENATED MODULE: ./languages/pt-br.js\n/* harmony default export */ var pt_br = ({\n base: {\n remove: 'Remover',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n inert: 'Inserir',\n width: 'Largura',\n height: 'Altura'\n },\n controls: {\n clear: 'Limpar',\n undo: 'Desfazer',\n redo: 'Refazer',\n fontSize: 'Tamanho da Fonte',\n color: 'Cor',\n textColor: 'Texto',\n tempColors: 'Temp Colors',\n backgroundColor: 'Cor de Fundo',\n bold: 'Negrito',\n lineHeight: 'Altura da LinhaLine Height',\n letterSpacing: 'Espaçamento entre Letras',\n textIndent: 'Identação de Texto',\n increaseIndent: 'Aumentar Identação',\n decreaseIndent: 'Diminuir Identção',\n italic: 'Itálico',\n underline: 'Sublinhado',\n strikeThrough: 'Riscado',\n fontFamily: 'Família da Fonte',\n textAlign: 'Alinhamento de Texto',\n alignLeft: 'Alinhamento à Esquerda',\n alignCenter: 'Alinhamento Centralizado',\n alignRight: 'Alinhamento à Direita',\n alignJustify: 'Alinhamento Justificado',\n floatLeft: 'Flutuação à Esquerda',\n floatRight: 'Flutuação à Direita',\n superScript: 'Sobrescrito',\n subScript: 'Subscrito',\n removeStyles: 'Remover Estilos',\n headings: 'Cabeçalhos',\n header: 'Cabeçalho',\n normal: 'Normal',\n orderedList: 'Lista Ordenada',\n unorderedList: 'Lista Não Ordenada',\n blockQuote: 'Citação',\n code: 'Código',\n link: 'Link',\n unlink: 'Remover Link',\n hr: 'Linha Horizontal',\n media: 'Mídia',\n mediaLibirary: 'Biblioteca de Mídia',\n emoji: 'Emoji',\n fullscreen: 'Tela Cheia',\n exitFullscreen: 'Sair de Tela Cheia'\n },\n linkEditor: {\n textInputPlaceHolder: 'Insira o texto do link',\n linkInputPlaceHolder: 'Insira a URL do link',\n inputWithEnterPlaceHolder: 'Insira a URL do link e aperte Enter',\n openInNewWindow: 'Abrir em nova janela',\n removeLink: 'Remover Link'\n },\n audioPlayer: {\n title: 'Tocar Áudio'\n },\n videoPlayer: {\n title: 'Tocar Vídeo',\n embedTitle: 'Mídia Embutida'\n },\n media: {\n image: 'Imagem',\n video: 'Vídeo',\n audio: 'Áudio',\n embed: 'Embutido'\n }\n});\n// CONCATENATED MODULE: ./languages/index.js\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var languages = ({\n 'en': en,\n 'zh': zh,\n 'zh-hant': zh_hant,\n 'pl': pl,\n 'kr': kr,\n 'tr': tr,\n 'jpn': jpn,\n 'ru': ru,\n 'fr': fr,\n 'pt-br': pt_br\n});\n// EXTERNAL MODULE: external \"braft-finder\"\nvar external_braft_finder_ = __webpack_require__(17);\nvar external_braft_finder_default = /*#__PURE__*/__webpack_require__.n(external_braft_finder_);\n\n// EXTERNAL MODULE: external \"braft-utils\"\nvar external_braft_utils_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external \"draft-js\"\nvar external_draft_js_ = __webpack_require__(6);\n\n// EXTERNAL MODULE: external \"immutable\"\nvar external_immutable_ = __webpack_require__(13);\nvar external_immutable_default = /*#__PURE__*/__webpack_require__.n(external_immutable_);\n\n// CONCATENATED MODULE: ./configs/keybindings.js\n // TODO\n// 允许自定义的快捷键设置\n\n/* harmony default export */ var keybindings = (function (customKeyBindingFn) {\n return function (event) {\n if (event.keyCode === 83 && (external_draft_js_[\"KeyBindingUtil\"].hasCommandModifier(event) || external_draft_js_[\"KeyBindingUtil\"].isCtrlKeyCommand(event))) {\n return 'braft-save';\n }\n\n if (customKeyBindingFn) {\n return customKeyBindingFn(event) || Object(external_draft_js_[\"getDefaultKeyBinding\"])(event);\n }\n\n return Object(external_draft_js_[\"getDefaultKeyBinding\"])(event);\n };\n});\n// CONCATENATED MODULE: ./configs/props.js\n/* harmony default export */ var configs_props = ({\n language: 'zh',\n controls: ['undo', 'redo', 'separator', 'font-size', 'line-height', 'letter-spacing', 'separator', 'text-color', 'bold', 'italic', 'underline', 'strike-through', 'separator', 'superscript', 'subscript', 'remove-styles', 'emoji', 'separator', 'text-indent', 'text-align', 'separator', 'headings', 'list-ul', 'list-ol', 'blockquote', 'code', 'separator', 'media', 'link', 'table', 'split', 'hr', 'separator', 'clear', 'separator', 'fullscreen'],\n excludeControls: [],\n extendControls: [],\n extendAtomics: [],\n componentBelowControlBar: null,\n media: {\n pasteImage: true,\n imagePasteLimit: 5,\n image: true,\n video: true,\n audio: true,\n uploadFn: null,\n validateFn: null,\n onBeforeDeselect: null,\n onDeselect: null,\n onBeforeSelect: null,\n onSelect: null,\n onBeforeRemove: null,\n onRemove: null,\n onCancel: null,\n onFileSelect: null,\n onBeforeInsert: null,\n onInsert: null,\n onChange: null,\n accepts: {\n image: 'image/png,image/jpeg,image/gif,image/webp,image/apng,image/svg',\n video: 'video/mp4',\n audio: 'audio/mp3'\n },\n externals: {\n audio: true,\n video: true,\n image: true,\n embed: true\n }\n },\n imageControls: ['float-left', 'float-right', 'align-left', 'align-center', 'align-right', 'link', 'size', 'remove'],\n imageResizable: true,\n colors: ['#000000', '#333333', '#666666', '#999999', '#cccccc', '#ffffff', '#61a951', '#16a085', '#07a9fe', '#003ba5', '#8e44ad', '#f32784', '#c0392b', '#d35400', '#f39c12', '#fdda00'],\n colorPicker: null,\n colorPickerTheme: 'dark',\n colorPickerAutoHide: true,\n codeTabIndents: 2,\n headings: ['header-one', 'header-two', 'header-three', 'header-four', 'header-five', 'header-six', 'unstyled'],\n textAligns: ['left', 'center', 'right', 'justify'],\n textBackgroundColor: true,\n allowInsertLinkText: false,\n defaultLinkTarget: '',\n letterSpacings: [0, 1, 2, 3, 4, 5, 6],\n lineHeights: [1, 1.2, 1.5, 1.75, 2, 2.5, 3, 4],\n fontSizes: [12, 14, 16, 18, 20, 24, 28, 30, 32, 36, 40, 48, 56, 64, 72, 96, 120, 144],\n fontFamilies: [{\n name: 'Araial',\n family: 'Arial, Helvetica, sans-serif'\n }, {\n name: 'Georgia',\n family: 'Georgia, serif'\n }, {\n name: 'Impact',\n family: 'Impact, serif'\n }, {\n name: 'Monospace',\n family: '\"Courier New\", Courier, monospace'\n }, {\n name: 'Tahoma',\n family: 'tahoma, arial, \"Hiragino Sans GB\", 宋体, sans-serif'\n }],\n converts: {\n unitExportFn: function unitExportFn(value, type) {\n return type === 'line-height' ? value : \"\".concat(value, \"px\");\n }\n },\n emojis: ['🤣', '🙌', '💚', '💛', '👏', '😉', '💯', '💕', '💞', '💘', '💙', '💝', '🖤', '💜', '❤️', '😍', '😻', '💓', '💗', '😋', '😇', '😂', '😹', '😘', '💖', '😁', '😀', '🤞', '😲', '😄', '😊', '👍', '😌', '😃', '😅', '✌️', '🤗', '💋', '😗', '😽', '😚', '🤠', '😙', '😺', '👄', '😸', '😏', '😼', '👌', '😎', '😆', '😛', '🙏', '🤝', '🙂', '🤑', '😝', '😐', '😑', '🤤', '😤', '🙃', '🤡', '😶', '😪', '😴', '😵', '😓', '👊', '😦', '😷', '🤐', '😜', '🤓', '👻', '😥', '🙄', '🤔', '🤒', '🙁', '😔', '😯', '☹️', '☠️', '😰', '😩', '😖', '😕', '😒', '😣', '😢', '😮', '😿', '🤧', '😫', '🤥', '😞', '😬', '👎', '💀', '😳', '😨', '🤕', '🤢', '😱', '😭', '😠', '😈', '😧', '💔', '😟', '🙀', '💩', '👿', '😡', '😾', '🖕'],\n stripPastedStyles: false,\n triggerChangeOnMount: true,\n className: '',\n style: {},\n controlBarClassName: '',\n controlBarStyle: {},\n contentClassName: '',\n contentStyle: {},\n draftProps: {},\n hooks: {},\n onChange: null,\n onFocus: null,\n onBlur: null,\n onTab: null,\n onDelete: null,\n onSave: null,\n fixPlaceholder: false\n});\n// EXTERNAL MODULE: ../node_modules/draft-js/lib/getFragmentFromSelection.js\nvar getFragmentFromSelection = __webpack_require__(22);\nvar getFragmentFromSelection_default = /*#__PURE__*/__webpack_require__.n(getFragmentFromSelection);\n\n// EXTERNAL MODULE: external \"draftjs-utils\"\nvar external_draftjs_utils_ = __webpack_require__(23);\n\n// CONCATENATED MODULE: ./configs/handlers.js\n\n\n\n\n\n\nvar handlers_keyCommandHandlers = function keyCommandHandlers(command, editorState, editor) {\n if (editor.editorProps.handleKeyCommand && editor.editorProps.handleKeyCommand(command, editorState, editor) === 'handled') {\n return 'handled';\n }\n\n if (command === 'braft-save') {\n editor.editorProps.onSave && editor.editorProps.onSave(editorState);\n return 'handled';\n }\n\n var _editor$editorProps = editor.editorProps,\n controls = _editor$editorProps.controls,\n excludeControls = _editor$editorProps.excludeControls;\n var allowIndent = (controls.indexOf('text-indent') !== 0 || controls.find(function (item) {\n return item.key === 'text-indent';\n })) && excludeControls.indexOf('text-indent') === -1;\n var cursorStart = editorState.getSelection().getStartOffset();\n var cursorEnd = editorState.getSelection().getEndOffset();\n var cursorIsAtFirst = cursorStart === 0 && cursorEnd === 0;\n\n if (command === 'backspace') {\n if (editor.editorProps.onDelete && editor.editorProps.onDelete(editorState) === false) {\n return 'handled';\n }\n\n var blockType = external_braft_utils_[\"ContentUtils\"].getSelectionBlockType(editorState);\n\n if (allowIndent && cursorIsAtFirst && blockType !== 'code-block') {\n editor.setValue(external_braft_utils_[\"ContentUtils\"].decreaseSelectionIndent(editorState));\n }\n }\n\n if (command === 'tab') {\n var _blockType = external_braft_utils_[\"ContentUtils\"].getSelectionBlockType(editorState);\n\n if (_blockType === 'code-block') {\n editor.setValue(external_braft_utils_[\"ContentUtils\"].insertText(editorState, ' '.repeat(editor.editorProps.codeTabIndents)));\n return 'handled';\n } else if (_blockType === 'ordered-list-item' || _blockType === 'unordered-list-item') {\n var newEditorState = external_draft_js_[\"RichUtils\"].onTab(event, editorState, 4);\n\n if (newEditorState !== editorState) {\n editor.setValue(newEditorState);\n }\n\n return 'handled';\n } else if (_blockType !== 'atomic' && allowIndent && cursorIsAtFirst) {\n editor.setValue(external_braft_utils_[\"ContentUtils\"].increaseSelectionIndent(editorState));\n return 'handled';\n }\n }\n\n var nextEditorState = external_braft_utils_[\"ContentUtils\"].handleKeyCommand(editorState, command);\n\n if (nextEditorState) {\n editor.setValue(nextEditorState);\n return 'handled';\n }\n\n return 'not-handled';\n};\nvar handlers_returnHandlers = function returnHandlers(event, editorState, editor) {\n if (editor.editorProps.handleReturn && editor.editorProps.handleReturn(event, editorState, editor) === 'handled') {\n return 'handled';\n }\n\n var currentBlock = external_braft_utils_[\"ContentUtils\"].getSelectionBlock(editorState);\n var currentBlockType = currentBlock.getType();\n\n if (currentBlockType === 'unordered-list-item' || currentBlockType === 'ordered-list-item') {\n if (currentBlock.getLength() === 0) {\n editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionBlockType(editorState, 'unstyled'));\n return 'handled';\n }\n\n return 'not-handled';\n } else if (currentBlockType === 'code-block') {\n if (event.which === 13 && (event.getModifierState('Shift') || event.getModifierState('Alt') || event.getModifierState('Control'))) {\n editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionBlockType(editorState, 'unstyled'));\n return 'handled';\n }\n\n return 'not-handled';\n } else if (currentBlockType === 'blockquote') {\n if (event.which === 13) {\n if (event.getModifierState('Shift') || event.getModifierState('Alt') || event.getModifierState('Control')) {\n event.which = 0;\n } else {\n editor.setValue(external_draft_js_[\"RichUtils\"].insertSoftNewline(editorState));\n return 'handled';\n }\n }\n }\n\n var nextEditorState = Object(external_draftjs_utils_[\"handleNewLine\"])(editorState, event);\n\n if (nextEditorState) {\n editor.setValue(nextEditorState);\n return 'handled';\n }\n\n return 'not-handled';\n};\nvar beforeInputHandlers = function beforeInputHandlers(chars, editorState, editor) {\n if (editor.editorProps.handleBeforeInput && editor.editorProps.handleBeforeInput(chars, editorState, editor) === 'handled') {\n return 'handled';\n }\n\n return 'not-handled';\n};\nvar handlers_compositionStartHandler = function compositionStartHandler(_, editor) {\n var editorState = editor.state.editorState;\n var selectedBlocks = external_braft_utils_[\"ContentUtils\"].getSelectedBlocks(editorState);\n\n if (selectedBlocks && selectedBlocks.length > 1) {\n var nextEditorState = external_draft_js_[\"EditorState\"].push(editorState, external_draft_js_[\"Modifier\"].removeRange(editorState.getCurrentContent(), editorState.getSelection(), 'backward'), 'remove-range');\n editor.setValue(nextEditorState);\n }\n};\nvar handlers_dropHandlers = function dropHandlers(selectionState, dataTransfer, editor) {\n if (editor.editorProps.readOnly || editor.editorProps.disabled) {\n return 'handled';\n }\n\n if (window && window.__BRAFT_DRAGING__IMAGE__) {\n var nextEditorState = external_draft_js_[\"EditorState\"].forceSelection(editor.state.editorState, selectionState);\n nextEditorState = external_braft_utils_[\"ContentUtils\"].insertMedias(nextEditorState, [window.__BRAFT_DRAGING__IMAGE__.mediaData]);\n nextEditorState = external_braft_utils_[\"ContentUtils\"].removeBlock(nextEditorState, window.__BRAFT_DRAGING__IMAGE__.block, nextEditorState.getSelection());\n window.__BRAFT_DRAGING__IMAGE__ = null;\n editor.lockOrUnlockEditor(true);\n editor.setValue(nextEditorState);\n return 'handled';\n } else if (!dataTransfer || !dataTransfer.getText()) {\n return 'handled';\n }\n\n return 'not-handled';\n};\nvar handlers_handleFiles = function handleFiles(files, editor) {\n var _editor$constructor$d = objectSpread_default()({}, editor.constructor.defaultProps.media, editor.editorProps.media),\n pasteImage = _editor$constructor$d.pasteImage,\n validateFn = _editor$constructor$d.validateFn,\n imagePasteLimit = _editor$constructor$d.imagePasteLimit;\n\n pasteImage && files.slice(0, imagePasteLimit).forEach(function (file) {\n if (file && file.type.indexOf('image') > -1 && editor.braftFinder) {\n var validateResult = validateFn ? validateFn(file) : true;\n\n if (validateResult instanceof Promise) {\n validateResult.then(function () {\n editor.braftFinder.uploadImage(file, function (image) {\n editor.isLiving && editor.setValue(external_braft_utils_[\"ContentUtils\"].insertMedias(editor.state.editorState, [image]));\n });\n });\n } else if (validateResult) {\n editor.braftFinder.uploadImage(file, function (image) {\n editor.isLiving && editor.setValue(external_braft_utils_[\"ContentUtils\"].insertMedias(editor.state.editorState, [image]));\n });\n }\n }\n });\n\n if (files[0] && files[0].type.indexOf('image') > -1 && pasteImage) {\n return 'handled';\n }\n\n return 'not-handled';\n};\nvar droppedFilesHandlers = function droppedFilesHandlers(selectionState, files, editor) {\n if (editor.editorProps.handleDroppedFiles && editor.editorProps.handleDroppedFiles(selectionState, files, editor) === 'handled') {\n return 'handled';\n }\n\n return handlers_handleFiles(files, editor);\n};\nvar pastedFilesHandlers = function pastedFilesHandlers(files, editor) {\n if (editor.editorProps.handlePastedFiles && editor.editorProps.handlePastedFiles(files, editor) === 'handled') {\n return 'handled';\n }\n\n return handlers_handleFiles(files, editor);\n};\nvar handlers_copyHandlers = function copyHandlers(event, editor) {\n var blockMap = getFragmentFromSelection_default()(editor.state.editorState);\n\n if (blockMap && blockMap.toArray) {\n try {\n var tempContentState = external_draft_js_[\"ContentState\"].createFromBlockArray(blockMap.toArray());\n var tempEditorState = external_draft_js_[\"EditorState\"].createWithContent(tempContentState);\n var clipboardData = event.clipboardData || window.clipboardData || event.originalEvent.clipboardData;\n tempEditorState.setConvertOptions(editor.state.editorState.convertOptions);\n clipboardData.setData('text/html', tempEditorState.toHTML());\n clipboardData.setData('text/plain', tempEditorState.toText());\n event.preventDefault();\n } catch (error) {\n console.warn(error);\n }\n }\n};\nvar handlers_pastedTextHandlers = function pastedTextHandlers(text, html, editorState, editor) {\n if (editor.editorProps.handlePastedText && editor.editorProps.handlePastedText(text, html, editorState, editor) === 'handled') {\n return 'handled';\n }\n\n if (!html || editor.editorProps.stripPastedStyles) {\n return false;\n }\n\n var tempColors = external_braft_utils_[\"ColorUtils\"].detectColorsFromHTMLString(html);\n editor.setState({\n tempColors: toConsumableArray_default()(editor.state.tempColors).concat(toConsumableArray_default()(tempColors)).filter(function (item) {\n return editor.editorProps.colors.indexOf(item) === -1;\n }).filter(function (item, index, array) {\n return array.indexOf(item) === index;\n })\n }, function () {\n editor.setValue(external_braft_utils_[\"ContentUtils\"].insertHTML(editorState, html, 'paste'));\n });\n return 'handled';\n};\n// CONCATENATED MODULE: ./helpers/extension.js\n\n// TODO\n// - block-style和atomic类型的扩展支持\n\nvar extension_extensionControls = [];\nvar extension_extensionDecorators = [];\nvar extension_propInterceptors = [];\nvar extension_extensionBlockRenderMaps = [];\nvar extension_extensionBlockRendererFns = [];\nvar extensionInlineStyleMaps = [];\nvar extension_extensionInlineStyleFns = [];\nvar extensionEntities = [];\nvar inlineStyleImporters = [];\nvar inlineStyleExporters = [];\nvar blockImporters = [];\nvar blockExporters = [];\n\nvar filterByEditorId = function filterByEditorId(items, editorId) {\n if (!editorId) {\n return items.filter(function (item) {\n return !item.includeEditors;\n }).map(function (item) {\n return item.data;\n });\n }\n\n return items.map(function (item) {\n if (!item.includeEditors && !item.excludeEditors) {\n return item.data;\n }\n\n if (item.includeEditors) {\n return item.includeEditors.indexOf(editorId) !== -1 ? item.data : false;\n }\n\n if (item.excludeEditors) {\n return item.excludeEditors.indexOf(editorId) !== -1 ? false : item.data;\n }\n\n return false;\n }).filter(function (item) {\n return item;\n });\n};\n\nvar getPropInterceptors = function getPropInterceptors(editorId) {\n return filterByEditorId(extension_propInterceptors, editorId);\n};\nvar getExtensionControls = function getExtensionControls(editorId) {\n return filterByEditorId(extension_extensionControls, editorId);\n};\nvar getExtensionDecorators = function getExtensionDecorators(editorId) {\n return filterByEditorId(extension_extensionDecorators, editorId, 'decorators');\n};\nvar getExtensionBlockRenderMaps = function getExtensionBlockRenderMaps(editorId) {\n return filterByEditorId(extension_extensionBlockRenderMaps, editorId);\n};\nvar getExtensionBlockRendererFns = function getExtensionBlockRendererFns(editorId) {\n return filterByEditorId(extension_extensionBlockRendererFns, editorId);\n};\nvar getExtensionInlineStyleMap = function getExtensionInlineStyleMap(editorId) {\n var inlineStyleMap = {};\n filterByEditorId(extensionInlineStyleMaps, editorId).forEach(function (item) {\n inlineStyleMap[item.inlineStyleName] = item.styleMap;\n });\n return inlineStyleMap;\n};\nvar getExtensionInlineStyleFns = function getExtensionInlineStyleFns(editorId) {\n return filterByEditorId(extension_extensionInlineStyleFns, editorId);\n};\nvar compositeStyleImportFn = function compositeStyleImportFn(styleImportFn, editorId) {\n return function (nodeName, node, style) {\n filterByEditorId(inlineStyleImporters, editorId).forEach(function (styleImporter) {\n if (styleImporter.importer && styleImporter.importer(nodeName, node)) {\n style = style.add(styleImporter.inlineStyleName);\n }\n });\n return styleImportFn ? styleImportFn(nodeName, node, style) : style;\n };\n};\nvar compositeStyleExportFn = function compositeStyleExportFn(styleExportFn, editorId) {\n return function (style) {\n style = style.toUpperCase();\n var result = styleExportFn ? styleExportFn(style) : undefined;\n\n if (result) {\n return result;\n }\n\n filterByEditorId(inlineStyleExporters, editorId).find(function (item) {\n if (item.inlineStyleName === style) {\n result = item.exporter;\n return true;\n }\n });\n return result;\n };\n};\nvar compositeEntityImportFn = function compositeEntityImportFn(entityImportFn, editorId) {\n return function (nodeName, node, createEntity, source) {\n var result = entityImportFn ? entityImportFn(nodeName, node, createEntity, source) : null;\n\n if (result) {\n return result;\n }\n\n filterByEditorId(extensionEntities, editorId).find(function (entityItem) {\n var matched = entityItem.importer ? entityItem.importer(nodeName, node, source) : null;\n matched && (result = createEntity(entityItem.entityType, matched.mutability || 'MUTABLE', matched.data || {}));\n return !!matched;\n });\n return result;\n };\n};\nvar compositeEntityExportFn = function compositeEntityExportFn(entityExportFn, editorId) {\n return function (entity, originalText) {\n var result = entityExportFn ? entityExportFn(entity, originalText) : undefined;\n\n if (result) {\n return result;\n }\n\n var entityType = entity.type.toUpperCase();\n filterByEditorId(extensionEntities, editorId).find(function (entityItem) {\n if (entityItem.entityType === entityType) {\n result = entityItem.exporter ? entityItem.exporter(entity, originalText) : undefined;\n return true;\n }\n });\n return result;\n };\n};\nvar compositeBlockImportFn = function compositeBlockImportFn(blockImportFn, editorId) {\n return function (nodeName, node, source) {\n var result = blockImportFn ? blockImportFn(nodeName, node, source) : null;\n\n if (result) {\n return result;\n }\n\n filterByEditorId(blockImporters, editorId).find(function (blockImporter) {\n var matched = blockImporter.importer ? blockImporter.importer(nodeName, node, source) : undefined;\n matched && (result = matched);\n return !!matched;\n });\n return result;\n };\n};\nvar compositeBlockExportFn = function compositeBlockExportFn(blockExportFn, editorId) {\n return function (contentState, block) {\n var result = blockExportFn ? blockExportFn(contentState, block) : null;\n\n if (result) {\n return result;\n }\n\n filterByEditorId(blockExporters, editorId).find(function (blockExporter) {\n var matched = blockExporter.exporter ? blockExporter.exporter(contentState, block) : undefined;\n matched && (result = matched);\n return !!matched;\n });\n return result;\n };\n};\n\nvar extension_useExtension = function useExtension(extension) {\n if (extension instanceof Array) {\n extension.forEach(useExtension);\n return false;\n }\n\n if (!extension || !extension.type || typeof extension.type !== 'string') {\n return false;\n }\n\n var includeEditors = extension.includeEditors,\n excludeEditors = extension.excludeEditors;\n\n if (extension.type === 'control') {\n extension_extensionControls.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: extension.control\n });\n } else if (extension.type === 'inline-style') {\n var inlineStyleName = extension.name.toUpperCase();\n\n if (extension.control) {\n extension_extensionControls.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: objectSpread_default()({\n key: inlineStyleName,\n type: 'inline-style',\n command: inlineStyleName\n }, extension.control)\n });\n }\n\n if (extension.style) {\n extensionInlineStyleMaps.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n inlineStyleName: inlineStyleName,\n styleMap: extension.style\n }\n });\n }\n\n if (extension.styleFn) {\n extension_extensionInlineStyleFns.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n inlineStyleName: inlineStyleName,\n styleFn: extension.styleFn\n }\n });\n }\n\n if (extension.importer) {\n inlineStyleImporters.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n inlineStyleName: inlineStyleName,\n importer: extension.importer\n }\n });\n }\n\n inlineStyleExporters.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n inlineStyleName: inlineStyleName,\n exporter: extension.exporter ? extension.exporter(extension) : external_react_default.a.createElement(\"span\", {\n style: extension.style\n })\n }\n });\n } else if (extension.type === 'block-style') {// TODO\n } else if (extension.type === 'entity') {\n var entityType = extension.name.toUpperCase();\n\n if (extension.control) {\n extension_extensionControls.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: typeof extension.control === 'function' ? extension.control : objectSpread_default()({\n key: entityType,\n type: 'entity',\n command: entityType,\n data: {\n mutability: extension.mutability || 'MUTABLE',\n data: extension.data || {}\n }\n }, extension.control)\n });\n }\n\n extensionEntities.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n entityType: entityType,\n importer: extension.importer,\n exporter: extension.exporter\n }\n });\n extension_extensionDecorators.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n type: 'entity',\n decorator: {\n key: entityType,\n component: extension.component\n }\n }\n });\n } else if (extension.type === 'block') {\n var blockType = extension.name;\n\n if (extension.renderMap) {\n extension_extensionBlockRenderMaps.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n blockType: blockType,\n renderMap: extension.renderMap\n }\n });\n }\n\n if (extension.rendererFn) {\n extension_extensionBlockRendererFns.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n blockType: blockType,\n rendererFn: extension.rendererFn\n }\n });\n }\n\n if (extension.importer) {\n blockImporters.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n blockType: blockType,\n importer: extension.importer\n }\n });\n }\n\n if (extension.exporter) {\n blockExporters.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n blockType: blockType,\n exporter: extension.exporter\n }\n });\n }\n } else if (extension.type === 'atomic') {// TODO\n } else if (extension.type === 'decorator') {\n var decorator = extension.decorator;\n\n if (decorator && decorator.strategy && decorator.component) {\n extension_extensionDecorators.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n type: 'strategy',\n decorator: decorator\n }\n });\n } else if (decorator && decorator.getDecorations) {\n extension_extensionDecorators.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: {\n type: 'class',\n decorator: decorator\n }\n });\n }\n } else if (extension.type === 'prop-interception') {\n extension_propInterceptors.push({\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n data: extension.interceptor\n });\n }\n};\n\nvar createExtensibleEditor = function createExtensibleEditor(BraftEditor) {\n BraftEditor.use = extension_useExtension;\n return BraftEditor;\n};\n// CONCATENATED MODULE: ./renderers/block/blockRenderMap.js\n\n\n\n\n/* harmony default export */ var block_blockRenderMap = (function (props, blockRenderMap) {\n var customBlockRenderMap = Object(external_immutable_[\"Map\"])({\n 'atomic': {\n element: ''\n },\n 'code-block': {\n element: 'code',\n wrapper: external_react_default.a.createElement(\"pre\", {\n className: \"braft-code-block\"\n })\n }\n });\n\n try {\n var extensionBlockRenderMaps = getExtensionBlockRenderMaps(props.editorId);\n customBlockRenderMap = extensionBlockRenderMaps.reduce(function (customBlockRenderMap, item) {\n return customBlockRenderMap.merge(typeof item.renderMap === 'function' ? item.renderMap(props) : item.renderMap);\n }, customBlockRenderMap);\n\n if (blockRenderMap) {\n if (typeof blockRenderMap === 'function') {\n customBlockRenderMap = customBlockRenderMap.merge(blockRenderMap(props));\n } else {\n customBlockRenderMap = customBlockRenderMap.merge(blockRenderMap);\n }\n }\n\n customBlockRenderMap = external_draft_js_[\"DefaultDraftBlockRenderMap\"].merge(customBlockRenderMap);\n } catch (error) {\n console.warn(error);\n }\n\n return customBlockRenderMap;\n});\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/extends.js\nvar helpers_extends = __webpack_require__(11);\nvar extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);\n\n// EXTERNAL MODULE: ../node_modules/@babel/runtime/helpers/slicedToArray.js\nvar slicedToArray = __webpack_require__(24);\nvar slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);\n\n// EXTERNAL MODULE: ./renderers/atomics/Image/style.scss\nvar Image_style = __webpack_require__(45);\n\n// EXTERNAL MODULE: ./components/common/Switch/style.scss\nvar Switch_style = __webpack_require__(46);\n\n// CONCATENATED MODULE: ./components/common/Switch/index.jsx\n\n\n/* harmony default export */ var Switch = (function (props) {\n var active = props.active,\n _onClick = props.onClick,\n className = props.className;\n return external_react_default.a.createElement(\"div\", {\n onClick: function onClick() {\n return _onClick();\n },\n className: 'bf-switch ' + className + (active ? ' active' : '')\n });\n});\n// CONCATENATED MODULE: ./configs/controls.js\n\n/* harmony default export */ var configs_controls = (function (lang, editor) {\n return [{\n key: 'undo',\n title: lang.controls.undo,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-undo\"\n }),\n type: 'editor-method',\n command: 'undo'\n }, {\n key: 'redo',\n title: lang.controls.redo,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-redo\"\n }),\n type: 'editor-method',\n command: 'redo'\n }, {\n key: 'remove-styles',\n title: lang.controls.removeStyles,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-format_clear\"\n }),\n type: 'editor-method',\n command: 'removeSelectionInlineStyles'\n }, {\n key: 'hr',\n title: lang.controls.hr,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-hr\"\n }),\n type: 'editor-method',\n command: 'insertHorizontalLine'\n }, {\n key: 'bold',\n title: lang.controls.bold,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-bold\"\n }),\n type: 'inline-style',\n command: 'bold'\n }, {\n key: 'italic',\n title: lang.controls.italic,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-italic\"\n }),\n type: 'inline-style',\n command: 'italic'\n }, {\n key: 'underline',\n title: lang.controls.underline,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-underlined\"\n }),\n type: 'inline-style',\n command: 'underline'\n }, {\n key: 'strike-through',\n title: lang.controls.strikeThrough,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-strikethrough\"\n }),\n type: 'inline-style',\n command: 'strikethrough'\n }, {\n key: 'superscript',\n title: lang.controls.superScript,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-superscript\"\n }),\n type: 'inline-style',\n command: 'superscript'\n }, {\n key: 'subscript',\n title: lang.controls.subScript,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-subscript\"\n }),\n type: 'inline-style',\n command: 'subscript'\n }, {\n key: 'headings',\n title: lang.controls.headings,\n type: 'headings'\n }, {\n key: 'blockquote',\n title: lang.controls.blockQuote,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-quote\"\n }),\n type: 'block-type',\n command: 'blockquote'\n }, {\n key: 'code',\n title: lang.controls.code,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-code\"\n }),\n type: 'block-type',\n command: 'code-block'\n }, {\n key: 'list-ul',\n title: lang.controls.unorderedList,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-list\"\n }),\n type: 'block-type',\n command: 'unordered-list-item'\n }, {\n key: 'list-ol',\n title: lang.controls.orderedList,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-list-numbered\"\n }),\n type: 'block-type',\n command: 'ordered-list-item'\n }, {\n key: 'link',\n title: lang.controls.link,\n type: 'link'\n }, {\n key: 'text-color',\n title: lang.controls.color,\n type: 'text-color'\n }, {\n key: 'line-height',\n title: lang.controls.lineHeight,\n type: 'line-height'\n }, {\n key: 'letter-spacing',\n title: lang.controls.letterSpacing,\n type: 'letter-spacing'\n }, {\n key: 'text-indent',\n title: lang.controls.textIndent,\n type: 'text-indent'\n }, {\n key: 'font-size',\n title: lang.controls.fontSize,\n type: 'font-size'\n }, {\n key: 'font-family',\n title: lang.controls.fontFamily,\n type: 'font-family'\n }, {\n key: 'text-align',\n title: lang.controls.textAlign,\n type: 'text-align'\n }, {\n key: 'media',\n title: lang.controls.media,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-media\"\n }),\n type: 'media'\n }, {\n key: 'emoji',\n title: lang.controls.emoji,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-emoji\"\n }),\n type: 'emoji'\n }, {\n key: 'clear',\n title: lang.controls.clear,\n text: external_react_default.a.createElement(\"i\", {\n className: \"bfi-clear_all\"\n }),\n type: 'editor-method',\n command: 'clearEditorContent'\n }, {\n key: 'fullscreen',\n title: editor.state.isFullscreen ? lang.controls.exitFullscreen : lang.controls.fullscreen,\n text: external_react_default.a.createElement(\"i\", {\n className: editor.state.isFullscreen ? 'bfi-fullscreen-exit' : 'bfi-fullscreen'\n }),\n type: 'editor-method',\n command: 'toggleFullscreen'\n }, {\n key: 'modal',\n type: 'modal'\n }, {\n key: 'button',\n type: 'button'\n }, {\n key: 'dropdown',\n type: 'dropdown'\n }, {\n key: 'component',\n type: 'component'\n }];\n});\nvar imageControlItems = {\n 'float-left': {\n text: external_react_default.a.createElement(\"span\", {\n \"data-float\": \"left\"\n }, \"\\uE91E\"),\n command: 'setImageFloat|left'\n },\n 'float-right': {\n text: external_react_default.a.createElement(\"span\", {\n \"data-float\": \"right\"\n }, \"\\uE914\"),\n command: 'setImageFloat|right'\n },\n 'align-left': {\n text: external_react_default.a.createElement(\"span\", {\n \"data-align\": \"left\"\n }, \"\\uE027\"),\n command: 'setImageAlignment|left'\n },\n 'align-center': {\n text: external_react_default.a.createElement(\"span\", {\n \"data-align\": \"center\"\n }, \"\\uE028\"),\n command: 'setImageAlignment|center'\n },\n 'align-right': {\n text: external_react_default.a.createElement(\"span\", {\n \"data-align\": \"right\"\n }, \"\\uE029\"),\n command: 'setImageAlignment|right'\n },\n 'size': {\n text: external_react_default.a.createElement(\"span\", null, \"\\uE3C2\"),\n command: 'toggleSizeEditor'\n },\n 'link': {\n text: external_react_default.a.createElement(\"span\", null, \"\\uE91A\"),\n command: 'toggleLinkEditor'\n },\n 'remove': {\n text: external_react_default.a.createElement(\"span\", null, \"\\uE9AC\"),\n command: 'removeImage'\n }\n};\n// CONCATENATED MODULE: ./renderers/atomics/Image/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Image_Image =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(Image, _React$Component);\n\n function Image() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, Image);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(Image)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"state\", {\n toolbarVisible: false,\n toolbarOffset: 0,\n linkEditorVisible: false,\n sizeEditorVisible: false,\n tempLink: null,\n tempWidth: null,\n tempHeight: null\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"initialLeft\", void 0);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"initialTop\", void 0);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"initialWidth\", void 0);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"initialHeight\", void 0);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"reSizeType\", void 0);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"changeSize\", function (e) {\n var type = _this.reSizeType;\n\n if (!_this.initialLeft) {\n _this.initialLeft = e.screenX;\n _this.initialTop = e.screenY;\n }\n\n if (type === 'rightbottom') {\n _this.initialHeight += e.screenY - _this.initialTop;\n _this.initialWidth += e.screenX - _this.initialLeft;\n }\n\n if (type === 'leftbottom') {\n _this.initialHeight += e.screenY - _this.initialTop;\n _this.initialWidth += -e.screenX + _this.initialLeft;\n }\n\n _this.initialLeft = e.screenX;\n _this.initialTop = e.screenY;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"moveImage\", function (e) {\n _this.changeSize(e);\n\n _this.setState({\n tempWidth: Math.abs(_this.initialWidth),\n tempHeight: Math.abs(_this.initialHeight)\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"upImage\", function () {\n _this.confirmImageSize();\n\n document.removeEventListener('mousemove', _this.moveImage);\n document.removeEventListener('mouseup', _this.upImage);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"repareChangeSize\", function (type) {\n return function (e) {\n _this.reSizeType = type;\n\n var imageRect = _this.imageElement.getBoundingClientRect();\n\n _this.initialLeft = _this.initialTop = 0;\n _this.initialWidth = imageRect.width;\n _this.initialHeight = imageRect.height;\n e.preventDefault();\n document.addEventListener('mousemove', _this.moveImage);\n document.addEventListener('mouseup', _this.upImage);\n };\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"preventDragEvent\", function (event) {\n event.stopPropagation();\n event.preventDefault();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleDragStart\", function () {\n if (_this.props.editor.editorProps.readOnly || _this.props.editor.editorProps.disabled) {\n return false;\n }\n\n window.__BRAFT_DRAGING__IMAGE__ = {\n block: _this.props.block,\n mediaData: objectSpread_default()({\n type: 'IMAGE'\n }, _this.props.mediaData)\n };\n\n _this.setState({\n toolbarVisible: false\n }, function () {\n _this.unlockEditor();\n });\n\n return true;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleDragEnd\", function () {\n window.__BRAFT_DRAGING__IMAGE__ = null;\n return false;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"executeCommand\", function (command) {\n if (typeof command === 'string') {\n var _command$split = command.split('|'),\n _command$split2 = slicedToArray_default()(_command$split, 2),\n method = _command$split2[0],\n param = _command$split2[1];\n\n _this[method] && _this[method](param);\n } else if (typeof command === 'function') {\n command(_this.props.block, _this.props.mediaData, _this.props.editor.getValue());\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"removeImage\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].removeBlock(_this.props.editor.getValue(), _this.props.block));\n\n _this.unlockEditor();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"toggleLinkEditor\", function () {\n _this.setState({\n linkEditorVisible: !_this.state.linkEditorVisible,\n sizeEditorVisible: false\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"toggleSizeEditor\", function () {\n _this.setState({\n linkEditorVisible: false,\n sizeEditorVisible: !_this.state.sizeEditorVisible\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleLinkInputKeyDown\", function (e) {\n if (e.keyCode === 13) {\n _this.confirmImageLink();\n } else {\n return;\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setImageLink\", function (e) {\n _this.setState({\n tempLink: e.currentTarget.value\n });\n\n return;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"confirmImageLink\", function () {\n var link = _this.state.tempLink;\n\n var hookReturns = _this.props.hooks('set-image-link', link)(link);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n link = hookReturns;\n }\n\n if (link !== null) {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].setMediaData(_this.props.editor.getValue(), _this.props.entityKey, {\n link: link\n }));\n\n window.setImmediate(_this.props.editor.forceRender);\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleSizeInputKeyDown\", function (e) {\n if (e.keyCode === 13) {\n _this.confirmImageSize();\n } else {\n return;\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setImageWidth\", function (_ref) {\n var currentTarget = _ref.currentTarget;\n var value = currentTarget.value;\n value && !isNaN(value) && (value = value + 'px');\n\n _this.setState({\n tempWidth: value\n });\n\n return;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setImageHeight\", function (_ref2) {\n var currentTarget = _ref2.currentTarget;\n var value = currentTarget.value;\n value && !isNaN(value) && (value = value + 'px');\n\n _this.setState({\n tempHeight: value\n });\n\n return;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"confirmImageSize\", function () {\n var _this$state = _this.state,\n width = _this$state.tempWidth,\n height = _this$state.tempHeight;\n var newImageSize = {};\n width !== null && (newImageSize.width = width);\n height !== null && (newImageSize.height = height);\n\n var hookReturns = _this.props.hooks('set-image-size', newImageSize)(newImageSize);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (hookReturns && (hookReturns.width || hookReturns.height)) {\n newImageSize = hookReturns;\n }\n\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].setMediaData(_this.props.editor.getValue(), _this.props.entityKey, newImageSize));\n\n window.setImmediate(_this.props.editor.forceRender);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setImageFloat\", function (float) {\n var hookReturns = _this.props.hooks('set-image-float', float)(float);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n float = hookReturns;\n }\n\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].setMediaPosition(_this.props.editor.getValue(), _this.props.block, {\n float: float\n }));\n\n _this.unlockEditor();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setImageAlignment\", function (alignment) {\n var hookReturns = _this.props.hooks('set-image-alignment', alignment)(alignment);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n alignment = hookReturns;\n }\n\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].setMediaPosition(_this.props.editor.getValue(), _this.props.block, {\n alignment: alignment\n }));\n\n _this.unlockEditor();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"showToolbar\", function (event) {\n if (_this.props.editor.editorProps.readOnly || _this.props.editor.editorProps.disabled) {\n return false;\n }\n\n event.preventDefault();\n\n if (!_this.state.toolbarVisible) {\n _this.setState({\n toolbarVisible: true\n }, function () {\n _this.lockEditor();\n\n _this.setState({\n toolbarOffset: _this.calcToolbarOffset()\n });\n });\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"hideToolbar\", function (event) {\n event.preventDefault();\n\n _this.setState({\n toolbarVisible: false\n }, function () {\n _this.unlockEditor(); // this.props.editor.requestFocus()\n\n });\n });\n\n return _this;\n }\n\n createClass_default()(Image, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n mediaData = _this$props.mediaData,\n language = _this$props.language,\n imageControls = _this$props.imageControls,\n imageResizable = _this$props.imageResizable;\n var _this$state2 = this.state,\n toolbarVisible = _this$state2.toolbarVisible,\n toolbarOffset = _this$state2.toolbarOffset,\n linkEditorVisible = _this$state2.linkEditorVisible,\n sizeEditorVisible = _this$state2.sizeEditorVisible,\n tempWidth = _this$state2.tempWidth,\n tempHeight = _this$state2.tempHeight;\n var blockData = this.props.block.getData();\n var float = blockData.get('float');\n var alignment = blockData.get('alignment');\n var url = mediaData.url,\n link = mediaData.link,\n link_target = mediaData.link_target,\n width = mediaData.width,\n height = mediaData.height,\n meta = mediaData.meta;\n var imageStyles = {};\n var clearFix = false;\n\n if (float) {\n alignment = null;\n } else if (alignment === 'left') {\n imageStyles.float = 'left';\n clearFix = true;\n } else if (alignment === 'right') {\n imageStyles.float = 'right';\n clearFix = true;\n } else if (alignment === 'center') {\n imageStyles.textAlign = 'center';\n } else {\n imageStyles.float = 'left';\n clearFix = true;\n }\n\n var renderedControlItems = imageControls.map(function (item, index) {\n if (typeof item === 'string' && imageControlItems[item]) {\n return external_react_default.a.createElement(\"a\", {\n className: item === 'link' && link ? 'active' : '',\n key: index,\n onClick: function onClick() {\n return _this2.executeCommand(imageControlItems[item].command);\n }\n }, imageControlItems[item].text);\n } else if (item && (item.render || item.text)) {\n return item.render ? item.render(mediaData, _this2.props.block) : external_react_default.a.createElement(\"a\", {\n key: index,\n onClick: function onClick() {\n return item.onClick && _this2.executeCommand(item.onClick);\n }\n }, item.text);\n } else {\n return null;\n }\n });\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-media\"\n }, external_react_default.a.createElement(\"div\", {\n style: imageStyles,\n draggable: true,\n onMouseEnter: this.showToolbar,\n onMouseMove: this.showToolbar,\n onMouseLeave: this.hideToolbar,\n onDragStart: this.handleDragStart,\n onDragEnd: this.handleDragEnd,\n ref: function ref(instance) {\n return _this2.mediaEmbederInstance = instance;\n },\n className: \"bf-image\"\n }, toolbarVisible ? external_react_default.a.createElement(\"div\", {\n style: {\n marginLeft: toolbarOffset\n },\n ref: function ref(instance) {\n return _this2.toolbarElement = instance;\n },\n \"data-float\": float,\n \"data-align\": alignment,\n className: \"bf-media-toolbar\"\n }, linkEditorVisible ? external_react_default.a.createElement(\"div\", {\n className: \"bf-image-link-editor\"\n }, external_react_default.a.createElement(\"div\", {\n className: \"editor-input-group\"\n }, external_react_default.a.createElement(\"input\", {\n type: \"text\",\n placeholder: language.linkEditor.inputWithEnterPlaceHolder,\n onKeyDown: this.handleLinkInputKeyDown,\n onChange: this.setImageLink,\n defaultValue: link\n }), external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.confirmImageLink\n }, language.base.confirm)), external_react_default.a.createElement(\"div\", {\n className: \"switch-group\"\n }, external_react_default.a.createElement(Switch, {\n active: link_target === '_blank',\n onClick: function onClick() {\n return _this2.setImageLinkTarget(link_target);\n }\n }), external_react_default.a.createElement(\"label\", null, language.linkEditor.openInNewWindow))) : null, sizeEditorVisible ? external_react_default.a.createElement(\"div\", {\n className: \"bf-image-size-editor\"\n }, external_react_default.a.createElement(\"div\", {\n className: \"editor-input-group\"\n }, external_react_default.a.createElement(\"input\", {\n type: \"text\",\n placeholder: language.base.width,\n onKeyDown: this.handleSizeInputKeyDown,\n onChange: this.setImageWidth,\n defaultValue: width\n }), external_react_default.a.createElement(\"input\", {\n type: \"text\",\n placeholder: language.base.height,\n onKeyDown: this.handleSizeInputKeyDown,\n onChange: this.setImageHeight,\n defaultValue: height\n }), external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.confirmImageSize\n }, language.base.confirm))) : null, renderedControlItems, external_react_default.a.createElement(\"i\", {\n style: {\n marginLeft: toolbarOffset * -1\n },\n className: \"bf-media-toolbar-arrow\"\n })) : null, external_react_default.a.createElement(\"div\", {\n style: {\n position: 'relative',\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n display: 'inline-block'\n }\n }, external_react_default.a.createElement(\"img\", extends_default()({\n ref: function ref(instance) {\n return _this2.imageElement = instance;\n },\n src: url,\n width: width,\n height: height\n }, meta)), toolbarVisible && imageResizable ? external_react_default.a.createElement(\"div\", {\n className: \"bf-csize-icon right-bottom\",\n onMouseDown: this.repareChangeSize('rightbottom')\n }) : null, toolbarVisible && imageResizable ? external_react_default.a.createElement(\"div\", {\n className: \"bf-csize-icon left-bottom\",\n onMouseDown: this.repareChangeSize('leftbottom')\n }) : null, external_react_default.a.createElement(\"div\", {\n className: \"bf-pre-csize \".concat(this.reSizeType),\n style: {\n width: \"\".concat(tempWidth, \"px\"),\n height: \"\".concat(tempHeight, \"px\")\n }\n }))), clearFix && external_react_default.a.createElement(\"div\", {\n className: \"clearfix\",\n style: {\n clear: 'both',\n height: 0,\n lineHeight: 0,\n float: 'none'\n }\n }));\n }\n }, {\n key: \"lockEditor\",\n value: function lockEditor() {\n this.props.editor.lockOrUnlockEditor(true);\n }\n }, {\n key: \"unlockEditor\",\n value: function unlockEditor() {\n this.props.editor.lockOrUnlockEditor(false);\n }\n }, {\n key: \"calcToolbarOffset\",\n value: function calcToolbarOffset() {\n var _this$props2 = this.props,\n getContainerNode = _this$props2.getContainerNode,\n containerNode = _this$props2.containerNode;\n var container = getContainerNode ? getContainerNode() : containerNode;\n\n if (!container) {\n return 0;\n }\n\n var viewRect = container.querySelector('.bf-content').getBoundingClientRect();\n var toolbarRect = this.toolbarElement.getBoundingClientRect();\n var imageRect = this.imageElement.getBoundingClientRect();\n var right = viewRect.right - (imageRect.right - imageRect.width / 2 + toolbarRect.width / 2);\n var left = imageRect.left + imageRect.width / 2 - toolbarRect.width / 2 - viewRect.left;\n\n if (right < 10) {\n return right - 10;\n } else if (left < 10) {\n return left * -1 + 10;\n } else {\n return 0;\n }\n }\n }, {\n key: \"setImageLinkTarget\",\n value: function setImageLinkTarget(link_target) {\n var hookReturns = this.props.hooks('set-image-link-target', link_target)(link_target);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n link_target = hookReturns;\n }\n\n link_target = link_target === '_blank' ? '' : '_blank';\n this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].setMediaData(this.props.editor.getValue(), this.props.entityKey, {\n link_target: link_target\n }));\n window.setImmediate(this.props.editor.forceRender);\n }\n }]);\n\n return Image;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./renderers/atomics/Video/style.scss\nvar Video_style = __webpack_require__(47);\n\n// EXTERNAL MODULE: ./components/common/Modal/style.scss\nvar Modal_style = __webpack_require__(48);\n\n// EXTERNAL MODULE: external \"react-dom\"\nvar external_react_dom_ = __webpack_require__(16);\nvar external_react_dom_default = /*#__PURE__*/__webpack_require__.n(external_react_dom_);\n\n// CONCATENATED MODULE: ./components/common/Modal/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Modal_Modal =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(Modal, _React$Component);\n\n function Modal(props) {\n var _this;\n\n classCallCheck_default()(this, Modal);\n\n _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(Modal).call(this, props));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleTransitionEnd\", function () {\n if (!_this.rootElement || !_this.rootElement.classList) {\n return false;\n }\n\n if (!_this.rootElement.classList.contains('active')) {\n external_react_dom_default.a.unmountComponentAtNode(_this.rootElement) && _this.rootElement.parentNode.removeChild(_this.rootElement);\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleMouseDown\", function (event) {\n var tagName = event.target.tagName.toLowerCase();\n\n if (tagName === 'input' || tagName === 'textarea') {\n return false;\n }\n\n event.preventDefault();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleCancel\", function () {\n _this.props.closeOnCancel && _this.close();\n _this.props.onCancel && _this.props.onCancel();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleConfirm\", function () {\n _this.props.closeOnConfirm && _this.close();\n _this.props.onConfirm && _this.props.onConfirm();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleMaskClick\", function () {\n _this.props.closeOnBlur && _this.close();\n _this.props.onBlue && _this.props.onBlue();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"close\", function () {\n _this.unrenderComponent();\n\n _this.props.onClose && _this.props.onClose();\n });\n\n _this.active = false;\n _this.componentId = 'BRAFT-MODAL-' + external_braft_utils_[\"BaseUtils\"].UniqueIndex();\n return _this;\n }\n\n createClass_default()(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.visible) {\n this.active = true;\n this.renderComponent(this.props);\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(next) {\n if (this.props.visible && !next.visible) {\n this.unrenderComponent();\n } else if (this.props.visible || next.visible) {\n this.active = true;\n this.renderComponent(next);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }, {\n key: \"unrenderComponent\",\n value: function unrenderComponent() {\n this.active = false;\n this.activeId && window.clearImmediate(this.activeId);\n\n if (this.rootElement && this.rootElement.classList) {\n this.rootElement.classList.remove('active');\n }\n }\n }, {\n key: \"renderComponent\",\n value: function renderComponent(props) {\n var _this2 = this;\n\n if (!this.active) {\n return false;\n }\n\n var title = props.title,\n className = props.className,\n width = props.width,\n height = props.height,\n children = props.children,\n component = props.component,\n confirmable = props.confirmable,\n showFooter = props.showFooter,\n showCancel = props.showCancel,\n showConfirm = props.showConfirm,\n showClose = props.showClose,\n cancelText = props.cancelText,\n confirmText = props.confirmText,\n bottomText = props.bottomText,\n language = props.language;\n typeof showCancel === 'undefined' && (showCancel = true);\n typeof showClose === 'undefined' && (showClose = true);\n typeof showConfirm === 'undefined' && (showConfirm = true);\n typeof showFooter === 'undefined' && (showFooter = true);\n var childComponent = external_react_default.a.createElement(\"div\", {\n onMouseDown: this.handleMouseDown,\n className: 'bf-modal ' + (className || '')\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-modal-mask\",\n onClick: this.handleMaskClick\n }), external_react_default.a.createElement(\"div\", {\n onTransitionEnd: this.handleTransitionEnd,\n style: {\n width: width,\n height: height\n },\n className: \"bf-modal-content\"\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-modal-header\"\n }, external_react_default.a.createElement(\"h3\", {\n className: \"bf-modal-caption\"\n }, title), showClose && external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.close,\n className: \"bf-modal-close-button\"\n }, external_react_default.a.createElement(\"i\", {\n className: \"bfi-close\"\n }))), external_react_default.a.createElement(\"div\", {\n className: \"bf-modal-body\"\n }, children || component), showFooter ? external_react_default.a.createElement(\"div\", {\n className: \"bf-modal-footer\"\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-modal-addon-text\"\n }, bottomText), external_react_default.a.createElement(\"div\", {\n className: \"bf-modal-buttons\"\n }, showCancel && external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleCancel,\n className: \"bf-modal-cancel\"\n }, cancelText || language.base.cancel), showConfirm && external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleConfirm,\n className: 'bf-modal-confirm ' + (!confirmable ? 'disabled' : '')\n }, confirmText || language.base.confirm))) : null));\n this.rootElement = document.querySelector('#' + this.componentId);\n\n if (!this.rootElement) {\n this.rootElement = document.createElement('div');\n this.rootElement.id = this.componentId;\n this.rootElement.className = 'bf-modal-root';\n document.body.appendChild(this.rootElement);\n }\n\n external_react_dom_default.a.render(childComponent, this.rootElement);\n this.activeId = window.setImmediate(function () {\n _this2.rootElement.classList.add('active');\n });\n }\n }]);\n\n return Modal;\n}(external_react_default.a.Component);\n\ndefineProperty_default()(Modal_Modal, \"defaultProps\", {\n showFooter: true,\n closeOnBlur: true\n});\n\n\nvar Modal_showModal = function showModal(props) {\n var hostNode = document.createElement('div');\n hostNode.style.display = 'none';\n document.body.appendChild(hostNode);\n props = objectSpread_default()({\n visible: true,\n closeOnConfirm: true,\n closeOnCancel: true\n }, props);\n\n var close = function close() {\n external_react_dom_default.a.unmountComponentAtNode(hostNode) && hostNode.parentNode.removeChild(hostNode);\n };\n\n var onConfirm = function onConfirm() {\n props.onConfirm && props.onConfirm();\n };\n\n var onCancel = function onCancel() {\n props.onCancel && props.onCancel();\n };\n\n var onClose = function onClose() {\n close();\n props.onClose && props.onClose();\n };\n\n var modalInstance = external_react_dom_default.a.render(external_react_default.a.createElement(Modal_Modal, extends_default()({}, props, {\n onConfirm: onConfirm,\n onCancel: onCancel,\n onClose: onClose\n })), hostNode);\n modalInstance.destroy = close;\n modalInstance.update = modalInstance.renderComponent;\n return modalInstance;\n};\n// EXTERNAL MODULE: ./components/business/PlayerModal/style.scss\nvar PlayerModal_style = __webpack_require__(49);\n\n// CONCATENATED MODULE: ./components/business/PlayerModal/index.jsx\n\n\n\n\nvar PlayerModal_playViaModal = function playViaModal(title, component, language) {\n return Modal_showModal({\n title: title,\n component: component,\n language: language,\n showFooter: false\n });\n};\n\nvar typeIconsMap = {\n 'video': 'bfi-film',\n 'audio': 'bfi-music',\n 'embed': 'bfi-code'\n};\n/* harmony default export */ var PlayerModal = (function (_ref) {\n var title = _ref.title,\n type = _ref.type,\n language = _ref.language,\n name = _ref.name,\n url = _ref.url,\n poster = _ref.poster,\n children = _ref.children,\n onRemove = _ref.onRemove;\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-player-holder \".concat(type)\n }, external_react_default.a.createElement(\"div\", {\n className: \"icon-badge\"\n }, external_react_default.a.createElement(\"i\", {\n className: typeIconsMap[type]\n }), external_react_default.a.createElement(\"span\", {\n className: \"text\"\n }, language.media[type])), external_react_default.a.createElement(\"button\", {\n onMouseDown: onRemove,\n className: \"button-remove\"\n }, external_react_default.a.createElement(\"i\", {\n className: \"bfi-close\"\n })), external_react_default.a.createElement(\"button\", {\n onMouseDown: function onMouseDown() {\n return PlayerModal_playViaModal(name ? \"\".concat(title, \":\").concat(name) : title, children, language);\n },\n className: \"button-play\"\n }, external_react_default.a.createElement(\"i\", {\n className: \"bfi-play_arrow\"\n })), name ? external_react_default.a.createElement(\"h5\", {\n className: \"bf-name\"\n }, name) : null, external_react_default.a.createElement(\"h6\", {\n className: \"bf-url\"\n }, url), poster ? external_react_default.a.createElement(\"div\", {\n className: \"bf-poster\",\n style: {\n backgroundImage: \"url(\".concat(poster, \")\")\n }\n }) : null);\n});\n// CONCATENATED MODULE: ./renderers/atomics/Video/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nvar Video_Video =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(Video, _React$Component);\n\n function Video() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, Video);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(Video)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"removeVideo\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].removeBlock(_this.props.editorState, _this.props.block));\n });\n\n return _this;\n }\n\n createClass_default()(Video, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n mediaData = _this$props.mediaData,\n language = _this$props.language;\n var url = mediaData.url,\n name = mediaData.name,\n meta = mediaData.meta;\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-video-wrap\"\n }, external_react_default.a.createElement(PlayerModal, {\n type: \"video\",\n onRemove: this.removeVideo,\n poster: meta ? meta.poster || '' : '',\n language: language,\n url: url,\n name: name,\n title: language.videoPlayer.title\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-video-player\"\n }, external_react_default.a.createElement(\"video\", {\n controls: true,\n poster: meta ? meta.poster || '' : ''\n }, external_react_default.a.createElement(\"source\", {\n src: url\n })))));\n }\n }]);\n\n return Video;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./renderers/atomics/Audio/style.scss\nvar Audio_style = __webpack_require__(50);\n\n// CONCATENATED MODULE: ./renderers/atomics/Audio/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nvar Audio_Audio =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(Audio, _React$Component);\n\n function Audio() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, Audio);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(Audio)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"removeAudio\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].removeBlock(_this.props.editorState, _this.props.block));\n });\n\n return _this;\n }\n\n createClass_default()(Audio, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n mediaData = _this$props.mediaData,\n language = _this$props.language;\n var url = mediaData.url,\n name = mediaData.name,\n meta = mediaData.meta;\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-audio-wrap\"\n }, external_react_default.a.createElement(PlayerModal, {\n type: \"audio\",\n onRemove: this.removeAudio,\n poster: meta ? meta.poster || '' : '',\n language: language,\n url: url,\n name: name,\n title: language.audioPlayer.title\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-audio-player\"\n }, external_react_default.a.createElement(\"audio\", {\n controls: true,\n src: url\n }))));\n }\n }]);\n\n return Audio;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./renderers/atomics/Embed/style.scss\nvar Embed_style = __webpack_require__(51);\n\n// CONCATENATED MODULE: ./renderers/atomics/Embed/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\nvar Embed_Embed =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(Embed, _React$Component);\n\n function Embed() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, Embed);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(Embed)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"removeEmbed\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].removeBlock(_this.props.editorState, _this.props.block));\n });\n\n return _this;\n }\n\n createClass_default()(Embed, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n mediaData = _this$props.mediaData,\n language = _this$props.language;\n var name = mediaData.name,\n url = mediaData.url,\n meta = mediaData.meta;\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-embed-wrap\"\n }, external_react_default.a.createElement(PlayerModal, {\n type: \"embed\",\n onRemove: this.removeEmbed,\n poster: meta ? meta.poster || '' : '',\n language: language,\n url: url,\n name: name,\n title: language.videoPlayer.embedTitle\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-embed-player\",\n dangerouslySetInnerHTML: {\n __html: url\n }\n })));\n }\n }]);\n\n return Embed;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./renderers/atomics/HorizontalLine/style.scss\nvar HorizontalLine_style = __webpack_require__(52);\n\n// CONCATENATED MODULE: ./renderers/atomics/HorizontalLine/index.jsx\n\n\n\n\n\n\n\n\n\n\n\nvar HorizontalLine_HorizontalLine =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(HorizontalLine, _React$Component);\n\n function HorizontalLine() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, HorizontalLine);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(HorizontalLine)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"removeHorizontalLine\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].removeBlock(_this.props.editorState, _this.props.block));\n });\n\n return _this;\n }\n\n createClass_default()(HorizontalLine, [{\n key: \"render\",\n value: function render() {\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-hr\"\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-media-toolbar\"\n }, external_react_default.a.createElement(\"a\", {\n onClick: this.removeHorizontalLine\n }, \"\\uE9AC\")));\n }\n }]);\n\n return HorizontalLine;\n}(external_react_default.a.Component);\n\n\n// CONCATENATED MODULE: ./renderers/block/blockRendererFn.js\n\n\n\n\n\n\n\n\n\n\n\nvar blockRendererFn_BlockRenderFnContext = function BlockRenderFnContext() {\n var _this = this;\n\n classCallCheck_default()(this, BlockRenderFnContext);\n\n defineProperty_default()(this, \"superProps\", void 0);\n\n defineProperty_default()(this, \"customBlockRendererFn\", void 0);\n\n defineProperty_default()(this, \"getRenderFn\", function (superProps, customBlockRendererFn) {\n _this.superProps = superProps;\n _this.customBlockRendererFn = customBlockRendererFn;\n return _this.blockRendererFn;\n });\n\n defineProperty_default()(this, \"renderAtomicBlock\", function (props) {\n var superProps = _this.superProps;\n var entityKey = props.block.getEntityAt(0);\n\n if (!entityKey) {\n return null;\n }\n\n var entity = props.contentState.getEntity(entityKey);\n var mediaData = entity.getData();\n var mediaType = entity.getType();\n\n var mediaProps = objectSpread_default()({}, superProps, {\n block: props.block,\n mediaData: mediaData,\n entityKey: entityKey\n });\n\n if (mediaType === 'IMAGE') {\n return external_react_default.a.createElement(Image_Image, mediaProps);\n } else if (mediaType === 'AUDIO') {\n return external_react_default.a.createElement(Audio_Audio, mediaProps);\n } else if (mediaType === 'VIDEO') {\n return external_react_default.a.createElement(Video_Video, mediaProps);\n } else if (mediaType === 'EMBED') {\n return external_react_default.a.createElement(Embed_Embed, mediaProps);\n } else if (mediaType === 'HR') {\n return external_react_default.a.createElement(HorizontalLine_HorizontalLine, mediaProps);\n }\n\n if (superProps.extendAtomics) {\n var atomics = superProps.extendAtomics;\n\n for (var i = 0; i < atomics.length; i++) {\n if (mediaType === atomics[i].type) {\n var Component = atomics[i].component;\n return external_react_default.a.createElement(Component, mediaProps);\n }\n }\n }\n\n return null;\n });\n\n defineProperty_default()(this, \"blockRendererFn\", function (block) {\n var customBlockRendererFn = _this.customBlockRendererFn,\n superProps = _this.superProps;\n var blockType = block.getType();\n var blockRenderer = null;\n\n if (customBlockRendererFn) {\n blockRenderer = customBlockRendererFn(block, superProps) || null;\n }\n\n if (blockRenderer) {\n return blockRenderer;\n }\n\n var extensionBlockRendererFns = getExtensionBlockRendererFns(superProps.editorId);\n extensionBlockRendererFns.find(function (item) {\n if (item.blockType === blockType || item.blockType instanceof RegExp && item.blockType.test(blockType)) {\n blockRenderer = item.rendererFn ? item.rendererFn(superProps) : null;\n return true;\n }\n });\n\n if (blockRenderer) {\n return blockRenderer;\n }\n\n if (blockType === 'atomic') {\n blockRenderer = {\n component: _this.renderAtomicBlock,\n editable: false\n };\n }\n\n return blockRenderer;\n });\n};\n\nvar blockRenderFnContext = new blockRendererFn_BlockRenderFnContext();\n/* harmony default export */ var block_blockRendererFn = (blockRenderFnContext.getRenderFn);\n// CONCATENATED MODULE: ./renderers/block/blockStyleFn.js\n/* harmony default export */ var block_blockStyleFn = (function (customBlockStyleFn) {\n return function (block) {\n var blockAlignment = block.getData() && block.getData().get('textAlign');\n var blockIndent = block.getData() && block.getData().get('textIndent');\n var blockFloat = block.getData() && block.getData().get('float');\n var result = '';\n\n if (blockAlignment) {\n result = \"bfa-\".concat(blockAlignment);\n }\n\n if (blockIndent && blockIndent !== 0) {\n result += \" bftd-\".concat(blockIndent);\n }\n\n if (blockFloat) {\n result += \" bff-\".concat(blockFloat);\n }\n\n if (customBlockStyleFn) {\n result += customBlockStyleFn(block) || '';\n }\n\n return result;\n };\n});\n// CONCATENATED MODULE: ./renderers/inline/inlineStyleMap.js\n\n\n/* harmony default export */ var inlineStyleMap = (function (props) {\n var customStyleMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var extensionInlineStyleMap = getExtensionInlineStyleMap(props.editorId);\n return objectSpread_default()({\n 'SUPERSCRIPT': {\n position: 'relative',\n top: '-8px',\n fontSize: '11px'\n },\n 'SUBSCRIPT': {\n position: 'relative',\n bottom: '-8px',\n fontSize: '11px'\n }\n }, extensionInlineStyleMap, customStyleMap);\n});\n// CONCATENATED MODULE: ./renderers/inline/inlineStyleFn.js\n\n\nvar getStyleValue = function getStyleValue(style) {\n return style.split('-')[1];\n};\n\n/* harmony default export */ var inlineStyleFn = (function (props, options) {\n return function (styles, block) {\n var output = {};\n var fontFamilies = options.fontFamilies,\n unitExportFn = options.unitExportFn,\n customStyleFn = options.customStyleFn;\n var extensionInlineStyleFns = getExtensionInlineStyleFns(props.editorId);\n extensionInlineStyleFns.forEach(function (item) {\n output = item.styleFn ? item.styleFn(styles, block, output) : output;\n });\n output = customStyleFn ? customStyleFn(styles, block, output) : {};\n styles.forEach(function (style) {\n if (style.indexOf('COLOR-') === 0) {\n output.color = '#' + getStyleValue(style);\n } else if (style.indexOf('BGCOLOR-') === 0) {\n output.backgroundColor = '#' + getStyleValue(style);\n } else if (style.indexOf('FONTSIZE-') === 0) {\n output.fontSize = unitExportFn(getStyleValue(style), 'font-size', 'editor');\n } else if (style.indexOf('LINEHEIGHT-') === 0) {\n output.lineHeight = unitExportFn(getStyleValue(style), 'line-height', 'editor');\n } else if (style.indexOf('LETTERSPACING-') === 0) {\n output.letterSpacing = unitExportFn(getStyleValue(style), 'letter-spacing', 'editor');\n } else if (style.indexOf('TEXTINDENT-') === 0) {\n output.textIndent = unitExportFn(getStyleValue(style), 'text-indent', 'editor');\n } else if (style.indexOf('FONTFAMILY-') === 0) {\n output.fontFamily = (fontFamilies.find(function (item) {\n return item.name.toUpperCase() === getStyleValue(style);\n }) || {}).family || '';\n }\n });\n return output;\n };\n});\n// EXTERNAL MODULE: ../node_modules/draft-js-multidecorators/index.js\nvar draft_js_multidecorators = __webpack_require__(18);\nvar draft_js_multidecorators_default = /*#__PURE__*/__webpack_require__.n(draft_js_multidecorators);\n\n// CONCATENATED MODULE: ./renderers/decorators/Link/index.jsx\n\n/* harmony default export */ var Link = (function (props) {\n var children = props.children,\n entityKey = props.entityKey,\n contentState = props.contentState;\n\n var _contentState$getEnti = contentState.getEntity(entityKey).getData(),\n href = _contentState$getEnti.href,\n target = _contentState$getEnti.target;\n\n return external_react_default.a.createElement(\"span\", {\n className: \"bf-link-wrap\"\n }, external_react_default.a.createElement(\"a\", {\n onClick: function onClick(event) {\n return viewLink(event, href);\n },\n className: \"bf-link\",\n href: href,\n target: target\n }, children));\n});\n\nvar viewLink = function viewLink(event, link) {\n // 当按下Ctrl/command键时,点击打开链接文字中的url\n if (event.getModifierState('Control') || event.getModifierState('Meta')) {\n var tempLink = document.createElement('a');\n tempLink.href = link;\n tempLink.target = event.currentTarget.target;\n tempLink.click();\n }\n};\n// CONCATENATED MODULE: ./renderers/decorators/index.js\n\n\n\n\n\n\nvar KEY_SEPARATOR = '-';\n\ndraft_js_multidecorators_default.a.prototype.getDecorations = function (block, contentState) {\n var decorations = Array(block.getText().length).fill(null);\n this.decorators.forEach(function (decorator, i) {\n decorator.getDecorations(block, contentState).forEach(function (key, offset) {\n if (!key) {\n return;\n }\n\n key = i + KEY_SEPARATOR + key;\n decorations[offset] = key;\n });\n });\n return external_immutable_default.a.List(decorations);\n};\n\nvar builtinDecorators = [{\n type: 'entity',\n decorator: {\n key: 'LINK',\n component: Link\n }\n}];\n\nvar createStrategy = function createStrategy(type) {\n return function (block, callback, contentState) {\n block.findEntityRanges(function (character) {\n var entityKey = character.getEntity();\n return entityKey !== null && contentState.getEntity(entityKey).getType() === type;\n }, callback);\n };\n};\n\n/* harmony default export */ var decorators = (function (editorId) {\n var extensionDecorators = getExtensionDecorators(editorId);\n var entityDecorators = builtinDecorators.concat(toConsumableArray_default()(extensionDecorators.filter(function (item) {\n return item.type === 'entity';\n })));\n var strategyDecorators = extensionDecorators.filter(function (item) {\n return item.type === 'strategy';\n });\n var classDecorators = extensionDecorators.filter(function (item) {\n return item.type === 'class';\n });\n return new draft_js_multidecorators_default.a(toConsumableArray_default()(classDecorators.map(function (item) {\n return item.decorator;\n })).concat([// combine decorators created with strategy\n new external_draft_js_[\"CompositeDecorator\"](strategyDecorators.map(function (item) {\n return item.decorator;\n })), // combine decorators for entities\n new external_draft_js_[\"CompositeDecorator\"](entityDecorators.map(function (item) {\n return {\n strategy: createStrategy(item.decorator.key),\n component: item.decorator.component\n };\n }))]));\n});\n// CONCATENATED MODULE: ./renderers/index.js\n\n\n\n\n\n\nvar getBlockRenderMap = block_blockRenderMap;\nvar getBlockRendererFn = block_blockRendererFn;\nvar getBlockStyleFn = block_blockStyleFn;\nvar getCustomStyleMap = inlineStyleMap;\nvar getCustomStyleFn = inlineStyleFn;\nvar getDecorators = decorators;\n// EXTERNAL MODULE: ./components/business/ControlBar/style.scss\nvar ControlBar_style = __webpack_require__(53);\n\n// EXTERNAL MODULE: ./components/business/LinkEditor/style.scss\nvar LinkEditor_style = __webpack_require__(54);\n\n// EXTERNAL MODULE: ./components/common/DropDown/style.scss\nvar DropDown_style = __webpack_require__(55);\n\n// CONCATENATED MODULE: ./helpers/responsive.js\n\n\nvar resizeEventHandlers = [];\nvar responsiveHelperInited = false;\nvar debouce = false;\n/* harmony default export */ var responsive = ({\n resolve: function resolve(eventHandler) {\n var id = external_braft_utils_[\"BaseUtils\"].UniqueIndex();\n resizeEventHandlers.push({\n id: id,\n eventHandler: eventHandler\n });\n return id;\n },\n unresolve: function unresolve(id) {\n resizeEventHandlers = resizeEventHandlers.filter(function (item) {\n return item.id !== id;\n });\n }\n});\n\nif (!responsiveHelperInited && (typeof window === \"undefined\" ? \"undefined\" : typeof_default()(window)) === 'object') {\n window.addEventListener('resize', function (event) {\n clearTimeout(debouce);\n debouce = setTimeout(function () {\n resizeEventHandlers.map(function (item) {\n typeof item.eventHandler === 'function' && item.eventHandler(event);\n });\n debouce = false;\n }, 100);\n });\n responsiveHelperInited = true;\n}\n// CONCATENATED MODULE: ./components/common/DropDown/index.jsx\n\n\n\n\n\n\n\n\n\n\n\nvar DropDown_DropDown =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(DropDown, _React$Component);\n\n function DropDown() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, DropDown);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(DropDown)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"responsiveResolveId\", null);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"dropDownHandlerElement\", null);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"dropDownContentElement\", null);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"state\", {\n active: false,\n offset: 0\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"fixDropDownPosition\", function () {\n var viewRect = _this.props.getContainerNode().getBoundingClientRect();\n\n var handlerRect = _this.dropDownHandlerElement.getBoundingClientRect();\n\n var contentRect = _this.dropDownContentElement.getBoundingClientRect();\n\n var offset = 0;\n var right = handlerRect.right - handlerRect.width / 2 + contentRect.width / 2;\n var left = handlerRect.left + handlerRect.width / 2 - contentRect.width / 2;\n right = viewRect.right - right;\n left = left - viewRect.left;\n\n if (right < 10) {\n offset = right - 10;\n } else if (left < 10) {\n offset = left * -1 + 10;\n }\n\n if (offset !== _this.state.offset) {\n _this.setState({\n offset: offset\n });\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"registerClickEvent\", function (event) {\n var autoHide = _this.props.autoHide;\n var active = _this.state.active;\n\n if (_this.dropDownContentElement.contains(event.target) || _this.dropDownHandlerElement.contains(event.target)) {\n return false;\n }\n\n autoHide && active && _this.hide();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"toggle\", function () {\n _this.setState({\n active: !_this.state.active\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"show\", function () {\n _this.setState({\n active: true\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"hide\", function () {\n _this.setState({\n active: false\n });\n });\n\n return _this;\n }\n\n createClass_default()(DropDown, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (document) {\n document.body.addEventListener('click', this.registerClickEvent);\n this.responsiveResolveId = responsive.resolve(this.fixDropDownPosition);\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(next) {\n if (!this.props.disabled && next.disabled) {\n this.hide();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevState) {\n if (!prevState.active && this.state.active) {\n this.fixDropDownPosition();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (document) {\n document.body.removeEventListener('click', this.registerClickEvent);\n responsive.unresolve(this.responsiveResolveId);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$state = this.state,\n active = _this$state.active,\n offset = _this$state.offset;\n var _this$props = this.props,\n caption = _this$props.caption,\n htmlCaption = _this$props.htmlCaption,\n title = _this$props.title,\n disabled = _this$props.disabled,\n showArrow = _this$props.showArrow,\n arrowActive = _this$props.arrowActive,\n className = _this$props.className,\n children = _this$props.children,\n theme = _this$props.theme;\n disabled && (active = false);\n theme === 'light' && (className = ' light-theme ' + className);\n return external_react_default.a.createElement(\"div\", {\n className: 'bf-dropdown ' + (active ? 'active ' : '') + (disabled ? 'disabled ' : '') + className\n }, htmlCaption ? external_react_default.a.createElement(\"button\", {\n type: \"button\",\n className: \"dropdown-handler\",\n \"data-title\": title,\n onClick: this.toggle,\n dangerouslySetInnerHTML: htmlCaption ? {\n __html: htmlCaption\n } : null,\n ref: function ref(instance) {\n return _this2.dropDownHandlerElement = instance;\n }\n }) : external_react_default.a.createElement(\"button\", {\n type: \"button\",\n className: \"dropdown-handler\",\n \"data-title\": title,\n onClick: this.toggle,\n ref: function ref(instance) {\n return _this2.dropDownHandlerElement = instance;\n }\n }, external_react_default.a.createElement(\"span\", null, caption), showArrow !== false ? external_react_default.a.createElement(\"i\", {\n className: \"bfi-drop-down\"\n }) : null), external_react_default.a.createElement(\"div\", {\n className: \"dropdown-content\",\n style: {\n marginLeft: offset\n },\n ref: function ref(instance) {\n return _this2.dropDownContentElement = instance;\n }\n }, external_react_default.a.createElement(\"i\", {\n style: {\n marginLeft: offset * -1\n },\n className: 'dropdown-arrow' + (arrowActive ? ' active' : '')\n }), external_react_default.a.createElement(\"div\", {\n className: \"dropdown-content-inner\"\n }, children)));\n }\n }]);\n\n return DropDown;\n}(external_react_default.a.Component);\n\n\n// CONCATENATED MODULE: ./components/business/ControlGroup/index.jsx\n\n/* harmony default export */ var ControlGroup = (function (props) {\n if (external_react_default.a.Fragment) {\n return external_react_default.a.createElement(external_react_default.a.Fragment, null, props.children);\n } else {\n return external_react_default.a.createElement(\"div\", {\n className: \"control-item-group\"\n }, props.children);\n }\n});\n// CONCATENATED MODULE: ./components/business/LinkEditor/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar LinkEditor_LinkEditor =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(LinkEditor, _React$Component);\n\n function LinkEditor(props) {\n var _this;\n\n classCallCheck_default()(this, LinkEditor);\n\n _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(LinkEditor).call(this, props));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"dropDownInstance\", null);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handeKeyDown\", function (e) {\n if (e.keyCode === 13) {\n _this.handleConfirm();\n\n e.preventDefault();\n return false;\n }\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleTnputText\", function (e) {\n _this.setState({\n text: e.currentTarget.value\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleInputLink\", function (e) {\n _this.setState({\n href: e.currentTarget.value\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setTarget\", function () {\n _this.setState({\n target: _this.state.target === '_blank' ? '' : '_blank'\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleCancel\", function () {\n _this.dropDownInstance.hide();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleUnlink\", function () {\n _this.dropDownInstance.hide();\n\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionLink(_this.props.editorState, false));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleConfirm\", function () {\n var _this$state = _this.state,\n text = _this$state.text,\n href = _this$state.href,\n target = _this$state.target,\n textSelected = _this$state.textSelected;\n\n var hookReturns = _this.props.hooks('toggle-link', {\n href: href,\n target: target\n })({\n href: href,\n target: target\n });\n\n _this.dropDownInstance.hide();\n\n _this.props.editor.requestFocus();\n\n if (hookReturns === false) {\n return false;\n }\n\n if (hookReturns) {\n typeof hookReturns.href === 'string' && (href = hookReturns.href);\n typeof hookReturns.target === 'string' && (target = hookReturns.target);\n }\n\n if (textSelected) {\n if (href) {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionLink(_this.props.editorState, href, target));\n } else {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionLink(_this.props.editorState, false));\n }\n } else {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].insertText(_this.props.editorState, text || href, null, {\n type: 'LINK',\n data: {\n href: href,\n target: target\n }\n }));\n }\n });\n\n _this.state = {\n text: '',\n href: '',\n target: props.defaultLinkTarget || '',\n textSelected: false\n };\n return _this;\n }\n\n createClass_default()(LinkEditor, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _ContentUtils$getSele = external_braft_utils_[\"ContentUtils\"].getSelectionEntityData(nextProps.editorState, 'LINK'),\n href = _ContentUtils$getSele.href,\n target = _ContentUtils$getSele.target;\n\n var textSelected = !external_braft_utils_[\"ContentUtils\"].isSelectionCollapsed(this.props.editorState) && external_braft_utils_[\"ContentUtils\"].getSelectionBlockType(this.props.editorState) !== 'atomic';\n var selectedText = '';\n\n if (textSelected) {\n selectedText = external_braft_utils_[\"ContentUtils\"].getSelectionText(this.props.editorState);\n }\n\n this.setState({\n textSelected: textSelected,\n text: selectedText,\n href: href || '',\n target: typeof target === 'undefined' ? nextProps.defaultLinkTarget || '' : target || ''\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var allowInsertLinkText = this.props.allowInsertLinkText;\n var _this$state2 = this.state,\n text = _this$state2.text,\n href = _this$state2.href,\n target = _this$state2.target,\n textSelected = _this$state2.textSelected;\n var caption = external_react_default.a.createElement(\"i\", {\n className: \"bfi-link\"\n });\n return external_react_default.a.createElement(ControlGroup, null, external_react_default.a.createElement(DropDown_DropDown, {\n key: 0,\n caption: caption,\n title: this.props.language.controls.link,\n autoHide: true,\n getContainerNode: this.props.getContainerNode,\n showArrow: false,\n ref: function ref(instance) {\n return _this2.dropDownInstance = instance;\n },\n className: 'control-item dropdown link-editor-dropdown'\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-link-editor\"\n }, allowInsertLinkText ? external_react_default.a.createElement(\"div\", {\n className: \"input-group\"\n }, external_react_default.a.createElement(\"input\", {\n type: \"text\",\n value: text,\n spellCheck: false,\n disabled: textSelected,\n placeholder: this.props.language.linkEditor.textInputPlaceHolder,\n onKeyDown: this.handeKeyDown,\n onChange: this.handleTnputText\n })) : null, external_react_default.a.createElement(\"div\", {\n className: \"input-group\"\n }, external_react_default.a.createElement(\"input\", {\n type: \"text\",\n value: href,\n spellCheck: false,\n placeholder: this.props.language.linkEditor.linkInputPlaceHolder,\n onKeyDown: this.handeKeyDown,\n onChange: this.handleInputLink\n })), external_react_default.a.createElement(\"div\", {\n className: \"switch-group\"\n }, external_react_default.a.createElement(Switch, {\n active: target === '_blank',\n onClick: this.setTarget\n }), external_react_default.a.createElement(\"label\", null, this.props.language.linkEditor.openInNewWindow)), external_react_default.a.createElement(\"div\", {\n className: \"buttons\"\n }, external_react_default.a.createElement(\"a\", {\n onClick: this.handleUnlink,\n className: \"primary button-remove-link pull-left\"\n }, external_react_default.a.createElement(\"i\", {\n className: \"bfi-close\"\n }), external_react_default.a.createElement(\"span\", null, this.props.language.linkEditor.removeLink)), external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleConfirm,\n className: \"primary pull-right\"\n }, this.props.language.base.confirm), external_react_default.a.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleCancel,\n className: \"default pull-right\"\n }, this.props.language.base.cancel)))), external_react_default.a.createElement(\"button\", {\n key: 1,\n type: \"button\",\n \"data-title\": this.props.language.controls.unlink,\n className: \"control-item button\",\n onClick: this.handleUnlink,\n disabled: !textSelected || !href\n }, external_react_default.a.createElement(\"i\", {\n className: \"bfi-link-off\"\n })));\n }\n }]);\n\n return LinkEditor;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./components/business/Headings/style.scss\nvar Headings_style = __webpack_require__(56);\n\n// CONCATENATED MODULE: ./configs/maps.js\n\nvar maps_getHeadings = function getHeadings(lang) {\n return [{\n key: 'header-one',\n title: lang.controls.header + ' 1',\n text: external_react_default.a.createElement(\"h1\", null, lang.controls.header, \" 1\"),\n type: 'block-type',\n command: 'header-one'\n }, {\n key: 'header-two',\n title: lang.controls.header + ' 2',\n text: external_react_default.a.createElement(\"h2\", null, lang.controls.header, \" 2\"),\n type: 'block-type',\n command: 'header-two'\n }, {\n key: 'header-three',\n title: lang.controls.header + ' 3',\n text: external_react_default.a.createElement(\"h3\", null, lang.controls.header, \" 3\"),\n type: 'block-type',\n command: 'header-three'\n }, {\n key: 'header-four',\n title: lang.controls.header + ' 4',\n text: external_react_default.a.createElement(\"h4\", null, lang.controls.header, \" 4\"),\n type: 'block-type',\n command: 'header-four'\n }, {\n key: 'header-five',\n title: lang.controls.header + ' 5',\n text: external_react_default.a.createElement(\"h5\", null, lang.controls.header, \" 5\"),\n type: 'block-type',\n command: 'header-five'\n }, {\n key: 'header-six',\n title: lang.controls.header + ' 6',\n text: external_react_default.a.createElement(\"h6\", null, lang.controls.header, \" 6\"),\n type: 'block-type',\n command: 'header-six'\n }, {\n key: 'unstyled',\n title: lang.controls.normal,\n text: lang.controls.normal,\n type: 'block-type',\n command: 'unstyled'\n }];\n};\nvar blocks = {\n 'header-one': 'h1',\n 'header-two': 'h2',\n 'header-three': 'h3',\n 'header-four': 'h4',\n 'header-fiv': 'h5',\n 'header-six': 'h6',\n 'unstyled': 'p',\n 'blockquote': 'blockquote'\n};\n// CONCATENATED MODULE: ./components/business/Headings/index.jsx\n\n\n\n\n/* harmony default export */ var Headings = (function (props) {\n var dropDownInstance = null;\n var headings = maps_getHeadings(props.language).filter(function (item) {\n return props.headings.indexOf(item.key) !== -1;\n });\n var currentHeadingIndex = headings.findIndex(function (item) {\n return item.command === props.current;\n });\n var caption = headings[currentHeadingIndex] ? headings[currentHeadingIndex].title : props.language.controls.normal;\n return external_react_default.a.createElement(DropDown_DropDown, {\n caption: caption,\n autoHide: true,\n getContainerNode: props.getContainerNode,\n title: props.language.controls.headings,\n arrowActive: currentHeadingIndex === 0,\n ref: function ref(instance) {\n return dropDownInstance = instance;\n },\n className: 'control-item dropdown headings-dropdown'\n }, external_react_default.a.createElement(\"ul\", {\n className: \"menu\"\n }, headings.map(function (item, index) {\n var isActive = props.current === item.command;\n return external_react_default.a.createElement(\"li\", {\n key: index,\n className: 'menu-item' + (isActive ? ' active' : ''),\n onClick: function onClick() {\n props.onChange(item.command, item.type), dropDownInstance.hide();\n }\n }, item.text);\n })));\n});\n// EXTERNAL MODULE: ./components/business/TextColor/style.scss\nvar TextColor_style = __webpack_require__(57);\n\n// EXTERNAL MODULE: ./components/common/ColorPicker/style.scss\nvar ColorPicker_style = __webpack_require__(58);\n\n// CONCATENATED MODULE: ./components/common/ColorPicker/index.jsx\n\n\n/* harmony default export */ var common_ColorPicker = (function (props) {\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-colors-wrap\"\n }, external_react_default.a.createElement(\"ul\", {\n className: \"bf-colors\"\n }, props.presetColors.map(function (item, index) {\n var className = props.color && item.toLowerCase() === props.color.toLowerCase() ? 'color-item active' : 'color-item';\n return external_react_default.a.createElement(\"li\", {\n key: index,\n title: item,\n className: className,\n style: {\n color: item\n },\n \"data-color\": item.replace('#', ''),\n onClick: function onClick(e) {\n props.onChange(e.currentTarget.dataset.color, true);\n }\n });\n })));\n});\n// CONCATENATED MODULE: ./components/business/TextColor/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TextColor_TextColor =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(TextColor, _React$Component);\n\n function TextColor() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, TextColor);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(TextColor)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"state\", {\n colorType: 'color'\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"switchColorType\", function (_ref) {\n var currentTarget = _ref.currentTarget;\n\n _this.setState({\n colorType: currentTarget.dataset.type\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"toggleColor\", function (color, closePicker) {\n if (color) {\n var hookReturns = _this.props.hooks(\"toggle-text-\".concat(_this.state.colorType), color)(color);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n color = hookReturns;\n }\n\n if (_this.state.colorType === 'color') {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionColor(_this.props.editorState, color));\n } else {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionBackgroundColor(_this.props.editorState, color));\n }\n }\n\n if (closePicker) {\n _this.dropDownInstance.hide();\n\n _this.props.editor.requestFocus();\n }\n });\n\n return _this;\n }\n\n createClass_default()(TextColor, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var captionStyle = {};\n var currentColor = null;\n var colorType = this.state.colorType;\n var selectionStyles = this.props.editorState.getCurrentInlineStyle().toJS();\n selectionStyles.forEach(function (style) {\n if (style.indexOf('COLOR-') === 0) {\n captionStyle.color = '#' + style.split('-')[1];\n colorType === 'color' && (currentColor = captionStyle.color);\n }\n\n if (style.indexOf('BGCOLOR-') === 0) {\n captionStyle.backgroundColor = '#' + style.split('-')[1];\n colorType === 'background-color' && (currentColor = captionStyle.backgroundColor);\n }\n });\n var caption = external_react_default.a.createElement(\"i\", {\n style: captionStyle,\n className: \"bfi-text-color\"\n }, external_react_default.a.createElement(\"span\", {\n className: \"path1\"\n }), external_react_default.a.createElement(\"span\", {\n className: \"path2\"\n }));\n var ColorPicker = this.props.colorPicker || common_ColorPicker;\n return external_react_default.a.createElement(DropDown_DropDown, {\n caption: caption,\n title: this.props.language.controls.color,\n showArrow: false,\n autoHide: this.props.autoHide,\n theme: this.props.theme,\n getContainerNode: this.props.getContainerNode,\n ref: function ref(instance) {\n return _this2.dropDownInstance = instance;\n },\n className: 'control-item dropdown text-color-dropdown'\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-text-color-picker-wrap\"\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-color-switch-buttons\",\n style: this.props.enableBackgroundColor ? {} : {\n display: 'none'\n }\n }, external_react_default.a.createElement(\"button\", {\n type: \"button\",\n \"data-type\": \"color\",\n className: colorType === 'color' ? 'active' : '',\n onClick: this.switchColorType\n }, this.props.language.controls.textColor), external_react_default.a.createElement(\"button\", {\n type: \"button\",\n \"data-type\": \"background-color\",\n className: colorType === 'background-color' ? 'active' : '',\n onClick: this.switchColorType\n }, this.props.language.controls.backgroundColor)), external_react_default.a.createElement(ColorPicker, {\n width: 200,\n color: currentColor,\n disableAlpha: true,\n presetColors: this.props.colors,\n onChange: this.toggleColor\n })));\n }\n }]);\n\n return TextColor;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./components/business/FontSize/style.scss\nvar FontSize_style = __webpack_require__(59);\n\n// CONCATENATED MODULE: ./components/business/FontSize/index.jsx\n\n\n\n\n\nvar FontSize_toggleFontSize = function toggleFontSize(event, props) {\n var fontSize = event.currentTarget.dataset.size;\n var hookReturns = props.hooks('toggle-font-size', fontSize)(fontSize);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (!isNaN(fontSize)) {\n fontSize = hookReturns;\n }\n\n props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionFontSize(props.editorState, fontSize));\n props.editor.requestFocus();\n};\n\n/* harmony default export */ var FontSize = (function (props) {\n var caption = null;\n var currentFontSize = null;\n var dropDownInstance = null;\n props.fontSizes.find(function (item) {\n if (external_braft_utils_[\"ContentUtils\"].selectionHasInlineStyle(props.editorState, 'FONTSIZE-' + item)) {\n caption = item;\n currentFontSize = item;\n return true;\n }\n\n return false;\n });\n return external_react_default.a.createElement(DropDown_DropDown, {\n autoHide: true,\n caption: caption || props.defaultCaption,\n getContainerNode: props.getContainerNode,\n title: props.language.controls.fontSize,\n ref: function ref(instance) {\n return dropDownInstance = instance;\n },\n className: 'control-item dropdown bf-font-size-dropdown'\n }, external_react_default.a.createElement(\"ul\", {\n className: \"bf-font-sizes\"\n }, props.fontSizes.map(function (item, index) {\n return external_react_default.a.createElement(\"li\", {\n key: index,\n className: item === currentFontSize ? 'active' : null,\n \"data-size\": item,\n onClick: function onClick(event) {\n FontSize_toggleFontSize(event, props), dropDownInstance.hide();\n }\n }, item);\n })));\n});\n// EXTERNAL MODULE: ./components/business/LineHeight/style.scss\nvar LineHeight_style = __webpack_require__(60);\n\n// CONCATENATED MODULE: ./components/business/LineHeight/index.jsx\n\n\n\n\n\nvar LineHeight_toggleLineHeight = function toggleLineHeight(event, props) {\n var lineHeight = event.currentTarget.dataset.size;\n var hookReturns = props.hooks('toggle-line-height', lineHeight)(lineHeight);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (!isNaN(hookReturns)) {\n lineHeight = hookReturns;\n }\n\n props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionLineHeight(props.editorState, lineHeight));\n props.editor.requestFocus();\n};\n\n/* harmony default export */ var LineHeight = (function (props) {\n var caption = null;\n var currentLineHeight = null;\n var dropDownInstance = null;\n props.lineHeights.find(function (item) {\n if (external_braft_utils_[\"ContentUtils\"].selectionHasInlineStyle(props.editorState, 'LINEHEIGHT-' + item)) {\n caption = item;\n currentLineHeight = item;\n return true;\n }\n\n return false;\n });\n return external_react_default.a.createElement(DropDown_DropDown, {\n autoHide: true,\n caption: caption || props.defaultCaption,\n getContainerNode: props.getContainerNode,\n title: props.language.controls.lineHeight,\n ref: function ref(instance) {\n return dropDownInstance = instance;\n },\n className: 'control-item dropdown bf-line-height-dropdown'\n }, external_react_default.a.createElement(\"ul\", {\n className: \"bf-line-heights\"\n }, props.lineHeights.map(function (item, index) {\n return external_react_default.a.createElement(\"li\", {\n key: index,\n className: item === currentLineHeight ? 'active' : null,\n \"data-size\": item,\n onClick: function onClick(event) {\n LineHeight_toggleLineHeight(event, props), dropDownInstance.hide();\n }\n }, item);\n })));\n});\n// EXTERNAL MODULE: ./components/business/FontFamily/style.scss\nvar FontFamily_style = __webpack_require__(61);\n\n// CONCATENATED MODULE: ./components/business/FontFamily/index.jsx\n\n\n\n\n\nvar FontFamily_toggleFontFamily = function toggleFontFamily(event, props) {\n var fontFamilyName = event.currentTarget.dataset.name;\n var hookReturns = props.hooks('toggle-font-family', fontFamilyName)(fontFamilyName, props.fontFamilies);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n fontFamilyName = hookReturns;\n }\n\n props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionFontFamily(props.editorState, fontFamilyName));\n props.editor.requestFocus();\n};\n\n/* harmony default export */ var FontFamily = (function (props) {\n var caption = null;\n var currentIndex = null;\n var dropDownInstance = null;\n props.fontFamilies.find(function (item, index) {\n if (external_braft_utils_[\"ContentUtils\"].selectionHasInlineStyle(props.editorState, 'FONTFAMILY-' + item.name)) {\n caption = item.name;\n currentIndex = index;\n return true;\n }\n\n return false;\n });\n return external_react_default.a.createElement(DropDown_DropDown, {\n caption: caption || props.defaultCaption,\n getContainerNode: props.getContainerNode,\n title: props.language.controls.fontFamily,\n autoHide: true,\n arrowActive: currentIndex === 0,\n ref: function ref(instance) {\n return dropDownInstance = instance;\n },\n className: 'control-item dropdown font-family-dropdown'\n }, external_react_default.a.createElement(\"ul\", {\n className: \"menu\"\n }, props.fontFamilies.map(function (item, index) {\n return external_react_default.a.createElement(\"li\", {\n key: index,\n className: 'menu-item ' + (index === currentIndex ? 'active' : ''),\n \"data-name\": item.name,\n onClick: function onClick(event) {\n FontFamily_toggleFontFamily(event, props), dropDownInstance.hide();\n }\n }, external_react_default.a.createElement(\"span\", {\n style: {\n fontFamily: item.family\n }\n }, item.name));\n })));\n});\n// CONCATENATED MODULE: ./components/business/TextAlign/index.jsx\n\n\n\n\n\n\n\n\n\n\n\nvar TextAlign_TextAlign =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(TextAlign, _React$Component);\n\n function TextAlign() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, TextAlign);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(TextAlign)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"state\", {\n currentAlignment: undefined\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setAlignment\", function (event) {\n var alignment = event.currentTarget.dataset.alignment;\n\n var hookReturns = _this.props.hooks('toggle-text-alignment', alignment)(alignment);\n\n if (_this.props.textAligns.indexOf(hookReturns) > -1) {\n alignment = hookReturns;\n }\n\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionAlignment(_this.props.editorState, alignment));\n\n _this.props.editor.requestFocus();\n });\n\n return _this;\n }\n\n createClass_default()(TextAlign, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(next) {\n this.setState({\n currentAlignment: external_braft_utils_[\"ContentUtils\"].getSelectionBlockData(next.editorState, 'textAlign')\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var textAlignmentTitles = [this.props.language.controls.alignLeft, this.props.language.controls.alignCenter, this.props.language.controls.alignRight, this.props.language.controls.alignJustify];\n return external_react_default.a.createElement(ControlGroup, null, this.props.textAligns.map(function (item, index) {\n return external_react_default.a.createElement(\"button\", {\n type: \"button\",\n key: index,\n \"data-title\": textAlignmentTitles[index],\n \"data-alignment\": item,\n className: 'control-item button ' + (item === _this2.state.currentAlignment ? 'active' : null),\n onClick: _this2.setAlignment\n }, external_react_default.a.createElement(\"i\", {\n className: 'bfi-align-' + item\n }));\n }));\n }\n }]);\n\n return TextAlign;\n}(external_react_default.a.Component);\n\n\n// EXTERNAL MODULE: ./components/business/EmojiPicker/style.scss\nvar EmojiPicker_style = __webpack_require__(62);\n\n// CONCATENATED MODULE: ./components/business/EmojiPicker/index.jsx\n\n\n\n\n\nvar EmojiPicker_insertEmoji = function insertEmoji(event, props) {\n var emoji = event.currentTarget.dataset.emoji;\n var hookReturns = props.hooks('insert-emoji', emoji)(emoji);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n emoji = hookReturns;\n }\n\n props.editor.setValue(external_braft_utils_[\"ContentUtils\"].insertText(props.editorState, emoji));\n props.editor.requestFocus();\n};\n\n/* harmony default export */ var EmojiPicker = (function (props) {\n return external_react_default.a.createElement(DropDown_DropDown, {\n caption: props.defaultCaption,\n autoHide: true,\n showArrow: false,\n getContainerNode: props.getContainerNode,\n title: props.language.controls.emoji,\n className: 'control-item dropdown bf-emoji-dropdown'\n }, external_react_default.a.createElement(\"div\", {\n className: \"bf-emojis-wrap\"\n }, external_react_default.a.createElement(\"ul\", {\n className: \"bf-emojis\"\n }, props.emojis.map(function (item, index) {\n return external_react_default.a.createElement(\"li\", {\n key: index,\n \"data-emoji\": item,\n onClick: function onClick(event) {\n return EmojiPicker_insertEmoji(event, props);\n }\n }, item);\n }))));\n});\n// EXTERNAL MODULE: ./components/business/LetterSpacing/style.scss\nvar LetterSpacing_style = __webpack_require__(63);\n\n// CONCATENATED MODULE: ./components/business/LetterSpacing/index.jsx\n\n\n\n\n\nvar LetterSpacing_toggleLetterSpacing = function toggleLetterSpacing(event, props) {\n var letterSpacing = event.currentTarget.dataset.size;\n var hookReturns = props.hooks('toggle-letter-spacing', letterSpacing)(letterSpacing);\n\n if (hookReturns === false) {\n return false;\n }\n\n if (!isNaN(hookReturns)) {\n letterSpacing = hookReturns;\n }\n\n props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionLetterSpacing(props.editorState, letterSpacing));\n props.editor.requestFocus();\n};\n\n/* harmony default export */ var LetterSpacing = (function (props) {\n var caption = null;\n var currentLetterSpacing = null;\n var dropDownInstance = null;\n props.letterSpacings.find(function (item) {\n if (external_braft_utils_[\"ContentUtils\"].selectionHasInlineStyle(props.editorState, 'LETTERSPACING-' + item)) {\n caption = item;\n currentLetterSpacing = item;\n return true;\n }\n\n return false;\n });\n return external_react_default.a.createElement(DropDown_DropDown, {\n autoHide: true,\n caption: caption || props.defaultCaption,\n getContainerNode: props.getContainerNode,\n title: props.language.controls.letterSpacing,\n ref: function ref(instance) {\n return dropDownInstance = instance;\n },\n className: 'control-item dropdown bf-letter-spacing-dropdown'\n }, external_react_default.a.createElement(\"ul\", {\n className: \"bf-letter-spacings\"\n }, props.letterSpacings.map(function (item, index) {\n return external_react_default.a.createElement(\"li\", {\n key: index,\n className: item === currentLetterSpacing ? 'active' : null,\n \"data-size\": item,\n onClick: function onClick(event) {\n LetterSpacing_toggleLetterSpacing(event, props), dropDownInstance.hide();\n }\n }, item);\n })));\n});\n// CONCATENATED MODULE: ./components/business/TextIndent/index.jsx\n\n\n\n\n\n\n\n\n\n\n\nvar TextIndent_TextAlign =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(TextAlign, _React$Component);\n\n function TextAlign() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, TextAlign);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(TextAlign)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"state\", {\n currentIndent: 0\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"increaseIndent\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].increaseSelectionIndent(_this.props.editorState));\n\n _this.props.editor.requestFocus();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"decreaseIndent\", function () {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].decreaseSelectionIndent(_this.props.editorState));\n\n _this.props.editor.requestFocus();\n });\n\n return _this;\n }\n\n createClass_default()(TextAlign, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n this.setState({\n currentIndent: external_braft_utils_[\"ContentUtils\"].getSelectionBlockData(nextProps.editorState, 'textIndent') || 0\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var currentIndent = this.state.currentIndent;\n var language = this.props.language;\n return external_react_default.a.createElement(ControlGroup, null, external_react_default.a.createElement(\"button\", {\n key: 0,\n type: \"button\",\n \"data-title\": language.controls.increaseIndent,\n disabled: currentIndent >= 6,\n className: \"control-item button button-indent-increase\".concat(currentIndent > 0 && currentIndent < 6 ? ' active' : ''),\n onClick: this.increaseIndent\n }, external_react_default.a.createElement(\"i\", {\n className: 'bfi-indent-increase'\n })), external_react_default.a.createElement(\"button\", {\n key: 1,\n type: \"button\",\n \"data-title\": language.controls.decreaseIndent,\n disabled: currentIndent <= 0,\n className: \"control-item button button-indent-decrease\",\n onClick: this.decreaseIndent\n }, external_react_default.a.createElement(\"i\", {\n className: 'bfi-indent-decrease'\n })));\n }\n }]);\n\n return TextAlign;\n}(external_react_default.a.Component);\n\n\n// CONCATENATED MODULE: ./components/business/ControlBar/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar commandHookMap = {\n 'inline-style': 'toggle-inline-style',\n 'block-type': 'change-block-type',\n 'editor-method': 'exec-editor-command'\n};\nvar exclusiveInlineStyles = {\n 'superscript': 'subscript',\n 'subscript': 'superscript'\n};\n\nvar mergeControls = function mergeControls(commonProps, builtControls, extensionControls, extendControls) {\n extensionControls = extensionControls.map(function (item) {\n return typeof item === 'function' ? item(commonProps) : item;\n });\n extendControls = extendControls.map(function (item) {\n return typeof item === 'function' ? item(commonProps) : item;\n });\n\n if (extensionControls.length === 0 && extendControls.length === 0) {\n return builtControls;\n }\n\n return builtControls.map(function (item) {\n return extendControls.find(function (subItem) {\n return subItem.replace === (item.key || item);\n }) || extensionControls.find(function (subItem) {\n return subItem.replace === (item.key || item);\n }) || item;\n }).concat(extensionControls.length ? 'separator' : '').concat(extensionControls.filter(function (item) {\n return !item.replace;\n })).concat(extendControls.filter(function (item) {\n return typeof item === 'string' || !item.replace;\n }));\n};\n\nvar ControlBar_ControlBar =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(ControlBar, _React$Component);\n\n function ControlBar() {\n var _getPrototypeOf2;\n\n var _this;\n\n classCallCheck_default()(this, ControlBar);\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 = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(ControlBar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"allControls\", []);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"mediaLibiraryModal\", null);\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"extendedModals\", {});\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"openBraftFinder\", function () {\n if (!_this.props.braftFinder || !_this.props.braftFinder.ReactComponent) {\n return false;\n }\n\n if (_this.props.hooks('open-braft-finder')() === false) {\n return false;\n }\n\n var mediaProps = _this.props.media;\n var MediaLibrary = _this.props.braftFinder.ReactComponent;\n _this.mediaLibiraryModal = Modal_showModal({\n title: _this.props.language.controls.mediaLibirary,\n language: _this.props.language,\n width: 640,\n showFooter: false,\n component: external_react_default.a.createElement(MediaLibrary, {\n accepts: mediaProps.accepts,\n onCancel: _this.closeBraftFinder,\n onInsert: _this.insertMedias,\n onChange: mediaProps.onChange,\n externals: mediaProps.externals,\n onBeforeSelect: _this.bindBraftFinderHook('select-medias'),\n onBeforeDeselect: _this.bindBraftFinderHook('deselect-medias'),\n onBeforeRemove: _this.bindBraftFinderHook('remove-medias'),\n onBeforeInsert: _this.bindBraftFinderHook('insert-medias'),\n onFileSelect: _this.bindBraftFinderHook('select-files')\n })\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"bindBraftFinderHook\", function (hookName) {\n return function () {\n return _this.props.hooks(hookName, arguments.length <= 0 ? undefined : arguments[0]).apply(void 0, arguments);\n };\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"insertMedias\", function (medias) {\n _this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].insertMedias(_this.props.editorState, medias));\n\n _this.props.editor.requestFocus();\n\n _this.props.media.onInsert && _this.props.media.onInsert(medias);\n\n _this.closeBraftFinder();\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"closeBraftFinder\", function () {\n _this.props.media.onCancel && _this.props.media.onCancel();\n _this.mediaLibiraryModal && _this.mediaLibiraryModal.close();\n });\n\n return _this;\n }\n\n createClass_default()(ControlBar, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this2 = this;\n\n var language = this.props.language;\n this.allControls.forEach(function (item) {\n if (item.type === 'modal') {\n if (item.modal && item.modal.id && _this2.extendedModals[item.modal.id]) {\n _this2.extendedModals[item.modal.id].update(objectSpread_default()({}, item.modal, {\n language: language\n }));\n }\n }\n });\n }\n }, {\n key: \"getControlItemClassName\",\n value: function getControlItemClassName(data) {\n var className = 'control-item button';\n var type = data.type,\n command = data.command;\n\n if (type === 'inline-style' && external_braft_utils_[\"ContentUtils\"].selectionHasInlineStyle(this.props.editorState, command)) {\n className += ' active';\n } else if (type === 'block-type' && external_braft_utils_[\"ContentUtils\"].getSelectionBlockType(this.props.editorState) === command) {\n className += ' active';\n } else if (type === 'entity' && external_braft_utils_[\"ContentUtils\"].getSelectionEntityType(this.props.editorState) === command) {\n className += ' active';\n }\n\n return className;\n }\n }, {\n key: \"applyControl\",\n value: function applyControl(command, type) {\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var hookReturns = this.props.hooks(commandHookMap[type] || type, command)(command);\n var editorState = this.props.editorState;\n\n if (hookReturns === false) {\n return false;\n }\n\n if (typeof hookReturns === 'string') {\n command = hookReturns;\n }\n\n if (type === 'inline-style') {\n var exclusiveInlineStyle = exclusiveInlineStyles[command];\n\n if (exclusiveInlineStyle && external_braft_utils_[\"ContentUtils\"].selectionHasInlineStyle(editorState, exclusiveInlineStyle)) {\n editorState = external_braft_utils_[\"ContentUtils\"].toggleSelectionInlineStyle(editorState, exclusiveInlineStyle);\n }\n\n this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionInlineStyle(editorState, command));\n } else if (type === 'block-type') {\n this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionBlockType(editorState, command));\n } else if (type === 'entity') {\n this.props.editor.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionEntity(editorState, {\n type: command,\n mutability: data.mutability || 'MUTABLE',\n data: data.data || {}\n }));\n } else if (type === 'editor-method') {\n this.props.editor[command] && this.props.editor[command]();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n editor = _this$props.editor,\n editorId = _this$props.editorId,\n editorState = _this$props.editorState,\n className = _this$props.className,\n style = _this$props.style,\n controls = _this$props.controls,\n media = _this$props.media,\n extendControls = _this$props.extendControls,\n language = _this$props.language,\n hooks = _this$props.hooks,\n colors = _this$props.colors,\n colorPicker = _this$props.colorPicker,\n colorPickerTheme = _this$props.colorPickerTheme,\n colorPickerAutoHide = _this$props.colorPickerAutoHide,\n headings = _this$props.headings,\n fontSizes = _this$props.fontSizes,\n fontFamilies = _this$props.fontFamilies,\n emojis = _this$props.emojis,\n getContainerNode = _this$props.getContainerNode,\n lineHeights = _this$props.lineHeights,\n letterSpacings = _this$props.letterSpacings,\n textAligns = _this$props.textAligns,\n textBackgroundColor = _this$props.textBackgroundColor,\n allowInsertLinkText = _this$props.allowInsertLinkText,\n defaultLinkTarget = _this$props.defaultLinkTarget;\n var currentBlockType = external_braft_utils_[\"ContentUtils\"].getSelectionBlockType(editorState);\n var commonProps = {\n editor: editor,\n editorId: editorId,\n editorState: editorState,\n language: language,\n getContainerNode: getContainerNode,\n hooks: hooks\n };\n var renderedControls = [];\n var editorControls = configs_controls(language, editor);\n var extensionControls = getExtensionControls(editorId);\n var allControls = mergeControls(commonProps, controls, extensionControls, extendControls);\n this.allControls = allControls;\n return external_react_default.a.createElement(\"div\", {\n className: \"bf-controlbar \".concat(className || ''),\n style: style,\n onMouseDown: this.preventDefault\n }, allControls.map(function (item, index) {\n var itemKey = typeof item === 'string' ? item : item.key;\n\n if (typeof itemKey !== 'string') {\n return null;\n }\n\n if (renderedControls.indexOf(itemKey) > -1) {\n return null;\n }\n\n if (itemKey.toLowerCase() === 'separator') {\n return external_react_default.a.createElement(\"span\", {\n key: index,\n className: \"separator-line\"\n });\n }\n\n var controlItem = editorControls.find(function (subItem) {\n return subItem.key.toLowerCase() === itemKey.toLowerCase();\n });\n\n if (typeof item !== 'string') {\n controlItem = objectSpread_default()({}, controlItem, item);\n }\n\n if (!controlItem) {\n return null;\n }\n\n renderedControls.push(itemKey);\n\n if (controlItem.type === 'headings') {\n return external_react_default.a.createElement(Headings, extends_default()({\n key: index,\n headings: headings,\n current: currentBlockType,\n onChange: function onChange(command) {\n return _this3.applyControl(command, 'block-type');\n }\n }, commonProps));\n } else if (controlItem.type === 'text-color') {\n return external_react_default.a.createElement(TextColor_TextColor, extends_default()({\n key: index,\n colors: colors,\n colorPicker: colorPicker,\n theme: colorPickerTheme,\n autoHide: colorPickerAutoHide,\n enableBackgroundColor: textBackgroundColor\n }, commonProps));\n } else if (controlItem.type === 'font-size') {\n return external_react_default.a.createElement(FontSize, extends_default()({\n key: index,\n fontSizes: fontSizes,\n defaultCaption: controlItem.title\n }, commonProps));\n } else if (controlItem.type === 'line-height') {\n return external_react_default.a.createElement(LineHeight, extends_default()({\n key: index,\n lineHeights: lineHeights,\n defaultCaption: controlItem.title\n }, commonProps));\n } else if (controlItem.type === 'letter-spacing') {\n return external_react_default.a.createElement(LetterSpacing, extends_default()({\n key: index,\n letterSpacings: letterSpacings,\n defaultCaption: controlItem.title\n }, commonProps));\n } else if (controlItem.type === 'text-indent') {\n return external_react_default.a.createElement(TextIndent_TextAlign, extends_default()({\n key: index,\n defaultCaption: controlItem.title\n }, commonProps));\n } else if (controlItem.type === 'font-family') {\n return external_react_default.a.createElement(FontFamily, extends_default()({\n key: index,\n fontFamilies: fontFamilies,\n defaultCaption: controlItem.title\n }, commonProps));\n } else if (controlItem.type === 'emoji') {\n return external_react_default.a.createElement(EmojiPicker, extends_default()({\n key: index,\n emojis: emojis,\n defaultCaption: controlItem.text\n }, commonProps));\n } else if (controlItem.type === 'link') {\n return external_react_default.a.createElement(LinkEditor_LinkEditor, extends_default()({\n key: index,\n defaultLinkTarget: defaultLinkTarget,\n allowInsertLinkText: allowInsertLinkText\n }, commonProps));\n } else if (controlItem.type === 'text-align') {\n return external_react_default.a.createElement(TextAlign_TextAlign, extends_default()({\n key: index,\n textAligns: textAligns\n }, commonProps));\n } else if (controlItem.type === 'media') {\n if (!media.image && !media.video && !media.audio) {\n return null;\n }\n\n return external_react_default.a.createElement(\"button\", {\n type: \"button\",\n key: index,\n \"data-title\": controlItem.title,\n disabled: controlItem.disabled,\n className: \"control-item media button\",\n onClick: _this3.openBraftFinder\n }, controlItem.text);\n } else if (controlItem.type === 'dropdown') {\n return external_react_default.a.createElement(DropDown_DropDown, extends_default()({\n key: index,\n className: \"control-item extend-control-item dropdown \".concat(controlItem.className || ''),\n caption: controlItem.text,\n htmlCaption: controlItem.html,\n showArrow: controlItem.showArrow,\n title: controlItem.title,\n arrowActive: controlItem.arrowActive,\n theme: controlItem.theme,\n autoHide: controlItem.autoHide,\n disabled: controlItem.disabled,\n ref: controlItem.ref\n }, commonProps), controlItem.component);\n } else if (controlItem.type === 'modal') {\n return external_react_default.a.createElement(\"button\", {\n type: \"button\",\n key: index,\n \"data-title\": controlItem.title,\n disabled: controlItem.disabled,\n className: \"control-item extend-control-item button \".concat(controlItem.className || ''),\n dangerouslySetInnerHTML: controlItem.html ? {\n __html: controlItem.html\n } : null,\n onClick: function onClick(event) {\n if (controlItem.modal && controlItem.modal.id) {\n if (_this3.extendedModals[controlItem.modal.id]) {\n _this3.extendedModals[controlItem.modal.id].active = true;\n\n _this3.extendedModals[controlItem.modal.id].update(objectSpread_default()({}, controlItem.modal, {\n language: language\n }));\n } else {\n _this3.extendedModals[controlItem.modal.id] = Modal_showModal(objectSpread_default()({}, controlItem.modal, {\n language: language\n }));\n controlItem.modal.onCreate && controlItem.modal.onCreate(_this3.extendedModals[controlItem.modal.id]);\n }\n }\n\n controlItem.onClick && controlItem.onClick(event);\n }\n }, !controlItem.html ? controlItem.text : null);\n } else if (controlItem.type === 'component') {\n return external_react_default.a.createElement(\"div\", {\n key: index,\n className: \"component-wrapper \".concat(controlItem.className || '')\n }, controlItem.component);\n } else if (controlItem.type === 'button') {\n return external_react_default.a.createElement(\"button\", {\n type: \"button\",\n key: index,\n \"data-title\": controlItem.title,\n disabled: controlItem.disabled,\n className: \"control-item button \".concat(controlItem.className || ''),\n dangerouslySetInnerHTML: controlItem.html ? {\n __html: controlItem.html\n } : null,\n onClick: function onClick(event) {\n return controlItem.onClick && controlItem.onClick(event);\n }\n }, !controlItem.html ? controlItem.text : null);\n } else if (controlItem) {\n var disabled = false;\n\n if (controlItem.command === 'undo') {\n disabled = editorState.getUndoStack().size === 0;\n } else if (controlItem.command === 'redo') {\n disabled = editorState.getRedoStack().size === 0;\n }\n\n return external_react_default.a.createElement(\"button\", {\n type: \"button\",\n key: index,\n disabled: disabled,\n \"data-title\": controlItem.title,\n className: _this3.getControlItemClassName({\n type: controlItem.type,\n command: controlItem.command\n }),\n onClick: function onClick() {\n return _this3.applyControl(controlItem.command, controlItem.type, controlItem.data);\n }\n }, controlItem.text);\n }\n }));\n }\n }, {\n key: \"preventDefault\",\n value: function preventDefault(event) {\n var tagName = event.target.tagName.toLowerCase();\n\n if (tagName === 'input' || tagName === 'label') {// ...\n } else {\n event.preventDefault();\n }\n }\n }]);\n\n return ControlBar;\n}(external_react_default.a.Component);\n\n\n// CONCATENATED MODULE: ./editor/index.jsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar buildHooks = function buildHooks(hooks) {\n return function (hookName) {\n var defaultReturns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return hooks[hookName] || function () {\n return defaultReturns;\n };\n };\n};\n\nvar filterColors = function filterColors(colors, colors2) {\n return colors.filter(function (item) {\n return !colors2.find(function (color) {\n return color.toLowerCase() === item.toLowerCase();\n });\n }).filter(function (item, index, array) {\n return array.indexOf(item) === index;\n });\n};\n\nvar editor_isControlEnabled = function isControlEnabled(props, controlName) {\n return toConsumableArray_default()(props.controls).concat(toConsumableArray_default()(props.extendControls)).find(function (item) {\n return item === controlName || item.key === controlName;\n }) && props.excludeControls.indexOf(controlName) === -1;\n};\n\nvar editor_getConvertOptions = function getConvertOptions(props) {\n var editorId = props.editorId || props.id;\n\n var convertOptions = objectSpread_default()({}, configs_props.converts, props.converts, {\n fontFamilies: props.fontFamilies\n });\n\n convertOptions.styleImportFn = compositeStyleImportFn(convertOptions.styleImportFn, editorId);\n convertOptions.styleExportFn = compositeStyleExportFn(convertOptions.styleExportFn, editorId);\n convertOptions.entityImportFn = compositeEntityImportFn(convertOptions.entityImportFn, editorId);\n convertOptions.entityExportFn = compositeEntityExportFn(convertOptions.entityExportFn, editorId);\n convertOptions.blockImportFn = compositeBlockImportFn(convertOptions.blockImportFn, editorId);\n convertOptions.blockExportFn = compositeBlockExportFn(convertOptions.blockExportFn, editorId);\n return convertOptions;\n};\n\nvar editor_BraftEditor =\n/*#__PURE__*/\nfunction (_React$Component) {\n inherits_default()(BraftEditor, _React$Component);\n\n function BraftEditor(props) {\n var _this;\n\n classCallCheck_default()(this, BraftEditor);\n\n _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(BraftEditor).call(this, props));\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"onChange\", function (editorState, callback) {\n if (!(editorState instanceof external_draft_js_[\"EditorState\"])) {\n editorState = external_draft_js_[\"EditorState\"].set(editorState, {\n decorator: _this.editorDecorators\n });\n }\n\n if (!editorState.convertOptions) {\n editorState.setConvertOptions(editor_getConvertOptions(_this.editorProps));\n }\n\n _this.setState({\n editorState: editorState\n }, function () {\n _this.props.onChange && _this.props.onChange(editorState);\n callback && callback(editorState);\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"getDraftInstance\", function () {\n return _this.draftInstance;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"getFinderInstance\", function () {\n return _this.braftFinder;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"getValue\", function () {\n return _this.state.editorState;\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setValue\", function (editorState, callback) {\n return _this.onChange(editorState, callback);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"forceRender\", function () {\n var selectionState = _this.state.editorState.getSelection();\n\n _this.setValue(external_draft_js_[\"EditorState\"].set(_this.state.editorState, {\n decorator: _this.editorDecorators\n }), function () {\n _this.setValue(external_draft_js_[\"EditorState\"].forceSelection(_this.state.editorState, selectionState));\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"onTab\", function (event) {\n if (handlers_keyCommandHandlers('tab', _this.state.editorState, assertThisInitialized_default()(assertThisInitialized_default()(_this))) === 'handled') {\n event.preventDefault();\n }\n\n _this.editorProps.onTab && _this.editorProps.onTab(event);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"onFocus\", function () {\n _this.isFocused = true;\n _this.editorProps.onFocus && _this.editorProps.onFocus(_this.state.editorState);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"onBlur\", function () {\n _this.isFocused = false;\n _this.editorProps.onBlur && _this.editorProps.onBlur(_this.state.editorState);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"requestFocus\", function () {\n setTimeout(function () {\n return _this.draftInstance.focus();\n }, 0);\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleKeyCommand\", function (command, editorState) {\n return handlers_keyCommandHandlers(command, editorState, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleReturn\", function (event, editorState) {\n return handlers_returnHandlers(event, editorState, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleBeforeInput\", function (chars, editorState) {\n return beforeInputHandlers(chars, editorState, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleDrop\", function (selectionState, dataTransfer) {\n return handlers_dropHandlers(selectionState, dataTransfer, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleDroppedFiles\", function (selectionState, files) {\n return droppedFilesHandlers(selectionState, files, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handlePastedFiles\", function (files) {\n return pastedFilesHandlers(files, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleCopyContent\", function (event) {\n return handlers_copyHandlers(event, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handlePastedText\", function (text, html, editorState) {\n return handlers_pastedTextHandlers(text, html, editorState, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"handleCompositionStart\", function (event) {\n return handlers_compositionStartHandler(event, assertThisInitialized_default()(assertThisInitialized_default()(_this)));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"undo\", function () {\n _this.setValue(external_braft_utils_[\"ContentUtils\"].undo(_this.state.editorState));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"redo\", function () {\n _this.setValue(external_braft_utils_[\"ContentUtils\"].redo(_this.state.editorState));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"removeSelectionInlineStyles\", function () {\n _this.setValue(external_braft_utils_[\"ContentUtils\"].removeSelectionInlineStyles(_this.state.editorState));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"insertHorizontalLine\", function () {\n _this.setValue(external_braft_utils_[\"ContentUtils\"].insertHorizontalLine(_this.state.editorState));\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"clearEditorContent\", function () {\n _this.setValue(external_braft_utils_[\"ContentUtils\"].clear(_this.state.editorState), function (editorState) {\n _this.setValue(external_braft_utils_[\"ContentUtils\"].toggleSelectionIndent(editorState, 0));\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"toggleFullscreen\", function (fullscreen) {\n _this.setState({\n isFullscreen: typeof fullscreen !== 'undefined' ? fullscreen : !_this.state.isFullscreen\n }, function () {\n _this.editorProps.onFullscreen && _this.editorProps.onFullscreen(_this.state.isFullscreen);\n });\n });\n\n defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), \"setEditorContainerNode\", function (containerNode) {\n _this.containerNode = containerNode;\n });\n\n _this.editorProps = _this.getEditorProps(props);\n _this.editorDecorators = getDecorators(_this.editorProps.editorId || _this.editorProps.id);\n _this.isFocused = false;\n _this.isLiving = false;\n _this.braftFinder = null;\n _this.valueInitialized = !!(_this.props.defaultValue || _this.props.value);\n var defaultEditorState = (_this.props.defaultValue || _this.props.value) instanceof external_draft_js_[\"EditorState\"] ? _this.props.defaultValue || _this.props.value : external_draft_js_[\"EditorState\"].createEmpty(_this.editorDecorators);\n defaultEditorState.setConvertOptions(editor_getConvertOptions(_this.editorProps));\n var tempColors = [];\n\n if (external_braft_utils_[\"ContentUtils\"].isEditorState(defaultEditorState)) {\n var colors = external_braft_utils_[\"ColorUtils\"].detectColorsFromDraftState(defaultEditorState.toRAW(true));\n defaultEditorState.setConvertOptions(editor_getConvertOptions(_this.editorProps));\n tempColors = filterColors(colors, _this.editorProps.colors);\n }\n\n _this.state = {\n tempColors: tempColors,\n editorState: defaultEditorState,\n isFullscreen: false,\n draftProps: {}\n };\n _this.containerNode = null;\n return _this;\n }\n\n createClass_default()(BraftEditor, [{\n key: \"getEditorProps\",\n value: function getEditorProps(props) {\n var _this2 = this;\n\n props = props || this.props;\n\n var _props = props,\n value = _props.value,\n defaultValue = _props.defaultValue,\n onChange = _props.onChange,\n restProps = objectWithoutProperties_default()(_props, [\"value\", \"defaultValue\", \"onChange\"]); // eslint-disable-line no-unused-vars\n\n\n var propInterceptors = getPropInterceptors(restProps.editorId || restProps.id);\n\n if (propInterceptors.length === 0) {\n return restProps;\n }\n\n var porpsMap = Object(external_immutable_[\"Map\"])(restProps);\n propInterceptors.forEach(function (interceptor) {\n porpsMap = porpsMap.merge(Object(external_immutable_[\"Map\"])(interceptor(porpsMap.toJS(), _this2) || {}));\n });\n return porpsMap.toJS();\n }\n }, {\n key: \"componentWillMount\",\n value: function componentWillMount() {\n if (editor_isControlEnabled(this.editorProps, 'media')) {\n var _this$editorProps = this.editorProps,\n language = _this$editorProps.language,\n media = _this$editorProps.media;\n\n var _defaultProps$media$m = objectSpread_default()({}, configs_props.media, media),\n uploadFn = _defaultProps$media$m.uploadFn,\n validateFn = _defaultProps$media$m.validateFn,\n items = _defaultProps$media$m.items;\n\n this.braftFinder = new external_braft_finder_default.a({\n items: items,\n language: language,\n uploader: uploadFn,\n validator: validateFn\n });\n this.forceUpdate();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.isLiving = true;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(_, prevState) {\n if (prevState.editorState !== this.state.editorState) {\n this.state.editorState.setConvertOptions(editor_getConvertOptions(this.editorProps));\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(props) {\n var _this3 = this;\n\n this.editorProps = this.getEditorProps(props);\n var editorState = props.value;\n var _this$editorProps2 = this.editorProps,\n media = _this$editorProps2.media,\n language = _this$editorProps2.language;\n var currentProps = this.getEditorProps();\n\n if (!editor_isControlEnabled(currentProps, 'media') && editor_isControlEnabled(this.editorProps, 'media') && !this.braftFinder) {\n var _defaultProps$media$m2 = objectSpread_default()({}, configs_props.media, media),\n uploadFn = _defaultProps$media$m2.uploadFn,\n validateFn = _defaultProps$media$m2.validateFn,\n items = _defaultProps$media$m2.items;\n\n this.braftFinder = new external_braft_finder_default.a({\n items: items,\n language: language,\n uploader: uploadFn,\n validator: validateFn\n });\n this.forceUpdate();\n }\n\n if (media && media.items && this.braftFinder) {\n this.braftFinder.setItems(media.items);\n }\n\n var nextEditorState;\n\n if (!this.valueInitialized && typeof this.props.defaultValue === 'undefined' && external_braft_utils_[\"ContentUtils\"].isEditorState(props.defaultValue)) {\n nextEditorState = props.defaultValue;\n } else if (external_braft_utils_[\"ContentUtils\"].isEditorState(editorState)) {\n nextEditorState = editorState;\n }\n\n if (nextEditorState) {\n if (nextEditorState && nextEditorState !== this.state.editorState) {\n var tempColors = external_braft_utils_[\"ColorUtils\"].detectColorsFromDraftState(nextEditorState.toRAW(true));\n nextEditorState.setConvertOptions(editor_getConvertOptions(this.editorProps));\n this.setState({\n tempColors: filterColors(toConsumableArray_default()(this.state.tempColors).concat(toConsumableArray_default()(tempColors)), currentProps.colors),\n editorState: nextEditorState\n }, function () {\n _this3.props.onChange && _this3.props.onChange(nextEditorState);\n });\n } else {\n this.setState({\n editorState: nextEditorState\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.isLiving = false;\n this.controlBarInstance && this.controlBarInstance.closeBraftFinder();\n }\n }, {\n key: \"lockOrUnlockEditor\",\n value: function lockOrUnlockEditor(editorLocked) {\n this.setState({\n editorLocked: editorLocked\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$editorProps3 = this.editorProps,\n id = _this$editorProps3.id,\n editorId = _this$editorProps3.editorId,\n controls = _this$editorProps3.controls,\n excludeControls = _this$editorProps3.excludeControls,\n extendControls = _this$editorProps3.extendControls,\n readOnly = _this$editorProps3.readOnly,\n disabled = _this$editorProps3.disabled,\n media = _this$editorProps3.media,\n language = _this$editorProps3.language,\n colors = _this$editorProps3.colors,\n colorPicker = _this$editorProps3.colorPicker,\n colorPickerTheme = _this$editorProps3.colorPickerTheme,\n colorPickerAutoHide = _this$editorProps3.colorPickerAutoHide,\n hooks = _this$editorProps3.hooks,\n fontSizes = _this$editorProps3.fontSizes,\n fontFamilies = _this$editorProps3.fontFamilies,\n emojis = _this$editorProps3.emojis,\n placeholder = _this$editorProps3.placeholder,\n fixPlaceholder = _this$editorProps3.fixPlaceholder,\n headings = _this$editorProps3.headings,\n imageControls = _this$editorProps3.imageControls,\n imageResizable = _this$editorProps3.imageResizable,\n lineHeights = _this$editorProps3.lineHeights,\n letterSpacings = _this$editorProps3.letterSpacings,\n textAligns = _this$editorProps3.textAligns,\n textBackgroundColor = _this$editorProps3.textBackgroundColor,\n allowInsertLinkText = _this$editorProps3.allowInsertLinkText,\n defaultLinkTarget = _this$editorProps3.defaultLinkTarget,\n extendAtomics = _this$editorProps3.extendAtomics,\n className = _this$editorProps3.className,\n style = _this$editorProps3.style,\n controlBarClassName = _this$editorProps3.controlBarClassName,\n controlBarStyle = _this$editorProps3.controlBarStyle,\n contentClassName = _this$editorProps3.contentClassName,\n contentStyle = _this$editorProps3.contentStyle,\n stripPastedStyles = _this$editorProps3.stripPastedStyles,\n componentBelowControlBar = _this$editorProps3.componentBelowControlBar;\n var _this$state = this.state,\n isFullscreen = _this$state.isFullscreen,\n editorState = _this$state.editorState;\n editorId = editorId || id;\n hooks = buildHooks(hooks);\n controls = controls.filter(function (item) {\n return excludeControls.indexOf(item) === -1;\n });\n language = (typeof language === 'function' ? language(languages, 'braft-editor') : languages[language]) || languages[configs_props.language];\n var externalMedias = media && media.externals ? objectSpread_default()({}, configs_props.media.externals, media.externals) : configs_props.media.externals;\n var accepts = media && media.accepts ? objectSpread_default()({}, configs_props.media.accepts, media.accepts) : configs_props.media.accepts;\n media = objectSpread_default()({}, configs_props.media, media, {\n externalMedias: externalMedias,\n accepts: accepts\n });\n\n if (!media.uploadFn) {\n media.video = false;\n media.audio = false;\n }\n\n var controlBarProps = {\n editor: this,\n editorState: editorState,\n braftFinder: this.braftFinder,\n ref: function ref(instance) {\n return _this4.controlBarInstance = instance;\n },\n getContainerNode: function getContainerNode() {\n return _this4.containerNode;\n },\n className: controlBarClassName,\n style: controlBarStyle,\n colors: toConsumableArray_default()(colors).concat(toConsumableArray_default()(this.state.tempColors)),\n colorPicker: colorPicker,\n colorPickerTheme: colorPickerTheme,\n colorPickerAutoHide: colorPickerAutoHide,\n hooks: hooks,\n editorId: editorId,\n media: media,\n controls: controls,\n language: language,\n extendControls: extendControls,\n headings: headings,\n fontSizes: fontSizes,\n fontFamilies: fontFamilies,\n emojis: emojis,\n lineHeights: lineHeights,\n letterSpacings: letterSpacings,\n textAligns: textAligns,\n textBackgroundColor: textBackgroundColor,\n allowInsertLinkText: allowInsertLinkText,\n defaultLinkTarget: defaultLinkTarget\n };\n var unitExportFn = editorState.convertOptions.unitExportFn;\n var commonProps = {\n editor: this,\n editorId: editorId,\n hooks: hooks,\n editorState: editorState,\n containerNode: this.containerNode,\n imageControls: imageControls,\n imageResizable: imageResizable,\n language: language,\n extendAtomics: extendAtomics\n };\n var blockRendererFn = getBlockRendererFn(commonProps, this.editorProps.blockRendererFn);\n var blockRenderMap = getBlockRenderMap(commonProps, this.editorProps.blockRenderMap);\n var blockStyleFn = getBlockStyleFn(this.editorProps.blockStyleFn);\n var customStyleMap = getCustomStyleMap(commonProps, this.editorProps.customStyleMap);\n var customStyleFn = getCustomStyleFn(commonProps, {\n fontFamilies: fontFamilies,\n unitExportFn: unitExportFn,\n customStyleFn: this.editorProps.customStyleFn\n });\n var keyBindingFn = keybindings(this.editorProps.keyBindingFn);\n var mixedProps = {};\n\n if (this.state.editorLocked || this.editorProps.disabled || this.editorProps.readOnly || this.editorProps.draftProps.readOnly) {\n mixedProps.readOnly = true;\n }\n\n if (placeholder && fixPlaceholder && editorState.isEmpty() && editorState.getCurrentContent().getFirstBlock().getType() !== 'unstyled') {\n placeholder = '';\n }\n\n var draftProps = objectSpread_default()({\n ref: function ref(instance) {\n _this4.draftInstance = instance;\n },\n editorState: editorState,\n handleKeyCommand: this.handleKeyCommand,\n handleReturn: this.handleReturn,\n handleBeforeInput: this.handleBeforeInput,\n handleDrop: this.handleDrop,\n handleDroppedFiles: this.handleDroppedFiles,\n handlePastedText: this.handlePastedText,\n handlePastedFiles: this.handlePastedFiles,\n onChange: this.onChange,\n onTab: this.onTab,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n blockRenderMap: blockRenderMap,\n blockRendererFn: blockRendererFn,\n blockStyleFn: blockStyleFn,\n customStyleMap: customStyleMap,\n customStyleFn: customStyleFn,\n keyBindingFn: keyBindingFn,\n placeholder: placeholder,\n stripPastedStyles: stripPastedStyles\n }, this.editorProps.draftProps, mixedProps);\n\n return external_react_default.a.createElement(\"div\", {\n style: style,\n ref: this.setEditorContainerNode,\n className: \"bf-container \".concat(className).concat(disabled ? ' disabled' : '').concat(readOnly ? ' read-only' : '').concat(isFullscreen ? ' fullscreen' : '')\n }, external_react_default.a.createElement(ControlBar_ControlBar, controlBarProps), componentBelowControlBar, external_react_default.a.createElement(\"div\", {\n onCompositionStart: this.handleCompositionStart,\n className: \"bf-content \".concat(contentClassName),\n onCopy: this.handleCopyContent,\n style: contentStyle\n }, external_react_default.a.createElement(external_draft_js_[\"Editor\"], draftProps)));\n }\n }]);\n\n return BraftEditor;\n}(external_react_default.a.Component);\n\ndefineProperty_default()(editor_BraftEditor, \"defaultProps\", configs_props);\n\n\n\n// EXTERNAL MODULE: external \"braft-convert\"\nvar external_braft_convert_ = __webpack_require__(14);\n\n// CONCATENATED MODULE: ./index.jsx\n/* concated harmony reexport EditorState */__webpack_require__.d(__webpack_exports__, \"EditorState\", function() { return external_draft_js_[\"EditorState\"]; });\n/* concated harmony reexport getDecorators */__webpack_require__.d(__webpack_exports__, \"getDecorators\", function() { return getDecorators; });\n\n\n\n\n\n\n\nexternal_draft_js_[\"EditorState\"].prototype.setConvertOptions = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.convertOptions = options;\n};\n\nexternal_draft_js_[\"EditorState\"].prototype.toHTML = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var convertOptions = this.convertOptions || {};\n return Object(external_braft_convert_[\"convertEditorStateToHTML\"])(this, objectSpread_default()({}, convertOptions, options));\n};\n\nexternal_draft_js_[\"EditorState\"].prototype.toRAW = function (noStringify) {\n return noStringify ? Object(external_braft_convert_[\"convertEditorStateToRaw\"])(this) : JSON.stringify(Object(external_braft_convert_[\"convertEditorStateToRaw\"])(this));\n};\n\nexternal_draft_js_[\"EditorState\"].prototype.toText = function () {\n return this.getCurrentContent().getPlainText();\n};\n\nexternal_draft_js_[\"EditorState\"].prototype.isEmpty = function () {\n return !this.getCurrentContent().hasText();\n};\n\neditor_BraftEditor.createEditorState = external_draft_js_[\"EditorState\"].createFrom = function (content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.unitExportFn = options.unitExportFn || editor_BraftEditor.defaultProps.converts.unitExportFn;\n options.styleImportFn = compositeStyleImportFn(options.styleImportFn, options.editorId);\n options.entityImportFn = compositeEntityImportFn(options.entityImportFn, options.editorId);\n options.blockImportFn = compositeBlockImportFn(options.blockImportFn, options.editorId);\n var editorState = null;\n\n if (content instanceof external_draft_js_[\"EditorState\"]) {\n editorState = content;\n } else if (typeof_default()(content) === 'object' && content && content.blocks && content.entityMap) {\n editorState = Object(external_braft_convert_[\"convertRawToEditorState\"])(content, getDecorators(options.editorId));\n } else if (typeof content === 'string') {\n try {\n if (/^(-)?\\d+$/.test(content)) {\n editorState = Object(external_braft_convert_[\"convertHTMLToEditorState\"])(content, getDecorators(options.editorId), options, 'create');\n } else {\n editorState = external_draft_js_[\"EditorState\"].createFrom(JSON.parse(content), options);\n }\n } catch (error) {\n editorState = Object(external_braft_convert_[\"convertHTMLToEditorState\"])(content, getDecorators(options.editorId), options, 'create');\n }\n } else if (typeof content === 'number') {\n editorState = Object(external_braft_convert_[\"convertHTMLToEditorState\"])(content.toLocaleString().replace(/,/g, ''), getDecorators(options.editorId), options, 'create');\n } else {\n editorState = external_draft_js_[\"EditorState\"].createEmpty(getDecorators(options.editorId));\n }\n\n options.styleExportFn = compositeStyleExportFn(options.styleExportFn, options.editorId);\n options.entityExportFn = compositeEntityExportFn(options.entityExportFn, options.editorId);\n options.blockExportFn = compositeBlockExportFn(options.blockExportFn, options.editorId);\n editorState.setConvertOptions(options);\n return editorState;\n};\n\n/* harmony default export */ var index_0 = __webpack_exports__[\"default\"] = (createExtensibleEditor(editor_BraftEditor));\n // 2.1版本开发计划\n// [ ]优化选中多行文字是插入链接报错的问题\n// [ ]新增编辑器内图片删除hook\n// 2.2版本开发计划\n// [ ]表格功能\n// [ ]美化UI,包括图标和界面风格\n// 2.3版本开发计划\n// [ ]初级md快捷输入支持\n// [ ]图片裁切等简单的编辑功能\n// [ ]允许自定义快捷键\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 41 */,\n/* 42 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 43 */,\n/* 44 */,\n/* 45 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=index.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"braft-utils\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"braft-utils\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"braft-utils\")) : factory(root[\"react\"], root[\"braft-utils\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__6__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 33);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__1__;\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\n\n/***/ }),\n\n/***/ 33:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultEmoticons\", function() { return defaultEmoticons; });\n/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var braft_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var braft_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(braft_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _styles_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);\n/* harmony import */ var _styles_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_scss__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n // https://www.iconfinder.com/iconsets/emoji-18\n\nvar defaultEmoticons = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25].map(function (item) {\n return \"\".concat(item, \".png\");\n});\n\nvar insertEmoticon = function insertEmoticon(editor, editorState, src) {\n editor.setValue(braft_utils__WEBPACK_IMPORTED_MODULE_2__[\"ContentUtils\"].insertText(editorState, ' ', null, {\n type: 'EMOTICON',\n mutability: 'IMMUTABLE',\n data: {\n src: src\n }\n }));\n};\n\nvar controlRef = null;\n\nvar bindControlRef = function bindControlRef(ref) {\n return controlRef = ref;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function (options) {\n options = _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default()({\n emoticons: [],\n closeOnSelect: false,\n closeOnBlur: false\n }, options);\n var _options = options,\n emoticons = _options.emoticons,\n closeOnSelect = _options.closeOnSelect,\n closeOnBlur = _options.closeOnBlur,\n includeEditors = _options.includeEditors,\n excludeEditors = _options.excludeEditors;\n return {\n type: 'entity',\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n name: 'EMOTICON',\n control: function control(props) {\n return {\n key: 'EMOTICON',\n replace: 'emoji',\n type: 'dropdown',\n text: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"i\", {\n className: \"bfi-emoji\"\n }),\n showArrow: false,\n ref: bindControlRef,\n autoHide: closeOnBlur,\n component: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: \"braft-emoticon-picker\"\n }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: \"braft-emoticons-list\"\n }, emoticons.map(function (item, index) {\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"img\", {\n onClick: function onClick() {\n insertEmoticon(props.editor, props.editorState, item);\n closeOnSelect && controlRef && controlRef.hide();\n },\n key: index,\n src: item\n });\n })))\n };\n },\n mutability: 'IMMUTABLE',\n component: function component(props) {\n var entity = props.contentState.getEntity(props.entityKey);\n\n var _entity$getData = entity.getData(),\n src = _entity$getData.src;\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"span\", {\n className: \"braft-emoticon-in-editor\"\n }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"img\", {\n src: src\n }), props.children);\n },\n importer: function importer(nodeName, node) {\n if (nodeName.toLowerCase() === 'span' && node.classList && node.classList.contains('braft-emoticon-wrap')) {\n var imgNode = node.querySelector('img');\n var src = imgNode.getAttribute('src'); // 移除img节点以避免生成atomic block\n\n node.removeChild(imgNode);\n return {\n mutability: 'IMMUTABLE',\n data: {\n src: src\n }\n };\n }\n },\n exporter: function exporter(entityObject, initialText) {\n var src = entityObject.data.src;\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"span\", {\n className: \"braft-emoticon-wrap\"\n }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"img\", {\n src: src\n }), initialText);\n }\n };\n});\n\n/***/ }),\n\n/***/ 48:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(2);\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__6__;\n\n/***/ })\n\n/******/ });\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 34);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\n\n/***/ }),\n\n/***/ 34:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar getSelectedTextLength = function getSelectedTextLength(editorState) {\n var currentSelection = editorState.getSelection();\n var isCollapsed = currentSelection.isCollapsed();\n var length = 0;\n\n if (!isCollapsed) {\n var currentContent = editorState.getCurrentContent();\n var startKey = currentSelection.getStartKey();\n var endKey = currentSelection.getEndKey();\n var startBlock = currentContent.getBlockForKey(startKey);\n var isStartAndEndBlockAreTheSame = startKey === endKey;\n var startBlockTextLength = startBlock.getLength();\n var startSelectedTextLength = startBlockTextLength - currentSelection.getStartOffset();\n var endSelectedTextLength = currentSelection.getEndOffset();\n var keyAfterEnd = currentContent.getKeyAfter(endKey);\n\n if (isStartAndEndBlockAreTheSame) {\n length += currentSelection.getEndOffset() - currentSelection.getStartOffset();\n } else {\n var currentKey = startKey;\n\n while (currentKey && currentKey !== keyAfterEnd) {\n if (currentKey === startKey) {\n length += startSelectedTextLength + 1;\n } else if (currentKey === endKey) {\n length += endSelectedTextLength;\n } else {\n length += currentContent.getBlockForKey(currentKey).getLength() + 1;\n }\n\n currentKey = currentContent.getKeyAfter(currentKey);\n }\n }\n }\n\n return length;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function (options) {\n options = _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default()({\n defaultValue: Infinity\n }, options);\n var _options = options,\n includeEditors = _options.includeEditors,\n excludeEditors = _options.excludeEditors,\n defaultValue = _options.defaultValue;\n return {\n type: 'prop-interception',\n includeEditors: includeEditors,\n excludeEditors: excludeEditors,\n interceptor: function interceptor(editorProps) {\n var maxLength = editorProps.maxLength || defaultValue;\n\n editorProps.handleBeforeInput = function (_, editorState) {\n if (maxLength === Infinity) {\n return 'not-handled';\n }\n\n var currentContentLength = editorState.toText().length;\n var selectedTextLength = getSelectedTextLength(editorState);\n\n if (currentContentLength - selectedTextLength > maxLength - 1) {\n editorProps.onReachMaxLength && editorProps.onReachMaxLength(maxLength);\n return 'handled';\n }\n };\n\n editorProps.handlePastedText = function (pastedText, _, editorState) {\n if (maxLength === Infinity) {\n return 'not-handled';\n }\n\n var currentContentLength = editorState.toText().length;\n var selectedTextLength = getSelectedTextLength(editorState);\n\n if (currentContentLength + pastedText.length - selectedTextLength > maxLength) {\n editorProps.onReachMaxLength && editorProps.onReachMaxLength(maxLength);\n return 'handled';\n }\n };\n\n return editorProps;\n }\n };\n});\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(2);\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;\n\n/***/ })\n\n/******/ });\n});","import React, { useState } from \"react\";\nimport classnames from \"classnames\";\nimport BraftEditor, { ControlType, EditorState } from \"braft-editor\";\nimport styles from \"./index.less\";\nimport \"braft-editor/dist/index.css\";\n\n// 引入表情包扩展模块样式文件\nimport \"braft-extensions/dist/emoticon.css\";\n// 引入表情包扩展模块和默认表情包列表\nimport Emoticon, { defaultEmoticons } from \"braft-extensions/dist/emoticon\";\nimport MaxLength from \"braft-extensions/dist/max-length\";\n\nconst lengthOptions = {\n defaultValue: 100 // 指定默认限制数,如不指定则为Infinity(无限)\n // includeEditors: ['editor-id-1'], // 指定该模块对哪些BraftEditor生效,不传此属性则对所有BraftEditor有效\n // excludeEditors: ['editor-id-2'], // 指定该模块对哪些BraftEditor无效\n};\nBraftEditor.use(MaxLength(lengthOptions));\n\n// 转换默认表情包列表,让webpack可以正确加载到默认表情包中的图片,请确保已对png格式的文件配置了loader\n// 如果你使用的webpack版本不支持动态require,或者使用的其他打包工具,请勿使用此写法\nconst emoticons = defaultEmoticons.map((item: string) =>\n require(`braft-extensions/dist/assets/${item}`)\n);\n\n// 也可以使用自己的表情包资源,不受打包工具限制\n// const emoticons = ['http://path/to/emoticon-1.png', 'http://path/to/emoticon-2.png', 'http://path/to/emoticon-3.png', 'http://path/to/emoticon-4.png', ...]\n\nconst emotionOptions = {\n // includeEditors: ['editor-id-1'], // 指定该模块对哪些BraftEditor生效,不传此属性则对所有BraftEditor有效\n // excludeEditors: ['editor-id-2'], // 指定该模块对哪些BraftEditor无效\n emoticons: emoticons, // 指定可用表情图片列表,默认为空\n closeOnBlur: true, // 指定是否在点击表情选择器之外的地方时关闭表情选择器,默认false\n closeOnSelect: false // 指定是否在选择表情后关闭表情选择器,默认false\n};\n\nBraftEditor.use(Emoticon(emotionOptions));\n\nexport interface BaseEditorProps {\n value: EditorState;\n onChange: (editorState: EditorState) => void;\n controls?: ControlType[];\n FloatControls?: any;\n}\n\nexport const BarftEditorPage = ({\n value,\n onChange,\n controls,\n FloatControls\n}: BaseEditorProps) => {\n const optionsControls = controls\n ? controls\n : [\n \"bold\",\n \"italic\",\n \"underline\",\n \"separator\",\n \"link\",\n \"emoji\",\n \"separator\",\n \"media\"\n ];\n const options: any = {\n controls: optionsControls,\n showControlsBar:\n optionsControls && optionsControls.length > 0 && !FloatControls,\n showFloatControls: FloatControls\n };\n\n const [focusState, setFocusState] = useState(false);\n\n return (\n <div className={styles.baseWrapper}>\n <BraftEditor\n value={value}\n onChange={onChange}\n controls={options.controls}\n controlBarClassName={classnames(styles.controlBar, {\n [styles.focus]: focusState\n })}\n controlBarStyle={options.showControlsBar ? {} : { display: \"none\" }}\n contentClassName={classnames(styles.editorContent, {\n [styles.focus]: focusState,\n [styles.hasFloatControls]: options.showFloatControls\n })}\n contentStyle={{}}\n onFocus={() => setFocusState(true)}\n onBlur={() => setFocusState(false)}\n hooks={{\n \"toggle-link\": ({ href, target }) => {\n href = href.indexOf(\"http\") === 0 ? href : `http://${href}`;\n return { href, target };\n }\n }}\n />\n {options.showFloatControls ? (\n <div className={classnames(styles.floatControls)}>\n {\n <FloatControls\n editorState={value}\n setEditorState={onChange}\n />\n }\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default BarftEditorPage;\n"],"names":["this","Immutable","_require","_classCallCheck","_possibleConstructorReturn","_inherits","Map","OrderedSet","Record","EMPTY_SET","defaultRecord","CharacterMetadata","findRangesImmutable","List","Repeat","haveEqualStyle","haveEqualEntity","decorateCharacterList","DraftFeatureFlags","applyEntityToContentBlock","invariant","getRangesForDraftEntity","DraftEntitySegments","OrderedMap","generateRandomKey","ContentBlockNode","removeEntitiesAtEdges","randomizeBlockMapKeys","insertIntoList","BlockMapBuilder","getNextDelimiterBlockKey","updateBlockMapLinks","transformBlock","removeRangeFromContentState","insertTextIntoContentState","getContentStateFragment","insertFragmentIntoContentState","getCharacterRemovalRange","splitBlockInContentState","ContentStateInlineStyle","modifyBlockForContentState","applyEntityToContentState","emptyFunction","_assign","DraftEntityInstance","ContentBlock","DraftEntity","SelectionState","sanitizeDraftText","UnicodeBidiDirection","UnicodeBidi","UnicodeBidiService","nullthrows","_extends","ContentState","EditorBidiService","BlockTree","ContentBlockRecord","DraftModifier","EditorState","moveBlockInContentState","React","cx","getEntityKeyForSelection","isSelectionAtLeafStart","undefined","UAParser","hasOwnProperty","compare","VersionRange","mapObject","memoizeStringOnly","UserAgent","ReactDOM","isNode","isTextNode","containsNode","global","getActiveElement","setDraftEditorSelection","DraftEditorTextNode","hyphenate","camelize","getStyleProperty","getElementRect","getDocumentScrollElement","getUnboundedScrollPosition","Style","getScrollPosition","getElementPosition","getViewportDimensions","Scroll","DraftOffsetKey","DraftEditorLeaf","joinClasses","DraftEditorBlock","DraftEditorContents","createArrayFromMixed","PhotosMimeType","getSelectionOffsetKeyForNode","findAncestorOffsetKey","getUpdatedSelectionState","DataTransfer","isEventHandled","getTextContentFromFiles","getFragmentFromSelection","getNodeLength","getRangeClientRects","UnicodeUtils","removeTextWithStrategy","moveSelectionBackward","expandRangeToStartOfLine","getDraftEditorSelectionWithNodes","DraftRemovableWord","moveSelectionForward","KeyBindingUtil","isChrome","keyCommandPlainDelete","keyCommandDeleteWord","keyCommandPlainBackspace","keyCommandBackspaceWord","keyCommandBackspaceToStartOfLine","keyCommandInsertNewline","keyCommandTransposeCharacters","keyCommandMoveSelectionToStartOfBlock","keyCommandMoveSelectionToEndOfBlock","SecondaryClipboard","keyCommandUndo","URI","getSafeBodyFromHTML","DefaultDraftBlockRenderMap","convertFromHTMLtoContentBlocks","adjustBlockDepthForContentState","splitTextIntoTextBlocks","RichTextEditorUtil","DraftPasteProcessor","insertFragment","getDraftEditorSelection","onBeforeInput","onBlur","onCompositionStart","onCopy","onCut","onDragOver","onDragStart","onFocus","onInput","onKeyDown","onPaste","onSelect","isOSX","DraftEditorEditHandler","DraftEditorCompositionHandler","DraftEditorDragHandler","DraftEditorPlaceholder","getDefaultKeyBinding","strlen","DraftStringKey","areEqual","encodeInlineStyleRanges","encodeEntityRanges","substr","createCharacterList","decodeInlineStyleRanges","decodeEntityRanges","DraftTreeAdapter","getRangeBoundingClientRect","DraftEditor","CompositeDraftDecorator","AtomicBlockUtils","convertFromRawToDraftState","convertFromDraftStateToRaw","getVisibleSelectionRect","require$$0","require$$1","_interopRequireDefault","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","_draftJs","_immutable","_react","_configs","_draftConvert","_draftjsUtils","_braftConvert","_content","_base","_color","lengthOptions","defaultValue","BraftEditor","use","MaxLength","emoticons","defaultEmoticons","map","item","require","emotionOptions","closeOnBlur","closeOnSelect","Emoticon","BarftEditorPage","value","onChange","controls","FloatControls","optionsControls","options","showControlsBar","length","showFloatControls","useState","focusState","setFocusState","createElement","className","styles","baseWrapper","controlBarClassName","classnames","controlBar","focus","controlBarStyle","display","contentClassName","editorContent","hasFloatControls","contentStyle","hooks","href","target","indexOf","floatControls","editorState","setEditorState"],"mappings":"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,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB,CAAC,OAAO,EAAE;AAC3C,EAAE,IAAI,aAAa,CAAC,YAAY,KAAK,SAAS,EAAE;AAChD,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,SAAS,SAAS,CAAC,KAAK,EAAE;AACvC,IAAI,OAAOD,SAAO,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACvF,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,qBAAqB,EAAE,SAAS,qBAAqB,CAAC,KAAK,EAAE;AAC/D,IAAI,OAAOA,SAAO,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,CAAC,KAAK,EAAE;AACrC,IAAI,OAAOA,SAAO,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,GAAG;AACH;AACA;AACA;AACA;AACA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AE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE;AACjC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE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"}