@entur-partner/rich-text-editor 4.0.11 → 4.0.12

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.
@@ -175,12 +175,12 @@ var BlockTypeDropdown = /*#__PURE__*/function (_Component) {
175
175
  options = _this$props.options,
176
176
  selected = _this$props.selected,
177
177
  i18n = _this$props.i18n;
178
- return /*#__PURE__*/React__default["default"].createElement(dropdown.DropdownDeprecated, {
178
+ return /*#__PURE__*/React__default["default"].createElement(dropdown.Dropdown, {
179
179
  className: "block-type-dropdown",
180
180
  items: options.map(function (option) {
181
181
  return _this2.toItem(option);
182
182
  }),
183
- initialSelectedItem: this.toItem(selected),
183
+ selectedItem: this.toItem(selected),
184
184
  label: i18n('styles.style'),
185
185
  onChange: function onChange(selectedItem) {
186
186
  return _this2.handleOnClick(selectedItem.value);
@@ -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 React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction useI18N() {\n const {\n t,\n i18n: { language },\n } = useTranslation();\n\n if (language !== 'nb' && language !== 'en') {\n throw Error('Language must be either nb or en.');\n }\n\n return t;\n}\n\nexport function withI18n(Component) {\n return function WrappedComponent(props) {\n const t = useI18N();\n return <Component {...props} i18n={t} />;\n };\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { DropdownDeprecated } 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 <DropdownDeprecated\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 { Popover } from '@entur/tooltip';\nimport { OverflowMenuItem, OverflowMenu } from '@entur/menu';\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 <OverflowMenuItem\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 </OverflowMenuItem>\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 <OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\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":["useI18N","useTranslation","t","language","i18n","Error","withI18n","Component","WrappedComponent","props","React","BlockTypeDropdown","handleOnClick","selectedOption","onChange","toItem","option","value","style","label","renderFormattedLabel","formattedLabelText","render","options","selected","DropdownDeprecated","map","selectedItem","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","OverflowMenuItem","icon","DownArrowIcon","Popover","OverflowMenu","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","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","createElement","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","name","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 React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction useI18N() {\n const {\n t,\n i18n: { language },\n } = useTranslation();\n\n if (language !== 'nb' && language !== 'en') {\n throw Error('Language must be either nb or en.');\n }\n\n return t;\n}\n\nexport function withI18n(Component) {\n return function WrappedComponent(props) {\n const t = useI18N();\n return <Component {...props} i18n={t} />;\n };\n}\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 selectedItem={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 { Popover } from '@entur/tooltip';\nimport { OverflowMenuItem, OverflowMenu } from '@entur/menu';\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 <OverflowMenuItem\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 </OverflowMenuItem>\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 <OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\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":["useI18N","useTranslation","t","language","i18n","Error","withI18n","Component","WrappedComponent","props","React","BlockTypeDropdown","handleOnClick","selectedOption","onChange","toItem","option","value","style","label","renderFormattedLabel","formattedLabelText","render","options","selected","Dropdown","map","selectedItem","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","OverflowMenuItem","icon","DownArrowIcon","Popover","OverflowMenu","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","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","createElement","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","name","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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("draft-js"),n=require("prop-types"),r=require("classnames"),l=require("@entur/typography"),o=require("@entur/dropdown"),a=require("react-i18next"),i=require("@entur/form"),u=require("@entur/icons"),s=require("@entur-partner/common"),c=require("@entur/button"),d=require("@entur/tooltip"),f=require("@entur/menu"),p=require("@entur/expand"),g=require("markdown-draft-js"),h=require("showdown"),y=require("draft-convert");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=m(e),v=m(n),b=m(r),T=m(h);function S(){return S=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},S.apply(this,arguments)}function C(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,k(e,t)}function k(e,t){return k=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},k(e,t)}function L(e){return function(t){var n=function(){var e=a.useTranslation(),t=e.t,n=e.i18n.language;if("nb"!==n&&"en"!==n)throw Error("Language must be either nb or en.");return t}();return E.default.createElement(e,S({},t,{i18n:n}))}}var w=L(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),l=0;l<n;l++)r[l]=arguments[l];return(t=e.call.apply(e,[this].concat(r))||this).handleOnClick=function(e){(0,t.props.onChange)(e)},t}C(t,e);var n=t.prototype;return n.toItem=function(e){return{value:e.style,label:this.renderFormattedLabel(e.label)}},n.renderFormattedLabel=function(e){var t=this.props.i18n(e);switch(e){case"styles.p":return E.default.createElement("div",{className:"default-p"},t);case"styles.h1":return E.default.createElement("div",{className:"default-h1"},t);case"styles.h2":return E.default.createElement("div",{className:"default-h2"},t);case"styles.h3":return E.default.createElement("div",{className:"default-h3"},t);case"styles.h4":return E.default.createElement("div",{className:"default-h4"},t);case"styles.h5":return E.default.createElement("div",{className:"default-h5"},t);case"styles.h6":return E.default.createElement("div",{className:"default-h6"},t);default:return E.default.createElement("p",null,t)}},n.render=function(){var e=this,t=this.props,n=t.selected,r=t.i18n;return E.default.createElement(o.DropdownDeprecated,{className:"block-type-dropdown",items:t.options.map((function(t){return e.toItem(t)})),initialSelectedItem:this.toItem(n),label:r("styles.style"),onChange:function(t){return e.handleOnClick(t.value)}})},t}(e.Component)),I=function(e){var t=e.editorState,n=e.blockTypes,r=e.onToggle,l=t.getSelection(),o=t.getCurrentContent().getBlockForKey(l.getStartKey()).getType(),a=n.find((function(e){return e.style===o}))||n[0];return E.default.createElement(w,{options:n,selected:a,onChange:r})},N=Object.freeze({ENTER:13});function O(e){return e.keyCode||e.which}var x=L(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),l=0;l<n;l++)r[l]=arguments[l];return(t=e.call.apply(e,[this].concat(r))||this).onToggle=function(e){var n=t.props,r=n.style,l=n.onToggle;e.preventDefault(),l(r)},t.onToggleNoEvent=function(){var e=t.props;(0,e.onToggle)(e.style)},t}return C(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.i18n,r=t.label,l=t.title,o=t.hotKey,a=b.default("editor-stylebutton",{active:t.active});return E.default.createElement("div",{className:a,onMouseDown:this.onToggle,title:n(l)+o,tabIndex:0,onKeyPress:function(t){O(t)===N.ENTER&&e.onToggleNoEvent()}},r)},t}(e.Component)),R=function(e){var t=e.editorState,n=e.blockTypes,r=e.onToggle,l=t.getSelection(),o=t.getCurrentContent().getBlockForKey(l.getStartKey()).getType();return E.default.createElement("div",{className:"controls-group block-editor-controls"},n.map((function(e,t){return E.default.createElement(x,{key:t,active:e.style===o,label:e.label,onToggle:r,style:e.style,title:e.tooltip})})))},D=function(e){function n(){for(var n,r=arguments.length,l=new Array(r),o=0;o<r;o++)l[o]=arguments[o];return(n=e.call.apply(e,[this].concat(l))||this).state={urlValue:"",showUrlInput:!1,hasLink:!1},n.onUrlChange=function(e){n.setState({urlValue:e.target.value})},n.addLink=function(e){e.preventDefault();var t=n.props.editorState,r=t.getSelection();if(!r.isCollapsed()){var l=t.getCurrentContent(),o=r.getStartKey(),a=r.getStartOffset(),i=l.getBlockForKey(o).getEntityAt(a),u="";i&&(u=l.getEntity(i).getData().url),n.setState({showUrlInput:!0,urlValue:u,hasLink:!!u})}},n.confirmLink=function(e){e.preventDefault();var r=n.state.urlValue,l=n.props,o=l.editorState,a=l.onToggle,i=o.getCurrentContent().createEntity("LINK","MUTABLE",{url:r}),u=i.getLastCreatedEntityKey();a(t.EditorState.set(o,{currentContent:i}),u),n.setState({showUrlInput:!1,urlValue:""})},n.cancelLink=function(e){e.preventDefault(),n.setState({showUrlInput:!1,urlValue:""})},n.onLinkInputKeyDown=function(e){O(e)===N.ENTER&&n.confirmLink(e)},n.removeLink=function(e){e.preventDefault();var t=n.props,r=t.editorState,l=t.onToggle,o=n.state.hasLink;!r.getSelection().isCollapsed()&&o&&(l(r,null),n.setState({showUrlInput:!1}))},n}return C(n,e),n.prototype.render=function(){var e=this.props.i18n,t=this.state,n=t.showUrlInput,r=t.hasLink;return E.default.createElement("div",{className:"controls-group block-editor-controls link-controls"},E.default.createElement("div",{className:"editor-stylebutton",title:e("styles.link"),onClick:this.addLink,tabIndex:0},E.default.createElement(u.LinkIcon,null)),n&&E.default.createElement("div",{className:"url-input-container"},E.default.createElement("span",{className:"exit-button",onMouseDown:this.cancelLink},E.default.createElement(u.CloseIcon,null)),E.default.createElement("div",{className:"link-label"},e("common.from")),E.default.createElement("div",{className:"url-input-form"},E.default.createElement(i.TextField,{style:{width:250,margin:5},onChange:this.onUrlChange,value:this.state.urlValue,onKeyDown:this.onLinkInputKeyDown,placeholder:"https://example.com"}),E.default.createElement(c.SecondarySquareButton,{onMouseDown:this.confirmLink},E.default.createElement(u.CheckIcon,{width:15,height:15}))),r&&E.default.createElement("div",{className:"remove-link"},E.default.createElement(s.Unbutton,{onClick:this.removeLink,title:e("styles.unlink")},E.default.createElement(u.UnlinkIcon,null),e("styles.unlink")))))},n}(e.Component);D.propTypes={editorState:v.default.object,onToggle:v.default.func};var B=L(D),j=function(e){var t=e.inlineStyles,n=e.editorState.getCurrentInlineStyle();return E.default.createElement("div",{className:"controls-group inline-editor-controls"},t.map((function(t,r){return E.default.createElement(x,{key:r,active:n.has(t.style),label:t.label,onToggle:e.onToggle,style:t.style,title:t.tooltip,hotKey:t.hotKey})})))},F=function(t){function n(){for(var n,r=arguments.length,l=new Array(r),o=0;o<r;o++)l[o]=arguments[o];return(n=t.call.apply(t,[this].concat(l))||this).tagControlRef=e.createRef(),n.state={isOpen:!1},n.handleClickOutside=function(e){n.tagControlRef&&n.tagControlRef.current&&!n.tagControlRef.current.contains(e.target)&&n.setState({isOpen:!1})},n.handleTagClick=function(e,t){var r=n.props;(0,r.onInsertTag)(r.editorState,""+t[0]+e+t[1])},n}C(n,t);var r=n.prototype;return r.componentDidMount=function(){document.addEventListener("mousedown",this.handleClickOutside)},r.componentWillUnmount=function(){document.removeEventListener("mousedown",this.handleClickOutside)},r.render=function(){var e=this,t=this.props,n=t.i18n,r=this.state.isOpen,l=t.tags.map((function(t,n){var r=t.delimiter||"{}";return E.default.createElement(f.OverflowMenuItem,{key:n,className:"tag-control",id:"tag-control-"+t.tag,onClick:function(){return e.handleTagClick(t.tag,r)}},t.icon,E.default.createElement("span",{className:"tag-control-text"},t.label))}));return E.default.createElement("div",{className:"tag-control-dropdown",ref:this.tagControlRef},E.default.createElement("div",{className:"tag-control-header",onClick:function(){return e.setState((function(e){return{isOpen:!e.isOpen}}))}},n("common.insert"),E.default.createElement(u.DownArrowIcon,{className:"tag-control-chevron",inline:!0})),E.default.createElement(d.Popover,{open:r,className:"tag-control-content"},E.default.createElement(f.OverflowMenu,{className:"action-menu"},l)))},n}(e.Component);F.propTypes={editorState:v.default.object,tags:v.default.arrayOf(v.default.object).isRequired,onInsertTag:v.default.func.isRequired};var K=L(F),M=function(e){return E.default.createElement("a",{href:e.url},e.children)},_=Object.freeze({FONT_LIST:{UNSTYLED:"unstyled",HEADER_ONE:"header-one",HEADER_TWO:"header-two",HEADER_THREE:"header-three",HEADER_FOUR:"header-four",HEADER_FIVE:"header-five",HEADER_SIX:"header-six"},BLOCK_TYPES:{UNORDERED_LIST:"unordered-list",ORDERED_LIST:"ordered-list"},INLINE_STYLES:{BOLD:"bold",ITALIC:"italic",UNDERLINE:"underline"}}),U=Object.freeze({unstyled:{label:"styles.p",style:"unstyled"},"header-one":{label:"styles.h1",style:"header-one"},"header-two":{label:"styles.h2",style:"header-two"},"header-three":{label:"styles.h3",style:"header-three"},"header-four":{label:"styles.h4",style:"header-four"},"header-five":{label:"styles.h5",style:"header-five"},"header-six":{label:"styles.h6",style:"header-six"}}),q=Object.freeze({"unordered-list":{label:E.default.createElement(u.BulletListIcon,null),style:"unordered-list-item",tooltip:"styles.unordered_list_item"},"ordered-list":{label:E.default.createElement(u.NumberListIcon,null),style:"ordered-list-item",tooltip:"styles.ordered_list_item"}}),A=Object.freeze({bold:{label:E.default.createElement(u.BoldIcon,null),style:"BOLD",tooltip:"styles.bold",hotKey:"(Ctrl+B)"},italic:{label:E.default.createElement(u.ItalicIcon,null),style:"ITALIC",tooltip:"styles.italic",hotKey:"(Ctrl+I)"},underline:{label:E.default.createElement(u.UnderlineIcon,null),style:"UNDERLINE",tooltip:"styles.underline",hotKey:"(Ctrl+U)"}}),P=Object.freeze({fontList:[{type:"unstyled",label:"styles.p",style:"unstyled"},{type:"header-two",label:"styles.h1",style:"header-two"}],blockTypes:Object.values(_.BLOCK_TYPES),inlineStyles:[_.INLINE_STYLES.BOLD,_.INLINE_STYLES.ITALIC]}),H=new t.CompositeDecorator([{strategy:function(e,t,n){e.findEntityRanges((function(e){var t=e.getEntity();return null!==t&&"LINK"===n.getEntity(t).getType()}),t)},component:function(e){var t=e.contentState.getEntity(e.entityKey).getData();return E.default.createElement(M,{url:t.url},e.children)}}]),V=function(n){function r(){for(var r,l=arguments.length,o=new Array(l),a=0;a<l;a++)o[a]=arguments[a];return(r=n.call.apply(n,[this].concat(o))||this).wrapperRef=e.createRef(),r.editor=e.createRef(),r.handleKeyCommand=function(e,n){var l=t.RichUtils.handleKeyCommand(n,e);return!!l&&(r.props.onChange(l),!0)},r.keyBindingFn=function(e){return 9===e.keyCode?r.onTab(e):t.getDefaultKeyBinding(e)},r.onTab=function(e){e.stopPropagation();var n=r.props;(0,n.onChange)(t.RichUtils.onTab(e,n.editorState,n.maxTabDepth))},r.toggleButtonBlockType=function(e){var n=r.props;(0,n.onChange)(t.RichUtils.toggleBlockType(n.editorState,e))},r.toggleSelectBlockType=function(e){var n=r.props;(0,n.onChange)(t.RichUtils.toggleBlockType(n.editorState,e))},r.toggleInlineStyle=function(e){var n=r.props;(0,n.onChange)(t.RichUtils.toggleInlineStyle(n.editorState,e))},r.toggleLink=function(e,n){r.props.onChange(t.RichUtils.toggleLink(e,e.getSelection(),n))},r.insertText=function(e,n){var l=t.Modifier.insertText(e.getCurrentContent(),e.getSelection(),n);r.props.onChange(t.EditorState.push(e,l,"insert-characters"),(function(){return r.focusEditor()}))},r.getFontListConfigForPanelType=function(e){return r.getControlConfigBySet(r.props.controlConfigSet)[e]},r.getControlConfigBySet=function(e){return{fontList:(e&&e.fontList||Object.keys(U)).filter((function(e){return"object"==typeof e?U[e.type]:U[e]})).map((function(e){return e.label&&e.style?e:U[e]})),blockTypes:(e&&e.blockTypes||Object.keys(q)).filter((function(e){return"object"==typeof e?q[e.type]:q[e]})).map((function(e){return e.label&&e.style?e:q[e]})),inlineStyles:(e&&e.inlineStyles||Object.keys(A)).filter((function(e){return"object"==typeof e?A[e.type]:A[e]})).map((function(e){return e.label&&e.style?e:A[e]}))}},r}C(r,n);var o=r.prototype;return o.focusEditor=function(){this.editor.current&&this.editor.current.focus()},o.render=function(){var e=this.props,n=e.showFontMenu,r=e.showInlineStyleMenu,o=e.showTextFormatMenu,a=e.showLinkMenu,i=e.label,u=e.tags,s=e.editorState,c=e.onChange,d=e.handleBeforeInput,f=b.default("editor-root",e.className);return E.default.createElement("div",{ref:this.wrapperRef},i&&E.default.createElement(l.Label,null,i),E.default.createElement("div",{className:f},E.default.createElement("div",{className:"controls-wrapper"},n&&E.default.createElement(I,{editorState:s,onToggle:this.toggleSelectBlockType,blockTypes:this.getFontListConfigForPanelType("fontList")}),r&&E.default.createElement(j,{editorState:s,onToggle:this.toggleInlineStyle,inlineStyles:this.getFontListConfigForPanelType("inlineStyles")}),o&&E.default.createElement(R,{editorState:s,onToggle:this.toggleButtonBlockType,blockTypes:this.getFontListConfigForPanelType("blockTypes")}),a&&E.default.createElement(B,{editorState:s,onToggle:this.toggleLink}),u&&u.length>0&&E.default.createElement(K,{editorState:s,tags:u,onInsertTag:this.insertText})),E.default.createElement("div",{className:"editor-wrapper"},E.default.createElement(t.Editor,{ref:this.editor,editorState:s,handleKeyCommand:this.handleKeyCommand,onChange:c,handleBeforeInput:d,keyBindingFn:this.keyBindingFn,spellCheck:!0}))))},r}(e.Component);V.decorator=H;var Y=function(e){return v.default.oneOfType([v.default.arrayOf(v.default.oneOf([].concat(Object.values(e)))),v.default.arrayOf(v.default.shape({type:v.default.oneOf([].concat(Object.values(e))),label:v.default.string,style:v.default.string,tooltip:v.default.string,hotKey:v.default.string}))])};V.propTypes={editorState:v.default.object.isRequired,onChange:v.default.func.isRequired,maxTabDepth:v.default.number,showFontMenu:v.default.bool,showInlineStyleMenu:v.default.bool,showTextFormatMenu:v.default.bool,showLinkMenu:v.default.bool,label:v.default.string,tags:v.default.arrayOf(v.default.object),controlConfigSet:v.default.shape({fontList:Y(_.FONT_LIST),blockTypes:Y(_.BLOCK_TYPES),inlineStyles:Y(_.INLINE_STYLES)})},V.defaultProps={maxTabDepth:4,showFontMenu:!0,showInlineStyleMenu:!0,showTextFormatMenu:!0,showLinkMenu:!0,label:""};var z=function(e){var n=t.convertToRaw(e.getCurrentContent());return g.draftToMarkdown(n,{preserveNewlines:!0})},W=function(e){if(!e)return t.EditorState.createEmpty(H);var n=g.markdownToDraft(e,{preserveNewlines:!0}),r=t.convertFromRaw(n);return t.EditorState.createWithContent(r,H)},X=new T.default.Converter({underline:!0}),G=["name","title","languages"],J=function(t){var n=t.language,r=n.value,l=n.label,o=n.required,a=t.values,u=t.onChange,s=t.variant,c=t.feedback,d=t.tags,f=e.useState(W(a[r])),p=f[0],g=f[1],h=c&&c(r);return E.default.createElement(E.default.Fragment,null,E.default.createElement(V,{label:o?l+"*":l,editorState:p,onChange:function(e){return function(e){var t=S({},a),n=z(e);a[r]&&"\n"===n?delete t[r]:t[r]=n,g(e),u(t)}(e)},controlConfigSet:P,tags:d}),s&&(null==h?void 0:h.length)>0&&E.default.createElement(i.FeedbackText,{variant:s(r)},h))},Q={entityToHTML:function(e,t){return"LINK"===e.type?E.default.createElement(M,{url:e.data.url},t):t}},Z={htmlToEntity:function(e,t,n){if("a"===e)return n("LINK","MUTABLE",{url:t.href})}};exports.EditorConfigTypes=_,exports.ExpandableMultiLanguageRichTextEditor=function(e){var t=e.name,n=e.title,r=e.languages,l=function(e,t){if(null==e)return{};var n,r,l={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(l[n]=e[n]);return l}(e,G);return E.default.createElement(p.ExpandablePanel,{title:n,defaultOpen:!0,contentStyle:{padding:"4px 4px 4px 4px",marginTop:"16px",marginBottom:"16px"}},E.default.createElement(s.Stack,{space:"medium"},r.map((function(e){return E.default.createElement("div",{key:t+e.value,"data-testid":"multi-lang-rich-text-"+t+"-"+e.value},E.default.createElement(J,S({language:e},l)))}))))},exports.MinifiedConfigTypes=P,exports.RichTextEditor=V,exports.editorStateToHtml=function(e){return y.convertToHTML(Q)(e.getCurrentContent())},exports.editorStateToMarkdown=z,exports.htmlToEditorState=function(e){if(!e)return t.EditorState.createEmpty(H);var n=y.convertFromHTML(Z)(e);return t.EditorState.createWithContent(n,H)},exports.markdownToEditorState=W,exports.markdownToHtml=function(e){return X.makeHtml(e)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("draft-js"),n=require("prop-types"),r=require("classnames"),l=require("@entur/typography"),o=require("@entur/dropdown"),a=require("react-i18next"),i=require("@entur/form"),u=require("@entur/icons"),s=require("@entur-partner/common"),c=require("@entur/button"),d=require("@entur/tooltip"),f=require("@entur/menu"),p=require("@entur/expand"),g=require("markdown-draft-js"),h=require("showdown"),y=require("draft-convert");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=m(e),v=m(n),b=m(r),T=m(h);function C(){return C=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},C.apply(this,arguments)}function S(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,k(e,t)}function k(e,t){return k=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},k(e,t)}function L(e){return function(t){var n=function(){var e=a.useTranslation(),t=e.t,n=e.i18n.language;if("nb"!==n&&"en"!==n)throw Error("Language must be either nb or en.");return t}();return E.default.createElement(e,C({},t,{i18n:n}))}}var w=L(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),l=0;l<n;l++)r[l]=arguments[l];return(t=e.call.apply(e,[this].concat(r))||this).handleOnClick=function(e){(0,t.props.onChange)(e)},t}S(t,e);var n=t.prototype;return n.toItem=function(e){return{value:e.style,label:this.renderFormattedLabel(e.label)}},n.renderFormattedLabel=function(e){var t=this.props.i18n(e);switch(e){case"styles.p":return E.default.createElement("div",{className:"default-p"},t);case"styles.h1":return E.default.createElement("div",{className:"default-h1"},t);case"styles.h2":return E.default.createElement("div",{className:"default-h2"},t);case"styles.h3":return E.default.createElement("div",{className:"default-h3"},t);case"styles.h4":return E.default.createElement("div",{className:"default-h4"},t);case"styles.h5":return E.default.createElement("div",{className:"default-h5"},t);case"styles.h6":return E.default.createElement("div",{className:"default-h6"},t);default:return E.default.createElement("p",null,t)}},n.render=function(){var e=this,t=this.props,n=t.selected,r=t.i18n;return E.default.createElement(o.Dropdown,{className:"block-type-dropdown",items:t.options.map((function(t){return e.toItem(t)})),selectedItem:this.toItem(n),label:r("styles.style"),onChange:function(t){return e.handleOnClick(t.value)}})},t}(e.Component)),I=function(e){var t=e.editorState,n=e.blockTypes,r=e.onToggle,l=t.getSelection(),o=t.getCurrentContent().getBlockForKey(l.getStartKey()).getType(),a=n.find((function(e){return e.style===o}))||n[0];return E.default.createElement(w,{options:n,selected:a,onChange:r})},N=Object.freeze({ENTER:13});function O(e){return e.keyCode||e.which}var x=L(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),l=0;l<n;l++)r[l]=arguments[l];return(t=e.call.apply(e,[this].concat(r))||this).onToggle=function(e){var n=t.props,r=n.style,l=n.onToggle;e.preventDefault(),l(r)},t.onToggleNoEvent=function(){var e=t.props;(0,e.onToggle)(e.style)},t}return S(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.i18n,r=t.label,l=t.title,o=t.hotKey,a=b.default("editor-stylebutton",{active:t.active});return E.default.createElement("div",{className:a,onMouseDown:this.onToggle,title:n(l)+o,tabIndex:0,onKeyPress:function(t){O(t)===N.ENTER&&e.onToggleNoEvent()}},r)},t}(e.Component)),R=function(e){var t=e.editorState,n=e.blockTypes,r=e.onToggle,l=t.getSelection(),o=t.getCurrentContent().getBlockForKey(l.getStartKey()).getType();return E.default.createElement("div",{className:"controls-group block-editor-controls"},n.map((function(e,t){return E.default.createElement(x,{key:t,active:e.style===o,label:e.label,onToggle:r,style:e.style,title:e.tooltip})})))},D=function(e){function n(){for(var n,r=arguments.length,l=new Array(r),o=0;o<r;o++)l[o]=arguments[o];return(n=e.call.apply(e,[this].concat(l))||this).state={urlValue:"",showUrlInput:!1,hasLink:!1},n.onUrlChange=function(e){n.setState({urlValue:e.target.value})},n.addLink=function(e){e.preventDefault();var t=n.props.editorState,r=t.getSelection();if(!r.isCollapsed()){var l=t.getCurrentContent(),o=r.getStartKey(),a=r.getStartOffset(),i=l.getBlockForKey(o).getEntityAt(a),u="";i&&(u=l.getEntity(i).getData().url),n.setState({showUrlInput:!0,urlValue:u,hasLink:!!u})}},n.confirmLink=function(e){e.preventDefault();var r=n.state.urlValue,l=n.props,o=l.editorState,a=l.onToggle,i=o.getCurrentContent().createEntity("LINK","MUTABLE",{url:r}),u=i.getLastCreatedEntityKey();a(t.EditorState.set(o,{currentContent:i}),u),n.setState({showUrlInput:!1,urlValue:""})},n.cancelLink=function(e){e.preventDefault(),n.setState({showUrlInput:!1,urlValue:""})},n.onLinkInputKeyDown=function(e){O(e)===N.ENTER&&n.confirmLink(e)},n.removeLink=function(e){e.preventDefault();var t=n.props,r=t.editorState,l=t.onToggle,o=n.state.hasLink;!r.getSelection().isCollapsed()&&o&&(l(r,null),n.setState({showUrlInput:!1}))},n}return S(n,e),n.prototype.render=function(){var e=this.props.i18n,t=this.state,n=t.showUrlInput,r=t.hasLink;return E.default.createElement("div",{className:"controls-group block-editor-controls link-controls"},E.default.createElement("div",{className:"editor-stylebutton",title:e("styles.link"),onClick:this.addLink,tabIndex:0},E.default.createElement(u.LinkIcon,null)),n&&E.default.createElement("div",{className:"url-input-container"},E.default.createElement("span",{className:"exit-button",onMouseDown:this.cancelLink},E.default.createElement(u.CloseIcon,null)),E.default.createElement("div",{className:"link-label"},e("common.from")),E.default.createElement("div",{className:"url-input-form"},E.default.createElement(i.TextField,{style:{width:250,margin:5},onChange:this.onUrlChange,value:this.state.urlValue,onKeyDown:this.onLinkInputKeyDown,placeholder:"https://example.com"}),E.default.createElement(c.SecondarySquareButton,{onMouseDown:this.confirmLink},E.default.createElement(u.CheckIcon,{width:15,height:15}))),r&&E.default.createElement("div",{className:"remove-link"},E.default.createElement(s.Unbutton,{onClick:this.removeLink,title:e("styles.unlink")},E.default.createElement(u.UnlinkIcon,null),e("styles.unlink")))))},n}(e.Component);D.propTypes={editorState:v.default.object,onToggle:v.default.func};var B=L(D),j=function(e){var t=e.inlineStyles,n=e.editorState.getCurrentInlineStyle();return E.default.createElement("div",{className:"controls-group inline-editor-controls"},t.map((function(t,r){return E.default.createElement(x,{key:r,active:n.has(t.style),label:t.label,onToggle:e.onToggle,style:t.style,title:t.tooltip,hotKey:t.hotKey})})))},F=function(t){function n(){for(var n,r=arguments.length,l=new Array(r),o=0;o<r;o++)l[o]=arguments[o];return(n=t.call.apply(t,[this].concat(l))||this).tagControlRef=e.createRef(),n.state={isOpen:!1},n.handleClickOutside=function(e){n.tagControlRef&&n.tagControlRef.current&&!n.tagControlRef.current.contains(e.target)&&n.setState({isOpen:!1})},n.handleTagClick=function(e,t){var r=n.props;(0,r.onInsertTag)(r.editorState,""+t[0]+e+t[1])},n}S(n,t);var r=n.prototype;return r.componentDidMount=function(){document.addEventListener("mousedown",this.handleClickOutside)},r.componentWillUnmount=function(){document.removeEventListener("mousedown",this.handleClickOutside)},r.render=function(){var e=this,t=this.props,n=t.i18n,r=this.state.isOpen,l=t.tags.map((function(t,n){var r=t.delimiter||"{}";return E.default.createElement(f.OverflowMenuItem,{key:n,className:"tag-control",id:"tag-control-"+t.tag,onClick:function(){return e.handleTagClick(t.tag,r)}},t.icon,E.default.createElement("span",{className:"tag-control-text"},t.label))}));return E.default.createElement("div",{className:"tag-control-dropdown",ref:this.tagControlRef},E.default.createElement("div",{className:"tag-control-header",onClick:function(){return e.setState((function(e){return{isOpen:!e.isOpen}}))}},n("common.insert"),E.default.createElement(u.DownArrowIcon,{className:"tag-control-chevron",inline:!0})),E.default.createElement(d.Popover,{open:r,className:"tag-control-content"},E.default.createElement(f.OverflowMenu,{className:"action-menu"},l)))},n}(e.Component);F.propTypes={editorState:v.default.object,tags:v.default.arrayOf(v.default.object).isRequired,onInsertTag:v.default.func.isRequired};var K=L(F),M=function(e){return E.default.createElement("a",{href:e.url},e.children)},_=Object.freeze({FONT_LIST:{UNSTYLED:"unstyled",HEADER_ONE:"header-one",HEADER_TWO:"header-two",HEADER_THREE:"header-three",HEADER_FOUR:"header-four",HEADER_FIVE:"header-five",HEADER_SIX:"header-six"},BLOCK_TYPES:{UNORDERED_LIST:"unordered-list",ORDERED_LIST:"ordered-list"},INLINE_STYLES:{BOLD:"bold",ITALIC:"italic",UNDERLINE:"underline"}}),U=Object.freeze({unstyled:{label:"styles.p",style:"unstyled"},"header-one":{label:"styles.h1",style:"header-one"},"header-two":{label:"styles.h2",style:"header-two"},"header-three":{label:"styles.h3",style:"header-three"},"header-four":{label:"styles.h4",style:"header-four"},"header-five":{label:"styles.h5",style:"header-five"},"header-six":{label:"styles.h6",style:"header-six"}}),q=Object.freeze({"unordered-list":{label:E.default.createElement(u.BulletListIcon,null),style:"unordered-list-item",tooltip:"styles.unordered_list_item"},"ordered-list":{label:E.default.createElement(u.NumberListIcon,null),style:"ordered-list-item",tooltip:"styles.ordered_list_item"}}),A=Object.freeze({bold:{label:E.default.createElement(u.BoldIcon,null),style:"BOLD",tooltip:"styles.bold",hotKey:"(Ctrl+B)"},italic:{label:E.default.createElement(u.ItalicIcon,null),style:"ITALIC",tooltip:"styles.italic",hotKey:"(Ctrl+I)"},underline:{label:E.default.createElement(u.UnderlineIcon,null),style:"UNDERLINE",tooltip:"styles.underline",hotKey:"(Ctrl+U)"}}),P=Object.freeze({fontList:[{type:"unstyled",label:"styles.p",style:"unstyled"},{type:"header-two",label:"styles.h1",style:"header-two"}],blockTypes:Object.values(_.BLOCK_TYPES),inlineStyles:[_.INLINE_STYLES.BOLD,_.INLINE_STYLES.ITALIC]}),H=new t.CompositeDecorator([{strategy:function(e,t,n){e.findEntityRanges((function(e){var t=e.getEntity();return null!==t&&"LINK"===n.getEntity(t).getType()}),t)},component:function(e){var t=e.contentState.getEntity(e.entityKey).getData();return E.default.createElement(M,{url:t.url},e.children)}}]),V=function(n){function r(){for(var r,l=arguments.length,o=new Array(l),a=0;a<l;a++)o[a]=arguments[a];return(r=n.call.apply(n,[this].concat(o))||this).wrapperRef=e.createRef(),r.editor=e.createRef(),r.handleKeyCommand=function(e,n){var l=t.RichUtils.handleKeyCommand(n,e);return!!l&&(r.props.onChange(l),!0)},r.keyBindingFn=function(e){return 9===e.keyCode?r.onTab(e):t.getDefaultKeyBinding(e)},r.onTab=function(e){e.stopPropagation();var n=r.props;(0,n.onChange)(t.RichUtils.onTab(e,n.editorState,n.maxTabDepth))},r.toggleButtonBlockType=function(e){var n=r.props;(0,n.onChange)(t.RichUtils.toggleBlockType(n.editorState,e))},r.toggleSelectBlockType=function(e){var n=r.props;(0,n.onChange)(t.RichUtils.toggleBlockType(n.editorState,e))},r.toggleInlineStyle=function(e){var n=r.props;(0,n.onChange)(t.RichUtils.toggleInlineStyle(n.editorState,e))},r.toggleLink=function(e,n){r.props.onChange(t.RichUtils.toggleLink(e,e.getSelection(),n))},r.insertText=function(e,n){var l=t.Modifier.insertText(e.getCurrentContent(),e.getSelection(),n);r.props.onChange(t.EditorState.push(e,l,"insert-characters"),(function(){return r.focusEditor()}))},r.getFontListConfigForPanelType=function(e){return r.getControlConfigBySet(r.props.controlConfigSet)[e]},r.getControlConfigBySet=function(e){return{fontList:(e&&e.fontList||Object.keys(U)).filter((function(e){return"object"==typeof e?U[e.type]:U[e]})).map((function(e){return e.label&&e.style?e:U[e]})),blockTypes:(e&&e.blockTypes||Object.keys(q)).filter((function(e){return"object"==typeof e?q[e.type]:q[e]})).map((function(e){return e.label&&e.style?e:q[e]})),inlineStyles:(e&&e.inlineStyles||Object.keys(A)).filter((function(e){return"object"==typeof e?A[e.type]:A[e]})).map((function(e){return e.label&&e.style?e:A[e]}))}},r}S(r,n);var o=r.prototype;return o.focusEditor=function(){this.editor.current&&this.editor.current.focus()},o.render=function(){var e=this.props,n=e.showFontMenu,r=e.showInlineStyleMenu,o=e.showTextFormatMenu,a=e.showLinkMenu,i=e.label,u=e.tags,s=e.editorState,c=e.onChange,d=e.handleBeforeInput,f=b.default("editor-root",e.className);return E.default.createElement("div",{ref:this.wrapperRef},i&&E.default.createElement(l.Label,null,i),E.default.createElement("div",{className:f},E.default.createElement("div",{className:"controls-wrapper"},n&&E.default.createElement(I,{editorState:s,onToggle:this.toggleSelectBlockType,blockTypes:this.getFontListConfigForPanelType("fontList")}),r&&E.default.createElement(j,{editorState:s,onToggle:this.toggleInlineStyle,inlineStyles:this.getFontListConfigForPanelType("inlineStyles")}),o&&E.default.createElement(R,{editorState:s,onToggle:this.toggleButtonBlockType,blockTypes:this.getFontListConfigForPanelType("blockTypes")}),a&&E.default.createElement(B,{editorState:s,onToggle:this.toggleLink}),u&&u.length>0&&E.default.createElement(K,{editorState:s,tags:u,onInsertTag:this.insertText})),E.default.createElement("div",{className:"editor-wrapper"},E.default.createElement(t.Editor,{ref:this.editor,editorState:s,handleKeyCommand:this.handleKeyCommand,onChange:c,handleBeforeInput:d,keyBindingFn:this.keyBindingFn,spellCheck:!0}))))},r}(e.Component);V.decorator=H;var Y=function(e){return v.default.oneOfType([v.default.arrayOf(v.default.oneOf([].concat(Object.values(e)))),v.default.arrayOf(v.default.shape({type:v.default.oneOf([].concat(Object.values(e))),label:v.default.string,style:v.default.string,tooltip:v.default.string,hotKey:v.default.string}))])};V.propTypes={editorState:v.default.object.isRequired,onChange:v.default.func.isRequired,maxTabDepth:v.default.number,showFontMenu:v.default.bool,showInlineStyleMenu:v.default.bool,showTextFormatMenu:v.default.bool,showLinkMenu:v.default.bool,label:v.default.string,tags:v.default.arrayOf(v.default.object),controlConfigSet:v.default.shape({fontList:Y(_.FONT_LIST),blockTypes:Y(_.BLOCK_TYPES),inlineStyles:Y(_.INLINE_STYLES)})},V.defaultProps={maxTabDepth:4,showFontMenu:!0,showInlineStyleMenu:!0,showTextFormatMenu:!0,showLinkMenu:!0,label:""};var z=function(e){var n=t.convertToRaw(e.getCurrentContent());return g.draftToMarkdown(n,{preserveNewlines:!0})},W=function(e){if(!e)return t.EditorState.createEmpty(H);var n=g.markdownToDraft(e,{preserveNewlines:!0}),r=t.convertFromRaw(n);return t.EditorState.createWithContent(r,H)},X=new T.default.Converter({underline:!0}),G=["name","title","languages"],J=function(t){var n=t.language,r=n.value,l=n.label,o=n.required,a=t.values,u=t.onChange,s=t.variant,c=t.feedback,d=t.tags,f=e.useState(W(a[r])),p=f[0],g=f[1],h=c&&c(r);return E.default.createElement(E.default.Fragment,null,E.default.createElement(V,{label:o?l+"*":l,editorState:p,onChange:function(e){return function(e){var t=C({},a),n=z(e);a[r]&&"\n"===n?delete t[r]:t[r]=n,g(e),u(t)}(e)},controlConfigSet:P,tags:d}),s&&(null==h?void 0:h.length)>0&&E.default.createElement(i.FeedbackText,{variant:s(r)},h))},Q={entityToHTML:function(e,t){return"LINK"===e.type?E.default.createElement(M,{url:e.data.url},t):t}},Z={htmlToEntity:function(e,t,n){if("a"===e)return n("LINK","MUTABLE",{url:t.href})}};exports.EditorConfigTypes=_,exports.ExpandableMultiLanguageRichTextEditor=function(e){var t=e.name,n=e.title,r=e.languages,l=function(e,t){if(null==e)return{};var n,r,l={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(l[n]=e[n]);return l}(e,G);return E.default.createElement(p.ExpandablePanel,{title:n,defaultOpen:!0,contentStyle:{padding:"4px 4px 4px 4px",marginTop:"16px",marginBottom:"16px"}},E.default.createElement(s.Stack,{space:"medium"},r.map((function(e){return E.default.createElement("div",{key:t+e.value,"data-testid":"multi-lang-rich-text-"+t+"-"+e.value},E.default.createElement(J,C({language:e},l)))}))))},exports.MinifiedConfigTypes=P,exports.RichTextEditor=V,exports.editorStateToHtml=function(e){return y.convertToHTML(Q)(e.getCurrentContent())},exports.editorStateToMarkdown=z,exports.htmlToEditorState=function(e){if(!e)return t.EditorState.createEmpty(H);var n=y.convertFromHTML(Z)(e);return t.EditorState.createWithContent(n,H)},exports.markdownToEditorState=W,exports.markdownToHtml=function(e){return X.makeHtml(e)};
2
2
  //# sourceMappingURL=rich-text-editor.cjs.production.min.js.map
@@ -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 React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction useI18N() {\n const {\n t,\n i18n: { language },\n } = useTranslation();\n\n if (language !== 'nb' && language !== 'en') {\n throw Error('Language must be either nb or en.');\n }\n\n return t;\n}\n\nexport function withI18n(Component) {\n return function WrappedComponent(props) {\n const t = useI18N();\n return <Component {...props} i18n={t} />;\n };\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { DropdownDeprecated } 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 <DropdownDeprecated\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 { Popover } from '@entur/tooltip';\nimport { OverflowMenuItem, OverflowMenu } from '@entur/menu';\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 <OverflowMenuItem\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 </OverflowMenuItem>\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 <OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\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","Component","props","t","_useTranslation","useTranslation","language","i18n","Error","useI18N","React","createElement","_extends","BlockTypeDropdown$1","handleOnClick","selectedOption","onChange","_this","toItem","option","value","style","label","this","renderFormattedLabel","formattedLabelText","className","render","_this2","_this$props","selected","DropdownDeprecated","items","options","map","initialSelectedItem","selectedItem","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","OverflowMenuItem","id","icon","ref","DownArrowIcon","inline","Popover","open","OverflowMenu","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","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","langKey","required","variant","feedback","useState","_useState","setEditorState","feedbackText","Fragment","changedState","newValues","content","handleOnChange","FeedbackText","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","_ref2","name","languages","rest","_objectWithoutPropertiesLoose","_excluded","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","convertToHTML","html","convertFromHTML","makeHtml"],"mappings":"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"}
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 React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction useI18N() {\n const {\n t,\n i18n: { language },\n } = useTranslation();\n\n if (language !== 'nb' && language !== 'en') {\n throw Error('Language must be either nb or en.');\n }\n\n return t;\n}\n\nexport function withI18n(Component) {\n return function WrappedComponent(props) {\n const t = useI18N();\n return <Component {...props} i18n={t} />;\n };\n}\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 selectedItem={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 { Popover } from '@entur/tooltip';\nimport { OverflowMenuItem, OverflowMenu } from '@entur/menu';\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 <OverflowMenuItem\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 </OverflowMenuItem>\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 <OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\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","Component","props","t","_useTranslation","useTranslation","language","i18n","Error","useI18N","React","createElement","_extends","BlockTypeDropdown$1","handleOnClick","selectedOption","onChange","_this","toItem","option","value","style","label","this","renderFormattedLabel","formattedLabelText","className","render","_this2","_this$props","selected","Dropdown","items","options","map","selectedItem","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","OverflowMenuItem","id","icon","ref","DownArrowIcon","inline","Popover","open","OverflowMenu","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","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","langKey","required","variant","feedback","useState","_useState","setEditorState","feedbackText","Fragment","changedState","newValues","content","handleOnChange","FeedbackText","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","_ref2","name","languages","rest","_objectWithoutPropertiesLoose","_excluded","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","convertToHTML","html","convertFromHTML","makeHtml"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { EditorState, CompositeDecorator, Editor, RichUtils, getDefaultKeyBindin
3
3
  import PropTypes from 'prop-types';
4
4
  import cx from 'classnames';
5
5
  import { Label } from '@entur/typography';
6
- import { DropdownDeprecated } from '@entur/dropdown';
6
+ import { Dropdown } from '@entur/dropdown';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { TextField, FeedbackText } from '@entur/form';
9
9
  import { LinkIcon, CloseIcon, CheckIcon, UnlinkIcon, DownArrowIcon, BulletListIcon, NumberListIcon, BoldIcon, ItalicIcon, UnderlineIcon } from '@entur/icons';
@@ -164,12 +164,12 @@ var BlockTypeDropdown = /*#__PURE__*/function (_Component) {
164
164
  options = _this$props.options,
165
165
  selected = _this$props.selected,
166
166
  i18n = _this$props.i18n;
167
- return /*#__PURE__*/React.createElement(DropdownDeprecated, {
167
+ return /*#__PURE__*/React.createElement(Dropdown, {
168
168
  className: "block-type-dropdown",
169
169
  items: options.map(function (option) {
170
170
  return _this2.toItem(option);
171
171
  }),
172
- initialSelectedItem: this.toItem(selected),
172
+ selectedItem: this.toItem(selected),
173
173
  label: i18n('styles.style'),
174
174
  onChange: function onChange(selectedItem) {
175
175
  return _this2.handleOnClick(selectedItem.value);
@@ -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 React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction useI18N() {\n const {\n t,\n i18n: { language },\n } = useTranslation();\n\n if (language !== 'nb' && language !== 'en') {\n throw Error('Language must be either nb or en.');\n }\n\n return t;\n}\n\nexport function withI18n(Component) {\n return function WrappedComponent(props) {\n const t = useI18N();\n return <Component {...props} i18n={t} />;\n };\n}\n","import './styles.scss';\n\nimport React, { Component } from 'react';\nimport { DropdownDeprecated } 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 <DropdownDeprecated\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 { Popover } from '@entur/tooltip';\nimport { OverflowMenuItem, OverflowMenu } from '@entur/menu';\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 <OverflowMenuItem\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 </OverflowMenuItem>\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 <OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\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":["useI18N","useTranslation","t","language","i18n","Error","withI18n","Component","WrappedComponent","props","BlockTypeDropdown","handleOnClick","selectedOption","onChange","toItem","option","value","style","label","renderFormattedLabel","formattedLabelText","render","options","selected","map","selectedItem","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","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","React","createElement","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","name","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 React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nfunction useI18N() {\n const {\n t,\n i18n: { language },\n } = useTranslation();\n\n if (language !== 'nb' && language !== 'en') {\n throw Error('Language must be either nb or en.');\n }\n\n return t;\n}\n\nexport function withI18n(Component) {\n return function WrappedComponent(props) {\n const t = useI18N();\n return <Component {...props} i18n={t} />;\n };\n}\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 selectedItem={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 { Popover } from '@entur/tooltip';\nimport { OverflowMenuItem, OverflowMenu } from '@entur/menu';\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 <OverflowMenuItem\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 </OverflowMenuItem>\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 <OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\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":["useI18N","useTranslation","t","language","i18n","Error","withI18n","Component","WrappedComponent","props","BlockTypeDropdown","handleOnClick","selectedOption","onChange","toItem","option","value","style","label","renderFormattedLabel","formattedLabelText","render","options","selected","map","selectedItem","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","langKey","required","variant","feedback","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","React","createElement","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","name","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": "4.0.11",
3
+ "version": "4.0.12",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/rich-text-editor.esm.js",
@@ -30,7 +30,7 @@
30
30
  "react-i18next": "^12.0.0"
31
31
  },
32
32
  "dependencies": {
33
- "@entur-partner/common": "^5.3.0",
33
+ "@entur-partner/common": "^5.3.1",
34
34
  "classnames": "^2.2.5",
35
35
  "draft-convert": "^2.0.1",
36
36
  "draft-js": "^0.11.7",
@@ -57,5 +57,5 @@
57
57
  "reportFile": "jest-sonar-report.xml",
58
58
  "indent": 4
59
59
  },
60
- "gitHead": "6b4d8ff774ed55234506f8922078fefc0aadd246"
60
+ "gitHead": "04973bdc0747e081dd688d8b62ae282d53c29057"
61
61
  }