@entur-partner/rich-text-editor 6.2.4-alpha.0 → 6.2.4-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExpandableMultiLanguageRichTextEditor.d.ts +21 -21
- package/dist/index.d.ts +5 -5
- package/dist/rich-text-editor.cjs.development.js +103 -122
- package/dist/rich-text-editor.cjs.development.js.map +1 -1
- package/dist/rich-text-editor.cjs.production.min.js +1 -1
- package/dist/rich-text-editor.cjs.production.min.js.map +1 -1
- package/dist/rich-text-editor.esm.js +21 -33
- package/dist/rich-text-editor.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/RichTextEditor/BlockTypeDropdown/index.d.ts +0 -3
- package/dist/RichTextEditor/Controls/BlockTypeButtonControls.d.ts +0 -3
- package/dist/RichTextEditor/Controls/BlockTypeLinkControls.d.ts +0 -3
- package/dist/RichTextEditor/Controls/BlockTypeSelectControls.d.ts +0 -7
- package/dist/RichTextEditor/Controls/InlineStyleControls.d.ts +0 -3
- package/dist/RichTextEditor/Controls/TagControls.d.ts +0 -3
- package/dist/RichTextEditor/Link/index.d.ts +0 -8
- package/dist/RichTextEditor/StyleButton/index.d.ts +0 -3
- package/dist/RichTextEditor/constants.d.ts +0 -94
- package/dist/RichTextEditor/htmlConvertion.d.ts +0 -9
- package/dist/RichTextEditor/index.d.ts +0 -58
- package/dist/RichTextEditor/markdownConvertion.d.ts +0 -4
- package/dist/events.d.ts +0 -4
- package/dist/withI18n.d.ts +0 -2
|
@@ -1 +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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"}
|
|
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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"}
|
|
@@ -17,42 +17,30 @@ import showdown from 'showdown';
|
|
|
17
17
|
import { convertFromHTML, convertToHTML } from 'draft-convert';
|
|
18
18
|
|
|
19
19
|
function _extends() {
|
|
20
|
-
_extends = Object.assign ? Object.assign.bind() : function (
|
|
21
|
-
for (var
|
|
22
|
-
var
|
|
23
|
-
for (var
|
|
24
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
25
|
-
target[key] = source[key];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
20
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
21
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
22
|
+
var t = arguments[e];
|
|
23
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
28
24
|
}
|
|
29
|
-
return
|
|
30
|
-
};
|
|
31
|
-
return _extends.apply(this, arguments);
|
|
25
|
+
return n;
|
|
26
|
+
}, _extends.apply(null, arguments);
|
|
32
27
|
}
|
|
33
|
-
function _inheritsLoose(
|
|
34
|
-
|
|
35
|
-
subClass.prototype.constructor = subClass;
|
|
36
|
-
_setPrototypeOf(subClass, superClass);
|
|
28
|
+
function _inheritsLoose(t, o) {
|
|
29
|
+
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
37
30
|
}
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
46
|
-
if (source == null) return {};
|
|
47
|
-
var target = {};
|
|
48
|
-
var sourceKeys = Object.keys(source);
|
|
49
|
-
var key, i;
|
|
50
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
51
|
-
key = sourceKeys[i];
|
|
52
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
53
|
-
target[key] = source[key];
|
|
31
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
32
|
+
if (null == r) return {};
|
|
33
|
+
var t = {};
|
|
34
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
35
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
36
|
+
t[n] = r[n];
|
|
54
37
|
}
|
|
55
|
-
return
|
|
38
|
+
return t;
|
|
39
|
+
}
|
|
40
|
+
function _setPrototypeOf(t, e) {
|
|
41
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
42
|
+
return t.__proto__ = e, t;
|
|
43
|
+
}, _setPrototypeOf(t, e);
|
|
56
44
|
}
|
|
57
45
|
|
|
58
46
|
var Key = /*#__PURE__*/Object.freeze({
|
|
@@ -856,7 +844,7 @@ var RichTextEditorForLanguage = function RichTextEditorForLanguage(_ref) {
|
|
|
856
844
|
},
|
|
857
845
|
controlConfigSet: MinifiedConfigTypes,
|
|
858
846
|
tags: tags
|
|
859
|
-
}), variant && feedbackText && feedbackText.length > 0 && (
|
|
847
|
+
}), variant && feedbackText && feedbackText.length > 0 && (/*#__PURE__*/React.createElement(FeedbackText, {
|
|
860
848
|
variant: variant(langKey)
|
|
861
849
|
}, feedbackText)));
|
|
862
850
|
};
|