@entur-partner/rich-text-editor 6.2.4 → 6.2.5

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-text-editor.cjs.development.js","sources":["../src/events.js","../src/withI18n.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.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":["export const Key = Object.freeze({\n\tENTER: 13,\n});\n\nexport function getKey(event) {\n\treturn event.keyCode || event.which;\n}\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nfunction useI18N() {\n\tconst {\n\t\tt,\n\t\ti18n: { language },\n\t} = useTranslation();\n\n\tif (\n\t\tlanguage !== \"nb\" &&\n\t\tlanguage !== \"en\" &&\n\t\tlanguage !== \"nb-NO\" &&\n\t\tlanguage !== \"en-GB\"\n\t) {\n\t\tthrow Error(\"Language must be either nb or en.\");\n\t}\n\n\treturn t;\n}\n\nexport function withI18n(Component) {\n\treturn function WrappedComponent(props) {\n\t\tconst t = useI18N();\n\t\treturn <Component {...props} i18n={t} />;\n\t};\n}\n","import \"./styles.scss\";\n\nimport cx from \"classnames\";\nimport React, { Component } from \"react\";\nimport { getKey, Key } from \"../../events\";\nimport { withI18n } from \"../../withI18n\";\n\nclass StyleButton extends Component {\n\tonToggle = (e) => {\n\t\tconst { style, onToggle } = this.props;\n\t\te.preventDefault();\n\t\tonToggle(style);\n\t};\n\n\tonToggleNoEvent = () => {\n\t\tconst { style, onToggle } = this.props;\n\t\tonToggle(style);\n\t};\n\n\trender() {\n\t\tconst { i18n, active, label, title, hotKey } = this.props;\n\n\t\tconst classNames = cx(\"editor-stylebutton\", { active });\n\n\t\treturn (\n\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore for now.\n\t\t\t<div\n\t\t\t\tclassName={classNames}\n\t\t\t\tonMouseDown={this.onToggle}\n\t\t\t\ttitle={i18n(title) + hotKey}\n\t\t\t\t// biome-ignore lint/a11y/noNoninteractiveTabindex: Ignore for now.\n\t\t\t\ttabIndex={0}\n\t\t\t\tonKeyPress={(event) => {\n\t\t\t\t\tif (getKey(event) === Key.ENTER) {\n\t\t\t\t\t\tthis.onToggleNoEvent();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t);\n\t}\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\tconst { editorState, blockTypes, onToggle } = props;\n\tconst selection = editorState.getSelection();\n\tconst blockTypeStyle = editorState\n\t\t.getCurrentContent()\n\t\t.getBlockForKey(selection.getStartKey())\n\t\t.getType();\n\n\treturn (\n\t\t<div className=\"controls-group block-editor-controls\">\n\t\t\t{blockTypes.map((type) => (\n\t\t\t\t<StyleButton\n\t\t\t\t\tkey={type.style + type.label}\n\t\t\t\t\tactive={type.style === blockTypeStyle}\n\t\t\t\t\tlabel={type.label}\n\t\t\t\t\tonToggle={onToggle}\n\t\t\t\t\tstyle={type.style}\n\t\t\t\t\ttitle={type.tooltip}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default BlockTypeButtonControls;\n","/** biome-ignore-all lint/a11y/noStaticElementInteractions: Ignore for now. */\n/** biome-ignore-all lint/a11y/noNoninteractiveTabindex: Ignore for now. */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: Ignore for now. */\nimport \"./styles.scss\";\n\nimport { SecondarySquareButton } from \"@entur/button\";\nimport { TextField } from \"@entur/form\";\nimport { CheckIcon, CloseIcon, LinkIcon, UnlinkIcon } from \"@entur/icons\";\nimport { Unbutton } from \"@entur-partner/common\";\nimport { EditorState } from \"draft-js\";\nimport PropTypes from \"prop-types\";\nimport React, { Component } from \"react\";\nimport { getKey, Key } from \"../../events\";\nimport { withI18n } from \"../../withI18n\";\n\nclass BlockTypeLinkControls extends Component {\n\tstate = {\n\t\turlValue: \"\",\n\t\tshowUrlInput: false,\n\t\thasLink: false,\n\t};\n\n\tonUrlChange = (e) => {\n\t\tthis.setState({ urlValue: e.target.value });\n\t};\n\n\taddLink = (e) => {\n\t\te.preventDefault();\n\t\tconst { editorState } = this.props;\n\t\tconst selection = editorState.getSelection();\n\t\tif (!selection.isCollapsed()) {\n\t\t\tconst currentContent = editorState.getCurrentContent();\n\t\t\tconst startKey = selection.getStartKey();\n\t\t\tconst startOffset = selection.getStartOffset();\n\t\t\tconst blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n\t\t\tconst linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n\t\t\tlet url = \"\";\n\t\t\tif (linkKey) {\n\t\t\t\tconst linkInstance = currentContent.getEntity(linkKey);\n\t\t\t\turl = linkInstance.getData().url;\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tshowUrlInput: true,\n\t\t\t\turlValue: url,\n\t\t\t\thasLink: !!url,\n\t\t\t});\n\t\t}\n\t};\n\n\tconfirmLink = (e) => {\n\t\te.preventDefault();\n\t\tconst { urlValue } = this.state;\n\t\tconst { editorState, onToggle } = this.props;\n\t\tconst contentState = editorState.getCurrentContent();\n\t\tconst contentStateWithEntity = contentState.createEntity(\n\t\t\t\"LINK\",\n\t\t\t\"MUTABLE\",\n\t\t\t{ url: urlValue },\n\t\t);\n\t\tconst entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n\t\tconst newEditorState = EditorState.set(editorState, {\n\t\t\tcurrentContent: contentStateWithEntity,\n\t\t});\n\t\tonToggle(newEditorState, entityKey);\n\t\tthis.setState({\n\t\t\tshowUrlInput: false,\n\t\t\turlValue: \"\",\n\t\t});\n\t};\n\n\tcancelLink = (e) => {\n\t\te.preventDefault();\n\t\tthis.setState({\n\t\t\tshowUrlInput: false,\n\t\t\turlValue: \"\",\n\t\t});\n\t};\n\n\tonLinkInputKeyDown = (e) => {\n\t\tif (getKey(e) === Key.ENTER) {\n\t\t\tthis.confirmLink(e);\n\t\t}\n\t};\n\n\tremoveLink = (e) => {\n\t\te.preventDefault();\n\t\tconst { editorState, onToggle } = this.props;\n\t\tconst { hasLink } = this.state;\n\t\tconst selection = editorState.getSelection();\n\t\tif (!selection.isCollapsed() && hasLink) {\n\t\t\tonToggle(editorState, null);\n\t\t\tthis.setState({\n\t\t\t\tshowUrlInput: false,\n\t\t\t});\n\t\t}\n\t};\n\n\trender() {\n\t\tconst { i18n } = this.props;\n\t\tconst { showUrlInput, hasLink } = this.state;\n\t\treturn (\n\t\t\t<div className=\"controls-group block-editor-controls link-controls\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"editor-stylebutton\"\n\t\t\t\t\ttitle={i18n(\"styles.link\")}\n\t\t\t\t\tonClick={this.addLink}\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t>\n\t\t\t\t\t<LinkIcon />\n\t\t\t\t</div>\n\n\t\t\t\t{showUrlInput && (\n\t\t\t\t\t<div className=\"url-input-container\">\n\t\t\t\t\t\t<span className=\"exit-button\" onMouseDown={this.cancelLink}>\n\t\t\t\t\t\t\t<CloseIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<div className=\"link-label\">{i18n(\"common.from\")}</div>\n\t\t\t\t\t\t<div className=\"url-input-form\">\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\tstyle={{ width: 250, margin: 5 }}\n\t\t\t\t\t\t\t\tonChange={this.onUrlChange}\n\t\t\t\t\t\t\t\tvalue={this.state.urlValue}\n\t\t\t\t\t\t\t\tonKeyDown={this.onLinkInputKeyDown}\n\t\t\t\t\t\t\t\tplaceholder=\"https://example.com\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<SecondarySquareButton onMouseDown={this.confirmLink}>\n\t\t\t\t\t\t\t\t<CheckIcon width={15} height={15} />\n\t\t\t\t\t\t\t</SecondarySquareButton>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{hasLink && (\n\t\t\t\t\t\t\t<div className=\"remove-link\">\n\t\t\t\t\t\t\t\t<Unbutton\n\t\t\t\t\t\t\t\t\tonClick={this.removeLink}\n\t\t\t\t\t\t\t\t\ttitle={i18n(\"styles.unlink\")}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<UnlinkIcon />\n\t\t\t\t\t\t\t\t\t{i18n(\"styles.unlink\")}\n\t\t\t\t\t\t\t\t</Unbutton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\nBlockTypeLinkControls.propTypes = {\n\teditorState: PropTypes.object,\n\tonToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import \"./styles.scss\";\n\nimport { Dropdown } from \"@entur/dropdown\";\nimport React, { Component } from \"react\";\n\nimport { withI18n } from \"../../withI18n\";\n\nclass BlockTypeDropdown extends Component {\n\thandleOnClick = (selectedOption) => {\n\t\tconst { onChange } = this.props;\n\t\tonChange(selectedOption);\n\t};\n\n\ttoItem(option) {\n\t\treturn {\n\t\t\tvalue: option.style,\n\t\t\tlabel: this.renderFormattedLabel(option.label),\n\t\t};\n\t}\n\n\trenderFormattedLabel(label) {\n\t\tconst formattedLabelText = this.props.i18n(label);\n\t\tswitch (label) {\n\t\t\tcase \"styles.p\":\n\t\t\t\treturn <div className=\"default-p\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h1\":\n\t\t\t\treturn <div className=\"default-h1\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h2\":\n\t\t\t\treturn <div className=\"default-h2\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h3\":\n\t\t\t\treturn <div className=\"default-h3\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h4\":\n\t\t\t\treturn <div className=\"default-h4\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h5\":\n\t\t\t\treturn <div className=\"default-h5\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h6\":\n\t\t\t\treturn <div className=\"default-h6\">{formattedLabelText}</div>;\n\t\t\tdefault:\n\t\t\t\treturn <p>{formattedLabelText}</p>;\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { options, selected, i18n } = this.props;\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-type-dropdown\"\n\t\t\t\titems={options.map((option) => this.toItem(option))}\n\t\t\t\tselectedItem={this.toItem(selected)}\n\t\t\t\tlabel={i18n(\"styles.style\")}\n\t\t\t\tonChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n\t\t\t/>\n\t\t);\n\t}\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\tconst selection = editorState.getSelection();\n\tconst blockTypeStyle = editorState\n\t\t.getCurrentContent()\n\t\t.getBlockForKey(selection.getStartKey())\n\t\t.getType();\n\n\tconst selectedOption =\n\t\tblockTypes.find((option) => option.style === blockTypeStyle) ||\n\t\tblockTypes[0];\n\n\treturn (\n\t\t<BlockTypeDropdown\n\t\t\toptions={blockTypes}\n\t\t\tselected={selectedOption}\n\t\t\tonChange={onToggle}\n\t\t/>\n\t);\n};\n\nexport default BlockTypeControls;\n","import \"./styles.scss\";\n\nimport React from \"react\";\n\nimport StyleButton from \"../StyleButton\";\n\nconst InlineStyleControls = (props) => {\n\tconst { editorState, inlineStyles } = props;\n\n\tconst currentStyle = editorState.getCurrentInlineStyle();\n\n\treturn (\n\t\t<div className=\"controls-group inline-editor-controls\">\n\t\t\t{inlineStyles.map((type) => (\n\t\t\t\t<StyleButton\n\t\t\t\t\tkey={type.style + type.label}\n\t\t\t\t\tactive={currentStyle.has(type.style)}\n\t\t\t\t\tlabel={type.label}\n\t\t\t\t\tonToggle={props.onToggle}\n\t\t\t\t\tstyle={type.style}\n\t\t\t\t\ttitle={type.tooltip}\n\t\t\t\t\thotKey={type.hotKey}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default InlineStyleControls;\n","import \"./styles.scss\";\n\nimport { DownArrowIcon } from \"@entur/icons\";\nimport { OverflowMenu, OverflowMenuItem } from \"@entur/menu\";\nimport { Popover } from \"@entur/tooltip\";\nimport PropTypes from \"prop-types\";\nimport React, { Component, createRef } from \"react\";\n\nimport { withI18n } from \"../../withI18n\";\n\nclass TagControls extends Component {\n\ttagControlRef = createRef();\n\tstate = { isOpen: false };\n\n\tcomponentDidMount() {\n\t\tdocument.addEventListener(\"mousedown\", this.handleClickOutside);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"mousedown\", this.handleClickOutside);\n\t}\n\n\thandleClickOutside = (e) => {\n\t\tif (\n\t\t\tthis.tagControlRef.current &&\n\t\t\t!this.tagControlRef.current.contains(e.target)\n\t\t) {\n\t\t\tthis.setState({ isOpen: false });\n\t\t}\n\t};\n\n\thandleTagClick = (tag, delimiter) => {\n\t\tconst { editorState, onInsertTag } = this.props;\n\t\tconst delimiterStart = delimiter[0];\n\t\tconst delimiterEnd = delimiter[1];\n\t\tconst fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n\t\tonInsertTag(editorState, fullTag);\n\t};\n\n\trender() {\n\t\tconst { i18n, tags } = this.props;\n\t\tconst { isOpen } = this.state;\n\t\tconst menuItems = tags.map((tag) => {\n\t\t\tconst delimiter = tag.delimiter || \"{}\";\n\t\t\treturn (\n\t\t\t\t<OverflowMenuItem\n\t\t\t\t\tkey={tag.tag}\n\t\t\t\t\tclassName=\"tag-control\"\n\t\t\t\t\tid={`tag-control-${tag.tag}`}\n\t\t\t\t\tonClick={() => this.handleTagClick(tag.tag, delimiter)}\n\t\t\t\t>\n\t\t\t\t\t{tag.icon}\n\t\t\t\t\t<span className=\"tag-control-text\">{tag.label}</span>\n\t\t\t\t</OverflowMenuItem>\n\t\t\t);\n\t\t});\n\n\t\treturn (\n\t\t\t<div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n\t\t\t\t{/** biome-ignore lint/a11y/noStaticElementInteractions: Ignore for now. */}\n\t\t\t\t{/** biome-ignore lint/a11y/useKeyWithClickEvents: Ignore for now. */}\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"tag-control-header\"\n\t\t\t\t\tonClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n\t\t\t\t>\n\t\t\t\t\t{i18n(\"common.insert\")}\n\t\t\t\t\t<DownArrowIcon className=\"tag-control-chevron\" inline />\n\t\t\t\t</div>\n\t\t\t\t<Popover open={isOpen} className=\"tag-control-content\">\n\t\t\t\t\t<OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\n\t\t\t\t</Popover>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTagControls.propTypes = {\n\teditorState: PropTypes.object,\n\ttags: PropTypes.arrayOf(PropTypes.object).isRequired,\n\tonInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from \"react\";\n\nexport const HtmlLink = ({ url, children }) => {\n\treturn <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n\tconst { url } = props.contentState.getEntity(props.entityKey).getData();\n\treturn <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n\tcontentBlock.findEntityRanges((character) => {\n\t\tconst entityKey = character.getEntity();\n\t\treturn (\n\t\t\tentityKey !== null &&\n\t\t\tcontentState.getEntity(entityKey).getType() === \"LINK\"\n\t\t);\n\t}, callback);\n}\n\nexport default Link;\n","import {\n\tBoldIcon,\n\tBulletListIcon,\n\tItalicIcon,\n\tNumberListIcon,\n\tUnderlineIcon,\n} from \"@entur/icons\";\nimport { CompositeDecorator } from \"draft-js\";\nimport React from \"react\";\n\nimport Link, { findLinkEntities } from \"./Link\";\n\nexport const EditorConfigTypes = Object.freeze({\n\tFONT_LIST: {\n\t\tUNSTYLED: \"unstyled\",\n\t\tHEADER_ONE: \"header-one\",\n\t\tHEADER_TWO: \"header-two\",\n\t\tHEADER_THREE: \"header-three\",\n\t\tHEADER_FOUR: \"header-four\",\n\t\tHEADER_FIVE: \"header-five\",\n\t\tHEADER_SIX: \"header-six\",\n\t},\n\tBLOCK_TYPES: {\n\t\tUNORDERED_LIST: \"unordered-list\",\n\t\tORDERED_LIST: \"ordered-list\",\n\t},\n\tINLINE_STYLES: {\n\t\tBOLD: \"bold\",\n\t\tITALIC: \"italic\",\n\t\tUNDERLINE: \"underline\",\n\t},\n});\n\nexport const FontList = Object.freeze({\n\tunstyled: { label: \"styles.p\", style: \"unstyled\" },\n\t\"header-one\": { label: \"styles.h1\", style: \"header-one\" },\n\t\"header-two\": { label: \"styles.h2\", style: \"header-two\" },\n\t\"header-three\": { label: \"styles.h3\", style: \"header-three\" },\n\t\"header-four\": { label: \"styles.h4\", style: \"header-four\" },\n\t\"header-five\": { label: \"styles.h5\", style: \"header-five\" },\n\t\"header-six\": { label: \"styles.h6\", style: \"header-six\" },\n});\n\nexport const BlockTypeList = Object.freeze({\n\t\"unordered-list\": {\n\t\tlabel: <BulletListIcon />,\n\t\tstyle: \"unordered-list-item\",\n\t\ttooltip: \"styles.unordered_list_item\",\n\t},\n\t\"ordered-list\": {\n\t\tlabel: <NumberListIcon />,\n\t\tstyle: \"ordered-list-item\",\n\t\ttooltip: \"styles.ordered_list_item\",\n\t},\n});\n\nexport const InlineStylesList = Object.freeze({\n\tbold: {\n\t\tlabel: <BoldIcon />,\n\t\tstyle: \"BOLD\",\n\t\ttooltip: \"styles.bold\",\n\t\thotKey: \"(Ctrl+B)\",\n\t},\n\titalic: {\n\t\tlabel: <ItalicIcon />,\n\t\tstyle: \"ITALIC\",\n\t\ttooltip: \"styles.italic\",\n\t\thotKey: \"(Ctrl+I)\",\n\t},\n\tunderline: {\n\t\tlabel: <UnderlineIcon />,\n\t\tstyle: \"UNDERLINE\",\n\t\ttooltip: \"styles.underline\",\n\t\thotKey: \"(Ctrl+U)\",\n\t},\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n\tfontList: [\n\t\t{ type: \"unstyled\", label: \"styles.p\", style: \"unstyled\" },\n\t\t{ type: \"header-two\", label: \"styles.h1\", style: \"header-two\" },\n\t],\n\tblockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n\tinlineStyles: [\n\t\tEditorConfigTypes.INLINE_STYLES.BOLD,\n\t\tEditorConfigTypes.INLINE_STYLES.ITALIC,\n\t],\n});\nexport const decorator = new CompositeDecorator([\n\t{\n\t\tstrategy: findLinkEntities,\n\t\tcomponent: Link,\n\t},\n]);\n","import \"./styles.scss\";\n\nimport { Label } from \"@entur/typography\";\nimport cx from \"classnames\";\nimport {\n\tEditor,\n\tEditorState,\n\tgetDefaultKeyBinding,\n\tModifier,\n\tRichUtils,\n} from \"draft-js\";\nimport PropTypes from \"prop-types\";\nimport React, { Component, createRef } from \"react\";\nimport BlockTypeButtonControls from \"./Controls/BlockTypeButtonControls\";\nimport BlockTypeLinkControls from \"./Controls/BlockTypeLinkControls\";\nimport BlockTypeSelectControls from \"./Controls/BlockTypeSelectControls\";\nimport InlineStyleControls from \"./Controls/InlineStyleControls\";\nimport TagControls from \"./Controls/TagControls\";\nimport {\n\tBlockTypeList,\n\tdecorator,\n\tEditorConfigTypes,\n\tFontList,\n\tInlineStylesList,\n} from \"./constants\";\n\nclass RichTextEditor extends Component {\n\tstatic decorator = decorator;\n\n\twrapperRef = createRef();\n\teditor = createRef();\n\n\tfocusEditor() {\n\t\tthis.editor.current?.focus();\n\t}\n\n\thandleKeyCommand = (command, editorState) => {\n\t\tconst newState = RichUtils.handleKeyCommand(editorState, command);\n\t\tif (newState) {\n\t\t\tthis.props.onChange(newState);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\n\tkeyBindingFn = (evt) => {\n\t\tswitch (evt.keyCode) {\n\t\t\tcase 9:\n\t\t\t\treturn this.onTab(evt);\n\t\t\tdefault:\n\t\t\t\treturn getDefaultKeyBinding(evt);\n\t\t}\n\t};\n\n\tonTab = (evt) => {\n\t\tevt.stopPropagation();\n\t\tconst { maxTabDepth, editorState, onChange } = this.props;\n\t\tonChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n\t};\n\n\ttoggleButtonBlockType = (blockType) => {\n\t\tconst { editorState, onChange } = this.props;\n\t\tonChange(RichUtils.toggleBlockType(editorState, blockType));\n\t};\n\n\ttoggleSelectBlockType = (blockType) => {\n\t\tconst { editorState, onChange } = this.props;\n\t\tonChange(RichUtils.toggleBlockType(editorState, blockType));\n\t};\n\n\ttoggleInlineStyle = (inlineStyle) => {\n\t\tconst { editorState, onChange } = this.props;\n\t\tonChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n\t};\n\n\ttoggleLink = (newEditorState, entityKey) => {\n\t\tthis.props.onChange(\n\t\t\tRichUtils.toggleLink(\n\t\t\t\tnewEditorState,\n\t\t\t\tnewEditorState.getSelection(),\n\t\t\t\tentityKey,\n\t\t\t),\n\t\t);\n\t};\n\n\tinsertText = (editorState, text) => {\n\t\tconst newContent = Modifier.insertText(\n\t\t\teditorState.getCurrentContent(),\n\t\t\teditorState.getSelection(),\n\t\t\ttext,\n\t\t);\n\t\tthis.props.onChange(\n\t\t\tEditorState.push(editorState, newContent, \"insert-characters\"),\n\t\t\t() => this.focusEditor(),\n\t\t);\n\t};\n\n\tgetFontListConfigForPanelType = (panelType) => {\n\t\tconst controlConfig = this.getControlConfigBySet(\n\t\t\tthis.props.controlConfigSet,\n\t\t);\n\t\treturn controlConfig[panelType];\n\t};\n\n\tgetControlConfigBySet = (config) => {\n\t\tconst fontList = (config?.fontList || Object.keys(FontList))\n\t\t\t.filter((f) => (typeof f === \"object\" ? FontList[f.type] : FontList[f]))\n\t\t\t.map((f) => (f.label && f.style ? f : FontList[f]));\n\t\tconst blockTypes = (config?.blockTypes || Object.keys(BlockTypeList))\n\t\t\t.filter((f) =>\n\t\t\t\ttypeof f === \"object\" ? BlockTypeList[f.type] : BlockTypeList[f],\n\t\t\t)\n\t\t\t.map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n\t\tconst inlineStyles = (config?.inlineStyles || Object.keys(InlineStylesList))\n\t\t\t.filter((f) =>\n\t\t\t\ttypeof f === \"object\" ? InlineStylesList[f.type] : InlineStylesList[f],\n\t\t\t)\n\t\t\t.map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n\t\treturn {\n\t\t\tfontList,\n\t\t\tblockTypes,\n\t\t\tinlineStyles,\n\t\t};\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tshowFontMenu,\n\t\t\tshowInlineStyleMenu,\n\t\t\tshowTextFormatMenu,\n\t\t\tshowLinkMenu,\n\t\t\tlabel,\n\t\t\ttags,\n\t\t\teditorState,\n\t\t\tonChange,\n\t\t\thandleBeforeInput,\n\t\t} = this.props;\n\n\t\tconst classNames = cx(\"editor-root\", className);\n\n\t\treturn (\n\t\t\t<div ref={this.wrapperRef}>\n\t\t\t\t{label && <Label>{label}</Label>}\n\n\t\t\t\t<div className={classNames}>\n\t\t\t\t\t<div className=\"controls-wrapper\">\n\t\t\t\t\t\t{showFontMenu && (\n\t\t\t\t\t\t\t<BlockTypeSelectControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleSelectBlockType}\n\t\t\t\t\t\t\t\tblockTypes={this.getFontListConfigForPanelType(\"fontList\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showInlineStyleMenu && (\n\t\t\t\t\t\t\t<InlineStyleControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleInlineStyle}\n\t\t\t\t\t\t\t\tinlineStyles={this.getFontListConfigForPanelType(\n\t\t\t\t\t\t\t\t\t\"inlineStyles\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showTextFormatMenu && (\n\t\t\t\t\t\t\t<BlockTypeButtonControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleButtonBlockType}\n\t\t\t\t\t\t\t\tblockTypes={this.getFontListConfigForPanelType(\"blockTypes\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showLinkMenu && (\n\t\t\t\t\t\t\t<BlockTypeLinkControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleLink}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{tags && tags.length > 0 && (\n\t\t\t\t\t\t\t<TagControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\ttags={tags}\n\t\t\t\t\t\t\t\tonInsertTag={this.insertText}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"editor-wrapper\">\n\t\t\t\t\t\t<Editor\n\t\t\t\t\t\t\tref={this.editor}\n\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\thandleKeyCommand={this.handleKeyCommand}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\thandleBeforeInput={handleBeforeInput}\n\t\t\t\t\t\t\tkeyBindingFn={this.keyBindingFn}\n\t\t\t\t\t\t\tspellCheck\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nconst styleShape = (configList) =>\n\tPropTypes.oneOfType([\n\t\tPropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n\t\tPropTypes.arrayOf(\n\t\t\tPropTypes.shape({\n\t\t\t\ttype: PropTypes.oneOf([...Object.values(configList)]),\n\t\t\t\tlabel: PropTypes.string,\n\t\t\t\tstyle: PropTypes.string,\n\t\t\t\ttooltip: PropTypes.string,\n\t\t\t\thotKey: PropTypes.string,\n\t\t\t}),\n\t\t),\n\t]);\n\nRichTextEditor.propTypes = {\n\teditorState: PropTypes.object.isRequired,\n\tonChange: PropTypes.func.isRequired,\n\tmaxTabDepth: PropTypes.number,\n\tshowFontMenu: PropTypes.bool,\n\tshowInlineStyleMenu: PropTypes.bool,\n\tshowTextFormatMenu: PropTypes.bool,\n\tshowLinkMenu: PropTypes.bool,\n\tlabel: PropTypes.string,\n\ttags: PropTypes.arrayOf(PropTypes.object),\n\tcontrolConfigSet: PropTypes.shape({\n\t\tfontList: styleShape(EditorConfigTypes.FONT_LIST),\n\t\tblockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n\t\tinlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n\t}),\n};\nRichTextEditor.defaultProps = {\n\tmaxTabDepth: 4,\n\tshowFontMenu: true,\n\tshowInlineStyleMenu: true,\n\tshowTextFormatMenu: true,\n\tshowLinkMenu: true,\n\tlabel: \"\",\n};\n\nexport default RichTextEditor;\n","import { convertFromRaw, convertToRaw, EditorState } from \"draft-js\";\nimport { draftToMarkdown, markdownToDraft } from \"markdown-draft-js\";\nimport showdown from \"showdown\";\n\nimport { decorator } from \"./constants\";\n\nexport const editorStateToMarkdown = (editorState) => {\n\tconst rawState = convertToRaw(editorState.getCurrentContent());\n\treturn draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n\tif (!markdown) {\n\t\treturn EditorState.createEmpty(decorator);\n\t}\n\tconst rawState = markdownToDraft(markdown, { preserveNewlines: true });\n\tconst contentState = convertFromRaw(rawState);\n\treturn EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n\tunderline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n\treturn converter.makeHtml(markdown);\n};\n","import { ExpandablePanel } from \"@entur/expand\";\nimport { FeedbackText, type VariantType } from \"@entur/form\";\nimport {\n\ttype LanguageKey,\n\ttype LanguageOption,\n\ttype MultiLanguageValues,\n\tStack,\n} from \"@entur-partner/common\";\nimport type { EditorState } from \"draft-js\";\nimport React, { useState } from \"react\";\nimport RichTextEditor from \"./RichTextEditor\";\nimport { MinifiedConfigTypes } from \"./RichTextEditor/constants\";\nimport {\n\teditorStateToMarkdown,\n\tmarkdownToEditorState,\n} from \"./RichTextEditor/markdownConvertion\";\n\ntype MultiLanguageInputProps = {\n\tvalues: MultiLanguageValues;\n\tonChange: (values: MultiLanguageValues) => void;\n\tvariant?: (lang: LanguageKey) => VariantType;\n\tfeedback?: (lang: LanguageKey) => string;\n\ttags?: {\n\t\ttag: string;\n\t\tdelimiter: string;\n\t\tlabel: string;\n\t}[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n\tlanguage: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n\tlanguage: { value: langKey, label, required },\n\tvalues,\n\tonChange,\n\tvariant,\n\tfeedback,\n\ttags,\n}: RichTextEditorForLanguageProps) => {\n\tconst [editorState, setEditorState] = useState<EditorState>(\n\t\tmarkdownToEditorState(values[langKey]),\n\t);\n\n\tconst handleOnChange = (changedState: EditorState) => {\n\t\tconst newValues = { ...values };\n\t\tconst content = editorStateToMarkdown(changedState);\n\t\tif (values[langKey] && content === \"\\n\") {\n\t\t\tdelete newValues[langKey];\n\t\t} else {\n\t\t\tnewValues[langKey] = content;\n\t\t}\n\n\t\tsetEditorState(changedState);\n\t\tonChange(newValues);\n\t};\n\n\tconst feedbackText = feedback?.(langKey);\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextEditor\n\t\t\t\tlabel={required ? `${label}*` : label}\n\t\t\t\teditorState={editorState}\n\t\t\t\tonChange={(changedState: EditorState) => handleOnChange(changedState)}\n\t\t\t\tcontrolConfigSet={MinifiedConfigTypes}\n\t\t\t\ttags={tags}\n\t\t\t/>\n\t\t\t{variant && feedbackText && feedbackText.length > 0 && (\n\t\t\t\t<FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n\tname: string;\n\ttitle: string;\n\tlanguages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n\tname,\n\ttitle,\n\tlanguages,\n\t...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n\t<ExpandablePanel\n\t\ttitle={title}\n\t\tdefaultOpen\n\t\tcontentStyle={{\n\t\t\tpadding: \"4px 4px 4px 4px\",\n\t\t\tmarginTop: \"16px\",\n\t\t\tmarginBottom: \"16px\",\n\t\t}}\n\t>\n\t\t<Stack space=\"medium\">\n\t\t\t{languages.map((lang) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={name + lang.value}\n\t\t\t\t\tdata-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n\t\t\t\t>\n\t\t\t\t\t<RichTextEditorForLanguage language={lang} {...rest} />\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</Stack>\n\t</ExpandablePanel>\n);\n","import { convertFromHTML, convertToHTML } from \"draft-convert\";\nimport { EditorState } from \"draft-js\";\nimport React from \"react\";\nimport { decorator } from \"./constants\";\nimport { HtmlLink } from \"./Link\";\n\nexport const entityToHtml = {\n\tentityToHTML: (entity, originalText) => {\n\t\tif (entity.type === \"LINK\") {\n\t\t\treturn <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n\t\t}\n\t\treturn originalText;\n\t},\n};\n\nexport const htmlToEntity = {\n\thtmlToEntity: (nodeName, node, createEntity) => {\n\t\tif (nodeName === \"a\") {\n\t\t\treturn createEntity(\"LINK\", \"MUTABLE\", { url: node.href });\n\t\t}\n\t},\n};\n\nexport const htmlToEditorState = (html) => {\n\tif (!html) {\n\t\treturn EditorState.createEmpty(decorator);\n\t}\n\tconst rawState = convertFromHTML(htmlToEntity)(html);\n\treturn EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n\treturn convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["Key","Object","freeze","ENTER","getKey","event","keyCode","which","useI18N","_useTranslation","useTranslation","t","language","i18n","Error","withI18n","Component","WrappedComponent","props","React","createElement","_extends","StyleButton","_Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","onToggle","e","_this$props","style","preventDefault","onToggleNoEvent","_this$props2","_inheritsLoose","_proto","prototype","render","_this2","_this$props3","active","label","title","hotKey","classNames","cx","className","onMouseDown","tabIndex","onKeyPress","BlockTypeButtonControls","editorState","blockTypes","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","map","type","key","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","value","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","_this$state","onClick","LinkIcon","CloseIcon","TextField","width","margin","onChange","onKeyDown","placeholder","SecondarySquareButton","CheckIcon","height","Unbutton","UnlinkIcon","propTypes","PropTypes","object","func","BlockTypeDropdown","handleOnClick","selectedOption","toItem","option","renderFormattedLabel","formattedLabelText","options","selected","Dropdown","items","selectedItem","BlockTypeControls","_ref","find","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","id","icon","ref","DownArrowIcon","inline","Popover","open","OverflowMenu","arrayOf","isRequired","HtmlLink","children","href","Link","_props$contentState$g","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","_this$props4","toggleLink","insertText","text","newContent","Modifier","push","focusEditor","getFontListConfigForPanelType","panelType","controlConfig","getControlConfigBySet","controlConfigSet","config","keys","filter","f","_this$editor$current","focus","_this$props5","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","Label","BlockTypeSelectControls","Editor","spellCheck","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","markdownToHtml","makeHtml","RichTextEditorForLanguage","_ref$language","langKey","required","variant","feedback","_useState","useState","setEditorState","handleOnChange","changedState","newValues","content","feedbackText","Fragment","FeedbackText","ExpandableMultiLanguageRichTextEditor","_ref2","name","languages","rest","_objectWithoutPropertiesLoose","_excluded","ExpandablePanel","defaultOpen","contentStyle","padding","marginTop","marginBottom","Stack","space","lang","entityToHtml","entityToHTML","entity","originalText","data","htmlToEntity","nodeName","node","htmlToEditorState","html","convertFromHTML","editorStateToHtml","convertToHTML"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/expand"),t=require("@entur/form"),n=require("@entur-partner/common"),r=require("react"),o=require("@entur/typography"),l=require("classnames"),a=require("draft-js"),i=require("prop-types"),s=require("react-i18next"),c=require("@entur/button"),u=require("@entur/icons"),d=require("@entur/dropdown"),p=require("@entur/menu"),f=require("@entur/tooltip"),g=require("markdown-draft-js"),y=require("showdown"),h=require("draft-convert");function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(null,arguments)}function E(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}var b=Object.freeze({ENTER:13});function T(e){return e.keyCode||e.which}function S(e){return function(t){var n=function(){var e=s.useTranslation(),t=e.t,n=e.i18n.language;if("nb"!==n&&"en"!==n&&"nb-NO"!==n&&"en-GB"!==n)throw Error("Language must be either nb or en.");return t}();return r.createElement(e,m({},t,{i18n:n}))}}var C=S(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).onToggle=function(e){var n=t.props,r=n.style,o=n.onToggle;e.preventDefault(),o(r)},t.onToggleNoEvent=function(){var e=t.props;(0,e.onToggle)(e.style)},t}return E(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.i18n,o=t.label,a=t.title,i=t.hotKey,s=l("editor-stylebutton",{active:t.active});return r.createElement("div",{className:s,onMouseDown:this.onToggle,title:n(a)+i,tabIndex:0,onKeyPress:function(t){T(t)===b.ENTER&&e.onToggleNoEvent()}},o)},t}(r.Component)),k=function(e){var t=e.editorState,n=e.blockTypes,o=e.onToggle,l=t.getSelection(),a=t.getCurrentContent().getBlockForKey(l.getStartKey()).getType();return r.createElement("div",{className:"controls-group block-editor-controls"},n.map(function(e){return r.createElement(C,{key:e.style+e.label,active:e.style===a,label:e.label,onToggle:o,style:e.style,title:e.tooltip})}))},L=function(e){function o(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).state={urlValue:"",showUrlInput:!1,hasLink:!1},t.onUrlChange=function(e){t.setState({urlValue:e.target.value})},t.addLink=function(e){e.preventDefault();var n=t.props.editorState,r=n.getSelection();if(!r.isCollapsed()){var o=n.getCurrentContent(),l=r.getStartKey(),a=r.getStartOffset(),i=o.getBlockForKey(l).getEntityAt(a),s="";i&&(s=o.getEntity(i).getData().url),t.setState({showUrlInput:!0,urlValue:s,hasLink:!!s})}},t.confirmLink=function(e){e.preventDefault();var n=t.state.urlValue,r=t.props,o=r.editorState,l=r.onToggle,i=o.getCurrentContent().createEntity("LINK","MUTABLE",{url:n}),s=i.getLastCreatedEntityKey();l(a.EditorState.set(o,{currentContent:i}),s),t.setState({showUrlInput:!1,urlValue:""})},t.cancelLink=function(e){e.preventDefault(),t.setState({showUrlInput:!1,urlValue:""})},t.onLinkInputKeyDown=function(e){T(e)===b.ENTER&&t.confirmLink(e)},t.removeLink=function(e){e.preventDefault();var n=t.props,r=n.editorState,o=n.onToggle,l=t.state.hasLink;!r.getSelection().isCollapsed()&&l&&(o(r,null),t.setState({showUrlInput:!1}))},t}return E(o,e),o.prototype.render=function(){var e=this.props.i18n,o=this.state,l=o.showUrlInput,a=o.hasLink;return r.createElement("div",{className:"controls-group block-editor-controls link-controls"},r.createElement("div",{className:"editor-stylebutton",title:e("styles.link"),onClick:this.addLink,tabIndex:0},r.createElement(u.LinkIcon,null)),l&&r.createElement("div",{className:"url-input-container"},r.createElement("span",{className:"exit-button",onMouseDown:this.cancelLink},r.createElement(u.CloseIcon,null)),r.createElement("div",{className:"link-label"},e("common.from")),r.createElement("div",{className:"url-input-form"},r.createElement(t.TextField,{style:{width:250,margin:5},onChange:this.onUrlChange,value:this.state.urlValue,onKeyDown:this.onLinkInputKeyDown,placeholder:"https://example.com"}),r.createElement(c.SecondarySquareButton,{onMouseDown:this.confirmLink},r.createElement(u.CheckIcon,{width:15,height:15}))),a&&r.createElement("div",{className:"remove-link"},r.createElement(n.Unbutton,{onClick:this.removeLink,title:e("styles.unlink")},r.createElement(u.UnlinkIcon,null),e("styles.unlink")))))},o}(r.Component);L.propTypes={editorState:i.object,onToggle:i.func};var w=S(L),I=S(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).handleOnClick=function(e){(0,t.props.onChange)(e)},t}E(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 r.createElement("div",{className:"default-p"},t);case"styles.h1":return r.createElement("div",{className:"default-h1"},t);case"styles.h2":return r.createElement("div",{className:"default-h2"},t);case"styles.h3":return r.createElement("div",{className:"default-h3"},t);case"styles.h4":return r.createElement("div",{className:"default-h4"},t);case"styles.h5":return r.createElement("div",{className:"default-h5"},t);case"styles.h6":return r.createElement("div",{className:"default-h6"},t);default:return r.createElement("p",null,t)}},n.render=function(){var e=this,t=this.props,n=t.selected,o=t.i18n;return r.createElement(d.Dropdown,{className:"block-type-dropdown",items:t.options.map(function(t){return e.toItem(t)}),selectedItem:this.toItem(n),label:o("styles.style"),onChange:function(t){return e.handleOnClick(t.value)}})},t}(r.Component)),N=function(e){var t=e.editorState,n=e.blockTypes,o=e.onToggle,l=t.getSelection(),a=t.getCurrentContent().getBlockForKey(l.getStartKey()).getType(),i=n.find(function(e){return e.style===a})||n[0];return r.createElement(I,{options:n,selected:i,onChange:o})},O=function(e){var t=e.inlineStyles,n=e.editorState.getCurrentInlineStyle();return r.createElement("div",{className:"controls-group inline-editor-controls"},t.map(function(t){return r.createElement(C,{key:t.style+t.label,active:n.has(t.style),label:t.label,onToggle:e.onToggle,style:t.style,title:t.tooltip,hotKey:t.hotKey})}))},x=function(e){function t(){for(var t,n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];return(t=e.call.apply(e,[this].concat(o))||this).tagControlRef=r.createRef(),t.state={isOpen:!1},t.handleClickOutside=function(e){t.tagControlRef.current&&!t.tagControlRef.current.contains(e.target)&&t.setState({isOpen:!1})},t.handleTagClick=function(e,n){var r=t.props;(0,r.onInsertTag)(r.editorState,""+n[0]+e+n[1])},t}E(t,e);var n=t.prototype;return n.componentDidMount=function(){document.addEventListener("mousedown",this.handleClickOutside)},n.componentWillUnmount=function(){document.removeEventListener("mousedown",this.handleClickOutside)},n.render=function(){var e=this,t=this.props,n=t.i18n,o=this.state.isOpen,l=t.tags.map(function(t){var n=t.delimiter||"{}";return r.createElement(p.OverflowMenuItem,{key:t.tag,className:"tag-control",id:"tag-control-"+t.tag,onClick:function(){return e.handleTagClick(t.tag,n)}},t.icon,r.createElement("span",{className:"tag-control-text"},t.label))});return r.createElement("div",{className:"tag-control-dropdown",ref:this.tagControlRef},r.createElement("div",{className:"tag-control-header",onClick:function(){return e.setState(function(e){return{isOpen:!e.isOpen}})}},n("common.insert"),r.createElement(u.DownArrowIcon,{className:"tag-control-chevron",inline:!0})),r.createElement(f.Popover,{open:o,className:"tag-control-content"},r.createElement(p.OverflowMenu,{className:"action-menu"},l)))},t}(r.Component);x.propTypes={editorState:i.object,tags:i.arrayOf(i.object).isRequired,onInsertTag:i.func.isRequired};var R=S(x),D=function(e){return r.createElement("a",{href:e.url},e.children)},B=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"}}),F=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"}}),K=Object.freeze({"unordered-list":{label:r.createElement(u.BulletListIcon,null),style:"unordered-list-item",tooltip:"styles.unordered_list_item"},"ordered-list":{label:r.createElement(u.NumberListIcon,null),style:"ordered-list-item",tooltip:"styles.ordered_list_item"}}),M=Object.freeze({bold:{label:r.createElement(u.BoldIcon,null),style:"BOLD",tooltip:"styles.bold",hotKey:"(Ctrl+B)"},italic:{label:r.createElement(u.ItalicIcon,null),style:"ITALIC",tooltip:"styles.italic",hotKey:"(Ctrl+I)"},underline:{label:r.createElement(u.UnderlineIcon,null),style:"UNDERLINE",tooltip:"styles.underline",hotKey:"(Ctrl+U)"}}),j=Object.freeze({fontList:[{type:"unstyled",label:"styles.p",style:"unstyled"},{type:"header-two",label:"styles.h1",style:"header-two"}],blockTypes:Object.values(B.BLOCK_TYPES),inlineStyles:[B.INLINE_STYLES.BOLD,B.INLINE_STYLES.ITALIC]}),_=new a.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 r.createElement(D,{url:t.url},e.children)}}]),U=function(e){function t(){for(var t,n=arguments.length,o=new Array(n),l=0;l<n;l++)o[l]=arguments[l];return(t=e.call.apply(e,[this].concat(o))||this).wrapperRef=r.createRef(),t.editor=r.createRef(),t.handleKeyCommand=function(e,n){var r=a.RichUtils.handleKeyCommand(n,e);return!!r&&(t.props.onChange(r),!0)},t.keyBindingFn=function(e){return 9===e.keyCode?t.onTab(e):a.getDefaultKeyBinding(e)},t.onTab=function(e){e.stopPropagation();var n=t.props;(0,n.onChange)(a.RichUtils.onTab(e,n.editorState,n.maxTabDepth))},t.toggleButtonBlockType=function(e){var n=t.props;(0,n.onChange)(a.RichUtils.toggleBlockType(n.editorState,e))},t.toggleSelectBlockType=function(e){var n=t.props;(0,n.onChange)(a.RichUtils.toggleBlockType(n.editorState,e))},t.toggleInlineStyle=function(e){var n=t.props;(0,n.onChange)(a.RichUtils.toggleInlineStyle(n.editorState,e))},t.toggleLink=function(e,n){t.props.onChange(a.RichUtils.toggleLink(e,e.getSelection(),n))},t.insertText=function(e,n){var r=a.Modifier.insertText(e.getCurrentContent(),e.getSelection(),n);t.props.onChange(a.EditorState.push(e,r,"insert-characters"),function(){return t.focusEditor()})},t.getFontListConfigForPanelType=function(e){return t.getControlConfigBySet(t.props.controlConfigSet)[e]},t.getControlConfigBySet=function(e){return{fontList:((null==e?void 0:e.fontList)||Object.keys(F)).filter(function(e){return"object"==typeof e?F[e.type]:F[e]}).map(function(e){return e.label&&e.style?e:F[e]}),blockTypes:((null==e?void 0:e.blockTypes)||Object.keys(K)).filter(function(e){return"object"==typeof e?K[e.type]:K[e]}).map(function(e){return e.label&&e.style?e:K[e]}),inlineStyles:((null==e?void 0:e.inlineStyles)||Object.keys(M)).filter(function(e){return"object"==typeof e?M[e.type]:M[e]}).map(function(e){return e.label&&e.style?e:M[e]})}},t}E(t,e);var n=t.prototype;return n.focusEditor=function(){var e;null==(e=this.editor.current)||e.focus()},n.render=function(){var e=this.props,t=e.showFontMenu,n=e.showInlineStyleMenu,i=e.showTextFormatMenu,s=e.showLinkMenu,c=e.label,u=e.tags,d=e.editorState,p=e.onChange,f=e.handleBeforeInput,g=l("editor-root",e.className);return r.createElement("div",{ref:this.wrapperRef},c&&r.createElement(o.Label,null,c),r.createElement("div",{className:g},r.createElement("div",{className:"controls-wrapper"},t&&r.createElement(N,{editorState:d,onToggle:this.toggleSelectBlockType,blockTypes:this.getFontListConfigForPanelType("fontList")}),n&&r.createElement(O,{editorState:d,onToggle:this.toggleInlineStyle,inlineStyles:this.getFontListConfigForPanelType("inlineStyles")}),i&&r.createElement(k,{editorState:d,onToggle:this.toggleButtonBlockType,blockTypes:this.getFontListConfigForPanelType("blockTypes")}),s&&r.createElement(w,{editorState:d,onToggle:this.toggleLink}),u&&u.length>0&&r.createElement(R,{editorState:d,tags:u,onInsertTag:this.insertText})),r.createElement("div",{className:"editor-wrapper"},r.createElement(a.Editor,{ref:this.editor,editorState:d,handleKeyCommand:this.handleKeyCommand,onChange:p,handleBeforeInput:f,keyBindingFn:this.keyBindingFn,spellCheck:!0}))))},t}(r.Component);U.decorator=_;var q=function(e){return i.oneOfType([i.arrayOf(i.oneOf([].concat(Object.values(e)))),i.arrayOf(i.shape({type:i.oneOf([].concat(Object.values(e))),label:i.string,style:i.string,tooltip:i.string,hotKey:i.string}))])};U.propTypes={editorState:i.object.isRequired,onChange:i.func.isRequired,maxTabDepth:i.number,showFontMenu:i.bool,showInlineStyleMenu:i.bool,showTextFormatMenu:i.bool,showLinkMenu:i.bool,label:i.string,tags:i.arrayOf(i.object),controlConfigSet:i.shape({fontList:q(B.FONT_LIST),blockTypes:q(B.BLOCK_TYPES),inlineStyles:q(B.INLINE_STYLES)})},U.defaultProps={maxTabDepth:4,showFontMenu:!0,showInlineStyleMenu:!0,showTextFormatMenu:!0,showLinkMenu:!0,label:""};var A=function(e){var t=a.convertToRaw(e.getCurrentContent());return g.draftToMarkdown(t,{preserveNewlines:!0})},P=function(e){if(!e)return a.EditorState.createEmpty(_);var t=g.markdownToDraft(e,{preserveNewlines:!0}),n=a.convertFromRaw(t);return a.EditorState.createWithContent(n,_)},H=new y.Converter({underline:!0}),V=["name","title","languages"],Y=function(e){var n=e.language,o=n.value,l=n.label,a=n.required,i=e.values,s=e.onChange,c=e.variant,u=e.feedback,d=e.tags,p=r.useState(P(i[o])),f=p[0],g=p[1],y=null==u?void 0:u(o);return r.createElement(r.Fragment,null,r.createElement(U,{label:a?l+"*":l,editorState:f,onChange:function(e){return function(e){var t=m({},i),n=A(e);i[o]&&"\n"===n?delete t[o]:t[o]=n,g(e),s(t)}(e)},controlConfigSet:j,tags:d}),c&&y&&y.length>0&&r.createElement(t.FeedbackText,{variant:c(o)},y))},z={entityToHTML:function(e,t){return"LINK"===e.type?r.createElement(D,{url:e.data.url},t):t}},W={htmlToEntity:function(e,t,n){if("a"===e)return n("LINK","MUTABLE",{url:t.href})}};exports.EditorConfigTypes=B,exports.ExpandableMultiLanguageRichTextEditor=function(t){var o=t.name,l=t.title,a=t.languages,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(t,V);return r.createElement(e.ExpandablePanel,{title:l,defaultOpen:!0,contentStyle:{padding:"4px 4px 4px 4px",marginTop:"16px",marginBottom:"16px"}},r.createElement(n.Stack,{space:"medium"},a.map(function(e){return r.createElement("div",{key:o+e.value,"data-testid":"multi-lang-rich-text-"+o+"-"+e.value},r.createElement(Y,m({language:e},i)))})))},exports.MinifiedConfigTypes=j,exports.RichTextEditor=U,exports.editorStateToHtml=function(e){return h.convertToHTML(z)(e.getCurrentContent())},exports.editorStateToMarkdown=A,exports.htmlToEditorState=function(e){if(!e)return a.EditorState.createEmpty(_);var t=h.convertFromHTML(W)(e);return a.EditorState.createWithContent(t,_)},exports.markdownToEditorState=P,exports.markdownToHtml=function(e){return H.makeHtml(e)};
2
+ //# sourceMappingURL=rich-text-editor.cjs.production.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-text-editor.cjs.production.min.js","sources":["../src/events.js","../src/withI18n.js","../src/RichTextEditor/StyleButton/index.js","../src/RichTextEditor/Controls/BlockTypeButtonControls.js","../src/RichTextEditor/Controls/BlockTypeLinkControls.js","../src/RichTextEditor/BlockTypeDropdown/index.js","../src/RichTextEditor/Controls/BlockTypeSelectControls.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":["export const Key = Object.freeze({\n\tENTER: 13,\n});\n\nexport function getKey(event) {\n\treturn event.keyCode || event.which;\n}\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nfunction useI18N() {\n\tconst {\n\t\tt,\n\t\ti18n: { language },\n\t} = useTranslation();\n\n\tif (\n\t\tlanguage !== \"nb\" &&\n\t\tlanguage !== \"en\" &&\n\t\tlanguage !== \"nb-NO\" &&\n\t\tlanguage !== \"en-GB\"\n\t) {\n\t\tthrow Error(\"Language must be either nb or en.\");\n\t}\n\n\treturn t;\n}\n\nexport function withI18n(Component) {\n\treturn function WrappedComponent(props) {\n\t\tconst t = useI18N();\n\t\treturn <Component {...props} i18n={t} />;\n\t};\n}\n","import \"./styles.scss\";\n\nimport cx from \"classnames\";\nimport React, { Component } from \"react\";\nimport { getKey, Key } from \"../../events\";\nimport { withI18n } from \"../../withI18n\";\n\nclass StyleButton extends Component {\n\tonToggle = (e) => {\n\t\tconst { style, onToggle } = this.props;\n\t\te.preventDefault();\n\t\tonToggle(style);\n\t};\n\n\tonToggleNoEvent = () => {\n\t\tconst { style, onToggle } = this.props;\n\t\tonToggle(style);\n\t};\n\n\trender() {\n\t\tconst { i18n, active, label, title, hotKey } = this.props;\n\n\t\tconst classNames = cx(\"editor-stylebutton\", { active });\n\n\t\treturn (\n\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Ignore for now.\n\t\t\t<div\n\t\t\t\tclassName={classNames}\n\t\t\t\tonMouseDown={this.onToggle}\n\t\t\t\ttitle={i18n(title) + hotKey}\n\t\t\t\t// biome-ignore lint/a11y/noNoninteractiveTabindex: Ignore for now.\n\t\t\t\ttabIndex={0}\n\t\t\t\tonKeyPress={(event) => {\n\t\t\t\t\tif (getKey(event) === Key.ENTER) {\n\t\t\t\t\t\tthis.onToggleNoEvent();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t);\n\t}\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\tconst { editorState, blockTypes, onToggle } = props;\n\tconst selection = editorState.getSelection();\n\tconst blockTypeStyle = editorState\n\t\t.getCurrentContent()\n\t\t.getBlockForKey(selection.getStartKey())\n\t\t.getType();\n\n\treturn (\n\t\t<div className=\"controls-group block-editor-controls\">\n\t\t\t{blockTypes.map((type) => (\n\t\t\t\t<StyleButton\n\t\t\t\t\tkey={type.style + type.label}\n\t\t\t\t\tactive={type.style === blockTypeStyle}\n\t\t\t\t\tlabel={type.label}\n\t\t\t\t\tonToggle={onToggle}\n\t\t\t\t\tstyle={type.style}\n\t\t\t\t\ttitle={type.tooltip}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default BlockTypeButtonControls;\n","/** biome-ignore-all lint/a11y/noStaticElementInteractions: Ignore for now. */\n/** biome-ignore-all lint/a11y/noNoninteractiveTabindex: Ignore for now. */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: Ignore for now. */\nimport \"./styles.scss\";\n\nimport { SecondarySquareButton } from \"@entur/button\";\nimport { TextField } from \"@entur/form\";\nimport { CheckIcon, CloseIcon, LinkIcon, UnlinkIcon } from \"@entur/icons\";\nimport { Unbutton } from \"@entur-partner/common\";\nimport { EditorState } from \"draft-js\";\nimport PropTypes from \"prop-types\";\nimport React, { Component } from \"react\";\nimport { getKey, Key } from \"../../events\";\nimport { withI18n } from \"../../withI18n\";\n\nclass BlockTypeLinkControls extends Component {\n\tstate = {\n\t\turlValue: \"\",\n\t\tshowUrlInput: false,\n\t\thasLink: false,\n\t};\n\n\tonUrlChange = (e) => {\n\t\tthis.setState({ urlValue: e.target.value });\n\t};\n\n\taddLink = (e) => {\n\t\te.preventDefault();\n\t\tconst { editorState } = this.props;\n\t\tconst selection = editorState.getSelection();\n\t\tif (!selection.isCollapsed()) {\n\t\t\tconst currentContent = editorState.getCurrentContent();\n\t\t\tconst startKey = selection.getStartKey();\n\t\t\tconst startOffset = selection.getStartOffset();\n\t\t\tconst blockWithLinkAtBeginning = currentContent.getBlockForKey(startKey);\n\t\t\tconst linkKey = blockWithLinkAtBeginning.getEntityAt(startOffset);\n\n\t\t\tlet url = \"\";\n\t\t\tif (linkKey) {\n\t\t\t\tconst linkInstance = currentContent.getEntity(linkKey);\n\t\t\t\turl = linkInstance.getData().url;\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tshowUrlInput: true,\n\t\t\t\turlValue: url,\n\t\t\t\thasLink: !!url,\n\t\t\t});\n\t\t}\n\t};\n\n\tconfirmLink = (e) => {\n\t\te.preventDefault();\n\t\tconst { urlValue } = this.state;\n\t\tconst { editorState, onToggle } = this.props;\n\t\tconst contentState = editorState.getCurrentContent();\n\t\tconst contentStateWithEntity = contentState.createEntity(\n\t\t\t\"LINK\",\n\t\t\t\"MUTABLE\",\n\t\t\t{ url: urlValue },\n\t\t);\n\t\tconst entityKey = contentStateWithEntity.getLastCreatedEntityKey();\n\t\tconst newEditorState = EditorState.set(editorState, {\n\t\t\tcurrentContent: contentStateWithEntity,\n\t\t});\n\t\tonToggle(newEditorState, entityKey);\n\t\tthis.setState({\n\t\t\tshowUrlInput: false,\n\t\t\turlValue: \"\",\n\t\t});\n\t};\n\n\tcancelLink = (e) => {\n\t\te.preventDefault();\n\t\tthis.setState({\n\t\t\tshowUrlInput: false,\n\t\t\turlValue: \"\",\n\t\t});\n\t};\n\n\tonLinkInputKeyDown = (e) => {\n\t\tif (getKey(e) === Key.ENTER) {\n\t\t\tthis.confirmLink(e);\n\t\t}\n\t};\n\n\tremoveLink = (e) => {\n\t\te.preventDefault();\n\t\tconst { editorState, onToggle } = this.props;\n\t\tconst { hasLink } = this.state;\n\t\tconst selection = editorState.getSelection();\n\t\tif (!selection.isCollapsed() && hasLink) {\n\t\t\tonToggle(editorState, null);\n\t\t\tthis.setState({\n\t\t\t\tshowUrlInput: false,\n\t\t\t});\n\t\t}\n\t};\n\n\trender() {\n\t\tconst { i18n } = this.props;\n\t\tconst { showUrlInput, hasLink } = this.state;\n\t\treturn (\n\t\t\t<div className=\"controls-group block-editor-controls link-controls\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"editor-stylebutton\"\n\t\t\t\t\ttitle={i18n(\"styles.link\")}\n\t\t\t\t\tonClick={this.addLink}\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t>\n\t\t\t\t\t<LinkIcon />\n\t\t\t\t</div>\n\n\t\t\t\t{showUrlInput && (\n\t\t\t\t\t<div className=\"url-input-container\">\n\t\t\t\t\t\t<span className=\"exit-button\" onMouseDown={this.cancelLink}>\n\t\t\t\t\t\t\t<CloseIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<div className=\"link-label\">{i18n(\"common.from\")}</div>\n\t\t\t\t\t\t<div className=\"url-input-form\">\n\t\t\t\t\t\t\t<TextField\n\t\t\t\t\t\t\t\tstyle={{ width: 250, margin: 5 }}\n\t\t\t\t\t\t\t\tonChange={this.onUrlChange}\n\t\t\t\t\t\t\t\tvalue={this.state.urlValue}\n\t\t\t\t\t\t\t\tonKeyDown={this.onLinkInputKeyDown}\n\t\t\t\t\t\t\t\tplaceholder=\"https://example.com\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<SecondarySquareButton onMouseDown={this.confirmLink}>\n\t\t\t\t\t\t\t\t<CheckIcon width={15} height={15} />\n\t\t\t\t\t\t\t</SecondarySquareButton>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{hasLink && (\n\t\t\t\t\t\t\t<div className=\"remove-link\">\n\t\t\t\t\t\t\t\t<Unbutton\n\t\t\t\t\t\t\t\t\tonClick={this.removeLink}\n\t\t\t\t\t\t\t\t\ttitle={i18n(\"styles.unlink\")}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<UnlinkIcon />\n\t\t\t\t\t\t\t\t\t{i18n(\"styles.unlink\")}\n\t\t\t\t\t\t\t\t</Unbutton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\nBlockTypeLinkControls.propTypes = {\n\teditorState: PropTypes.object,\n\tonToggle: PropTypes.func,\n};\n\nexport default withI18n(BlockTypeLinkControls);\n","import \"./styles.scss\";\n\nimport { Dropdown } from \"@entur/dropdown\";\nimport React, { Component } from \"react\";\n\nimport { withI18n } from \"../../withI18n\";\n\nclass BlockTypeDropdown extends Component {\n\thandleOnClick = (selectedOption) => {\n\t\tconst { onChange } = this.props;\n\t\tonChange(selectedOption);\n\t};\n\n\ttoItem(option) {\n\t\treturn {\n\t\t\tvalue: option.style,\n\t\t\tlabel: this.renderFormattedLabel(option.label),\n\t\t};\n\t}\n\n\trenderFormattedLabel(label) {\n\t\tconst formattedLabelText = this.props.i18n(label);\n\t\tswitch (label) {\n\t\t\tcase \"styles.p\":\n\t\t\t\treturn <div className=\"default-p\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h1\":\n\t\t\t\treturn <div className=\"default-h1\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h2\":\n\t\t\t\treturn <div className=\"default-h2\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h3\":\n\t\t\t\treturn <div className=\"default-h3\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h4\":\n\t\t\t\treturn <div className=\"default-h4\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h5\":\n\t\t\t\treturn <div className=\"default-h5\">{formattedLabelText}</div>;\n\t\t\tcase \"styles.h6\":\n\t\t\t\treturn <div className=\"default-h6\">{formattedLabelText}</div>;\n\t\t\tdefault:\n\t\t\t\treturn <p>{formattedLabelText}</p>;\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { options, selected, i18n } = this.props;\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-type-dropdown\"\n\t\t\t\titems={options.map((option) => this.toItem(option))}\n\t\t\t\tselectedItem={this.toItem(selected)}\n\t\t\t\tlabel={i18n(\"styles.style\")}\n\t\t\t\tonChange={(selectedItem) => this.handleOnClick(selectedItem.value)}\n\t\t\t/>\n\t\t);\n\t}\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\tconst selection = editorState.getSelection();\n\tconst blockTypeStyle = editorState\n\t\t.getCurrentContent()\n\t\t.getBlockForKey(selection.getStartKey())\n\t\t.getType();\n\n\tconst selectedOption =\n\t\tblockTypes.find((option) => option.style === blockTypeStyle) ||\n\t\tblockTypes[0];\n\n\treturn (\n\t\t<BlockTypeDropdown\n\t\t\toptions={blockTypes}\n\t\t\tselected={selectedOption}\n\t\t\tonChange={onToggle}\n\t\t/>\n\t);\n};\n\nexport default BlockTypeControls;\n","import \"./styles.scss\";\n\nimport React from \"react\";\n\nimport StyleButton from \"../StyleButton\";\n\nconst InlineStyleControls = (props) => {\n\tconst { editorState, inlineStyles } = props;\n\n\tconst currentStyle = editorState.getCurrentInlineStyle();\n\n\treturn (\n\t\t<div className=\"controls-group inline-editor-controls\">\n\t\t\t{inlineStyles.map((type) => (\n\t\t\t\t<StyleButton\n\t\t\t\t\tkey={type.style + type.label}\n\t\t\t\t\tactive={currentStyle.has(type.style)}\n\t\t\t\t\tlabel={type.label}\n\t\t\t\t\tonToggle={props.onToggle}\n\t\t\t\t\tstyle={type.style}\n\t\t\t\t\ttitle={type.tooltip}\n\t\t\t\t\thotKey={type.hotKey}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default InlineStyleControls;\n","import \"./styles.scss\";\n\nimport { DownArrowIcon } from \"@entur/icons\";\nimport { OverflowMenu, OverflowMenuItem } from \"@entur/menu\";\nimport { Popover } from \"@entur/tooltip\";\nimport PropTypes from \"prop-types\";\nimport React, { Component, createRef } from \"react\";\n\nimport { withI18n } from \"../../withI18n\";\n\nclass TagControls extends Component {\n\ttagControlRef = createRef();\n\tstate = { isOpen: false };\n\n\tcomponentDidMount() {\n\t\tdocument.addEventListener(\"mousedown\", this.handleClickOutside);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"mousedown\", this.handleClickOutside);\n\t}\n\n\thandleClickOutside = (e) => {\n\t\tif (\n\t\t\tthis.tagControlRef.current &&\n\t\t\t!this.tagControlRef.current.contains(e.target)\n\t\t) {\n\t\t\tthis.setState({ isOpen: false });\n\t\t}\n\t};\n\n\thandleTagClick = (tag, delimiter) => {\n\t\tconst { editorState, onInsertTag } = this.props;\n\t\tconst delimiterStart = delimiter[0];\n\t\tconst delimiterEnd = delimiter[1];\n\t\tconst fullTag = `${delimiterStart}${tag}${delimiterEnd}`;\n\t\tonInsertTag(editorState, fullTag);\n\t};\n\n\trender() {\n\t\tconst { i18n, tags } = this.props;\n\t\tconst { isOpen } = this.state;\n\t\tconst menuItems = tags.map((tag) => {\n\t\t\tconst delimiter = tag.delimiter || \"{}\";\n\t\t\treturn (\n\t\t\t\t<OverflowMenuItem\n\t\t\t\t\tkey={tag.tag}\n\t\t\t\t\tclassName=\"tag-control\"\n\t\t\t\t\tid={`tag-control-${tag.tag}`}\n\t\t\t\t\tonClick={() => this.handleTagClick(tag.tag, delimiter)}\n\t\t\t\t>\n\t\t\t\t\t{tag.icon}\n\t\t\t\t\t<span className=\"tag-control-text\">{tag.label}</span>\n\t\t\t\t</OverflowMenuItem>\n\t\t\t);\n\t\t});\n\n\t\treturn (\n\t\t\t<div className=\"tag-control-dropdown\" ref={this.tagControlRef}>\n\t\t\t\t{/** biome-ignore lint/a11y/noStaticElementInteractions: Ignore for now. */}\n\t\t\t\t{/** biome-ignore lint/a11y/useKeyWithClickEvents: Ignore for now. */}\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"tag-control-header\"\n\t\t\t\t\tonClick={() => this.setState(({ isOpen }) => ({ isOpen: !isOpen }))}\n\t\t\t\t>\n\t\t\t\t\t{i18n(\"common.insert\")}\n\t\t\t\t\t<DownArrowIcon className=\"tag-control-chevron\" inline />\n\t\t\t\t</div>\n\t\t\t\t<Popover open={isOpen} className=\"tag-control-content\">\n\t\t\t\t\t<OverflowMenu className=\"action-menu\">{menuItems}</OverflowMenu>\n\t\t\t\t</Popover>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTagControls.propTypes = {\n\teditorState: PropTypes.object,\n\ttags: PropTypes.arrayOf(PropTypes.object).isRequired,\n\tonInsertTag: PropTypes.func.isRequired,\n};\n\nexport default withI18n(TagControls);\n","import React from \"react\";\n\nexport const HtmlLink = ({ url, children }) => {\n\treturn <a href={url}>{children}</a>;\n};\n\nconst Link = (props) => {\n\tconst { url } = props.contentState.getEntity(props.entityKey).getData();\n\treturn <HtmlLink url={url}>{props.children}</HtmlLink>;\n};\n\nexport function findLinkEntities(contentBlock, callback, contentState) {\n\tcontentBlock.findEntityRanges((character) => {\n\t\tconst entityKey = character.getEntity();\n\t\treturn (\n\t\t\tentityKey !== null &&\n\t\t\tcontentState.getEntity(entityKey).getType() === \"LINK\"\n\t\t);\n\t}, callback);\n}\n\nexport default Link;\n","import {\n\tBoldIcon,\n\tBulletListIcon,\n\tItalicIcon,\n\tNumberListIcon,\n\tUnderlineIcon,\n} from \"@entur/icons\";\nimport { CompositeDecorator } from \"draft-js\";\nimport React from \"react\";\n\nimport Link, { findLinkEntities } from \"./Link\";\n\nexport const EditorConfigTypes = Object.freeze({\n\tFONT_LIST: {\n\t\tUNSTYLED: \"unstyled\",\n\t\tHEADER_ONE: \"header-one\",\n\t\tHEADER_TWO: \"header-two\",\n\t\tHEADER_THREE: \"header-three\",\n\t\tHEADER_FOUR: \"header-four\",\n\t\tHEADER_FIVE: \"header-five\",\n\t\tHEADER_SIX: \"header-six\",\n\t},\n\tBLOCK_TYPES: {\n\t\tUNORDERED_LIST: \"unordered-list\",\n\t\tORDERED_LIST: \"ordered-list\",\n\t},\n\tINLINE_STYLES: {\n\t\tBOLD: \"bold\",\n\t\tITALIC: \"italic\",\n\t\tUNDERLINE: \"underline\",\n\t},\n});\n\nexport const FontList = Object.freeze({\n\tunstyled: { label: \"styles.p\", style: \"unstyled\" },\n\t\"header-one\": { label: \"styles.h1\", style: \"header-one\" },\n\t\"header-two\": { label: \"styles.h2\", style: \"header-two\" },\n\t\"header-three\": { label: \"styles.h3\", style: \"header-three\" },\n\t\"header-four\": { label: \"styles.h4\", style: \"header-four\" },\n\t\"header-five\": { label: \"styles.h5\", style: \"header-five\" },\n\t\"header-six\": { label: \"styles.h6\", style: \"header-six\" },\n});\n\nexport const BlockTypeList = Object.freeze({\n\t\"unordered-list\": {\n\t\tlabel: <BulletListIcon />,\n\t\tstyle: \"unordered-list-item\",\n\t\ttooltip: \"styles.unordered_list_item\",\n\t},\n\t\"ordered-list\": {\n\t\tlabel: <NumberListIcon />,\n\t\tstyle: \"ordered-list-item\",\n\t\ttooltip: \"styles.ordered_list_item\",\n\t},\n});\n\nexport const InlineStylesList = Object.freeze({\n\tbold: {\n\t\tlabel: <BoldIcon />,\n\t\tstyle: \"BOLD\",\n\t\ttooltip: \"styles.bold\",\n\t\thotKey: \"(Ctrl+B)\",\n\t},\n\titalic: {\n\t\tlabel: <ItalicIcon />,\n\t\tstyle: \"ITALIC\",\n\t\ttooltip: \"styles.italic\",\n\t\thotKey: \"(Ctrl+I)\",\n\t},\n\tunderline: {\n\t\tlabel: <UnderlineIcon />,\n\t\tstyle: \"UNDERLINE\",\n\t\ttooltip: \"styles.underline\",\n\t\thotKey: \"(Ctrl+U)\",\n\t},\n});\n\nexport const MinifiedConfigTypes = Object.freeze({\n\tfontList: [\n\t\t{ type: \"unstyled\", label: \"styles.p\", style: \"unstyled\" },\n\t\t{ type: \"header-two\", label: \"styles.h1\", style: \"header-two\" },\n\t],\n\tblockTypes: Object.values(EditorConfigTypes.BLOCK_TYPES),\n\tinlineStyles: [\n\t\tEditorConfigTypes.INLINE_STYLES.BOLD,\n\t\tEditorConfigTypes.INLINE_STYLES.ITALIC,\n\t],\n});\nexport const decorator = new CompositeDecorator([\n\t{\n\t\tstrategy: findLinkEntities,\n\t\tcomponent: Link,\n\t},\n]);\n","import \"./styles.scss\";\n\nimport { Label } from \"@entur/typography\";\nimport cx from \"classnames\";\nimport {\n\tEditor,\n\tEditorState,\n\tgetDefaultKeyBinding,\n\tModifier,\n\tRichUtils,\n} from \"draft-js\";\nimport PropTypes from \"prop-types\";\nimport React, { Component, createRef } from \"react\";\nimport BlockTypeButtonControls from \"./Controls/BlockTypeButtonControls\";\nimport BlockTypeLinkControls from \"./Controls/BlockTypeLinkControls\";\nimport BlockTypeSelectControls from \"./Controls/BlockTypeSelectControls\";\nimport InlineStyleControls from \"./Controls/InlineStyleControls\";\nimport TagControls from \"./Controls/TagControls\";\nimport {\n\tBlockTypeList,\n\tdecorator,\n\tEditorConfigTypes,\n\tFontList,\n\tInlineStylesList,\n} from \"./constants\";\n\nclass RichTextEditor extends Component {\n\tstatic decorator = decorator;\n\n\twrapperRef = createRef();\n\teditor = createRef();\n\n\tfocusEditor() {\n\t\tthis.editor.current?.focus();\n\t}\n\n\thandleKeyCommand = (command, editorState) => {\n\t\tconst newState = RichUtils.handleKeyCommand(editorState, command);\n\t\tif (newState) {\n\t\t\tthis.props.onChange(newState);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\n\tkeyBindingFn = (evt) => {\n\t\tswitch (evt.keyCode) {\n\t\t\tcase 9:\n\t\t\t\treturn this.onTab(evt);\n\t\t\tdefault:\n\t\t\t\treturn getDefaultKeyBinding(evt);\n\t\t}\n\t};\n\n\tonTab = (evt) => {\n\t\tevt.stopPropagation();\n\t\tconst { maxTabDepth, editorState, onChange } = this.props;\n\t\tonChange(RichUtils.onTab(evt, editorState, maxTabDepth));\n\t};\n\n\ttoggleButtonBlockType = (blockType) => {\n\t\tconst { editorState, onChange } = this.props;\n\t\tonChange(RichUtils.toggleBlockType(editorState, blockType));\n\t};\n\n\ttoggleSelectBlockType = (blockType) => {\n\t\tconst { editorState, onChange } = this.props;\n\t\tonChange(RichUtils.toggleBlockType(editorState, blockType));\n\t};\n\n\ttoggleInlineStyle = (inlineStyle) => {\n\t\tconst { editorState, onChange } = this.props;\n\t\tonChange(RichUtils.toggleInlineStyle(editorState, inlineStyle));\n\t};\n\n\ttoggleLink = (newEditorState, entityKey) => {\n\t\tthis.props.onChange(\n\t\t\tRichUtils.toggleLink(\n\t\t\t\tnewEditorState,\n\t\t\t\tnewEditorState.getSelection(),\n\t\t\t\tentityKey,\n\t\t\t),\n\t\t);\n\t};\n\n\tinsertText = (editorState, text) => {\n\t\tconst newContent = Modifier.insertText(\n\t\t\teditorState.getCurrentContent(),\n\t\t\teditorState.getSelection(),\n\t\t\ttext,\n\t\t);\n\t\tthis.props.onChange(\n\t\t\tEditorState.push(editorState, newContent, \"insert-characters\"),\n\t\t\t() => this.focusEditor(),\n\t\t);\n\t};\n\n\tgetFontListConfigForPanelType = (panelType) => {\n\t\tconst controlConfig = this.getControlConfigBySet(\n\t\t\tthis.props.controlConfigSet,\n\t\t);\n\t\treturn controlConfig[panelType];\n\t};\n\n\tgetControlConfigBySet = (config) => {\n\t\tconst fontList = (config?.fontList || Object.keys(FontList))\n\t\t\t.filter((f) => (typeof f === \"object\" ? FontList[f.type] : FontList[f]))\n\t\t\t.map((f) => (f.label && f.style ? f : FontList[f]));\n\t\tconst blockTypes = (config?.blockTypes || Object.keys(BlockTypeList))\n\t\t\t.filter((f) =>\n\t\t\t\ttypeof f === \"object\" ? BlockTypeList[f.type] : BlockTypeList[f],\n\t\t\t)\n\t\t\t.map((f) => (f.label && f.style ? f : BlockTypeList[f]));\n\t\tconst inlineStyles = (config?.inlineStyles || Object.keys(InlineStylesList))\n\t\t\t.filter((f) =>\n\t\t\t\ttypeof f === \"object\" ? InlineStylesList[f.type] : InlineStylesList[f],\n\t\t\t)\n\t\t\t.map((f) => (f.label && f.style ? f : InlineStylesList[f]));\n\n\t\treturn {\n\t\t\tfontList,\n\t\t\tblockTypes,\n\t\t\tinlineStyles,\n\t\t};\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tshowFontMenu,\n\t\t\tshowInlineStyleMenu,\n\t\t\tshowTextFormatMenu,\n\t\t\tshowLinkMenu,\n\t\t\tlabel,\n\t\t\ttags,\n\t\t\teditorState,\n\t\t\tonChange,\n\t\t\thandleBeforeInput,\n\t\t} = this.props;\n\n\t\tconst classNames = cx(\"editor-root\", className);\n\n\t\treturn (\n\t\t\t<div ref={this.wrapperRef}>\n\t\t\t\t{label && <Label>{label}</Label>}\n\n\t\t\t\t<div className={classNames}>\n\t\t\t\t\t<div className=\"controls-wrapper\">\n\t\t\t\t\t\t{showFontMenu && (\n\t\t\t\t\t\t\t<BlockTypeSelectControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleSelectBlockType}\n\t\t\t\t\t\t\t\tblockTypes={this.getFontListConfigForPanelType(\"fontList\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showInlineStyleMenu && (\n\t\t\t\t\t\t\t<InlineStyleControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleInlineStyle}\n\t\t\t\t\t\t\t\tinlineStyles={this.getFontListConfigForPanelType(\n\t\t\t\t\t\t\t\t\t\"inlineStyles\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showTextFormatMenu && (\n\t\t\t\t\t\t\t<BlockTypeButtonControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleButtonBlockType}\n\t\t\t\t\t\t\t\tblockTypes={this.getFontListConfigForPanelType(\"blockTypes\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showLinkMenu && (\n\t\t\t\t\t\t\t<BlockTypeLinkControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\tonToggle={this.toggleLink}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{tags && tags.length > 0 && (\n\t\t\t\t\t\t\t<TagControls\n\t\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\t\ttags={tags}\n\t\t\t\t\t\t\t\tonInsertTag={this.insertText}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"editor-wrapper\">\n\t\t\t\t\t\t<Editor\n\t\t\t\t\t\t\tref={this.editor}\n\t\t\t\t\t\t\teditorState={editorState}\n\t\t\t\t\t\t\thandleKeyCommand={this.handleKeyCommand}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\thandleBeforeInput={handleBeforeInput}\n\t\t\t\t\t\t\tkeyBindingFn={this.keyBindingFn}\n\t\t\t\t\t\t\tspellCheck\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nconst styleShape = (configList) =>\n\tPropTypes.oneOfType([\n\t\tPropTypes.arrayOf(PropTypes.oneOf([...Object.values(configList)])),\n\t\tPropTypes.arrayOf(\n\t\t\tPropTypes.shape({\n\t\t\t\ttype: PropTypes.oneOf([...Object.values(configList)]),\n\t\t\t\tlabel: PropTypes.string,\n\t\t\t\tstyle: PropTypes.string,\n\t\t\t\ttooltip: PropTypes.string,\n\t\t\t\thotKey: PropTypes.string,\n\t\t\t}),\n\t\t),\n\t]);\n\nRichTextEditor.propTypes = {\n\teditorState: PropTypes.object.isRequired,\n\tonChange: PropTypes.func.isRequired,\n\tmaxTabDepth: PropTypes.number,\n\tshowFontMenu: PropTypes.bool,\n\tshowInlineStyleMenu: PropTypes.bool,\n\tshowTextFormatMenu: PropTypes.bool,\n\tshowLinkMenu: PropTypes.bool,\n\tlabel: PropTypes.string,\n\ttags: PropTypes.arrayOf(PropTypes.object),\n\tcontrolConfigSet: PropTypes.shape({\n\t\tfontList: styleShape(EditorConfigTypes.FONT_LIST),\n\t\tblockTypes: styleShape(EditorConfigTypes.BLOCK_TYPES),\n\t\tinlineStyles: styleShape(EditorConfigTypes.INLINE_STYLES),\n\t}),\n};\nRichTextEditor.defaultProps = {\n\tmaxTabDepth: 4,\n\tshowFontMenu: true,\n\tshowInlineStyleMenu: true,\n\tshowTextFormatMenu: true,\n\tshowLinkMenu: true,\n\tlabel: \"\",\n};\n\nexport default RichTextEditor;\n","import { convertFromRaw, convertToRaw, EditorState } from \"draft-js\";\nimport { draftToMarkdown, markdownToDraft } from \"markdown-draft-js\";\nimport showdown from \"showdown\";\n\nimport { decorator } from \"./constants\";\n\nexport const editorStateToMarkdown = (editorState) => {\n\tconst rawState = convertToRaw(editorState.getCurrentContent());\n\treturn draftToMarkdown(rawState, { preserveNewlines: true });\n};\n\nexport const markdownToEditorState = (markdown) => {\n\tif (!markdown) {\n\t\treturn EditorState.createEmpty(decorator);\n\t}\n\tconst rawState = markdownToDraft(markdown, { preserveNewlines: true });\n\tconst contentState = convertFromRaw(rawState);\n\treturn EditorState.createWithContent(contentState, decorator);\n};\n\nconst converter = new showdown.Converter({\n\tunderline: true,\n});\n\nexport const markdownToHtml = (markdown) => {\n\treturn converter.makeHtml(markdown);\n};\n","import { ExpandablePanel } from \"@entur/expand\";\nimport { FeedbackText, type VariantType } from \"@entur/form\";\nimport {\n\ttype LanguageKey,\n\ttype LanguageOption,\n\ttype MultiLanguageValues,\n\tStack,\n} from \"@entur-partner/common\";\nimport type { EditorState } from \"draft-js\";\nimport React, { useState } from \"react\";\nimport RichTextEditor from \"./RichTextEditor\";\nimport { MinifiedConfigTypes } from \"./RichTextEditor/constants\";\nimport {\n\teditorStateToMarkdown,\n\tmarkdownToEditorState,\n} from \"./RichTextEditor/markdownConvertion\";\n\ntype MultiLanguageInputProps = {\n\tvalues: MultiLanguageValues;\n\tonChange: (values: MultiLanguageValues) => void;\n\tvariant?: (lang: LanguageKey) => VariantType;\n\tfeedback?: (lang: LanguageKey) => string;\n\ttags?: {\n\t\ttag: string;\n\t\tdelimiter: string;\n\t\tlabel: string;\n\t}[];\n};\n\ntype RichTextEditorForLanguageProps = MultiLanguageInputProps & {\n\tlanguage: LanguageOption;\n};\n\nconst RichTextEditorForLanguage = ({\n\tlanguage: { value: langKey, label, required },\n\tvalues,\n\tonChange,\n\tvariant,\n\tfeedback,\n\ttags,\n}: RichTextEditorForLanguageProps) => {\n\tconst [editorState, setEditorState] = useState<EditorState>(\n\t\tmarkdownToEditorState(values[langKey]),\n\t);\n\n\tconst handleOnChange = (changedState: EditorState) => {\n\t\tconst newValues = { ...values };\n\t\tconst content = editorStateToMarkdown(changedState);\n\t\tif (values[langKey] && content === \"\\n\") {\n\t\t\tdelete newValues[langKey];\n\t\t} else {\n\t\t\tnewValues[langKey] = content;\n\t\t}\n\n\t\tsetEditorState(changedState);\n\t\tonChange(newValues);\n\t};\n\n\tconst feedbackText = feedback?.(langKey);\n\n\treturn (\n\t\t<>\n\t\t\t<RichTextEditor\n\t\t\t\tlabel={required ? `${label}*` : label}\n\t\t\t\teditorState={editorState}\n\t\t\t\tonChange={(changedState: EditorState) => handleOnChange(changedState)}\n\t\t\t\tcontrolConfigSet={MinifiedConfigTypes}\n\t\t\t\ttags={tags}\n\t\t\t/>\n\t\t\t{variant && feedbackText && feedbackText.length > 0 && (\n\t\t\t\t<FeedbackText variant={variant(langKey)}>{feedbackText}</FeedbackText>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\ntype ExpandableMultiLanguageRichTextEditorProps = MultiLanguageInputProps & {\n\tname: string;\n\ttitle: string;\n\tlanguages: LanguageOption[];\n};\n\nexport const ExpandableMultiLanguageRichTextEditor = ({\n\tname,\n\ttitle,\n\tlanguages,\n\t...rest\n}: ExpandableMultiLanguageRichTextEditorProps) => (\n\t<ExpandablePanel\n\t\ttitle={title}\n\t\tdefaultOpen\n\t\tcontentStyle={{\n\t\t\tpadding: \"4px 4px 4px 4px\",\n\t\t\tmarginTop: \"16px\",\n\t\t\tmarginBottom: \"16px\",\n\t\t}}\n\t>\n\t\t<Stack space=\"medium\">\n\t\t\t{languages.map((lang) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={name + lang.value}\n\t\t\t\t\tdata-testid={`multi-lang-rich-text-${name}-${lang.value}`}\n\t\t\t\t>\n\t\t\t\t\t<RichTextEditorForLanguage language={lang} {...rest} />\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</Stack>\n\t</ExpandablePanel>\n);\n","import { convertFromHTML, convertToHTML } from \"draft-convert\";\nimport { EditorState } from \"draft-js\";\nimport React from \"react\";\nimport { decorator } from \"./constants\";\nimport { HtmlLink } from \"./Link\";\n\nexport const entityToHtml = {\n\tentityToHTML: (entity, originalText) => {\n\t\tif (entity.type === \"LINK\") {\n\t\t\treturn <HtmlLink url={entity.data.url}>{originalText}</HtmlLink>;\n\t\t}\n\t\treturn originalText;\n\t},\n};\n\nexport const htmlToEntity = {\n\thtmlToEntity: (nodeName, node, createEntity) => {\n\t\tif (nodeName === \"a\") {\n\t\t\treturn createEntity(\"LINK\", \"MUTABLE\", { url: node.href });\n\t\t}\n\t},\n};\n\nexport const htmlToEditorState = (html) => {\n\tif (!html) {\n\t\treturn EditorState.createEmpty(decorator);\n\t}\n\tconst rawState = convertFromHTML(htmlToEntity)(html);\n\treturn EditorState.createWithContent(rawState, decorator);\n};\n\nexport const editorStateToHtml = (editorState) => {\n\treturn convertToHTML(entityToHtml)(editorState.getCurrentContent());\n};\n"],"names":["Key","Object","freeze","ENTER","getKey","event","keyCode","which","withI18n","Component","props","t","_useTranslation","useTranslation","language","i18n","Error","useI18N","React","createElement","_extends","StyleButton$1","_Component","StyleButton","_this","_len","arguments","length","args","Array","_key","call","apply","this","concat","onToggle","e","_this$props","style","preventDefault","onToggleNoEvent","_this$props2","_inheritsLoose","prototype","render","_this2","_this$props3","label","title","hotKey","classNames","cx","active","className","onMouseDown","tabIndex","onKeyPress","BlockTypeButtonControls","editorState","blockTypes","selection","getSelection","blockTypeStyle","getCurrentContent","getBlockForKey","getStartKey","getType","map","type","key","tooltip","BlockTypeLinkControls","state","urlValue","showUrlInput","hasLink","onUrlChange","setState","target","value","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","onChange","onKeyDown","placeholder","SecondarySquareButton","CheckIcon","height","Unbutton","UnlinkIcon","propTypes","PropTypes","object","func","BlockTypeLinkControls$1","BlockTypeDropdown$1","BlockTypeDropdown","handleOnClick","selectedOption","_proto","toItem","option","renderFormattedLabel","formattedLabelText","selected","Dropdown","items","options","selectedItem","BlockTypeControls","_ref","find","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","_props$contentState$g","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","_this$editor$current","focus","_this$props5","showFontMenu","showInlineStyleMenu","showTextFormatMenu","showLinkMenu","handleBeforeInput","Label","BlockTypeSelectControls","Editor","spellCheck","styleShape","configList","oneOfType","oneOf","shape","string","number","bool","defaultProps","editorStateToMarkdown","rawState","convertToRaw","draftToMarkdown","preserveNewlines","markdownToEditorState","markdown","createEmpty","markdownToDraft","convertFromRaw","createWithContent","converter","showdown","Converter","RichTextEditorForLanguage","_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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"}