@entur-partner/rich-text-editor 2.0.23 → 2.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/ExpandableMultiLanguageRichTextEditor.d.ts +1 -0
- package/dist/RichTextEditor/index.d.ts +1 -0
- package/dist/rich-text-editor.cjs.development.js.map +1 -1
- package/dist/rich-text-editor.cjs.production.min.js.map +1 -1
- package/dist/rich-text-editor.esm.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.0.24](https://bitbucket.org/enturas/entur-partner-packages/compare/@entur-partner/rich-text-editor@2.0.23...@entur-partner/rich-text-editor@2.0.24) (2022-03-09)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **deps:** update all non-major dependencies ([4533e34](https://bitbucket.org/enturas/entur-partner-packages/commits/4533e34e81006c6fd056f5ebca40a58c75d9caf9))
|
|
11
|
+
|
|
6
12
|
## [2.0.23](https://bitbucket.org/enturas/entur-partner-packages/compare/@entur-partner/rich-text-editor@2.0.22...@entur-partner/rich-text-editor@2.0.23) (2022-02-10)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @entur-partner/rich-text-editor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.cjs.development.js","sources":["../src/withI18n.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.js","../src/events.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/Controls/InlineStyleControls.js","../src/RichTextEditor/Controls/TagControls.js","../src/RichTextEditor/Link/index.js","../src/RichTextEditor/constants.js","../src/RichTextEditor/index.js","../src/RichTextEditor/markdownConvertion.js","../src/ExpandableMultiLanguageRichTextEditor.tsx","../src/RichTextEditor/htmlConvertion.js"],"sourcesContent":["import { createWithI18n } from '@entur-partner/legacy';\n\nconst simpleFormat = (formatMessage) => (name, value) =>\n formatMessage({ id: name }, value);\n\nexport const withI18n = createWithI18n(simpleFormat);\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\nimport { withI18n } from '../../withI18n';\n\nclass BlockTypeDropdown extends Component {\n handleOnClick = (selectedOption) => {\n const { onChange } = this.props;\n onChange(selectedOption);\n };\n\n toItem(option) {\n return {\n value: option.style,\n label: this.renderFormattedLabel(option.label),\n };\n }\n\n renderFormattedLabel(label) {\n const formattedLabelText = this.props.i18n(label);\n switch (label) {\n case 'styles.p':\n return <div className=\"default-p\">{formattedLabelText}</div>;\n case 'styles.h1':\n return <div className=\"default-h1\">{formattedLabelText}</div>;\n case 'styles.h2':\n return <div className=\"default-h2\">{formattedLabelText}</div>;\n case 'styles.h3':\n return <div className=\"default-h3\">{formattedLabelText}</div>;\n case 'styles.h4':\n return <div className=\"default-h4\">{formattedLabelText}</div>;\n case 'styles.h5':\n return <div className=\"default-h5\">{formattedLabelText}</div>;\n case 'styles.h6':\n return <div className=\"default-h6\">{formattedLabelText}</div>;\n default:\n return <p>{formattedLabelText}</p>;\n }\n }\n\n render() {\n const { options, selected, i18n } = this.props;\n\n return (\n <Dropdown\n className=\"block-type-dropdown\"\n items={options.map((option) => this.toItem(option))}\n initialSelectedItem={this.toItem(selected)}\n label={i18n('styles.style')}\n onChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n />\n );\n }\n}\n\nexport default withI18n(BlockTypeDropdown);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport BlockTypeDropdown from '../BlockTypeDropdown';\n\nconst BlockTypeControls = ({ editorState, blockTypes, onToggle }) => {\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n const selectedOption =\n blockTypes.find((option) => option.style === blockTypeStyle) ||\n blockTypes[0];\n\n return (\n <BlockTypeDropdown\n options={blockTypes}\n selected={selectedOption}\n onChange={onToggle}\n />\n );\n};\n\nexport default BlockTypeControls;\n","export const Key = Object.freeze({\n ENTER: 13,\n});\n\nexport function getKey(event) {\n return event.keyCode || event.which;\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass StyleButton extends Component {\n onToggle = (e) => {\n const { style, onToggle } = this.props;\n e.preventDefault();\n onToggle(style);\n };\n\n onToggleNoEvent = () => {\n const { style, onToggle } = this.props;\n onToggle(style);\n };\n\n render() {\n const { i18n, active, label, title, hotKey } = this.props;\n\n const classNames = cx('editor-stylebutton', { active });\n\n return (\n <div\n className={classNames}\n onMouseDown={this.onToggle}\n title={i18n(title) + hotKey}\n tabIndex={0}\n onKeyPress={(event) => {\n if (getKey(event) === Key.ENTER) {\n this.onToggleNoEvent();\n }\n }}\n >\n {label}\n </div>\n );\n }\n}\n\nexport default withI18n(StyleButton);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst BlockTypeButtonControls = (props) => {\n const { editorState, blockTypes, onToggle } = props;\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n return (\n <div className=\"controls-group block-editor-controls\">\n {blockTypes.map((type, i) => (\n <StyleButton\n key={i}\n active={type.style === blockTypeStyle}\n label={type.label}\n onToggle={onToggle}\n style={type.style}\n title={type.tooltip}\n />\n ))}\n </div>\n );\n};\n\nexport default BlockTypeButtonControls;\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { EditorState } from 'draft-js';\nimport PropTypes from 'prop-types';\nimport { TextField } from '@entur/form';\nimport { UnlinkIcon, LinkIcon, CheckIcon, CloseIcon } from '@entur/icons';\nimport { Unbutton } from '@entur-partner/common';\nimport { SecondarySquareButton } from '@entur/button';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass BlockTypeLinkControls extends Component {\n state = {\n urlValue: '',\n showUrlInput: false,\n hasLink: false,\n };\n\n onUrlChange = (e) => {\n this.setState({ urlValue: e.target.value });\n };\n\n addLink = (e) => {\n e.preventDefault();\n const { editorState } = this.props;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n const currentContent = editorState.getCurrentContent();\n const startKey = selection.getStartKey();\n const startOffset = selection.getStartOffset();\n const blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n const linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n let url = '';\n if (linkKey) {\n const linkInstance = currentContent.getEntity(linkKey);\n url = linkInstance.getData().url;\n }\n\n this.setState({\n showUrlInput: true,\n urlValue: url,\n hasLink: !!url,\n });\n }\n };\n\n confirmLink = (e) => {\n e.preventDefault();\n const { urlValue } = this.state;\n const { editorState, onToggle } = this.props;\n const contentState = editorState.getCurrentContent();\n const contentStateWithEntity = contentState.createEntity(\n 'LINK',\n 'MUTABLE',\n { url: urlValue }\n );\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n const newEditorState = EditorState.set(editorState, {\n currentContent: contentStateWithEntity,\n });\n onToggle(newEditorState, entityKey);\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n cancelLink = (e) => {\n e.preventDefault();\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n onLinkInputKeyDown = (e) => {\n if (getKey(e) === Key.ENTER) {\n this.confirmLink(e);\n }\n };\n\n removeLink = (e) => {\n e.preventDefault();\n const { editorState, onToggle } = this.props;\n const { hasLink } = this.state;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed() && hasLink) {\n onToggle(editorState, null);\n this.setState({\n showUrlInput: false,\n });\n }\n };\n\n render() {\n const { i18n } = this.props;\n const { showUrlInput, hasLink } = this.state;\n return (\n <div className=\"controls-group block-editor-controls link-controls\">\n <div\n className=\"editor-stylebutton\"\n title={i18n('styles.link')}\n onClick={this.addLink}\n tabIndex={0}\n >\n <LinkIcon />\n </div>\n\n {showUrlInput && (\n <div className=\"url-input-container\">\n <span className=\"exit-button\" onMouseDown={this.cancelLink}>\n <CloseIcon />\n </span>\n <div className=\"link-label\">{i18n('common.from')}</div>\n <div className=\"url-input-form\">\n <TextField\n style={{ width: 250, margin: 5 }}\n onChange={this.onUrlChange}\n value={this.state.urlValue}\n onKeyDown={this.onLinkInputKeyDown}\n placeholder=\"https://example.com\"\n />\n <SecondarySquareButton onMouseDown={this.confirmLink}>\n <CheckIcon width={15} height={15} />\n </SecondarySquareButton>\n </div>\n {hasLink && (\n <div className=\"remove-link\">\n <Unbutton\n onClick={this.removeLink}\n title={i18n('styles.unlink')}\n >\n <UnlinkIcon />\n {i18n('styles.unlink')}\n </Unbutton>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\nBlockTypeLinkControls.propTypes = {\n editorState: PropTypes.object,\n onToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst InlineStyleControls = (props) => {\n const { editorState, inlineStyles } = props;\n\n const currentStyle = editorState.getCurrentInlineStyle();\n\n return (\n <div className=\"controls-group inline-editor-controls\">\n {inlineStyles.map((type, i) => (\n <StyleButton\n key={i}\n active={currentStyle.has(type.style)}\n label={type.label}\n onToggle={props.onToggle}\n style={type.style}\n title={type.tooltip}\n hotKey={type.hotKey}\n />\n ))}\n </div>\n );\n};\n\nexport default InlineStyleControls;\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { MenuItem, Popover, Menu } from '@entur-partner/legacy';\nimport { DownArrowIcon } from '@entur/icons';\n\nimport { withI18n } from '../../withI18n';\n\nclass TagControls extends Component {\n tagControlRef = createRef();\n state = { isOpen: false };\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n if (\n this.tagControlRef &&\n this.tagControlRef.current &&\n !this.tagControlRef.current.contains(e.target)\n ) {\n this.setState({ isOpen: false });\n }\n };\n\n handleTagClick = (tag, delimiter) => {\n const { editorState, onInsertTag } = this.props;\n const delimiterStart = delimiter[0];\n const delimiterEnd = delimiter[1];\n const fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n onInsertTag(editorState, fullTag);\n };\n\n render() {\n const { i18n, tags } = this.props;\n const { isOpen } = this.state;\n const menuItems = tags.map((tag, i) => {\n const delimiter = tag.delimiter || '{}';\n return (\n <MenuItem\n key={i}\n className=\"tag-control\"\n id={'tag-control-' + tag.tag}\n onClick={() => this.handleTagClick(tag.tag, delimiter)}\n >\n {tag.icon}\n <span className=\"tag-control-text\">{tag.label}</span>\n </MenuItem>\n );\n });\n\n return (\n <div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n <div\n className=\"tag-control-header\"\n onClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n >\n {i18n('common.insert')}\n <DownArrowIcon className=\"tag-control-chevron\" inline />\n </div>\n <Popover open={isOpen} className=\"tag-control-content\">\n <Menu className=\"action-menu\">{menuItems}</Menu>\n </Popover>\n </div>\n );\n }\n}\n\nTagControls.propTypes = {\n editorState: PropTypes.object,\n tags: PropTypes.arrayOf(PropTypes.object).isRequired,\n onInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from 'react';\n\nexport const HtmlLink = ({ url, children }) => {\n return <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n const { url } = props.contentState.getEntity(props.entityKey).getData();\n return <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n contentBlock.findEntityRanges((character) => {\n const entityKey = character.getEntity();\n return (\n entityKey !== null &&\n contentState.getEntity(entityKey).getType() === 'LINK'\n );\n }, callback);\n}\n\nexport default Link;\n","import React from 'react';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n BulletListIcon,\n NumberListIcon,\n} from '@entur/icons';\nimport { CompositeDecorator } from 'draft-js';\n\nimport Link, { findLinkEntities } from './Link';\n\nexport const EditorConfigTypes = Object.freeze({\n FONT_LIST: {\n UNSTYLED: 'unstyled',\n HEADER_ONE: 'header-one',\n HEADER_TWO: 'header-two',\n HEADER_THREE: 'header-three',\n HEADER_FOUR: 'header-four',\n HEADER_FIVE: 'header-five',\n HEADER_SIX: 'header-six',\n },\n BLOCK_TYPES: {\n UNORDERED_LIST: 'unordered-list',\n ORDERED_LIST: 'ordered-list',\n },\n INLINE_STYLES: {\n BOLD: 'bold',\n ITALIC: 'italic',\n UNDERLINE: 'underline',\n },\n});\n\nexport const FontList = Object.freeze({\n unstyled: { label: 'styles.p', style: 'unstyled' },\n 'header-one': { label: 'styles.h1', style: 'header-one' },\n 'header-two': { label: 'styles.h2', style: 'header-two' },\n 'header-three': { label: 'styles.h3', style: 'header-three' },\n 'header-four': { label: 'styles.h4', style: 'header-four' },\n 'header-five': { label: 'styles.h5', style: 'header-five' },\n 'header-six': { label: 'styles.h6', style: 'header-six' },\n});\n\nexport const BlockTypeList = Object.freeze({\n 'unordered-list': {\n label: <BulletListIcon />,\n style: 'unordered-list-item',\n tooltip: 'styles.unordered_list_item',\n },\n 'ordered-list': {\n label: <NumberListIcon />,\n style: 'ordered-list-item',\n tooltip: 'styles.ordered_list_item',\n },\n});\n\nexport const InlineStylesList = Object.freeze({\n bold: {\n label: <BoldIcon />,\n style: 'BOLD',\n tooltip: 'styles.bold',\n hotKey: '(Ctrl+B)',\n },\n italic: {\n label: <ItalicIcon />,\n style: 'ITALIC',\n tooltip: 'styles.italic',\n hotKey: '(Ctrl+I)',\n },\n underline: {\n label: <UnderlineIcon />,\n style: 'UNDERLINE',\n tooltip: 'styles.underline',\n hotKey: '(Ctrl+U)',\n },\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n fontList: [\n { type: 'unstyled', label: 'styles.p', style: 'unstyled' },\n { type: 'header-two', label: 'styles.h1', style: 'header-two' },\n ],\n blockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: [\n EditorConfigTypes.INLINE_STYLES.BOLD,\n EditorConfigTypes.INLINE_STYLES.ITALIC,\n ],\n});\nexport const decorator = new CompositeDecorator([\n {\n strategy: findLinkEntities,\n component: Link,\n },\n]);\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport {\n Editor,\n EditorState,\n Modifier,\n RichUtils,\n getDefaultKeyBinding,\n} from 'draft-js';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport BlockTypeSelectControls from './Controls/BlockTypeSelectControls';\nimport BlockTypeButtonControls from './Controls/BlockTypeButtonControls';\nimport BlockTypeLinkControls from './Controls/BlockTypeLinkControls';\nimport InlineStyleControls from './Controls/InlineStyleControls';\nimport TagControls from './Controls/TagControls';\nimport {\n BlockTypeList,\n EditorConfigTypes,\n FontList,\n InlineStylesList,\n decorator,\n} from './constants';\n\nclass RichTextEditor extends Component {\n static decorator = decorator;\n\n wrapperRef = createRef();\n editor = createRef();\n\n focusEditor() {\n this.editor.current && this.editor.current.focus();\n }\n\n handleKeyCommand = (command, editorState) => {\n const newState = RichUtils.handleKeyCommand(editorState, command);\n if (newState) {\n this.props.onChange(newState);\n return true;\n }\n return false;\n };\n\n keyBindingFn = (evt) => {\n switch (evt.keyCode) {\n case 9:\n return this.onTab(evt);\n default:\n return getDefaultKeyBinding(evt);\n }\n };\n\n onTab = (evt) => {\n evt.stopPropagation();\n const { maxTabDepth, editorState, onChange } = this.props;\n onChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n };\n\n toggleButtonBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleSelectBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleInlineStyle = (inlineStyle) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n };\n\n toggleLink = (newEditorState, entityKey) => {\n this.props.onChange(\n RichUtils.toggleLink(\n newEditorState,\n newEditorState.getSelection(),\n entityKey\n )\n );\n };\n\n insertText = (editorState, text) => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n text\n );\n this.props.onChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n () => this.focusEditor()\n );\n };\n\n getFontListConfigForPanelType = (panelType) => {\n const controlConfig = this.getControlConfigBySet(\n this.props.controlConfigSet\n );\n return controlConfig[panelType];\n };\n\n getControlConfigBySet = (config) => {\n const fontList = ((config && config.fontList) || Object.keys(FontList))\n .filter((f) => (typeof f === 'object' ? FontList[f.type] : FontList[f]))\n .map((f) => (f.label && f.style ? f : FontList[f]));\n const blockTypes = (\n (config && config.blockTypes) ||\n Object.keys(BlockTypeList)\n )\n .filter((f) =>\n typeof f === 'object' ? BlockTypeList[f.type] : BlockTypeList[f]\n )\n .map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n const inlineStyles = (\n (config && config.inlineStyles) ||\n Object.keys(InlineStylesList)\n )\n .filter((f) =>\n typeof f === 'object' ? InlineStylesList[f.type] : InlineStylesList[f]\n )\n .map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n return {\n fontList,\n blockTypes,\n inlineStyles,\n };\n };\n\n render() {\n const {\n className,\n showFontMenu,\n showInlineStyleMenu,\n showTextFormatMenu,\n showLinkMenu,\n label,\n tags,\n editorState,\n onChange,\n handleBeforeInput,\n } = this.props;\n\n const classNames = cx('editor-root', className);\n\n return (\n <div ref={this.wrapperRef}>\n {label && <Label>{label}</Label>}\n\n <div className={classNames}>\n <div className=\"controls-wrapper\">\n {showFontMenu && (\n <BlockTypeSelectControls\n editorState={editorState}\n onToggle={this.toggleSelectBlockType}\n blockTypes={this.getFontListConfigForPanelType('fontList')}\n />\n )}\n {showInlineStyleMenu && (\n <InlineStyleControls\n editorState={editorState}\n onToggle={this.toggleInlineStyle}\n inlineStyles={this.getFontListConfigForPanelType(\n 'inlineStyles'\n )}\n />\n )}\n {showTextFormatMenu && (\n <BlockTypeButtonControls\n editorState={editorState}\n onToggle={this.toggleButtonBlockType}\n blockTypes={this.getFontListConfigForPanelType('blockTypes')}\n />\n )}\n {showLinkMenu && (\n <BlockTypeLinkControls\n editorState={editorState}\n onToggle={this.toggleLink}\n />\n )}\n {tags && tags.length > 0 && (\n <TagControls\n editorState={editorState}\n tags={tags}\n onInsertTag={this.insertText}\n />\n )}\n </div>\n\n <div className=\"editor-wrapper\">\n <Editor\n ref={this.editor}\n editorState={editorState}\n handleKeyCommand={this.handleKeyCommand}\n onChange={onChange}\n handleBeforeInput={handleBeforeInput}\n keyBindingFn={this.keyBindingFn}\n spellCheck\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styleShape = (configList) =>\n PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf([...Object.values(configList)]),\n label: PropTypes.string,\n style: PropTypes.string,\n tooltip: PropTypes.string,\n hotKey: PropTypes.string,\n })\n ),\n ]);\n\nRichTextEditor.propTypes = {\n editorState: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n maxTabDepth: PropTypes.number,\n showFontMenu: PropTypes.bool,\n showInlineStyleMenu: PropTypes.bool,\n showTextFormatMenu: PropTypes.bool,\n showLinkMenu: PropTypes.bool,\n label: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.object),\n controlConfigSet: PropTypes.shape({\n fontList: styleShape(EditorConfigTypes.FONT_LIST),\n blockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n }),\n};\nRichTextEditor.defaultProps = {\n maxTabDepth: 4,\n showFontMenu: true,\n showInlineStyleMenu: true,\n showTextFormatMenu: true,\n showLinkMenu: true,\n label: '',\n};\n\nexport default RichTextEditor;\n","import { markdownToDraft, draftToMarkdown } from 'markdown-draft-js';\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\nimport showdown from 'showdown';\n\nimport { decorator } from './constants';\n\nexport const editorStateToMarkdown = (editorState) => {\n const rawState = convertToRaw(editorState.getCurrentContent());\n return draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n if (!markdown) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = markdownToDraft(markdown, { preserveNewlines: true });\n const contentState = convertFromRaw(rawState);\n return EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n underline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n return converter.makeHtml(markdown);\n};\n","import React, { useState } from 'react';\nimport { EditorState } from 'draft-js';\nimport { ExpandablePanel } from '@entur/expand';\nimport {\n LanguageKey,\n LanguageOption,\n MultiLanguageValues,\n Stack,\n} from '@entur-partner/common';\nimport { FeedbackText, VariantType } from '@entur/form';\n\nimport {\n editorStateToMarkdown,\n markdownToEditorState,\n} from './RichTextEditor/markdownConvertion';\nimport RichTextEditor from './RichTextEditor';\nimport { MinifiedConfigTypes } from './RichTextEditor/constants';\n\ntype MultiLanguageInputProps = {\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n tags?: {\n tag: string;\n delimiter: string;\n label: string;\n }[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n language: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n language: { value: langKey, label, required },\n values,\n onChange,\n variant,\n feedback,\n tags,\n}: RichTextEditorForLanguageProps) => {\n const [editorState, setEditorState] = useState<EditorState>(\n markdownToEditorState(values[langKey])\n );\n\n const handleOnChange = (changedState: EditorState) => {\n const newValues = { ...values };\n const content = editorStateToMarkdown(changedState);\n if (values[langKey] && content === '\\n') {\n delete newValues[langKey];\n } else {\n newValues[langKey] = content;\n }\n\n setEditorState(changedState);\n onChange(newValues);\n };\n\n const feedbackText = feedback && feedback(langKey);\n\n return (\n <>\n <RichTextEditor\n label={required ? label + '*' : label}\n editorState={editorState}\n onChange={(changedState: EditorState) => handleOnChange(changedState)}\n controlConfigSet={MinifiedConfigTypes}\n tags={tags}\n />\n {variant && feedbackText?.length! > 0 && (\n <FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n )}\n </>\n );\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n name: string;\n title: string;\n languages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n name,\n title,\n languages,\n ...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map((lang) => (\n <div\n key={name + lang.value}\n data-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n >\n <RichTextEditorForLanguage language={lang} {...rest} />\n </div>\n ))}\n </Stack>\n </ExpandablePanel>\n);\n","import React from 'react';\nimport { EditorState } from 'draft-js';\nimport { convertFromHTML, convertToHTML } from 'draft-convert';\n\nimport { HtmlLink } from './Link';\nimport { decorator } from './constants';\n\n/* eslint-disable react/display-name */\n\nexport const entityToHtml = {\n entityToHTML: (entity, originalText) => {\n if (entity.type === 'LINK') {\n return <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n }\n return originalText;\n },\n};\n\nexport const htmlToEntity = {\n htmlToEntity: (nodeName, node, createEntity) => {\n if (nodeName === 'a') {\n return createEntity('LINK', 'MUTABLE', { url: node.href });\n }\n },\n};\n\n/* eslint-disable react/display-name */\n\nexport const htmlToEditorState = (html) => {\n if (!html) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = convertFromHTML(htmlToEntity)(html);\n return EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n return convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["simpleFormat","formatMessage","name","value","id","withI18n","createWithI18n","BlockTypeDropdown","handleOnClick","selectedOption","onChange","props","toItem","option","style","label","renderFormattedLabel","formattedLabelText","i18n","React","render","options","selected","Dropdown","map","selectedItem","Component","BlockTypeControls","editorState","blockTypes","onToggle","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","find","Key","Object","freeze","ENTER","getKey","event","keyCode","which","StyleButton","e","preventDefault","onToggleNoEvent","active","title","hotKey","classNames","cx","BlockTypeButtonControls","type","i","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","addLink","isCollapsed","currentContent","startKey","startOffset","getStartOffset","blockWithLinkAtBeginning","linkKey","getEntityAt","url","linkInstance","getEntity","getData","confirmLink","contentState","contentStateWithEntity","createEntity","entityKey","getLastCreatedEntityKey","newEditorState","EditorState","set","cancelLink","onLinkInputKeyDown","removeLink","LinkIcon","CloseIcon","TextField","width","margin","SecondarySquareButton","CheckIcon","Unbutton","UnlinkIcon","propTypes","PropTypes","object","func","InlineStyleControls","inlineStyles","currentStyle","getCurrentInlineStyle","has","TagControls","tagControlRef","createRef","isOpen","handleClickOutside","current","contains","handleTagClick","tag","delimiter","onInsertTag","delimiterStart","delimiterEnd","fullTag","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","tags","menuItems","MenuItem","icon","DownArrowIcon","Popover","Menu","arrayOf","isRequired","HtmlLink","children","Link","findLinkEntities","contentBlock","callback","findEntityRanges","character","EditorConfigTypes","FONT_LIST","UNSTYLED","HEADER_ONE","HEADER_TWO","HEADER_THREE","HEADER_FOUR","HEADER_FIVE","HEADER_SIX","BLOCK_TYPES","UNORDERED_LIST","ORDERED_LIST","INLINE_STYLES","BOLD","ITALIC","UNDERLINE","FontList","unstyled","BlockTypeList","BulletListIcon","NumberListIcon","InlineStylesList","bold","BoldIcon","italic","ItalicIcon","underline","UnderlineIcon","MinifiedConfigTypes","fontList","values","decorator","CompositeDecorator","strategy","component","RichTextEditor","wrapperRef","editor","handleKeyCommand","command","newState","RichUtils","keyBindingFn","evt","onTab","getDefaultKeyBinding","stopPropagation","maxTabDepth","toggleButtonBlockType","blockType","toggleBlockType","toggleSelectBlockType","toggleInlineStyle","inlineStyle","toggleLink","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","controlConfig","getControlConfigBySet","controlConfigSet","config","keys","filter","f","focus","className","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","Label","BlockTypeSelectControls","length","Editor","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","markdownToHtml","makeHtml","RichTextEditorForLanguage","language","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","FeedbackText","ExpandableMultiLanguageRichTextEditor","languages","rest","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","key","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","href","htmlToEditorState","html","convertFromHTML","editorStateToHtml","convertToHTML"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rich-text-editor.cjs.development.js","sources":["../src/withI18n.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.js","../src/events.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/Controls/InlineStyleControls.js","../src/RichTextEditor/Controls/TagControls.js","../src/RichTextEditor/Link/index.js","../src/RichTextEditor/constants.js","../src/RichTextEditor/index.js","../src/RichTextEditor/markdownConvertion.js","../src/ExpandableMultiLanguageRichTextEditor.tsx","../src/RichTextEditor/htmlConvertion.js"],"sourcesContent":["import { createWithI18n } from '@entur-partner/legacy';\n\nconst simpleFormat = (formatMessage) => (name, value) =>\n formatMessage({ id: name }, value);\n\nexport const withI18n = createWithI18n(simpleFormat);\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\nimport { withI18n } from '../../withI18n';\n\nclass BlockTypeDropdown extends Component {\n handleOnClick = (selectedOption) => {\n const { onChange } = this.props;\n onChange(selectedOption);\n };\n\n toItem(option) {\n return {\n value: option.style,\n label: this.renderFormattedLabel(option.label),\n };\n }\n\n renderFormattedLabel(label) {\n const formattedLabelText = this.props.i18n(label);\n switch (label) {\n case 'styles.p':\n return <div className=\"default-p\">{formattedLabelText}</div>;\n case 'styles.h1':\n return <div className=\"default-h1\">{formattedLabelText}</div>;\n case 'styles.h2':\n return <div className=\"default-h2\">{formattedLabelText}</div>;\n case 'styles.h3':\n return <div className=\"default-h3\">{formattedLabelText}</div>;\n case 'styles.h4':\n return <div className=\"default-h4\">{formattedLabelText}</div>;\n case 'styles.h5':\n return <div className=\"default-h5\">{formattedLabelText}</div>;\n case 'styles.h6':\n return <div className=\"default-h6\">{formattedLabelText}</div>;\n default:\n return <p>{formattedLabelText}</p>;\n }\n }\n\n render() {\n const { options, selected, i18n } = this.props;\n\n return (\n <Dropdown\n className=\"block-type-dropdown\"\n items={options.map((option) => this.toItem(option))}\n initialSelectedItem={this.toItem(selected)}\n label={i18n('styles.style')}\n onChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n />\n );\n }\n}\n\nexport default withI18n(BlockTypeDropdown);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport BlockTypeDropdown from '../BlockTypeDropdown';\n\nconst BlockTypeControls = ({ editorState, blockTypes, onToggle }) => {\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n const selectedOption =\n blockTypes.find((option) => option.style === blockTypeStyle) ||\n blockTypes[0];\n\n return (\n <BlockTypeDropdown\n options={blockTypes}\n selected={selectedOption}\n onChange={onToggle}\n />\n );\n};\n\nexport default BlockTypeControls;\n","export const Key = Object.freeze({\n ENTER: 13,\n});\n\nexport function getKey(event) {\n return event.keyCode || event.which;\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass StyleButton extends Component {\n onToggle = (e) => {\n const { style, onToggle } = this.props;\n e.preventDefault();\n onToggle(style);\n };\n\n onToggleNoEvent = () => {\n const { style, onToggle } = this.props;\n onToggle(style);\n };\n\n render() {\n const { i18n, active, label, title, hotKey } = this.props;\n\n const classNames = cx('editor-stylebutton', { active });\n\n return (\n <div\n className={classNames}\n onMouseDown={this.onToggle}\n title={i18n(title) + hotKey}\n tabIndex={0}\n onKeyPress={(event) => {\n if (getKey(event) === Key.ENTER) {\n this.onToggleNoEvent();\n }\n }}\n >\n {label}\n </div>\n );\n }\n}\n\nexport default withI18n(StyleButton);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst BlockTypeButtonControls = (props) => {\n const { editorState, blockTypes, onToggle } = props;\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n return (\n <div className=\"controls-group block-editor-controls\">\n {blockTypes.map((type, i) => (\n <StyleButton\n key={i}\n active={type.style === blockTypeStyle}\n label={type.label}\n onToggle={onToggle}\n style={type.style}\n title={type.tooltip}\n />\n ))}\n </div>\n );\n};\n\nexport default BlockTypeButtonControls;\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { EditorState } from 'draft-js';\nimport PropTypes from 'prop-types';\nimport { TextField } from '@entur/form';\nimport { UnlinkIcon, LinkIcon, CheckIcon, CloseIcon } from '@entur/icons';\nimport { Unbutton } from '@entur-partner/common';\nimport { SecondarySquareButton } from '@entur/button';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass BlockTypeLinkControls extends Component {\n state = {\n urlValue: '',\n showUrlInput: false,\n hasLink: false,\n };\n\n onUrlChange = (e) => {\n this.setState({ urlValue: e.target.value });\n };\n\n addLink = (e) => {\n e.preventDefault();\n const { editorState } = this.props;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n const currentContent = editorState.getCurrentContent();\n const startKey = selection.getStartKey();\n const startOffset = selection.getStartOffset();\n const blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n const linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n let url = '';\n if (linkKey) {\n const linkInstance = currentContent.getEntity(linkKey);\n url = linkInstance.getData().url;\n }\n\n this.setState({\n showUrlInput: true,\n urlValue: url,\n hasLink: !!url,\n });\n }\n };\n\n confirmLink = (e) => {\n e.preventDefault();\n const { urlValue } = this.state;\n const { editorState, onToggle } = this.props;\n const contentState = editorState.getCurrentContent();\n const contentStateWithEntity = contentState.createEntity(\n 'LINK',\n 'MUTABLE',\n { url: urlValue }\n );\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n const newEditorState = EditorState.set(editorState, {\n currentContent: contentStateWithEntity,\n });\n onToggle(newEditorState, entityKey);\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n cancelLink = (e) => {\n e.preventDefault();\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n onLinkInputKeyDown = (e) => {\n if (getKey(e) === Key.ENTER) {\n this.confirmLink(e);\n }\n };\n\n removeLink = (e) => {\n e.preventDefault();\n const { editorState, onToggle } = this.props;\n const { hasLink } = this.state;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed() && hasLink) {\n onToggle(editorState, null);\n this.setState({\n showUrlInput: false,\n });\n }\n };\n\n render() {\n const { i18n } = this.props;\n const { showUrlInput, hasLink } = this.state;\n return (\n <div className=\"controls-group block-editor-controls link-controls\">\n <div\n className=\"editor-stylebutton\"\n title={i18n('styles.link')}\n onClick={this.addLink}\n tabIndex={0}\n >\n <LinkIcon />\n </div>\n\n {showUrlInput && (\n <div className=\"url-input-container\">\n <span className=\"exit-button\" onMouseDown={this.cancelLink}>\n <CloseIcon />\n </span>\n <div className=\"link-label\">{i18n('common.from')}</div>\n <div className=\"url-input-form\">\n <TextField\n style={{ width: 250, margin: 5 }}\n onChange={this.onUrlChange}\n value={this.state.urlValue}\n onKeyDown={this.onLinkInputKeyDown}\n placeholder=\"https://example.com\"\n />\n <SecondarySquareButton onMouseDown={this.confirmLink}>\n <CheckIcon width={15} height={15} />\n </SecondarySquareButton>\n </div>\n {hasLink && (\n <div className=\"remove-link\">\n <Unbutton\n onClick={this.removeLink}\n title={i18n('styles.unlink')}\n >\n <UnlinkIcon />\n {i18n('styles.unlink')}\n </Unbutton>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\nBlockTypeLinkControls.propTypes = {\n editorState: PropTypes.object,\n onToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst InlineStyleControls = (props) => {\n const { editorState, inlineStyles } = props;\n\n const currentStyle = editorState.getCurrentInlineStyle();\n\n return (\n <div className=\"controls-group inline-editor-controls\">\n {inlineStyles.map((type, i) => (\n <StyleButton\n key={i}\n active={currentStyle.has(type.style)}\n label={type.label}\n onToggle={props.onToggle}\n style={type.style}\n title={type.tooltip}\n hotKey={type.hotKey}\n />\n ))}\n </div>\n );\n};\n\nexport default InlineStyleControls;\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { MenuItem, Popover, Menu } from '@entur-partner/legacy';\nimport { DownArrowIcon } from '@entur/icons';\n\nimport { withI18n } from '../../withI18n';\n\nclass TagControls extends Component {\n tagControlRef = createRef();\n state = { isOpen: false };\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n if (\n this.tagControlRef &&\n this.tagControlRef.current &&\n !this.tagControlRef.current.contains(e.target)\n ) {\n this.setState({ isOpen: false });\n }\n };\n\n handleTagClick = (tag, delimiter) => {\n const { editorState, onInsertTag } = this.props;\n const delimiterStart = delimiter[0];\n const delimiterEnd = delimiter[1];\n const fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n onInsertTag(editorState, fullTag);\n };\n\n render() {\n const { i18n, tags } = this.props;\n const { isOpen } = this.state;\n const menuItems = tags.map((tag, i) => {\n const delimiter = tag.delimiter || '{}';\n return (\n <MenuItem\n key={i}\n className=\"tag-control\"\n id={'tag-control-' + tag.tag}\n onClick={() => this.handleTagClick(tag.tag, delimiter)}\n >\n {tag.icon}\n <span className=\"tag-control-text\">{tag.label}</span>\n </MenuItem>\n );\n });\n\n return (\n <div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n <div\n className=\"tag-control-header\"\n onClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n >\n {i18n('common.insert')}\n <DownArrowIcon className=\"tag-control-chevron\" inline />\n </div>\n <Popover open={isOpen} className=\"tag-control-content\">\n <Menu className=\"action-menu\">{menuItems}</Menu>\n </Popover>\n </div>\n );\n }\n}\n\nTagControls.propTypes = {\n editorState: PropTypes.object,\n tags: PropTypes.arrayOf(PropTypes.object).isRequired,\n onInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from 'react';\n\nexport const HtmlLink = ({ url, children }) => {\n return <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n const { url } = props.contentState.getEntity(props.entityKey).getData();\n return <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n contentBlock.findEntityRanges((character) => {\n const entityKey = character.getEntity();\n return (\n entityKey !== null &&\n contentState.getEntity(entityKey).getType() === 'LINK'\n );\n }, callback);\n}\n\nexport default Link;\n","import React from 'react';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n BulletListIcon,\n NumberListIcon,\n} from '@entur/icons';\nimport { CompositeDecorator } from 'draft-js';\n\nimport Link, { findLinkEntities } from './Link';\n\nexport const EditorConfigTypes = Object.freeze({\n FONT_LIST: {\n UNSTYLED: 'unstyled',\n HEADER_ONE: 'header-one',\n HEADER_TWO: 'header-two',\n HEADER_THREE: 'header-three',\n HEADER_FOUR: 'header-four',\n HEADER_FIVE: 'header-five',\n HEADER_SIX: 'header-six',\n },\n BLOCK_TYPES: {\n UNORDERED_LIST: 'unordered-list',\n ORDERED_LIST: 'ordered-list',\n },\n INLINE_STYLES: {\n BOLD: 'bold',\n ITALIC: 'italic',\n UNDERLINE: 'underline',\n },\n});\n\nexport const FontList = Object.freeze({\n unstyled: { label: 'styles.p', style: 'unstyled' },\n 'header-one': { label: 'styles.h1', style: 'header-one' },\n 'header-two': { label: 'styles.h2', style: 'header-two' },\n 'header-three': { label: 'styles.h3', style: 'header-three' },\n 'header-four': { label: 'styles.h4', style: 'header-four' },\n 'header-five': { label: 'styles.h5', style: 'header-five' },\n 'header-six': { label: 'styles.h6', style: 'header-six' },\n});\n\nexport const BlockTypeList = Object.freeze({\n 'unordered-list': {\n label: <BulletListIcon />,\n style: 'unordered-list-item',\n tooltip: 'styles.unordered_list_item',\n },\n 'ordered-list': {\n label: <NumberListIcon />,\n style: 'ordered-list-item',\n tooltip: 'styles.ordered_list_item',\n },\n});\n\nexport const InlineStylesList = Object.freeze({\n bold: {\n label: <BoldIcon />,\n style: 'BOLD',\n tooltip: 'styles.bold',\n hotKey: '(Ctrl+B)',\n },\n italic: {\n label: <ItalicIcon />,\n style: 'ITALIC',\n tooltip: 'styles.italic',\n hotKey: '(Ctrl+I)',\n },\n underline: {\n label: <UnderlineIcon />,\n style: 'UNDERLINE',\n tooltip: 'styles.underline',\n hotKey: '(Ctrl+U)',\n },\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n fontList: [\n { type: 'unstyled', label: 'styles.p', style: 'unstyled' },\n { type: 'header-two', label: 'styles.h1', style: 'header-two' },\n ],\n blockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: [\n EditorConfigTypes.INLINE_STYLES.BOLD,\n EditorConfigTypes.INLINE_STYLES.ITALIC,\n ],\n});\nexport const decorator = new CompositeDecorator([\n {\n strategy: findLinkEntities,\n component: Link,\n },\n]);\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport {\n Editor,\n EditorState,\n Modifier,\n RichUtils,\n getDefaultKeyBinding,\n} from 'draft-js';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport BlockTypeSelectControls from './Controls/BlockTypeSelectControls';\nimport BlockTypeButtonControls from './Controls/BlockTypeButtonControls';\nimport BlockTypeLinkControls from './Controls/BlockTypeLinkControls';\nimport InlineStyleControls from './Controls/InlineStyleControls';\nimport TagControls from './Controls/TagControls';\nimport {\n BlockTypeList,\n EditorConfigTypes,\n FontList,\n InlineStylesList,\n decorator,\n} from './constants';\n\nclass RichTextEditor extends Component {\n static decorator = decorator;\n\n wrapperRef = createRef();\n editor = createRef();\n\n focusEditor() {\n this.editor.current && this.editor.current.focus();\n }\n\n handleKeyCommand = (command, editorState) => {\n const newState = RichUtils.handleKeyCommand(editorState, command);\n if (newState) {\n this.props.onChange(newState);\n return true;\n }\n return false;\n };\n\n keyBindingFn = (evt) => {\n switch (evt.keyCode) {\n case 9:\n return this.onTab(evt);\n default:\n return getDefaultKeyBinding(evt);\n }\n };\n\n onTab = (evt) => {\n evt.stopPropagation();\n const { maxTabDepth, editorState, onChange } = this.props;\n onChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n };\n\n toggleButtonBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleSelectBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleInlineStyle = (inlineStyle) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n };\n\n toggleLink = (newEditorState, entityKey) => {\n this.props.onChange(\n RichUtils.toggleLink(\n newEditorState,\n newEditorState.getSelection(),\n entityKey\n )\n );\n };\n\n insertText = (editorState, text) => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n text\n );\n this.props.onChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n () => this.focusEditor()\n );\n };\n\n getFontListConfigForPanelType = (panelType) => {\n const controlConfig = this.getControlConfigBySet(\n this.props.controlConfigSet\n );\n return controlConfig[panelType];\n };\n\n getControlConfigBySet = (config) => {\n const fontList = ((config && config.fontList) || Object.keys(FontList))\n .filter((f) => (typeof f === 'object' ? FontList[f.type] : FontList[f]))\n .map((f) => (f.label && f.style ? f : FontList[f]));\n const blockTypes = (\n (config && config.blockTypes) ||\n Object.keys(BlockTypeList)\n )\n .filter((f) =>\n typeof f === 'object' ? BlockTypeList[f.type] : BlockTypeList[f]\n )\n .map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n const inlineStyles = (\n (config && config.inlineStyles) ||\n Object.keys(InlineStylesList)\n )\n .filter((f) =>\n typeof f === 'object' ? InlineStylesList[f.type] : InlineStylesList[f]\n )\n .map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n return {\n fontList,\n blockTypes,\n inlineStyles,\n };\n };\n\n render() {\n const {\n className,\n showFontMenu,\n showInlineStyleMenu,\n showTextFormatMenu,\n showLinkMenu,\n label,\n tags,\n editorState,\n onChange,\n handleBeforeInput,\n } = this.props;\n\n const classNames = cx('editor-root', className);\n\n return (\n <div ref={this.wrapperRef}>\n {label && <Label>{label}</Label>}\n\n <div className={classNames}>\n <div className=\"controls-wrapper\">\n {showFontMenu && (\n <BlockTypeSelectControls\n editorState={editorState}\n onToggle={this.toggleSelectBlockType}\n blockTypes={this.getFontListConfigForPanelType('fontList')}\n />\n )}\n {showInlineStyleMenu && (\n <InlineStyleControls\n editorState={editorState}\n onToggle={this.toggleInlineStyle}\n inlineStyles={this.getFontListConfigForPanelType(\n 'inlineStyles'\n )}\n />\n )}\n {showTextFormatMenu && (\n <BlockTypeButtonControls\n editorState={editorState}\n onToggle={this.toggleButtonBlockType}\n blockTypes={this.getFontListConfigForPanelType('blockTypes')}\n />\n )}\n {showLinkMenu && (\n <BlockTypeLinkControls\n editorState={editorState}\n onToggle={this.toggleLink}\n />\n )}\n {tags && tags.length > 0 && (\n <TagControls\n editorState={editorState}\n tags={tags}\n onInsertTag={this.insertText}\n />\n )}\n </div>\n\n <div className=\"editor-wrapper\">\n <Editor\n ref={this.editor}\n editorState={editorState}\n handleKeyCommand={this.handleKeyCommand}\n onChange={onChange}\n handleBeforeInput={handleBeforeInput}\n keyBindingFn={this.keyBindingFn}\n spellCheck\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styleShape = (configList) =>\n PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf([...Object.values(configList)]),\n label: PropTypes.string,\n style: PropTypes.string,\n tooltip: PropTypes.string,\n hotKey: PropTypes.string,\n })\n ),\n ]);\n\nRichTextEditor.propTypes = {\n editorState: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n maxTabDepth: PropTypes.number,\n showFontMenu: PropTypes.bool,\n showInlineStyleMenu: PropTypes.bool,\n showTextFormatMenu: PropTypes.bool,\n showLinkMenu: PropTypes.bool,\n label: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.object),\n controlConfigSet: PropTypes.shape({\n fontList: styleShape(EditorConfigTypes.FONT_LIST),\n blockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n }),\n};\nRichTextEditor.defaultProps = {\n maxTabDepth: 4,\n showFontMenu: true,\n showInlineStyleMenu: true,\n showTextFormatMenu: true,\n showLinkMenu: true,\n label: '',\n};\n\nexport default RichTextEditor;\n","import { markdownToDraft, draftToMarkdown } from 'markdown-draft-js';\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\nimport showdown from 'showdown';\n\nimport { decorator } from './constants';\n\nexport const editorStateToMarkdown = (editorState) => {\n const rawState = convertToRaw(editorState.getCurrentContent());\n return draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n if (!markdown) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = markdownToDraft(markdown, { preserveNewlines: true });\n const contentState = convertFromRaw(rawState);\n return EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n underline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n return converter.makeHtml(markdown);\n};\n","import React, { useState } from 'react';\nimport { EditorState } from 'draft-js';\nimport { ExpandablePanel } from '@entur/expand';\nimport {\n LanguageKey,\n LanguageOption,\n MultiLanguageValues,\n Stack,\n} from '@entur-partner/common';\nimport { FeedbackText, VariantType } from '@entur/form';\n\nimport {\n editorStateToMarkdown,\n markdownToEditorState,\n} from './RichTextEditor/markdownConvertion';\nimport RichTextEditor from './RichTextEditor';\nimport { MinifiedConfigTypes } from './RichTextEditor/constants';\n\ntype MultiLanguageInputProps = {\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n tags?: {\n tag: string;\n delimiter: string;\n label: string;\n }[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n language: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n language: { value: langKey, label, required },\n values,\n onChange,\n variant,\n feedback,\n tags,\n}: RichTextEditorForLanguageProps) => {\n const [editorState, setEditorState] = useState<EditorState>(\n markdownToEditorState(values[langKey])\n );\n\n const handleOnChange = (changedState: EditorState) => {\n const newValues = { ...values };\n const content = editorStateToMarkdown(changedState);\n if (values[langKey] && content === '\\n') {\n delete newValues[langKey];\n } else {\n newValues[langKey] = content;\n }\n\n setEditorState(changedState);\n onChange(newValues);\n };\n\n const feedbackText = feedback && feedback(langKey);\n\n return (\n <>\n <RichTextEditor\n label={required ? label + '*' : label}\n editorState={editorState}\n onChange={(changedState: EditorState) => handleOnChange(changedState)}\n controlConfigSet={MinifiedConfigTypes}\n tags={tags}\n />\n {variant && feedbackText?.length! > 0 && (\n <FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n )}\n </>\n );\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n name: string;\n title: string;\n languages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n name,\n title,\n languages,\n ...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map((lang) => (\n <div\n key={name + lang.value}\n data-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n >\n <RichTextEditorForLanguage language={lang} {...rest} />\n </div>\n ))}\n </Stack>\n </ExpandablePanel>\n);\n","import React from 'react';\nimport { EditorState } from 'draft-js';\nimport { convertFromHTML, convertToHTML } from 'draft-convert';\n\nimport { HtmlLink } from './Link';\nimport { decorator } from './constants';\n\n/* eslint-disable react/display-name */\n\nexport const entityToHtml = {\n entityToHTML: (entity, originalText) => {\n if (entity.type === 'LINK') {\n return <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n }\n return originalText;\n },\n};\n\nexport const htmlToEntity = {\n htmlToEntity: (nodeName, node, createEntity) => {\n if (nodeName === 'a') {\n return createEntity('LINK', 'MUTABLE', { url: node.href });\n }\n },\n};\n\n/* eslint-disable react/display-name */\n\nexport const htmlToEditorState = (html) => {\n if (!html) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = convertFromHTML(htmlToEntity)(html);\n return EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n return convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["simpleFormat","formatMessage","name","value","id","withI18n","createWithI18n","BlockTypeDropdown","handleOnClick","selectedOption","onChange","props","toItem","option","style","label","renderFormattedLabel","formattedLabelText","i18n","React","render","options","selected","Dropdown","map","selectedItem","Component","BlockTypeControls","editorState","blockTypes","onToggle","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","find","Key","Object","freeze","ENTER","getKey","event","keyCode","which","StyleButton","e","preventDefault","onToggleNoEvent","active","title","hotKey","classNames","cx","BlockTypeButtonControls","type","i","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","addLink","isCollapsed","currentContent","startKey","startOffset","getStartOffset","blockWithLinkAtBeginning","linkKey","getEntityAt","url","linkInstance","getEntity","getData","confirmLink","contentState","contentStateWithEntity","createEntity","entityKey","getLastCreatedEntityKey","newEditorState","EditorState","set","cancelLink","onLinkInputKeyDown","removeLink","LinkIcon","CloseIcon","TextField","width","margin","SecondarySquareButton","CheckIcon","Unbutton","UnlinkIcon","propTypes","PropTypes","object","func","InlineStyleControls","inlineStyles","currentStyle","getCurrentInlineStyle","has","TagControls","tagControlRef","createRef","isOpen","handleClickOutside","current","contains","handleTagClick","tag","delimiter","onInsertTag","delimiterStart","delimiterEnd","fullTag","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","tags","menuItems","MenuItem","icon","DownArrowIcon","Popover","Menu","arrayOf","isRequired","HtmlLink","children","Link","findLinkEntities","contentBlock","callback","findEntityRanges","character","EditorConfigTypes","FONT_LIST","UNSTYLED","HEADER_ONE","HEADER_TWO","HEADER_THREE","HEADER_FOUR","HEADER_FIVE","HEADER_SIX","BLOCK_TYPES","UNORDERED_LIST","ORDERED_LIST","INLINE_STYLES","BOLD","ITALIC","UNDERLINE","FontList","unstyled","BlockTypeList","BulletListIcon","NumberListIcon","InlineStylesList","bold","BoldIcon","italic","ItalicIcon","underline","UnderlineIcon","MinifiedConfigTypes","fontList","values","decorator","CompositeDecorator","strategy","component","RichTextEditor","wrapperRef","editor","handleKeyCommand","command","newState","RichUtils","keyBindingFn","evt","onTab","getDefaultKeyBinding","stopPropagation","maxTabDepth","toggleButtonBlockType","blockType","toggleBlockType","toggleSelectBlockType","toggleInlineStyle","inlineStyle","toggleLink","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","controlConfig","getControlConfigBySet","controlConfigSet","config","keys","filter","f","focus","className","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","Label","BlockTypeSelectControls","length","Editor","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","markdownToHtml","makeHtml","RichTextEditorForLanguage","language","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","createElement","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","languages","rest","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","key","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","href","htmlToEditorState","html","convertFromHTML","editorStateToHtml","convertToHTML"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.cjs.production.min.js","sources":["../src/withI18n.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.js","../src/events.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/Controls/InlineStyleControls.js","../src/RichTextEditor/Controls/TagControls.js","../src/RichTextEditor/Link/index.js","../src/RichTextEditor/constants.js","../src/RichTextEditor/index.js","../src/RichTextEditor/markdownConvertion.js","../src/ExpandableMultiLanguageRichTextEditor.tsx","../src/RichTextEditor/htmlConvertion.js"],"sourcesContent":["import { createWithI18n } from '@entur-partner/legacy';\n\nconst simpleFormat = (formatMessage) => (name, value) =>\n formatMessage({ id: name }, value);\n\nexport const withI18n = createWithI18n(simpleFormat);\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\nimport { withI18n } from '../../withI18n';\n\nclass BlockTypeDropdown extends Component {\n handleOnClick = (selectedOption) => {\n const { onChange } = this.props;\n onChange(selectedOption);\n };\n\n toItem(option) {\n return {\n value: option.style,\n label: this.renderFormattedLabel(option.label),\n };\n }\n\n renderFormattedLabel(label) {\n const formattedLabelText = this.props.i18n(label);\n switch (label) {\n case 'styles.p':\n return <div className=\"default-p\">{formattedLabelText}</div>;\n case 'styles.h1':\n return <div className=\"default-h1\">{formattedLabelText}</div>;\n case 'styles.h2':\n return <div className=\"default-h2\">{formattedLabelText}</div>;\n case 'styles.h3':\n return <div className=\"default-h3\">{formattedLabelText}</div>;\n case 'styles.h4':\n return <div className=\"default-h4\">{formattedLabelText}</div>;\n case 'styles.h5':\n return <div className=\"default-h5\">{formattedLabelText}</div>;\n case 'styles.h6':\n return <div className=\"default-h6\">{formattedLabelText}</div>;\n default:\n return <p>{formattedLabelText}</p>;\n }\n }\n\n render() {\n const { options, selected, i18n } = this.props;\n\n return (\n <Dropdown\n className=\"block-type-dropdown\"\n items={options.map((option) => this.toItem(option))}\n initialSelectedItem={this.toItem(selected)}\n label={i18n('styles.style')}\n onChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n />\n );\n }\n}\n\nexport default withI18n(BlockTypeDropdown);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport BlockTypeDropdown from '../BlockTypeDropdown';\n\nconst BlockTypeControls = ({ editorState, blockTypes, onToggle }) => {\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n const selectedOption =\n blockTypes.find((option) => option.style === blockTypeStyle) ||\n blockTypes[0];\n\n return (\n <BlockTypeDropdown\n options={blockTypes}\n selected={selectedOption}\n onChange={onToggle}\n />\n );\n};\n\nexport default BlockTypeControls;\n","export const Key = Object.freeze({\n ENTER: 13,\n});\n\nexport function getKey(event) {\n return event.keyCode || event.which;\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass StyleButton extends Component {\n onToggle = (e) => {\n const { style, onToggle } = this.props;\n e.preventDefault();\n onToggle(style);\n };\n\n onToggleNoEvent = () => {\n const { style, onToggle } = this.props;\n onToggle(style);\n };\n\n render() {\n const { i18n, active, label, title, hotKey } = this.props;\n\n const classNames = cx('editor-stylebutton', { active });\n\n return (\n <div\n className={classNames}\n onMouseDown={this.onToggle}\n title={i18n(title) + hotKey}\n tabIndex={0}\n onKeyPress={(event) => {\n if (getKey(event) === Key.ENTER) {\n this.onToggleNoEvent();\n }\n }}\n >\n {label}\n </div>\n );\n }\n}\n\nexport default withI18n(StyleButton);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst BlockTypeButtonControls = (props) => {\n const { editorState, blockTypes, onToggle } = props;\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n return (\n <div className=\"controls-group block-editor-controls\">\n {blockTypes.map((type, i) => (\n <StyleButton\n key={i}\n active={type.style === blockTypeStyle}\n label={type.label}\n onToggle={onToggle}\n style={type.style}\n title={type.tooltip}\n />\n ))}\n </div>\n );\n};\n\nexport default BlockTypeButtonControls;\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { EditorState } from 'draft-js';\nimport PropTypes from 'prop-types';\nimport { TextField } from '@entur/form';\nimport { UnlinkIcon, LinkIcon, CheckIcon, CloseIcon } from '@entur/icons';\nimport { Unbutton } from '@entur-partner/common';\nimport { SecondarySquareButton } from '@entur/button';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass BlockTypeLinkControls extends Component {\n state = {\n urlValue: '',\n showUrlInput: false,\n hasLink: false,\n };\n\n onUrlChange = (e) => {\n this.setState({ urlValue: e.target.value });\n };\n\n addLink = (e) => {\n e.preventDefault();\n const { editorState } = this.props;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n const currentContent = editorState.getCurrentContent();\n const startKey = selection.getStartKey();\n const startOffset = selection.getStartOffset();\n const blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n const linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n let url = '';\n if (linkKey) {\n const linkInstance = currentContent.getEntity(linkKey);\n url = linkInstance.getData().url;\n }\n\n this.setState({\n showUrlInput: true,\n urlValue: url,\n hasLink: !!url,\n });\n }\n };\n\n confirmLink = (e) => {\n e.preventDefault();\n const { urlValue } = this.state;\n const { editorState, onToggle } = this.props;\n const contentState = editorState.getCurrentContent();\n const contentStateWithEntity = contentState.createEntity(\n 'LINK',\n 'MUTABLE',\n { url: urlValue }\n );\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n const newEditorState = EditorState.set(editorState, {\n currentContent: contentStateWithEntity,\n });\n onToggle(newEditorState, entityKey);\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n cancelLink = (e) => {\n e.preventDefault();\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n onLinkInputKeyDown = (e) => {\n if (getKey(e) === Key.ENTER) {\n this.confirmLink(e);\n }\n };\n\n removeLink = (e) => {\n e.preventDefault();\n const { editorState, onToggle } = this.props;\n const { hasLink } = this.state;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed() && hasLink) {\n onToggle(editorState, null);\n this.setState({\n showUrlInput: false,\n });\n }\n };\n\n render() {\n const { i18n } = this.props;\n const { showUrlInput, hasLink } = this.state;\n return (\n <div className=\"controls-group block-editor-controls link-controls\">\n <div\n className=\"editor-stylebutton\"\n title={i18n('styles.link')}\n onClick={this.addLink}\n tabIndex={0}\n >\n <LinkIcon />\n </div>\n\n {showUrlInput && (\n <div className=\"url-input-container\">\n <span className=\"exit-button\" onMouseDown={this.cancelLink}>\n <CloseIcon />\n </span>\n <div className=\"link-label\">{i18n('common.from')}</div>\n <div className=\"url-input-form\">\n <TextField\n style={{ width: 250, margin: 5 }}\n onChange={this.onUrlChange}\n value={this.state.urlValue}\n onKeyDown={this.onLinkInputKeyDown}\n placeholder=\"https://example.com\"\n />\n <SecondarySquareButton onMouseDown={this.confirmLink}>\n <CheckIcon width={15} height={15} />\n </SecondarySquareButton>\n </div>\n {hasLink && (\n <div className=\"remove-link\">\n <Unbutton\n onClick={this.removeLink}\n title={i18n('styles.unlink')}\n >\n <UnlinkIcon />\n {i18n('styles.unlink')}\n </Unbutton>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\nBlockTypeLinkControls.propTypes = {\n editorState: PropTypes.object,\n onToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst InlineStyleControls = (props) => {\n const { editorState, inlineStyles } = props;\n\n const currentStyle = editorState.getCurrentInlineStyle();\n\n return (\n <div className=\"controls-group inline-editor-controls\">\n {inlineStyles.map((type, i) => (\n <StyleButton\n key={i}\n active={currentStyle.has(type.style)}\n label={type.label}\n onToggle={props.onToggle}\n style={type.style}\n title={type.tooltip}\n hotKey={type.hotKey}\n />\n ))}\n </div>\n );\n};\n\nexport default InlineStyleControls;\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { MenuItem, Popover, Menu } from '@entur-partner/legacy';\nimport { DownArrowIcon } from '@entur/icons';\n\nimport { withI18n } from '../../withI18n';\n\nclass TagControls extends Component {\n tagControlRef = createRef();\n state = { isOpen: false };\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n if (\n this.tagControlRef &&\n this.tagControlRef.current &&\n !this.tagControlRef.current.contains(e.target)\n ) {\n this.setState({ isOpen: false });\n }\n };\n\n handleTagClick = (tag, delimiter) => {\n const { editorState, onInsertTag } = this.props;\n const delimiterStart = delimiter[0];\n const delimiterEnd = delimiter[1];\n const fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n onInsertTag(editorState, fullTag);\n };\n\n render() {\n const { i18n, tags } = this.props;\n const { isOpen } = this.state;\n const menuItems = tags.map((tag, i) => {\n const delimiter = tag.delimiter || '{}';\n return (\n <MenuItem\n key={i}\n className=\"tag-control\"\n id={'tag-control-' + tag.tag}\n onClick={() => this.handleTagClick(tag.tag, delimiter)}\n >\n {tag.icon}\n <span className=\"tag-control-text\">{tag.label}</span>\n </MenuItem>\n );\n });\n\n return (\n <div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n <div\n className=\"tag-control-header\"\n onClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n >\n {i18n('common.insert')}\n <DownArrowIcon className=\"tag-control-chevron\" inline />\n </div>\n <Popover open={isOpen} className=\"tag-control-content\">\n <Menu className=\"action-menu\">{menuItems}</Menu>\n </Popover>\n </div>\n );\n }\n}\n\nTagControls.propTypes = {\n editorState: PropTypes.object,\n tags: PropTypes.arrayOf(PropTypes.object).isRequired,\n onInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from 'react';\n\nexport const HtmlLink = ({ url, children }) => {\n return <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n const { url } = props.contentState.getEntity(props.entityKey).getData();\n return <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n contentBlock.findEntityRanges((character) => {\n const entityKey = character.getEntity();\n return (\n entityKey !== null &&\n contentState.getEntity(entityKey).getType() === 'LINK'\n );\n }, callback);\n}\n\nexport default Link;\n","import React from 'react';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n BulletListIcon,\n NumberListIcon,\n} from '@entur/icons';\nimport { CompositeDecorator } from 'draft-js';\n\nimport Link, { findLinkEntities } from './Link';\n\nexport const EditorConfigTypes = Object.freeze({\n FONT_LIST: {\n UNSTYLED: 'unstyled',\n HEADER_ONE: 'header-one',\n HEADER_TWO: 'header-two',\n HEADER_THREE: 'header-three',\n HEADER_FOUR: 'header-four',\n HEADER_FIVE: 'header-five',\n HEADER_SIX: 'header-six',\n },\n BLOCK_TYPES: {\n UNORDERED_LIST: 'unordered-list',\n ORDERED_LIST: 'ordered-list',\n },\n INLINE_STYLES: {\n BOLD: 'bold',\n ITALIC: 'italic',\n UNDERLINE: 'underline',\n },\n});\n\nexport const FontList = Object.freeze({\n unstyled: { label: 'styles.p', style: 'unstyled' },\n 'header-one': { label: 'styles.h1', style: 'header-one' },\n 'header-two': { label: 'styles.h2', style: 'header-two' },\n 'header-three': { label: 'styles.h3', style: 'header-three' },\n 'header-four': { label: 'styles.h4', style: 'header-four' },\n 'header-five': { label: 'styles.h5', style: 'header-five' },\n 'header-six': { label: 'styles.h6', style: 'header-six' },\n});\n\nexport const BlockTypeList = Object.freeze({\n 'unordered-list': {\n label: <BulletListIcon />,\n style: 'unordered-list-item',\n tooltip: 'styles.unordered_list_item',\n },\n 'ordered-list': {\n label: <NumberListIcon />,\n style: 'ordered-list-item',\n tooltip: 'styles.ordered_list_item',\n },\n});\n\nexport const InlineStylesList = Object.freeze({\n bold: {\n label: <BoldIcon />,\n style: 'BOLD',\n tooltip: 'styles.bold',\n hotKey: '(Ctrl+B)',\n },\n italic: {\n label: <ItalicIcon />,\n style: 'ITALIC',\n tooltip: 'styles.italic',\n hotKey: '(Ctrl+I)',\n },\n underline: {\n label: <UnderlineIcon />,\n style: 'UNDERLINE',\n tooltip: 'styles.underline',\n hotKey: '(Ctrl+U)',\n },\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n fontList: [\n { type: 'unstyled', label: 'styles.p', style: 'unstyled' },\n { type: 'header-two', label: 'styles.h1', style: 'header-two' },\n ],\n blockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: [\n EditorConfigTypes.INLINE_STYLES.BOLD,\n EditorConfigTypes.INLINE_STYLES.ITALIC,\n ],\n});\nexport const decorator = new CompositeDecorator([\n {\n strategy: findLinkEntities,\n component: Link,\n },\n]);\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport {\n Editor,\n EditorState,\n Modifier,\n RichUtils,\n getDefaultKeyBinding,\n} from 'draft-js';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport BlockTypeSelectControls from './Controls/BlockTypeSelectControls';\nimport BlockTypeButtonControls from './Controls/BlockTypeButtonControls';\nimport BlockTypeLinkControls from './Controls/BlockTypeLinkControls';\nimport InlineStyleControls from './Controls/InlineStyleControls';\nimport TagControls from './Controls/TagControls';\nimport {\n BlockTypeList,\n EditorConfigTypes,\n FontList,\n InlineStylesList,\n decorator,\n} from './constants';\n\nclass RichTextEditor extends Component {\n static decorator = decorator;\n\n wrapperRef = createRef();\n editor = createRef();\n\n focusEditor() {\n this.editor.current && this.editor.current.focus();\n }\n\n handleKeyCommand = (command, editorState) => {\n const newState = RichUtils.handleKeyCommand(editorState, command);\n if (newState) {\n this.props.onChange(newState);\n return true;\n }\n return false;\n };\n\n keyBindingFn = (evt) => {\n switch (evt.keyCode) {\n case 9:\n return this.onTab(evt);\n default:\n return getDefaultKeyBinding(evt);\n }\n };\n\n onTab = (evt) => {\n evt.stopPropagation();\n const { maxTabDepth, editorState, onChange } = this.props;\n onChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n };\n\n toggleButtonBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleSelectBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleInlineStyle = (inlineStyle) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n };\n\n toggleLink = (newEditorState, entityKey) => {\n this.props.onChange(\n RichUtils.toggleLink(\n newEditorState,\n newEditorState.getSelection(),\n entityKey\n )\n );\n };\n\n insertText = (editorState, text) => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n text\n );\n this.props.onChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n () => this.focusEditor()\n );\n };\n\n getFontListConfigForPanelType = (panelType) => {\n const controlConfig = this.getControlConfigBySet(\n this.props.controlConfigSet\n );\n return controlConfig[panelType];\n };\n\n getControlConfigBySet = (config) => {\n const fontList = ((config && config.fontList) || Object.keys(FontList))\n .filter((f) => (typeof f === 'object' ? FontList[f.type] : FontList[f]))\n .map((f) => (f.label && f.style ? f : FontList[f]));\n const blockTypes = (\n (config && config.blockTypes) ||\n Object.keys(BlockTypeList)\n )\n .filter((f) =>\n typeof f === 'object' ? BlockTypeList[f.type] : BlockTypeList[f]\n )\n .map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n const inlineStyles = (\n (config && config.inlineStyles) ||\n Object.keys(InlineStylesList)\n )\n .filter((f) =>\n typeof f === 'object' ? InlineStylesList[f.type] : InlineStylesList[f]\n )\n .map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n return {\n fontList,\n blockTypes,\n inlineStyles,\n };\n };\n\n render() {\n const {\n className,\n showFontMenu,\n showInlineStyleMenu,\n showTextFormatMenu,\n showLinkMenu,\n label,\n tags,\n editorState,\n onChange,\n handleBeforeInput,\n } = this.props;\n\n const classNames = cx('editor-root', className);\n\n return (\n <div ref={this.wrapperRef}>\n {label && <Label>{label}</Label>}\n\n <div className={classNames}>\n <div className=\"controls-wrapper\">\n {showFontMenu && (\n <BlockTypeSelectControls\n editorState={editorState}\n onToggle={this.toggleSelectBlockType}\n blockTypes={this.getFontListConfigForPanelType('fontList')}\n />\n )}\n {showInlineStyleMenu && (\n <InlineStyleControls\n editorState={editorState}\n onToggle={this.toggleInlineStyle}\n inlineStyles={this.getFontListConfigForPanelType(\n 'inlineStyles'\n )}\n />\n )}\n {showTextFormatMenu && (\n <BlockTypeButtonControls\n editorState={editorState}\n onToggle={this.toggleButtonBlockType}\n blockTypes={this.getFontListConfigForPanelType('blockTypes')}\n />\n )}\n {showLinkMenu && (\n <BlockTypeLinkControls\n editorState={editorState}\n onToggle={this.toggleLink}\n />\n )}\n {tags && tags.length > 0 && (\n <TagControls\n editorState={editorState}\n tags={tags}\n onInsertTag={this.insertText}\n />\n )}\n </div>\n\n <div className=\"editor-wrapper\">\n <Editor\n ref={this.editor}\n editorState={editorState}\n handleKeyCommand={this.handleKeyCommand}\n onChange={onChange}\n handleBeforeInput={handleBeforeInput}\n keyBindingFn={this.keyBindingFn}\n spellCheck\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styleShape = (configList) =>\n PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf([...Object.values(configList)]),\n label: PropTypes.string,\n style: PropTypes.string,\n tooltip: PropTypes.string,\n hotKey: PropTypes.string,\n })\n ),\n ]);\n\nRichTextEditor.propTypes = {\n editorState: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n maxTabDepth: PropTypes.number,\n showFontMenu: PropTypes.bool,\n showInlineStyleMenu: PropTypes.bool,\n showTextFormatMenu: PropTypes.bool,\n showLinkMenu: PropTypes.bool,\n label: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.object),\n controlConfigSet: PropTypes.shape({\n fontList: styleShape(EditorConfigTypes.FONT_LIST),\n blockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n }),\n};\nRichTextEditor.defaultProps = {\n maxTabDepth: 4,\n showFontMenu: true,\n showInlineStyleMenu: true,\n showTextFormatMenu: true,\n showLinkMenu: true,\n label: '',\n};\n\nexport default RichTextEditor;\n","import { markdownToDraft, draftToMarkdown } from 'markdown-draft-js';\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\nimport showdown from 'showdown';\n\nimport { decorator } from './constants';\n\nexport const editorStateToMarkdown = (editorState) => {\n const rawState = convertToRaw(editorState.getCurrentContent());\n return draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n if (!markdown) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = markdownToDraft(markdown, { preserveNewlines: true });\n const contentState = convertFromRaw(rawState);\n return EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n underline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n return converter.makeHtml(markdown);\n};\n","import React, { useState } from 'react';\nimport { EditorState } from 'draft-js';\nimport { ExpandablePanel } from '@entur/expand';\nimport {\n LanguageKey,\n LanguageOption,\n MultiLanguageValues,\n Stack,\n} from '@entur-partner/common';\nimport { FeedbackText, VariantType } from '@entur/form';\n\nimport {\n editorStateToMarkdown,\n markdownToEditorState,\n} from './RichTextEditor/markdownConvertion';\nimport RichTextEditor from './RichTextEditor';\nimport { MinifiedConfigTypes } from './RichTextEditor/constants';\n\ntype MultiLanguageInputProps = {\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n tags?: {\n tag: string;\n delimiter: string;\n label: string;\n }[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n language: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n language: { value: langKey, label, required },\n values,\n onChange,\n variant,\n feedback,\n tags,\n}: RichTextEditorForLanguageProps) => {\n const [editorState, setEditorState] = useState<EditorState>(\n markdownToEditorState(values[langKey])\n );\n\n const handleOnChange = (changedState: EditorState) => {\n const newValues = { ...values };\n const content = editorStateToMarkdown(changedState);\n if (values[langKey] && content === '\\n') {\n delete newValues[langKey];\n } else {\n newValues[langKey] = content;\n }\n\n setEditorState(changedState);\n onChange(newValues);\n };\n\n const feedbackText = feedback && feedback(langKey);\n\n return (\n <>\n <RichTextEditor\n label={required ? label + '*' : label}\n editorState={editorState}\n onChange={(changedState: EditorState) => handleOnChange(changedState)}\n controlConfigSet={MinifiedConfigTypes}\n tags={tags}\n />\n {variant && feedbackText?.length! > 0 && (\n <FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n )}\n </>\n );\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n name: string;\n title: string;\n languages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n name,\n title,\n languages,\n ...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map((lang) => (\n <div\n key={name + lang.value}\n data-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n >\n <RichTextEditorForLanguage language={lang} {...rest} />\n </div>\n ))}\n </Stack>\n </ExpandablePanel>\n);\n","import React from 'react';\nimport { EditorState } from 'draft-js';\nimport { convertFromHTML, convertToHTML } from 'draft-convert';\n\nimport { HtmlLink } from './Link';\nimport { decorator } from './constants';\n\n/* eslint-disable react/display-name */\n\nexport const entityToHtml = {\n entityToHTML: (entity, originalText) => {\n if (entity.type === 'LINK') {\n return <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n }\n return originalText;\n },\n};\n\nexport const htmlToEntity = {\n htmlToEntity: (nodeName, node, createEntity) => {\n if (nodeName === 'a') {\n return createEntity('LINK', 'MUTABLE', { url: node.href });\n }\n },\n};\n\n/* eslint-disable react/display-name */\n\nexport const htmlToEditorState = (html) => {\n if (!html) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = convertFromHTML(htmlToEntity)(html);\n return EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n return convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["withI18n","createWithI18n","formatMessage","name","value","id","handleOnClick","selectedOption","onChange","_this","props","toItem","option","style","label","this","renderFormattedLabel","formattedLabelText","i18n","React","className","render","selected","Dropdown","items","options","map","_this2","initialSelectedItem","selectedItem","Component","BlockTypeControls","editorState","blockTypes","onToggle","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","find","BlockTypeDropdown","Key","Object","freeze","ENTER","getKey","event","keyCode","which","e","preventDefault","onToggleNoEvent","title","hotKey","classNames","cx","active","onMouseDown","tabIndex","onKeyPress","BlockTypeButtonControls","type","i","StyleButton","key","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","addLink","isCollapsed","currentContent","startKey","startOffset","getStartOffset","linkKey","getEntityAt","url","getEntity","getData","confirmLink","contentStateWithEntity","createEntity","entityKey","getLastCreatedEntityKey","EditorState","set","cancelLink","onLinkInputKeyDown","removeLink","onClick","LinkIcon","CloseIcon","TextField","width","margin","onKeyDown","placeholder","SecondarySquareButton","CheckIcon","height","Unbutton","UnlinkIcon","propTypes","PropTypes","object","func","InlineStyleControls","inlineStyles","currentStyle","getCurrentInlineStyle","has","TagControls","tagControlRef","createRef","isOpen","handleClickOutside","current","contains","handleTagClick","tag","delimiter","onInsertTag","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","menuItems","tags","MenuItem","icon","ref","DownArrowIcon","inline","Popover","open","Menu","arrayOf","isRequired","HtmlLink","href","children","EditorConfigTypes","FONT_LIST","UNSTYLED","HEADER_ONE","HEADER_TWO","HEADER_THREE","HEADER_FOUR","HEADER_FIVE","HEADER_SIX","BLOCK_TYPES","UNORDERED_LIST","ORDERED_LIST","INLINE_STYLES","BOLD","ITALIC","UNDERLINE","FontList","unstyled","BlockTypeList","BulletListIcon","NumberListIcon","InlineStylesList","bold","BoldIcon","italic","ItalicIcon","underline","UnderlineIcon","MinifiedConfigTypes","fontList","values","decorator","CompositeDecorator","strategy","contentBlock","callback","contentState","findEntityRanges","character","component","RichTextEditor","wrapperRef","editor","handleKeyCommand","command","newState","RichUtils","keyBindingFn","evt","onTab","getDefaultKeyBinding","stopPropagation","maxTabDepth","toggleButtonBlockType","blockType","toggleBlockType","toggleSelectBlockType","toggleInlineStyle","inlineStyle","toggleLink","newEditorState","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","getControlConfigBySet","controlConfigSet","config","keys","filter","f","focus","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","Label","BlockTypeSelectControls","length","Editor","spellCheck","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","RichTextEditorForLanguage","language","langKey","required","variant","feedback","useState","setEditorState","feedbackText","changedState","newValues","content","handleOnChange","FeedbackText","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","languages","rest","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","convertToHTML","html","convertFromHTML","makeHtml"],"mappings":"y8BAEA,IAGaA,EAAWC,kBAHH,SAACC,UAAkB,SAACC,EAAMC,UAC7CF,EAAc,CAAEG,GAAIF,GAAQC,SCsDfJ,sJAjDbM,cAAgB,SAACC,IAEfC,EADqBC,EAAKC,MAAlBF,UACCD,wCAGXI,OAAA,SAAOC,SACE,CACLR,MAAOQ,EAAOC,MACdC,MAAOC,KAAKC,qBAAqBJ,EAAOE,WAI5CE,qBAAA,SAAqBF,OACbG,EAAqBF,KAAKL,MAAMQ,KAAKJ,UACnCA,OACD,kBACIK,+BAAKC,UAAU,aAAaH,OAChC,mBACIE,+BAAKC,UAAU,cAAcH,OACjC,mBACIE,+BAAKC,UAAU,cAAcH,OACjC,mBACIE,+BAAKC,UAAU,cAAcH,OACjC,mBACIE,+BAAKC,UAAU,cAAcH,OACjC,mBACIE,+BAAKC,UAAU,cAAcH,OACjC,mBACIE,+BAAKC,UAAU,cAAcH,kBAE7BE,iCAAIF,OAIjBI,OAAA,wBACsCN,KAAKL,MAAxBY,IAAAA,SAAUJ,IAAAA,YAGzBC,wBAACI,YACCH,UAAU,sBACVI,QALIC,QAKWC,KAAI,SAACd,UAAWe,EAAKhB,OAAOC,MAC3CgB,oBAAqBb,KAAKJ,OAAOW,GACjCR,MAAOI,EAAK,gBACZV,SAAU,SAACqB,UAAiBF,EAAKrB,cAAcuB,EAAazB,cA5CpC0B,cCD1BC,EAAoB,gBAAGC,IAAAA,YAAaC,IAAAA,WAAYC,IAAAA,SAC9CC,EAAYH,EAAYI,eACxBC,EAAiBL,EACpBM,oBACAC,eAAeJ,EAAUK,eACzBC,UAEGlC,EACJ0B,EAAWS,MAAK,SAAC9B,UAAWA,EAAOC,QAAUwB,MAC7CJ,EAAW,UAGXd,wBAACwB,GACClB,QAASQ,EACTX,SAAUf,EACVC,SAAU0B,KCrBHU,EAAMC,OAAOC,OAAO,CAC/BC,MAAO,KAGF,SAASC,EAAOC,UACdA,EAAMC,SAAWD,EAAME,YCsCjBnD,sJAlCbkC,SAAW,SAACkB,SACkB3C,EAAKC,MAAzBG,IAAAA,MAAOqB,IAAAA,SACfkB,EAAEC,iBACFnB,EAASrB,MAGXyC,gBAAkB,iBACY7C,EAAKC,OACjCwB,IADeA,YAAPrB,oCAIVQ,OAAA,wBACiDN,KAAKL,MAA5CQ,IAAAA,KAAcJ,IAAAA,MAAOyC,IAAAA,MAAOC,IAAAA,OAE9BC,EAAaC,UAAG,qBAAsB,CAAEC,SAFhCA,gBAKZxC,+BACEC,UAAWqC,EACXG,YAAa7C,KAAKmB,SAClBqB,MAAOrC,EAAKqC,GAASC,EACrBK,SAAU,EACVC,WAAY,SAACb,GACPD,EAAOC,KAAWL,EAAIG,OACxBpB,EAAK2B,oBAIRxC,OA7BiBgB,cCFpBiC,EAA0B,SAACrD,OACvBsB,EAAsCtB,EAAtCsB,YAAaC,EAAyBvB,EAAzBuB,WAAYC,EAAaxB,EAAbwB,SAC3BC,EAAYH,EAAYI,eACxBC,EAAiBL,EACpBM,oBACAC,eAAeJ,EAAUK,eACzBC,iBAGDtB,+BAAKC,UAAU,wCACZa,EAAWP,KAAI,SAACsC,EAAMC,UACrB9C,wBAAC+C,GACCC,IAAKF,EACLN,OAAQK,EAAKnD,QAAUwB,EACvBvB,MAAOkD,EAAKlD,MACZoB,SAAUA,EACVrB,MAAOmD,EAAKnD,MACZ0C,MAAOS,EAAKI,eCVhBC,sJACJC,MAAQ,CACNC,SAAU,GACVC,cAAc,EACdC,SAAS,KAGXC,YAAc,SAACtB,KACRuB,SAAS,CAAEJ,SAAUnB,EAAEwB,OAAOxE,WAGrCyE,QAAU,SAACzB,GACTA,EAAEC,qBACMrB,EAAgBvB,EAAKC,MAArBsB,YACFG,EAAYH,EAAYI,mBACzBD,EAAU2C,cAAe,KACtBC,EAAiB/C,EAAYM,oBAC7B0C,EAAW7C,EAAUK,cACrByC,EAAc9C,EAAU+C,iBAExBC,EAD2BJ,EAAexC,eAAeyC,GACtBI,YAAYH,GAEjDI,EAAM,GACNF,IAEFE,EADqBN,EAAeO,UAAUH,GAC3BI,UAAUF,OAG1BV,SAAS,CACZH,cAAc,EACdD,SAAUc,EACVZ,UAAWY,QAKjBG,YAAc,SAACpC,GACbA,EAAEC,qBACMkB,EAAa9D,EAAK6D,MAAlBC,WAC0B9D,EAAKC,MAA/BsB,IAAAA,YAAaE,IAAAA,SAEfuD,EADezD,EAAYM,oBACWoD,aAC1C,OACA,UACA,CAAEL,IAAKd,IAEHoB,EAAYF,EAAuBG,0BAIzC1D,EAHuB2D,cAAYC,IAAI9D,EAAa,CAClD+C,eAAgBU,IAEOE,KACpBhB,SAAS,CACZH,cAAc,EACdD,SAAU,QAIdwB,WAAa,SAAC3C,GACZA,EAAEC,mBACGsB,SAAS,CACZH,cAAc,EACdD,SAAU,QAIdyB,mBAAqB,SAAC5C,GAChBJ,EAAOI,KAAOR,EAAIG,SACfyC,YAAYpC,MAIrB6C,WAAa,SAAC7C,GACZA,EAAEC,uBACgC5C,EAAKC,MAA/BsB,IAAAA,YAAaE,IAAAA,SACbuC,EAAYhE,EAAK6D,MAAjBG,SACUzC,EAAYI,eACf0C,eAAiBL,IAC9BvC,EAASF,EAAa,QACjB2C,SAAS,CACZH,cAAc,kCAKpBnD,OAAA,eACUH,EAASH,KAAKL,MAAdQ,OAC0BH,KAAKuD,MAA/BE,IAAAA,aAAcC,IAAAA,eAEpBtD,+BAAKC,UAAU,sDACbD,+BACEC,UAAU,qBACVmC,MAAOrC,EAAK,eACZgF,QAASnF,KAAK8D,QACdhB,SAAU,GAEV1C,wBAACgF,kBAGF3B,GACCrD,+BAAKC,UAAU,uBACbD,gCAAMC,UAAU,cAAcwC,YAAa7C,KAAKgF,YAC9C5E,wBAACiF,mBAEHjF,+BAAKC,UAAU,cAAcF,EAAK,gBAClCC,+BAAKC,UAAU,kBACbD,wBAACkF,aACCxF,MAAO,CAAEyF,MAAO,IAAKC,OAAQ,GAC7B/F,SAAUO,KAAK2D,YACftE,MAAOW,KAAKuD,MAAMC,SAClBiC,UAAWzF,KAAKiF,mBAChBS,YAAY,wBAEdtF,wBAACuF,yBAAsB9C,YAAa7C,KAAKyE,aACvCrE,wBAACwF,aAAUL,MAAO,GAAIM,OAAQ,OAGjCnC,GACCtD,+BAAKC,UAAU,eACbD,wBAAC0F,YACCX,QAASnF,KAAKkF,WACd1C,MAAOrC,EAAK,kBAEZC,wBAAC2F,mBACA5F,EAAK,yBA3HYY,aAqIpCuC,EAAsB0C,UAAY,CAChC/E,YAAagF,UAAUC,OACvB/E,SAAU8E,UAAUE,MAGtB,MAAelH,EAASqE,GCjJlB8C,EAAsB,SAACzG,OACN0G,EAAiB1G,EAAjB0G,aAEfC,EAFgC3G,EAA9BsB,YAEyBsF,+BAG/BnG,+BAAKC,UAAU,yCACZgG,EAAa1F,KAAI,SAACsC,EAAMC,UACvB9C,wBAAC+C,GACCC,IAAKF,EACLN,OAAQ0D,EAAaE,IAAIvD,EAAKnD,OAC9BC,MAAOkD,EAAKlD,MACZoB,SAAUxB,EAAMwB,SAChBrB,MAAOmD,EAAKnD,MACZ0C,MAAOS,EAAKI,QACZZ,OAAQQ,EAAKR,cCZjBgE,sJACJC,cAAgBC,gBAChBpD,MAAQ,CAAEqD,QAAQ,KAUlBC,mBAAqB,SAACxE,GAElB3C,EAAKgH,eACLhH,EAAKgH,cAAcI,UAClBpH,EAAKgH,cAAcI,QAAQC,SAAS1E,EAAEwB,WAElCD,SAAS,CAAEgD,QAAQ,OAI5BI,eAAiB,SAACC,EAAKC,SACgBxH,EAAKC,OAI1CwH,IAJqBA,eAAblG,eACeiG,EAAU,GAEGD,EADfC,EAAU,yCArBjCE,kBAAA,WACEC,SAASC,iBAAiB,YAAatH,KAAK6G,uBAG9CU,qBAAA,WACEF,SAASG,oBAAoB,YAAaxH,KAAK6G,uBAqBjDvG,OAAA,wBACyBN,KAAKL,MAApBQ,IAAAA,KACAyG,EAAW5G,KAAKuD,MAAhBqD,OACFa,IAFQC,KAES/G,KAAI,SAACsG,EAAK/D,OACzBgE,EAAYD,EAAIC,WAAa,YAEjC9G,wBAACuH,YACCvE,IAAKF,EACL7C,UAAU,cACVf,GAAI,eAAiB2H,EAAIA,IACzB9B,QAAS,kBAAMvE,EAAKoG,eAAeC,EAAIA,IAAKC,KAE3CD,EAAIW,KACLxH,gCAAMC,UAAU,oBAAoB4G,EAAIlH,kBAM5CK,+BAAKC,UAAU,uBAAuBwH,IAAK7H,KAAK0G,eAC9CtG,+BACEC,UAAU,qBACV8E,QAAS,kBAAMvE,EAAKgD,UAAS,kBAAiB,CAAEgD,UAAhBA,aAE/BzG,EAAK,iBACNC,wBAAC0H,iBAAczH,UAAU,sBAAsB0H,aAEjD3H,wBAAC4H,WAAQC,KAAMrB,EAAQvG,UAAU,uBAC/BD,wBAAC8H,QAAK7H,UAAU,eAAeoH,SA1Df1G,aAiE1B0F,EAAYT,UAAY,CACtB/E,YAAagF,UAAUC,OACvBwB,KAAMzB,UAAUkC,QAAQlC,UAAUC,QAAQkC,WAC1CjB,YAAalB,UAAUE,KAAKiC,YAG9B,MAAenJ,EAASwH,GC9EX4B,EAAW,mBACfjI,6BAAGkI,OADehE,OAAKiE,WCUnBC,EAAoB1G,OAAOC,OAAO,CAC7C0G,UAAW,CACTC,SAAU,WACVC,WAAY,aACZC,WAAY,aACZC,aAAc,eACdC,YAAa,cACbC,YAAa,cACbC,WAAY,cAEdC,YAAa,CACXC,eAAgB,iBAChBC,aAAc,gBAEhBC,cAAe,CACbC,KAAM,OACNC,OAAQ,SACRC,UAAW,eAIFC,EAAW1H,OAAOC,OAAO,CACpC0H,SAAU,CAAE1J,MAAO,WAAYD,MAAO,yBACxB,CAAEC,MAAO,YAAaD,MAAO,2BAC7B,CAAEC,MAAO,YAAaD,MAAO,6BAC3B,CAAEC,MAAO,YAAaD,MAAO,8BAC9B,CAAEC,MAAO,YAAaD,MAAO,6BAC7B,CAAEC,MAAO,YAAaD,MAAO,4BAC9B,CAAEC,MAAO,YAAaD,MAAO,gBAGhC4J,EAAgB5H,OAAOC,OAAO,kBACvB,CAChBhC,MAAOK,wBAACuJ,uBACR7J,MAAO,sBACPuD,QAAS,6CAEK,CACdtD,MAAOK,wBAACwJ,uBACR9J,MAAO,oBACPuD,QAAS,8BAIAwG,EAAmB/H,OAAOC,OAAO,CAC5C+H,KAAM,CACJ/J,MAAOK,wBAAC2J,iBACRjK,MAAO,OACPuD,QAAS,cACTZ,OAAQ,YAEVuH,OAAQ,CACNjK,MAAOK,wBAAC6J,mBACRnK,MAAO,SACPuD,QAAS,gBACTZ,OAAQ,YAEVyH,UAAW,CACTnK,MAAOK,wBAAC+J,sBACRrK,MAAO,YACPuD,QAAS,mBACTZ,OAAQ,cAIC2H,EAAsBtI,OAAOC,OAAO,CAC/CsI,SAAU,CACR,CAAEpH,KAAM,WAAYlD,MAAO,WAAYD,MAAO,YAC9C,CAAEmD,KAAM,aAAclD,MAAO,YAAaD,MAAO,eAEnDoB,WAAYY,OAAOwI,OAAO9B,EAAkBS,aAC5C5C,aAAc,CACZmC,EAAkBY,cAAcC,KAChCb,EAAkBY,cAAcE,UAGvBiB,EAAY,IAAIC,qBAAmB,CAC9C,CACEC,SD/EG,SAA0BC,EAAcC,EAAUC,GACvDF,EAAaG,kBAAiB,SAACC,OACvBlG,EAAYkG,EAAUvG,mBAEZ,OAAdK,GACgD,SAAhDgG,EAAarG,UAAUK,GAAWlD,YAEnCiJ,ICyEDI,UDrFS,SAACpL,SACIA,EAAMiL,aAAarG,UAAU5E,EAAMiF,WAAWJ,iBACvDpE,wBAACiI,GAAS/D,MADTA,KACoB3E,EAAM4I,cEmB9ByC,sJAGJC,WAAatE,gBACbuE,OAASvE,gBAMTwE,iBAAmB,SAACC,EAASnK,OACrBoK,EAAWC,YAAUH,iBAAiBlK,EAAamK,WACrDC,MACG1L,MAAMF,SAAS4L,IACb,MAKXE,aAAe,SAACC,UAEP,IADCA,EAAIrJ,QAEDzC,EAAK+L,MAAMD,GAEXE,uBAAqBF,MAIlCC,MAAQ,SAACD,GACPA,EAAIG,wBAC2CjM,EAAKC,OACpDF,IADkCA,UACzB6L,YAAUG,MAAMD,IADJvK,cAAb2K,iBAIVC,sBAAwB,SAACC,SACWpM,EAAKC,OACvCF,IADqBA,UACZ6L,YAAUS,kBADX9K,YACwC6K,OAGlDE,sBAAwB,SAACF,SACWpM,EAAKC,OACvCF,IADqBA,UACZ6L,YAAUS,kBADX9K,YACwC6K,OAGlDG,kBAAoB,SAACC,SACexM,EAAKC,OACvCF,IADqBA,UACZ6L,YAAUW,oBADXhL,YAC0CiL,OAGpDC,WAAa,SAACC,EAAgBxH,KACvBjF,MAAMF,SACT6L,YAAUa,WACRC,EACAA,EAAe/K,eACfuD,OAKNyH,WAAa,SAACpL,EAAaqL,OACnBC,EAAaC,WAASH,WAC1BpL,EAAYM,oBACZN,EAAYI,eACZiL,KAEG3M,MAAMF,SACTqF,cAAY2H,KAAKxL,EAAasL,EAAY,sBAC1C,kBAAM7M,EAAKgN,oBAIfC,8BAAgC,SAACC,UACTlN,EAAKmN,sBACzBnN,EAAKC,MAAMmN,kBAEQF,MAGvBC,sBAAwB,SAACE,SAqBhB,CACL1C,UArBiB0C,GAAUA,EAAO1C,UAAavI,OAAOkL,KAAKxD,IAC1DyD,QAAO,SAACC,SAAoB,iBAANA,EAAiB1D,EAAS0D,EAAEjK,MAAQuG,EAAS0D,MACnEvM,KAAI,SAACuM,UAAOA,EAAEnN,OAASmN,EAAEpN,MAAQoN,EAAI1D,EAAS0D,MAoB/ChM,YAlBC6L,GAAUA,EAAO7L,YAClBY,OAAOkL,KAAKtD,IAEXuD,QAAO,SAACC,SACM,iBAANA,EAAiBxD,EAAcwD,EAAEjK,MAAQyG,EAAcwD,MAE/DvM,KAAI,SAACuM,UAAOA,EAAEnN,OAASmN,EAAEpN,MAAQoN,EAAIxD,EAAcwD,MAapD7G,cAXC0G,GAAUA,EAAO1G,cAClBvE,OAAOkL,KAAKnD,IAEXoD,QAAO,SAACC,SACM,iBAANA,EAAiBrD,EAAiBqD,EAAEjK,MAAQ4G,EAAiBqD,MAErEvM,KAAI,SAACuM,UAAOA,EAAEnN,OAASmN,EAAEpN,MAAQoN,EAAIrD,EAAiBqD,4CA3F3DR,YAAA,gBACOxB,OAAOpE,SAAW9G,KAAKkL,OAAOpE,QAAQqG,WAmG7C7M,OAAA,iBAYMN,KAAKL,MATPyN,IAAAA,aACAC,IAAAA,oBACAC,IAAAA,mBACAC,IAAAA,aACAxN,IAAAA,MACA2H,IAAAA,KACAzG,IAAAA,YACAxB,IAAAA,SACA+N,IAAAA,kBAGI9K,EAAaC,UAAG,gBAZpBtC,kBAeAD,+BAAKyH,IAAK7H,KAAKiL,YACZlL,GAASK,wBAACqN,aAAO1N,GAElBK,+BAAKC,UAAWqC,GACdtC,+BAAKC,UAAU,oBACZ+M,GACChN,wBAACsN,GACCzM,YAAaA,EACbE,SAAUnB,KAAKgM,sBACf9K,WAAYlB,KAAK2M,8BAA8B,cAGlDU,GACCjN,wBAACgG,GACCnF,YAAaA,EACbE,SAAUnB,KAAKiM,kBACf5F,aAAcrG,KAAK2M,8BACjB,kBAILW,GACClN,wBAAC4C,GACC/B,YAAaA,EACbE,SAAUnB,KAAK6L,sBACf3K,WAAYlB,KAAK2M,8BAA8B,gBAGlDY,GACCnN,wBAACkD,GACCrC,YAAaA,EACbE,SAAUnB,KAAKmM,aAGlBzE,GAAQA,EAAKiG,OAAS,GACrBvN,wBAACqG,GACCxF,YAAaA,EACbyG,KAAMA,EACNP,YAAanH,KAAKqM,cAKxBjM,+BAAKC,UAAU,kBACbD,wBAACwN,UACC/F,IAAK7H,KAAKkL,OACVjK,YAAaA,EACbkK,iBAAkBnL,KAAKmL,iBACvB1L,SAAUA,EACV+N,kBAAmBA,EACnBjC,aAAcvL,KAAKuL,aACnBsC,uBA9Ke9M,aAAvBiK,EACGT,UAAYA,EAsLrB,IAAMuD,EAAa,SAACC,UAClB9H,UAAU+H,UAAU,CAClB/H,UAAUkC,QAAQlC,UAAUgI,gBAAUnM,OAAOwI,OAAOyD,MACpD9H,UAAUkC,QACRlC,UAAUiI,MAAM,CACdjL,KAAMgD,UAAUgI,gBAAUnM,OAAOwI,OAAOyD,KACxChO,MAAOkG,UAAUkI,OACjBrO,MAAOmG,UAAUkI,OACjB9K,QAAS4C,UAAUkI,OACnB1L,OAAQwD,UAAUkI,aAK1BnD,EAAehF,UAAY,CACzB/E,YAAagF,UAAUC,OAAOkC,WAC9B3I,SAAUwG,UAAUE,KAAKiC,WACzBwD,YAAa3F,UAAUmI,OACvBhB,aAAcnH,UAAUoI,KACxBhB,oBAAqBpH,UAAUoI,KAC/Bf,mBAAoBrH,UAAUoI,KAC9Bd,aAActH,UAAUoI,KACxBtO,MAAOkG,UAAUkI,OACjBzG,KAAMzB,UAAUkC,QAAQlC,UAAUC,QAClC4G,iBAAkB7G,UAAUiI,MAAM,CAChC7D,SAAUyD,EAAWtF,EAAkBC,WACvCvH,WAAY4M,EAAWtF,EAAkBS,aACzC5C,aAAcyH,EAAWtF,EAAkBY,kBAG/C4B,EAAesD,aAAe,CAC5B1C,YAAa,EACbwB,cAAc,EACdC,qBAAqB,EACrBC,oBAAoB,EACpBC,cAAc,EACdxN,MAAO,QChPIwO,EAAwB,SAACtN,OAC9BuN,EAAWC,eAAaxN,EAAYM,4BACnCmN,kBAAgBF,EAAU,CAAEG,kBAAkB,KAG1CC,EAAwB,SAACC,OAC/BA,SACI/J,cAAYgK,YAAYvE,OAE3BiE,EAAWO,kBAAgBF,EAAU,CAAEF,kBAAkB,IACzD/D,EAAeoE,iBAAeR,UAC7B1J,cAAYmK,kBAAkBrE,EAAcL,IAG/C2E,EAAY,IAAIC,UAASC,UAAU,CACvClF,WAAW,mCCaPmF,EAA4B,oBAChCC,SAAmBC,IAAPlQ,MAAgBU,IAAAA,MAAOyP,IAAAA,SACnClF,IAAAA,OACA7K,IAAAA,SACAgQ,IAAAA,QACAC,IAAAA,SACAhI,IAAAA,OAEsCiI,WACpCf,EAAsBtE,EAAOiF,KADxBtO,OAAa2O,OAiBdC,EAAeH,GAAYA,EAASH,UAGxCnP,gDACEA,wBAAC4K,GACCjL,MAAOyP,EAAWzP,EAAQ,IAAMA,EAChCkB,YAAaA,EACbxB,SAAU,SAACqQ,UApBM,SAACA,OAChBC,OAAiBzF,GACjB0F,EAAUzB,EAAsBuB,GAClCxF,EAAOiF,IAAwB,OAAZS,SACdD,EAAUR,GAEjBQ,EAAUR,GAAWS,EAGvBJ,EAAeE,GACfrQ,EAASsQ,GAUoCE,CAAeH,IACxDhD,iBAAkB1C,EAClB1C,KAAMA,IAEP+H,UAAWI,SAAAA,EAAclC,QAAU,GAClCvN,wBAAC8P,gBAAaT,QAASA,EAAQF,IAAWM,KC9DrCM,EAAe,CAC1BC,aAAc,SAACC,EAAQC,SACD,SAAhBD,EAAOpN,KACF7C,wBAACiI,GAAS/D,IAAK+L,EAAOE,KAAKjM,KAAMgM,GAEnCA,IAIEE,EAAe,CAC1BA,aAAc,SAACC,EAAUC,EAAM/L,MACZ,MAAb8L,SACK9L,EAAa,OAAQ,UAAW,CAAEL,IAAKoM,EAAKpI,mFD8DJ,gBACnDlJ,IAAAA,KACAoD,IAAAA,MACAmO,IAAAA,UACGC,iJAEHxQ,wBAACyQ,mBACCrO,MAAOA,EACPsO,eACAC,aAAc,CACZC,QAAS,kBACTC,UAAW,OACXC,aAAc,SAGhB9Q,wBAAC+Q,SAAMC,MAAM,UACVT,EAAUhQ,KAAI,SAAC0Q,UACdjR,+BACEgD,IAAKhE,EAAOiS,EAAKhS,4CACoBD,MAAQiS,EAAKhS,OAElDe,wBAACiP,KAA0BC,SAAU+B,GAAUT,4FCpExB,SAAC3P,UACzBqQ,gBAAcnB,EAAdmB,CAA4BrQ,EAAYM,gFAThB,SAACgQ,OAC3BA,SACIzM,cAAYgK,YAAYvE,OAE3BiE,EAAWgD,kBAAgBhB,EAAhBgB,CAA8BD,UACxCzM,cAAYmK,kBAAkBT,EAAUjE,2DFTnB,SAACsE,UACtBK,EAAUuC,SAAS5C"}
|
|
1
|
+
{"version":3,"file":"rich-text-editor.cjs.production.min.js","sources":["../src/withI18n.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.js","../src/events.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/Controls/InlineStyleControls.js","../src/RichTextEditor/Controls/TagControls.js","../src/RichTextEditor/Link/index.js","../src/RichTextEditor/constants.js","../src/RichTextEditor/index.js","../src/RichTextEditor/markdownConvertion.js","../src/ExpandableMultiLanguageRichTextEditor.tsx","../src/RichTextEditor/htmlConvertion.js"],"sourcesContent":["import { createWithI18n } from '@entur-partner/legacy';\n\nconst simpleFormat = (formatMessage) => (name, value) =>\n formatMessage({ id: name }, value);\n\nexport const withI18n = createWithI18n(simpleFormat);\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\nimport { withI18n } from '../../withI18n';\n\nclass BlockTypeDropdown extends Component {\n handleOnClick = (selectedOption) => {\n const { onChange } = this.props;\n onChange(selectedOption);\n };\n\n toItem(option) {\n return {\n value: option.style,\n label: this.renderFormattedLabel(option.label),\n };\n }\n\n renderFormattedLabel(label) {\n const formattedLabelText = this.props.i18n(label);\n switch (label) {\n case 'styles.p':\n return <div className=\"default-p\">{formattedLabelText}</div>;\n case 'styles.h1':\n return <div className=\"default-h1\">{formattedLabelText}</div>;\n case 'styles.h2':\n return <div className=\"default-h2\">{formattedLabelText}</div>;\n case 'styles.h3':\n return <div className=\"default-h3\">{formattedLabelText}</div>;\n case 'styles.h4':\n return <div className=\"default-h4\">{formattedLabelText}</div>;\n case 'styles.h5':\n return <div className=\"default-h5\">{formattedLabelText}</div>;\n case 'styles.h6':\n return <div className=\"default-h6\">{formattedLabelText}</div>;\n default:\n return <p>{formattedLabelText}</p>;\n }\n }\n\n render() {\n const { options, selected, i18n } = this.props;\n\n return (\n <Dropdown\n className=\"block-type-dropdown\"\n items={options.map((option) => this.toItem(option))}\n initialSelectedItem={this.toItem(selected)}\n label={i18n('styles.style')}\n onChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n />\n );\n }\n}\n\nexport default withI18n(BlockTypeDropdown);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport BlockTypeDropdown from '../BlockTypeDropdown';\n\nconst BlockTypeControls = ({ editorState, blockTypes, onToggle }) => {\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n const selectedOption =\n blockTypes.find((option) => option.style === blockTypeStyle) ||\n blockTypes[0];\n\n return (\n <BlockTypeDropdown\n options={blockTypes}\n selected={selectedOption}\n onChange={onToggle}\n />\n );\n};\n\nexport default BlockTypeControls;\n","export const Key = Object.freeze({\n ENTER: 13,\n});\n\nexport function getKey(event) {\n return event.keyCode || event.which;\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass StyleButton extends Component {\n onToggle = (e) => {\n const { style, onToggle } = this.props;\n e.preventDefault();\n onToggle(style);\n };\n\n onToggleNoEvent = () => {\n const { style, onToggle } = this.props;\n onToggle(style);\n };\n\n render() {\n const { i18n, active, label, title, hotKey } = this.props;\n\n const classNames = cx('editor-stylebutton', { active });\n\n return (\n <div\n className={classNames}\n onMouseDown={this.onToggle}\n title={i18n(title) + hotKey}\n tabIndex={0}\n onKeyPress={(event) => {\n if (getKey(event) === Key.ENTER) {\n this.onToggleNoEvent();\n }\n }}\n >\n {label}\n </div>\n );\n }\n}\n\nexport default withI18n(StyleButton);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst BlockTypeButtonControls = (props) => {\n const { editorState, blockTypes, onToggle } = props;\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n return (\n <div className=\"controls-group block-editor-controls\">\n {blockTypes.map((type, i) => (\n <StyleButton\n key={i}\n active={type.style === blockTypeStyle}\n label={type.label}\n onToggle={onToggle}\n style={type.style}\n title={type.tooltip}\n />\n ))}\n </div>\n );\n};\n\nexport default BlockTypeButtonControls;\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { EditorState } from 'draft-js';\nimport PropTypes from 'prop-types';\nimport { TextField } from '@entur/form';\nimport { UnlinkIcon, LinkIcon, CheckIcon, CloseIcon } from '@entur/icons';\nimport { Unbutton } from '@entur-partner/common';\nimport { SecondarySquareButton } from '@entur/button';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass BlockTypeLinkControls extends Component {\n state = {\n urlValue: '',\n showUrlInput: false,\n hasLink: false,\n };\n\n onUrlChange = (e) => {\n this.setState({ urlValue: e.target.value });\n };\n\n addLink = (e) => {\n e.preventDefault();\n const { editorState } = this.props;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n const currentContent = editorState.getCurrentContent();\n const startKey = selection.getStartKey();\n const startOffset = selection.getStartOffset();\n const blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n const linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n let url = '';\n if (linkKey) {\n const linkInstance = currentContent.getEntity(linkKey);\n url = linkInstance.getData().url;\n }\n\n this.setState({\n showUrlInput: true,\n urlValue: url,\n hasLink: !!url,\n });\n }\n };\n\n confirmLink = (e) => {\n e.preventDefault();\n const { urlValue } = this.state;\n const { editorState, onToggle } = this.props;\n const contentState = editorState.getCurrentContent();\n const contentStateWithEntity = contentState.createEntity(\n 'LINK',\n 'MUTABLE',\n { url: urlValue }\n );\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n const newEditorState = EditorState.set(editorState, {\n currentContent: contentStateWithEntity,\n });\n onToggle(newEditorState, entityKey);\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n cancelLink = (e) => {\n e.preventDefault();\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n onLinkInputKeyDown = (e) => {\n if (getKey(e) === Key.ENTER) {\n this.confirmLink(e);\n }\n };\n\n removeLink = (e) => {\n e.preventDefault();\n const { editorState, onToggle } = this.props;\n const { hasLink } = this.state;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed() && hasLink) {\n onToggle(editorState, null);\n this.setState({\n showUrlInput: false,\n });\n }\n };\n\n render() {\n const { i18n } = this.props;\n const { showUrlInput, hasLink } = this.state;\n return (\n <div className=\"controls-group block-editor-controls link-controls\">\n <div\n className=\"editor-stylebutton\"\n title={i18n('styles.link')}\n onClick={this.addLink}\n tabIndex={0}\n >\n <LinkIcon />\n </div>\n\n {showUrlInput && (\n <div className=\"url-input-container\">\n <span className=\"exit-button\" onMouseDown={this.cancelLink}>\n <CloseIcon />\n </span>\n <div className=\"link-label\">{i18n('common.from')}</div>\n <div className=\"url-input-form\">\n <TextField\n style={{ width: 250, margin: 5 }}\n onChange={this.onUrlChange}\n value={this.state.urlValue}\n onKeyDown={this.onLinkInputKeyDown}\n placeholder=\"https://example.com\"\n />\n <SecondarySquareButton onMouseDown={this.confirmLink}>\n <CheckIcon width={15} height={15} />\n </SecondarySquareButton>\n </div>\n {hasLink && (\n <div className=\"remove-link\">\n <Unbutton\n onClick={this.removeLink}\n title={i18n('styles.unlink')}\n >\n <UnlinkIcon />\n {i18n('styles.unlink')}\n </Unbutton>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\nBlockTypeLinkControls.propTypes = {\n editorState: PropTypes.object,\n onToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst InlineStyleControls = (props) => {\n const { editorState, inlineStyles } = props;\n\n const currentStyle = editorState.getCurrentInlineStyle();\n\n return (\n <div className=\"controls-group inline-editor-controls\">\n {inlineStyles.map((type, i) => (\n <StyleButton\n key={i}\n active={currentStyle.has(type.style)}\n label={type.label}\n onToggle={props.onToggle}\n style={type.style}\n title={type.tooltip}\n hotKey={type.hotKey}\n />\n ))}\n </div>\n );\n};\n\nexport default InlineStyleControls;\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { MenuItem, Popover, Menu } from '@entur-partner/legacy';\nimport { DownArrowIcon } from '@entur/icons';\n\nimport { withI18n } from '../../withI18n';\n\nclass TagControls extends Component {\n tagControlRef = createRef();\n state = { isOpen: false };\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n if (\n this.tagControlRef &&\n this.tagControlRef.current &&\n !this.tagControlRef.current.contains(e.target)\n ) {\n this.setState({ isOpen: false });\n }\n };\n\n handleTagClick = (tag, delimiter) => {\n const { editorState, onInsertTag } = this.props;\n const delimiterStart = delimiter[0];\n const delimiterEnd = delimiter[1];\n const fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n onInsertTag(editorState, fullTag);\n };\n\n render() {\n const { i18n, tags } = this.props;\n const { isOpen } = this.state;\n const menuItems = tags.map((tag, i) => {\n const delimiter = tag.delimiter || '{}';\n return (\n <MenuItem\n key={i}\n className=\"tag-control\"\n id={'tag-control-' + tag.tag}\n onClick={() => this.handleTagClick(tag.tag, delimiter)}\n >\n {tag.icon}\n <span className=\"tag-control-text\">{tag.label}</span>\n </MenuItem>\n );\n });\n\n return (\n <div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n <div\n className=\"tag-control-header\"\n onClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n >\n {i18n('common.insert')}\n <DownArrowIcon className=\"tag-control-chevron\" inline />\n </div>\n <Popover open={isOpen} className=\"tag-control-content\">\n <Menu className=\"action-menu\">{menuItems}</Menu>\n </Popover>\n </div>\n );\n }\n}\n\nTagControls.propTypes = {\n editorState: PropTypes.object,\n tags: PropTypes.arrayOf(PropTypes.object).isRequired,\n onInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from 'react';\n\nexport const HtmlLink = ({ url, children }) => {\n return <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n const { url } = props.contentState.getEntity(props.entityKey).getData();\n return <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n contentBlock.findEntityRanges((character) => {\n const entityKey = character.getEntity();\n return (\n entityKey !== null &&\n contentState.getEntity(entityKey).getType() === 'LINK'\n );\n }, callback);\n}\n\nexport default Link;\n","import React from 'react';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n BulletListIcon,\n NumberListIcon,\n} from '@entur/icons';\nimport { CompositeDecorator } from 'draft-js';\n\nimport Link, { findLinkEntities } from './Link';\n\nexport const EditorConfigTypes = Object.freeze({\n FONT_LIST: {\n UNSTYLED: 'unstyled',\n HEADER_ONE: 'header-one',\n HEADER_TWO: 'header-two',\n HEADER_THREE: 'header-three',\n HEADER_FOUR: 'header-four',\n HEADER_FIVE: 'header-five',\n HEADER_SIX: 'header-six',\n },\n BLOCK_TYPES: {\n UNORDERED_LIST: 'unordered-list',\n ORDERED_LIST: 'ordered-list',\n },\n INLINE_STYLES: {\n BOLD: 'bold',\n ITALIC: 'italic',\n UNDERLINE: 'underline',\n },\n});\n\nexport const FontList = Object.freeze({\n unstyled: { label: 'styles.p', style: 'unstyled' },\n 'header-one': { label: 'styles.h1', style: 'header-one' },\n 'header-two': { label: 'styles.h2', style: 'header-two' },\n 'header-three': { label: 'styles.h3', style: 'header-three' },\n 'header-four': { label: 'styles.h4', style: 'header-four' },\n 'header-five': { label: 'styles.h5', style: 'header-five' },\n 'header-six': { label: 'styles.h6', style: 'header-six' },\n});\n\nexport const BlockTypeList = Object.freeze({\n 'unordered-list': {\n label: <BulletListIcon />,\n style: 'unordered-list-item',\n tooltip: 'styles.unordered_list_item',\n },\n 'ordered-list': {\n label: <NumberListIcon />,\n style: 'ordered-list-item',\n tooltip: 'styles.ordered_list_item',\n },\n});\n\nexport const InlineStylesList = Object.freeze({\n bold: {\n label: <BoldIcon />,\n style: 'BOLD',\n tooltip: 'styles.bold',\n hotKey: '(Ctrl+B)',\n },\n italic: {\n label: <ItalicIcon />,\n style: 'ITALIC',\n tooltip: 'styles.italic',\n hotKey: '(Ctrl+I)',\n },\n underline: {\n label: <UnderlineIcon />,\n style: 'UNDERLINE',\n tooltip: 'styles.underline',\n hotKey: '(Ctrl+U)',\n },\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n fontList: [\n { type: 'unstyled', label: 'styles.p', style: 'unstyled' },\n { type: 'header-two', label: 'styles.h1', style: 'header-two' },\n ],\n blockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: [\n EditorConfigTypes.INLINE_STYLES.BOLD,\n EditorConfigTypes.INLINE_STYLES.ITALIC,\n ],\n});\nexport const decorator = new CompositeDecorator([\n {\n strategy: findLinkEntities,\n component: Link,\n },\n]);\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport {\n Editor,\n EditorState,\n Modifier,\n RichUtils,\n getDefaultKeyBinding,\n} from 'draft-js';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport BlockTypeSelectControls from './Controls/BlockTypeSelectControls';\nimport BlockTypeButtonControls from './Controls/BlockTypeButtonControls';\nimport BlockTypeLinkControls from './Controls/BlockTypeLinkControls';\nimport InlineStyleControls from './Controls/InlineStyleControls';\nimport TagControls from './Controls/TagControls';\nimport {\n BlockTypeList,\n EditorConfigTypes,\n FontList,\n InlineStylesList,\n decorator,\n} from './constants';\n\nclass RichTextEditor extends Component {\n static decorator = decorator;\n\n wrapperRef = createRef();\n editor = createRef();\n\n focusEditor() {\n this.editor.current && this.editor.current.focus();\n }\n\n handleKeyCommand = (command, editorState) => {\n const newState = RichUtils.handleKeyCommand(editorState, command);\n if (newState) {\n this.props.onChange(newState);\n return true;\n }\n return false;\n };\n\n keyBindingFn = (evt) => {\n switch (evt.keyCode) {\n case 9:\n return this.onTab(evt);\n default:\n return getDefaultKeyBinding(evt);\n }\n };\n\n onTab = (evt) => {\n evt.stopPropagation();\n const { maxTabDepth, editorState, onChange } = this.props;\n onChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n };\n\n toggleButtonBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleSelectBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleInlineStyle = (inlineStyle) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n };\n\n toggleLink = (newEditorState, entityKey) => {\n this.props.onChange(\n RichUtils.toggleLink(\n newEditorState,\n newEditorState.getSelection(),\n entityKey\n )\n );\n };\n\n insertText = (editorState, text) => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n text\n );\n this.props.onChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n () => this.focusEditor()\n );\n };\n\n getFontListConfigForPanelType = (panelType) => {\n const controlConfig = this.getControlConfigBySet(\n this.props.controlConfigSet\n );\n return controlConfig[panelType];\n };\n\n getControlConfigBySet = (config) => {\n const fontList = ((config && config.fontList) || Object.keys(FontList))\n .filter((f) => (typeof f === 'object' ? FontList[f.type] : FontList[f]))\n .map((f) => (f.label && f.style ? f : FontList[f]));\n const blockTypes = (\n (config && config.blockTypes) ||\n Object.keys(BlockTypeList)\n )\n .filter((f) =>\n typeof f === 'object' ? BlockTypeList[f.type] : BlockTypeList[f]\n )\n .map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n const inlineStyles = (\n (config && config.inlineStyles) ||\n Object.keys(InlineStylesList)\n )\n .filter((f) =>\n typeof f === 'object' ? InlineStylesList[f.type] : InlineStylesList[f]\n )\n .map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n return {\n fontList,\n blockTypes,\n inlineStyles,\n };\n };\n\n render() {\n const {\n className,\n showFontMenu,\n showInlineStyleMenu,\n showTextFormatMenu,\n showLinkMenu,\n label,\n tags,\n editorState,\n onChange,\n handleBeforeInput,\n } = this.props;\n\n const classNames = cx('editor-root', className);\n\n return (\n <div ref={this.wrapperRef}>\n {label && <Label>{label}</Label>}\n\n <div className={classNames}>\n <div className=\"controls-wrapper\">\n {showFontMenu && (\n <BlockTypeSelectControls\n editorState={editorState}\n onToggle={this.toggleSelectBlockType}\n blockTypes={this.getFontListConfigForPanelType('fontList')}\n />\n )}\n {showInlineStyleMenu && (\n <InlineStyleControls\n editorState={editorState}\n onToggle={this.toggleInlineStyle}\n inlineStyles={this.getFontListConfigForPanelType(\n 'inlineStyles'\n )}\n />\n )}\n {showTextFormatMenu && (\n <BlockTypeButtonControls\n editorState={editorState}\n onToggle={this.toggleButtonBlockType}\n blockTypes={this.getFontListConfigForPanelType('blockTypes')}\n />\n )}\n {showLinkMenu && (\n <BlockTypeLinkControls\n editorState={editorState}\n onToggle={this.toggleLink}\n />\n )}\n {tags && tags.length > 0 && (\n <TagControls\n editorState={editorState}\n tags={tags}\n onInsertTag={this.insertText}\n />\n )}\n </div>\n\n <div className=\"editor-wrapper\">\n <Editor\n ref={this.editor}\n editorState={editorState}\n handleKeyCommand={this.handleKeyCommand}\n onChange={onChange}\n handleBeforeInput={handleBeforeInput}\n keyBindingFn={this.keyBindingFn}\n spellCheck\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styleShape = (configList) =>\n PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf([...Object.values(configList)]),\n label: PropTypes.string,\n style: PropTypes.string,\n tooltip: PropTypes.string,\n hotKey: PropTypes.string,\n })\n ),\n ]);\n\nRichTextEditor.propTypes = {\n editorState: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n maxTabDepth: PropTypes.number,\n showFontMenu: PropTypes.bool,\n showInlineStyleMenu: PropTypes.bool,\n showTextFormatMenu: PropTypes.bool,\n showLinkMenu: PropTypes.bool,\n label: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.object),\n controlConfigSet: PropTypes.shape({\n fontList: styleShape(EditorConfigTypes.FONT_LIST),\n blockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n }),\n};\nRichTextEditor.defaultProps = {\n maxTabDepth: 4,\n showFontMenu: true,\n showInlineStyleMenu: true,\n showTextFormatMenu: true,\n showLinkMenu: true,\n label: '',\n};\n\nexport default RichTextEditor;\n","import { markdownToDraft, draftToMarkdown } from 'markdown-draft-js';\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\nimport showdown from 'showdown';\n\nimport { decorator } from './constants';\n\nexport const editorStateToMarkdown = (editorState) => {\n const rawState = convertToRaw(editorState.getCurrentContent());\n return draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n if (!markdown) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = markdownToDraft(markdown, { preserveNewlines: true });\n const contentState = convertFromRaw(rawState);\n return EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n underline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n return converter.makeHtml(markdown);\n};\n","import React, { useState } from 'react';\nimport { EditorState } from 'draft-js';\nimport { ExpandablePanel } from '@entur/expand';\nimport {\n LanguageKey,\n LanguageOption,\n MultiLanguageValues,\n Stack,\n} from '@entur-partner/common';\nimport { FeedbackText, VariantType } from '@entur/form';\n\nimport {\n editorStateToMarkdown,\n markdownToEditorState,\n} from './RichTextEditor/markdownConvertion';\nimport RichTextEditor from './RichTextEditor';\nimport { MinifiedConfigTypes } from './RichTextEditor/constants';\n\ntype MultiLanguageInputProps = {\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n tags?: {\n tag: string;\n delimiter: string;\n label: string;\n }[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n language: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n language: { value: langKey, label, required },\n values,\n onChange,\n variant,\n feedback,\n tags,\n}: RichTextEditorForLanguageProps) => {\n const [editorState, setEditorState] = useState<EditorState>(\n markdownToEditorState(values[langKey])\n );\n\n const handleOnChange = (changedState: EditorState) => {\n const newValues = { ...values };\n const content = editorStateToMarkdown(changedState);\n if (values[langKey] && content === '\\n') {\n delete newValues[langKey];\n } else {\n newValues[langKey] = content;\n }\n\n setEditorState(changedState);\n onChange(newValues);\n };\n\n const feedbackText = feedback && feedback(langKey);\n\n return (\n <>\n <RichTextEditor\n label={required ? label + '*' : label}\n editorState={editorState}\n onChange={(changedState: EditorState) => handleOnChange(changedState)}\n controlConfigSet={MinifiedConfigTypes}\n tags={tags}\n />\n {variant && feedbackText?.length! > 0 && (\n <FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n )}\n </>\n );\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n name: string;\n title: string;\n languages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n name,\n title,\n languages,\n ...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map((lang) => (\n <div\n key={name + lang.value}\n data-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n >\n <RichTextEditorForLanguage language={lang} {...rest} />\n </div>\n ))}\n </Stack>\n </ExpandablePanel>\n);\n","import React from 'react';\nimport { EditorState } from 'draft-js';\nimport { convertFromHTML, convertToHTML } from 'draft-convert';\n\nimport { HtmlLink } from './Link';\nimport { decorator } from './constants';\n\n/* eslint-disable react/display-name */\n\nexport const entityToHtml = {\n entityToHTML: (entity, originalText) => {\n if (entity.type === 'LINK') {\n return <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n }\n return originalText;\n },\n};\n\nexport const htmlToEntity = {\n htmlToEntity: (nodeName, node, createEntity) => {\n if (nodeName === 'a') {\n return createEntity('LINK', 'MUTABLE', { url: node.href });\n }\n },\n};\n\n/* eslint-disable react/display-name */\n\nexport const htmlToEditorState = (html) => {\n if (!html) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = convertFromHTML(htmlToEntity)(html);\n return EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n return convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["withI18n","createWithI18n","formatMessage","name","value","id","BlockTypeDropdown$1","handleOnClick","selectedOption","onChange","_this","props","toItem","option","style","label","this","renderFormattedLabel","formattedLabelText","i18n","React","createElement","className","render","_this2","_this$props","selected","Dropdown","items","options","map","initialSelectedItem","selectedItem","Component","BlockTypeControls","_ref","editorState","blockTypes","onToggle","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","find","BlockTypeDropdown","Key","Object","freeze","ENTER","getKey","event","keyCode","which","StyleButton$1","e","preventDefault","onToggleNoEvent","_this$props2","_this$props3","title","hotKey","classNames","cx","active","onMouseDown","tabIndex","onKeyPress","BlockTypeButtonControls","type","i","StyleButton","key","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","addLink","isCollapsed","currentContent","startKey","startOffset","getStartOffset","linkKey","getEntityAt","url","getEntity","getData","confirmLink","contentStateWithEntity","createEntity","entityKey","getLastCreatedEntityKey","EditorState","set","cancelLink","onLinkInputKeyDown","removeLink","_this$state","onClick","LinkIcon","CloseIcon","TextField","width","margin","onKeyDown","placeholder","SecondarySquareButton","CheckIcon","height","Unbutton","UnlinkIcon","propTypes","PropTypes","object","func","BlockTypeLinkControls$1","InlineStyleControls","inlineStyles","currentStyle","getCurrentInlineStyle","has","TagControls","tagControlRef","createRef","isOpen","handleClickOutside","current","contains","handleTagClick","tag","delimiter","onInsertTag","delimiterStart","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","menuItems","tags","MenuItem","icon","ref","DownArrowIcon","inline","Popover","open","Menu","arrayOf","isRequired","TagControls$1","HtmlLink","href","children","EditorConfigTypes","FONT_LIST","UNSTYLED","HEADER_ONE","HEADER_TWO","HEADER_THREE","HEADER_FOUR","HEADER_FIVE","HEADER_SIX","BLOCK_TYPES","UNORDERED_LIST","ORDERED_LIST","INLINE_STYLES","BOLD","ITALIC","UNDERLINE","FontList","unstyled","BlockTypeList","BulletListIcon","NumberListIcon","InlineStylesList","bold","BoldIcon","italic","ItalicIcon","underline","UnderlineIcon","MinifiedConfigTypes","fontList","values","decorator","CompositeDecorator","strategy","contentBlock","callback","contentState","findEntityRanges","character","component","RichTextEditor","wrapperRef","editor","handleKeyCommand","command","newState","RichUtils","keyBindingFn","evt","onTab","getDefaultKeyBinding","stopPropagation","maxTabDepth","toggleButtonBlockType","blockType","toggleBlockType","toggleSelectBlockType","toggleInlineStyle","inlineStyle","_this$props4","toggleLink","newEditorState","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","controlConfig","getControlConfigBySet","controlConfigSet","config","keys","filter","f","focus","_this$props5","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","Label","BlockTypeSelectControls","length","Editor","spellCheck","styleShape","configList","oneOfType","oneOf","shape","concat","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","RichTextEditorForLanguage","_ref$language","language","langKey","required","variant","feedback","useState","_useState","setEditorState","feedbackText","Fragment","changedState","handleOnChange","newValues","content","FeedbackText","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","_ref2","languages","rest","_objectWithoutPropertiesLoose","_excluded","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","_extends","convertToHTML","html","convertFromHTML","makeHtml"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.esm.js","sources":["../src/withI18n.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.js","../src/events.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/Controls/InlineStyleControls.js","../src/RichTextEditor/Controls/TagControls.js","../src/RichTextEditor/Link/index.js","../src/RichTextEditor/constants.js","../src/RichTextEditor/index.js","../src/RichTextEditor/markdownConvertion.js","../src/ExpandableMultiLanguageRichTextEditor.tsx","../src/RichTextEditor/htmlConvertion.js"],"sourcesContent":["import { createWithI18n } from '@entur-partner/legacy';\n\nconst simpleFormat = (formatMessage) => (name, value) =>\n formatMessage({ id: name }, value);\n\nexport const withI18n = createWithI18n(simpleFormat);\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\nimport { withI18n } from '../../withI18n';\n\nclass BlockTypeDropdown extends Component {\n handleOnClick = (selectedOption) => {\n const { onChange } = this.props;\n onChange(selectedOption);\n };\n\n toItem(option) {\n return {\n value: option.style,\n label: this.renderFormattedLabel(option.label),\n };\n }\n\n renderFormattedLabel(label) {\n const formattedLabelText = this.props.i18n(label);\n switch (label) {\n case 'styles.p':\n return <div className=\"default-p\">{formattedLabelText}</div>;\n case 'styles.h1':\n return <div className=\"default-h1\">{formattedLabelText}</div>;\n case 'styles.h2':\n return <div className=\"default-h2\">{formattedLabelText}</div>;\n case 'styles.h3':\n return <div className=\"default-h3\">{formattedLabelText}</div>;\n case 'styles.h4':\n return <div className=\"default-h4\">{formattedLabelText}</div>;\n case 'styles.h5':\n return <div className=\"default-h5\">{formattedLabelText}</div>;\n case 'styles.h6':\n return <div className=\"default-h6\">{formattedLabelText}</div>;\n default:\n return <p>{formattedLabelText}</p>;\n }\n }\n\n render() {\n const { options, selected, i18n } = this.props;\n\n return (\n <Dropdown\n className=\"block-type-dropdown\"\n items={options.map((option) => this.toItem(option))}\n initialSelectedItem={this.toItem(selected)}\n label={i18n('styles.style')}\n onChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n />\n );\n }\n}\n\nexport default withI18n(BlockTypeDropdown);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport BlockTypeDropdown from '../BlockTypeDropdown';\n\nconst BlockTypeControls = ({ editorState, blockTypes, onToggle }) => {\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n const selectedOption =\n blockTypes.find((option) => option.style === blockTypeStyle) ||\n blockTypes[0];\n\n return (\n <BlockTypeDropdown\n options={blockTypes}\n selected={selectedOption}\n onChange={onToggle}\n />\n );\n};\n\nexport default BlockTypeControls;\n","export const Key = Object.freeze({\n ENTER: 13,\n});\n\nexport function getKey(event) {\n return event.keyCode || event.which;\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass StyleButton extends Component {\n onToggle = (e) => {\n const { style, onToggle } = this.props;\n e.preventDefault();\n onToggle(style);\n };\n\n onToggleNoEvent = () => {\n const { style, onToggle } = this.props;\n onToggle(style);\n };\n\n render() {\n const { i18n, active, label, title, hotKey } = this.props;\n\n const classNames = cx('editor-stylebutton', { active });\n\n return (\n <div\n className={classNames}\n onMouseDown={this.onToggle}\n title={i18n(title) + hotKey}\n tabIndex={0}\n onKeyPress={(event) => {\n if (getKey(event) === Key.ENTER) {\n this.onToggleNoEvent();\n }\n }}\n >\n {label}\n </div>\n );\n }\n}\n\nexport default withI18n(StyleButton);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst BlockTypeButtonControls = (props) => {\n const { editorState, blockTypes, onToggle } = props;\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n return (\n <div className=\"controls-group block-editor-controls\">\n {blockTypes.map((type, i) => (\n <StyleButton\n key={i}\n active={type.style === blockTypeStyle}\n label={type.label}\n onToggle={onToggle}\n style={type.style}\n title={type.tooltip}\n />\n ))}\n </div>\n );\n};\n\nexport default BlockTypeButtonControls;\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { EditorState } from 'draft-js';\nimport PropTypes from 'prop-types';\nimport { TextField } from '@entur/form';\nimport { UnlinkIcon, LinkIcon, CheckIcon, CloseIcon } from '@entur/icons';\nimport { Unbutton } from '@entur-partner/common';\nimport { SecondarySquareButton } from '@entur/button';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass BlockTypeLinkControls extends Component {\n state = {\n urlValue: '',\n showUrlInput: false,\n hasLink: false,\n };\n\n onUrlChange = (e) => {\n this.setState({ urlValue: e.target.value });\n };\n\n addLink = (e) => {\n e.preventDefault();\n const { editorState } = this.props;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n const currentContent = editorState.getCurrentContent();\n const startKey = selection.getStartKey();\n const startOffset = selection.getStartOffset();\n const blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n const linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n let url = '';\n if (linkKey) {\n const linkInstance = currentContent.getEntity(linkKey);\n url = linkInstance.getData().url;\n }\n\n this.setState({\n showUrlInput: true,\n urlValue: url,\n hasLink: !!url,\n });\n }\n };\n\n confirmLink = (e) => {\n e.preventDefault();\n const { urlValue } = this.state;\n const { editorState, onToggle } = this.props;\n const contentState = editorState.getCurrentContent();\n const contentStateWithEntity = contentState.createEntity(\n 'LINK',\n 'MUTABLE',\n { url: urlValue }\n );\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n const newEditorState = EditorState.set(editorState, {\n currentContent: contentStateWithEntity,\n });\n onToggle(newEditorState, entityKey);\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n cancelLink = (e) => {\n e.preventDefault();\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n onLinkInputKeyDown = (e) => {\n if (getKey(e) === Key.ENTER) {\n this.confirmLink(e);\n }\n };\n\n removeLink = (e) => {\n e.preventDefault();\n const { editorState, onToggle } = this.props;\n const { hasLink } = this.state;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed() && hasLink) {\n onToggle(editorState, null);\n this.setState({\n showUrlInput: false,\n });\n }\n };\n\n render() {\n const { i18n } = this.props;\n const { showUrlInput, hasLink } = this.state;\n return (\n <div className=\"controls-group block-editor-controls link-controls\">\n <div\n className=\"editor-stylebutton\"\n title={i18n('styles.link')}\n onClick={this.addLink}\n tabIndex={0}\n >\n <LinkIcon />\n </div>\n\n {showUrlInput && (\n <div className=\"url-input-container\">\n <span className=\"exit-button\" onMouseDown={this.cancelLink}>\n <CloseIcon />\n </span>\n <div className=\"link-label\">{i18n('common.from')}</div>\n <div className=\"url-input-form\">\n <TextField\n style={{ width: 250, margin: 5 }}\n onChange={this.onUrlChange}\n value={this.state.urlValue}\n onKeyDown={this.onLinkInputKeyDown}\n placeholder=\"https://example.com\"\n />\n <SecondarySquareButton onMouseDown={this.confirmLink}>\n <CheckIcon width={15} height={15} />\n </SecondarySquareButton>\n </div>\n {hasLink && (\n <div className=\"remove-link\">\n <Unbutton\n onClick={this.removeLink}\n title={i18n('styles.unlink')}\n >\n <UnlinkIcon />\n {i18n('styles.unlink')}\n </Unbutton>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\nBlockTypeLinkControls.propTypes = {\n editorState: PropTypes.object,\n onToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst InlineStyleControls = (props) => {\n const { editorState, inlineStyles } = props;\n\n const currentStyle = editorState.getCurrentInlineStyle();\n\n return (\n <div className=\"controls-group inline-editor-controls\">\n {inlineStyles.map((type, i) => (\n <StyleButton\n key={i}\n active={currentStyle.has(type.style)}\n label={type.label}\n onToggle={props.onToggle}\n style={type.style}\n title={type.tooltip}\n hotKey={type.hotKey}\n />\n ))}\n </div>\n );\n};\n\nexport default InlineStyleControls;\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { MenuItem, Popover, Menu } from '@entur-partner/legacy';\nimport { DownArrowIcon } from '@entur/icons';\n\nimport { withI18n } from '../../withI18n';\n\nclass TagControls extends Component {\n tagControlRef = createRef();\n state = { isOpen: false };\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n if (\n this.tagControlRef &&\n this.tagControlRef.current &&\n !this.tagControlRef.current.contains(e.target)\n ) {\n this.setState({ isOpen: false });\n }\n };\n\n handleTagClick = (tag, delimiter) => {\n const { editorState, onInsertTag } = this.props;\n const delimiterStart = delimiter[0];\n const delimiterEnd = delimiter[1];\n const fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n onInsertTag(editorState, fullTag);\n };\n\n render() {\n const { i18n, tags } = this.props;\n const { isOpen } = this.state;\n const menuItems = tags.map((tag, i) => {\n const delimiter = tag.delimiter || '{}';\n return (\n <MenuItem\n key={i}\n className=\"tag-control\"\n id={'tag-control-' + tag.tag}\n onClick={() => this.handleTagClick(tag.tag, delimiter)}\n >\n {tag.icon}\n <span className=\"tag-control-text\">{tag.label}</span>\n </MenuItem>\n );\n });\n\n return (\n <div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n <div\n className=\"tag-control-header\"\n onClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n >\n {i18n('common.insert')}\n <DownArrowIcon className=\"tag-control-chevron\" inline />\n </div>\n <Popover open={isOpen} className=\"tag-control-content\">\n <Menu className=\"action-menu\">{menuItems}</Menu>\n </Popover>\n </div>\n );\n }\n}\n\nTagControls.propTypes = {\n editorState: PropTypes.object,\n tags: PropTypes.arrayOf(PropTypes.object).isRequired,\n onInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from 'react';\n\nexport const HtmlLink = ({ url, children }) => {\n return <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n const { url } = props.contentState.getEntity(props.entityKey).getData();\n return <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n contentBlock.findEntityRanges((character) => {\n const entityKey = character.getEntity();\n return (\n entityKey !== null &&\n contentState.getEntity(entityKey).getType() === 'LINK'\n );\n }, callback);\n}\n\nexport default Link;\n","import React from 'react';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n BulletListIcon,\n NumberListIcon,\n} from '@entur/icons';\nimport { CompositeDecorator } from 'draft-js';\n\nimport Link, { findLinkEntities } from './Link';\n\nexport const EditorConfigTypes = Object.freeze({\n FONT_LIST: {\n UNSTYLED: 'unstyled',\n HEADER_ONE: 'header-one',\n HEADER_TWO: 'header-two',\n HEADER_THREE: 'header-three',\n HEADER_FOUR: 'header-four',\n HEADER_FIVE: 'header-five',\n HEADER_SIX: 'header-six',\n },\n BLOCK_TYPES: {\n UNORDERED_LIST: 'unordered-list',\n ORDERED_LIST: 'ordered-list',\n },\n INLINE_STYLES: {\n BOLD: 'bold',\n ITALIC: 'italic',\n UNDERLINE: 'underline',\n },\n});\n\nexport const FontList = Object.freeze({\n unstyled: { label: 'styles.p', style: 'unstyled' },\n 'header-one': { label: 'styles.h1', style: 'header-one' },\n 'header-two': { label: 'styles.h2', style: 'header-two' },\n 'header-three': { label: 'styles.h3', style: 'header-three' },\n 'header-four': { label: 'styles.h4', style: 'header-four' },\n 'header-five': { label: 'styles.h5', style: 'header-five' },\n 'header-six': { label: 'styles.h6', style: 'header-six' },\n});\n\nexport const BlockTypeList = Object.freeze({\n 'unordered-list': {\n label: <BulletListIcon />,\n style: 'unordered-list-item',\n tooltip: 'styles.unordered_list_item',\n },\n 'ordered-list': {\n label: <NumberListIcon />,\n style: 'ordered-list-item',\n tooltip: 'styles.ordered_list_item',\n },\n});\n\nexport const InlineStylesList = Object.freeze({\n bold: {\n label: <BoldIcon />,\n style: 'BOLD',\n tooltip: 'styles.bold',\n hotKey: '(Ctrl+B)',\n },\n italic: {\n label: <ItalicIcon />,\n style: 'ITALIC',\n tooltip: 'styles.italic',\n hotKey: '(Ctrl+I)',\n },\n underline: {\n label: <UnderlineIcon />,\n style: 'UNDERLINE',\n tooltip: 'styles.underline',\n hotKey: '(Ctrl+U)',\n },\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n fontList: [\n { type: 'unstyled', label: 'styles.p', style: 'unstyled' },\n { type: 'header-two', label: 'styles.h1', style: 'header-two' },\n ],\n blockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: [\n EditorConfigTypes.INLINE_STYLES.BOLD,\n EditorConfigTypes.INLINE_STYLES.ITALIC,\n ],\n});\nexport const decorator = new CompositeDecorator([\n {\n strategy: findLinkEntities,\n component: Link,\n },\n]);\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport {\n Editor,\n EditorState,\n Modifier,\n RichUtils,\n getDefaultKeyBinding,\n} from 'draft-js';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport BlockTypeSelectControls from './Controls/BlockTypeSelectControls';\nimport BlockTypeButtonControls from './Controls/BlockTypeButtonControls';\nimport BlockTypeLinkControls from './Controls/BlockTypeLinkControls';\nimport InlineStyleControls from './Controls/InlineStyleControls';\nimport TagControls from './Controls/TagControls';\nimport {\n BlockTypeList,\n EditorConfigTypes,\n FontList,\n InlineStylesList,\n decorator,\n} from './constants';\n\nclass RichTextEditor extends Component {\n static decorator = decorator;\n\n wrapperRef = createRef();\n editor = createRef();\n\n focusEditor() {\n this.editor.current && this.editor.current.focus();\n }\n\n handleKeyCommand = (command, editorState) => {\n const newState = RichUtils.handleKeyCommand(editorState, command);\n if (newState) {\n this.props.onChange(newState);\n return true;\n }\n return false;\n };\n\n keyBindingFn = (evt) => {\n switch (evt.keyCode) {\n case 9:\n return this.onTab(evt);\n default:\n return getDefaultKeyBinding(evt);\n }\n };\n\n onTab = (evt) => {\n evt.stopPropagation();\n const { maxTabDepth, editorState, onChange } = this.props;\n onChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n };\n\n toggleButtonBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleSelectBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleInlineStyle = (inlineStyle) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n };\n\n toggleLink = (newEditorState, entityKey) => {\n this.props.onChange(\n RichUtils.toggleLink(\n newEditorState,\n newEditorState.getSelection(),\n entityKey\n )\n );\n };\n\n insertText = (editorState, text) => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n text\n );\n this.props.onChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n () => this.focusEditor()\n );\n };\n\n getFontListConfigForPanelType = (panelType) => {\n const controlConfig = this.getControlConfigBySet(\n this.props.controlConfigSet\n );\n return controlConfig[panelType];\n };\n\n getControlConfigBySet = (config) => {\n const fontList = ((config && config.fontList) || Object.keys(FontList))\n .filter((f) => (typeof f === 'object' ? FontList[f.type] : FontList[f]))\n .map((f) => (f.label && f.style ? f : FontList[f]));\n const blockTypes = (\n (config && config.blockTypes) ||\n Object.keys(BlockTypeList)\n )\n .filter((f) =>\n typeof f === 'object' ? BlockTypeList[f.type] : BlockTypeList[f]\n )\n .map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n const inlineStyles = (\n (config && config.inlineStyles) ||\n Object.keys(InlineStylesList)\n )\n .filter((f) =>\n typeof f === 'object' ? InlineStylesList[f.type] : InlineStylesList[f]\n )\n .map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n return {\n fontList,\n blockTypes,\n inlineStyles,\n };\n };\n\n render() {\n const {\n className,\n showFontMenu,\n showInlineStyleMenu,\n showTextFormatMenu,\n showLinkMenu,\n label,\n tags,\n editorState,\n onChange,\n handleBeforeInput,\n } = this.props;\n\n const classNames = cx('editor-root', className);\n\n return (\n <div ref={this.wrapperRef}>\n {label && <Label>{label}</Label>}\n\n <div className={classNames}>\n <div className=\"controls-wrapper\">\n {showFontMenu && (\n <BlockTypeSelectControls\n editorState={editorState}\n onToggle={this.toggleSelectBlockType}\n blockTypes={this.getFontListConfigForPanelType('fontList')}\n />\n )}\n {showInlineStyleMenu && (\n <InlineStyleControls\n editorState={editorState}\n onToggle={this.toggleInlineStyle}\n inlineStyles={this.getFontListConfigForPanelType(\n 'inlineStyles'\n )}\n />\n )}\n {showTextFormatMenu && (\n <BlockTypeButtonControls\n editorState={editorState}\n onToggle={this.toggleButtonBlockType}\n blockTypes={this.getFontListConfigForPanelType('blockTypes')}\n />\n )}\n {showLinkMenu && (\n <BlockTypeLinkControls\n editorState={editorState}\n onToggle={this.toggleLink}\n />\n )}\n {tags && tags.length > 0 && (\n <TagControls\n editorState={editorState}\n tags={tags}\n onInsertTag={this.insertText}\n />\n )}\n </div>\n\n <div className=\"editor-wrapper\">\n <Editor\n ref={this.editor}\n editorState={editorState}\n handleKeyCommand={this.handleKeyCommand}\n onChange={onChange}\n handleBeforeInput={handleBeforeInput}\n keyBindingFn={this.keyBindingFn}\n spellCheck\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styleShape = (configList) =>\n PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf([...Object.values(configList)]),\n label: PropTypes.string,\n style: PropTypes.string,\n tooltip: PropTypes.string,\n hotKey: PropTypes.string,\n })\n ),\n ]);\n\nRichTextEditor.propTypes = {\n editorState: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n maxTabDepth: PropTypes.number,\n showFontMenu: PropTypes.bool,\n showInlineStyleMenu: PropTypes.bool,\n showTextFormatMenu: PropTypes.bool,\n showLinkMenu: PropTypes.bool,\n label: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.object),\n controlConfigSet: PropTypes.shape({\n fontList: styleShape(EditorConfigTypes.FONT_LIST),\n blockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n }),\n};\nRichTextEditor.defaultProps = {\n maxTabDepth: 4,\n showFontMenu: true,\n showInlineStyleMenu: true,\n showTextFormatMenu: true,\n showLinkMenu: true,\n label: '',\n};\n\nexport default RichTextEditor;\n","import { markdownToDraft, draftToMarkdown } from 'markdown-draft-js';\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\nimport showdown from 'showdown';\n\nimport { decorator } from './constants';\n\nexport const editorStateToMarkdown = (editorState) => {\n const rawState = convertToRaw(editorState.getCurrentContent());\n return draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n if (!markdown) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = markdownToDraft(markdown, { preserveNewlines: true });\n const contentState = convertFromRaw(rawState);\n return EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n underline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n return converter.makeHtml(markdown);\n};\n","import React, { useState } from 'react';\nimport { EditorState } from 'draft-js';\nimport { ExpandablePanel } from '@entur/expand';\nimport {\n LanguageKey,\n LanguageOption,\n MultiLanguageValues,\n Stack,\n} from '@entur-partner/common';\nimport { FeedbackText, VariantType } from '@entur/form';\n\nimport {\n editorStateToMarkdown,\n markdownToEditorState,\n} from './RichTextEditor/markdownConvertion';\nimport RichTextEditor from './RichTextEditor';\nimport { MinifiedConfigTypes } from './RichTextEditor/constants';\n\ntype MultiLanguageInputProps = {\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n tags?: {\n tag: string;\n delimiter: string;\n label: string;\n }[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n language: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n language: { value: langKey, label, required },\n values,\n onChange,\n variant,\n feedback,\n tags,\n}: RichTextEditorForLanguageProps) => {\n const [editorState, setEditorState] = useState<EditorState>(\n markdownToEditorState(values[langKey])\n );\n\n const handleOnChange = (changedState: EditorState) => {\n const newValues = { ...values };\n const content = editorStateToMarkdown(changedState);\n if (values[langKey] && content === '\\n') {\n delete newValues[langKey];\n } else {\n newValues[langKey] = content;\n }\n\n setEditorState(changedState);\n onChange(newValues);\n };\n\n const feedbackText = feedback && feedback(langKey);\n\n return (\n <>\n <RichTextEditor\n label={required ? label + '*' : label}\n editorState={editorState}\n onChange={(changedState: EditorState) => handleOnChange(changedState)}\n controlConfigSet={MinifiedConfigTypes}\n tags={tags}\n />\n {variant && feedbackText?.length! > 0 && (\n <FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n )}\n </>\n );\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n name: string;\n title: string;\n languages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n name,\n title,\n languages,\n ...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map((lang) => (\n <div\n key={name + lang.value}\n data-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n >\n <RichTextEditorForLanguage language={lang} {...rest} />\n </div>\n ))}\n </Stack>\n </ExpandablePanel>\n);\n","import React from 'react';\nimport { EditorState } from 'draft-js';\nimport { convertFromHTML, convertToHTML } from 'draft-convert';\n\nimport { HtmlLink } from './Link';\nimport { decorator } from './constants';\n\n/* eslint-disable react/display-name */\n\nexport const entityToHtml = {\n entityToHTML: (entity, originalText) => {\n if (entity.type === 'LINK') {\n return <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n }\n return originalText;\n },\n};\n\nexport const htmlToEntity = {\n htmlToEntity: (nodeName, node, createEntity) => {\n if (nodeName === 'a') {\n return createEntity('LINK', 'MUTABLE', { url: node.href });\n }\n },\n};\n\n/* eslint-disable react/display-name */\n\nexport const htmlToEditorState = (html) => {\n if (!html) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = convertFromHTML(htmlToEntity)(html);\n return EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n return convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["simpleFormat","formatMessage","name","value","id","withI18n","createWithI18n","BlockTypeDropdown","handleOnClick","selectedOption","onChange","props","toItem","option","style","label","renderFormattedLabel","formattedLabelText","i18n","render","options","selected","map","selectedItem","Component","BlockTypeControls","editorState","blockTypes","onToggle","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","find","Key","Object","freeze","ENTER","getKey","event","keyCode","which","StyleButton","e","preventDefault","onToggleNoEvent","active","title","hotKey","classNames","cx","BlockTypeButtonControls","type","i","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","addLink","isCollapsed","currentContent","startKey","startOffset","getStartOffset","blockWithLinkAtBeginning","linkKey","getEntityAt","url","linkInstance","getEntity","getData","confirmLink","contentState","contentStateWithEntity","createEntity","entityKey","getLastCreatedEntityKey","newEditorState","EditorState","set","cancelLink","onLinkInputKeyDown","removeLink","width","margin","propTypes","PropTypes","object","func","InlineStyleControls","inlineStyles","currentStyle","getCurrentInlineStyle","has","TagControls","tagControlRef","createRef","isOpen","handleClickOutside","current","contains","handleTagClick","tag","delimiter","onInsertTag","delimiterStart","delimiterEnd","fullTag","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","tags","menuItems","icon","arrayOf","isRequired","HtmlLink","children","Link","findLinkEntities","contentBlock","callback","findEntityRanges","character","EditorConfigTypes","FONT_LIST","UNSTYLED","HEADER_ONE","HEADER_TWO","HEADER_THREE","HEADER_FOUR","HEADER_FIVE","HEADER_SIX","BLOCK_TYPES","UNORDERED_LIST","ORDERED_LIST","INLINE_STYLES","BOLD","ITALIC","UNDERLINE","FontList","unstyled","BlockTypeList","InlineStylesList","bold","italic","underline","MinifiedConfigTypes","fontList","values","decorator","CompositeDecorator","strategy","component","RichTextEditor","wrapperRef","editor","handleKeyCommand","command","newState","RichUtils","keyBindingFn","evt","onTab","getDefaultKeyBinding","stopPropagation","maxTabDepth","toggleButtonBlockType","blockType","toggleBlockType","toggleSelectBlockType","toggleInlineStyle","inlineStyle","toggleLink","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","controlConfig","getControlConfigBySet","controlConfigSet","config","keys","filter","f","focus","className","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","BlockTypeSelectControls","length","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","markdownToHtml","makeHtml","RichTextEditorForLanguage","language","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","React","FeedbackText","ExpandableMultiLanguageRichTextEditor","languages","rest","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","key","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","href","htmlToEditorState","html","convertFromHTML","editorStateToHtml","convertToHTML"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rich-text-editor.esm.js","sources":["../src/withI18n.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.js","../src/events.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/Controls/InlineStyleControls.js","../src/RichTextEditor/Controls/TagControls.js","../src/RichTextEditor/Link/index.js","../src/RichTextEditor/constants.js","../src/RichTextEditor/index.js","../src/RichTextEditor/markdownConvertion.js","../src/ExpandableMultiLanguageRichTextEditor.tsx","../src/RichTextEditor/htmlConvertion.js"],"sourcesContent":["import { createWithI18n } from '@entur-partner/legacy';\n\nconst simpleFormat = (formatMessage) => (name, value) =>\n formatMessage({ id: name }, value);\n\nexport const withI18n = createWithI18n(simpleFormat);\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\nimport { withI18n } from '../../withI18n';\n\nclass BlockTypeDropdown extends Component {\n handleOnClick = (selectedOption) => {\n const { onChange } = this.props;\n onChange(selectedOption);\n };\n\n toItem(option) {\n return {\n value: option.style,\n label: this.renderFormattedLabel(option.label),\n };\n }\n\n renderFormattedLabel(label) {\n const formattedLabelText = this.props.i18n(label);\n switch (label) {\n case 'styles.p':\n return <div className=\"default-p\">{formattedLabelText}</div>;\n case 'styles.h1':\n return <div className=\"default-h1\">{formattedLabelText}</div>;\n case 'styles.h2':\n return <div className=\"default-h2\">{formattedLabelText}</div>;\n case 'styles.h3':\n return <div className=\"default-h3\">{formattedLabelText}</div>;\n case 'styles.h4':\n return <div className=\"default-h4\">{formattedLabelText}</div>;\n case 'styles.h5':\n return <div className=\"default-h5\">{formattedLabelText}</div>;\n case 'styles.h6':\n return <div className=\"default-h6\">{formattedLabelText}</div>;\n default:\n return <p>{formattedLabelText}</p>;\n }\n }\n\n render() {\n const { options, selected, i18n } = this.props;\n\n return (\n <Dropdown\n className=\"block-type-dropdown\"\n items={options.map((option) => this.toItem(option))}\n initialSelectedItem={this.toItem(selected)}\n label={i18n('styles.style')}\n onChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n />\n );\n }\n}\n\nexport default withI18n(BlockTypeDropdown);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport BlockTypeDropdown from '../BlockTypeDropdown';\n\nconst BlockTypeControls = ({ editorState, blockTypes, onToggle }) => {\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n const selectedOption =\n blockTypes.find((option) => option.style === blockTypeStyle) ||\n blockTypes[0];\n\n return (\n <BlockTypeDropdown\n options={blockTypes}\n selected={selectedOption}\n onChange={onToggle}\n />\n );\n};\n\nexport default BlockTypeControls;\n","export const Key = Object.freeze({\n ENTER: 13,\n});\n\nexport function getKey(event) {\n return event.keyCode || event.which;\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass StyleButton extends Component {\n onToggle = (e) => {\n const { style, onToggle } = this.props;\n e.preventDefault();\n onToggle(style);\n };\n\n onToggleNoEvent = () => {\n const { style, onToggle } = this.props;\n onToggle(style);\n };\n\n render() {\n const { i18n, active, label, title, hotKey } = this.props;\n\n const classNames = cx('editor-stylebutton', { active });\n\n return (\n <div\n className={classNames}\n onMouseDown={this.onToggle}\n title={i18n(title) + hotKey}\n tabIndex={0}\n onKeyPress={(event) => {\n if (getKey(event) === Key.ENTER) {\n this.onToggleNoEvent();\n }\n }}\n >\n {label}\n </div>\n );\n }\n}\n\nexport default withI18n(StyleButton);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst BlockTypeButtonControls = (props) => {\n const { editorState, blockTypes, onToggle } = props;\n const selection = editorState.getSelection();\n const blockTypeStyle = editorState\n .getCurrentContent()\n .getBlockForKey(selection.getStartKey())\n .getType();\n\n return (\n <div className=\"controls-group block-editor-controls\">\n {blockTypes.map((type, i) => (\n <StyleButton\n key={i}\n active={type.style === blockTypeStyle}\n label={type.label}\n onToggle={onToggle}\n style={type.style}\n title={type.tooltip}\n />\n ))}\n </div>\n );\n};\n\nexport default BlockTypeButtonControls;\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { EditorState } from 'draft-js';\nimport PropTypes from 'prop-types';\nimport { TextField } from '@entur/form';\nimport { UnlinkIcon, LinkIcon, CheckIcon, CloseIcon } from '@entur/icons';\nimport { Unbutton } from '@entur-partner/common';\nimport { SecondarySquareButton } from '@entur/button';\n\nimport { withI18n } from '../../withI18n';\nimport { Key, getKey } from '../../events';\n\nclass BlockTypeLinkControls extends Component {\n state = {\n urlValue: '',\n showUrlInput: false,\n hasLink: false,\n };\n\n onUrlChange = (e) => {\n this.setState({ urlValue: e.target.value });\n };\n\n addLink = (e) => {\n e.preventDefault();\n const { editorState } = this.props;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed()) {\n const currentContent = editorState.getCurrentContent();\n const startKey = selection.getStartKey();\n const startOffset = selection.getStartOffset();\n const blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n const linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n let url = '';\n if (linkKey) {\n const linkInstance = currentContent.getEntity(linkKey);\n url = linkInstance.getData().url;\n }\n\n this.setState({\n showUrlInput: true,\n urlValue: url,\n hasLink: !!url,\n });\n }\n };\n\n confirmLink = (e) => {\n e.preventDefault();\n const { urlValue } = this.state;\n const { editorState, onToggle } = this.props;\n const contentState = editorState.getCurrentContent();\n const contentStateWithEntity = contentState.createEntity(\n 'LINK',\n 'MUTABLE',\n { url: urlValue }\n );\n const entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n const newEditorState = EditorState.set(editorState, {\n currentContent: contentStateWithEntity,\n });\n onToggle(newEditorState, entityKey);\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n cancelLink = (e) => {\n e.preventDefault();\n this.setState({\n showUrlInput: false,\n urlValue: '',\n });\n };\n\n onLinkInputKeyDown = (e) => {\n if (getKey(e) === Key.ENTER) {\n this.confirmLink(e);\n }\n };\n\n removeLink = (e) => {\n e.preventDefault();\n const { editorState, onToggle } = this.props;\n const { hasLink } = this.state;\n const selection = editorState.getSelection();\n if (!selection.isCollapsed() && hasLink) {\n onToggle(editorState, null);\n this.setState({\n showUrlInput: false,\n });\n }\n };\n\n render() {\n const { i18n } = this.props;\n const { showUrlInput, hasLink } = this.state;\n return (\n <div className=\"controls-group block-editor-controls link-controls\">\n <div\n className=\"editor-stylebutton\"\n title={i18n('styles.link')}\n onClick={this.addLink}\n tabIndex={0}\n >\n <LinkIcon />\n </div>\n\n {showUrlInput && (\n <div className=\"url-input-container\">\n <span className=\"exit-button\" onMouseDown={this.cancelLink}>\n <CloseIcon />\n </span>\n <div className=\"link-label\">{i18n('common.from')}</div>\n <div className=\"url-input-form\">\n <TextField\n style={{ width: 250, margin: 5 }}\n onChange={this.onUrlChange}\n value={this.state.urlValue}\n onKeyDown={this.onLinkInputKeyDown}\n placeholder=\"https://example.com\"\n />\n <SecondarySquareButton onMouseDown={this.confirmLink}>\n <CheckIcon width={15} height={15} />\n </SecondarySquareButton>\n </div>\n {hasLink && (\n <div className=\"remove-link\">\n <Unbutton\n onClick={this.removeLink}\n title={i18n('styles.unlink')}\n >\n <UnlinkIcon />\n {i18n('styles.unlink')}\n </Unbutton>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\nBlockTypeLinkControls.propTypes = {\n editorState: PropTypes.object,\n onToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import './styles.scss';\n\nimport React from 'react';\n\nimport StyleButton from '../StyleButton';\n\nconst InlineStyleControls = (props) => {\n const { editorState, inlineStyles } = props;\n\n const currentStyle = editorState.getCurrentInlineStyle();\n\n return (\n <div className=\"controls-group inline-editor-controls\">\n {inlineStyles.map((type, i) => (\n <StyleButton\n key={i}\n active={currentStyle.has(type.style)}\n label={type.label}\n onToggle={props.onToggle}\n style={type.style}\n title={type.tooltip}\n hotKey={type.hotKey}\n />\n ))}\n </div>\n );\n};\n\nexport default InlineStyleControls;\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { MenuItem, Popover, Menu } from '@entur-partner/legacy';\nimport { DownArrowIcon } from '@entur/icons';\n\nimport { withI18n } from '../../withI18n';\n\nclass TagControls extends Component {\n tagControlRef = createRef();\n state = { isOpen: false };\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleClickOutside = (e) => {\n if (\n this.tagControlRef &&\n this.tagControlRef.current &&\n !this.tagControlRef.current.contains(e.target)\n ) {\n this.setState({ isOpen: false });\n }\n };\n\n handleTagClick = (tag, delimiter) => {\n const { editorState, onInsertTag } = this.props;\n const delimiterStart = delimiter[0];\n const delimiterEnd = delimiter[1];\n const fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n onInsertTag(editorState, fullTag);\n };\n\n render() {\n const { i18n, tags } = this.props;\n const { isOpen } = this.state;\n const menuItems = tags.map((tag, i) => {\n const delimiter = tag.delimiter || '{}';\n return (\n <MenuItem\n key={i}\n className=\"tag-control\"\n id={'tag-control-' + tag.tag}\n onClick={() => this.handleTagClick(tag.tag, delimiter)}\n >\n {tag.icon}\n <span className=\"tag-control-text\">{tag.label}</span>\n </MenuItem>\n );\n });\n\n return (\n <div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n <div\n className=\"tag-control-header\"\n onClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n >\n {i18n('common.insert')}\n <DownArrowIcon className=\"tag-control-chevron\" inline />\n </div>\n <Popover open={isOpen} className=\"tag-control-content\">\n <Menu className=\"action-menu\">{menuItems}</Menu>\n </Popover>\n </div>\n );\n }\n}\n\nTagControls.propTypes = {\n editorState: PropTypes.object,\n tags: PropTypes.arrayOf(PropTypes.object).isRequired,\n onInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from 'react';\n\nexport const HtmlLink = ({ url, children }) => {\n return <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n const { url } = props.contentState.getEntity(props.entityKey).getData();\n return <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n contentBlock.findEntityRanges((character) => {\n const entityKey = character.getEntity();\n return (\n entityKey !== null &&\n contentState.getEntity(entityKey).getType() === 'LINK'\n );\n }, callback);\n}\n\nexport default Link;\n","import React from 'react';\nimport {\n BoldIcon,\n ItalicIcon,\n UnderlineIcon,\n BulletListIcon,\n NumberListIcon,\n} from '@entur/icons';\nimport { CompositeDecorator } from 'draft-js';\n\nimport Link, { findLinkEntities } from './Link';\n\nexport const EditorConfigTypes = Object.freeze({\n FONT_LIST: {\n UNSTYLED: 'unstyled',\n HEADER_ONE: 'header-one',\n HEADER_TWO: 'header-two',\n HEADER_THREE: 'header-three',\n HEADER_FOUR: 'header-four',\n HEADER_FIVE: 'header-five',\n HEADER_SIX: 'header-six',\n },\n BLOCK_TYPES: {\n UNORDERED_LIST: 'unordered-list',\n ORDERED_LIST: 'ordered-list',\n },\n INLINE_STYLES: {\n BOLD: 'bold',\n ITALIC: 'italic',\n UNDERLINE: 'underline',\n },\n});\n\nexport const FontList = Object.freeze({\n unstyled: { label: 'styles.p', style: 'unstyled' },\n 'header-one': { label: 'styles.h1', style: 'header-one' },\n 'header-two': { label: 'styles.h2', style: 'header-two' },\n 'header-three': { label: 'styles.h3', style: 'header-three' },\n 'header-four': { label: 'styles.h4', style: 'header-four' },\n 'header-five': { label: 'styles.h5', style: 'header-five' },\n 'header-six': { label: 'styles.h6', style: 'header-six' },\n});\n\nexport const BlockTypeList = Object.freeze({\n 'unordered-list': {\n label: <BulletListIcon />,\n style: 'unordered-list-item',\n tooltip: 'styles.unordered_list_item',\n },\n 'ordered-list': {\n label: <NumberListIcon />,\n style: 'ordered-list-item',\n tooltip: 'styles.ordered_list_item',\n },\n});\n\nexport const InlineStylesList = Object.freeze({\n bold: {\n label: <BoldIcon />,\n style: 'BOLD',\n tooltip: 'styles.bold',\n hotKey: '(Ctrl+B)',\n },\n italic: {\n label: <ItalicIcon />,\n style: 'ITALIC',\n tooltip: 'styles.italic',\n hotKey: '(Ctrl+I)',\n },\n underline: {\n label: <UnderlineIcon />,\n style: 'UNDERLINE',\n tooltip: 'styles.underline',\n hotKey: '(Ctrl+U)',\n },\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n fontList: [\n { type: 'unstyled', label: 'styles.p', style: 'unstyled' },\n { type: 'header-two', label: 'styles.h1', style: 'header-two' },\n ],\n blockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: [\n EditorConfigTypes.INLINE_STYLES.BOLD,\n EditorConfigTypes.INLINE_STYLES.ITALIC,\n ],\n});\nexport const decorator = new CompositeDecorator([\n {\n strategy: findLinkEntities,\n component: Link,\n },\n]);\n","import './styles.scss';\n\nimport React, { Component, createRef } from 'react';\nimport {\n Editor,\n EditorState,\n Modifier,\n RichUtils,\n getDefaultKeyBinding,\n} from 'draft-js';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport BlockTypeSelectControls from './Controls/BlockTypeSelectControls';\nimport BlockTypeButtonControls from './Controls/BlockTypeButtonControls';\nimport BlockTypeLinkControls from './Controls/BlockTypeLinkControls';\nimport InlineStyleControls from './Controls/InlineStyleControls';\nimport TagControls from './Controls/TagControls';\nimport {\n BlockTypeList,\n EditorConfigTypes,\n FontList,\n InlineStylesList,\n decorator,\n} from './constants';\n\nclass RichTextEditor extends Component {\n static decorator = decorator;\n\n wrapperRef = createRef();\n editor = createRef();\n\n focusEditor() {\n this.editor.current && this.editor.current.focus();\n }\n\n handleKeyCommand = (command, editorState) => {\n const newState = RichUtils.handleKeyCommand(editorState, command);\n if (newState) {\n this.props.onChange(newState);\n return true;\n }\n return false;\n };\n\n keyBindingFn = (evt) => {\n switch (evt.keyCode) {\n case 9:\n return this.onTab(evt);\n default:\n return getDefaultKeyBinding(evt);\n }\n };\n\n onTab = (evt) => {\n evt.stopPropagation();\n const { maxTabDepth, editorState, onChange } = this.props;\n onChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n };\n\n toggleButtonBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleSelectBlockType = (blockType) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleBlockType(editorState, blockType));\n };\n\n toggleInlineStyle = (inlineStyle) => {\n const { editorState, onChange } = this.props;\n onChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n };\n\n toggleLink = (newEditorState, entityKey) => {\n this.props.onChange(\n RichUtils.toggleLink(\n newEditorState,\n newEditorState.getSelection(),\n entityKey\n )\n );\n };\n\n insertText = (editorState, text) => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n text\n );\n this.props.onChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n () => this.focusEditor()\n );\n };\n\n getFontListConfigForPanelType = (panelType) => {\n const controlConfig = this.getControlConfigBySet(\n this.props.controlConfigSet\n );\n return controlConfig[panelType];\n };\n\n getControlConfigBySet = (config) => {\n const fontList = ((config && config.fontList) || Object.keys(FontList))\n .filter((f) => (typeof f === 'object' ? FontList[f.type] : FontList[f]))\n .map((f) => (f.label && f.style ? f : FontList[f]));\n const blockTypes = (\n (config && config.blockTypes) ||\n Object.keys(BlockTypeList)\n )\n .filter((f) =>\n typeof f === 'object' ? BlockTypeList[f.type] : BlockTypeList[f]\n )\n .map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n const inlineStyles = (\n (config && config.inlineStyles) ||\n Object.keys(InlineStylesList)\n )\n .filter((f) =>\n typeof f === 'object' ? InlineStylesList[f.type] : InlineStylesList[f]\n )\n .map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n return {\n fontList,\n blockTypes,\n inlineStyles,\n };\n };\n\n render() {\n const {\n className,\n showFontMenu,\n showInlineStyleMenu,\n showTextFormatMenu,\n showLinkMenu,\n label,\n tags,\n editorState,\n onChange,\n handleBeforeInput,\n } = this.props;\n\n const classNames = cx('editor-root', className);\n\n return (\n <div ref={this.wrapperRef}>\n {label && <Label>{label}</Label>}\n\n <div className={classNames}>\n <div className=\"controls-wrapper\">\n {showFontMenu && (\n <BlockTypeSelectControls\n editorState={editorState}\n onToggle={this.toggleSelectBlockType}\n blockTypes={this.getFontListConfigForPanelType('fontList')}\n />\n )}\n {showInlineStyleMenu && (\n <InlineStyleControls\n editorState={editorState}\n onToggle={this.toggleInlineStyle}\n inlineStyles={this.getFontListConfigForPanelType(\n 'inlineStyles'\n )}\n />\n )}\n {showTextFormatMenu && (\n <BlockTypeButtonControls\n editorState={editorState}\n onToggle={this.toggleButtonBlockType}\n blockTypes={this.getFontListConfigForPanelType('blockTypes')}\n />\n )}\n {showLinkMenu && (\n <BlockTypeLinkControls\n editorState={editorState}\n onToggle={this.toggleLink}\n />\n )}\n {tags && tags.length > 0 && (\n <TagControls\n editorState={editorState}\n tags={tags}\n onInsertTag={this.insertText}\n />\n )}\n </div>\n\n <div className=\"editor-wrapper\">\n <Editor\n ref={this.editor}\n editorState={editorState}\n handleKeyCommand={this.handleKeyCommand}\n onChange={onChange}\n handleBeforeInput={handleBeforeInput}\n keyBindingFn={this.keyBindingFn}\n spellCheck\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styleShape = (configList) =>\n PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf([...Object.values(configList)]),\n label: PropTypes.string,\n style: PropTypes.string,\n tooltip: PropTypes.string,\n hotKey: PropTypes.string,\n })\n ),\n ]);\n\nRichTextEditor.propTypes = {\n editorState: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n maxTabDepth: PropTypes.number,\n showFontMenu: PropTypes.bool,\n showInlineStyleMenu: PropTypes.bool,\n showTextFormatMenu: PropTypes.bool,\n showLinkMenu: PropTypes.bool,\n label: PropTypes.string,\n tags: PropTypes.arrayOf(PropTypes.object),\n controlConfigSet: PropTypes.shape({\n fontList: styleShape(EditorConfigTypes.FONT_LIST),\n blockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n inlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n }),\n};\nRichTextEditor.defaultProps = {\n maxTabDepth: 4,\n showFontMenu: true,\n showInlineStyleMenu: true,\n showTextFormatMenu: true,\n showLinkMenu: true,\n label: '',\n};\n\nexport default RichTextEditor;\n","import { markdownToDraft, draftToMarkdown } from 'markdown-draft-js';\nimport { convertToRaw, convertFromRaw, EditorState } from 'draft-js';\nimport showdown from 'showdown';\n\nimport { decorator } from './constants';\n\nexport const editorStateToMarkdown = (editorState) => {\n const rawState = convertToRaw(editorState.getCurrentContent());\n return draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n if (!markdown) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = markdownToDraft(markdown, { preserveNewlines: true });\n const contentState = convertFromRaw(rawState);\n return EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n underline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n return converter.makeHtml(markdown);\n};\n","import React, { useState } from 'react';\nimport { EditorState } from 'draft-js';\nimport { ExpandablePanel } from '@entur/expand';\nimport {\n LanguageKey,\n LanguageOption,\n MultiLanguageValues,\n Stack,\n} from '@entur-partner/common';\nimport { FeedbackText, VariantType } from '@entur/form';\n\nimport {\n editorStateToMarkdown,\n markdownToEditorState,\n} from './RichTextEditor/markdownConvertion';\nimport RichTextEditor from './RichTextEditor';\nimport { MinifiedConfigTypes } from './RichTextEditor/constants';\n\ntype MultiLanguageInputProps = {\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n tags?: {\n tag: string;\n delimiter: string;\n label: string;\n }[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n language: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n language: { value: langKey, label, required },\n values,\n onChange,\n variant,\n feedback,\n tags,\n}: RichTextEditorForLanguageProps) => {\n const [editorState, setEditorState] = useState<EditorState>(\n markdownToEditorState(values[langKey])\n );\n\n const handleOnChange = (changedState: EditorState) => {\n const newValues = { ...values };\n const content = editorStateToMarkdown(changedState);\n if (values[langKey] && content === '\\n') {\n delete newValues[langKey];\n } else {\n newValues[langKey] = content;\n }\n\n setEditorState(changedState);\n onChange(newValues);\n };\n\n const feedbackText = feedback && feedback(langKey);\n\n return (\n <>\n <RichTextEditor\n label={required ? label + '*' : label}\n editorState={editorState}\n onChange={(changedState: EditorState) => handleOnChange(changedState)}\n controlConfigSet={MinifiedConfigTypes}\n tags={tags}\n />\n {variant && feedbackText?.length! > 0 && (\n <FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n )}\n </>\n );\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n name: string;\n title: string;\n languages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n name,\n title,\n languages,\n ...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map((lang) => (\n <div\n key={name + lang.value}\n data-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n >\n <RichTextEditorForLanguage language={lang} {...rest} />\n </div>\n ))}\n </Stack>\n </ExpandablePanel>\n);\n","import React from 'react';\nimport { EditorState } from 'draft-js';\nimport { convertFromHTML, convertToHTML } from 'draft-convert';\n\nimport { HtmlLink } from './Link';\nimport { decorator } from './constants';\n\n/* eslint-disable react/display-name */\n\nexport const entityToHtml = {\n entityToHTML: (entity, originalText) => {\n if (entity.type === 'LINK') {\n return <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n }\n return originalText;\n },\n};\n\nexport const htmlToEntity = {\n htmlToEntity: (nodeName, node, createEntity) => {\n if (nodeName === 'a') {\n return createEntity('LINK', 'MUTABLE', { url: node.href });\n }\n },\n};\n\n/* eslint-disable react/display-name */\n\nexport const htmlToEditorState = (html) => {\n if (!html) {\n return EditorState.createEmpty(decorator);\n }\n const rawState = convertFromHTML(htmlToEntity)(html);\n return EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n return convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["simpleFormat","formatMessage","name","value","id","withI18n","createWithI18n","BlockTypeDropdown","handleOnClick","selectedOption","onChange","props","toItem","option","style","label","renderFormattedLabel","formattedLabelText","i18n","render","options","selected","map","selectedItem","Component","BlockTypeControls","editorState","blockTypes","onToggle","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","find","Key","Object","freeze","ENTER","getKey","event","keyCode","which","StyleButton","e","preventDefault","onToggleNoEvent","active","title","hotKey","classNames","cx","BlockTypeButtonControls","type","i","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","addLink","isCollapsed","currentContent","startKey","startOffset","getStartOffset","blockWithLinkAtBeginning","linkKey","getEntityAt","url","linkInstance","getEntity","getData","confirmLink","contentState","contentStateWithEntity","createEntity","entityKey","getLastCreatedEntityKey","newEditorState","EditorState","set","cancelLink","onLinkInputKeyDown","removeLink","width","margin","propTypes","PropTypes","object","func","InlineStyleControls","inlineStyles","currentStyle","getCurrentInlineStyle","has","TagControls","tagControlRef","createRef","isOpen","handleClickOutside","current","contains","handleTagClick","tag","delimiter","onInsertTag","delimiterStart","delimiterEnd","fullTag","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","tags","menuItems","icon","arrayOf","isRequired","HtmlLink","children","Link","findLinkEntities","contentBlock","callback","findEntityRanges","character","EditorConfigTypes","FONT_LIST","UNSTYLED","HEADER_ONE","HEADER_TWO","HEADER_THREE","HEADER_FOUR","HEADER_FIVE","HEADER_SIX","BLOCK_TYPES","UNORDERED_LIST","ORDERED_LIST","INLINE_STYLES","BOLD","ITALIC","UNDERLINE","FontList","unstyled","BlockTypeList","InlineStylesList","bold","italic","underline","MinifiedConfigTypes","fontList","values","decorator","CompositeDecorator","strategy","component","RichTextEditor","wrapperRef","editor","handleKeyCommand","command","newState","RichUtils","keyBindingFn","evt","onTab","getDefaultKeyBinding","stopPropagation","maxTabDepth","toggleButtonBlockType","blockType","toggleBlockType","toggleSelectBlockType","toggleInlineStyle","inlineStyle","toggleLink","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","controlConfig","getControlConfigBySet","controlConfigSet","config","keys","filter","f","focus","className","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","BlockTypeSelectControls","length","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","markdownToHtml","makeHtml","RichTextEditorForLanguage","language","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","React","createElement","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","languages","rest","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","key","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","href","htmlToEditorState","html","convertFromHTML","editorStateToHtml","convertToHTML"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur-partner/rich-text-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.24",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/rich-text-editor.esm.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"react-intl": "^4.6.10 || ^5.8.9"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@entur-partner/common": "^4.0
|
|
32
|
+
"@entur-partner/common": "^4.1.0",
|
|
33
33
|
"@entur-partner/legacy": "^1.0.4",
|
|
34
34
|
"classnames": "^2.2.5",
|
|
35
35
|
"draft-convert": "^2.0.1",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"showdown": "^1.9.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@types/draft-js": "0.
|
|
42
|
+
"@types/draft-js": "0.11.9",
|
|
43
43
|
"identity-obj-proxy": "3.0.0"
|
|
44
44
|
},
|
|
45
45
|
"jest": {
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"reportFile": "jest-sonar-report.xml",
|
|
56
56
|
"indent": 4
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "0939e6ee86338e99c712b40f598749ed6033ed7f"
|
|
59
59
|
}
|