{"version":3,"file":"js/7140-af16d1a1c4b8030c8eeb.js","mappings":"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","sources":["webpack://AYTM/./app/_stock/webpack/lib/AsyncJobManager/AsyncJobManager.js","webpack://AYTM/./app/_stock/webpack/lib/AsyncJobManager/ProgressivePromise.js","webpack://AYTM/./app/_stock/webpack/lib/common/google-cloud-url.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/editor-tools.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/multiline-limit-plugin.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/rich-text.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/char-limit-plugin.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/rich-text-counter.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/arrow-navigation-plugin.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/convert-block-map-to-html.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/selection-tools.js","webpack://AYTM/./app/_stock/webpack/lib/common/html.ts","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/rich-text.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/lib/draft-js/move-focus-to-end-plugin.js","webpack://AYTM/./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import ProgressivePromise from './ProgressivePromise'\n\nexport default function AsyncJobManager({ concurrency } = {}) {\n const state = {\n globalQueue: [],\n jobsStarted: 0,\n concurrency\n }\n\n const canAcceptJobs = () => !state.concurrency || (state.concurrency && state.jobsStarted < state.concurrency)\n\n const work = () => {\n if (state.globalQueue.length && canAcceptJobs()) {\n const currentJob = state.globalQueue.shift()\n if (currentJob.canceled) {\n currentJob.onDone('canceled', currentJob.index)\n } else {\n currentJob.onProgress('started', currentJob.index)\n state.jobsStarted++\n currentJob\n .resolve()\n .then(\n resolved => {\n currentJob.onDone('done', currentJob.index, resolved)\n },\n rejected => {\n currentJob.onDone('failed', currentJob.index, rejected)\n },\n (loaded, total, ...rest) => {\n currentJob.onProgress('progress', currentJob.index, loaded, total, ...rest)\n }\n )\n .finally(() => {\n currentJob.done = true\n state.jobsStarted--\n work()\n })\n }\n work()\n }\n }\n\n return {\n queue(...jobResolvers) {\n return new ProgressivePromise((resolve, _reject, progress) => {\n if (!jobResolvers.length) {\n resolve([])\n }\n const results = Array.from({ length: jobResolvers.length })\n let jobsDone = 0\n state.globalQueue.push(\n ...jobResolvers.map((job, index) => {\n return {\n resolve: job,\n index,\n onDone: (status, jobIndex, result) => {\n results[jobIndex] = { status, result }\n jobsDone++\n progress('done', jobIndex, jobsDone, jobResolvers.length, status, result)\n if (jobsDone === jobResolvers.length) {\n resolve(results)\n }\n },\n onProgress: progress,\n canceled: false,\n done: false\n }\n })\n )\n if (canAcceptJobs()) {\n work()\n }\n })\n },\n cancel(...jobResolvers) {\n for (let queuedJobIndex = 0; queuedJobIndex < state.globalQueue.length; queuedJobIndex++) {\n const queuedJob = state.globalQueue[queuedJobIndex]\n if (queuedJob.canceled) continue\n for (const jobResolver of jobResolvers) {\n if (queuedJob.resolve === jobResolver) {\n queuedJob.canceled = true\n break\n }\n }\n }\n },\n cancelAll() {\n for (let queuedJobIndex = 0; queuedJobIndex < state.globalQueue.length; queuedJobIndex++) {\n state.globalQueue[queuedJobIndex].canceled = true\n }\n },\n concurrency(newConcurrency) {\n state.concurrency = newConcurrency\n if (canAcceptJobs()) {\n work()\n }\n }\n }\n}\n","export default class ProgressivePromise extends Promise {\n constructor(executor) {\n const progress = { buffer: [], tracker: null }\n const recordProgress = function (...currentProgress) {\n progress.buffer.push([...currentProgress])\n if (progress.tracker) {\n progress.buffer.forEach(recordedProgress => {\n progress.tracker(...recordedProgress)\n })\n progress.buffer = []\n }\n }\n super((resolve, reject) => executor(resolve, reject, recordProgress))\n this.then = (onFulfilled, onRejected, onProgress) => {\n progress.tracker = onProgress\n if (progress.buffer.length && onProgress) {\n progress.buffer.forEach(recordedProgress => {\n onProgress(...recordedProgress)\n })\n progress.buffer = []\n }\n return super.then(onFulfilled, onRejected)\n }\n }\n}\n","const getParameterByName = (url, name) => {\n const escapedName = name.replace(/[[\\]]/g, '\\\\$&')\n const regex = new RegExp('[?&]' + escapedName + '(=([^&#]*)|&|#|$)')\n const results = regex.exec(url)\n if (!results) return null\n if (!results[2]) return ''\n return decodeURIComponent(results[2].replace(/\\+/g, ' '))\n}\n\nexport function headersFromGoogleUploadUrl(url) {\n const result = {}\n const signedHeadersStr = getParameterByName(url, 'X-Goog-SignedHeaders')\n if (signedHeadersStr) {\n const signedHeaders = signedHeadersStr.split(';')\n signedHeaders.forEach(header => {\n if ('host' != header) {\n result[header] = getParameterByName(url, header)\n }\n })\n }\n return result\n}\n","// lib\nimport { EditorState, Modifier } from 'draft-js'\n\nexport function removeSelectedContentFromEditorState(editorState) {\n const content = editorState.getCurrentContent()\n const selection = editorState.getSelection()\n return selection.getAnchorKey() == selection.getFocusKey() &&\n selection.getAnchorOffset() == selection.getFocusOffset()\n ? editorState\n : EditorState.push(\n editorState,\n Modifier.removeRange(content, selection, selection.get('isBackward') ? 'backward' : 'forward'),\n 'remove-range'\n )\n}\n","// lib\nimport { List } from 'immutable'\nimport { Modifier, ContentBlock, ContentState, EditorState, genKey } from 'draft-js'\nimport { removeSelectedContentFromEditorState } from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/editor-tools'\n\n// helpers\nexport function buildMultilineText(lines = [], maxLines = 0, lineBreak = '\\n', linesJoint = ' ') {\n return lines.slice(0, maxLines).join(lineBreak) + linesJoint + lines.slice(maxLines, lines.length).join(linesJoint)\n}\n\n// plugin\nexport default function multilineLimitPlugin(config = {}) {\n const { maxLines = 1, separator = '\\n' } = config\n\n return {\n handleKeyCommand(command, _editorState, _eventTimeStamp, { setEditorState }) {\n switch (command) {\n case 'split-block': {\n const editorState = removeSelectedContentFromEditorState(_editorState)\n const contentState = editorState.getCurrentContent()\n const editorStateText = contentState.getPlainText(separator) || ''\n const lines = editorStateText.split(separator)\n if (lines.length < maxLines) {\n const selection = editorState.getSelection()\n const afterSelectionText = editorStateText.slice(selection.getFocusOffset())\n // Firefox fix: add space at the end\n const applyFFFix = 0 == afterSelectionText.length\n const dividerText = separator + (applyFFFix ? ' ' : '')\n const newContentState = Modifier.insertText(\n contentState,\n selection,\n dividerText,\n editorState.getCurrentInlineStyle(),\n null\n )\n const newEditorState = EditorState.push(editorState, newContentState, 'insert-characters')\n const curFocusOffset = newEditorState.getSelection().getFocusOffset()\n const newSelection = applyFFFix\n ? newEditorState.getSelection().merge({\n focusOffset: curFocusOffset - 1,\n anchorOffset: curFocusOffset - 1\n })\n : newContentState.getSelectionAfter()\n\n setEditorState(EditorState.forceSelection(newEditorState, newSelection))\n }\n return 'handled'\n }\n default: {\n return 'not-handled'\n }\n }\n },\n onChange: function onChange(editorState) {\n const blocks = editorState.getCurrentContent().getBlocksAsArray()\n if (blocks.length > 1) {\n // Gather all the blocks texts\n const { lines, characterList } = blocks.reduce(\n ({ lines, characterList }, block) => {\n if (block.getType() !== 'atomic') {\n lines.push(...block.getText().split(separator))\n return {\n lines,\n characterList: characterList.concat(block.getCharacterList())\n }\n }\n return { lines, characterList }\n },\n { lines: [], characterList: List() }\n )\n\n // Create a new content block with multiline text\n const contentBlock = new ContentBlock({\n key: genKey(),\n text: buildMultilineText(lines, maxLines, separator),\n characterList,\n type: 'unstyled',\n depth: 0\n })\n\n // Update the editor state with the limited multiline text\n const newContentState = ContentState.createFromBlockArray([contentBlock])\n const updatedEditorState = EditorState.push(editorState, newContentState, 'remove-range')\n return EditorState.moveFocusToEnd(updatedEditorState)\n }\n\n // We only have one content block\n const contentBlock = blocks[0]\n const text = contentBlock.getText() || ''\n const lines = text.split(separator)\n if (maxLines < lines.length) {\n // Create a new content block with multiline text\n const newContentBlock = new ContentBlock({\n key: genKey(),\n text: buildMultilineText(lines, maxLines, separator),\n characterList: contentBlock.getCharacterList(),\n type: 'unstyled',\n depth: 0\n })\n\n // Update the editor state with the limited multiline text\n const editorStateSelection = editorState.getSelection()\n const newContentState = ContentState.createFromBlockArray([newContentBlock])\n\n return (editorStateSelection.getHasFocus() ? EditorState.moveFocusToEnd : EditorState.moveSelectionToEnd)(\n EditorState.push(editorState, newContentState, 'insert-characters')\n )\n }\n\n return editorState\n }\n }\n}\n","export function getRichTextContentElement(contentEditableOnly = true) {\n return contentEditableOnly\n ? document.querySelectorAll('.public-DraftEditor-content[contenteditable=true]')\n : document.querySelectorAll('.public-DraftEditor-content')\n}\n\nexport function getActiveRichTextContentElementIndex(richTextContents = getRichTextContentElement()) {\n for (let i = 0; i < richTextContents.length; i++) {\n const richTextContent = richTextContents.item(i)\n if (richTextContent && richTextContent.contains(document.activeElement)) {\n return i\n }\n }\n return -1\n}\n\nexport function getPreviousRichTextContentElement(richTextContents = getRichTextContentElement()) {\n const activeRichTextContentIndex = getActiveRichTextContentElementIndex(richTextContents)\n return 0 < activeRichTextContentIndex ? richTextContents.item(activeRichTextContentIndex - 1) : null\n}\n\nexport function getNextRichTextContentElement(richTextContents = getRichTextContentElement()) {\n const activeRichTextContentIndex = getActiveRichTextContentElementIndex(richTextContents)\n return -1 < activeRichTextContentIndex ? richTextContents.item(activeRichTextContentIndex + 1) : null\n}\n","// lib\nimport { Modifier, EditorState, SelectionState } from 'draft-js'\nimport { removeSelectedContentFromEditorState } from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/editor-tools'\n\nexport default function createCharLimitPlugin(config = {}) {\n const { limit = 0, trim = true, countText = (text = '') => text.trim().replace(/\\n/g, '').length } = config\n\n const countTextAfterInsertion = function (text = '', editorState) {\n const editorStateText =\n removeSelectedContentFromEditorState(editorState).getCurrentContent().getPlainText('\\n') || ''\n return countText(trim ? (editorStateText + (text || '')).trim() : editorStateText + (text || ''))\n }\n\n return {\n handleBeforeInput(chars = '', editorState) {\n if (limit > 0) {\n if (countTextAfterInsertion(chars, editorState) > limit) {\n return 'handled'\n }\n } else if (0 === limit) {\n return 'handled'\n }\n return 'not-handled'\n },\n handlePastedText(text = '', _html = '', editorState) {\n if (limit > 0) {\n const textLengthAfterInsertion = countTextAfterInsertion(text, editorState)\n if (textLengthAfterInsertion > limit) {\n return 'handled'\n }\n } else if (0 === limit) {\n return 'handled'\n }\n return 'not-handled'\n },\n onChange(editorState) {\n if (limit > 0) {\n const content = editorState.getCurrentContent()\n const text = content.getPlainText('\\n')\n const textLength = countText(trim ? text.trim() : text)\n if (textLength > limit) {\n const blockMap = content.getBlockMap()\n const lastBlock = blockMap.last()\n const focusKey = lastBlock.getKey()\n const focusOffset = lastBlock.getLength()\n const anchorKey = focusKey\n const anchorOffset = Math.max(0, focusOffset - (textLength - limit)) //TODO: count several blocks\n const selection = SelectionState.createEmpty(anchorKey).merge({\n anchorKey,\n anchorOffset,\n focusKey,\n focusOffset,\n isBackward: false\n })\n const editorStateSelection = editorState.getSelection()\n return (editorStateSelection.getHasFocus() ? EditorState.moveFocusToEnd : EditorState.moveSelectionToEnd)(\n EditorState.push(editorState, Modifier.removeRange(content, selection, 'forward'), 'trim-over-limit')\n )\n }\n } else if (0 === limit) {\n return EditorState.createEmpty()\n }\n return editorState\n }\n }\n}\n","// lib\nimport React from 'react'\nimport { Map } from 'immutable'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\n\n// resources\nimport createCharLimitPlugin from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/char-limit-plugin'\n\n// components\nimport RichText from '@aytm/lib/rfd-ui/components/advanced/rich-text'\nimport ManagedRenderComponent from '@aytm/lib/common/components/ManagedRenderComponent'\n\n// styles\nimport '@aytm/lib/rfd-ui/styles/advanced/rich-text-counter.scss'\n\nfunction signzp(value) {\n return 0 > value ? -1 : 1\n}\n\nexport const defaultCountText = text => text.trim().replace(/\\n/g, '').length\n\nexport default class RichTextCounter extends ManagedRenderComponent {\n static propTypes = {\n characters: PropTypes.number,\n trimAt: PropTypes.number,\n alignment: PropTypes.string,\n countText: PropTypes.func,\n readOnly: PropTypes.bool,\n onCount: PropTypes.func,\n onUpdate: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n borders: PropTypes.instanceOf(Map),\n onBorderCrossing: PropTypes.func,\n plugins: PropTypes.array\n }\n static updateOnProps = 'pure data'\n\n constructor(props) {\n super(props)\n this.state = {\n counter: props.characters || 0,\n active: false,\n sectionClassName: null\n }\n this.setPlugins(props)\n }\n\n @autobind\n onRichTextFocus(event) {\n const { active } = this.state\n const { onFocus } = this.props\n if ('function' == typeof onFocus) {\n onFocus(event)\n }\n if (!active) {\n this.setState({ active: true })\n }\n }\n\n @autobind\n onRichTextBlur(event) {\n const { active } = this.state\n const { onBlur } = this.props\n if ('function' == typeof onBlur) onBlur(event)\n if (active) {\n this.setState({ active: false })\n }\n }\n\n @autobind\n onRichTextUpdate(editorState, prevEditorState, getContent) {\n const { onUpdate } = this.props\n if ('function' == typeof onUpdate) onUpdate(editorState, prevEditorState, getContent)\n if (editorState.getCurrentContent() != prevEditorState.getCurrentContent()) {\n this.recount(editorState)\n }\n }\n\n @autobind\n detectBorderCrossing(newCounter, lastCounter) {\n const { borders, onBorderCrossing } = this.props\n if (borders) {\n const { crossedBorder, crossedBorderName, direction } = borders.reduce(\n ({ crossedBorder, crossedBorderName, direction }, border, borderName) => {\n const borderCounter = border.get('counter')\n if (signzp(newCounter - borderCounter) != signzp(lastCounter - borderCounter)) {\n return crossedBorder &&\n Math.abs(crossedBorder.get('counter') - newCounter) < Math.abs(borderCounter - newCounter)\n ? { crossedBorder, crossedBorderName, direction }\n : { crossedBorder: border, crossedBorderName: borderName, direction: signzp(newCounter - borderCounter) }\n }\n return { crossedBorder, crossedBorderName, direction }\n },\n { crossedBorder: null, crossedBorderName: null, direction: null }\n )\n if (crossedBorder && crossedBorderName) {\n if ('function' == typeof onBorderCrossing) {\n onBorderCrossing(crossedBorderName, direction, crossedBorder)\n }\n this.setState({\n sectionClassName:\n 0 > direction && crossedBorder.has('pnClassName')\n ? crossedBorder.get('pnClassName')\n : 0 < direction && crossedBorder.has('npClassName')\n ? crossedBorder.get('npClassName')\n : null\n })\n }\n }\n }\n\n @autobind\n recount(editorState, props = this.props) {\n if (null != this.refRichText && 'function' == typeof this.refRichText.getText) {\n const { characters = 0, countText = defaultCountText, onCount, borders } = props\n const { counter } = this.state\n const text = this.refRichText.getText({ editorState })\n const updatedCounter = characters - countText(text)\n if (updatedCounter != counter) {\n this.setState(\n {\n counter: updatedCounter\n },\n () => {\n if ('function' == typeof onCount) {\n onCount(updatedCounter)\n }\n if (borders) {\n this.detectBorderCrossing(updatedCounter, counter)\n }\n }\n )\n }\n }\n }\n\n @autobind\n setPlugins(props = this.props) {\n const { characters = 0, trimAt, countText = defaultCountText, plugins } = props\n this.plugins =\n null == trimAt ? plugins : [...(plugins || []), createCharLimitPlugin({ limit: characters - trimAt, countText })]\n }\n\n componentDidMount() {\n this.recount()\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.trimAt != this.props.trimAt ||\n nextProps.characters != this.props.characters ||\n nextProps.plugins != this.props.plugins\n ) {\n this.setPlugins(nextProps)\n }\n if (nextProps.borders != this.props.borders || nextProps.characters != this.props.characters) {\n this.recount(undefined, nextProps)\n }\n if (nextProps.readOnly != this.props.readOnly && nextProps.readOnly) this.setState({ active: false })\n }\n\n render() {\n const {\n alignment = 'left',\n characters,\n trimAt,\n countText,\n onCount,\n onUpdate,\n onFocus,\n onBlur,\n borders,\n onBorderCrossing,\n plugins: externalPlugins,\n ...otherRichTextProps\n } = this.props\n const { counter, active, sectionClassName } = this.state\n return (\n \n {Boolean(characters) && (\n
\n {counter}\n
\n )}\n \n \n )\n }\n}\n","// lib\nimport { getDefaultKeyBinding } from 'draft-js'\nimport { KEYCODE_UP, KEYCODE_DOWN } from '@aytm/lib/common/const'\nimport {\n getNextRichTextContentElement,\n getPreviousRichTextContentElement\n} from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/rich-text'\n\n// plugin\nexport default function arrowNavigationPlugin(config = {}) {\n const { getEditorState } = config\n\n return {\n isFocusAtTheStart() {\n const editorState = getEditorState()\n const selectionState = editorState.getSelection()\n const anchorKey = selectionState.getAnchorKey()\n const currentContent = editorState.getCurrentContent()\n const currentContentBlock = currentContent.getBlockForKey(anchorKey)\n return (\n currentContent.getFirstBlock() === currentContentBlock &&\n 0 === selectionState.getStartOffset() &&\n 0 === selectionState.getEndOffset()\n )\n },\n isFocusAtTheEnd() {\n const editorState = getEditorState()\n const selectionState = editorState.getSelection()\n const anchorKey = selectionState.getAnchorKey()\n const currentContent = editorState.getCurrentContent()\n const currentContentBlock = currentContent.getBlockForKey(anchorKey)\n if (currentContent.getLastBlock() === currentContentBlock) {\n const textLength = (currentContentBlock.getText() || '').length\n return textLength == selectionState.getStartOffset() && textLength == selectionState.getEndOffset()\n }\n return false\n },\n keyBindingFn(event) {\n if (!event.altKey && !event.metaKey && !event.ctrlKey && !event.shiftKey) {\n if (KEYCODE_UP === event.keyCode && this.isFocusAtTheStart()) {\n return 'set-focus-to-previous'\n }\n if (KEYCODE_DOWN === event.keyCode && this.isFocusAtTheEnd()) {\n return 'set-focus-to-next'\n }\n }\n return getDefaultKeyBinding(event)\n },\n handleKeyCommand(command, _editorState, { _setEditorState }) {\n switch (command) {\n case 'set-focus-to-previous': {\n const prevEditorComponent = getPreviousRichTextContentElement()\n if (prevEditorComponent) {\n prevEditorComponent.focus()\n }\n return 'handled'\n }\n case 'set-focus-to-next': {\n const nextEditorComponent = getNextRichTextContentElement()\n if (nextEditorComponent) {\n nextEditorComponent.focus()\n }\n return 'handled'\n }\n default: {\n return 'not-handled'\n }\n }\n }\n }\n}\n","import { List, Map, OrderedMap, is as immutableEqual } from 'immutable'\n\nconst terminalCharData = Map({ style: List() })\n\nexport const STYLE_MARKUP = OrderedMap([\n ['BOLD', Map({ start: '', end: '' })],\n ['ITALIC', Map({ start: '', end: '' })],\n ['UNDERLINE', Map({ start: '', end: '' })],\n ['CODE', Map({ start: '', end: '' })],\n ['SUBSCRIPT', Map({ start: '', end: '' })],\n ['SUPERSCRIPT', Map({ start: '', end: '' })]\n])\n\nexport const BLOCK_MARKUP = Map({ start: '

', end: '

', join: '' })\n\nexport const BLOCK_TYPES = Map({\n 'header-one': Map({ start: '

', end: '

' }),\n 'header-two': Map({ start: '

', end: '

' }),\n 'header-three': Map({ start: '

', end: '

' }),\n blockquote: Map({ start: '
', end: '
' }),\n 'code-block': Map({ start: '
', end: '
' }),\n 'ordered-list-item': Map({ start: '
  1. ', end: '
' }),\n 'unordered-list-item': Map({ start: '' })\n})\n\nexport const FILTER_CHARS = Map({\n '<': '<',\n '>': '>',\n '&': '&'\n})\n\nexport default function convertBlockMapToHTML({\n styleMarkup = STYLE_MARKUP,\n blockMarkup = BLOCK_MARKUP,\n blockTypes = BLOCK_TYPES,\n filterChars = FILTER_CHARS\n} = {}) {\n return blockMap =>\n blockMap\n .map(block => {\n const text = block.get('text') || ''\n const characterList = block.get('characterList') || List(Array.from({ length: text.length }))\n const blockType = block.get('type')\n const blockStart = blockTypes.has(blockType) ? blockTypes.get(blockType).get('start') : ''\n const blockEnd = blockTypes.has(blockType) ? blockTypes.get(blockType).get('end') : ''\n return (\n blockStart +\n characterList\n .push(terminalCharData)\n .reduce(\n ({ html, lastStyle }, charData, index) => {\n let addHTML = (text[index] && (filterChars.get(text[index]) || text[index])) || ''\n const style = charData.get('style')\n if (!immutableEqual(style, lastStyle)) {\n const addStyles = style // .filter(x => !lastStyle.includes(x))\n const removeStyles = lastStyle //.filter(x => !style.includes(x))\n if (addStyles.size) {\n addHTML =\n styleMarkup.reduce(\n (tags, markup, style) => (addStyles.has(style) ? tags + (markup.get('start') || '') : tags),\n ''\n ) + addHTML\n }\n if (removeStyles.size) {\n addHTML =\n styleMarkup.reduceRight(\n (tags, markup, style) => (removeStyles.has(style) ? tags + (markup.get('end') || '') : tags),\n ''\n ) + addHTML\n }\n }\n return {\n html: html + addHTML,\n lastStyle: style\n }\n },\n {\n html: blockMarkup.get('start') || '',\n lastStyle: List()\n }\n )\n .html.replace(/\\n/g, '
') +\n (blockMarkup.get('end') || '') +\n blockEnd\n )\n })\n .join(blockMarkup.get('join') || '')\n}\n","export function getAbsoluteSelection(editorState) {\n const selection = editorState.getSelection()\n const startKey = selection.getStartKey()\n const startOffset = selection.getStartOffset()\n const endKey = selection.getEndKey()\n const endOffset = selection.getEndOffset()\n const blockMap = editorState.getCurrentContent().getBlockMap()\n\n const { start, end } = blockMap.reduce(\n function (r, block, blockKey) {\n return null != r.start && null != r.end\n ? r\n : {\n start: blockKey == startKey ? r.offset + startOffset : r.start,\n end: blockKey == endKey ? r.offset + endOffset : r.end,\n offset: r.offset + block.getLength() + 1\n }\n },\n { start: null, end: null, offset: 0 }\n )\n\n return { start: start || 0, end: end || 0 }\n}\n\nexport function setAbsoluteSelection(editorState, absoluteSelection) {\n const selection = editorState.getSelection()\n const blockMap = editorState.getCurrentContent().getBlockMap()\n const { startKey, startOffset, endKey, endOffset } = blockMap.reduce(\n function (r, block, blockKey) {\n if (null != r.startKey && null != r.startOffset && null != r.endKey && null != r.endOffset) {\n return r\n } else {\n const blockLength = block.getLength()\n const inStartBlock = r.offset <= absoluteSelection.start && absoluteSelection.start <= r.offset + blockLength\n const inEndBlock = r.offset <= absoluteSelection.end && absoluteSelection.end <= r.offset + blockLength\n return {\n startKey: inStartBlock ? blockKey : r.startKey,\n startOffset: inStartBlock ? absoluteSelection.start - r.offset : r.startOffset,\n endKey: inEndBlock ? blockKey : r.startKey,\n endOffset: inEndBlock ? absoluteSelection.end - r.offset : r.startOffset,\n offset: r.offset + blockLength + 1\n }\n }\n },\n { startKey: null, startOffset: null, endKey: null, endOffset: null, offset: 0 }\n )\n if (null == endKey || null == endOffset) {\n const lastBlock = blockMap.last()\n const lastBlockKey = lastBlock.getKey()\n const lastBlockLength = lastBlock.getLength()\n return selection.merge({\n anchorKey: startKey || lastBlockKey,\n anchorOffset: startOffset || lastBlockLength,\n focusKey: lastBlockKey,\n focusOffset: lastBlockLength,\n isBackward: false\n })\n } else {\n return selection.merge({\n anchorKey: startKey,\n anchorOffset: startOffset,\n focusKey: endKey,\n focusOffset: endOffset,\n isBackward: false\n })\n }\n}\n\nexport function setSelectionAfterUpdate(nextEditorState, prevEditorState) {\n const nextText = nextEditorState.getCurrentContent().getPlainText('\\n')\n const nextTextLength = nextText.length\n const prevText = prevEditorState.getCurrentContent().getPlainText('\\n')\n const prevTextLength = prevText.length\n const absoluteSelection = getAbsoluteSelection(prevEditorState)\n if (nextTextLength == prevTextLength) {\n // keep old selection\n return setAbsoluteSelection(nextEditorState, absoluteSelection)\n } else if (nextTextLength > prevTextLength) {\n // inserted block\n let matchTail = 0\n const tailBorder = nextTextLength - absoluteSelection.start\n const lengthDiff = nextTextLength - prevTextLength\n for (; matchTail < tailBorder; matchTail++) {\n const tailIndex = nextTextLength - matchTail - 1\n if (nextText[tailIndex] != prevText[tailIndex - lengthDiff]) break\n }\n const setAbsoluteSelectionTo = nextTextLength - matchTail\n return setAbsoluteSelection(nextEditorState, { start: setAbsoluteSelectionTo, end: setAbsoluteSelectionTo })\n } else {\n // removed block\n let matchHead = 0\n for (; matchHead < absoluteSelection.start; matchHead++) {\n if (nextText[matchHead] != prevText[matchHead]) break\n }\n const setAbsoluteSelectionTo = matchHead\n return setAbsoluteSelection(nextEditorState, { start: setAbsoluteSelectionTo, end: setAbsoluteSelectionTo })\n }\n}\n","export function parseHTMLtoFragment(html: string): DocumentFragment {\n if (!html || typeof html !== 'string') {\n // return empty fragment if no html is provided\n return document.createDocumentFragment()\n }\n try {\n // Use the more secure template method if available\n const template = document.createElement('template')\n template.innerHTML = html\n return template.content\n } catch {\n // Fallback to range method\n const range = document.createRange()\n range.selectNode(document.body)\n return range.createContextualFragment(html)\n }\n}\n\nlet fragmentToStringXMLSerializer: XMLSerializer = null\nexport function fragmentToString(fragment: DocumentFragment): string {\n if (!fragment || Node.DOCUMENT_FRAGMENT_NODE !== fragment.nodeType) {\n // return empty string if no fragment is provided\n return ''\n }\n try {\n // Use the more secure template method if available\n const template = document.createElement('template')\n template.content.appendChild(fragment.cloneNode(true))\n return template.innerHTML\n } catch {\n // Fallback to XMLSerializer method\n const serializer = fragmentToStringXMLSerializer || (fragmentToStringXMLSerializer = new XMLSerializer())\n return serializer.serializeToString(fragment)\n }\n}\n\nexport const DEFAULT_ALLOWED_TAGS = ['html', 'body', 'style', 'div', 'span', 'p', 'br']\n\nexport const DEFAULT_FORBIDDEN_TAGS = ['script', 'style', 'head', 'meta']\n\nexport const DEFAULT_ALLOWED_ATTRIBUTES = ['style', 'class', 'id', 'dir', 'type']\n\nexport function sanitizeHTML(\n html: string,\n options: {\n allowedTags?: string[]\n allowedAttributes?: string[]\n includeDefault?: boolean\n forbiddenTags?: string[]\n } = {}\n): string {\n const {\n allowedTags = [],\n allowedAttributes = [],\n includeDefault = true,\n forbiddenTags = DEFAULT_FORBIDDEN_TAGS\n } = options || {}\n\n const allAllowedTags = allowedTags.map(tag => tag.toLowerCase()).concat(includeDefault ? DEFAULT_ALLOWED_TAGS : [])\n const allAllowedAttributes = allowedAttributes\n .map(attr => attr.toLowerCase())\n .concat(includeDefault ? DEFAULT_ALLOWED_ATTRIBUTES : [])\n const allForbiddenTags = forbiddenTags.map(tag => tag.toLowerCase())\n\n const fragment = parseHTMLtoFragment(html)\n\n // sanitize the fragment by replacing all not allowed tag names with span tags and removing script tags\n const walker = document.createTreeWalker(fragment, NodeFilter.SHOW_ELEMENT)\n walker.nextNode()\n let currentNode = walker.currentNode\n while (currentNode) {\n let nextNode = walker.nextNode()\n try {\n // check if the current node is an element\n if (Node.ELEMENT_NODE !== currentNode.nodeType) {\n currentNode = nextNode\n continue\n }\n const node = currentNode as HTMLElement\n const nodeName = node.tagName?.toLowerCase?.() || ''\n const nodeAttributes = Array.from(node.attributes || [])\n if (allForbiddenTags.includes(nodeName)) {\n // Remove forbidden tags\n node.parentNode?.removeChild(node)\n currentNode = nextNode\n continue\n } else if (!allAllowedTags.includes(nodeName)) {\n // Replace not allowed tags with span tags\n const replacement = document.createElement('span')\n replacement.innerHTML = node.innerHTML\n for (const attr of nodeAttributes) {\n const attrName = attr.name.toLowerCase()\n if (allAllowedAttributes.includes(attrName)) {\n replacement.setAttribute(attr.name, attr.value)\n }\n }\n node.replaceWith(replacement)\n nextNode = replacement\n walker.currentNode = replacement\n }\n // Sanitize attributes\n for (const attr of nodeAttributes) {\n const attrName = attr.name.toLowerCase()\n const attrValue = attr.value.toLocaleLowerCase().trim()\n if (\n !allAllowedAttributes.includes(attrName) ||\n attrValue.startsWith('javascript:') ||\n attrValue.startsWith('data:')\n ) {\n node.removeAttribute(attr.name)\n }\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error while sanitizing HTML:', error)\n return ''\n }\n currentNode = nextNode\n }\n\n return fragmentToString(fragment)\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport autobind from 'autobind-decorator'\nimport { Map, OrderedMap } from 'immutable'\nimport Editor from '@draft-js-plugins/editor'\nimport createInlineToolbarPlugin from '@draft-js-plugins/inline-toolbar'\nimport createSingleLinePlugin from 'draft-js-single-line-plugin'\nimport createToolbarPlugin from '@draft-js-plugins/static-toolbar'\nimport {\n getActiveRichTextContentElementIndex,\n getNextRichTextContentElement\n} from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/rich-text'\nimport createMultilineLimitPlugin from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/multiline-limit-plugin'\nimport createMoveFocusToEndPlugin from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/move-focus-to-end-plugin'\nimport createArrowNavigationPlugin from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/arrow-navigation-plugin'\nimport {\n EditorState,\n ContentState,\n RichUtils,\n Modifier,\n getDefaultKeyBinding,\n KeyBindingUtil,\n convertFromHTML\n} from 'draft-js'\nimport {\n BoldButton,\n ItalicButton,\n UnderlineButton,\n HeadlineOneButton,\n HeadlineTwoButton,\n HeadlineThreeButton,\n BlockquoteButton\n} from '@draft-js-plugins/buttons'\nimport convertBlockMapToHTML from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/convert-block-map-to-html'\nimport { setSelectionAfterUpdate } from '@aytm/lib/rfd-ui/components/advanced/lib/draft-js/selection-tools'\nimport { listPipe, escapeHTML } from '@aytm/lib/common/func'\nimport { KEYCODE_UP, KEYCODE_DOWN, KEYCODE_ESC, KEYCODE_TAB } from '@aytm/lib/common/const'\n// import exceptionReporter from '@aytm/lib/common/exception-reporter'\nimport ManagedRenderComponent from '@aytm/lib/common/components/ManagedRenderComponent'\nimport { sanitizeHTML } from '@aytm/lib/common/html'\n\nconst { hasCommandModifier } = KeyBindingUtil\n\nconst DEFAULT_DEBOUNCE = 400\n\nexport const defaultCustomStyleMap = {\n BOLD: { fontWeight: 'bold' },\n ITALIC: { fontStyle: 'italic' },\n UNDERLINE: { textDecoration: 'underline' }\n}\n\nexport const defaultStyleMarkup = OrderedMap([\n ['BOLD', Map({ start: '', end: '' })],\n ['ITALIC', Map({ start: '', end: '' })],\n ['UNDERLINE', Map({ start: '', end: '' })]\n // ['CODE', Map({ start: '', end: '' })],\n // ['SUBSCRIPT', Map({ start: '', end: '' })],\n // ['SUPERSCRIPT', Map({ start: '', end: '' })]\n])\n\nexport const defaultBlockTypes = OrderedMap({\n 'header-one': Map({ start: '

', end: '

' }),\n 'header-two': Map({ start: '

', end: '

' }),\n 'header-three': Map({ start: '

', end: '

' }),\n blockquote: Map({ start: '
', end: '
' }),\n 'code-block': Map({ start: '
', end: '
' }),\n 'ordered-list-item': Map({ start: '
  1. ', end: '
' }),\n 'unordered-list-item': Map({ start: '' })\n})\n\nexport const defaultFormatOptions = Map({\n BOLD: true,\n ITALIC: true,\n UNDERLINE: true,\n blockquote: false,\n 'header-one': false,\n 'header-two': false,\n 'header-three': false\n})\n\nexport const defaultBlockMarkup = Map({ start: '', end: '', join: '
' })\n\n// eslint-disable-next-line react/display-name\nexport const renderToolbarButtons = formatOptions => externalProps => (\n <>\n {false !== formatOptions?.get('BOLD') ? : null}\n {false !== formatOptions?.get('ITALIC') ? : null}\n {false !== formatOptions?.get('UNDERLINE') ? : null}\n {formatOptions?.get('blockquote') ? : null}\n {formatOptions?.get('header-one') ? : null}\n {formatOptions?.get('header-two') ? : null}\n {formatOptions?.get('header-three') ? : null}\n \n)\n\nexport const inlineToolbarPluginConfig = {\n theme: {\n buttonStyles: {\n buttonWrapper: 'rfd-ui-rich-text__buttonWrapper',\n button: 'rfd-ui-rich-text__button',\n active: 'rfd-ui-rich-text__active'\n },\n toolbarStyles: {\n toolbar: 'rfd-ui-rich-text__toolbar'\n }\n }\n}\n\nexport const toolbarPluginConfig = {\n theme: {\n buttonStyles: {\n buttonWrapper: 'rfd-ui-rich-text__static__buttonWrapper',\n button: 'rfd-ui-rich-text__static__button',\n active: 'rfd-ui-rich-text__static__active'\n },\n toolbarStyles: {\n toolbar: 'rfd-ui-rich-text__static__toolbar'\n }\n }\n}\n\nimport '@draft-js-plugins/inline-toolbar/lib/plugin.css'\nimport 'draft-js/dist/Draft.css'\nimport '@aytm/lib/rfd-ui/styles/advanced/rich-text.scss'\n\nconst createRichTextPlugin = ({ multiline, handleReturnOnSingleLine, handleReturn }) => {\n return {\n handleReturn: (event, editorState) => {\n if (!multiline) {\n if (-1 < getActiveRichTextContentElementIndex()) {\n if ('function' == typeof handleReturnOnSingleLine) {\n return handleReturnOnSingleLine(event, editorState, getNextRichTextContentElement()) || 'handled'\n }\n if ('function' == typeof handleReturn) {\n return handleReturn(event, editorState) || 'handled'\n } else {\n const nextRichTextContent = getNextRichTextContentElement()\n if (nextRichTextContent) {\n nextRichTextContent.focus()\n return 'handled'\n }\n }\n }\n } else {\n if ('function' == typeof handleReturn) {\n return handleReturn(event, editorState) || 'handled'\n }\n }\n return 'not-handled'\n }\n }\n}\n\nexport default class RichText extends ManagedRenderComponent {\n static propTypes = {\n decorators: PropTypes.array,\n html: PropTypes.string,\n text: PropTypes.string,\n alignment: PropTypes.string,\n plugins: PropTypes.array,\n multiline: PropTypes.bool,\n multilineLimit: PropTypes.number,\n minHeight: PropTypes.number,\n className: PropTypes.string,\n debounce: PropTypes.number,\n customStyleMap: PropTypes.object,\n styleMarkup: PropTypes.instanceOf(OrderedMap),\n blockMarkup: PropTypes.instanceOf(Map),\n editorFormatting: PropTypes.bool,\n formatOptions: PropTypes.instanceOf(Map),\n disableFormatting: PropTypes.bool,\n disableDefaultPlugins: PropTypes.bool,\n readOnly: PropTypes.bool,\n editorState: PropTypes.instanceOf(EditorState),\n keyBindingFn: PropTypes.func,\n handleKeyCommand: PropTypes.func,\n handleReturn: PropTypes.func,\n handleReturnOnSingleLine: PropTypes.func,\n handlePastedText: PropTypes.func,\n handlePastedMultilineText: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onUpdate: PropTypes.func,\n allowUpdate: PropTypes.func,\n allowUndo: PropTypes.bool,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func\n }\n static updateOnProps = 'pure data'\n\n constructor(props) {\n super(props)\n const { html, multiline, allowUndo = false } = props\n this.onChangeDebounceTimer = null\n this.lastHTML = ''\n this.InlineToolbar = null\n this.Toolbar = null\n this.focused = false\n this.updateDefaultPlugins(props)\n this.updatePlugins(props)\n this.updateConverter(props)\n const editorState = this.updateHTML({ html, multiline, setState: false })\n this.state = {\n editorState: allowUndo == editorState.getAllowUndo() ? editorState : EditorState.set(editorState, { allowUndo })\n }\n }\n\n @autobind\n setEditorState(editorState = EditorState.createEmpty(), callback) {\n const { allowUndo = false } = this.props\n this.setState(\n {\n editorState: allowUndo == editorState.getAllowUndo() ? editorState : EditorState.set(editorState, { allowUndo })\n },\n callback\n )\n }\n\n @autobind\n onEditorFocus(event) {\n this.focused = true\n const { onFocus } = this.props\n if ('function' === typeof onFocus) {\n onFocus(event, this.state.editorState)\n }\n return 'not-handled'\n }\n\n @autobind\n onEditorBlur(event) {\n this.focused = false\n const { onChange, onBlur } = this.props\n if ('function' === typeof onChange && this.onChangeDebounceTimer != null) {\n clearTimeout(this.onChangeDebounceTimer)\n onChange(this.getContent, this.state.editorState)\n this.onChangeDebounceTimer = null\n }\n if ('function' === typeof onBlur) {\n onBlur(event, this.state.editorState)\n }\n return 'not-handled'\n }\n\n @autobind\n onEditorChange(changedEditorState, { applyPlugins = false } = {}) {\n // apply plugins to changed state if requested\n const editorState = applyPlugins\n ? (this.props.plugins || []).reduce(\n (editorState, plugin) => (plugin && plugin.onChange ? plugin.onChange(editorState) : editorState),\n changedEditorState\n )\n : changedEditorState\n\n const { readOnly, onChange, onUpdate, allowUpdate, debounce = DEFAULT_DEBOUNCE } = this.props\n const prevEditorState = this.state.editorState\n\n if (readOnly) {\n return\n }\n if ('function' === typeof allowUpdate && !allowUpdate(prevEditorState, editorState)) {\n //TODO: force update editorState\n this.setState({ editorState: EditorState.forceSelection(prevEditorState, prevEditorState.getSelection()) })\n } else {\n this.setEditorState(editorState, () => {\n if ('function' === typeof onUpdate) {\n onUpdate(editorState, prevEditorState, this.getContent)\n }\n if ('function' === typeof onChange && prevEditorState.getCurrentContent() != editorState.getCurrentContent()) {\n if (null != this.onChangeDebounceTimer) {\n clearTimeout(this.onChangeDebounceTimer)\n }\n const onChangeDebounceTimer = (this.onChangeDebounceTimer = setTimeout(() => {\n onChange(this.getContent, this.state.editorState)\n if (onChangeDebounceTimer == this.onChangeDebounceTimer) {\n this.onChangeDebounceTimer = null\n }\n }, debounce))\n }\n })\n }\n }\n\n @autobind\n editorKeyBinding(event) {\n switch (event.which) {\n case KEYCODE_ESC: {\n // onEscape\n if (this.props.onEscape) {\n this.props.onEscape(event)\n }\n break\n }\n case KEYCODE_TAB: {\n // onTab\n if (this.props.onTab) {\n this.props.onTab(event)\n }\n break\n }\n case KEYCODE_UP: {\n // onUpArrow\n if (this.props.onUpArrow) {\n this.props.onUpArrow(event)\n }\n break\n }\n case KEYCODE_DOWN: {\n // onDownArrow\n if (this.props.onDownArrow) {\n this.props.onDownArrow(event)\n }\n break\n }\n }\n const defaultKeyBinding = getDefaultKeyBinding(event)\n if ('function' === typeof this.props.keyBindingFn) {\n const customKeyBindingFnResult = this.props.keyBindingFn(event)\n if (customKeyBindingFnResult && defaultKeyBinding !== customKeyBindingFnResult) {\n return customKeyBindingFnResult\n }\n }\n if (hasCommandModifier(event)) {\n switch (event.keyCode) {\n case 66 /* ctrl+b */: {\n return 'toggle-inline-style-bold'\n }\n case 73 /* ctrl+i */: {\n return 'toggle-inline-style-italic'\n }\n case 85 /* ctrl+u */: {\n return 'toggle-inline-style-underline'\n }\n }\n }\n switch (defaultKeyBinding) {\n case 'undo': {\n return this.props.allowUndo ? 'undo' : 'vundo' // pass to virtual undo if allowUndo is false\n }\n case 'redo': {\n return this.props.allowUndo ? 'redo' : 'vredo' // pass to virtual redo if allowUndo is false\n }\n default: {\n return null == defaultKeyBinding ? void 0 : defaultKeyBinding\n }\n }\n }\n\n @autobind\n handleKeyCommand(command, ...handleKeyCommandRestArgs) {\n const { readOnly, disableFormatting, handleKeyCommand: customHandleKeyCommand } = this.props\n if (readOnly) {\n return 'handled'\n }\n if (customHandleKeyCommand && 'handled' === customHandleKeyCommand(command, ...handleKeyCommandRestArgs)) {\n return 'handled'\n }\n const { editorState } = this.state\n switch (command) {\n case 'toggle-inline-style-bold': {\n if (!disableFormatting)\n this.onEditorChange(RichUtils.toggleInlineStyle(editorState, 'BOLD'), { applyPlugins: true })\n return 'handled'\n }\n case 'toggle-inline-style-italic': {\n if (!disableFormatting)\n this.onEditorChange(RichUtils.toggleInlineStyle(editorState, 'ITALIC'), { applyPlugins: true })\n return 'handled'\n }\n case 'toggle-inline-style-underline': {\n if (!disableFormatting)\n this.onEditorChange(RichUtils.toggleInlineStyle(editorState, 'UNDERLINE'), { applyPlugins: true })\n return 'handled'\n }\n case 'vundo': {\n const { onUndo = window.rfdUIRichTextUndo } = this.props\n if ('function' == typeof onUndo) {\n const { editorState } = this.state\n const { onChange } = this.props\n if ('function' == typeof onChange && this.onChangeDebounceTimer != null) {\n clearTimeout(this.onChangeDebounceTimer)\n onChange(this.getContent, editorState)\n this.onChangeDebounceTimer = null\n setTimeout(() => {\n onUndo(editorState, (editorState, callback) => {\n this.setEditorState(editorState, callback)\n })\n }, 0)\n } else {\n onUndo(editorState, (editorState, callback) => {\n this.setEditorState(editorState, callback)\n })\n }\n }\n return 'handled'\n }\n case 'vredo': {\n const { onRedo = window.rfdUIRichTextRedo } = this.props\n if ('function' == typeof onRedo) {\n const { editorState } = this.state\n const { onChange } = this.props\n if ('function' == typeof onChange && this.onChangeDebounceTimer != null) {\n clearTimeout(this.onChangeDebounceTimer)\n onChange(this.getContent, editorState)\n this.onChangeDebounceTimer = null\n setTimeout(() => {\n onRedo(editorState, (editorState, callback) => {\n this.setEditorState(editorState, callback)\n })\n }, 0)\n } else {\n onRedo(editorState, (editorState, callback) => {\n this.setEditorState(editorState, callback)\n })\n }\n }\n return 'handled'\n }\n default: {\n return 'not-handled'\n }\n }\n }\n\n @autobind\n handleReturn(/*event, editorState*/) {\n const { readOnly } = this.props\n if (readOnly) {\n return 'handled'\n }\n return 'not-handled'\n }\n\n @autobind\n getTextLines(text = '') {\n return text && text.length ? text.split('\\n') : []\n }\n\n @autobind\n getHTMLLines(html = '', textLines = [], editorState) {\n return html && html.length\n ? (() => {\n const { contentBlocks, entityMap } = convertFromHTML(html)\n const htmlEditorState = contentBlocks\n ? EditorState.createWithContent(\n ContentState.createFromBlockArray(contentBlocks, entityMap),\n editorState.getDecorator()\n )\n : EditorState.createEmpty()\n return this.convertBlockMapToHTML(htmlEditorState.getCurrentContent().getBlockMap())\n .split(//)\n .map(line => line.trim())\n .reduce(\n function ({ textIndex, lines }, line) {\n return 0 == line.length && (null == textLines[textIndex] || 0 != textLines[textIndex].length)\n ? { textIndex, lines }\n : {\n textIndex: textIndex + 1,\n lines: (lines.push(line), lines)\n }\n },\n { textIndex: 0, lines: [] }\n ).lines\n })()\n : []\n }\n\n @autobind\n sanitizeHTML(html = '') {\n const { formatOptions = defaultFormatOptions } = this.props\n\n const allowedTags = []\n\n if (false !== formatOptions.get('BOLD')) {\n allowedTags.push('b')\n }\n if (false !== formatOptions.get('ITALIC')) {\n allowedTags.push('i')\n }\n if (false !== formatOptions.get('UNDERLINE')) {\n allowedTags.push('u')\n }\n if (true === formatOptions.get('blockquote')) {\n allowedTags.push('blockquote')\n }\n if (true === formatOptions.get('header-one')) {\n allowedTags.push('h1')\n }\n if (true === formatOptions.get('header-two')) {\n allowedTags.push('h2')\n }\n if (true === formatOptions.get('header-three')) {\n allowedTags.push('h3')\n }\n\n const sanitizedHTML = sanitizeHTML(html, { allowedTags, includeDefault: true })\n\n return sanitizedHTML\n }\n\n @autobind\n handlePastedText(text = '', _html = '', editorState) {\n let html = this.sanitizeHTML(_html)\n const { readOnly, disableFormatting, multiline, handlePastedMultilineText, handlePastedText } = this.props\n if (readOnly) {\n return 'handled'\n }\n\n if (disableFormatting) {\n html = null\n }\n const textLines = this.getTextLines(text)\n let htmlLines = this.getHTMLLines(html, textLines, editorState)\n if (null == text || 0 == text.length) {\n return 'handled'\n }\n if (textLines.length > 1 && htmlLines.length < textLines.length) {\n //TODO quick fix for IE\n htmlLines = textLines.map(line => line.replace(/&/g, '&').replace(//g, '>'))\n }\n if ((textLines.length > 1 || htmlLines.length > 1) && 'function' == typeof handlePastedMultilineText) {\n const pasteResult =\n handlePastedMultilineText(textLines, htmlLines, editorState, editorState => {\n this.onEditorChange(editorState, { applyPlugins: true })\n }) || 'handled'\n if ('handled' == pasteResult) {\n return 'handled'\n }\n }\n if ('function' == typeof handlePastedText) {\n const pasteResult =\n handlePastedText(textLines.join('\\n'), htmlLines.join('
'), editorState, editorState => {\n this.onEditorChange(editorState, { applyPlugins: true })\n }) || 'handled'\n if ('handled' == pasteResult) {\n return 'handled'\n }\n }\n if (htmlLines.length) {\n const { contentBlocks, entityMap } = convertFromHTML(multiline ? htmlLines.join('
') : htmlLines.join(' '))\n const htmlBlockMap = ContentState.createFromBlockArray(contentBlocks, entityMap).getBlockMap()\n this.onEditorChange(\n EditorState.push(\n editorState,\n Modifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), htmlBlockMap),\n 'insert-fragment'\n ),\n { applyPlugins: true }\n )\n } else if (textLines.length) {\n const textBlockMap = ContentState.createFromText(\n multiline ? textLines.join('\\n') : textLines.join(' ')\n ).getBlockMap()\n this.onEditorChange(\n EditorState.push(\n editorState,\n Modifier.replaceWithFragment(editorState.getCurrentContent(), editorState.getSelection(), textBlockMap),\n 'insert-fragment'\n ),\n { applyPlugins: true }\n )\n }\n\n return 'handled'\n }\n\n @autobind\n updateHTML({ html = '', multiline = true, setState = true }) {\n const { onUpdate } = this.props\n const { editorState: prevEditorState = EditorState.createEmpty() } = this.state || {}\n\n const editorState = listPipe(\n [\n () => {\n if (null != html && html.length) {\n const { contentBlocks, entityMap } = convertFromHTML(html.replace(/(\\s+)$/, '$1'))\n\n if (!contentBlocks || 0 === contentBlocks.length) {\n return EditorState.createEmpty()\n }\n\n return (multiline ? x => x : x => this.singleLinePlugin.onChange(x))(\n EditorState.createWithContent(\n ContentState.createFromBlockArray(contentBlocks, entityMap),\n prevEditorState.getDecorator()\n )\n )\n } else {\n return EditorState.createEmpty()\n }\n },\n editorState => {\n if (setState && prevEditorState.getSelection().getHasFocus()) {\n return EditorState.forceSelection(editorState, setSelectionAfterUpdate(editorState, prevEditorState))\n }\n return null\n }\n ],\n null,\n true\n )\n\n if (setState) {\n this.setEditorState(editorState)\n }\n\n if ('function' == typeof onUpdate) {\n onUpdate(editorState, prevEditorState, this.getContent)\n }\n\n this.lastHTML = html\n\n return editorState\n }\n\n @autobind\n updateText({ text = '', multiline = true, setState = true }) {\n return this.updateHTML({ html: escapeHTML(text), multiline, setState })\n }\n\n @autobind\n updatePlugins(props = this.props) {\n const { plugins } = props\n this.plugins = null == plugins ? this.defaultPlugins : [...plugins, ...this.defaultPlugins]\n\n return this.plugins\n }\n\n @autobind\n updateDefaultPlugins(props = this.props) {\n const { disableDefaultPlugins, disableFormatting, editorFormatting, multilineLimit, multiline = true } = props\n this.defaultPlugins = disableDefaultPlugins\n ? []\n : [\n defaultPlugins => [...defaultPlugins, createMoveFocusToEndPlugin()],\n defaultPlugins => [...defaultPlugins, createArrowNavigationPlugin({ getEditorState: this.getEditorState })],\n defaultPlugins => [...defaultPlugins, createRichTextPlugin(this.props)],\n defaultPlugins => {\n if (editorFormatting) {\n const toolbarPlugin = createToolbarPlugin(toolbarPluginConfig)\n this.Toolbar = toolbarPlugin.Toolbar\n return [...defaultPlugins, toolbarPlugin]\n } else {\n this.Toolbar = null\n return defaultPlugins\n }\n },\n defaultPlugins => {\n if (disableFormatting) {\n this.InlineToolbar = null\n return defaultPlugins\n } else {\n const inlineToolbarPlugin = createInlineToolbarPlugin(inlineToolbarPluginConfig)\n this.InlineToolbar = inlineToolbarPlugin.InlineToolbar\n return [...defaultPlugins, inlineToolbarPlugin]\n }\n },\n defaultPlugins => {\n if (multiline) {\n this.singleLinePlugin = null\n return defaultPlugins\n } else {\n this.singleLinePlugin = createSingleLinePlugin()\n return [...defaultPlugins, this.singleLinePlugin]\n }\n },\n defaultPlugins => {\n if (multilineLimit) {\n this.multilineLimitPlugin = createMultilineLimitPlugin({ maxLines: multilineLimit })\n return [...defaultPlugins, this.multilineLimitPlugin]\n } else {\n this.multilineLimitPlugin = null\n return defaultPlugins\n }\n }\n ].reduce((defaultPlugins, f) => f(defaultPlugins), [])\n }\n\n @autobind\n updateConverter(props = this.props) {\n const { styleMarkup = defaultStyleMarkup, blockTypes = defaultBlockTypes, blockMarkup = defaultBlockMarkup } = props\n this.convertBlockMapToHTML = convertBlockMapToHTML({\n styleMarkup,\n blockMarkup,\n blockTypes\n })\n }\n\n @autobind\n getContent({ editorState = this.state.editorState, text: fetchText = true, html: fetchHTML = true } = {}) {\n const content = editorState.getCurrentContent()\n const blockMap = content.getBlockMap()\n const result = Object.assign(\n fetchText ? { text: blockMap.map(b => b.get('text')).join('\\n') } : {},\n fetchHTML ? { html: this.convertBlockMapToHTML(blockMap) } : {}\n )\n if (fetchHTML && editorState == this.state.editorState) {\n this.lastHTML = result.html || ''\n }\n return result\n }\n\n @autobind\n getHTML({ editorState = this.state.editorState } = {}) {\n return this.getContent({\n editorState,\n text: false,\n html: true\n }).html\n }\n\n @autobind\n getText({ editorState = this.state.editorState } = {}) {\n return this.getContent({\n editorState,\n text: true,\n html: false\n }).text\n }\n\n @autobind\n getEditorState() {\n return this.state.editorState\n }\n\n componentDidMount() {\n const { html = '' } = this.props\n if (html != this.lastHTML) {\n this.updateHTML({ html })\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const nextHTML = nextProps.html || ''\n const prevHTML = this.props.html || ''\n if (nextHTML != prevHTML && nextHTML != this.lastHTML) {\n this.updateHTML({ html: nextHTML })\n } else if (this.props.text != nextProps.text) {\n this.updateText({ text: nextProps.text })\n }\n if (nextProps.plugins != this.props.plugins) {\n this.updatePlugins(nextProps)\n }\n if (nextProps.multiline != this.props.multiline) {\n this.updateDefaultPlugins(nextProps)\n }\n if (nextProps.styleMarkup != this.props.styleMarkup || nextProps.blockMarkup != this.props.blockMarkup) {\n this.updateConverter(nextProps)\n }\n }\n\n @autobind\n forceUpdateEditorState() {\n const editorState = this.state.editorState\n const selection = editorState.getSelection()\n const newEditorState = EditorState.createWithContent(editorState.getCurrentContent(), editorState.getDecorator())\n this.setEditorState(\n selection.get('hasFocus') ? EditorState.forceSelection(newEditorState, selection) : newEditorState\n )\n }\n\n @autobind\n selectAll(force = true) {\n this.setState(state => {\n const { editorState } = state\n const currentContent = editorState.getCurrentContent()\n const firstBlock = currentContent.getBlockMap().first()\n const lastBlock = currentContent.getBlockMap().last()\n const firstBlockKey = firstBlock.getKey()\n const lastBlockKey = lastBlock.getKey()\n const selection = editorState.getSelection().merge({\n anchorKey: firstBlockKey,\n anchorOffset: 0,\n focusKey: lastBlockKey,\n focusOffset: lastBlock.getLength()\n })\n return {\n ...state,\n editorState: force\n ? EditorState.forceSelection(editorState, selection)\n : EditorState.acceptSelection(editorState, selection)\n }\n })\n }\n\n render() {\n const {\n readOnly = false,\n // eslint-disable-next-line no-unused-vars\n multiline = true,\n html,\n className,\n minHeight,\n alignment = 'left',\n decorators = [],\n onChange,\n allowUpdate,\n onFocus,\n onBlur,\n onEscape,\n onTab,\n onUpArrow,\n onDownArrow,\n debounce,\n plugins: externalPlugins,\n editorState: externalEditorState,\n keyBindingFn,\n handleKeyCommand,\n handleReturn,\n handleReturnOnSingleLine,\n handlePastedText,\n handlePastedMultilineText,\n customStyleMap,\n styleMarkup,\n blockMarkup,\n editorFormatting,\n formatOptions,\n disableFormatting,\n disableDefaultPlugins,\n spellCheck,\n allowUndo,\n onUndo,\n onRedo,\n ...otherEditorProps\n } = this.props\n const { editorState } = this.state\n return (\n
\n \n {this.InlineToolbar && {renderToolbarButtons(formatOptions)}}\n {this.Toolbar && {renderToolbarButtons(formatOptions)}}\n
\n )\n }\n\n componentDidCatch(_error, _info) {\n // exceptionReporter(error, info) // skip error reporting on Draft.js\n const { html, multiline, allowUndo = false } = this.props\n this.onChangeDebounceTimer = null\n this.lastHTML = ''\n this.InlineToolbar = null\n this.Toolbar = null\n this.updateDefaultPlugins(this.props)\n this.updatePlugins(this.props)\n this.updateConverter(this.props)\n const editorState = this.updateHTML({ html, multiline, setState: false })\n this.setState({\n editorState: allowUndo == editorState.getAllowUndo() ? editorState : EditorState.set(editorState, { allowUndo })\n })\n }\n}\n","// lib\nimport { EditorState } from 'draft-js'\n\n// plugin\nexport default function moveFocusToEndPlugin() {\n return {\n prevEditorState: null,\n editorStateHasFocus: false,\n onChange(editorState) {\n const editorHasFocus = editorState.getSelection().getHasFocus()\n const updatedState =\n editorHasFocus && (!this.prevEditorState || !this.editorStateHasFocus)\n ? EditorState.moveFocusToEnd(editorState)\n : editorState\n this.prevEditorState = editorState\n this.editorStateHasFocus = editorHasFocus\n return updatedState\n }\n }\n}\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["AsyncJobManager","state","globalQueue","jobsStarted","concurrency","arguments","length","undefined","canAcceptJobs","work","currentJob","shift","canceled","onDone","index","onProgress","resolve","then","resolved","rejected","loaded","total","_len","rest","Array","_key","apply","concat","finally","done","queue","_len2","jobResolvers","_key2","ProgressivePromise","_reject","progress","_state$globalQueue","results","from","jobsDone","push","_toConsumableArray","map","job","status","jobIndex","result","cancel","_len3","_key3","queuedJobIndex","queuedJob","_step","_iterator","_createForOfIteratorHelper","s","n","jobResolver","value","err","e","f","cancelAll","newConcurrency","_Promise","executor","_this","_classCallCheck","buffer","tracker","recordProgress","currentProgress","forEach","recordedProgress","_callSuper","reject","onFulfilled","onRejected","_get","_getPrototypeOf","prototype","call","_inherits","_wrapNativeSuper","Promise","getParameterByName","url","name","escapedName","replace","RegExp","exec","decodeURIComponent","headersFromGoogleUploadUrl","signedHeadersStr","split","header","removeSelectedContentFromEditorState","editorState","content","getCurrentContent","selection","getSelection","getAnchorKey","getFocusKey","getAnchorOffset","getFocusOffset","EditorState","Modifier","get","buildMultilineText","lines","maxLines","lineBreak","linesJoint","slice","join","multilineLimitPlugin","config","_config$maxLines","_config$separator","separator","handleKeyCommand","command","_editorState","_eventTimeStamp","_ref","setEditorState","contentState","editorStateText","getPlainText","applyFFFix","dividerText","newContentState","getCurrentInlineStyle","newEditorState","curFocusOffset","newSelection","merge","focusOffset","anchorOffset","getSelectionAfter","onChange","blocks","getBlocksAsArray","_blocks$reduce","reduce","_ref2","block","characterList","getType","getText","getCharacterList","List","contentBlock","ContentBlock","key","genKey","text","type","depth","ContentState","updatedEditorState","newContentBlock","editorStateSelection","getHasFocus","getRichTextContentElement","document","querySelectorAll","getActiveRichTextContentElementIndex","richTextContents","i","richTextContent","item","contains","activeElement","getPreviousRichTextContentElement","activeRichTextContentIndex","getNextRichTextContentElement","createCharLimitPlugin","_config$limit","limit","_config$trim","trim","_config$countText","countText","countTextAfterInsertion","handleBeforeInput","handlePastedText","textLength","lastBlock","getBlockMap","last","focusKey","getKey","getLength","anchorKey","Math","max","SelectionState","isBackward","signzp","defaultCountText","RichTextCounter","_RichTextCounter","_ManagedRenderCompone","props","counter","characters","active","sectionClassName","setPlugins","event","this","onFocus","setState","onBlur","prevEditorState","getContent","onUpdate","recount","newCounter","lastCounter","_this$props","borders","onBorderCrossing","_borders$reduce","border","borderName","crossedBorder","crossedBorderName","direction","borderCounter","abs","has","_this2","refRichText","_props$characters","_props$countText","onCount","updatedCounter","detectBorderCrossing","_props$characters2","trimAt","_props$countText2","plugins","nextProps","readOnly","_this$props2","_this$props2$alignmen","alignment","otherRichTextProps","_objectWithoutProperties","_excluded","_this$state","React","className","Boolean","RichText","_extends","onRichTextUpdate","onRichTextFocus","onRichTextBlur","ref","saveRef","ManagedRenderComponent","propTypes","PropTypes","Map","updateOnProps","_applyDecoratedDescriptor","_class","autobind","Object","getOwnPropertyDescriptor","arrowNavigationPlugin","getEditorState","isFocusAtTheStart","selectionState","currentContent","currentContentBlock","getBlockForKey","getFirstBlock","getStartOffset","getEndOffset","isFocusAtTheEnd","getLastBlock","keyBindingFn","altKey","metaKey","ctrlKey","shiftKey","KEYCODE_UP","keyCode","KEYCODE_DOWN","getDefaultKeyBinding","_setEditorState","prevEditorComponent","focus","nextEditorComponent","terminalCharData","style","STYLE_MARKUP","OrderedMap","start","end","BLOCK_MARKUP","BLOCK_TYPES","blockquote","FILTER_CHARS","setAbsoluteSelection","absoluteSelection","blockMap","_blockMap$reduce2","r","blockKey","startKey","startOffset","endKey","endOffset","blockLength","inStartBlock","offset","inEndBlock","lastBlockKey","lastBlockLength","fragmentToStringXMLSerializer","DEFAULT_ALLOWED_TAGS","DEFAULT_FORBIDDEN_TAGS","DEFAULT_ALLOWED_ATTRIBUTES","sanitizeHTML","html","_ref$allowedTags","allowedTags","_ref$allowedAttribute","allowedAttributes","_ref$includeDefault","includeDefault","_ref$forbiddenTags","forbiddenTags","allAllowedTags","tag","toLowerCase","allAllowedAttributes","attr","allForbiddenTags","fragment","createDocumentFragment","template","createElement","innerHTML","_unused","range","createRange","selectNode","body","createContextualFragment","parseHTMLtoFragment","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","currentNode","_node$tagName","_node$tagName$toLower","_node$tagName2","Node","ELEMENT_NODE","nodeType","node","nodeName","tagName","nodeAttributes","attributes","includes","_node$parentNode","parentNode","removeChild","replacement","attrName","setAttribute","replaceWith","_i","_nodeAttributes","attrValue","toLocaleLowerCase","startsWith","removeAttribute","error","console","DOCUMENT_FRAGMENT_NODE","appendChild","cloneNode","_unused2","XMLSerializer","serializeToString","fragmentToString","hasCommandModifier","KeyBindingUtil","defaultCustomStyleMap","BOLD","fontWeight","ITALIC","fontStyle","UNDERLINE","textDecoration","defaultStyleMarkup","defaultBlockTypes","defaultFormatOptions","defaultBlockMarkup","renderToolbarButtons","formatOptions","externalProps","BoldButton","ItalicButton","UnderlineButton","BlockquoteButton","HeadlineOneButton","HeadlineTwoButton","HeadlineThreeButton","inlineToolbarPluginConfig","theme","buttonStyles","buttonWrapper","button","toolbarStyles","toolbar","toolbarPluginConfig","createRichTextPlugin","multiline","handleReturnOnSingleLine","handleReturn","nextRichTextContent","_RichText","_props$allowUndo","allowUndo","onChangeDebounceTimer","lastHTML","InlineToolbar","Toolbar","focused","updateDefaultPlugins","updatePlugins","updateConverter","updateHTML","getAllowUndo","callback","_this$props$allowUndo","clearTimeout","changedEditorState","_ref2$applyPlugins","applyPlugins","plugin","allowUpdate","_this$props2$debounce","debounce","setTimeout","which","KEYCODE_ESC","onEscape","KEYCODE_TAB","onTab","onUpArrow","onDownArrow","defaultKeyBinding","customKeyBindingFnResult","_this3","_this$props3","disableFormatting","customHandleKeyCommand","handleKeyCommandRestArgs","onEditorChange","RichUtils","_this$props$onUndo","onUndo","window","rfdUIRichTextUndo","_this$props$onRedo","onRedo","rfdUIRichTextRedo","_convertFromHTML","contentBlocks","entityMap","htmlEditorState","_this4","textLines","convertFromHTML","getDecorator","convertBlockMapToHTML","line","_ref3","textIndex","_this$props$formatOpt","_this5","_html","_this$props4","handlePastedMultilineText","getTextLines","htmlLines","getHTMLLines","pasteResult","_convertFromHTML2","htmlBlockMap","textBlockMap","_ref4","_this6","_ref4$html","_ref4$multiline","_ref4$setState","_ref5$editorState","listPipe","_convertFromHTML3","x","singleLinePlugin","nextEditorState","_blockMap$reduce","nextText","nextTextLength","prevText","prevTextLength","getStartKey","getEndKey","matchTail","tailBorder","lengthDiff","tailIndex","setAbsoluteSelectionTo","matchHead","setSelectionAfterUpdate","_ref6","_ref6$text","_ref6$multiline","_ref6$setState","escapeHTML","defaultPlugins","_this7","disableDefaultPlugins","editorFormatting","multilineLimit","_props$multiline","editorStateHasFocus","editorHasFocus","updatedState","createArrowNavigationPlugin","toolbarPlugin","createToolbarPlugin","inlineToolbarPlugin","createInlineToolbarPlugin","createSingleLinePlugin","createMultilineLimitPlugin","_props$styleMarkup","styleMarkup","_props$blockTypes","blockTypes","_props$blockMarkup","blockMarkup","_ref$styleMarkup","_ref$blockMarkup","_ref$blockTypes","_ref$filterChars","filterChars","blockType","blockStart","blockEnd","charData","lastStyle","addHTML","immutableEqual","addStyles","removeStyles","size","tags","markup","reduceRight","_ref7","_ref7$editorState","_ref7$text","fetchText","_ref7$html","fetchHTML","assign","b","_ref8$editorState","_ref9$editorState","_this$props$html","nextHTML","updateText","force","firstBlock","first","firstBlockKey","_objectSpread","_this$props5","_this$props5$readOnly","minHeight","_this$props5$alignmen","_this$props5$decorato","decorators","externalEditorState","customStyleMap","spellCheck","otherEditorProps","Editor","textAlignment","onEditorFocus","onEditorBlur","editorKeyBinding","_error","_info","_this$props6","_this$props6$allowUnd","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","Error","code","keys","module","exports"],"sourceRoot":""}