{"version":3,"file":"c490287f826cb0808512a230ec432110856c0835-edc9b873c95896bcfc05.js","mappings":"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BACT,aAAgB,WACf,CACD,UAAa,moBACZ,CACD,MAAS,mBACT,aAAgB,WACf,CACD,UAAa,01BACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,2RACZ,CACD,MAAS,kBACT,aAAgB,WACf,CACD,UAAa,oCACZ,CACD,MAAS,mBACT,aAAgB,WACf,CACD,UAAa,2GACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,uKACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,wyBACZ,CACD,MAAS,aACT,aAAgB,WACf,CACD,UAAa,8FACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,sBACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,sHACZ,CACD,MAAS,kBACT,aAAgB,WACf,CACD,UAAa,kLACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,sEACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,sBACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,sGACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,6RACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,0IACZ,CACD,MAAS,QACT,aAAgB,WACf,CACD,UAAa,gCACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,uUACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,yJACZ,CACD,MAAS,mBACT,aAAgB,WACf,CACD,UAAa,2GACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,0QACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,uIACZ,CACD,MAAS,mBACT,aAAgB,WACf,CACD,UAAa,8GACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,+pBACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,0RACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,4OACZ,CACD,MAAS,qBACT,aAAgB,WACf,CACD,UAAa,kOACZ,CACD,MAAS,QACT,aAAgB,WACf,CACD,UAAa,mdACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,4gBACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,0ZACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,sBACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,iYACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,kGACZ,CACD,MAAS,qBACT,aAAgB,WACf,CACD,UAAa,0DACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,6EACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,uRACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,gKACZ,CACD,MAAS,YACT,aAAgB,WACf,CACD,UAAa,gIACZ,CACD,MAAS,qBACT,aAAgB,WACf,CACD,UAAa,y/BACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,07IACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,udACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,gTACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,8EACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,wOACZ,CACD,MAAS,QACT,aAAgB,WACf,CACD,UAAa,sBACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,oEACZ,CACD,MAAS,QACT,aAAgB,WACf,CACD,UAAa,sBACZ,CACD,MAAS,iBACT,aAAgB,WACf,CACD,UAAa,mDACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,WACZ,CACD,MAAS,cACT,aAAgB,WACf,CACD,UAAa,kDACZ,CACD,MAAS,eACT,aAAgB,WACf,CACD,UAAa,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","sources":["webpack://my/../node_modules/@appsparkler/react-hfn-components/dist/react-hfn-components.min.js","webpack://my/../node_modules/@fluentui/date-time-utilities/lib/dateValues/timeConstants.js","webpack://my/../node_modules/@fluentui/date-time-utilities/lib/dateMath/dateMath.js","webpack://my/../node_modules/@fluentui/date-time-utilities/lib/dateValues/dateValues.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/DynamicForm/RichEditor.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/DynamicForm/default.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/DynamicForm/fileinput.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/DynamicForm/index.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/cities.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/utils.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/dist/validations.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/rng.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/v1.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/v35.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/md5.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/v3.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/v4.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/sha1.js","webpack://my/../node_modules/@heartfulnessinstitute/react-hfn-forms/node_modules/uuid/dist/esm-browser/v5.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/version.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useAsync.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useBoolean.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useConstCallback.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useControllableValue.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useForceUpdate.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useId.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useMergedRefs.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useOnEvent.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useRefEffect.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useSetInterval.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useSetTimeout.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useTarget.js","webpack://my/../node_modules/@uifabric/react-hooks/lib/useWarnings.js","webpack://my/../node_modules/@uifabric/utilities/lib/controlled.js","webpack://my/../node_modules/@uifabric/utilities/lib/ie11Detector.js","webpack://my/../node_modules/@uifabric/utilities/lib/initials.js","webpack://my/../node_modules/@uifabric/utilities/lib/overflow.js","webpack://my/../node_modules/@uifabric/utilities/lib/renderFunction/composeRenderFunction.js","webpack://my/../node_modules/@uifabric/utilities/lib/safeRequestAnimationFrame.js","webpack://my/../node_modules/@uifabric/utilities/lib/selection/Selection.js","webpack://my/../node_modules/@uifabric/utilities/lib/selection/Selection.types.js","webpack://my/../node_modules/@uifabric/utilities/lib/string.js","webpack://my/../node_modules/@uifabric/utilities/lib/warn/warnControlledUsage.js","webpack://my/../node_modules/babel-runtime/core-js/array/from.js","webpack://my/../node_modules/babel-runtime/core-js/get-iterator.js","webpack://my/../node_modules/babel-runtime/core-js/is-iterable.js","webpack://my/../node_modules/babel-runtime/core-js/json/stringify.js","webpack://my/../node_modules/babel-runtime/core-js/object/create.js","webpack://my/../node_modules/babel-runtime/core-js/object/define-property.js","webpack://my/../node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack://my/../node_modules/babel-runtime/core-js/object/keys.js","webpack://my/../node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://my/../node_modules/babel-runtime/core-js/promise.js","webpack://my/../node_modules/babel-runtime/core-js/symbol.js","webpack://my/../node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://my/../node_modules/babel-runtime/helpers/asyncToGenerator.js","webpack://my/../node_modules/babel-runtime/helpers/classCallCheck.js","webpack://my/../node_modules/babel-runtime/helpers/createClass.js","webpack://my/../node_modules/babel-runtime/helpers/inherits.js","webpack://my/../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://my/../node_modules/babel-runtime/helpers/slicedToArray.js","webpack://my/../node_modules/babel-runtime/helpers/toConsumableArray.js","webpack://my/../node_modules/babel-runtime/helpers/typeof.js","webpack://my/../node_modules/babel-runtime/regenerator/index.js","webpack://my/../node_modules/draft-js/lib/AtomicBlockUtils.js","webpack://my/../node_modules/draft-js/lib/BlockMapBuilder.js","webpack://my/../node_modules/draft-js/lib/BlockTree.js","webpack://my/../node_modules/draft-js/lib/CharacterMetadata.js","webpack://my/../node_modules/draft-js/lib/CompositeDraftDecorator.js","webpack://my/../node_modules/draft-js/lib/ContentBlock.js","webpack://my/../node_modules/draft-js/lib/ContentBlockNode.js","webpack://my/../node_modules/draft-js/lib/ContentState.js","webpack://my/../node_modules/draft-js/lib/ContentStateInlineStyle.js","webpack://my/../node_modules/draft-js/lib/DOMObserver.js","webpack://my/../node_modules/draft-js/lib/DefaultDraftBlockRenderMap.js","webpack://my/../node_modules/draft-js/lib/DefaultDraftInlineStyle.js","webpack://my/../node_modules/draft-js/lib/Draft.js","webpack://my/../node_modules/draft-js/lib/DraftEditor.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorBlock.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorBlockNode.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorCompositionHandler.js","webpack://my/../node_modules/draft-js/lib/DraftEditorContents-core.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorContents.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorContentsExperimental.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorDecoratedLeaves.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorDragHandler.js","webpack://my/../node_modules/draft-js/lib/DraftEditorEditHandler.js","webpack://my/../node_modules/draft-js/lib/DraftEditorFlushControlled.js","webpack://my/../node_modules/draft-js/lib/DraftEditorLeaf.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorNode.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorPlaceholder.react.js","webpack://my/../node_modules/draft-js/lib/DraftEditorTextNode.react.js","webpack://my/../node_modules/draft-js/lib/DraftEffects.js","webpack://my/../node_modules/draft-js/lib/DraftEntity.js","webpack://my/../node_modules/draft-js/lib/DraftEntityInstance.js","webpack://my/../node_modules/draft-js/lib/DraftEntitySegments.js","webpack://my/../node_modules/draft-js/lib/DraftJsDebugLogging.js","webpack://my/../node_modules/draft-js/lib/DraftModifier.js","webpack://my/../node_modules/draft-js/lib/DraftOffsetKey.js","webpack://my/../node_modules/draft-js/lib/DraftPasteProcessor.js","webpack://my/../node_modules/draft-js/lib/DraftRemovableWord.js","webpack://my/../node_modules/draft-js/lib/DraftStringKey.js","webpack://my/../node_modules/draft-js/lib/DraftTreeAdapter.js","webpack://my/../node_modules/draft-js/lib/DraftTreeInvariants.js","webpack://my/../node_modules/draft-js/lib/EditorBidiService.js","webpack://my/../node_modules/draft-js/lib/EditorState.js","webpack://my/../node_modules/draft-js/lib/KeyBindingUtil.js","webpack://my/../node_modules/draft-js/lib/RichTextEditorUtil.js","webpack://my/../node_modules/draft-js/lib/SecondaryClipboard.js","webpack://my/../node_modules/draft-js/lib/SelectionState.js","webpack://my/../node_modules/draft-js/lib/adjustBlockDepthForContentState.js","webpack://my/../node_modules/draft-js/lib/applyEntityToContentBlock.js","webpack://my/../node_modules/draft-js/lib/applyEntityToContentState.js","webpack://my/../node_modules/draft-js/lib/convertFromDraftStateToRaw.js","webpack://my/../node_modules/draft-js/lib/convertFromHTMLToContentBlocks.js","webpack://my/../node_modules/draft-js/lib/convertFromRawToDraftState.js","webpack://my/../node_modules/draft-js/lib/createCharacterList.js","webpack://my/../node_modules/draft-js/lib/decodeEntityRanges.js","webpack://my/../node_modules/draft-js/lib/decodeInlineStyleRanges.js","webpack://my/../node_modules/draft-js/lib/draftKeyUtils.js","webpack://my/../node_modules/draft-js/lib/editOnBeforeInput.js","webpack://my/../node_modules/draft-js/lib/editOnBlur.js","webpack://my/../node_modules/draft-js/lib/editOnCompositionStart.js","webpack://my/../node_modules/draft-js/lib/editOnCopy.js","webpack://my/../node_modules/draft-js/lib/editOnCut.js","webpack://my/../node_modules/draft-js/lib/editOnDragOver.js","webpack://my/../node_modules/draft-js/lib/editOnDragStart.js","webpack://my/../node_modules/draft-js/lib/editOnFocus.js","webpack://my/../node_modules/draft-js/lib/editOnInput.js","webpack://my/../node_modules/draft-js/lib/editOnKeyDown.js","webpack://my/../node_modules/draft-js/lib/editOnPaste.js","webpack://my/../node_modules/draft-js/lib/editOnSelect.js","webpack://my/../node_modules/draft-js/lib/encodeEntityRanges.js","webpack://my/../node_modules/draft-js/lib/encodeInlineStyleRanges.js","webpack://my/../node_modules/draft-js/lib/expandRangeToStartOfLine.js","webpack://my/../node_modules/draft-js/lib/findAncestorOffsetKey.js","webpack://my/../node_modules/draft-js/lib/findRangesImmutable.js","webpack://my/../node_modules/draft-js/lib/generateRandomKey.js","webpack://my/../node_modules/draft-js/lib/getCharacterRemovalRange.js","webpack://my/../node_modules/draft-js/lib/getContentEditableContainer.js","webpack://my/../node_modules/draft-js/lib/getContentStateFragment.js","webpack://my/../node_modules/draft-js/lib/getCorrectDocumentFromNode.js","webpack://my/../node_modules/draft-js/lib/getDefaultKeyBinding.js","webpack://my/../node_modules/draft-js/lib/getDraftEditorSelection.js","webpack://my/../node_modules/draft-js/lib/getDraftEditorSelectionWithNodes.js","webpack://my/../node_modules/draft-js/lib/getEntityKeyForSelection.js","webpack://my/../node_modules/draft-js/lib/getFragmentFromSelection.js","webpack://my/../node_modules/draft-js/lib/getNextDelimiterBlockKey.js","webpack://my/../node_modules/draft-js/lib/getOwnObjectValues.js","webpack://my/../node_modules/draft-js/lib/getRangeBoundingClientRect.js","webpack://my/../node_modules/draft-js/lib/getRangeClientRects.js","webpack://my/../node_modules/draft-js/lib/getRangesForDraftEntity.js","webpack://my/../node_modules/draft-js/lib/getSafeBodyFromHTML.js","webpack://my/../node_modules/draft-js/lib/getSelectionOffsetKeyForNode.js","webpack://my/../node_modules/draft-js/lib/getTextContentFromFiles.js","webpack://my/../node_modules/draft-js/lib/getUpdatedSelectionState.js","webpack://my/../node_modules/draft-js/lib/getVisibleSelectionRect.js","webpack://my/../node_modules/draft-js/lib/getWindowForNode.js","webpack://my/../node_modules/draft-js/lib/gkx.js","webpack://my/../node_modules/draft-js/lib/insertFragmentIntoContentState.js","webpack://my/../node_modules/draft-js/lib/insertIntoList.js","webpack://my/../node_modules/draft-js/lib/insertTextIntoContentState.js","webpack://my/../node_modules/draft-js/lib/isElement.js","webpack://my/../node_modules/draft-js/lib/isEventHandled.js","webpack://my/../node_modules/draft-js/lib/isHTMLAnchorElement.js","webpack://my/../node_modules/draft-js/lib/isHTMLBRElement.js","webpack://my/../node_modules/draft-js/lib/isHTMLElement.js","webpack://my/../node_modules/draft-js/lib/isHTMLImageElement.js","webpack://my/../node_modules/draft-js/lib/isInstanceOfNode.js","webpack://my/../node_modules/draft-js/lib/isSelectionAtLeafStart.js","webpack://my/../node_modules/draft-js/lib/isSoftNewlineEvent.js","webpack://my/../node_modules/draft-js/lib/keyCommandBackspaceToStartOfLine.js","webpack://my/../node_modules/draft-js/lib/keyCommandBackspaceWord.js","webpack://my/../node_modules/draft-js/lib/keyCommandDeleteWord.js","webpack://my/../node_modules/draft-js/lib/keyCommandInsertNewline.js","webpack://my/../node_modules/draft-js/lib/keyCommandMoveSelectionToEndOfBlock.js","webpack://my/../node_modules/draft-js/lib/keyCommandMoveSelectionToStartOfBlock.js","webpack://my/../node_modules/draft-js/lib/keyCommandPlainBackspace.js","webpack://my/../node_modules/draft-js/lib/keyCommandPlainDelete.js","webpack://my/../node_modules/draft-js/lib/keyCommandTransposeCharacters.js","webpack://my/../node_modules/draft-js/lib/keyCommandUndo.js","webpack://my/../node_modules/draft-js/lib/modifyBlockForContentState.js","webpack://my/../node_modules/draft-js/lib/moveBlockInContentState.js","webpack://my/../node_modules/draft-js/lib/moveSelectionBackward.js","webpack://my/../node_modules/draft-js/lib/moveSelectionForward.js","webpack://my/../node_modules/draft-js/lib/randomizeBlockMapKeys.js","webpack://my/../node_modules/draft-js/lib/removeEntitiesAtEdges.js","webpack://my/../node_modules/draft-js/lib/removeRangeFromContentState.js","webpack://my/../node_modules/draft-js/lib/removeTextWithStrategy.js","webpack://my/../node_modules/draft-js/lib/sanitizeDraftText.js","webpack://my/../node_modules/draft-js/lib/setDraftEditorSelection.js","webpack://my/../node_modules/draft-js/lib/splitBlockInContentState.js","webpack://my/../node_modules/draft-js/lib/splitTextIntoTextBlocks.js","webpack://my/../node_modules/draft-js/lib/uuid.js","webpack://my/../node_modules/draft-js/node_modules/immutable/dist/immutable.js","webpack://my/../node_modules/draftjs-to-html/lib/draftjs-to-html.js","webpack://my/../node_modules/fbjs/lib/DataTransfer.js","webpack://my/../node_modules/fbjs/lib/Keys.js","webpack://my/../node_modules/fbjs/lib/PhotosMimeType.js","webpack://my/../node_modules/fbjs/lib/Scroll.js","webpack://my/../node_modules/fbjs/lib/Style.js","webpack://my/../node_modules/fbjs/lib/TokenizeUtil.js","webpack://my/../node_modules/fbjs/lib/URI.js","webpack://my/../node_modules/fbjs/lib/UnicodeBidi.js","webpack://my/../node_modules/fbjs/lib/UnicodeBidiDirection.js","webpack://my/../node_modules/fbjs/lib/UnicodeBidiService.js","webpack://my/../node_modules/fbjs/lib/UnicodeUtils.js","webpack://my/../node_modules/fbjs/lib/UserAgent.js","webpack://my/../node_modules/fbjs/lib/UserAgentData.js","webpack://my/../node_modules/fbjs/lib/VersionRange.js","webpack://my/../node_modules/fbjs/lib/camelize.js","webpack://my/../node_modules/fbjs/lib/containsNode.js","webpack://my/../node_modules/fbjs/lib/createArrayFromMixed.js","webpack://my/../node_modules/fbjs/lib/cx.js","webpack://my/../node_modules/fbjs/lib/emptyFunction.js","webpack://my/../node_modules/fbjs/lib/getActiveElement.js","webpack://my/../node_modules/fbjs/lib/getDocumentScrollElement.js","webpack://my/../node_modules/fbjs/lib/getElementPosition.js","webpack://my/../node_modules/fbjs/lib/getElementRect.js","webpack://my/../node_modules/fbjs/lib/getScrollPosition.js","webpack://my/../node_modules/fbjs/lib/getStyleProperty.js","webpack://my/../node_modules/fbjs/lib/getUnboundedScrollPosition.js","webpack://my/../node_modules/fbjs/lib/getViewportDimensions.js","webpack://my/../node_modules/fbjs/lib/hyphenate.js","webpack://my/../node_modules/fbjs/lib/invariant.js","webpack://my/../node_modules/fbjs/lib/isNode.js","webpack://my/../node_modules/fbjs/lib/isTextNode.js","webpack://my/../node_modules/fbjs/lib/joinClasses.js","webpack://my/../node_modules/fbjs/lib/mapObject.js","webpack://my/../node_modules/fbjs/lib/memoizeStringOnly.js","webpack://my/../node_modules/fbjs/lib/nullthrows.js","webpack://my/../node_modules/fbjs/lib/setImmediate.js","webpack://my/../node_modules/fbjs/lib/warning.js","webpack://my/../node_modules/html-to-draftjs/dist/html-to-draftjs.js","webpack://my/../node_modules/immutable/dist/immutable.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/Button.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/Button.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/MessageBarButton/MessageBarButton.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/MessageBarButton/MessageBarButton.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroup.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ChoiceGroup/ChoiceGroup.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ComboBox/ComboBox.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ComboBox/ComboBox.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ComboBox/ComboBox.classNames.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ComboBox/VirtualizedComboBox.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/DatePicker/DatePicker.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/DatePicker/DatePicker.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/DatePicker/DatePicker.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Dropdown/Dropdown.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Dropdown/Dropdown.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Dropdown/Dropdown.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/SuggestionsItem.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/SuggestionsController.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.scss.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/BasePicker.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/PeoplePicker/PeoplePicker.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItem.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItem.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItemSuggestion.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagItemSuggestion.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/TagPicker/TagPicker.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ProgressIndicator/ProgressIndicator.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ProgressIndicator/ProgressIndicator.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/ProgressIndicator/ProgressIndicator.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Text/Text.view.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Text/Text.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Text/Text.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/TextField/MaskedTextField/inputMask.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/TextField/MaskedTextField/MaskedTextField.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Toggle/Toggle.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Toggle/Toggle.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Toggle/Toggle.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Announced/Announced.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Announced/Announced.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Announced/Announced.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Autofill/Autofill.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/CommandBarButton/CommandBarButton.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/CommandBarButton/CommandBarButton.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/CommandButton/CommandButton.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/CompoundButton/CompoundButton.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/CompoundButton/CompoundButton.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/IconButton/IconButton.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/IconButton/IconButton.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Button/PrimaryButton/PrimaryButton.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Calendar/Calendar.scss.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Calendar/CalendarDay.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Calendar/CalendarYear.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Calendar/CalendarMonth.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Calendar/Calendar.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Checkbox/Checkbox.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Checkbox/Checkbox.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Checkbox/Checkbox.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Label/Label.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Label/Label.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Label/Label.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/List/List.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/List/List.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/MessageBar/MessageBar.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/utilities/DraggableZone/DraggableZone.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/utilities/DraggableZone/DraggableZone.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Modal/Modal.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Modal/Modal.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Modal/Modal.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Overlay/Overlay.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Panel/Panel.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/Persona.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaPresence/PersonaPresence.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaCoin/PersonaCoin.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaConsts.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Persona/PersonaInitialsColor.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/TextField/TextField.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/TextField/TextField.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/TextField/TextField.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/Tooltip.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.base.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.styles.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/Tooltip/TooltipHost.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/Suggestions.scss.js","webpack://my/../node_modules/office-ui-fabric-react/lib/components/pickers/Suggestions/SuggestionsItem.js","webpack://my/../node_modules/office-ui-fabric-react/lib/utilities/selectableOption/SelectableOption.js","webpack://my/../node_modules/office-ui-fabric-react/lib/utilities/selectableOption/SelectableOption.types.js","webpack://my/../node_modules/office-ui-fabric-react/lib/utilities/selection/SelectionZone.js","webpack://my/../node_modules/setimmediate/setImmediate.js","webpack://my/../node_modules/ua-parser-js/src/ua-parser.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/get-iterator.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/is-iterable.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/json/stringify.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/object/keys.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/promise.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-instance.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_for-of.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_invoke.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_microtask.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_new-promise-capability.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_perform.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_promise-resolve.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine-all.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-species.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_species-constructor.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_task.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_user-agent.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/core.is-iterable.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.keys.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.promise.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.promise.finally.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.promise.try.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://my/../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://my/../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://my/../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","webpack://my/../node_modules/core-js/modules/es.array.flat-map.js","webpack://my/../node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://my/../node_modules/lodash/_baseXor.js","webpack://my/../node_modules/lodash/flattenDeep.js","webpack://my/../node_modules/lodash/uniqueId.js","webpack://my/../node_modules/lodash/xor.js"],"sourcesContent":["!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t(require(\"react\")) : \"function\" == typeof define && define.amd ? define([\"react\"], t) : \"object\" == typeof exports ? exports.ReactHFNComponents = t(require(\"react\")) : e.ReactHFNComponents = t(e.React);\n}(window, function (e) {\n return function (e) {\n var t = {};\n\n function r(n) {\n if (t[n]) return t[n].exports;\n var o = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports;\n }\n\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) {\n r.d(n, o, function (t) {\n return e[t];\n }.bind(null, o));\n }\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 12);\n }([function (t, r) {\n t.exports = e;\n }, function (e, t, r) {\n e.exports = r(6)();\n }, function (e, t, r) {\n e.exports = r(8);\n }, function (e, t, r) {\n var n = r(9),\n o = r(10),\n a = r(11);\n\n e.exports = function (e, t) {\n return n(e) || o(e, t) || a();\n };\n }, function (e, t) {\n e.exports = function (e, t, r) {\n return t in e ? Object.defineProperty(e, t, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = r, e;\n };\n }, function (e, t) {\n function r(e, t, r, n, o, a, i) {\n try {\n var s = e[a](i),\n c = s.value;\n } catch (e) {\n return void r(e);\n }\n\n s.done ? t(c) : Promise.resolve(c).then(n, o);\n }\n\n e.exports = function (e) {\n return function () {\n var t = this,\n n = arguments;\n return new Promise(function (o, a) {\n var i = e.apply(t, n);\n\n function s(e) {\n r(i, o, a, s, c, \"next\", e);\n }\n\n function c(e) {\n r(i, o, a, s, c, \"throw\", e);\n }\n\n s(void 0);\n });\n };\n };\n }, function (e, t, r) {\n \"use strict\";\n\n var n = r(7);\n\n function o() {}\n\n function a() {}\n\n a.resetWarningCache = o, e.exports = function () {\n function e(e, t, r, o, a, i) {\n if (i !== n) {\n var s = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw s.name = \"Invariant Violation\", s;\n }\n }\n\n function t() {\n return e;\n }\n\n e.isRequired = e;\n var r = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: a,\n resetWarningCache: o\n };\n return r.PropTypes = r, r;\n };\n }, function (e, t, r) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }, function (e, t, r) {\n var n = function (e) {\n \"use strict\";\n\n var t = Object.prototype,\n r = t.hasOwnProperty,\n n = \"function\" == typeof Symbol ? Symbol : {},\n o = n.iterator || \"@@iterator\",\n a = n.asyncIterator || \"@@asyncIterator\",\n i = n.toStringTag || \"@@toStringTag\";\n\n function s(e, t, r, n) {\n var o = t && t.prototype instanceof l ? t : l,\n a = Object.create(o.prototype),\n i = new O(n || []);\n return a._invoke = function (e, t, r) {\n var n = \"suspendedStart\";\n return function (o, a) {\n if (\"executing\" === n) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === n) {\n if (\"throw\" === o) throw a;\n return j();\n }\n\n for (r.method = o, r.arg = a;;) {\n var i = r.delegate;\n\n if (i) {\n var s = b(i, r);\n\n if (s) {\n if (s === u) continue;\n return s;\n }\n }\n\n if (\"next\" === r.method) r.sent = r._sent = r.arg;else if (\"throw\" === r.method) {\n if (\"suspendedStart\" === n) throw n = \"completed\", r.arg;\n r.dispatchException(r.arg);\n } else \"return\" === r.method && r.abrupt(\"return\", r.arg);\n n = \"executing\";\n var l = c(e, t, r);\n\n if (\"normal\" === l.type) {\n if (n = r.done ? \"completed\" : \"suspendedYield\", l.arg === u) continue;\n return {\n value: l.arg,\n done: r.done\n };\n }\n\n \"throw\" === l.type && (n = \"completed\", r.method = \"throw\", r.arg = l.arg);\n }\n };\n }(e, r, i), a;\n }\n\n function c(e, t, r) {\n try {\n return {\n type: \"normal\",\n arg: e.call(t, r)\n };\n } catch (e) {\n return {\n type: \"throw\",\n arg: e\n };\n }\n }\n\n e.wrap = s;\n var u = {};\n\n function l() {}\n\n function p() {}\n\n function f() {}\n\n var d = {};\n\n d[o] = function () {\n return this;\n };\n\n var y = Object.getPrototypeOf,\n h = y && y(y(E([])));\n h && h !== t && r.call(h, o) && (d = h);\n var m = f.prototype = l.prototype = Object.create(d);\n\n function g(e) {\n [\"next\", \"throw\", \"return\"].forEach(function (t) {\n e[t] = function (e) {\n return this._invoke(t, e);\n };\n });\n }\n\n function v(e) {\n var t;\n\n this._invoke = function (n, o) {\n function a() {\n return new Promise(function (t, a) {\n !function t(n, o, a, i) {\n var s = c(e[n], e, o);\n\n if (\"throw\" !== s.type) {\n var u = s.arg,\n l = u.value;\n return l && \"object\" == typeof l && r.call(l, \"__await\") ? Promise.resolve(l.__await).then(function (e) {\n t(\"next\", e, a, i);\n }, function (e) {\n t(\"throw\", e, a, i);\n }) : Promise.resolve(l).then(function (e) {\n u.value = e, a(u);\n }, function (e) {\n return t(\"throw\", e, a, i);\n });\n }\n\n i(s.arg);\n }(n, o, t, a);\n });\n }\n\n return t = t ? t.then(a, a) : a();\n };\n }\n\n function b(e, t) {\n var r = e.iterator[t.method];\n\n if (void 0 === r) {\n if (t.delegate = null, \"throw\" === t.method) {\n if (e.iterator.return && (t.method = \"return\", t.arg = void 0, b(e, t), \"throw\" === t.method)) return u;\n t.method = \"throw\", t.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return u;\n }\n\n var n = c(r, e.iterator, t.arg);\n if (\"throw\" === n.type) return t.method = \"throw\", t.arg = n.arg, t.delegate = null, u;\n var o = n.arg;\n return o ? o.done ? (t[e.resultName] = o.value, t.next = e.nextLoc, \"return\" !== t.method && (t.method = \"next\", t.arg = void 0), t.delegate = null, u) : o : (t.method = \"throw\", t.arg = new TypeError(\"iterator result is not an object\"), t.delegate = null, u);\n }\n\n function w(e) {\n var t = {\n tryLoc: e[0]\n };\n 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t);\n }\n\n function x(e) {\n var t = e.completion || {};\n t.type = \"normal\", delete t.arg, e.completion = t;\n }\n\n function O(e) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], e.forEach(w, this), this.reset(!0);\n }\n\n function E(e) {\n if (e) {\n var t = e[o];\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n\n if (!isNaN(e.length)) {\n var n = -1,\n a = function t() {\n for (; ++n < e.length;) {\n if (r.call(e, n)) return t.value = e[n], t.done = !1, t;\n }\n\n return t.value = void 0, t.done = !0, t;\n };\n\n return a.next = a;\n }\n }\n\n return {\n next: j\n };\n }\n\n function j() {\n return {\n value: void 0,\n done: !0\n };\n }\n\n return p.prototype = m.constructor = f, f.constructor = p, f[i] = p.displayName = \"GeneratorFunction\", e.isGeneratorFunction = function (e) {\n var t = \"function\" == typeof e && e.constructor;\n return !!t && (t === p || \"GeneratorFunction\" === (t.displayName || t.name));\n }, e.mark = function (e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, i in e || (e[i] = \"GeneratorFunction\")), e.prototype = Object.create(m), e;\n }, e.awrap = function (e) {\n return {\n __await: e\n };\n }, g(v.prototype), v.prototype[a] = function () {\n return this;\n }, e.AsyncIterator = v, e.async = function (t, r, n, o) {\n var a = new v(s(t, r, n, o));\n return e.isGeneratorFunction(r) ? a : a.next().then(function (e) {\n return e.done ? e.value : a.next();\n });\n }, g(m), m[i] = \"Generator\", m[o] = function () {\n return this;\n }, m.toString = function () {\n return \"[object Generator]\";\n }, e.keys = function (e) {\n var t = [];\n\n for (var r in e) {\n t.push(r);\n }\n\n return t.reverse(), function r() {\n for (; t.length;) {\n var n = t.pop();\n if (n in e) return r.value = n, r.done = !1, r;\n }\n\n return r.done = !0, r;\n };\n }, e.values = E, O.prototype = {\n constructor: O,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = void 0, this.tryEntries.forEach(x), !e) for (var t in this) {\n \"t\" === t.charAt(0) && r.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0);\n }\n },\n stop: function stop() {\n this.done = !0;\n var e = this.tryEntries[0].completion;\n if (\"throw\" === e.type) throw e.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var t = this;\n\n function n(r, n) {\n return i.type = \"throw\", i.arg = e, t.next = r, n && (t.method = \"next\", t.arg = void 0), !!n;\n }\n\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var a = this.tryEntries[o],\n i = a.completion;\n if (\"root\" === a.tryLoc) return n(\"end\");\n\n if (a.tryLoc <= this.prev) {\n var s = r.call(a, \"catchLoc\"),\n c = r.call(a, \"finallyLoc\");\n\n if (s && c) {\n if (this.prev < a.catchLoc) return n(a.catchLoc, !0);\n if (this.prev < a.finallyLoc) return n(a.finallyLoc);\n } else if (s) {\n if (this.prev < a.catchLoc) return n(a.catchLoc, !0);\n } else {\n if (!c) throw new Error(\"try statement without catch or finally\");\n if (this.prev < a.finallyLoc) return n(a.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(e, t) {\n for (var n = this.tryEntries.length - 1; n >= 0; --n) {\n var o = this.tryEntries[n];\n\n if (o.tryLoc <= this.prev && r.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var a = o;\n break;\n }\n }\n\n a && (\"break\" === e || \"continue\" === e) && a.tryLoc <= t && t <= a.finallyLoc && (a = null);\n var i = a ? a.completion : {};\n return i.type = e, i.arg = t, a ? (this.method = \"next\", this.next = a.finallyLoc, u) : this.complete(i);\n },\n complete: function complete(e, t) {\n if (\"throw\" === e.type) throw e.arg;\n return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), u;\n },\n finish: function finish(e) {\n for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n var r = this.tryEntries[t];\n if (r.finallyLoc === e) return this.complete(r.completion, r.afterLoc), x(r), u;\n }\n },\n catch: function _catch(e) {\n for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n var r = this.tryEntries[t];\n\n if (r.tryLoc === e) {\n var n = r.completion;\n\n if (\"throw\" === n.type) {\n var o = n.arg;\n x(r);\n }\n\n return o;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, t, r) {\n return this.delegate = {\n iterator: E(e),\n resultName: t,\n nextLoc: r\n }, \"next\" === this.method && (this.arg = void 0), u;\n }\n }, e;\n }(e.exports);\n\n try {\n regeneratorRuntime = n;\n } catch (e) {\n Function(\"r\", \"regeneratorRuntime = r\")(n);\n }\n }, function (e, t) {\n e.exports = function (e) {\n if (Array.isArray(e)) return e;\n };\n }, function (e, t) {\n e.exports = function (e, t) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) {\n var r = [],\n n = !0,\n o = !1,\n a = void 0;\n\n try {\n for (var i, s = e[Symbol.iterator](); !(n = (i = s.next()).done) && (r.push(i.value), !t || r.length !== t); n = !0) {\n ;\n }\n } catch (e) {\n o = !0, a = e;\n } finally {\n try {\n n || null == s.return || s.return();\n } finally {\n if (o) throw a;\n }\n }\n\n return r;\n }\n };\n }, function (e, t) {\n e.exports = function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n };\n }, function (e, t, r) {\n \"use strict\";\n\n r.r(t);\n\n var n = r(0),\n o = r.n(n),\n a = r(1),\n i = r.n(a),\n s = function s(e) {\n var t = e.type,\n r = e.msg;\n return o.a.createElement(\"div\", {\n className: \"alert alert-\".concat(t)\n }, r);\n };\n\n s.defaultProps = {\n type: \"primary\"\n }, s.propTypes = {\n type: i.a.string,\n msg: i.a.string.isRequired\n };\n var c = s,\n u = r(2),\n l = r.n(u),\n p = r(4),\n f = r.n(p),\n d = r(5),\n y = r.n(d);\n\n function h(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n function m() {\n return (m = y()(l.a.mark(function e(t) {\n var r, n, o;\n return l.a.wrap(function (e) {\n for (;;) {\n switch (e.prev = e.next) {\n case 0:\n return r = t.props, e.prev = 1, r.setIsVerifying(!0), e.next = 5, r.storageRef.getDownloadURL();\n\n case 5:\n return n = e.sent, e.next = 8, r.storageRef.getMetadata();\n\n case 8:\n o = e.sent, r.setIsVerifying(!1), r.setFile({\n fileName: o.customMetadata.fileName,\n bytes: o.size,\n fullPath: o.fullPath,\n contentType: o.contentType,\n downloadURL: n\n }), e.next = 16;\n break;\n\n case 13:\n e.prev = 13, e.t0 = e.catch(1), r.setIsVerifying(!1);\n\n case 16:\n case \"end\":\n return e.stop();\n }\n }\n }, e, null, [[1, 13]]);\n }))).apply(this, arguments);\n }\n\n function g(e) {\n !function (e) {\n m.apply(this, arguments);\n }({\n props: e.props\n });\n }\n\n var v = function v(e) {\n return o.a.useEffect(g.bind(null, {\n props: e\n }), []), function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? h(Object(r), !0).forEach(function (t) {\n f()(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : h(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }({}, e);\n };\n\n function b(e) {\n var t,\n r,\n n = v(e),\n a = n.isVerifying,\n i = n.file;\n return o.a.createElement(o.a.Fragment, null, (null === (t = e.components) || void 0 === t ? void 0 : t.fileLink) && o.a.createElement(e.components.fileLink, {\n isVerifying: a,\n file: i\n }), !(null === (r = e.components) || void 0 === r ? void 0 : r.fileLink) && o.a.createElement(\"div\", {\n className: \"FileLink\"\n }, a && o.a.createElement(c, {\n type: \"info\",\n msg: e.isVerifyingMessage\n }), (null == i ? void 0 : i.downloadURL) && (null == i ? void 0 : i.fileName) && o.a.createElement(\"a\", {\n href: i.downloadURL\n }, i.fileName)));\n }\n\n b.propTypes = {\n isVerifyingMessage: i.a.string,\n storageRef: i.a.object.isRequired,\n file: i.a.object,\n components: i.a.object\n }, b.defaultProps = {\n isVerifyingMessage: \"Verifying...\"\n };\n\n var w = b,\n x = function x(e) {\n var t = e.msg;\n return o.a.createElement(\"div\", {\n className: \"help-block\"\n }, t);\n };\n\n x.propTypes = {\n msg: i.a.string.isRequired\n };\n\n var O = x,\n E = function E(e) {\n var t = e.progress,\n r = e.striped,\n n = e.type;\n return o.a.createElement(\"div\", {\n className: \"progress \".concat(r && \"progress-striped\")\n }, o.a.createElement(\"div\", {\n className: \"progress-bar \".concat(n && \"progress-bar-\" + n),\n role: \"progressbar\",\n \"aria-valuenow\": t,\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n style: {\n width: \"\".concat(t, \"%\")\n }\n }, o.a.createElement(\"span\", {\n className: \"sr-only\"\n }, t, \"% Complete\")));\n };\n\n E.propTypes = {\n progress: i.a.number.isRequired,\n striped: i.a.bool,\n type: i.a.string\n };\n var j = E,\n P = r(3),\n L = r.n(P);\n\n function T(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n function S(e, t) {\n e.props;\n var r = e.states.setProgress,\n n = t.bytesTransferred,\n o = t.totalBytes;\n 0 !== o && r(n / o * 100);\n }\n\n function _(e, t) {\n e.props;\n var r = e.states;\n r.setUploadError(t), r.setIsUploading(!1);\n }\n\n function k(e) {\n return R.apply(this, arguments);\n }\n\n function R() {\n return (R = y()(l.a.mark(function e(t) {\n var r, n, o, a, i, s;\n return l.a.wrap(function (e) {\n for (;;) {\n switch (e.prev = e.next) {\n case 0:\n return r = t.props, n = t.states, t.uploadTask, o = t.file, e.next = 3, Promise.resolve(r.storageRef.getDownloadURL());\n\n case 3:\n return a = e.sent, n.setIsUploading(!1), e.next = 7, r.storageRef.getMetadata();\n\n case 7:\n i = e.sent, s = {\n fileName: i.customMetadata.fileName,\n bytes: o.size,\n fullPath: i.fullPath,\n contentType: i.contentType,\n downloadURL: a\n }, r.onUpload && r.onUpload(s), n.setProgress(100), setTimeout(function () {\n n.setProgress(0), n.setUploaded(!0), r.setFile(s);\n }, 800);\n\n case 12:\n case \"end\":\n return e.stop();\n }\n }\n }, e);\n }))).apply(this, arguments);\n }\n\n function I(e, t) {\n return N.apply(this, arguments);\n }\n\n function N() {\n return (N = y()(l.a.mark(function e(t, r) {\n var n, o, a, i;\n return l.a.wrap(function (e) {\n for (;;) {\n switch (e.prev = e.next) {\n case 0:\n n = t.props, o = t.states, a = r.target.files.item(0), o.setIsUploading(!0), o.setProgress(20), (i = n.storageRef.put(a, {\n customMetadata: {\n fileName: a.name\n }\n })).on(\"state_changed\", S.bind(null, {\n props: n,\n states: o\n }), _.bind(null, {\n props: n,\n states: o\n }), k.bind(null, {\n props: n,\n states: o,\n uploadTask: i,\n file: a\n }));\n\n case 6:\n case \"end\":\n return e.stop();\n }\n }\n }, e);\n }))).apply(this, arguments);\n }\n\n function U(e) {\n e.props;\n e.states.setType(\"file\");\n }\n\n function F(e, t) {\n var r,\n n = e.props,\n o = e.states,\n a = n.maxBytes,\n i = o.setMaxBytesExceeded,\n s = t.target.files.item(0);\n return !!s && (s.size > a ? (i(!0), (r = {\n props: n,\n states: o\n }).props, (0, r.states.setType)(\"\"), !1) : (i(null), !0));\n }\n\n function B(e, t) {\n return D.apply(this, arguments);\n }\n\n function D() {\n return (D = y()(l.a.mark(function e(t, r) {\n var n, o;\n return l.a.wrap(function (e) {\n for (;;) {\n switch (e.prev = e.next) {\n case 0:\n if (n = t.props, o = t.states, r.preventDefault(), r.stopPropagation(), o.setMaxBytesExceeded(!1), o.setIsUploading(!1), o.setUploaded(!1), !F({\n props: n,\n states: o\n }, r)) {\n e.next = 10;\n break;\n }\n\n return e.next = 10, I({\n props: n,\n states: o\n }, r);\n\n case 10:\n case \"end\":\n return e.stop();\n }\n }\n }, e);\n }))).apply(this, arguments);\n }\n\n var M = function M(e) {\n var t = o.a.useState(!1),\n r = L()(t, 2),\n n = r[0],\n a = r[1],\n i = o.a.useState(!1),\n s = L()(i, 2),\n c = s[0],\n u = s[1],\n l = o.a.useState(0),\n p = L()(l, 2),\n d = p[0],\n y = p[1],\n h = o.a.useState(\"file\"),\n m = L()(h, 2),\n g = m[0],\n v = m[1],\n b = o.a.useState(null),\n w = L()(b, 2),\n x = w[0],\n O = w[1],\n E = o.a.useState(!1),\n j = L()(E, 2),\n P = j[0],\n S = {\n maxBytesExceeded: n,\n setMaxBytesExceeded: a,\n type: g,\n setType: v,\n isUploading: c,\n setIsUploading: u,\n progress: d,\n setProgress: y,\n uploadError: x,\n setUploadError: O,\n uploaded: P,\n setUploaded: j[1]\n };\n return o.a.useEffect(U.bind(null, {\n props: e,\n states: S\n }), [g]), function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? T(Object(r), !0).forEach(function (t) {\n f()(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : T(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }({}, e, {\n progress: d,\n maxBytesExceeded: n,\n isUploading: c,\n type: g,\n uploaded: P,\n handleInput: B.bind(null, {\n props: e,\n states: S\n })\n });\n },\n q = function q(e) {\n var t = M(e),\n r = t.components,\n n = t.type,\n a = t.name,\n i = t.label,\n s = t.maxBytes,\n u = t.maxBytesError,\n l = t.progress,\n p = t.handleInput,\n f = t.maxBytesExceeded,\n d = t.isUploading,\n y = t.file,\n h = t.disabled,\n m = t.required,\n g = t.uploaded,\n b = t.isVerifying;\n return v(e), o.a.createElement(o.a.Fragment, null, (null == r ? void 0 : r.fileInput) && o.a.createElement(o.a.Fragment, null, o.a.createElement(r.fileInput, {\n type: n,\n name: a,\n label: i,\n maxBytes: s,\n maxBytesError: u,\n progress: l,\n handleInput: p,\n maxBytesExceeded: f,\n isUploading: d,\n uploaded: g,\n isVerifying: b,\n file: y,\n required: m\n })), !(null == r ? void 0 : r.fileInput) && o.a.createElement(\"div\", {\n className: \"form-group\"\n }, o.a.createElement(w, e), o.a.createElement(\"br\", null), o.a.createElement(\"label\", null, i), o.a.createElement(\"input\", {\n type: n,\n name: a,\n onInput: p,\n disabled: h,\n required: m\n }), o.a.createElement(\"br\", null), d && !g && o.a.createElement(j, {\n type: \"info\",\n striped: !0,\n progress: l\n }), g && o.a.createElement(c, {\n type: \"info\",\n msg: \"Uploaded...\"\n }), o.a.createElement(O, {\n msg: \"\".concat(s.toFixed(), \" kB\")\n }), f && o.a.createElement(c, {\n type: \"danger\",\n msg: \"\".concat(u)\n })));\n };\n\n q.propTypes = {\n components: i.a.object,\n label: i.a.string,\n name: i.a.string,\n type: i.a.string,\n disabled: i.a.bool,\n required: i.a.bool,\n maxBytes: i.a.number,\n maxBytesError: i.a.string,\n file: i.a.object,\n setFile: i.a.func,\n storageRef: i.a.object.isRequired\n }, q.defaultProps = {\n maxBytes: 1048576,\n name: \"file\",\n type: \"file\",\n disabled: !1,\n required: !1\n };\n\n var V = q,\n G = function G(e) {\n return o.a.createElement(\"div\", null, o.a.createElement(V, e));\n };\n\n function C(e, t) {\n var r = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n t && (n = n.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), r.push.apply(r, n);\n }\n\n return r;\n }\n\n var A = function A(e) {\n var t = o.a.useState(null),\n r = L()(t, 2),\n n = r[0],\n a = r[1],\n i = o.a.useState(!1),\n s = L()(i, 2);\n return function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = null != arguments[t] ? arguments[t] : {};\n t % 2 ? C(Object(r), !0).forEach(function (t) {\n f()(e, t, r[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : C(Object(r)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));\n });\n }\n\n return e;\n }({}, e, {\n file: n,\n setFile: a,\n isVerifying: s[0],\n setIsVerifying: s[1]\n });\n },\n z = function z(e) {\n var t = A(e);\n return o.a.createElement(\"div\", null, e.readOnly && o.a.createElement(w, t), !e.readOnly && o.a.createElement(G, t));\n };\n\n z.propTypes = {\n readOnly: i.a.bool.isRequired\n };\n var H = z;\n r.d(t, \"FirebaseFileInput\", function () {\n return H;\n }), r.d(t, \"FirebaseFileLink\", function () {\n return w;\n });\n }]);\n});","/**\n * Common constants and methods\n */\nvar TimeConstants = {\n MillisecondsInOneDay: 86400000,\n MillisecondsIn1Sec: 1000,\n MillisecondsIn1Min: 60000,\n MillisecondsIn30Mins: 1800000,\n MillisecondsIn1Hour: 3600000,\n MinutesInOneDay: 1440,\n MinutesInOneHour: 60,\n DaysInOneWeek: 7,\n MonthInOneYear: 12\n};\nexport default TimeConstants;","import { DayOfWeek, MonthOfYear, FirstWeekOfYear, DateRangeType } from '../dateValues/dateValues';\nimport TimeConstants from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param date - The origin date\n * @param days - The number of days to offset. 'days' can be negative.\n * @returns A new Date object offset from the origin date by the given number of days\n */\n\nexport function addDays(date, days) {\n var result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of weeks.\n * @param date - The origin date\n * @param weeks - The number of weeks to offset. 'weeks' can be negative.\n * @returns A new Date object offset from the origin date by the given number of weeks\n */\n\nexport function addWeeks(date, weeks) {\n return addDays(date, weeks * TimeConstants.DaysInOneWeek);\n}\n/**\n * Returns a date offset from the given date by the specified number of months.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param months - The number of months to offset. 'months' can be negative.\n * @returns A new Date object offset from the origin date by the given number of months\n */\n\nexport function addMonths(date, months) {\n var result = new Date(date.getTime());\n var newMonth = result.getMonth() + months;\n result.setMonth(newMonth); // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n\n if (result.getMonth() !== (newMonth % TimeConstants.MonthInOneYear + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of years.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param years - The number of years to offset. 'years' can be negative.\n * @returns A new Date object offset from the origin date by the given number of years\n */\n\nexport function addYears(date, years) {\n var result = new Date(date.getTime());\n result.setFullYear(date.getFullYear() + years); // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n\n if (result.getMonth() !== (date.getMonth() % TimeConstants.MonthInOneYear + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n\n return result;\n}\n/**\n * Returns a date that is the first day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the month.\n */\n\nexport function getMonthStart(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the month.\n */\n\nexport function getMonthEnd(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the first day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the year.\n */\n\nexport function getYearStart(date) {\n return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the year.\n */\n\nexport function getYearEnd(date) {\n return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is a copy of the given date, aside from the month changing to the given month.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param month - The 0-based index of the month to set on the date.\n * @returns A new Date object with the given month set.\n */\n\nexport function setMonth(date, month) {\n return addMonths(date, month - date.getMonth());\n}\n/**\n * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.\n * @returns True if the two dates represent the same date (regardless of time-of-day), false otherwise.\n */\n\nexport function compareDates(date1, date2) {\n if (!date1 && !date2) {\n return true;\n } else if (!date1 || !date2) {\n return false;\n } else {\n return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();\n }\n}\n/**\n * Compare the date parts of two dates\n * @param date1 - The first date to compare\n * @param date2 - The second date to compare\n * @returns A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value\n * if date1 is later than date2.\n */\n\nexport function compareDatePart(date1, date2) {\n return getDatePartHashValue(date1) - getDatePartHashValue(date2);\n}\n/**\n * Gets the date range array including the specified date. The date range array is calculated as the list\n * of dates accounting for the specified first day of the week and date range type.\n * @param date - The input date\n * @param dateRangeType - The desired date range type, i.e., day, week, month, etc.\n * @param firstDayOfWeek - The first day of the week.\n * @param workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.\n * @param daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day\n * for multiday view. Defaults to 1\n * @returns An array of dates representing the date range containing the specified date.\n */\n\nexport function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {\n if (daysToSelectInDayView === void 0) {\n daysToSelectInDayView = 1;\n }\n\n var datesArray = new Array();\n var startDate;\n var endDate = null;\n\n if (!workWeekDays) {\n workWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\n }\n\n daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);\n\n switch (dateRangeType) {\n case DateRangeType.Day:\n startDate = getDatePart(date);\n endDate = addDays(startDate, daysToSelectInDayView);\n break;\n\n case DateRangeType.Week:\n case DateRangeType.WorkWeek:\n startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);\n endDate = addDays(startDate, TimeConstants.DaysInOneWeek);\n break;\n\n case DateRangeType.Month:\n startDate = new Date(date.getFullYear(), date.getMonth(), 1);\n endDate = addMonths(startDate, 1);\n break;\n\n default:\n throw new Error('Unexpected object: ' + dateRangeType);\n } // Populate the dates array with the dates in range\n\n\n var nextDate = startDate;\n\n do {\n if (dateRangeType !== DateRangeType.WorkWeek) {\n // push all days not in work week view\n datesArray.push(nextDate);\n } else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {\n datesArray.push(nextDate);\n }\n\n nextDate = addDays(nextDate, 1);\n } while (!compareDates(nextDate, endDate));\n\n return datesArray;\n}\n/**\n * Checks whether the specified date is in the given date range.\n * @param date - The origin date\n * @param dateRange - An array of dates to do the lookup on\n * @returns True if the date matches one of the dates in the specified array, false otherwise.\n */\n\nexport function isInDateRangeArray(date, dateRange) {\n for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {\n var dateInRange = dateRange_1[_i];\n\n if (compareDates(date, dateInRange)) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param navigatedDate - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The weeks number array for the current month.\n */\n\nexport function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {\n var selectedYear = navigatedDate.getFullYear();\n var selectedMonth = navigatedDate.getMonth();\n var dayOfMonth = 1;\n var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);\n var endOfFirstWeek = dayOfMonth + (firstDayOfWeek + TimeConstants.DaysInOneWeek - 1) - adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());\n var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);\n dayOfMonth = endOfWeekRange.getDate();\n var weeksArray = [];\n\n for (var i = 0; i < weeksInMonth; i++) {\n // Get week number for end of week\n weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));\n dayOfMonth += TimeConstants.DaysInOneWeek;\n endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);\n }\n\n return weeksArray;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param date - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The week's number in the year.\n */\n\nexport function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {\n // First four-day week of the year - minumum days count\n var fourDayWeek = 4;\n\n switch (firstWeekOfYear) {\n case FirstWeekOfYear.FirstFullWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, TimeConstants.DaysInOneWeek);\n\n case FirstWeekOfYear.FirstFourDayWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);\n\n default:\n return getFirstDayWeekOfYear(date, firstDayOfWeek);\n }\n}\n/**\n * Gets the date for the first day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\n\nexport function getStartDateOfWeek(date, firstDayOfWeek) {\n var daysOffset = firstDayOfWeek - date.getDay();\n\n if (daysOffset > 0) {\n // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.\n daysOffset -= TimeConstants.DaysInOneWeek;\n }\n\n return addDays(date, daysOffset);\n}\n/**\n * Gets the date for the last day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\n\nexport function getEndDateOfWeek(date, firstDayOfWeek) {\n var lastDayOfWeek = firstDayOfWeek - 1 >= 0 ? firstDayOfWeek - 1 : TimeConstants.DaysInOneWeek - 1;\n var daysOffset = lastDayOfWeek - date.getDay();\n\n if (daysOffset < 0) {\n // If last day of week is < date, go 1 week forward, to ensure resulting date is in the future.\n daysOffset += TimeConstants.DaysInOneWeek;\n }\n\n return addDays(date, daysOffset);\n}\n/**\n * Gets a new date with the time portion zeroed out, i.e., set to midnight\n * @param date - The origin date\n * @returns A new date with the time set to midnight\n */\n\nfunction getDatePart(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Helper function to assist in date comparisons\n */\n\n\nexport function getDatePartHashValue(date) {\n // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.\n return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);\n}\n/**\n * Helper function for getWeekNumber.\n * Returns week number for a date\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param numberOfFullDays - week settings.\n * @returns The week's number in the year.\n */\n\nfunction getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {\n var dayOfYear = getDayOfYear(date) - 1;\n var num = date.getDay() - dayOfYear % TimeConstants.DaysInOneWeek;\n var lastDayOfPrevYear = new Date(date.getFullYear() - 1, MonthOfYear.December, 31);\n var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;\n var num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n\n if (num2 !== 0 && num2 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n\n var num3 = dayOfYear - num2;\n\n if (num3 < 0) {\n num -= daysInYear % TimeConstants.DaysInOneWeek;\n num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n\n if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n\n num3 = daysInYear - num2;\n }\n\n return Math.floor(num3 / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for getWeekNumber.\n * Returns week number for a date\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @returns The week's number in the year.\n */\n\n\nfunction getFirstDayWeekOfYear(date, firstDayOfWeek) {\n var num = getDayOfYear(date) - 1;\n var num2 = date.getDay() - num % TimeConstants.DaysInOneWeek;\n var num3 = (num2 - firstDayOfWeek + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n return Math.floor((num + num3) / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for getWeekNumber.\n * Returns adjusted week day number when firstDayOfWeek is other than Sunday\n * For Week Day Number comparison checks\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param dateWeekDay - shifts number forward to 1 week in case passed as true\n * @returns The day of week adjusted to `firstDayOfWeek`; e.g. when `firstDayOfWeek` is Monday (1),\n * Sunday becomes 7.\n */\n\n\nfunction adjustWeekDay(firstDayOfWeek, dateWeekDay) {\n return firstDayOfWeek !== DayOfWeek.Sunday && dateWeekDay < firstDayOfWeek ? dateWeekDay + TimeConstants.DaysInOneWeek : dateWeekDay;\n}\n/**\n * Returns the day number for a date in a year\n * The number of days since January 1st in the particular year.\n * @param date - A date to find the day number for.\n * @returns The day's number in the year.\n */\n\n\nfunction getDayOfYear(date) {\n var month = date.getMonth();\n var year = date.getFullYear();\n var daysUntilDate = 0;\n\n for (var i = 0; i < month; i++) {\n daysUntilDate += daysInMonth(i + 1, year);\n }\n\n daysUntilDate += date.getDate();\n return daysUntilDate;\n}\n/**\n * Returns the number of days in the month\n * @param month - The month number to target (months 1-12).\n * @param year - The year to target.\n * @returns The number of days in the month.\n */\n\n\nfunction daysInMonth(month, year) {\n return new Date(year, month, 0).getDate();\n}","/**\n * The days of the week\n * {@docCategory DayOfWeek}\n */\nexport var DayOfWeek;\n\n(function (DayOfWeek) {\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\n})(DayOfWeek || (DayOfWeek = {}));\n/**\n * The months\n * {@docCategory MonthOfYear}\n */\n\n\nexport var MonthOfYear;\n\n(function (MonthOfYear) {\n MonthOfYear[MonthOfYear[\"January\"] = 0] = \"January\";\n MonthOfYear[MonthOfYear[\"February\"] = 1] = \"February\";\n MonthOfYear[MonthOfYear[\"March\"] = 2] = \"March\";\n MonthOfYear[MonthOfYear[\"April\"] = 3] = \"April\";\n MonthOfYear[MonthOfYear[\"May\"] = 4] = \"May\";\n MonthOfYear[MonthOfYear[\"June\"] = 5] = \"June\";\n MonthOfYear[MonthOfYear[\"July\"] = 6] = \"July\";\n MonthOfYear[MonthOfYear[\"August\"] = 7] = \"August\";\n MonthOfYear[MonthOfYear[\"September\"] = 8] = \"September\";\n MonthOfYear[MonthOfYear[\"October\"] = 9] = \"October\";\n MonthOfYear[MonthOfYear[\"November\"] = 10] = \"November\";\n MonthOfYear[MonthOfYear[\"December\"] = 11] = \"December\";\n})(MonthOfYear || (MonthOfYear = {}));\n/**\n * First week of the year settings types\n * {@docCategory FirstWeekOfYear}\n */\n\n\nexport var FirstWeekOfYear;\n\n(function (FirstWeekOfYear) {\n FirstWeekOfYear[FirstWeekOfYear[\"FirstDay\"] = 0] = \"FirstDay\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFullWeek\"] = 1] = \"FirstFullWeek\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFourDayWeek\"] = 2] = \"FirstFourDayWeek\";\n})(FirstWeekOfYear || (FirstWeekOfYear = {}));\n/**\n * The supported date range types\n * {@docCategory DateRangeType}\n */\n\n\nexport var DateRangeType;\n\n(function (DateRangeType) {\n DateRangeType[DateRangeType[\"Day\"] = 0] = \"Day\";\n DateRangeType[DateRangeType[\"Week\"] = 1] = \"Week\";\n DateRangeType[DateRangeType[\"Month\"] = 2] = \"Month\";\n DateRangeType[DateRangeType[\"WorkWeek\"] = 3] = \"WorkWeek\";\n})(DateRangeType || (DateRangeType = {}));\n\nexport var DAYS_IN_WEEK = 7;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: !0\n}), exports.RichEditor = void 0;\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'),\n _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf),\n _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'),\n _classCallCheck3 = _interopRequireDefault(_classCallCheck2),\n _createClass2 = require('babel-runtime/helpers/createClass'),\n _createClass3 = _interopRequireDefault(_createClass2),\n _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'),\n _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2),\n _inherits2 = require('babel-runtime/helpers/inherits'),\n _inherits3 = _interopRequireDefault(_inherits2),\n _react = require('react'),\n _react2 = _interopRequireDefault(_react),\n _draftJs = require('draft-js');\n\nrequire('react-draft-wysiwyg/dist/react-draft-wysiwyg.css');\n\nfunction _interopRequireDefault(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n}\n\nvar Editor = function Editor() {\n return null;\n},\n draftToHtml = function draftToHtml() {\n return null;\n},\n htmlToDraft = function htmlToDraft() {\n return null;\n};\n\nif ('undefined' != typeof window) var _require = require('react-draft-wysiwyg'),\n _Editor = _require.Editor,\n _draftToHtml = require('draftjs-to-html').default,\n _htmlToDraft = require('html-to-draftjs').default; // https://jpuri.github.io/react-draft-wysiwyg/#/docs\n\nvar RichEditor = exports.RichEditor = function (a) {\n function b(a) {\n (0, _classCallCheck3.default)(this, b);\n var c = (0, _possibleConstructorReturn3.default)(this, (b.__proto__ || (0, _getPrototypeOf2.default)(b)).call(this, a)),\n d = void 0;\n\n if ('value' in a && !!a.value) {\n var e = htmlToDraft(a.value),\n f = _draftJs.ContentState.createFromBlockArray(e.contentBlocks);\n\n d = _draftJs.EditorState.createWithContent(f);\n } else d = _draftJs.EditorState.createEmpty();\n\n return c.state = {\n editorState: d\n }, c.setEditorState = c.setEditorState.bind(c), c.onBlur = c.onBlur.bind(c), c;\n }\n\n return (0, _inherits3.default)(b, a), (0, _createClass3.default)(b, [{\n key: 'setEditorState',\n value: function b(a) {\n this.setState({\n editorState: a\n });\n }\n }, {\n key: 'onBlur',\n value: function a() {\n 'setValue' in this.props && this.props.setValue(draftToHtml((0, _draftJs.convertToRaw)(this.state.editorState.getCurrentContent())));\n }\n }, {\n key: 'render',\n value: function a() {\n return _react2.default.createElement(Editor, {\n editorState: this.state.editorState,\n wrapperStyle: {\n border: '1px solid lightgrey',\n padding: '10'\n },\n onEditorStateChange: this.setEditorState,\n onBlur: this.onBlur\n });\n }\n }]), b;\n}(_react2.default.Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n}), exports.ListField = exports.Loading = exports.Errors = exports.DeleteButton = exports.AddButton = exports.DiscardButton = exports.SubmitButton = exports.FirebaseFileInput = exports.ToggleField = exports.MultiCheckBoxField = exports.CheckBoxField = exports.MultiSelect = exports.AutoSuggestObject = exports.AutoSuggest = exports.MultiAutoSuggest = exports.HtmlField = exports.ComboField = exports.SelectObjectField = exports.SelectField = exports.RadioObjectField = exports.RadioField = exports.DateTimeField = exports.TimePicker = exports.DateField = exports.JsonKV = exports.InputField = exports.isnotnull = void 0;\n\nvar _entries = require(\"babel-runtime/core-js/object/entries\"),\n _entries2 = _interopRequireDefault(_entries),\n _typeof2 = require(\"babel-runtime/helpers/typeof\"),\n _typeof3 = _interopRequireDefault(_typeof2),\n _toConsumableArray2 = require(\"babel-runtime/helpers/toConsumableArray\"),\n _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2),\n _slicedToArray2 = require(\"babel-runtime/helpers/slicedToArray\"),\n _slicedToArray3 = _interopRequireDefault(_slicedToArray2),\n _extends2 = require(\"babel-runtime/helpers/extends\"),\n _extends3 = _interopRequireDefault(_extends2),\n _stringify = require(\"babel-runtime/core-js/json/stringify\"),\n _stringify2 = _interopRequireDefault(_stringify);\n\nexports.fieldSwitcher = fieldSwitcher;\n\nvar _react = require(\"react\"),\n _react2 = _interopRequireDefault(_react),\n _formatting = require(\"../formatting\"),\n _DatePicker = require(\"office-ui-fabric-react/lib/DatePicker\"),\n _TextField = require(\"office-ui-fabric-react/lib/TextField\"),\n _ChoiceGroup = require(\"office-ui-fabric-react/lib/ChoiceGroup\"),\n _Dropdown = require(\"office-ui-fabric-react/lib/Dropdown\"),\n _ComboBox = require(\"office-ui-fabric-react/lib/ComboBox\"),\n _Checkbox = require(\"office-ui-fabric-react/lib/Checkbox\"),\n _Toggle = require(\"office-ui-fabric-react/lib/Toggle\"),\n _Button = require(\"office-ui-fabric-react/lib/Button\"),\n _Spinner = require(\"office-ui-fabric-react/lib/Spinner\"),\n _MessageBar = require(\"office-ui-fabric-react/lib/MessageBar\"),\n _Pickers = require(\"office-ui-fabric-react/lib/Pickers\"),\n _fileinput = require(\"./fileinput\"),\n _get = require(\"lodash/get\"),\n _get2 = _interopRequireDefault(_get),\n _has = require(\"lodash/has\"),\n _has2 = _interopRequireDefault(_has),\n _keyBy = require(\"lodash/keyBy\"),\n _keyBy2 = _interopRequireDefault(_keyBy),\n _set = require(\"lodash/set\"),\n _set2 = _interopRequireDefault(_set),\n _Stack = require(\"office-ui-fabric-react/lib/Stack\"),\n _Label = require(\"office-ui-fabric-react/lib/Label\"),\n _ = require(\".\"),\n _2 = _interopRequireDefault(_),\n _RichEditor = require(\"./RichEditor\"),\n _validations = require(\"../validations\"),\n _Text = require(\"office-ui-fabric-react/lib/Text\"),\n _Link = require(\"office-ui-fabric-react/lib/Link\"),\n _Icon = require(\"office-ui-fabric-react/lib/Icon\"),\n _Modal = require(\"office-ui-fabric-react/lib/Modal\"),\n _reactHooks = require(\"@uifabric/react-hooks\"),\n _Image = require(\"office-ui-fabric-react/lib/Image\"),\n _uniqueId = require(\"lodash/uniqueId\"),\n _uniqueId2 = _interopRequireDefault(_uniqueId);\n\nfunction _interopRequireDefault(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n}\n\nvar DayPickerStrings = {\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n goToToday: \"Go to today\",\n prevMonthAriaLabel: \"Go to previous month\",\n nextMonthAriaLabel: \"Go to next month\",\n prevYearAriaLabel: \"Go to previous year\",\n nextYearAriaLabel: \"Go to next year\",\n closeButtonAriaLabel: \"Close date picker\"\n},\n descStyle = {\n marginTop: \"3px\",\n color: \"rgba(163, 162, 160)\",\n fontSize: \"10px\"\n},\n isnotnull = exports.isnotnull = function (a) {\n return \"\" !== a && null !== a && a !== void 0;\n},\n inputFormat = function inputFormat(a, b) {\n return \"titlecase\" === a ? (0, _formatting.doFormatTitle)(b) : \"upper\" === a ? b.toUpperCase() : \"lower\" === a ? b.toLowerCase() : \"slug\" === a ? b.toLowerCase().replace(/[^a-z0-9-]/g, \"\") : \"email\" === a ? b.toLowerCase().trim().replace(\" \", \"\") : \"abhyasiid\" === a ? b.toUpperCase().replace(/[^A-Za-z0-9]/g, \"\") : \"pnr\" === a ? b.toUpperCase().replace(/[^A-Za-z0-9-]/g, \"\") : b;\n},\n validateJson = function validateJson(a) {\n if (!a) return \"\";\n\n try {\n return JSON.parse(a), \"\";\n } catch (a) {\n return \"Invalid Json\";\n }\n},\n validateText = function validateText() {\n return \"\";\n},\n InputField = exports.InputField = _react2.default.memo(function (a) {\n var b = (0, _react.useCallback)(function (b) {\n var c = b.target.value;\n return \"number\" === a.type ? void a.onFieldChange(parseInt(c)) : ((0, _has2.default)(a, \"props.transform\") && (c = inputFormat(a.props.transform, c)), void (\"jsonfield\" !== a.type && a.onFieldChange(c)));\n }, [a.type]),\n c = (0, _react.useCallback)(function (b) {\n var c = b.target.value;\n\n if (\"jsonfield\" === a.type) {\n var d = validateJson(c);\n\n if (\"\" === d) {\n try {\n c = JSON.parse(c);\n } catch (a) {}\n\n a.onFieldChange(c);\n }\n }\n }, [a.type]),\n d = {};\n\n if (\"jsonfield\" === a.type) {\n try {\n d.defaultValue = a.value ? (0, _stringify2.default)(a.value) : \"\";\n } catch (a) {\n d.defaultValue = \"\";\n }\n\n d.onBlur = c, d.onGetErrorMessage = validateJson, d.deferredValidationTime = 1e3;\n } else d.value = a.value;\n\n return _react2.default.createElement(\"div\", null, _react2.default.createElement(_TextField.TextField, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n required: !0\n }, a.props, {\n label: a.label,\n type: a.type,\n name: a.name.toString()\n }, d, {\n onChange: b\n })));\n}),\n JsonKV = exports.JsonKV = _react2.default.memo(function (a) {\n var b = a.props,\n c = b.formfields,\n d = b.validator,\n e = b.defaults,\n f = b.readOnly,\n g = (0, _reactHooks.useBoolean)(!1),\n h = (0, _slicedToArray3.default)(g, 2),\n i = h[0],\n j = h[1],\n k = j.setTrue,\n l = j.setFalse,\n m = (0, _react.useCallback)(function (b, c) {\n return a.onFieldChange(b), c(), void l();\n }, []);\n return _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, [\"props\", \"required\"]) && \"*\"), _react2.default.createElement(_Button.DefaultButton, {\n text: \"View / Set\",\n onClick: k\n }), _react2.default.createElement(_Modal.Modal, {\n isOpen: i,\n isBlocking: !0,\n styles: {\n main: {\n backgroundColor: \"#edebe9\"\n },\n scrollableContent: {\n padding: 12\n },\n overlay: {\n backgroundColor: \"rgba(0,0,0, 0.7)\"\n }\n }\n }, _react2.default.createElement(_2.default, {\n formTitle: \"Options for \" + a.label,\n formFields: c,\n formValidator: d,\n defaultValues: (0, _extends3.default)({}, e, !a.value ? {} : a.value),\n onSubmit: m,\n onDiscard: l,\n hideSubmit: f !== void 0 && f\n })), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n DateField = exports.DateField = _react2.default.memo(function (a) {\n return (0, _has2.default)(a, [\"props\", \"description\"]) && (0, _set2.default)(a.props, [\"textField\", \"description\"], a.props.description), _react2.default.createElement(_DatePicker.DatePicker, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n strings: DayPickerStrings,\n isRequired: !(\"required\" in a.props) || (0, _get2.default)(a, [\"props\", \"required\"])\n }, a.props, {\n label: a.label,\n name: a.name,\n value: a.value ? (0, _formatting.formatOdooDate2Sys)(a.value) : \"\",\n onSelectDate: function c(b) {\n return a.onFieldChange((0, _formatting.formatSys2OdooDate)(b));\n }\n }, (0, _has2.default)(a, [\"props\", \"pastDatesOnly\"]) ? {\n maxDate: new Date()\n } : {}, (0, _has2.default)(a, [\"props\", \"futureDatesOnly\"]) ? {\n minDate: new Date()\n } : {}, (0, _has2.default)(a, [\"props\", \"maxDate\"]) && isnotnull(a.props.maxDate) ? {\n maxDate: (0, _formatting.formatOdooDate2Sys)(a.props.maxDate)\n } : {}, (0, _has2.default)(a, [\"props\", \"minDate\"]) && isnotnull(a.props.minDate) ? {\n minDate: (0, _formatting.formatOdooDate2Sys)(a.props.minDate),\n initialPickerDate: (0, _formatting.formatOdooDate2Sys)(a.props.minDate)\n } : {}));\n}),\n timePattern = \"^([01][0-9]|2[0-3]):[0-5][0-9]$\",\n TimePicker = exports.TimePicker = function (a) {\n // const hourOptions = range(0, 24).map(key => ({ key, text: `` + key }));\n var b = (0, _react.useState)(a.value),\n c = (0, _slicedToArray3.default)(b, 2),\n d = c[0],\n f = c[1],\n g = (0, _react.useCallback)(function (a) {\n var b = a.target.value.trim().replace(/[^0-9:]/g, \"\").substr(0, 5);\n \"23:59\" >= b && \"59\" >= b.substr(3, 2) && f(b);\n }),\n h = (0, _react.useCallback)(function (a) {\n return (0, _validations.validateRE)(timePattern, a) ? \"\" : \"Invalid Time for HH:MM\";\n }, []);\n return _react2.default.createElement(_TextField.TextField, {\n style: {\n maxWidth: 80\n },\n title: \"Enter Time in 24 hour format (HH:MM)\",\n value: d,\n onChange: g,\n onBlur: function onBlur(b) {\n (0, _validations.validateRE)(timePattern, b.target.value) && a.onChange(b);\n },\n pattern: timePattern,\n placeholder: \"__:__\",\n onGetErrorMessage: h\n });\n}; //const range = (s, e) => Array.from('x'.repeat(e - s), (_, i) => s + i);\n\n\nfunction myTimeZone(a) {\n return /(\\(.*\\))/.exec(a.toString())[1];\n}\n\nvar combineDateTime = function combineDateTime(a, b) {\n if (!a) return \"\";\n if (!b) return (0, _formatting.formatSys2OdooDatetime)(a);\n var c = parseInt(b.substring(0, 2)),\n d = parseInt(b.substring(3, 5)),\n e = a;\n return e.setHours(c), e.setMinutes(d), (0, _formatting.formatSys2OdooDatetime)(e);\n},\n DateTimeField = exports.DateTimeField = _react2.default.memo(function (a) {\n (0, _has2.default)(a, [\"props\", \"description\"]) && (0, _set2.default)(a.props, [\"textField\", \"description\"], a.props.description);\n var b = (0, _formatting.formatOdooDatetime2Sys)(a.value),\n c = !a.value ? [\"\", \"\", \"\"] : [b, b.toTimeString().substring(0, 5), myTimeZone(b)],\n e = (0, _slicedToArray3.default)(c, 3),\n f = e[0],\n d = e[1],\n g = e[2],\n h = (0, _react.useCallback)(function (b) {\n return a.onFieldChange(combineDateTime(b, d, d));\n }, [d]),\n i = (0, _react.useCallback)(function (b) {\n return a.onFieldChange(combineDateTime(f, b.target.value));\n }, [f]);\n return _react2.default.createElement(\"div\", {\n className: (0, _get2.default)(\"props\", \"props.className\"),\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"])\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, [\"props\", \"required\"]) && \"*\", _react2.default.createElement(_Text.Text, {\n variant: \"small\",\n style: {\n paddingLeft: 12,\n color: \"grey\"\n }\n }, g)), _react2.default.createElement(_Stack.Stack, {\n horizontal: !0,\n horizontalAlign: \"start\",\n tokens: {\n childrenGap: 6\n }\n }, _react2.default.createElement(\"div\", {\n style: {\n maxWidth: 150\n }\n }, _react2.default.createElement(_DatePicker.DatePicker, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n strings: DayPickerStrings,\n isRequired: !1\n }, a.props, {\n label: \"\",\n name: a.name,\n value: f,\n onSelectDate: h\n }, (0, _has2.default)(a, [\"props\", \"pastDatesOnly\"]) ? {\n maxDate: new Date()\n } : {}, (0, _has2.default)(a, [\"props\", \"futureDatesOnly\"]) ? {\n minDate: new Date()\n } : {}, (0, _has2.default)(a, [\"props\", \"maxDate\"]) && isnotnull(a.props.maxDate) ? {\n maxDate: (0, _formatting.formatOdooDate2Sys)(a.props.maxDate)\n } : {}, (0, _has2.default)(a, [\"props\", \"minDate\"]) && isnotnull(a.props.minDate) ? {\n minDate: (0, _formatting.formatOdooDate2Sys)(a.props.minDate),\n initialPickerDate: (0, _formatting.formatOdooDate2Sys)(a.props.minDate)\n } : {}))), _react2.default.createElement(TimePicker, {\n key: d ? d : \"X\",\n value: d,\n onChange: i\n })), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n RadioField = exports.RadioField = _react2.default.memo(function (a) {\n var b = a.name,\n c = a.onFieldChange,\n d = a.props,\n e = a.label,\n f = a.value,\n g = a.options,\n h = g.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n text: a\n } : {\n key: a.name,\n text: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n return _react2.default.createElement(_ChoiceGroup.ChoiceGroup, (0, _extends3.default)({\n key: \"g\" + b.toString(),\n required: !0\n }, d, {\n label: e,\n selectedKey: f,\n options: h,\n onChange: function d(a, b) {\n return c(b.key);\n }\n }));\n}),\n RadioObjectField = exports.RadioObjectField = _react2.default.memo(function (a) {\n var b = a.name,\n c = a.onFieldChange,\n d = a.props,\n e = a.label,\n f = a.value,\n g = a.options,\n h = g.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n text: a,\n data: {}\n } : {\n key: a.name,\n text: (0, _get2.default)(a, \"label\", a.name),\n data: (0, _get2.default)(a, \"data\", {})\n };\n });\n return _react2.default.createElement(_ChoiceGroup.ChoiceGroup, (0, _extends3.default)({\n key: \"g\" + b.toString(),\n required: !0\n }, d, {\n label: e,\n selectedKey: f,\n options: h,\n onChange: function d(a, b) {\n return c(b.key, b.data);\n }\n }));\n}),\n SelectField = exports.SelectField = _react2.default.memo(function (a) {\n var b = function b(_b, c) {\n return a.onFieldChange(c.key);\n },\n c = a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n text: a\n } : {\n key: a.name,\n text: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n\n return (0, _has2.default)(a, [\"props\", \"description\"]) ? _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, _react2.default.createElement(_Dropdown.Dropdown, (0, _extends3.default)({\n required: !0\n }, a.props, {\n label: a.label,\n selectedKey: a.value ? a.value : void 0,\n options: c,\n onChange: b\n })), _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description)) : _react2.default.createElement(_Dropdown.Dropdown, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n required: !0\n }, a.props, {\n label: a.label,\n selectedKey: a.value ? a.value : void 0,\n options: c,\n onChange: b\n }));\n}),\n SelectObjectField = exports.SelectObjectField = _react2.default.memo(function (a) {\n var b = function b(_b2, c) {\n return a.onFieldChange(c.key, c.data);\n },\n c = a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n text: a,\n data: {}\n } : {\n key: a.name,\n text: (0, _get2.default)(a, \"label\", a.name),\n data: (0, _get2.default)(a, \"data\", {})\n };\n });\n\n return (0, _has2.default)(a, [\"props\", \"description\"]) ? _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, _react2.default.createElement(_Dropdown.Dropdown, (0, _extends3.default)({\n required: !0\n }, a.props, {\n label: a.label,\n selectedKey: a.value ? a.value : void 0,\n options: c,\n onChange: b\n })), _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description)) : _react2.default.createElement(_Dropdown.Dropdown, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n required: !0\n }, a.props, {\n label: a.label,\n selectedKey: a.value ? a.value : void 0,\n options: c,\n onChange: b\n }));\n}),\n ComboField = exports.ComboField = _react2.default.memo(function (a) {\n var b = (0, _react.useCallback)(function (b, c) {\n return a.onFieldChange(c.key);\n }, []),\n c = (0, _react.useMemo)(function () {\n return a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n text: a\n } : {\n key: a.name,\n text: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n }, [a.options]);\n return (0, _has2.default)(a, [\"props\", \"description\"]) ? _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, _react2.default.createElement(_ComboBox.ComboBox, (0, _extends3.default)({\n required: !0\n }, a.props, {\n label: a.label,\n selectedKey: a.value ? a.value : void 0,\n options: c,\n onChange: b\n })), _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description)) : _react2.default.createElement(_ComboBox.ComboBox, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n required: !0\n }, a.props, {\n label: a.label,\n selectedKey: a.value ? a.value : void 0,\n options: c,\n onChange: b\n }));\n}),\n HtmlField = exports.HtmlField = _react2.default.memo(function (a) {\n return _react2.default.createElement(\"div\", {\n className: (0, _get2.default)(\"props\", \"props.className\"),\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"])\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, [\"props\", \"required\"]) && \"*\"), (0, _get2.default)(a, \"props.readOnly\") ? _react2.default.createElement(\"div\", {\n dangerouslySetInnerHTML: a.value,\n style: {\n border: \"1px solid lightgrey\",\n padding: \"10\"\n }\n }) : _react2.default.createElement(_RichEditor.RichEditor, (0, _extends3.default)({}, a.props, {\n value: a.value,\n setValue: a.onFieldChange\n })), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n});\n\nfunction _convertValueToItems(a, b) {\n if (!b) return [];\n var c = (0, _keyBy2.default)(a, function (a) {\n return \"\" + a.key;\n }),\n d = void 0;\n return d = \"string\" != typeof b && Array.isArray(b) ? b : [b], d.map(function (a) {\n return (0, _get2.default)(c, \"\" + a, {\n key: a,\n name: a\n });\n });\n}\n\nvar MultiAutoSuggest = exports.MultiAutoSuggest = _react2.default.memo(function (a) {\n var b = (0, _react.useMemo)(function () {\n return a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n name: a\n } : {\n key: a.name,\n name: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n }, [a.options]),\n c = (0, _react.useCallback)(function (b) {\n return a.onFieldChange(b.map(function (a) {\n return a.key;\n }));\n }, []),\n d = (0, _react.useCallback)(function (a) {\n return a.name;\n }, []),\n e = (0, _react.useCallback)(function (a, c) {\n return a ? b.filter(function (b) {\n return 0 === b.name.toLowerCase().indexOf(a.toLowerCase().trim());\n }).filter(function (a) {\n return !f(a, c);\n }) : [];\n }, [b]),\n f = (0, _react.useCallback)(function (a, b) {\n return !!(b && b.length && 0 !== b.length) && b.some(function (b) {\n return b.name === a.name;\n });\n }, []),\n g = (0, _react.useMemo)(function () {\n return _convertValueToItems(b, a.value);\n }, [b, a.value]);\n return _react2.default.createElement(\"div\", {\n className: (0, _get2.default)(\"props\", \"props.className\"),\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"])\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, [\"props\", \"required\"]) && \"*\"), _react2.default.createElement(_Pickers.TagPicker, (0, _extends3.default)({\n styles: {\n input: {\n backgroundColor: \"white\"\n }\n },\n removeButtonAriaLabel: \"Remove\"\n }, a.props, {\n onResolveSuggestions: e,\n getTextFromItem: d,\n pickerSuggestionsProps: {\n styles: {\n root: {\n backgroundColor: \"yellow\"\n }\n },\n suggestionsHeaderText: \"Suggested \" + a.label,\n noResultsFoundText: \"--\"\n },\n selectedItems: g,\n onChange: c\n })), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n AutoSuggest = exports.AutoSuggest = _react2.default.memo(function (a) {\n var b = (0, _uniqueId2.default)(),\n c = (0, _react.useState)([]),\n d = (0, _slicedToArray3.default)(c, 2),\n e = d[0],\n f = d[1],\n g = (0, _get2.default)(a, \"props.remoteItemsApi\"),\n h = (0, _get2.default)(a, \"props.remoteKeyApi\"),\n i = (0, _react.useMemo)(function () {\n return g ? e : a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n name: a\n } : {\n key: a.name,\n name: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n }, [a.props, a.options, e]),\n j = (0, _react.useCallback)(function (b) {\n return a.onFieldChange((0, _get2.default)(b, [0, \"key\"], \"\"));\n }, []),\n k = (0, _react.useCallback)(function (a) {\n return a.name;\n }, []),\n l = (0, _react.useCallback)(function (a, c) {\n return a && g ? g(a, b).then(function (a) {\n return f(a), a;\n }) : a ? i.filter(function (b) {\n return 0 === b.name.toLowerCase().indexOf(a.toLowerCase().trim());\n }).filter(function (a) {\n return !m(a, c);\n }) : [];\n }, [i]),\n m = (0, _react.useCallback)(function (a, b) {\n return !!(b && b.length && 0 !== b.length) && b.some(function (b) {\n return b.name === a.name;\n });\n }, []),\n n = (0, _react.useMemo)(function () {\n return _convertValueToItems(i, a.value);\n }, [a.value, i]); //console.log( \"Props.styles\", get(props, [\"props\", \"styles\"]));\n\n return (0, _react.useEffect)(function () {\n !!h && a.value && h(a.value).then(f);\n }, []), _react2.default.createElement(\"div\", {\n className: (0, _get2.default)(a, \"props.className\"),\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"])\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, \"props.required\") && \"*\"), _react2.default.createElement(_Pickers.TagPicker, (0, _extends3.default)({\n styles: {\n root: {\n backgroundColor: \"white\"\n }\n },\n removeButtonAriaLabel: \"Remove\"\n }, (0, _get2.default)(a, \"props\"), {\n onResolveSuggestions: l,\n getTextFromItem: k,\n pickerSuggestionsProps: {\n styles: {\n root: {\n backgroundColor: \"yellow\"\n }\n },\n suggestionsHeaderText: \"Suggested \" + a.label,\n noResultsFoundText: \"--\"\n },\n itemLimit: 1,\n selectedItems: n,\n onChange: j\n })), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n AutoSuggestObject = exports.AutoSuggestObject = _react2.default.memo(function (a) {\n var b = (0, _react.useMemo)(function () {\n return a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n name: a,\n data: {}\n } : {\n key: a.name,\n name: (0, _get2.default)(a, \"label\", a.name),\n data: (0, _get2.default)(a, \"data\", {})\n };\n });\n }, [a.options]),\n c = (0, _react.useCallback)(function (b) {\n a.onFieldChange((0, _get2.default)(b, [0, \"key\"], \"\"), (0, _get2.default)(b, [0, \"data\"], {}));\n }, []),\n d = (0, _react.useCallback)(function (a) {\n return a.name;\n }, []),\n e = (0, _react.useCallback)(function (a, c) {\n return a ? b.filter(function (b) {\n return 0 === b.name.toLowerCase().indexOf(a.toLowerCase().trim());\n }).filter(function (a) {\n return !f(a, c);\n }) : [];\n }, [b]),\n f = (0, _react.useCallback)(function (a, b) {\n return !!(b && b.length && 0 !== b.length) && b.some(function (b) {\n return b.name === a.name;\n });\n }, []),\n g = (0, _react.useMemo)(function () {\n return _convertValueToItems(b, a.value);\n }, [b, a.value]); //console.log(\"Props.styles\", get(props, [\"props\", \"styles\"]));\n\n return _react2.default.createElement(\"div\", {\n className: (0, _get2.default)(a, \"props.className\"),\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"])\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, [\"props\", \"required\"]) && \"*\"), _react2.default.createElement(_Pickers.TagPicker, (0, _extends3.default)({\n styles: {\n input: {\n backgroundColor: \"white\"\n }\n },\n removeButtonAriaLabel: \"Remove\"\n }, a.props, {\n onResolveSuggestions: e,\n getTextFromItem: d,\n pickerSuggestionsProps: {\n styles: {\n root: {\n backgroundColor: \"yellow\"\n }\n },\n suggestionsHeaderText: \"Suggested \" + a.label,\n noResultsFoundText: \"--\"\n },\n itemLimit: 1,\n selectedItems: g,\n onChange: c\n })), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n MultiSelect = exports.MultiSelect = _react2.default.memo(function (a) {\n var b = function b(_b3, c) {\n return a.onFieldChange(c.key);\n },\n c = a.options.map(function (a) {\n return \"string\" == typeof a ? {\n key: a,\n text: a\n } : {\n key: a.name,\n text: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n\n return (0, _has2.default)(a, [\"props\", \"description\"]) ? _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, _react2.default.createElement(_Dropdown.Dropdown, (0, _extends3.default)({\n required: !0\n }, a.props, {\n label: a.label,\n multiSelect: !0,\n selectedKeys: a.value ? a.value : void 0,\n options: c,\n onChange: b\n })), _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description)) : _react2.default.createElement(_Dropdown.Dropdown, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n required: !0\n }, a.props, {\n label: a.label,\n multiSelect: !0,\n selectedKeys: a.value ? a.value : void 0,\n options: c,\n onChange: b\n }));\n}),\n CheckBoxField = exports.CheckBoxField = _react2.default.memo(function (a) {\n var b = function b(_b4, c) {\n return a.onFieldChange(c);\n };\n\n return (0, _has2.default)(a, [\"props\", \"description\"]) ? _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, _react2.default.createElement(_Checkbox.Checkbox, (0, _extends3.default)({}, a.props, {\n label: a.label,\n checked: a.value,\n onChange: b\n })), _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description)) : _react2.default.createElement(_Checkbox.Checkbox, (0, _extends3.default)({\n key: \"g\" + a.name.toString()\n }, a.props, {\n label: a.label,\n checked: a.value,\n onChange: b\n }));\n}),\n MultiCheckBoxField = exports.MultiCheckBoxField = _react2.default.memo(function (a) {\n //console.log(props);\n var b = a.options.map(function (a) {\n return \"string\" == typeof a ? {\n name: a,\n label: a\n } : {\n name: a,\n label: (0, _get2.default)(a, \"label\", a.name)\n };\n });\n return _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement(_Label.Label, null, a.label), (0, _get2.default)(a, \"props.btnSelectAll\", !1) && _react2.default.createElement(_Link.Link, {\n style: {\n marginRight: 12\n },\n onClick: function c() {\n a.onFieldChange(b.map(function (a) {\n return a.name;\n }), \"single\");\n }\n }, _react2.default.createElement(\"small\", null, _react2.default.createElement(_Icon.Icon, {\n iconName: \"Accept\"\n }), \" Select All\")), (0, _get2.default)(a, \"props.btnSelectNone\", !1) && _react2.default.createElement(_Link.Link, {\n onClick: function b() {\n a.onFieldChange([], \"single\");\n }\n }, _react2.default.createElement(\"small\", null, _react2.default.createElement(_Icon.Icon, {\n iconName: \"Cancel\"\n }), \" Select None\")), b.map(function (b, c) {\n return _react2.default.createElement(_Checkbox.Checkbox, (0, _extends3.default)({\n key: \"go\" + a.name.toString() + c\n }, a.props, {\n label: b.label,\n checked: a.value.includes(b.name),\n onChange: function c() {\n return a.onFieldChange(b.name);\n }\n }));\n }), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n ToggleField = exports.ToggleField = _react2.default.memo(function (a) {\n var b = function b(_b5, c) {\n return a.onFieldChange(c);\n };\n\n return (0, _has2.default)(a, [\"props\", \"description\"]) ? _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, _react2.default.createElement(_Toggle.Toggle, (0, _extends3.default)({\n onText: \"Yes\",\n offText: \"No\"\n }, a.props, {\n label: a.label,\n checked: a.value,\n onChange: b\n })), _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description)) : _react2.default.createElement(_Toggle.Toggle, (0, _extends3.default)({\n key: \"g\" + a.name.toString(),\n onText: \"Yes\",\n offText: \"No\"\n }, a.props, {\n label: a.label,\n checked: a.value,\n onChange: b\n }));\n}),\n FirebaseFileInput = exports.FirebaseFileInput = _react2.default.memo(function (a) {\n //console.log(props);\n var b = a.props,\n c = b.firebaseStorage,\n d = b.namespace,\n e = b.config,\n f = e === void 0 ? {} : e,\n g = b.inputProps,\n h = g === void 0 ? {} : g,\n i = b.readOnly,\n j = i !== void 0 && i,\n k = b.hideSubmit,\n l = k !== void 0 && k;\n if (!c || !d) throw alert(\"Firebase Configuration / namespace Invalid\"), \"Firebase Configuration / namespace Invalid\";\n var m = null;\n\n try {\n m = JSON.parse(a.value);\n } catch (a) {}\n\n return _react2.default.createElement(\"div\", {\n style: (0, _get2.default)(a, [\"props\", \"styles\", \"root\"]),\n key: \"g\" + a.name.toString()\n }, !!a.label && _react2.default.createElement(_Label.Label, null, a.label, \" \", (0, _get2.default)(a, [\"props\", \"required\"]) && \"*\"), !!m && (j || l) ? _react2.default.createElement(\"a\", {\n href: m.downloadURL,\n target: \"_blank\",\n key: m.downloadURL\n }, \"contentType\" in m && m.contentType.startsWith(\"image\") && _react2.default.createElement(_Image.Image, {\n src: m.downloadURL,\n width: 200,\n alt: \"Loading...\"\n }), m.fileName) : _react2.default.createElement(_fileinput.MyFileInput, {\n file: a.value,\n setFile: a.onFieldChange,\n readOnly: j || l,\n firebaseStorage: c,\n namespace: d,\n config: f,\n inputProps: h\n }), (0, _has2.default)(a, [\"props\", \"description\"]) && _react2.default.createElement(\"div\", {\n style: descStyle\n }, a.props.description));\n}),\n SubmitButton = exports.SubmitButton = function () {\n return _react2.default.createElement(_Button.DefaultButton, {\n type: \"submit\",\n primary: !0\n }, \"Save\");\n},\n DiscardButton = exports.DiscardButton = function () {\n return _react2.default.createElement(_Button.DefaultButton, null, \"Discard\");\n},\n AddButton = exports.AddButton = function () {\n return _react2.default.createElement(_Button.IconButton, {\n iconProps: {\n iconName: \"Add\"\n }\n });\n},\n DeleteButton = exports.DeleteButton = function () {\n return _react2.default.createElement(_Button.IconButton, {\n iconProps: {\n iconName: \"Delete\"\n }\n });\n},\n Errors = exports.Errors = function (a) {\n var b = a.text;\n return b && _react2.default.createElement(_MessageBar.MessageBar, {\n messageBarType: _MessageBar.MessageBarType.error\n }, _react2.default.createElement(\"div\", null, _react2.default.createElement(\"b\", null, \"Form Error: \")), _react2.default.createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: b.toString()\n }\n }));\n},\n Loading = exports.Loading = function () {\n return _react2.default.createElement(_Spinner.Spinner, {\n label: \"...\",\n ariaLive: \"assertive\",\n labelPosition: \"right\",\n size: _Spinner.SpinnerSize.large\n });\n},\n ListField = exports.ListField = function (a) {\n function b() {\n j.push(\"\"), f.setKV(j, h, \"single\");\n }\n\n function c(a) {\n j.splice(a, 1), f.setKV(j, h, \"single\");\n }\n\n var d = a.kidx,\n e = a.type,\n f = a.params,\n g = a.inlineForm,\n h = f.name,\n i = f.value,\n j = [];\n return j = Array.isArray(i) ? [].concat((0, _toConsumableArray3.default)(i)) : [], _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement(_Label.Label, null, f.label), j.map(function (a, b) {\n return _react2.default.createElement(_Stack.Stack, {\n horizontal: !0,\n horizontalAlign: \"start\"\n }, fieldSwitcher(d + \"v\" + b, e, (0, _extends3.default)({}, f, {\n label: \"\",\n name: h + \"[\" + b + \"]\",\n value: a,\n setKV: function d(a, b, c) {\n return f.setKV(a, \"\" + b, c);\n }\n }), g), _react2.default.createElement(_Button.IconButton, {\n iconProps: {\n iconName: \"Cancel\"\n },\n onClick: function a() {\n return c(b);\n }\n }));\n }), _react2.default.createElement(_Button.IconButton, {\n iconProps: {\n iconName: \"Add\"\n },\n onClick: b\n }));\n},\n initial = \"a\",\n emptyDict = {},\n useOptions = function useOptions(a) {\n var b = (0, _react.useState)((0, _get2.default)(a, \"options\", [])),\n c = (0, _slicedToArray3.default)(b, 2),\n d = c[0],\n e = c[1],\n f = (0, _react.useState)(initial),\n g = (0, _slicedToArray3.default)(f, 2),\n h = g[0],\n i = g[1],\n j = (0, _get2.default)(a, [\"props\", \"promiseParams\"], emptyDict);\n return (0, _react.useEffect)(function () {\n if ((0, _has2.default)(a, [\"optionsPromise\", \"promise\"])) {\n var b = (0, _stringify2.default)(j);\n h !== b && a.optionsPromise.promise(j).then(function (c) {\n h !== initial && (0, _has2.default)(a, \"onFieldChange\") && a.onFieldChange(\"\"), e(c), i(b);\n }).catch(function () {\n return e((0, _get2.default)(a, \"options\", []));\n });\n }\n }, [j]), (0, _has2.default)(a, [\"optionsPromise\", \"promise\"]) ? (0, _extends3.default)({}, a, {\n key: h,\n options: d\n }) : a;\n},\n FieldSwitch = function FieldSwitch(a) {\n var b = a.params,\n c = a.type,\n d = a.inlineForm,\n e = useOptions(b);\n return \"radio\" === c ? d ? _react2.default.createElement(SelectField, e) : _react2.default.createElement(RadioField, e) : \"radio_object\" === c ? d ? _react2.default.createElement(SelectObjectField, e) : _react2.default.createElement(RadioObjectField, e) : \"select\" === c ? _react2.default.createElement(SelectField, e) : \"select_object\" === c ? _react2.default.createElement(SelectObjectField, e) : \"comboxbox\" === c ? _react2.default.createElement(ComboField, e) : \"autosuggest\" === c ? _react2.default.createElement(AutoSuggest, e) : \"autosuggest_object\" === c ? _react2.default.createElement(AutoSuggestObject, e) : \"multiautosuggest\" === c ? _react2.default.createElement(MultiAutoSuggest, e) : \"multiselect\" === c ? _react2.default.createElement(MultiSelect, e) : \"checkbox\" === c ? _react2.default.createElement(CheckBoxField, e) : \"multicheckbox\" === c ? _react2.default.createElement(MultiCheckBoxField, e) : \"toggle\" === c ? _react2.default.createElement(ToggleField, e) : \"date\" === c ? _react2.default.createElement(DateField, e) : \"datetimetz\" === c ? _react2.default.createElement(DateTimeField, e) : \"firebasefile\" === c ? _react2.default.createElement(FirebaseFileInput, e) : \"jsonkv\" === c ? _react2.default.createElement(JsonKV, e) : \"statichtml\" === c ? _react2.default.createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: e.label\n }\n }) : \"htmlfield\" === c ? _react2.default.createElement(HtmlField, e) : _react2.default.createElement(InputField, e);\n};\n\nfunction fieldSwitcher(a, b, c) {\n var d = !!(3 < arguments.length && arguments[3] !== void 0) && arguments[3],\n e = !!(4 < arguments.length && arguments[4] !== void 0) && arguments[4];\n if (e) return _react2.default.createElement(ListField, {\n kidx: a,\n type: b,\n params: c,\n inlineForm: d\n });\n var f = \"k\" + a + c.name.toString();\n if ((0, _get2.default)(c, [\"props\", \"readOnly\"], !1)) return _react2.default.createElement(InputField, (0, _extends3.default)({}, c, {\n required: !1,\n readOnly: !0,\n borderless: !0,\n key: f,\n type: \"text\",\n value: (0, _.printField)(b, c.value, c.options)\n }));\n if ((0, _get2.default)(c, [\"props\", \"displayOnly\"], !1)) return _react2.default.createElement(\"div\", {\n style: {\n marginTop: \"4px\"\n }\n }, !!c.label && _react2.default.createElement(_Label.Label, null, c.label), (0, _.printField)(b, c.value, c.options));\n\n var g = function g(a) {\n var d = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : void 0; //console.log(v, params1.name, (vtype ? vtype : ((type === \"multiselect\" || type === \"multicheckbox\") ? \"multiple\" : \"single\")));\n\n c.setKV(a, c.name, d ? d : \"multiselect\" === b || \"multicheckbox\" === b ? \"multiple\" : \"single\");\n };\n\n [\"radio_object\", \"select_object\", \"autosuggest_object\"].includes(b) && (g = function g(a) {\n var b = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : {};\n void 0, c.setKV(a, c.name, \"single\");\n var d = (0, _get2.default)(c, [\"props\", \"data_keys\"]);\n void 0, \"object\" === (\"undefined\" == typeof d ? \"undefined\" : (0, _typeof3.default)(d)) && (0, _entries2.default)(d).map(function (a) {\n var d = (0, _slicedToArray3.default)(a, 2),\n e = d[0],\n f = d[1],\n g = (0, _slicedToArray3.default)(f, 2),\n h = g[0],\n i = g[1],\n j = void 0;\n Array.isArray(c.name) ? (j = [].concat((0, _toConsumableArray3.default)(c.name)), j[j.length - 1] = e) : j = e, void 0, c.setKV((0, _get2.default)(b, h, i), j, \"single\");\n });\n });\n var h = (0, _extends3.default)({}, c, {\n onFieldChange: g\n });\n return _react2.default.createElement(FieldSwitch, {\n params: h,\n key: \"a\" + f,\n keyname: f,\n type: b,\n inlineForm: d\n });\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: !0\n}), exports.MyFileInput = void 0;\n\nvar _stringify = require('babel-runtime/core-js/json/stringify'),\n _stringify2 = _interopRequireDefault(_stringify),\n _extends2 = require('babel-runtime/helpers/extends'),\n _extends3 = _interopRequireDefault(_extends2),\n _react = require('react'),\n _react2 = _interopRequireDefault(_react),\n _uuid = require('uuid'),\n _Button = require('office-ui-fabric-react/lib/Button'),\n _Spinner = require('office-ui-fabric-react/lib/Spinner'),\n _Stack = require('office-ui-fabric-react/lib/Stack'),\n _Link = require('office-ui-fabric-react/lib/Link'),\n _ProgressIndicator = require('office-ui-fabric-react/lib/ProgressIndicator'),\n _Image = require('office-ui-fabric-react/lib/Image');\n\nfunction _interopRequireDefault(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n}\n\nvar FirebaseFileInput = function FirebaseFileInput() {\n return null;\n};\n\nif ('undefined' != typeof window) var _require = require('@appsparkler/react-hfn-components'),\n _FirebaseFileInput = _require.FirebaseFileInput;\n\nvar CustomFileInput = function CustomFileInput(a, b) {\n var c = a.type,\n d = a.required,\n e = a.name,\n f = a.progress,\n g = a.isUploading,\n h = a.uploaded,\n i = a.maxBytes,\n j = a.maxBytesError,\n k = a.isVerifying,\n l = a.file,\n m = a.handleInput,\n n = a.maxBytesExceeded,\n o = a.label,\n p = o === void 0 ? {} : o,\n q = p.readOnly,\n r = p.inputProps,\n s = p.disabled;\n return _react2.default.createElement(_Stack.Stack, null, !!l && 'contentType' in l && l.contentType.startsWith('image') && _react2.default.createElement(_Image.Image, {\n src: l.downloadURL,\n width: 200,\n alt: 'Loading...'\n }), _react2.default.createElement(_Stack.Stack, {\n horizontal: !0\n }, k && _react2.default.createElement(_Spinner.Spinner, {\n size: _Spinner.SpinnerSize.large\n }), l && !k && !g && !f && _react2.default.createElement(_Link.Link, {\n target: '_blank',\n href: l.downloadURL,\n download: l.fileName\n }, l.fileName), _react2.default.createElement('input', (0, _extends3.default)({}, r, {\n style: {\n width: '0.1px',\n height: '0.1px',\n opacity: '0',\n overflow: 'hidden',\n position: 'absolute',\n zIndex: '-1'\n },\n type: c,\n name: e,\n onInput: m,\n ref: b,\n disabled: q,\n required: d,\n id: e\n })), !q && !k && !g && !f && _react2.default.createElement('label', {\n htmlFor: e\n }, l ? _react2.default.createElement(_Button.ActionButton, {\n style: {\n marginTop: '-6px'\n },\n iconProps: {\n iconName: 'Edit'\n },\n disabled: s,\n onClick: function b(a) {\n return a.currentTarget.parentElement.click();\n },\n text: 'Change File'\n }) : _react2.default.createElement(_Button.DefaultButton, {\n style: {\n marginTop: '-6px'\n },\n iconProps: {\n iconName: 'Upload'\n },\n disabled: s,\n onClick: function b(a) {\n return a.currentTarget.parentElement.click();\n },\n text: 'Upload File'\n })), (g || f) && _react2.default.createElement(_ProgressIndicator.ProgressIndicator, {\n label: 'uploading',\n description: f.toFixed(2) + '%',\n percentComplete: f\n }), n && _react2.default.createElement('p', {\n className: 'alert alert-danger'\n }, j, ': ', Math.round(i / 1048576), 'MB')));\n},\n CustomFileLink = function CustomFileLink(a) {\n // YOU HAVE THESE PROPS for CUSTOM FILE LINK\n var b = a.isVerifying,\n c = a.file;\n return _react2.default.createElement('div', null, b && 'isVerifying...', c && !b && _react2.default.createElement('a', {\n href: c.downloadURL\n }, !!c && 'contentType' in c && c.contentType.startsWith('image') && _react2.default.createElement(_Image.Image, {\n src: c.downloadURL,\n width: 200,\n alt: 'Loading...'\n })));\n},\n components = {\n fileInput: _react2.default.forwardRef(CustomFileInput),\n fileLink: CustomFileLink // PARAMS\n // 'file'\n // 'setFile'\n // 'firebaseStorage'\n // 'readOnly'\n // 'config'\n // 'namespace'\n\n},\n MyFileInput = exports.MyFileInput = function (a) {\n var b = a.firebaseStorage,\n c = a.file,\n d = a.setFile,\n e = d === void 0 ? function () {} : d,\n f = a.readOnly,\n g = a.config,\n h = g === void 0 ? {} : g,\n i = a.namespace,\n j = i === void 0 ? 'na' : i,\n k = a.inputProps,\n l = k === void 0 ? {} : k,\n m = !c ? c : JSON.parse(c),\n n = !m || !('fullPath' in m) || !m.fullPath ? j + '/' + (0, _uuid.v4)() : m.fullPath,\n o = b.ref(n);\n\n var p = _react2.default.useMemo(function () {\n return (0, _uuid.v4)();\n }, []),\n q = (0, _extends3.default)({\n storageRef: o,\n components: components,\n onUpload: function b(a) {\n return e((0, _stringify2.default)(a));\n },\n readOnly: !!f,\n disabled: !!f,\n type: 'file',\n name: p,\n // OPTIONAL Validation PARAMETERS\n maxBytes: 204800,\n // default 200kb\n maxBytesError: 'file size exceeds allowed limit',\n maxBytesInfoMessage: 'max bytes : '\n }, h, {\n label: {\n inputProps: l,\n disabled: !!f,\n readOnly: !!f\n } // hijacking label variable to pass inputProps to custom components\n\n }); //console.log(params);\n\n\n return _react2.default.createElement(FirebaseFileInput, q);\n};","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: !0\n}), exports.DynamicField = exports.printField = void 0;\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'),\n _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf),\n _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'),\n _classCallCheck3 = _interopRequireDefault(_classCallCheck2),\n _createClass2 = require('babel-runtime/helpers/createClass'),\n _createClass3 = _interopRequireDefault(_createClass2),\n _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'),\n _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2),\n _inherits2 = require('babel-runtime/helpers/inherits'),\n _inherits3 = _interopRequireDefault(_inherits2),\n _typeof2 = require('babel-runtime/helpers/typeof'),\n _typeof3 = _interopRequireDefault(_typeof2),\n _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'),\n _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2),\n _stringify = require('babel-runtime/core-js/json/stringify'),\n _stringify2 = _interopRequireDefault(_stringify),\n _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'),\n _slicedToArray3 = _interopRequireDefault(_slicedToArray2),\n _extends2 = require('babel-runtime/helpers/extends'),\n _extends3 = _interopRequireDefault(_extends2),\n _regenerator = require('babel-runtime/regenerator'),\n _regenerator2 = _interopRequireDefault(_regenerator),\n _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'),\n _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2),\n _promise = require('babel-runtime/core-js/promise'),\n _promise2 = _interopRequireDefault(_promise),\n _keys = require('babel-runtime/core-js/object/keys'),\n _keys2 = _interopRequireDefault(_keys),\n getCityIdSrcm = function () {\n var a = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function a(b) {\n var c;\n return _regenerator2.default.wrap(function (a) {\n for (;;) {\n switch (a.prev = a.next) {\n case 0:\n return a.next = 2, fetchProfileNoAuth('/api/v2/cities/' + b + '/', {}).then(function (a) {\n return {\n key: a.id,\n name: a.name + ', ' + (a.state ? a.state.name : '') + ', ' + (a.country ? a.country.name : '')\n };\n });\n\n case 2:\n return c = a.sent, a.abrupt('return', c);\n\n case 4:\n case 'end':\n return a.stop();\n }\n }\n }, a, this);\n }));\n return function () {\n return a.apply(this, arguments);\n };\n}(),\n getStateIdSrcm = function () {\n var a = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function a(b) {\n var c;\n return _regenerator2.default.wrap(function (a) {\n for (;;) {\n switch (a.prev = a.next) {\n case 0:\n return a.next = 2, fetchProfileNoAuth('/api/v2/states/' + b + '/', {}).then(function (a) {\n return {\n key: a.id,\n name: a.name + ', ' + (a.country ? a.country.name : '')\n };\n });\n\n case 2:\n return c = a.sent, a.abrupt('return', c);\n\n case 4:\n case 'end':\n return a.stop();\n }\n }\n }, a, this);\n }));\n return function () {\n return a.apply(this, arguments);\n };\n}();\n\nexports.validateForm = validateForm;\n\nvar _react = require('react'),\n _react2 = _interopRequireDefault(_react),\n _default = require('./default'),\n _validations = require('../validations'),\n _choice_lists = require('../choice_lists'),\n _xor = require('lodash/xor'),\n _xor2 = _interopRequireDefault(_xor),\n _get = require('lodash/get'),\n _get2 = _interopRequireDefault(_get),\n _set = require('lodash/set'),\n _set2 = _interopRequireDefault(_set),\n _has = require('lodash/has'),\n _has2 = _interopRequireDefault(_has),\n _flattenDeep = require('lodash/flattenDeep'),\n _flattenDeep2 = _interopRequireDefault(_flattenDeep),\n _formatting = require('../formatting'),\n _cities = require('../cities'),\n _indiastates = require('../indiastates.json'),\n _indiastates2 = _interopRequireDefault(_indiastates),\n _countries = require('../countries.json'),\n _countries2 = _interopRequireDefault(_countries);\n\nfunction _interopRequireDefault(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n}\n\nvar STATIC_GATSBY_API_SITE = 'https://static-gatsby.web.app',\n gPlacesApi = 'https://us-central1-hfn-registration.cloudfunctions.net/gplaces/',\n fetchProfileNoAuth = function fetchProfileNoAuth(a, b) {\n var c = (0, _keys2.default)(b).map(function (a) {\n // this is a hack for now to convert array fields to comma seperated values. remove this sometime\n return a.endsWith('[]') || Array.isArray(b[a]) ? encodeURIComponent(a.replace('[]', '')) + '=' + encodeURIComponent(b[a].join(',')) : encodeURIComponent(a) + '=' + encodeURIComponent(b[a]);\n }).join('&');\n return fetch('https://profile.sahajmarg.org' + a + '?' + c, {\n method: 'GET',\n headers: {\n Accept: 'application/json, text/plain, */*',\n \"Content-Type\": 'application/json'\n }\n }).then(function (a) {\n return a.json();\n });\n};\n\nfunction getStates(a) {\n if (!a) return _promise2.default.resolve([]);\n var b = {\n country: _cities.countries_dict[a],\n page: 1,\n page_size: 200\n };\n return fetchProfileNoAuth('/api/v2/states/', b).then(function (a) {\n var b = {};\n return a.results.filter(function (a) {\n return !(a.name in b) && (b[a.name] = 1, !a.name.includes('NOT TO BE USED'));\n });\n });\n}\n\nvar getGooglePlaces = function () {\n var a = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function a(b, c) {\n var d;\n return _regenerator2.default.wrap(function (a) {\n for (;;) {\n switch (a.prev = a.next) {\n case 0:\n if (gPlacesApi) {\n a.next = 2;\n break;\n }\n\n return a.abrupt('return', []);\n\n case 2:\n return a.next = 4, fetch('https://us-central1-hfn-registration.cloudfunctions.net/gplaces/?session=' + b + '&input=' + c).then(function (a) {\n return a.json();\n }) // .then(( predictions ) => processAllPredictions(predictions, mySrcmConfig, noStrictId))\n .catch(function () {});\n\n case 4:\n if (d = a.sent, !Array.isArray(d)) {\n a.next = 9;\n break;\n }\n\n return a.abrupt('return', d.map(function (a) {\n return {\n key: a.id,\n name: a.name + ', ' + a.state + ', ' + a.country\n };\n }));\n\n case 9:\n case 10:\n return a.abrupt('return', []);\n\n case 11:\n case 'end':\n return a.stop();\n }\n }\n }, a, void 0);\n }));\n return function () {\n return a.apply(this, arguments);\n };\n}();\n\nfunction getSrcmApiCities(a) {\n var b = 1 < arguments.length && arguments[1] !== void 0 ? arguments[1] : 'abcdefgh';\n if (!a) return _promise2.default.resolve([]);\n var c = a.toLowerCase(),\n d = 'https://static-gatsby.web.app/srcmapi/cities/' + c.substring(0, 1) + '.json';\n return fetch(d).then(function (a) {\n return a.json();\n }).then(function (d) {\n var e = d.results.filter(function (a) {\n return !a.name.includes('NOT TO BE USED');\n }).map(function (a) {\n return {\n key: a.id,\n name: a.name + ', ' + a.state + ', ' + a.country\n };\n }).filter(function (a) {\n return a.name.toLowerCase().startsWith(c);\n }).filter(function (a, b) {\n return 10 > b;\n });\n\n if (1 > e.length) {\n var f = getGooglePlaces(b, a);\n return f;\n }\n\n return e;\n }).catch(function () {\n return [];\n });\n}\n\nfunction getSrcmApiCityId(a) {\n var b = this;\n if (!a) return _promise2.default.resolve([]);\n return fetch('https://static-gatsby.web.app/srcmapi/cities/id/' + a + '.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return [{\n key: a.id,\n name: a.name + ', ' + (a.state ? a.state + ', ' : '') + a.country\n }];\n }).catch(function () {\n var c = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function c() {\n var d;\n return _regenerator2.default.wrap(function (b) {\n for (;;) {\n switch (b.prev = b.next) {\n case 0:\n return b.next = 3, getCityIdSrcm(a);\n\n case 3:\n return d = b.sent, b.prev = 4, b.abrupt('return', [d]);\n\n case 9:\n return b.prev = 9, b.t0 = b['catch'](4), b.abrupt('return', []);\n\n case 12:\n case 'end':\n return b.stop();\n }\n }\n }, c, b, [[4, 9]]);\n }));\n return function () {\n return c.apply(this, arguments);\n };\n }());\n}\n\nfunction getSrcmApiStates(a) {\n if (!a) return _promise2.default.resolve([]);\n var b = a.toLowerCase(),\n c = 'https://static-gatsby.web.app/srcmapi/states/' + b.substring(0, 1) + '.json';\n return fetch(c).then(function (a) {\n return a.json();\n }).then(function (a) {\n return a.results.filter(function (a) {\n return !a.name.includes('NOT TO BE USED');\n }).map(function (a) {\n return {\n key: a.id,\n name: a.name + ', ' + a.country\n };\n }).filter(function (a) {\n return a.name.toLowerCase().startsWith(b);\n }).filter(function (a, b) {\n return 10 > b;\n });\n }).catch(function () {\n return [];\n });\n}\n\nfunction getSrcmApiStateId(a) {\n var b = this;\n if (!a) return _promise2.default.resolve([]);\n return fetch('https://static-gatsby.web.app/srcmapi/states/id/' + a + '.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return [{\n key: a.id,\n name: a.name + ', ' + a.country\n }];\n }).catch(function () {\n var c = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function c() {\n var d;\n return _regenerator2.default.wrap(function (b) {\n for (;;) {\n switch (b.prev = b.next) {\n case 0:\n return b.next = 3, getStateIdSrcm(a);\n\n case 3:\n return d = b.sent, b.prev = 4, b.abrupt('return', [d]);\n\n case 9:\n return b.prev = 9, b.t0 = b['catch'](4), b.abrupt('return', []);\n\n case 12:\n case 'end':\n return b.stop();\n }\n }\n }, c, b, [[4, 9]]);\n }));\n return function () {\n return c.apply(this, arguments);\n };\n }());\n}\n\nfunction getSrcmApiCenters(a) {\n if (!a) return _promise2.default.resolve([]);\n var b = a.toLowerCase(),\n c = 'https://static-gatsby.web.app/srcmapi/groups/center/' + b.substring(0, 1) + '.json';\n return fetch(c).then(function (a) {\n return a.json();\n }).then(function (a) {\n return a.results.filter(function (a) {\n return !a.name.includes('NOT TO BE USED');\n }).map(function (a) {\n return {\n key: a.id,\n name: '' + a.name\n };\n }).filter(function (a) {\n return a.name.toLowerCase().startsWith(b);\n }).filter(function (a, b) {\n return 10 > b;\n });\n }).catch(function () {\n return [];\n });\n}\n\nfunction getSrcmApiGroupId(a) {\n var b = this;\n if (!a) return _promise2.default.resolve([]);\n return fetch('https://static-gatsby.web.app/srcmapi/groups/id/' + a + '.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return [{\n key: a.id,\n name: '' + a.name\n }];\n }).catch(function () {\n var a = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function a() {\n return _regenerator2.default.wrap(function (a) {\n for (;;) {\n switch (a.prev = a.next) {\n case 0:\n return a.abrupt('return', []);\n\n case 1:\n case 'end':\n return a.stop();\n }\n }\n }, a, b);\n }));\n return function () {\n return a.apply(this, arguments);\n };\n }());\n}\n\nfunction getSrcmApiCountryId(a) {\n var b = this;\n if (!a) return _promise2.default.resolve([]);\n return fetch('https://static-gatsby.web.app/srcmapi/countries/id/' + a + '.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return [{\n key: a.id,\n name: '' + a.name\n }];\n }).catch(function () {\n var a = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function a() {\n return _regenerator2.default.wrap(function (a) {\n for (;;) {\n switch (a.prev = a.next) {\n case 0:\n return a.abrupt('return', []);\n\n case 1:\n case 'end':\n return a.stop();\n }\n }\n }, a, b);\n }));\n return function () {\n return a.apply(this, arguments);\n };\n }());\n}\n\nfunction getSrcmApiCountries(a) {\n var b = a.toLowerCase();\n return fetch('https://static-gatsby.web.app/srcmapi/countries/all.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return a.results.filter(function (a) {\n return !a.name.includes('NOT TO BE USED');\n }).map(function (a) {\n return {\n key: a.id,\n name: '' + a.name\n };\n }).filter(function (a) {\n return a.name.toLowerCase().startsWith(b);\n });\n }).catch(function () {\n return [{\n key: 358,\n name: 'India'\n }];\n });\n}\n\nfunction getSrcmApiZones(a) {\n var b = a.toLowerCase();\n return fetch('https://static-gatsby.web.app/srcmapi/groups/zone/all.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return a.results.filter(function (a) {\n return !a.name.includes('NOT TO BE USED');\n }).map(function (a) {\n return {\n key: a.id,\n name: '' + a.name\n };\n }).filter(function (a) {\n return a.name.toLowerCase().includes(b);\n });\n }).catch(function () {\n return [{\n key: 1,\n name: 'SRCM'\n }];\n });\n}\n\nfunction getSrcmApiEventCategories(a) {\n var b = a.toLowerCase();\n return fetch('https://static-gatsby.web.app/srcmapi/event-categories/all.json').then(function (a) {\n return a.json();\n }).then(function (a) {\n return a.results.filter(function (a) {\n return !a.name.includes('NOT TO BE USED');\n }).map(function (a) {\n return {\n key: a.id,\n name: '' + a.complete_name\n };\n }).filter(function (a) {\n return a.name.toLowerCase().startsWith(b);\n });\n }).catch(function () {\n return [{\n key: 1,\n name: 'Heartfulness'\n }];\n });\n}\n\nfunction getSrcmApiEventCategoryId() {\n return getSrcmApiEventCategories('');\n}\n\nvar derivedField = function derivedField(a, b) {\n var c;\n return 'gender' === a ? (c = (0, _extends3.default)({}, b, {\n options: _choice_lists.gender_options\n }), {\n type: 'select',\n params: c\n }) : 'age' === a ? (c = (0, _extends3.default)({}, b), c.props = (0, _extends3.default)({}, b.props, {\n max: 99,\n min: 1\n }), {\n type: 'number',\n params: c\n }) : 'srcm_city_id' === a || 'city' === a ? (c = (0, _extends3.default)({}, b, {\n options: [],\n props: (0, _extends3.default)({}, b.props, {\n remoteItemsApi: getSrcmApiCities,\n remoteKeyApi: getSrcmApiCityId\n })\n }), {\n type: 'autosuggest',\n params: c\n }) : 'srcm_event_category_id' === a || 'event-category' === a ? (c = (0, _extends3.default)({}, b, {\n options: [],\n props: (0, _extends3.default)({}, b.props, {\n remoteItemsApi: getSrcmApiEventCategories,\n remoteKeyApi: getSrcmApiEventCategoryId\n })\n }), {\n type: 'autosuggest',\n params: c\n }) : 'srcm_center_id' === a ? (c = (0, _extends3.default)({}, b, {\n options: [],\n props: (0, _extends3.default)({}, b.props, {\n remoteItemsApi: getSrcmApiCenters,\n remoteKeyApi: getSrcmApiGroupId\n })\n }), {\n type: 'autosuggest',\n params: c\n }) : 'srcm_zone_id' === a ? (c = (0, _extends3.default)({}, b, {\n options: [],\n props: (0, _extends3.default)({}, b.props, {\n remoteItemsApi: getSrcmApiZones,\n remoteKeyApi: getSrcmApiGroupId\n })\n }), {\n type: 'autosuggest',\n params: c\n }) : 'srcm_country_id' === a ? (c = (0, _extends3.default)({}, b, {\n options: [],\n props: (0, _extends3.default)({}, b.props, {\n remoteItemsApi: getSrcmApiCountries,\n remoteKeyApi: getSrcmApiCountryId\n })\n }), {\n type: 'autosuggest',\n params: c\n }) : 'srcm_state_id' === a ? (c = (0, _extends3.default)({}, b, {\n options: [],\n props: (0, _extends3.default)({}, b.props, {\n remoteItemsApi: getSrcmApiStates,\n remoteKeyApi: getSrcmApiStateId\n })\n }), {\n type: 'autosuggest',\n params: c\n }) : 'center' === a ? (c = (0, _extends3.default)({}, b, {\n options: _cities.city_options\n }), {\n type: 'autosuggest_object',\n params: c\n }) : 'state' === a ? (c = (0, _extends3.default)({}, b, {\n optionsPromise: {\n promise: function c(a) {\n var b = a.countryName;\n return getStates(b);\n }\n },\n props: (0, _extends3.default)({\n promiseParams: {\n countryName: 'India'\n }\n }, b.props)\n }), {\n type: 'autosuggest',\n params: c\n }) : 'indiastate' === a ? (c = (0, _extends3.default)({}, b, {\n options: _indiastates2.default\n }), {\n type: 'autosuggest',\n params: c\n }) : 'country' === a ? (c = (0, _extends3.default)({}, b, {\n options: _countries2.default\n }), {\n type: 'autosuggest',\n params: c\n }) : 'email' === a ? (c = (0, _extends3.default)({}, b), c.props = (0, _extends3.default)({}, b.props, {\n pattern: _validations.email_regex,\n title: 'valid email id'\n }), {\n type: 'email',\n params: c\n }) : 'abhyasiid' === a ? (c = (0, _extends3.default)({}, b), c.props = (0, _extends3.default)({}, b.props, {\n transform: 'abhyasiid',\n pattern: _validations.abhyasiid_regex,\n title: 'valid SRCM ID or Heartfulness ID'\n }), {\n type: 'text',\n params: c\n }) : 'pnr' === a ? (c = (0, _extends3.default)({}, b), c.props = (0, _extends3.default)({}, b.props, {\n transform: 'pnr',\n pattern: _validations.pnr_regex,\n title: 'valid PNR XX-XXXX-XXXX'\n }), {\n type: 'text',\n params: c\n }) : 'phone' === a ? (c = (0, _extends3.default)({}, b), c.props = (0, _extends3.default)({}, b.props, {\n validator: 'phone'\n }), {\n type: 'text',\n params: c\n }) : {\n type: a,\n params: b\n };\n};\n\nfunction validateForm(a, b, c, e) {\n function g(a) {\n function b(a) {\n //console.log(\"AA\", val);\n if ('date' === e.type || 'datetimetz' === e.type) {\n if ((0, _has2.default)(e, 'props.maxDate') && a > e.props.maxDate) return 'Date outside allowed range: ' + e.label;\n if ((0, _has2.default)(e, 'props.minDate') && a < e.props.minDate) return 'Date outside allowed range: ' + e.label;\n }\n\n return 'phone' === e.type && (0, _default.isnotnull)(a) && !(0, _validations.validatePhoneNumber)(a) ? 'Invalid Phone Number: ' + e.label : (0, _has2.default)(e, 'validator') && (0, _validations.validateField)(e.validator, l, e.name) ? 'Invalid Value: ' + e.label : void 0;\n }\n\n var c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : '',\n e = void 0;\n if ('dynamic' in a && 'function' == typeof a.dynamic ? e = (0, _extends3.default)({}, a, a.dynamic(h)) : Array.isArray(a.dynamic) ? (e = (0, _extends3.default)({}, a), a.dynamic.map(function (b) {\n var c = (0, _slicedToArray3.default)(b, 2),\n d = c[0],\n f = c[1],\n g = d;\n\n if (Array.isArray(d) && (g = d[0]), ['label', 'hide', 'type', 'props', 'subFormFields'].includes(g) || g.startsWith('props.')) {\n var i = (0, _validations.computeRule)(f, h, a.name);\n '##IGNORE##' !== i && (0, _set2.default)(e, d, i);\n }\n })) : e = (0, _extends3.default)({}, a), 'subform:single' === e.type) return void e.subFormFields.map(function (b) {\n return g((0, _extends3.default)({}, b, {\n name: 'string' == typeof e.name ? [e.name, b.name] : e.name.concat([b.name])\n }));\n }); //console.log(\"In Form Validate\", f);\n\n if ('subform:multiple' === e.type) {\n var o = (0, _get2.default)(h, e.name, void 0);\n return void (!o || o.map(function (a, b) {\n return e.subFormFields.map(function (c) {\n return g((0, _extends3.default)({}, c, {\n name: 'string' == typeof e.name ? [e.name, b, c.name] : e.name.concat([b, c.name])\n }));\n });\n }));\n }\n\n var i = 'toggle' === e.type || 'checkbox' === e.type,\n j = (0, _get2.default)(e, 'hide', !1),\n k = (0, _get2.default)(e, ['props', 'required'], !0) && !i && !j && 'statichtml' !== e.type,\n l = (0, _get2.default)(h, e.name, void 0),\n m = !l || Array.isArray(l) && 0 === l.length;\n k && m && d.push('Missing Value: ' + e.label);\n var n = []; //console.log(newval);\n\n n = Array.isArray(l) ? l.map(b) : [b(l)], n.filter(function (a) {\n return !!a;\n }).map(function (a) {\n return d.push(a);\n });\n } //console.log(\"calling form validator\", props.formValidator);\n //alert(JSON.stringify(d));\n\n\n var h = e,\n d = [];\n return (a.map(g), 0 < d.length) ? d.join('
') : 'function' == typeof b ? b(h, c) : b && Array.isArray(b) && (0, _validations.validateConstraints)(b, h);\n}\n\nfunction process_computed(a, b, c) {\n var d = (0, _get2.default)(b, c);\n\n if (!!d) {\n var e = (0, _extends3.default)({}, a);\n return d.map(function (a) {\n var b = (0, _slicedToArray3.default)(a, 2),\n c = b[0],\n d = b[1];\n\n if (Array.isArray(d)) {\n var f = (0, _validations.computeRule)(d, e, c);\n '##IGNORE##' !== f && (0, _set2.default)(e, c, f);\n }\n }), e;\n }\n\n return a;\n}\n\nfunction process_computed_all(a, b) {\n function c(a, b) {\n a.map(function (a) {\n var e;\n if ('subform:single' === a.type) e = b.concat([a.name]), c(a.subFormFields, e);else if ('subform:multiple' === a.type) e = b.concat([a.name, 0]), c(a.subFormFields, e);else if ('computed' in a) {\n e = b.concat([a.name]);\n var f = (0, _validations.computeRule)(a.computed, d, e);\n '##IGNORE##' !== f && (0, _set2.default)(d, e, f);\n }\n });\n }\n\n var d = (0, _extends3.default)({}, a);\n return c(b, []), d;\n}\n\nvar initMain = function initMain(a) {\n function b(a, c) {\n Array.isArray(a) || (void 0, alert('formFields/subFormFields needs to an Array only!!!')), a.map(function (a) {\n var d;\n 'subform:single' === a.type ? (d = c.concat([a.name]), b(a.subFormFields, d)) : 'subform:multiple' === a.type ? (d = c.concat([a.name, 0]), b(a.subFormFields, d)) : (d = c.concat([a.name]), 'defaultValue' in a && (0, _set2.default)(g, d, a.defaultValue), 'computed' in a && (0, _flattenDeep2.default)(a.computed).filter(function (a) {\n return 'string' == typeof a && a.startsWith(':') && !a.startsWith('::');\n }).map(function (a) {\n return a.replace(':', '');\n }).map(function (a) {\n return a.replace('~', '');\n }).map(function (b) {\n var c = (0, _get2.default)(h, b, []);\n c.push([d, a.computed]), (0, _set2.default)(h, b, c);\n }));\n });\n }\n\n var c = a.defaultValues,\n e = a.formFields,\n g = {},\n h = {};\n b(e, []), !!c && 0 < (0, _keys2.default)(c).length && (g = JSON.parse((0, _stringify2.default)(c)));\n var i = process_computed_all(g, e);\n return {\n d: i,\n i: i,\n errors: '',\n saving: !1,\n computed_fields: h\n };\n};\n\nfunction reducer(a, b) {\n var c;\n\n switch (b.type) {\n case 'reset':\n //newd = process_computed(state.d, computed_fields);\n //var newd = process_computed_all(d, formFields);\n return {\n errors: '',\n saving: !1,\n d: a.i\n };\n\n case 'reset_saving':\n return (0, _extends3.default)({}, a, {\n errors: '',\n saving: !1\n });\n\n case 'set_kv':\n return c = (0, _extends3.default)({}, a.d), (0, _set2.default)(c, b.key, b.value), c = process_computed(c, a.computed_fields, b.key), (0, _extends3.default)({}, a, {\n d: c\n });\n\n case 'set_kv_multiple':\n c = (0, _extends3.default)({}, a.d); // Array of values (e.g. multiselect)\n\n var d = (0, _get2.default)(c, b.key, []),\n e = (0, _xor2.default)(d, [b.value]);\n return (0, _set2.default)(c, b.key, e), c = process_computed(c, a.computed_fields, b.key), (0, _extends3.default)({}, a, {\n d: c\n });\n\n case 'saving':\n return (0, _extends3.default)({}, a, {\n errors: '',\n saving: !0\n });\n\n case 'errors':\n return (0, _extends3.default)({}, a, {\n errors: b.msg,\n saving: !1\n });\n }\n\n return a;\n}\n\nvar DynamicForm = function DynamicForm(a) {\n function b(a) {\n o({\n type: 'errors',\n msg: a\n });\n }\n\n function c() {\n o({\n type: 'reset_saving'\n }), a.onDiscard instanceof Function && a.onDiscard();\n }\n\n function e(b) {\n b.preventDefault(), o({\n type: 'reset'\n }), a.onDiscard instanceof Function && a.onDiscard();\n }\n\n function f(a, b) {\n var c = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : 'single';\n 'multiple' === c ? o({\n type: 'set_kv_multiple',\n key: b,\n value: a\n }) : o({\n type: 'set_kv',\n key: b,\n value: a\n });\n }\n\n function g(a) {\n var b = a.name,\n c = a.defaultValue,\n e = a.label,\n f = a.type,\n g = a.listField,\n h = a.subFormFields,\n i = g || 'multiautosuggest' === f || 'multiselect' === f || 'multicheckbox' === f ? [] : 'subform:single' !== f && 'subform:multiple' !== f || !h ? '' : {},\n j = (0, _get2.default)(p, b, i),\n k = (0, _get2.default)(d, b, i);\n return {\n value: j,\n label: e,\n oldValue: k,\n defaultValue: c\n };\n }\n\n function h(a) {\n var b = (0, _get2.default)(p, a, []);\n (0, _set2.default)(p, a), o({\n type: 'set_kv',\n key: a,\n value: [].concat((0, _toConsumableArray3.default)(b), [{}])\n });\n }\n\n function j(a, b) {\n var c = (0, _get2.default)(p, a, []);\n o({\n type: 'set_kv',\n key: a,\n value: c.filter(function (a, c) {\n return c !== b;\n })\n });\n }\n\n function k(b) {\n var c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : -1; // if the required field passed is not in the formFields, m comes as undefined\n\n if (void 0 === b) return null;\n var d = a.inlineForm,\n e = a.printOnly,\n g = b.name,\n i = b.defaultValue,\n l = b.label,\n m = b.computed,\n n = b.hide,\n o = b.type,\n q = b.props,\n r = b.options,\n s = b.optionsPromise,\n t = b.dynamic,\n u = b.listField,\n w = b.subFormFields,\n x = (0, _get2.default)(p, g, i || (u || 'multiautosuggest' === o || 'multiselect' === o || 'multicheckbox' === o ? [] : ('subform:single' === o || 'subform:multiple' === o) && w ? {} : '')),\n y = g.toString(); //console.log(\"In renderField: \", m, kk, name, \"VALUE:\", value);\n // recursion for subforms\n\n if (('subform:single' === o || 'subform:multiple' === o) && !!w) {\n var v = function v(a, b) {\n return 'object' === ('undefined' == typeof d ? 'undefined' : (0, _typeof3.default)(d)) && 'container' in d ? d.container(a, b) : a + b;\n },\n z = function z(a) {\n return 'object' === ('undefined' == typeof d ? 'undefined' : (0, _typeof3.default)(d)) && 'row' in d ? d.row(a) : a;\n },\n A = function A(a) {\n return 'object' === ('undefined' == typeof d ? 'undefined' : (0, _typeof3.default)(d)) && 'col' in d ? d.col(a) : a;\n },\n B = function B(a) {\n return 'object' === ('undefined' == typeof d ? 'undefined' : (0, _typeof3.default)(d)) && 'headcol' in d ? d.headcol(a) : a;\n },\n C = d.nolabels;\n\n if ('subform:single' === o) {\n var F = v(z(w.map(function (a, b) {\n return B(a.label, y + c + 'h' + b);\n }), y + c + 'r-1'), z(w.map(function (a, b) {\n return A(k((0, _extends3.default)({}, a, {\n name: 'string' == typeof g ? [g, a.name] : g.concat([a.name])\n }, C ? {\n label: ''\n } : {}), y + 'k' + c + 'f' + b), y + 'k' + c + 'c' + b);\n }), y + c + 'r-2'));\n return F;\n }\n\n return v(z(_react2.default.createElement(_react2.default.Fragment, null, B('', y + c + 's'), w.map(function (a, b) {\n return B(a.label, y + c + 'h' + b);\n })), y + c + 'r-1'), _react2.default.createElement(_react2.default.Fragment, null, x.map(function (a, b) {\n return z(_react2.default.createElement(_react2.default.Fragment, null, B(b + 1, y + 'k' + c + 'v' + b + 's'), w.map(function (a, d) {\n return A(k((0, _extends3.default)({}, a, {\n name: 'string' == typeof g ? [g, b, a.name] : g.concat([b, a.name])\n }, C ? {\n label: ''\n } : {}), y + 'k' + c + 'v' + b + 'f' + d), y + 'k' + c + 'v' + b + 'c' + d);\n }), (0, _get2.default)(q, 'delete', !1) && B(_react2.default.createElement('span', {\n onClick: function a() {\n return j(g, b);\n }\n }, _react2.default.createElement(_default.DeleteButton, null)), y + 'k' + c + 'v' + b + 'd')), y + 'k' + c + 'v' + b);\n }), (0, _get2.default)(q, 'add', !1) && _react2.default.createElement('span', {\n onClick: function a() {\n return h(g);\n }\n }, _react2.default.createElement(_default.AddButton, null))));\n }\n\n q || (q = {}), (0, _set2.default)(q, 'required', (0, _get2.default)(q, 'required', !0));\n var D = {\n name: g,\n value: x,\n label: l,\n hide: n,\n props: q,\n type: o || 'text',\n setKV: f,\n subFormFields: w\n };\n if (Array.isArray(r) && (D.options = r), !s || (D.optionsPromise = s), 'function' == typeof t ? D = (0, _extends3.default)({}, D, t(p, g)) : Array.isArray(t) && (D = (0, _extends3.default)({}, D, {\n props: (0, _extends3.default)({}, D.props)\n }), t.map(function (a) {\n var b = (0, _slicedToArray3.default)(a, 2),\n c = b[0],\n d = b[1],\n e = c;\n\n if (Array.isArray(c) && (e = c[0]), ['label', 'hide', 'type', 'props', 'subFormFields'].includes(e) || e.startsWith('props.')) {\n var f = (0, _validations.computeRule)(d, p, g);\n '##IGNORE##' !== f && (0, _set2.default)(D, c, f);\n }\n }), void 0), 'hide' in D && D.hide) return null;\n if (('noInput' in q && q.noInput || !!m) && ((0, _set2.default)(D.props, 'readOnly', !0), (0, _set2.default)(D.props, 'borderless', !0)), (0, _get2.default)(a, 'hideSubmit') && (0, _set2.default)(D.props, 'hideSubmit', !0), 'gridInline' in q && !!q.gridInline && ((0, _set2.default)(D.props, ['styles', 'root', 'width'], '' + q.gridInline), (0, _set2.default)(D.props, ['styles', 'root', 'display'], 'inline-grid')), 'gridWidth' in q && !!q.gridWidth && (0, _set2.default)(D.props, ['styles', 'root', 'width'], '' + q.gridWidth), e && 'statichtml' !== D.type) return 'function' == typeof e ? e(D.label, printField(D.type, D.value, D.options), 'k' + D.name) : _react2.default.createElement('div', {\n key: 'k' + D.name\n }, _react2.default.createElement('b', null, D.label), ': ', printField(D.type, D.value, D.options));\n var E = derivedField(D.type, D); //console.log(X.params);\n\n return (0, _default.fieldSwitcher)(c, E.type, E.params, d, u);\n }\n\n var l = (0, _react.useReducer)(reducer, initMain(a)),\n m = (0, _slicedToArray3.default)(l, 2),\n n = m[0],\n o = m[1],\n p = n.d,\n d = n.i,\n i = n.errors,\n q = n.saving,\n r = a.formTitle,\n s = a.formClassName,\n t = a.formStyle; //console.log(\"Dynamic Form\", props);\n\n return _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement('form', {\n className: s,\n style: t ? t : {},\n onSubmit: function onSubmit(d) {\n d.preventDefault(), d.stopPropagation();\n var e = validateForm(a.formFields, a.formValidator, a.defaultValues, p);\n return !e ? void (o({\n type: 'saving'\n }), a.onSubmit instanceof Function && a.onSubmit(p, c, b)) : void o({\n type: 'errors',\n msg: e\n });\n }\n }, _react2.default.createElement(ErrorBoundary, null, !!r && _react2.default.createElement('div', null, ' ', r, ' '), function () {\n var b = a.formFields,\n c = a.formLayout,\n f = a.buttons,\n h = a.hideSubmit,\n j = a.hideDiscard,\n l = a.printOnly,\n m = a.newFormLayout,\n n = !l;\n 'object' !== ('undefined' == typeof f ? 'undefined' : (0, _typeof3.default)(f)) && (f = {});\n\n var o = f,\n r = o.submitButton,\n s = o.discardButton,\n t = o.displayErrors,\n u = o.displayLoading,\n v = n && i && (t ? t(i) : _react2.default.createElement(_default.Errors, {\n text: i\n })),\n w = n && q && (u ? u('saving') : _react2.default.createElement(_default.Loading, null)),\n x = n && !(h || q) && (r || _react2.default.createElement(_default.SubmitButton, null)),\n y = n && !(j || q) && _react2.default.createElement('span', {\n onClick: e\n }, s ? s : _react2.default.createElement(_default.DiscardButton, null));\n\n if (null !== m && m !== void 0 && m instanceof Function) {\n var z = function z(a) {\n return k(b.find(function (b) {\n return b.name === a;\n }));\n },\n A = function A(a) {\n return g(b.find(function (b) {\n return b.name === a;\n }));\n },\n B = function B() {\n return (0, _stringify2.default)(d) !== (0, _stringify2.default)(p);\n },\n C = m({\n getField: A,\n renderField: z,\n renderErrors: v,\n renderLoading: w,\n renderSubmitBtn: x,\n renderDiscardBtn: y,\n isDirty: B\n });\n\n return C;\n }\n\n if (null !== c && void 0 !== c && c instanceof Function) {\n var D = function D(a) {\n return k(b.find(function (b) {\n return b.name === a;\n }));\n },\n E = c(D, v, w, x, y);\n\n return E;\n }\n\n var F = b.map(k);\n return _react2.default.createElement(_react2.default.Fragment, null, F, n && _react2.default.createElement('br', null), n && _react2.default.createElement('br', null), i && v, q && w, x, y);\n }())));\n},\n printField = exports.printField = function (a, b, c) {\n if (Array.isArray(b)) return b.map(function (b) {\n return printField(a, b, c);\n }).join(', ');\n if ('boolean' == typeof b) return (0, _formatting.doFormatYesNo)(b);\n if ('date' === a) return (0, _formatting.doFormatShortDate)(b);\n if ('datetimetz' === a) return (0, _formatting.doFormat)('datelocale', b);\n if ('firebasefile' === a) return (0, _formatting.doFormat)('firebaseobject', b);\n if ('htmlfield' === a) return _react2.default.createElement('div', {\n dangerouslySetInnerHTML: b\n });\n\n if ('object' === ('undefined' == typeof c ? 'undefined' : (0, _typeof3.default)(c))) {\n var d = c.find(function (a) {\n return a.name === b;\n });\n if (!!d) return (0, _get2.default)(d, 'label', b);\n }\n\n return b;\n};\n\nexports.default = DynamicForm;\n\nvar DynamicField = exports.DynamicField = function (a) {\n var b = derivedField(a.type, a),\n c = b.type,\n d = b.params,\n e = (0, _extends3.default)({}, d);\n return e.setKV = function (b) {\n return a.onChange ? a.onChange(b) : {};\n }, (0, _default.fieldSwitcher)(a.name, c, e, !1);\n},\n ErrorBoundary = function (a) {\n function b(a) {\n (0, _classCallCheck3.default)(this, b);\n var c = (0, _possibleConstructorReturn3.default)(this, (b.__proto__ || (0, _getPrototypeOf2.default)(b)).call(this, a));\n return c.state = {\n hasError: !1\n }, c;\n }\n\n return (0, _inherits3.default)(b, a), (0, _createClass3.default)(b, [{\n key: 'componentDidCatch',\n value: function a() {}\n }, {\n key: 'render',\n value: function a() {\n return this.state.hasError ? _react2.default.createElement('h1', null, 'Something went wrong.') : this.props.children;\n }\n }], [{\n key: 'getDerivedStateFromError',\n value: function a() {\n // Update state so the next render will show the fallback UI.\n return {\n hasError: !0\n };\n }\n }]), b;\n}(_react2.default.Component); // export const renderDynamicField = (m, kidx = undefined) => {\n// // if the required field passed is not in the formFields, m comes as undefined\n// if (m === undefined) {\n// return null;\n// }\n// let { name, defaultValue, label, type, props, options, onChange } = m;\n// let value = defaultValue || \"\";\n// if (!props) {\n// props = {};\n// if (!props.required) {\n// props.required = true;\n// }\n// }\n// let params = { name, value, label, props: props, type: type || \"text\", onChange };\n// if (Array.isArray(options)) {\n// params.options = options;\n// }\n// let X = derivedField(type, params);\n// return fieldSwitcher(kidx, X.type, X.params, false);\n// }","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: !0\n}), exports.countries_dict = exports.city_options = void 0;\n\nvar _cities = require('./cities.json'),\n _cities2 = _interopRequireDefault(_cities),\n _zones = require('./zones.json'),\n _zones2 = _interopRequireDefault(_zones),\n _sortBy = require('lodash/sortBy'),\n _sortBy2 = _interopRequireDefault(_sortBy),\n _memoize = require('lodash/memoize'),\n _memoize2 = _interopRequireDefault(_memoize);\n\nfunction _interopRequireDefault(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n}\n\nvar get_zone = (0, _memoize2.default)(function (a) {\n var b = _zones2.default.find(function (b) {\n return b.zone === a;\n });\n\n return !b ? {\n zone: 'NA',\n state: 'NA',\n country: 'NA'\n } : b;\n}),\n city_options = exports.city_options = (0, _sortBy2.default)(_cities2.default.map(function (b) {\n return {\n name: b.city,\n data: get_zone(b.zone)\n };\n}), 'name'),\n countries_dict = exports.countries_dict = {\n India: '358',\n Andorra: '254',\n \"United Arab Emirates\": '255',\n Afghanistan: '256',\n \"Antigua and Barbuda\": '257',\n Anguilla: '258',\n Albania: '259',\n Armenia: '260',\n \"Netherlands Antilles\": '261',\n Angola: '262',\n Antarctica: '263',\n Argentina: '264',\n \"American Samoa\": '265',\n Austria: '266',\n Australia: '267',\n Aruba: '268',\n \"Åland Islands\": '269',\n Azerbaijan: '270',\n \"Bosnia and Herzegovina\": '271',\n Barbados: '272',\n Bangladesh: '273',\n Belgium: '274',\n \"Burkina Faso\": '275',\n Bulgaria: '276',\n Bahrain: '277',\n Burundi: '278',\n Benin: '279',\n \"Saint Barthélémy\": '280',\n Bermuda: '281',\n \"Brunei Darussalam\": '282',\n Bolivia: '283',\n \"Bonaire, Sint Eustatius and Saba\": '284',\n Brazil: '285',\n Bahamas: '286',\n Bhutan: '287',\n \"Bouvet Island\": '288',\n Botswana: '289',\n Belarus: '290',\n Belize: '291',\n Canada: '292',\n \"Cocos (Keeling) Islands\": '293',\n \"Central African Republic\": '294',\n \"Democratic Republic of the Congo\": '295',\n Congo: '296',\n Switzerland: '297',\n \"Côte d'Ivoire\": '298',\n \"Cook Islands\": '299',\n Chile: '300',\n Cameroon: '301',\n China: '302',\n Colombia: '303',\n \"Costa Rica\": '304',\n Cuba: '305',\n \"Cape Verde\": '306',\n Curaçao: '307',\n \"Christmas Island\": '308',\n Cyprus: '309',\n \"Czech Republic\": '310',\n Germany: '311',\n Djibouti: '312',\n Denmark: '313',\n Dominica: '314',\n \"Dominican Republic\": '315',\n Algeria: '316',\n Ecuador: '317',\n Estonia: '318',\n Egypt: '319',\n \"Western Sahara\": '320',\n Eritrea: '321',\n Spain: '322',\n Ethiopia: '323',\n Finland: '324',\n Fiji: '325',\n \"Falkland Islands\": '326',\n Micronesia: '327',\n \"Faroe Islands\": '328',\n France: '329',\n Gabon: '330',\n Grenada: '331',\n Georgia: '332',\n \"French Guiana\": '333',\n Ghana: '334',\n Gibraltar: '335',\n Guernsey: '336',\n Greenland: '337',\n Gambia: '338',\n Guinea: '339',\n Guadeloupe: '340',\n \"Equatorial Guinea\": '341',\n Greece: '342',\n \"South Georgia and the South Sandwich Islands\": '343',\n Guatemala: '344',\n Guam: '345',\n \"Guinea-Bissau\": '346',\n Guyana: '347',\n \"Hong Kong\": '348',\n \"Heard Island and McDonald Islands\": '349',\n Honduras: '350',\n Croatia: '351',\n Haiti: '352',\n Hungary: '353',\n Indonesia: '354',\n Ireland: '355',\n Israel: '356',\n \"Isle of Man\": '357',\n \"British Indian Ocean Territory\": '359',\n Iraq: '360',\n Iran: '361',\n Iceland: '362',\n Italy: '363',\n Jersey: '364',\n Jamaica: '365',\n Jordan: '366',\n Japan: '367',\n Kenya: '368',\n Kyrgyzstan: '369',\n Cambodia: '370',\n Kiribati: '371',\n Comoros: '372',\n \"Saint Kitts and Nevis\": '373',\n \"North Korea\": '374',\n \"South Korea\": '375',\n Kuwait: '376',\n \"Cayman Islands\": '377',\n Kazakhstan: '378',\n Laos: '379',\n Lebanon: '380',\n \"Saint Lucia\": '381',\n Liechtenstein: '382',\n \"Sri Lanka\": '383',\n Liberia: '384',\n Lesotho: '385',\n Lithuania: '386',\n Luxembourg: '387',\n Latvia: '388',\n Libya: '389',\n Morocco: '390',\n Monaco: '391',\n Moldova: '392',\n Montenegro: '393',\n \"Saint Martin (French part)\": '394',\n Madagascar: '395',\n \"Marshall Islands\": '396',\n \"Macedonia, the former Yugoslav Republic of\": '397',\n Mali: '398',\n Myanmar: '399',\n Mongolia: '400',\n Macau: '401',\n \"Northern Mariana Islands\": '402',\n Martinique: '403',\n Mauritania: '404',\n Montserrat: '405',\n Malta: '406',\n Mauritius: '407',\n Maldives: '408',\n Malawi: '409',\n Mexico: '410',\n Malaysia: '411',\n Mozambique: '412',\n Namibia: '413',\n \"New Caledonia\": '414',\n Niger: '415',\n \"Norfolk Island\": '416',\n Nigeria: '417',\n Nicaragua: '418',\n Netherlands: '419',\n Norway: '420',\n Nepal: '421',\n Nauru: '422',\n \"Neutral Zone\": '423',\n Niue: '424',\n \"New Zealand\": '425',\n Oman: '426',\n Panama: '427',\n Peru: '428',\n \"French Polynesia\": '429',\n \"Papua New Guinea\": '430',\n Philippines: '431',\n Pakistan: '432',\n Poland: '433',\n \"Saint Pierre and Miquelon\": '434',\n \"Pitcairn Islands\": '435',\n \"Puerto Rico\": '436',\n \"State of Palestine\": '437',\n Portugal: '438',\n Palau: '439',\n Paraguay: '440',\n Qatar: '441',\n Réunion: '442',\n Romania: '443',\n Serbia: '444',\n \"Russian Federation\": '445',\n Rwanda: '446',\n \"Saudi Arabia\": '447',\n \"Solomon Islands\": '448',\n Seychelles: '449',\n Sudan: '450',\n Sweden: '451',\n Singapore: '452',\n \"Saint Helena, Ascension and Tristan da Cunha\": '453',\n Slovenia: '454',\n \"Svalbard and Jan Mayen\": '455',\n Slovakia: '456',\n \"Sierra Leone\": '457',\n \"San Marino\": '458',\n Senegal: '459',\n Somalia: '460',\n Suriname: '461',\n \"South Sudan\": '462',\n \"São Tomé and Príncipe\": '463',\n \"El Salvador\": '464',\n \"Sint Maarten (Dutch part)\": '465',\n Syria: '466',\n Swaziland: '467',\n \"Turks and Caicos Islands\": '468',\n Chad: '469',\n \"French Southern Territories\": '470',\n Togo: '471',\n Thailand: '472',\n Tajikistan: '473',\n Tokelau: '474',\n Turkmenistan: '475',\n Tunisia: '476',\n Tonga: '477',\n \"East Timor\": '478',\n Turkey: '479',\n \"Trinidad and Tobago\": '480',\n Tuvalu: '481',\n Taiwan: '482',\n Tanzania: '483',\n Ukraine: '484',\n Uganda: '485',\n \"United Kingdom\": '486',\n \"USA Minor Outlying Islands\": '487',\n \"United States\": '488',\n Uruguay: '489',\n Uzbekistan: '490',\n \"Holy See (Vatican City State)\": '491',\n \"Saint Vincent and the Grenadines\": '492',\n Venezuela: '493',\n \"Virgin Islands (British)\": '494',\n \"Virgin Islands (USA)\": '495',\n Vietnam: '496',\n Vanuatu: '497',\n \"Wallis and Futuna\": '498',\n Samoa: '499',\n Yemen: '500',\n Mayotte: '501',\n Yugoslavia: '502',\n \"South Africa\": '503',\n Zambia: '504',\n Zaire: '505',\n Zimbabwe: '506'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n}), exports.genNewUuid = void 0, exports.daysDiff = daysDiff, exports.daysDiffAbs = daysDiffAbs;\n\nvar _formatting = require(\"./formatting\"),\n _uuid = require(\"uuid\"),\n genNewUuid = exports.genNewUuid = _uuid.v4;\n\nfunction daysDiff(a, b) {\n var c = (0, _formatting.formatOdooDate2Sys)(a),\n d = (0, _formatting.formatOdooDate2Sys)(b),\n e = Math.round((c - d) / 86400000);\n return e;\n}\n\nfunction daysDiffAbs(a, b) {\n var c = daysDiff(a, b);\n return 0 < c ? c : -c;\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: !0\n}), exports.validateAbhyasiId = exports.validatePNR = exports.validateEmail = exports.email_regex = exports.pnr_regex = exports.abhyasiid_regex = void 0;\n\nvar _typeof2 = require('babel-runtime/helpers/typeof'),\n _typeof3 = _interopRequireDefault(_typeof2),\n _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'),\n _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.validateRE = validateRE, exports.validatePhoneNumber = validatePhoneNumber, exports.computeRule = computeRule, exports.validateConstraints = validateConstraints, exports.validateField = validateField;\n\nvar _googleLibphonenumber = require('google-libphonenumber'),\n _get = require('lodash/get'),\n _get2 = _interopRequireDefault(_get),\n _utils = require('./utils'),\n _formatting = require('./formatting');\n\nfunction _interopRequireDefault(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n}\n\nvar abhyasiid_regex = exports.abhyasiid_regex = '^([a-zA-Z]{6}[0-9]{3}|[HABhab]{1}[0-9]{8})$',\n pnr_regex = exports.pnr_regex = '^[0-9A-Z]{2}-[A-Z]{4}-[A-Z]{4}$',\n email_regex = exports.email_regex = '(([^<>()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\"]+(\\\\.[^<>()\\\\[\\\\]\\\\\\\\.,;:\\\\s@\"]+)*)|(\".+\"))@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\])|(([a-zA-Z\\\\-0-9]+\\\\.)+[a-zA-Z]{2,}))';\n\nfunction validateRE(a, b) {\n var c = RegExp(a);\n return c.test(b + '');\n}\n\nfunction validatePhoneNumber(a) {\n if (validateRE(/\\d{10}/, a)) // valid 10 digit format\n return !0;\n var b = !1;\n\n try {\n var c = _googleLibphonenumber.PhoneNumberUtil.getInstance();\n\n b = c.isValidNumber(c.parse(a));\n } catch (a) {\n b = !1;\n }\n\n return b;\n}\n\nvar validateEmail = exports.validateEmail = function (a) {\n return validateRE(email_regex, a);\n},\n validatePNR = exports.validatePNR = function (a) {\n return validateRE(pnr_regex, a);\n},\n validateAbhyasiId = exports.validateAbhyasiId = function (a) {\n return validateRE(abhyasiid_regex, a);\n};\n\nfunction computeRule(a, b, c) {\n // console.log(\"ComputeRule\", rule, state, at_element);\n // format of a rule\n // [ [\":variable\", \"+\", \"string\"], \"-\", 27 ]\n // state is dict containing :variable as a key\n var d = /^\\d\\d\\d\\d-\\d\\d-\\d\\d$/,\n e = [];\n 'string' == typeof c ? e = [c] : Array.isArray(c) && (e = [].concat((0, _toConsumableArray3.default)(c))), e.splice(e.length - 1, 1);\n\n var f = function f(a) {\n if (Array.isArray(a)) return g(a);\n if (a instanceof Date) return (0, _utils.daysDiff)((0, _formatting.formatSys2OdooDate)(a), '1980-01-01');\n\n if ('string' == typeof a) {\n if (a.startsWith(':')) {\n var c;\n return a.startsWith(':~') ? (c = a.substring(2), c = [].concat((0, _toConsumableArray3.default)(e), [c]), void 0) : c = a.substring(1), ':TODAY' === c ? (0, _utils.daysDiff)((0, _formatting.formatSys2OdooDate)(new Date()), '1980-01-01') : ':TODAY_SHORT' === c ? (0, _formatting.formatSys2OdooDate)(new Date()) : ':TODAY_YEAR' === c ? new Date().getFullYear() : d.test((0, _get2.default)(b, c, '')) ? (0, _utils.daysDiff)((0, _get2.default)(b, c), '1980-01-01') : (0, _get2.default)(b, c);\n }\n\n return d.test(a) ? (0, _utils.daysDiff)(a, '1980-01-01') : a;\n }\n\n return a;\n },\n g = function g(c) {\n var d = f(c[0]),\n a = c[1],\n e = f(c[2]); //console.log(\"a\", a, \"op\", op, \"b\", b);\n\n return 'IF' === a ? e ? d : null : 'IS' === a ? 'SET' === e || 'NOTNULL' === e ? !!d : 'EMPTY' === e || 'NULL' === e ? !d : 'ARRAY' === e ? Array.isArray(d) : d === e : 'IN' === a ? 'string' == typeof e ? -1 < e.search(d) : 'object' === ('undefined' == typeof e ? 'undefined' : (0, _typeof3.default)(e)) ? d in e : null : 'LIKE' === a ? validateRE(e, d) : '+' === a ? d + e : '-' === a ? d - e : '/' === a ? Math.round(d / e) : '*' === a ? d * e : '%' === a ? d % e : '>' === a ? d > e : '>=' === a ? d > e : '<' === a ? d < e : '<=' === a ? d <= e : '==' === a ? d == e : '!=' === a ? d != e : '&&' === a ? d && e : '||' === a ? d || e : 'XOR' === a ? d ? !e : e : 'XAND' === a ? d ? e : !e : '=>' === a ? !d || e : 'IF' === a ? !!e && d : 'ELSE' === a ? d ? d : e : 'SWITCH_DICT' === a ? 'string' == typeof d && 'object' === ('undefined' == typeof e ? 'undefined' : (0, _typeof3.default)(e)) ? d in e ? e[d] : '##DEFAULT##' in e ? e['##DEFAULT##'] : '##IGNORE##' : '##IGNORE##' : void 0;\n };\n\n return g(a);\n}\n/*\nFormat of Constraints\ntriplet style\ncond is [['a', '==', 'a'], '&&', [':b', '!=', 21]]\n[ {conds: [\"is_prefect\", \"=\", true], msg: \"Participants should be a Prefect\"}\n*/\n\n\nfunction validateConstraints(a, b) {\n var c = [];\n\n try {\n a.map(function (a) {\n var d = a.conds,\n e = a.msg;\n d && b || c.push('Invalid Constraints');\n var f = computeRule(d, b, []);\n void 0, !0 === f || c.push(e);\n });\n } catch (a) {\n c.push('Invalid Constraints: ' + a);\n }\n\n return 0 < c.length ? c.toString() : '';\n}\n\nfunction validateField(a, b, c) {\n if (!a) return !1;\n\n try {\n var d = computeRule(a, {\n value: b\n }, c);\n return !(d && '##IGNORE##' !== d);\n } catch (a) {\n return alert(a), !0;\n }\n}","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nexport default v1;","import bytesToUuid from './bytesToUuid.js';\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n var generateUUID = function generateUUID(value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || bytesToUuid(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) {\n W[t] = M[i][t];\n }\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@uifabric/set-version';\nsetVersion('@uifabric/react-hooks', '7.13.12');","import { Async } from '@uifabric/utilities';\nimport * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\n\nexport function useAsync() {\n var async = useConst(function () {\n return new Async();\n }); // Function that returns a function in order to dispose the async instance on unmount\n\n React.useEffect(function () {\n return function () {\n return async.dispose();\n };\n }, [async]);\n return async;\n}","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\n\nexport function useBoolean(initialState) {\n var _a = React.useState(initialState),\n value = _a[0],\n setValue = _a[1]; // Storing the value in a ref is redundant but allows the `toggle` callback to have a\n // constant identity, which overall is probably better for consumers' perf.\n\n\n var valueRef = React.useRef(value);\n var setTrue = useConst(function () {\n return function () {\n setValue(true);\n valueRef.current = true;\n };\n });\n var setFalse = useConst(function () {\n return function () {\n setValue(false);\n valueRef.current = false;\n };\n });\n var toggle = useConst(function () {\n return function () {\n return valueRef.current ? setFalse() : setTrue();\n };\n });\n return [value, {\n setTrue: setTrue,\n setFalse: setFalse,\n toggle: toggle\n }];\n}","import * as React from 'react';\n/**\n * @deprecated Deprecated due to potential for misuse (see package readme).\n * Use `React.useCallback` instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function useConstCallback(callback) {\n var ref = React.useRef();\n\n if (!ref.current) {\n ref.current = callback;\n }\n\n return ref.current;\n}","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n var _a = React.useState(defaultUncontrolledValue),\n value = _a[0],\n setValue = _a[1];\n\n var isControlled = useConst(controlledValue !== undefined);\n var currentValue = isControlled ? controlledValue : value; // Duplicate the current value and onChange in refs so they're accessible from\n // setValueOrCallOnChange without creating a new callback every time\n\n var valueRef = React.useRef(currentValue);\n var onChangeRef = React.useRef(onChange);\n React.useEffect(function () {\n valueRef.current = currentValue;\n onChangeRef.current = onChange;\n }); // To match the behavior of the setter returned by React.useState, this callback's identity\n // should never change. This means it MUST NOT directly reference variables that can change.\n\n var setValueOrCallOnChange = useConst(function () {\n return function (update, ev) {\n // Assuming here that TValue is not a function, because a controllable value will typically\n // be something a user can enter as input\n var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n\n if (onChangeRef.current) {\n onChangeRef.current(ev, newValue);\n }\n\n if (!isControlled) {\n setValue(newValue);\n }\n };\n });\n return [currentValue, setValueOrCallOnChange];\n}","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to force update a function component by updating a dummy state.\n */\n\nexport function useForceUpdate() {\n var _a = React.useState(0),\n setValue = _a[1];\n\n var forceUpdate = useConst(function () {\n return function () {\n return setValue(function (value) {\n return ++value;\n });\n };\n });\n return forceUpdate;\n}","import * as React from 'react';\nimport { getId } from '@uifabric/utilities/lib/getId';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\n\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n\n return ref.current;\n}","import { __spreadArrays } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\n\nexport function useMergedRefs() {\n var refs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArrays(refs));\n return mergedCallback;\n}","import { on } from '@uifabric/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\n\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n\n if (!actualElement) {\n return;\n }\n\n var dispose = on(actualElement, eventName, function (ev) {\n return callbackRef.current(ev);\n }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}","import * as React from 'react';\n/**\n * Creates a ref, and calls a callback whenever the ref changes to a non-null value. The callback can optionally return\n * a cleanup function that'll be called before the value changes, and when the ref is unmounted.\n *\n * This can be used to work around a limitation that useEffect cannot depend on `ref.current` (see\n * https://github.com/facebook/react/issues/14387#issuecomment-503616820).\n *\n * Usage example:\n * ```ts\n * const myRef = useRefEffect(element => {\n * ...\n * return () => { ... cleanup ... };\n * });\n * ```\n * ```jsx\n *
\n * ```\n *\n * @param callback - Called whenever the ref's value changes to non-null. Can optionally return a cleanup function.\n * @param initial - (Optional) The initial value for the ref.\n *\n * @returns A function that should be called to set the ref's value. The object also has a `.current` member that can be\n * used to access the ref's value (like a normal RefObject). It can be hooked up to an element's `ref` property.\n */\n\nexport function useRefEffect(callback, initial) {\n if (initial === void 0) {\n initial = null;\n }\n\n var data = React.useRef({\n ref: Object.assign(function (value) {\n if (data.ref.current !== value) {\n if (data.cleanup) {\n data.cleanup();\n data.cleanup = undefined;\n }\n\n data.ref.current = value;\n\n if (value !== null) {\n data.cleanup = data.callback(value);\n }\n }\n }, {\n current: initial\n }),\n callback: callback\n }).current;\n data.callback = callback;\n return data.ref;\n}","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setInterval` which automatically handles disposal.\n */\n\nexport var useSetInterval = function useSetInterval() {\n var intervalIds = useConst({});\n React.useEffect(function () {\n return function () {\n for (var _i = 0, _a = Object.keys(intervalIds); _i < _a.length; _i++) {\n var id = _a[_i]; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n clearInterval(id);\n }\n };\n }, // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [intervalIds]);\n return useConst({\n setInterval: function (_setInterval) {\n function setInterval(_x, _x2) {\n return _setInterval.apply(this, arguments);\n }\n\n setInterval.toString = function () {\n return _setInterval.toString();\n };\n\n return setInterval;\n }(function (func, duration) {\n var id = setInterval(func, duration);\n intervalIds[id] = 1;\n return id;\n }),\n clearInterval: function (_clearInterval) {\n function clearInterval(_x3) {\n return _clearInterval.apply(this, arguments);\n }\n\n clearInterval.toString = function () {\n return _clearInterval.toString();\n };\n\n return clearInterval;\n }(function (id) {\n delete intervalIds[id];\n clearInterval(id);\n })\n });\n};","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\n\nexport var useSetTimeout = function useSetTimeout() {\n var timeoutIds = useConst({}); // Cleanup function.\n\n React.useEffect(function () {\n return function () {\n for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n var id = _a[_i]; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n clearTimeout(id);\n }\n };\n }, // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [timeoutIds]); // Return wrapper which will auto cleanup.\n\n return useConst({\n setTimeout: function (_setTimeout) {\n function setTimeout(_x, _x2) {\n return _setTimeout.apply(this, arguments);\n }\n\n setTimeout.toString = function () {\n return _setTimeout.toString();\n };\n\n return setTimeout;\n }(function (func, duration) {\n var id = setTimeout(func, duration);\n timeoutIds[id] = 1;\n return id;\n }),\n clearTimeout: function (_clearTimeout) {\n function clearTimeout(_x3) {\n return _clearTimeout.apply(this, arguments);\n }\n\n clearTimeout.toString = function () {\n return _clearTimeout.toString();\n };\n\n return clearTimeout;\n }(function (id) {\n delete timeoutIds[id];\n clearTimeout(id);\n })\n });\n};","import { getDocument } from '@uifabric/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\n\nexport function useTarget(target, hostElement) {\n var _a;\n\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n\n var targetWindow = useWindow(); // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = (_a = hostElement) === null || _a === void 0 ? void 0 : _a.current;\n\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n } else if ('stopPropagation' in target) {\n targetRef.current = target;\n } else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n } else if ('current' in target) {\n targetRef.current = target.current;\n } else {\n targetRef.current = target;\n }\n }\n\n previousTargetProp.current = target;\n }\n\n return [targetRef, targetWindow];\n}","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { warn, warnControlledUsage, warnConditionallyRequiredProps, warnDeprecations, warnMutuallyExclusive } from '@uifabric/utilities/lib/warn';\nimport { usePrevious } from './usePrevious';\nimport { useConst } from './useConst';\nvar warningId = 0;\n/**\n * Only in development mode, display console warnings when certain conditions are met.\n * Note that all warnings except `controlledUsage` will only be shown on first render\n * (new `controlledUsage` warnings may be shown later due to prop changes).\n */\n\nexport function useWarnings(options) {\n if (process.env.NODE_ENV !== 'production') {\n var name_1 = options.name,\n props = options.props,\n _a = options.other,\n other = _a === void 0 ? [] : _a,\n conditionallyRequired = options.conditionallyRequired,\n deprecations = options.deprecations,\n mutuallyExclusive = options.mutuallyExclusive,\n controlledUsage = options.controlledUsage;\n /* eslint-disable react-hooks/rules-of-hooks -- build-time conditional */\n\n var hasWarnedRef = React.useRef(false);\n var componentId = useConst(function () {\n return \"useWarnings_\" + warningId++;\n });\n var oldProps = usePrevious(props);\n /* eslint-enable react-hooks/rules-of-hooks */\n // Warn synchronously (not in useEffect) on first render to make debugging easier.\n\n if (!hasWarnedRef.current) {\n hasWarnedRef.current = true;\n\n for (var _i = 0, other_1 = other; _i < other_1.length; _i++) {\n var warning = other_1[_i];\n warn(warning);\n }\n\n if (conditionallyRequired) {\n for (var _b = 0, conditionallyRequired_1 = conditionallyRequired; _b < conditionallyRequired_1.length; _b++) {\n var req = conditionallyRequired_1[_b];\n warnConditionallyRequiredProps(name_1, props, req.requiredProps, req.conditionalPropName, req.condition);\n }\n }\n\n deprecations && warnDeprecations(name_1, props, deprecations);\n mutuallyExclusive && warnMutuallyExclusive(name_1, props, mutuallyExclusive);\n } // Controlled usage warnings may be displayed on either first or subsequent renders due to\n // prop changes. Note that it's safe to run this synchronously (not in useEffect) even in\n // concurrent mode because `warnControlledUsage` internally tracks which warnings have been\n // displayed for each component instance (so nothing will be displayed twice).\n\n\n controlledUsage && warnControlledUsage(__assign(__assign({}, controlledUsage), {\n componentId: componentId,\n props: props,\n componentName: name_1,\n oldProps: oldProps\n }));\n }\n}","/**\n * Determines whether a component is controlled.\n * @param props - Component props\n * @param valueProp - Prop containing the controlled value\n * @returns true if controlled, false if uncontrolled\n */\nexport function isControlled(props, valueProp) {\n // React's built-in considers a prop to be provided if its value is non-null/undefined.\n // Mirror that behavior here (rather than checking for just undefined).\n return props[valueProp] !== undefined && props[valueProp] !== null;\n}","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function isIE11() {\n var _a, _b;\n\n var win = getWindow();\n\n if (!((_b = (_a = win) === null || _a === void 0 ? void 0 : _a.navigator) === null || _b === void 0 ? void 0 : _b.userAgent)) {\n return false;\n }\n\n return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};","/**\n * Regular expression matching characters to ignore when calculating the initials.\n */\n\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n * so for example, (xyz) [xyz] {xyz} all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{][^\\)\\]\\}]*[\\)\\]\\}]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\n\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\n\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\n\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic: Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n * CJK Unified Ideographs Extension B\n */\n// eslint-disable-next-line @fluentui/max-len\n\nvar UNSUPPORTED_TEXT_REGEX = /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\n\nfunction getInitialsLatin(displayName, isRtl) {\n var initials = '';\n var splits = displayName.split(' ');\n\n if (splits.length === 2) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[1].charAt(0).toUpperCase();\n } else if (splits.length === 3) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[2].charAt(0).toUpperCase();\n } else if (splits.length !== 0) {\n initials += splits[0].charAt(0).toUpperCase();\n }\n\n if (isRtl && initials.length > 1) {\n return initials.charAt(1) + initials.charAt(0);\n }\n\n return initials;\n}\n\nfunction cleanupDisplayName(displayName) {\n displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n displayName = displayName.trim();\n return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\n\n\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n if (!displayName) {\n return '';\n }\n\n displayName = cleanupDisplayName(displayName); // For names containing CJK characters, and phone numbers, we don't display initials\n\n if (UNSUPPORTED_TEXT_REGEX.test(displayName) || !allowPhoneInitials && PHONENUMBER_REGEX.test(displayName)) {\n return '';\n }\n\n return getInitialsLatin(displayName, isRtl);\n}","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\n\nexport function hasVerticalOverflow(element) {\n return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\n\nexport function hasOverflow(element) {\n return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}","import { createMemoizer } from '../memoize';\n\nfunction createComposedRenderFunction(outer) {\n var outerMemoizer = createMemoizer(function (inner) {\n var innerMemoizer = createMemoizer(function (defaultRender) {\n return function (innerProps) {\n return inner(innerProps, defaultRender);\n };\n });\n return function (outerProps, defaultRender) {\n return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n };\n });\n return outerMemoizer;\n}\n\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\n\nexport function composeRenderFunction(outer, inner) {\n return memoizer(outer)(inner);\n}","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\n\nexport var safeRequestAnimationFrame = function safeRequestAnimationFrame(component) {\n var activeTimeouts;\n return function (cb) {\n if (!activeTimeouts) {\n activeTimeouts = new Set();\n extendComponent(component, {\n componentWillUnmount: function componentWillUnmount() {\n activeTimeouts.forEach(function (id) {\n return cancelAnimationFrame(id);\n });\n }\n });\n }\n\n var timeoutId = requestAnimationFrame(function () {\n activeTimeouts.delete(timeoutId);\n cb();\n });\n activeTimeouts.add(timeoutId);\n };\n};","import { SELECTION_CHANGE, SelectionMode } from './Selection.types';\nimport { EventGroup } from '../EventGroup';\n/**\n * {@docCategory Selection}\n */\n\nvar Selection =\n/** @class */\nfunction () {\n /**\n * Create a new Selection. If `TItem` does not have a `key` property, you must provide an options\n * object with a `getKey` implementation. Providing options is optional otherwise.\n * (At most one `options` object is accepted.)\n */\n function Selection() {\n var options = []; // Otherwise, arguments require options with `getKey`.\n\n for (var _i = 0 // Otherwise, arguments require options with `getKey`.\n ; _i < arguments.length // Otherwise, arguments require options with `getKey`.\n ; _i++ // Otherwise, arguments require options with `getKey`.\n ) {\n options[_i] = arguments[_i]; // Otherwise, arguments require options with `getKey`.\n }\n\n var _a = options[0] || {},\n onSelectionChanged = _a.onSelectionChanged,\n getKey = _a.getKey,\n _b = _a.canSelectItem,\n canSelectItem = _b === void 0 ? function () {\n return true;\n } : _b,\n items = _a.items,\n _c = _a.selectionMode,\n selectionMode = _c === void 0 ? SelectionMode.multiple : _c;\n\n this.mode = selectionMode;\n this._getKey = getKey || defaultGetKey;\n this._changeEventSuppressionCount = 0;\n this._exemptedCount = 0;\n this._anchoredIndex = 0;\n this._unselectableCount = 0;\n this._onSelectionChanged = onSelectionChanged;\n this._canSelectItem = canSelectItem;\n this._isModal = false;\n this.setItems(items || [], true);\n this.count = this.getSelectedCount();\n }\n\n Selection.prototype.canSelectItem = function (item, index) {\n if (typeof index === 'number' && index < 0) {\n return false;\n }\n\n return this._canSelectItem(item, index);\n };\n\n Selection.prototype.getKey = function (item, index) {\n var key = this._getKey(item, index);\n\n return typeof key === 'number' || key ? \"\" + key : '';\n };\n\n Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {\n this._changeEventSuppressionCount += isEnabled ? -1 : 1;\n\n if (this._changeEventSuppressionCount === 0 && this._hasChanged) {\n this._hasChanged = false;\n\n if (!suppressChange) {\n this._change();\n }\n }\n };\n\n Selection.prototype.isModal = function () {\n return this._isModal;\n };\n\n Selection.prototype.setModal = function (isModal) {\n if (this._isModal !== isModal) {\n this.setChangeEvents(false);\n this._isModal = isModal;\n\n if (!isModal) {\n this.setAllSelected(false);\n }\n\n this._change();\n\n this.setChangeEvents(true);\n }\n };\n /**\n * Selection needs the items, call this method to set them. If the set\n * of items is the same, this will re-evaluate selection and index maps.\n * Otherwise, shouldClear should be set to true, so that selection is\n * cleared.\n */\n\n\n Selection.prototype.setItems = function (items, shouldClear) {\n if (shouldClear === void 0) {\n shouldClear = true;\n }\n\n var newKeyToIndexMap = {};\n var newUnselectableIndices = {};\n var hasSelectionChanged = false;\n this.setChangeEvents(false); // Reset the unselectable count.\n\n this._unselectableCount = 0; // Build lookup table for quick selection evaluation.\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n if (item) {\n var key = this.getKey(item, i);\n\n if (key) {\n newKeyToIndexMap[key] = i;\n }\n }\n\n newUnselectableIndices[i] = item && !this.canSelectItem(item);\n\n if (newUnselectableIndices[i]) {\n this._unselectableCount++;\n }\n }\n\n if (shouldClear || items.length === 0) {\n this._setAllSelected(false, true);\n } // Check the exemption list for discrepencies.\n\n\n var newExemptedIndicies = {};\n var newExemptedCount = 0;\n\n for (var indexProperty in this._exemptedIndices) {\n if (this._exemptedIndices.hasOwnProperty(indexProperty)) {\n var index = Number(indexProperty);\n var item = this._items[index];\n var exemptKey = item ? this.getKey(item, Number(index)) : undefined;\n var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;\n\n if (newIndex === undefined) {\n // The item has likely been replaced or removed.\n hasSelectionChanged = true;\n } else {\n // We know the new index of the item. update the existing exemption table.\n newExemptedIndicies[newIndex] = true;\n newExemptedCount++;\n hasSelectionChanged = hasSelectionChanged || newIndex !== index;\n }\n }\n }\n\n if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {\n // If everything was selected but the number of items has changed, selection has changed.\n hasSelectionChanged = true;\n }\n\n this._exemptedIndices = newExemptedIndicies;\n this._exemptedCount = newExemptedCount;\n this._keyToIndexMap = newKeyToIndexMap;\n this._unselectableIndices = newUnselectableIndices;\n this._items = items;\n this._selectedItems = null;\n\n if (hasSelectionChanged) {\n this._updateCount();\n\n this._change();\n }\n\n this.setChangeEvents(true);\n };\n\n Selection.prototype.getItems = function () {\n return this._items;\n };\n\n Selection.prototype.getSelection = function () {\n if (!this._selectedItems) {\n this._selectedItems = [];\n var items = this._items;\n\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedItems.push(items[i]);\n }\n }\n }\n }\n\n return this._selectedItems;\n };\n\n Selection.prototype.getSelectedCount = function () {\n return this._isAllSelected ? this._items.length - this._exemptedCount - this._unselectableCount : this._exemptedCount;\n };\n\n Selection.prototype.getSelectedIndices = function () {\n if (!this._selectedIndices) {\n this._selectedIndices = [];\n var items = this._items;\n\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedIndices.push(i);\n }\n }\n }\n }\n\n return this._selectedIndices;\n };\n\n Selection.prototype.isRangeSelected = function (fromIndex, count) {\n if (count === 0) {\n return false;\n }\n\n var endIndex = fromIndex + count;\n\n for (var i = fromIndex; i < endIndex; i++) {\n if (!this.isIndexSelected(i)) {\n return false;\n }\n }\n\n return true;\n };\n\n Selection.prototype.isAllSelected = function () {\n var selectableCount = this._items.length - this._unselectableCount; // In single mode, we can only have a max of 1 item.\n\n if (this.mode === SelectionMode.single) {\n selectableCount = Math.min(selectableCount, 1);\n }\n\n return this.count > 0 && this._isAllSelected && this._exemptedCount === 0 || !this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0;\n };\n\n Selection.prototype.isKeySelected = function (key) {\n var index = this._keyToIndexMap[key];\n return this.isIndexSelected(index);\n };\n\n Selection.prototype.isIndexSelected = function (index) {\n return !!(this.count > 0 && this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index] || !this._isAllSelected && this._exemptedIndices[index]);\n };\n\n Selection.prototype.setAllSelected = function (isAllSelected) {\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n\n this._change();\n }\n\n this._updateCount();\n }\n\n this.setChangeEvents(true);\n };\n\n Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {\n var index = this._keyToIndexMap[key];\n\n if (index >= 0) {\n this.setIndexSelected(index, isSelected, shouldAnchor);\n }\n };\n\n Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n } // Clamp the index.\n\n\n index = Math.min(Math.max(0, index), this._items.length - 1); // No-op on out of bounds selections.\n\n if (index < 0 || index >= this._items.length) {\n return;\n }\n\n this.setChangeEvents(false);\n var isExempt = this._exemptedIndices[index];\n var canSelect = !this._unselectableIndices[index];\n\n if (canSelect) {\n if (isSelected && this.mode === SelectionMode.single) {\n // If this is single-select, the previous selection should be removed.\n this._setAllSelected(false, true);\n } // Determine if we need to remove the exemption.\n\n\n if (isExempt && (isSelected && this._isAllSelected || !isSelected && !this._isAllSelected)) {\n delete this._exemptedIndices[index];\n this._exemptedCount--;\n } // Determine if we need to add the exemption.\n\n\n if (!isExempt && (isSelected && !this._isAllSelected || !isSelected && this._isAllSelected)) {\n this._exemptedIndices[index] = true;\n this._exemptedCount++;\n }\n\n if (shouldAnchor) {\n this._anchoredIndex = index;\n }\n }\n\n this._updateCount();\n\n this.setChangeEvents(true);\n };\n\n Selection.prototype.selectToKey = function (key, clearSelection) {\n this.selectToIndex(this._keyToIndexMap[key], clearSelection);\n };\n\n Selection.prototype.selectToIndex = function (index, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n\n if (this.mode === SelectionMode.single) {\n this.setIndexSelected(index, true, true);\n return;\n }\n\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(index, anchorIndex);\n var endIndex = Math.max(index, anchorIndex);\n this.setChangeEvents(false);\n\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n\n this.setChangeEvents(true);\n };\n\n Selection.prototype.toggleAllSelected = function () {\n this.setAllSelected(!this.isAllSelected());\n };\n\n Selection.prototype.toggleKeySelected = function (key) {\n this.setKeySelected(key, !this.isKeySelected(key), true);\n };\n\n Selection.prototype.toggleIndexSelected = function (index) {\n this.setIndexSelected(index, !this.isIndexSelected(index), true);\n };\n\n Selection.prototype.toggleRangeSelected = function (fromIndex, count) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n\n var isRangeSelected = this.isRangeSelected(fromIndex, count);\n var endIndex = fromIndex + count;\n\n if (this.mode === SelectionMode.single && count > 1) {\n return;\n }\n\n this.setChangeEvents(false);\n\n for (var i = fromIndex; i < endIndex; i++) {\n this.setIndexSelected(i, !isRangeSelected, false);\n }\n\n this.setChangeEvents(true);\n };\n\n Selection.prototype._updateCount = function (preserveModalState) {\n if (preserveModalState === void 0) {\n preserveModalState = false;\n }\n\n var count = this.getSelectedCount();\n\n if (count !== this.count) {\n this.count = count;\n\n this._change();\n }\n\n if (!this.count && !preserveModalState) {\n this.setModal(false);\n }\n };\n\n Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {\n if (preserveModalState === void 0) {\n preserveModalState = false;\n }\n\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n\n this._change();\n }\n\n this._updateCount(preserveModalState);\n }\n\n this.setChangeEvents(true);\n };\n\n Selection.prototype._change = function () {\n if (this._changeEventSuppressionCount === 0) {\n this._selectedItems = null;\n this._selectedIndices = undefined;\n EventGroup.raise(this, SELECTION_CHANGE);\n\n if (this._onSelectionChanged) {\n this._onSelectionChanged();\n }\n } else {\n this._hasChanged = true;\n }\n };\n\n return Selection;\n}();\n\nexport { Selection };\n\nfunction defaultGetKey(item, index) {\n // 0 may be used as a key\n var _a = (item || {}).key,\n key = _a === void 0 ? \"\" + index : _a;\n return key;\n}","export var SELECTION_CHANGE = 'change';\n/**\n * {@docCategory Selection}\n */\n\nexport var SelectionMode;\n\n(function (SelectionMode) {\n SelectionMode[SelectionMode[\"none\"] = 0] = \"none\";\n SelectionMode[SelectionMode[\"single\"] = 1] = \"single\";\n SelectionMode[SelectionMode[\"multiple\"] = 2] = \"multiple\";\n})(SelectionMode || (SelectionMode = {}));\n/**\n * {@docCategory Selection}\n */\n\n\nexport var SelectionDirection;\n\n(function (SelectionDirection) {\n SelectionDirection[SelectionDirection[\"horizontal\"] = 0] = \"horizontal\";\n SelectionDirection[SelectionDirection[\"vertical\"] = 1] = \"vertical\";\n})(SelectionDirection || (SelectionDirection = {}));","// Regex that finds { and } so they can be removed on a lookup for string format\nvar FORMAT_ARGS_REGEX = /[\\{\\}]/g; // Regex that finds {#} so it can be replaced by the arguments in string format\n\nvar FORMAT_REGEX = /\\{\\d+\\}/g;\n/**\n * String format method, used for scenarios where at runtime you\n * need to evaluate a formatted string given a tokenized string. This\n * usually only is needed in localization scenarios.\n\n * @example\n * ```tsx\n * \"I love {0} every {1}\".format(\"CXP\")\n * ```\n * will result in a Debug Exception.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function format(s) {\n var values = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n\n var args = values; // Callback match function\n\n function replaceFunc(match) {\n // looks up in the args\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')]; // catches undefined in nondebug and null in debug and nondebug\n\n if (replacement === null || replacement === undefined) {\n replacement = '';\n }\n\n return replacement;\n }\n\n return s.replace(FORMAT_REGEX, replaceFunc);\n}","import { warn } from './warn';\nimport { isControlled as checkIsControlled } from '../controlled';\nvar warningsMap;\n\nif (process.env.NODE_ENV !== 'production') {\n warningsMap = {\n valueOnChange: {},\n valueDefaultValue: {},\n controlledToUncontrolled: {},\n uncontrolledToControlled: {}\n };\n}\n/** Reset controlled usage warnings for testing purposes. */\n\n\nexport function resetControlledWarnings() {\n if (process.env.NODE_ENV !== 'production') {\n warningsMap.valueOnChange = {};\n warningsMap.valueDefaultValue = {};\n warningsMap.controlledToUncontrolled = {};\n warningsMap.uncontrolledToControlled = {};\n }\n}\n/**\n * Check for and warn on the following error conditions with a form component:\n * - A value prop is provided (indicated it's being used as controlled) without a change handler,\n * and the component is not read-only\n * - Both the value and defaultValue props are provided\n * - The component is attempting to switch between controlled and uncontrolled\n *\n * The messages mimic the warnings React gives for these error conditions on input elements.\n * The warning will only be displayed once per component ID.\n */\n\nexport function warnControlledUsage(params) {\n if (process.env.NODE_ENV !== 'production') {\n var componentId = params.componentId,\n componentName = params.componentName,\n defaultValueProp = params.defaultValueProp,\n props = params.props,\n oldProps = params.oldProps,\n onChangeProp = params.onChangeProp,\n readOnlyProp = params.readOnlyProp,\n valueProp = params.valueProp; // This warning logic closely follows what React does for native elements.\n\n var oldIsControlled = oldProps ? checkIsControlled(oldProps, valueProp) : undefined;\n var newIsControlled = checkIsControlled(props, valueProp);\n\n if (newIsControlled) {\n // onChange (or readOnly) must be provided if value is provided\n var hasOnChange = !!props[onChangeProp];\n var isReadOnly = !!(readOnlyProp && props[readOnlyProp]);\n\n if (!(hasOnChange || isReadOnly) && !warningsMap.valueOnChange[componentId]) {\n warningsMap.valueOnChange[componentId] = true;\n warn(\"Warning: You provided a '\" + valueProp + \"' prop to a \" + componentName + \" without an '\" + onChangeProp + \"' handler. \" + (\"This will render a read-only field. If the field should be mutable use '\" + defaultValueProp + \"'. \") + (\"Otherwise, set '\" + onChangeProp + \"'\" + (readOnlyProp ? \" or '\" + readOnlyProp + \"'\" : '') + \".\"));\n } // value and defaultValue are mutually exclusive\n\n\n var defaultValue = props[defaultValueProp];\n\n if (defaultValue !== undefined && defaultValue !== null && !warningsMap.valueDefaultValue[componentId]) {\n warningsMap.valueDefaultValue[componentId] = true;\n warn(\"Warning: You provided both '\" + valueProp + \"' and '\" + defaultValueProp + \"' to a \" + componentName + \". \" + (\"Form fields must be either controlled or uncontrolled (specify either the '\" + valueProp + \"' prop, \") + (\"or the '\" + defaultValueProp + \"' prop, but not both). Decide between using a controlled or uncontrolled \") + (componentName + \" and remove one of these props. More info: https://fb.me/react-controlled-components\"));\n }\n } // Warn if switching between uncontrolled and controlled. (One difference between this implementation\n // and React's is that if oldIsControlled is indeterminate and newIsControlled true, we don't warn.)\n\n\n if (oldProps && newIsControlled !== oldIsControlled) {\n var oldType = oldIsControlled ? 'a controlled' : 'an uncontrolled';\n var newType = oldIsControlled ? 'uncontrolled' : 'controlled';\n var warnMap = oldIsControlled ? warningsMap.controlledToUncontrolled : warningsMap.uncontrolledToControlled;\n\n if (!warnMap[componentId]) {\n warnMap[componentId] = true;\n warn(\"Warning: A component is changing \" + oldType + \" \" + componentName + \" to be \" + newType + \". \" + (componentName + \"s should not switch from controlled to uncontrolled (or vice versa). \") + \"Decide between using controlled or uncontrolled for the lifetime of the component. \" + \"More info: https://fb.me/react-controlled-components\");\n }\n }\n }\n}","module.exports = {\n \"default\": require(\"core-js/library/fn/array/from\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/get-iterator\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/is-iterable\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/json/stringify\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/object/create\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/object/define-property\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/object/get-prototype-of\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/object/keys\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/object/set-prototype-of\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/promise\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/symbol\"),\n __esModule: true\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/symbol/iterator\"),\n __esModule: true\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _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\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","module.exports = require(\"regenerator-runtime\");","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar moveBlockInContentState = require(\"./moveBlockInContentState\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar ContentBlockRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\nvar List = Immutable.List,\n Repeat = Immutable.Repeat;\nvar AtomicBlockUtils = {\n insertAtomicBlock: function insertAtomicBlock(editorState, entityKey, character) {\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n var afterRemoval = DraftModifier.removeRange(contentState, selectionState, 'backward');\n var targetSelection = afterRemoval.getSelectionAfter();\n var afterSplit = DraftModifier.splitBlock(afterRemoval, targetSelection);\n var insertionTarget = afterSplit.getSelectionAfter();\n var asAtomicBlock = DraftModifier.setBlockType(afterSplit, insertionTarget, 'atomic');\n var charData = CharacterMetadata.create({\n entity: entityKey\n });\n var atomicBlockConfig = {\n key: generateRandomKey(),\n type: 'atomic',\n text: character,\n characterList: List(Repeat(charData, character.length))\n };\n var atomicDividerBlockConfig = {\n key: generateRandomKey(),\n type: 'unstyled'\n };\n\n if (experimentalTreeDataSupport) {\n atomicBlockConfig = _objectSpread({}, atomicBlockConfig, {\n nextSibling: atomicDividerBlockConfig.key\n });\n atomicDividerBlockConfig = _objectSpread({}, atomicDividerBlockConfig, {\n prevSibling: atomicBlockConfig.key\n });\n }\n\n var fragmentArray = [new ContentBlockRecord(atomicBlockConfig), new ContentBlockRecord(atomicDividerBlockConfig)];\n var fragment = BlockMapBuilder.createFromArray(fragmentArray);\n var withAtomicBlock = DraftModifier.replaceWithFragment(asAtomicBlock, insertionTarget, fragment);\n var newContent = withAtomicBlock.merge({\n selectionBefore: selectionState,\n selectionAfter: withAtomicBlock.getSelectionAfter().set('hasFocus', true)\n });\n return EditorState.push(editorState, newContent, 'insert-fragment');\n },\n moveAtomicBlock: function moveAtomicBlock(editorState, atomicBlock, targetRange, insertionMode) {\n var contentState = editorState.getCurrentContent();\n var selectionState = editorState.getSelection();\n var withMovedAtomicBlock;\n\n if (insertionMode === 'before' || insertionMode === 'after') {\n var targetBlock = contentState.getBlockForKey(insertionMode === 'before' ? targetRange.getStartKey() : targetRange.getEndKey());\n withMovedAtomicBlock = moveBlockInContentState(contentState, atomicBlock, targetBlock, insertionMode);\n } else {\n var afterRemoval = DraftModifier.removeRange(contentState, targetRange, 'backward');\n var selectionAfterRemoval = afterRemoval.getSelectionAfter();\n\n var _targetBlock = afterRemoval.getBlockForKey(selectionAfterRemoval.getFocusKey());\n\n if (selectionAfterRemoval.getStartOffset() === 0) {\n withMovedAtomicBlock = moveBlockInContentState(afterRemoval, atomicBlock, _targetBlock, 'before');\n } else if (selectionAfterRemoval.getEndOffset() === _targetBlock.getLength()) {\n withMovedAtomicBlock = moveBlockInContentState(afterRemoval, atomicBlock, _targetBlock, 'after');\n } else {\n var afterSplit = DraftModifier.splitBlock(afterRemoval, selectionAfterRemoval);\n var selectionAfterSplit = afterSplit.getSelectionAfter();\n\n var _targetBlock2 = afterSplit.getBlockForKey(selectionAfterSplit.getFocusKey());\n\n withMovedAtomicBlock = moveBlockInContentState(afterSplit, atomicBlock, _targetBlock2, 'before');\n }\n }\n\n var newContent = withMovedAtomicBlock.merge({\n selectionBefore: selectionState,\n selectionAfter: withMovedAtomicBlock.getSelectionAfter().set('hasFocus', true)\n });\n return EditorState.push(editorState, newContent, 'move-block');\n }\n};\nmodule.exports = AtomicBlockUtils;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar Immutable = require(\"immutable\");\n\nvar OrderedMap = Immutable.OrderedMap;\nvar BlockMapBuilder = {\n createFromArray: function createFromArray(blocks) {\n return OrderedMap(blocks.map(function (block) {\n return [block.getKey(), block];\n }));\n }\n};\nmodule.exports = BlockMapBuilder;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\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\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar getOwnObjectValues = require(\"./getOwnObjectValues\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat,\n Record = Immutable.Record;\n\nvar returnTrue = function returnTrue() {\n return true;\n};\n\nvar defaultLeafRange = {\n start: null,\n end: null\n};\nvar LeafRange = Record(defaultLeafRange);\nvar defaultDecoratorRange = {\n start: null,\n end: null,\n decoratorKey: null,\n leaves: null\n};\nvar DecoratorRange = Record(defaultDecoratorRange);\nvar BlockTree = {\n /**\n * Generate a block tree for a given ContentBlock/decorator pair.\n */\n generate: function generate(contentState, block, decorator) {\n var textLength = block.getLength();\n\n if (!textLength) {\n return List.of(new DecoratorRange({\n start: 0,\n end: 0,\n decoratorKey: null,\n leaves: List.of(new LeafRange({\n start: 0,\n end: 0\n }))\n }));\n }\n\n var leafSets = [];\n var decorations = decorator ? decorator.getDecorations(block, contentState) : List(Repeat(null, textLength));\n var chars = block.getCharacterList();\n findRangesImmutable(decorations, areEqual, returnTrue, function (start, end) {\n leafSets.push(new DecoratorRange({\n start: start,\n end: end,\n decoratorKey: decorations.get(start),\n leaves: generateLeaves(chars.slice(start, end).toList(), start)\n }));\n });\n return List(leafSets);\n },\n fromJS: function fromJS(_ref) {\n var leaves = _ref.leaves,\n other = _objectWithoutPropertiesLoose(_ref, [\"leaves\"]);\n\n return new DecoratorRange(_objectSpread({}, other, {\n leaves: leaves != null ? List(Array.isArray(leaves) ? leaves : getOwnObjectValues(leaves)).map(function (leaf) {\n return LeafRange(leaf);\n }) : null\n }));\n }\n};\n/**\n * Generate LeafRange records for a given character list.\n */\n\nfunction generateLeaves(characters, offset) {\n var leaves = [];\n var inlineStyles = characters.map(function (c) {\n return c.getStyle();\n }).toList();\n findRangesImmutable(inlineStyles, areEqual, returnTrue, function (start, end) {\n leaves.push(new LeafRange({\n start: start + offset,\n end: end + offset\n }));\n });\n return List(leaves);\n}\n\nfunction areEqual(a, b) {\n return a === b;\n}\n\nmodule.exports = BlockTree;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar _require = require(\"immutable\"),\n Map = _require.Map,\n OrderedSet = _require.OrderedSet,\n Record = _require.Record; // Immutable.map is typed such that the value for every key in the map\n// must be the same type\n\n\nvar EMPTY_SET = OrderedSet();\nvar defaultRecord = {\n style: EMPTY_SET,\n entity: null\n};\nvar CharacterMetadataRecord = Record(defaultRecord);\n\nvar CharacterMetadata = /*#__PURE__*/function (_CharacterMetadataRec) {\n _inheritsLoose(CharacterMetadata, _CharacterMetadataRec);\n\n function CharacterMetadata() {\n return _CharacterMetadataRec.apply(this, arguments) || this;\n }\n\n var _proto = CharacterMetadata.prototype;\n\n _proto.getStyle = function getStyle() {\n return this.get('style');\n };\n\n _proto.getEntity = function getEntity() {\n return this.get('entity');\n };\n\n _proto.hasStyle = function hasStyle(style) {\n return this.getStyle().includes(style);\n };\n\n CharacterMetadata.applyStyle = function applyStyle(record, style) {\n var withStyle = record.set('style', record.getStyle().add(style));\n return CharacterMetadata.create(withStyle);\n };\n\n CharacterMetadata.removeStyle = function removeStyle(record, style) {\n var withoutStyle = record.set('style', record.getStyle().remove(style));\n return CharacterMetadata.create(withoutStyle);\n };\n\n CharacterMetadata.applyEntity = function applyEntity(record, entityKey) {\n var withEntity = record.getEntity() === entityKey ? record : record.set('entity', entityKey);\n return CharacterMetadata.create(withEntity);\n }\n /**\n * Use this function instead of the `CharacterMetadata` constructor.\n * Since most content generally uses only a very small number of\n * style/entity permutations, we can reuse these objects as often as\n * possible.\n */\n ;\n\n CharacterMetadata.create = function create(config) {\n if (!config) {\n return EMPTY;\n }\n\n var defaultConfig = {\n style: EMPTY_SET,\n entity: null\n }; // Fill in unspecified properties, if necessary.\n\n var configMap = Map(defaultConfig).merge(config);\n var existing = pool.get(configMap);\n\n if (existing) {\n return existing;\n }\n\n var newCharacter = new CharacterMetadata(configMap);\n pool = pool.set(configMap, newCharacter);\n return newCharacter;\n };\n\n CharacterMetadata.fromJS = function fromJS(_ref) {\n var style = _ref.style,\n entity = _ref.entity;\n return new CharacterMetadata({\n style: Array.isArray(style) ? OrderedSet(style) : style,\n entity: Array.isArray(entity) ? OrderedSet(entity) : entity\n });\n };\n\n return CharacterMetadata;\n}(CharacterMetadataRecord);\n\nvar EMPTY = new CharacterMetadata();\nvar pool = Map([[Map(defaultRecord), EMPTY]]);\nCharacterMetadata.EMPTY = EMPTY;\nmodule.exports = CharacterMetadata;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _defineProperty(obj, key, value) {\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\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List;\nvar DELIMITER = '.';\n/**\n * A CompositeDraftDecorator traverses through a list of DraftDecorator\n * instances to identify sections of a ContentBlock that should be rendered\n * in a \"decorated\" manner. For example, hashtags, mentions, and links may\n * be intended to stand out visually, be rendered as anchors, etc.\n *\n * The list of decorators supplied to the constructor will be used in the\n * order they are provided. This allows the caller to specify a priority for\n * string matching, in case of match collisions among decorators.\n *\n * For instance, I may have a link with a `#` in its text. Though this section\n * of text may match our hashtag decorator, it should not be treated as a\n * hashtag. I should therefore list my link DraftDecorator\n * before my hashtag DraftDecorator when constructing this composite\n * decorator instance.\n *\n * Thus, when a collision like this is encountered, the earlier match is\n * preserved and the new match is discarded.\n */\n\nvar CompositeDraftDecorator = /*#__PURE__*/function () {\n function CompositeDraftDecorator(decorators) {\n _defineProperty(this, \"_decorators\", void 0); // 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\n\n this._decorators = decorators.slice();\n }\n\n var _proto = CompositeDraftDecorator.prototype;\n\n _proto.getDecorations = function getDecorations(block, contentState) {\n var decorations = Array(block.getText().length).fill(null);\n\n this._decorators.forEach(function (\n /*object*/\n decorator,\n /*number*/\n ii) {\n var counter = 0;\n var strategy = decorator.strategy;\n\n var callback = function callback(\n /*number*/\n start,\n /*number*/\n end) {\n // Find out if any of our matching range is already occupied\n // by another decorator. If so, discard the match. Otherwise, store\n // the component key for rendering.\n if (canOccupySlice(decorations, start, end)) {\n occupySlice(decorations, start, end, ii + DELIMITER + counter);\n counter++;\n }\n };\n\n strategy(block, callback, contentState);\n });\n\n return List(decorations);\n };\n\n _proto.getComponentForKey = function getComponentForKey(key) {\n var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n return this._decorators[componentKey].component;\n };\n\n _proto.getPropsForKey = function getPropsForKey(key) {\n var componentKey = parseInt(key.split(DELIMITER)[0], 10);\n return this._decorators[componentKey].props;\n };\n\n return CompositeDraftDecorator;\n}();\n/**\n * Determine whether we can occupy the specified slice of the decorations\n * array.\n */\n\n\nfunction canOccupySlice(decorations, start, end) {\n for (var ii = start; ii < end; ii++) {\n if (decorations[ii] != null) {\n return false;\n }\n }\n\n return true;\n}\n/**\n * Splice the specified component into our decoration array at the desired\n * range.\n */\n\n\nfunction occupySlice(targetArr, start, end, componentKey) {\n for (var ii = start; ii < end; ii++) {\n targetArr[ii] = componentKey;\n }\n}\n\nmodule.exports = CompositeDraftDecorator;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\nvar EMPTY_SET = OrderedSet();\nvar defaultRecord = {\n key: '',\n type: 'unstyled',\n text: '',\n characterList: List(),\n depth: 0,\n data: Map()\n};\nvar ContentBlockRecord = Record(defaultRecord);\n\nvar decorateCharacterList = function decorateCharacterList(config) {\n if (!config) {\n return config;\n }\n\n var characterList = config.characterList,\n text = config.text;\n\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlock = /*#__PURE__*/function (_ContentBlockRecord) {\n _inheritsLoose(ContentBlock, _ContentBlockRecord);\n\n function ContentBlock(config) {\n return _ContentBlockRecord.call(this, decorateCharacterList(config)) || this;\n }\n\n var _proto = ContentBlock.prototype;\n\n _proto.getKey = function getKey() {\n return this.get('key');\n };\n\n _proto.getType = function getType() {\n return this.get('type');\n };\n\n _proto.getText = function getText() {\n return this.get('text');\n };\n\n _proto.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n _proto.getLength = function getLength() {\n return this.getText().length;\n };\n\n _proto.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n _proto.getData = function getData() {\n return this.get('data');\n };\n\n _proto.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n _proto.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n }\n /**\n * Execute a callback for every contiguous range of styles within the block.\n */\n ;\n\n _proto.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n }\n /**\n * Execute a callback for every contiguous range of entities within the block.\n */\n ;\n\n _proto.findEntityRanges = function findEntityRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualEntity, filterFn, callback);\n };\n\n return ContentBlock;\n}(ContentBlockRecord);\n\nfunction haveEqualStyle(charA, charB) {\n return charA.getStyle() === charB.getStyle();\n}\n\nfunction haveEqualEntity(charA, charB) {\n return charA.getEntity() === charB.getEntity();\n}\n\nmodule.exports = ContentBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This file is a fork of ContentBlock adding support for nesting references by\n * providing links to children, parent, prevSibling, and nextSibling.\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat;\nvar EMPTY_SET = OrderedSet();\nvar defaultRecord = {\n parent: null,\n characterList: List(),\n data: Map(),\n depth: 0,\n key: '',\n text: '',\n type: 'unstyled',\n children: List(),\n prevSibling: null,\n nextSibling: null\n};\n\nvar haveEqualStyle = function haveEqualStyle(charA, charB) {\n return charA.getStyle() === charB.getStyle();\n};\n\nvar haveEqualEntity = function haveEqualEntity(charA, charB) {\n return charA.getEntity() === charB.getEntity();\n};\n\nvar decorateCharacterList = function decorateCharacterList(config) {\n if (!config) {\n return config;\n }\n\n var characterList = config.characterList,\n text = config.text;\n\n if (text && !characterList) {\n config.characterList = List(Repeat(CharacterMetadata.EMPTY, text.length));\n }\n\n return config;\n};\n\nvar ContentBlockNode = /*#__PURE__*/function (_ref) {\n _inheritsLoose(ContentBlockNode, _ref);\n\n function ContentBlockNode() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultRecord;\n /* eslint-disable-next-line constructor-super */\n\n return _ref.call(this, decorateCharacterList(props)) || this;\n }\n\n var _proto = ContentBlockNode.prototype;\n\n _proto.getKey = function getKey() {\n return this.get('key');\n };\n\n _proto.getType = function getType() {\n return this.get('type');\n };\n\n _proto.getText = function getText() {\n return this.get('text');\n };\n\n _proto.getCharacterList = function getCharacterList() {\n return this.get('characterList');\n };\n\n _proto.getLength = function getLength() {\n return this.getText().length;\n };\n\n _proto.getDepth = function getDepth() {\n return this.get('depth');\n };\n\n _proto.getData = function getData() {\n return this.get('data');\n };\n\n _proto.getInlineStyleAt = function getInlineStyleAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getStyle() : EMPTY_SET;\n };\n\n _proto.getEntityAt = function getEntityAt(offset) {\n var character = this.getCharacterList().get(offset);\n return character ? character.getEntity() : null;\n };\n\n _proto.getChildKeys = function getChildKeys() {\n return this.get('children');\n };\n\n _proto.getParentKey = function getParentKey() {\n return this.get('parent');\n };\n\n _proto.getPrevSiblingKey = function getPrevSiblingKey() {\n return this.get('prevSibling');\n };\n\n _proto.getNextSiblingKey = function getNextSiblingKey() {\n return this.get('nextSibling');\n };\n\n _proto.findStyleRanges = function findStyleRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualStyle, filterFn, callback);\n };\n\n _proto.findEntityRanges = function findEntityRanges(filterFn, callback) {\n findRangesImmutable(this.getCharacterList(), haveEqualEntity, filterFn, callback);\n };\n\n return ContentBlockNode;\n}(Record(defaultRecord));\n\nmodule.exports = ContentBlockNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getOwnObjectValues = require(\"./getOwnObjectValues\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar sanitizeDraftText = require(\"./sanitizeDraftText\");\n\nvar List = Immutable.List,\n Record = Immutable.Record,\n Repeat = Immutable.Repeat,\n ImmutableMap = Immutable.Map,\n OrderedMap = Immutable.OrderedMap;\nvar defaultRecord = {\n entityMap: null,\n blockMap: null,\n selectionBefore: null,\n selectionAfter: null\n};\nvar ContentStateRecord = Record(defaultRecord);\n/* $FlowFixMe[signature-verification-failure] Supressing a `signature-\n * verification-failure` error here. TODO: T65949050 Clean up the branch for\n * this GK */\n\nvar ContentBlockNodeRecord = gkx('draft_tree_data_support') ? ContentBlockNode : ContentBlock;\n\nvar ContentState = /*#__PURE__*/function (_ContentStateRecord) {\n _inheritsLoose(ContentState, _ContentStateRecord);\n\n function ContentState() {\n return _ContentStateRecord.apply(this, arguments) || this;\n }\n\n var _proto = ContentState.prototype;\n\n _proto.getEntityMap = function getEntityMap() {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity;\n };\n\n _proto.getBlockMap = function getBlockMap() {\n return this.get('blockMap');\n };\n\n _proto.getSelectionBefore = function getSelectionBefore() {\n return this.get('selectionBefore');\n };\n\n _proto.getSelectionAfter = function getSelectionAfter() {\n return this.get('selectionAfter');\n };\n\n _proto.getBlockForKey = function getBlockForKey(key) {\n var block = this.getBlockMap().get(key);\n return block;\n };\n\n _proto.getKeyBefore = function getKeyBefore(key) {\n return this.getBlockMap().reverse().keySeq().skipUntil(function (v) {\n return v === key;\n }).skip(1).first();\n };\n\n _proto.getKeyAfter = function getKeyAfter(key) {\n return this.getBlockMap().keySeq().skipUntil(function (v) {\n return v === key;\n }).skip(1).first();\n };\n\n _proto.getBlockAfter = function getBlockAfter(key) {\n return this.getBlockMap().skipUntil(function (_, k) {\n return k === key;\n }).skip(1).first();\n };\n\n _proto.getBlockBefore = function getBlockBefore(key) {\n return this.getBlockMap().reverse().skipUntil(function (_, k) {\n return k === key;\n }).skip(1).first();\n };\n\n _proto.getBlocksAsArray = function getBlocksAsArray() {\n return this.getBlockMap().toArray();\n };\n\n _proto.getFirstBlock = function getFirstBlock() {\n return this.getBlockMap().first();\n };\n\n _proto.getLastBlock = function getLastBlock() {\n return this.getBlockMap().last();\n };\n\n _proto.getPlainText = function getPlainText(delimiter) {\n return this.getBlockMap().map(function (block) {\n return block ? block.getText() : '';\n }).join(delimiter || '\\n');\n };\n\n _proto.getLastCreatedEntityKey = function getLastCreatedEntityKey() {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity.__getLastCreatedEntityKey();\n };\n\n _proto.hasText = function hasText() {\n var blockMap = this.getBlockMap();\n return blockMap.size > 1 || // make sure that there are no zero width space chars\n escape(blockMap.first().getText()).replace(/%u200B/g, '').length > 0;\n };\n\n _proto.createEntity = function createEntity(type, mutability, data) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__create(type, mutability, data);\n\n return this;\n };\n\n _proto.mergeEntityData = function mergeEntityData(key, toMerge) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__mergeData(key, toMerge);\n\n return this;\n };\n\n _proto.replaceEntityData = function replaceEntityData(key, newData) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__replaceData(key, newData);\n\n return this;\n };\n\n _proto.addEntity = function addEntity(instance) {\n // TODO: update this when we fully remove DraftEntity\n DraftEntity.__add(instance);\n\n return this;\n };\n\n _proto.getEntity = function getEntity(key) {\n // TODO: update this when we fully remove DraftEntity\n return DraftEntity.__get(key);\n };\n\n _proto.getAllEntities = function getAllEntities() {\n return DraftEntity.__getAll();\n };\n\n _proto.loadWithEntities = function loadWithEntities(entities) {\n return DraftEntity.__loadWithEntities(entities);\n };\n\n ContentState.createFromBlockArray = function createFromBlockArray( // TODO: update flow type when we completely deprecate the old entity API\n blocks, entityMap) {\n // TODO: remove this when we completely deprecate the old entity API\n var theBlocks = Array.isArray(blocks) ? blocks : blocks.contentBlocks;\n var blockMap = BlockMapBuilder.createFromArray(theBlocks);\n var selectionState = blockMap.isEmpty() ? new SelectionState() : SelectionState.createEmpty(blockMap.first().getKey());\n return new ContentState({\n blockMap: blockMap,\n entityMap: entityMap || DraftEntity,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n };\n\n ContentState.createFromText = function createFromText(text) {\n var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /\\r\\n?|\\n/g;\n var strings = text.split(delimiter);\n var blocks = strings.map(function (block) {\n block = sanitizeDraftText(block);\n return new ContentBlockNodeRecord({\n key: generateRandomKey(),\n text: block,\n type: 'unstyled',\n characterList: List(Repeat(CharacterMetadata.EMPTY, block.length))\n });\n });\n return ContentState.createFromBlockArray(blocks);\n };\n\n ContentState.fromJS = function fromJS(state) {\n return new ContentState(_objectSpread({}, state, {\n blockMap: OrderedMap(state.blockMap).map(ContentState.createContentBlockFromJS),\n selectionBefore: new SelectionState(state.selectionBefore),\n selectionAfter: new SelectionState(state.selectionAfter)\n }));\n };\n\n ContentState.createContentBlockFromJS = function createContentBlockFromJS(block) {\n var characterList = block.characterList;\n return new ContentBlockNodeRecord(_objectSpread({}, block, {\n data: ImmutableMap(block.data),\n characterList: characterList != null ? List((Array.isArray(characterList) ? characterList : getOwnObjectValues(characterList)).map(function (c) {\n return CharacterMetadata.fromJS(c);\n })) : undefined\n }));\n };\n\n return ContentState;\n}(ContentStateRecord);\n\nmodule.exports = ContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar _require = require(\"immutable\"),\n Map = _require.Map;\n\nvar ContentStateInlineStyle = {\n add: function add(contentState, selectionState, inlineStyle) {\n return modifyInlineStyle(contentState, selectionState, inlineStyle, true);\n },\n remove: function remove(contentState, selectionState, inlineStyle) {\n return modifyInlineStyle(contentState, selectionState, inlineStyle, false);\n }\n};\n\nfunction modifyInlineStyle(contentState, selectionState, inlineStyle, addOrRemove) {\n var blockMap = contentState.getBlockMap();\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var newBlocks = blockMap.skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).concat(Map([[endKey, blockMap.get(endKey)]])).map(function (block, blockKey) {\n var sliceStart;\n var sliceEnd;\n\n if (startKey === endKey) {\n sliceStart = startOffset;\n sliceEnd = endOffset;\n } else {\n sliceStart = blockKey === startKey ? startOffset : 0;\n sliceEnd = blockKey === endKey ? endOffset : block.getLength();\n }\n\n var chars = block.getCharacterList();\n var current;\n\n while (sliceStart < sliceEnd) {\n current = chars.get(sliceStart);\n chars = chars.set(sliceStart, addOrRemove ? CharacterMetadata.applyStyle(current, inlineStyle) : CharacterMetadata.removeStyle(current, inlineStyle));\n sliceStart++;\n }\n\n return block.set('characterList', chars);\n });\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = ContentStateInlineStyle;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _defineProperty(obj, key, value) {\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\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar getWindowForNode = require(\"./getWindowForNode\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar Map = Immutable.Map; // Heavily based on Prosemirror's DOMObserver https://github.com/ProseMirror/prosemirror-view/blob/master/src/domobserver.js\n\nvar DOM_OBSERVER_OPTIONS = {\n subtree: true,\n characterData: true,\n childList: true,\n characterDataOldValue: false,\n attributes: false\n}; // IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\n\nvar USE_CHAR_DATA = UserAgent.isBrowser('IE <= 11');\n\nvar DOMObserver = /*#__PURE__*/function () {\n function DOMObserver(container) {\n var _this = this;\n\n _defineProperty(this, \"observer\", void 0);\n\n _defineProperty(this, \"container\", void 0);\n\n _defineProperty(this, \"mutations\", void 0);\n\n _defineProperty(this, \"onCharData\", void 0);\n\n this.container = container;\n this.mutations = Map();\n var containerWindow = getWindowForNode(container);\n\n if (containerWindow.MutationObserver && !USE_CHAR_DATA) {\n this.observer = new containerWindow.MutationObserver(function (mutations) {\n return _this.registerMutations(mutations);\n });\n } else {\n this.onCharData = function (e) {\n !(e.target instanceof Node) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected target to be an instance of Node') : invariant(false) : void 0;\n\n _this.registerMutation({\n type: 'characterData',\n target: e.target\n });\n };\n }\n }\n\n var _proto = DOMObserver.prototype;\n\n _proto.start = function start() {\n if (this.observer) {\n this.observer.observe(this.container, DOM_OBSERVER_OPTIONS);\n } else {\n /* $FlowFixMe[incompatible-call] (>=0.68.0 site=www,mobile) This event\n * type is not defined by Flow's standard library */\n this.container.addEventListener('DOMCharacterDataModified', this.onCharData);\n }\n };\n\n _proto.stopAndFlushMutations = function stopAndFlushMutations() {\n var observer = this.observer;\n\n if (observer) {\n this.registerMutations(observer.takeRecords());\n observer.disconnect();\n } else {\n /* $FlowFixMe[incompatible-call] (>=0.68.0 site=www,mobile) This event\n * type is not defined by Flow's standard library */\n this.container.removeEventListener('DOMCharacterDataModified', this.onCharData);\n }\n\n var mutations = this.mutations;\n this.mutations = Map();\n return mutations;\n };\n\n _proto.registerMutations = function registerMutations(mutations) {\n for (var i = 0; i < mutations.length; i++) {\n this.registerMutation(mutations[i]);\n }\n };\n\n _proto.getMutationTextContent = function getMutationTextContent(mutation) {\n var type = mutation.type,\n target = mutation.target,\n removedNodes = mutation.removedNodes;\n\n if (type === 'characterData') {\n // When `textContent` is '', there is a race condition that makes\n // getting the offsetKey from the target not possible.\n // These events are also followed by a `childList`, which is the one\n // we are able to retrieve the offsetKey and apply the '' text.\n if (target.textContent !== '') {\n // IE 11 considers the enter keypress that concludes the composition\n // as an input char. This strips that newline character so the draft\n // state does not receive spurious newlines.\n if (USE_CHAR_DATA) {\n return target.textContent.replace('\\n', '');\n }\n\n return target.textContent;\n }\n } else if (type === 'childList') {\n if (removedNodes && removedNodes.length) {\n // `characterData` events won't happen or are ignored when\n // removing the last character of a leaf node, what happens\n // instead is a `childList` event with a `removedNodes` array.\n // For this case the textContent should be '' and\n // `DraftModifier.replaceText` will make sure the content is\n // updated properly.\n return '';\n } else if (target.textContent !== '') {\n // Typing Chinese in an empty block in MS Edge results in a\n // `childList` event with non-empty textContent.\n // See https://github.com/facebook/draft-js/issues/2082\n return target.textContent;\n }\n }\n\n return null;\n };\n\n _proto.registerMutation = function registerMutation(mutation) {\n var textContent = this.getMutationTextContent(mutation);\n\n if (textContent != null) {\n var offsetKey = nullthrows(findAncestorOffsetKey(mutation.target));\n this.mutations = this.mutations.set(offsetKey, textContent);\n }\n };\n\n return DOMObserver;\n}();\n\nmodule.exports = DOMObserver;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar _require = require(\"immutable\"),\n Map = _require.Map;\n\nvar UL_WRAP = React.createElement(\"ul\", {\n className: cx('public/DraftStyleDefault/ul')\n});\nvar OL_WRAP = React.createElement(\"ol\", {\n className: cx('public/DraftStyleDefault/ol')\n});\nvar PRE_WRAP = React.createElement(\"pre\", {\n className: cx('public/DraftStyleDefault/pre')\n});\nvar DefaultDraftBlockRenderMap = Map({\n 'header-one': {\n element: 'h1'\n },\n 'header-two': {\n element: 'h2'\n },\n 'header-three': {\n element: 'h3'\n },\n 'header-four': {\n element: 'h4'\n },\n 'header-five': {\n element: 'h5'\n },\n 'header-six': {\n element: 'h6'\n },\n section: {\n element: 'section'\n },\n article: {\n element: 'article'\n },\n 'unordered-list-item': {\n element: 'li',\n wrapper: UL_WRAP\n },\n 'ordered-list-item': {\n element: 'li',\n wrapper: OL_WRAP\n },\n blockquote: {\n element: 'blockquote'\n },\n atomic: {\n element: 'figure'\n },\n 'code-block': {\n element: 'pre',\n wrapper: PRE_WRAP\n },\n unstyled: {\n element: 'div',\n aliasedElements: ['p']\n }\n});\nmodule.exports = DefaultDraftBlockRenderMap;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nmodule.exports = {\n BOLD: {\n fontWeight: 'bold'\n },\n CODE: {\n fontFamily: 'monospace',\n wordWrap: 'break-word'\n },\n ITALIC: {\n fontStyle: 'italic'\n },\n STRIKETHROUGH: {\n textDecoration: 'line-through'\n },\n UNDERLINE: {\n textDecoration: 'underline'\n }\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nvar AtomicBlockUtils = require(\"./AtomicBlockUtils\");\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar CompositeDraftDecorator = require(\"./CompositeDraftDecorator\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentState = require(\"./ContentState\");\n\nvar DefaultDraftBlockRenderMap = require(\"./DefaultDraftBlockRenderMap\");\n\nvar DefaultDraftInlineStyle = require(\"./DefaultDraftInlineStyle\");\n\nvar DraftEditor = require(\"./DraftEditor.react\");\n\nvar DraftEditorBlock = require(\"./DraftEditorBlock.react\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftEntityInstance = require(\"./DraftEntityInstance\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar KeyBindingUtil = require(\"./KeyBindingUtil\");\n\nvar RawDraftContentState = require(\"./RawDraftContentState\");\n\nvar RichTextEditorUtil = require(\"./RichTextEditorUtil\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar convertFromDraftStateToRaw = require(\"./convertFromDraftStateToRaw\");\n\nvar convertFromRawToDraftState = require(\"./convertFromRawToDraftState\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getDefaultKeyBinding = require(\"./getDefaultKeyBinding\");\n\nvar getVisibleSelectionRect = require(\"./getVisibleSelectionRect\");\n\nvar convertFromHTML = require(\"./convertFromHTMLToContentBlocks\");\n\nvar DraftPublic = {\n Editor: DraftEditor,\n EditorBlock: DraftEditorBlock,\n EditorState: EditorState,\n CompositeDecorator: CompositeDraftDecorator,\n Entity: DraftEntity,\n EntityInstance: DraftEntityInstance,\n BlockMapBuilder: BlockMapBuilder,\n CharacterMetadata: CharacterMetadata,\n ContentBlock: ContentBlock,\n ContentState: ContentState,\n RawDraftContentState: RawDraftContentState,\n SelectionState: SelectionState,\n AtomicBlockUtils: AtomicBlockUtils,\n KeyBindingUtil: KeyBindingUtil,\n Modifier: DraftModifier,\n RichUtils: RichTextEditorUtil,\n DefaultDraftBlockRenderMap: DefaultDraftBlockRenderMap,\n DefaultDraftInlineStyle: DefaultDraftInlineStyle,\n convertFromHTML: convertFromHTML,\n convertFromRaw: convertFromRawToDraftState,\n convertToRaw: convertFromDraftStateToRaw,\n genKey: generateRandomKey,\n getDefaultKeyBinding: getDefaultKeyBinding,\n getVisibleSelectionRect: getVisibleSelectionRect\n};\nmodule.exports = DraftPublic;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @preventMunge\n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() {\n _extends = _assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _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\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\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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar DefaultDraftBlockRenderMap = require(\"./DefaultDraftBlockRenderMap\");\n\nvar DefaultDraftInlineStyle = require(\"./DefaultDraftInlineStyle\");\n\nvar DraftEditorCompositionHandler = require(\"./DraftEditorCompositionHandler\");\n\nvar DraftEditorContents = require(\"./DraftEditorContents.react\");\n\nvar DraftEditorDragHandler = require(\"./DraftEditorDragHandler\");\n\nvar DraftEditorEditHandler = require(\"./DraftEditorEditHandler\");\n\nvar flushControlled = require(\"./DraftEditorFlushControlled\");\n\nvar DraftEditorPlaceholder = require(\"./DraftEditorPlaceholder.react\");\n\nvar DraftEffects = require(\"./DraftEffects\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar React = require(\"react\");\n\nvar Scroll = require(\"fbjs/lib/Scroll\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getDefaultKeyBinding = require(\"./getDefaultKeyBinding\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar gkx = require(\"./gkx\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar isIE = UserAgent.isBrowser('IE'); // IE does not support the `input` event on contentEditable, so we can't\n// observe spellcheck behavior.\n\nvar allowSpellCheck = !isIE; // Define a set of handler objects to correspond to each possible `mode`\n// of editor behavior.\n\nvar handlerMap = {\n edit: DraftEditorEditHandler,\n composite: DraftEditorCompositionHandler,\n drag: DraftEditorDragHandler,\n cut: null,\n render: null\n};\nvar didInitODS = false;\n\nvar UpdateDraftEditorFlags = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(UpdateDraftEditorFlags, _React$Component);\n\n function UpdateDraftEditorFlags() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = UpdateDraftEditorFlags.prototype;\n\n _proto.render = function render() {\n return null;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this._update();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this._update();\n };\n\n _proto._update = function _update() {\n var editor = this.props.editor;\n /**\n * Sometimes a render triggers a 'focus' or other event, and that will\n * schedule a second render pass.\n * In order to make sure the second render pass gets the latest editor\n * state, we update it here.\n * Example:\n * render #1\n * +\n * |\n * | cWU -> Nothing ... latestEditorState = STALE_STATE :(\n * |\n * | render -> this.props.editorState = FRESH_STATE\n * | + *and* set latestEditorState = FRESH_STATE\n * |\n * | |\n * | +--> triggers 'focus' event, calling 'handleFocus' with latestEditorState\n * | +\n * | |\n * +>cdU -> latestEditorState = FRESH_STATE | the 'handleFocus' call schedules render #2\n * | with latestEditorState, which is FRESH_STATE\n * |\n * render #2 <--------------------------------------+\n * +\n * |\n * | cwU -> nothing updates\n * |\n * | render -> this.props.editorState = FRESH_STATE which was passed in above\n * |\n * +>cdU fires and resets latestEditorState = FRESH_STATE\n * ---\n * Note that if we don't set latestEditorState in 'render' in the above\n * diagram, then STALE_STATE gets passed to render #2.\n */\n\n editor._latestEditorState = this.props.editorState;\n /**\n * The reason we set this 'blockSelectEvents' flag is that IE will fire a\n * 'selectionChange' event when we programmatically change the selection,\n * meaning it would trigger a new select event while we are in the middle\n * of updating.\n * We found that the 'selection.addRange' was what triggered the stray\n * selectionchange event in IE.\n * To be clear - we have not been able to reproduce specific bugs related\n * to this stray selection event, but have recorded logs that some\n * conditions do cause it to get bumped into during editOnSelect.\n */\n\n editor._blockSelectEvents = true;\n };\n\n return UpdateDraftEditorFlags;\n}(React.Component);\n/**\n * `DraftEditor` is the root editor component. It composes a `contentEditable`\n * div, and provides a wide variety of useful function props for managing the\n * state of the editor. See `DraftEditorProps` for details.\n */\n\n\nvar DraftEditor = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(DraftEditor, _React$Component2);\n /**\n * Define proxies that can route events to the current handler.\n */\n\n\n function DraftEditor(props) {\n var _this;\n\n _this = _React$Component2.call(this, props) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"_blockSelectEvents\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_clipboard\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_handler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_dragCount\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_internalDrag\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_editorKey\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_placeholderAccessibilityID\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_latestEditorState\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_latestCommittedEditorState\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_pendingStateFromBeforeInput\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onBeforeInput\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onBlur\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCharacterData\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCompositionEnd\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCompositionStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCopy\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onCut\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDragEnd\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDragOver\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDragStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onDrop\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onInput\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onFocus\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyPress\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyUp\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onMouseUp\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onPaste\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onSelect\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"editor\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"editorContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setMode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"exitCurrentMode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"restoreEditorDOM\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setClipboard\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"getClipboard\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"getEditorKey\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"update\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_handleEditorContainerRef\", function (node) {\n _this.editorContainer = node; // Instead of having a direct ref on the child, we'll grab it here.\n // This is safe as long as the rendered structure is static (which it is).\n // This lets the child support ref={props.editorRef} without merging refs.\n\n _this.editor = node !== null ? node.firstChild : null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function (scrollPosition) {\n var editorState = _this.props.editorState;\n var alreadyHasFocus = editorState.getSelection().getHasFocus();\n var editorNode = _this.editor;\n\n if (!editorNode) {\n // once in a while people call 'focus' in a setTimeout, and the node has\n // been deleted, so it can be null in that case.\n return;\n }\n\n var scrollParent = Style.getScrollParent(editorNode);\n\n var _ref = scrollPosition || getScrollPosition(scrollParent),\n x = _ref.x,\n y = _ref.y;\n\n !isHTMLElement(editorNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'editorNode is not an HTMLElement') : invariant(false) : void 0;\n editorNode.focus(); // Restore scroll position\n\n if (scrollParent === window) {\n window.scrollTo(x, y);\n } else {\n Scroll.setTop(scrollParent, y);\n } // On Chrome and Safari, calling focus on contenteditable focuses the\n // cursor at the first character. This is something you don't expect when\n // you're clicking on an input element but not directly on a character.\n // Put the cursor back where it was before the blur.\n\n\n if (!alreadyHasFocus) {\n _this.update(EditorState.forceSelection(editorState, editorState.getSelection()));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n var editorNode = _this.editor;\n\n if (!editorNode) {\n return;\n }\n\n !isHTMLElement(editorNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'editorNode is not an HTMLElement') : invariant(false) : void 0;\n editorNode.blur();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setMode\", function (mode) {\n var _this$props = _this.props,\n onPaste = _this$props.onPaste,\n onCut = _this$props.onCut,\n onCopy = _this$props.onCopy;\n\n var editHandler = _objectSpread({}, handlerMap.edit);\n\n if (onPaste) {\n /* $FlowFixMe[incompatible-type] (>=0.117.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.117 was deployed. To see the\n * error delete this comment and run Flow. */\n editHandler.onPaste = onPaste;\n }\n\n if (onCut) {\n editHandler.onCut = onCut;\n }\n\n if (onCopy) {\n editHandler.onCopy = onCopy;\n }\n\n var handler = _objectSpread({}, handlerMap, {\n edit: editHandler\n });\n\n _this._handler = handler[mode];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"exitCurrentMode\", function () {\n _this.setMode('edit');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"restoreEditorDOM\", function (scrollPosition) {\n _this.setState({\n contentsKey: _this.state.contentsKey + 1\n }, function () {\n _this.focus(scrollPosition);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setClipboard\", function (clipboard) {\n _this._clipboard = clipboard;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getClipboard\", function () {\n return _this._clipboard;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"update\", function (editorState) {\n _this._latestEditorState = editorState;\n\n _this.props.onChange(editorState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function () {\n _this._dragCount++;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function () {\n _this._dragCount--;\n\n if (_this._dragCount === 0) {\n _this.exitCurrentMode();\n }\n });\n\n _this._blockSelectEvents = false;\n _this._clipboard = null;\n _this._handler = null;\n _this._dragCount = 0;\n _this._editorKey = props.editorKey || generateRandomKey();\n _this._placeholderAccessibilityID = 'placeholder-' + _this._editorKey;\n _this._latestEditorState = props.editorState;\n _this._latestCommittedEditorState = props.editorState;\n _this._onBeforeInput = _this._buildHandler('onBeforeInput');\n _this._onBlur = _this._buildHandler('onBlur');\n _this._onCharacterData = _this._buildHandler('onCharacterData');\n _this._onCompositionEnd = _this._buildHandler('onCompositionEnd');\n _this._onCompositionStart = _this._buildHandler('onCompositionStart');\n _this._onCopy = _this._buildHandler('onCopy');\n _this._onCut = _this._buildHandler('onCut');\n _this._onDragEnd = _this._buildHandler('onDragEnd');\n _this._onDragOver = _this._buildHandler('onDragOver');\n _this._onDragStart = _this._buildHandler('onDragStart');\n _this._onDrop = _this._buildHandler('onDrop');\n _this._onInput = _this._buildHandler('onInput');\n _this._onFocus = _this._buildHandler('onFocus');\n _this._onKeyDown = _this._buildHandler('onKeyDown');\n _this._onKeyPress = _this._buildHandler('onKeyPress');\n _this._onKeyUp = _this._buildHandler('onKeyUp');\n _this._onMouseDown = _this._buildHandler('onMouseDown');\n _this._onMouseUp = _this._buildHandler('onMouseUp');\n _this._onPaste = _this._buildHandler('onPaste');\n _this._onSelect = _this._buildHandler('onSelect');\n\n _this.getEditorKey = function () {\n return _this._editorKey;\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n ['onDownArrow', 'onEscape', 'onLeftArrow', 'onRightArrow', 'onTab', 'onUpArrow'].forEach(function (propName) {\n if (props.hasOwnProperty(propName)) {\n // eslint-disable-next-line no-console\n console.warn(\"Supplying an `\".concat(propName, \"` prop to `DraftEditor` has \") + 'been deprecated. If your handler needs access to the keyboard ' + 'event, supply a custom `keyBindingFn` prop that falls back to ' + 'the default one (eg. https://is.gd/wHKQ3W).');\n }\n });\n } // See `restoreEditorDOM()`.\n\n\n _this.state = {\n contentsKey: 0\n };\n return _this;\n }\n /**\n * Build a method that will pass the event to the specified handler method.\n * This allows us to look up the correct handler function for the current\n * editor mode, if any has been specified.\n */\n\n\n var _proto2 = DraftEditor.prototype;\n\n _proto2._buildHandler = function _buildHandler(eventName) {\n var _this2 = this; // Wrap event handlers in `flushControlled`. In sync mode, this is\n // effectively a no-op. In async mode, this ensures all updates scheduled\n // inside the handler are flushed before React yields to the browser.\n\n\n return function (e) {\n if (!_this2.props.readOnly) {\n var method = _this2._handler && _this2._handler[eventName];\n\n if (method) {\n if (flushControlled) {\n flushControlled(function () {\n return method(_this2, e);\n });\n } else {\n method(_this2, e);\n }\n }\n }\n };\n };\n\n _proto2._showPlaceholder = function _showPlaceholder() {\n return !!this.props.placeholder && !this.props.editorState.isInCompositionMode() && !this.props.editorState.getCurrentContent().hasText();\n };\n\n _proto2._renderPlaceholder = function _renderPlaceholder() {\n if (this._showPlaceholder()) {\n var placeHolderProps = {\n text: nullthrows(this.props.placeholder),\n editorState: this.props.editorState,\n textAlignment: this.props.textAlignment,\n accessibilityID: this._placeholderAccessibilityID\n };\n /* $FlowFixMe[incompatible-type] (>=0.112.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.112 was deployed. To see the\n * error delete this comment and run Flow. */\n\n return React.createElement(DraftEditorPlaceholder, placeHolderProps);\n }\n\n return null;\n }\n /**\n * returns ariaDescribedBy prop with '{{editor_id_placeholder}}' replaced with\n * the DOM id of the placeholder (if it exists)\n * @returns aria-describedby attribute value\n */\n ;\n\n _proto2._renderARIADescribedBy = function _renderARIADescribedBy() {\n var describedBy = this.props.ariaDescribedBy || '';\n var placeholderID = this._showPlaceholder() ? this._placeholderAccessibilityID : '';\n return describedBy.replace('{{editor_id_placeholder}}', placeholderID) || undefined;\n };\n\n _proto2.render = function render() {\n var _this$props2 = this.props,\n blockRenderMap = _this$props2.blockRenderMap,\n blockRendererFn = _this$props2.blockRendererFn,\n blockStyleFn = _this$props2.blockStyleFn,\n customStyleFn = _this$props2.customStyleFn,\n customStyleMap = _this$props2.customStyleMap,\n editorState = _this$props2.editorState,\n preventScroll = _this$props2.preventScroll,\n readOnly = _this$props2.readOnly,\n textAlignment = _this$props2.textAlignment,\n textDirectionality = _this$props2.textDirectionality;\n var rootClass = cx({\n 'DraftEditor/root': true,\n 'DraftEditor/alignLeft': textAlignment === 'left',\n 'DraftEditor/alignRight': textAlignment === 'right',\n 'DraftEditor/alignCenter': textAlignment === 'center'\n });\n var contentStyle = {\n outline: 'none',\n // fix parent-draggable Safari bug. #1326\n userSelect: 'text',\n WebkitUserSelect: 'text',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n }; // The aria-expanded and aria-haspopup properties should only be rendered\n // for a combobox.\n\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n\n var ariaRole = this.props.role || 'textbox';\n var ariaExpanded = ariaRole === 'combobox' ? !!this.props.ariaExpanded : null;\n var editorContentsProps = {\n blockRenderMap: blockRenderMap,\n blockRendererFn: blockRendererFn,\n blockStyleFn: blockStyleFn,\n customStyleMap: _objectSpread({}, DefaultDraftInlineStyle, customStyleMap),\n customStyleFn: customStyleFn,\n editorKey: this._editorKey,\n editorState: editorState,\n preventScroll: preventScroll,\n textDirectionality: textDirectionality\n };\n return React.createElement(\"div\", {\n className: rootClass\n }, this._renderPlaceholder(), React.createElement(\"div\", {\n className: cx('DraftEditor/editorContainer'),\n ref: this._handleEditorContainerRef\n }, React.createElement(\"div\", {\n \"aria-activedescendant\": readOnly ? null : this.props.ariaActiveDescendantID,\n \"aria-autocomplete\": readOnly ? null : this.props.ariaAutoComplete,\n \"aria-controls\": readOnly ? null : this.props.ariaControls,\n \"aria-describedby\": this._renderARIADescribedBy(),\n \"aria-expanded\": readOnly ? null : ariaExpanded,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-multiline\": this.props.ariaMultiline,\n \"aria-owns\": readOnly ? null : this.props.ariaOwneeID,\n autoCapitalize: this.props.autoCapitalize,\n autoComplete: this.props.autoComplete,\n autoCorrect: this.props.autoCorrect,\n className: cx({\n // Chrome's built-in translation feature mutates the DOM in ways\n // that Draft doesn't expect (ex: adding tags inside\n // DraftEditorLeaf spans) and causes problems. We add notranslate\n // here which makes its autotranslation skip over this subtree.\n notranslate: !readOnly,\n 'public/DraftEditor/content': true\n }),\n contentEditable: !readOnly,\n \"data-testid\": this.props.webDriverTestID,\n onBeforeInput: this._onBeforeInput,\n onBlur: this._onBlur,\n onCompositionEnd: this._onCompositionEnd,\n onCompositionStart: this._onCompositionStart,\n onCopy: this._onCopy,\n onCut: this._onCut,\n onDragEnd: this._onDragEnd,\n onDragEnter: this.onDragEnter,\n onDragLeave: this.onDragLeave,\n onDragOver: this._onDragOver,\n onDragStart: this._onDragStart,\n onDrop: this._onDrop,\n onFocus: this._onFocus,\n onInput: this._onInput,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseUp: this._onMouseUp,\n onPaste: this._onPaste,\n onSelect: this._onSelect,\n ref: this.props.editorRef,\n role: readOnly ? null : ariaRole,\n spellCheck: allowSpellCheck && this.props.spellCheck,\n style: contentStyle,\n suppressContentEditableWarning: true,\n tabIndex: this.props.tabIndex\n }, React.createElement(UpdateDraftEditorFlags, {\n editor: this,\n editorState: editorState\n }), React.createElement(DraftEditorContents, _extends({}, editorContentsProps, {\n key: 'contents' + this.state.contentsKey\n })))));\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n this._blockSelectEvents = false;\n\n if (!didInitODS && gkx('draft_ods_enabled')) {\n didInitODS = true;\n DraftEffects.initODS();\n }\n\n this.setMode('edit');\n /**\n * IE has a hardcoded \"feature\" that attempts to convert link text into\n * anchors in contentEditable DOM. This breaks the editor's expectations of\n * the DOM, and control is lost. Disable it to make IE behave.\n * See: http://blogs.msdn.com/b/ieinternals/archive/2010/09/15/\n * ie9-beta-minor-change-list.aspx\n */\n\n if (isIE) {\n // editor can be null after mounting\n // https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback\n if (!this.editor) {\n global.execCommand('AutoUrlDetect', false, false);\n } else {\n this.editor.ownerDocument.execCommand('AutoUrlDetect', false, false);\n }\n }\n };\n\n _proto2.componentDidUpdate = function componentDidUpdate() {\n this._blockSelectEvents = false;\n this._latestEditorState = this.props.editorState;\n this._latestCommittedEditorState = this.props.editorState;\n }\n /**\n * Used via `this.focus()`.\n *\n * Force focus back onto the editor node.\n *\n * We attempt to preserve scroll position when focusing. You can also pass\n * a specified scroll position (for cases like `cut` behavior where it should\n * be restored to a known position).\n */\n ;\n\n return DraftEditor;\n}(React.Component);\n\n_defineProperty(DraftEditor, \"defaultProps\", {\n ariaDescribedBy: '{{editor_id_placeholder}}',\n blockRenderMap: DefaultDraftBlockRenderMap,\n blockRendererFn: function blockRendererFn() {\n return null;\n },\n blockStyleFn: function blockStyleFn() {\n return '';\n },\n keyBindingFn: getDefaultKeyBinding,\n readOnly: false,\n spellCheck: false,\n stripPastedStyles: false\n});\n\nmodule.exports = DraftEditor;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() {\n _extends = _assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\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\nvar DraftEditorLeaf = require(\"./DraftEditorLeaf.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar Scroll = require(\"fbjs/lib/Scroll\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar UnicodeBidi = require(\"fbjs/lib/UnicodeBidi\");\n\nvar UnicodeBidiDirection = require(\"fbjs/lib/UnicodeBidiDirection\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar getElementPosition = require(\"fbjs/lib/getElementPosition\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar getViewportDimensions = require(\"fbjs/lib/getViewportDimensions\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar SCROLL_BUFFER = 10;\n/**\n * Return whether a block overlaps with either edge of the `SelectionState`.\n */\n\nvar isBlockOnSelectionEdge = function isBlockOnSelectionEdge(selection, key) {\n return selection.getAnchorKey() === key || selection.getFocusKey() === key;\n};\n/**\n * The default block renderer for a `DraftEditor` component.\n *\n * A `DraftEditorBlock` is able to render a given `ContentBlock` to its\n * appropriate decorator and inline style components.\n */\n\n\nvar DraftEditorBlock = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorBlock, _React$Component);\n\n function DraftEditorBlock() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"_node\", void 0);\n\n return _this;\n }\n\n var _proto = DraftEditorBlock.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return this.props.block !== nextProps.block || this.props.tree !== nextProps.tree || this.props.direction !== nextProps.direction || isBlockOnSelectionEdge(nextProps.selection, nextProps.block.getKey()) && nextProps.forceSelection;\n }\n /**\n * When a block is mounted and overlaps the selection state, we need to make\n * sure that the cursor is visible to match native behavior. This may not\n * be the case if the user has pressed `RETURN` or pasted some content, since\n * programmatically creating these new blocks and setting the DOM selection\n * will miss out on the browser natively scrolling to that position.\n *\n * To replicate native behavior, if the block overlaps the selection state\n * on mount, force the scroll position. Check the scroll state of the scroll\n * parent, and adjust it to align the entire block to the bottom of the\n * scroll parent.\n */\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.preventScroll) {\n return;\n }\n\n var selection = this.props.selection;\n var endKey = selection.getEndKey();\n\n if (!selection.getHasFocus() || endKey !== this.props.block.getKey()) {\n return;\n }\n\n var blockNode = this._node;\n\n if (blockNode == null) {\n return;\n }\n\n var scrollParent = Style.getScrollParent(blockNode);\n var scrollPosition = getScrollPosition(scrollParent);\n var scrollDelta;\n\n if (scrollParent === window) {\n var nodePosition = getElementPosition(blockNode);\n var nodeBottom = nodePosition.y + nodePosition.height;\n var viewportHeight = getViewportDimensions().height;\n scrollDelta = nodeBottom - viewportHeight;\n\n if (scrollDelta > 0) {\n window.scrollTo(scrollPosition.x, scrollPosition.y + scrollDelta + SCROLL_BUFFER);\n }\n } else {\n !isHTMLElement(blockNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'blockNode is not an HTMLElement') : invariant(false) : void 0;\n var blockBottom = blockNode.offsetHeight + blockNode.offsetTop;\n var pOffset = scrollParent.offsetTop + scrollParent.offsetHeight;\n var scrollBottom = pOffset + scrollPosition.y;\n scrollDelta = blockBottom - scrollBottom;\n\n if (scrollDelta > 0) {\n Scroll.setTop(scrollParent, Scroll.getTop(scrollParent) + scrollDelta + SCROLL_BUFFER);\n }\n }\n };\n\n _proto._renderChildren = function _renderChildren() {\n var _this2 = this;\n\n var block = this.props.block;\n var blockKey = block.getKey();\n var text = block.getText();\n var lastLeafSet = this.props.tree.size - 1;\n var hasSelection = isBlockOnSelectionEdge(this.props.selection, blockKey);\n return this.props.tree.map(function (leafSet, ii) {\n var leavesForLeafSet = leafSet.get('leaves'); // T44088704\n\n if (leavesForLeafSet.size === 0) {\n return null;\n }\n\n var lastLeaf = leavesForLeafSet.size - 1;\n var leaves = leavesForLeafSet.map(function (leaf, jj) {\n var offsetKey = DraftOffsetKey.encode(blockKey, ii, jj);\n var start = leaf.get('start');\n var end = leaf.get('end');\n return React.createElement(DraftEditorLeaf, {\n key: offsetKey,\n offsetKey: offsetKey,\n block: block,\n start: start,\n selection: hasSelection ? _this2.props.selection : null,\n forceSelection: _this2.props.forceSelection,\n text: text.slice(start, end),\n styleSet: block.getInlineStyleAt(start),\n customStyleMap: _this2.props.customStyleMap,\n customStyleFn: _this2.props.customStyleFn,\n isLast: ii === lastLeafSet && jj === lastLeaf\n });\n }).toArray();\n var decoratorKey = leafSet.get('decoratorKey');\n\n if (decoratorKey == null) {\n return leaves;\n }\n\n if (!_this2.props.decorator) {\n return leaves;\n }\n\n var decorator = nullthrows(_this2.props.decorator);\n var DecoratorComponent = decorator.getComponentForKey(decoratorKey);\n\n if (!DecoratorComponent) {\n return leaves;\n }\n\n var decoratorProps = decorator.getPropsForKey(decoratorKey);\n var decoratorOffsetKey = DraftOffsetKey.encode(blockKey, ii, 0);\n var start = leavesForLeafSet.first().get('start');\n var end = leavesForLeafSet.last().get('end');\n var decoratedText = text.slice(start, end);\n var entityKey = block.getEntityAt(leafSet.get('start')); // Resetting dir to the same value on a child node makes Chrome/Firefox\n // confused on cursor movement. See http://jsfiddle.net/d157kLck/3/\n\n var dir = UnicodeBidiDirection.getHTMLDirIfDifferent(UnicodeBidi.getDirection(decoratedText), _this2.props.direction);\n var commonProps = {\n contentState: _this2.props.contentState,\n decoratedText: decoratedText,\n dir: dir,\n start: start,\n end: end,\n blockKey: blockKey,\n entityKey: entityKey,\n offsetKey: decoratorOffsetKey\n };\n return React.createElement(DecoratorComponent, _extends({}, decoratorProps, commonProps, {\n key: decoratorOffsetKey\n }), leaves);\n }).toArray();\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n direction = _this$props.direction,\n offsetKey = _this$props.offsetKey;\n var className = cx({\n 'public/DraftStyleDefault/block': true,\n 'public/DraftStyleDefault/ltr': direction === 'LTR',\n 'public/DraftStyleDefault/rtl': direction === 'RTL'\n });\n return React.createElement(\"div\", {\n \"data-offset-key\": offsetKey,\n className: className,\n ref: function ref(_ref) {\n return _this3._node = _ref;\n }\n }, this._renderChildren());\n };\n\n return DraftEditorBlock;\n}(React.Component);\n\nmodule.exports = DraftEditorBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This file is a fork of DraftEditorBlock.react.js and DraftEditorContents.react.js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() {\n _extends = _assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\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\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\nvar DraftEditorNode = require(\"./DraftEditorNode.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar Scroll = require(\"fbjs/lib/Scroll\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar getElementPosition = require(\"fbjs/lib/getElementPosition\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar getViewportDimensions = require(\"fbjs/lib/getViewportDimensions\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar SCROLL_BUFFER = 10;\nvar List = Immutable.List; // we should harden up the bellow flow types to make them more strict\n\n/**\n * Return whether a block overlaps with either edge of the `SelectionState`.\n */\n\nvar isBlockOnSelectionEdge = function isBlockOnSelectionEdge(selection, key) {\n return selection.getAnchorKey() === key || selection.getFocusKey() === key;\n};\n/**\n * We will use this helper to identify blocks that need to be wrapped but have siblings that\n * also share the same wrapper element, this way we can do the wrapping once the last sibling\n * is added.\n */\n\n\nvar shouldNotAddWrapperElement = function shouldNotAddWrapperElement(block, contentState) {\n var nextSiblingKey = block.getNextSiblingKey();\n return nextSiblingKey ? contentState.getBlockForKey(nextSiblingKey).getType() === block.getType() : false;\n};\n\nvar applyWrapperElementToSiblings = function applyWrapperElementToSiblings(wrapperTemplate, Element, nodes) {\n var wrappedSiblings = []; // we check back until we find a sibling that does not have same wrapper\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nodes.reverse()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var sibling = _step.value;\n\n if (sibling.type !== Element) {\n break;\n }\n\n wrappedSiblings.push(sibling);\n } // we now should remove from acc the wrappedSiblings and add them back under same wrap\n\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n nodes.splice(nodes.indexOf(wrappedSiblings[0]), wrappedSiblings.length + 1);\n var childrenIs = wrappedSiblings.reverse();\n var key = childrenIs[0].key;\n nodes.push(React.cloneElement(wrapperTemplate, {\n key: \"\".concat(key, \"-wrap\"),\n 'data-offset-key': DraftOffsetKey.encode(key, 0, 0)\n }, childrenIs));\n return nodes;\n};\n\nvar getDraftRenderConfig = function getDraftRenderConfig(block, blockRenderMap) {\n var configForType = blockRenderMap.get(block.getType()) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n var Element = configForType.element || blockRenderMap.get('unstyled').element;\n return {\n Element: Element,\n wrapperTemplate: wrapperTemplate\n };\n};\n\nvar getCustomRenderConfig = function getCustomRenderConfig(block, blockRendererFn) {\n var customRenderer = blockRendererFn(block);\n\n if (!customRenderer) {\n return {};\n }\n\n var CustomComponent = customRenderer.component,\n customProps = customRenderer.props,\n customEditable = customRenderer.editable;\n return {\n CustomComponent: CustomComponent,\n customProps: customProps,\n customEditable: customEditable\n };\n};\n\nvar getElementPropsConfig = function getElementPropsConfig(block, editorKey, offsetKey, blockStyleFn, customConfig, ref) {\n var elementProps = {\n 'data-block': true,\n 'data-editor': editorKey,\n 'data-offset-key': offsetKey,\n key: block.getKey(),\n ref: ref\n };\n var customClass = blockStyleFn(block);\n\n if (customClass) {\n elementProps.className = customClass;\n }\n\n if (customConfig.customEditable !== undefined) {\n elementProps = _objectSpread({}, elementProps, {\n contentEditable: customConfig.customEditable,\n suppressContentEditableWarning: true\n });\n }\n\n return elementProps;\n};\n\nvar DraftEditorBlockNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorBlockNode, _React$Component);\n\n function DraftEditorBlockNode() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"wrapperRef\", React.createRef());\n\n return _this;\n }\n\n var _proto = DraftEditorBlockNode.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var _this$props = this.props,\n block = _this$props.block,\n direction = _this$props.direction,\n tree = _this$props.tree;\n var isContainerNode = !block.getChildKeys().isEmpty();\n var blockHasChanged = block !== nextProps.block || tree !== nextProps.tree || direction !== nextProps.direction || isBlockOnSelectionEdge(nextProps.selection, nextProps.block.getKey()) && nextProps.forceSelection; // if we have children at this stage we always re-render container nodes\n // else if its a root node we avoid re-rendering by checking for block updates\n\n return isContainerNode || blockHasChanged;\n }\n /**\n * When a block is mounted and overlaps the selection state, we need to make\n * sure that the cursor is visible to match native behavior. This may not\n * be the case if the user has pressed `RETURN` or pasted some content, since\n * programatically creating these new blocks and setting the DOM selection\n * will miss out on the browser natively scrolling to that position.\n *\n * To replicate native behavior, if the block overlaps the selection state\n * on mount, force the scroll position. Check the scroll state of the scroll\n * parent, and adjust it to align the entire block to the bottom of the\n * scroll parent.\n */\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var selection = this.props.selection;\n var endKey = selection.getEndKey();\n\n if (!selection.getHasFocus() || endKey !== this.props.block.getKey()) {\n return;\n }\n\n var blockNode = this.wrapperRef.current;\n\n if (!blockNode) {\n // This Block Node was rendered without a wrapper element.\n return;\n }\n\n var scrollParent = Style.getScrollParent(blockNode);\n var scrollPosition = getScrollPosition(scrollParent);\n var scrollDelta;\n\n if (scrollParent === window) {\n var nodePosition = getElementPosition(blockNode);\n var nodeBottom = nodePosition.y + nodePosition.height;\n var viewportHeight = getViewportDimensions().height;\n scrollDelta = nodeBottom - viewportHeight;\n\n if (scrollDelta > 0) {\n window.scrollTo(scrollPosition.x, scrollPosition.y + scrollDelta + SCROLL_BUFFER);\n }\n } else {\n !isHTMLElement(blockNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'blockNode is not an HTMLElement') : invariant(false) : void 0;\n var htmlBlockNode = blockNode;\n var blockBottom = htmlBlockNode.offsetHeight + htmlBlockNode.offsetTop;\n var scrollBottom = scrollParent.offsetHeight + scrollPosition.y;\n scrollDelta = blockBottom - scrollBottom;\n\n if (scrollDelta > 0) {\n Scroll.setTop(scrollParent, Scroll.getTop(scrollParent) + scrollDelta + SCROLL_BUFFER);\n }\n }\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n block = _this$props2.block,\n blockRenderMap = _this$props2.blockRenderMap,\n blockRendererFn = _this$props2.blockRendererFn,\n blockStyleFn = _this$props2.blockStyleFn,\n contentState = _this$props2.contentState,\n decorator = _this$props2.decorator,\n editorKey = _this$props2.editorKey,\n editorState = _this$props2.editorState,\n customStyleFn = _this$props2.customStyleFn,\n customStyleMap = _this$props2.customStyleMap,\n direction = _this$props2.direction,\n forceSelection = _this$props2.forceSelection,\n selection = _this$props2.selection,\n tree = _this$props2.tree;\n var children = null;\n\n if (block.children.size) {\n children = block.children.reduce(function (acc, key) {\n var offsetKey = DraftOffsetKey.encode(key, 0, 0);\n var child = contentState.getBlockForKey(key);\n var customConfig = getCustomRenderConfig(child, blockRendererFn);\n var Component = customConfig.CustomComponent || DraftEditorBlockNode;\n\n var _getDraftRenderConfig = getDraftRenderConfig(child, blockRenderMap),\n Element = _getDraftRenderConfig.Element,\n wrapperTemplate = _getDraftRenderConfig.wrapperTemplate;\n\n var elementProps = getElementPropsConfig(child, editorKey, offsetKey, blockStyleFn, customConfig, null);\n\n var childProps = _objectSpread({}, _this2.props, {\n tree: editorState.getBlockTree(key),\n blockProps: customConfig.customProps,\n offsetKey: offsetKey,\n block: child\n });\n\n acc.push(React.createElement(Element, elementProps, React.createElement(Component, childProps)));\n\n if (!wrapperTemplate || shouldNotAddWrapperElement(child, contentState)) {\n return acc;\n } // if we are here it means we are the last block\n // that has a wrapperTemplate so we should wrap itself\n // and all other previous siblings that share the same wrapper\n\n\n applyWrapperElementToSiblings(wrapperTemplate, Element, acc);\n return acc;\n }, []);\n }\n\n var blockKey = block.getKey();\n var offsetKey = DraftOffsetKey.encode(blockKey, 0, 0);\n var customConfig = getCustomRenderConfig(block, blockRendererFn);\n var Component = customConfig.CustomComponent;\n var blockNode = Component != null ? React.createElement(Component, _extends({}, this.props, {\n tree: editorState.getBlockTree(blockKey),\n blockProps: customConfig.customProps,\n offsetKey: offsetKey,\n block: block\n })) : React.createElement(DraftEditorNode, {\n block: block,\n children: children,\n contentState: contentState,\n customStyleFn: customStyleFn,\n customStyleMap: customStyleMap,\n decorator: decorator,\n direction: direction,\n forceSelection: forceSelection,\n hasSelection: isBlockOnSelectionEdge(selection, blockKey),\n selection: selection,\n tree: tree\n });\n\n if (block.getParentKey()) {\n return blockNode;\n }\n\n var _getDraftRenderConfig2 = getDraftRenderConfig(block, blockRenderMap),\n Element = _getDraftRenderConfig2.Element;\n\n var elementProps = getElementPropsConfig(block, editorKey, offsetKey, blockStyleFn, customConfig, this.wrapperRef); // root block nodes needs to be wrapped\n\n return React.createElement(Element, elementProps, blockNode);\n };\n\n return DraftEditorBlockNode;\n}(React.Component);\n\nmodule.exports = DraftEditorBlockNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DOMObserver = require(\"./DOMObserver\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar editOnSelect = require(\"./editOnSelect\");\n\nvar getContentEditableContainer = require(\"./getContentEditableContainer\");\n\nvar getDraftEditorSelection = require(\"./getDraftEditorSelection\");\n\nvar getEntityKeyForSelection = require(\"./getEntityKeyForSelection\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar isIE = UserAgent.isBrowser('IE');\n/**\n * Millisecond delay to allow `compositionstart` to fire again upon\n * `compositionend`.\n *\n * This is used for Korean input to ensure that typing can continue without\n * the editor trying to render too quickly. More specifically, Safari 7.1+\n * triggers `compositionstart` a little slower than Chrome/FF, which\n * leads to composed characters being resolved and re-render occurring\n * sooner than we want.\n */\n\nvar RESOLVE_DELAY = 20;\n/**\n * A handful of variables used to track the current composition and its\n * resolution status. These exist at the module level because it is not\n * possible to have compositions occurring in multiple editors simultaneously,\n * and it simplifies state management with respect to the DraftEditor component.\n */\n\nvar resolved = false;\nvar stillComposing = false;\nvar domObserver = null;\n\nfunction startDOMObserver(editor) {\n if (!domObserver) {\n domObserver = new DOMObserver(getContentEditableContainer(editor));\n domObserver.start();\n }\n}\n\nvar DraftEditorCompositionHandler = {\n /**\n * A `compositionstart` event has fired while we're still in composition\n * mode. Continue the current composition session to prevent a re-render.\n */\n onCompositionStart: function onCompositionStart(editor) {\n stillComposing = true;\n startDOMObserver(editor);\n },\n\n /**\n * Attempt to end the current composition session.\n *\n * Defer handling because browser will still insert the chars into active\n * element after `compositionend`. If a `compositionstart` event fires\n * before `resolveComposition` executes, our composition session will\n * continue.\n *\n * The `resolved` flag is useful because certain IME interfaces fire the\n * `compositionend` event multiple times, thus queueing up multiple attempts\n * at handling the composition. Since handling the same composition event\n * twice could break the DOM, we only use the first event. Example: Arabic\n * Google Input Tools on Windows 8.1 fires `compositionend` three times.\n */\n onCompositionEnd: function onCompositionEnd(editor) {\n resolved = false;\n stillComposing = false;\n setTimeout(function () {\n if (!resolved) {\n DraftEditorCompositionHandler.resolveComposition(editor);\n }\n }, RESOLVE_DELAY);\n },\n onSelect: editOnSelect,\n\n /**\n * In Safari, keydown events may fire when committing compositions. If\n * the arrow keys are used to commit, prevent default so that the cursor\n * doesn't move, otherwise it will jump back noticeably on re-render.\n */\n onKeyDown: function onKeyDown(editor, e) {\n if (!stillComposing) {\n // If a keydown event is received after compositionend but before the\n // 20ms timer expires (ex: type option-E then backspace, or type A then\n // backspace in 2-Set Korean), we should immediately resolve the\n // composition and reinterpret the key press in edit mode.\n DraftEditorCompositionHandler.resolveComposition(editor);\n\n editor._onKeyDown(e);\n\n return;\n }\n\n if (e.which === Keys.RIGHT || e.which === Keys.LEFT) {\n e.preventDefault();\n }\n },\n\n /**\n * Keypress events may fire when committing compositions. In Firefox,\n * pressing RETURN commits the composition and inserts extra newline\n * characters that we do not want. `preventDefault` allows the composition\n * to be committed while preventing the extra characters.\n */\n onKeyPress: function onKeyPress(_editor, e) {\n if (e.which === Keys.RETURN) {\n e.preventDefault();\n }\n },\n\n /**\n * Attempt to insert composed characters into the document.\n *\n * If we are still in a composition session, do nothing. Otherwise, insert\n * the characters into the document and terminate the composition session.\n *\n * If no characters were composed -- for instance, the user\n * deleted all composed characters and committed nothing new --\n * force a re-render. We also re-render when the composition occurs\n * at the beginning of a leaf, to ensure that if the browser has\n * created a new text node for the composition, we will discard it.\n *\n * Resetting innerHTML will move focus to the beginning of the editor,\n * so we update to force it back to the correct place.\n */\n resolveComposition: function resolveComposition(editor) {\n if (stillComposing) {\n return;\n }\n\n var mutations = nullthrows(domObserver).stopAndFlushMutations();\n domObserver = null;\n resolved = true;\n var editorState = EditorState.set(editor._latestEditorState, {\n inCompositionMode: false\n });\n editor.exitCurrentMode();\n\n if (!mutations.size) {\n editor.update(editorState);\n return;\n } // TODO, check if Facebook still needs this flag or if it could be removed.\n // Since there can be multiple mutations providing a `composedChars` doesn't\n // apply well on this new model.\n // if (\n // gkx('draft_handlebeforeinput_composed_text') &&\n // editor.props.handleBeforeInput &&\n // isEventHandled(\n // editor.props.handleBeforeInput(\n // composedChars,\n // editorState,\n // event.timeStamp,\n // ),\n // )\n // ) {\n // return;\n // }\n\n\n var contentState = editorState.getCurrentContent();\n mutations.forEach(function (composedChars, offsetKey) {\n var _DraftOffsetKey$decod = DraftOffsetKey.decode(offsetKey),\n blockKey = _DraftOffsetKey$decod.blockKey,\n decoratorKey = _DraftOffsetKey$decod.decoratorKey,\n leafKey = _DraftOffsetKey$decod.leafKey;\n\n var _editorState$getBlock = editorState.getBlockTree(blockKey).getIn([decoratorKey, 'leaves', leafKey]),\n start = _editorState$getBlock.start,\n end = _editorState$getBlock.end;\n\n var replacementRange = editorState.getSelection().merge({\n anchorKey: blockKey,\n focusKey: blockKey,\n anchorOffset: start,\n focusOffset: end,\n isBackward: false\n });\n var entityKey = getEntityKeyForSelection(contentState, replacementRange);\n var currentStyle = contentState.getBlockForKey(blockKey).getInlineStyleAt(start);\n contentState = DraftModifier.replaceText(contentState, replacementRange, composedChars, currentStyle, entityKey); // We need to update the editorState so the leaf node ranges are properly\n // updated and multiple mutations are correctly applied.\n\n editorState = EditorState.set(editorState, {\n currentContent: contentState\n });\n }); // When we apply the text changes to the ContentState, the selection always\n // goes to the end of the field, but it should just stay where it is\n // after compositionEnd.\n\n var documentSelection = getDraftEditorSelection(editorState, getContentEditableContainer(editor));\n var compositionEndSelectionState = documentSelection.selectionState;\n editor.restoreEditorDOM(); // See:\n // - https://github.com/facebook/draft-js/issues/2093\n // - https://github.com/facebook/draft-js/pull/2094\n // Apply this fix only in IE for now. We can test it in\n // other browsers in the future to ensure no regressions\n\n var editorStateWithUpdatedSelection = isIE ? EditorState.forceSelection(editorState, compositionEndSelectionState) : EditorState.acceptSelection(editorState, compositionEndSelectionState);\n editor.update(EditorState.push(editorStateWithUpdatedSelection, contentState, 'insert-characters'));\n }\n};\nmodule.exports = DraftEditorCompositionHandler;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() {\n _extends = _assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _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\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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar DraftEditorBlock = require(\"./DraftEditorBlock.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar joinClasses = require(\"fbjs/lib/joinClasses\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n/**\n * 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 */\n\n\nvar getListItemClasses = function getListItemClasses(type, depth, shouldResetCount, direction) {\n return cx({\n 'public/DraftStyleDefault/unorderedListItem': type === 'unordered-list-item',\n 'public/DraftStyleDefault/orderedListItem': type === 'ordered-list-item',\n 'public/DraftStyleDefault/reset': shouldResetCount,\n 'public/DraftStyleDefault/depth0': depth === 0,\n 'public/DraftStyleDefault/depth1': depth === 1,\n 'public/DraftStyleDefault/depth2': depth === 2,\n 'public/DraftStyleDefault/depth3': depth === 3,\n 'public/DraftStyleDefault/depth4': depth >= 4,\n 'public/DraftStyleDefault/listLTR': direction === 'LTR',\n 'public/DraftStyleDefault/listRTL': direction === 'RTL'\n });\n};\n/**\n * `DraftEditorContents` is the container component for all block components\n * rendered for a `DraftEditor`. It is optimized to aggressively avoid\n * re-rendering blocks whenever possible.\n *\n * This component is separate from `DraftEditor` because certain props\n * (for instance, ARIA props) must be allowed to update without affecting\n * the contents of the editor.\n */\n\n\nvar DraftEditorContents = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorContents, _React$Component);\n\n function DraftEditorContents() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorContents.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var prevEditorState = this.props.editorState;\n var nextEditorState = nextProps.editorState;\n var prevDirectionMap = prevEditorState.getDirectionMap();\n var nextDirectionMap = nextEditorState.getDirectionMap(); // Text direction has changed for one or more blocks. We must re-render.\n\n if (prevDirectionMap !== nextDirectionMap) {\n return true;\n }\n\n var didHaveFocus = prevEditorState.getSelection().getHasFocus();\n var nowHasFocus = nextEditorState.getSelection().getHasFocus();\n\n if (didHaveFocus !== nowHasFocus) {\n return true;\n }\n\n var nextNativeContent = nextEditorState.getNativelyRenderedContent();\n var wasComposing = prevEditorState.isInCompositionMode();\n var nowComposing = nextEditorState.isInCompositionMode(); // If the state is unchanged or we're currently rendering a natively\n // rendered state, there's nothing new to be done.\n\n if (prevEditorState === nextEditorState || nextNativeContent !== null && nextEditorState.getCurrentContent() === nextNativeContent || wasComposing && nowComposing) {\n return false;\n }\n\n var prevContent = prevEditorState.getCurrentContent();\n var nextContent = nextEditorState.getCurrentContent();\n var prevDecorator = prevEditorState.getDecorator();\n var nextDecorator = nextEditorState.getDecorator();\n return wasComposing !== nowComposing || prevContent !== nextContent || prevDecorator !== nextDecorator || nextEditorState.mustForceSelection();\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n blockRenderMap = _this$props.blockRenderMap,\n blockRendererFn = _this$props.blockRendererFn,\n blockStyleFn = _this$props.blockStyleFn,\n customStyleMap = _this$props.customStyleMap,\n customStyleFn = _this$props.customStyleFn,\n editorState = _this$props.editorState,\n editorKey = _this$props.editorKey,\n preventScroll = _this$props.preventScroll,\n textDirectionality = _this$props.textDirectionality;\n var content = editorState.getCurrentContent();\n var selection = editorState.getSelection();\n var forceSelection = editorState.mustForceSelection();\n var decorator = editorState.getDecorator();\n var directionMap = nullthrows(editorState.getDirectionMap());\n var blocksAsArray = content.getBlocksAsArray();\n var processedBlocks = [];\n var currentDepth = null;\n var lastWrapperTemplate = null;\n\n for (var ii = 0; ii < blocksAsArray.length; ii++) {\n var _block = blocksAsArray[ii];\n\n var key = _block.getKey();\n\n var blockType = _block.getType();\n\n var customRenderer = blockRendererFn(_block);\n var CustomComponent = void 0,\n customProps = void 0,\n customEditable = void 0;\n\n if (customRenderer) {\n CustomComponent = customRenderer.component;\n customProps = customRenderer.props;\n customEditable = customRenderer.editable;\n }\n\n var direction = textDirectionality ? textDirectionality : directionMap.get(key);\n var offsetKey = DraftOffsetKey.encode(key, 0, 0);\n var componentProps = {\n contentState: content,\n block: _block,\n blockProps: customProps,\n blockStyleFn: blockStyleFn,\n customStyleMap: customStyleMap,\n customStyleFn: customStyleFn,\n decorator: decorator,\n direction: direction,\n forceSelection: forceSelection,\n offsetKey: offsetKey,\n preventScroll: preventScroll,\n selection: selection,\n tree: editorState.getBlockTree(key)\n };\n var configForType = blockRenderMap.get(blockType) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n var Element = configForType.element || blockRenderMap.get('unstyled').element;\n\n var depth = _block.getDepth();\n\n var _className = '';\n\n if (blockStyleFn) {\n _className = blockStyleFn(_block);\n } // List items are special snowflakes, since we handle nesting and\n // counters manually.\n\n\n if (Element === 'li') {\n var shouldResetCount = lastWrapperTemplate !== wrapperTemplate || currentDepth === null || depth > currentDepth;\n _className = joinClasses(_className, getListItemClasses(blockType, depth, shouldResetCount, direction));\n }\n\n var Component = CustomComponent || DraftEditorBlock;\n var childProps = {\n className: _className,\n 'data-block': true,\n 'data-editor': editorKey,\n 'data-offset-key': offsetKey,\n key: key\n };\n\n if (customEditable !== undefined) {\n childProps = _objectSpread({}, childProps, {\n contentEditable: customEditable,\n suppressContentEditableWarning: true\n });\n }\n\n var child = React.createElement(Element, childProps,\n /* $FlowFixMe[incompatible-type] (>=0.112.0 site=www,mobile) This\n * comment suppresses an error found when Flow v0.112 was deployed. To\n * see the error delete this comment and run Flow. */\n React.createElement(Component, _extends({}, componentProps, {\n key: key\n })));\n processedBlocks.push({\n block: child,\n wrapperTemplate: wrapperTemplate,\n key: key,\n offsetKey: offsetKey\n });\n\n if (wrapperTemplate) {\n currentDepth = _block.getDepth();\n } else {\n currentDepth = null;\n }\n\n lastWrapperTemplate = wrapperTemplate;\n } // Group contiguous runs of blocks that have the same wrapperTemplate\n\n\n var outputBlocks = [];\n\n for (var _ii = 0; _ii < processedBlocks.length;) {\n var info = processedBlocks[_ii];\n\n if (info.wrapperTemplate) {\n var blocks = [];\n\n do {\n blocks.push(processedBlocks[_ii].block);\n _ii++;\n } while (_ii < processedBlocks.length && processedBlocks[_ii].wrapperTemplate === info.wrapperTemplate);\n\n var wrapperElement = React.cloneElement(info.wrapperTemplate, {\n key: info.key + '-wrap',\n 'data-offset-key': info.offsetKey\n }, blocks);\n outputBlocks.push(wrapperElement);\n } else {\n outputBlocks.push(info.block);\n _ii++;\n }\n }\n\n return React.createElement(\"div\", {\n \"data-contents\": \"true\"\n }, outputBlocks);\n };\n\n return DraftEditorContents;\n}(React.Component);\n\nmodule.exports = DraftEditorContents;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nvar gkx = require(\"./gkx\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nmodule.exports = experimentalTreeDataSupport ? require(\"./DraftEditorContentsExperimental.react\") : require(\"./DraftEditorContents-core.react\");","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This file is a fork of DraftEditorContents.react.js for tree nodes\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() {\n _extends = _assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar DraftEditorBlockNode = require(\"./DraftEditorBlockNode.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n/**\n * `DraftEditorContents` is the container component for all block components\n * rendered for a `DraftEditor`. It is optimized to aggressively avoid\n * re-rendering blocks whenever possible.\n *\n * This component is separate from `DraftEditor` because certain props\n * (for instance, ARIA props) must be allowed to update without affecting\n * the contents of the editor.\n */\n\n\nvar DraftEditorContentsExperimental = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorContentsExperimental, _React$Component);\n\n function DraftEditorContentsExperimental() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorContentsExperimental.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var prevEditorState = this.props.editorState;\n var nextEditorState = nextProps.editorState;\n var prevDirectionMap = prevEditorState.getDirectionMap();\n var nextDirectionMap = nextEditorState.getDirectionMap(); // Text direction has changed for one or more blocks. We must re-render.\n\n if (prevDirectionMap !== nextDirectionMap) {\n return true;\n }\n\n var didHaveFocus = prevEditorState.getSelection().getHasFocus();\n var nowHasFocus = nextEditorState.getSelection().getHasFocus();\n\n if (didHaveFocus !== nowHasFocus) {\n return true;\n }\n\n var nextNativeContent = nextEditorState.getNativelyRenderedContent();\n var wasComposing = prevEditorState.isInCompositionMode();\n var nowComposing = nextEditorState.isInCompositionMode(); // If the state is unchanged or we're currently rendering a natively\n // rendered state, there's nothing new to be done.\n\n if (prevEditorState === nextEditorState || nextNativeContent !== null && nextEditorState.getCurrentContent() === nextNativeContent || wasComposing && nowComposing) {\n return false;\n }\n\n var prevContent = prevEditorState.getCurrentContent();\n var nextContent = nextEditorState.getCurrentContent();\n var prevDecorator = prevEditorState.getDecorator();\n var nextDecorator = nextEditorState.getDecorator();\n return wasComposing !== nowComposing || prevContent !== nextContent || prevDecorator !== nextDecorator || nextEditorState.mustForceSelection();\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n blockRenderMap = _this$props.blockRenderMap,\n blockRendererFn = _this$props.blockRendererFn,\n blockStyleFn = _this$props.blockStyleFn,\n customStyleMap = _this$props.customStyleMap,\n customStyleFn = _this$props.customStyleFn,\n editorState = _this$props.editorState,\n editorKey = _this$props.editorKey,\n textDirectionality = _this$props.textDirectionality;\n var content = editorState.getCurrentContent();\n var selection = editorState.getSelection();\n var forceSelection = editorState.mustForceSelection();\n var decorator = editorState.getDecorator();\n var directionMap = nullthrows(editorState.getDirectionMap());\n var blocksAsArray = content.getBlocksAsArray();\n var rootBlock = blocksAsArray[0];\n var processedBlocks = [];\n var nodeBlock = rootBlock;\n\n while (nodeBlock) {\n var blockKey = nodeBlock.getKey();\n var blockProps = {\n blockRenderMap: blockRenderMap,\n blockRendererFn: blockRendererFn,\n blockStyleFn: blockStyleFn,\n contentState: content,\n customStyleFn: customStyleFn,\n customStyleMap: customStyleMap,\n decorator: decorator,\n editorKey: editorKey,\n editorState: editorState,\n forceSelection: forceSelection,\n selection: selection,\n block: nodeBlock,\n direction: textDirectionality ? textDirectionality : directionMap.get(blockKey),\n tree: editorState.getBlockTree(blockKey)\n };\n var configForType = blockRenderMap.get(nodeBlock.getType()) || blockRenderMap.get('unstyled');\n var wrapperTemplate = configForType.wrapper;\n processedBlocks.push({\n /* $FlowFixMe[incompatible-type] (>=0.112.0 site=www,mobile) This\n * comment suppresses an error found when Flow v0.112 was deployed. To\n * see the error delete this comment and run Flow. */\n block: React.createElement(DraftEditorBlockNode, _extends({\n key: blockKey\n }, blockProps)),\n wrapperTemplate: wrapperTemplate,\n key: blockKey,\n offsetKey: DraftOffsetKey.encode(blockKey, 0, 0)\n });\n var nextBlockKey = nodeBlock.getNextSiblingKey();\n nodeBlock = nextBlockKey ? content.getBlockForKey(nextBlockKey) : null;\n } // Group contiguous runs of blocks that have the same wrapperTemplate\n\n\n var outputBlocks = [];\n\n for (var ii = 0; ii < processedBlocks.length;) {\n var info = processedBlocks[ii];\n\n if (info.wrapperTemplate) {\n var blocks = [];\n\n do {\n blocks.push(processedBlocks[ii].block);\n ii++;\n } while (ii < processedBlocks.length && processedBlocks[ii].wrapperTemplate === info.wrapperTemplate);\n\n var wrapperElement = React.cloneElement(info.wrapperTemplate, {\n key: info.key + '-wrap',\n 'data-offset-key': info.offsetKey\n }, blocks);\n outputBlocks.push(wrapperElement);\n } else {\n outputBlocks.push(info.block);\n ii++;\n }\n }\n\n return React.createElement(\"div\", {\n \"data-contents\": \"true\"\n }, outputBlocks);\n };\n\n return DraftEditorContentsExperimental;\n}(React.Component);\n\nmodule.exports = DraftEditorContentsExperimental;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _extends() {\n _extends = _assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar React = require(\"react\");\n\nvar UnicodeBidi = require(\"fbjs/lib/UnicodeBidi\");\n\nvar UnicodeBidiDirection = require(\"fbjs/lib/UnicodeBidiDirection\");\n\nvar DraftEditorDecoratedLeaves = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorDecoratedLeaves, _React$Component);\n\n function DraftEditorDecoratedLeaves() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorDecoratedLeaves.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n block = _this$props.block,\n children = _this$props.children,\n contentState = _this$props.contentState,\n decorator = _this$props.decorator,\n decoratorKey = _this$props.decoratorKey,\n direction = _this$props.direction,\n leafSet = _this$props.leafSet,\n text = _this$props.text;\n var blockKey = block.getKey();\n var leavesForLeafSet = leafSet.get('leaves');\n var DecoratorComponent = decorator.getComponentForKey(decoratorKey);\n var decoratorProps = decorator.getPropsForKey(decoratorKey);\n var decoratorOffsetKey = DraftOffsetKey.encode(blockKey, parseInt(decoratorKey, 10), 0);\n var decoratedText = text.slice(leavesForLeafSet.first().get('start'), leavesForLeafSet.last().get('end')); // Resetting dir to the same value on a child node makes Chrome/Firefox\n // confused on cursor movement. See http://jsfiddle.net/d157kLck/3/\n\n var dir = UnicodeBidiDirection.getHTMLDirIfDifferent(UnicodeBidi.getDirection(decoratedText), direction);\n return React.createElement(DecoratorComponent, _extends({}, decoratorProps, {\n contentState: contentState,\n decoratedText: decoratedText,\n dir: dir,\n key: decoratorOffsetKey,\n entityKey: block.getEntityAt(leafSet.get('start')),\n offsetKey: decoratorOffsetKey\n }), children);\n };\n\n return DraftEditorDecoratedLeaves;\n}(React.Component);\n\nmodule.exports = DraftEditorDecoratedLeaves;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DataTransfer = require(\"fbjs/lib/DataTransfer\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar getTextContentFromFiles = require(\"./getTextContentFromFiles\");\n\nvar getUpdatedSelectionState = require(\"./getUpdatedSelectionState\");\n\nvar getWindowForNode = require(\"./getWindowForNode\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n/**\n * Get a SelectionState for the supplied mouse event.\n */\n\n\nfunction getSelectionForEvent(event, editorState) {\n var node = null;\n var offset = null;\n var eventTargetDocument = getCorrectDocumentFromNode(event.currentTarget);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n\n if (typeof eventTargetDocument.caretRangeFromPoint === 'function') {\n /* $FlowFixMe[incompatible-use] (>=0.68.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n var dropRange = eventTargetDocument.caretRangeFromPoint(event.x, event.y);\n node = dropRange.startContainer;\n offset = dropRange.startOffset;\n } else if (event.rangeParent) {\n node = event.rangeParent;\n offset = event.rangeOffset;\n } else {\n return null;\n }\n\n node = nullthrows(node);\n offset = nullthrows(offset);\n var offsetKey = nullthrows(findAncestorOffsetKey(node));\n return getUpdatedSelectionState(editorState, offsetKey, offset, offsetKey, offset);\n}\n\nvar DraftEditorDragHandler = {\n /**\n * Drag originating from input terminated.\n */\n onDragEnd: function onDragEnd(editor) {\n editor.exitCurrentMode();\n endDrag(editor);\n },\n\n /**\n * Handle data being dropped.\n */\n onDrop: function onDrop(editor, e) {\n var data = new DataTransfer(e.nativeEvent.dataTransfer);\n var editorState = editor._latestEditorState;\n var dropSelection = getSelectionForEvent(e.nativeEvent, editorState);\n e.preventDefault();\n editor._dragCount = 0;\n editor.exitCurrentMode();\n\n if (dropSelection == null) {\n return;\n }\n\n var files = data.getFiles();\n\n if (files.length > 0) {\n if (editor.props.handleDroppedFiles && isEventHandled(editor.props.handleDroppedFiles(dropSelection, files))) {\n return;\n }\n /* $FlowFixMe[incompatible-call] This comment suppresses an error found\n * DataTransfer was typed. getFiles() returns an array of , not Blob */\n\n\n getTextContentFromFiles(files, function (fileText) {\n fileText && editor.update(insertTextAtSelection(editorState, dropSelection, fileText));\n });\n return;\n }\n\n var dragType = editor._internalDrag ? 'internal' : 'external';\n\n if (editor.props.handleDrop && isEventHandled(editor.props.handleDrop(dropSelection, data, dragType))) {// handled\n } else if (editor._internalDrag) {\n editor.update(moveText(editorState, dropSelection));\n } else {\n editor.update(insertTextAtSelection(editorState, dropSelection, data.getText()));\n }\n\n endDrag(editor);\n }\n};\n\nfunction endDrag(editor) {\n editor._internalDrag = false; // Fix issue #1383\n // Prior to React v16.5.0 onDrop breaks onSelect event:\n // https://github.com/facebook/react/issues/11379.\n // Dispatching a mouseup event on DOM node will make it go back to normal.\n\n var editorNode = editor.editorContainer;\n\n if (editorNode) {\n var mouseUpEvent = new MouseEvent('mouseup', {\n view: getWindowForNode(editorNode),\n bubbles: true,\n cancelable: true\n });\n editorNode.dispatchEvent(mouseUpEvent);\n }\n}\n\nfunction moveText(editorState, targetSelection) {\n var newContentState = DraftModifier.moveText(editorState.getCurrentContent(), editorState.getSelection(), targetSelection);\n return EditorState.push(editorState, newContentState, 'insert-fragment');\n}\n/**\n * Insert text at a specified selection.\n */\n\n\nfunction insertTextAtSelection(editorState, selection, text) {\n var newContentState = DraftModifier.insertText(editorState.getCurrentContent(), selection, text, editorState.getCurrentInlineStyle());\n return EditorState.push(editorState, newContentState, 'insert-fragment');\n}\n\nmodule.exports = DraftEditorDragHandler;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar onBeforeInput = require(\"./editOnBeforeInput\");\n\nvar onBlur = require(\"./editOnBlur\");\n\nvar onCompositionStart = require(\"./editOnCompositionStart\");\n\nvar onCopy = require(\"./editOnCopy\");\n\nvar onCut = require(\"./editOnCut\");\n\nvar onDragOver = require(\"./editOnDragOver\");\n\nvar onDragStart = require(\"./editOnDragStart\");\n\nvar onFocus = require(\"./editOnFocus\");\n\nvar onInput = require(\"./editOnInput\");\n\nvar onKeyDown = require(\"./editOnKeyDown\");\n\nvar onPaste = require(\"./editOnPaste\");\n\nvar onSelect = require(\"./editOnSelect\");\n\nvar isChrome = UserAgent.isBrowser('Chrome');\nvar isFirefox = UserAgent.isBrowser('Firefox');\nvar selectionHandler = isChrome || isFirefox ? onSelect : function (e) {};\nvar DraftEditorEditHandler = {\n onBeforeInput: onBeforeInput,\n onBlur: onBlur,\n onCompositionStart: onCompositionStart,\n onCopy: onCopy,\n onCut: onCut,\n onDragOver: onDragOver,\n onDragStart: onDragStart,\n onFocus: onFocus,\n onInput: onInput,\n onKeyDown: onKeyDown,\n onPaste: onPaste,\n onSelect: onSelect,\n // In certain cases, contenteditable on chrome does not fire the onSelect\n // event, causing problems with cursor positioning. Therefore, the selection\n // state update handler is added to more events to ensure that the selection\n // state is always synced with the actual cursor positions.\n onMouseUp: selectionHandler,\n onKeyUp: selectionHandler\n};\nmodule.exports = DraftEditorEditHandler;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nvar ReactDOMComet = require(\"react-dom\");\n\nvar flushControlled = ReactDOMComet.unstable_flushControlled;\nmodule.exports = flushControlled;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _assign = require(\"object-assign\");\n\nfunction _assertThisInitialized(self) {\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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\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\nvar DraftEditorTextNode = require(\"./DraftEditorTextNode.react\");\n\nvar React = require(\"react\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLBRElement = require(\"./isHTMLBRElement\");\n\nvar setDraftEditorSelection = require(\"./setDraftEditorSelection\").setDraftEditorSelection;\n/**\n * 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 */\n\n\nvar DraftEditorLeaf = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorLeaf, _React$Component);\n\n function DraftEditorLeaf() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"leaf\", void 0);\n\n return _this;\n }\n\n var _proto = DraftEditorLeaf.prototype;\n\n _proto._setSelection = function _setSelection() {\n var selection = this.props.selection; // If selection state is irrelevant to the parent block, no-op.\n\n if (selection == null || !selection.getHasFocus()) {\n return;\n }\n\n var _this$props = this.props,\n block = _this$props.block,\n start = _this$props.start,\n text = _this$props.text;\n var blockKey = block.getKey();\n var end = start + text.length;\n\n if (!selection.hasEdgeWithin(blockKey, start, end)) {\n return;\n } // Determine the appropriate target node for selection. If the child\n // is not a text node, it is a
spacer. In this case, use the\n // itself as the selection target.\n\n\n var node = this.leaf;\n !node ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing node') : invariant(false) : void 0;\n var child = node.firstChild;\n !child ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing child') : invariant(false) : void 0;\n var targetNode;\n\n if (child.nodeType === Node.TEXT_NODE) {\n targetNode = child;\n } else if (isHTMLBRElement(child)) {\n targetNode = node;\n } else {\n targetNode = child.firstChild;\n !targetNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing targetNode') : invariant(false) : void 0;\n }\n\n setDraftEditorSelection(selection, targetNode, blockKey, start, end);\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var leafNode = this.leaf;\n !leafNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing leafNode') : invariant(false) : void 0;\n var shouldUpdate = leafNode.textContent !== nextProps.text || nextProps.styleSet !== this.props.styleSet || nextProps.forceSelection;\n return shouldUpdate;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this._setSelection();\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this._setSelection();\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var block = this.props.block;\n var text = this.props.text; // If the leaf is at the end of its block and ends in a soft newline, append\n // an extra line feed character. Browsers collapse trailing newline\n // characters, which leaves the cursor in the wrong place after a\n // shift+enter. The extra character repairs this.\n\n if (text.endsWith('\\n') && this.props.isLast) {\n text += '\\n';\n }\n\n var _this$props2 = this.props,\n customStyleMap = _this$props2.customStyleMap,\n customStyleFn = _this$props2.customStyleFn,\n offsetKey = _this$props2.offsetKey,\n styleSet = _this$props2.styleSet;\n var styleObj = styleSet.reduce(function (map, styleName) {\n var mergedStyles = {};\n var style = customStyleMap[styleName];\n\n if (style !== undefined && map.textDecoration !== style.textDecoration) {\n // .trim() is necessary for IE9/10/11 and Edge\n mergedStyles.textDecoration = [map.textDecoration, style.textDecoration].join(' ').trim();\n }\n\n return _assign(map, style, mergedStyles);\n }, {});\n\n if (customStyleFn) {\n var newStyles = customStyleFn(styleSet, block);\n styleObj = _assign(styleObj, newStyles);\n }\n\n return React.createElement(\"span\", {\n \"data-offset-key\": offsetKey,\n ref: function ref(_ref) {\n return _this2.leaf = _ref;\n },\n style: styleObj\n }, React.createElement(DraftEditorTextNode, null, text));\n };\n\n return DraftEditorLeaf;\n}(React.Component);\n\nmodule.exports = DraftEditorLeaf;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar DraftEditorDecoratedLeaves = require(\"./DraftEditorDecoratedLeaves.react\");\n\nvar DraftEditorLeaf = require(\"./DraftEditorLeaf.react\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar List = Immutable.List;\n\nvar DraftEditorNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorNode, _React$Component);\n\n function DraftEditorNode() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorNode.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n block = _this$props.block,\n contentState = _this$props.contentState,\n customStyleFn = _this$props.customStyleFn,\n customStyleMap = _this$props.customStyleMap,\n decorator = _this$props.decorator,\n direction = _this$props.direction,\n forceSelection = _this$props.forceSelection,\n hasSelection = _this$props.hasSelection,\n selection = _this$props.selection,\n tree = _this$props.tree;\n var blockKey = block.getKey();\n var text = block.getText();\n var lastLeafSet = tree.size - 1;\n var children = this.props.children || tree.map(function (leafSet, ii) {\n var decoratorKey = leafSet.get('decoratorKey');\n var leavesForLeafSet = leafSet.get('leaves');\n var lastLeaf = leavesForLeafSet.size - 1;\n var Leaves = leavesForLeafSet.map(function (leaf, jj) {\n var offsetKey = DraftOffsetKey.encode(blockKey, ii, jj);\n var start = leaf.get('start');\n var end = leaf.get('end');\n return React.createElement(DraftEditorLeaf, {\n key: offsetKey,\n offsetKey: offsetKey,\n block: block,\n start: start,\n selection: hasSelection ? selection : null,\n forceSelection: forceSelection,\n text: text.slice(start, end),\n styleSet: block.getInlineStyleAt(start),\n customStyleMap: customStyleMap,\n customStyleFn: customStyleFn,\n isLast: decoratorKey === lastLeafSet && jj === lastLeaf\n });\n }).toArray();\n\n if (!decoratorKey || !decorator) {\n return Leaves;\n }\n\n return React.createElement(DraftEditorDecoratedLeaves, {\n block: block,\n children: Leaves,\n contentState: contentState,\n decorator: decorator,\n decoratorKey: decoratorKey,\n direction: direction,\n leafSet: leafSet,\n text: text,\n key: ii\n });\n }).toArray();\n return React.createElement(\"div\", {\n \"data-offset-key\": DraftOffsetKey.encode(blockKey, 0, 0),\n className: cx({\n 'public/DraftStyleDefault/block': true,\n 'public/DraftStyleDefault/ltr': direction === 'LTR',\n 'public/DraftStyleDefault/rtl': direction === 'RTL'\n })\n }, children);\n };\n\n return DraftEditorNode;\n}(React.Component);\n\nmodule.exports = DraftEditorNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar React = require(\"react\");\n\nvar cx = require(\"fbjs/lib/cx\");\n/**\n * This component is responsible for rendering placeholder text for the\n * `DraftEditor` component.\n *\n * Override placeholder style via CSS.\n */\n\n\nvar DraftEditorPlaceholder = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorPlaceholder, _React$Component);\n\n function DraftEditorPlaceholder() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DraftEditorPlaceholder.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return this.props.text !== nextProps.text || this.props.editorState.getSelection().getHasFocus() !== nextProps.editorState.getSelection().getHasFocus();\n };\n\n _proto.render = function render() {\n var hasFocus = this.props.editorState.getSelection().getHasFocus();\n var className = cx({\n 'public/DraftEditorPlaceholder/root': true,\n 'public/DraftEditorPlaceholder/hasFocus': hasFocus\n });\n var contentStyle = {\n whiteSpace: 'pre-wrap'\n };\n return React.createElement(\"div\", {\n className: className\n }, React.createElement(\"div\", {\n className: cx('public/DraftEditorPlaceholder/inner'),\n id: this.props.accessibilityID,\n style: contentStyle\n }, this.props.text));\n };\n\n return DraftEditorPlaceholder;\n}(React.Component);\n\nmodule.exports = DraftEditorPlaceholder;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _assertThisInitialized(self) {\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\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\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\nvar React = require(\"react\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isElement = require(\"./isElement\"); // In IE, spans with
tags render as two newlines. By rendering a span\n// with only a newline character, we can be sure to render a single line.\n\n\nvar useNewlineChar = UserAgent.isBrowser('IE <= 11');\n/**\n * Check whether the node should be considered a newline.\n */\n\nfunction isNewline(node) {\n return useNewlineChar ? node.textContent === '\\n' : node.tagName === 'BR';\n}\n/**\n * Placeholder elements for empty text content.\n *\n * What is this `data-text` attribute, anyway? It turns out that we need to\n * put an attribute on the lowest-level text node in order to preserve correct\n * spellcheck handling. If the is naked, Chrome and Safari may do\n * bizarre things to do the DOM -- split text nodes, create extra spans, etc.\n * If the has an attribute, this appears not to happen.\n * See http://jsfiddle.net/9khdavod/ for the failure case, and\n * http://jsfiddle.net/7pg143f7/ for the fixed case.\n */\n\n\nvar NEWLINE_A = function NEWLINE_A(ref) {\n return useNewlineChar ? React.createElement(\"span\", {\n key: \"A\",\n \"data-text\": \"true\",\n ref: ref\n }, '\\n') : React.createElement(\"br\", {\n key: \"A\",\n \"data-text\": \"true\",\n ref: ref\n });\n};\n\nvar NEWLINE_B = function NEWLINE_B(ref) {\n return useNewlineChar ? React.createElement(\"span\", {\n key: \"B\",\n \"data-text\": \"true\",\n ref: ref\n }, '\\n') : React.createElement(\"br\", {\n key: \"B\",\n \"data-text\": \"true\",\n ref: ref\n });\n};\n/**\n * 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 */\n\n\nvar DraftEditorTextNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DraftEditorTextNode, _React$Component);\n\n function DraftEditorTextNode(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // By flipping this flag, we also keep flipping keys which forces\n // React to remount this node every time it rerenders.\n\n _defineProperty(_assertThisInitialized(_this), \"_forceFlag\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_node\", void 0);\n\n _this._forceFlag = false;\n return _this;\n }\n\n var _proto = DraftEditorTextNode.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n var node = this._node;\n var shouldBeNewline = nextProps.children === '';\n !isElement(node) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'node is not an Element') : invariant(false) : void 0;\n var elementNode = node;\n\n if (shouldBeNewline) {\n return !isNewline(elementNode);\n }\n\n return elementNode.textContent !== nextProps.children;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this._forceFlag = !this._forceFlag;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this._forceFlag = !this._forceFlag;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n if (this.props.children === '') {\n return this._forceFlag ? NEWLINE_A(function (ref) {\n return _this2._node = ref;\n }) : NEWLINE_B(function (ref) {\n return _this2._node = ref;\n });\n }\n\n return React.createElement(\"span\", {\n key: this._forceFlag ? 'A' : 'B',\n \"data-text\": \"true\",\n ref: function ref(_ref) {\n return _this2._node = _ref;\n }\n }, this.props.children);\n };\n\n return DraftEditorTextNode;\n}(React.Component);\n\nmodule.exports = DraftEditorTextNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nmodule.exports = {\n initODS: function initODS() {},\n handleExtensionCausedError: function handleExtensionCausedError() {}\n};","\"use strict\";\n\nfunction _objectSpread(target) {\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\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/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\n\nvar DraftEntityInstance = require(\"./DraftEntityInstance\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar uuid = require(\"./uuid\");\n\nvar Map = Immutable.Map;\nvar instances = Map();\nvar instanceKey = uuid();\n/**\n * Temporary utility for generating the warnings\n */\n\nfunction logWarning(oldMethodCall, newMethodCall) {\n console.warn('WARNING: ' + oldMethodCall + ' will be deprecated soon!\\nPlease use \"' + newMethodCall + '\" instead.');\n}\n/**\n * 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 */\n\n\nvar DraftEntity = {\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.getLastCreatedEntityKey' instead.\n * ---\n * Get the random key string from whatever entity was last created.\n * We need this to support the new API, as part of transitioning to put Entity\n * storage in contentState.\n */\n getLastCreatedEntityKey: function getLastCreatedEntityKey() {\n logWarning('DraftEntity.getLastCreatedEntityKey', 'contentState.getLastCreatedEntityKey');\n return DraftEntity.__getLastCreatedEntityKey();\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.createEntity' instead.\n * ---\n * Create a DraftEntityInstance and store it for later retrieval.\n *\n * A random key string will be generated and returned. This key may\n * be used to track the entity's usage in a ContentBlock, and for\n * retrieving data about the entity at render time.\n */\n create: function create(type, mutability, data) {\n logWarning('DraftEntity.create', 'contentState.createEntity');\n return DraftEntity.__create(type, mutability, data);\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.addEntity' instead.\n * ---\n * Add an existing DraftEntityInstance to the DraftEntity map. This is\n * useful when restoring instances from the server.\n */\n add: function add(instance) {\n logWarning('DraftEntity.add', 'contentState.addEntity');\n return DraftEntity.__add(instance);\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.getEntity' instead.\n * ---\n * Retrieve the entity corresponding to the supplied key string.\n */\n get: function get(key) {\n logWarning('DraftEntity.get', 'contentState.getEntity');\n return DraftEntity.__get(key);\n },\n\n /**\n * Get all the entities in the content state.\n */\n __getAll: function __getAll() {\n return instances;\n },\n\n /**\n * Load the entity map with the given set of entities.\n */\n __loadWithEntities: function __loadWithEntities(entities) {\n instances = entities;\n instanceKey = uuid();\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.mergeEntityData' instead.\n * ---\n * Entity instances are immutable. If you need to update the data for an\n * instance, this method will merge your data updates and return a new\n * instance.\n */\n mergeData: function mergeData(key, toMerge) {\n logWarning('DraftEntity.mergeData', 'contentState.mergeEntityData');\n return DraftEntity.__mergeData(key, toMerge);\n },\n\n /**\n * WARNING: This method will be deprecated soon!\n * Please use 'contentState.replaceEntityData' instead.\n * ---\n * Completely replace the data for a given instance.\n */\n replaceData: function replaceData(key, newData) {\n logWarning('DraftEntity.replaceData', 'contentState.replaceEntityData');\n return DraftEntity.__replaceData(key, newData);\n },\n // ***********************************WARNING******************************\n // --- the above public API will be deprecated in the next version of Draft!\n // The methods below this line are private - don't call them directly.\n\n /**\n * Get the random key string from whatever entity was last created.\n * We need this to support the new API, as part of transitioning to put Entity\n * storage in contentState.\n */\n __getLastCreatedEntityKey: function __getLastCreatedEntityKey() {\n return instanceKey;\n },\n\n /**\n * Create a DraftEntityInstance and store it for later retrieval.\n *\n * A random key string will be generated and returned. This key may\n * be used to track the entity's usage in a ContentBlock, and for\n * retrieving data about the entity at render time.\n */\n __create: function __create(type, mutability, data) {\n return DraftEntity.__add(new DraftEntityInstance({\n type: type,\n mutability: mutability,\n data: data || {}\n }));\n },\n\n /**\n * Add an existing DraftEntityInstance to the DraftEntity map. This is\n * useful when restoring instances from the server.\n */\n __add: function __add(instance) {\n instanceKey = uuid();\n instances = instances.set(instanceKey, instance);\n return instanceKey;\n },\n\n /**\n * Retrieve the entity corresponding to the supplied key string.\n */\n __get: function __get(key) {\n var instance = instances.get(key);\n !!!instance ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unknown DraftEntity key: %s.', key) : invariant(false) : void 0;\n return instance;\n },\n\n /**\n * Entity instances are immutable. If you need to update the data for an\n * instance, this method will merge your data updates and return a new\n * instance.\n */\n __mergeData: function __mergeData(key, toMerge) {\n var instance = DraftEntity.__get(key);\n\n var newData = _objectSpread({}, instance.getData(), toMerge);\n\n var newInstance = instance.set('data', newData);\n instances = instances.set(key, newInstance);\n return newInstance;\n },\n\n /**\n * Completely replace the data for a given instance.\n */\n __replaceData: function __replaceData(key, newData) {\n var instance = DraftEntity.__get(key);\n\n var newInstance = instance.set('data', newData);\n instances = instances.set(key, newInstance);\n return newInstance;\n }\n};\nmodule.exports = DraftEntity;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @legacyServerCallableInstance\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar Immutable = require(\"immutable\");\n\nvar Record = Immutable.Record;\nvar DraftEntityInstanceRecord = Record({\n type: 'TOKEN',\n mutability: 'IMMUTABLE',\n data: Object\n});\n/**\n * An instance of a document entity, consisting of a `type` and relevant\n * `data`, metadata about the entity.\n *\n * For instance, a \"link\" entity might provide a URI, and a \"mention\"\n * entity might provide the mentioned user's ID. These pieces of data\n * may be used when rendering the entity as part of a ContentBlock DOM\n * representation. For a link, the data would be used as an href for\n * the rendered anchor. For a mention, the ID could be used to retrieve\n * a hovercard.\n */\n\nvar DraftEntityInstance = /*#__PURE__*/function (_DraftEntityInstanceR) {\n _inheritsLoose(DraftEntityInstance, _DraftEntityInstanceR);\n\n function DraftEntityInstance() {\n return _DraftEntityInstanceR.apply(this, arguments) || this;\n }\n\n var _proto = DraftEntityInstance.prototype;\n\n _proto.getType = function getType() {\n return this.get('type');\n };\n\n _proto.getMutability = function getMutability() {\n return this.get('mutability');\n };\n\n _proto.getData = function getData() {\n return this.get('data');\n };\n\n return DraftEntityInstance;\n}(DraftEntityInstanceRecord);\n\nmodule.exports = DraftEntityInstance;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * 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 */\n\nvar DraftEntitySegments = {\n getRemovalRange: function getRemovalRange(selectionStart, selectionEnd, text, entityStart, direction) {\n var segments = text.split(' ');\n segments = segments.map(function (\n /*string*/\n segment,\n /*number*/\n ii) {\n if (direction === 'forward') {\n if (ii > 0) {\n return ' ' + segment;\n }\n } else if (ii < segments.length - 1) {\n return segment + ' ';\n }\n\n return segment;\n });\n var segmentStart = entityStart;\n var segmentEnd;\n var segment;\n var removalStart = null;\n var removalEnd = null;\n\n for (var jj = 0; jj < segments.length; jj++) {\n segment = segments[jj];\n segmentEnd = segmentStart + segment.length; // Our selection overlaps this segment.\n\n if (selectionStart < segmentEnd && segmentStart < selectionEnd) {\n if (removalStart !== null) {\n removalEnd = segmentEnd;\n } else {\n removalStart = segmentStart;\n removalEnd = segmentEnd;\n }\n } else if (removalStart !== null) {\n break;\n }\n\n segmentStart = segmentEnd;\n }\n\n var entityEnd = entityStart + text.length;\n var atStart = removalStart === entityStart;\n var atEnd = removalEnd === entityEnd;\n\n if (!atStart && atEnd || atStart && !atEnd) {\n if (direction === 'forward') {\n if (removalEnd !== entityEnd) {\n removalEnd++;\n }\n } else if (removalStart !== entityStart) {\n removalStart--;\n }\n }\n\n return {\n start: removalStart,\n end: removalEnd\n };\n }\n};\nmodule.exports = DraftEntitySegments;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nmodule.exports = {\n logBlockedSelectionEvent: function logBlockedSelectionEvent() {\n return null;\n },\n logSelectionStateFailure: function logSelectionStateFailure() {\n return null;\n }\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentStateInlineStyle = require(\"./ContentStateInlineStyle\");\n\nvar applyEntityToContentState = require(\"./applyEntityToContentState\");\n\nvar getCharacterRemovalRange = require(\"./getCharacterRemovalRange\");\n\nvar getContentStateFragment = require(\"./getContentStateFragment\");\n\nvar Immutable = require(\"immutable\");\n\nvar insertFragmentIntoContentState = require(\"./insertFragmentIntoContentState\");\n\nvar insertTextIntoContentState = require(\"./insertTextIntoContentState\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar modifyBlockForContentState = require(\"./modifyBlockForContentState\");\n\nvar removeEntitiesAtEdges = require(\"./removeEntitiesAtEdges\");\n\nvar removeRangeFromContentState = require(\"./removeRangeFromContentState\");\n\nvar splitBlockInContentState = require(\"./splitBlockInContentState\");\n\nvar OrderedSet = Immutable.OrderedSet;\n/**\n * `DraftModifier` provides a set of convenience methods that apply\n * modifications to a `ContentState` object based on a target `SelectionState`.\n *\n * Any change to a `ContentState` should be decomposable into a series of\n * transaction functions that apply the required changes and return output\n * `ContentState` objects.\n *\n * These functions encapsulate some of the most common transaction sequences.\n */\n\nvar DraftModifier = {\n replaceText: function replaceText(contentState, rangeToReplace, text, inlineStyle, entityKey) {\n var withoutEntities = removeEntitiesAtEdges(contentState, rangeToReplace);\n var withoutText = removeRangeFromContentState(withoutEntities, rangeToReplace);\n var character = CharacterMetadata.create({\n style: inlineStyle || OrderedSet(),\n entity: entityKey || null\n });\n return insertTextIntoContentState(withoutText, withoutText.getSelectionAfter(), text, character);\n },\n insertText: function insertText(contentState, targetRange, text, inlineStyle, entityKey) {\n !targetRange.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Target range must be collapsed for `insertText`.') : invariant(false) : void 0;\n return DraftModifier.replaceText(contentState, targetRange, text, inlineStyle, entityKey);\n },\n moveText: function moveText(contentState, removalRange, targetRange) {\n var movedFragment = getContentStateFragment(contentState, removalRange);\n var afterRemoval = DraftModifier.removeRange(contentState, removalRange, 'backward');\n return DraftModifier.replaceWithFragment(afterRemoval, targetRange, movedFragment);\n },\n replaceWithFragment: function replaceWithFragment(contentState, targetRange, fragment) {\n var mergeBlockData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'REPLACE_WITH_NEW_DATA';\n var withoutEntities = removeEntitiesAtEdges(contentState, targetRange);\n var withoutText = removeRangeFromContentState(withoutEntities, targetRange);\n return insertFragmentIntoContentState(withoutText, withoutText.getSelectionAfter(), fragment, mergeBlockData);\n },\n removeRange: function removeRange(contentState, rangeToRemove, removalDirection) {\n var startKey, endKey, startBlock, endBlock;\n\n if (rangeToRemove.getIsBackward()) {\n rangeToRemove = rangeToRemove.merge({\n anchorKey: rangeToRemove.getFocusKey(),\n anchorOffset: rangeToRemove.getFocusOffset(),\n focusKey: rangeToRemove.getAnchorKey(),\n focusOffset: rangeToRemove.getAnchorOffset(),\n isBackward: false\n });\n }\n\n startKey = rangeToRemove.getAnchorKey();\n endKey = rangeToRemove.getFocusKey();\n startBlock = contentState.getBlockForKey(startKey);\n endBlock = contentState.getBlockForKey(endKey);\n var startOffset = rangeToRemove.getStartOffset();\n var endOffset = rangeToRemove.getEndOffset();\n var startEntityKey = startBlock.getEntityAt(startOffset);\n var endEntityKey = endBlock.getEntityAt(endOffset - 1); // Check whether the selection state overlaps with a single entity.\n // If so, try to remove the appropriate substring of the entity text.\n\n if (startKey === endKey) {\n if (startEntityKey && startEntityKey === endEntityKey) {\n var adjustedRemovalRange = getCharacterRemovalRange(contentState.getEntityMap(), startBlock, endBlock, rangeToRemove, removalDirection);\n return removeRangeFromContentState(contentState, adjustedRemovalRange);\n }\n }\n\n var withoutEntities = removeEntitiesAtEdges(contentState, rangeToRemove);\n return removeRangeFromContentState(withoutEntities, rangeToRemove);\n },\n splitBlock: function splitBlock(contentState, selectionState) {\n var withoutEntities = removeEntitiesAtEdges(contentState, selectionState);\n var withoutText = removeRangeFromContentState(withoutEntities, selectionState);\n return splitBlockInContentState(withoutText, withoutText.getSelectionAfter());\n },\n applyInlineStyle: function applyInlineStyle(contentState, selectionState, inlineStyle) {\n return ContentStateInlineStyle.add(contentState, selectionState, inlineStyle);\n },\n removeInlineStyle: function removeInlineStyle(contentState, selectionState, inlineStyle) {\n return ContentStateInlineStyle.remove(contentState, selectionState, inlineStyle);\n },\n setBlockType: function setBlockType(contentState, selectionState, blockType) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n type: blockType,\n depth: 0\n });\n });\n },\n setBlockData: function setBlockData(contentState, selectionState, blockData) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n data: blockData\n });\n });\n },\n mergeBlockData: function mergeBlockData(contentState, selectionState, blockData) {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n data: block.getData().merge(blockData)\n });\n });\n },\n applyEntity: function applyEntity(contentState, selectionState, entityKey) {\n var withoutEntities = removeEntitiesAtEdges(contentState, selectionState);\n return applyEntityToContentState(withoutEntities, selectionState, entityKey);\n }\n};\nmodule.exports = DraftModifier;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar KEY_DELIMITER = '-';\nvar DraftOffsetKey = {\n encode: function encode(blockKey, decoratorKey, leafKey) {\n return blockKey + KEY_DELIMITER + decoratorKey + KEY_DELIMITER + leafKey;\n },\n decode: function decode(offsetKey) {\n // Extracts the last two parts of offsetKey and captures the rest in blockKeyParts\n var _offsetKey$split$reve = offsetKey.split(KEY_DELIMITER).reverse(),\n leafKey = _offsetKey$split$reve[0],\n decoratorKey = _offsetKey$split$reve[1],\n blockKeyParts = _offsetKey$split$reve.slice(2);\n\n return {\n // Recomposes the parts of blockKey after reversing them\n blockKey: blockKeyParts.reverse().join(KEY_DELIMITER),\n decoratorKey: parseInt(decoratorKey, 10),\n leafKey: parseInt(leafKey, 10)\n };\n }\n};\nmodule.exports = DraftOffsetKey;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar convertFromHTMLToContentBlocks = require(\"./convertFromHTMLToContentBlocks\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getSafeBodyFromHTML = require(\"./getSafeBodyFromHTML\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar sanitizeDraftText = require(\"./sanitizeDraftText\");\n\nvar List = Immutable.List,\n Repeat = Immutable.Repeat;\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar ContentBlockRecord = experimentalTreeDataSupport ? ContentBlockNode : ContentBlock;\nvar DraftPasteProcessor = {\n processHTML: function processHTML(html, blockRenderMap) {\n return convertFromHTMLToContentBlocks(html, getSafeBodyFromHTML, blockRenderMap);\n },\n processText: function processText(textBlocks, character, type) {\n return textBlocks.reduce(function (acc, textLine, index) {\n textLine = sanitizeDraftText(textLine);\n var key = generateRandomKey();\n var blockNodeConfig = {\n key: key,\n type: type,\n text: textLine,\n characterList: List(Repeat(character, textLine.length))\n }; // next block updates previous block\n\n if (experimentalTreeDataSupport && index !== 0) {\n var prevSiblingIndex = index - 1; // update previous block\n\n var previousBlock = acc[prevSiblingIndex] = acc[prevSiblingIndex].merge({\n nextSibling: key\n });\n blockNodeConfig = _objectSpread({}, blockNodeConfig, {\n prevSibling: previousBlock.getKey()\n });\n }\n\n acc.push(new ContentBlockRecord(blockNodeConfig));\n return acc;\n }, []);\n }\n};\nmodule.exports = DraftPasteProcessor;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar TokenizeUtil = require(\"fbjs/lib/TokenizeUtil\");\n\nvar punctuation = TokenizeUtil.getPunctuation(); // The apostrophe and curly single quotes behave in a curious way: when\n// surrounded on both sides by word characters, they behave as word chars; when\n// either neighbor is punctuation or an end of the string, they behave as\n// punctuation.\n\nvar CHAMELEON_CHARS = \"['\\u2018\\u2019]\"; // Remove the underscore, which should count as part of the removable word. The\n// \"chameleon chars\" also count as punctuation in this regex.\n\nvar WHITESPACE_AND_PUNCTUATION = '\\\\s|(?![_])' + punctuation;\nvar DELETE_STRING = '^' + '(?:' + WHITESPACE_AND_PUNCTUATION + ')*' + '(?:' + CHAMELEON_CHARS + '|(?!' + WHITESPACE_AND_PUNCTUATION + ').)*' + '(?:(?!' + WHITESPACE_AND_PUNCTUATION + ').)';\nvar DELETE_REGEX = new RegExp(DELETE_STRING);\nvar BACKSPACE_STRING = '(?:(?!' + WHITESPACE_AND_PUNCTUATION + ').)' + '(?:' + CHAMELEON_CHARS + '|(?!' + WHITESPACE_AND_PUNCTUATION + ').)*' + '(?:' + WHITESPACE_AND_PUNCTUATION + ')*' + '$';\nvar BACKSPACE_REGEX = new RegExp(BACKSPACE_STRING);\n\nfunction getRemovableWord(text, isBackward) {\n var matches = isBackward ? BACKSPACE_REGEX.exec(text) : DELETE_REGEX.exec(text);\n return matches ? matches[0] : text;\n}\n\nvar DraftRemovableWord = {\n getBackward: function getBackward(text) {\n return getRemovableWord(text, true);\n },\n getForward: function getForward(text) {\n return getRemovableWord(text, false);\n }\n};\nmodule.exports = DraftRemovableWord;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftStringKey = {\n stringify: function stringify(key) {\n return '_' + String(key);\n },\n unstringify: function unstringify(key) {\n return key.slice(1);\n }\n};\nmodule.exports = DraftStringKey;","\"use strict\";\n\nfunction _objectSpread(target) {\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\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/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar traverseInDepthOrder = function traverseInDepthOrder(blocks, fn) {\n var stack = [].concat(blocks).reverse();\n\n while (stack.length) {\n var _block = stack.pop();\n\n fn(_block);\n var children = _block.children;\n !Array.isArray(children) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid tree raw block') : invariant(false) : void 0;\n stack = stack.concat([].concat(children.reverse()));\n }\n};\n\nvar isListBlock = function isListBlock(block) {\n if (!(block && block.type)) {\n return false;\n }\n\n var type = block.type;\n return type === 'unordered-list-item' || type === 'ordered-list-item';\n};\n\nvar addDepthToChildren = function addDepthToChildren(block) {\n if (Array.isArray(block.children)) {\n block.children = block.children.map(function (child) {\n return child.type === block.type ? _objectSpread({}, child, {\n depth: (block.depth || 0) + 1\n }) : child;\n });\n }\n};\n/**\n * This adapter is intended to be be used as an adapter to draft tree data\n *\n * draft state <=====> draft tree state\n */\n\n\nvar DraftTreeAdapter = {\n /**\n * Converts from a tree raw state back to draft raw state\n */\n fromRawTreeStateToRawState: function fromRawTreeStateToRawState(draftTreeState) {\n var blocks = draftTreeState.blocks;\n var transformedBlocks = [];\n !Array.isArray(blocks) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid raw state') : invariant(false) : void 0;\n\n if (!Array.isArray(blocks) || !blocks.length) {\n return draftTreeState;\n }\n\n traverseInDepthOrder(blocks, function (block) {\n var newBlock = _objectSpread({}, block);\n\n if (isListBlock(block)) {\n newBlock.depth = newBlock.depth || 0;\n addDepthToChildren(block); // if it's a non-leaf node, we don't do anything else\n\n if (block.children != null && block.children.length > 0) {\n return;\n }\n }\n\n delete newBlock.children;\n transformedBlocks.push(newBlock);\n });\n draftTreeState.blocks = transformedBlocks;\n return _objectSpread({}, draftTreeState, {\n blocks: transformedBlocks\n });\n },\n\n /**\n * Converts from draft raw state to tree draft state\n */\n fromRawStateToRawTreeState: function fromRawStateToRawTreeState(draftState) {\n var transformedBlocks = [];\n var parentStack = [];\n draftState.blocks.forEach(function (block) {\n var isList = isListBlock(block);\n var depth = block.depth || 0;\n\n var treeBlock = _objectSpread({}, block, {\n children: []\n });\n\n if (!isList) {\n transformedBlocks.push(treeBlock);\n return;\n }\n\n var lastParent = parentStack[0]; // block is non-nested & there are no nested blocks, directly push block\n\n if (lastParent == null && depth === 0) {\n transformedBlocks.push(treeBlock); // block is first nested block or previous nested block is at a lower level\n } else if (lastParent == null || lastParent.depth < depth - 1) {\n // create new parent block\n var newParent = {\n key: generateRandomKey(),\n text: '',\n depth: depth - 1,\n type: block.type,\n children: [],\n entityRanges: [],\n inlineStyleRanges: []\n };\n parentStack.unshift(newParent);\n\n if (depth === 1) {\n // add as a root-level block\n transformedBlocks.push(newParent);\n } else if (lastParent != null) {\n // depth > 1 => also add as previous parent's child\n lastParent.children.push(newParent);\n }\n\n newParent.children.push(treeBlock);\n } else if (lastParent.depth === depth - 1) {\n // add as child of last parent\n lastParent.children.push(treeBlock);\n } else {\n // pop out parents at levels above this one from the parent stack\n while (lastParent != null && lastParent.depth >= depth) {\n parentStack.shift();\n lastParent = parentStack[0];\n }\n\n if (depth > 0) {\n lastParent.children.push(treeBlock);\n } else {\n transformedBlocks.push(treeBlock);\n }\n }\n });\n return _objectSpread({}, draftState, {\n blocks: transformedBlocks\n });\n }\n};\nmodule.exports = DraftTreeAdapter;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar DraftTreeInvariants = {\n /**\n * Check if the block is valid\n */\n isValidBlock: function isValidBlock(block, blockMap) {\n var key = block.getKey(); // is its parent's child\n\n var parentKey = block.getParentKey();\n\n if (parentKey != null) {\n var parent = blockMap.get(parentKey);\n\n if (!parent.getChildKeys().includes(key)) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is missing parent -> child pointer on %s', key) : void 0;\n return false;\n }\n } // is its children's parent\n\n\n var children = block.getChildKeys().map(function (k) {\n return blockMap.get(k);\n });\n\n if (!children.every(function (c) {\n return c.getParentKey() === key;\n })) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is missing child -> parent pointer on %s', key) : void 0;\n return false;\n } // is its previous sibling's next sibling\n\n\n var prevSiblingKey = block.getPrevSiblingKey();\n\n if (prevSiblingKey != null) {\n var prevSibling = blockMap.get(prevSiblingKey);\n\n if (prevSibling.getNextSiblingKey() !== key) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Tree is missing nextSibling pointer on %s's prevSibling\", key) : void 0;\n return false;\n }\n } // is its next sibling's previous sibling\n\n\n var nextSiblingKey = block.getNextSiblingKey();\n\n if (nextSiblingKey != null) {\n var nextSibling = blockMap.get(nextSiblingKey);\n\n if (nextSibling.getPrevSiblingKey() !== key) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Tree is missing prevSibling pointer on %s's nextSibling\", key) : void 0;\n return false;\n }\n } // no 2-node cycles\n\n\n if (nextSiblingKey !== null && prevSiblingKey !== null) {\n if (prevSiblingKey === nextSiblingKey) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree has a two-node cycle at %s', key) : void 0;\n return false;\n }\n } // if it's a leaf node, it has text but no children\n\n\n if (block.text != '') {\n if (block.getChildKeys().size > 0) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Leaf node %s has children', key) : void 0;\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * Checks that this is a connected tree on all the blocks\n * starting from the first block, traversing nextSibling and child pointers\n * should be a tree (preorder traversal - parent, then children)\n * num of connected node === number of blocks\n */\n isConnectedTree: function isConnectedTree(blockMap) {\n // exactly one node has no previous sibling + no parent\n var eligibleFirstNodes = blockMap.toArray().filter(function (block) {\n return block.getParentKey() == null && block.getPrevSiblingKey() == null;\n });\n\n if (eligibleFirstNodes.length !== 1) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is not connected. More or less than one first node') : void 0;\n return false;\n }\n\n var firstNode = eligibleFirstNodes.shift();\n var nodesSeen = 0;\n var currentKey = firstNode.getKey();\n var visitedStack = [];\n\n while (currentKey != null) {\n var currentNode = blockMap.get(currentKey);\n var childKeys = currentNode.getChildKeys();\n var nextSiblingKey = currentNode.getNextSiblingKey(); // if the node has children, add parent's next sibling to stack and go to children\n\n if (childKeys.size > 0) {\n if (nextSiblingKey != null) {\n visitedStack.unshift(nextSiblingKey);\n }\n\n var children = childKeys.map(function (k) {\n return blockMap.get(k);\n });\n\n var _firstNode = children.find(function (block) {\n return block.getPrevSiblingKey() == null;\n });\n\n if (_firstNode == null) {\n process.env.NODE_ENV !== \"production\" ? warning(true, '%s has no first child', currentKey) : void 0;\n return false;\n }\n\n currentKey = _firstNode.getKey(); // TODO(T32490138): Deal with multi-node cycles here\n } else {\n if (currentNode.getNextSiblingKey() != null) {\n currentKey = currentNode.getNextSiblingKey();\n } else {\n currentKey = visitedStack.shift();\n }\n }\n\n nodesSeen++;\n }\n\n if (nodesSeen !== blockMap.size) {\n process.env.NODE_ENV !== \"production\" ? warning(true, 'Tree is not connected. %s nodes were seen instead of %s', nodesSeen, blockMap.size) : void 0;\n return false;\n }\n\n return true;\n },\n\n /**\n * Checks that the block map is a connected tree with valid blocks\n */\n isValidTree: function isValidTree(blockMap) {\n var _this = this;\n\n var blocks = blockMap.toArray();\n\n if (!blocks.every(function (block) {\n return _this.isValidBlock(block, blockMap);\n })) {\n return false;\n }\n\n return this.isConnectedTree(blockMap);\n }\n};\nmodule.exports = DraftTreeInvariants;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeBidiService = require(\"fbjs/lib/UnicodeBidiService\");\n\nvar Immutable = require(\"immutable\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar OrderedMap = Immutable.OrderedMap;\nvar bidiService;\nvar EditorBidiService = {\n getDirectionMap: function getDirectionMap(content, prevBidiMap) {\n if (!bidiService) {\n bidiService = new UnicodeBidiService();\n } else {\n bidiService.reset();\n }\n\n var blockMap = content.getBlockMap();\n var nextBidi = blockMap.valueSeq().map(function (block) {\n return nullthrows(bidiService).getDirection(block.getText());\n });\n var bidiMap = OrderedMap(blockMap.keySeq().zip(nextBidi));\n\n if (prevBidiMap != null && Immutable.is(prevBidiMap, bidiMap)) {\n return prevBidiMap;\n }\n\n return bidiMap;\n }\n};\nmodule.exports = EditorBidiService;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\nvar BlockTree = require(\"./BlockTree\");\n\nvar ContentState = require(\"./ContentState\");\n\nvar EditorBidiService = require(\"./EditorBidiService\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar Immutable = require(\"immutable\");\n\nvar OrderedSet = Immutable.OrderedSet,\n Record = Immutable.Record,\n Stack = Immutable.Stack,\n OrderedMap = Immutable.OrderedMap,\n List = Immutable.List; // When configuring an editor, the user can chose to provide or not provide\n// basically all keys. `currentContent` varies, so this type doesn't include it.\n// (See the types defined below.)\n\nvar defaultRecord = {\n allowUndo: true,\n currentContent: null,\n decorator: null,\n directionMap: null,\n forceSelection: false,\n inCompositionMode: false,\n inlineStyleOverride: null,\n lastChangeType: null,\n nativelyRenderedContent: null,\n redoStack: Stack(),\n selection: null,\n treeMap: null,\n undoStack: Stack()\n};\nvar EditorStateRecord = Record(defaultRecord);\n\nvar EditorState = /*#__PURE__*/function () {\n EditorState.createEmpty = function createEmpty(decorator) {\n return this.createWithText('', decorator);\n };\n\n EditorState.createWithText = function createWithText(text, decorator) {\n return EditorState.createWithContent(ContentState.createFromText(text), decorator);\n };\n\n EditorState.createWithContent = function createWithContent(contentState, decorator) {\n if (contentState.getBlockMap().count() === 0) {\n return EditorState.createEmpty(decorator);\n }\n\n var firstKey = contentState.getBlockMap().first().getKey();\n return EditorState.create({\n currentContent: contentState,\n undoStack: Stack(),\n redoStack: Stack(),\n decorator: decorator || null,\n selection: SelectionState.createEmpty(firstKey)\n });\n };\n\n EditorState.create = function create(config) {\n var currentContent = config.currentContent,\n decorator = config.decorator;\n\n var recordConfig = _objectSpread({}, config, {\n treeMap: generateNewTreeMap(currentContent, decorator),\n directionMap: EditorBidiService.getDirectionMap(currentContent)\n });\n\n return new EditorState(new EditorStateRecord(recordConfig));\n };\n\n EditorState.fromJS = function fromJS(config) {\n return new EditorState(new EditorStateRecord(_objectSpread({}, config, {\n directionMap: config.directionMap != null ? OrderedMap(config.directionMap) : config.directionMap,\n inlineStyleOverride: config.inlineStyleOverride != null ? OrderedSet(config.inlineStyleOverride) : config.inlineStyleOverride,\n nativelyRenderedContent: config.nativelyRenderedContent != null ? ContentState.fromJS(config.nativelyRenderedContent) : config.nativelyRenderedContent,\n redoStack: config.redoStack != null ? Stack(config.redoStack.map(function (v) {\n return ContentState.fromJS(v);\n })) : config.redoStack,\n selection: config.selection != null ? new SelectionState(config.selection) : config.selection,\n treeMap: config.treeMap != null ? OrderedMap(config.treeMap).map(function (v) {\n return List(v).map(function (v) {\n return BlockTree.fromJS(v);\n });\n }) : config.treeMap,\n undoStack: config.undoStack != null ? Stack(config.undoStack.map(function (v) {\n return ContentState.fromJS(v);\n })) : config.undoStack,\n currentContent: ContentState.fromJS(config.currentContent)\n })));\n };\n\n EditorState.set = function set(editorState, put) {\n var map = editorState.getImmutable().withMutations(function (state) {\n var existingDecorator = state.get('decorator');\n var decorator = existingDecorator;\n\n if (put.decorator === null) {\n decorator = null;\n } else if (put.decorator) {\n decorator = put.decorator;\n }\n\n var newContent = put.currentContent || editorState.getCurrentContent();\n\n if (decorator !== existingDecorator) {\n var treeMap = state.get('treeMap');\n var newTreeMap;\n\n if (decorator && existingDecorator) {\n newTreeMap = regenerateTreeForNewDecorator(newContent, newContent.getBlockMap(), treeMap, decorator, existingDecorator);\n } else {\n newTreeMap = generateNewTreeMap(newContent, decorator);\n }\n\n state.merge({\n decorator: decorator,\n treeMap: newTreeMap,\n nativelyRenderedContent: null\n });\n return;\n }\n\n var existingContent = editorState.getCurrentContent();\n\n if (newContent !== existingContent) {\n state.set('treeMap', regenerateTreeForNewBlocks(editorState, newContent.getBlockMap(), newContent.getEntityMap(), decorator));\n }\n\n state.merge(put);\n });\n return new EditorState(map);\n };\n\n var _proto = EditorState.prototype;\n\n _proto.toJS = function toJS() {\n return this.getImmutable().toJS();\n };\n\n _proto.getAllowUndo = function getAllowUndo() {\n return this.getImmutable().get('allowUndo');\n };\n\n _proto.getCurrentContent = function getCurrentContent() {\n return this.getImmutable().get('currentContent');\n };\n\n _proto.getUndoStack = function getUndoStack() {\n return this.getImmutable().get('undoStack');\n };\n\n _proto.getRedoStack = function getRedoStack() {\n return this.getImmutable().get('redoStack');\n };\n\n _proto.getSelection = function getSelection() {\n return this.getImmutable().get('selection');\n };\n\n _proto.getDecorator = function getDecorator() {\n return this.getImmutable().get('decorator');\n };\n\n _proto.isInCompositionMode = function isInCompositionMode() {\n return this.getImmutable().get('inCompositionMode');\n };\n\n _proto.mustForceSelection = function mustForceSelection() {\n return this.getImmutable().get('forceSelection');\n };\n\n _proto.getNativelyRenderedContent = function getNativelyRenderedContent() {\n return this.getImmutable().get('nativelyRenderedContent');\n };\n\n _proto.getLastChangeType = function getLastChangeType() {\n return this.getImmutable().get('lastChangeType');\n }\n /**\n * While editing, the user may apply inline style commands with a collapsed\n * cursor, intending to type text that adopts the specified style. In this\n * case, we track the specified style as an \"override\" that takes precedence\n * over the inline style of the text adjacent to the cursor.\n *\n * If null, there is no override in place.\n */\n ;\n\n _proto.getInlineStyleOverride = function getInlineStyleOverride() {\n return this.getImmutable().get('inlineStyleOverride');\n };\n\n EditorState.setInlineStyleOverride = function setInlineStyleOverride(editorState, inlineStyleOverride) {\n return EditorState.set(editorState, {\n inlineStyleOverride: inlineStyleOverride\n });\n }\n /**\n * Get the appropriate inline style for the editor state. If an\n * override is in place, use it. Otherwise, the current style is\n * based on the location of the selection state.\n */\n ;\n\n _proto.getCurrentInlineStyle = function getCurrentInlineStyle() {\n var override = this.getInlineStyleOverride();\n\n if (override != null) {\n return override;\n }\n\n var content = this.getCurrentContent();\n var selection = this.getSelection();\n\n if (selection.isCollapsed()) {\n return getInlineStyleForCollapsedSelection(content, selection);\n }\n\n return getInlineStyleForNonCollapsedSelection(content, selection);\n };\n\n _proto.getBlockTree = function getBlockTree(blockKey) {\n return this.getImmutable().getIn(['treeMap', blockKey]);\n };\n\n _proto.isSelectionAtStartOfContent = function isSelectionAtStartOfContent() {\n var firstKey = this.getCurrentContent().getBlockMap().first().getKey();\n return this.getSelection().hasEdgeWithin(firstKey, 0, 0);\n };\n\n _proto.isSelectionAtEndOfContent = function isSelectionAtEndOfContent() {\n var content = this.getCurrentContent();\n var blockMap = content.getBlockMap();\n var last = blockMap.last();\n var end = last.getLength();\n return this.getSelection().hasEdgeWithin(last.getKey(), end, end);\n };\n\n _proto.getDirectionMap = function getDirectionMap() {\n return this.getImmutable().get('directionMap');\n }\n /**\n * Incorporate native DOM selection changes into the EditorState. This\n * method can be used when we simply want to accept whatever the DOM\n * has given us to represent selection, and we do not need to re-render\n * the editor.\n *\n * To forcibly move the DOM selection, see `EditorState.forceSelection`.\n */\n ;\n\n EditorState.acceptSelection = function acceptSelection(editorState, selection) {\n return updateSelection(editorState, selection, false);\n }\n /**\n * At times, we need to force the DOM selection to be where we\n * need it to be. This can occur when the anchor or focus nodes\n * are non-text nodes, for instance. In this case, we want to trigger\n * a re-render of the editor, which in turn forces selection into\n * the correct place in the DOM. The `forceSelection` method\n * accomplishes this.\n *\n * This method should be used in cases where you need to explicitly\n * move the DOM selection from one place to another without a change\n * in ContentState.\n */\n ;\n\n EditorState.forceSelection = function forceSelection(editorState, selection) {\n if (!selection.getHasFocus()) {\n selection = selection.set('hasFocus', true);\n }\n\n return updateSelection(editorState, selection, true);\n }\n /**\n * Move selection to the end of the editor without forcing focus.\n */\n ;\n\n EditorState.moveSelectionToEnd = function moveSelectionToEnd(editorState) {\n var content = editorState.getCurrentContent();\n var lastBlock = content.getLastBlock();\n var lastKey = lastBlock.getKey();\n var length = lastBlock.getLength();\n return EditorState.acceptSelection(editorState, new SelectionState({\n anchorKey: lastKey,\n anchorOffset: length,\n focusKey: lastKey,\n focusOffset: length,\n isBackward: false\n }));\n }\n /**\n * Force focus to the end of the editor. This is useful in scenarios\n * where we want to programmatically focus the input and it makes sense\n * to allow the user to continue working seamlessly.\n */\n ;\n\n EditorState.moveFocusToEnd = function moveFocusToEnd(editorState) {\n var afterSelectionMove = EditorState.moveSelectionToEnd(editorState);\n return EditorState.forceSelection(afterSelectionMove, afterSelectionMove.getSelection());\n }\n /**\n * Push the current ContentState onto the undo stack if it should be\n * considered a boundary state, and set the provided ContentState as the\n * new current content.\n */\n ;\n\n EditorState.push = function push(editorState, contentState, changeType) {\n var forceSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (editorState.getCurrentContent() === contentState) {\n return editorState;\n }\n\n var directionMap = EditorBidiService.getDirectionMap(contentState, editorState.getDirectionMap());\n\n if (!editorState.getAllowUndo()) {\n return EditorState.set(editorState, {\n currentContent: contentState,\n directionMap: directionMap,\n lastChangeType: changeType,\n selection: contentState.getSelectionAfter(),\n forceSelection: forceSelection,\n inlineStyleOverride: null\n });\n }\n\n var selection = editorState.getSelection();\n var currentContent = editorState.getCurrentContent();\n var undoStack = editorState.getUndoStack();\n var newContent = contentState;\n\n if (selection !== currentContent.getSelectionAfter() || mustBecomeBoundary(editorState, changeType)) {\n undoStack = undoStack.push(currentContent);\n newContent = newContent.set('selectionBefore', selection);\n } else if (changeType === 'insert-characters' || changeType === 'backspace-character' || changeType === 'delete-character') {\n // Preserve the previous selection.\n newContent = newContent.set('selectionBefore', currentContent.getSelectionBefore());\n }\n\n var inlineStyleOverride = editorState.getInlineStyleOverride(); // Don't discard inline style overrides for the following change types:\n\n var overrideChangeTypes = ['adjust-depth', 'change-block-type', 'split-block'];\n\n if (overrideChangeTypes.indexOf(changeType) === -1) {\n inlineStyleOverride = null;\n }\n\n var editorStateChanges = {\n currentContent: newContent,\n directionMap: directionMap,\n undoStack: undoStack,\n redoStack: Stack(),\n lastChangeType: changeType,\n selection: contentState.getSelectionAfter(),\n forceSelection: forceSelection,\n inlineStyleOverride: inlineStyleOverride\n };\n return EditorState.set(editorState, editorStateChanges);\n }\n /**\n * Make the top ContentState in the undo stack the new current content and\n * push the current content onto the redo stack.\n */\n ;\n\n EditorState.undo = function undo(editorState) {\n if (!editorState.getAllowUndo()) {\n return editorState;\n }\n\n var undoStack = editorState.getUndoStack();\n var newCurrentContent = undoStack.peek();\n\n if (!newCurrentContent) {\n return editorState;\n }\n\n var currentContent = editorState.getCurrentContent();\n var directionMap = EditorBidiService.getDirectionMap(newCurrentContent, editorState.getDirectionMap());\n return EditorState.set(editorState, {\n currentContent: newCurrentContent,\n directionMap: directionMap,\n undoStack: undoStack.shift(),\n redoStack: editorState.getRedoStack().push(currentContent),\n forceSelection: true,\n inlineStyleOverride: null,\n lastChangeType: 'undo',\n nativelyRenderedContent: null,\n selection: currentContent.getSelectionBefore()\n });\n }\n /**\n * Make the top ContentState in the redo stack the new current content and\n * push the current content onto the undo stack.\n */\n ;\n\n EditorState.redo = function redo(editorState) {\n if (!editorState.getAllowUndo()) {\n return editorState;\n }\n\n var redoStack = editorState.getRedoStack();\n var newCurrentContent = redoStack.peek();\n\n if (!newCurrentContent) {\n return editorState;\n }\n\n var currentContent = editorState.getCurrentContent();\n var directionMap = EditorBidiService.getDirectionMap(newCurrentContent, editorState.getDirectionMap());\n return EditorState.set(editorState, {\n currentContent: newCurrentContent,\n directionMap: directionMap,\n undoStack: editorState.getUndoStack().push(currentContent),\n redoStack: redoStack.shift(),\n forceSelection: true,\n inlineStyleOverride: null,\n lastChangeType: 'redo',\n nativelyRenderedContent: null,\n selection: newCurrentContent.getSelectionAfter()\n });\n }\n /**\n * Not for public consumption.\n */\n ;\n\n function EditorState(immutable) {\n _defineProperty(this, \"_immutable\", void 0);\n\n this._immutable = immutable;\n }\n /**\n * Not for public consumption.\n */\n\n\n _proto.getImmutable = function getImmutable() {\n return this._immutable;\n };\n\n return EditorState;\n}();\n/**\n * Set the supplied SelectionState as the new current selection, and set\n * the `force` flag to trigger manual selection placement by the view.\n */\n\n\nfunction updateSelection(editorState, selection, forceSelection) {\n return EditorState.set(editorState, {\n selection: selection,\n forceSelection: forceSelection,\n nativelyRenderedContent: null,\n inlineStyleOverride: null\n });\n}\n/**\n * Regenerate the entire tree map for a given ContentState and decorator.\n * Returns an OrderedMap that maps all available ContentBlock objects.\n */\n\n\nfunction generateNewTreeMap(contentState, decorator) {\n return contentState.getBlockMap().map(function (block) {\n return BlockTree.generate(contentState, block, decorator);\n }).toOrderedMap();\n}\n/**\n * Regenerate tree map objects for all ContentBlocks that have changed\n * between the current editorState and newContent. Returns an OrderedMap\n * with only changed regenerated tree map objects.\n */\n\n\nfunction regenerateTreeForNewBlocks(editorState, newBlockMap, newEntityMap, decorator) {\n var contentState = editorState.getCurrentContent().set('entityMap', newEntityMap);\n var prevBlockMap = contentState.getBlockMap();\n var prevTreeMap = editorState.getImmutable().get('treeMap');\n return prevTreeMap.merge(newBlockMap.toSeq().filter(function (block, key) {\n return block !== prevBlockMap.get(key);\n }).map(function (block) {\n return BlockTree.generate(contentState, block, decorator);\n }));\n}\n/**\n * Generate tree map objects for a new decorator object, preserving any\n * decorations that are unchanged from the previous decorator.\n *\n * Note that in order for this to perform optimally, decoration Lists for\n * decorators should be preserved when possible to allow for direct immutable\n * List comparison.\n */\n\n\nfunction regenerateTreeForNewDecorator(content, blockMap, previousTreeMap, decorator, existingDecorator) {\n return previousTreeMap.merge(blockMap.toSeq().filter(function (block) {\n return decorator.getDecorations(block, content) !== existingDecorator.getDecorations(block, content);\n }).map(function (block) {\n return BlockTree.generate(content, block, decorator);\n }));\n}\n/**\n * Return whether a change should be considered a boundary state, given\n * the previous change type. Allows us to discard potential boundary states\n * during standard typing or deletion behavior.\n */\n\n\nfunction mustBecomeBoundary(editorState, changeType) {\n var lastChangeType = editorState.getLastChangeType();\n return changeType !== lastChangeType || changeType !== 'insert-characters' && changeType !== 'backspace-character' && changeType !== 'delete-character';\n}\n\nfunction getInlineStyleForCollapsedSelection(content, selection) {\n var startKey = selection.getStartKey();\n var startOffset = selection.getStartOffset();\n var startBlock = content.getBlockForKey(startKey); // If the cursor is not at the start of the block, look backward to\n // preserve the style of the preceding character.\n\n if (startOffset > 0) {\n return startBlock.getInlineStyleAt(startOffset - 1);\n } // The caret is at position zero in this block. If the block has any\n // text at all, use the style of the first character.\n\n\n if (startBlock.getLength()) {\n return startBlock.getInlineStyleAt(0);\n } // Otherwise, look upward in the document to find the closest character.\n\n\n return lookUpwardForInlineStyle(content, startKey);\n}\n\nfunction getInlineStyleForNonCollapsedSelection(content, selection) {\n var startKey = selection.getStartKey();\n var startOffset = selection.getStartOffset();\n var startBlock = content.getBlockForKey(startKey); // If there is a character just inside the selection, use its style.\n\n if (startOffset < startBlock.getLength()) {\n return startBlock.getInlineStyleAt(startOffset);\n } // Check if the selection at the end of a non-empty block. Use the last\n // style in the block.\n\n\n if (startOffset > 0) {\n return startBlock.getInlineStyleAt(startOffset - 1);\n } // Otherwise, look upward in the document to find the closest character.\n\n\n return lookUpwardForInlineStyle(content, startKey);\n}\n\nfunction lookUpwardForInlineStyle(content, fromKey) {\n var lastNonEmpty = content.getBlockMap().reverse().skipUntil(function (_, k) {\n return k === fromKey;\n }).skip(1).skipUntil(function (block, _) {\n return block.getLength();\n }).first();\n\n if (lastNonEmpty) {\n return lastNonEmpty.getInlineStyleAt(lastNonEmpty.getLength() - 1);\n }\n\n return OrderedSet();\n}\n\nmodule.exports = EditorState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar isSoftNewlineEvent = require(\"./isSoftNewlineEvent\");\n\nvar isOSX = UserAgent.isPlatform('Mac OS X');\nvar KeyBindingUtil = {\n /**\n * Check whether the ctrlKey modifier is *not* being used in conjunction with\n * the altKey modifier. If they are combined, the result is an `altGraph`\n * key modifier, which should not be handled by this set of key bindings.\n */\n isCtrlKeyCommand: function isCtrlKeyCommand(e) {\n return !!e.ctrlKey && !e.altKey;\n },\n isOptionKeyCommand: function isOptionKeyCommand(e) {\n return isOSX && e.altKey;\n },\n usesMacOSHeuristics: function usesMacOSHeuristics() {\n return isOSX;\n },\n hasCommandModifier: function hasCommandModifier(e) {\n return isOSX ? !!e.metaKey && !e.altKey : KeyBindingUtil.isCtrlKeyCommand(e);\n },\n isSoftNewlineEvent: isSoftNewlineEvent\n};\nmodule.exports = KeyBindingUtil;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar adjustBlockDepthForContentState = require(\"./adjustBlockDepthForContentState\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar RichTextEditorUtil = {\n currentBlockContainsLink: function currentBlockContainsLink(editorState) {\n var selection = editorState.getSelection();\n var contentState = editorState.getCurrentContent();\n var entityMap = contentState.getEntityMap();\n return contentState.getBlockForKey(selection.getAnchorKey()).getCharacterList().slice(selection.getStartOffset(), selection.getEndOffset()).some(function (v) {\n var entity = v.getEntity();\n return !!entity && entityMap.__get(entity).getType() === 'LINK';\n });\n },\n getCurrentBlockType: function getCurrentBlockType(editorState) {\n var selection = editorState.getSelection();\n return editorState.getCurrentContent().getBlockForKey(selection.getStartKey()).getType();\n },\n getDataObjectForLinkURL: function getDataObjectForLinkURL(uri) {\n return {\n url: uri.toString()\n };\n },\n handleKeyCommand: function handleKeyCommand(editorState, command, eventTimeStamp) {\n switch (command) {\n case 'bold':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'BOLD');\n\n case 'italic':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'ITALIC');\n\n case 'underline':\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'UNDERLINE');\n\n case 'code':\n return RichTextEditorUtil.toggleCode(editorState);\n\n case 'backspace':\n case 'backspace-word':\n case 'backspace-to-start-of-line':\n return RichTextEditorUtil.onBackspace(editorState);\n\n case 'delete':\n case 'delete-word':\n case 'delete-to-end-of-block':\n return RichTextEditorUtil.onDelete(editorState);\n\n default:\n // they may have custom editor commands; ignore those\n return null;\n }\n },\n insertSoftNewline: function insertSoftNewline(editorState) {\n var contentState = DraftModifier.insertText(editorState.getCurrentContent(), editorState.getSelection(), '\\n', editorState.getCurrentInlineStyle(), null);\n var newEditorState = EditorState.push(editorState, contentState, 'insert-characters');\n return EditorState.forceSelection(newEditorState, contentState.getSelectionAfter());\n },\n\n /**\n * For collapsed selections at the start of styled blocks, backspace should\n * just remove the existing style.\n */\n onBackspace: function onBackspace(editorState) {\n var selection = editorState.getSelection();\n\n if (!selection.isCollapsed() || selection.getAnchorOffset() || selection.getFocusOffset()) {\n return null;\n } // First, try to remove a preceding atomic block.\n\n\n var content = editorState.getCurrentContent();\n var startKey = selection.getStartKey();\n var blockBefore = content.getBlockBefore(startKey);\n\n if (blockBefore && blockBefore.getType() === 'atomic') {\n var blockMap = content.getBlockMap()[\"delete\"](blockBefore.getKey());\n var withoutAtomicBlock = content.merge({\n blockMap: blockMap,\n selectionAfter: selection\n });\n\n if (withoutAtomicBlock !== content) {\n return EditorState.push(editorState, withoutAtomicBlock, 'remove-range');\n }\n } // If that doesn't succeed, try to remove the current block style.\n\n\n var withoutBlockStyle = RichTextEditorUtil.tryToRemoveBlockStyle(editorState);\n\n if (withoutBlockStyle) {\n return EditorState.push(editorState, withoutBlockStyle, 'change-block-type');\n }\n\n return null;\n },\n onDelete: function onDelete(editorState) {\n var selection = editorState.getSelection();\n\n if (!selection.isCollapsed()) {\n return null;\n }\n\n var content = editorState.getCurrentContent();\n var startKey = selection.getStartKey();\n var block = content.getBlockForKey(startKey);\n var length = block.getLength(); // The cursor is somewhere within the text. Behave normally.\n\n if (selection.getStartOffset() < length) {\n return null;\n }\n\n var blockAfter = content.getBlockAfter(startKey);\n\n if (!blockAfter || blockAfter.getType() !== 'atomic') {\n return null;\n }\n\n var atomicBlockTarget = selection.merge({\n focusKey: blockAfter.getKey(),\n focusOffset: blockAfter.getLength()\n });\n var withoutAtomicBlock = DraftModifier.removeRange(content, atomicBlockTarget, 'forward');\n\n if (withoutAtomicBlock !== content) {\n return EditorState.push(editorState, withoutAtomicBlock, 'remove-range');\n }\n\n return null;\n },\n onTab: function onTab(event, editorState, maxDepth) {\n var selection = editorState.getSelection();\n var key = selection.getAnchorKey();\n\n if (key !== selection.getFocusKey()) {\n return editorState;\n }\n\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(key);\n var type = block.getType();\n\n if (type !== 'unordered-list-item' && type !== 'ordered-list-item') {\n return editorState;\n }\n\n event.preventDefault();\n var depth = block.getDepth();\n\n if (!event.shiftKey && depth === maxDepth) {\n return editorState;\n }\n\n var withAdjustment = adjustBlockDepthForContentState(content, selection, event.shiftKey ? -1 : 1, maxDepth);\n return EditorState.push(editorState, withAdjustment, 'adjust-depth');\n },\n toggleBlockType: function toggleBlockType(editorState, blockType) {\n var selection = editorState.getSelection();\n var startKey = selection.getStartKey();\n var endKey = selection.getEndKey();\n var content = editorState.getCurrentContent();\n var target = selection; // Triple-click can lead to a selection that includes offset 0 of the\n // following block. The `SelectionState` for this case is accurate, but\n // we should avoid toggling block type for the trailing block because it\n // is a confusing interaction.\n\n if (startKey !== endKey && selection.getEndOffset() === 0) {\n var blockBefore = nullthrows(content.getBlockBefore(endKey));\n endKey = blockBefore.getKey();\n target = target.merge({\n anchorKey: startKey,\n anchorOffset: selection.getStartOffset(),\n focusKey: endKey,\n focusOffset: blockBefore.getLength(),\n isBackward: false\n });\n }\n\n var hasAtomicBlock = content.getBlockMap().skipWhile(function (_, k) {\n return k !== startKey;\n }).reverse().skipWhile(function (_, k) {\n return k !== endKey;\n }).some(function (v) {\n return v.getType() === 'atomic';\n });\n\n if (hasAtomicBlock) {\n return editorState;\n }\n\n var typeToSet = content.getBlockForKey(startKey).getType() === blockType ? 'unstyled' : blockType;\n return EditorState.push(editorState, DraftModifier.setBlockType(content, target, typeToSet), 'change-block-type');\n },\n toggleCode: function toggleCode(editorState) {\n var selection = editorState.getSelection();\n var anchorKey = selection.getAnchorKey();\n var focusKey = selection.getFocusKey();\n\n if (selection.isCollapsed() || anchorKey !== focusKey) {\n return RichTextEditorUtil.toggleBlockType(editorState, 'code-block');\n }\n\n return RichTextEditorUtil.toggleInlineStyle(editorState, 'CODE');\n },\n\n /**\n * Toggle the specified inline style for the selection. If the\n * user's selection is collapsed, apply or remove the style for the\n * internal state. If it is not collapsed, apply the change directly\n * to the document state.\n */\n toggleInlineStyle: function toggleInlineStyle(editorState, inlineStyle) {\n var selection = editorState.getSelection();\n var currentStyle = editorState.getCurrentInlineStyle(); // If the selection is collapsed, toggle the specified style on or off and\n // set the result as the new inline style override. This will then be\n // used as the inline style for the next character to be inserted.\n\n if (selection.isCollapsed()) {\n return EditorState.setInlineStyleOverride(editorState, currentStyle.has(inlineStyle) ? currentStyle.remove(inlineStyle) : currentStyle.add(inlineStyle));\n } // If characters are selected, immediately apply or remove the\n // inline style on the document state itself.\n\n\n var content = editorState.getCurrentContent();\n var newContent; // If the style is already present for the selection range, remove it.\n // Otherwise, apply it.\n\n if (currentStyle.has(inlineStyle)) {\n newContent = DraftModifier.removeInlineStyle(content, selection, inlineStyle);\n } else {\n newContent = DraftModifier.applyInlineStyle(content, selection, inlineStyle);\n }\n\n return EditorState.push(editorState, newContent, 'change-inline-style');\n },\n toggleLink: function toggleLink(editorState, targetSelection, entityKey) {\n var withoutLink = DraftModifier.applyEntity(editorState.getCurrentContent(), targetSelection, entityKey);\n return EditorState.push(editorState, withoutLink, 'apply-entity');\n },\n\n /**\n * When a collapsed cursor is at the start of a styled block, changes block\n * type to 'unstyled'. Returns null if selection does not meet that criteria.\n */\n tryToRemoveBlockStyle: function tryToRemoveBlockStyle(editorState) {\n var selection = editorState.getSelection();\n var offset = selection.getAnchorOffset();\n\n if (selection.isCollapsed() && offset === 0) {\n var key = selection.getAnchorKey();\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(key);\n var type = block.getType();\n var blockBefore = content.getBlockBefore(key);\n\n if (type === 'code-block' && blockBefore && blockBefore.getType() === 'code-block' && blockBefore.getLength() !== 0) {\n return null;\n }\n\n if (type !== 'unstyled') {\n return DraftModifier.setBlockType(content, selection, 'unstyled');\n }\n }\n\n return null;\n }\n};\nmodule.exports = RichTextEditorUtil;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar getContentStateFragment = require(\"./getContentStateFragment\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar clipboard = null;\n/**\n * Some systems offer a \"secondary\" clipboard to allow quick internal cut\n * and paste behavior. For instance, Ctrl+K (cut) and Ctrl+Y (paste).\n */\n\nvar SecondaryClipboard = {\n cut: function cut(editorState) {\n var content = editorState.getCurrentContent();\n var selection = editorState.getSelection();\n var targetRange = null;\n\n if (selection.isCollapsed()) {\n var anchorKey = selection.getAnchorKey();\n var blockEnd = content.getBlockForKey(anchorKey).getLength();\n\n if (blockEnd === selection.getAnchorOffset()) {\n var keyAfter = content.getKeyAfter(anchorKey);\n\n if (keyAfter == null) {\n return editorState;\n }\n\n targetRange = selection.set('focusKey', keyAfter).set('focusOffset', 0);\n } else {\n targetRange = selection.set('focusOffset', blockEnd);\n }\n } else {\n targetRange = selection;\n }\n\n targetRange = nullthrows(targetRange); // TODO: This should actually append to the current state when doing\n // successive ^K commands without any other cursor movement\n\n clipboard = getContentStateFragment(content, targetRange);\n var afterRemoval = DraftModifier.removeRange(content, targetRange, 'forward');\n\n if (afterRemoval === content) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n },\n paste: function paste(editorState) {\n if (!clipboard) {\n return editorState;\n }\n\n var newContent = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), clipboard);\n return EditorState.push(editorState, newContent, 'insert-fragment');\n }\n};\nmodule.exports = SecondaryClipboard;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar Immutable = require(\"immutable\");\n\nvar Record = Immutable.Record;\nvar defaultRecord = {\n anchorKey: '',\n anchorOffset: 0,\n focusKey: '',\n focusOffset: 0,\n isBackward: false,\n hasFocus: false\n};\n/* $FlowFixMe[unclear-type] This comment suppresses an error found when\n * automatically adding a type annotation with the codemod Komodo/Annotate_\n * exports. To see the error delete this comment and run Flow. */\n\nvar SelectionStateRecord = Record(defaultRecord);\n\nvar SelectionState = /*#__PURE__*/function (_SelectionStateRecord) {\n _inheritsLoose(SelectionState, _SelectionStateRecord);\n\n function SelectionState() {\n return _SelectionStateRecord.apply(this, arguments) || this;\n }\n\n var _proto = SelectionState.prototype;\n\n _proto.serialize = function serialize() {\n return 'Anchor: ' + this.getAnchorKey() + ':' + this.getAnchorOffset() + ', ' + 'Focus: ' + this.getFocusKey() + ':' + this.getFocusOffset() + ', ' + 'Is Backward: ' + String(this.getIsBackward()) + ', ' + 'Has Focus: ' + String(this.getHasFocus());\n };\n\n _proto.getAnchorKey = function getAnchorKey() {\n return this.get('anchorKey');\n };\n\n _proto.getAnchorOffset = function getAnchorOffset() {\n return this.get('anchorOffset');\n };\n\n _proto.getFocusKey = function getFocusKey() {\n return this.get('focusKey');\n };\n\n _proto.getFocusOffset = function getFocusOffset() {\n return this.get('focusOffset');\n };\n\n _proto.getIsBackward = function getIsBackward() {\n return this.get('isBackward');\n };\n\n _proto.getHasFocus = function getHasFocus() {\n return this.get('hasFocus');\n }\n /**\n * Return whether the specified range overlaps with an edge of the\n * SelectionState.\n */\n ;\n\n _proto.hasEdgeWithin = function hasEdgeWithin(blockKey, start, end) {\n var anchorKey = this.getAnchorKey();\n var focusKey = this.getFocusKey();\n\n if (anchorKey === focusKey && anchorKey === blockKey) {\n var selectionStart = this.getStartOffset();\n var selectionEnd = this.getEndOffset();\n return start <= selectionStart && selectionStart <= end || // selectionStart is between start and end, or\n start <= selectionEnd && selectionEnd <= end // selectionEnd is between start and end\n ;\n }\n\n if (blockKey !== anchorKey && blockKey !== focusKey) {\n return false;\n }\n\n var offsetToCheck = blockKey === anchorKey ? this.getAnchorOffset() : this.getFocusOffset();\n return start <= offsetToCheck && end >= offsetToCheck;\n };\n\n _proto.isCollapsed = function isCollapsed() {\n return this.getAnchorKey() === this.getFocusKey() && this.getAnchorOffset() === this.getFocusOffset();\n };\n\n _proto.getStartKey = function getStartKey() {\n return this.getIsBackward() ? this.getFocusKey() : this.getAnchorKey();\n };\n\n _proto.getStartOffset = function getStartOffset() {\n return this.getIsBackward() ? this.getFocusOffset() : this.getAnchorOffset();\n };\n\n _proto.getEndKey = function getEndKey() {\n return this.getIsBackward() ? this.getAnchorKey() : this.getFocusKey();\n };\n\n _proto.getEndOffset = function getEndOffset() {\n return this.getIsBackward() ? this.getAnchorOffset() : this.getFocusOffset();\n };\n\n SelectionState.createEmpty = function createEmpty(key) {\n return new SelectionState({\n anchorKey: key,\n anchorOffset: 0,\n focusKey: key,\n focusOffset: 0,\n isBackward: false,\n hasFocus: false\n });\n };\n\n return SelectionState;\n}(SelectionStateRecord);\n\nmodule.exports = SelectionState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction adjustBlockDepthForContentState(contentState, selectionState, adjustment, maxDepth) {\n var startKey = selectionState.getStartKey();\n var endKey = selectionState.getEndKey();\n var blockMap = contentState.getBlockMap();\n var blocks = blockMap.toSeq().skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).concat([[endKey, blockMap.get(endKey)]]).map(function (block) {\n var depth = block.getDepth() + adjustment;\n depth = Math.max(0, Math.min(depth, maxDepth));\n return block.set('depth', depth);\n });\n blockMap = blockMap.merge(blocks);\n return contentState.merge({\n blockMap: blockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = adjustBlockDepthForContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nfunction applyEntityToContentBlock(contentBlock, startArg, end, entityKey) {\n var start = startArg;\n var characterList = contentBlock.getCharacterList();\n\n while (start < end) {\n characterList = characterList.set(start, CharacterMetadata.applyEntity(characterList.get(start), entityKey));\n start++;\n }\n\n return contentBlock.set('characterList', characterList);\n}\n\nmodule.exports = applyEntityToContentBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar applyEntityToContentBlock = require(\"./applyEntityToContentBlock\");\n\nvar Immutable = require(\"immutable\");\n\nfunction applyEntityToContentState(contentState, selectionState, entityKey) {\n var blockMap = contentState.getBlockMap();\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var newBlocks = blockMap.skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).toOrderedMap().merge(Immutable.OrderedMap([[endKey, blockMap.get(endKey)]])).map(function (block, blockKey) {\n var sliceStart = blockKey === startKey ? startOffset : 0;\n var sliceEnd = blockKey === endKey ? endOffset : block.getLength();\n return applyEntityToContentBlock(block, sliceStart, sliceEnd, entityKey);\n });\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = applyEntityToContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DraftStringKey = require(\"./DraftStringKey\");\n\nvar encodeEntityRanges = require(\"./encodeEntityRanges\");\n\nvar encodeInlineStyleRanges = require(\"./encodeInlineStyleRanges\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar createRawBlock = function createRawBlock(block, entityStorageMap) {\n return {\n key: block.getKey(),\n text: block.getText(),\n type: block.getType(),\n depth: block.getDepth(),\n inlineStyleRanges: encodeInlineStyleRanges(block),\n entityRanges: encodeEntityRanges(block, entityStorageMap),\n data: block.getData().toObject()\n };\n};\n\nvar insertRawBlock = function insertRawBlock(block, entityMap, rawBlocks, blockCacheRef) {\n if (block instanceof ContentBlock) {\n rawBlocks.push(createRawBlock(block, entityMap));\n return;\n }\n\n !(block instanceof ContentBlockNode) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'block is not a BlockNode') : invariant(false) : void 0;\n var parentKey = block.getParentKey();\n\n var rawBlock = blockCacheRef[block.getKey()] = _objectSpread({}, createRawBlock(block, entityMap), {\n children: []\n });\n\n if (parentKey) {\n blockCacheRef[parentKey].children.push(rawBlock);\n return;\n }\n\n rawBlocks.push(rawBlock);\n};\n\nvar encodeRawBlocks = function encodeRawBlocks(contentState, rawState) {\n var entityMap = rawState.entityMap;\n var rawBlocks = [];\n var blockCacheRef = {};\n var entityCacheRef = {};\n var entityStorageKey = 0;\n contentState.getBlockMap().forEach(function (block) {\n block.findEntityRanges(function (character) {\n return character.getEntity() !== null;\n }, function (start) {\n var entityKey = block.getEntityAt(start); // Stringify to maintain order of otherwise numeric keys.\n\n var stringifiedEntityKey = DraftStringKey.stringify(entityKey); // This makes this function resilient to two entities\n // erroneously having the same key\n\n if (entityCacheRef[stringifiedEntityKey]) {\n return;\n }\n\n entityCacheRef[stringifiedEntityKey] = entityKey; // we need the `any` casting here since this is a temporary state\n // where we will later on flip the entity map and populate it with\n // real entity, at this stage we just need to map back the entity\n // key used by the BlockNode\n\n entityMap[stringifiedEntityKey] = \"\".concat(entityStorageKey);\n entityStorageKey++;\n });\n insertRawBlock(block, entityMap, rawBlocks, blockCacheRef);\n });\n return {\n blocks: rawBlocks,\n entityMap: entityMap\n };\n}; // Flip storage map so that our storage keys map to global\n// DraftEntity keys.\n\n\nvar encodeRawEntityMap = function encodeRawEntityMap(contentState, rawState) {\n var blocks = rawState.blocks,\n entityMap = rawState.entityMap;\n var rawEntityMap = {};\n Object.keys(entityMap).forEach(function (key, index) {\n var entity = contentState.getEntity(DraftStringKey.unstringify(key));\n rawEntityMap[index] = {\n type: entity.getType(),\n mutability: entity.getMutability(),\n data: entity.getData()\n };\n });\n return {\n blocks: blocks,\n entityMap: rawEntityMap\n };\n};\n\nvar convertFromDraftStateToRaw = function convertFromDraftStateToRaw(contentState) {\n var rawDraftContentState = {\n entityMap: {},\n blocks: []\n }; // add blocks\n\n rawDraftContentState = encodeRawBlocks(contentState, rawDraftContentState); // add entities\n\n rawDraftContentState = encodeRawEntityMap(contentState, rawDraftContentState);\n return rawDraftContentState;\n};\n\nmodule.exports = convertFromDraftStateToRaw;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nrequire(\"core-js/modules/es.string.trim-start.js\");\n\nrequire(\"core-js/modules/es.string.trim-end.js\");\n\nrequire(\"core-js/modules/es.array.flat-map.js\");\n\nrequire(\"core-js/modules/es.array.unscopables.flat-map.js\");\n\nvar _knownListItemDepthCl;\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\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\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar DefaultDraftBlockRenderMap = require(\"./DefaultDraftBlockRenderMap\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar URI = require(\"fbjs/lib/URI\");\n\nvar cx = require(\"fbjs/lib/cx\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar getSafeBodyFromHTML = require(\"./getSafeBodyFromHTML\");\n\nvar gkx = require(\"./gkx\");\n\nvar _require = require(\"immutable\"),\n List = _require.List,\n Map = _require.Map,\n OrderedSet = _require.OrderedSet;\n\nvar isHTMLAnchorElement = require(\"./isHTMLAnchorElement\");\n\nvar isHTMLBRElement = require(\"./isHTMLBRElement\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nvar isHTMLImageElement = require(\"./isHTMLImageElement\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar NBSP = ' ';\nvar SPACE = ' '; // used for replacing characters in HTML\n\nvar REGEX_CR = new RegExp('\\r', 'g');\nvar REGEX_LF = new RegExp('\\n', 'g');\nvar REGEX_LEADING_LF = new RegExp('^\\n', 'g');\nvar REGEX_NBSP = new RegExp(NBSP, 'g');\nvar REGEX_CARRIAGE = new RegExp(' ?', 'g');\nvar REGEX_ZWS = new RegExp('​?', 'g'); // https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n\nvar boldValues = ['bold', 'bolder', '500', '600', '700', '800', '900'];\nvar notBoldValues = ['light', 'lighter', 'normal', '100', '200', '300', '400'];\nvar anchorAttr = ['className', 'href', 'rel', 'target', 'title'];\nvar imgAttr = ['alt', 'className', 'height', 'src', 'width'];\nvar knownListItemDepthClasses = (_knownListItemDepthCl = {}, _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth0'), 0), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth1'), 1), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth2'), 2), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth3'), 3), _defineProperty(_knownListItemDepthCl, cx('public/DraftStyleDefault/depth4'), 4), _knownListItemDepthCl);\nvar HTMLTagToRawInlineStyleMap = Map({\n b: 'BOLD',\n code: 'CODE',\n del: 'STRIKETHROUGH',\n em: 'ITALIC',\n i: 'ITALIC',\n s: 'STRIKETHROUGH',\n strike: 'STRIKETHROUGH',\n strong: 'BOLD',\n u: 'UNDERLINE',\n mark: 'HIGHLIGHT'\n});\n/**\n * Build a mapping from HTML tags to draftjs block types\n * out of a BlockRenderMap.\n *\n * The BlockTypeMap for the default BlockRenderMap looks like this:\n * Map({\n * h1: 'header-one',\n * h2: 'header-two',\n * h3: 'header-three',\n * h4: 'header-four',\n * h5: 'header-five',\n * h6: 'header-six',\n * blockquote: 'blockquote',\n * figure: 'atomic',\n * pre: ['code-block'],\n * div: 'unstyled',\n * p: 'unstyled',\n * li: ['ordered-list-item', 'unordered-list-item'],\n * })\n */\n\nvar buildBlockTypeMap = function buildBlockTypeMap(blockRenderMap) {\n var blockTypeMap = {};\n blockRenderMap.mapKeys(function (blockType, desc) {\n var elements = [desc.element];\n\n if (desc.aliasedElements !== undefined) {\n elements.push.apply(elements, desc.aliasedElements);\n }\n\n elements.forEach(function (element) {\n if (blockTypeMap[element] === undefined) {\n blockTypeMap[element] = blockType;\n } else if (typeof blockTypeMap[element] === 'string') {\n blockTypeMap[element] = [blockTypeMap[element], blockType];\n } else {\n blockTypeMap[element].push(blockType);\n }\n });\n });\n return Map(blockTypeMap);\n};\n\nvar detectInlineStyle = function detectInlineStyle(node) {\n if (isHTMLElement(node)) {\n var element = node; // Currently only used to detect preformatted inline code\n\n if (element.style.fontFamily.includes('monospace')) {\n return 'CODE';\n }\n }\n\n return null;\n};\n/**\n * If we're pasting from one DraftEditor to another we can check to see if\n * existing list item depth classes are being used and preserve this style\n */\n\n\nvar getListItemDepth = function getListItemDepth(node) {\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n Object.keys(knownListItemDepthClasses).some(function (depthClass) {\n if (node.classList.contains(depthClass)) {\n depth = knownListItemDepthClasses[depthClass];\n }\n });\n return depth;\n};\n/**\n * Return true if the provided HTML Element can be used to build a\n * Draftjs-compatible link.\n */\n\n\nvar isValidAnchor = function isValidAnchor(node) {\n if (!isHTMLAnchorElement(node)) {\n return false;\n }\n\n var anchorNode = node;\n\n if (!anchorNode.href || anchorNode.protocol !== 'http:' && anchorNode.protocol !== 'https:' && anchorNode.protocol !== 'mailto:' && anchorNode.protocol !== 'tel:') {\n return false;\n }\n\n try {\n // Just checking whether we can actually create a URI\n var _ = new URI(anchorNode.href);\n\n return true; // We need our catch statements to have arguments, else\n // UglifyJS (which we use for our OSS builds) will crash.\n // eslint-disable-next-line fb-www/no-unused-catch-bindings\n } catch (_) {\n return false;\n }\n};\n/**\n * Return true if the provided HTML Element can be used to build a\n * Draftjs-compatible image.\n */\n\n\nvar isValidImage = function isValidImage(node) {\n if (!isHTMLImageElement(node)) {\n return false;\n }\n\n var imageNode = node;\n return !!(imageNode.attributes.getNamedItem('src') && imageNode.attributes.getNamedItem('src').value);\n};\n/**\n * Try to guess the inline style of an HTML element based on its css\n * styles (font-weight, font-style and text-decoration).\n */\n\n\nvar styleFromNodeAttributes = function styleFromNodeAttributes(node, style) {\n if (!isHTMLElement(node)) {\n return style;\n }\n\n var htmlElement = node;\n var fontWeight = htmlElement.style.fontWeight;\n var fontStyle = htmlElement.style.fontStyle;\n var textDecoration = htmlElement.style.textDecoration;\n return style.withMutations(function (style) {\n if (boldValues.indexOf(fontWeight) >= 0) {\n style.add('BOLD');\n } else if (notBoldValues.indexOf(fontWeight) >= 0) {\n style.remove('BOLD');\n }\n\n if (fontStyle === 'italic') {\n style.add('ITALIC');\n } else if (fontStyle === 'normal') {\n style.remove('ITALIC');\n }\n\n if (textDecoration === 'underline') {\n style.add('UNDERLINE');\n }\n\n if (textDecoration === 'line-through') {\n style.add('STRIKETHROUGH');\n }\n\n if (textDecoration === 'none') {\n style.remove('UNDERLINE');\n style.remove('STRIKETHROUGH');\n }\n });\n};\n/**\n * Determine if a nodeName is a list type, 'ul' or 'ol'\n */\n\n\nvar isListNode = function isListNode(nodeName) {\n return nodeName === 'ul' || nodeName === 'ol';\n};\n/**\n * ContentBlockConfig is a mutable data structure that holds all\n * the information required to build a ContentBlock and an array of\n * all the child nodes (childConfigs).\n * It is being used a temporary data structure by the\n * ContentBlocksBuilder class.\n */\n\n/**\n * ContentBlocksBuilder builds a list of ContentBlocks and an Entity Map\n * out of one (or several) HTMLElement(s).\n *\n * The algorithm has two passes: first it builds a tree of ContentBlockConfigs\n * by walking through the HTML nodes and their children, then it walks the\n * ContentBlockConfigs tree to compute parents/siblings and create\n * the actual ContentBlocks.\n *\n * Typical usage is:\n * new ContentBlocksBuilder()\n * .addDOMNode(someHTMLNode)\n * .addDOMNode(someOtherHTMLNode)\n * .getContentBlocks();\n *\n */\n\n\nvar ContentBlocksBuilder = /*#__PURE__*/function () {\n // Most of the method in the class depend on the state of the content builder\n // (i.e. currentBlockType, currentDepth, currentEntity etc.). Though it may\n // be confusing at first, it made the code simpler than the alternative which\n // is to pass those values around in every call.\n // The following attributes are used to accumulate text and styles\n // as we are walking the HTML node tree.\n // Describes the future ContentState as a tree of content blocks\n // The content blocks generated from the blockConfigs\n // Entity map use to store links and images found in the HTML nodes\n // Map HTML tags to draftjs block types and disambiguation function\n function ContentBlocksBuilder(blockTypeMap, disambiguate) {\n _defineProperty(this, \"characterList\", List());\n\n _defineProperty(this, \"currentBlockType\", 'unstyled');\n\n _defineProperty(this, \"currentDepth\", 0);\n\n _defineProperty(this, \"currentEntity\", null);\n\n _defineProperty(this, \"currentText\", '');\n\n _defineProperty(this, \"wrapper\", null);\n\n _defineProperty(this, \"blockConfigs\", []);\n\n _defineProperty(this, \"contentBlocks\", []);\n\n _defineProperty(this, \"entityMap\", DraftEntity);\n\n _defineProperty(this, \"blockTypeMap\", void 0);\n\n _defineProperty(this, \"disambiguate\", void 0);\n\n this.clear();\n this.blockTypeMap = blockTypeMap;\n this.disambiguate = disambiguate;\n }\n /**\n * Clear the internal state of the ContentBlocksBuilder\n */\n\n\n var _proto = ContentBlocksBuilder.prototype;\n\n _proto.clear = function clear() {\n this.characterList = List();\n this.blockConfigs = [];\n this.currentBlockType = 'unstyled';\n this.currentDepth = 0;\n this.currentEntity = null;\n this.currentText = '';\n this.entityMap = DraftEntity;\n this.wrapper = null;\n this.contentBlocks = [];\n }\n /**\n * Add an HTMLElement to the ContentBlocksBuilder\n */\n ;\n\n _proto.addDOMNode = function addDOMNode(node) {\n var _this$blockConfigs;\n\n this.contentBlocks = [];\n this.currentDepth = 0; // Converts the HTML node to block config\n\n (_this$blockConfigs = this.blockConfigs).push.apply(_this$blockConfigs, this._toBlockConfigs([node], OrderedSet())); // There might be some left over text in the builder's\n // internal state, if so make a ContentBlock out of it.\n\n\n this._trimCurrentText();\n\n if (this.currentText !== '') {\n this.blockConfigs.push(this._makeBlockConfig());\n } // for chaining\n\n\n return this;\n }\n /**\n * Return the ContentBlocks and the EntityMap that corresponds\n * to the previously added HTML nodes.\n */\n ;\n\n _proto.getContentBlocks = function getContentBlocks() {\n if (this.contentBlocks.length === 0) {\n if (experimentalTreeDataSupport) {\n this._toContentBlocks(this.blockConfigs);\n } else {\n this._toFlatContentBlocks(this.blockConfigs);\n }\n }\n\n return {\n contentBlocks: this.contentBlocks,\n entityMap: this.entityMap\n };\n } // ***********************************WARNING******************************\n // The methods below this line are private - don't call them directly.\n\n /**\n * Generate a new ContentBlockConfig out of the current internal state\n * of the builder, then clears the internal state.\n */\n ;\n\n _proto._makeBlockConfig = function _makeBlockConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = config.key || generateRandomKey();\n\n var block = _objectSpread({\n key: key,\n type: this.currentBlockType,\n text: this.currentText,\n characterList: this.characterList,\n depth: this.currentDepth,\n parent: null,\n children: List(),\n prevSibling: null,\n nextSibling: null,\n childConfigs: []\n }, config);\n\n this.characterList = List();\n this.currentBlockType = 'unstyled';\n this.currentText = '';\n return block;\n }\n /**\n * Converts an array of HTML elements to a multi-root tree of content\n * block configs. Some text content may be left in the builders internal\n * state to enable chaining sucessive calls.\n */\n ;\n\n _proto._toBlockConfigs = function _toBlockConfigs(nodes, style) {\n var blockConfigs = [];\n\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var nodeName = node.nodeName.toLowerCase();\n\n if (nodeName === 'body' || isListNode(nodeName)) {\n // body, ol and ul are 'block' type nodes so create a block config\n // with the text accumulated so far (if any)\n this._trimCurrentText();\n\n if (this.currentText !== '') {\n blockConfigs.push(this._makeBlockConfig());\n } // body, ol and ul nodes are ignored, but their children are inlined in\n // the parent block config.\n\n\n var wasCurrentDepth = this.currentDepth;\n var wasWrapper = this.wrapper;\n\n if (isListNode(nodeName)) {\n this.wrapper = nodeName;\n\n if (isListNode(wasWrapper)) {\n this.currentDepth++;\n }\n }\n\n blockConfigs.push.apply(blockConfigs, this._toBlockConfigs(Array.from(node.childNodes), style));\n this.currentDepth = wasCurrentDepth;\n this.wrapper = wasWrapper;\n continue;\n }\n\n var blockType = this.blockTypeMap.get(nodeName);\n\n if (blockType !== undefined) {\n // 'block' type node means we need to create a block config\n // with the text accumulated so far (if any)\n this._trimCurrentText();\n\n if (this.currentText !== '') {\n blockConfigs.push(this._makeBlockConfig());\n }\n\n var _wasCurrentDepth = this.currentDepth;\n var _wasWrapper = this.wrapper;\n this.wrapper = nodeName === 'pre' ? 'pre' : this.wrapper;\n\n if (typeof blockType !== 'string') {\n blockType = this.disambiguate(nodeName, this.wrapper) || blockType[0] || 'unstyled';\n }\n\n if (!experimentalTreeDataSupport && isHTMLElement(node) && (blockType === 'unordered-list-item' || blockType === 'ordered-list-item')) {\n var htmlElement = node;\n this.currentDepth = getListItemDepth(htmlElement, this.currentDepth);\n }\n\n var key = generateRandomKey();\n\n var childConfigs = this._toBlockConfigs(Array.from(node.childNodes), style);\n\n this._trimCurrentText();\n\n blockConfigs.push(this._makeBlockConfig({\n key: key,\n childConfigs: childConfigs,\n type: blockType\n }));\n this.currentDepth = _wasCurrentDepth;\n this.wrapper = _wasWrapper;\n continue;\n }\n\n if (nodeName === '#text') {\n this._addTextNode(node, style);\n\n continue;\n }\n\n if (nodeName === 'br') {\n this._addBreakNode(node, style);\n\n continue;\n }\n\n if (isValidImage(node)) {\n this._addImgNode(node, style);\n\n continue;\n }\n\n if (isValidAnchor(node)) {\n this._addAnchorNode(node, blockConfigs, style);\n\n continue;\n }\n\n var newStyle = style;\n\n if (HTMLTagToRawInlineStyleMap.has(nodeName)) {\n newStyle = newStyle.add(HTMLTagToRawInlineStyleMap.get(nodeName));\n }\n\n newStyle = styleFromNodeAttributes(node, newStyle);\n var inlineStyle = detectInlineStyle(node);\n\n if (inlineStyle != null) {\n newStyle = newStyle.add(inlineStyle);\n }\n\n blockConfigs.push.apply(blockConfigs, this._toBlockConfigs(Array.from(node.childNodes), newStyle));\n }\n\n return blockConfigs;\n }\n /**\n * Append a string of text to the internal buffer.\n */\n ;\n\n _proto._appendText = function _appendText(text, style) {\n var _this$characterList;\n\n this.currentText += text;\n var characterMetadata = CharacterMetadata.create({\n style: style,\n entity: this.currentEntity\n });\n this.characterList = (_this$characterList = this.characterList).push.apply(_this$characterList, Array(text.length).fill(characterMetadata));\n }\n /**\n * Trim the text in the internal buffer.\n */\n ;\n\n _proto._trimCurrentText = function _trimCurrentText() {\n var l = this.currentText.length;\n var begin = l - this.currentText.trimLeft().length;\n var end = this.currentText.trimRight().length; // We should not trim whitespaces for which an entity is defined.\n\n var entity = this.characterList.findEntry(function (characterMetadata) {\n return characterMetadata.getEntity() !== null;\n });\n begin = entity !== undefined ? Math.min(begin, entity[0]) : begin;\n entity = this.characterList.reverse().findEntry(function (characterMetadata) {\n return characterMetadata.getEntity() !== null;\n });\n end = entity !== undefined ? Math.max(end, l - entity[0]) : end;\n\n if (begin > end) {\n this.currentText = '';\n this.characterList = List();\n } else {\n this.currentText = this.currentText.slice(begin, end);\n this.characterList = this.characterList.slice(begin, end);\n }\n }\n /**\n * Add the content of an HTML text node to the internal state\n */\n ;\n\n _proto._addTextNode = function _addTextNode(node, style) {\n var text = node.textContent;\n var trimmedText = text.trim(); // If we are not in a pre block and the trimmed content is empty,\n // normalize to a single space.\n\n if (trimmedText === '' && this.wrapper !== 'pre') {\n text = ' ';\n }\n\n if (this.wrapper !== 'pre') {\n // Trim leading line feed, which is invisible in HTML\n text = text.replace(REGEX_LEADING_LF, ''); // Can't use empty string because MSWord\n\n text = text.replace(REGEX_LF, SPACE);\n }\n\n this._appendText(text, style);\n };\n\n _proto._addBreakNode = function _addBreakNode(node, style) {\n if (!isHTMLBRElement(node)) {\n return;\n }\n\n this._appendText('\\n', style);\n }\n /**\n * Add the content of an HTML img node to the internal state\n */\n ;\n\n _proto._addImgNode = function _addImgNode(node, style) {\n if (!isHTMLImageElement(node)) {\n return;\n }\n\n var image = node;\n var entityConfig = {};\n imgAttr.forEach(function (attr) {\n var imageAttribute = image.getAttribute(attr);\n\n if (imageAttribute) {\n entityConfig[attr] = imageAttribute;\n }\n }); // TODO: T15530363 update this when we remove DraftEntity entirely\n\n this.currentEntity = this.entityMap.__create('IMAGE', 'IMMUTABLE', entityConfig); // The child text node cannot just have a space or return as content (since\n // we strip those out), unless the image is for presentation only.\n // See https://github.com/facebook/draft-js/issues/231 for some context.\n\n if (gkx('draftjs_fix_paste_for_img')) {\n if (image.getAttribute('role') !== 'presentation') {\n this._appendText(\"\\uD83D\\uDCF7\", style);\n }\n } else {\n this._appendText(\"\\uD83D\\uDCF7\", style);\n }\n\n this.currentEntity = null;\n }\n /**\n * Add the content of an HTML 'a' node to the internal state. Child nodes\n * (if any) are converted to Block Configs and appended to the provided\n * blockConfig array.\n */\n ;\n\n _proto._addAnchorNode = function _addAnchorNode(node, blockConfigs, style) {\n // The check has already been made by isValidAnchor but\n // we have to do it again to keep flow happy.\n if (!isHTMLAnchorElement(node)) {\n return;\n }\n\n var anchor = node;\n var entityConfig = {};\n anchorAttr.forEach(function (attr) {\n var anchorAttribute = anchor.getAttribute(attr);\n\n if (anchorAttribute) {\n entityConfig[attr] = anchorAttribute;\n }\n });\n entityConfig.url = new URI(anchor.href).toString(); // TODO: T15530363 update this when we remove DraftEntity completely\n\n this.currentEntity = this.entityMap.__create('LINK', 'MUTABLE', entityConfig || {});\n blockConfigs.push.apply(blockConfigs, this._toBlockConfigs(Array.from(node.childNodes), style));\n this.currentEntity = null;\n }\n /**\n * Walk the BlockConfig tree, compute parent/children/siblings,\n * and generate the corresponding ContentBlockNode\n */\n ;\n\n _proto._toContentBlocks = function _toContentBlocks(blockConfigs) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var l = blockConfigs.length - 1;\n\n for (var i = 0; i <= l; i++) {\n var config = blockConfigs[i];\n config.parent = parent;\n config.prevSibling = i > 0 ? blockConfigs[i - 1].key : null;\n config.nextSibling = i < l ? blockConfigs[i + 1].key : null;\n config.children = List(config.childConfigs.map(function (child) {\n return child.key;\n }));\n this.contentBlocks.push(new ContentBlockNode(_objectSpread({}, config)));\n\n this._toContentBlocks(config.childConfigs, config.key);\n }\n }\n /**\n * Remove 'useless' container nodes from the block config hierarchy, by\n * replacing them with their children.\n */\n ;\n\n _proto._hoistContainersInBlockConfigs = function _hoistContainersInBlockConfigs(blockConfigs) {\n var _this = this;\n\n var hoisted = List(blockConfigs).flatMap(function (blockConfig) {\n // Don't mess with useful blocks\n if (blockConfig.type !== 'unstyled' || blockConfig.text !== '') {\n return [blockConfig];\n }\n\n return _this._hoistContainersInBlockConfigs(blockConfig.childConfigs);\n });\n return hoisted;\n } // ***********************************************************************\n // The two methods below are used for backward compatibility when\n // experimentalTreeDataSupport is disabled.\n\n /**\n * Same as _toContentBlocks but replaces nested blocks by their\n * text content.\n */\n ;\n\n _proto._toFlatContentBlocks = function _toFlatContentBlocks(blockConfigs) {\n var _this2 = this;\n\n var cleanConfigs = this._hoistContainersInBlockConfigs(blockConfigs);\n\n cleanConfigs.forEach(function (config) {\n var _this2$_extractTextFr = _this2._extractTextFromBlockConfigs(config.childConfigs),\n text = _this2$_extractTextFr.text,\n characterList = _this2$_extractTextFr.characterList;\n\n _this2.contentBlocks.push(new ContentBlock(_objectSpread({}, config, {\n text: config.text + text,\n characterList: config.characterList.concat(characterList)\n })));\n });\n }\n /**\n * Extract the text and the associated inline styles form an\n * array of content block configs.\n */\n ;\n\n _proto._extractTextFromBlockConfigs = function _extractTextFromBlockConfigs(blockConfigs) {\n var l = blockConfigs.length - 1;\n var text = '';\n var characterList = List();\n\n for (var i = 0; i <= l; i++) {\n var config = blockConfigs[i];\n text += config.text;\n characterList = characterList.concat(config.characterList);\n\n if (text !== '' && config.type !== 'unstyled') {\n text += '\\n';\n characterList = characterList.push(characterList.last());\n }\n\n var children = this._extractTextFromBlockConfigs(config.childConfigs);\n\n text += children.text;\n characterList = characterList.concat(children.characterList);\n }\n\n return {\n text: text,\n characterList: characterList\n };\n };\n\n return ContentBlocksBuilder;\n}();\n/**\n * Converts an HTML string to an array of ContentBlocks and an EntityMap\n * suitable to initialize the internal state of a Draftjs component.\n */\n\n\nvar convertFromHTMLToContentBlocks = function convertFromHTMLToContentBlocks(html) {\n var DOMBuilder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getSafeBodyFromHTML;\n var blockRenderMap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DefaultDraftBlockRenderMap; // Be ABSOLUTELY SURE that the dom builder you pass here won't execute\n // arbitrary code in whatever environment you're running this in. For an\n // example of how we try to do this in-browser, see getSafeBodyFromHTML.\n // Remove funky characters from the HTML string\n\n html = html.trim().replace(REGEX_CR, '').replace(REGEX_NBSP, SPACE).replace(REGEX_CARRIAGE, '').replace(REGEX_ZWS, ''); // Build a DOM tree out of the HTML string\n\n var safeBody = DOMBuilder(html);\n\n if (!safeBody) {\n return null;\n } // Build a BlockTypeMap out of the BlockRenderMap\n\n\n var blockTypeMap = buildBlockTypeMap(blockRenderMap); // Select the proper block type for the cases where the blockRenderMap\n // uses multiple block types for the same html tag.\n\n var disambiguate = function disambiguate(tag, wrapper) {\n if (tag === 'li') {\n return wrapper === 'ol' ? 'ordered-list-item' : 'unordered-list-item';\n }\n\n return null;\n };\n\n return new ContentBlocksBuilder(blockTypeMap, disambiguate).addDOMNode(safeBody).getContentBlocks();\n};\n\nmodule.exports = convertFromHTMLToContentBlocks;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction _objectSpread(target) {\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\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\nvar ContentBlock = require(\"./ContentBlock\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar ContentState = require(\"./ContentState\");\n\nvar DraftEntity = require(\"./DraftEntity\");\n\nvar DraftTreeAdapter = require(\"./DraftTreeAdapter\");\n\nvar DraftTreeInvariants = require(\"./DraftTreeInvariants\");\n\nvar SelectionState = require(\"./SelectionState\");\n\nvar createCharacterList = require(\"./createCharacterList\");\n\nvar decodeEntityRanges = require(\"./decodeEntityRanges\");\n\nvar decodeInlineStyleRanges = require(\"./decodeInlineStyleRanges\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar gkx = require(\"./gkx\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\nvar List = Immutable.List,\n Map = Immutable.Map,\n OrderedMap = Immutable.OrderedMap;\n\nvar decodeBlockNodeConfig = function decodeBlockNodeConfig(block, entityMap) {\n var key = block.key,\n type = block.type,\n data = block.data,\n text = block.text,\n depth = block.depth;\n var blockNodeConfig = {\n text: text,\n depth: depth || 0,\n type: type || 'unstyled',\n key: key || generateRandomKey(),\n data: Map(data),\n characterList: decodeCharacterList(block, entityMap)\n };\n return blockNodeConfig;\n};\n\nvar decodeCharacterList = function decodeCharacterList(block, entityMap) {\n var text = block.text,\n rawEntityRanges = block.entityRanges,\n rawInlineStyleRanges = block.inlineStyleRanges;\n var entityRanges = rawEntityRanges || [];\n var inlineStyleRanges = rawInlineStyleRanges || []; // Translate entity range keys to the DraftEntity map.\n\n return createCharacterList(decodeInlineStyleRanges(text, inlineStyleRanges), decodeEntityRanges(text, entityRanges.filter(function (range) {\n return entityMap.hasOwnProperty(range.key);\n }).map(function (range) {\n return _objectSpread({}, range, {\n key: entityMap[range.key]\n });\n })));\n};\n\nvar addKeyIfMissing = function addKeyIfMissing(block) {\n return _objectSpread({}, block, {\n key: block.key || generateRandomKey()\n });\n};\n/**\n * Node stack is responsible to ensure we traverse the tree only once\n * in depth order, while also providing parent refs to inner nodes to\n * construct their links.\n */\n\n\nvar updateNodeStack = function updateNodeStack(stack, nodes, parentRef) {\n var nodesWithParentRef = nodes.map(function (block) {\n return _objectSpread({}, block, {\n parentRef: parentRef\n });\n }); // since we pop nodes from the stack we need to insert them in reverse\n\n return stack.concat(nodesWithParentRef.reverse());\n};\n/**\n * This will build a tree draft content state by creating the node\n * reference links into a single tree walk. Each node has a link\n * reference to \"parent\", \"children\", \"nextSibling\" and \"prevSibling\"\n * blockMap will be created using depth ordering.\n */\n\n\nvar decodeContentBlockNodes = function decodeContentBlockNodes(blocks, entityMap) {\n return blocks // ensure children have valid keys to enable sibling links\n .map(addKeyIfMissing).reduce(function (blockMap, block, index) {\n !Array.isArray(block.children) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'invalid RawDraftContentBlock can not be converted to ContentBlockNode') : invariant(false) : void 0; // ensure children have valid keys to enable sibling links\n\n var children = block.children.map(addKeyIfMissing); // root level nodes\n\n var contentBlockNode = new ContentBlockNode(_objectSpread({}, decodeBlockNodeConfig(block, entityMap), {\n prevSibling: index === 0 ? null : blocks[index - 1].key,\n nextSibling: index === blocks.length - 1 ? null : blocks[index + 1].key,\n children: List(children.map(function (child) {\n return child.key;\n }))\n })); // push root node to blockMap\n\n blockMap = blockMap.set(contentBlockNode.getKey(), contentBlockNode); // this stack is used to ensure we visit all nodes respecting depth ordering\n\n var stack = updateNodeStack([], children, contentBlockNode); // start computing children nodes\n\n while (stack.length > 0) {\n // we pop from the stack and start processing this node\n var node = stack.pop(); // parentRef already points to a converted ContentBlockNode\n\n var parentRef = node.parentRef;\n var siblings = parentRef.getChildKeys();\n\n var _index = siblings.indexOf(node.key);\n\n var isValidBlock = Array.isArray(node.children);\n\n if (!isValidBlock) {\n !isValidBlock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'invalid RawDraftContentBlock can not be converted to ContentBlockNode') : invariant(false) : void 0;\n break;\n } // ensure children have valid keys to enable sibling links\n\n\n var _children = node.children.map(addKeyIfMissing);\n\n var _contentBlockNode = new ContentBlockNode(_objectSpread({}, decodeBlockNodeConfig(node, entityMap), {\n parent: parentRef.getKey(),\n children: List(_children.map(function (child) {\n return child.key;\n })),\n prevSibling: _index === 0 ? null : siblings.get(_index - 1),\n nextSibling: _index === siblings.size - 1 ? null : siblings.get(_index + 1)\n })); // push node to blockMap\n\n\n blockMap = blockMap.set(_contentBlockNode.getKey(), _contentBlockNode); // this stack is used to ensure we visit all nodes respecting depth ordering\n\n stack = updateNodeStack(stack, _children, _contentBlockNode);\n }\n\n return blockMap;\n }, OrderedMap());\n};\n\nvar decodeContentBlocks = function decodeContentBlocks(blocks, entityMap) {\n return OrderedMap(blocks.map(function (block) {\n var contentBlock = new ContentBlock(decodeBlockNodeConfig(block, entityMap));\n return [contentBlock.getKey(), contentBlock];\n }));\n};\n\nvar decodeRawBlocks = function decodeRawBlocks(rawState, entityMap) {\n var isTreeRawBlock = rawState.blocks.find(function (block) {\n return Array.isArray(block.children) && block.children.length > 0;\n });\n var rawBlocks = experimentalTreeDataSupport && !isTreeRawBlock ? DraftTreeAdapter.fromRawStateToRawTreeState(rawState).blocks : rawState.blocks;\n\n if (!experimentalTreeDataSupport) {\n return decodeContentBlocks(isTreeRawBlock ? DraftTreeAdapter.fromRawTreeStateToRawState(rawState).blocks : rawBlocks, entityMap);\n }\n\n var blockMap = decodeContentBlockNodes(rawBlocks, entityMap); // in dev mode, check that the tree invariants are met\n\n if (process.env.NODE_ENV !== \"production\") {\n !DraftTreeInvariants.isValidTree(blockMap) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should be a valid tree') : invariant(false) : void 0;\n }\n\n return blockMap;\n};\n\nvar decodeRawEntityMap = function decodeRawEntityMap(rawState) {\n var rawEntityMap = rawState.entityMap;\n var entityMap = {}; // TODO: Update this once we completely remove DraftEntity\n\n Object.keys(rawEntityMap).forEach(function (rawEntityKey) {\n var _rawEntityMap$rawEnti = rawEntityMap[rawEntityKey],\n type = _rawEntityMap$rawEnti.type,\n mutability = _rawEntityMap$rawEnti.mutability,\n data = _rawEntityMap$rawEnti.data; // get the key reference to created entity\n\n entityMap[rawEntityKey] = DraftEntity.__create(type, mutability, data || {});\n });\n return entityMap;\n};\n\nvar convertFromRawToDraftState = function convertFromRawToDraftState(rawState) {\n !Array.isArray(rawState.blocks) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'invalid RawDraftContentState') : invariant(false) : void 0; // decode entities\n\n var entityMap = decodeRawEntityMap(rawState); // decode blockMap\n\n var blockMap = decodeRawBlocks(rawState, entityMap); // create initial selection\n\n var selectionState = blockMap.isEmpty() ? new SelectionState() : SelectionState.createEmpty(blockMap.first().getKey());\n return new ContentState({\n blockMap: blockMap,\n entityMap: entityMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n};\n\nmodule.exports = convertFromRawToDraftState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List;\n\nfunction createCharacterList(inlineStyles, entities) {\n var characterArray = inlineStyles.map(function (style, ii) {\n var entity = entities[ii];\n return CharacterMetadata.create({\n style: style,\n entity: entity\n });\n });\n return List(characterArray);\n}\n\nmodule.exports = createCharacterList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar substr = UnicodeUtils.substr;\n/**\n * Convert to native JavaScript string lengths to determine ranges.\n */\n\nfunction decodeEntityRanges(text, ranges) {\n var entities = Array(text.length).fill(null);\n\n if (ranges) {\n ranges.forEach(function (range) {\n // Using Unicode-enabled substrings converted to JavaScript lengths,\n // fill the output array with entity keys.\n var start = substr(text, 0, range.offset).length;\n var end = start + substr(text, range.offset, range.length).length;\n\n for (var ii = start; ii < end; ii++) {\n entities[ii] = range.key;\n }\n });\n }\n\n return entities;\n}\n\nmodule.exports = decodeEntityRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar _require = require(\"immutable\"),\n OrderedSet = _require.OrderedSet;\n\nvar substr = UnicodeUtils.substr;\nvar EMPTY_SET = OrderedSet();\n/**\n * Convert to native JavaScript string lengths to determine ranges.\n */\n\nfunction decodeInlineStyleRanges(text, ranges) {\n var styles = Array(text.length).fill(EMPTY_SET);\n\n if (ranges) {\n ranges.forEach(function (range) {\n var cursor = substr(text, 0, range.offset).length;\n var end = cursor + substr(text, range.offset, range.length).length;\n\n while (cursor < end) {\n styles[cursor] = styles[cursor].add(range.style);\n cursor++;\n }\n });\n }\n\n return styles;\n}\n\nmodule.exports = decodeInlineStyleRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Provides utilities for handling draftjs keys.\n *\n * @emails oncall+draft_js\n * \n * @format\n */\n'use strict';\n\nfunction notEmptyKey(key) {\n return key != null && key != '';\n}\n\nmodule.exports = {\n notEmptyKey: notEmptyKey\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar getEntityKeyForSelection = require(\"./getEntityKeyForSelection\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar isSelectionAtLeafStart = require(\"./isSelectionAtLeafStart\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar setImmediate = require(\"fbjs/lib/setImmediate\"); // When nothing is focused, Firefox regards two characters, `'` and `/`, as\n// commands that should open and focus the \"quickfind\" search bar. This should\n// *never* happen while a contenteditable is focused, but as of v28, it\n// sometimes does, even when the keypress event target is the contenteditable.\n// This breaks the input. Special case these characters to ensure that when\n// they are typed, we prevent default on the event to make sure not to\n// trigger quickfind.\n\n\nvar FF_QUICKFIND_CHAR = \"'\";\nvar FF_QUICKFIND_LINK_CHAR = '/';\nvar isFirefox = UserAgent.isBrowser('Firefox');\n\nfunction mustPreventDefaultForCharacter(character) {\n return isFirefox && (character == FF_QUICKFIND_CHAR || character == FF_QUICKFIND_LINK_CHAR);\n}\n/**\n * Replace the current selection with the specified text string, with the\n * inline style and entity key applied to the newly inserted text.\n */\n\n\nfunction replaceText(editorState, text, inlineStyle, entityKey, forceSelection) {\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), text, inlineStyle, entityKey);\n return EditorState.push(editorState, contentState, 'insert-characters', forceSelection);\n}\n/**\n * When `onBeforeInput` executes, the browser is attempting to insert a\n * character into the editor. Apply this character data to the document,\n * allowing native insertion if possible.\n *\n * Native insertion is encouraged in order to limit re-rendering and to\n * preserve spellcheck highlighting, which disappears or flashes if re-render\n * occurs on the relevant text nodes.\n */\n\n\nfunction editOnBeforeInput(editor, e) {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n }\n\n var editorState = editor._latestEditorState;\n var chars = e.data; // In some cases (ex: IE ideographic space insertion) no character data\n // is provided. There's nothing to do when this happens.\n\n if (!chars) {\n return;\n } // Allow the top-level component to handle the insertion manually. This is\n // useful when triggering interesting behaviors for a character insertion,\n // Simple examples: replacing a raw text ':)' with a smile emoji or image\n // decorator, or setting a block to be a list item after typing '- ' at the\n // start of the block.\n\n\n if (editor.props.handleBeforeInput && isEventHandled(editor.props.handleBeforeInput(chars, editorState, e.timeStamp))) {\n e.preventDefault();\n return;\n } // If selection is collapsed, conditionally allow native behavior. This\n // reduces re-renders and preserves spellcheck highlighting. If the selection\n // is not collapsed, we will re-render.\n\n\n var selection = editorState.getSelection();\n var selectionStart = selection.getStartOffset();\n var anchorKey = selection.getAnchorKey();\n\n if (!selection.isCollapsed()) {\n e.preventDefault();\n editor.update(replaceText(editorState, chars, editorState.getCurrentInlineStyle(), getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection()), true));\n return;\n }\n\n var newEditorState = replaceText(editorState, chars, editorState.getCurrentInlineStyle(), getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection()), false); // Bunch of different cases follow where we need to prevent native insertion.\n\n var mustPreventNative = false;\n\n if (!mustPreventNative) {\n // Browsers tend to insert text in weird places in the DOM when typing at\n // the start of a leaf, so we'll handle it ourselves.\n mustPreventNative = isSelectionAtLeafStart(editor._latestCommittedEditorState);\n }\n\n if (!mustPreventNative) {\n // Let's say we have a decorator that highlights hashtags. In many cases\n // we need to prevent native behavior and rerender ourselves --\n // particularly, any case *except* where the inserted characters end up\n // anywhere except exactly where you put them.\n //\n // Using [] to denote a decorated leaf, some examples:\n //\n // 1. 'hi #' and append 'f'\n // desired rendering: 'hi [#f]'\n // native rendering would be: 'hi #f' (incorrect)\n //\n // 2. 'x [#foo]' and insert '#' before 'f'\n // desired rendering: 'x #[#foo]'\n // native rendering would be: 'x [##foo]' (incorrect)\n //\n // 3. '[#foobar]' and insert ' ' between 'foo' and 'bar'\n // desired rendering: '[#foo] bar'\n // native rendering would be: '[#foo bar]' (incorrect)\n //\n // 4. '[#foo]' and delete '#' [won't use this beforeinput codepath though]\n // desired rendering: 'foo'\n // native rendering would be: '[foo]' (incorrect)\n //\n // 5. '[#foo]' and append 'b'\n // desired rendering: '[#foob]'\n // native rendering would be: '[#foob]'\n // (native insertion here would be ok for decorators like simple spans,\n // but not more complex decorators. To be safe, we need to prevent it.)\n //\n // It is safe to allow native insertion if and only if the full list of\n // decorator ranges matches what we expect native insertion to give, and\n // the range lengths have not changed. We don't need to compare the content\n // because the only possible mutation to consider here is inserting plain\n // text and decorators can't affect text content.\n var oldBlockTree = editorState.getBlockTree(anchorKey);\n var newBlockTree = newEditorState.getBlockTree(anchorKey);\n mustPreventNative = oldBlockTree.size !== newBlockTree.size || oldBlockTree.zip(newBlockTree).some(function (_ref) {\n var oldLeafSet = _ref[0],\n newLeafSet = _ref[1]; // selectionStart is guaranteed to be selectionEnd here\n\n var oldStart = oldLeafSet.get('start');\n var adjustedStart = oldStart + (oldStart >= selectionStart ? chars.length : 0);\n var oldEnd = oldLeafSet.get('end');\n var adjustedEnd = oldEnd + (oldEnd >= selectionStart ? chars.length : 0);\n var newStart = newLeafSet.get('start');\n var newEnd = newLeafSet.get('end');\n var newDecoratorKey = newLeafSet.get('decoratorKey');\n return (// Different decorators\n oldLeafSet.get('decoratorKey') !== newDecoratorKey || // Different number of inline styles\n oldLeafSet.get('leaves').size !== newLeafSet.get('leaves').size || // Different effective decorator position\n adjustedStart !== newStart || adjustedEnd !== newEnd || // Decorator already existed and its length changed\n newDecoratorKey != null && newEnd - newStart !== oldEnd - oldStart\n );\n });\n }\n\n if (!mustPreventNative) {\n mustPreventNative = mustPreventDefaultForCharacter(chars);\n }\n\n if (!mustPreventNative) {\n mustPreventNative = nullthrows(newEditorState.getDirectionMap()).get(anchorKey) !== nullthrows(editorState.getDirectionMap()).get(anchorKey);\n }\n\n if (mustPreventNative) {\n e.preventDefault();\n newEditorState = EditorState.set(newEditorState, {\n forceSelection: true\n });\n editor.update(newEditorState);\n return;\n } // We made it all the way! Let the browser do its thing and insert the char.\n\n\n newEditorState = EditorState.set(newEditorState, {\n nativelyRenderedContent: newEditorState.getCurrentContent()\n }); // The native event is allowed to occur. To allow user onChange handlers to\n // change the inserted text, we wait until the text is actually inserted\n // before we actually update our state. That way when we rerender, the text\n // we see in the DOM will already have been inserted properly.\n\n editor._pendingStateFromBeforeInput = newEditorState;\n setImmediate(function () {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n }\n });\n}\n\nmodule.exports = editOnBeforeInput;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nvar containsNode = require(\"fbjs/lib/containsNode\");\n\nvar getActiveElement = require(\"fbjs/lib/getActiveElement\");\n\nfunction editOnBlur(editor, e) {\n // In a contentEditable element, when you select a range and then click\n // another active element, this does trigger a `blur` event but will not\n // remove the DOM selection from the contenteditable.\n // This is consistent across all browsers, but we prefer that the editor\n // behave like a textarea, where a `blur` event clears the DOM selection.\n // We therefore force the issue to be certain, checking whether the active\n // element is `body` to force it when blurring occurs within the window (as\n // opposed to clicking to another tab or window).\n var ownerDocument = e.currentTarget.ownerDocument;\n\n if ( // This ESLint rule conflicts with `sketchy-null-bool` flow check\n // eslint-disable-next-line no-extra-boolean-cast\n !Boolean(editor.props.preserveSelectionOnBlur) && getActiveElement(ownerDocument) === ownerDocument.body) {\n var _selection = ownerDocument.defaultView.getSelection();\n\n var editorNode = editor.editor;\n\n if (_selection.rangeCount === 1 && containsNode(editorNode, _selection.anchorNode) && containsNode(editorNode, _selection.focusNode)) {\n _selection.removeAllRanges();\n }\n }\n\n var editorState = editor._latestEditorState;\n var currentSelection = editorState.getSelection();\n\n if (!currentSelection.getHasFocus()) {\n return;\n }\n\n var selection = currentSelection.set('hasFocus', false);\n editor.props.onBlur && editor.props.onBlur(e);\n editor.update(EditorState.acceptSelection(editorState, selection));\n}\n\nmodule.exports = editOnBlur;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n/**\n * The user has begun using an IME input system. Switching to `composite` mode\n * allows handling composition input and disables other edit behavior.\n */\n\n\nfunction editOnCompositionStart(editor, e) {\n editor.setMode('composite');\n editor.update(EditorState.set(editor._latestEditorState, {\n inCompositionMode: true\n })); // Allow composition handler to interpret the compositionstart event\n\n editor._onCompositionStart(e);\n}\n\nmodule.exports = editOnCompositionStart;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getFragmentFromSelection = require(\"./getFragmentFromSelection\");\n/**\n * If we have a selection, create a ContentState fragment and store\n * it in our internal clipboard. Subsequent paste events will use this\n * fragment if no external clipboard data is supplied.\n */\n\n\nfunction editOnCopy(editor, e) {\n var editorState = editor._latestEditorState;\n var selection = editorState.getSelection(); // No selection, so there's nothing to copy.\n\n if (selection.isCollapsed()) {\n e.preventDefault();\n return;\n }\n\n editor.setClipboard(getFragmentFromSelection(editor._latestEditorState));\n}\n\nmodule.exports = editOnCopy;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar Style = require(\"fbjs/lib/Style\");\n\nvar getFragmentFromSelection = require(\"./getFragmentFromSelection\");\n\nvar getScrollPosition = require(\"fbjs/lib/getScrollPosition\");\n\nvar isNode = require(\"./isInstanceOfNode\");\n/**\n * On `cut` events, native behavior is allowed to occur so that the system\n * clipboard is set properly. This means that we need to take steps to recover\n * the editor DOM state after the `cut` has occurred in order to maintain\n * control of the component.\n *\n * In addition, we can keep a copy of the removed fragment, including all\n * styles and entities, for use as an internal paste.\n */\n\n\nfunction editOnCut(editor, e) {\n var editorState = editor._latestEditorState;\n var selection = editorState.getSelection();\n var element = e.target;\n var scrollPosition; // No selection, so there's nothing to cut.\n\n if (selection.isCollapsed()) {\n e.preventDefault();\n return;\n } // Track the current scroll position so that it can be forced back in place\n // after the editor regains control of the DOM.\n\n\n if (isNode(element)) {\n var node = element;\n scrollPosition = getScrollPosition(Style.getScrollParent(node));\n }\n\n var fragment = getFragmentFromSelection(editorState);\n editor.setClipboard(fragment); // Set `cut` mode to disable all event handling temporarily.\n\n editor.setMode('cut'); // Let native `cut` behavior occur, then recover control.\n\n setTimeout(function () {\n editor.restoreEditorDOM(scrollPosition);\n editor.exitCurrentMode();\n editor.update(removeFragment(editorState));\n }, 0);\n}\n\nfunction removeFragment(editorState) {\n var newContent = DraftModifier.removeRange(editorState.getCurrentContent(), editorState.getSelection(), 'forward');\n return EditorState.push(editorState, newContent, 'remove-range');\n}\n\nmodule.exports = editOnCut;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * Drag behavior has begun from outside the editor element.\n */\n\nfunction editOnDragOver(editor, e) {\n editor.setMode('drag');\n e.preventDefault();\n}\n\nmodule.exports = editOnDragOver;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * A `dragstart` event has begun within the text editor component.\n */\n\nfunction editOnDragStart(editor) {\n editor._internalDrag = true;\n editor.setMode('drag');\n}\n\nmodule.exports = editOnDragStart;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nfunction editOnFocus(editor, e) {\n var editorState = editor._latestEditorState;\n var currentSelection = editorState.getSelection();\n\n if (currentSelection.getHasFocus()) {\n return;\n }\n\n var selection = currentSelection.set('hasFocus', true);\n editor.props.onFocus && editor.props.onFocus(e); // When the tab containing this text editor is hidden and the user does a\n // find-in-page in a _different_ tab, Chrome on Mac likes to forget what the\n // selection was right after sending this focus event and (if you let it)\n // moves the cursor back to the beginning of the editor, so we force the\n // selection here instead of simply accepting it in order to preserve the\n // old cursor position. See https://crbug.com/540004.\n // But it looks like this is fixed in Chrome 60.0.3081.0.\n // Other browsers also don't have this bug, so we prefer to acceptSelection\n // when possible, to ensure that unfocusing and refocusing a Draft editor\n // doesn't preserve the selection, matching how textareas work.\n\n if (UserAgent.isBrowser('Chrome < 60.0.3081.0')) {\n editor.update(EditorState.forceSelection(editorState, selection));\n } else {\n editor.update(EditorState.acceptSelection(editorState, selection));\n }\n}\n\nmodule.exports = editOnFocus;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar _require = require(\"./draftKeyUtils\"),\n notEmptyKey = _require.notEmptyKey;\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar keyCommandPlainBackspace = require(\"./keyCommandPlainBackspace\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nvar isGecko = UserAgent.isEngine('Gecko');\nvar DOUBLE_NEWLINE = '\\n\\n';\n\nfunction onInputType(inputType, editorState) {\n switch (inputType) {\n case 'deleteContentBackward':\n return keyCommandPlainBackspace(editorState);\n }\n\n return editorState;\n}\n/**\n * This function serves two purposes\n *\n * 1. To update the editorState and call onChange method with the new\n * editorState. This editorState is calculated in editOnBeforeInput but the\n * onChange method is not called with the new state until this method does it.\n * It is done to handle a specific case where certain character inputs might\n * be replaced with something else. E.g. snippets ('rc' might be replaced\n * with boilerplate code for react component). More information on the\n * exact problem can be found here -\n * https://github.com/facebook/draft-js/commit/07892ba479bd4dfc6afd1e0ed179aaf51cd138b1\n *\n * 2. intended to handle spellcheck and autocorrect changes,\n * which occur in the DOM natively without any opportunity to observe or\n * interpret the changes before they occur.\n *\n * The `input` event fires in contentEditable elements reliably for non-IE\n * browsers, immediately after changes occur to the editor DOM. Since our other\n * handlers override or otherwise handle cover other varieties of text input,\n * the DOM state should match the model in all controlled input cases. Thus,\n * when an `input` change leads to a DOM/model mismatch, the change should be\n * due to a spellcheck change, and we can incorporate it into our model.\n */\n\n\nfunction editOnInput(editor, e) {\n if (editor._pendingStateFromBeforeInput !== undefined) {\n editor.update(editor._pendingStateFromBeforeInput);\n editor._pendingStateFromBeforeInput = undefined;\n } // at this point editor is not null for sure (after input)\n\n\n var castedEditorElement = editor.editor;\n var domSelection = castedEditorElement.ownerDocument.defaultView.getSelection();\n var anchorNode = domSelection.anchorNode,\n isCollapsed = domSelection.isCollapsed;\n var isNotTextOrElementNode = (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) !== Node.TEXT_NODE && (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) !== Node.ELEMENT_NODE;\n\n if (anchorNode == null || isNotTextOrElementNode) {\n // TODO: (t16149272) figure out context for this change\n return;\n }\n\n if (anchorNode.nodeType === Node.TEXT_NODE && (anchorNode.previousSibling !== null || anchorNode.nextSibling !== null)) {\n // When typing at the beginning of a visual line, Chrome splits the text\n // nodes into two. Why? No one knows. This commit is suspicious:\n // https://chromium.googlesource.com/chromium/src/+/a3b600981286b135632371477f902214c55a1724\n // To work around, we'll merge the sibling text nodes back into this one.\n var span = anchorNode.parentNode;\n\n if (span == null) {\n // Handle null-parent case.\n return;\n }\n\n anchorNode.nodeValue = span.textContent;\n\n for (var child = span.firstChild; child != null; child = child.nextSibling) {\n if (child !== anchorNode) {\n span.removeChild(child);\n }\n }\n }\n\n var domText = anchorNode.textContent;\n var editorState = editor._latestEditorState;\n var offsetKey = nullthrows(findAncestorOffsetKey(anchorNode));\n\n var _DraftOffsetKey$decod = DraftOffsetKey.decode(offsetKey),\n blockKey = _DraftOffsetKey$decod.blockKey,\n decoratorKey = _DraftOffsetKey$decod.decoratorKey,\n leafKey = _DraftOffsetKey$decod.leafKey;\n\n var _editorState$getBlock = editorState.getBlockTree(blockKey).getIn([decoratorKey, 'leaves', leafKey]),\n start = _editorState$getBlock.start,\n end = _editorState$getBlock.end;\n\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(blockKey);\n var modelText = block.getText().slice(start, end); // Special-case soft newlines here. If the DOM text ends in a soft newline,\n // we will have manually inserted an extra soft newline in DraftEditorLeaf.\n // We want to remove this extra newline for the purpose of our comparison\n // of DOM and model text.\n\n if (domText.endsWith(DOUBLE_NEWLINE)) {\n domText = domText.slice(0, -1);\n } // No change -- the DOM is up to date. Nothing to do here.\n\n\n if (domText === modelText) {\n // This can be buggy for some Android keyboards because they don't fire\n // standard onkeydown/pressed events and only fired editOnInput\n // so domText is already changed by the browser and ends up being equal\n // to modelText unexpectedly.\n // Newest versions of Android support the dom-inputevent-inputtype\n // and we can use the `inputType` to properly apply the state changes.\n\n /* $FlowFixMe[prop-missing] inputType is only defined on a draft of a\n * standard. https://w3c.github.io/input-events/#dom-inputevent-inputtype\n */\n var inputType = e.nativeEvent.inputType;\n\n if (inputType) {\n var newEditorState = onInputType(inputType, editorState);\n\n if (newEditorState !== editorState) {\n editor.restoreEditorDOM();\n editor.update(newEditorState);\n return;\n }\n }\n\n return;\n }\n\n var selection = editorState.getSelection(); // We'll replace the entire leaf with the text content of the target.\n\n var targetRange = selection.merge({\n anchorOffset: start,\n focusOffset: end,\n isBackward: false\n });\n var entityKey = block.getEntityAt(start);\n var entity = notEmptyKey(entityKey) ? content.getEntity(entityKey) : null;\n var entityType = entity != null ? entity.getMutability() : null;\n var preserveEntity = entityType === 'MUTABLE'; // Immutable or segmented entities cannot properly be handled by the\n // default browser undo, so we have to use a different change type to\n // force using our internal undo method instead of falling through to the\n // native browser undo.\n\n var changeType = preserveEntity ? 'spellcheck-change' : 'apply-entity';\n var newContent = DraftModifier.replaceText(content, targetRange, domText, block.getInlineStyleAt(start), preserveEntity ? block.getEntityAt(start) : null);\n var anchorOffset, focusOffset, startOffset, endOffset;\n\n if (isGecko) {\n // Firefox selection does not change while the context menu is open, so\n // we preserve the anchor and focus values of the DOM selection.\n anchorOffset = domSelection.anchorOffset;\n focusOffset = domSelection.focusOffset;\n startOffset = start + Math.min(anchorOffset, focusOffset);\n endOffset = startOffset + Math.abs(anchorOffset - focusOffset);\n anchorOffset = startOffset;\n focusOffset = endOffset;\n } else {\n // Browsers other than Firefox may adjust DOM selection while the context\n // menu is open, and Safari autocorrect is prone to providing an inaccurate\n // DOM selection. Don't trust it. Instead, use our existing SelectionState\n // and adjust it based on the number of characters changed during the\n // mutation.\n var charDelta = domText.length - modelText.length;\n startOffset = selection.getStartOffset();\n endOffset = selection.getEndOffset();\n anchorOffset = isCollapsed ? endOffset + charDelta : startOffset;\n focusOffset = endOffset + charDelta;\n } // Segmented entities are completely or partially removed when their\n // text content changes. For this case we do not want any text to be selected\n // after the change, so we are not merging the selection.\n\n\n var contentWithAdjustedDOMSelection = newContent.merge({\n selectionBefore: content.getSelectionAfter(),\n selectionAfter: selection.merge({\n anchorOffset: anchorOffset,\n focusOffset: focusOffset\n })\n });\n editor.update(EditorState.push(editorState, contentWithAdjustedDOMSelection, changeType));\n}\n\nmodule.exports = editOnInput;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar KeyBindingUtil = require(\"./KeyBindingUtil\");\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nvar SecondaryClipboard = require(\"./SecondaryClipboard\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar keyCommandBackspaceToStartOfLine = require(\"./keyCommandBackspaceToStartOfLine\");\n\nvar keyCommandBackspaceWord = require(\"./keyCommandBackspaceWord\");\n\nvar keyCommandDeleteWord = require(\"./keyCommandDeleteWord\");\n\nvar keyCommandInsertNewline = require(\"./keyCommandInsertNewline\");\n\nvar keyCommandMoveSelectionToEndOfBlock = require(\"./keyCommandMoveSelectionToEndOfBlock\");\n\nvar keyCommandMoveSelectionToStartOfBlock = require(\"./keyCommandMoveSelectionToStartOfBlock\");\n\nvar keyCommandPlainBackspace = require(\"./keyCommandPlainBackspace\");\n\nvar keyCommandPlainDelete = require(\"./keyCommandPlainDelete\");\n\nvar keyCommandTransposeCharacters = require(\"./keyCommandTransposeCharacters\");\n\nvar keyCommandUndo = require(\"./keyCommandUndo\");\n\nvar isOptionKeyCommand = KeyBindingUtil.isOptionKeyCommand;\nvar isChrome = UserAgent.isBrowser('Chrome');\n/**\n * Map a `DraftEditorCommand` command value to a corresponding function.\n */\n\nfunction onKeyCommand(command, editorState, e) {\n switch (command) {\n case 'redo':\n return EditorState.redo(editorState);\n\n case 'delete':\n return keyCommandPlainDelete(editorState);\n\n case 'delete-word':\n return keyCommandDeleteWord(editorState);\n\n case 'backspace':\n return keyCommandPlainBackspace(editorState);\n\n case 'backspace-word':\n return keyCommandBackspaceWord(editorState);\n\n case 'backspace-to-start-of-line':\n return keyCommandBackspaceToStartOfLine(editorState, e);\n\n case 'split-block':\n return keyCommandInsertNewline(editorState);\n\n case 'transpose-characters':\n return keyCommandTransposeCharacters(editorState);\n\n case 'move-selection-to-start-of-block':\n return keyCommandMoveSelectionToStartOfBlock(editorState);\n\n case 'move-selection-to-end-of-block':\n return keyCommandMoveSelectionToEndOfBlock(editorState);\n\n case 'secondary-cut':\n return SecondaryClipboard.cut(editorState);\n\n case 'secondary-paste':\n return SecondaryClipboard.paste(editorState);\n\n default:\n return editorState;\n }\n}\n/**\n * Intercept keydown behavior to handle keys and commands manually, if desired.\n *\n * Keydown combinations may be mapped to `DraftCommand` values, which may\n * correspond to command functions that modify the editor or its contents.\n *\n * See `getDefaultKeyBinding` for defaults. Alternatively, the top-level\n * component may provide a custom mapping via the `keyBindingFn` prop.\n */\n\n\nfunction editOnKeyDown(editor, e) {\n var keyCode = e.which;\n var editorState = editor._latestEditorState;\n\n function callDeprecatedHandler(handlerName) {\n var deprecatedHandler = editor.props[handlerName];\n\n if (deprecatedHandler) {\n deprecatedHandler(e);\n return true;\n } else {\n return false;\n }\n }\n\n switch (keyCode) {\n case Keys.RETURN:\n e.preventDefault(); // The top-level component may manually handle newline insertion. If\n // no special handling is performed, fall through to command handling.\n\n if (editor.props.handleReturn && isEventHandled(editor.props.handleReturn(e, editorState))) {\n return;\n }\n\n break;\n\n case Keys.ESC:\n e.preventDefault();\n\n if (callDeprecatedHandler('onEscape')) {\n return;\n }\n\n break;\n\n case Keys.TAB:\n if (callDeprecatedHandler('onTab')) {\n return;\n }\n\n break;\n\n case Keys.UP:\n if (callDeprecatedHandler('onUpArrow')) {\n return;\n }\n\n break;\n\n case Keys.RIGHT:\n if (callDeprecatedHandler('onRightArrow')) {\n return;\n }\n\n break;\n\n case Keys.DOWN:\n if (callDeprecatedHandler('onDownArrow')) {\n return;\n }\n\n break;\n\n case Keys.LEFT:\n if (callDeprecatedHandler('onLeftArrow')) {\n return;\n }\n\n break;\n\n case Keys.SPACE:\n // Prevent Chrome on OSX behavior where option + space scrolls.\n if (isChrome && isOptionKeyCommand(e)) {\n e.preventDefault();\n }\n\n }\n\n var command = editor.props.keyBindingFn(e); // If no command is specified, allow keydown event to continue.\n\n if (command == null || command === '') {\n if (keyCode === Keys.SPACE && isChrome && isOptionKeyCommand(e)) {\n // The default keydown event has already been prevented in order to stop\n // Chrome from scrolling. Insert a nbsp into the editor as OSX would for\n // other browsers.\n var contentState = DraftModifier.replaceText(editorState.getCurrentContent(), editorState.getSelection(), \"\\xA0\");\n editor.update(EditorState.push(editorState, contentState, 'insert-characters'));\n }\n\n return;\n }\n\n if (command === 'undo') {\n // Since undo requires some special updating behavior to keep the editor\n // in sync, handle it separately.\n keyCommandUndo(e, editorState, editor.update);\n return;\n } // At this point, we know that we're handling a command of some kind, so\n // we don't want to insert a character following the keydown.\n\n\n e.preventDefault(); // Allow components higher up the tree to handle the command first.\n\n if (editor.props.handleKeyCommand && isEventHandled(editor.props.handleKeyCommand(command, editorState, e.timeStamp))) {\n return;\n }\n\n var newState = onKeyCommand(command, editorState, e);\n\n if (newState !== editorState) {\n editor.update(newState);\n }\n}\n\nmodule.exports = editOnKeyDown;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar DataTransfer = require(\"fbjs/lib/DataTransfer\");\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar DraftPasteProcessor = require(\"./DraftPasteProcessor\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar RichTextEditorUtil = require(\"./RichTextEditorUtil\");\n\nvar getEntityKeyForSelection = require(\"./getEntityKeyForSelection\");\n\nvar getTextContentFromFiles = require(\"./getTextContentFromFiles\");\n\nvar isEventHandled = require(\"./isEventHandled\");\n\nvar splitTextIntoTextBlocks = require(\"./splitTextIntoTextBlocks\");\n/**\n * Paste content.\n */\n\n\nfunction editOnPaste(editor, e) {\n e.preventDefault();\n var data = new DataTransfer(e.clipboardData); // Get files, unless this is likely to be a string the user wants inline.\n\n if (!data.isRichText()) {\n var files = data.getFiles();\n var defaultFileText = data.getText();\n\n if (files.length > 0) {\n // Allow customized paste handling for images, etc. Otherwise, fall\n // through to insert text contents into the editor.\n if (editor.props.handlePastedFiles && isEventHandled(editor.props.handlePastedFiles(files))) {\n return;\n }\n /* $FlowFixMe[incompatible-call] This comment suppresses an error found\n * DataTransfer was typed. getFiles() returns an array of , not Blob */\n\n\n getTextContentFromFiles(files, function (\n /*string*/\n fileText) {\n fileText = fileText || defaultFileText;\n\n if (!fileText) {\n return;\n }\n\n var editorState = editor._latestEditorState;\n var blocks = splitTextIntoTextBlocks(fileText);\n var character = CharacterMetadata.create({\n style: editorState.getCurrentInlineStyle(),\n entity: getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection())\n });\n var currentBlockType = RichTextEditorUtil.getCurrentBlockType(editorState);\n var text = DraftPasteProcessor.processText(blocks, character, currentBlockType);\n var fragment = BlockMapBuilder.createFromArray(text);\n var withInsertedText = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), fragment);\n editor.update(EditorState.push(editorState, withInsertedText, 'insert-fragment'));\n });\n return;\n }\n }\n\n var textBlocks = [];\n var text = data.getText();\n var html = data.getHTML();\n var editorState = editor._latestEditorState;\n\n if (editor.props.formatPastedText) {\n var _editor$props$formatP = editor.props.formatPastedText(text, html),\n formattedText = _editor$props$formatP.text,\n formattedHtml = _editor$props$formatP.html;\n\n text = formattedText;\n html = formattedHtml;\n }\n\n if (editor.props.handlePastedText && isEventHandled(editor.props.handlePastedText(text, html, editorState))) {\n return;\n }\n\n if (text) {\n textBlocks = splitTextIntoTextBlocks(text);\n }\n\n if (!editor.props.stripPastedStyles) {\n // If the text from the paste event is rich content that matches what we\n // already have on the internal clipboard, assume that we should just use\n // the clipboard fragment for the paste. This will allow us to preserve\n // styling and entities, if any are present. Note that newlines are\n // stripped during comparison -- this is because copy/paste within the\n // editor in Firefox and IE will not include empty lines. The resulting\n // paste will preserve the newlines correctly.\n var internalClipboard = editor.getClipboard();\n\n if (!editor.props.formatPastedText && data.isRichText() && internalClipboard) {\n var _html;\n\n if ( // If the editorKey is present in the pasted HTML, it should be safe to\n // assume this is an internal paste.\n ((_html = html) === null || _html === void 0 ? void 0 : _html.indexOf(editor.getEditorKey())) !== -1 || // The copy may have been made within a single block, in which case the\n // editor key won't be part of the paste. In this case, just check\n // whether the pasted text matches the internal clipboard.\n textBlocks.length === 1 && internalClipboard.size === 1 && internalClipboard.first().getText() === text) {\n editor.update(insertFragment(editor._latestEditorState, internalClipboard));\n return;\n }\n } else if (internalClipboard && data.types.includes('com.apple.webarchive') && !data.types.includes('text/html') && areTextBlocksAndClipboardEqual(textBlocks, internalClipboard)) {\n // Safari does not properly store text/html in some cases.\n // Use the internalClipboard if present and equal to what is on\n // the clipboard. See https://bugs.webkit.org/show_bug.cgi?id=19893.\n editor.update(insertFragment(editor._latestEditorState, internalClipboard));\n return;\n } // If there is html paste data, try to parse that.\n\n\n if (html) {\n var htmlFragment = DraftPasteProcessor.processHTML(html, editor.props.blockRenderMap);\n\n if (htmlFragment) {\n var contentBlocks = htmlFragment.contentBlocks,\n entityMap = htmlFragment.entityMap;\n\n if (contentBlocks) {\n var htmlMap = BlockMapBuilder.createFromArray(contentBlocks);\n editor.update(insertFragment(editor._latestEditorState, htmlMap, entityMap));\n return;\n }\n }\n } // Otherwise, create a new fragment from our pasted text. Also\n // empty the internal clipboard, since it's no longer valid.\n\n\n editor.setClipboard(null);\n }\n\n if (textBlocks.length) {\n var character = CharacterMetadata.create({\n style: editorState.getCurrentInlineStyle(),\n entity: getEntityKeyForSelection(editorState.getCurrentContent(), editorState.getSelection())\n });\n var currentBlockType = RichTextEditorUtil.getCurrentBlockType(editorState);\n var textFragment = DraftPasteProcessor.processText(textBlocks, character, currentBlockType);\n var textMap = BlockMapBuilder.createFromArray(textFragment);\n editor.update(insertFragment(editor._latestEditorState, textMap));\n }\n}\n\nfunction insertFragment(editorState, fragment, entityMap) {\n var newContent = DraftModifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), fragment); // TODO: merge the entity map once we stop using DraftEntity\n // like this:\n // const mergedEntityMap = newContent.getEntityMap().merge(entityMap);\n\n return EditorState.push(editorState, newContent.set('entityMap', entityMap), 'insert-fragment');\n}\n\nfunction areTextBlocksAndClipboardEqual(textBlocks, blockMap) {\n return textBlocks.length === blockMap.size && blockMap.valueSeq().every(function (block, ii) {\n return block.getText() === textBlocks[ii];\n });\n}\n\nmodule.exports = editOnPaste;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftJsDebugLogging = require(\"./DraftJsDebugLogging\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar getContentEditableContainer = require(\"./getContentEditableContainer\");\n\nvar getDraftEditorSelection = require(\"./getDraftEditorSelection\");\n\nfunction editOnSelect(editor) {\n if (editor._blockSelectEvents || editor._latestEditorState !== editor.props.editorState) {\n if (editor._blockSelectEvents) {\n var _editorState = editor.props.editorState;\n\n var selectionState = _editorState.getSelection();\n\n DraftJsDebugLogging.logBlockedSelectionEvent({\n // For now I don't think we need any other info\n anonymizedDom: 'N/A',\n extraParams: JSON.stringify({\n stacktrace: new Error().stack\n }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n }\n\n return;\n }\n\n var editorState = editor.props.editorState;\n var documentSelection = getDraftEditorSelection(editorState, getContentEditableContainer(editor));\n var updatedSelectionState = documentSelection.selectionState;\n\n if (updatedSelectionState !== editorState.getSelection()) {\n if (documentSelection.needsRecovery) {\n editorState = EditorState.forceSelection(editorState, updatedSelectionState);\n } else {\n editorState = EditorState.acceptSelection(editorState, updatedSelectionState);\n }\n\n editor.update(editorState);\n }\n}\n\nmodule.exports = editOnSelect;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftStringKey = require(\"./DraftStringKey\");\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar strlen = UnicodeUtils.strlen;\n/**\n * Convert to UTF-8 character counts for storage.\n */\n\nfunction encodeEntityRanges(block, storageMap) {\n var encoded = [];\n block.findEntityRanges(function (character) {\n return !!character.getEntity();\n }, function (\n /*number*/\n start,\n /*number*/\n end) {\n var text = block.getText();\n var key = block.getEntityAt(start);\n encoded.push({\n offset: strlen(text.slice(0, start)),\n length: strlen(text.slice(start, end)),\n // Encode the key as a number for range storage.\n key: Number(storageMap[DraftStringKey.stringify(key)])\n });\n });\n return encoded;\n}\n\nmodule.exports = encodeEntityRanges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar areEqual = function areEqual(a, b) {\n return a === b;\n};\n\nvar isTruthy = function isTruthy(a) {\n return !!a;\n};\n\nvar EMPTY_ARRAY = [];\n/**\n * Helper function for getting encoded styles for each inline style. Convert\n * to UTF-8 character counts for storage.\n */\n\nfunction getEncodedInlinesForType(block, styleList, styleToEncode) {\n var ranges = []; // Obtain an array with ranges for only the specified style.\n\n var filteredInlines = styleList.map(function (style) {\n return style.has(styleToEncode);\n }).toList();\n findRangesImmutable(filteredInlines, areEqual, // We only want to keep ranges with nonzero style values.\n isTruthy, function (start, end) {\n var text = block.getText();\n ranges.push({\n offset: UnicodeUtils.strlen(text.slice(0, start)),\n length: UnicodeUtils.strlen(text.slice(start, end)),\n style: styleToEncode\n });\n });\n return ranges;\n}\n/*\n * Retrieve the encoded arrays of inline styles, with each individual style\n * treated separately.\n */\n\n\nfunction encodeInlineStyleRanges(block) {\n var styleList = block.getCharacterList().map(function (c) {\n return c.getStyle();\n }).toList();\n var ranges = styleList.flatten().toSet().map(function (style) {\n return getEncodedInlinesForType(block, styleList, style);\n });\n return Array.prototype.concat.apply(EMPTY_ARRAY, ranges.toJS());\n}\n\nmodule.exports = encodeInlineStyleRanges;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar getRangeClientRects = require(\"./getRangeClientRects\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\n * Return the computed line height, in pixels, for the provided element.\n */\n\n\nfunction getLineHeightPx(element) {\n var computed = getComputedStyle(element);\n var correctDocument = getCorrectDocumentFromNode(element);\n var div = correctDocument.createElement('div');\n div.style.fontFamily = computed.fontFamily;\n div.style.fontSize = computed.fontSize;\n div.style.fontStyle = computed.fontStyle;\n div.style.fontWeight = computed.fontWeight;\n div.style.lineHeight = computed.lineHeight;\n div.style.position = 'absolute';\n div.textContent = 'M';\n var documentBody = correctDocument.body;\n !documentBody ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing document.body') : invariant(false) : void 0; // forced layout here\n\n documentBody.appendChild(div);\n var rect = div.getBoundingClientRect();\n documentBody.removeChild(div);\n return rect.height;\n}\n/**\n * Return whether every ClientRect in the provided list lies on the same line.\n *\n * We assume that the rects on the same line all contain the baseline, so the\n * lowest top line needs to be above the highest bottom line (i.e., if you were\n * to project the rects onto the y-axis, their intersection would be nonempty).\n *\n * In addition, we require that no two boxes are lineHeight (or more) apart at\n * either top or bottom, which helps protect against false positives for fonts\n * with extremely large glyph heights (e.g., with a font size of 17px, Zapfino\n * produces rects of height 58px!).\n */\n\n\nfunction areRectsOnOneLine(rects, lineHeight) {\n var minTop = Infinity;\n var minBottom = Infinity;\n var maxTop = -Infinity;\n var maxBottom = -Infinity;\n\n for (var ii = 0; ii < rects.length; ii++) {\n var rect = rects[ii];\n\n if (rect.width === 0 || rect.width === 1) {\n // When a range starts or ends a soft wrap, many browsers (Chrome, IE,\n // Safari) include an empty rect on the previous or next line. When the\n // text lies in a container whose position is not integral (e.g., from\n // margin: auto), Safari makes these empty rects have width 1 (instead of\n // 0). Having one-pixel-wide characters seems unlikely (and most browsers\n // report widths in subpixel precision anyway) so it's relatively safe to\n // skip over them.\n continue;\n }\n\n minTop = Math.min(minTop, rect.top);\n minBottom = Math.min(minBottom, rect.bottom);\n maxTop = Math.max(maxTop, rect.top);\n maxBottom = Math.max(maxBottom, rect.bottom);\n }\n\n return maxTop <= minBottom && maxTop - minTop < lineHeight && maxBottom - minBottom < lineHeight;\n}\n/**\n * Return the length of a node, as used by Range offsets.\n */\n\n\nfunction getNodeLength(node) {\n // http://www.w3.org/TR/dom/#concept-node-length\n switch (node.nodeType) {\n case Node.DOCUMENT_TYPE_NODE:\n return 0;\n\n case Node.TEXT_NODE:\n case Node.PROCESSING_INSTRUCTION_NODE:\n case Node.COMMENT_NODE:\n return node.length;\n\n default:\n return node.childNodes.length;\n }\n}\n/**\n * Given a collapsed range, move the start position backwards as far as\n * possible while the range still spans only a single line.\n */\n\n\nfunction expandRangeToStartOfLine(range) {\n !range.collapsed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'expandRangeToStartOfLine: Provided range is not collapsed.') : invariant(false) : void 0;\n range = range.cloneRange();\n var containingElement = range.startContainer;\n\n if (containingElement.nodeType !== 1) {\n containingElement = containingElement.parentNode;\n }\n\n var lineHeight = getLineHeightPx(containingElement); // Imagine our text looks like:\n //
once upon a time, there was a boy\n // who lived under^ the\n // stairs in a small closet.
\n // where the caret represents the cursor. First, we crawl up the tree until\n // the range spans multiple lines (setting the start point to before\n // \"\", then before \"
\"), then at each level we do a search to\n // find the latest point which is still on a previous line. We'll find that\n // the break point is inside the span, then inside the , then in its text\n // node child, the actual break point before \"who\".\n\n var bestContainer = range.endContainer;\n var bestOffset = range.endOffset;\n range.setStart(range.startContainer, 0);\n\n while (areRectsOnOneLine(getRangeClientRects(range), lineHeight)) {\n bestContainer = range.startContainer;\n bestOffset = range.startOffset;\n !bestContainer.parentNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Found unexpected detached subtree when traversing.') : invariant(false) : void 0;\n range.setStartBefore(bestContainer);\n\n if (bestContainer.nodeType === 1 && getComputedStyle(bestContainer).display !== 'inline') {\n // The start of the line is never in a different block-level container.\n break;\n }\n } // In the above example, range now spans from \"
\" to \"under\",\n // bestContainer is
, and bestOffset is 1 (index of inside
)].\n // Picking out which child to recurse into here is a special case since we\n // don't want to check past -- once we find that the final range starts\n // in , we can look at all of its children (and all of their children)\n // to find the break point.\n // At all times, (bestContainer, bestOffset) is the latest single-line start\n // point that we know of.\n\n\n var currentContainer = bestContainer;\n var maxIndexToConsider = bestOffset - 1;\n\n do {\n var nodeValue = currentContainer.nodeValue;\n var ii = maxIndexToConsider;\n\n for (; ii >= 0; ii--) {\n if (nodeValue != null && ii > 0 && UnicodeUtils.isSurrogatePair(nodeValue, ii - 1)) {\n // We're in the middle of a surrogate pair -- skip over so we never\n // return a range with an endpoint in the middle of a code point.\n continue;\n }\n\n range.setStart(currentContainer, ii);\n\n if (areRectsOnOneLine(getRangeClientRects(range), lineHeight)) {\n bestContainer = currentContainer;\n bestOffset = ii;\n } else {\n break;\n }\n }\n\n if (ii === -1 || currentContainer.childNodes.length === 0) {\n // If ii === -1, then (bestContainer, bestOffset), which is equal to\n // (currentContainer, 0), was a single-line start point but a start\n // point before currentContainer wasn't, so the line break seems to\n // have occurred immediately after currentContainer's start tag\n //\n // If currentContainer.childNodes.length === 0, we're already at a\n // terminal node (e.g., text node) and should return our current best.\n break;\n }\n\n currentContainer = currentContainer.childNodes[ii];\n maxIndexToConsider = getNodeLength(currentContainer);\n } while (true);\n\n range.setStart(bestContainer, bestOffset);\n return range;\n}\n\nmodule.exports = expandRangeToStartOfLine;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar getSelectionOffsetKeyForNode = require(\"./getSelectionOffsetKeyForNode\");\n/**\n * Get the key from the node's nearest offset-aware ancestor.\n */\n\n\nfunction findAncestorOffsetKey(node) {\n var searchNode = node;\n\n while (searchNode && searchNode !== getCorrectDocumentFromNode(node).documentElement) {\n var key = getSelectionOffsetKeyForNode(searchNode);\n\n if (key != null) {\n return key;\n }\n\n searchNode = searchNode.parentNode;\n }\n\n return null;\n}\n\nmodule.exports = findAncestorOffsetKey;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * 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 */\n\nfunction findRangesImmutable(haystack, areEqualFn, filterFn, foundFn) {\n if (!haystack.size) {\n return;\n }\n\n var cursor = 0;\n haystack.reduce(function (value, nextValue, nextIndex) {\n if (!areEqualFn(value, nextValue)) {\n if (filterFn(value)) {\n foundFn(cursor, nextIndex);\n }\n\n cursor = nextIndex;\n }\n\n return nextValue;\n });\n filterFn(haystack.last()) && foundFn(cursor, haystack.count());\n}\n\nmodule.exports = findRangesImmutable;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar seenKeys = {};\nvar MULTIPLIER = Math.pow(2, 24);\n\nfunction generateRandomKey() {\n var key;\n\n while (key === undefined || seenKeys.hasOwnProperty(key) || !isNaN(+key)) {\n key = Math.floor(Math.random() * MULTIPLIER).toString(32);\n }\n\n seenKeys[key] = true;\n return key;\n}\n\nmodule.exports = generateRandomKey;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftEntitySegments = require(\"./DraftEntitySegments\");\n\nvar getRangesForDraftEntity = require(\"./getRangesForDraftEntity\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\n * Given a SelectionState and a removal direction, determine the entire range\n * that should be removed from a ContentState. This is based on any entities\n * within the target, with their `mutability` values taken into account.\n *\n * For instance, if we are attempting to remove part of an \"immutable\" entity\n * range, the entire entity must be removed. The returned `SelectionState`\n * will be adjusted accordingly.\n */\n\n\nfunction getCharacterRemovalRange(entityMap, startBlock, endBlock, selectionState, direction) {\n var start = selectionState.getStartOffset();\n var end = selectionState.getEndOffset();\n var startEntityKey = startBlock.getEntityAt(start);\n var endEntityKey = endBlock.getEntityAt(end - 1);\n\n if (!startEntityKey && !endEntityKey) {\n return selectionState;\n }\n\n var newSelectionState = selectionState;\n\n if (startEntityKey && startEntityKey === endEntityKey) {\n newSelectionState = getEntityRemovalRange(entityMap, startBlock, newSelectionState, direction, startEntityKey, true, true);\n } else if (startEntityKey && endEntityKey) {\n var startSelectionState = getEntityRemovalRange(entityMap, startBlock, newSelectionState, direction, startEntityKey, false, true);\n var endSelectionState = getEntityRemovalRange(entityMap, endBlock, newSelectionState, direction, endEntityKey, false, false);\n newSelectionState = newSelectionState.merge({\n anchorOffset: startSelectionState.getAnchorOffset(),\n focusOffset: endSelectionState.getFocusOffset(),\n isBackward: false\n });\n } else if (startEntityKey) {\n var _startSelectionState = getEntityRemovalRange(entityMap, startBlock, newSelectionState, direction, startEntityKey, false, true);\n\n newSelectionState = newSelectionState.merge({\n anchorOffset: _startSelectionState.getStartOffset(),\n isBackward: false\n });\n } else if (endEntityKey) {\n var _endSelectionState = getEntityRemovalRange(entityMap, endBlock, newSelectionState, direction, endEntityKey, false, false);\n\n newSelectionState = newSelectionState.merge({\n focusOffset: _endSelectionState.getEndOffset(),\n isBackward: false\n });\n }\n\n return newSelectionState;\n}\n\nfunction getEntityRemovalRange(entityMap, block, selectionState, direction, entityKey, isEntireSelectionWithinEntity, isEntityAtStart) {\n var start = selectionState.getStartOffset();\n var end = selectionState.getEndOffset();\n\n var entity = entityMap.__get(entityKey);\n\n var mutability = entity.getMutability();\n var sideToConsider = isEntityAtStart ? start : end; // `MUTABLE` entities can just have the specified range of text removed\n // directly. No adjustments are needed.\n\n if (mutability === 'MUTABLE') {\n return selectionState;\n } // Find the entity range that overlaps with our removal range.\n\n\n var entityRanges = getRangesForDraftEntity(block, entityKey).filter(function (range) {\n return sideToConsider <= range.end && sideToConsider >= range.start;\n });\n !(entityRanges.length == 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'There should only be one entity range within this removal range.') : invariant(false) : void 0;\n var entityRange = entityRanges[0]; // For `IMMUTABLE` entity types, we will remove the entire entity range.\n\n if (mutability === 'IMMUTABLE') {\n return selectionState.merge({\n anchorOffset: entityRange.start,\n focusOffset: entityRange.end,\n isBackward: false\n });\n } // For `SEGMENTED` entity types, determine the appropriate segment to\n // remove.\n\n\n if (!isEntireSelectionWithinEntity) {\n if (isEntityAtStart) {\n end = entityRange.end;\n } else {\n start = entityRange.start;\n }\n }\n\n var removalRange = DraftEntitySegments.getRemovalRange(start, end, block.getText().slice(entityRange.start, entityRange.end), entityRange.start, direction);\n return selectionState.merge({\n anchorOffset: removalRange.start,\n focusOffset: removalRange.end,\n isBackward: false\n });\n}\n\nmodule.exports = getCharacterRemovalRange;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isHTMLElement = require(\"./isHTMLElement\");\n\nfunction getContentEditableContainer(editor) {\n var editorNode = editor.editorContainer;\n !editorNode ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing editorNode') : invariant(false) : void 0;\n !isHTMLElement(editorNode.firstChild) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'editorNode.firstChild is not an HTMLElement') : invariant(false) : void 0;\n var htmlElement = editorNode.firstChild;\n return htmlElement;\n}\n\nmodule.exports = getContentEditableContainer;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar randomizeBlockMapKeys = require(\"./randomizeBlockMapKeys\");\n\nvar removeEntitiesAtEdges = require(\"./removeEntitiesAtEdges\");\n\nvar getContentStateFragment = function getContentStateFragment(contentState, selectionState) {\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset(); // Edge entities should be stripped to ensure that we don't preserve\n // invalid partial entities when the fragment is reused. We do, however,\n // preserve entities that are entirely within the selection range.\n\n var contentWithoutEdgeEntities = removeEntitiesAtEdges(contentState, selectionState);\n var blockMap = contentWithoutEdgeEntities.getBlockMap();\n var blockKeys = blockMap.keySeq();\n var startIndex = blockKeys.indexOf(startKey);\n var endIndex = blockKeys.indexOf(endKey) + 1;\n return randomizeBlockMapKeys(blockMap.slice(startIndex, endIndex).map(function (block, blockKey) {\n var text = block.getText();\n var chars = block.getCharacterList();\n\n if (startKey === endKey) {\n return block.merge({\n text: text.slice(startOffset, endOffset),\n characterList: chars.slice(startOffset, endOffset)\n });\n }\n\n if (blockKey === startKey) {\n return block.merge({\n text: text.slice(startOffset),\n characterList: chars.slice(startOffset)\n });\n }\n\n if (blockKey === endKey) {\n return block.merge({\n text: text.slice(0, endOffset),\n characterList: chars.slice(0, endOffset)\n });\n }\n\n return block;\n }));\n};\n\nmodule.exports = getContentStateFragment;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nfunction getCorrectDocumentFromNode(node) {\n if (!node || !node.ownerDocument) {\n return document;\n }\n\n return node.ownerDocument;\n}\n\nmodule.exports = getCorrectDocumentFromNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar KeyBindingUtil = require(\"./KeyBindingUtil\");\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar isOSX = UserAgent.isPlatform('Mac OS X'); // Firefox on OSX had a bug resulting in navigation instead of cursor movement.\n// This bug was fixed in Firefox 29. Feature detection is virtually impossible\n// so we just check the version number. See #342765.\n\nvar shouldFixFirefoxMovement = isOSX && UserAgent.isBrowser('Firefox < 29');\nvar hasCommandModifier = KeyBindingUtil.hasCommandModifier,\n isCtrlKeyCommand = KeyBindingUtil.isCtrlKeyCommand;\n\nfunction shouldRemoveWord(e) {\n return isOSX && e.altKey || isCtrlKeyCommand(e);\n}\n/**\n * Get the appropriate undo/redo command for a Z key command.\n */\n\n\nfunction getZCommand(e) {\n if (!hasCommandModifier(e)) {\n return null;\n }\n\n return e.shiftKey ? 'redo' : 'undo';\n}\n\nfunction getDeleteCommand(e) {\n // Allow default \"cut\" behavior for PCs on Shift + Delete.\n if (!isOSX && e.shiftKey) {\n return null;\n }\n\n return shouldRemoveWord(e) ? 'delete-word' : 'delete';\n}\n\nfunction getBackspaceCommand(e) {\n if (hasCommandModifier(e) && isOSX) {\n return 'backspace-to-start-of-line';\n }\n\n return shouldRemoveWord(e) ? 'backspace-word' : 'backspace';\n}\n/**\n * Retrieve a bound key command for the given event.\n */\n\n\nfunction getDefaultKeyBinding(e) {\n switch (e.keyCode) {\n case 66:\n // B\n return hasCommandModifier(e) ? 'bold' : null;\n\n case 68:\n // D\n return isCtrlKeyCommand(e) ? 'delete' : null;\n\n case 72:\n // H\n return isCtrlKeyCommand(e) ? 'backspace' : null;\n\n case 73:\n // I\n return hasCommandModifier(e) ? 'italic' : null;\n\n case 74:\n // J\n return hasCommandModifier(e) ? 'code' : null;\n\n case 75:\n // K\n return isOSX && isCtrlKeyCommand(e) ? 'secondary-cut' : null;\n\n case 77:\n // M\n return isCtrlKeyCommand(e) ? 'split-block' : null;\n\n case 79:\n // O\n return isCtrlKeyCommand(e) ? 'split-block' : null;\n\n case 84:\n // T\n return isOSX && isCtrlKeyCommand(e) ? 'transpose-characters' : null;\n\n case 85:\n // U\n return hasCommandModifier(e) ? 'underline' : null;\n\n case 87:\n // W\n return isOSX && isCtrlKeyCommand(e) ? 'backspace-word' : null;\n\n case 89:\n // Y\n if (isCtrlKeyCommand(e)) {\n return isOSX ? 'secondary-paste' : 'redo';\n }\n\n return null;\n\n case 90:\n // Z\n return getZCommand(e) || null;\n\n case Keys.RETURN:\n return 'split-block';\n\n case Keys.DELETE:\n return getDeleteCommand(e);\n\n case Keys.BACKSPACE:\n return getBackspaceCommand(e);\n // LEFT/RIGHT handlers serve as a workaround for a Firefox bug.\n\n case Keys.LEFT:\n return shouldFixFirefoxMovement && hasCommandModifier(e) ? 'move-selection-to-start-of-block' : null;\n\n case Keys.RIGHT:\n return shouldFixFirefoxMovement && hasCommandModifier(e) ? 'move-selection-to-end-of-block' : null;\n\n default:\n return null;\n }\n}\n\nmodule.exports = getDefaultKeyBinding;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getDraftEditorSelectionWithNodes = require(\"./getDraftEditorSelectionWithNodes\");\n/**\n * Convert the current selection range to an anchor/focus pair of offset keys\n * and values that can be interpreted by components.\n */\n\n\nfunction getDraftEditorSelection(editorState, root) {\n var selection = root.ownerDocument.defaultView.getSelection();\n var anchorNode = selection.anchorNode,\n anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode,\n focusOffset = selection.focusOffset,\n rangeCount = selection.rangeCount;\n\n if ( // No active selection.\n rangeCount === 0 || // No selection, ever. As in, the user hasn't selected anything since\n // opening the document.\n anchorNode == null || focusNode == null) {\n return {\n selectionState: editorState.getSelection().set('hasFocus', false),\n needsRecovery: false\n };\n }\n\n return getDraftEditorSelectionWithNodes(editorState, root, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\nmodule.exports = getDraftEditorSelection;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar findAncestorOffsetKey = require(\"./findAncestorOffsetKey\");\n\nvar getSelectionOffsetKeyForNode = require(\"./getSelectionOffsetKeyForNode\");\n\nvar getUpdatedSelectionState = require(\"./getUpdatedSelectionState\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isElement = require(\"./isElement\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n/**\n * Convert the current selection range to an anchor/focus pair of offset keys\n * and values that can be interpreted by components.\n */\n\n\nfunction getDraftEditorSelectionWithNodes(editorState, root, anchorNode, anchorOffset, focusNode, focusOffset) {\n var anchorIsTextNode = anchorNode.nodeType === Node.TEXT_NODE;\n var focusIsTextNode = focusNode.nodeType === Node.TEXT_NODE; // If the selection range lies only on text nodes, the task is simple.\n // Find the nearest offset-aware elements and use the\n // offset values supplied by the selection range.\n\n if (anchorIsTextNode && focusIsTextNode) {\n return {\n selectionState: getUpdatedSelectionState(editorState, nullthrows(findAncestorOffsetKey(anchorNode)), anchorOffset, nullthrows(findAncestorOffsetKey(focusNode)), focusOffset),\n needsRecovery: false\n };\n }\n\n var anchorPoint = null;\n var focusPoint = null;\n var needsRecovery = true; // An element is selected. Convert this selection range into leaf offset\n // keys and offset values for consumption at the component level. This\n // is common in Firefox, where select-all and triple click behavior leads\n // to entire elements being selected.\n //\n // Note that we use the `needsRecovery` parameter in the callback here. This\n // is because when certain elements are selected, the behavior for subsequent\n // cursor movement (e.g. via arrow keys) is uncertain and may not match\n // expectations at the component level. For example, if an entire
is\n // selected and the user presses the right arrow, Firefox keeps the selection\n // on the
. If we allow subsequent keypresses to insert characters\n // natively, they will be inserted into a browser-created text node to the\n // right of that
. This is obviously undesirable.\n //\n // With the `needsRecovery` flag, we inform the caller that it is responsible\n // for manually setting the selection state on the rendered document to\n // ensure proper selection state maintenance.\n\n if (anchorIsTextNode) {\n anchorPoint = {\n key: nullthrows(findAncestorOffsetKey(anchorNode)),\n offset: anchorOffset\n };\n focusPoint = getPointForNonTextNode(root, focusNode, focusOffset);\n } else if (focusIsTextNode) {\n focusPoint = {\n key: nullthrows(findAncestorOffsetKey(focusNode)),\n offset: focusOffset\n };\n anchorPoint = getPointForNonTextNode(root, anchorNode, anchorOffset);\n } else {\n anchorPoint = getPointForNonTextNode(root, anchorNode, anchorOffset);\n focusPoint = getPointForNonTextNode(root, focusNode, focusOffset); // If the selection is collapsed on an empty block, don't force recovery.\n // This way, on arrow key selection changes, the browser can move the\n // cursor from a non-zero offset on one block, through empty blocks,\n // to a matching non-zero offset on other text blocks.\n\n if (anchorNode === focusNode && anchorOffset === focusOffset) {\n needsRecovery = !!anchorNode.firstChild && anchorNode.firstChild.nodeName !== 'BR';\n }\n }\n\n return {\n selectionState: getUpdatedSelectionState(editorState, anchorPoint.key, anchorPoint.offset, focusPoint.key, focusPoint.offset),\n needsRecovery: needsRecovery\n };\n}\n/**\n * Identify the first leaf descendant for the given node.\n */\n\n\nfunction getFirstLeaf(node) {\n while (node.firstChild && ( // data-blocks has no offset\n isElement(node.firstChild) && node.firstChild.getAttribute('data-blocks') === 'true' || getSelectionOffsetKeyForNode(node.firstChild))) {\n node = node.firstChild;\n }\n\n return node;\n}\n/**\n * Identify the last leaf descendant for the given node.\n */\n\n\nfunction getLastLeaf(node) {\n while (node.lastChild && ( // data-blocks has no offset\n isElement(node.lastChild) && node.lastChild.getAttribute('data-blocks') === 'true' || getSelectionOffsetKeyForNode(node.lastChild))) {\n node = node.lastChild;\n }\n\n return node;\n}\n\nfunction getPointForNonTextNode(editorRoot, startNode, childOffset) {\n var node = startNode;\n var offsetKey = findAncestorOffsetKey(node);\n !(offsetKey != null || editorRoot && (editorRoot === node || editorRoot.firstChild === node)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unknown node in selection range.') : invariant(false) : void 0; // If the editorRoot is the selection, step downward into the content\n // wrapper.\n\n if (editorRoot === node) {\n node = node.firstChild;\n !isElement(node) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid DraftEditorContents node.') : invariant(false) : void 0;\n var castedNode = node; // assignment only added for flow :/\n // otherwise it throws in line 200 saying that node can be null or undefined\n\n node = castedNode;\n !(node.getAttribute('data-contents') === 'true') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid DraftEditorContents structure.') : invariant(false) : void 0;\n\n if (childOffset > 0) {\n childOffset = node.childNodes.length;\n }\n } // If the child offset is zero and we have an offset key, we're done.\n // If there's no offset key because the entire editor is selected,\n // find the leftmost (\"first\") leaf in the tree and use that as the offset\n // key.\n\n\n if (childOffset === 0) {\n var key = null;\n\n if (offsetKey != null) {\n key = offsetKey;\n } else {\n var firstLeaf = getFirstLeaf(node);\n key = nullthrows(getSelectionOffsetKeyForNode(firstLeaf));\n }\n\n return {\n key: key,\n offset: 0\n };\n }\n\n var nodeBeforeCursor = node.childNodes[childOffset - 1];\n var leafKey = null;\n var textLength = null;\n\n if (!getSelectionOffsetKeyForNode(nodeBeforeCursor)) {\n // Our target node may be a leaf or a text node, in which case we're\n // already where we want to be and can just use the child's length as\n // our offset.\n leafKey = nullthrows(offsetKey);\n textLength = getTextContentLength(nodeBeforeCursor);\n } else {\n // Otherwise, we'll look at the child to the left of the cursor and find\n // the last leaf node in its subtree.\n var lastLeaf = getLastLeaf(nodeBeforeCursor);\n leafKey = nullthrows(getSelectionOffsetKeyForNode(lastLeaf));\n textLength = getTextContentLength(lastLeaf);\n }\n\n return {\n key: leafKey,\n offset: textLength\n };\n}\n/**\n * Return the length of a node's textContent, regarding single newline\n * characters as zero-length. This allows us to avoid problems with identifying\n * the correct selection offset for empty blocks in IE, in which we\n * render newlines instead of break tags.\n */\n\n\nfunction getTextContentLength(node) {\n var textContent = node.textContent;\n return textContent === '\\n' ? 0 : textContent.length;\n}\n\nmodule.exports = getDraftEditorSelectionWithNodes;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar _require = require(\"./draftKeyUtils\"),\n notEmptyKey = _require.notEmptyKey;\n/**\n * Return the entity key that should be used when inserting text for the\n * specified target selection, only if the entity is `MUTABLE`. `IMMUTABLE`\n * and `SEGMENTED` entities should not be used for insertion behavior.\n */\n\n\nfunction getEntityKeyForSelection(contentState, targetSelection) {\n var entityKey;\n\n if (targetSelection.isCollapsed()) {\n var key = targetSelection.getAnchorKey();\n var offset = targetSelection.getAnchorOffset();\n\n if (offset > 0) {\n entityKey = contentState.getBlockForKey(key).getEntityAt(offset - 1);\n\n if (entityKey !== contentState.getBlockForKey(key).getEntityAt(offset)) {\n return null;\n }\n\n return filterKey(contentState.getEntityMap(), entityKey);\n }\n\n return null;\n }\n\n var startKey = targetSelection.getStartKey();\n var startOffset = targetSelection.getStartOffset();\n var startBlock = contentState.getBlockForKey(startKey);\n entityKey = startOffset === startBlock.getLength() ? null : startBlock.getEntityAt(startOffset);\n return filterKey(contentState.getEntityMap(), entityKey);\n}\n/**\n * Determine whether an entity key corresponds to a `MUTABLE` entity. If so,\n * return it. If not, return null.\n */\n\n\nfunction filterKey(entityMap, entityKey) {\n if (notEmptyKey(entityKey)) {\n var entity = entityMap.__get(entityKey);\n\n return entity.getMutability() === 'MUTABLE' ? entityKey : null;\n }\n\n return null;\n}\n\nmodule.exports = getEntityKeyForSelection;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getContentStateFragment = require(\"./getContentStateFragment\");\n\nfunction getFragmentFromSelection(editorState) {\n var selectionState = editorState.getSelection();\n\n if (selectionState.isCollapsed()) {\n return null;\n }\n\n return getContentStateFragment(editorState.getCurrentContent(), selectionState);\n}\n\nmodule.exports = getFragmentFromSelection;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n *\n * This is unstable and not part of the public API and should not be used by\n * production systems. This file may be update/removed without notice.\n */\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar getNextDelimiterBlockKey = function getNextDelimiterBlockKey(block, blockMap) {\n var isExperimentalTreeBlock = block instanceof ContentBlockNode;\n\n if (!isExperimentalTreeBlock) {\n return null;\n }\n\n var nextSiblingKey = block.getNextSiblingKey();\n\n if (nextSiblingKey) {\n return nextSiblingKey;\n }\n\n var parent = block.getParentKey();\n\n if (!parent) {\n return null;\n }\n\n var nextNonDescendantBlock = blockMap.get(parent);\n\n while (nextNonDescendantBlock && !nextNonDescendantBlock.getNextSiblingKey()) {\n var parentKey = nextNonDescendantBlock.getParentKey();\n nextNonDescendantBlock = parentKey ? blockMap.get(parentKey) : null;\n }\n\n if (!nextNonDescendantBlock) {\n return null;\n }\n\n return nextNonDescendantBlock.getNextSiblingKey();\n};\n\nmodule.exports = getNextDelimiterBlockKey;","\"use strict\";\n/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * \n * @typechecks\n * @format\n */\n\n/**\n * Retrieve an object's own values as an array. If you want the values in the\n * protoype chain, too, use getObjectValuesIncludingPrototype.\n *\n * If you are looking for a function that creates an Array instance based\n * on an \"Array-like\" object, use createArrayFrom instead.\n *\n * @param {object} obj An object.\n * @return {array} The object's values.\n */\n\nfunction getOwnObjectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n}\n\nmodule.exports = getOwnObjectValues;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getRangeClientRects = require(\"./getRangeClientRects\");\n/**\n * Like range.getBoundingClientRect() but normalizes for browser bugs.\n */\n\n\nfunction getRangeBoundingClientRect(range) {\n // \"Return a DOMRect object describing the smallest rectangle that includes\n // the first rectangle in list and all of the remaining rectangles of which\n // the height or width is not zero.\"\n // http://www.w3.org/TR/cssom-view/#dom-range-getboundingclientrect\n var rects = getRangeClientRects(range);\n var top = 0;\n var right = 0;\n var bottom = 0;\n var left = 0;\n\n if (rects.length) {\n // If the first rectangle has 0 width, we use the second, this is needed\n // because Chrome renders a 0 width rectangle when the selection contains\n // a line break.\n if (rects.length > 1 && rects[0].width === 0) {\n var _rects$ = rects[1];\n top = _rects$.top;\n right = _rects$.right;\n bottom = _rects$.bottom;\n left = _rects$.left;\n } else {\n var _rects$2 = rects[0];\n top = _rects$2.top;\n right = _rects$2.right;\n bottom = _rects$2.bottom;\n left = _rects$2.left;\n }\n\n for (var ii = 1; ii < rects.length; ii++) {\n var rect = rects[ii];\n\n if (rect.height !== 0 && rect.width !== 0) {\n top = Math.min(top, rect.top);\n right = Math.max(right, rect.right);\n bottom = Math.max(bottom, rect.bottom);\n left = Math.min(left, rect.left);\n }\n }\n }\n\n return {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: right - left,\n height: bottom - top\n };\n}\n\nmodule.exports = getRangeBoundingClientRect;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isChrome = UserAgent.isBrowser('Chrome'); // In Chrome, the client rects will include the entire bounds of all nodes that\n// begin (have a start tag) within the selection, even if the selection does\n// not overlap the entire node. To resolve this, we split the range at each\n// start tag and join the client rects together.\n// https://code.google.com/p/chromium/issues/detail?id=324437\n\n/* eslint-disable consistent-return */\n\nfunction getRangeClientRectsChrome(range) {\n var tempRange = range.cloneRange();\n var clientRects = [];\n\n for (var ancestor = range.endContainer; ancestor != null; ancestor = ancestor.parentNode) {\n // If we've climbed up to the common ancestor, we can now use the\n // original start point and stop climbing the tree.\n var atCommonAncestor = ancestor === range.commonAncestorContainer;\n\n if (atCommonAncestor) {\n tempRange.setStart(range.startContainer, range.startOffset);\n } else {\n tempRange.setStart(tempRange.endContainer, 0);\n }\n\n var rects = Array.from(tempRange.getClientRects());\n clientRects.push(rects);\n\n if (atCommonAncestor) {\n var _ref;\n\n clientRects.reverse();\n return (_ref = []).concat.apply(_ref, clientRects);\n }\n\n tempRange.setEndBefore(ancestor);\n }\n\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Found an unexpected detached subtree when getting range client rects.') : invariant(false) : void 0;\n}\n/* eslint-enable consistent-return */\n\n/**\n * Like range.getClientRects() but normalizes for browser bugs.\n */\n\n\nvar getRangeClientRects = isChrome ? getRangeClientRectsChrome : function (range) {\n return Array.from(range.getClientRects());\n};\nmodule.exports = getRangeClientRects;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\n * Obtain the start and end positions of the range that has the\n * specified entity applied to it.\n *\n * Entity keys are applied only to contiguous stretches of text, so this\n * method searches for the first instance of the entity key and returns\n * the subsequent range.\n */\n\n\nfunction getRangesForDraftEntity(block, key) {\n var ranges = [];\n block.findEntityRanges(function (c) {\n return c.getEntity() === key;\n }, function (start, end) {\n ranges.push({\n start: start,\n end: end\n });\n });\n !!!ranges.length ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Entity key not found in this range.') : invariant(false) : void 0;\n return ranges;\n}\n\nmodule.exports = getRangesForDraftEntity;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isOldIE = UserAgent.isBrowser('IE <= 9'); // Provides a dom node that will not execute scripts\n// https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation.createHTMLDocument\n// https://developer.mozilla.org/en-US/Add-ons/Code_snippets/HTML_to_DOM\n\nfunction getSafeBodyFromHTML(html) {\n var doc;\n var root = null; // Provides a safe context\n\n if (!isOldIE && document.implementation && document.implementation.createHTMLDocument) {\n doc = document.implementation.createHTMLDocument('foo');\n !doc.documentElement ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Missing doc.documentElement') : invariant(false) : void 0;\n doc.documentElement.innerHTML = html;\n root = doc.getElementsByTagName('body')[0];\n }\n\n return root;\n}\n\nmodule.exports = getSafeBodyFromHTML;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * Get offset key from a node or it's child nodes. Return the first offset key\n * found on the DOM tree of given node.\n */\n\nvar isElement = require(\"./isElement\");\n\nfunction getSelectionOffsetKeyForNode(node) {\n if (isElement(node)) {\n var castedNode = node;\n var offsetKey = castedNode.getAttribute('data-offset-key');\n\n if (offsetKey) {\n return offsetKey;\n }\n\n for (var ii = 0; ii < castedNode.childNodes.length; ii++) {\n var childOffsetKey = getSelectionOffsetKeyForNode(castedNode.childNodes[ii]);\n\n if (childOffsetKey) {\n return childOffsetKey;\n }\n }\n }\n\n return null;\n}\n\nmodule.exports = getSelectionOffsetKeyForNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar TEXT_CLIPPING_REGEX = /\\.textClipping$/;\nvar TEXT_TYPES = {\n 'text/plain': true,\n 'text/html': true,\n 'text/rtf': true\n}; // Somewhat arbitrary upper bound on text size. Let's not lock up the browser.\n\nvar TEXT_SIZE_UPPER_BOUND = 5000;\n/**\n * Extract the text content from a file list.\n */\n\nfunction getTextContentFromFiles(files, callback) {\n var readCount = 0;\n var results = [];\n files.forEach(function (\n /*blob*/\n file) {\n readFile(file, function (\n /*string*/\n text) {\n readCount++;\n text && results.push(text.slice(0, TEXT_SIZE_UPPER_BOUND));\n\n if (readCount == files.length) {\n callback(results.join('\\r'));\n }\n });\n });\n}\n/**\n * todo isaac: Do work to turn html/rtf into a content fragment.\n */\n\n\nfunction readFile(file, callback) {\n if (!global.FileReader || file.type && !(file.type in TEXT_TYPES)) {\n callback('');\n return;\n }\n\n if (file.type === '') {\n var _contents = ''; // Special-case text clippings, which have an empty type but include\n // `.textClipping` in the file name. `readAsText` results in an empty\n // string for text clippings, so we force the file name to serve\n // as the text value for the file.\n\n if (TEXT_CLIPPING_REGEX.test(file.name)) {\n _contents = file.name.replace(TEXT_CLIPPING_REGEX, '');\n }\n\n callback(_contents);\n return;\n }\n\n var reader = new FileReader();\n\n reader.onload = function () {\n var result = reader.result;\n !(typeof result === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'We should be calling \"FileReader.readAsText\" which returns a string') : invariant(false) : void 0;\n callback(result);\n };\n\n reader.onerror = function () {\n callback('');\n };\n\n reader.readAsText(file);\n}\n\nmodule.exports = getTextContentFromFiles;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftOffsetKey = require(\"./DraftOffsetKey\");\n\nvar nullthrows = require(\"fbjs/lib/nullthrows\");\n\nfunction getUpdatedSelectionState(editorState, anchorKey, anchorOffset, focusKey, focusOffset) {\n var selection = nullthrows(editorState.getSelection());\n\n if (!anchorKey || !focusKey) {\n // If we cannot make sense of the updated selection state, stick to the current one.\n if (process.env.NODE_ENV !== \"production\") {\n /* eslint-disable-next-line */\n console.warn('Invalid selection state.', arguments, editorState.toJS());\n }\n\n return selection;\n }\n\n var anchorPath = DraftOffsetKey.decode(anchorKey);\n var anchorBlockKey = anchorPath.blockKey;\n var anchorLeafBlockTree = editorState.getBlockTree(anchorBlockKey);\n var anchorLeaf = anchorLeafBlockTree && anchorLeafBlockTree.getIn([anchorPath.decoratorKey, 'leaves', anchorPath.leafKey]);\n var focusPath = DraftOffsetKey.decode(focusKey);\n var focusBlockKey = focusPath.blockKey;\n var focusLeafBlockTree = editorState.getBlockTree(focusBlockKey);\n var focusLeaf = focusLeafBlockTree && focusLeafBlockTree.getIn([focusPath.decoratorKey, 'leaves', focusPath.leafKey]);\n\n if (!anchorLeaf || !focusLeaf) {\n // If we cannot make sense of the updated selection state, stick to the current one.\n if (process.env.NODE_ENV !== \"production\") {\n /* eslint-disable-next-line */\n console.warn('Invalid selection state.', arguments, editorState.toJS());\n }\n\n return selection;\n }\n\n var anchorLeafStart = anchorLeaf.get('start');\n var focusLeafStart = focusLeaf.get('start');\n var anchorBlockOffset = anchorLeaf ? anchorLeafStart + anchorOffset : null;\n var focusBlockOffset = focusLeaf ? focusLeafStart + focusOffset : null;\n var areEqual = selection.getAnchorKey() === anchorBlockKey && selection.getAnchorOffset() === anchorBlockOffset && selection.getFocusKey() === focusBlockKey && selection.getFocusOffset() === focusBlockOffset;\n\n if (areEqual) {\n return selection;\n }\n\n var isBackward = false;\n\n if (anchorBlockKey === focusBlockKey) {\n var anchorLeafEnd = anchorLeaf.get('end');\n var focusLeafEnd = focusLeaf.get('end');\n\n if (focusLeafStart === anchorLeafStart && focusLeafEnd === anchorLeafEnd) {\n isBackward = focusOffset < anchorOffset;\n } else {\n isBackward = focusLeafStart < anchorLeafStart;\n }\n } else {\n var startKey = editorState.getCurrentContent().getBlockMap().keySeq().skipUntil(function (v) {\n return v === anchorBlockKey || v === focusBlockKey;\n }).first();\n isBackward = startKey === focusBlockKey;\n }\n\n return selection.merge({\n anchorKey: anchorBlockKey,\n anchorOffset: anchorBlockOffset,\n focusKey: focusBlockKey,\n focusOffset: focusBlockOffset,\n isBackward: isBackward\n });\n}\n\nmodule.exports = getUpdatedSelectionState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar getRangeBoundingClientRect = require(\"./getRangeBoundingClientRect\");\n/**\n * Return the bounding ClientRect for the visible DOM selection, if any.\n * In cases where there are no selected ranges or the bounding rect is\n * temporarily invalid, return null.\n *\n * When using from an iframe, you should pass the iframe window object\n */\n\n\nfunction getVisibleSelectionRect(global) {\n var selection = global.getSelection();\n\n if (!selection.rangeCount) {\n return null;\n }\n\n var range = selection.getRangeAt(0);\n var boundingRect = getRangeBoundingClientRect(range);\n var top = boundingRect.top,\n right = boundingRect.right,\n bottom = boundingRect.bottom,\n left = boundingRect.left; // When a re-render leads to a node being removed, the DOM selection will\n // temporarily be placed on an ancestor node, which leads to an invalid\n // bounding rect. Discard this state.\n\n if (top === 0 && right === 0 && bottom === 0 && left === 0) {\n return null;\n }\n\n return boundingRect;\n}\n\nmodule.exports = getVisibleSelectionRect;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nfunction getWindowForNode(node) {\n if (!node || !node.ownerDocument || !node.ownerDocument.defaultView) {\n return window;\n }\n\n return node.ownerDocument.defaultView;\n}\n\nmodule.exports = getWindowForNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nmodule.exports = function (name) {\n if (typeof window !== 'undefined' && window.__DRAFT_GKX) {\n return !!window.__DRAFT_GKX[name];\n }\n\n return false;\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar BlockMapBuilder = require(\"./BlockMapBuilder\");\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar Immutable = require(\"immutable\");\n\nvar insertIntoList = require(\"./insertIntoList\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar randomizeBlockMapKeys = require(\"./randomizeBlockMapKeys\");\n\nvar List = Immutable.List;\n\nvar updateExistingBlock = function updateExistingBlock(contentState, selectionState, blockMap, fragmentBlock, targetKey, targetOffset) {\n var mergeBlockData = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'REPLACE_WITH_NEW_DATA';\n var targetBlock = blockMap.get(targetKey);\n var text = targetBlock.getText();\n var chars = targetBlock.getCharacterList();\n var finalKey = targetKey;\n var finalOffset = targetOffset + fragmentBlock.getText().length;\n var data = null;\n\n switch (mergeBlockData) {\n case 'MERGE_OLD_DATA_TO_NEW_DATA':\n data = fragmentBlock.getData().merge(targetBlock.getData());\n break;\n\n case 'REPLACE_WITH_NEW_DATA':\n data = fragmentBlock.getData();\n break;\n }\n\n var type = targetBlock.getType();\n\n if (text && type === 'unstyled') {\n type = fragmentBlock.getType();\n }\n\n var newBlock = targetBlock.merge({\n text: text.slice(0, targetOffset) + fragmentBlock.getText() + text.slice(targetOffset),\n characterList: insertIntoList(chars, fragmentBlock.getCharacterList(), targetOffset),\n type: type,\n data: data\n });\n return contentState.merge({\n blockMap: blockMap.set(targetKey, newBlock),\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: finalKey,\n anchorOffset: finalOffset,\n focusKey: finalKey,\n focusOffset: finalOffset,\n isBackward: false\n })\n });\n};\n/**\n * Appends text/characterList from the fragment first block to\n * target block.\n */\n\n\nvar updateHead = function updateHead(block, targetOffset, fragment) {\n var text = block.getText();\n var chars = block.getCharacterList(); // Modify head portion of block.\n\n var headText = text.slice(0, targetOffset);\n var headCharacters = chars.slice(0, targetOffset);\n var appendToHead = fragment.first();\n return block.merge({\n text: headText + appendToHead.getText(),\n characterList: headCharacters.concat(appendToHead.getCharacterList()),\n type: headText ? block.getType() : appendToHead.getType(),\n data: appendToHead.getData()\n });\n};\n/**\n * Appends offset text/characterList from the target block to the last\n * fragment block.\n */\n\n\nvar updateTail = function updateTail(block, targetOffset, fragment) {\n // Modify tail portion of block.\n var text = block.getText();\n var chars = block.getCharacterList(); // Modify head portion of block.\n\n var blockSize = text.length;\n var tailText = text.slice(targetOffset, blockSize);\n var tailCharacters = chars.slice(targetOffset, blockSize);\n var prependToTail = fragment.last();\n return prependToTail.merge({\n text: prependToTail.getText() + tailText,\n characterList: prependToTail.getCharacterList().concat(tailCharacters),\n data: prependToTail.getData()\n });\n};\n\nvar getRootBlocks = function getRootBlocks(block, blockMap) {\n var headKey = block.getKey();\n var rootBlock = block;\n var rootBlocks = []; // sometimes the fragment head block will not be part of the blockMap itself this can happen when\n // the fragment head is used to update the target block, however when this does not happen we need\n // to make sure that we include it on the rootBlocks since the first block of a fragment is always a\n // fragment root block\n\n if (blockMap.get(headKey)) {\n rootBlocks.push(headKey);\n }\n\n while (rootBlock && rootBlock.getNextSiblingKey()) {\n var lastSiblingKey = rootBlock.getNextSiblingKey();\n\n if (!lastSiblingKey) {\n break;\n }\n\n rootBlocks.push(lastSiblingKey);\n rootBlock = blockMap.get(lastSiblingKey);\n }\n\n return rootBlocks;\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, originalBlockMap, targetBlock, fragmentHeadBlock) {\n return blockMap.withMutations(function (blockMapState) {\n var targetKey = targetBlock.getKey();\n var headKey = fragmentHeadBlock.getKey();\n var targetNextKey = targetBlock.getNextSiblingKey();\n var targetParentKey = targetBlock.getParentKey();\n var fragmentRootBlocks = getRootBlocks(fragmentHeadBlock, blockMap);\n var lastRootFragmentBlockKey = fragmentRootBlocks[fragmentRootBlocks.length - 1];\n\n if (blockMapState.get(headKey)) {\n // update the fragment head when it is part of the blockMap otherwise\n blockMapState.setIn([targetKey, 'nextSibling'], headKey);\n blockMapState.setIn([headKey, 'prevSibling'], targetKey);\n } else {\n // update the target block that had the fragment head contents merged into it\n blockMapState.setIn([targetKey, 'nextSibling'], fragmentHeadBlock.getNextSiblingKey());\n blockMapState.setIn([fragmentHeadBlock.getNextSiblingKey(), 'prevSibling'], targetKey);\n } // update the last root block fragment\n\n\n blockMapState.setIn([lastRootFragmentBlockKey, 'nextSibling'], targetNextKey); // update the original target next block\n\n if (targetNextKey) {\n blockMapState.setIn([targetNextKey, 'prevSibling'], lastRootFragmentBlockKey);\n } // update fragment parent links\n\n\n fragmentRootBlocks.forEach(function (blockKey) {\n return blockMapState.setIn([blockKey, 'parent'], targetParentKey);\n }); // update targetBlock parent child links\n\n if (targetParentKey) {\n var targetParent = blockMap.get(targetParentKey);\n var originalTargetParentChildKeys = targetParent.getChildKeys();\n var targetBlockIndex = originalTargetParentChildKeys.indexOf(targetKey);\n var insertionIndex = targetBlockIndex + 1;\n var newChildrenKeysArray = originalTargetParentChildKeys.toArray(); // insert fragment children\n\n newChildrenKeysArray.splice.apply(newChildrenKeysArray, [insertionIndex, 0].concat(fragmentRootBlocks));\n blockMapState.setIn([targetParentKey, 'children'], List(newChildrenKeysArray));\n }\n });\n};\n\nvar insertFragment = function insertFragment(contentState, selectionState, blockMap, fragment, targetKey, targetOffset) {\n var isTreeBasedBlockMap = blockMap.first() instanceof ContentBlockNode;\n var newBlockArr = [];\n var fragmentSize = fragment.size;\n var target = blockMap.get(targetKey);\n var head = fragment.first();\n var tail = fragment.last();\n var finalOffset = tail.getLength();\n var finalKey = tail.getKey();\n var shouldNotUpdateFromFragmentBlock = isTreeBasedBlockMap && (!target.getChildKeys().isEmpty() || !head.getChildKeys().isEmpty());\n blockMap.forEach(function (block, blockKey) {\n if (blockKey !== targetKey) {\n newBlockArr.push(block);\n return;\n }\n\n if (shouldNotUpdateFromFragmentBlock) {\n newBlockArr.push(block);\n } else {\n newBlockArr.push(updateHead(block, targetOffset, fragment));\n } // Insert fragment blocks after the head and before the tail.\n\n\n fragment // when we are updating the target block with the head fragment block we skip the first fragment\n // head since its contents have already been merged with the target block otherwise we include\n // the whole fragment\n .slice(shouldNotUpdateFromFragmentBlock ? 0 : 1, fragmentSize - 1).forEach(function (fragmentBlock) {\n return newBlockArr.push(fragmentBlock);\n }); // update tail\n\n newBlockArr.push(updateTail(block, targetOffset, fragment));\n });\n var updatedBlockMap = BlockMapBuilder.createFromArray(newBlockArr);\n\n if (isTreeBasedBlockMap) {\n updatedBlockMap = updateBlockMapLinks(updatedBlockMap, blockMap, target, head);\n }\n\n return contentState.merge({\n blockMap: updatedBlockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: finalKey,\n anchorOffset: finalOffset,\n focusKey: finalKey,\n focusOffset: finalOffset,\n isBackward: false\n })\n });\n};\n\nvar insertFragmentIntoContentState = function insertFragmentIntoContentState(contentState, selectionState, fragmentBlockMap) {\n var mergeBlockData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'REPLACE_WITH_NEW_DATA';\n !selectionState.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`insertFragment` should only be called with a collapsed selection state.') : invariant(false) : void 0;\n var blockMap = contentState.getBlockMap();\n var fragment = randomizeBlockMapKeys(fragmentBlockMap);\n var targetKey = selectionState.getStartKey();\n var targetOffset = selectionState.getStartOffset();\n var targetBlock = blockMap.get(targetKey);\n\n if (targetBlock instanceof ContentBlockNode) {\n !targetBlock.getChildKeys().isEmpty() ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`insertFragment` should not be called when a container node is selected.') : invariant(false) : void 0;\n } // When we insert a fragment with a single block we simply update the target block\n // with the contents of the inserted fragment block\n\n\n if (fragment.size === 1) {\n return updateExistingBlock(contentState, selectionState, blockMap, fragment.first(), targetKey, targetOffset, mergeBlockData);\n }\n\n return insertFragment(contentState, selectionState, blockMap, fragment, targetKey, targetOffset);\n};\n\nmodule.exports = insertFragmentIntoContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * Maintain persistence for target list when appending and prepending.\n */\n\nfunction insertIntoList(targetListArg, toInsert, offset) {\n var targetList = targetListArg;\n\n if (offset === targetList.count()) {\n toInsert.forEach(function (c) {\n targetList = targetList.push(c);\n });\n } else if (offset === 0) {\n toInsert.reverse().forEach(function (c) {\n targetList = targetList.unshift(c);\n });\n } else {\n var head = targetList.slice(0, offset);\n var tail = targetList.slice(offset);\n targetList = head.concat(toInsert, tail).toList();\n }\n\n return targetList;\n}\n\nmodule.exports = insertIntoList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar Immutable = require(\"immutable\");\n\nvar insertIntoList = require(\"./insertIntoList\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar Repeat = Immutable.Repeat;\n\nfunction insertTextIntoContentState(contentState, selectionState, text, characterMetadata) {\n !selectionState.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`insertText` should only be called with a collapsed range.') : invariant(false) : void 0;\n var len = null;\n\n if (text != null) {\n len = text.length;\n }\n\n if (len == null || len === 0) {\n return contentState;\n }\n\n var blockMap = contentState.getBlockMap();\n var key = selectionState.getStartKey();\n var offset = selectionState.getStartOffset();\n var block = blockMap.get(key);\n var blockText = block.getText();\n var newBlock = block.merge({\n text: blockText.slice(0, offset) + text + blockText.slice(offset, block.getLength()),\n characterList: insertIntoList(block.getCharacterList(), Repeat(characterMetadata, len).toList(), offset)\n });\n var newOffset = offset + len;\n return contentState.merge({\n blockMap: blockMap.set(key, newBlock),\n selectionAfter: selectionState.merge({\n anchorOffset: newOffset,\n focusOffset: newOffset\n })\n });\n}\n\nmodule.exports = insertTextIntoContentState;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nfunction isElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nmodule.exports = isElement;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n/**\n * Utility method for determining whether or not the value returned\n * from a handler indicates that it was handled.\n */\n\nfunction isEventHandled(value) {\n return value === 'handled' || value === true;\n}\n\nmodule.exports = isEventHandled;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nvar isElement = require(\"./isElement\");\n\nfunction isHTMLAnchorElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return isElement(node) && node.nodeName === 'A';\n}\n\nmodule.exports = isHTMLAnchorElement;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nvar isElement = require(\"./isElement\");\n\nfunction isHTMLBRElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return isElement(node) && node.nodeName === 'BR';\n}\n\nmodule.exports = isHTMLBRElement;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nfunction isHTMLElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n if (!node.ownerDocument.defaultView) {\n return node instanceof HTMLElement;\n }\n\n if (node instanceof node.ownerDocument.defaultView.HTMLElement) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isHTMLElement;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nvar isElement = require(\"./isElement\");\n\nfunction isHTMLImageElement(node) {\n if (!node || !node.ownerDocument) {\n return false;\n }\n\n return isElement(node) && node.nodeName === 'IMG';\n}\n\nmodule.exports = isHTMLImageElement;","\"use strict\";\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n\nfunction isInstanceOfNode(target) {\n // we changed the name because of having duplicate module provider (fbjs)\n if (!target || !('ownerDocument' in target)) {\n return false;\n }\n\n if ('ownerDocument' in target) {\n var node = target;\n\n if (!node.ownerDocument.defaultView) {\n return node instanceof Node;\n }\n\n if (node instanceof node.ownerDocument.defaultView.Node) {\n return true;\n }\n }\n\n return false;\n}\n\nmodule.exports = isInstanceOfNode;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nfunction isSelectionAtLeafStart(editorState) {\n var selection = editorState.getSelection();\n var anchorKey = selection.getAnchorKey();\n var blockTree = editorState.getBlockTree(anchorKey);\n var offset = selection.getStartOffset();\n var isAtStart = false;\n blockTree.some(function (leafSet) {\n if (offset === leafSet.get('start')) {\n isAtStart = true;\n return true;\n }\n\n if (offset < leafSet.get('end')) {\n return leafSet.get('leaves').some(function (leaf) {\n var leafStart = leaf.get('start');\n\n if (offset === leafStart) {\n isAtStart = true;\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n return isAtStart;\n}\n\nmodule.exports = isSelectionAtLeafStart;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar Keys = require(\"fbjs/lib/Keys\");\n\nfunction isSoftNewlineEvent(e) {\n return e.which === Keys.RETURN && (e.getModifierState('Shift') || e.getModifierState('Alt') || e.getModifierState('Control'));\n}\n\nmodule.exports = isSoftNewlineEvent;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nvar expandRangeToStartOfLine = require(\"./expandRangeToStartOfLine\");\n\nvar getDraftEditorSelectionWithNodes = require(\"./getDraftEditorSelectionWithNodes\");\n\nvar moveSelectionBackward = require(\"./moveSelectionBackward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n\nfunction keyCommandBackspaceToStartOfLine(editorState, e) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n\n if (selection.isCollapsed() && selection.getAnchorOffset() === 0) {\n return moveSelectionBackward(strategyState, 1);\n }\n\n var ownerDocument = e.currentTarget.ownerDocument;\n var domSelection = ownerDocument.defaultView.getSelection(); // getRangeAt can technically throw if there's no selection, but we know\n // there is one here because text editor has focus (the cursor is a\n // selection of length 0). Therefore, we don't need to wrap this in a\n // try-catch block.\n\n var range = domSelection.getRangeAt(0);\n range = expandRangeToStartOfLine(range);\n return getDraftEditorSelectionWithNodes(strategyState, null, range.endContainer, range.endOffset, range.startContainer, range.startOffset).selectionState;\n }, 'backward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n}\n\nmodule.exports = keyCommandBackspaceToStartOfLine;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftRemovableWord = require(\"./DraftRemovableWord\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar moveSelectionBackward = require(\"./moveSelectionBackward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Delete the word that is left of the cursor, as well as any spaces or\n * punctuation after the word.\n */\n\n\nfunction keyCommandBackspaceWord(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var offset = selection.getStartOffset(); // If there are no words before the cursor, remove the preceding newline.\n\n if (offset === 0) {\n return moveSelectionBackward(strategyState, 1);\n }\n\n var key = selection.getStartKey();\n var content = strategyState.getCurrentContent();\n var text = content.getBlockForKey(key).getText().slice(0, offset);\n var toRemove = DraftRemovableWord.getBackward(text);\n return moveSelectionBackward(strategyState, toRemove.length || 1);\n }, 'backward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n}\n\nmodule.exports = keyCommandBackspaceWord;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftRemovableWord = require(\"./DraftRemovableWord\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar moveSelectionForward = require(\"./moveSelectionForward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Delete the word that is right of the cursor, as well as any spaces or\n * punctuation before the word.\n */\n\n\nfunction keyCommandDeleteWord(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var offset = selection.getStartOffset();\n var key = selection.getStartKey();\n var content = strategyState.getCurrentContent();\n var text = content.getBlockForKey(key).getText().slice(offset);\n var toRemove = DraftRemovableWord.getForward(text); // If there are no words in front of the cursor, remove the newline.\n\n return moveSelectionForward(strategyState, toRemove.length || 1);\n }, 'forward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n return EditorState.push(editorState, afterRemoval, 'remove-range');\n}\n\nmodule.exports = keyCommandDeleteWord;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nfunction keyCommandInsertNewline(editorState) {\n var contentState = DraftModifier.splitBlock(editorState.getCurrentContent(), editorState.getSelection());\n return EditorState.push(editorState, contentState, 'split-block');\n}\n\nmodule.exports = keyCommandInsertNewline;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n/**\n * See comment for `moveSelectionToStartOfBlock`.\n */\n\n\nfunction keyCommandMoveSelectionToEndOfBlock(editorState) {\n var selection = editorState.getSelection();\n var endKey = selection.getEndKey();\n var content = editorState.getCurrentContent();\n var textLength = content.getBlockForKey(endKey).getLength();\n return EditorState.set(editorState, {\n selection: selection.merge({\n anchorKey: endKey,\n anchorOffset: textLength,\n focusKey: endKey,\n focusOffset: textLength,\n isBackward: false\n }),\n forceSelection: true\n });\n}\n\nmodule.exports = keyCommandMoveSelectionToEndOfBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n/**\n * Collapse selection at the start of the first selected block. This is used\n * for Firefox versions that attempt to navigate forward/backward instead of\n * moving the cursor. Other browsers are able to move the cursor natively.\n */\n\n\nfunction keyCommandMoveSelectionToStartOfBlock(editorState) {\n var selection = editorState.getSelection();\n var startKey = selection.getStartKey();\n return EditorState.set(editorState, {\n selection: selection.merge({\n anchorKey: startKey,\n anchorOffset: 0,\n focusKey: startKey,\n focusOffset: 0,\n isBackward: false\n }),\n forceSelection: true\n });\n}\n\nmodule.exports = keyCommandMoveSelectionToStartOfBlock;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar moveSelectionBackward = require(\"./moveSelectionBackward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Remove the selected range. If the cursor is collapsed, remove the preceding\n * character. This operation is Unicode-aware, so removing a single character\n * will remove a surrogate pair properly as well.\n */\n\n\nfunction keyCommandPlainBackspace(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var content = strategyState.getCurrentContent();\n var key = selection.getAnchorKey();\n var offset = selection.getAnchorOffset();\n var charBehind = content.getBlockForKey(key).getText()[offset - 1];\n return moveSelectionBackward(strategyState, charBehind ? UnicodeUtils.getUTF16Length(charBehind, 0) : 1);\n }, 'backward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n var selection = editorState.getSelection();\n return EditorState.push(editorState, afterRemoval.set('selectionBefore', selection), selection.isCollapsed() ? 'backspace-character' : 'remove-range');\n}\n\nmodule.exports = keyCommandPlainBackspace;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nvar UnicodeUtils = require(\"fbjs/lib/UnicodeUtils\");\n\nvar moveSelectionForward = require(\"./moveSelectionForward\");\n\nvar removeTextWithStrategy = require(\"./removeTextWithStrategy\");\n/**\n * Remove the selected range. If the cursor is collapsed, remove the following\n * character. This operation is Unicode-aware, so removing a single character\n * will remove a surrogate pair properly as well.\n */\n\n\nfunction keyCommandPlainDelete(editorState) {\n var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {\n var selection = strategyState.getSelection();\n var content = strategyState.getCurrentContent();\n var key = selection.getAnchorKey();\n var offset = selection.getAnchorOffset();\n var charAhead = content.getBlockForKey(key).getText()[offset];\n return moveSelectionForward(strategyState, charAhead ? UnicodeUtils.getUTF16Length(charAhead, 0) : 1);\n }, 'forward');\n\n if (afterRemoval === editorState.getCurrentContent()) {\n return editorState;\n }\n\n var selection = editorState.getSelection();\n return EditorState.push(editorState, afterRemoval.set('selectionBefore', selection), selection.isCollapsed() ? 'delete-character' : 'remove-range');\n}\n\nmodule.exports = keyCommandPlainDelete;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar EditorState = require(\"./EditorState\");\n\nvar getContentStateFragment = require(\"./getContentStateFragment\");\n/**\n * Transpose the characters on either side of a collapsed cursor, or\n * if the cursor is at the end of the block, transpose the last two\n * characters.\n */\n\n\nfunction keyCommandTransposeCharacters(editorState) {\n var selection = editorState.getSelection();\n\n if (!selection.isCollapsed()) {\n return editorState;\n }\n\n var offset = selection.getAnchorOffset();\n\n if (offset === 0) {\n return editorState;\n }\n\n var blockKey = selection.getAnchorKey();\n var content = editorState.getCurrentContent();\n var block = content.getBlockForKey(blockKey);\n var length = block.getLength(); // Nothing to transpose if there aren't two characters.\n\n if (length <= 1) {\n return editorState;\n }\n\n var removalRange;\n var finalSelection;\n\n if (offset === length) {\n // The cursor is at the end of the block. Swap the last two characters.\n removalRange = selection.set('anchorOffset', offset - 1);\n finalSelection = selection;\n } else {\n removalRange = selection.set('focusOffset', offset + 1);\n finalSelection = removalRange.set('anchorOffset', offset + 1);\n } // Extract the character to move as a fragment. This preserves its\n // styling and entity, if any.\n\n\n var movedFragment = getContentStateFragment(content, removalRange);\n var afterRemoval = DraftModifier.removeRange(content, removalRange, 'backward'); // After the removal, the insertion target is one character back.\n\n var selectionAfter = afterRemoval.getSelectionAfter();\n var targetOffset = selectionAfter.getAnchorOffset() - 1;\n var targetRange = selectionAfter.merge({\n anchorOffset: targetOffset,\n focusOffset: targetOffset\n });\n var afterInsert = DraftModifier.replaceWithFragment(afterRemoval, targetRange, movedFragment);\n var newEditorState = EditorState.push(editorState, afterInsert, 'insert-fragment');\n return EditorState.acceptSelection(newEditorState, finalSelection);\n}\n\nmodule.exports = keyCommandTransposeCharacters;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar EditorState = require(\"./EditorState\");\n\nfunction keyCommandUndo(e, editorState, updateFn) {\n var undoneState = EditorState.undo(editorState); // If the last change to occur was a spellcheck change, allow the undo\n // event to fall through to the browser. This allows the browser to record\n // the unwanted change, which should soon lead it to learn not to suggest\n // the correction again.\n\n if (editorState.getLastChangeType() === 'spellcheck-change') {\n var nativelyRenderedContent = undoneState.getCurrentContent();\n updateFn(EditorState.set(undoneState, {\n nativelyRenderedContent: nativelyRenderedContent\n }));\n return;\n } // Otheriwse, manage the undo behavior manually.\n\n\n e.preventDefault();\n\n if (!editorState.getNativelyRenderedContent()) {\n updateFn(undoneState);\n return;\n } // Trigger a re-render with the current content state to ensure that the\n // component tree has up-to-date props for comparison.\n\n\n updateFn(EditorState.set(editorState, {\n nativelyRenderedContent: null\n })); // Wait to ensure that the re-render has occurred before performing\n // the undo action.\n\n setTimeout(function () {\n updateFn(undoneState);\n }, 0);\n}\n\nmodule.exports = keyCommandUndo;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar Immutable = require(\"immutable\");\n\nvar Map = Immutable.Map;\n\nfunction modifyBlockForContentState(contentState, selectionState, operation) {\n var startKey = selectionState.getStartKey();\n var endKey = selectionState.getEndKey();\n var blockMap = contentState.getBlockMap();\n var newBlocks = blockMap.toSeq().skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).concat(Map([[endKey, blockMap.get(endKey)]])).map(operation);\n return contentState.merge({\n blockMap: blockMap.merge(newBlocks),\n selectionBefore: selectionState,\n selectionAfter: selectionState\n });\n}\n\nmodule.exports = modifyBlockForContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar getNextDelimiterBlockKey = require(\"./getNextDelimiterBlockKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar OrderedMap = Immutable.OrderedMap,\n List = Immutable.List;\n\nvar transformBlock = function transformBlock(key, blockMap, func) {\n if (!key) {\n return;\n }\n\n var block = blockMap.get(key);\n\n if (!block) {\n return;\n }\n\n blockMap.set(key, func(block));\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, originalBlockToBeMoved, originalTargetBlock, insertionMode, isExperimentalTreeBlock) {\n if (!isExperimentalTreeBlock) {\n return blockMap;\n } // possible values of 'insertionMode' are: 'after', 'before'\n\n\n var isInsertedAfterTarget = insertionMode === 'after';\n var originalBlockKey = originalBlockToBeMoved.getKey();\n var originalTargetKey = originalTargetBlock.getKey();\n var originalParentKey = originalBlockToBeMoved.getParentKey();\n var originalNextSiblingKey = originalBlockToBeMoved.getNextSiblingKey();\n var originalPrevSiblingKey = originalBlockToBeMoved.getPrevSiblingKey();\n var newParentKey = originalTargetBlock.getParentKey();\n var newNextSiblingKey = isInsertedAfterTarget ? originalTargetBlock.getNextSiblingKey() : originalTargetKey;\n var newPrevSiblingKey = isInsertedAfterTarget ? originalTargetKey : originalTargetBlock.getPrevSiblingKey();\n return blockMap.withMutations(function (blocks) {\n // update old parent\n transformBlock(originalParentKey, blocks, function (block) {\n var parentChildrenList = block.getChildKeys();\n return block.merge({\n children: parentChildrenList[\"delete\"](parentChildrenList.indexOf(originalBlockKey))\n });\n }); // update old prev\n\n transformBlock(originalPrevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: originalNextSiblingKey\n });\n }); // update old next\n\n transformBlock(originalNextSiblingKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalPrevSiblingKey\n });\n }); // update new next\n\n transformBlock(newNextSiblingKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalBlockKey\n });\n }); // update new prev\n\n transformBlock(newPrevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: originalBlockKey\n });\n }); // update new parent\n\n transformBlock(newParentKey, blocks, function (block) {\n var newParentChildrenList = block.getChildKeys();\n var targetBlockIndex = newParentChildrenList.indexOf(originalTargetKey);\n var insertionIndex = isInsertedAfterTarget ? targetBlockIndex + 1 : targetBlockIndex !== 0 ? targetBlockIndex - 1 : 0;\n var newChildrenArray = newParentChildrenList.toArray();\n newChildrenArray.splice(insertionIndex, 0, originalBlockKey);\n return block.merge({\n children: List(newChildrenArray)\n });\n }); // update block\n\n transformBlock(originalBlockKey, blocks, function (block) {\n return block.merge({\n nextSibling: newNextSiblingKey,\n prevSibling: newPrevSiblingKey,\n parent: newParentKey\n });\n });\n });\n};\n\nvar moveBlockInContentState = function moveBlockInContentState(contentState, blockToBeMoved, targetBlock, insertionMode) {\n !(insertionMode !== 'replace') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Replacing blocks is not supported.') : invariant(false) : void 0;\n var targetKey = targetBlock.getKey();\n var blockKey = blockToBeMoved.getKey();\n !(blockKey !== targetKey) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n var blockMap = contentState.getBlockMap();\n var isExperimentalTreeBlock = blockToBeMoved instanceof ContentBlockNode;\n var blocksToBeMoved = [blockToBeMoved];\n var blockMapWithoutBlocksToBeMoved = blockMap[\"delete\"](blockKey);\n\n if (isExperimentalTreeBlock) {\n blocksToBeMoved = [];\n blockMapWithoutBlocksToBeMoved = blockMap.withMutations(function (blocks) {\n var nextSiblingKey = blockToBeMoved.getNextSiblingKey();\n var nextDelimiterBlockKey = getNextDelimiterBlockKey(blockToBeMoved, blocks);\n blocks.toSeq().skipUntil(function (block) {\n return block.getKey() === blockKey;\n }).takeWhile(function (block) {\n var key = block.getKey();\n var isBlockToBeMoved = key === blockKey;\n var hasNextSiblingAndIsNotNextSibling = nextSiblingKey && key !== nextSiblingKey;\n var doesNotHaveNextSiblingAndIsNotDelimiter = !nextSiblingKey && block.getParentKey() && (!nextDelimiterBlockKey || key !== nextDelimiterBlockKey);\n return !!(isBlockToBeMoved || hasNextSiblingAndIsNotNextSibling || doesNotHaveNextSiblingAndIsNotDelimiter);\n }).forEach(function (block) {\n blocksToBeMoved.push(block);\n blocks[\"delete\"](block.getKey());\n });\n });\n }\n\n var blocksBefore = blockMapWithoutBlocksToBeMoved.toSeq().takeUntil(function (v) {\n return v === targetBlock;\n });\n var blocksAfter = blockMapWithoutBlocksToBeMoved.toSeq().skipUntil(function (v) {\n return v === targetBlock;\n }).skip(1);\n var slicedBlocks = blocksToBeMoved.map(function (block) {\n return [block.getKey(), block];\n });\n var newBlocks = OrderedMap();\n\n if (insertionMode === 'before') {\n var blockBefore = contentState.getBlockBefore(targetKey);\n !(!blockBefore || blockBefore.getKey() !== blockToBeMoved.getKey()) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n newBlocks = blocksBefore.concat([].concat(slicedBlocks, [[targetKey, targetBlock]]), blocksAfter).toOrderedMap();\n } else if (insertionMode === 'after') {\n var blockAfter = contentState.getBlockAfter(targetKey);\n !(!blockAfter || blockAfter.getKey() !== blockKey) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Block cannot be moved next to itself.') : invariant(false) : void 0;\n newBlocks = blocksBefore.concat([[targetKey, targetBlock]].concat(slicedBlocks), blocksAfter).toOrderedMap();\n }\n\n return contentState.merge({\n blockMap: updateBlockMapLinks(newBlocks, blockToBeMoved, targetBlock, insertionMode, isExperimentalTreeBlock),\n selectionBefore: contentState.getSelectionAfter(),\n selectionAfter: contentState.getSelectionAfter().merge({\n anchorKey: blockKey,\n focusKey: blockKey\n })\n });\n};\n\nmodule.exports = moveBlockInContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar warning = require(\"fbjs/lib/warning\");\n/**\n * Given a collapsed selection, move the focus `maxDistance` backward within\n * the selected block. If the selection will go beyond the start of the block,\n * move focus to the end of the previous block, but no further.\n *\n * This function is not Unicode-aware, so surrogate pairs will be treated\n * as having length 2.\n */\n\n\nfunction moveSelectionBackward(editorState, maxDistance) {\n var selection = editorState.getSelection(); // Should eventually make this an invariant\n\n process.env.NODE_ENV !== \"production\" ? warning(selection.isCollapsed(), 'moveSelectionBackward should only be called with a collapsed SelectionState') : void 0;\n var content = editorState.getCurrentContent();\n var key = selection.getStartKey();\n var offset = selection.getStartOffset();\n var focusKey = key;\n var focusOffset = 0;\n\n if (maxDistance > offset) {\n var keyBefore = content.getKeyBefore(key);\n\n if (keyBefore == null) {\n focusKey = key;\n } else {\n focusKey = keyBefore;\n var blockBefore = content.getBlockForKey(keyBefore);\n focusOffset = blockBefore.getText().length;\n }\n } else {\n focusOffset = offset - maxDistance;\n }\n\n return selection.merge({\n focusKey: focusKey,\n focusOffset: focusOffset,\n isBackward: true\n });\n}\n\nmodule.exports = moveSelectionBackward;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar warning = require(\"fbjs/lib/warning\");\n/**\n * Given a collapsed selection, move the focus `maxDistance` forward within\n * the selected block. If the selection will go beyond the end of the block,\n * move focus to the start of the next block, but no further.\n *\n * This function is not Unicode-aware, so surrogate pairs will be treated\n * as having length 2.\n */\n\n\nfunction moveSelectionForward(editorState, maxDistance) {\n var selection = editorState.getSelection(); // Should eventually make this an invariant\n\n process.env.NODE_ENV !== \"production\" ? warning(selection.isCollapsed(), 'moveSelectionForward should only be called with a collapsed SelectionState') : void 0;\n var key = selection.getStartKey();\n var offset = selection.getStartOffset();\n var content = editorState.getCurrentContent();\n var focusKey = key;\n var focusOffset;\n var block = content.getBlockForKey(key);\n\n if (maxDistance > block.getText().length - offset) {\n focusKey = content.getKeyAfter(key);\n focusOffset = 0;\n } else {\n focusOffset = offset + maxDistance;\n }\n\n return selection.merge({\n focusKey: focusKey,\n focusOffset: focusOffset\n });\n}\n\nmodule.exports = moveSelectionForward;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar OrderedMap = Immutable.OrderedMap;\n\nvar randomizeContentBlockNodeKeys = function randomizeContentBlockNodeKeys(blockMap) {\n var newKeysRef = {}; // we keep track of root blocks in order to update subsequent sibling links\n\n var lastRootBlock;\n return OrderedMap(blockMap.withMutations(function (blockMapState) {\n blockMapState.forEach(function (block, index) {\n var oldKey = block.getKey();\n var nextKey = block.getNextSiblingKey();\n var prevKey = block.getPrevSiblingKey();\n var childrenKeys = block.getChildKeys();\n var parentKey = block.getParentKey(); // new key that we will use to build linking\n\n var key = generateRandomKey(); // we will add it here to re-use it later\n\n newKeysRef[oldKey] = key;\n\n if (nextKey) {\n var nextBlock = blockMapState.get(nextKey);\n\n if (nextBlock) {\n blockMapState.setIn([nextKey, 'prevSibling'], key);\n } else {\n // this can happen when generating random keys for fragments\n blockMapState.setIn([oldKey, 'nextSibling'], null);\n }\n }\n\n if (prevKey) {\n var prevBlock = blockMapState.get(prevKey);\n\n if (prevBlock) {\n blockMapState.setIn([prevKey, 'nextSibling'], key);\n } else {\n // this can happen when generating random keys for fragments\n blockMapState.setIn([oldKey, 'prevSibling'], null);\n }\n }\n\n if (parentKey && blockMapState.get(parentKey)) {\n var parentBlock = blockMapState.get(parentKey);\n var parentChildrenList = parentBlock.getChildKeys();\n blockMapState.setIn([parentKey, 'children'], parentChildrenList.set(parentChildrenList.indexOf(block.getKey()), key));\n } else {\n // blocks will then be treated as root block nodes\n blockMapState.setIn([oldKey, 'parent'], null);\n\n if (lastRootBlock) {\n blockMapState.setIn([lastRootBlock.getKey(), 'nextSibling'], key);\n blockMapState.setIn([oldKey, 'prevSibling'], newKeysRef[lastRootBlock.getKey()]);\n }\n\n lastRootBlock = blockMapState.get(oldKey);\n }\n\n childrenKeys.forEach(function (childKey) {\n var childBlock = blockMapState.get(childKey);\n\n if (childBlock) {\n blockMapState.setIn([childKey, 'parent'], key);\n } else {\n blockMapState.setIn([oldKey, 'children'], block.getChildKeys().filter(function (child) {\n return child !== childKey;\n }));\n }\n });\n });\n }).toArray().map(function (block) {\n return [newKeysRef[block.getKey()], block.set('key', newKeysRef[block.getKey()])];\n }));\n};\n\nvar randomizeContentBlockKeys = function randomizeContentBlockKeys(blockMap) {\n return OrderedMap(blockMap.toArray().map(function (block) {\n var key = generateRandomKey();\n return [key, block.set('key', key)];\n }));\n};\n\nvar randomizeBlockMapKeys = function randomizeBlockMapKeys(blockMap) {\n var isTreeBasedBlockMap = blockMap.first() instanceof ContentBlockNode;\n\n if (!isTreeBasedBlockMap) {\n return randomizeContentBlockKeys(blockMap);\n }\n\n return randomizeContentBlockNodeKeys(blockMap);\n};\n\nmodule.exports = randomizeBlockMapKeys;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar CharacterMetadata = require(\"./CharacterMetadata\");\n\nvar findRangesImmutable = require(\"./findRangesImmutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nfunction removeEntitiesAtEdges(contentState, selectionState) {\n var blockMap = contentState.getBlockMap();\n var entityMap = contentState.getEntityMap();\n var updatedBlocks = {};\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var startBlock = blockMap.get(startKey);\n var updatedStart = removeForBlock(entityMap, startBlock, startOffset);\n\n if (updatedStart !== startBlock) {\n updatedBlocks[startKey] = updatedStart;\n }\n\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var endBlock = blockMap.get(endKey);\n\n if (startKey === endKey) {\n endBlock = updatedStart;\n }\n\n var updatedEnd = removeForBlock(entityMap, endBlock, endOffset);\n\n if (updatedEnd !== endBlock) {\n updatedBlocks[endKey] = updatedEnd;\n }\n\n if (!Object.keys(updatedBlocks).length) {\n return contentState.set('selectionAfter', selectionState);\n }\n\n return contentState.merge({\n blockMap: blockMap.merge(updatedBlocks),\n selectionAfter: selectionState\n });\n}\n/**\n * Given a list of characters and an offset that is in the middle of an entity,\n * returns the start and end of the entity that is overlapping the offset.\n * Note: This method requires that the offset be in an entity range.\n */\n\n\nfunction getRemovalRange(characters, entityKey, offset) {\n var removalRange; // Iterates through a list looking for ranges of matching items\n // based on the 'isEqual' callback.\n // Then instead of returning the result, call the 'found' callback\n // with each range.\n // Then filters those ranges based on the 'filter' callback\n //\n // Here we use it to find ranges of characters with the same entity key.\n\n findRangesImmutable(characters, // the list to iterate through\n function (a, b) {\n return a.getEntity() === b.getEntity();\n }, // 'isEqual' callback\n function (element) {\n return element.getEntity() === entityKey;\n }, // 'filter' callback\n function (start, end) {\n // 'found' callback\n if (start <= offset && end >= offset) {\n // this entity overlaps the offset index\n removalRange = {\n start: start,\n end: end\n };\n }\n });\n !(typeof removalRange === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Removal range must exist within character list.') : invariant(false) : void 0;\n return removalRange;\n}\n\nfunction removeForBlock(entityMap, block, offset) {\n var chars = block.getCharacterList();\n var charBefore = offset > 0 ? chars.get(offset - 1) : undefined;\n var charAfter = offset < chars.count() ? chars.get(offset) : undefined;\n var entityBeforeCursor = charBefore ? charBefore.getEntity() : undefined;\n var entityAfterCursor = charAfter ? charAfter.getEntity() : undefined;\n\n if (entityAfterCursor && entityAfterCursor === entityBeforeCursor) {\n var entity = entityMap.__get(entityAfterCursor);\n\n if (entity.getMutability() !== 'MUTABLE') {\n var _getRemovalRange = getRemovalRange(chars, entityAfterCursor, offset),\n start = _getRemovalRange.start,\n end = _getRemovalRange.end;\n\n var current;\n\n while (start < end) {\n current = chars.get(start);\n chars = chars.set(start, CharacterMetadata.applyEntity(current, null));\n start++;\n }\n\n return block.set('characterList', chars);\n }\n }\n\n return block;\n}\n\nmodule.exports = removeEntitiesAtEdges;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar getNextDelimiterBlockKey = require(\"./getNextDelimiterBlockKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar List = Immutable.List,\n Map = Immutable.Map;\n\nvar transformBlock = function transformBlock(key, blockMap, func) {\n if (!key) {\n return;\n }\n\n var block = blockMap.get(key);\n\n if (!block) {\n return;\n }\n\n blockMap.set(key, func(block));\n};\n/**\n * Ancestors needs to be preserved when there are non selected\n * children to make sure we do not leave any orphans behind\n */\n\n\nvar getAncestorsKeys = function getAncestorsKeys(blockKey, blockMap) {\n var parents = [];\n\n if (!blockKey) {\n return parents;\n }\n\n var blockNode = blockMap.get(blockKey);\n\n while (blockNode && blockNode.getParentKey()) {\n var parentKey = blockNode.getParentKey();\n\n if (parentKey) {\n parents.push(parentKey);\n }\n\n blockNode = parentKey ? blockMap.get(parentKey) : null;\n }\n\n return parents;\n};\n/**\n * Get all next delimiter keys until we hit a root delimiter and return\n * an array of key references\n */\n\n\nvar getNextDelimitersBlockKeys = function getNextDelimitersBlockKeys(block, blockMap) {\n var nextDelimiters = [];\n\n if (!block) {\n return nextDelimiters;\n }\n\n var nextDelimiter = getNextDelimiterBlockKey(block, blockMap);\n\n while (nextDelimiter && blockMap.get(nextDelimiter)) {\n var _block = blockMap.get(nextDelimiter);\n\n nextDelimiters.push(nextDelimiter); // we do not need to keep checking all root node siblings, just the first occurance\n\n nextDelimiter = _block.getParentKey() ? getNextDelimiterBlockKey(_block, blockMap) : null;\n }\n\n return nextDelimiters;\n};\n\nvar getNextValidSibling = function getNextValidSibling(block, blockMap, originalBlockMap) {\n if (!block) {\n return null;\n } // note that we need to make sure we refer to the original block since this\n // function is called within a withMutations\n\n\n var nextValidSiblingKey = originalBlockMap.get(block.getKey()).getNextSiblingKey();\n\n while (nextValidSiblingKey && !blockMap.get(nextValidSiblingKey)) {\n nextValidSiblingKey = originalBlockMap.get(nextValidSiblingKey).getNextSiblingKey() || null;\n }\n\n return nextValidSiblingKey;\n};\n\nvar getPrevValidSibling = function getPrevValidSibling(block, blockMap, originalBlockMap) {\n if (!block) {\n return null;\n } // note that we need to make sure we refer to the original block since this\n // function is called within a withMutations\n\n\n var prevValidSiblingKey = originalBlockMap.get(block.getKey()).getPrevSiblingKey();\n\n while (prevValidSiblingKey && !blockMap.get(prevValidSiblingKey)) {\n prevValidSiblingKey = originalBlockMap.get(prevValidSiblingKey).getPrevSiblingKey() || null;\n }\n\n return prevValidSiblingKey;\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, startBlock, endBlock, originalBlockMap) {\n return blockMap.withMutations(function (blocks) {\n // update start block if its retained\n transformBlock(startBlock.getKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n }); // update endblock if its retained\n\n transformBlock(endBlock.getKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n }); // update start block parent ancestors\n\n getAncestorsKeys(startBlock.getKey(), originalBlockMap).forEach(function (parentKey) {\n return transformBlock(parentKey, blocks, function (block) {\n return block.merge({\n children: block.getChildKeys().filter(function (key) {\n return blocks.get(key);\n }),\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n });\n }); // update start block next - can only happen if startBlock == endBlock\n\n transformBlock(startBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: startBlock.getPrevSiblingKey()\n });\n }); // update start block prev\n\n transformBlock(startBlock.getPrevSiblingKey(), blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap)\n });\n }); // update end block next\n\n transformBlock(endBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n }); // update end block prev\n\n transformBlock(endBlock.getPrevSiblingKey(), blocks, function (block) {\n return block.merge({\n nextSibling: endBlock.getNextSiblingKey()\n });\n }); // update end block parent ancestors\n\n getAncestorsKeys(endBlock.getKey(), originalBlockMap).forEach(function (parentKey) {\n transformBlock(parentKey, blocks, function (block) {\n return block.merge({\n children: block.getChildKeys().filter(function (key) {\n return blocks.get(key);\n }),\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n });\n }); // update next delimiters all the way to a root delimiter\n\n getNextDelimitersBlockKeys(endBlock, originalBlockMap).forEach(function (delimiterKey) {\n return transformBlock(delimiterKey, blocks, function (block) {\n return block.merge({\n nextSibling: getNextValidSibling(block, blocks, originalBlockMap),\n prevSibling: getPrevValidSibling(block, blocks, originalBlockMap)\n });\n });\n }); // if parent (startBlock) was deleted\n\n if (blockMap.get(startBlock.getKey()) == null && blockMap.get(endBlock.getKey()) != null && endBlock.getParentKey() === startBlock.getKey() && endBlock.getPrevSiblingKey() == null) {\n var prevSiblingKey = startBlock.getPrevSiblingKey(); // endBlock becomes next sibling of parent's prevSibling\n\n transformBlock(endBlock.getKey(), blocks, function (block) {\n return block.merge({\n prevSibling: prevSiblingKey\n });\n });\n transformBlock(prevSiblingKey, blocks, function (block) {\n return block.merge({\n nextSibling: endBlock.getKey()\n });\n }); // Update parent for previous parent's children, and children for that parent\n\n var prevSibling = prevSiblingKey ? blockMap.get(prevSiblingKey) : null;\n var newParentKey = prevSibling ? prevSibling.getParentKey() : null;\n startBlock.getChildKeys().forEach(function (childKey) {\n transformBlock(childKey, blocks, function (block) {\n return block.merge({\n parent: newParentKey // set to null if there is no parent\n\n });\n });\n });\n\n if (newParentKey != null) {\n var newParent = blockMap.get(newParentKey);\n transformBlock(newParentKey, blocks, function (block) {\n return block.merge({\n children: newParent.getChildKeys().concat(startBlock.getChildKeys())\n });\n });\n } // last child of deleted parent should point to next sibling\n\n\n transformBlock(startBlock.getChildKeys().find(function (key) {\n var block = blockMap.get(key);\n return block.getNextSiblingKey() === null;\n }), blocks, function (block) {\n return block.merge({\n nextSibling: startBlock.getNextSiblingKey()\n });\n });\n }\n });\n};\n\nvar removeRangeFromContentState = function removeRangeFromContentState(contentState, selectionState) {\n if (selectionState.isCollapsed()) {\n return contentState;\n }\n\n var blockMap = contentState.getBlockMap();\n var startKey = selectionState.getStartKey();\n var startOffset = selectionState.getStartOffset();\n var endKey = selectionState.getEndKey();\n var endOffset = selectionState.getEndOffset();\n var startBlock = blockMap.get(startKey);\n var endBlock = blockMap.get(endKey); // we assume that ContentBlockNode and ContentBlocks are not mixed together\n\n var isExperimentalTreeBlock = startBlock instanceof ContentBlockNode; // used to retain blocks that should not be deleted to avoid orphan children\n\n var parentAncestors = [];\n\n if (isExperimentalTreeBlock) {\n var endBlockchildrenKeys = endBlock.getChildKeys();\n var endBlockAncestors = getAncestorsKeys(endKey, blockMap); // endBlock has unselected siblings so we can not remove its ancestors parents\n\n if (endBlock.getNextSiblingKey()) {\n parentAncestors = parentAncestors.concat(endBlockAncestors);\n } // endBlock has children so can not remove this block or any of its ancestors\n\n\n if (!endBlockchildrenKeys.isEmpty()) {\n parentAncestors = parentAncestors.concat(endBlockAncestors.concat([endKey]));\n } // we need to retain all ancestors of the next delimiter block\n\n\n parentAncestors = parentAncestors.concat(getAncestorsKeys(getNextDelimiterBlockKey(endBlock, blockMap), blockMap));\n }\n\n var characterList;\n\n if (startBlock === endBlock) {\n characterList = removeFromList(startBlock.getCharacterList(), startOffset, endOffset);\n } else {\n characterList = startBlock.getCharacterList().slice(0, startOffset).concat(endBlock.getCharacterList().slice(endOffset));\n }\n\n var modifiedStart = startBlock.merge({\n text: startBlock.getText().slice(0, startOffset) + endBlock.getText().slice(endOffset),\n characterList: characterList\n }); // If cursor (collapsed) is at the start of the first child, delete parent\n // instead of child\n\n var shouldDeleteParent = isExperimentalTreeBlock && startOffset === 0 && endOffset === 0 && endBlock.getParentKey() === startKey && endBlock.getPrevSiblingKey() == null;\n var newBlocks = shouldDeleteParent ? Map([[startKey, null]]) : blockMap.toSeq().skipUntil(function (_, k) {\n return k === startKey;\n }).takeUntil(function (_, k) {\n return k === endKey;\n }).filter(function (_, k) {\n return parentAncestors.indexOf(k) === -1;\n }).concat(Map([[endKey, null]])).map(function (_, k) {\n return k === startKey ? modifiedStart : null;\n });\n var updatedBlockMap = blockMap.merge(newBlocks).filter(function (block) {\n return !!block;\n }); // Only update tree block pointers if the range is across blocks\n\n if (isExperimentalTreeBlock && startBlock !== endBlock) {\n updatedBlockMap = updateBlockMapLinks(updatedBlockMap, startBlock, endBlock, blockMap);\n }\n\n return contentState.merge({\n blockMap: updatedBlockMap,\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: startKey,\n anchorOffset: startOffset,\n focusKey: startKey,\n focusOffset: startOffset,\n isBackward: false\n })\n });\n};\n/**\n * Maintain persistence for target list when removing characters on the\n * head and tail of the character list.\n */\n\n\nvar removeFromList = function removeFromList(targetList, startOffset, endOffset) {\n if (startOffset === 0) {\n while (startOffset < endOffset) {\n targetList = targetList.shift();\n startOffset++;\n }\n } else if (endOffset === targetList.count()) {\n while (endOffset > startOffset) {\n targetList = targetList.pop();\n endOffset--;\n }\n } else {\n var head = targetList.slice(0, startOffset);\n var tail = targetList.slice(endOffset);\n targetList = head.concat(tail).toList();\n }\n\n return targetList;\n};\n\nmodule.exports = removeRangeFromContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftModifier = require(\"./DraftModifier\");\n\nvar gkx = require(\"./gkx\");\n\nvar experimentalTreeDataSupport = gkx('draft_tree_data_support');\n/**\n * For a collapsed selection state, remove text based on the specified strategy.\n * If the selection state is not collapsed, remove the entire selected range.\n */\n\nfunction removeTextWithStrategy(editorState, strategy, direction) {\n var selection = editorState.getSelection();\n var content = editorState.getCurrentContent();\n var target = selection;\n var anchorKey = selection.getAnchorKey();\n var focusKey = selection.getFocusKey();\n var anchorBlock = content.getBlockForKey(anchorKey);\n\n if (experimentalTreeDataSupport) {\n if (direction === 'forward') {\n if (anchorKey !== focusKey) {\n // For now we ignore forward delete across blocks,\n // if there is demand for this we will implement it.\n return content;\n }\n }\n }\n\n if (selection.isCollapsed()) {\n if (direction === 'forward') {\n if (editorState.isSelectionAtEndOfContent()) {\n return content;\n }\n\n if (experimentalTreeDataSupport) {\n var isAtEndOfBlock = selection.getAnchorOffset() === content.getBlockForKey(anchorKey).getLength();\n\n if (isAtEndOfBlock) {\n var anchorBlockSibling = content.getBlockForKey(anchorBlock.nextSibling);\n\n if (!anchorBlockSibling || anchorBlockSibling.getLength() === 0) {\n // For now we ignore forward delete at the end of a block,\n // if there is demand for this we will implement it.\n return content;\n }\n }\n }\n } else if (editorState.isSelectionAtStartOfContent()) {\n return content;\n }\n\n target = strategy(editorState);\n\n if (target === selection) {\n return content;\n }\n }\n\n return DraftModifier.removeRange(content, target, direction);\n}\n\nmodule.exports = removeTextWithStrategy;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar REGEX_BLOCK_DELIMITER = new RegExp('\\r', 'g');\n\nfunction sanitizeDraftText(input) {\n return input.replace(REGEX_BLOCK_DELIMITER, '');\n}\n\nmodule.exports = sanitizeDraftText;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar DraftEffects = require(\"./DraftEffects\");\n\nvar DraftJsDebugLogging = require(\"./DraftJsDebugLogging\");\n\nvar UserAgent = require(\"fbjs/lib/UserAgent\");\n\nvar containsNode = require(\"fbjs/lib/containsNode\");\n\nvar getActiveElement = require(\"fbjs/lib/getActiveElement\");\n\nvar getCorrectDocumentFromNode = require(\"./getCorrectDocumentFromNode\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar isElement = require(\"./isElement\");\n\nvar isIE = UserAgent.isBrowser('IE');\n\nfunction getAnonymizedDOM(node, getNodeLabels) {\n if (!node) {\n return '[empty]';\n }\n\n var anonymized = anonymizeTextWithin(node, getNodeLabels);\n\n if (anonymized.nodeType === Node.TEXT_NODE) {\n return anonymized.textContent;\n }\n\n !isElement(anonymized) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Node must be an Element if it is not a text node.') : invariant(false) : void 0;\n var castedElement = anonymized;\n return castedElement.outerHTML;\n}\n\nfunction anonymizeTextWithin(node, getNodeLabels) {\n var labels = getNodeLabels !== undefined ? getNodeLabels(node) : [];\n\n if (node.nodeType === Node.TEXT_NODE) {\n var length = node.textContent.length;\n return getCorrectDocumentFromNode(node).createTextNode('[text ' + length + (labels.length ? ' | ' + labels.join(', ') : '') + ']');\n }\n\n var clone = node.cloneNode();\n\n if (clone.nodeType === 1 && labels.length) {\n clone.setAttribute('data-labels', labels.join(', '));\n }\n\n var childNodes = node.childNodes;\n\n for (var ii = 0; ii < childNodes.length; ii++) {\n clone.appendChild(anonymizeTextWithin(childNodes[ii], getNodeLabels));\n }\n\n return clone;\n}\n\nfunction getAnonymizedEditorDOM(node, getNodeLabels) {\n // grabbing the DOM content of the Draft editor\n var currentNode = node; // this should only be used after checking with isElement\n\n var castedNode = currentNode;\n\n while (currentNode) {\n if (isElement(currentNode) && castedNode.hasAttribute('contenteditable')) {\n // found the Draft editor container\n return getAnonymizedDOM(currentNode, getNodeLabels);\n } else {\n currentNode = currentNode.parentNode;\n castedNode = currentNode;\n }\n }\n\n return 'Could not find contentEditable parent of node';\n}\n\nfunction getNodeLength(node) {\n return node.nodeValue === null ? node.childNodes.length : node.nodeValue.length;\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n */\n\n\nfunction setDraftEditorSelection(selectionState, node, blockKey, nodeStart, nodeEnd) {\n // It's possible that the editor has been removed from the DOM but\n // our selection code doesn't know it yet. Forcing selection in\n // this case may lead to errors, so just bail now.\n var documentObject = getCorrectDocumentFromNode(node);\n\n if (!containsNode(documentObject.documentElement, node)) {\n return;\n }\n\n var selection = documentObject.defaultView.getSelection();\n var anchorKey = selectionState.getAnchorKey();\n var anchorOffset = selectionState.getAnchorOffset();\n var focusKey = selectionState.getFocusKey();\n var focusOffset = selectionState.getFocusOffset();\n var isBackward = selectionState.getIsBackward(); // IE doesn't support backward selection. Swap key/offset pairs.\n\n if (!selection.extend && isBackward) {\n var tempKey = anchorKey;\n var tempOffset = anchorOffset;\n anchorKey = focusKey;\n anchorOffset = focusOffset;\n focusKey = tempKey;\n focusOffset = tempOffset;\n isBackward = false;\n }\n\n var hasAnchor = anchorKey === blockKey && nodeStart <= anchorOffset && nodeEnd >= anchorOffset;\n var hasFocus = focusKey === blockKey && nodeStart <= focusOffset && nodeEnd >= focusOffset; // If the selection is entirely bound within this node, set the selection\n // and be done.\n\n if (hasAnchor && hasFocus) {\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n addFocusToSelection(selection, node, focusOffset - nodeStart, selectionState);\n return;\n }\n\n if (!isBackward) {\n // If the anchor is within this node, set the range start.\n if (hasAnchor) {\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n } // If the focus is within this node, we can assume that we have\n // already set the appropriate start range on the selection, and\n // can simply extend the selection.\n\n\n if (hasFocus) {\n addFocusToSelection(selection, node, focusOffset - nodeStart, selectionState);\n }\n } else {\n // If this node has the focus, set the selection range to be a\n // collapsed range beginning here. Later, when we encounter the anchor,\n // we'll use this information to extend the selection.\n if (hasFocus) {\n selection.removeAllRanges();\n addPointToSelection(selection, node, focusOffset - nodeStart, selectionState);\n } // If this node has the anchor, we may assume that the correct\n // focus information is already stored on the selection object.\n // We keep track of it, reset the selection range, and extend it\n // back to the focus point.\n\n\n if (hasAnchor) {\n var storedFocusNode = selection.focusNode;\n var storedFocusOffset = selection.focusOffset;\n selection.removeAllRanges();\n addPointToSelection(selection, node, anchorOffset - nodeStart, selectionState);\n addFocusToSelection(selection, storedFocusNode, storedFocusOffset, selectionState);\n }\n }\n}\n/**\n * Extend selection towards focus point.\n */\n\n\nfunction addFocusToSelection(selection, node, offset, selectionState) {\n var activeElement = getActiveElement();\n var extend = selection.extend; // containsNode returns false if node is null.\n // Let's refine the type of this value out here so flow knows.\n\n if (extend && node != null && containsNode(activeElement, node)) {\n // If `extend` is called while another element has focus, an error is\n // thrown. We therefore disable `extend` if the active element is somewhere\n // other than the node we are selecting. This should only occur in Firefox,\n // since it is the only browser to support multiple selections.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=921444.\n // logging to catch bug that is being reported in t16250795\n if (offset > getNodeLength(node)) {\n // the call to 'selection.extend' is about to throw\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node),\n extraParams: JSON.stringify({\n offset: offset\n }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n } // logging to catch bug that is being reported in t18110632\n\n\n var nodeWasFocus = node === selection.focusNode;\n\n try {\n // Fixes some reports of \"InvalidStateError: Failed to execute 'extend' on\n // 'Selection': This Selection object doesn't have any Ranges.\"\n // Note: selection.extend does not exist in IE.\n if (selection.rangeCount > 0 && selection.extend) {\n selection.extend(node, offset);\n }\n } catch (e) {\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node, function (n) {\n var labels = [];\n\n if (n === activeElement) {\n labels.push('active element');\n }\n\n if (n === selection.anchorNode) {\n labels.push('selection anchor node');\n }\n\n if (n === selection.focusNode) {\n labels.push('selection focus node');\n }\n\n return labels;\n }),\n extraParams: JSON.stringify({\n activeElementName: activeElement ? activeElement.nodeName : null,\n nodeIsFocus: node === selection.focusNode,\n nodeWasFocus: nodeWasFocus,\n selectionRangeCount: selection.rangeCount,\n selectionAnchorNodeName: selection.anchorNode ? selection.anchorNode.nodeName : null,\n selectionAnchorOffset: selection.anchorOffset,\n selectionFocusNodeName: selection.focusNode ? selection.focusNode.nodeName : null,\n selectionFocusOffset: selection.focusOffset,\n message: e ? '' + e : null,\n offset: offset\n }, null, 2),\n selectionState: JSON.stringify(selectionState.toJS(), null, 2)\n }); // allow the error to be thrown -\n // better than continuing in a broken state\n\n throw e;\n }\n } else {\n // IE doesn't support extend. This will mean no backward selection.\n // Extract the existing selection range and add focus to it.\n // Additionally, clone the selection range. IE11 throws an\n // InvalidStateError when attempting to access selection properties\n // after the range is detached.\n if (node && selection.rangeCount > 0) {\n var range = selection.getRangeAt(0);\n range.setEnd(node, offset);\n selection.addRange(range.cloneRange());\n }\n }\n}\n\nfunction addPointToSelection(selection, node, offset, selectionState) {\n var range = getCorrectDocumentFromNode(node).createRange(); // logging to catch bug that is being reported in t16250795\n\n if (offset > getNodeLength(node)) {\n // in this case we know that the call to 'range.setStart' is about to throw\n DraftJsDebugLogging.logSelectionStateFailure({\n anonymizedDom: getAnonymizedEditorDOM(node),\n extraParams: JSON.stringify({\n offset: offset\n }),\n selectionState: JSON.stringify(selectionState.toJS())\n });\n DraftEffects.handleExtensionCausedError();\n }\n\n range.setStart(node, offset); // IE sometimes throws Unspecified Error when trying to addRange\n\n if (isIE) {\n try {\n selection.addRange(range);\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n /* eslint-disable-next-line no-console */\n console.warn('Call to selection.addRange() threw exception: ', e);\n }\n }\n } else {\n selection.addRange(range);\n }\n}\n\nmodule.exports = {\n setDraftEditorSelection: setDraftEditorSelection,\n addFocusToSelection: addFocusToSelection\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar ContentBlockNode = require(\"./ContentBlockNode\");\n\nvar generateRandomKey = require(\"./generateRandomKey\");\n\nvar Immutable = require(\"immutable\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar modifyBlockForContentState = require(\"./modifyBlockForContentState\");\n\nvar List = Immutable.List,\n Map = Immutable.Map;\n\nvar transformBlock = function transformBlock(key, blockMap, func) {\n if (!key) {\n return;\n }\n\n var block = blockMap.get(key);\n\n if (!block) {\n return;\n }\n\n blockMap.set(key, func(block));\n};\n\nvar updateBlockMapLinks = function updateBlockMapLinks(blockMap, originalBlock, belowBlock) {\n return blockMap.withMutations(function (blocks) {\n var originalBlockKey = originalBlock.getKey();\n var belowBlockKey = belowBlock.getKey(); // update block parent\n\n transformBlock(originalBlock.getParentKey(), blocks, function (block) {\n var parentChildrenList = block.getChildKeys();\n var insertionIndex = parentChildrenList.indexOf(originalBlockKey) + 1;\n var newChildrenArray = parentChildrenList.toArray();\n newChildrenArray.splice(insertionIndex, 0, belowBlockKey);\n return block.merge({\n children: List(newChildrenArray)\n });\n }); // update original next block\n\n transformBlock(originalBlock.getNextSiblingKey(), blocks, function (block) {\n return block.merge({\n prevSibling: belowBlockKey\n });\n }); // update original block\n\n transformBlock(originalBlockKey, blocks, function (block) {\n return block.merge({\n nextSibling: belowBlockKey\n });\n }); // update below block\n\n transformBlock(belowBlockKey, blocks, function (block) {\n return block.merge({\n prevSibling: originalBlockKey\n });\n });\n });\n};\n\nvar splitBlockInContentState = function splitBlockInContentState(contentState, selectionState) {\n !selectionState.isCollapsed() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Selection range must be collapsed.') : invariant(false) : void 0;\n var key = selectionState.getAnchorKey();\n var blockMap = contentState.getBlockMap();\n var blockToSplit = blockMap.get(key);\n var text = blockToSplit.getText();\n\n if (!text) {\n var blockType = blockToSplit.getType();\n\n if (blockType === 'unordered-list-item' || blockType === 'ordered-list-item') {\n return modifyBlockForContentState(contentState, selectionState, function (block) {\n return block.merge({\n type: 'unstyled',\n depth: 0\n });\n });\n }\n }\n\n var offset = selectionState.getAnchorOffset();\n var chars = blockToSplit.getCharacterList();\n var keyBelow = generateRandomKey();\n var isExperimentalTreeBlock = blockToSplit instanceof ContentBlockNode;\n var blockAbove = blockToSplit.merge({\n text: text.slice(0, offset),\n characterList: chars.slice(0, offset)\n });\n var blockBelow = blockAbove.merge({\n key: keyBelow,\n text: text.slice(offset),\n characterList: chars.slice(offset),\n data: Map()\n });\n var blocksBefore = blockMap.toSeq().takeUntil(function (v) {\n return v === blockToSplit;\n });\n var blocksAfter = blockMap.toSeq().skipUntil(function (v) {\n return v === blockToSplit;\n }).rest();\n var newBlocks = blocksBefore.concat([[key, blockAbove], [keyBelow, blockBelow]], blocksAfter).toOrderedMap();\n\n if (isExperimentalTreeBlock) {\n !blockToSplit.getChildKeys().isEmpty() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ContentBlockNode must not have children') : invariant(false) : void 0;\n newBlocks = updateBlockMapLinks(newBlocks, blockAbove, blockBelow);\n }\n\n return contentState.merge({\n blockMap: newBlocks,\n selectionBefore: selectionState,\n selectionAfter: selectionState.merge({\n anchorKey: keyBelow,\n anchorOffset: 0,\n focusKey: keyBelow,\n focusOffset: 0,\n isBackward: false\n })\n });\n};\n\nmodule.exports = splitBlockInContentState;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @emails oncall+draft_js\n */\n'use strict';\n\nvar NEWLINE_REGEX = /\\r\\n?|\\n/g;\n\nfunction splitTextIntoTextBlocks(text) {\n return text.split(NEWLINE_REGEX);\n}\n\nmodule.exports = splitTextIntoTextBlocks;","\"use strict\";\n/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @typechecks\n * \n * @format\n */\n\n/*eslint-disable no-bitwise */\n\n/**\n * Based on the rfc4122-compliant solution posted at\n * http://stackoverflow.com/questions/105034\n */\n\nfunction uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n\nmodule.exports = uuid;","require(\"core-js/modules/es.array.flat-map.js\");\n\nrequire(\"core-js/modules/es.array.unscopables.flat-map.js\");\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(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.Immutable = factory();\n})(this, function () {\n 'use strict';\n\n var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n createClass(KeyedIterable, Iterable);\n\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n createClass(IndexedIterable, Iterable);\n\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n createClass(SetIterable, Iterable);\n\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\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 Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\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__@@'; // Used for setting prototype methods that IE8 chokes on.\n\n var DELETE = 'delete'; // Constants describing the size of trie nodes.\n\n var SHIFT = 5; // Resulted in best performance after ______?\n\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1; // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n\n var NOT_SET = {}; // Boolean references, Rough equivalent of `bool &`.\n\n var CHANGE_LENGTH = {\n value: false\n };\n var DID_ALTER = {\n value: false\n };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\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\n\n function OwnerID() {} // http://jsperf.com/copy-array-inline\n\n\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\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\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\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n\n index = uint32Index;\n }\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) && (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 ? defaultIndex : index < 0 ? Math.max(0, size + index) : size === undefined ? index : Math.min(size, index);\n }\n /* global Symbol */\n\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function () {\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\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 ? iteratorResult.value = value : iteratorResult = {\n value: value,\n done: false\n };\n return iteratorResult;\n }\n\n function iteratorDone() {\n return {\n value: undefined,\n done: true\n };\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 && (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL] || 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\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() : isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function\n /*...values*/\n () {\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\n return this;\n }; // abstract __iterateUncached(fn, reverse)\n\n\n Seq.prototype.__iterate = function (fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n }; // abstract __iteratorUncached(type, reverse)\n\n\n Seq.prototype.__iterator = function (type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n createClass(KeyedSeq, Seq);\n\n function KeyedSeq(value) {\n return value === null || value === undefined ? emptySequence().toKeyedSeq() : isIterable(value) ? isKeyed(value) ? value.toSeq() : value.fromEntrySeq() : keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function () {\n return this;\n };\n\n createClass(IndexedSeq, Seq);\n\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() : !isIterable(value) ? indexedSeqFromValue(value) : isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function\n /*...values*/\n () {\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 createClass(SetSeq, Seq);\n\n function SetSeq(value) {\n return (value === null || value === undefined ? emptySequence() : !isIterable(value) ? indexedSeqFromValue(value) : isKeyed(value) ? value.entrySeq() : value).toSetSeq();\n }\n\n SetSeq.of = function\n /*...values*/\n () {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function () {\n return this;\n };\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n createClass(ArraySeq, IndexedSeq);\n\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\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\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 ? iteratorDone() : iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++]);\n });\n };\n\n createClass(ObjectSeq, KeyedSeq);\n\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\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\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\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 ? iteratorDone() : iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n createClass(IterableSeq, IndexedSeq);\n\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\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n\n if (isIterator(iterator)) {\n var step;\n\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\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\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\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 createClass(IteratorSeq, IndexedSeq);\n\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\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n\n var step;\n\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n\n if (fn(val, iterations++, this) === false) {\n break;\n }\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\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\n if (step.done) {\n return step;\n }\n\n cache[iterations] = step.value;\n }\n\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n }; // # pragma Helper functions\n\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 = Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() : isIterator(value) ? new IteratorSeq(value).fromEntrySeq() : hasIterator(value) ? new IterableSeq(value).fromEntrySeq() : typeof value === 'object' ? new ObjectSeq(value) : undefined;\n\n if (!seq) {\n throw new TypeError('Expected Array or iterable object of [k, v] entries, ' + 'or keyed object: ' + value);\n }\n\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n\n if (!seq) {\n throw new TypeError('Expected Array or iterable object of values: ' + value);\n }\n\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) || typeof value === 'object' && new ObjectSeq(value);\n\n if (!seq) {\n throw new TypeError('Expected Array or iterable object of values, or keyed object: ' + value);\n }\n\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return isArrayLike(value) ? new ArraySeq(value) : isIterator(value) ? new IteratorSeq(value) : hasIterator(value) ? new IterableSeq(value) : undefined;\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n\n if (cache) {\n var maxIndex = cache.length - 1;\n\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n\n return ii;\n }\n\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n\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 ? iteratorDone() : iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ? fromJSWith(converter, json, '', {\n '': 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) {\n return fromJSWith(converter, v, k, json);\n }));\n }\n\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function (v, k) {\n return fromJSWith(converter, v, k, json);\n }));\n }\n\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\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\n\n function is(valueA, valueB) {\n if (valueA === valueB || valueA !== valueA && valueB !== valueB) {\n return true;\n }\n\n if (!valueA || !valueB) {\n return false;\n }\n\n if (typeof valueA.valueOf === 'function' && typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n\n if (valueA === valueB || valueA !== valueA && valueB !== valueB) {\n return true;\n }\n\n if (!valueA || !valueB) {\n return false;\n }\n }\n\n if (typeof valueA.equals === 'function' && typeof valueB.equals === 'function' && valueA.equals(valueB)) {\n return true;\n }\n\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!isIterable(b) || a.size !== undefined && b.size !== undefined && a.size !== b.size || a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash || isKeyed(a) !== isKeyed(b) || isIndexed(a) !== isIndexed(b) || isOrdered(a) !== isOrdered(b)) {\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\n var bSize = b.__iterate(function (v, k) {\n if (notAssociative ? !a.has(v) : 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\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function () {\n if (this.size === 0) {\n return 'Repeat []';\n }\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 : 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\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\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\n return ii;\n };\n\n Repeat.prototype.__iterator = function (type, reverse) {\n 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 ? is(this._value, other._value) : deepEqual(other);\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\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n\n if (end === undefined) {\n end = Infinity;\n }\n\n step = step === undefined ? 1 : Math.abs(step);\n\n if (end < start) {\n step = -step;\n }\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\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function () {\n if (this.size === 0) {\n return 'Range []';\n }\n\n return 'Range [ ' + this._start + '...' + this._end + (this._step > 1 ? ' by ' + this._step : '') + ' ]';\n };\n\n Range.prototype.get = function (index, notSetValue) {\n return this.has(index) ? this._start + wrapIndex(this, index) * this._step : notSetValue;\n };\n\n Range.prototype.includes = function (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 && possibleIndex < this.size && 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\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n\n if (end <= begin) {\n return new Range(0, 0);\n }\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\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n\n if (index >= 0 && index < this.size) {\n return index;\n }\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\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n\n value += reverse ? -step : step;\n }\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 ? this._start === other._start && this._end === other._end && this._step === other._step : deepEqual(this, other);\n };\n\n var EMPTY_RANGE;\n createClass(Collection, Iterable);\n\n function Collection() {\n throw TypeError('Abstract');\n }\n\n createClass(KeyedCollection, Collection);\n\n function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);\n\n function IndexedCollection() {}\n\n createClass(SetCollection, Collection);\n\n function SetCollection() {}\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n var imul = typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ? Math.imul : function imul(a, b) {\n a = a | 0; // int\n\n b = b | 0; // int\n\n var c = a & 0xffff;\n var d = b & 0xffff; // Shift by 0 fixes the sign on the high part.\n\n return c * d + ((a >>> 16) * d + c * (b >>> 16) << 16 >>> 0) | 0; // int\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\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\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n\n if (o === true) {\n return 1;\n }\n\n var type = typeof o;\n\n if (type === 'number') {\n var h = o | 0;\n\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n\n return smi(h);\n }\n\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n\n if (type === 'object') {\n return hashJSObj(o);\n }\n\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n\n if (hash === undefined) {\n hash = hashString(string);\n\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n\n return hash;\n } // http://jsperf.com/hashing-strings\n\n\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\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n\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 && 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\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 } // Get references to ES5 object methods.\n\n\n var isExtensible = Object.isExtensible; // True if Object.defineProperty works as expected. IE8 fails this test.\n\n var canDefineProperty = function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\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\n\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1:\n // Element\n return node.uniqueID;\n\n case 9:\n // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n } // If possible, use a WeakMap.\n\n\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n var UID_HASH_KEY = '__immutablehash__';\n\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(size !== Infinity, 'Cannot perform this action with an infinite size.');\n }\n\n createClass(Map, KeyedCollection); // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() : isMap(value) && !isOrdered(value) ? value : emptyMap().withMutations(function (map) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) {\n return map.set(k, v);\n });\n });\n }\n\n Map.prototype.toString = function () {\n return this.__toString('Map {', '}');\n }; // @pragma Access\n\n\n Map.prototype.get = function (k, notSetValue) {\n return this._root ? this._root.get(0, undefined, k, notSetValue) : notSetValue;\n }; // @pragma Modification\n\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 () {\n return v;\n });\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 () {\n return NOT_SET;\n });\n };\n\n Map.prototype.update = function (k, notSetValue, updater) {\n return arguments.length === 1 ? k(this) : 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\n var updatedValue = updateInDeepMap(this, forceIterator(keyPath), notSetValue, updater);\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function () {\n if (this.size === 0) {\n return this;\n }\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\n return emptyMap();\n }; // @pragma Composition\n\n\n Map.prototype.merge = function\n /*...iters*/\n () {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function (merger) {\n var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function (keyPath) {\n var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(keyPath, emptyMap(), function (m) {\n return typeof m.merge === 'function' ? m.merge.apply(m, iters) : iters[iters.length - 1];\n });\n };\n\n Map.prototype.mergeDeep = function\n /*...iters*/\n () {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function (merger) {\n var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function (keyPath) {\n var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(keyPath, emptyMap(), function (m) {\n return typeof m.mergeDeep === 'function' ? m.mergeDeep.apply(m, iters) : 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 }; // @pragma Mutability\n\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) {\n 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\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn; // #pragma Trie Nodes\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\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\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var entries = this.entries;\n var idx = 0;\n\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\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 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\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue : 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\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 ? setIn(nodes, idx, newNode, isEditable) : spliceOut(nodes, idx, isEditable) : 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 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\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\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\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n\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 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\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\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\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\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\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 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\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\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 }; // #pragma Iterators\n\n\n ArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n\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 (fn, reverse) {\n var nodes = this.nodes;\n\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n\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\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n\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\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\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n\n continue;\n }\n }\n\n stack = this._stack = this._stack.__prev;\n }\n\n return iteratorDone();\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\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\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\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\n if (!didAlter.value) {\n return map;\n }\n\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\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\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\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\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 var newNode;\n var nodes = idx1 === idx2 ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] : (newNode = new ValueNode(ownerID, keyHash, entry), idx1 < idx2 ? [node, newNode] : [newNode, node]);\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\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n\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\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\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\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\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\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\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n\n if (!isIterable(value)) {\n iter = iter.map(function (v) {\n return fromJS(v);\n });\n }\n\n iters.push(iter);\n }\n\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ? existing.mergeDeep(value) : 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\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) {\n return x.size !== 0;\n });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n\n return collection.withMutations(function (collection) {\n var mergeIntoMap = merger ? function (value, key) {\n collection.update(key, NOT_SET, function (existing) {\n return existing === NOT_SET ? value : merger(existing, value, key);\n });\n } : function (value, key) {\n collection.set(key, value);\n };\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\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n\n invariant(isNotSet || existing && existing.set, 'invalid keyPath');\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(nextExisting, keyPathIter, notSetValue, updater);\n return nextUpdated === nextExisting ? existing : nextUpdated === NOT_SET ? existing.remove(key) : (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\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n\n var newArray = new Array(newLen);\n var after = 0;\n\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\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n\n var newArray = new Array(newLen);\n var after = 0;\n\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n\n newArray[ii] = array[ii + after];\n }\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 createClass(List, IndexedCollection); // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n\n if (value === null || value === undefined) {\n return empty;\n }\n\n if (isList(value)) {\n return value;\n }\n\n var iter = IndexedIterable(value);\n var size = iter.size;\n\n if (size === 0) {\n return empty;\n }\n\n assertNotInfinite(size);\n\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) {\n return list.set(i, v);\n });\n });\n }\n\n List.of = function\n /*...values*/\n () {\n return this(arguments);\n };\n\n List.prototype.toString = function () {\n return this.__toString('List [', ']');\n }; // @pragma Access\n\n\n List.prototype.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n\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\n return notSetValue;\n }; // @pragma Modification\n\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 : index === 0 ? this.shift() : index === this.size - 1 ? this.pop() : 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\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\n return emptyList();\n };\n\n List.prototype.push = function\n /*...values*/\n () {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n\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\n /*...values*/\n () {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n\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 }; // @pragma Composition\n\n\n List.prototype.merge = function\n /*...iters*/\n () {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function (merger) {\n var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function\n /*...iters*/\n () {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function (merger) {\n 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 }; // @pragma Iteration\n\n\n List.prototype.slice = function (begin, end) {\n var size = this.size;\n\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n\n return setListBounds(this, resolveBegin(begin, size), resolveEnd(end, size));\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 ? iteratorDone() : 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\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n\n return index;\n };\n\n List.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn = 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 function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n } // TODO: seems like these methods are very similar\n\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\n var originIndex = index >>> level & MASK;\n\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n\n var removingFirst = originIndex === 0;\n var newChild;\n\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n\n if (removingFirst && !newChild) {\n return this;\n }\n\n var editable = editableVNode(this, ownerID);\n\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\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\n var sizeIndex = index - 1 >>> level & MASK;\n\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n\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\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\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 return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ? iterateLeaf(node, offset) : 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\n if (to > SIZE) {\n to = SIZE;\n }\n\n return function () {\n if (from === to) {\n return DONE;\n }\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\n if (to > SIZE) {\n to = SIZE;\n }\n\n return function () {\n do {\n if (values) {\n var value = values();\n\n if (value !== DONE) {\n return value;\n }\n\n values = null;\n }\n\n if (from === to) {\n return DONE;\n }\n\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(array && array[idx], level - SHIFT, offset + (idx << level));\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\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 ? setListBounds(list, index).set(0, value) : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n\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\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\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\n if (newLowerNode === lowerNode) {\n return node;\n }\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 newNode = editableVNode(node, ownerID);\n\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\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\n if (rawIndex < 1 << list._level + SHIFT) {\n var node = list._root;\n var level = list._level;\n\n while (node && level > 0) {\n node = node.array[rawIndex >>> level & MASK];\n level -= SHIFT;\n }\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\n if (end !== undefined) {\n end = end | 0;\n }\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\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n } // If it's going to end after it starts, it's empty.\n\n\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root; // New origin might need creating a higher root.\n\n var offsetShift = 0;\n\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\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); // New size might need creating a higher root.\n\n while (newTailOffset >= 1 << newLevel + SHIFT) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n } // Locate or create the new tail.\n\n\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ? listNodeFor(list, newCapacity - 1) : newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail; // Merge Tail into tree.\n\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n\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\n node.array[oldTailOffset >>> SHIFT & MASK] = oldTail;\n } // If the size has been reduced, there's a chance the tail needs to be trimmed.\n\n\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n } // If the new origin is within the tail, then we do not need a root.\n\n\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin); // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0; // Identify the new top root node of the subtree of the old root.\n\n while (newRoot) {\n var beginIndex = newOrigin >>> newLevel & MASK;\n\n if (beginIndex !== newTailOffset >>> newLevel & MASK) {\n break;\n }\n\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n } // Trim the new sides of the new root.\n\n\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, 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\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n\n if (!isIterable(value)) {\n iter = iter.map(function (v) {\n return fromJS(v);\n });\n }\n\n iters.push(iter);\n }\n\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\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); // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() : isOrderedMap(value) ? value : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) {\n return map.set(k, v);\n });\n });\n }\n\n OrderedMap.of = function\n /*...values*/\n () {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function () {\n return this.__toString('OrderedMap {', '}');\n }; // @pragma Access\n\n\n OrderedMap.prototype.get = function (k, notSetValue) {\n var index = this._map.get(k);\n\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n }; // @pragma Modification\n\n\n OrderedMap.prototype.clear = function () {\n if (this.size === 0) {\n return this;\n }\n\n if (this.__ownerID) {\n this.size = 0;\n\n this._map.clear();\n\n this._list.clear();\n\n return this;\n }\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) {\n var this$0 = this;\n return this._list.__iterate(function (entry) {\n return entry && fn(entry[1], entry[0], this$0);\n }, reverse);\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\n var newMap = this._map.__ensureOwner(ownerID);\n\n var newList = this._list.__ensureOwner(ownerID);\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = 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\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\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) {\n return entry !== undefined && i !== idx;\n });\n newMap = newList.toKeyedSeq().map(function (entry) {\n return entry[0];\n }).flip().toMap();\n\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\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\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\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n\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 () {\n var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () {\n return this$0._iter.toSeq().reverse();\n };\n }\n\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function (mapper, context) {\n var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () {\n return this$0._iter.toSeq().map(mapper, context);\n };\n }\n\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function (fn, reverse) {\n var this$0 = this;\n var ii;\n return this._iter.__iterate(this._useKeys ? function (v, k) {\n return fn(v, k, this$0);\n } : (ii = reverse ? resolveSize(this) : 0, function (v) {\n return fn(v, reverse ? --ii : ii++, this$0);\n }), reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function (type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n createClass(ToIndexedSequence, IndexedSeq);\n\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) {\n var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function (v) {\n return fn(v, iterations++, this$0);\n }, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\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, step);\n });\n };\n\n createClass(ToSetSequence, SetSeq);\n\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) {\n var this$0 = this;\n return this._iter.__iterate(function (v) {\n return fn(v, v, this$0);\n }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n createClass(FromEntriesSequence, KeyedSeq);\n\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) {\n 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(indexedIterable ? entry.get(1) : entry[1], indexedIterable ? entry.get(0) : entry[0], this$0);\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value; // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(type, indexedIterable ? entry.get(0) : entry[0], indexedIterable ? entry.get(1) : entry[1], step);\n }\n }\n });\n };\n\n ToIndexedSequence.prototype.cacheResult = ToKeyedSequence.prototype.cacheResult = ToSetSequence.prototype.cacheResult = FromEntriesSequence.prototype.cacheResult = cacheResultThrough;\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n\n flipSequence.flip = function () {\n return iterable;\n };\n\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n\n reversedSequence.flip = function () {\n return iterable.reverse();\n };\n\n return reversedSequence;\n };\n\n flipSequence.has = function (key) {\n return iterable.includes(key);\n };\n\n flipSequence.includes = function (key) {\n return iterable.has(key);\n };\n\n flipSequence.cacheResult = cacheResultThrough;\n\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n return iterable.__iterate(function (v, k) {\n return fn(k, v, this$0) !== false;\n }, reverse);\n };\n\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n\n return new Iterator(function () {\n var step = iterator.next();\n\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n\n return step;\n });\n }\n\n return iterable.__iterator(type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES, reverse);\n };\n\n return flipSequence;\n }\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n\n mappedSequence.has = function (key) {\n return iterable.has(key);\n };\n\n mappedSequence.get = function (key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ? notSetValue : mapper.call(context, v, key, iterable);\n };\n\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n return iterable.__iterate(function (v, k, c) {\n 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\n return new Iterator(function () {\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(type, key, mapper.call(context, entry[1], key, iterable), step);\n });\n };\n\n return mappedSequence;\n }\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n\n reversedSequence.reverse = function () {\n return iterable;\n };\n\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n\n flipSequence.reverse = function () {\n return iterable.flip();\n };\n\n return flipSequence;\n };\n }\n\n reversedSequence.get = function (key, notSetValue) {\n return iterable.get(useKeys ? key : -1 - key, notSetValue);\n };\n\n reversedSequence.has = function (key) {\n return iterable.has(useKeys ? key : -1 - key);\n };\n\n reversedSequence.includes = function (value) {\n return iterable.includes(value);\n };\n\n reversedSequence.cacheResult = cacheResultThrough;\n\n reversedSequence.__iterate = function (fn, reverse) {\n var this$0 = this;\n return iterable.__iterate(function (v, k) {\n return fn(v, k, this$0);\n }, !reverse);\n };\n\n reversedSequence.__iterator = function (type, reverse) {\n return iterable.__iterator(type, !reverse);\n };\n\n return reversedSequence;\n }\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n\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\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) ? v : notSetValue;\n };\n }\n\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n var iterations = 0;\n\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\n return iterations;\n };\n\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n\n return filterSequence;\n }\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n\n iterable.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, iterable), 0, function (a) {\n return a + 1;\n });\n });\n\n return groups.asImmutable();\n }\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n\n iterable.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, iterable), function (a) {\n return a = a || [], a.push(isKeyedIter ? [k, v] : v), a;\n });\n });\n\n var coerce = iterableClass(iterable);\n return groups.map(function (arr) {\n return reify(iterable, coerce(arr));\n });\n }\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size; // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n\n if (begin !== undefined) {\n begin = begin | 0;\n }\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); // 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\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\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\n\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable); // 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\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 ? iterable.get(index + resolvedBegin, notSetValue) : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n\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 && 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 } // Don't bother instantiating parent iterator if taking 0.\n\n\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n\n var step = iterator.next();\n\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 function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n\n var iterations = 0;\n\n iterable.__iterate(function (v, k, c) {\n return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0);\n });\n\n return iterations;\n };\n\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n\n return takeSequence;\n }\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n\n var isSkipping = true;\n var iterations = 0;\n\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\n return iterations;\n };\n\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step, k, v;\n\n do {\n step = iterator.next();\n\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\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\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n\n return skipSequence;\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 ? keyedSeqFromValue(v) : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n\n return v;\n }).filter(function (v) {\n return v.size !== 0;\n });\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n\n if (singleton === iterable || isKeyedIterable && isKeyed(singleton) || isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n }\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n\n flatSequence.__iterateUncached = function (fn, reverse) {\n var iterations = 0;\n var stopped = false;\n\n function flatDeep(iter, currentDepth) {\n var this$0 = this;\n\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\n return !stopped;\n }, reverse);\n }\n\n flatDeep(iterable, 0);\n return iterations;\n };\n\n flatSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n\n var v = step.value;\n\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\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\n return iteratorDone();\n });\n };\n\n return flatSequence;\n }\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(function (v, k) {\n return coerce(mapper.call(context, v, k, iterable));\n }).flatten(true);\n }\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 - 1;\n\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n var iterations = 0;\n\n iterable.__iterate(function (v, k) {\n return (!iterations || fn(separator, iterations++, this$0) !== false) && fn(v, iterations++, this$0) !== false;\n }, reverse);\n\n return iterations;\n };\n\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n\n if (step.done) {\n return step;\n }\n }\n\n return iterations % 2 ? iteratorValue(type, iterations++, separator) : iteratorValue(type, iterations++, step.value, step);\n });\n };\n\n return interposedSequence;\n }\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(function (v, k) {\n return [k, v, index++, mapper ? mapper(v, k, iterable) : v];\n }).toArray();\n entries.sort(function (a, b) {\n return comparator(a[3], b[3]) || a[2] - b[2];\n }).forEach(isKeyedIterable ? function (v, i) {\n entries[i].length = 2;\n } : function (v, i) {\n entries[i] = v[1];\n });\n return isKeyedIterable ? KeyedSeq(entries) : isIndexed(iterable) ? IndexedSeq(entries) : SetSeq(entries);\n }\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n\n if (mapper) {\n var entry = iterable.toSeq().map(function (v, k) {\n return [v, mapper(v, k, iterable)];\n }).reduce(function (a, b) {\n return maxCompare(comparator, a[1], b[1]) ? b : a;\n });\n return entry && entry[0];\n } else {\n return iterable.reduce(function (a, b) {\n return maxCompare(comparator, a, b) ? b : a;\n });\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a); // 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\n return comp === 0 && b !== a && (b === undefined || b === null || b !== b) || comp > 0;\n }\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function (i) {\n return i.size;\n }).min(); // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n\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\n var step;\n var iterations = 0;\n\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 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\n if (!isDone) {\n steps = iterators.map(function (i) {\n return i.next();\n });\n isDone = steps.some(function (s) {\n return s.done;\n });\n }\n\n if (isDone) {\n return iteratorDone();\n }\n\n return iteratorValue(type, iterations++, zipper.apply(null, steps.map(function (s) {\n return s.value;\n })));\n });\n };\n\n return zipSequence;\n } // #pragma Helper Functions\n\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 : isIndexed(iterable) ? IndexedIterable : SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create((isKeyed(iterable) ? KeyedSeq : isIndexed(iterable) ? IndexedSeq : SetSeq).prototype);\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n\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\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\n iter = getIterator(Iterable(keyPath));\n }\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\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\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\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n return RecordType;\n }\n\n Record.prototype.toString = function () {\n return this.__toString(recordName(this) + ' {', '}');\n }; // @pragma Access\n\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\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n }; // @pragma Modification\n\n\n Record.prototype.clear = function () {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\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\n var newMap = this._map && this._map.set(k, v);\n\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function (k) {\n if (!this.has(k)) {\n return this;\n }\n\n var newMap = this._map && this._map.remove(k);\n\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\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) {\n var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function (_, k) {\n return this$0.get(k);\n }).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function (fn, reverse) {\n var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function (_, k) {\n return this$0.get(k);\n }).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n\n return makeRecord(this, newMap, ownerID);\n };\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn = 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 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) {// Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function get() {\n return this.get(name);\n },\n set: function set(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection); // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() : isSet(value) && !isOrdered(value) ? value : emptySet().withMutations(function (set) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) {\n return set.add(v);\n });\n });\n }\n\n Set.of = function\n /*...values*/\n () {\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 }; // @pragma Access\n\n\n Set.prototype.has = function (value) {\n return this._map.has(value);\n }; // @pragma Modification\n\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 }; // @pragma Composition\n\n\n Set.prototype.union = function () {\n var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function (x) {\n return x.size !== 0;\n });\n\n if (iters.length === 0) {\n return this;\n }\n\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function (value) {\n return set.add(value);\n });\n }\n });\n };\n\n Set.prototype.intersect = function () {\n var iters = SLICE$0.call(arguments, 0);\n\n if (iters.length === 0) {\n return this;\n }\n\n iters = iters.map(function (iter) {\n return SetIterable(iter);\n });\n var originalSet = this;\n return this.withMutations(function (set) {\n originalSet.forEach(function (value) {\n if (!iters.every(function (iter) {\n return iter.includes(value);\n })) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function () {\n var iters = SLICE$0.call(arguments, 0);\n\n if (iters.length === 0) {\n return this;\n }\n\n iters = iters.map(function (iter) {\n return SetIterable(iter);\n });\n var originalSet = this;\n return this.withMutations(function (set) {\n originalSet.forEach(function (value) {\n if (iters.some(function (iter) {\n return iter.includes(value);\n })) {\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) {\n 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) {\n var this$0 = this;\n return this._map.__iterate(function (_, k) {\n return fn(k, k, this$0);\n }, reverse);\n };\n\n Set.prototype.__iterator = function (type, reverse) {\n return this._map.map(function (_, k) {\n return k;\n }).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n var newMap = this._map.__ensureOwner(ownerID);\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n\n return this.__make(newMap, ownerID);\n };\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\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 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\n return newMap === set._map ? set : newMap.size === 0 ? set.__empty() : 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\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set); // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() : isOrderedSet(value) ? value : emptyOrderedSet().withMutations(function (set) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) {\n return set.add(v);\n });\n });\n }\n\n OrderedSet.of = function\n /*...values*/\n () {\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 function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\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\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection); // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() : isStack(value) ? value : emptyStack().unshiftAll(value);\n }\n\n Stack.of = function\n /*...values*/\n () {\n return this(arguments);\n };\n\n Stack.prototype.toString = function () {\n return this.__toString('Stack [', ']');\n }; // @pragma Access\n\n\n Stack.prototype.get = function (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n\n while (head && index--) {\n head = head.next;\n }\n\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function () {\n return this._head && this._head.value;\n }; // @pragma Modification\n\n\n Stack.prototype.push = function\n /*...values*/\n () {\n if (arguments.length === 0) {\n return this;\n }\n\n var newSize = this.size + arguments.length;\n var head = this._head;\n\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\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\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function (iter) {\n iter = IndexedIterable(iter);\n\n if (iter.size === 0) {\n return this;\n }\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\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\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function () {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function\n /*...values*/\n () {\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\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\n return emptyStack();\n };\n\n Stack.prototype.slice = function (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n\n while (resolvedBegin--) {\n head = head.next;\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\n return makeStack(newSize, head);\n }; // @pragma Mutability\n\n\n Stack.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n\n return makeStack(this.size, this._head, ownerID, this.__hash);\n }; // @pragma Iteration\n\n\n Stack.prototype.__iterate = function (fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n\n var iterations = 0;\n var node = this._head;\n\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n\n node = node.next;\n }\n\n return iterations;\n };\n\n Stack.prototype.__iterator = function (type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\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\n return iteratorDone();\n });\n };\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\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 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\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n /**\n * Contributes additional methods to a constructor\n */\n\n\n function mixin(ctor, methods) {\n var keyCopier = function keyCopier(key) {\n ctor.prototype[key] = methods[key];\n };\n\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n mixin(Iterable, {\n // ### Conversion to other types\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n\n this.valueSeq().__iterate(function (v, i) {\n array[i] = v;\n });\n\n return array;\n },\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n toJS: function toJS() {\n return this.toSeq().map(function (value) {\n return value && typeof value.toJS === 'function' ? value.toJS() : value;\n }).__toJS();\n },\n toJSON: function toJSON() {\n return this.toSeq().map(function (value) {\n return value && typeof value.toJSON === 'function' ? value.toJSON() : value;\n }).__toJS();\n },\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n toObject: function toObject() {\n assertNotInfinite(this.size);\n var object = {};\n\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n\n return object;\n },\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\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 toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n toSeq: function toSeq() {\n return isIndexed(this) ? this.toIndexedSeq() : isKeyed(this) ? this.toKeyedSeq() : this.toSetSeq();\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 toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n // ### Common JavaScript methods and properties\n toString: function toString() {\n return '[Iterable]';\n },\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n concat: function concat() {\n var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n includes: function includes(searchValue) {\n return this.some(function (value) {\n return is(value, searchValue);\n });\n },\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n\n return returnValue;\n },\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n findEntry: function findEntry(predicate, context) {\n var found;\n\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\n return found;\n },\n findLastEntry: function findLastEntry(predicate, context) {\n return this.toSeq().reverse().findEntry(predicate, context);\n },\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n\n this.__iterate(function (v) {\n isFirst ? isFirst = false : joined += separator;\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n\n return joined;\n },\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n reduce: function reduce(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\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\n return reduction;\n },\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n some: function some(predicate, context) {\n return !this.every(not(predicate), context);\n },\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n // ### More sequential methods\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () {\n return true;\n });\n },\n count: function count(predicate, context) {\n return ensureSize(predicate ? this.toSeq().filter(predicate, context) : this);\n },\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n entrySeq: function entrySeq() {\n var iterable = this;\n\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\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n\n entriesSequence.fromEntrySeq = function () {\n return iterable.toSeq();\n };\n\n return entriesSequence;\n },\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n first: function first() {\n return this.find(returnTrue);\n },\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) {\n return is(key, searchKey);\n }, undefined, notSetValue);\n },\n getIn: function getIn(searchKeyPath, notSetValue) {\n var nested = this; // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n\n var iter = forceIterator(searchKeyPath);\n var step;\n\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n\n return nested;\n },\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n hasIn: function hasIn(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function (value) {\n return iter.includes(value);\n });\n },\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n last: function last() {\n return this.toSeq().reverse().first();\n },\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n min: function min(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n minBy: function minBy(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n rest: function rest() {\n return this.slice(1);\n },\n skip: function skip(amount) {\n return this.slice(Math.max(0, amount));\n },\n skipLast: function skipLast(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n takeLast: function takeLast(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n // ### Hashable Object\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashIterable(this));\n } // ### Internal\n // abstract __iterate(fn, reverse)\n // abstract __iterator(type, reverse)\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\n IterablePrototype.inspect = IterablePrototype.toSource = function () {\n return this.toString();\n };\n\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes; // Temporary warning about using length\n\n (function () {\n try {\n Object.defineProperty(IterablePrototype, 'length', {\n get: function get() {\n if (!Iterable.noLengthWarning) {\n var stack;\n\n try {\n throw new Error();\n } catch (error) {\n stack = error.stack;\n }\n\n if (stack.indexOf('_wrapObject') === -1) {\n console && console.warn && console.warn('iterable.length has been deprecated, ' + 'use iterable.size or iterable.count(). ' + 'This warning will become a silent error in a future version. ' + stack);\n return this.size;\n }\n }\n }\n });\n } catch (e) {}\n })();\n\n mixin(KeyedIterable, {\n // ### More sequential methods\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n findLastKey: function findLastKey(predicate, context) {\n return this.toSeq().reverse().findKey(predicate, context);\n },\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) {\n return is(value, searchValue);\n });\n },\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.findLastKey(function (value) {\n return is(value, searchValue);\n });\n },\n mapEntries: function mapEntries(mapper, context) {\n var this$0 = this;\n var iterations = 0;\n return reify(this, this.toSeq().map(function (v, k) {\n return mapper.call(context, [k, v], iterations++, this$0);\n }).fromEntrySeq());\n },\n mapKeys: function mapKeys(mapper, context) {\n var this$0 = this;\n return reify(this, this.toSeq().flip().map(function (k, v) {\n return mapper.call(context, k, v, this$0);\n }).flip());\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\n KeyedIterablePrototype.__toStringMapper = function (v, k) {\n return JSON.stringify(k) + ': ' + quoteString(v);\n };\n\n mixin(IndexedIterable, {\n // ### Conversion to other types\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n indexOf: function indexOf(searchValue) {\n var key = this.toKeyedSeq().keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.toKeyedSeq().reverse().keyOf(searchValue);\n return key === undefined ? -1 : key; // var index =\n // return this.toSeq().reverse().indexOf(searchValue);\n },\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n splice: function splice(index, removeNum\n /*, ...values*/\n ) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n\n if (numArgs === 0 || numArgs === 2 && !removeNum) {\n return this;\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\n\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(this, numArgs === 1 ? spliced : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum)));\n },\n // ### More collection methods\n findLastIndex: function findLastIndex(predicate, context) {\n var key = this.toKeyedSeq().findLastKey(predicate, context);\n return key === undefined ? -1 : key;\n },\n first: function first() {\n return this.get(0);\n },\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 || this.size === Infinity || this.size !== undefined && index > this.size ? notSetValue : this.find(function (_, key) {\n return key === index;\n }, undefined, notSetValue);\n },\n has: function has(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ? this.size === Infinity || index < this.size : this.indexOf(index) !== -1);\n },\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n interleave: function\n /*...iterables*/\n interleave() {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n\n return reify(this, interleaved);\n },\n last: function last() {\n return this.get(-1);\n },\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n zip: function\n /*, ...iterables */\n zip() {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n zipWith: function zipWith(zipper\n /*, ...iterables */\n ) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n });\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n mixin(SetIterable, {\n // ### ES6 Collection methods (ES6 Array and Map)\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n includes: function includes(value) {\n return this.has(value);\n },\n // ### More sequential methods\n keySeq: function keySeq() {\n return this.valueSeq();\n }\n });\n SetIterable.prototype.has = IterablePrototype.includes; // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype); // #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\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n\n var size = iterable.__iterate(keyed ? ordered ? function (v, k) {\n h = 31 * h + hashMerge(hash(v), hash(k)) | 0;\n } : function (v, k) {\n h = h + hashMerge(hash(v), hash(k)) | 0;\n } : ordered ? function (v) {\n h = 31 * h + hash(v) | 0;\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 Immutable = {\n Iterable: Iterable,\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 Record: Record,\n Range: Range,\n Repeat: Repeat,\n is: is,\n fromJS: fromJS\n };\n return Immutable;\n});","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.draftjsToHtml = factory());\n})(this, function () {\n 'use strict';\n /**\n * Utility function to execute callback for eack key->value pair.\n */\n\n function forEach(obj, callback) {\n if (obj) {\n for (var key in obj) {\n // eslint-disable-line no-restricted-syntax\n if ({}.hasOwnProperty.call(obj, key)) {\n callback(key, obj[key]);\n }\n }\n }\n }\n /**\n * The function returns true if the string passed to it has no content.\n */\n\n\n function isEmptyString(str) {\n if (str === undefined || str === null || str.length === 0 || str.trim().length === 0) {\n return true;\n }\n\n return false;\n }\n /**\n * Mapping block-type to corresponding html tag.\n */\n\n\n var blockTypesMapping = {\n unstyled: 'p',\n 'header-one': 'h1',\n 'header-two': 'h2',\n 'header-three': 'h3',\n 'header-four': 'h4',\n 'header-five': 'h5',\n 'header-six': 'h6',\n 'unordered-list-item': 'ul',\n 'ordered-list-item': 'ol',\n blockquote: 'blockquote',\n code: 'pre'\n };\n /**\n * Function will return HTML tag for a block.\n */\n\n function getBlockTag(type) {\n return type && blockTypesMapping[type];\n }\n /**\n * Function will return style string for a block.\n */\n\n\n function getBlockStyle(data) {\n var styles = '';\n forEach(data, function (key, value) {\n if (value) {\n styles += \"\".concat(key, \":\").concat(value, \";\");\n }\n });\n return styles;\n }\n /**\n * The function returns an array of hashtag-sections in blocks.\n * These will be areas in block which have hashtags applicable to them.\n */\n\n\n function getHashtagRanges(blockText, hashtagConfig) {\n var sections = [];\n\n if (hashtagConfig) {\n var counter = 0;\n var startIndex = 0;\n var text = blockText;\n var trigger = hashtagConfig.trigger || '#';\n var separator = hashtagConfig.separator || ' ';\n\n for (; text.length > 0 && startIndex >= 0;) {\n if (text[0] === trigger) {\n startIndex = 0;\n counter = 0;\n text = text.substr(trigger.length);\n } else {\n startIndex = text.indexOf(separator + trigger);\n\n if (startIndex >= 0) {\n text = text.substr(startIndex + (separator + trigger).length);\n counter += startIndex + separator.length;\n }\n }\n\n if (startIndex >= 0) {\n var endIndex = text.indexOf(separator) >= 0 ? text.indexOf(separator) : text.length;\n var hashtag = text.substr(0, endIndex);\n\n if (hashtag && hashtag.length > 0) {\n sections.push({\n offset: counter,\n length: hashtag.length + trigger.length,\n type: 'HASHTAG'\n });\n }\n\n counter += trigger.length;\n }\n }\n }\n\n return sections;\n }\n /**\n * The function returns an array of entity-sections in blocks.\n * These will be areas in block which have same entity or no entity applicable to them.\n */\n\n\n function getSections(block, hashtagConfig) {\n var sections = [];\n var lastOffset = 0;\n var sectionRanges = block.entityRanges.map(function (range) {\n var offset = range.offset,\n length = range.length,\n key = range.key;\n return {\n offset: offset,\n length: length,\n key: key,\n type: 'ENTITY'\n };\n });\n sectionRanges = sectionRanges.concat(getHashtagRanges(block.text, hashtagConfig));\n sectionRanges = sectionRanges.sort(function (s1, s2) {\n return s1.offset - s2.offset;\n });\n sectionRanges.forEach(function (r) {\n if (r.offset > lastOffset) {\n sections.push({\n start: lastOffset,\n end: r.offset\n });\n }\n\n sections.push({\n start: r.offset,\n end: r.offset + r.length,\n entityKey: r.key,\n type: r.type\n });\n lastOffset = r.offset + r.length;\n });\n\n if (lastOffset < block.text.length) {\n sections.push({\n start: lastOffset,\n end: block.text.length\n });\n }\n\n return sections;\n }\n /**\n * Function to check if the block is an atomic entity block.\n */\n\n\n function isAtomicEntityBlock(block) {\n if (block.entityRanges.length > 0 && (isEmptyString(block.text) || block.type === 'atomic')) {\n return true;\n }\n\n return false;\n }\n /**\n * The function will return array of inline styles applicable to the block.\n */\n\n\n function getStyleArrayForBlock(block) {\n var text = block.text,\n inlineStyleRanges = block.inlineStyleRanges;\n var inlineStyles = {\n BOLD: new Array(text.length),\n ITALIC: new Array(text.length),\n UNDERLINE: new Array(text.length),\n STRIKETHROUGH: new Array(text.length),\n CODE: new Array(text.length),\n SUPERSCRIPT: new Array(text.length),\n SUBSCRIPT: new Array(text.length),\n COLOR: new Array(text.length),\n BGCOLOR: new Array(text.length),\n FONTSIZE: new Array(text.length),\n FONTFAMILY: new Array(text.length),\n length: text.length\n };\n\n if (inlineStyleRanges && inlineStyleRanges.length > 0) {\n inlineStyleRanges.forEach(function (range) {\n var offset = range.offset;\n var length = offset + range.length;\n\n for (var i = offset; i < length; i += 1) {\n if (range.style.indexOf('color-') === 0) {\n inlineStyles.COLOR[i] = range.style.substring(6);\n } else if (range.style.indexOf('bgcolor-') === 0) {\n inlineStyles.BGCOLOR[i] = range.style.substring(8);\n } else if (range.style.indexOf('fontsize-') === 0) {\n inlineStyles.FONTSIZE[i] = range.style.substring(9);\n } else if (range.style.indexOf('fontfamily-') === 0) {\n inlineStyles.FONTFAMILY[i] = range.style.substring(11);\n } else if (inlineStyles[range.style]) {\n inlineStyles[range.style][i] = true;\n }\n }\n });\n }\n\n return inlineStyles;\n }\n /**\n * The function will return inline style applicable at some offset within a block.\n */\n\n\n function getStylesAtOffset(inlineStyles, offset) {\n var styles = {};\n\n if (inlineStyles.COLOR[offset]) {\n styles.COLOR = inlineStyles.COLOR[offset];\n }\n\n if (inlineStyles.BGCOLOR[offset]) {\n styles.BGCOLOR = inlineStyles.BGCOLOR[offset];\n }\n\n if (inlineStyles.FONTSIZE[offset]) {\n styles.FONTSIZE = inlineStyles.FONTSIZE[offset];\n }\n\n if (inlineStyles.FONTFAMILY[offset]) {\n styles.FONTFAMILY = inlineStyles.FONTFAMILY[offset];\n }\n\n if (inlineStyles.UNDERLINE[offset]) {\n styles.UNDERLINE = true;\n }\n\n if (inlineStyles.ITALIC[offset]) {\n styles.ITALIC = true;\n }\n\n if (inlineStyles.BOLD[offset]) {\n styles.BOLD = true;\n }\n\n if (inlineStyles.STRIKETHROUGH[offset]) {\n styles.STRIKETHROUGH = true;\n }\n\n if (inlineStyles.CODE[offset]) {\n styles.CODE = true;\n }\n\n if (inlineStyles.SUBSCRIPT[offset]) {\n styles.SUBSCRIPT = true;\n }\n\n if (inlineStyles.SUPERSCRIPT[offset]) {\n styles.SUPERSCRIPT = true;\n }\n\n return styles;\n }\n /**\n * Function returns true for a set of styles if the value of these styles at an offset\n * are same as that on the previous offset.\n */\n\n\n function sameStyleAsPrevious(inlineStyles, styles, index) {\n var sameStyled = true;\n\n if (index > 0 && index < inlineStyles.length) {\n styles.forEach(function (style) {\n sameStyled = sameStyled && inlineStyles[style][index] === inlineStyles[style][index - 1];\n });\n } else {\n sameStyled = false;\n }\n\n return sameStyled;\n }\n /**\n * Function returns html for text depending on inline style tags applicable to it.\n */\n\n\n function addInlineStyleMarkup(style, content) {\n if (style === 'BOLD') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'ITALIC') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'UNDERLINE') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'STRIKETHROUGH') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'CODE') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'SUPERSCRIPT') {\n return \"\".concat(content, \"\");\n }\n\n if (style === 'SUBSCRIPT') {\n return \"\".concat(content, \"\");\n }\n\n return content;\n }\n /**\n * The function returns text for given section of block after doing required character replacements.\n */\n\n\n function getSectionText(text) {\n if (text && text.length > 0) {\n var chars = text.map(function (ch) {\n switch (ch) {\n case '\\n':\n return '
';\n\n case '&':\n return '&';\n\n case '<':\n return '<';\n\n case '>':\n return '>';\n\n default:\n return ch;\n }\n });\n return chars.join('');\n }\n\n return '';\n }\n /**\n * Function returns html for text depending on inline style tags applicable to it.\n */\n\n\n function addStylePropertyMarkup(styles, text) {\n if (styles && (styles.COLOR || styles.BGCOLOR || styles.FONTSIZE || styles.FONTFAMILY)) {\n var styleString = 'style=\"';\n\n if (styles.COLOR) {\n styleString += \"color: \".concat(styles.COLOR, \";\");\n }\n\n if (styles.BGCOLOR) {\n styleString += \"background-color: \".concat(styles.BGCOLOR, \";\");\n }\n\n if (styles.FONTSIZE) {\n styleString += \"font-size: \".concat(styles.FONTSIZE).concat(/^\\d+$/.test(styles.FONTSIZE) ? 'px' : '', \";\");\n }\n\n if (styles.FONTFAMILY) {\n styleString += \"font-family: \".concat(styles.FONTFAMILY, \";\");\n }\n\n styleString += '\"';\n return \"\").concat(text, \"\");\n }\n\n return text;\n }\n /**\n * Function will return markup for Entity.\n */\n\n\n function getEntityMarkup(entityMap, entityKey, text, customEntityTransform) {\n var entity = entityMap[entityKey];\n\n if (typeof customEntityTransform === 'function') {\n var html = customEntityTransform(entity, text);\n\n if (html) {\n return html;\n }\n }\n\n if (entity.type === 'MENTION') {\n return \"\").concat(text, \"\");\n }\n\n if (entity.type === 'LINK') {\n var targetOption = entity.data.targetOption || '_self';\n return \"\").concat(text, \"\");\n }\n\n if (entity.type === 'IMAGE') {\n var alignment = entity.data.alignment;\n\n if (alignment && alignment.length) {\n return \"
\\\"\").concat(entity.data.alt,
\");\n }\n\n return \"\\\"\").concat(entity.data.alt,\");\n }\n\n if (entity.type === 'EMBEDDED_LINK') {\n return \"\");\n }\n\n return text;\n }\n /**\n * For a given section in a block the function will return a further list of sections,\n * with similar inline styles applicable to them.\n */\n\n\n function getInlineStyleSections(block, styles, start, end) {\n var styleSections = [];\n var text = Array.from(block.text);\n\n if (text.length > 0) {\n var inlineStyles = getStyleArrayForBlock(block);\n var section;\n\n for (var i = start; i < end; i += 1) {\n if (i !== start && sameStyleAsPrevious(inlineStyles, styles, i)) {\n section.text.push(text[i]);\n section.end = i + 1;\n } else {\n section = {\n styles: getStylesAtOffset(inlineStyles, i),\n text: [text[i]],\n start: i,\n end: i + 1\n };\n styleSections.push(section);\n }\n }\n }\n\n return styleSections;\n }\n /**\n * Replace leading blank spaces by  \n */\n\n\n function trimLeadingZeros(sectionText) {\n if (sectionText) {\n var replacedText = sectionText;\n\n for (var i = 0; i < replacedText.length; i += 1) {\n if (sectionText[i] === ' ') {\n replacedText = replacedText.replace(' ', ' ');\n } else {\n break;\n }\n }\n\n return replacedText;\n }\n\n return sectionText;\n }\n /**\n * Replace trailing blank spaces by  \n */\n\n\n function trimTrailingZeros(sectionText) {\n if (sectionText) {\n var replacedText = sectionText;\n\n for (var i = replacedText.length - 1; i >= 0; i -= 1) {\n if (replacedText[i] === ' ') {\n replacedText = \"\".concat(replacedText.substring(0, i), \" \").concat(replacedText.substring(i + 1));\n } else {\n break;\n }\n }\n\n return replacedText;\n }\n\n return sectionText;\n }\n /**\n * The method returns markup for section to which inline styles\n * like BOLD, ITALIC, UNDERLINE, STRIKETHROUGH, CODE, SUPERSCRIPT, SUBSCRIPT are applicable.\n */\n\n\n function getStyleTagSectionMarkup(styleSection) {\n var styles = styleSection.styles,\n text = styleSection.text;\n var content = getSectionText(text);\n forEach(styles, function (style, value) {\n content = addInlineStyleMarkup(style, content);\n });\n return content;\n }\n /**\n * The method returns markup for section to which inline styles\n like color, background-color, font-size are applicable.\n */\n\n\n function getInlineStyleSectionMarkup(block, styleSection) {\n var styleTagSections = getInlineStyleSections(block, ['BOLD', 'ITALIC', 'UNDERLINE', 'STRIKETHROUGH', 'CODE', 'SUPERSCRIPT', 'SUBSCRIPT'], styleSection.start, styleSection.end);\n var styleSectionText = '';\n styleTagSections.forEach(function (stylePropertySection) {\n styleSectionText += getStyleTagSectionMarkup(stylePropertySection);\n });\n styleSectionText = addStylePropertyMarkup(styleSection.styles, styleSectionText);\n return styleSectionText;\n }\n /*\n * The method returns markup for an entity section.\n * An entity section is a continuous section in a block\n * to which same entity or no entity is applicable.\n */\n\n\n function getSectionMarkup(block, entityMap, section, customEntityTransform) {\n var entityInlineMarkup = [];\n var inlineStyleSections = getInlineStyleSections(block, ['COLOR', 'BGCOLOR', 'FONTSIZE', 'FONTFAMILY'], section.start, section.end);\n inlineStyleSections.forEach(function (styleSection) {\n entityInlineMarkup.push(getInlineStyleSectionMarkup(block, styleSection));\n });\n var sectionText = entityInlineMarkup.join('');\n\n if (section.type === 'ENTITY') {\n if (section.entityKey !== undefined && section.entityKey !== null) {\n sectionText = getEntityMarkup(entityMap, section.entityKey, sectionText, customEntityTransform); // eslint-disable-line max-len\n }\n } else if (section.type === 'HASHTAG') {\n sectionText = \"\").concat(sectionText, \"\");\n }\n\n return sectionText;\n }\n /**\n * Function will return the markup for block preserving the inline styles and\n * special characters like newlines or blank spaces.\n */\n\n\n function getBlockInnerMarkup(block, entityMap, hashtagConfig, customEntityTransform) {\n var blockMarkup = [];\n var sections = getSections(block, hashtagConfig);\n sections.forEach(function (section, index) {\n var sectionText = getSectionMarkup(block, entityMap, section, customEntityTransform);\n\n if (index === 0) {\n sectionText = trimLeadingZeros(sectionText);\n }\n\n if (index === sections.length - 1) {\n sectionText = trimTrailingZeros(sectionText);\n }\n\n blockMarkup.push(sectionText);\n });\n return blockMarkup.join('');\n }\n /**\n * Function will return html for the block.\n */\n\n\n function getBlockMarkup(block, entityMap, hashtagConfig, directional, customEntityTransform) {\n var blockHtml = [];\n\n if (isAtomicEntityBlock(block)) {\n blockHtml.push(getEntityMarkup(entityMap, block.entityRanges[0].key, undefined, customEntityTransform));\n } else {\n var blockTag = getBlockTag(block.type);\n\n if (blockTag) {\n blockHtml.push(\"<\".concat(blockTag));\n var blockStyle = getBlockStyle(block.data);\n\n if (blockStyle) {\n blockHtml.push(\" style=\\\"\".concat(blockStyle, \"\\\"\"));\n }\n\n if (directional) {\n blockHtml.push(' dir = \"auto\"');\n }\n\n blockHtml.push('>');\n blockHtml.push(getBlockInnerMarkup(block, entityMap, hashtagConfig, customEntityTransform));\n blockHtml.push(\"\"));\n }\n }\n\n blockHtml.push('\\n');\n return blockHtml.join('');\n }\n /**\n * Function to check if a block is of type list.\n */\n\n\n function isList(blockType) {\n return blockType === 'unordered-list-item' || blockType === 'ordered-list-item';\n }\n /**\n * Function will return html markup for a list block.\n */\n\n\n function getListMarkup(listBlocks, entityMap, hashtagConfig, directional, customEntityTransform) {\n var listHtml = [];\n var nestedListBlock = [];\n var previousBlock;\n listBlocks.forEach(function (block) {\n var nestedBlock = false;\n\n if (!previousBlock) {\n listHtml.push(\"<\".concat(getBlockTag(block.type), \">\\n\"));\n } else if (previousBlock.type !== block.type) {\n listHtml.push(\"\\n\"));\n listHtml.push(\"<\".concat(getBlockTag(block.type), \">\\n\"));\n } else if (previousBlock.depth === block.depth) {\n if (nestedListBlock && nestedListBlock.length > 0) {\n listHtml.push(getListMarkup(nestedListBlock, entityMap, hashtagConfig, directional, customEntityTransform));\n nestedListBlock = [];\n }\n } else {\n nestedBlock = true;\n nestedListBlock.push(block);\n }\n\n if (!nestedBlock) {\n listHtml.push('');\n listHtml.push(getBlockInnerMarkup(block, entityMap, hashtagConfig, customEntityTransform));\n listHtml.push('\\n');\n previousBlock = block;\n }\n });\n\n if (nestedListBlock && nestedListBlock.length > 0) {\n listHtml.push(getListMarkup(nestedListBlock, entityMap, hashtagConfig, directional, customEntityTransform));\n }\n\n listHtml.push(\"\\n\"));\n return listHtml.join('');\n }\n /**\n * The function will generate html markup for given draftjs editorContent.\n */\n\n\n function draftToHtml(editorContent, hashtagConfig, directional, customEntityTransform) {\n var html = [];\n\n if (editorContent) {\n var blocks = editorContent.blocks,\n entityMap = editorContent.entityMap;\n\n if (blocks && blocks.length > 0) {\n var listBlocks = [];\n blocks.forEach(function (block) {\n if (isList(block.type)) {\n listBlocks.push(block);\n } else {\n if (listBlocks.length > 0) {\n var listHtml = getListMarkup(listBlocks, entityMap, hashtagConfig, customEntityTransform); // eslint-disable-line max-len\n\n html.push(listHtml);\n listBlocks = [];\n }\n\n var blockHtml = getBlockMarkup(block, entityMap, hashtagConfig, directional, customEntityTransform);\n html.push(blockHtml);\n }\n });\n\n if (listBlocks.length > 0) {\n var listHtml = getListMarkup(listBlocks, entityMap, hashtagConfig, directional, customEntityTransform); // eslint-disable-line max-len\n\n html.push(listHtml);\n listBlocks = [];\n }\n }\n }\n\n return html.join('');\n }\n\n return draftToHtml;\n});","\"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 * @typechecks\n */\n\nvar PhotosMimeType = require(\"./PhotosMimeType\");\n\nvar createArrayFromMixed = require(\"./createArrayFromMixed\");\n\nvar emptyFunction = require(\"./emptyFunction\");\n\nvar CR_LF_REGEX = new RegExp(\"\\r\\n\", 'g');\nvar LF_ONLY = \"\\n\";\nvar RICH_TEXT_TYPES = {\n 'text/rtf': 1,\n 'text/html': 1\n};\n/**\n * If DataTransferItem is a file then return the Blob of data.\n *\n * @param {object} item\n * @return {?blob}\n */\n\nfunction getFileFromDataTransfer(item) {\n if (item.kind == 'file') {\n return item.getAsFile();\n }\n}\n\nvar DataTransfer = /*#__PURE__*/function () {\n /**\n * @param {object} data\n */\n function DataTransfer(data) {\n this.data = data; // Types could be DOMStringList or array\n\n this.types = data.types ? createArrayFromMixed(data.types) : [];\n }\n /**\n * Is this likely to be a rich text data transfer?\n *\n * @return {boolean}\n */\n\n\n var _proto = DataTransfer.prototype;\n\n _proto.isRichText = function isRichText() {\n // If HTML is available, treat this data as rich text. This way, we avoid\n // using a pasted image if it is packaged with HTML -- this may occur with\n // pastes from MS Word, for example. However this is only rich text if\n // there's accompanying text.\n if (this.getHTML() && this.getText()) {\n return true;\n } // When an image is copied from a preview window, you end up with two\n // DataTransferItems one of which is a file's metadata as text. Skip those.\n\n\n if (this.isImage()) {\n return false;\n }\n\n return this.types.some(function (type) {\n return RICH_TEXT_TYPES[type];\n });\n };\n /**\n * Get raw text.\n *\n * @return {?string}\n */\n\n\n _proto.getText = function getText() {\n var text;\n\n if (this.data.getData) {\n if (!this.types.length) {\n text = this.data.getData('Text');\n } else if (this.types.indexOf('text/plain') != -1) {\n text = this.data.getData('text/plain');\n }\n }\n\n return text ? text.replace(CR_LF_REGEX, LF_ONLY) : null;\n };\n /**\n * Get HTML paste data\n *\n * @return {?string}\n */\n\n\n _proto.getHTML = function getHTML() {\n if (this.data.getData) {\n if (!this.types.length) {\n return this.data.getData('Text');\n } else if (this.types.indexOf('text/html') != -1) {\n return this.data.getData('text/html');\n }\n }\n };\n /**\n * Is this a link data transfer?\n *\n * @return {boolean}\n */\n\n\n _proto.isLink = function isLink() {\n return this.types.some(function (type) {\n return type.indexOf('Url') != -1 || type.indexOf('text/uri-list') != -1 || type.indexOf('text/x-moz-url');\n });\n };\n /**\n * Get a link url.\n *\n * @return {?string}\n */\n\n\n _proto.getLink = function getLink() {\n if (this.data.getData) {\n if (this.types.indexOf('text/x-moz-url') != -1) {\n var url = this.data.getData('text/x-moz-url').split('\\n');\n return url[0];\n }\n\n return this.types.indexOf('text/uri-list') != -1 ? this.data.getData('text/uri-list') : this.data.getData('url');\n }\n\n return null;\n };\n /**\n * Is this an image data transfer?\n *\n * @return {boolean}\n */\n\n\n _proto.isImage = function isImage() {\n var isImage = this.types.some(function (type) {\n // Firefox will have a type of application/x-moz-file for images during\n // dragging\n return type.indexOf('application/x-moz-file') != -1;\n });\n\n if (isImage) {\n return true;\n }\n\n var items = this.getFiles();\n\n for (var i = 0; i < items.length; i++) {\n var type = items[i].type;\n\n if (!PhotosMimeType.isImage(type)) {\n return false;\n }\n }\n\n return true;\n };\n\n _proto.getCount = function getCount() {\n if (this.data.hasOwnProperty('items')) {\n return this.data.items.length;\n } else if (this.data.hasOwnProperty('mozItemCount')) {\n return this.data.mozItemCount;\n } else if (this.data.files) {\n return this.data.files.length;\n }\n\n return null;\n };\n /**\n * Get files.\n *\n * @return {array}\n */\n\n\n _proto.getFiles = function getFiles() {\n if (this.data.items) {\n // createArrayFromMixed doesn't properly handle DataTransferItemLists.\n return Array.prototype.slice.call(this.data.items).map(getFileFromDataTransfer).filter(emptyFunction.thatReturnsArgument);\n } else if (this.data.files) {\n return Array.prototype.slice.call(this.data.files);\n } else {\n return [];\n }\n };\n /**\n * Are there any files to fetch?\n *\n * @return {boolean}\n */\n\n\n _proto.hasFiles = function hasFiles() {\n return this.getFiles().length > 0;\n };\n\n return DataTransfer;\n}();\n\nmodule.exports = DataTransfer;","\"use strict\";\n/**\n * 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};","\"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\nvar PhotosMimeType = {\n isImage: function isImage(mimeString) {\n return getParts(mimeString)[0] === 'image';\n },\n isJpeg: function isJpeg(mimeString) {\n var parts = getParts(mimeString);\n return PhotosMimeType.isImage(mimeString) && ( // see http://fburl.com/10972194\n parts[1] === 'jpeg' || parts[1] === 'pjpeg');\n }\n};\n\nfunction getParts(mimeString) {\n return mimeString.split('/');\n}\n\nmodule.exports = PhotosMimeType;","\"use strict\";\n/**\n * 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 */\n\nfunction _isViewportScrollElement(element, doc) {\n return !!doc && (element === doc.documentElement || element === doc.body);\n}\n/**\n * Scroll Module. This class contains 4 simple static functions\n * to be used to access Element.scrollTop/scrollLeft properties.\n * To solve the inconsistencies between browsers when either\n * document.body or document.documentElement is supplied,\n * below logic will be used to alleviate the issue:\n *\n * 1. If 'element' is either 'document.body' or 'document.documentElement,\n * get whichever element's 'scroll{Top,Left}' is larger.\n * 2. If 'element' is either 'document.body' or 'document.documentElement',\n * set the 'scroll{Top,Left}' on both elements.\n */\n\n\nvar Scroll = {\n /**\n * @param {DOMElement} element\n * @return {number}\n */\n getTop: function getTop(element) {\n var doc = element.ownerDocument;\n return _isViewportScrollElement(element, doc) ? // In practice, they will either both have the same value,\n // or one will be zero and the other will be the scroll position\n // of the viewport. So we can use `X || Y` instead of `Math.max(X, Y)`\n doc.body.scrollTop || doc.documentElement.scrollTop : element.scrollTop;\n },\n\n /**\n * @param {DOMElement} element\n * @param {number} newTop\n */\n setTop: function setTop(element, newTop) {\n var doc = element.ownerDocument;\n\n if (_isViewportScrollElement(element, doc)) {\n doc.body.scrollTop = doc.documentElement.scrollTop = newTop;\n } else {\n element.scrollTop = newTop;\n }\n },\n\n /**\n * @param {DOMElement} element\n * @return {number}\n */\n getLeft: function getLeft(element) {\n var doc = element.ownerDocument;\n return _isViewportScrollElement(element, doc) ? doc.body.scrollLeft || doc.documentElement.scrollLeft : element.scrollLeft;\n },\n\n /**\n * @param {DOMElement} element\n * @param {number} newLeft\n */\n setLeft: function setLeft(element, newLeft) {\n var doc = element.ownerDocument;\n\n if (_isViewportScrollElement(element, doc)) {\n doc.body.scrollLeft = doc.documentElement.scrollLeft = newLeft;\n } else {\n element.scrollLeft = newLeft;\n }\n }\n};\nmodule.exports = Scroll;","\"use strict\";\n/**\n * 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 * @param {DOMNode} element [description]\n * @param {string} name Overflow style property name.\n * @return {boolean} True if the supplied ndoe is scrollable.\n */\n\n\nfunction _isNodeScrollable(element, name) {\n var overflow = Style.get(element, name);\n return overflow === 'auto' || overflow === 'scroll';\n}\n/**\n * Utilities for querying and mutating style properties.\n */\n\n\nvar Style = {\n /**\n * Gets the style property for the supplied node. This will return either the\n * computed style, if available, or the declared style.\n *\n * @param {DOMNode} node\n * @param {string} name Style property name.\n * @return {?string} Style property value.\n */\n get: getStyleProperty,\n\n /**\n * Determines the nearest ancestor of a node that is scrollable.\n *\n * NOTE: This can be expensive if used repeatedly or on a node nested deeply.\n *\n * @param {?DOMNode} node Node from which to start searching.\n * @return {?DOMWindow|DOMElement} Scroll parent of the supplied node.\n */\n getScrollParent: function getScrollParent(node) {\n if (!node) {\n return null;\n }\n\n var ownerDocument = node.ownerDocument;\n\n while (node && node !== ownerDocument.body) {\n if (_isNodeScrollable(node, 'overflow') || _isNodeScrollable(node, 'overflowY') || _isNodeScrollable(node, 'overflowX')) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return ownerDocument.defaultView || ownerDocument.parentWindow;\n }\n};\nmodule.exports = Style;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * @stub\n * \n */\n'use strict'; // \\u00a1-\\u00b1\\u00b4-\\u00b8\\u00ba\\u00bb\\u00bf\n// is latin supplement punctuation except fractions and superscript\n// numbers\n// \\u2010-\\u2027\\u2030-\\u205e\n// is punctuation from the general punctuation block:\n// weird quotes, commas, bullets, dashes, etc.\n// \\u30fb\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301f\n// is CJK punctuation\n// \\uff1a-\\uff1f\\uff01-\\uff0f\\uff3b-\\uff40\\uff5b-\\uff65\n// is some full-width/half-width punctuation\n// \\u2E2E\\u061f\\u066a-\\u066c\\u061b\\u060c\\u060d\\uFD3e\\uFD3F\n// is some Arabic punctuation marks\n// \\u1801\\u0964\\u104a\\u104b\n// is misc. other language punctuation marks\n\nvar PUNCTUATION = '[.,+*?$|#{}()\\'\\\\^\\\\-\\\\[\\\\]\\\\\\\\\\\\/!@%\"~=<>_:;' + \"\\u30FB\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301F\\uFF1A-\\uFF1F\\uFF01-\\uFF0F\" + \"\\uFF3B-\\uFF40\\uFF5B-\\uFF65\\u2E2E\\u061F\\u066A-\\u066C\\u061B\\u060C\\u060D\" + \"\\uFD3E\\uFD3F\\u1801\\u0964\\u104A\\u104B\\u2010-\\u2027\\u2030-\\u205E\" + \"\\xA1-\\xB1\\xB4-\\xB8\\xBA\\xBB\\xBF]\";\nmodule.exports = {\n getPunctuation: function getPunctuation() {\n return PUNCTUATION;\n }\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nfunction _defineProperty(obj, key, value) {\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\nvar URI = /*#__PURE__*/function () {\n function URI(uri) {\n _defineProperty(this, \"_uri\", void 0);\n\n this._uri = uri;\n }\n\n var _proto = URI.prototype;\n\n _proto.toString = function toString() {\n return this._uri;\n };\n\n return URI;\n}();\n\nmodule.exports = URI;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/**\n * Basic (stateless) API for text direction detection\n *\n * Part of our implementation of Unicode Bidirectional Algorithm (UBA)\n * Unicode Standard Annex #9 (UAX9)\n * http://www.unicode.org/reports/tr9/\n */\n'use strict';\n\nvar UnicodeBidiDirection = require(\"./UnicodeBidiDirection\");\n\nvar invariant = require(\"./invariant\");\n/**\n * 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 */\n\n\nvar RANGE_BY_BIDI_TYPE = {\n L: \"A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u01BA\\u01BB\" + \"\\u01BC-\\u01BF\\u01C0-\\u01C3\\u01C4-\\u0293\\u0294\\u0295-\\u02AF\\u02B0-\\u02B8\" + \"\\u02BB-\\u02C1\\u02D0-\\u02D1\\u02E0-\\u02E4\\u02EE\\u0370-\\u0373\\u0376-\\u0377\" + \"\\u037A\\u037B-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\" + \"\\u03A3-\\u03F5\\u03F7-\\u0481\\u0482\\u048A-\\u052F\\u0531-\\u0556\\u0559\" + \"\\u055A-\\u055F\\u0561-\\u0587\\u0589\\u0903\\u0904-\\u0939\\u093B\\u093D\" + \"\\u093E-\\u0940\\u0949-\\u094C\\u094E-\\u094F\\u0950\\u0958-\\u0961\\u0964-\\u0965\" + \"\\u0966-\\u096F\\u0970\\u0971\\u0972-\\u0980\\u0982-\\u0983\\u0985-\\u098C\" + \"\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\" + \"\\u09BE-\\u09C0\\u09C7-\\u09C8\\u09CB-\\u09CC\\u09CE\\u09D7\\u09DC-\\u09DD\" + \"\\u09DF-\\u09E1\\u09E6-\\u09EF\\u09F0-\\u09F1\\u09F4-\\u09F9\\u09FA\\u0A03\" + \"\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\" + \"\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A3E-\\u0A40\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\" + \"\\u0A72-\\u0A74\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\" + \"\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0ABE-\\u0AC0\\u0AC9\\u0ACB-\\u0ACC\\u0AD0\" + \"\\u0AE0-\\u0AE1\\u0AE6-\\u0AEF\\u0AF0\\u0B02-\\u0B03\\u0B05-\\u0B0C\\u0B0F-\\u0B10\" + \"\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B3E\\u0B40\" + \"\\u0B47-\\u0B48\\u0B4B-\\u0B4C\\u0B57\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\" + \"\\u0B70\\u0B71\\u0B72-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\" + \"\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\" + \"\\u0BBE-\\u0BBF\\u0BC1-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD0\\u0BD7\" + \"\\u0BE6-\\u0BEF\\u0BF0-\\u0BF2\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\" + \"\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C41-\\u0C44\\u0C58-\\u0C59\\u0C60-\\u0C61\" + \"\\u0C66-\\u0C6F\\u0C7F\\u0C82-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\" + \"\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CBE\\u0CBF\\u0CC0-\\u0CC4\\u0CC6\" + \"\\u0CC7-\\u0CC8\\u0CCA-\\u0CCB\\u0CD5-\\u0CD6\\u0CDE\\u0CE0-\\u0CE1\\u0CE6-\\u0CEF\" + \"\\u0CF1-\\u0CF2\\u0D02-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\" + \"\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D4E\\u0D57\\u0D60-\\u0D61\" + \"\\u0D66-\\u0D6F\\u0D70-\\u0D75\\u0D79\\u0D7A-\\u0D7F\\u0D82-\\u0D83\\u0D85-\\u0D96\" + \"\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\" + \"\\u0DE6-\\u0DEF\\u0DF2-\\u0DF3\\u0DF4\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E45\" + \"\\u0E46\\u0E4F\\u0E50-\\u0E59\\u0E5A-\\u0E5B\\u0E81-\\u0E82\\u0E84\\u0E87-\\u0E88\" + \"\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\" + \"\\u0EAA-\\u0EAB\\u0EAD-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\" + \"\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F01-\\u0F03\\u0F04-\\u0F12\\u0F13\\u0F14\" + \"\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F20-\\u0F29\\u0F2A-\\u0F33\\u0F34\\u0F36\\u0F38\" + \"\\u0F3E-\\u0F3F\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F7F\\u0F85\\u0F88-\\u0F8C\" + \"\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE-\\u0FCF\\u0FD0-\\u0FD4\\u0FD5-\\u0FD8\" + \"\\u0FD9-\\u0FDA\\u1000-\\u102A\\u102B-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u103F\" + \"\\u1040-\\u1049\\u104A-\\u104F\\u1050-\\u1055\\u1056-\\u1057\\u105A-\\u105D\\u1061\" + \"\\u1062-\\u1064\\u1065-\\u1066\\u1067-\\u106D\\u106E-\\u1070\\u1075-\\u1081\" + \"\\u1083-\\u1084\\u1087-\\u108C\\u108E\\u108F\\u1090-\\u1099\\u109A-\\u109C\" + \"\\u109E-\\u109F\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FB\\u10FC\" + \"\\u10FD-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\" + \"\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\" + \"\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1360-\\u1368\" + \"\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166D-\\u166E\" + \"\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EB-\\u16ED\\u16EE-\\u16F0\" + \"\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1735-\\u1736\" + \"\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17B6\\u17BE-\\u17C5\" + \"\\u17C7-\\u17C8\\u17D4-\\u17D6\\u17D7\\u17D8-\\u17DA\\u17DC\\u17E0-\\u17E9\" + \"\\u1810-\\u1819\\u1820-\\u1842\\u1843\\u1844-\\u1877\\u1880-\\u18A8\\u18AA\" + \"\\u18B0-\\u18F5\\u1900-\\u191E\\u1923-\\u1926\\u1929-\\u192B\\u1930-\\u1931\" + \"\\u1933-\\u1938\\u1946-\\u194F\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\" + \"\\u19B0-\\u19C0\\u19C1-\\u19C7\\u19C8-\\u19C9\\u19D0-\\u19D9\\u19DA\\u1A00-\\u1A16\" + \"\\u1A19-\\u1A1A\\u1A1E-\\u1A1F\\u1A20-\\u1A54\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\" + \"\\u1A6D-\\u1A72\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA0-\\u1AA6\\u1AA7\\u1AA8-\\u1AAD\" + \"\\u1B04\\u1B05-\\u1B33\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B44\\u1B45-\\u1B4B\" + \"\\u1B50-\\u1B59\\u1B5A-\\u1B60\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1B82\\u1B83-\\u1BA0\" + \"\\u1BA1\\u1BA6-\\u1BA7\\u1BAA\\u1BAE-\\u1BAF\\u1BB0-\\u1BB9\\u1BBA-\\u1BE5\\u1BE7\" + \"\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1BF3\\u1BFC-\\u1BFF\\u1C00-\\u1C23\\u1C24-\\u1C2B\" + \"\\u1C34-\\u1C35\\u1C3B-\\u1C3F\\u1C40-\\u1C49\\u1C4D-\\u1C4F\\u1C50-\\u1C59\" + \"\\u1C5A-\\u1C77\\u1C78-\\u1C7D\\u1C7E-\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u1CE1\" + \"\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF2-\\u1CF3\\u1CF5-\\u1CF6\\u1D00-\\u1D2B\" + \"\\u1D2C-\\u1D6A\\u1D6B-\\u1D77\\u1D78\\u1D79-\\u1D9A\\u1D9B-\\u1DBF\\u1E00-\\u1F15\" + \"\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\" + \"\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\" + \"\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200E\" + \"\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\" + \"\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2134\\u2135-\\u2138\\u2139\" + \"\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u214F\\u2160-\\u2182\\u2183-\\u2184\" + \"\\u2185-\\u2188\\u2336-\\u237A\\u2395\\u249C-\\u24E9\\u26AC\\u2800-\\u28FF\" + \"\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2C7B\\u2C7C-\\u2C7D\\u2C7E-\\u2CE4\" + \"\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\" + \"\\u2D70\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\" + \"\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005\\u3006\\u3007\" + \"\\u3021-\\u3029\\u302E-\\u302F\\u3031-\\u3035\\u3038-\\u303A\\u303B\\u303C\" + \"\\u3041-\\u3096\\u309D-\\u309E\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FE\\u30FF\" + \"\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u3191\\u3192-\\u3195\\u3196-\\u319F\" + \"\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3200-\\u321C\\u3220-\\u3229\\u322A-\\u3247\" + \"\\u3248-\\u324F\\u3260-\\u327B\\u327F\\u3280-\\u3289\\u328A-\\u32B0\\u32C0-\\u32CB\" + \"\\u32D0-\\u32FE\\u3300-\\u3376\\u337B-\\u33DD\\u33E0-\\u33FE\\u3400-\\u4DB5\" + \"\\u4E00-\\u9FCC\\uA000-\\uA014\\uA015\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA4F8-\\uA4FD\" + \"\\uA4FE-\\uA4FF\\uA500-\\uA60B\\uA60C\\uA610-\\uA61F\\uA620-\\uA629\\uA62A-\\uA62B\" + \"\\uA640-\\uA66D\\uA66E\\uA680-\\uA69B\\uA69C-\\uA69D\\uA6A0-\\uA6E5\\uA6E6-\\uA6EF\" + \"\\uA6F2-\\uA6F7\\uA722-\\uA76F\\uA770\\uA771-\\uA787\\uA789-\\uA78A\\uA78B-\\uA78E\" + \"\\uA790-\\uA7AD\\uA7B0-\\uA7B1\\uA7F7\\uA7F8-\\uA7F9\\uA7FA\\uA7FB-\\uA801\" + \"\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA823-\\uA824\\uA827\\uA830-\\uA835\" + \"\\uA836-\\uA837\\uA840-\\uA873\\uA880-\\uA881\\uA882-\\uA8B3\\uA8B4-\\uA8C3\" + \"\\uA8CE-\\uA8CF\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8F8-\\uA8FA\\uA8FB\\uA900-\\uA909\" + \"\\uA90A-\\uA925\\uA92E-\\uA92F\\uA930-\\uA946\\uA952-\\uA953\\uA95F\\uA960-\\uA97C\" + \"\\uA983\\uA984-\\uA9B2\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uA9C0\\uA9C1-\\uA9CD\" + \"\\uA9CF\\uA9D0-\\uA9D9\\uA9DE-\\uA9DF\\uA9E0-\\uA9E4\\uA9E6\\uA9E7-\\uA9EF\" + \"\\uA9F0-\\uA9F9\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA2F-\\uAA30\\uAA33-\\uAA34\" + \"\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA4D\\uAA50-\\uAA59\\uAA5C-\\uAA5F\\uAA60-\\uAA6F\" + \"\\uAA70\\uAA71-\\uAA76\\uAA77-\\uAA79\\uAA7A\\uAA7B\\uAA7D\\uAA7E-\\uAAAF\\uAAB1\" + \"\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADC\\uAADD\\uAADE-\\uAADF\" + \"\\uAAE0-\\uAAEA\\uAAEB\\uAAEE-\\uAAEF\\uAAF0-\\uAAF1\\uAAF2\\uAAF3-\\uAAF4\\uAAF5\" + \"\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\" + \"\\uAB30-\\uAB5A\\uAB5B\\uAB5C-\\uAB5F\\uAB64-\\uAB65\\uABC0-\\uABE2\\uABE3-\\uABE4\" + \"\\uABE6-\\uABE7\\uABE9-\\uABEA\\uABEB\\uABEC\\uABF0-\\uABF9\\uAC00-\\uD7A3\" + \"\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uE000-\\uF8FF\\uF900-\\uFA6D\\uFA70-\\uFAD9\" + \"\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFF6F\\uFF70\" + \"\\uFF71-\\uFF9D\\uFF9E-\\uFF9F\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\" + \"\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",\n R: \"\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05D0-\\u05EA\\u05EB-\\u05EF\" + \"\\u05F0-\\u05F2\\u05F3-\\u05F4\\u05F5-\\u05FF\\u07C0-\\u07C9\\u07CA-\\u07EA\" + \"\\u07F4-\\u07F5\\u07FA\\u07FB-\\u07FF\\u0800-\\u0815\\u081A\\u0824\\u0828\" + \"\\u082E-\\u082F\\u0830-\\u083E\\u083F\\u0840-\\u0858\\u085C-\\u085D\\u085E\" + \"\\u085F-\\u089F\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB37\\uFB38-\\uFB3C\" + \"\\uFB3D\\uFB3E\\uFB3F\\uFB40-\\uFB41\\uFB42\\uFB43-\\uFB44\\uFB45\\uFB46-\\uFB4F\",\n AL: \"\\u0608\\u060B\\u060D\\u061B\\u061C\\u061D\\u061E-\\u061F\\u0620-\\u063F\\u0640\" + \"\\u0641-\\u064A\\u066D\\u066E-\\u066F\\u0671-\\u06D3\\u06D4\\u06D5\\u06E5-\\u06E6\" + \"\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FD-\\u06FE\\u06FF\\u0700-\\u070D\\u070E\\u070F\" + \"\\u0710\\u0712-\\u072F\\u074B-\\u074C\\u074D-\\u07A5\\u07B1\\u07B2-\\u07BF\" + \"\\u08A0-\\u08B2\\u08B3-\\u08E3\\uFB50-\\uFBB1\\uFBB2-\\uFBC1\\uFBC2-\\uFBD2\" + \"\\uFBD3-\\uFD3D\\uFD40-\\uFD4F\\uFD50-\\uFD8F\\uFD90-\\uFD91\\uFD92-\\uFDC7\" + \"\\uFDC8-\\uFDCF\\uFDF0-\\uFDFB\\uFDFC\\uFDFE-\\uFDFF\\uFE70-\\uFE74\\uFE75\" + \"\\uFE76-\\uFEFC\\uFEFD-\\uFEFE\"\n};\nvar REGEX_STRONG = new RegExp('[' + RANGE_BY_BIDI_TYPE.L + RANGE_BY_BIDI_TYPE.R + RANGE_BY_BIDI_TYPE.AL + ']');\nvar REGEX_RTL = new RegExp('[' + RANGE_BY_BIDI_TYPE.R + RANGE_BY_BIDI_TYPE.AL + ']');\n/**\n * Returns the first strong character (has Bidi_Class value of L, R, or AL).\n *\n * @param str A text block; e.g. paragraph, table cell, tag\n * @return A character with strong bidi direction, or null if not found\n */\n\nfunction firstStrongChar(str) {\n var match = REGEX_STRONG.exec(str);\n return match == null ? null : match[0];\n}\n/**\n * Returns the direction of a block of text, based on the direction of its\n * first strong character (has Bidi_Class value of L, R, or AL).\n *\n * @param str A text block; e.g. paragraph, table cell, tag\n * @return The resolved direction\n */\n\n\nfunction firstStrongCharDir(str) {\n var strongChar = firstStrongChar(str);\n\n if (strongChar == null) {\n return UnicodeBidiDirection.NEUTRAL;\n }\n\n return REGEX_RTL.exec(strongChar) ? UnicodeBidiDirection.RTL : UnicodeBidiDirection.LTR;\n}\n/**\n * Returns the direction of a block of text, based on the direction of its\n * first strong character (has Bidi_Class value of L, R, or AL), or a fallback\n * direction, if no strong character is found.\n *\n * This function is supposed to be used in respect to Higher-Level Protocol\n * rule HL1. (http://www.unicode.org/reports/tr9/#HL1)\n *\n * @param str A text block; e.g. paragraph, table cell, tag\n * @param fallback Fallback direction, used if no strong direction detected\n * for the block (default = NEUTRAL)\n * @return The resolved direction\n */\n\n\nfunction resolveBlockDir(str, fallback) {\n fallback = fallback || UnicodeBidiDirection.NEUTRAL;\n\n if (!str.length) {\n return fallback;\n }\n\n var blockDir = firstStrongCharDir(str);\n return blockDir === UnicodeBidiDirection.NEUTRAL ? fallback : blockDir;\n}\n/**\n * Returns the direction of a block of text, based on the direction of its\n * first strong character (has Bidi_Class value of L, R, or AL), or a fallback\n * direction, if no strong character is found.\n *\n * NOTE: This function is similar to resolveBlockDir(), but uses the global\n * direction as the fallback, so it *always* returns a Strong direction,\n * making it useful for integration in places that you need to make the final\n * decision, like setting some CSS class.\n *\n * This function is supposed to be used in respect to Higher-Level Protocol\n * rule HL1. (http://www.unicode.org/reports/tr9/#HL1)\n *\n * @param str A text block; e.g. paragraph, table cell\n * @param strongFallback Fallback direction, used if no strong direction\n * detected for the block (default = global direction)\n * @return The resolved Strong direction\n */\n\n\nfunction getDirection(str, strongFallback) {\n if (!strongFallback) {\n strongFallback = UnicodeBidiDirection.getGlobalDir();\n }\n\n !UnicodeBidiDirection.isStrong(strongFallback) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Fallback direction must be a strong direction') : invariant(false) : void 0;\n return resolveBlockDir(str, strongFallback);\n}\n/**\n * Returns true if getDirection(arguments...) returns LTR.\n *\n * @param str A text block; e.g. paragraph, table cell\n * @param strongFallback Fallback direction, used if no strong direction\n * detected for the block (default = global direction)\n * @return True if the resolved direction is LTR\n */\n\n\nfunction isDirectionLTR(str, strongFallback) {\n return getDirection(str, strongFallback) === UnicodeBidiDirection.LTR;\n}\n/**\n * Returns true if getDirection(arguments...) returns RTL.\n *\n * @param str A text block; e.g. paragraph, table cell\n * @param strongFallback Fallback direction, used if no strong direction\n * detected for the block (default = global direction)\n * @return True if the resolved direction is RTL\n */\n\n\nfunction isDirectionRTL(str, strongFallback) {\n return getDirection(str, strongFallback) === UnicodeBidiDirection.RTL;\n}\n\nvar UnicodeBidi = {\n firstStrongChar: firstStrongChar,\n firstStrongCharDir: firstStrongCharDir,\n resolveBlockDir: resolveBlockDir,\n getDirection: getDirection,\n isDirectionLTR: isDirectionLTR,\n isDirectionRTL: isDirectionRTL\n};\nmodule.exports = UnicodeBidi;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/**\n * Constants to represent text directionality\n *\n * Also defines a *global* direciton, to be used in bidi algorithms as a\n * default fallback direciton, when no better direction is found or provided.\n *\n * NOTE: Use `setGlobalDir()`, or update `initGlobalDir()`, to set the initial\n * global direction value based on the application.\n *\n * Part of the implementation of Unicode Bidirectional Algorithm (UBA)\n * Unicode Standard Annex #9 (UAX9)\n * http://www.unicode.org/reports/tr9/\n */\n'use strict';\n\nvar invariant = require(\"./invariant\");\n\nvar NEUTRAL = 'NEUTRAL'; // No strong direction\n\nvar LTR = 'LTR'; // Left-to-Right direction\n\nvar RTL = 'RTL'; // Right-to-Left direction\n\nvar globalDir = null; // == Helpers ==\n\n/**\n * Check if a directionality value is a Strong one\n */\n\nfunction isStrong(dir) {\n return dir === LTR || dir === RTL;\n}\n/**\n * Get string value to be used for `dir` HTML attribute or `direction` CSS\n * property.\n */\n\n\nfunction getHTMLDir(dir) {\n !isStrong(dir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`dir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0;\n return dir === LTR ? 'ltr' : 'rtl';\n}\n/**\n * Get string value to be used for `dir` HTML attribute or `direction` CSS\n * property, but returns null if `dir` has same value as `otherDir`.\n * `null`.\n */\n\n\nfunction getHTMLDirIfDifferent(dir, otherDir) {\n !isStrong(dir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`dir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0;\n !isStrong(otherDir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`otherDir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0;\n return dir === otherDir ? null : getHTMLDir(dir);\n} // == Global Direction ==\n\n/**\n * Set the global direction.\n */\n\n\nfunction setGlobalDir(dir) {\n globalDir = dir;\n}\n/**\n * Initialize the global direction\n */\n\n\nfunction initGlobalDir() {\n setGlobalDir(LTR);\n}\n/**\n * Get the global direction\n */\n\n\nfunction getGlobalDir() {\n if (!globalDir) {\n this.initGlobalDir();\n }\n\n !globalDir ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Global direction not set.') : invariant(false) : void 0;\n return globalDir;\n}\n\nvar UnicodeBidiDirection = {\n // Values\n NEUTRAL: NEUTRAL,\n LTR: LTR,\n RTL: RTL,\n // Helpers\n isStrong: isStrong,\n getHTMLDir: getHTMLDir,\n getHTMLDirIfDifferent: getHTMLDirIfDifferent,\n // Global Direction\n setGlobalDir: setGlobalDir,\n initGlobalDir: initGlobalDir,\n getGlobalDir: getGlobalDir\n};\nmodule.exports = UnicodeBidiDirection;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/**\n * Stateful API for text direction detection\n *\n * This class can be used in applications where you need to detect the\n * direction of a sequence of text blocks, where each direction shall be used\n * as the fallback direction for the next one.\n *\n * NOTE: A default direction, if not provided, is set based on the global\n * direction, as defined by `UnicodeBidiDirection`.\n *\n * == Example ==\n * ```\n * var UnicodeBidiService = require('UnicodeBidiService');\n *\n * var bidiService = new UnicodeBidiService();\n *\n * ...\n *\n * bidiService.reset();\n * for (var para in paragraphs) {\n * var dir = bidiService.getDirection(para);\n * ...\n * }\n * ```\n *\n * Part of our implementation of Unicode Bidirectional Algorithm (UBA)\n * Unicode Standard Annex #9 (UAX9)\n * http://www.unicode.org/reports/tr9/\n */\n'use strict';\n\nfunction _defineProperty(obj, key, value) {\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\nvar UnicodeBidi = require(\"./UnicodeBidi\");\n\nvar UnicodeBidiDirection = require(\"./UnicodeBidiDirection\");\n\nvar invariant = require(\"./invariant\");\n\nvar UnicodeBidiService = /*#__PURE__*/function () {\n /**\n * Stateful class for paragraph direction detection\n *\n * @param defaultDir Default direction of the service\n */\n function UnicodeBidiService(defaultDir) {\n _defineProperty(this, \"_defaultDir\", void 0);\n\n _defineProperty(this, \"_lastDir\", void 0);\n\n if (!defaultDir) {\n defaultDir = UnicodeBidiDirection.getGlobalDir();\n } else {\n !UnicodeBidiDirection.isStrong(defaultDir) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Default direction must be a strong direction (LTR or RTL)') : invariant(false) : void 0;\n }\n\n this._defaultDir = defaultDir;\n this.reset();\n }\n /**\n * Reset the internal state\n *\n * Instead of creating a new instance, you can just reset() your instance\n * everytime you start a new loop.\n */\n\n\n var _proto = UnicodeBidiService.prototype;\n\n _proto.reset = function reset() {\n this._lastDir = this._defaultDir;\n };\n /**\n * Returns the direction of a block of text, and remembers it as the\n * fall-back direction for the next paragraph.\n *\n * @param str A text block, e.g. paragraph, table cell, tag\n * @return The resolved direction\n */\n\n\n _proto.getDirection = function getDirection(str) {\n this._lastDir = UnicodeBidi.getDirection(str, this._lastDir);\n return this._lastDir;\n };\n\n return UnicodeBidiService;\n}();\n\nmodule.exports = UnicodeBidiService;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * Unicode-enabled replacesments for basic String functions.\n *\n * All the functions in this module assume that the input string is a valid\n * UTF-16 encoding of a Unicode sequence. If it's not the case, the behavior\n * will be undefined.\n *\n * WARNING: Since this module is typechecks-enforced, you may find new bugs\n * when replacing normal String functions with ones provided here.\n */\n'use strict';\n\nvar invariant = require(\"./invariant\"); // These two ranges are consecutive so anything in [HIGH_START, LOW_END] is a\n// surrogate code unit.\n\n\nvar SURROGATE_HIGH_START = 0xD800;\nvar SURROGATE_HIGH_END = 0xDBFF;\nvar SURROGATE_LOW_START = 0xDC00;\nvar SURROGATE_LOW_END = 0xDFFF;\nvar SURROGATE_UNITS_REGEX = /[\\uD800-\\uDFFF]/;\n/**\n * @param {number} codeUnit A Unicode code-unit, in range [0, 0x10FFFF]\n * @return {boolean} Whether code-unit is in a surrogate (hi/low) range\n */\n\nfunction isCodeUnitInSurrogateRange(codeUnit) {\n return SURROGATE_HIGH_START <= codeUnit && codeUnit <= SURROGATE_LOW_END;\n}\n/**\n * Returns whether the two characters starting at `index` form a surrogate pair.\n * For example, given the string s = \"\\uD83D\\uDE0A\", (s, 0) returns true and\n * (s, 1) returns false.\n *\n * @param {string} str\n * @param {number} index\n * @return {boolean}\n */\n\n\nfunction isSurrogatePair(str, index) {\n !(0 <= index && index < str.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isSurrogatePair: Invalid index %s for string length %s.', index, str.length) : invariant(false) : void 0;\n\n if (index + 1 === str.length) {\n return false;\n }\n\n var first = str.charCodeAt(index);\n var second = str.charCodeAt(index + 1);\n return SURROGATE_HIGH_START <= first && first <= SURROGATE_HIGH_END && SURROGATE_LOW_START <= second && second <= SURROGATE_LOW_END;\n}\n/**\n * @param {string} str Non-empty string\n * @return {boolean} True if the input includes any surrogate code units\n */\n\n\nfunction hasSurrogateUnit(str) {\n return SURROGATE_UNITS_REGEX.test(str);\n}\n/**\n * Return the length of the original Unicode character at given position in the\n * String by looking into the UTF-16 code unit; that is equal to 1 for any\n * non-surrogate characters in BMP ([U+0000..U+D7FF] and [U+E000, U+FFFF]); and\n * returns 2 for the hi/low surrogates ([U+D800..U+DFFF]), which are in fact\n * representing non-BMP characters ([U+10000..U+10FFFF]).\n *\n * Examples:\n * - '\\u0020' => 1\n * - '\\u3020' => 1\n * - '\\uD835' => 2\n * - '\\uD835\\uDDEF' => 2\n * - '\\uDDEF' => 2\n *\n * @param {string} str Non-empty string\n * @param {number} pos Position in the string to look for one code unit\n * @return {number} Number 1 or 2\n */\n\n\nfunction getUTF16Length(str, pos) {\n return 1 + isCodeUnitInSurrogateRange(str.charCodeAt(pos));\n}\n/**\n * Fully Unicode-enabled replacement for String#length\n *\n * @param {string} str Valid Unicode string\n * @return {number} The number of Unicode characters in the string\n */\n\n\nfunction strlen(str) {\n // Call the native functions if there's no surrogate char\n if (!hasSurrogateUnit(str)) {\n return str.length;\n }\n\n var len = 0;\n\n for (var pos = 0; pos < str.length; pos += getUTF16Length(str, pos)) {\n len++;\n }\n\n return len;\n}\n/**\n * Fully Unicode-enabled replacement for String#substr()\n *\n * @param {string} str Valid Unicode string\n * @param {number} start Location in Unicode sequence to begin extracting\n * @param {?number} length The number of Unicode characters to extract\n * (default: to the end of the string)\n * @return {string} Extracted sub-string\n */\n\n\nfunction substr(str, start, length) {\n start = start || 0;\n length = length === undefined ? Infinity : length || 0; // Call the native functions if there's no surrogate char\n\n if (!hasSurrogateUnit(str)) {\n return str.substr(start, length);\n } // Obvious cases\n\n\n var size = str.length;\n\n if (size <= 0 || start > size || length <= 0) {\n return '';\n } // Find the actual starting position\n\n\n var posA = 0;\n\n if (start > 0) {\n for (; start > 0 && posA < size; start--) {\n posA += getUTF16Length(str, posA);\n }\n\n if (posA >= size) {\n return '';\n }\n } else if (start < 0) {\n for (posA = size; start < 0 && 0 < posA; start++) {\n posA -= getUTF16Length(str, posA - 1);\n }\n\n if (posA < 0) {\n posA = 0;\n }\n } // Find the actual ending position\n\n\n var posB = size;\n\n if (length < size) {\n for (posB = posA; length > 0 && posB < size; length--) {\n posB += getUTF16Length(str, posB);\n }\n }\n\n return str.substring(posA, posB);\n}\n/**\n * Fully Unicode-enabled replacement for String#substring()\n *\n * @param {string} str Valid Unicode string\n * @param {number} start Location in Unicode sequence to begin extracting\n * @param {?number} end Location in Unicode sequence to end extracting\n * (default: end of the string)\n * @return {string} Extracted sub-string\n */\n\n\nfunction substring(str, start, end) {\n start = start || 0;\n end = end === undefined ? Infinity : end || 0;\n\n if (start < 0) {\n start = 0;\n }\n\n if (end < 0) {\n end = 0;\n }\n\n var length = Math.abs(end - start);\n start = start < end ? start : end;\n return substr(str, start, length);\n}\n/**\n * Get a list of Unicode code-points from a String\n *\n * @param {string} str Valid Unicode string\n * @return {array} A list of code-points in [0..0x10FFFF]\n */\n\n\nfunction getCodePoints(str) {\n var codePoints = [];\n\n for (var pos = 0; pos < str.length; pos += getUTF16Length(str, pos)) {\n codePoints.push(str.codePointAt(pos));\n }\n\n return codePoints;\n}\n\nvar UnicodeUtils = {\n getCodePoints: getCodePoints,\n getUTF16Length: getUTF16Length,\n hasSurrogateUnit: hasSurrogateUnit,\n isCodeUnitInSurrogateRange: isCodeUnitInSurrogateRange,\n isSurrogatePair: isSurrogatePair,\n strlen: strlen,\n substring: substring,\n substr: substr\n};\nmodule.exports = UnicodeUtils;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar UserAgentData = require(\"./UserAgentData\");\n\nvar VersionRange = require(\"./VersionRange\");\n\nvar mapObject = require(\"./mapObject\");\n\nvar memoizeStringOnly = require(\"./memoizeStringOnly\");\n/**\n * Checks to see whether `name` and `version` satisfy `query`.\n *\n * @param {string} name Name of the browser, device, engine or platform\n * @param {?string} version Version of the browser, engine or platform\n * @param {string} query Query of form \"Name [range expression]\"\n * @param {?function} normalizer Optional pre-processor for range expression\n * @return {boolean}\n */\n\n\nfunction compare(name, version, query, normalizer) {\n // check for exact match with no version\n if (name === query) {\n return true;\n } // check for non-matching names\n\n\n if (!query.startsWith(name)) {\n return false;\n } // full comparison with version\n\n\n var range = query.slice(name.length);\n\n if (version) {\n range = normalizer ? normalizer(range) : range;\n return VersionRange.contains(range, version);\n }\n\n return false;\n}\n/**\n * Normalizes `version` by stripping any \"NT\" prefix, but only on the Windows\n * platform.\n *\n * Mimics the stripping performed by the `UserAgentWindowsPlatform` PHP class.\n *\n * @param {string} version\n * @return {string}\n */\n\n\nfunction normalizePlatformVersion(version) {\n if (UserAgentData.platformName === 'Windows') {\n return version.replace(/^\\s*NT/, '');\n }\n\n return version;\n}\n/**\n * Provides client-side access to the authoritative PHP-generated User Agent\n * information supplied by the server.\n */\n\n\nvar UserAgent = {\n /**\n * Check if the User Agent browser matches `query`.\n *\n * `query` should be a string like \"Chrome\" or \"Chrome > 33\".\n *\n * Valid browser names include:\n *\n * - ACCESS NetFront\n * - AOL\n * - Amazon Silk\n * - Android\n * - BlackBerry\n * - BlackBerry PlayBook\n * - Chrome\n * - Chrome for iOS\n * - Chrome frame\n * - Facebook PHP SDK\n * - Facebook for iOS\n * - Firefox\n * - IE\n * - IE Mobile\n * - Mobile Safari\n * - Motorola Internet Browser\n * - Nokia\n * - Openwave Mobile Browser\n * - Opera\n * - Opera Mini\n * - Opera Mobile\n * - Safari\n * - UIWebView\n * - Unknown\n * - webOS\n * - etc...\n *\n * An authoritative list can be found in the PHP `BrowserDetector` class and\n * related classes in the same file (see calls to `new UserAgentBrowser` here:\n * https://fburl.com/50728104).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name [range expression]\"\n * @return {boolean}\n */\n isBrowser: function isBrowser(query) {\n return compare(UserAgentData.browserName, UserAgentData.browserFullVersion, query);\n },\n\n /**\n * Check if the User Agent browser uses a 32 or 64 bit architecture.\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"32\" or \"64\".\n * @return {boolean}\n */\n isBrowserArchitecture: function isBrowserArchitecture(query) {\n return compare(UserAgentData.browserArchitecture, null, query);\n },\n\n /**\n * Check if the User Agent device matches `query`.\n *\n * `query` should be a string like \"iPhone\" or \"iPad\".\n *\n * Valid device names include:\n *\n * - Kindle\n * - Kindle Fire\n * - Unknown\n * - iPad\n * - iPhone\n * - iPod\n * - etc...\n *\n * An authoritative list can be found in the PHP `DeviceDetector` class and\n * related classes in the same file (see calls to `new UserAgentDevice` here:\n * https://fburl.com/50728332).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name\"\n * @return {boolean}\n */\n isDevice: function isDevice(query) {\n return compare(UserAgentData.deviceName, null, query);\n },\n\n /**\n * Check if the User Agent rendering engine matches `query`.\n *\n * `query` should be a string like \"WebKit\" or \"WebKit >= 537\".\n *\n * Valid engine names include:\n *\n * - Gecko\n * - Presto\n * - Trident\n * - WebKit\n * - etc...\n *\n * An authoritative list can be found in the PHP `RenderingEngineDetector`\n * class related classes in the same file (see calls to `new\n * UserAgentRenderingEngine` here: https://fburl.com/50728617).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name [range expression]\"\n * @return {boolean}\n */\n isEngine: function isEngine(query) {\n return compare(UserAgentData.engineName, UserAgentData.engineVersion, query);\n },\n\n /**\n * Check if the User Agent platform matches `query`.\n *\n * `query` should be a string like \"Windows\" or \"iOS 5 - 6\".\n *\n * Valid platform names include:\n *\n * - Android\n * - BlackBerry OS\n * - Java ME\n * - Linux\n * - Mac OS X\n * - Mac OS X Calendar\n * - Mac OS X Internet Account\n * - Symbian\n * - SymbianOS\n * - Windows\n * - Windows Mobile\n * - Windows Phone\n * - iOS\n * - iOS Facebook Integration Account\n * - iOS Facebook Social Sharing UI\n * - webOS\n * - Chrome OS\n * - etc...\n *\n * An authoritative list can be found in the PHP `PlatformDetector` class and\n * related classes in the same file (see calls to `new UserAgentPlatform`\n * here: https://fburl.com/50729226).\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"Name [range expression]\"\n * @return {boolean}\n */\n isPlatform: function isPlatform(query) {\n return compare(UserAgentData.platformName, UserAgentData.platformFullVersion, query, normalizePlatformVersion);\n },\n\n /**\n * Check if the User Agent platform is a 32 or 64 bit architecture.\n *\n * @note Function results are memoized\n *\n * @param {string} query Query of the form \"32\" or \"64\".\n * @return {boolean}\n */\n isPlatformArchitecture: function isPlatformArchitecture(query) {\n return compare(UserAgentData.platformArchitecture, null, query);\n }\n};\nmodule.exports = mapObject(UserAgent, memoizeStringOnly);","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n/**\n * Usage note:\n * This module makes a best effort to export the same data we would internally.\n * At Facebook we use a server-generated module that does the parsing and\n * exports the data for the client to use. We can't rely on a server-side\n * implementation in open source so instead we make use of an open source\n * library to do the heavy lifting and then make some adjustments as necessary.\n * It's likely there will be some differences. Some we can smooth over.\n * Others are going to be harder.\n */\n'use strict';\n\nvar UAParser = require(\"ua-parser-js\");\n\nvar UNKNOWN = 'Unknown';\nvar PLATFORM_MAP = {\n 'Mac OS': 'Mac OS X'\n};\n/**\n * Convert from UAParser platform name to what we expect.\n */\n\nfunction convertPlatformName(name) {\n return PLATFORM_MAP[name] || name;\n}\n/**\n * Get the version number in parts. This is very naive. We actually get major\n * version as a part of UAParser already, which is generally good enough, but\n * let's get the minor just in case.\n */\n\n\nfunction getBrowserVersion(version) {\n if (!version) {\n return {\n major: '',\n minor: ''\n };\n }\n\n var parts = version.split('.');\n return {\n major: parts[0],\n minor: parts[1]\n };\n}\n/**\n * Get the UA data fom UAParser and then convert it to the format we're\n * expecting for our APIS.\n */\n\n\nvar parser = new UAParser();\nvar results = parser.getResult(); // Do some conversion first.\n\nvar browserVersionData = getBrowserVersion(results.browser.version);\nvar uaData = {\n browserArchitecture: results.cpu.architecture || UNKNOWN,\n browserFullVersion: results.browser.version || UNKNOWN,\n browserMinorVersion: browserVersionData.minor || UNKNOWN,\n browserName: results.browser.name || UNKNOWN,\n browserVersion: results.browser.major || UNKNOWN,\n deviceName: results.device.model || UNKNOWN,\n engineName: results.engine.name || UNKNOWN,\n engineVersion: results.engine.version || UNKNOWN,\n platformArchitecture: results.cpu.architecture || UNKNOWN,\n platformName: convertPlatformName(results.os.name) || UNKNOWN,\n platformVersion: results.os.version || UNKNOWN,\n platformFullVersion: results.os.version || UNKNOWN\n};\nmodule.exports = uaData;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar invariant = require(\"./invariant\");\n\nvar componentRegex = /\\./;\nvar orRegex = /\\|\\|/;\nvar rangeRegex = /\\s+\\-\\s+/;\nvar modifierRegex = /^(<=|<|=|>=|~>|~|>|)?\\s*(.+)/;\nvar numericRegex = /^(\\d*)(.*)/;\n/**\n * Splits input `range` on \"||\" and returns true if any subrange matches\n * `version`.\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n\nfunction checkOrExpression(range, version) {\n var expressions = range.split(orRegex);\n\n if (expressions.length > 1) {\n return expressions.some(function (range) {\n return VersionRange.contains(range, version);\n });\n } else {\n range = expressions[0].trim();\n return checkRangeExpression(range, version);\n }\n}\n/**\n * Splits input `range` on \" - \" (the surrounding whitespace is required) and\n * returns true if version falls between the two operands.\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n\n\nfunction checkRangeExpression(range, version) {\n var expressions = range.split(rangeRegex);\n !(expressions.length > 0 && expressions.length <= 2) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'the \"-\" operator expects exactly 2 operands') : invariant(false) : void 0;\n\n if (expressions.length === 1) {\n return checkSimpleExpression(expressions[0], version);\n } else {\n var startVersion = expressions[0],\n endVersion = expressions[1];\n !(isSimpleVersion(startVersion) && isSimpleVersion(endVersion)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'operands to the \"-\" operator must be simple (no modifiers)') : invariant(false) : void 0;\n return checkSimpleExpression('>=' + startVersion, version) && checkSimpleExpression('<=' + endVersion, version);\n }\n}\n/**\n * Checks if `range` matches `version`. `range` should be a \"simple\" range (ie.\n * not a compound range using the \" - \" or \"||\" operators).\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n\n\nfunction checkSimpleExpression(range, version) {\n range = range.trim();\n\n if (range === '') {\n return true;\n }\n\n var versionComponents = version.split(componentRegex);\n\n var _getModifierAndCompon = getModifierAndComponents(range),\n modifier = _getModifierAndCompon.modifier,\n rangeComponents = _getModifierAndCompon.rangeComponents;\n\n switch (modifier) {\n case '<':\n return checkLessThan(versionComponents, rangeComponents);\n\n case '<=':\n return checkLessThanOrEqual(versionComponents, rangeComponents);\n\n case '>=':\n return checkGreaterThanOrEqual(versionComponents, rangeComponents);\n\n case '>':\n return checkGreaterThan(versionComponents, rangeComponents);\n\n case '~':\n case '~>':\n return checkApproximateVersion(versionComponents, rangeComponents);\n\n default:\n return checkEqual(versionComponents, rangeComponents);\n }\n}\n/**\n * Checks whether `a` is less than `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkLessThan(a, b) {\n return compareComponents(a, b) === -1;\n}\n/**\n * Checks whether `a` is less than or equal to `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkLessThanOrEqual(a, b) {\n var result = compareComponents(a, b);\n return result === -1 || result === 0;\n}\n/**\n * Checks whether `a` is equal to `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkEqual(a, b) {\n return compareComponents(a, b) === 0;\n}\n/**\n * Checks whether `a` is greater than or equal to `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkGreaterThanOrEqual(a, b) {\n var result = compareComponents(a, b);\n return result === 1 || result === 0;\n}\n/**\n * Checks whether `a` is greater than `b`.\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkGreaterThan(a, b) {\n return compareComponents(a, b) === 1;\n}\n/**\n * Checks whether `a` is \"reasonably close\" to `b` (as described in\n * https://www.npmjs.org/doc/misc/semver.html). For example, if `b` is \"1.3.1\"\n * then \"reasonably close\" is defined as \">= 1.3.1 and < 1.4\".\n *\n * @param {array} a\n * @param {array} b\n * @returns {boolean}\n */\n\n\nfunction checkApproximateVersion(a, b) {\n var lowerBound = b.slice();\n var upperBound = b.slice();\n\n if (upperBound.length > 1) {\n upperBound.pop();\n }\n\n var lastIndex = upperBound.length - 1;\n var numeric = parseInt(upperBound[lastIndex], 10);\n\n if (isNumber(numeric)) {\n upperBound[lastIndex] = numeric + 1 + '';\n }\n\n return checkGreaterThanOrEqual(a, lowerBound) && checkLessThan(a, upperBound);\n}\n/**\n * Extracts the optional modifier (<, <=, =, >=, >, ~, ~>) and version\n * components from `range`.\n *\n * For example, given `range` \">= 1.2.3\" returns an object with a `modifier` of\n * `\">=\"` and `components` of `[1, 2, 3]`.\n *\n * @param {string} range\n * @returns {object}\n */\n\n\nfunction getModifierAndComponents(range) {\n var rangeComponents = range.split(componentRegex);\n var matches = rangeComponents[0].match(modifierRegex);\n !matches ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'expected regex to match but it did not') : invariant(false) : void 0;\n return {\n modifier: matches[1],\n rangeComponents: [matches[2]].concat(rangeComponents.slice(1))\n };\n}\n/**\n * Determines if `number` is a number.\n *\n * @param {mixed} number\n * @returns {boolean}\n */\n\n\nfunction isNumber(number) {\n return !isNaN(number) && isFinite(number);\n}\n/**\n * Tests whether `range` is a \"simple\" version number without any modifiers\n * (\">\", \"~\" etc).\n *\n * @param {string} range\n * @returns {boolean}\n */\n\n\nfunction isSimpleVersion(range) {\n return !getModifierAndComponents(range).modifier;\n}\n/**\n * Zero-pads array `array` until it is at least `length` long.\n *\n * @param {array} array\n * @param {number} length\n */\n\n\nfunction zeroPad(array, length) {\n for (var i = array.length; i < length; i++) {\n array[i] = '0';\n }\n}\n/**\n * Normalizes `a` and `b` in preparation for comparison by doing the following:\n *\n * - zero-pads `a` and `b`\n * - marks any \"x\", \"X\" or \"*\" component in `b` as equivalent by zero-ing it out\n * in both `a` and `b`\n * - marks any final \"*\" component in `b` as a greedy wildcard by zero-ing it\n * and all of its successors in `a`\n *\n * @param {array} a\n * @param {array} b\n * @returns {array>}\n */\n\n\nfunction normalizeVersions(a, b) {\n a = a.slice();\n b = b.slice();\n zeroPad(a, b.length); // mark \"x\" and \"*\" components as equal\n\n for (var i = 0; i < b.length; i++) {\n var matches = b[i].match(/^[x*]$/i);\n\n if (matches) {\n b[i] = a[i] = '0'; // final \"*\" greedily zeros all remaining components\n\n if (matches[0] === '*' && i === b.length - 1) {\n for (var j = i; j < a.length; j++) {\n a[j] = '0';\n }\n }\n }\n }\n\n zeroPad(b, a.length);\n return [a, b];\n}\n/**\n * Returns the numerical -- not the lexicographical -- ordering of `a` and `b`.\n *\n * For example, `10-alpha` is greater than `2-beta`.\n *\n * @param {string} a\n * @param {string} b\n * @returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,\n * or greater than `b`, respectively\n */\n\n\nfunction compareNumeric(a, b) {\n var aPrefix = a.match(numericRegex)[1];\n var bPrefix = b.match(numericRegex)[1];\n var aNumeric = parseInt(aPrefix, 10);\n var bNumeric = parseInt(bPrefix, 10);\n\n if (isNumber(aNumeric) && isNumber(bNumeric) && aNumeric !== bNumeric) {\n return compare(aNumeric, bNumeric);\n } else {\n return compare(a, b);\n }\n}\n/**\n * Returns the ordering of `a` and `b`.\n *\n * @param {string|number} a\n * @param {string|number} b\n * @returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,\n * or greater than `b`, respectively\n */\n\n\nfunction compare(a, b) {\n !(typeof a === typeof b) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '\"a\" and \"b\" must be of the same type') : invariant(false) : void 0;\n\n if (a > b) {\n return 1;\n } else if (a < b) {\n return -1;\n } else {\n return 0;\n }\n}\n/**\n * Compares arrays of version components.\n *\n * @param {array} a\n * @param {array} b\n * @returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,\n * or greater than `b`, respectively\n */\n\n\nfunction compareComponents(a, b) {\n var _normalizeVersions = normalizeVersions(a, b),\n aNormalized = _normalizeVersions[0],\n bNormalized = _normalizeVersions[1];\n\n for (var i = 0; i < bNormalized.length; i++) {\n var result = compareNumeric(aNormalized[i], bNormalized[i]);\n\n if (result) {\n return result;\n }\n }\n\n return 0;\n}\n\nvar VersionRange = {\n /**\n * Checks whether `version` satisfies the `range` specification.\n *\n * We support a subset of the expressions defined in\n * https://www.npmjs.org/doc/misc/semver.html:\n *\n * version Must match version exactly\n * =version Same as just version\n * >version Must be greater than version\n * >=version Must be greater than or equal to version\n * = 1.2.3 and < 1.3\"\n * ~>version Equivalent to ~version\n * 1.2.x Must match \"1.2.x\", where \"x\" is a wildcard that matches\n * anything\n * 1.2.* Similar to \"1.2.x\", but \"*\" in the trailing position is a\n * \"greedy\" wildcard, so will match any number of additional\n * components:\n * \"1.2.*\" will match \"1.2.1\", \"1.2.1.1\", \"1.2.1.1.1\" etc\n * * Any version\n * \"\" (Empty string) Same as *\n * v1 - v2 Equivalent to \">= v1 and <= v2\"\n * r1 || r2 Passes if either r1 or r2 are satisfied\n *\n * @param {string} range\n * @param {string} version\n * @returns {boolean}\n */\n contains: function contains(range, version) {\n return checkOrExpression(range.trim(), version.trim());\n }\n};\nmodule.exports = VersionRange;","\"use strict\";\n/**\n * 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 * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","\"use strict\";\n/**\n * 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/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\n\n\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;","\"use strict\";\n/**\n * 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 * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\n\n\nfunction toArray(obj) {\n var length = obj.length; // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n !(typeof length === 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0; // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {// IE < 9 does not support Array#slice on collections objects\n }\n } // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n\n\n var ret = Array(length);\n\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n\n return ret;\n}\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\n\n\nfunction hasArrayNature(obj) {\n return (// not null/false\n !!obj && ( // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') && // quacks like an array\n 'length' in obj && // not window\n !('setInterval' in obj) && // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && ( // a real array\n Array.isArray(obj) || // arguments\n 'callee' in obj || // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\n\n\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;","\"use strict\";\n/**\n * 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 */\n\nfunction cx(classNames) {\n if (typeof classNames == 'object') {\n return Object.keys(classNames).filter(function (className) {\n return classNames[className];\n }).map(replace).join(' ');\n }\n\n return Array.prototype.map.call(arguments, replace).join(' ');\n}\n\nfunction replace(str) {\n return str.replace(/\\//g, '-');\n}\n\nmodule.exports = cx;","\"use strict\";\n/**\n * 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 * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","\"use strict\";\n/**\n * 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 */\n\nfunction getActiveElement(doc)\n/*?DOMElement*/\n{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar isWebkit = typeof navigator !== 'undefined' && navigator.userAgent.indexOf('AppleWebKit') > -1;\n/**\n * Gets the element with the document scroll properties such as `scrollLeft` and\n * `scrollHeight`. This may differ across different browsers.\n *\n * NOTE: The return value can be null if the DOM is not yet ready.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\n\nfunction getDocumentScrollElement(doc) {\n doc = doc || document;\n\n if (doc.scrollingElement) {\n return doc.scrollingElement;\n }\n\n return !isWebkit && doc.compatMode === 'CSS1Compat' ? doc.documentElement : doc.body;\n}\n\nmodule.exports = getDocumentScrollElement;","\"use strict\";\n/**\n * 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 * Gets an element's position in pixels relative to the viewport. The returned\n * object represents the position of the element's top left corner.\n *\n * @param {DOMElement} element\n * @return {object}\n */\n\n\nfunction getElementPosition(element) {\n var rect = getElementRect(element);\n return {\n x: rect.left,\n y: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n}\n\nmodule.exports = getElementPosition;","\"use strict\";\n/**\n * 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 * Gets an element's bounding rect in pixels relative to the viewport.\n *\n * @param {DOMElement} elem\n * @return {object}\n */\n\n\nfunction getElementRect(elem) {\n var docElem = elem.ownerDocument.documentElement; // FF 2, Safari 3 and Opera 9.5- do not support getBoundingClientRect().\n // IE9- will throw if the element is not in the document.\n\n if (!('getBoundingClientRect' in elem) || !containsNode(docElem, elem)) {\n return {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n } // Subtracts clientTop/Left because IE8- added a 2px border to the\n // element (see http://fburl.com/1493213). IE 7 in\n // Quicksmode does not report clientLeft/clientTop so there\n // will be an unaccounted offset of 2px when in quirksmode\n\n\n var rect = elem.getBoundingClientRect();\n return {\n left: Math.round(rect.left) - docElem.clientLeft,\n right: Math.round(rect.right) - docElem.clientLeft,\n top: Math.round(rect.top) - docElem.clientTop,\n bottom: Math.round(rect.bottom) - docElem.clientTop\n };\n}\n\nmodule.exports = getElementRect;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n\nvar getDocumentScrollElement = require(\"./getDocumentScrollElement\");\n\nvar getUnboundedScrollPosition = require(\"./getUnboundedScrollPosition\");\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are bounded. This means that if the scroll position is\n * negative or exceeds the element boundaries (which is possible using inertial\n * scrolling), you will get zero or the maximum scroll position, respectively.\n *\n * If you need the unbound scroll position, use `getUnboundedScrollPosition`.\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\n\nfunction getScrollPosition(scrollable) {\n var documentScrollElement = getDocumentScrollElement(scrollable.ownerDocument || scrollable.document);\n\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n scrollable = documentScrollElement;\n }\n\n var scrollPosition = getUnboundedScrollPosition(scrollable);\n var viewport = scrollable === documentScrollElement ? scrollable.ownerDocument.documentElement : scrollable;\n var xMax = scrollable.scrollWidth - viewport.clientWidth;\n var yMax = scrollable.scrollHeight - viewport.clientHeight;\n scrollPosition.x = Math.max(0, Math.min(scrollPosition.x, xMax));\n scrollPosition.y = Math.max(0, Math.min(scrollPosition.y, yMax));\n return scrollPosition;\n}\n\nmodule.exports = getScrollPosition;","\"use strict\";\n/**\n * 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\");\n\nvar hyphenate = require(\"./hyphenate\");\n\nfunction asString(value)\n/*?string*/\n{\n return value == null ? value : String(value);\n}\n\nfunction getStyleProperty(\n/*DOMNode*/\nnode,\n/*string*/\nname)\n/*?string*/\n{\n var computedStyle; // W3C Standard\n\n if (window.getComputedStyle) {\n // In certain cases such as within an iframe in FF3, this returns null.\n computedStyle = window.getComputedStyle(node, null);\n\n if (computedStyle) {\n return asString(computedStyle.getPropertyValue(hyphenate(name)));\n }\n } // Safari\n\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n computedStyle = document.defaultView.getComputedStyle(node, null); // A Safari bug causes this to return null for `display: none` elements.\n\n if (computedStyle) {\n return asString(computedStyle.getPropertyValue(hyphenate(name)));\n }\n\n if (name === 'display') {\n return 'none';\n }\n } // Internet Explorer\n\n\n if (node.currentStyle) {\n if (name === 'float') {\n return asString(node.currentStyle.cssFloat || node.currentStyle.styleFloat);\n }\n\n return asString(node.currentStyle[camelize(name)]);\n }\n\n return asString(node.style && node.style[camelize(name)]);\n}\n\nmodule.exports = getStyleProperty;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n'use strict';\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop\n };\n }\n\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;","\"use strict\";\n/**\n * 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 getViewportWidth() {\n var width;\n\n if (document.documentElement) {\n width = document.documentElement.clientWidth;\n }\n\n if (!width && document.body) {\n width = document.body.clientWidth;\n }\n\n return width || 0;\n}\n\nfunction getViewportHeight() {\n var height;\n\n if (document.documentElement) {\n height = document.documentElement.clientHeight;\n }\n\n if (!height && document.body) {\n height = document.body.clientHeight;\n }\n\n return height || 0;\n}\n/**\n * Gets the viewport dimensions including any scrollbars.\n */\n\n\nfunction getViewportDimensions() {\n return {\n width: window.innerWidth || getViewportWidth(),\n height: window.innerHeight || getViewportHeight()\n };\n}\n/**\n * Gets the viewport dimensions excluding any scrollbars.\n */\n\n\ngetViewportDimensions.withoutScrollbars = function () {\n return {\n width: getViewportWidth(),\n height: getViewportHeight()\n };\n};\n\nmodule.exports = getViewportDimensions;","\"use strict\";\n/**\n * 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 * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\n\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","\"use strict\";\n/**\n * 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 */\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 * 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 * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\n\n\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @typechecks static-only\n */\n'use strict';\n/**\n * Combines multiple className strings into one.\n */\n\nfunction joinClasses(className) {\n var newClassName = className || '';\n var argLength = arguments.length;\n\n if (argLength > 1) {\n for (var index = 1; index < argLength; index++) {\n var nextClass = arguments[index];\n\n if (nextClass) {\n newClassName = (newClassName ? newClassName + ' ' : '') + nextClass;\n }\n }\n }\n\n return newClassName;\n}\n\nmodule.exports = joinClasses;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n * - the property value\n * - the property name\n * - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\n\nfunction mapObject(object, callback, context) {\n if (!object) {\n return null;\n }\n\n var result = {};\n\n for (var name in object) {\n if (hasOwnProperty.call(object, name)) {\n result[name] = callback.call(context, object[name], name, object);\n }\n }\n\n return result;\n}\n\nmodule.exports = mapObject;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @typechecks static-only\n */\n'use strict';\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;","\"use strict\";\n/**\n * 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\n throw new Error(\"Got unexpected null or undefined\");\n};\n\nmodule.exports = nullthrows;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict'; // setimmediate adds setImmediate to the global. We want to make sure we export\n// the actual function.\n\nrequire(\"setimmediate\");\n\nmodule.exports = global.setImmediate;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t(require(\"immutable\"), require(\"draft-js\")) : \"function\" == typeof define && define.amd ? define([\"immutable\", \"draft-js\"], t) : \"object\" == typeof exports ? exports.htmlToDraftjs = t(require(\"immutable\"), require(\"draft-js\")) : e.htmlToDraftjs = t(e.immutable, e[\"draft-js\"]);\n}(window, function (n, r) {\n return o = {}, i.m = a = [function (e, t) {\n e.exports = n;\n }, function (e, t) {\n e.exports = r;\n }, function (e, t, n) {\n e.exports = n(3);\n }, function (e, t, n) {\n \"use strict\";\n\n n.r(t);\n\n var v = n(1),\n u = n(0),\n s = function s(e) {\n var t,\n n = null;\n return document.implementation && document.implementation.createHTMLDocument && ((t = document.implementation.createHTMLDocument(\"foo\")).documentElement.innerHTML = e, n = t.getElementsByTagName(\"body\")[0]), n;\n },\n x = function x(e, t, n) {\n var r,\n i = e.textContent;\n return \"\" === i.trim() ? {\n chunk: (r = n, {\n text: \" \",\n inlines: [new u.OrderedSet()],\n entities: [r],\n blocks: []\n })\n } : {\n chunk: {\n text: i,\n inlines: Array(i.length).fill(t),\n entities: Array(i.length).fill(n),\n blocks: []\n }\n };\n },\n M = function M() {\n return {\n text: \"\\n\",\n inlines: [new u.OrderedSet()],\n entities: new Array(1),\n blocks: []\n };\n },\n k = function k() {\n return {\n text: \"\",\n inlines: [],\n entities: [],\n blocks: []\n };\n },\n E = function E(e, t) {\n return {\n text: \"\",\n inlines: [],\n entities: [],\n blocks: [{\n type: e,\n depth: 0,\n data: t || new u.Map({})\n }]\n };\n },\n w = function w(e, t, n) {\n return {\n text: \"\\r\",\n inlines: [],\n entities: [],\n blocks: [{\n type: e,\n depth: Math.max(0, Math.min(4, t)),\n data: n || new u.Map({})\n }]\n };\n },\n T = function T(e) {\n return {\n text: \"\\r \",\n inlines: [new u.OrderedSet()],\n entities: [e],\n blocks: [{\n type: \"atomic\",\n depth: 0,\n data: new u.Map({})\n }]\n };\n },\n L = function L(e, t) {\n return {\n text: e.text + t.text,\n inlines: e.inlines.concat(t.inlines),\n entities: e.entities.concat(t.entities),\n blocks: e.blocks.concat(t.blocks)\n };\n },\n A = new u.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\"\n },\n \"ordered-list-item\": {\n element: \"li\",\n wrapper: \"ol\"\n },\n blockquote: {\n element: \"blockquote\"\n },\n code: {\n element: \"pre\"\n },\n atomic: {\n element: \"figure\"\n },\n unstyled: {\n element: \"p\",\n aliasedElements: [\"div\"]\n }\n });\n\n var O = {\n code: \"CODE\",\n del: \"STRIKETHROUGH\",\n em: \"ITALIC\",\n strong: \"BOLD\",\n ins: \"UNDERLINE\",\n sub: \"SUBSCRIPT\",\n sup: \"SUPERSCRIPT\"\n };\n\n function S(e) {\n return e.style.textAlign ? new u.Map({\n \"text-align\": e.style.textAlign\n }) : e.style.marginLeft ? new u.Map({\n \"margin-left\": e.style.marginLeft\n }) : void 0;\n }\n\n var _ = function _(e) {\n var t = void 0;\n\n if (e instanceof HTMLAnchorElement) {\n var n = {};\n t = e.dataset && void 0 !== e.dataset.mention ? (n.url = e.href, n.text = e.innerHTML, n.value = e.dataset.value, v.Entity.__create(\"MENTION\", \"IMMUTABLE\", n)) : (n.url = e.getAttribute && e.getAttribute(\"href\") || e.href, n.title = e.innerHTML, n.targetOption = e.target, v.Entity.__create(\"LINK\", \"MUTABLE\", n));\n }\n\n return t;\n };\n\n n.d(t, \"default\", function () {\n return r;\n });\n var d = \" \",\n f = new RegExp(\" \", \"g\"),\n j = !0;\n\n function I(e, t, n, r, i, a) {\n var o = e.nodeName.toLowerCase();\n\n if (a) {\n var l = a(o, e);\n\n if (l) {\n var c = v.Entity.__create(l.type, l.mutability, l.data || {});\n\n return {\n chunk: T(c)\n };\n }\n }\n\n if (\"#text\" === o && \"\\n\" !== e.textContent) return x(e, t, i);\n if (\"br\" === o) return {\n chunk: M()\n };\n\n if (\"img\" === o && e instanceof HTMLImageElement) {\n var u = {};\n u.src = e.getAttribute && e.getAttribute(\"src\") || e.src, u.alt = e.alt, u.height = e.style.height, u.width = e.style.width, e.style.float && (u.alignment = e.style.float);\n\n var s = v.Entity.__create(\"IMAGE\", \"MUTABLE\", u);\n\n return {\n chunk: T(s)\n };\n }\n\n if (\"video\" === o && e instanceof HTMLVideoElement) {\n var d = {};\n d.src = e.getAttribute && e.getAttribute(\"src\") || e.src, d.alt = e.alt, d.height = e.style.height, d.width = e.style.width, e.style.float && (d.alignment = e.style.float);\n\n var f = v.Entity.__create(\"VIDEO\", \"MUTABLE\", d);\n\n return {\n chunk: T(f)\n };\n }\n\n if (\"iframe\" === o && e instanceof HTMLIFrameElement) {\n var m = {};\n m.src = e.getAttribute && e.getAttribute(\"src\") || e.src, m.height = e.height, m.width = e.width;\n\n var p = v.Entity.__create(\"EMBEDDED_LINK\", \"MUTABLE\", m);\n\n return {\n chunk: T(p)\n };\n }\n\n var h,\n y = function (t, n) {\n var e = A.filter(function (e) {\n return e.element === t && (!e.wrapper || e.wrapper === n) || e.wrapper === t || e.aliasedElements && -1 < e.aliasedElements.indexOf(t);\n }).keySeq().toSet().toArray();\n if (1 === e.length) return e[0];\n }(o, r);\n\n y && (\"ul\" === o || \"ol\" === o ? (r = o, n += 1) : (\"unordered-list-item\" !== y && \"ordered-list-item\" !== y && (r = \"\", n = -1), j ? (h = E(y, S(e)), j = !1) : h = w(y, n, S(e)))), h = h || k(), t = function (e, t, n) {\n var r,\n i = O[e];\n if (i) r = n.add(i).toOrderedSet();else if (t instanceof HTMLElement) {\n var c = t;\n r = (r = n).withMutations(function (e) {\n var t = c.style.color,\n n = c.style.backgroundColor,\n r = c.style.fontSize,\n i = c.style.fontFamily.replace(/^\"|\"$/g, \"\"),\n a = c.style.fontWeight,\n o = c.style.textDecoration,\n l = c.style.fontStyle;\n t && e.add(\"color-\".concat(t.replace(/ /g, \"\"))), n && e.add(\"bgcolor-\".concat(n.replace(/ /g, \"\"))), r && e.add(\"fontsize-\".concat(r.replace(/px$/g, \"\"))), i && e.add(\"fontfamily-\".concat(i)), \"bold\" === a && e.add(O.strong), \"underline\" === o && e.add(O.ins), \"italic\" === l && e.add(O.em);\n }).toOrderedSet();\n }\n return r;\n }(o, e, t);\n\n for (var b = e.firstChild; b;) {\n var g = I(b, t, n, r, _(b) || i, a).chunk;\n h = L(h, g), b = b.nextSibling;\n }\n\n return {\n chunk: h\n };\n }\n\n function r(e, t) {\n var n,\n r,\n i,\n a = (n = t, r = e.trim().replace(f, d), (i = s(r)) ? (j = !0, {\n chunk: I(i, new u.OrderedSet(), -1, \"\", void 0, n).chunk\n }) : null);\n\n if (a) {\n var o = a.chunk,\n l = new u.OrderedMap({});\n o.entities && o.entities.forEach(function (e) {\n e && (l = l.set(e, v.Entity.__get(e)));\n });\n var c = 0;\n return {\n contentBlocks: o.text.split(\"\\r\").map(function (e, t) {\n var n = c + e.length,\n r = o && o.inlines.slice(c, n),\n i = o && o.entities.slice(c, n),\n a = new u.List(r.map(function (e, t) {\n var n = {\n style: e,\n entity: null\n };\n return i[t] && (n.entity = i[t]), v.CharacterMetadata.create(n);\n }));\n return c = n, new v.ContentBlock({\n key: Object(v.genKey)(),\n type: o && o.blocks[t] && o.blocks[t].type || \"unstyled\",\n depth: o && o.blocks[t] && o.blocks[t].depth,\n data: o && o.blocks[t] && o.blocks[t].data || new u.Map({}),\n text: e,\n characterList: a\n });\n }),\n entityMap: l\n };\n }\n\n return null;\n }\n }], i.c = o, i.d = function (e, t, n) {\n i.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, i.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, i.t = function (t, e) {\n if (1 & e && (t = i(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (i.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var r in t) {\n i.d(n, r, function (e) {\n return t[e];\n }.bind(null, r));\n }\n return n;\n }, i.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return i.d(t, \"a\", t), t;\n }, i.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, i.p = \"\", i(i.s = 2);\n\n function i(e) {\n if (o[e]) return o[e].exports;\n var t = o[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return a[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports;\n }\n\n var a, o;\n});","require(\"core-js/modules/es.array.flat-map.js\");\n\nrequire(\"core-js/modules/es.array.unscopables.flat-map.js\");\n\n/**\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(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.Immutable = factory();\n})(this, function () {\n 'use strict';\n\n var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n createClass(KeyedIterable, Iterable);\n\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n createClass(IndexedIterable, Iterable);\n\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n createClass(SetIterable, Iterable);\n\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\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 Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\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__@@'; // Used for setting prototype methods that IE8 chokes on.\n\n var DELETE = 'delete'; // Constants describing the size of trie nodes.\n\n var SHIFT = 5; // Resulted in best performance after ______?\n\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1; // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n\n var NOT_SET = {}; // Boolean references, Rough equivalent of `bool &`.\n\n var CHANGE_LENGTH = {\n value: false\n };\n var DID_ALTER = {\n value: false\n };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\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\n\n function OwnerID() {} // http://jsperf.com/copy-array-inline\n\n\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\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\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\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n\n index = uint32Index;\n }\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) && (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 ? defaultIndex : index < 0 ? Math.max(0, size + index) : size === undefined ? index : Math.min(size, index);\n }\n /* global Symbol */\n\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function () {\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\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 ? iteratorResult.value = value : iteratorResult = {\n value: value,\n done: false\n };\n return iteratorResult;\n }\n\n function iteratorDone() {\n return {\n value: undefined,\n done: true\n };\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 && (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL] || 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\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() : isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function\n /*...values*/\n () {\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\n return this;\n }; // abstract __iterateUncached(fn, reverse)\n\n\n Seq.prototype.__iterate = function (fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n }; // abstract __iteratorUncached(type, reverse)\n\n\n Seq.prototype.__iterator = function (type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n createClass(KeyedSeq, Seq);\n\n function KeyedSeq(value) {\n return value === null || value === undefined ? emptySequence().toKeyedSeq() : isIterable(value) ? isKeyed(value) ? value.toSeq() : value.fromEntrySeq() : keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function () {\n return this;\n };\n\n createClass(IndexedSeq, Seq);\n\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() : !isIterable(value) ? indexedSeqFromValue(value) : isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function\n /*...values*/\n () {\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 createClass(SetSeq, Seq);\n\n function SetSeq(value) {\n return (value === null || value === undefined ? emptySequence() : !isIterable(value) ? indexedSeqFromValue(value) : isKeyed(value) ? value.entrySeq() : value).toSetSeq();\n }\n\n SetSeq.of = function\n /*...values*/\n () {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function () {\n return this;\n };\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n createClass(ArraySeq, IndexedSeq);\n\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\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\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 ? iteratorDone() : iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++]);\n });\n };\n\n createClass(ObjectSeq, KeyedSeq);\n\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\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\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\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 ? iteratorDone() : iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n createClass(IterableSeq, IndexedSeq);\n\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\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n\n if (isIterator(iterator)) {\n var step;\n\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\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\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\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 createClass(IteratorSeq, IndexedSeq);\n\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\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n\n var step;\n\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n\n if (fn(val, iterations++, this) === false) {\n break;\n }\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\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\n if (step.done) {\n return step;\n }\n\n cache[iterations] = step.value;\n }\n\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n }; // # pragma Helper functions\n\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 = Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() : isIterator(value) ? new IteratorSeq(value).fromEntrySeq() : hasIterator(value) ? new IterableSeq(value).fromEntrySeq() : typeof value === 'object' ? new ObjectSeq(value) : undefined;\n\n if (!seq) {\n throw new TypeError('Expected Array or iterable object of [k, v] entries, ' + 'or keyed object: ' + value);\n }\n\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n\n if (!seq) {\n throw new TypeError('Expected Array or iterable object of values: ' + value);\n }\n\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) || typeof value === 'object' && new ObjectSeq(value);\n\n if (!seq) {\n throw new TypeError('Expected Array or iterable object of values, or keyed object: ' + value);\n }\n\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return isArrayLike(value) ? new ArraySeq(value) : isIterator(value) ? new IteratorSeq(value) : hasIterator(value) ? new IterableSeq(value) : undefined;\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n\n if (cache) {\n var maxIndex = cache.length - 1;\n\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n\n return ii;\n }\n\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n\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 ? iteratorDone() : iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ? fromJSWith(converter, json, '', {\n '': 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) {\n return fromJSWith(converter, v, k, json);\n }));\n }\n\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function (v, k) {\n return fromJSWith(converter, v, k, json);\n }));\n }\n\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\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\n\n function is(valueA, valueB) {\n if (valueA === valueB || valueA !== valueA && valueB !== valueB) {\n return true;\n }\n\n if (!valueA || !valueB) {\n return false;\n }\n\n if (typeof valueA.valueOf === 'function' && typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n\n if (valueA === valueB || valueA !== valueA && valueB !== valueB) {\n return true;\n }\n\n if (!valueA || !valueB) {\n return false;\n }\n }\n\n if (typeof valueA.equals === 'function' && typeof valueB.equals === 'function' && valueA.equals(valueB)) {\n return true;\n }\n\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!isIterable(b) || a.size !== undefined && b.size !== undefined && a.size !== b.size || a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash || isKeyed(a) !== isKeyed(b) || isIndexed(a) !== isIndexed(b) || isOrdered(a) !== isOrdered(b)) {\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\n var bSize = b.__iterate(function (v, k) {\n if (notAssociative ? !a.has(v) : 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\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function () {\n if (this.size === 0) {\n return 'Repeat []';\n }\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 : 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\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\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\n return ii;\n };\n\n Repeat.prototype.__iterator = function (type, reverse) {\n 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 ? is(this._value, other._value) : deepEqual(other);\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\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n\n if (end === undefined) {\n end = Infinity;\n }\n\n step = step === undefined ? 1 : Math.abs(step);\n\n if (end < start) {\n step = -step;\n }\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\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function () {\n if (this.size === 0) {\n return 'Range []';\n }\n\n return 'Range [ ' + this._start + '...' + this._end + (this._step !== 1 ? ' by ' + this._step : '') + ' ]';\n };\n\n Range.prototype.get = function (index, notSetValue) {\n return this.has(index) ? this._start + wrapIndex(this, index) * this._step : notSetValue;\n };\n\n Range.prototype.includes = function (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 && possibleIndex < this.size && 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\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n\n if (end <= begin) {\n return new Range(0, 0);\n }\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\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n\n if (index >= 0 && index < this.size) {\n return index;\n }\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\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n\n value += reverse ? -step : step;\n }\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 ? this._start === other._start && this._end === other._end && this._step === other._step : deepEqual(this, other);\n };\n\n var EMPTY_RANGE;\n createClass(Collection, Iterable);\n\n function Collection() {\n throw TypeError('Abstract');\n }\n\n createClass(KeyedCollection, Collection);\n\n function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);\n\n function IndexedCollection() {}\n\n createClass(SetCollection, Collection);\n\n function SetCollection() {}\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n var imul = typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ? Math.imul : function imul(a, b) {\n a = a | 0; // int\n\n b = b | 0; // int\n\n var c = a & 0xffff;\n var d = b & 0xffff; // Shift by 0 fixes the sign on the high part.\n\n return c * d + ((a >>> 16) * d + c * (b >>> 16) << 16 >>> 0) | 0; // int\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\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\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n\n if (o === true) {\n return 1;\n }\n\n var type = typeof o;\n\n if (type === 'number') {\n if (o !== o || o === Infinity) {\n return 0;\n }\n\n var h = o | 0;\n\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n\n return smi(h);\n }\n\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n\n if (type === 'object') {\n return hashJSObj(o);\n }\n\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n\n if (hash === undefined) {\n hash = hashString(string);\n\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n\n return hash;\n } // http://jsperf.com/hashing-strings\n\n\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\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n\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 && 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\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 } // Get references to ES5 object methods.\n\n\n var isExtensible = Object.isExtensible; // True if Object.defineProperty works as expected. IE8 fails this test.\n\n var canDefineProperty = function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\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\n\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1:\n // Element\n return node.uniqueID;\n\n case 9:\n // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n } // If possible, use a WeakMap.\n\n\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n var UID_HASH_KEY = '__immutablehash__';\n\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(size !== Infinity, 'Cannot perform this action with an infinite size.');\n }\n\n createClass(Map, KeyedCollection); // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() : isMap(value) && !isOrdered(value) ? value : emptyMap().withMutations(function (map) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) {\n return map.set(k, v);\n });\n });\n }\n\n Map.of = function () {\n var keyValues = SLICE$0.call(arguments, 0);\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\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function () {\n return this.__toString('Map {', '}');\n }; // @pragma Access\n\n\n Map.prototype.get = function (k, notSetValue) {\n return this._root ? this._root.get(0, undefined, k, notSetValue) : notSetValue;\n }; // @pragma Modification\n\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 () {\n return v;\n });\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 () {\n return NOT_SET;\n });\n };\n\n Map.prototype.update = function (k, notSetValue, updater) {\n return arguments.length === 1 ? k(this) : 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\n var updatedValue = updateInDeepMap(this, forceIterator(keyPath), notSetValue, updater);\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function () {\n if (this.size === 0) {\n return this;\n }\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\n return emptyMap();\n }; // @pragma Composition\n\n\n Map.prototype.merge = function\n /*...iters*/\n () {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function (merger) {\n var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function (keyPath) {\n var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(keyPath, emptyMap(), function (m) {\n return typeof m.merge === 'function' ? m.merge.apply(m, iters) : iters[iters.length - 1];\n });\n };\n\n Map.prototype.mergeDeep = function\n /*...iters*/\n () {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function (merger) {\n var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function (keyPath) {\n var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(keyPath, emptyMap(), function (m) {\n return typeof m.mergeDeep === 'function' ? m.mergeDeep.apply(m, iters) : 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 }; // @pragma Mutability\n\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) {\n 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\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn; // #pragma Trie Nodes\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\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\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var entries = this.entries;\n var idx = 0;\n\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\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 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\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue : 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\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 ? setIn(nodes, idx, newNode, isEditable) : spliceOut(nodes, idx, isEditable) : 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 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\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\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\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n\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 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\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\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\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\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\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 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\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\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 }; // #pragma Iterators\n\n\n ArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n\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 (fn, reverse) {\n var nodes = this.nodes;\n\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n\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\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n\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\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\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n\n continue;\n }\n }\n\n stack = this._stack = this._stack.__prev;\n }\n\n return iteratorDone();\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\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\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\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\n if (!didAlter.value) {\n return map;\n }\n\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\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\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\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\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 var newNode;\n var nodes = idx1 === idx2 ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] : (newNode = new ValueNode(ownerID, keyHash, entry), idx1 < idx2 ? [node, newNode] : [newNode, node]);\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\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n\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\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\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\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\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\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\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n\n if (!isIterable(value)) {\n iter = iter.map(function (v) {\n return fromJS(v);\n });\n }\n\n iters.push(iter);\n }\n\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ? existing.mergeDeep(value) : 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\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) {\n return x.size !== 0;\n });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n\n return collection.withMutations(function (collection) {\n var mergeIntoMap = merger ? function (value, key) {\n collection.update(key, NOT_SET, function (existing) {\n return existing === NOT_SET ? value : merger(existing, value, key);\n });\n } : function (value, key) {\n collection.set(key, value);\n };\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\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n\n invariant(isNotSet || existing && existing.set, 'invalid keyPath');\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(nextExisting, keyPathIter, notSetValue, updater);\n return nextUpdated === nextExisting ? existing : nextUpdated === NOT_SET ? existing.remove(key) : (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\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n\n var newArray = new Array(newLen);\n var after = 0;\n\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\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n\n var newArray = new Array(newLen);\n var after = 0;\n\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n\n newArray[ii] = array[ii + after];\n }\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 createClass(List, IndexedCollection); // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n\n if (value === null || value === undefined) {\n return empty;\n }\n\n if (isList(value)) {\n return value;\n }\n\n var iter = IndexedIterable(value);\n var size = iter.size;\n\n if (size === 0) {\n return empty;\n }\n\n assertNotInfinite(size);\n\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) {\n return list.set(i, v);\n });\n });\n }\n\n List.of = function\n /*...values*/\n () {\n return this(arguments);\n };\n\n List.prototype.toString = function () {\n return this.__toString('List [', ']');\n }; // @pragma Access\n\n\n List.prototype.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n\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\n return notSetValue;\n }; // @pragma Modification\n\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 : index === 0 ? this.shift() : index === this.size - 1 ? this.pop() : 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\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\n return emptyList();\n };\n\n List.prototype.push = function\n /*...values*/\n () {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n\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\n /*...values*/\n () {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n\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 }; // @pragma Composition\n\n\n List.prototype.merge = function\n /*...iters*/\n () {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function (merger) {\n var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function\n /*...iters*/\n () {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function (merger) {\n 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 }; // @pragma Iteration\n\n\n List.prototype.slice = function (begin, end) {\n var size = this.size;\n\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n\n return setListBounds(this, resolveBegin(begin, size), resolveEnd(end, size));\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 ? iteratorDone() : 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\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n\n return index;\n };\n\n List.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn = 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 function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n } // TODO: seems like these methods are very similar\n\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\n var originIndex = index >>> level & MASK;\n\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n\n var removingFirst = originIndex === 0;\n var newChild;\n\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n\n if (removingFirst && !newChild) {\n return this;\n }\n\n var editable = editableVNode(this, ownerID);\n\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\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\n var sizeIndex = index - 1 >>> level & MASK;\n\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n\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\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\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 return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ? iterateLeaf(node, offset) : 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\n if (to > SIZE) {\n to = SIZE;\n }\n\n return function () {\n if (from === to) {\n return DONE;\n }\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\n if (to > SIZE) {\n to = SIZE;\n }\n\n return function () {\n do {\n if (values) {\n var value = values();\n\n if (value !== DONE) {\n return value;\n }\n\n values = null;\n }\n\n if (from === to) {\n return DONE;\n }\n\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(array && array[idx], level - SHIFT, offset + (idx << level));\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\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 ? setListBounds(list, index).set(0, value) : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n\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\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\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\n if (newLowerNode === lowerNode) {\n return node;\n }\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 newNode = editableVNode(node, ownerID);\n\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\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\n if (rawIndex < 1 << list._level + SHIFT) {\n var node = list._root;\n var level = list._level;\n\n while (node && level > 0) {\n node = node.array[rawIndex >>> level & MASK];\n level -= SHIFT;\n }\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\n if (end !== undefined) {\n end = end | 0;\n }\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\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n } // If it's going to end after it starts, it's empty.\n\n\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root; // New origin might need creating a higher root.\n\n var offsetShift = 0;\n\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\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); // New size might need creating a higher root.\n\n while (newTailOffset >= 1 << newLevel + SHIFT) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n } // Locate or create the new tail.\n\n\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ? listNodeFor(list, newCapacity - 1) : newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail; // Merge Tail into tree.\n\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n\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\n node.array[oldTailOffset >>> SHIFT & MASK] = oldTail;\n } // If the size has been reduced, there's a chance the tail needs to be trimmed.\n\n\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n } // If the new origin is within the tail, then we do not need a root.\n\n\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin); // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0; // Identify the new top root node of the subtree of the old root.\n\n while (newRoot) {\n var beginIndex = newOrigin >>> newLevel & MASK;\n\n if (beginIndex !== newTailOffset >>> newLevel & MASK) {\n break;\n }\n\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n } // Trim the new sides of the new root.\n\n\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, 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\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n\n if (!isIterable(value)) {\n iter = iter.map(function (v) {\n return fromJS(v);\n });\n }\n\n iters.push(iter);\n }\n\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\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); // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() : isOrderedMap(value) ? value : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) {\n return map.set(k, v);\n });\n });\n }\n\n OrderedMap.of = function\n /*...values*/\n () {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function () {\n return this.__toString('OrderedMap {', '}');\n }; // @pragma Access\n\n\n OrderedMap.prototype.get = function (k, notSetValue) {\n var index = this._map.get(k);\n\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n }; // @pragma Modification\n\n\n OrderedMap.prototype.clear = function () {\n if (this.size === 0) {\n return this;\n }\n\n if (this.__ownerID) {\n this.size = 0;\n\n this._map.clear();\n\n this._list.clear();\n\n return this;\n }\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) {\n var this$0 = this;\n return this._list.__iterate(function (entry) {\n return entry && fn(entry[1], entry[0], this$0);\n }, reverse);\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\n var newMap = this._map.__ensureOwner(ownerID);\n\n var newList = this._list.__ensureOwner(ownerID);\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = 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\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\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) {\n return entry !== undefined && i !== idx;\n });\n newMap = newList.toKeyedSeq().map(function (entry) {\n return entry[0];\n }).flip().toMap();\n\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\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\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\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n\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 () {\n var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () {\n return this$0._iter.toSeq().reverse();\n };\n }\n\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function (mapper, context) {\n var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () {\n return this$0._iter.toSeq().map(mapper, context);\n };\n }\n\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function (fn, reverse) {\n var this$0 = this;\n var ii;\n return this._iter.__iterate(this._useKeys ? function (v, k) {\n return fn(v, k, this$0);\n } : (ii = reverse ? resolveSize(this) : 0, function (v) {\n return fn(v, reverse ? --ii : ii++, this$0);\n }), reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function (type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n createClass(ToIndexedSequence, IndexedSeq);\n\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) {\n var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function (v) {\n return fn(v, iterations++, this$0);\n }, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\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, step);\n });\n };\n\n createClass(ToSetSequence, SetSeq);\n\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) {\n var this$0 = this;\n return this._iter.__iterate(function (v) {\n return fn(v, v, this$0);\n }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n createClass(FromEntriesSequence, KeyedSeq);\n\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) {\n 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(indexedIterable ? entry.get(1) : entry[1], indexedIterable ? entry.get(0) : entry[0], this$0);\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value; // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(type, indexedIterable ? entry.get(0) : entry[0], indexedIterable ? entry.get(1) : entry[1], step);\n }\n }\n });\n };\n\n ToIndexedSequence.prototype.cacheResult = ToKeyedSequence.prototype.cacheResult = ToSetSequence.prototype.cacheResult = FromEntriesSequence.prototype.cacheResult = cacheResultThrough;\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n\n flipSequence.flip = function () {\n return iterable;\n };\n\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n\n reversedSequence.flip = function () {\n return iterable.reverse();\n };\n\n return reversedSequence;\n };\n\n flipSequence.has = function (key) {\n return iterable.includes(key);\n };\n\n flipSequence.includes = function (key) {\n return iterable.has(key);\n };\n\n flipSequence.cacheResult = cacheResultThrough;\n\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n return iterable.__iterate(function (v, k) {\n return fn(k, v, this$0) !== false;\n }, reverse);\n };\n\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n\n return new Iterator(function () {\n var step = iterator.next();\n\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n\n return step;\n });\n }\n\n return iterable.__iterator(type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES, reverse);\n };\n\n return flipSequence;\n }\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n\n mappedSequence.has = function (key) {\n return iterable.has(key);\n };\n\n mappedSequence.get = function (key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ? notSetValue : mapper.call(context, v, key, iterable);\n };\n\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n return iterable.__iterate(function (v, k, c) {\n 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\n return new Iterator(function () {\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(type, key, mapper.call(context, entry[1], key, iterable), step);\n });\n };\n\n return mappedSequence;\n }\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n\n reversedSequence.reverse = function () {\n return iterable;\n };\n\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n\n flipSequence.reverse = function () {\n return iterable.flip();\n };\n\n return flipSequence;\n };\n }\n\n reversedSequence.get = function (key, notSetValue) {\n return iterable.get(useKeys ? key : -1 - key, notSetValue);\n };\n\n reversedSequence.has = function (key) {\n return iterable.has(useKeys ? key : -1 - key);\n };\n\n reversedSequence.includes = function (value) {\n return iterable.includes(value);\n };\n\n reversedSequence.cacheResult = cacheResultThrough;\n\n reversedSequence.__iterate = function (fn, reverse) {\n var this$0 = this;\n return iterable.__iterate(function (v, k) {\n return fn(v, k, this$0);\n }, !reverse);\n };\n\n reversedSequence.__iterator = function (type, reverse) {\n return iterable.__iterator(type, !reverse);\n };\n\n return reversedSequence;\n }\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n\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\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) ? v : notSetValue;\n };\n }\n\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n var iterations = 0;\n\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\n return iterations;\n };\n\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n\n return filterSequence;\n }\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n\n iterable.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, iterable), 0, function (a) {\n return a + 1;\n });\n });\n\n return groups.asImmutable();\n }\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n\n iterable.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, iterable), function (a) {\n return a = a || [], a.push(isKeyedIter ? [k, v] : v), a;\n });\n });\n\n var coerce = iterableClass(iterable);\n return groups.map(function (arr) {\n return reify(iterable, coerce(arr));\n });\n }\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size; // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n\n if (begin !== undefined) {\n begin = begin | 0;\n }\n\n if (end !== undefined) {\n if (end === Infinity) {\n end = originalSize;\n } else {\n end = end | 0;\n }\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); // 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\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\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\n\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable); // 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\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 ? iterable.get(index + resolvedBegin, notSetValue) : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n\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 && 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 } // Don't bother instantiating parent iterator if taking 0.\n\n\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n\n var step = iterator.next();\n\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 function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n\n var iterations = 0;\n\n iterable.__iterate(function (v, k, c) {\n return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0);\n });\n\n return iterations;\n };\n\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n\n var step = iterator.next();\n\n if (step.done) {\n return step;\n }\n\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n\n return takeSequence;\n }\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n\n var isSkipping = true;\n var iterations = 0;\n\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\n return iterations;\n };\n\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$0 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step, k, v;\n\n do {\n step = iterator.next();\n\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\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\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n\n return skipSequence;\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 ? keyedSeqFromValue(v) : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n\n return v;\n }).filter(function (v) {\n return v.size !== 0;\n });\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n\n if (singleton === iterable || isKeyedIterable && isKeyed(singleton) || isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n }\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n\n flatSequence.__iterateUncached = function (fn, reverse) {\n var iterations = 0;\n var stopped = false;\n\n function flatDeep(iter, currentDepth) {\n var this$0 = this;\n\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\n return !stopped;\n }, reverse);\n }\n\n flatDeep(iterable, 0);\n return iterations;\n };\n\n flatSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n\n var v = step.value;\n\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\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\n return iteratorDone();\n });\n };\n\n return flatSequence;\n }\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(function (v, k) {\n return coerce(mapper.call(context, v, k, iterable));\n }).flatten(true);\n }\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 - 1;\n\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$0 = this;\n var iterations = 0;\n\n iterable.__iterate(function (v, k) {\n return (!iterations || fn(separator, iterations++, this$0) !== false) && fn(v, iterations++, this$0) !== false;\n }, reverse);\n\n return iterations;\n };\n\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n\n if (step.done) {\n return step;\n }\n }\n\n return iterations % 2 ? iteratorValue(type, iterations++, separator) : iteratorValue(type, iterations++, step.value, step);\n });\n };\n\n return interposedSequence;\n }\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(function (v, k) {\n return [k, v, index++, mapper ? mapper(v, k, iterable) : v];\n }).toArray();\n entries.sort(function (a, b) {\n return comparator(a[3], b[3]) || a[2] - b[2];\n }).forEach(isKeyedIterable ? function (v, i) {\n entries[i].length = 2;\n } : function (v, i) {\n entries[i] = v[1];\n });\n return isKeyedIterable ? KeyedSeq(entries) : isIndexed(iterable) ? IndexedSeq(entries) : SetSeq(entries);\n }\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n\n if (mapper) {\n var entry = iterable.toSeq().map(function (v, k) {\n return [v, mapper(v, k, iterable)];\n }).reduce(function (a, b) {\n return maxCompare(comparator, a[1], b[1]) ? b : a;\n });\n return entry && entry[0];\n } else {\n return iterable.reduce(function (a, b) {\n return maxCompare(comparator, a, b) ? b : a;\n });\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a); // 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\n return comp === 0 && b !== a && (b === undefined || b === null || b !== b) || comp > 0;\n }\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function (i) {\n return i.size;\n }).min(); // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n\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\n var step;\n var iterations = 0;\n\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 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\n if (!isDone) {\n steps = iterators.map(function (i) {\n return i.next();\n });\n isDone = steps.some(function (s) {\n return s.done;\n });\n }\n\n if (isDone) {\n return iteratorDone();\n }\n\n return iteratorValue(type, iterations++, zipper.apply(null, steps.map(function (s) {\n return s.value;\n })));\n });\n };\n\n return zipSequence;\n } // #pragma Helper Functions\n\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 : isIndexed(iterable) ? IndexedIterable : SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create((isKeyed(iterable) ? KeyedSeq : isIndexed(iterable) ? IndexedSeq : SetSeq).prototype);\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n\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\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\n iter = getIterator(Iterable(keyPath));\n }\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\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\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\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n return RecordType;\n }\n\n Record.prototype.toString = function () {\n return this.__toString(recordName(this) + ' {', '}');\n }; // @pragma Access\n\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\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n }; // @pragma Modification\n\n\n Record.prototype.clear = function () {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\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\n if (this._map && !this._map.has(k)) {\n var defaultVal = this._defaultValues[k];\n\n if (v === defaultVal) {\n return this;\n }\n }\n\n var newMap = this._map && this._map.set(k, v);\n\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function (k) {\n if (!this.has(k)) {\n return this;\n }\n\n var newMap = this._map && this._map.remove(k);\n\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\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) {\n var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function (_, k) {\n return this$0.get(k);\n }).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function (fn, reverse) {\n var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function (_, k) {\n return this$0.get(k);\n }).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n\n return makeRecord(this, newMap, ownerID);\n };\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn = 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 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) {// Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function get() {\n return this.get(name);\n },\n set: function set(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection); // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() : isSet(value) && !isOrdered(value) ? value : emptySet().withMutations(function (set) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) {\n return set.add(v);\n });\n });\n }\n\n Set.of = function\n /*...values*/\n () {\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 }; // @pragma Access\n\n\n Set.prototype.has = function (value) {\n return this._map.has(value);\n }; // @pragma Modification\n\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 }; // @pragma Composition\n\n\n Set.prototype.union = function () {\n var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function (x) {\n return x.size !== 0;\n });\n\n if (iters.length === 0) {\n return this;\n }\n\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function (value) {\n return set.add(value);\n });\n }\n });\n };\n\n Set.prototype.intersect = function () {\n var iters = SLICE$0.call(arguments, 0);\n\n if (iters.length === 0) {\n return this;\n }\n\n iters = iters.map(function (iter) {\n return SetIterable(iter);\n });\n var originalSet = this;\n return this.withMutations(function (set) {\n originalSet.forEach(function (value) {\n if (!iters.every(function (iter) {\n return iter.includes(value);\n })) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function () {\n var iters = SLICE$0.call(arguments, 0);\n\n if (iters.length === 0) {\n return this;\n }\n\n iters = iters.map(function (iter) {\n return SetIterable(iter);\n });\n var originalSet = this;\n return this.withMutations(function (set) {\n originalSet.forEach(function (value) {\n if (iters.some(function (iter) {\n return iter.includes(value);\n })) {\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) {\n 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) {\n var this$0 = this;\n return this._map.__iterate(function (_, k) {\n return fn(k, k, this$0);\n }, reverse);\n };\n\n Set.prototype.__iterator = function (type, reverse) {\n return this._map.map(function (_, k) {\n return k;\n }).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n var newMap = this._map.__ensureOwner(ownerID);\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n\n return this.__make(newMap, ownerID);\n };\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\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 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\n return newMap === set._map ? set : newMap.size === 0 ? set.__empty() : 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\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set); // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() : isOrderedSet(value) ? value : emptyOrderedSet().withMutations(function (set) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) {\n return set.add(v);\n });\n });\n }\n\n OrderedSet.of = function\n /*...values*/\n () {\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 function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\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\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection); // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() : isStack(value) ? value : emptyStack().unshiftAll(value);\n }\n\n Stack.of = function\n /*...values*/\n () {\n return this(arguments);\n };\n\n Stack.prototype.toString = function () {\n return this.__toString('Stack [', ']');\n }; // @pragma Access\n\n\n Stack.prototype.get = function (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n\n while (head && index--) {\n head = head.next;\n }\n\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function () {\n return this._head && this._head.value;\n }; // @pragma Modification\n\n\n Stack.prototype.push = function\n /*...values*/\n () {\n if (arguments.length === 0) {\n return this;\n }\n\n var newSize = this.size + arguments.length;\n var head = this._head;\n\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\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\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function (iter) {\n iter = IndexedIterable(iter);\n\n if (iter.size === 0) {\n return this;\n }\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\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\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function () {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function\n /*...values*/\n () {\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\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\n return emptyStack();\n };\n\n Stack.prototype.slice = function (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n\n while (resolvedBegin--) {\n head = head.next;\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\n return makeStack(newSize, head);\n }; // @pragma Mutability\n\n\n Stack.prototype.__ensureOwner = function (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n\n return makeStack(this.size, this._head, ownerID, this.__hash);\n }; // @pragma Iteration\n\n\n Stack.prototype.__iterate = function (fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n\n var iterations = 0;\n var node = this._head;\n\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n\n node = node.next;\n }\n\n return iterations;\n };\n\n Stack.prototype.__iterator = function (type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\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\n return iteratorDone();\n });\n };\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\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 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\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n /**\n * Contributes additional methods to a constructor\n */\n\n\n function mixin(ctor, methods) {\n var keyCopier = function keyCopier(key) {\n ctor.prototype[key] = methods[key];\n };\n\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols && Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n mixin(Iterable, {\n // ### Conversion to other types\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n\n this.valueSeq().__iterate(function (v, i) {\n array[i] = v;\n });\n\n return array;\n },\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n toJS: function toJS() {\n return this.toSeq().map(function (value) {\n return value && typeof value.toJS === 'function' ? value.toJS() : value;\n }).__toJS();\n },\n toJSON: function toJSON() {\n return this.toSeq().map(function (value) {\n return value && typeof value.toJSON === 'function' ? value.toJSON() : value;\n }).__toJS();\n },\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n toObject: function toObject() {\n assertNotInfinite(this.size);\n var object = {};\n\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n\n return object;\n },\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\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 toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n toSeq: function toSeq() {\n return isIndexed(this) ? this.toIndexedSeq() : isKeyed(this) ? this.toKeyedSeq() : this.toSetSeq();\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 toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n // ### Common JavaScript methods and properties\n toString: function toString() {\n return '[Iterable]';\n },\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n concat: function concat() {\n var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n includes: function includes(searchValue) {\n return this.some(function (value) {\n return is(value, searchValue);\n });\n },\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n\n return returnValue;\n },\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n\n this.__iterate(function (v) {\n isFirst ? isFirst = false : joined += separator;\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n\n return joined;\n },\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n reduce: function reduce(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\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\n return reduction;\n },\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n some: function some(predicate, context) {\n return !this.every(not(predicate), context);\n },\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n // ### More sequential methods\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () {\n return true;\n });\n },\n count: function count(predicate, context) {\n return ensureSize(predicate ? this.toSeq().filter(predicate, context) : this);\n },\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n entrySeq: function entrySeq() {\n var iterable = this;\n\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\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n\n entriesSequence.fromEntrySeq = function () {\n return iterable.toSeq();\n };\n\n return entriesSequence;\n },\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\n\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\n return found;\n },\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue);\n },\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n first: function first() {\n return this.find(returnTrue);\n },\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) {\n return is(key, searchKey);\n }, undefined, notSetValue);\n },\n getIn: function getIn(searchKeyPath, notSetValue) {\n var nested = this; // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n\n var iter = forceIterator(searchKeyPath);\n var step;\n\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n\n return nested;\n },\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n hasIn: function hasIn(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function (value) {\n return iter.includes(value);\n });\n },\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) {\n return is(value, searchValue);\n });\n },\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n last: function last() {\n return this.toSeq().reverse().first();\n },\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n min: function min(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n minBy: function minBy(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n rest: function rest() {\n return this.slice(1);\n },\n skip: function skip(amount) {\n return this.slice(Math.max(0, amount));\n },\n skipLast: function skipLast(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n takeLast: function takeLast(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n // ### Hashable Object\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashIterable(this));\n } // ### Internal\n // abstract __iterate(fn, reverse)\n // abstract __iterator(type, reverse)\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\n IterablePrototype.inspect = IterablePrototype.toSource = function () {\n return this.toString();\n };\n\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes;\n mixin(KeyedIterable, {\n // ### More sequential methods\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n mapEntries: function mapEntries(mapper, context) {\n var this$0 = this;\n var iterations = 0;\n return reify(this, this.toSeq().map(function (v, k) {\n return mapper.call(context, [k, v], iterations++, this$0);\n }).fromEntrySeq());\n },\n mapKeys: function mapKeys(mapper, context) {\n var this$0 = this;\n return reify(this, this.toSeq().flip().map(function (k, v) {\n return mapper.call(context, k, v, this$0);\n }).flip());\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\n KeyedIterablePrototype.__toStringMapper = function (v, k) {\n return JSON.stringify(k) + ': ' + quoteString(v);\n };\n\n mixin(IndexedIterable, {\n // ### Conversion to other types\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n // ### ES6 Collection methods (ES6 Array and Map)\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n splice: function splice(index, removeNum\n /*, ...values*/\n ) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n\n if (numArgs === 0 || numArgs === 2 && !removeNum) {\n return this;\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\n\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(this, numArgs === 1 ? spliced : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum)));\n },\n // ### More collection methods\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n first: function first() {\n return this.get(0);\n },\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 || this.size === Infinity || this.size !== undefined && index > this.size ? notSetValue : this.find(function (_, key) {\n return key === index;\n }, undefined, notSetValue);\n },\n has: function has(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ? this.size === Infinity || index < this.size : this.indexOf(index) !== -1);\n },\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n interleave: function\n /*...iterables*/\n interleave() {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n\n return reify(this, interleaved);\n },\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n last: function last() {\n return this.get(-1);\n },\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n zip: function\n /*, ...iterables */\n zip() {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n zipWith: function zipWith(zipper\n /*, ...iterables */\n ) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n });\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n mixin(SetIterable, {\n // ### ES6 Collection methods (ES6 Array and Map)\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n includes: function includes(value) {\n return this.has(value);\n },\n // ### More sequential methods\n keySeq: function keySeq() {\n return this.valueSeq();\n }\n });\n SetIterable.prototype.has = IterablePrototype.includes;\n SetIterable.prototype.contains = SetIterable.prototype.includes; // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype); // #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) : String(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\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n\n var size = iterable.__iterate(keyed ? ordered ? function (v, k) {\n h = 31 * h + hashMerge(hash(v), hash(k)) | 0;\n } : function (v, k) {\n h = h + hashMerge(hash(v), hash(k)) | 0;\n } : ordered ? function (v) {\n h = 31 * h + hash(v) | 0;\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 Immutable = {\n Iterable: Iterable,\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 Record: Record,\n Range: Range,\n Repeat: Repeat,\n is: is,\n fromJS: fromJS\n };\n return Immutable;\n});","/**\n * {@docCategory Button}\n */\nexport var ElementType;\n\n(function (ElementType) {\n /**