@semcore/bulk-textarea 16.6.2 → 17.0.0-prerelease.18

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -4
  3. package/lib/cjs/BulkTextarea.js +248 -269
  4. package/lib/cjs/BulkTextarea.js.map +1 -1
  5. package/lib/cjs/BulkTextarea.types.js.map +1 -1
  6. package/lib/cjs/components/ClearAll.js +9 -8
  7. package/lib/cjs/components/ClearAll.js.map +1 -1
  8. package/lib/cjs/components/Counter.js +12 -10
  9. package/lib/cjs/components/Counter.js.map +1 -1
  10. package/lib/cjs/components/ErrorsNavigation.js +22 -20
  11. package/lib/cjs/components/ErrorsNavigation.js.map +1 -1
  12. package/lib/cjs/components/InputField/InputField.js +916 -1045
  13. package/lib/cjs/components/InputField/InputField.js.map +1 -1
  14. package/lib/cjs/index.js +3 -3
  15. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +16 -16
  16. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  17. package/lib/es6/BulkTextarea.js +242 -263
  18. package/lib/es6/BulkTextarea.js.map +1 -1
  19. package/lib/es6/BulkTextarea.types.js.map +1 -1
  20. package/lib/es6/components/ClearAll.js +8 -7
  21. package/lib/es6/components/ClearAll.js.map +1 -1
  22. package/lib/es6/components/Counter.js +7 -5
  23. package/lib/es6/components/Counter.js.map +1 -1
  24. package/lib/es6/components/ErrorsNavigation.js +15 -13
  25. package/lib/es6/components/ErrorsNavigation.js.map +1 -1
  26. package/lib/es6/components/InputField/InputField.js +910 -1040
  27. package/lib/es6/components/InputField/InputField.js.map +1 -1
  28. package/lib/es6/translations/__intergalactic-dynamic-locales.js +15 -15
  29. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  30. package/lib/esm/BulkTextarea.mjs +244 -223
  31. package/lib/esm/components/ClearAll.mjs +8 -7
  32. package/lib/esm/components/Counter.mjs +7 -2
  33. package/lib/esm/components/ErrorsNavigation.mjs +13 -2
  34. package/lib/esm/components/InputField/InputField.mjs +903 -981
  35. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +1 -1
  36. package/lib/types/BulkTextarea.types.d.ts +1 -1
  37. package/lib/types/components/InputField/InputField.d.ts +6 -2
  38. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.js","names":["_core","require","_ariaProps","_uniqueID","_interopRequireDefault","_flexBox","_tooltip","_dompurify","_react","style","sstyled","insert","InputField","exports","_Component","props","_this","_classCallCheck2","_callSuper2","_defineProperty2","React","createRef","visibleErrorPopper","keyboardLineIndex","mouseLineIndex","handlePaste","bind","handleChange","handleFocus","handleBlur","handleKeyDown","handleMouseDown","handleMouseMove","handleMouseLeave","handleScroll","handleSelectAll","textarea","createContentEditableElement","observer","MutationObserver","mutationsList","_iterator","_createForOfIteratorHelper2","_step","s","n","done","mutation","value","type","_this$props$onImmedia","_this$props","_this$textarea$textCo","onImmediatelyChange","call","getValues","textContent","err","e","f","_inherits2","_createClass2","key","uncontrolledProps","linesCount","errorIndex","componentDidMount","_this$containerRef$cu","containerRef","current","append","handleValueOutChange","config","childList","characterData","subtree","observe","componentDidUpdate","prevProps","prevState","_this2","_this$props2","errors","showErrors","disabled","readonly","highlightErrorIndex","lineProcessing","_this$props2$ariaDes","ariaDescribedby","currentValue","join","delimiter","errorsMap","Map","forEach","error","set","lineIndex","childNodes","node","index","HTMLParagraphElement","errorItem","get","setAttribute","dataset","errormessage","errorMessage","removeAttribute","undefined","toggleAriaInvalid","length","handleChangeErrorIndex","isDisabled","removeEventListeners","addEventListeners","state","_lines$prevState$keyb","lines","newValue","newValueTextNode","document","createTextNode","paragraph","item","innerHTML","emptyLineValue","replaceChild","validateLine","setTimeout","newNode","setErrorIndex","recalculateErrors","recalculateLinesCount","asProps","onChangeLineIndex","componentWillUnmount","disconnect","_this$asProps","Boolean","uid","concat","_errorItem$errorMessa","_errorItem","_errorItem2","_this$asProps2","commonErrorMessage","prevError","_this$state","currentLineIndex","errorByInteraction","find","isCommonError","createElement","id","placeholder","_extractAriaProps","extractAriaProps","extractedAriaProps","ariaProp","addEventListener","_this$props3","onChangeLinesCount","_this$textarea","listOfNodes","prepareNodesForPaste","replaceChildren","apply","_toConsumableArray2","_this3","scrollingTimeout","clearTimeout","isScrolling","window","event","element","target","HTMLElement","toggleErrorsPopper","isFocusing","getAttribute","setState","changeTriggerTimeout","rowNode","getNodeFromSelection","_event$clipboardData","preventDefault","validateOn","clipboardData","getData","selection","getSelection","anchorNode","focusNode","anchorOffset","focusOffset","documentPosition","compareDocumentPosition","direction","getSelectionDirection","anchorElement","focusElement","fromOffset","toOffset","Text","parentElement","textNode","position","_this$textarea2","_lastNodeToInsert$tex","lastNodeToInsert","_anchorNode$textConte","_anchorNode$textConte2","_focusNode$textConten","_focusNode$textConten2","_firstNodeToInsert$te","before","substring","after","noEmptyLineBefore","trim","noEmptyLineAfter","deleteFromDocument","removeChild","firstNodeToInsert","splice","_lastNodeToInsert$tex2","_lastNodeToInsert$tex3","_anchorNode$textConte3","_anchorNode$textConte4","setSelection","parentNode","_textNode","console","warn","includes","HTMLDivElement","InputEvent","_firstNode$textConten2","nodes","firstNode","secondNode","_firstNode$textConten","nodeText","firstRow","text","replaceWith","setPosition","HTMLBRElement","maxDeep","_rowNode","_rowNode2","_rowNode$textContent","_this$popper","_childNodes$item$text","offset","firstSymbol","at","lastSymbol","getEmptyParagraph","inputType","_this$asProps3","isValid","trigger","lineNode","popper","elements","reference","shouldChangePopperTrigger","_this$setPopperTrigge","setPopperTrigger","_this$setPopperTrigge2","nodeIndex","emptyParagraph","emptyBr","toggleErrorsPopperByKeyboard","_this4","_this$asProps4","onBlur","valueToChange","_this5","linesDelimiters","currentNode","_currentNode$textCont","currentRowValue","_selection$focusNode","_selectionNode$textCo","_currentNode$textCont2","_row$textContent","selectionNode","selectionOffset","newRowValue","_selectionNode$textCo2","_selectionNode$textCo3","row","previousSibling","handleCursorMovement","isDeleteKey","_currentNode$textCont3","isRangeSelection","prevNode","_prevNode$textContent","_text$textContent$len","_text$textContent","_currentNode$textCont4","_focusElement$parentN","_anchorElement$parent","_focusElement$parentN2","anchorParagraph","focusParagraph","paragraphs","Array","from","children","isCleaning","_iterator2","_step2","ctrlKey","metaKey","render","_ref","_ref2","_this$containerRef$cu2","_this6","SInputField","Box","_this$asProps5","styles","_this$errorMessage","visibleErrorTooltip","_extractAriaProps2","__excludeProps","Fragment","cn","boundary","tether","_ref3","setTrigger","Popper","popperDescribedId","_objectSpread2","assignProps","_pasteProps$lineProce","_pasteProps$skipEmpty","_pasteProps$delimiter","_this7","pasteProps","line","trimmedLine","skipEmptyLines","isArray","split","preparedLine","allSpacesRegExp","RegExp","DOMPurify","sanitize","replace","spaceLineValue","push","_node$dataset$errorme","onErrorsChange","_this8","linesCountTimeout","_this8$asProps","maxLines","overMaxRows","values","_node$textContent","_node$textContent2","timer","_this9","toggleErrorsPopperTimeout","_this0","targetElement","isInvalidRow","indexOf","newState","_this0$setPopperTrigg","forceUpdate","errorsLength","_error$lineNode","_this1","lineValidation","_node$textContent3","_lineValidation","start","end","scrollType","arguments","range","createRange","setStart","setEnd","removeAllRanges","addRange","nodeToScroll","scrollIntoView","block","inline","behavior","nextNode","nextSibling","_nextNode$textContent","_nextNode$textContent2","_selection$focusOffse","nodeToSetSelection","currentOffset","nodeToCompare","filter","Element","findIndex","handlers","removeEventListener","Node","DOCUMENT_POSITION_PRECEDING","Component","uniqueIDEnhancement","defaultValue","size","minRows","maxRows","defaultShowErrors","defaultErrorIndex","defaultLinesCount"],"sources":["../../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { Component, sstyled, Root } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { Box } from '@semcore/flex-box';\nimport type { PopperContext } from '@semcore/popper';\nimport Tooltip from '@semcore/tooltip';\nimport DOMPurify from 'dompurify';\nimport React from 'react';\n\nimport style from './inputField.shadow.css';\nimport type { InputFieldProps, ErrorItem } from './InputField.types';\n\ntype IndexKeys = 'keyboardLineIndex' | 'mouseLineIndex';\n\ntype State = {\n [key in IndexKeys]: number;\n} & {\n visibleErrorPopper: boolean;\n};\n\nclass InputField<T extends string | string[]> extends Component<\n InputFieldProps<T>,\n {},\n State,\n typeof InputField.enhance\n> {\n static displayName = 'Textarea';\n static style = style;\n\n static enhance = [uniqueIDEnhancement()] as const;\n\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n state: 'normal',\n minRows: 2,\n maxRows: 10,\n defaultShowErrors: false,\n defaultErrorIndex: -1,\n defaultLinesCount: 0,\n };\n\n delimiter = '\\n';\n skipEmptyLines = true;\n emptyLineValue = '&#xfeff;';\n spaceLineValue = '&nbsp;';\n\n containerRef = React.createRef<HTMLDivElement>();\n textarea: HTMLDivElement;\n\n popper: PopperContext['popper'] | null = null;\n setPopperTrigger: PopperContext['setTrigger'] | null = null;\n\n errorByInteraction: 'keyboard' | 'mouse' | null = null;\n\n changeTriggerTimeout = 0;\n isScrolling = false;\n scrollingTimeout = 0;\n\n toggleErrorsPopperTimeout = 0;\n\n isFocusing = false;\n\n linesCountTimeout = 0;\n\n observer: MutationObserver;\n\n state = {\n visibleErrorPopper: false,\n keyboardLineIndex: -1,\n mouseLineIndex: -1,\n };\n\n constructor(props: InputFieldProps<T>) {\n super(props);\n\n this.handlePaste = this.handlePaste.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleSelectAll = this.handleSelectAll.bind(this);\n\n this.textarea = this.createContentEditableElement(props);\n\n this.observer = new MutationObserver((mutationsList, observer) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'characterData' || mutation.type === 'childList') {\n this.props.onImmediatelyChange?.(this.getValues(), this.textarea.textContent ?? '');\n }\n }\n });\n }\n\n uncontrolledProps() {\n return {\n value: null,\n linesCount: null,\n errorIndex: null,\n };\n }\n\n componentDidMount() {\n this.containerRef.current?.append(this.textarea);\n\n this.handleValueOutChange();\n\n const config = {\n childList: true,\n characterData: true,\n subtree: true,\n };\n\n if (this.props.onImmediatelyChange) {\n this.observer.observe(this.textarea, config);\n }\n }\n\n componentDidUpdate(prevProps: InputFieldProps<T>, prevState: State): void {\n const {\n value,\n errors,\n errorIndex,\n showErrors,\n disabled,\n readonly,\n highlightErrorIndex,\n lineProcessing,\n ['aria-describedby']: ariaDescribedby = '',\n } = this.props;\n\n if (prevProps.value !== value) {\n const currentValue = this.getValues().join(this.delimiter);\n if (\n typeof value === 'string'\n ? value !== currentValue\n : value.join(this.delimiter) !== currentValue\n ) {\n this.handleValueOutChange();\n }\n }\n\n if (prevProps.showErrors !== showErrors || prevProps.errors !== errors) {\n if (showErrors) {\n const errorsMap = new Map<number, ErrorItem>();\n errors.forEach((error: ErrorItem) => {\n errorsMap.set(error.lineIndex, error);\n });\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement) {\n const errorItem = errorsMap.get(index);\n if (errorItem) {\n node.setAttribute('aria-invalid', 'true');\n node.dataset.errormessage = errorItem.errorMessage;\n } else {\n node.removeAttribute('aria-invalid');\n node.dataset.errormessage = undefined;\n }\n }\n });\n }\n\n this.toggleAriaInvalid(showErrors, errors.length);\n\n if (showErrors === false) {\n this.textarea.setAttribute('aria-describedby', ariaDescribedby);\n }\n }\n\n if (prevProps.errorIndex !== errorIndex && highlightErrorIndex) {\n this.handleChangeErrorIndex(errorIndex);\n }\n\n if (prevProps.disabled !== disabled || prevProps.readonly !== readonly) {\n if (this.isDisabled) {\n this.textarea.setAttribute('contenteditable', 'false');\n this.removeEventListeners(this.textarea);\n } else {\n this.textarea.setAttribute('contenteditable', 'true');\n this.addEventListeners(this.textarea);\n }\n\n if (disabled) {\n this.textarea.setAttribute('tabindex', '-1');\n } else {\n this.textarea.setAttribute('tabindex', '0');\n }\n }\n\n const { keyboardLineIndex } = this.state;\n\n if (prevState.keyboardLineIndex !== -1 && prevState.keyboardLineIndex !== keyboardLineIndex) {\n if (lineProcessing) {\n const lines = this.getValues();\n const newValue = lineProcessing(lines[prevState.keyboardLineIndex] ?? '', lines);\n const newValueTextNode = document.createTextNode(newValue);\n const paragraph = this.textarea.childNodes.item(prevState.keyboardLineIndex);\n\n if (paragraph instanceof HTMLParagraphElement) {\n if (newValue === '') {\n paragraph.innerHTML = this.emptyLineValue;\n } else {\n paragraph.replaceChild(newValueTextNode, paragraph.childNodes.item(0));\n }\n }\n\n this.validateLine(paragraph);\n\n setTimeout(() => {\n const newNode = this.textarea.childNodes.item(keyboardLineIndex);\n if (newNode) {\n this.setErrorIndex(newNode);\n }\n }, 0); // need this timeout to update errorIndex to the new (usually empty) line\n }\n\n if (!showErrors) {\n this.recalculateErrors();\n }\n this.recalculateLinesCount();\n this.asProps.onChangeLineIndex(keyboardLineIndex);\n }\n }\n\n componentWillUnmount() {\n this.removeEventListeners(this.textarea);\n\n this.observer.disconnect();\n }\n\n get isDisabled(): boolean {\n const { disabled, readonly } = this.asProps;\n\n return Boolean(disabled || readonly);\n }\n\n get popperDescribedId() {\n const { uid } = this.asProps;\n return `bulk-textarea-${uid}-popper-describedby`;\n }\n\n get errorMessage() {\n const { errors, errorIndex, commonErrorMessage, prevError } = this.asProps;\n const { mouseLineIndex, keyboardLineIndex } = this.state;\n const currentLineIndex =\n this.errorByInteraction === 'keyboard'\n ? keyboardLineIndex\n : this.errorByInteraction === 'mouse'\n ? mouseLineIndex\n : -1;\n let errorItem: ErrorItem | undefined = errors[errorIndex];\n\n if (currentLineIndex !== -1) {\n errorItem = errors.find((e) => e?.lineIndex === currentLineIndex);\n }\n\n const errorMessage =\n errors.length === 0 && !prevError // show any errors only if there are at least one error\n ? null\n : errorItem?.errorMessage ??\n (commonErrorMessage === '' || errors.length === 0\n ? prevError?.errorMessage\n : commonErrorMessage);\n const isCommonError =\n !errorItem?.errorMessage &&\n (commonErrorMessage === '' || errors.length === 0 ? !prevError?.errorMessage : true);\n\n return {\n errorMessage,\n isCommonError,\n };\n }\n\n createContentEditableElement(props: InputFieldProps<T>) {\n const textarea = document.createElement('div');\n textarea.setAttribute('contentEditable', props.disabled || props.readonly ? 'false' : 'true');\n textarea.setAttribute('role', 'textbox');\n textarea.setAttribute('classname', 'editable');\n\n if (props.id) {\n textarea.setAttribute('id', props.id);\n }\n if (props.placeholder) {\n textarea.setAttribute('placeholder', props.placeholder);\n }\n const { extractedAriaProps } = extractAriaProps(props);\n for (const key in extractedAriaProps) {\n const ariaProp: string | undefined = (props as any)[key];\n if (ariaProp) {\n textarea.setAttribute(key, ariaProp);\n }\n }\n\n if (!props.disabled) {\n textarea.setAttribute('tabIndex', '0');\n } else {\n textarea.setAttribute('tabIndex', '-1');\n }\n\n if (!props.disabled && !props.readonly) {\n this.addEventListeners(textarea);\n } else {\n textarea.addEventListener('keydown', this.handleSelectAll.bind(this));\n }\n\n return textarea;\n }\n\n handleValueOutChange() {\n const { value, onChangeLinesCount } = this.props;\n\n if (value === '') {\n this.textarea.textContent = '';\n onChangeLinesCount(0);\n } else {\n const listOfNodes = this.prepareNodesForPaste(value);\n\n this.textarea.replaceChildren(...listOfNodes);\n\n this.recalculateLinesCount();\n this.recalculateErrors();\n }\n }\n\n handleScroll(): void {\n if (this.scrollingTimeout) {\n clearTimeout(this.scrollingTimeout);\n }\n\n this.isScrolling = true;\n\n this.scrollingTimeout = window.setTimeout(() => {\n this.isScrolling = false;\n }, 50);\n }\n\n handleMouseDown(event: MouseEvent): void {\n const element = event.target;\n\n if (element instanceof HTMLElement) {\n // we need to change keyboardLineIndex, because the caret in real on that current row\n this.toggleErrorsPopper('keyboardLineIndex', element);\n\n this.setErrorIndex(element);\n }\n }\n\n handleMouseMove(event: MouseEvent): void {\n this.errorByInteraction = 'mouse';\n const element = event.target;\n\n if (element !== this.textarea) {\n if (\n this.isFocusing ||\n (element instanceof HTMLElement && element.getAttribute('aria-invalid') === 'true')\n ) {\n this.toggleErrorsPopper('mouseLineIndex', element);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n }\n\n handleMouseLeave(): void {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n if (this.isFocusing) {\n this.errorByInteraction = 'keyboard';\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n this.setState({ mouseLineIndex: -1 });\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n handlePaste(event: ClipboardEvent) {\n event.preventDefault();\n const { validateOn } = this.asProps;\n const value = event.clipboardData?.getData('text/plain');\n const listOfNodes = value ? this.prepareNodesForPaste(value) : [];\n\n if (listOfNodes.length === 0) return;\n\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const anchorOffset = selection.anchorOffset;\n const focusOffset = selection.focusOffset;\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n const direction = this.getSelectionDirection();\n\n const anchorElement = direction === 'forward' ? selection.anchorNode : selection.focusNode;\n const focusElement = direction === 'forward' ? selection.focusNode : selection.anchorNode;\n const fromOffset = direction === 'forward' ? anchorOffset : focusOffset;\n const toOffset = direction === 'forward' ? focusOffset : anchorOffset;\n const anchorNode =\n anchorElement instanceof Text ? anchorElement.parentElement : anchorElement;\n const focusNode = focusElement instanceof Text ? focusElement.parentElement : focusElement;\n\n let textNode: ChildNode | null = null;\n let position: number | null = null;\n\n if (focusElement === this.textarea) {\n this.textarea.replaceChildren(...listOfNodes);\n\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n } else if (\n focusNode instanceof HTMLParagraphElement &&\n anchorNode instanceof HTMLParagraphElement\n ) {\n const before = anchorNode?.textContent?.substring(0, fromOffset) ?? '';\n const after = focusNode?.textContent?.substring(toOffset) ?? '';\n\n const noEmptyLineBefore = before.trim() === '' ? '' : before;\n const noEmptyLineAfter = after.trim() === '' ? '' : after;\n\n selection.deleteFromDocument();\n\n if (documentPosition !== 0) {\n this.textarea.removeChild(focusNode);\n }\n\n const firstNodeToInsert = listOfNodes.splice(0, 1)[0];\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n\n anchorNode.textContent = noEmptyLineBefore + (firstNodeToInsert?.textContent ?? '');\n\n anchorNode.after(...listOfNodes);\n\n if (lastNodeToInsert) {\n lastNodeToInsert.textContent = (lastNodeToInsert.textContent ?? '') + noEmptyLineAfter;\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n\n this.validateLine(lastNodeToInsert);\n this.setErrorIndex(lastNodeToInsert);\n } else {\n position = (anchorNode.textContent ?? '').length;\n anchorNode.textContent = (anchorNode.textContent ?? '') + noEmptyLineAfter;\n textNode = anchorNode.childNodes.item(0);\n\n this.validateLine(anchorNode);\n this.setErrorIndex(anchorNode);\n }\n }\n\n if (textNode instanceof Text) {\n this.setSelection(textNode, position ?? 1, position ?? 1);\n this.toggleErrorsPopper('keyboardLineIndex', textNode.parentNode);\n } else {\n // eslint-disable-next-line no-console\n console.warn('incorrect child type', textNode, textNode?.parentNode);\n }\n }\n\n this.recalculateLinesCount();\n\n if (validateOn.includes('paste') || this.asProps.showErrors) {\n this.recalculateErrors();\n }\n }\n\n handleChange(event: Event) {\n const target = event.target;\n if (target instanceof HTMLDivElement && event instanceof InputEvent) {\n const nodes = this.textarea.childNodes;\n const firstNode = nodes.item(0);\n const secondNode = nodes.item(1);\n const selection = document.getSelection();\n\n if (firstNode instanceof Text) {\n const nodeText = firstNode.textContent ?? '';\n const firstRow = document.createElement('p');\n const text = document.createTextNode(nodeText);\n firstRow.append(text);\n firstNode.replaceWith(firstRow);\n\n selection?.setPosition(firstRow, nodeText.length);\n } else if (!firstNode || (firstNode instanceof HTMLBRElement && nodes.length === 1)) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n } else if (firstNode instanceof HTMLParagraphElement && !firstNode.textContent?.trim()) {\n if (nodes.length <= 1 || secondNode instanceof HTMLBRElement) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n }\n }\n\n let maxDeep = 10;\n let rowNode = selection?.focusNode;\n\n while (rowNode?.parentNode !== this.textarea && maxDeep > 0) {\n rowNode = rowNode?.parentNode;\n maxDeep--;\n }\n\n if (rowNode instanceof HTMLParagraphElement) {\n const childNodes = rowNode.childNodes;\n const textContent = rowNode.textContent ?? '';\n\n if (childNodes.length > 1) {\n const offset = childNodes.item(0).textContent?.length;\n\n rowNode.textContent = textContent;\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n\n if (textContent.length > 0) {\n const firstSymbol = textContent.at(0);\n const lastSymbol = textContent.at(textContent.length - 1);\n\n if (\n firstSymbol === this.getEmptyParagraph().textContent ||\n lastSymbol === this.getEmptyParagraph().textContent\n ) {\n let offset: number | null = null;\n if (firstSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(1);\n offset =\n event.inputType === 'deleteContentBackward' ||\n event.inputType === 'deleteContentForward'\n ? 0\n : rowNode.textContent.length;\n } else if (lastSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(0, textContent.length - 1);\n offset = rowNode.textContent.length;\n }\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n } else if (childNodes.length === 1 && childNodes[0] instanceof HTMLBRElement) {\n rowNode.innerHTML = this.emptyLineValue;\n }\n\n const { errors, showErrors } = this.asProps;\n const isValid = this.validateLine(rowNode);\n this.recalculateErrors();\n this.setErrorIndex(rowNode);\n\n if (!isValid && showErrors) {\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n }\n\n const trigger =\n !isValid || (isValid && errors.length === 1 && errors[0].lineNode === rowNode)\n ? rowNode\n : this.textarea;\n\n if (showErrors && this.popper?.current?.state.elements.reference !== trigger) {\n if (this.shouldChangePopperTrigger(trigger)) {\n this.setPopperTrigger?.(trigger);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n } else if (rowNode === null) {\n this.setPopperTrigger?.(this.textarea);\n\n if (selection?.focusNode === this.textarea && this.textarea.childNodes.length > 1) {\n const nodeIndex = selection.focusOffset;\n const emptyParagraph = this.textarea.childNodes.item(nodeIndex - 1);\n const emptyBr = this.textarea.childNodes.item(nodeIndex);\n\n this.textarea.removeChild(emptyBr);\n\n if (emptyParagraph instanceof HTMLParagraphElement) {\n emptyParagraph.innerHTML = this.emptyLineValue;\n }\n\n if (emptyParagraph) {\n this.setSelection(emptyParagraph, 0, 0);\n }\n } else {\n this.setSelection(this.textarea, 0, 0);\n }\n }\n\n this.recalculateLinesCount();\n }\n }\n\n handleFocus() {\n this.isFocusing = true;\n this.errorByInteraction = 'keyboard';\n\n if (this.asProps.showErrors) {\n this.toggleErrorsPopperByKeyboard(150);\n } else {\n this.toggleErrorsPopper('keyboardLineIndex', this.textarea);\n }\n }\n\n handleBlur(event: Event) {\n this.isFocusing = false;\n this.setState({ visibleErrorPopper: false });\n\n const { validateOn, onBlur, value } = this.asProps;\n\n if (validateOn.includes('blur')) {\n this.recalculateErrors();\n }\n\n const valueToChange =\n typeof value === 'string' ? this.getValues().join(this.delimiter) : this.getValues();\n\n onBlur(valueToChange as T, event);\n\n setTimeout(() => {\n this.setState({ keyboardLineIndex: -1 });\n }, 200);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n this.errorByInteraction = 'keyboard';\n const { linesDelimiters } = this.asProps;\n\n const currentNode = this.getNodeFromSelection();\n\n if (event.key === 'Enter' || linesDelimiters?.includes(event.key)) {\n if (currentNode === this.textarea) {\n event.preventDefault();\n }\n if (currentNode instanceof HTMLParagraphElement) {\n const currentRowValue = currentNode.textContent?.trim();\n\n if (!currentRowValue) {\n event.preventDefault();\n } else {\n event.preventDefault();\n const selection = document.getSelection();\n const selectionNode =\n selection?.focusNode instanceof Text\n ? selection.focusNode\n : selection?.focusNode?.childNodes.item(0);\n const selectionOffset = selection?.focusOffset;\n\n let newRowValue = '';\n\n if (\n selectionNode instanceof Text &&\n selectionOffset !== undefined &&\n selectionOffset !== selectionNode.textContent?.length\n ) {\n newRowValue =\n selectionNode.textContent?.substring(selectionOffset) ?? this.emptyLineValue;\n\n if (selectionNode.textContent) {\n selectionNode.textContent = selectionNode.textContent.substring(0, selectionOffset);\n }\n }\n\n if (currentNode.textContent?.trim() === '') {\n currentNode.innerHTML = this.emptyLineValue;\n }\n\n const row = document.createElement('p');\n if (newRowValue) {\n row.textContent = newRowValue;\n } else {\n row.innerHTML = this.emptyLineValue;\n }\n currentNode.after(row);\n\n this.setSelection(row, 0, 0);\n\n this.validateLine(currentNode);\n this.validateLine(row);\n if (currentNode.previousSibling) {\n this.validateLine(currentNode.previousSibling);\n }\n this.setErrorIndex(row);\n\n if (row.textContent?.trim() !== '') {\n this.recalculateLinesCount();\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (currentNode instanceof HTMLParagraphElement) {\n this.handleCursorMovement(currentNode, event);\n }\n this.toggleErrorsPopperByKeyboard(200);\n } else if (this.isDeleteKey(event) && currentNode instanceof HTMLParagraphElement) {\n if (currentNode.textContent?.trim() === '' && !this.isRangeSelection()) {\n // Backspace on empty row\n const prevNode = currentNode.previousSibling;\n if (prevNode instanceof HTMLParagraphElement) {\n event.preventDefault();\n this.textarea.removeChild(currentNode);\n this.toggleErrorsPopperByKeyboard(0);\n\n if (\n prevNode.textContent?.trim() === '' &&\n prevNode.previousSibling === null &&\n this.textarea.childNodes.length === 1\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n if (prevNode instanceof HTMLParagraphElement) {\n const text = prevNode.childNodes.item(0);\n const offset = text.textContent?.length ?? 0;\n this.setSelection(text, offset, offset);\n } else {\n // eslint-disable-next-line no-console\n console.warn('incorrect prevNode type', prevNode);\n }\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n } else if (this.isRangeSelection()) {\n const selection = document.getSelection();\n\n const direction = this.getSelectionDirection();\n const anchorElement =\n direction === 'backward' ? selection?.focusNode : selection?.anchorNode;\n const focusElement =\n direction === 'backward' ? selection?.anchorNode : selection?.focusNode;\n const anchorOffset =\n direction === 'backward' ? selection?.focusOffset : selection?.anchorOffset;\n const focusOffset =\n direction === 'backward' ? selection?.anchorOffset : selection?.focusOffset;\n\n // Backspace on selected full row\n if (\n anchorElement === focusElement &&\n anchorOffset === 0 &&\n ((focusElement === currentNode && focusOffset === 1) ||\n focusOffset === currentNode.textContent?.length)\n ) {\n event.preventDefault();\n\n const anchorParagraph = anchorElement?.parentElement;\n const focusParagraph = focusElement?.parentElement;\n const childNodes = this.textarea.childNodes;\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n currentNode.innerHTML = this.emptyLineValue;\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n } else if (\n focusElement !== anchorElement &&\n focusElement instanceof Text &&\n anchorElement instanceof Text &&\n focusElement?.textContent === focusElement?.parentNode?.textContent &&\n anchorElement?.textContent === anchorElement?.parentNode?.textContent &&\n anchorOffset === 0 &&\n focusOffset === focusElement?.parentNode?.textContent?.length\n ) { // Backspace on selected few full rows\n event.preventDefault();\n\n const paragraphs = Array.from(this.textarea.children);\n const anchorParagraph = anchorElement.parentElement;\n const focusParagraph = focusElement.parentElement;\n const childNodes = this.textarea.childNodes;\n\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n let isCleaning = false;\n\n for (const paragraph of paragraphs) {\n if (paragraph === anchorParagraph || isCleaning) {\n isCleaning = true;\n\n if (paragraph === focusParagraph) {\n focusParagraph.innerHTML = this.emptyLineValue;\n this.setSelection(focusParagraph, 0, 0);\n break;\n } else {\n this.textarea.removeChild(paragraph);\n }\n }\n }\n\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (event.key === 'z' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n }\n }\n\n render() {\n const SInputField = Root;\n const { styles, showErrors } = this.asProps;\n const { visibleErrorPopper } = this.state;\n\n const { errorMessage, isCommonError } = this.errorMessage;\n const visibleErrorTooltip =\n showErrors && visibleErrorPopper && Boolean(errorMessage) && !this.isDisabled;\n\n const { __excludeProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <>\n <Tooltip\n interaction='none'\n placement={isCommonError ? 'right-start' : 'right'}\n visible={visibleErrorTooltip}\n theme='warning'\n offset={isCommonError ? undefined : [0, 26]}\n preventOverflow={{\n boundary: this.containerRef.current ?? undefined,\n tether: false,\n }}\n >\n {({ popper, setTrigger }) => {\n if (!this.popper) {\n this.setPopperTrigger = setTrigger;\n // @ts-ignore\n this.popper = popper;\n }\n\n return <Tooltip.Popper id={this.popperDescribedId}>{errorMessage}</Tooltip.Popper>;\n }}\n </Tooltip>\n <SInputField\n render={Box}\n ref={this.containerRef}\n __excludeProps={['onBlur', 'value', ...__excludeProps]}\n />\n </>,\n );\n }\n\n private prepareNodesForPaste(value: string | string[]): HTMLParagraphElement[] {\n const listOfNodes: HTMLParagraphElement[] = [];\n const { pasteProps } = this.asProps;\n const lineProcessing =\n pasteProps?.lineProcessing ??\n ((line: string) => {\n const trimmedLine = line.trim();\n return trimmedLine === '' ? line : trimmedLine;\n });\n const skipEmptyLines = pasteProps?.skipEmptyLines ?? this.skipEmptyLines;\n const delimiter = pasteProps?.delimiter ?? this.delimiter;\n const lines: string[] = Array.isArray(value) ? value : value.split(delimiter);\n\n lines.forEach((line, index) => {\n const preparedLine = lineProcessing(line, index, lines.length);\n\n if ((preparedLine === '' && skipEmptyLines === false) || preparedLine !== '') {\n const node = document.createElement('p');\n\n if (preparedLine === '') {\n node.innerHTML = this.emptyLineValue;\n } else if (preparedLine.trim() === '') {\n const allSpacesRegExp = new RegExp('\\\\s', 'g');\n node.innerHTML = DOMPurify.sanitize(\n preparedLine.replace(allSpacesRegExp, this.spaceLineValue),\n );\n } else {\n node.append(document.createTextNode(preparedLine));\n }\n\n listOfNodes.push(node);\n\n this.validateLine(node);\n }\n });\n\n return listOfNodes;\n }\n\n private recalculateErrors(): void {\n const errors: ErrorItem[] = [];\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement && node.getAttribute('aria-invalid') === 'true') {\n const errorItem = {\n errorMessage: node.dataset.errormessage ?? '',\n lineNode: node,\n lineIndex: index,\n };\n errors.push(errorItem);\n }\n });\n\n this.asProps.onErrorsChange(errors);\n }\n\n private recalculateLinesCount(): void {\n if (this.linesCountTimeout) {\n clearTimeout(this.linesCountTimeout);\n }\n\n this.linesCountTimeout = window.setTimeout(() => {\n let lines = 0;\n const { maxLines, linesCount } = this.asProps;\n\n this.textarea.childNodes.forEach((node) => {\n if (node instanceof HTMLParagraphElement) {\n node.dataset.overMaxRows = 'false';\n\n if (\n node.textContent !== this.getEmptyParagraph().textContent &&\n node.textContent !== ''\n ) {\n lines++;\n\n if (lines > maxLines) {\n node.dataset.overMaxRows = 'true';\n }\n }\n }\n });\n\n if (linesCount !== lines) {\n this.asProps.onChangeLinesCount(lines);\n }\n }, 100);\n }\n\n private getValues(): string[] {\n const values: string[] = [];\n this.textarea.childNodes.forEach((node) => {\n if (node.textContent?.trim() === '') {\n values.push('');\n } else {\n values.push(node.textContent ?? '');\n }\n });\n\n return values;\n }\n\n private shouldChangePopperTrigger(node: HTMLElement): boolean {\n return (\n this.textarea !== node || (this.textarea === node && Boolean(this.asProps.commonErrorMessage))\n );\n }\n\n private toggleErrorsPopperByKeyboard(timer: number) {\n if (this.toggleErrorsPopperTimeout) {\n clearTimeout(this.toggleErrorsPopperTimeout);\n }\n\n if (!this.isScrolling) {\n setTimeout(() => {\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, timer);\n }, 0);\n } else {\n this.toggleErrorsPopperTimeout = window.setTimeout(() => {\n this.toggleErrorsPopperByKeyboard(timer);\n }, 50);\n }\n }\n\n private toggleErrorsPopper(key: IndexKeys, target?: unknown, timer?: number) {\n if (target instanceof HTMLDivElement || target instanceof HTMLParagraphElement) {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n this.changeTriggerTimeout = window.setTimeout(() => {\n const targetElement = target === this.textarea ? this.getNodeFromSelection() : target;\n\n let lineIndex = -1;\n let isInvalidRow = false;\n\n if (targetElement instanceof HTMLParagraphElement) {\n isInvalidRow = targetElement.getAttribute('aria-invalid') === 'true';\n lineIndex = Array.from(this.textarea.childNodes).indexOf(targetElement);\n } else if (targetElement === this.textarea) {\n lineIndex = 0;\n }\n\n if (targetElement instanceof HTMLElement) {\n this.setState(\n (prevState) => {\n const newState: State = {\n visibleErrorPopper:\n this.isFocusing && Boolean(this.asProps.commonErrorMessage) ? true : isInvalidRow,\n mouseLineIndex: prevState.mouseLineIndex,\n keyboardLineIndex: prevState.keyboardLineIndex,\n };\n\n if (this.isFocusing || (key === 'mouseLineIndex' && isInvalidRow)) {\n newState[key] = lineIndex;\n }\n\n return newState;\n },\n () => {\n this.errorByInteraction = key === 'mouseLineIndex' ? 'mouse' : 'keyboard';\n\n const trigger = isInvalidRow ? targetElement : this.textarea;\n\n if (this.shouldChangePopperTrigger(trigger)) {\n this.setPopperTrigger?.(trigger);\n\n this.forceUpdate();\n }\n },\n );\n }\n }, timer ?? 50);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n private toggleAriaInvalid(showErrors: boolean, errorsLength: number): void {\n if (showErrors && errorsLength > 0) {\n this.textarea.setAttribute('aria-describedby', this.popperDescribedId);\n this.textarea.setAttribute('aria-invalid', 'true');\n } else {\n this.textarea.removeAttribute('aria-invalid');\n this.textarea.removeAttribute('aria-describedby');\n }\n }\n\n private handleChangeErrorIndex(errorIndex: number): void {\n const error: ErrorItem | undefined = this.asProps.errors[errorIndex];\n const childNodes = this.textarea.childNodes;\n\n const node = error ? error.lineNode ?? childNodes.item(error.lineIndex) : null;\n const selection = document.getSelection();\n\n if (selection && node instanceof HTMLParagraphElement) {\n this.setState({ visibleErrorPopper: false });\n\n setTimeout(() => {\n const text = node.childNodes.item(0);\n if (text instanceof Text) {\n this.setSelection(text, 0, text.length);\n } else {\n this.setSelection(node, 0, 1);\n }\n }, 150);\n }\n }\n\n private validateLine(node: Node): boolean {\n const { lineValidation } = this.asProps;\n if (lineValidation && node instanceof HTMLElement) {\n const { isValid, errorMessage } = lineValidation(node.textContent ?? '', this.getValues());\n\n if (!isValid) {\n node.setAttribute('aria-invalid', 'true');\n node.dataset.errormessage = errorMessage;\n } else {\n node.removeAttribute('aria-invalid');\n node.dataset.errormessage = undefined;\n }\n\n return isValid;\n }\n\n return true;\n }\n\n private setSelection(\n node: Node,\n start: number,\n end: number,\n scrollType: 'center' | 'nearest' = 'center',\n ): void {\n const selection = document.getSelection();\n const range = document.createRange();\n range.setStart(node, start);\n range.setEnd(node, end);\n\n selection?.removeAllRanges();\n selection?.addRange(range);\n\n const nodeToScroll = node instanceof Text ? node.parentNode : node;\n\n if (nodeToScroll instanceof HTMLElement) {\n nodeToScroll.scrollIntoView({\n block: scrollType,\n inline: scrollType,\n behavior: 'smooth',\n });\n }\n }\n\n private getNodeFromSelection(): Node | null {\n const selection = document.getSelection();\n\n const rowNode =\n selection?.focusNode instanceof Text ? selection.focusNode.parentNode : selection?.focusNode;\n\n return rowNode ?? null;\n }\n\n private handleCursorMovement(currentNode: HTMLParagraphElement, event: KeyboardEvent): void {\n let nextNode: ChildNode | null = null;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n break;\n case 'ArrowDown':\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n break;\n case 'ArrowLeft': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n }\n break;\n }\n case 'ArrowRight': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n }\n }\n }\n\n if (nextNode instanceof HTMLParagraphElement) {\n const selection = document.getSelection();\n const firstNode = nextNode.childNodes.item(0);\n const nodeToSetSelection = firstNode instanceof Text ? firstNode : nextNode;\n const textNode = nextNode.textContent?.trim() ?? '';\n const currentOffset = selection?.focusOffset ?? 0;\n let offset = currentOffset <= textNode.length ? currentOffset : textNode.length;\n\n // it only works if node is empty, that's why here we could set 0 or node.length\n if (event.key === 'ArrowLeft') {\n offset = textNode.length;\n } else if (event.key === 'ArrowRight') {\n offset = 0;\n }\n\n this.setSelection(nodeToSetSelection, offset, offset, 'nearest');\n }\n }\n\n private setErrorIndex(nodeToCompare: Node): void {\n const errorIndex = Array.from(this.textarea.childNodes)\n .filter((node) => {\n return node instanceof Element && node.getAttribute('aria-invalid') === 'true';\n })\n .findIndex((node) => {\n return node === nodeToCompare;\n });\n\n this.handlers.errorIndex(errorIndex);\n }\n\n private isDeleteKey(event: KeyboardEvent): boolean {\n return event.key === 'Backspace' || (event.key === 'x' && (event.ctrlKey || event.metaKey));\n }\n\n private getEmptyParagraph() {\n const element = document.createElement('p');\n\n element.innerHTML = this.emptyLineValue;\n\n return element;\n }\n\n private addEventListeners(textarea: HTMLElement) {\n textarea.addEventListener('paste', this.handlePaste);\n textarea.addEventListener('input', this.handleChange);\n textarea.addEventListener('focus', this.handleFocus);\n textarea.addEventListener('blur', this.handleBlur);\n textarea.addEventListener('keydown', this.handleKeyDown);\n textarea.addEventListener('mousedown', this.handleMouseDown);\n textarea.addEventListener('mousemove', this.handleMouseMove);\n textarea.addEventListener('mouseleave', this.handleMouseLeave);\n textarea.addEventListener('scroll', this.handleScroll);\n\n textarea.removeEventListener('keydown', this.handleSelectAll);\n }\n\n private removeEventListeners(textarea: HTMLElement) {\n textarea.removeEventListener('paste', this.handlePaste);\n textarea.removeEventListener('input', this.handleChange);\n textarea.removeEventListener('focus', this.handleFocus);\n textarea.removeEventListener('blur', this.handleBlur);\n textarea.removeEventListener('keydown', this.handleKeyDown);\n textarea.removeEventListener('mousedown', this.handleMouseDown);\n textarea.removeEventListener('mousemove', this.handleMouseMove);\n textarea.removeEventListener('mouseleave', this.handleMouseLeave);\n textarea.removeEventListener('scroll', this.handleScroll);\n\n textarea.addEventListener('keydown', this.handleSelectAll);\n }\n\n private handleSelectAll(event: KeyboardEvent) {\n if (event.key === 'a' && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n\n const node = event.target;\n if (node instanceof HTMLElement && node === this.textarea) {\n this.setSelection(node, 0, node.childNodes.length);\n }\n }\n }\n\n private isRangeSelection(): boolean {\n const selection = document.getSelection();\n\n return (\n selection?.focusNode !== selection?.anchorNode ||\n selection?.focusOffset !== selection?.anchorOffset\n );\n }\n\n private getSelectionDirection(): 'forward' | 'backward' | null {\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n\n if (\n (documentPosition === 0 && selection.anchorOffset > selection.focusOffset) || // if nodes are the same\n documentPosition === Node.DOCUMENT_POSITION_PRECEDING\n ) {\n return 'backward';\n }\n\n return 'forward';\n }\n\n return null;\n }\n}\n\nexport { InputField };\nexport type { InputFieldProps, ErrorItem };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputField.js","names":["_core","require","_baseComponents","_ariaProps","_uniqueID","_interopRequireDefault","_tooltip","_dompurify","_react","style","sstyled","insert","InputField","Component","constructor","props","_defineProperty2","default","React","createRef","visibleErrorPopper","keyboardLineIndex","mouseLineIndex","handlePaste","bind","handleChange","handleFocus","handleBlur","handleKeyDown","handleMouseDown","handleMouseMove","handleMouseLeave","handleScroll","handleSelectAll","textarea","createContentEditableElement","observer","MutationObserver","mutationsList","mutation","type","onImmediatelyChange","getValues","textContent","uncontrolledProps","value","linesCount","errorIndex","componentDidMount","containerRef","current","append","handleValueOutChange","config","childList","characterData","subtree","observe","componentDidUpdate","prevProps","prevState","errors","showErrors","disabled","readonly","highlightErrorIndex","lineProcessing","ariaDescribedby","currentValue","join","delimiter","errorsMap","Map","forEach","error","set","lineIndex","childNodes","node","index","HTMLParagraphElement","errorItem","get","setAttribute","dataset","errormessage","errorMessage","removeAttribute","undefined","toggleAriaInvalid","length","handleChangeErrorIndex","isDisabled","removeEventListeners","addEventListeners","state","lines","newValue","newValueTextNode","document","createTextNode","paragraph","item","innerHTML","emptyLineValue","replaceChild","validateLine","setTimeout","newNode","setErrorIndex","recalculateErrors","recalculateLinesCount","asProps","onChangeLineIndex","componentWillUnmount","disconnect","Boolean","popperDescribedId","uid","commonErrorMessage","prevError","currentLineIndex","errorByInteraction","find","e","isCommonError","createElement","id","placeholder","extractedAriaProps","extractAriaProps","key","ariaProp","addEventListener","onChangeLinesCount","listOfNodes","prepareNodesForPaste","replaceChildren","scrollingTimeout","clearTimeout","isScrolling","window","event","element","target","HTMLElement","toggleErrorsPopper","isFocusing","getAttribute","setState","changeTriggerTimeout","rowNode","getNodeFromSelection","preventDefault","validateOn","clipboardData","getData","selection","getSelection","anchorNode","focusNode","anchorOffset","focusOffset","documentPosition","compareDocumentPosition","direction","getSelectionDirection","anchorElement","focusElement","fromOffset","toOffset","Text","parentElement","textNode","position","lastNodeToInsert","before","substring","after","noEmptyLineBefore","trim","noEmptyLineAfter","deleteFromDocument","removeChild","firstNodeToInsert","splice","setSelection","parentNode","console","warn","includes","HTMLDivElement","InputEvent","nodes","firstNode","secondNode","nodeText","firstRow","text","replaceWith","setPosition","HTMLBRElement","maxDeep","offset","firstSymbol","at","lastSymbol","getEmptyParagraph","inputType","isValid","trigger","lineNode","popper","elements","reference","shouldChangePopperTrigger","setPopperTrigger","nodeIndex","emptyParagraph","emptyBr","toggleErrorsPopperByKeyboard","onBlur","valueToChange","linesDelimiters","currentNode","currentRowValue","selectionNode","selectionOffset","newRowValue","row","previousSibling","handleCursorMovement","isDeleteKey","isRangeSelection","prevNode","anchorParagraph","focusParagraph","paragraphs","Array","from","children","isCleaning","ctrlKey","metaKey","render","_ref","_ref2","SInputField","Box","styles","visibleErrorTooltip","__excludeProps","Fragment","cn","boundary","tether","setTrigger","Popper","assignProps","pasteProps","line","trimmedLine","skipEmptyLines","isArray","split","preparedLine","allSpacesRegExp","RegExp","DOMPurify","sanitize","replace","spaceLineValue","push","onErrorsChange","linesCountTimeout","maxLines","overMaxRows","values","timer","toggleErrorsPopperTimeout","targetElement","isInvalidRow","indexOf","newState","forceUpdate","errorsLength","lineValidation","start","end","scrollType","range","createRange","setStart","setEnd","removeAllRanges","addRange","nodeToScroll","scrollIntoView","block","inline","behavior","nextNode","nextSibling","nodeToSetSelection","currentOffset","nodeToCompare","filter","Element","findIndex","handlers","removeEventListener","Node","DOCUMENT_POSITION_PRECEDING","exports","uniqueIDEnhancement","defaultValue","size","minRows","maxRows","defaultShowErrors","defaultErrorIndex","defaultLinesCount"],"sources":["../../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport type { PopperContext } from '@semcore/base-components';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { extractAriaProps } from '@semcore/core/lib/utils/ariaProps';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport Tooltip from '@semcore/tooltip';\nimport DOMPurify from 'dompurify';\nimport React from 'react';\n\nimport style from './inputField.shadow.css';\nimport type { InputFieldProps, ErrorItem } from './InputField.types';\n\ntype IndexKeys = 'keyboardLineIndex' | 'mouseLineIndex';\n\ntype State = {\n [key in IndexKeys]: number;\n} & {\n visibleErrorPopper: boolean;\n};\n\nclass InputField<T extends string | string[]> extends Component<\n InputFieldProps<T>,\n typeof InputField.enhance,\n {\n value: null;\n linesCount: null;\n errorIndex: null;\n },\n {},\n State\n> {\n static displayName = 'Textarea';\n static style = style;\n\n static enhance = [uniqueIDEnhancement()] as const;\n\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n state: 'normal',\n minRows: 2,\n maxRows: 10,\n defaultShowErrors: false,\n defaultErrorIndex: -1,\n defaultLinesCount: 0,\n };\n\n delimiter = '\\n';\n skipEmptyLines = true;\n emptyLineValue = '&#xfeff;';\n spaceLineValue = '&nbsp;';\n\n containerRef = React.createRef<HTMLDivElement>();\n textarea: HTMLDivElement;\n\n popper: PopperContext['popper'] | null = null;\n setPopperTrigger: PopperContext['setTrigger'] | null = null;\n\n errorByInteraction: 'keyboard' | 'mouse' | null = null;\n\n changeTriggerTimeout = 0;\n isScrolling = false;\n scrollingTimeout = 0;\n\n toggleErrorsPopperTimeout = 0;\n\n isFocusing = false;\n\n linesCountTimeout = 0;\n\n observer: MutationObserver;\n\n state = {\n visibleErrorPopper: false,\n keyboardLineIndex: -1,\n mouseLineIndex: -1,\n };\n\n constructor(props: InputFieldProps<T>) {\n super(props);\n\n this.handlePaste = this.handlePaste.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleSelectAll = this.handleSelectAll.bind(this);\n\n this.textarea = this.createContentEditableElement(props);\n\n this.observer = new MutationObserver((mutationsList, observer) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'characterData' || mutation.type === 'childList') {\n this.props.onImmediatelyChange?.(this.getValues(), this.textarea.textContent ?? '');\n }\n }\n });\n }\n\n uncontrolledProps() {\n return {\n value: null,\n linesCount: null,\n errorIndex: null,\n };\n }\n\n componentDidMount() {\n this.containerRef.current?.append(this.textarea);\n\n this.handleValueOutChange();\n\n const config = {\n childList: true,\n characterData: true,\n subtree: true,\n };\n\n if (this.props.onImmediatelyChange) {\n this.observer.observe(this.textarea, config);\n }\n }\n\n componentDidUpdate(prevProps: InputFieldProps<T>, prevState: State): void {\n const {\n value,\n errors,\n errorIndex,\n showErrors,\n disabled,\n readonly,\n highlightErrorIndex,\n lineProcessing,\n ['aria-describedby']: ariaDescribedby = '',\n } = this.props;\n\n if (prevProps.value !== value) {\n const currentValue = this.getValues().join(this.delimiter);\n if (\n typeof value === 'string'\n ? value !== currentValue\n : value.join(this.delimiter) !== currentValue\n ) {\n this.handleValueOutChange();\n }\n }\n\n if (prevProps.showErrors !== showErrors || prevProps.errors !== errors) {\n if (showErrors) {\n const errorsMap = new Map<number, ErrorItem>();\n errors.forEach((error: ErrorItem) => {\n errorsMap.set(error.lineIndex, error);\n });\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement) {\n const errorItem = errorsMap.get(index);\n if (errorItem) {\n node.setAttribute('aria-invalid', 'true');\n node.dataset.errormessage = errorItem.errorMessage;\n } else {\n node.removeAttribute('aria-invalid');\n node.dataset.errormessage = undefined;\n }\n }\n });\n }\n\n this.toggleAriaInvalid(showErrors, errors.length);\n\n if (showErrors === false) {\n this.textarea.setAttribute('aria-describedby', ariaDescribedby);\n }\n }\n\n if (prevProps.errorIndex !== errorIndex && highlightErrorIndex) {\n this.handleChangeErrorIndex(errorIndex);\n }\n\n if (prevProps.disabled !== disabled || prevProps.readonly !== readonly) {\n if (this.isDisabled) {\n this.textarea.setAttribute('contenteditable', 'false');\n this.removeEventListeners(this.textarea);\n } else {\n this.textarea.setAttribute('contenteditable', 'true');\n this.addEventListeners(this.textarea);\n }\n\n if (disabled) {\n this.textarea.setAttribute('tabindex', '-1');\n } else {\n this.textarea.setAttribute('tabindex', '0');\n }\n }\n\n const { keyboardLineIndex } = this.state;\n\n if (prevState.keyboardLineIndex !== -1 && prevState.keyboardLineIndex !== keyboardLineIndex) {\n if (lineProcessing) {\n const lines = this.getValues();\n const newValue = lineProcessing(lines[prevState.keyboardLineIndex] ?? '', lines);\n const newValueTextNode = document.createTextNode(newValue);\n const paragraph = this.textarea.childNodes.item(prevState.keyboardLineIndex);\n\n if (paragraph instanceof HTMLParagraphElement) {\n if (newValue === '') {\n paragraph.innerHTML = this.emptyLineValue;\n } else {\n paragraph.replaceChild(newValueTextNode, paragraph.childNodes.item(0));\n }\n }\n\n this.validateLine(paragraph);\n\n setTimeout(() => {\n const newNode = this.textarea.childNodes.item(keyboardLineIndex);\n if (newNode) {\n this.setErrorIndex(newNode);\n }\n }, 0); // need this timeout to update errorIndex to the new (usually empty) line\n }\n\n if (!showErrors) {\n this.recalculateErrors();\n }\n this.recalculateLinesCount();\n this.asProps.onChangeLineIndex(keyboardLineIndex);\n }\n }\n\n componentWillUnmount() {\n this.removeEventListeners(this.textarea);\n\n this.observer.disconnect();\n }\n\n get isDisabled(): boolean {\n const { disabled, readonly } = this.asProps;\n\n return Boolean(disabled || readonly);\n }\n\n get popperDescribedId() {\n const { uid } = this.asProps;\n return `bulk-textarea-${uid}-popper-describedby`;\n }\n\n get errorMessage() {\n const { errors, errorIndex, commonErrorMessage, prevError } = this.asProps;\n const { mouseLineIndex, keyboardLineIndex } = this.state;\n const currentLineIndex =\n this.errorByInteraction === 'keyboard'\n ? keyboardLineIndex\n : this.errorByInteraction === 'mouse'\n ? mouseLineIndex\n : -1;\n let errorItem: ErrorItem | undefined = errors[errorIndex];\n\n if (currentLineIndex !== -1) {\n errorItem = errors.find((e) => e?.lineIndex === currentLineIndex);\n }\n\n const errorMessage =\n errors.length === 0 && !prevError // show any errors only if there are at least one error\n ? null\n : errorItem?.errorMessage ??\n (commonErrorMessage === '' || errors.length === 0\n ? prevError?.errorMessage\n : commonErrorMessage);\n const isCommonError =\n !errorItem?.errorMessage &&\n (commonErrorMessage === '' || errors.length === 0 ? !prevError?.errorMessage : true);\n\n return {\n errorMessage,\n isCommonError,\n };\n }\n\n createContentEditableElement(props: InputFieldProps<T>) {\n const textarea = document.createElement('div');\n textarea.setAttribute('contentEditable', props.disabled || props.readonly ? 'false' : 'true');\n textarea.setAttribute('role', 'textbox');\n textarea.setAttribute('classname', 'editable');\n\n if (props.id) {\n textarea.setAttribute('id', props.id);\n }\n if (props.placeholder) {\n textarea.setAttribute('placeholder', props.placeholder);\n }\n const { extractedAriaProps } = extractAriaProps(props);\n for (const key in extractedAriaProps) {\n const ariaProp: string | undefined = (props as any)[key];\n if (ariaProp) {\n textarea.setAttribute(key, ariaProp);\n }\n }\n\n if (!props.disabled) {\n textarea.setAttribute('tabIndex', '0');\n } else {\n textarea.setAttribute('tabIndex', '-1');\n }\n\n if (!props.disabled && !props.readonly) {\n this.addEventListeners(textarea);\n } else {\n textarea.addEventListener('keydown', this.handleSelectAll.bind(this));\n }\n\n return textarea;\n }\n\n handleValueOutChange() {\n const { value, onChangeLinesCount } = this.props;\n\n if (value === '') {\n this.textarea.textContent = '';\n onChangeLinesCount(0);\n } else {\n const listOfNodes = this.prepareNodesForPaste(value);\n\n this.textarea.replaceChildren(...listOfNodes);\n\n this.recalculateLinesCount();\n this.recalculateErrors();\n }\n }\n\n handleScroll(): void {\n if (this.scrollingTimeout) {\n clearTimeout(this.scrollingTimeout);\n }\n\n this.isScrolling = true;\n\n this.scrollingTimeout = window.setTimeout(() => {\n this.isScrolling = false;\n }, 50);\n }\n\n handleMouseDown(event: MouseEvent): void {\n const element = event.target;\n\n if (element instanceof HTMLElement) {\n // we need to change keyboardLineIndex, because the caret in real on that current row\n this.toggleErrorsPopper('keyboardLineIndex', element);\n\n this.setErrorIndex(element);\n }\n }\n\n handleMouseMove(event: MouseEvent): void {\n this.errorByInteraction = 'mouse';\n const element = event.target;\n\n if (element !== this.textarea) {\n if (\n this.isFocusing ||\n (element instanceof HTMLElement && element.getAttribute('aria-invalid') === 'true')\n ) {\n this.toggleErrorsPopper('mouseLineIndex', element);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n }\n\n handleMouseLeave(): void {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n if (this.isFocusing) {\n this.errorByInteraction = 'keyboard';\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n this.setState({ mouseLineIndex: -1 });\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n handlePaste(event: ClipboardEvent) {\n event.preventDefault();\n const { validateOn } = this.asProps;\n const value = event.clipboardData?.getData('text/plain');\n const listOfNodes = value ? this.prepareNodesForPaste(value) : [];\n\n if (listOfNodes.length === 0) return;\n\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const anchorOffset = selection.anchorOffset;\n const focusOffset = selection.focusOffset;\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n const direction = this.getSelectionDirection();\n\n const anchorElement = direction === 'forward' ? selection.anchorNode : selection.focusNode;\n const focusElement = direction === 'forward' ? selection.focusNode : selection.anchorNode;\n const fromOffset = direction === 'forward' ? anchorOffset : focusOffset;\n const toOffset = direction === 'forward' ? focusOffset : anchorOffset;\n const anchorNode =\n anchorElement instanceof Text ? anchorElement.parentElement : anchorElement;\n const focusNode = focusElement instanceof Text ? focusElement.parentElement : focusElement;\n\n let textNode: ChildNode | null = null;\n let position: number | null = null;\n\n if (focusElement === this.textarea) {\n this.textarea.replaceChildren(...listOfNodes);\n\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n } else if (\n focusNode instanceof HTMLParagraphElement &&\n anchorNode instanceof HTMLParagraphElement\n ) {\n const before = anchorNode?.textContent?.substring(0, fromOffset) ?? '';\n const after = focusNode?.textContent?.substring(toOffset) ?? '';\n\n const noEmptyLineBefore = before.trim() === '' ? '' : before;\n const noEmptyLineAfter = after.trim() === '' ? '' : after;\n\n selection.deleteFromDocument();\n\n if (documentPosition !== 0) {\n this.textarea.removeChild(focusNode);\n }\n\n const firstNodeToInsert = listOfNodes.splice(0, 1)[0];\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n\n anchorNode.textContent = noEmptyLineBefore + (firstNodeToInsert?.textContent ?? '');\n\n anchorNode.after(...listOfNodes);\n\n if (lastNodeToInsert) {\n lastNodeToInsert.textContent = (lastNodeToInsert.textContent ?? '') + noEmptyLineAfter;\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n\n this.validateLine(lastNodeToInsert);\n this.setErrorIndex(lastNodeToInsert);\n } else {\n position = (anchorNode.textContent ?? '').length;\n anchorNode.textContent = (anchorNode.textContent ?? '') + noEmptyLineAfter;\n textNode = anchorNode.childNodes.item(0);\n\n this.validateLine(anchorNode);\n this.setErrorIndex(anchorNode);\n }\n }\n\n if (textNode instanceof Text) {\n this.setSelection(textNode, position ?? 1, position ?? 1);\n this.toggleErrorsPopper('keyboardLineIndex', textNode.parentNode);\n } else {\n // eslint-disable-next-line no-console\n console.warn('incorrect child type', textNode, textNode?.parentNode);\n }\n }\n\n this.recalculateLinesCount();\n\n if (validateOn.includes('paste') || this.asProps.showErrors) {\n this.recalculateErrors();\n }\n }\n\n handleChange(event: Event) {\n const target = event.target;\n if (target instanceof HTMLDivElement && event instanceof InputEvent) {\n const nodes = this.textarea.childNodes;\n const firstNode = nodes.item(0);\n const secondNode = nodes.item(1);\n const selection = document.getSelection();\n\n if (firstNode instanceof Text) {\n const nodeText = firstNode.textContent ?? '';\n const firstRow = document.createElement('p');\n const text = document.createTextNode(nodeText);\n firstRow.append(text);\n firstNode.replaceWith(firstRow);\n\n selection?.setPosition(firstRow, nodeText.length);\n } else if (!firstNode || (firstNode instanceof HTMLBRElement && nodes.length === 1)) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n } else if (firstNode instanceof HTMLParagraphElement && !firstNode.textContent?.trim()) {\n if (nodes.length <= 1 || secondNode instanceof HTMLBRElement) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n }\n }\n\n let maxDeep = 10;\n let rowNode = selection?.focusNode;\n\n while (rowNode?.parentNode !== this.textarea && maxDeep > 0) {\n rowNode = rowNode?.parentNode;\n maxDeep--;\n }\n\n if (rowNode instanceof HTMLParagraphElement) {\n const childNodes = rowNode.childNodes;\n const textContent = rowNode.textContent ?? '';\n\n if (childNodes.length > 1) {\n const offset = childNodes.item(0).textContent?.length;\n\n rowNode.textContent = textContent;\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n\n if (textContent.length > 0) {\n const firstSymbol = textContent.at(0);\n const lastSymbol = textContent.at(textContent.length - 1);\n\n if (\n firstSymbol === this.getEmptyParagraph().textContent ||\n lastSymbol === this.getEmptyParagraph().textContent\n ) {\n let offset: number | null = null;\n if (firstSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(1);\n offset =\n event.inputType === 'deleteContentBackward' ||\n event.inputType === 'deleteContentForward'\n ? 0\n : rowNode.textContent.length;\n } else if (lastSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(0, textContent.length - 1);\n offset = rowNode.textContent.length;\n }\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n } else if (childNodes.length === 1 && childNodes[0] instanceof HTMLBRElement) {\n rowNode.innerHTML = this.emptyLineValue;\n }\n\n const { errors, showErrors } = this.asProps;\n const isValid = this.validateLine(rowNode);\n this.recalculateErrors();\n this.setErrorIndex(rowNode);\n\n if (!isValid && showErrors) {\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n }\n\n const trigger =\n !isValid || (isValid && errors.length === 1 && errors[0].lineNode === rowNode)\n ? rowNode\n : this.textarea;\n\n if (showErrors && this.popper?.current?.state.elements.reference !== trigger) {\n if (this.shouldChangePopperTrigger(trigger)) {\n this.setPopperTrigger?.(trigger);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n } else if (rowNode === null) {\n this.setPopperTrigger?.(this.textarea);\n\n if (selection?.focusNode === this.textarea && this.textarea.childNodes.length > 1) {\n const nodeIndex = selection.focusOffset;\n const emptyParagraph = this.textarea.childNodes.item(nodeIndex - 1);\n const emptyBr = this.textarea.childNodes.item(nodeIndex);\n\n this.textarea.removeChild(emptyBr);\n\n if (emptyParagraph instanceof HTMLParagraphElement) {\n emptyParagraph.innerHTML = this.emptyLineValue;\n }\n\n if (emptyParagraph) {\n this.setSelection(emptyParagraph, 0, 0);\n }\n } else {\n this.setSelection(this.textarea, 0, 0);\n }\n }\n\n this.recalculateLinesCount();\n }\n }\n\n handleFocus() {\n this.isFocusing = true;\n this.errorByInteraction = 'keyboard';\n\n if (this.asProps.showErrors) {\n this.toggleErrorsPopperByKeyboard(150);\n } else {\n this.toggleErrorsPopper('keyboardLineIndex', this.textarea);\n }\n }\n\n handleBlur(event: Event) {\n this.isFocusing = false;\n this.setState({ visibleErrorPopper: false });\n\n const { validateOn, onBlur, value } = this.asProps;\n\n if (validateOn.includes('blur')) {\n this.recalculateErrors();\n }\n\n const valueToChange =\n typeof value === 'string' ? this.getValues().join(this.delimiter) : this.getValues();\n\n onBlur(valueToChange as T, event);\n\n setTimeout(() => {\n this.setState({ keyboardLineIndex: -1 });\n }, 200);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n this.errorByInteraction = 'keyboard';\n const { linesDelimiters } = this.asProps;\n\n const currentNode = this.getNodeFromSelection();\n\n if (event.key === 'Enter' || linesDelimiters?.includes(event.key)) {\n if (currentNode === this.textarea) {\n event.preventDefault();\n }\n if (currentNode instanceof HTMLParagraphElement) {\n const currentRowValue = currentNode.textContent?.trim();\n\n if (!currentRowValue) {\n event.preventDefault();\n } else {\n event.preventDefault();\n const selection = document.getSelection();\n const selectionNode =\n selection?.focusNode instanceof Text\n ? selection.focusNode\n : selection?.focusNode?.childNodes.item(0);\n const selectionOffset = selection?.focusOffset;\n\n let newRowValue = '';\n\n if (\n selectionNode instanceof Text &&\n selectionOffset !== undefined &&\n selectionOffset !== selectionNode.textContent?.length\n ) {\n newRowValue =\n selectionNode.textContent?.substring(selectionOffset) ?? this.emptyLineValue;\n\n if (selectionNode.textContent) {\n selectionNode.textContent = selectionNode.textContent.substring(0, selectionOffset);\n }\n }\n\n if (currentNode.textContent?.trim() === '') {\n currentNode.innerHTML = this.emptyLineValue;\n }\n\n const row = document.createElement('p');\n if (newRowValue) {\n row.textContent = newRowValue;\n } else {\n row.innerHTML = this.emptyLineValue;\n }\n currentNode.after(row);\n\n this.setSelection(row, 0, 0);\n\n this.validateLine(currentNode);\n this.validateLine(row);\n if (currentNode.previousSibling) {\n this.validateLine(currentNode.previousSibling);\n }\n this.setErrorIndex(row);\n\n if (row.textContent?.trim() !== '') {\n this.recalculateLinesCount();\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (currentNode instanceof HTMLParagraphElement) {\n this.handleCursorMovement(currentNode, event);\n }\n this.toggleErrorsPopperByKeyboard(200);\n } else if (this.isDeleteKey(event) && currentNode instanceof HTMLParagraphElement) {\n if (currentNode.textContent?.trim() === '' && !this.isRangeSelection()) {\n // Backspace on empty row\n const prevNode = currentNode.previousSibling;\n if (prevNode instanceof HTMLParagraphElement) {\n event.preventDefault();\n this.textarea.removeChild(currentNode);\n this.toggleErrorsPopperByKeyboard(0);\n\n if (\n prevNode.textContent?.trim() === '' &&\n prevNode.previousSibling === null &&\n this.textarea.childNodes.length === 1\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n if (prevNode instanceof HTMLParagraphElement) {\n const text = prevNode.childNodes.item(0);\n const offset = text.textContent?.length ?? 0;\n this.setSelection(text, offset, offset);\n } else {\n // eslint-disable-next-line no-console\n console.warn('incorrect prevNode type', prevNode);\n }\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n } else if (this.isRangeSelection()) {\n const selection = document.getSelection();\n\n const direction = this.getSelectionDirection();\n const anchorElement =\n direction === 'backward' ? selection?.focusNode : selection?.anchorNode;\n const focusElement =\n direction === 'backward' ? selection?.anchorNode : selection?.focusNode;\n const anchorOffset =\n direction === 'backward' ? selection?.focusOffset : selection?.anchorOffset;\n const focusOffset =\n direction === 'backward' ? selection?.anchorOffset : selection?.focusOffset;\n\n // Backspace on selected full row\n if (\n anchorElement === focusElement &&\n anchorOffset === 0 &&\n ((focusElement === currentNode && focusOffset === 1) ||\n focusOffset === currentNode.textContent?.length)\n ) {\n event.preventDefault();\n\n const anchorParagraph = anchorElement?.parentElement;\n const focusParagraph = focusElement?.parentElement;\n const childNodes = this.textarea.childNodes;\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n currentNode.innerHTML = this.emptyLineValue;\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n } else if (\n focusElement !== anchorElement &&\n focusElement instanceof Text &&\n anchorElement instanceof Text &&\n focusElement?.textContent === focusElement?.parentNode?.textContent &&\n anchorElement?.textContent === anchorElement?.parentNode?.textContent &&\n anchorOffset === 0 &&\n focusOffset === focusElement?.parentNode?.textContent?.length\n ) { // Backspace on selected few full rows\n event.preventDefault();\n\n const paragraphs = Array.from(this.textarea.children);\n const anchorParagraph = anchorElement.parentElement;\n const focusParagraph = focusElement.parentElement;\n const childNodes = this.textarea.childNodes;\n\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n let isCleaning = false;\n\n for (const paragraph of paragraphs) {\n if (paragraph === anchorParagraph || isCleaning) {\n isCleaning = true;\n\n if (paragraph === focusParagraph) {\n focusParagraph.innerHTML = this.emptyLineValue;\n this.setSelection(focusParagraph, 0, 0);\n break;\n } else {\n this.textarea.removeChild(paragraph);\n }\n }\n }\n\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (event.key === 'z' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n }\n }\n\n render() {\n const SInputField = Root;\n const { styles, showErrors } = this.asProps;\n const { visibleErrorPopper } = this.state;\n\n const { errorMessage, isCommonError } = this.errorMessage;\n const visibleErrorTooltip =\n showErrors && visibleErrorPopper && Boolean(errorMessage) && !this.isDisabled;\n\n const { __excludeProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <>\n <Tooltip\n interaction='none'\n placement={isCommonError ? 'right-start' : 'right'}\n visible={visibleErrorTooltip}\n theme='warning'\n offset={isCommonError ? undefined : [0, 26]}\n preventOverflow={{\n boundary: this.containerRef.current ?? undefined,\n tether: false,\n }}\n >\n {({ popper, setTrigger }) => {\n if (!this.popper) {\n this.setPopperTrigger = setTrigger;\n // @ts-ignore\n this.popper = popper;\n }\n\n return <Tooltip.Popper id={this.popperDescribedId}>{errorMessage}</Tooltip.Popper>;\n }}\n </Tooltip>\n <SInputField\n render={Box}\n ref={this.containerRef}\n __excludeProps={['onBlur', 'value', ...__excludeProps]}\n />\n </>,\n );\n }\n\n private prepareNodesForPaste(value: string | string[]): HTMLParagraphElement[] {\n const listOfNodes: HTMLParagraphElement[] = [];\n const { pasteProps } = this.asProps;\n const lineProcessing =\n pasteProps?.lineProcessing ??\n ((line: string) => {\n const trimmedLine = line.trim();\n return trimmedLine === '' ? line : trimmedLine;\n });\n const skipEmptyLines = pasteProps?.skipEmptyLines ?? this.skipEmptyLines;\n const delimiter = pasteProps?.delimiter ?? this.delimiter;\n const lines: string[] = Array.isArray(value) ? value : value.split(delimiter);\n\n lines.forEach((line, index) => {\n const preparedLine = lineProcessing(line, index, lines.length);\n\n if ((preparedLine === '' && skipEmptyLines === false) || preparedLine !== '') {\n const node = document.createElement('p');\n\n if (preparedLine === '') {\n node.innerHTML = this.emptyLineValue;\n } else if (preparedLine.trim() === '') {\n const allSpacesRegExp = new RegExp('\\\\s', 'g');\n node.innerHTML = DOMPurify.sanitize(\n preparedLine.replace(allSpacesRegExp, this.spaceLineValue),\n );\n } else {\n node.append(document.createTextNode(preparedLine));\n }\n\n listOfNodes.push(node);\n\n this.validateLine(node);\n }\n });\n\n return listOfNodes;\n }\n\n private recalculateErrors(): void {\n const errors: ErrorItem[] = [];\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement && node.getAttribute('aria-invalid') === 'true') {\n const errorItem = {\n errorMessage: node.dataset.errormessage ?? '',\n lineNode: node,\n lineIndex: index,\n };\n errors.push(errorItem);\n }\n });\n\n this.asProps.onErrorsChange(errors);\n }\n\n private recalculateLinesCount(): void {\n if (this.linesCountTimeout) {\n clearTimeout(this.linesCountTimeout);\n }\n\n this.linesCountTimeout = window.setTimeout(() => {\n let lines = 0;\n const { maxLines, linesCount } = this.asProps;\n\n this.textarea.childNodes.forEach((node) => {\n if (node instanceof HTMLParagraphElement) {\n node.dataset.overMaxRows = 'false';\n\n if (\n node.textContent !== this.getEmptyParagraph().textContent &&\n node.textContent !== ''\n ) {\n lines++;\n\n if (lines > maxLines) {\n node.dataset.overMaxRows = 'true';\n }\n }\n }\n });\n\n if (linesCount !== lines) {\n this.asProps.onChangeLinesCount(lines);\n }\n }, 100);\n }\n\n private getValues(): string[] {\n const values: string[] = [];\n this.textarea.childNodes.forEach((node) => {\n if (node.textContent?.trim() === '') {\n values.push('');\n } else {\n values.push(node.textContent ?? '');\n }\n });\n\n return values;\n }\n\n private shouldChangePopperTrigger(node: HTMLElement): boolean {\n return (\n this.textarea !== node || (this.textarea === node && Boolean(this.asProps.commonErrorMessage))\n );\n }\n\n private toggleErrorsPopperByKeyboard(timer: number) {\n if (this.toggleErrorsPopperTimeout) {\n clearTimeout(this.toggleErrorsPopperTimeout);\n }\n\n if (!this.isScrolling) {\n setTimeout(() => {\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, timer);\n }, 0);\n } else {\n this.toggleErrorsPopperTimeout = window.setTimeout(() => {\n this.toggleErrorsPopperByKeyboard(timer);\n }, 50);\n }\n }\n\n private toggleErrorsPopper(key: IndexKeys, target?: unknown, timer?: number) {\n if (target instanceof HTMLDivElement || target instanceof HTMLParagraphElement) {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n this.changeTriggerTimeout = window.setTimeout(() => {\n const targetElement = target === this.textarea ? this.getNodeFromSelection() : target;\n\n let lineIndex = -1;\n let isInvalidRow = false;\n\n if (targetElement instanceof HTMLParagraphElement) {\n isInvalidRow = targetElement.getAttribute('aria-invalid') === 'true';\n lineIndex = Array.from(this.textarea.childNodes).indexOf(targetElement);\n } else if (targetElement === this.textarea) {\n lineIndex = 0;\n }\n\n if (targetElement instanceof HTMLElement) {\n this.setState(\n (prevState) => {\n const newState: State = {\n visibleErrorPopper:\n this.isFocusing && Boolean(this.asProps.commonErrorMessage) ? true : isInvalidRow,\n mouseLineIndex: prevState.mouseLineIndex,\n keyboardLineIndex: prevState.keyboardLineIndex,\n };\n\n if (this.isFocusing || (key === 'mouseLineIndex' && isInvalidRow)) {\n newState[key] = lineIndex;\n }\n\n return newState;\n },\n () => {\n this.errorByInteraction = key === 'mouseLineIndex' ? 'mouse' : 'keyboard';\n\n const trigger = isInvalidRow ? targetElement : this.textarea;\n\n if (this.shouldChangePopperTrigger(trigger)) {\n this.setPopperTrigger?.(trigger);\n\n this.forceUpdate();\n }\n },\n );\n }\n }, timer ?? 50);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n private toggleAriaInvalid(showErrors: boolean, errorsLength: number): void {\n if (showErrors && errorsLength > 0) {\n this.textarea.setAttribute('aria-describedby', this.popperDescribedId);\n this.textarea.setAttribute('aria-invalid', 'true');\n } else {\n this.textarea.removeAttribute('aria-invalid');\n this.textarea.removeAttribute('aria-describedby');\n }\n }\n\n private handleChangeErrorIndex(errorIndex: number): void {\n const error: ErrorItem | undefined = this.asProps.errors[errorIndex];\n const childNodes = this.textarea.childNodes;\n\n const node = error ? error.lineNode ?? childNodes.item(error.lineIndex) : null;\n const selection = document.getSelection();\n\n if (selection && node instanceof HTMLParagraphElement) {\n this.setState({ visibleErrorPopper: false });\n\n setTimeout(() => {\n const text = node.childNodes.item(0);\n if (text instanceof Text) {\n this.setSelection(text, 0, text.length);\n } else {\n this.setSelection(node, 0, 1);\n }\n }, 150);\n }\n }\n\n private validateLine(node: Node): boolean {\n const { lineValidation } = this.asProps;\n if (lineValidation && node instanceof HTMLElement) {\n const { isValid, errorMessage } = lineValidation(node.textContent ?? '', this.getValues());\n\n if (!isValid) {\n node.setAttribute('aria-invalid', 'true');\n node.dataset.errormessage = errorMessage;\n } else {\n node.removeAttribute('aria-invalid');\n node.dataset.errormessage = undefined;\n }\n\n return isValid;\n }\n\n return true;\n }\n\n private setSelection(\n node: Node,\n start: number,\n end: number,\n scrollType: 'center' | 'nearest' = 'center',\n ): void {\n const selection = document.getSelection();\n const range = document.createRange();\n range.setStart(node, start);\n range.setEnd(node, end);\n\n selection?.removeAllRanges();\n selection?.addRange(range);\n\n const nodeToScroll = node instanceof Text ? node.parentNode : node;\n\n if (nodeToScroll instanceof HTMLElement) {\n nodeToScroll.scrollIntoView({\n block: scrollType,\n inline: scrollType,\n behavior: 'smooth',\n });\n }\n }\n\n private getNodeFromSelection(): Node | null {\n const selection = document.getSelection();\n\n const rowNode =\n selection?.focusNode instanceof Text ? selection.focusNode.parentNode : selection?.focusNode;\n\n return rowNode ?? null;\n }\n\n private handleCursorMovement(currentNode: HTMLParagraphElement, event: KeyboardEvent): void {\n let nextNode: ChildNode | null = null;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n break;\n case 'ArrowDown':\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n break;\n case 'ArrowLeft': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n }\n break;\n }\n case 'ArrowRight': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n }\n }\n }\n\n if (nextNode instanceof HTMLParagraphElement) {\n const selection = document.getSelection();\n const firstNode = nextNode.childNodes.item(0);\n const nodeToSetSelection = firstNode instanceof Text ? firstNode : nextNode;\n const textNode = nextNode.textContent?.trim() ?? '';\n const currentOffset = selection?.focusOffset ?? 0;\n let offset = currentOffset <= textNode.length ? currentOffset : textNode.length;\n\n // it only works if node is empty, that's why here we could set 0 or node.length\n if (event.key === 'ArrowLeft') {\n offset = textNode.length;\n } else if (event.key === 'ArrowRight') {\n offset = 0;\n }\n\n this.setSelection(nodeToSetSelection, offset, offset, 'nearest');\n }\n }\n\n private setErrorIndex(nodeToCompare: Node): void {\n const errorIndex = Array.from(this.textarea.childNodes)\n .filter((node) => {\n return node instanceof Element && node.getAttribute('aria-invalid') === 'true';\n })\n .findIndex((node) => {\n return node === nodeToCompare;\n });\n\n this.handlers.errorIndex(errorIndex);\n }\n\n private isDeleteKey(event: KeyboardEvent): boolean {\n return event.key === 'Backspace' || (event.key === 'x' && (event.ctrlKey || event.metaKey));\n }\n\n private getEmptyParagraph() {\n const element = document.createElement('p');\n\n element.innerHTML = this.emptyLineValue;\n\n return element;\n }\n\n private addEventListeners(textarea: HTMLElement) {\n textarea.addEventListener('paste', this.handlePaste);\n textarea.addEventListener('input', this.handleChange);\n textarea.addEventListener('focus', this.handleFocus);\n textarea.addEventListener('blur', this.handleBlur);\n textarea.addEventListener('keydown', this.handleKeyDown);\n textarea.addEventListener('mousedown', this.handleMouseDown);\n textarea.addEventListener('mousemove', this.handleMouseMove);\n textarea.addEventListener('mouseleave', this.handleMouseLeave);\n textarea.addEventListener('scroll', this.handleScroll);\n\n textarea.removeEventListener('keydown', this.handleSelectAll);\n }\n\n private removeEventListeners(textarea: HTMLElement) {\n textarea.removeEventListener('paste', this.handlePaste);\n textarea.removeEventListener('input', this.handleChange);\n textarea.removeEventListener('focus', this.handleFocus);\n textarea.removeEventListener('blur', this.handleBlur);\n textarea.removeEventListener('keydown', this.handleKeyDown);\n textarea.removeEventListener('mousedown', this.handleMouseDown);\n textarea.removeEventListener('mousemove', this.handleMouseMove);\n textarea.removeEventListener('mouseleave', this.handleMouseLeave);\n textarea.removeEventListener('scroll', this.handleScroll);\n\n textarea.addEventListener('keydown', this.handleSelectAll);\n }\n\n private handleSelectAll(event: KeyboardEvent) {\n if (event.key === 'a' && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n\n const node = event.target;\n if (node instanceof HTMLElement && node === this.textarea) {\n this.setSelection(node, 0, node.childNodes.length);\n }\n }\n }\n\n private isRangeSelection(): boolean {\n const selection = document.getSelection();\n\n return (\n selection?.focusNode !== selection?.anchorNode ||\n selection?.focusOffset !== selection?.anchorOffset\n );\n }\n\n private getSelectionDirection(): 'forward' | 'backward' | null {\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n\n if (\n (documentPosition === 0 && selection.anchorOffset > selection.focusOffset) || // if nodes are the same\n documentPosition === Node.DOCUMENT_POSITION_PRECEDING\n ) {\n return 'backward';\n }\n\n return 'forward';\n }\n\n return null;\n }\n}\n\nexport { InputField };\nexport type { InputFieldProps, ErrorItem };\n"],"mappings":"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","ignoreList":[]}
package/lib/cjs/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
10
- return _BulkTextarea["default"];
9
+ get: function () {
10
+ return _BulkTextarea.default;
11
11
  }
12
12
  });
13
13
  var _BulkTextarea = _interopRequireDefault(require("./BulkTextarea"));
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -19,20 +19,20 @@ var _sv = _interopRequireDefault(require("./sv.json"));
19
19
  var _tr = _interopRequireDefault(require("./tr.json"));
20
20
  var _vi = _interopRequireDefault(require("./vi.json"));
21
21
  var _zh = _interopRequireDefault(require("./zh.json"));
22
- var localizedMessages = exports.localizedMessages = {
23
- de: _de["default"],
24
- en: _en["default"],
25
- es: _es["default"],
26
- fr: _fr["default"],
27
- it: _it["default"],
28
- ja: _ja["default"],
29
- ko: _ko["default"],
30
- nl: _nl["default"],
31
- pt: _pt["default"],
32
- tr: _tr["default"],
33
- vi: _vi["default"],
34
- zh: _zh["default"],
35
- pl: _pl["default"],
36
- sv: _sv["default"]
22
+ const localizedMessages = exports.localizedMessages = {
23
+ de: _de.default,
24
+ en: _en.default,
25
+ es: _es.default,
26
+ fr: _fr.default,
27
+ it: _it.default,
28
+ ja: _ja.default,
29
+ ko: _ko.default,
30
+ nl: _nl.default,
31
+ pt: _pt.default,
32
+ tr: _tr.default,
33
+ vi: _vi.default,
34
+ zh: _zh.default,
35
+ pl: _pl.default,
36
+ sv: _sv.default
37
37
  };
38
38
  //# sourceMappingURL=__intergalactic-dynamic-locales.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"__intergalactic-dynamic-locales.js","names":["_de","_interopRequireDefault","require","_en","_es","_fr","_it","_ja","_ko","_nl","_pl","_pt","_sv","_tr","_vi","_zh","localizedMessages","exports","de","en","es","fr","it","ja","ko","nl","pt","tr","vi","zh","pl","sv"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pl from './pl.json';\nimport pt from './pt.json';\nimport sv from './sv.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,GAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,GAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,GAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,GAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,GAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,GAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,GAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,GAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,GAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,GAAA,GAAAd,sBAAA,CAAAC,OAAA;AAEO,IAAMc,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"__intergalactic-dynamic-locales.js","names":["_de","_interopRequireDefault","require","_en","_es","_fr","_it","_ja","_ko","_nl","_pl","_pt","_sv","_tr","_vi","_zh","localizedMessages","exports","de","en","es","fr","it","ja","ko","nl","pt","tr","vi","zh","pl","sv"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pl from './pl.json';\nimport pt from './pt.json';\nimport sv from './sv.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,GAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,GAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,GAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,GAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,GAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,GAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,GAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,GAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,GAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,GAAA,GAAAd,sBAAA,CAAAC,OAAA;AAEO,MAAMc,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA,WAAE;EACFC,EAAE,EAAFA;AACF,CAAC","ignoreList":[]}