@startlibs/form 1.0.12 → 1.1.1

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 (92) hide show
  1. package/lib/AutoComplete.mjs +550 -0
  2. package/lib/AutoComplete.mjs.map +1 -0
  3. package/lib/Checkbox.mjs +76 -0
  4. package/lib/Checkbox.mjs.map +1 -0
  5. package/lib/Combobox.mjs +544 -0
  6. package/lib/Combobox.mjs.map +1 -0
  7. package/lib/ComboboxWithCustom.mjs +77 -0
  8. package/lib/ComboboxWithCustom.mjs.map +1 -0
  9. package/lib/DatePicker.mjs +625 -0
  10. package/lib/DatePicker.mjs.map +1 -0
  11. package/lib/EditableBox.mjs +496 -0
  12. package/lib/EditableBox.mjs.map +1 -0
  13. package/lib/Errors.mjs +176 -0
  14. package/lib/Errors.mjs.map +1 -0
  15. package/lib/ExpandableBox.mjs +209 -0
  16. package/lib/ExpandableBox.mjs.map +1 -0
  17. package/lib/Field.mjs +65 -0
  18. package/lib/Field.mjs.map +1 -0
  19. package/lib/FieldBox.mjs +80 -0
  20. package/lib/FieldBox.mjs.map +1 -0
  21. package/lib/Form.mjs +322 -0
  22. package/lib/Form.mjs.map +1 -0
  23. package/lib/FormValue.mjs +111 -0
  24. package/lib/FormValue.mjs.map +1 -0
  25. package/lib/InputboxGroup.mjs +104 -0
  26. package/lib/InputboxGroup.mjs.map +1 -0
  27. package/lib/Radiobox.mjs +67 -0
  28. package/lib/Radiobox.mjs.map +1 -0
  29. package/lib/RichText.mjs +634 -0
  30. package/lib/RichText.mjs.map +1 -0
  31. package/lib/TextInput.mjs +359 -0
  32. package/lib/TextInput.mjs.map +1 -0
  33. package/lib/alt/checkbox/SimpleCheckbox.mjs +82 -0
  34. package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
  35. package/lib/alt/checkbox/ToggleCheckbox.mjs +68 -0
  36. package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
  37. package/lib/alt/radiobox/CleanTabRadiobox.mjs +44 -0
  38. package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
  39. package/lib/alt/radiobox/IconRadioBox.mjs +52 -0
  40. package/lib/alt/radiobox/IconRadioBox.mjs.map +1 -0
  41. package/lib/alt/radiobox/SimpleRadiobox.mjs +61 -0
  42. package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
  43. package/lib/alt/radiobox/TabRadiobox.mjs +54 -0
  44. package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -0
  45. package/lib/enhanceInput.mjs +131 -0
  46. package/lib/enhanceInput.mjs.map +1 -0
  47. package/lib/index.cjs +5345 -0
  48. package/lib/index.cjs.map +1 -0
  49. package/lib/index.mjs +28 -0
  50. package/lib/index.mjs.map +1 -0
  51. package/lib/useConfirmDialog.mjs +117 -0
  52. package/lib/useConfirmDialog.mjs.map +1 -0
  53. package/lib/useDraftConfirmation.mjs +56 -0
  54. package/lib/useDraftConfirmation.mjs.map +1 -0
  55. package/lib/validation.mjs +91 -0
  56. package/lib/validation.mjs.map +1 -0
  57. package/lib/withFormImageInput.mjs +281 -0
  58. package/lib/withFormImageInput.mjs.map +1 -0
  59. package/package.json +46 -26
  60. package/src/AutoComplete.jsx +642 -0
  61. package/src/Checkbox.jsx +45 -0
  62. package/src/Combobox.jsx +606 -0
  63. package/src/ComboboxWithCustom.jsx +68 -0
  64. package/src/DatePicker.jsx +733 -0
  65. package/src/EditableBox.jsx +502 -0
  66. package/src/Errors.jsx +174 -0
  67. package/src/ExpandableBox.jsx +207 -0
  68. package/src/Field.jsx +76 -0
  69. package/src/FieldBox.jsx +136 -0
  70. package/src/Form.jsx +291 -0
  71. package/src/FormValue.jsx +67 -0
  72. package/src/IconRadioBoxOldHubt.jsx +93 -0
  73. package/src/InputboxGroup.jsx +121 -0
  74. package/src/Radiobox.jsx +33 -0
  75. package/src/RichText.jsx +812 -0
  76. package/src/TextInput.jsx +519 -0
  77. package/src/alt/checkbox/SimpleCheckbox.jsx +162 -0
  78. package/src/alt/checkbox/ToggleCheckbox.jsx +143 -0
  79. package/src/alt/radiobox/CleanTabRadiobox.jsx +46 -0
  80. package/src/alt/radiobox/IconRadioBox.jsx +93 -0
  81. package/src/alt/radiobox/SimpleRadiobox.jsx +153 -0
  82. package/src/alt/radiobox/TabRadiobox.jsx +73 -0
  83. package/src/enhanceInput.jsx +107 -0
  84. package/src/index.js +27 -0
  85. package/src/useConfirmDialog.jsx +105 -0
  86. package/src/useDraftConfirmation.jsx +60 -0
  87. package/src/validation.js +92 -0
  88. package/src/withFormImageInput.jsx +297 -0
  89. package/.babelrc +0 -28
  90. package/lib/index.js +0 -6258
  91. package/rollup.config.js +0 -43
  92. package/yarn-error.log +0 -1607
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichText.mjs","sources":["../src/RichText.jsx"],"sourcesContent":["import React, {useContext, useEffect, useRef, useState} from 'react'\nimport styled, {css} from 'styled-components'\nimport ContentEditable from 'react-contenteditable'\nimport {darken} from 'polished'\nimport _ from 'lodash/fp'\nimport {getColor, linkRegex, stopPropagation} from '@startlibs/utils'\nimport {StartlibsContext, useEnsureRef, useLazyConstant, useToggle, usePopupToggle, useRefState} from '@startlibs/core'\nimport {Errors} from './Errors'\nimport {Field} from './Field'\nimport {WithForm} from './Form'\nimport {TextInput} from './TextInput'\nimport {useInput} from './enhanceInput'\nimport {Button, Icon} from '@startlibs/components'\n\nconst InputIcon = styled(Icon)`\n position: absolute;\n outline: none;\n bottom: 0;\n font-size: 21px;\n line-height: 3rem;\n right: 0;\n width: 2rem;\n pointer-events: none;\n color: ${getColor('gray150')};\n`\n\nconst FORMAT_TOOLS = {\n 'bold': ['b', 'strong'],\n 'italic': 'i',\n 'underline': 'u',\n 'strikethrough': 'strike',\n 'link': 'a',\n 'insertUnorderedList': ['ul', 'li'],\n 'insertOrderedList': ['ol', 'li'],\n 'outdent': '',\n 'indent': 'blockquote',\n 'fontSizeUp': 'font',\n 'fontSizeDown': 'font'\n}\n\nconst TAG_TO_STYLE_PROPERTY = {\n 'b': 'fontWeight',\n 'strong': 'fontWeight',\n 'u': 'textDecoration',\n 'strike': 'textDecoration',\n 'font': 'fontSize',\n 'i': 'fontStyle'\n}\n\nlet GET_LIMITS_FONT_SIZE_PX = () => {\n const s = document.createElement('span')\n s.style.fontSize = 'medium'\n document.body.appendChild(s)\n const fontSize = parseInt(getComputedStyle(s).fontSize)\n document.body.removeChild(s)\n const limits = [fontSize * 3 / 5, fontSize * 3]\n GET_LIMITS_FONT_SIZE_PX = () => limits\n return limits\n}\n\nconst wrapWith = (el,wrapper) => {\n el.parentNode.insertBefore(wrapper, el);\n wrapper.appendChild(el)\n}\n\nconst FIX_STYLE = {\n 'fontWeight': (v, el) => {\n const intFontWeight = parseInt(window.getComputedStyle(el).fontWeight)\n return intFontWeight <= 400 ? 400 : 600\n },\n 'fontSize': (v, el) => {\n const [min, max] = GET_LIMITS_FONT_SIZE_PX()\n const intFontSize = parseInt(window.getComputedStyle(el).fontSize)\n return Math.min(max, Math.max(min, intFontSize)) + 'px'\n },\n 'textDecoration': (v,el) => {\n const values = v.split(' ').filter(v => v === 'underline' || v === 'line-through')\n if (values.indexOf('underline')>=0) {\n wrapWith(el,document.createElement('u'))\n }\n if (values.indexOf('line-through')>=0) {\n wrapWith(el,document.createElement('strike'))\n }\n return ''\n }\n}\n\nexport const RichTextContainer = styled.div`\n position:relative;\n width: 100%;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n background: white;\n ${props => props.hasErrors && `border-color: ${getColor(props)('alert')}`};\n ${props => props.showToolbar && `\n ${ToolsContainer} {\n transition: 0.5s;\n max-height: 7.5rem;\n transition: 0.6s;\n pointer-events: auto;\n }\n `};\n ${props => props.focus && `\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n ${props => props.locked && css`\n padding-right: 2.25rem;\n background: rgba(0,0,0,0.075);\n `}\n ${props => props.linkColor && css`\n a, a:visited, a:focus, a:active {\n color: ${props.linkColor};\n }\n a:hover {\n color: ${darken(0.05, props.linkColor)};\n }\n `}\n ul {\n list-style-type: disc;\n }\n ul, ol {\n padding-inline-start: 25px;\n margin-block-start: 0.5em;\n margin-block-end: 0.5em;\n }\n`\n\nexport const RichTextInput = styled.div`\n font-size: 14px;\n color: ${getColor('gray60')};\n background: white;\n border-radius: 7px;\n > div {\n overflow: auto;\n width: 100%;\n outline: none;\n min-height: ${props=>props.minHeight || 60}px;\n padding: 0.7rem;\n }\n b, strong {\n font-weight: 600;\n }\n a {\n text-decoration: underline;\n }\n > div[contenteditable=true]:empty:before {\n content: attr(placeholder);\n color: rgba(0,0,0,0.3);\n }\n ${props => props.disabled && `\n &[disabled] {\n background: rgba(0, 0, 0, 0.075) !important;\n opacity: 0.75 !important;\n }\n `}\n`\n\nconst ToolsContainer = styled.div`\n background: ${getColor('lightBluishGray')};\n padding: 0 0.125rem;\n border-top-left-radius: 7px;\n border-top-right-radius: 7px;\n transition: 0.225s;\n max-height: 0;\n pointer-events: none;\n overflow: hidden;\n display: flex;\n align-items: center;\n`\n\nconst ToolButton = styled(Button)`\n min-height: 2rem;\n min-width: 2rem;\n background: transparent;\n box-shadow: none;\n margin: 0.25rem 0.125rem;\n & ~ & {\n margin-left: 0.125rem;\n }\n .icon {\n font-size: 23px;\n color: ${getColor('gray90')};\n position: absolute;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n }\n &:hover, &.activated:hover {\n background: rgba(0,0,0,0.11);\n }\n &.activated {\n background: rgba(0,0,0,0.09);\n }\n &:focus:after {\n content: none;\n }\n`\n\nconst ToolSeparator = styled.span`\n border-left: 1px solid rgba(0,0,0,0.1);\n margin-left: 0.75rem;\n margin-right: 0.5rem;\n height: 1.5rem;\n`\n\nconst JS_CLASS = \"EDITOR--JS\"\n\nconst getNextRegularCharIndex = (text, offset, direction) => {\n const regex = /[A-Za-z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏàáâãäåæçèéêëìíîïÐÑÒÓÔÕÖØÙÚÛÜÝÞßðñòóôõöøùúûüýþÿ]/g\n let cursor = offset\n while ((text[cursor + direction] || '').match(regex)) {\n cursor += direction\n }\n return cursor\n}\n\nconst addHttp = (s) => {\n s = s.replace(/^\\s/, '')\n if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {\n return s\n } else {\n return 'http://' + s\n }\n}\n\nconst getRightMostElement = (node) => {\n if (node.childNodes.length) {\n return getRightMostElement(node.childNodes[node.childNodes.length - 1])\n } else {\n return node\n }\n}\n\nconst setSelectionRange = (input, selectionStart, selectionEnd = 0) => {\n if (!input) return\n let range = document.createRange()\n let sel = window.getSelection()\n range.setStart(input, selectionStart)\n if (selectionEnd) {\n range.setEnd(input, selectionEnd)\n } else {\n range.collapse(true)\n }\n sel.removeAllRanges()\n sel.addRange(range)\n}\n\nconst cleanEditor = (editor, acceptedTags) => {\n Array.prototype.slice.call(editor.querySelectorAll('.Apple-interchange-newline')).forEach(el => el.remove())\n Array.prototype.slice.call(editor.querySelectorAll('iframe')).forEach(el => el.remove())\n\n const acceptedStyles = acceptedTags.map(t => TAG_TO_STYLE_PROPERTY[t]).filter(_.identity)\n\n const newSpace = document.createTextNode('\\u00A0')\n if (window.getSelection().rangeCount) {\n const container = window.getSelection().getRangeAt(0).startContainer\n if (container.nodeType === 3) {\n container.parentNode.insertBefore(newSpace, container.nextSibling)\n } else {\n container.appendChild(newSpace)\n }\n if (newSpace.previousSibling && newSpace.previousSibling.textContent === '\\u00A0') {\n newSpace.previousSibling.remove()\n }\n setSelectionRange(newSpace, 0)\n }\n\n const clean = (children) => {\n Array.prototype.slice.call(children).forEach(el => {\n try {\n if (el.nodeType === 3)\n return\n if (!el.tagName) {\n el.remove()\n return\n }\n let tagName = el.tagName.toLowerCase()\n const style = getComputedStyle(el)\n const rect = el.getBoundingClientRect()\n const isHidden = style.display === 'none' || rect.width === 0 || rect.height === 0\n if (isHidden && (el.children && !el.children.length) && tagName !== 'br') {\n el.remove()\n } else if (acceptedTags.indexOf(tagName) >= 0) {\n clean(el.childNodes)\n el.removeAttribute('class')\n if (tagName === 'a') {\n el.setAttribute('target', '_blank')\n }\n if (el.getAttribute('style')) {\n const usedStyles = _.toPairs(_.pick(acceptedStyles, el.style)).filter(([k, v]) => v !== \"\")\n const fixedStyle = _.fromPairs(usedStyles.map(([k, v]) => [k, (FIX_STYLE[k] || _.identity)(v, el)]))\n el.removeAttribute('style')\n Object.assign(el.style, fixedStyle)\n }\n } else if (tagName === 'a') {\n clean(el.childNodes)\n if (el.textContent !== el.href || el.textContent.length < 5)\n el.outerHTML = el.innerHTML\n } else {\n clean(el.childNodes)\n if (el.hasChildNodes()) {\n const newTagName = style.display === 'inline' ? 'span' : 'div'\n const newEl = document.createElement(newTagName)\n Array.prototype.slice.call(el.childNodes).forEach(child => newEl.appendChild(child))\n el.parentNode.replaceChild(newEl, el)\n } else {\n el.remove()\n }\n }\n } catch (e) {\n if (el && el.remove)\n el.remove()\n }\n })\n }\n clean(editor.childNodes)\n}\n\nconst insertToken = (node, offset) => {\n const parent = node.parentNode\n const token = document.createElement(\"span\")\n if (node.nodeType === Node.TEXT_NODE) {\n const splitted = node.splitText(offset)\n parent.insertBefore(token, splitted)\n } else {\n parent.insertBefore(token, node)\n }\n return token\n}\n\n/*\n* pagely reformat\n .replace(/^[a-z]/, function (e) {\n return e.toUpperCase()\n })\n* */\n\nconst parseAndExecCommand = (c) => {\n if (c === \"strikethrough\" || c === \"underline\") {\n document.execCommand('styleWithCSS', false, false)\n } else {\n document.execCommand('styleWithCSS', false, true)\n }\n if (c.indexOf('fontSize') === 0) {\n const direction = c.indexOf('Up') > 0 ? 1 : -1\n const newValue = Math.min(7, Math.max(1, parseInt(document.queryCommandValue('fontSize') || 3) + direction))\n document.execCommand('fontSize', false, newValue)\n } else {\n const sanitizedCommand = (c.indexOf(\"List\") >= 0 && document.queryCommandState(c)) ? 'outdent' : c // FIX CHROME HANGS when list is called and already active\n\n document.execCommand(sanitizedCommand)\n }\n}\n\nexport const RichText = ({path, inputRef, label, autoHideToolbar, autoFocus, disabled, minHeight, placeholder, className, formatTools = ['bold', 'italic', 'underline', 'strikethrough', 'separator', 'link'], reformatText = _.identity, mandatory, descText, helpText, linkColor, tabIndex = 1, value, setValue,raw, locked}) => {\n\n const linkPopup = usePopupToggle()\n\n const input = useEnsureRef(inputRef)\n const activeLinkNode = useRef()\n const container = useRef()\n const linkJustCreated = useRefState()\n\n // auto-hide needs\n const startSelectionToken = useRefState()\n const endSelectionToken = useRefState()\n const commands = useRefState([])\n const containerFocused = useToggle()\n\n const needsNormalize = useRefState()\n const alreadyCancelled = useRefState()\n\n // const [formValue, setFormValue] = useInput({path})\n const [formValue, _setFormValue, {hasErrors}] = useInput({path,value,setValue},raw)\n\n // const tempValue = useConstant(formValue)\n const tempValue = useRef(formValue)\n const setFormValue = (v) => {\n tempValue.current = v\n _setFormValue(v)\n }\n\n useEffect(() => {\n if((value === formValue) && (formValue !== tempValue)){\n tempValue.current = formValue\n }\n },[path])\n\n const [activatedTools, setActivatedTools] = useState({})\n\n const validElements = useLazyConstant(() => ['br', 'div', 'p', 'span'].concat(_.flatten(formatTools.map(tool => FORMAT_TOOLS[tool] || []))))\n\n useEffect(() => {\n cleanEditor(input.current, validElements)\n }, [])\n\n const focus = () => input.current && input.current.focus()\n\n // Foco inicial opcional (ex.: abrir a dialog já no campo de descrição). Em\n // rAF pra rodar depois que a dialog termina de montar e não perder o foco.\n useEffect(() => {\n if (autoFocus) {\n requestAnimationFrame(focus)\n }\n }, [])\n\n useEffect(() => {\n if (needsNormalize.get()) {\n input.current.normalize()\n needsNormalize.set(false)\n }\n })\n\n const triggerScrollForPanel = (d) => {\n requestAnimationFrame((time) => {\n if (time > d + 250) return\n window.dispatchEvent(new Event('scroll'))\n triggerScrollForPanel(d)\n }\n )\n }\n\n const containerFocus = () => {\n containerFocused.openWith(2)\n triggerScrollForPanel(Date.now())\n }\n\n const containerBlur = (e) => {\n if (containerFocused.isOpen !== 1) {\n containerFocused.close()\n triggerScrollForPanel(Date.now())\n }\n }\n\n\n const onBlur = (e) => {\n const newValue = input.current.textContent.length === 0 ? '' : input.current.innerHTML\n // Só reescreve se o conteúdo mudou de fato: focar/desfocar sem editar não pode\n // marcar o form como alterado (senão dispara a confirmação de descarte à toa).\n // textContent vazio equivale a valor ausente/'' do form.\n if (newValue !== (formValue || '')) {\n setFormValue(newValue)\n }\n }\n\n const keydownHandler = (e) => {\n if (containerFocused.isOpen === 2){\n if (formatTools.indexOf('link') < 0) {\n return\n }\n if((e.key === \"k\" && e.ctrlKey) || (e.key === \"k\" && e.metaKey)){\n e.preventDefault();\n execCommand(null,'link')\n }\n }\n }\n\n useEffect(() => {\n document.addEventListener('keydown',keydownHandler);\n return () => document.removeEventListener('keydown',keydownHandler);\n }, [containerFocused.isOpen])\n\n const execCommand = (e, command) => {\n if (command === 'link') {\n let nodeEl\n if (!isSelectionInsideRichTextEditor()) {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n input.current.appendChild(anchor)\n nodeEl = anchor\n } else {\n const range = window.getSelection().getRangeAt(0)\n const selectedNode = range.startContainer\n if (range.collapsed) {\n const start = getNextRegularCharIndex(selectedNode.textContent, range.startOffset, -1)\n const end = getNextRegularCharIndex(selectedNode.textContent, range.startOffset - 1, 1)\n if (start < range.startOffset && end > range.startOffset - 1) {\n range.setStart(selectedNode, start)\n range.setEnd(selectedNode, end + 1)\n }\n }\n const selectedEl = selectedNode.nodeType === Node.TEXT_NODE ? selectedNode.parentNode : selectedNode\n const parent = selectedEl.closest('a,.'+JS_CLASS)\n if (parent && parent.matches('a')) {\n nodeEl = parent\n } else {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n if (range.collapsed) {\n range.insertNode(anchor)\n } else {\n if (range.commonAncestorContainer === input.current) {\n range.setStart(range.endContainer,0)\n }\n document.execCommand('createLink', false, '_')\n anchor = window.getSelection().anchorNode\n }\n const parent = range.commonAncestorContainer.nodeType === 3 ? range.commonAncestorContainer.parentNode : range.commonAncestorContainer\n const links = parent.querySelectorAll(\"a[href='_']\")\n Array.from(links).slice(0,-1).forEach(removeLinkFromNode)\n nodeEl = _.last(links)\n nodeEl.setAttribute('href', ' ')\n }\n }\n tempValue.current = input.current.innerHTML\n openDialog(nodeEl)\n } else {\n if (!isSelectionInsideRichTextEditor()) {\n input.current.focus()\n const last = document.createTreeWalker(input.current, NodeFilter.SHOW_TEXT).lastChild()\n const range = document.createRange()\n range.selectNodeContents(last || input.current)\n range.collapse(false)\n const sel = window.getSelection()\n sel.removeAllRanges()\n sel.addRange(range)\n }\n document.execCommand(command)\n setFormValue(input.current.innerHTML)\n toggleButtonsState()\n focus()\n }\n }\n\n const isSelectionInsideRichTextEditor = () => {\n const range = window.getSelection().getRangeAt(0)\n if (!range) return false\n const el = range.startContainer\n if (!el) return false\n const node = el.closest ? el : (el.parentNode || document.body)\n return node.closest('.'+JS_CLASS) === input.current\n }\n\n\n const saveRichTextLink = ({linkUrl, linkText}) => {\n const currentActiveLinkNode = activeLinkNode.current\n currentActiveLinkNode.setAttribute('href', addHttp(linkUrl))\n currentActiveLinkNode.setAttribute('target', '_blank')\n if (currentActiveLinkNode.textContent !== linkText) {\n currentActiveLinkNode.innerText = linkText\n }\n linkPopup.close()\n setSelectionRange(currentActiveLinkNode.lastChild, currentActiveLinkNode.textContent.length, 0)\n focus()\n setFormValue(input.current.innerHTML)\n }\n\n const cancelRichTextLink = (e) => {\n if (alreadyCancelled.get()) return\n const currentActiveLinkNode = activeLinkNode.current\n const span = document.createElement('span')\n if (currentActiveLinkNode.nextSibling)\n (currentActiveLinkNode.parentNode).insertBefore(span, currentActiveLinkNode.nextSibling)\n else\n (currentActiveLinkNode.parentNode).append(span)\n setSelectionRange(span, 0, 0)\n focus()\n if (currentActiveLinkNode.getAttribute('href') === ' ') {\n removeLink(e)\n }\n alreadyCancelled.set(true)\n span.remove()\n if (input.current) {\n input.current.normalize()\n } else {\n needsNormalize.set(true)\n }\n linkPopup.close()\n }\n\n const handleKeyUp = (e) => {\n toggleButtonsState()\n setFormValue(reformatText(input.current.innerHTML))\n }\n\n const handleKeyDown = (e) => {\n /*if (linkJustCreated.current && e.which === 8) {\n linkJustCreated.current.outerHTML = linkJustCreated.current.innerHTML\n input.current.normalize()\n return\n }\n commands.set([])\n linkJustCreated.set(null)\n const selectedRange = window.getSelection().getRangeAt(0)\n if (!selectedRange) return\n const possibleTextNode = selectedRange.startContainer\n const node = possibleTextNode.nodeType === Node.TEXT_NODE ? possibleTextNode.parentNode : possibleTextNode\n const parent = node.closest('a,.'+JS_CLASS)\n if ((e.key === 'Enter' || e.which === 32) && parent && parent.matches('.'+JS_CLASS)) {\n const range = document.createRange()\n range.setEnd(selectedRange.startContainer, selectedRange.startOffset)\n range.setStart(selectedRange.startContainer, 0)\n traverseAndAddLink(range)\n }*/\n }\n\n const traverseAndAddLink = (range) => {\n const match = range.toString().match(/[\\s\\t\\n\\r]([^\\s\\t\\n\\r]*)$/)\n if (match) {\n if ((/^(https?:\\/\\/|www\\.)/).test(match[1]) && linkRegex.test(match[1])) {\n range.setStart(range.startContainer, (match).index + 1);\n (range.endContainer).splitText(range.endContainer.textContent.length - 1)\n const newNode = document.createElement('a')\n newNode.href = match[1]\n newNode.appendChild(range.extractContents())\n range.insertNode(newNode)\n window.getSelection().getRangeAt(0).setEndAfter(newNode)\n window.getSelection().getRangeAt(0).setStartAfter(newNode)\n linkJustCreated.set(newNode)\n }\n } else {\n const previous = getPreviousElement(range.startContainer)\n if (previous) {\n range.setStart(previous, 0)\n traverseAndAddLink(range)\n }\n }\n }\n\n const getPreviousElement = (node) => {\n if (node.previousSibling) {\n const rightMost = getRightMostElement(node.previousSibling)\n if (rightMost.nodeType === Node.TEXT_NODE) {\n return rightMost\n } else {\n return getPreviousElement(rightMost)\n }\n } else if (node.parentNode && node !== input.current) {\n return getPreviousElement(node.parentNode)\n } else {\n return null\n }\n }\n\n const handlePasteDrop = (e) => setTimeout(() => pasted(e), 1)\n\n const handleClick = (e) => {\n toggleButtonsState()\n const el = e.target.closest('a,.'+JS_CLASS)\n if (el && el.matches('a') && el.getAttribute('href')) {\n openDialog(el)\n }\n }\n\n const openDialog = (el) => {\n activeLinkNode.current = el\n alreadyCancelled.set(false)\n linkPopup.openWith({linkText: el.textContent, linkUrl: (el.getAttribute('href') || '').trim()})\n }\n\n\n const removeLinkFromNode = (node) => {\n node.outerHTML = node.innerHTML === '\\u200b' ? '' : node.innerHTML\n }\n\n const removeLink = (e) => {\n if (e) e.preventDefault()\n alreadyCancelled.set(true)\n removeLinkFromNode(activeLinkNode.current)\n linkPopup.close()\n if (input.current) {\n setFormValue(input.current.innerHTML)\n input.current.normalize()\n }\n }\n\n const pasted = (e) => {\n cleanEditor(input.current, validElements)\n }\n\n const toggleButtonsState = () => {\n return setActivatedTools(_.zipObject(formatTools,formatTools.map((t)=>window.document.queryCommandState(t))))\n }\n\n const toolButton = (tool) => <ToolButton\n key={tool}\n tabIndex={-1}\n onClick={(e) => execCommand(e, tool)}\n className={'button exec-command rich-text-button only-icon ' + (activatedTools[tool] ? 'activated' : '')}\n type=\"button\"\n >\n <span className={'icon icon-' + tool}/>\n </ToolButton>\n\n const richTextElement = <RichTextContainer\n linkColor={linkColor}\n ref={container}\n onFocus={containerFocus}\n onBlur={containerBlur}\n focus={containerFocused.isOpen}\n showToolbar={!disabled & !autoHideToolbar || containerFocused.isOpen}\n className={className}\n >\n <ToolsContainer className=\"rich-text-tools\">\n {formatTools.map((t, i) => t === 'separator' ? <ToolSeparator className=\"separator\"\n key={\"separator-\" + i}/> : toolButton(t))}\n </ToolsContainer>\n <RichTextInput>\n <ContentEditable\n className={JS_CLASS}\n innerRef={input}\n html={tempValue.current || \"\"}\n onBlur={onBlur}\n onClick={handleClick}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onPaste={handlePasteDrop}\n onDrop={handlePasteDrop}\n tabIndex={tabIndex}\n disabled={disabled}\n minHeight={minHeight}\n placeholder={placeholder}\n />\n </RichTextInput>\n {locked && <InputIcon icon=\"lock\"/>}\n {\n linkPopup.isOpen &&\n <EditLinkPopup\n input={input}\n activeLinkNode={activeLinkNode}\n cancel={cancelRichTextLink}\n values={linkPopup.isOpen}\n removeLink={removeLink}\n saveLink={saveRichTextLink}\n />\n }\n </RichTextContainer>\n return (label\n ? <Field labelClick={focus} descText={descText} helpText={helpText} label={label} mandatory={mandatory}>\n {richTextElement}\n </Field>\n : richTextElement\n )\n}\n\nconst EditLinkPopup = ({cancel, removeLink, activeLinkNode, input, saveLink, values}) => {\n const linkPopup = useRef()\n const formRef = useRef()\n const linkTextRef = useRef()\n const linkUrlRef = useRef()\n const LABELS = useContext(StartlibsContext).labels.RichText\n\n\n const preValidation = (formValues) => {\n let errors\n if (!formValues.linkText) {\n errors = {'linkText': [LABELS.linkTextError]}\n }\n if (!formValues.linkUrl || formValues.linkUrl === ' ' || !linkRegex.test(formValues.linkUrl.trim())) {\n errors = {...errors, 'linkUrl': [LABELS.linkUrlError]}\n }\n return errors\n }\n\n const checkEscOrEnter = (e) => {\n if (e.keyCode === 27) {\n e.stopPropagation()\n cancel(e)\n } else if (e.keyCode === 13) {\n e.preventDefault()\n e.stopPropagation()\n formRef.current.submitForm()\n }\n }\n\n useEffect(() => {\n const currentActiveLinkNode = activeLinkNode.current\n const currentLinkPopup = linkPopup.current\n const offsetLeft = currentActiveLinkNode.getClientRects().length > 1 ? input.offsetLeft : currentActiveLinkNode.offsetLeft\n const left = ((currentActiveLinkNode.offsetWidth) / 2) - (currentLinkPopup.offsetWidth / 2) + offsetLeft\n const top = (currentActiveLinkNode.offsetHeight) + currentActiveLinkNode.offsetTop\n Object.assign(currentLinkPopup.style, {\n 'position': 'absolute',\n 'left': left + 'px',\n 'top': top + 'px'\n })\n if (values.linkText) {\n linkUrlRef.current.focus()\n } else {\n linkTextRef.current.focus()\n }\n return cancel\n }, [])\n\n return <WithForm skipDom ref={formRef} action={saveLink} values={values} preValidation={preValidation}>{form =>\n <div onClick={stopPropagation()} ref={linkPopup} onKeyDown={checkEscOrEnter}\n className=\"popup rich-text-link-editor ignore-link\" contentEditable={false}>\n <TextInput\n ref={linkTextRef}\n mandatory\n path=\"linkText\"\n label={LABELS.popupLinkText}\n />\n <TextInput\n ref={linkUrlRef}\n mandatory\n path=\"linkUrl\"\n label={LABELS.popupLinkUrl}\n />\n <div className=\"popup-footer\">\n <Button className=\"remove-link\" icon=\"remove\" onClick={removeLink}>\n {LABELS.popupRemove}\n </Button>\n <Button onClick={cancel} tabIndex={0}>{LABELS.popupCancel}</Button>\n <Button highlight onClick={form.willSubmitForm}>{LABELS.popupConfirm}</Button>\n </div>\n <Errors/>\n </div>\n }</WithForm>\n}"],"names":["InputIcon","styled","Icon","withConfig","displayName","componentId","getColor","FORMAT_TOOLS","TAG_TO_STYLE_PROPERTY","GET_LIMITS_FONT_SIZE_PX","s","document","createElement","style","fontSize","body","appendChild","parseInt","getComputedStyle","removeChild","limits","wrapWith","el","wrapper","parentNode","insertBefore","FIX_STYLE","fontWeight","v","intFontWeight","window","min","max","intFontSize","Math","textDecoration","values","split","filter","indexOf","RichTextContainer","div","props","hasErrors","concat","showToolbar","ToolsContainer","focus","locked","css","linkColor","darken","RichTextInput","minHeight","disabled","ToolButton","Button","ToolSeparator","span","JS_CLASS","getNextRegularCharIndex","text","offset","direction","regex","cursor","match","addHttp","replace","setSelectionRange","input","selectionStart","selectionEnd","arguments","length","undefined","range","createRange","sel","getSelection","setStart","setEnd","collapse","removeAllRanges","addRange","cleanEditor","editor","acceptedTags","Array","prototype","slice","call","querySelectorAll","forEach","remove","acceptedStyles","map","t","_identity","newSpace","createTextNode","rangeCount","container","getRangeAt","startContainer","nodeType","nextSibling","previousSibling","textContent","clean","children","tagName","toLowerCase","rect","getBoundingClientRect","isHidden","display","width","height","childNodes","removeAttribute","setAttribute","getAttribute","usedStyles","_toPairs","_pick","_ref","k","fixedStyle","_fromPairs","_ref2","Object","assign","href","outerHTML","innerHTML","hasChildNodes","newTagName","newEl","child","replaceChild","e","RichText","_ref3","path","inputRef","label","autoHideToolbar","autoFocus","placeholder","className","formatTools","reformatText","mandatory","descText","helpText","tabIndex","value","setValue","raw","linkPopup","usePopupToggle","useEnsureRef","activeLinkNode","useRef","useRefState","containerFocused","useToggle","needsNormalize","alreadyCancelled","formValue","_setFormValue","useInput","tempValue","setFormValue","current","useEffect","activatedTools","setActivatedTools","useState","validElements","useLazyConstant","_flatten","tool","requestAnimationFrame","get","normalize","set","triggerScrollForPanel","d","time","dispatchEvent","Event","containerFocus","openWith","Date","now","containerBlur","isOpen","close","onBlur","newValue","keydownHandler","key","ctrlKey","metaKey","preventDefault","execCommand","addEventListener","removeEventListener","command","nodeEl","isSelectionInsideRichTextEditor","anchor","selectedNode","collapsed","start","startOffset","end","selectedEl","Node","TEXT_NODE","parent","closest","matches","insertNode","commonAncestorContainer","endContainer","anchorNode","links","from","removeLinkFromNode","_last","openDialog","last","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","selectNodeContents","toggleButtonsState","node","saveRichTextLink","_ref4","linkUrl","linkText","currentActiveLinkNode","innerText","cancelRichTextLink","append","removeLink","handleKeyUp","handleKeyDown","handlePasteDrop","setTimeout","pasted","handleClick","target","trim","_zipObject","queryCommandState","toolButton","React","onClick","type","richTextElement","ref","onFocus","i","ContentEditable","innerRef","html","onKeyUp","onKeyDown","onPaste","onDrop","icon","EditLinkPopup","cancel","saveLink","Field","labelClick","_ref5","formRef","linkTextRef","linkUrlRef","LABELS","useContext","StartlibsContext","labels","preValidation","formValues","errors","linkTextError","linkRegex","test","_objectSpread","linkUrlError","checkEscOrEnter","keyCode","stopPropagation","submitForm","currentLinkPopup","offsetLeft","getClientRects","left","offsetWidth","top","offsetHeight","offsetTop","WithForm","skipDom","action","form","contentEditable","TextInput","popupLinkText","popupLinkUrl","popupRemove","popupCancel","highlight","willSubmitForm","popupConfirm","Errors"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAMA,SAAS,gBAAGC,MAAM,CAACC,IAAI,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,qBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uHAAA,EAAA,GAAA,CAAA,EASnBC,QAAQ,CAAC,SAAS,CAAC,CAC7B,CAAA;AAED,MAAMC,YAAY,GAAG;AACnB,EAAA,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;AACvB,EAAA,QAAQ,EAAE,GAAG;AACb,EAAA,WAAW,EAAE,GAAG;AAChB,EAAA,eAAe,EAAE,QAAQ;AACzB,EAAA,MAAM,EAAE,GAAG;AACX,EAAA,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACnC,EAAA,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACjC,EAAA,SAAS,EAAE,EAAE;AACb,EAAA,QAAQ,EAAE,YAAY;AACtB,EAAA,YAAY,EAAE,MAAM;AACpB,EAAA,cAAc,EAAE,MAAA;AAClB,CAAC,CAAA;AAED,MAAMC,qBAAqB,GAAG;AAC5B,EAAA,GAAG,EAAE,YAAY;AACjB,EAAA,QAAQ,EAAE,YAAY;AACtB,EAAA,GAAG,EAAE,gBAAgB;AACrB,EAAA,QAAQ,EAAE,gBAAgB;AAC1B,EAAA,MAAM,EAAE,UAAU;AAClB,EAAA,GAAG,EAAE,WAAA;AACP,CAAC,CAAA;AAED,IAAIC,uBAAuB,GAAGA,MAAM;AAClC,EAAA,MAAMC,CAAC,GAAGC,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC,CAAA;AACxCF,EAAAA,CAAC,CAACG,KAAK,CAACC,QAAQ,GAAG,QAAQ,CAAA;AAC3BH,EAAAA,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACN,CAAC,CAAC,CAAA;EAC5B,MAAMI,QAAQ,GAAGG,QAAQ,CAACC,gBAAgB,CAACR,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAA;AACvDH,EAAAA,QAAQ,CAACI,IAAI,CAACI,WAAW,CAACT,CAAC,CAAC,CAAA;AAC5B,EAAA,MAAMU,MAAM,GAAG,CAACN,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAEA,QAAQ,GAAG,CAAC,CAAC,CAAA;EAC/CL,uBAAuB,GAAGA,MAAMW,MAAM,CAAA;AACtC,EAAA,OAAOA,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAMC,QAAQ,GAAGA,CAACC,EAAE,EAACC,OAAO,KAAK;EAC/BD,EAAE,CAACE,UAAU,CAACC,YAAY,CAACF,OAAO,EAAED,EAAE,CAAC,CAAA;AACvCC,EAAAA,OAAO,CAACP,WAAW,CAACM,EAAE,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,MAAMI,SAAS,GAAG;AAChB,EAAA,YAAY,EAAEC,CAACC,CAAC,EAAEN,EAAE,KAAK;AACvB,IAAA,MAAMO,aAAa,GAAGZ,QAAQ,CAACa,MAAM,CAACZ,gBAAgB,CAACI,EAAE,CAAC,CAACK,UAAU,CAAC,CAAA;AACtE,IAAA,OAAOE,aAAa,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;GACxC;AACD,EAAA,UAAU,EAAEf,CAACc,CAAC,EAAEN,EAAE,KAAK;IACrB,MAAM,CAACS,GAAG,EAAEC,GAAG,CAAC,GAAGvB,uBAAuB,EAAE,CAAA;AAC5C,IAAA,MAAMwB,WAAW,GAAGhB,QAAQ,CAACa,MAAM,CAACZ,gBAAgB,CAACI,EAAE,CAAC,CAACR,QAAQ,CAAC,CAAA;AAClE,IAAA,OAAOoB,IAAI,CAACH,GAAG,CAACC,GAAG,EAAEE,IAAI,CAACF,GAAG,CAACD,GAAG,EAAEE,WAAW,CAAC,CAAC,GAAG,IAAI,CAAA;GACxD;AACD,EAAA,gBAAgB,EAAEE,CAACP,CAAC,EAACN,EAAE,KAAK;IAC1B,MAAMc,MAAM,GAAGR,CAAC,CAACS,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACV,CAAC,IAAIA,CAAC,KAAK,WAAW,IAAIA,CAAC,KAAK,cAAc,CAAC,CAAA;IAClF,IAAIQ,MAAM,CAACG,OAAO,CAAC,WAAW,CAAC,IAAE,CAAC,EAAE;MAClClB,QAAQ,CAACC,EAAE,EAACX,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1C,KAAA;IACA,IAAIwB,MAAM,CAACG,OAAO,CAAC,cAAc,CAAC,IAAE,CAAC,EAAE;MACrClB,QAAQ,CAACC,EAAE,EAACX,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC/C,KAAA;AACA,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAC,CAAA;MAEY4B,iBAAiB,gBAAGvC,MAAM,CAACwC,GAAG,CAAAtC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gDAAA,EAAA,sCAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,6GAAA,CAAA,EAGrBC,QAAQ,CAAC,SAAS,CAAC,EAGrCoC,KAAK,IAAIA,KAAK,CAACC,SAAS,qBAAAC,MAAA,CAAqBtC,QAAQ,CAACoC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAE,EACvEA,KAAK,IAAIA,KAAK,CAACG,WAAW,IAAA,QAAA,CAAAD,MAAA,CACxBE,cAAc,EAMjB,yHAAA,CAAA,EACCJ,KAAK,IAAIA,KAAK,CAACK,KAAK,IAAAH,sBAAAA,CAAAA,MAAA,CACJtC,QAAQ,CAAC,SAAS,CAAC,4DAEpC,EACCoC,KAAK,IAAIA,KAAK,CAACM,MAAM,IAAIC,GAAG,CAAA,CAAA,qDAAA,CAAA,CAG7B,EACCP,KAAK,IAAIA,KAAK,CAACQ,SAAS,IAAID,GAAG,CAEpBP,CAAAA,qCAAAA,EAAAA,kBAAAA,EAAAA,IAAAA,CAAAA,EAAAA,KAAK,CAACQ,SAAS,EAGfC,MAAM,CAAC,IAAI,EAAET,KAAK,CAACQ,SAAS,CAAC,CAEzC,EASF;MAEYE,aAAa,gBAAGnD,MAAM,CAACwC,GAAG,CAAAtC,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,EAAA,6FAAA,EAAA,sKAAA,EAAA,EAAA,CAAA,EAE5BC,QAAQ,CAAC,QAAQ,CAAC,EAOXoC,KAAK,IAAEA,KAAK,CAACW,SAAS,IAAI,EAAE,EAa1CX,KAAK,IAAIA,KAAK,CAACY,QAAQ,yHAKxB,EACF;AAED,MAAMR,cAAc,gBAAG7C,MAAM,CAACwC,GAAG,CAAAtC,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,aAAA,EAAA,gLAAA,CAAA,EACjBC,QAAQ,CAAC,iBAAiB,CAAC,CAU1C,CAAA;AAED,MAAMiD,UAAU,gBAAGtD,MAAM,CAACuD,MAAM,CAAC,CAAArD,UAAA,CAAA;EAAAC,WAAA,EAAA,sBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uJAAA,EAAA,yOAAA,CAAA,EAWlBC,QAAQ,CAAC,QAAQ,CAAC,CAgBhC,CAAA;AAED,MAAMmD,aAAa,gBAAGxD,MAAM,CAACyD,IAAI,CAAAvD,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAKhC,CAAA,CAAA,CAAA,8FAAA,CAAA,CAAA,CAAA;AAED,MAAMsD,QAAQ,GAAG,YAAY,CAAA;AAE7B,MAAMC,uBAAuB,GAAGA,CAACC,IAAI,EAAEC,MAAM,EAAEC,SAAS,KAAK;EAC3D,MAAMC,KAAK,GAAG,4EAA4E,CAAA;EAC1F,IAAIC,MAAM,GAAGH,MAAM,CAAA;AACnB,EAAA,OAAO,CAACD,IAAI,CAACI,MAAM,GAAGF,SAAS,CAAC,IAAI,EAAE,EAAEG,KAAK,CAACF,KAAK,CAAC,EAAE;AACpDC,IAAAA,MAAM,IAAIF,SAAS,CAAA;AACrB,GAAA;AACA,EAAA,OAAOE,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAME,OAAO,GAAIzD,CAAC,IAAK;EACrBA,CAAC,GAAGA,CAAC,CAAC0D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACxB,EAAA,IAAI1D,CAAC,CAAC6B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI7B,CAAC,CAAC6B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC7D,IAAA,OAAO7B,CAAC,CAAA;AACV,GAAC,MAAM;IACL,OAAO,SAAS,GAAGA,CAAC,CAAA;AACtB,GAAA;AACF,CAAC,CAAA;AAUD,MAAM2D,iBAAiB,GAAG,UAACC,KAAK,EAAEC,cAAc,EAAuB;AAAA,EAAA,IAArBC,YAAY,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;EAChE,IAAI,CAACH,KAAK,EAAE,OAAA;AACZ,EAAA,IAAIM,KAAK,GAAGjE,QAAQ,CAACkE,WAAW,EAAE,CAAA;AAClC,EAAA,IAAIC,GAAG,GAAGhD,MAAM,CAACiD,YAAY,EAAE,CAAA;AAC/BH,EAAAA,KAAK,CAACI,QAAQ,CAACV,KAAK,EAAEC,cAAc,CAAC,CAAA;AACrC,EAAA,IAAIC,YAAY,EAAE;AAChBI,IAAAA,KAAK,CAACK,MAAM,CAACX,KAAK,EAAEE,YAAY,CAAC,CAAA;AACnC,GAAC,MAAM;AACLI,IAAAA,KAAK,CAACM,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,GAAA;EACAJ,GAAG,CAACK,eAAe,EAAE,CAAA;AACrBL,EAAAA,GAAG,CAACM,QAAQ,CAACR,KAAK,CAAC,CAAA;AACrB,CAAC,CAAA;AAED,MAAMS,WAAW,GAAGA,CAACC,MAAM,EAAEC,YAAY,KAAK;EAC5CC,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACL,MAAM,CAACM,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAACC,OAAO,CAACvE,EAAE,IAAIA,EAAE,CAACwE,MAAM,EAAE,CAAC,CAAA;EAC5GN,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACL,MAAM,CAACM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAACvE,EAAE,IAAIA,EAAE,CAACwE,MAAM,EAAE,CAAC,CAAA;AAExF,EAAA,MAAMC,cAAc,GAAGR,YAAY,CAACS,GAAG,CAACC,CAAC,IAAIzF,qBAAqB,CAACyF,CAAC,CAAC,CAAC,CAAC3D,MAAM,CAAA4D,SAAW,CAAC,CAAA;AAEzF,EAAA,MAAMC,QAAQ,GAAGxF,QAAQ,CAACyF,cAAc,CAAC,QAAQ,CAAC,CAAA;AAClD,EAAA,IAAItE,MAAM,CAACiD,YAAY,EAAE,CAACsB,UAAU,EAAE;AACtC,IAAA,MAAMC,SAAS,GAAGxE,MAAM,CAACiD,YAAY,EAAE,CAACwB,UAAU,CAAC,CAAC,CAAC,CAACC,cAAc,CAAA;AACpE,IAAA,IAAIF,SAAS,CAACG,QAAQ,KAAK,CAAC,EAAE;MAC5BH,SAAS,CAAC9E,UAAU,CAACC,YAAY,CAAC0E,QAAQ,EAAEG,SAAS,CAACI,WAAW,CAAC,CAAA;AACpE,KAAC,MAAM;AACLJ,MAAAA,SAAS,CAACtF,WAAW,CAACmF,QAAQ,CAAC,CAAA;AACjC,KAAA;IACE,IAAIA,QAAQ,CAACQ,eAAe,IAAIR,QAAQ,CAACQ,eAAe,CAACC,WAAW,KAAK,QAAQ,EAAE;AACjFT,MAAAA,QAAQ,CAACQ,eAAe,CAACb,MAAM,EAAE,CAAA;AACrC,KAAA;AACAzB,IAAAA,iBAAiB,CAAC8B,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC9B,GAAA;EAEA,MAAMU,KAAK,GAAIC,QAAQ,IAAK;AAC1BtB,IAAAA,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACmB,QAAQ,CAAC,CAACjB,OAAO,CAACvE,EAAE,IAAI;MACjD,IAAI;AACJ,QAAA,IAAIA,EAAE,CAACmF,QAAQ,KAAK,CAAC,EACnB,OAAA;AACF,QAAA,IAAI,CAACnF,EAAE,CAACyF,OAAO,EAAE;UACfzF,EAAE,CAACwE,MAAM,EAAE,CAAA;AACX,UAAA,OAAA;AACF,SAAA;QACA,IAAIiB,OAAO,GAAGzF,EAAE,CAACyF,OAAO,CAACC,WAAW,EAAE,CAAA;AACtC,QAAA,MAAMnG,KAAK,GAAGK,gBAAgB,CAACI,EAAE,CAAC,CAAA;AAClC,QAAA,MAAM2F,IAAI,GAAG3F,EAAE,CAAC4F,qBAAqB,EAAE,CAAA;AACvC,QAAA,MAAMC,QAAQ,GAAGtG,KAAK,CAACuG,OAAO,KAAK,MAAM,IAAIH,IAAI,CAACI,KAAK,KAAK,CAAC,IAAIJ,IAAI,CAACK,MAAM,KAAK,CAAC,CAAA;AAClF,QAAA,IAAIH,QAAQ,IAAK7F,EAAE,CAACwF,QAAQ,IAAI,CAACxF,EAAE,CAACwF,QAAQ,CAACpC,MAAO,IAAIqC,OAAO,KAAK,IAAI,EAAE;UACxEzF,EAAE,CAACwE,MAAM,EAAE,CAAA;SACZ,MAAM,IAAIP,YAAY,CAAChD,OAAO,CAACwE,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7CF,UAAAA,KAAK,CAACvF,EAAE,CAACiG,UAAU,CAAC,CAAA;AACpBjG,UAAAA,EAAE,CAACkG,eAAe,CAAC,OAAO,CAAC,CAAA;UACzB,IAAIT,OAAO,KAAK,GAAG,EAAE;AACnBzF,YAAAA,EAAE,CAACmG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACrC,WAAA;AACA,UAAA,IAAInG,EAAE,CAACoG,YAAY,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,MAAMC,UAAU,GAAGC,QAAA,CAAUC,KAAA,CAAO9B,cAAc,EAAEzE,EAAE,CAACT,KAAK,CAAC,CAAC,CAACyB,MAAM,CAACwF,IAAA,IAAA;AAAA,cAAA,IAAC,CAACC,CAAC,EAAEnG,CAAC,CAAC,GAAAkG,IAAA,CAAA;cAAA,OAAKlG,CAAC,KAAK,EAAE,CAAA;aAAC,CAAA,CAAA;YAC3F,MAAMoG,UAAU,GAAGC,UAAA,CAAYN,UAAU,CAAC3B,GAAG,CAACkC,KAAA,IAAA;AAAA,cAAA,IAAC,CAACH,CAAC,EAAEnG,CAAC,CAAC,GAAAsG,KAAA,CAAA;AAAA,cAAA,OAAK,CAACH,CAAC,EAAE,CAACrG,SAAS,CAACqG,CAAC,CAAC,IAAA7B,SAAc,EAAEtE,CAAC,EAAEN,EAAE,CAAC,CAAC,CAAA;AAAA,aAAA,CAAC,CAAC,CAAA;AACxGA,YAAAA,EAAE,CAACkG,eAAe,CAAC,OAAO,CAAC,CAAA;YACvBW,MAAM,CAACC,MAAM,CAAC9G,EAAE,CAACT,KAAK,EAAEmH,UAAU,CAAC,CAAA;AACrC,WAAA;AACJ,SAAC,MAAM,IAAIjB,OAAO,KAAK,GAAG,EAAE;AAC1BF,UAAAA,KAAK,CAACvF,EAAE,CAACiG,UAAU,CAAC,CAAA;UACpB,IAAIjG,EAAE,CAACsF,WAAW,KAAKtF,EAAE,CAAC+G,IAAI,IAAI/G,EAAE,CAACsF,WAAW,CAAClC,MAAM,GAAG,CAAC,EACzDpD,EAAE,CAACgH,SAAS,GAAGhH,EAAE,CAACiH,SAAS,CAAA;AAC/B,SAAC,MAAM;AACL1B,UAAAA,KAAK,CAACvF,EAAE,CAACiG,UAAU,CAAC,CAAA;AACpB,UAAA,IAAIjG,EAAE,CAACkH,aAAa,EAAE,EAAE;YACtB,MAAMC,UAAU,GAAG5H,KAAK,CAACuG,OAAO,KAAK,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAA;AAC9D,YAAA,MAAMsB,KAAK,GAAG/H,QAAQ,CAACC,aAAa,CAAC6H,UAAU,CAAC,CAAA;YAChDjD,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACrE,EAAE,CAACiG,UAAU,CAAC,CAAC1B,OAAO,CAAC8C,KAAK,IAAID,KAAK,CAAC1H,WAAW,CAAC2H,KAAK,CAAC,CAAC,CAAA;YACpFrH,EAAE,CAACE,UAAU,CAACoH,YAAY,CAACF,KAAK,EAAEpH,EAAE,CAAC,CAAA;AACvC,WAAC,MAAM;YACLA,EAAE,CAACwE,MAAM,EAAE,CAAA;AACb,WAAA;AACA,SAAA;OACD,CAAC,OAAO+C,CAAC,EAAE;QACV,IAAIvH,EAAE,IAAIA,EAAE,CAACwE,MAAM,EACjBxE,EAAE,CAACwE,MAAM,EAAE,CAAA;AACf,OAAA;AACF,KAAC,CAAC,CAAA;GACH,CAAA;AACDe,EAAAA,KAAK,CAACvB,MAAM,CAACiC,UAAU,CAAC,CAAA;AAC1B,CAAC,CAAA;AAsCYuB,MAAAA,QAAQ,GAAGC,KAAA,IAA2S;EAAA,IAA1S;IAACC,IAAI;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,eAAe;IAAEC,SAAS;IAAE9F,QAAQ;IAAED,SAAS;IAAEgG,WAAW;IAAEC,SAAS;AAAEC,IAAAA,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;AAAEC,IAAAA,YAAY,GAAAtD,SAAa;IAAEuD,SAAS;IAAEC,QAAQ;IAAEC,QAAQ;IAAEzG,SAAS;AAAE0G,IAAAA,QAAQ,GAAG,CAAC;IAAEC,KAAK;IAAEC,QAAQ;IAACC,GAAG;AAAE/G,IAAAA,MAAAA;AAAM,GAAC,GAAA+F,KAAA,CAAA;AAE5T,EAAA,MAAMiB,SAAS,GAAGC,cAAc,EAAE,CAAA;AAElC,EAAA,MAAM3F,KAAK,GAAG4F,YAAY,CAACjB,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAMkB,cAAc,GAAGC,MAAM,EAAE,CAAA;AAC/B,EAAA,MAAM9D,SAAS,GAAG8D,MAAM,EAAE,CAAA;AAC1B,EAAwBC,WAAW,GAAE;;AAErC;AACA,EAA4BA,WAAW,GAAE;AACzC,EAA0BA,WAAW,GAAE;AACvC,EAAiBA,WAAW,CAAC,EAAE,EAAC;AAChC,EAAA,MAAMC,gBAAgB,GAAGC,SAAS,EAAE,CAAA;AAEpC,EAAA,MAAMC,cAAc,GAAGH,WAAW,EAAE,CAAA;AACpC,EAAA,MAAMI,gBAAgB,GAAGJ,WAAW,EAAE,CAAA;;AAEtC;AACA,EAAA,MAAM,CAACK,SAAS,EAAEC,aAAa,EAAE;AAAChI,IAAAA,SAAAA;GAAU,CAAC,GAAGiI,QAAQ,CAAC;IAAC5B,IAAI;IAACa,KAAK;AAACC,IAAAA,QAAAA;GAAS,EAACC,GAAG,CAAC,CAAA;;AAEnF;AACA,EAAA,MAAMc,SAAS,GAAGT,MAAM,CAACM,SAAS,CAAC,CAAA;EACnC,MAAMI,YAAY,GAAIlJ,CAAC,IAAK;IAC1BiJ,SAAS,CAACE,OAAO,GAAGnJ,CAAC,CAAA;IACrB+I,aAAa,CAAC/I,CAAC,CAAC,CAAA;GACjB,CAAA;AAEDoJ,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAInB,KAAK,KAAKa,SAAS,IAAMA,SAAS,KAAKG,SAAU,EAAC;MACpDA,SAAS,CAACE,OAAO,GAAGL,SAAS,CAAA;AAC/B,KAAA;AACF,GAAC,EAAC,CAAC1B,IAAI,CAAC,CAAC,CAAA;EAET,MAAM,CAACiC,cAAc,EAAEC,iBAAiB,CAAC,GAAGC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAExD,EAAA,MAAMC,aAAa,GAAGC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAACzI,MAAM,CAAC0I,QAAA,CAAU/B,WAAW,CAACvD,GAAG,CAACuF,IAAI,IAAIhL,YAAY,CAACgL,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5IP,EAAAA,SAAS,CAAC,MAAM;AACd3F,IAAAA,WAAW,CAACf,KAAK,CAACyG,OAAO,EAAEK,aAAa,CAAC,CAAA;GAC1C,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMrI,KAAK,GAAGA,MAAMuB,KAAK,CAACyG,OAAO,IAAIzG,KAAK,CAACyG,OAAO,CAAChI,KAAK,EAAE,CAAA;;AAE1D;AACA;AACAiI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI5B,SAAS,EAAE;MACboC,qBAAqB,CAACzI,KAAK,CAAC,CAAA;AAC9B,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAENiI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIR,cAAc,CAACiB,GAAG,EAAE,EAAE;AACxBnH,MAAAA,KAAK,CAACyG,OAAO,CAACW,SAAS,EAAE,CAAA;AACzBlB,MAAAA,cAAc,CAACmB,GAAG,CAAC,KAAK,CAAC,CAAA;AAC3B,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAMC,qBAAqB,GAAIC,CAAC,IAAK;IACnCL,qBAAqB,CAAEM,IAAI,IAAK;AAC5B,MAAA,IAAIA,IAAI,GAAGD,CAAC,GAAG,GAAG,EAAE,OAAA;MACpB/J,MAAM,CAACiK,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;MACzCJ,qBAAqB,CAACC,CAAC,CAAC,CAAA;AAC1B,KACF,CAAC,CAAA;GACF,CAAA;EAED,MAAMI,cAAc,GAAGA,MAAM;AAC3B3B,IAAAA,gBAAgB,CAAC4B,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC5BN,IAAAA,qBAAqB,CAACO,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;GAClC,CAAA;EAED,MAAMC,aAAa,GAAIxD,CAAC,IAAK;AAC3B,IAAA,IAAIyB,gBAAgB,CAACgC,MAAM,KAAK,CAAC,EAAE;MACjChC,gBAAgB,CAACiC,KAAK,EAAE,CAAA;AACxBX,MAAAA,qBAAqB,CAACO,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;AACnC,KAAA;GACD,CAAA;EAGD,MAAMI,MAAM,GAAI3D,CAAC,IAAK;AACpB,IAAA,MAAM4D,QAAQ,GAAGnI,KAAK,CAACyG,OAAO,CAACnE,WAAW,CAAClC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAGJ,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAA;AACtF;AACA;AACA;AACA,IAAA,IAAIkE,QAAQ,MAAM/B,SAAS,IAAI,EAAE,CAAC,EAAE;MAClCI,YAAY,CAAC2B,QAAQ,CAAC,CAAA;AACxB,KAAA;GACD,CAAA;EAED,MAAMC,cAAc,GAAI7D,CAAC,IAAK;AAC5B,IAAA,IAAIyB,gBAAgB,CAACgC,MAAM,KAAK,CAAC,EAAC;MAChC,IAAI/C,WAAW,CAAChH,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACnC,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIsG,CAAC,CAAC8D,GAAG,KAAK,GAAG,IAAI9D,CAAC,CAAC+D,OAAO,IAAM/D,CAAC,CAAC8D,GAAG,KAAK,GAAG,IAAI9D,CAAC,CAACgE,OAAQ,EAAC;QAC9DhE,CAAC,CAACiE,cAAc,EAAE,CAAA;AAClBC,QAAAA,WAAW,CAAC,IAAI,EAAC,MAAM,CAAC,CAAA;AAC1B,OAAA;AACF,KAAA;GACD,CAAA;AAED/B,EAAAA,SAAS,CAAC,MAAM;AACdrK,IAAAA,QAAQ,CAACqM,gBAAgB,CAAC,SAAS,EAACN,cAAc,CAAC,CAAA;IACnD,OAAO,MAAM/L,QAAQ,CAACsM,mBAAmB,CAAC,SAAS,EAACP,cAAc,CAAC,CAAA;AACrE,GAAC,EAAE,CAACpC,gBAAgB,CAACgC,MAAM,CAAC,CAAC,CAAA;AAE7B,EAAA,MAAMS,WAAW,GAAGA,CAAClE,CAAC,EAAEqE,OAAO,KAAK;IAClC,IAAIA,OAAO,KAAK,MAAM,EAAE;AACtB,MAAA,IAAIC,MAAM,CAAA;AACV,MAAA,IAAI,CAACC,+BAA+B,EAAE,EAAE;AACtC,QAAA,IAAIC,MAAM,GAAG1M,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;QACxCyM,MAAM,CAAC9E,SAAS,GAAG,SAAS,CAAA;AAC5BjE,QAAAA,KAAK,CAACyG,OAAO,CAAC/J,WAAW,CAACqM,MAAM,CAAC,CAAA;AACjCF,QAAAA,MAAM,GAAGE,MAAM,CAAA;AACjB,OAAC,MAAM;QACL,MAAMzI,KAAK,GAAG9C,MAAM,CAACiD,YAAY,EAAE,CAACwB,UAAU,CAAC,CAAC,CAAC,CAAA;AACjD,QAAA,MAAM+G,YAAY,GAAG1I,KAAK,CAAC4B,cAAc,CAAA;QACzC,IAAI5B,KAAK,CAAC2I,SAAS,EAAE;AACnB,UAAA,MAAMC,KAAK,GAAG5J,uBAAuB,CAAC0J,YAAY,CAAC1G,WAAW,EAAEhC,KAAK,CAAC6I,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;AACtF,UAAA,MAAMC,GAAG,GAAG9J,uBAAuB,CAAC0J,YAAY,CAAC1G,WAAW,EAAEhC,KAAK,CAAC6I,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACvF,UAAA,IAAID,KAAK,GAAG5I,KAAK,CAAC6I,WAAW,IAAIC,GAAG,GAAG9I,KAAK,CAAC6I,WAAW,GAAG,CAAC,EAAE;AAC5D7I,YAAAA,KAAK,CAACI,QAAQ,CAACsI,YAAY,EAAEE,KAAK,CAAC,CAAA;YACnC5I,KAAK,CAACK,MAAM,CAACqI,YAAY,EAAEI,GAAG,GAAG,CAAC,CAAC,CAAA;AACrC,WAAA;AACF,SAAA;AACA,QAAA,MAAMC,UAAU,GAAGL,YAAY,CAAC7G,QAAQ,KAAKmH,IAAI,CAACC,SAAS,GAAGP,YAAY,CAAC9L,UAAU,GAAG8L,YAAY,CAAA;QACpG,MAAMQ,MAAM,GAAGH,UAAU,CAACI,OAAO,CAAC,KAAK,GAACpK,QAAQ,CAAC,CAAA;QACjD,IAAImK,MAAM,IAAIA,MAAM,CAACE,OAAO,CAAC,GAAG,CAAC,EAAE;AACjCb,UAAAA,MAAM,GAAGW,MAAM,CAAA;AACjB,SAAC,MAAM;AACL,UAAA,IAAIT,MAAM,GAAG1M,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;UACxCyM,MAAM,CAAC9E,SAAS,GAAG,SAAS,CAAA;UAC5B,IAAI3D,KAAK,CAAC2I,SAAS,EAAE;AACnB3I,YAAAA,KAAK,CAACqJ,UAAU,CAACZ,MAAM,CAAC,CAAA;AAC1B,WAAC,MAAM;AACL,YAAA,IAAIzI,KAAK,CAACsJ,uBAAuB,KAAK5J,KAAK,CAACyG,OAAO,EAAE;cACnDnG,KAAK,CAACI,QAAQ,CAACJ,KAAK,CAACuJ,YAAY,EAAC,CAAC,CAAC,CAAA;AACtC,aAAA;YACAxN,QAAQ,CAACoM,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AAC9CM,YAAAA,MAAM,GAAGvL,MAAM,CAACiD,YAAY,EAAE,CAACqJ,UAAU,CAAA;AAC3C,WAAA;AACA,UAAA,MAAMN,MAAM,GAAGlJ,KAAK,CAACsJ,uBAAuB,CAACzH,QAAQ,KAAK,CAAC,GAAG7B,KAAK,CAACsJ,uBAAuB,CAAC1M,UAAU,GAAGoD,KAAK,CAACsJ,uBAAuB,CAAA;AACtI,UAAA,MAAMG,KAAK,GAAGP,MAAM,CAAClI,gBAAgB,CAAC,aAAa,CAAC,CAAA;AACpDJ,UAAAA,KAAK,CAAC8I,IAAI,CAACD,KAAK,CAAC,CAAC3I,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC0I,kBAAkB,CAAC,CAAA;AACzDpB,UAAAA,MAAM,GAAGqB,KAAA,CAAOH,KAAK,CAAC,CAAA;AACtBlB,UAAAA,MAAM,CAAC1F,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAClC,SAAA;AACF,OAAA;AACAoD,MAAAA,SAAS,CAACE,OAAO,GAAGzG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAA;MAC3CkG,UAAU,CAACtB,MAAM,CAAC,CAAA;AACpB,KAAC,MAAM;AACL,MAAA,IAAI,CAACC,+BAA+B,EAAE,EAAE;AACtC9I,QAAAA,KAAK,CAACyG,OAAO,CAAChI,KAAK,EAAE,CAAA;AACrB,QAAA,MAAM2L,IAAI,GAAG/N,QAAQ,CAACgO,gBAAgB,CAACrK,KAAK,CAACyG,OAAO,EAAE6D,UAAU,CAACC,SAAS,CAAC,CAACC,SAAS,EAAE,CAAA;AACvF,QAAA,MAAMlK,KAAK,GAAGjE,QAAQ,CAACkE,WAAW,EAAE,CAAA;QACpCD,KAAK,CAACmK,kBAAkB,CAACL,IAAI,IAAIpK,KAAK,CAACyG,OAAO,CAAC,CAAA;AAC/CnG,QAAAA,KAAK,CAACM,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrB,QAAA,MAAMJ,GAAG,GAAGhD,MAAM,CAACiD,YAAY,EAAE,CAAA;QACjCD,GAAG,CAACK,eAAe,EAAE,CAAA;AACrBL,QAAAA,GAAG,CAACM,QAAQ,CAACR,KAAK,CAAC,CAAA;AACrB,OAAA;AACAjE,MAAAA,QAAQ,CAACoM,WAAW,CAACG,OAAO,CAAC,CAAA;AAC7BpC,MAAAA,YAAY,CAACxG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAA;AACrCyG,MAAAA,kBAAkB,EAAE,CAAA;AACpBjM,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;GACD,CAAA;EAED,MAAMqK,+BAA+B,GAAGA,MAAM;IAC5C,MAAMxI,KAAK,GAAG9C,MAAM,CAACiD,YAAY,EAAE,CAACwB,UAAU,CAAC,CAAC,CAAC,CAAA;AACjD,IAAA,IAAI,CAAC3B,KAAK,EAAE,OAAO,KAAK,CAAA;AACxB,IAAA,MAAMtD,EAAE,GAAGsD,KAAK,CAAC4B,cAAc,CAAA;AAC/B,IAAA,IAAI,CAAClF,EAAE,EAAE,OAAO,KAAK,CAAA;AACrB,IAAA,MAAM2N,IAAI,GAAG3N,EAAE,CAACyM,OAAO,GAAGzM,EAAE,GAAIA,EAAE,CAACE,UAAU,IAAIb,QAAQ,CAACI,IAAK,CAAA;IAC/D,OAAOkO,IAAI,CAAClB,OAAO,CAAC,GAAG,GAACpK,QAAQ,CAAC,KAAKW,KAAK,CAACyG,OAAO,CAAA;GACpD,CAAA;EAGD,MAAMmE,gBAAgB,GAAGC,KAAA,IAAyB;IAAA,IAAxB;MAACC,OAAO;AAAEC,MAAAA,QAAAA;AAAQ,KAAC,GAAAF,KAAA,CAAA;AAC3C,IAAA,MAAMG,qBAAqB,GAAGnF,cAAc,CAACY,OAAO,CAAA;IACpDuE,qBAAqB,CAAC7H,YAAY,CAAC,MAAM,EAAEtD,OAAO,CAACiL,OAAO,CAAC,CAAC,CAAA;AAC5DE,IAAAA,qBAAqB,CAAC7H,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACtD,IAAA,IAAI6H,qBAAqB,CAAC1I,WAAW,KAAKyI,QAAQ,EAAE;MAClDC,qBAAqB,CAACC,SAAS,GAAGF,QAAQ,CAAA;AAC5C,KAAA;IACArF,SAAS,CAACuC,KAAK,EAAE,CAAA;AACjBlI,IAAAA,iBAAiB,CAACiL,qBAAqB,CAACR,SAAS,EAAEQ,qBAAqB,CAAC1I,WAAW,CAAClC,MAAM,EAAE,CAAC,CAAC,CAAA;AAC/F3B,IAAAA,KAAK,EAAE,CAAA;AACP+H,IAAAA,YAAY,CAACxG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAA;GACtC,CAAA;EAED,MAAMiH,kBAAkB,GAAI3G,CAAC,IAAK;AAChC,IAAA,IAAI4B,gBAAgB,CAACgB,GAAG,EAAE,EAAE,OAAA;AAC5B,IAAA,MAAM6D,qBAAqB,GAAGnF,cAAc,CAACY,OAAO,CAAA;AACpD,IAAA,MAAMrH,IAAI,GAAG/C,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI0O,qBAAqB,CAAC5I,WAAW,EAClC4I,qBAAqB,CAAC9N,UAAU,CAAEC,YAAY,CAACiC,IAAI,EAAE4L,qBAAqB,CAAC5I,WAAW,CAAC,CAAA,KAEvF4I,qBAAqB,CAAC9N,UAAU,CAAEiO,MAAM,CAAC/L,IAAI,CAAC,CAAA;AACjDW,IAAAA,iBAAiB,CAACX,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC7BX,IAAAA,KAAK,EAAE,CAAA;IACP,IAAIuM,qBAAqB,CAAC5H,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;MACtDgI,UAAU,CAAC7G,CAAC,CAAC,CAAA;AACf,KAAA;AACA4B,IAAAA,gBAAgB,CAACkB,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1BjI,IAAI,CAACoC,MAAM,EAAE,CAAA;IACb,IAAIxB,KAAK,CAACyG,OAAO,EAAE;AACjBzG,MAAAA,KAAK,CAACyG,OAAO,CAACW,SAAS,EAAE,CAAA;AAC3B,KAAC,MAAM;AACLlB,MAAAA,cAAc,CAACmB,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B,KAAA;IACA3B,SAAS,CAACuC,KAAK,EAAE,CAAA;GAClB,CAAA;EAED,MAAMoD,WAAW,GAAI9G,CAAC,IAAK;AACzBmG,IAAAA,kBAAkB,EAAE,CAAA;IACpBlE,YAAY,CAACtB,YAAY,CAAClF,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAC,CAAA;GACpD,CAAA;EAED,MAAMqH,aAAa,GAAI/G,CAAC,IAAK;AAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACG,CAAA;AAwCD,EAAA,MAAMgH,eAAe,GAAIhH,CAAC,IAAKiH,UAAU,CAAC,MAAMC,MAAM,CAAE,CAAC,EAAE,CAAC,CAAC,CAAA;EAE7D,MAAMC,WAAW,GAAInH,CAAC,IAAK;AACzBmG,IAAAA,kBAAkB,EAAE,CAAA;IACpB,MAAM1N,EAAE,GAAGuH,CAAC,CAACoH,MAAM,CAAClC,OAAO,CAAC,KAAK,GAACpK,QAAQ,CAAC,CAAA;AAC3C,IAAA,IAAIrC,EAAE,IAAIA,EAAE,CAAC0M,OAAO,CAAC,GAAG,CAAC,IAAI1M,EAAE,CAACoG,YAAY,CAAC,MAAM,CAAC,EAAE;MACpD+G,UAAU,CAACnN,EAAE,CAAC,CAAA;AAChB,KAAA;GACD,CAAA;EAED,MAAMmN,UAAU,GAAInN,EAAE,IAAK;IACzB6I,cAAc,CAACY,OAAO,GAAGzJ,EAAE,CAAA;AAC3BmJ,IAAAA,gBAAgB,CAACkB,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B3B,SAAS,CAACkC,QAAQ,CAAC;MAACmD,QAAQ,EAAE/N,EAAE,CAACsF,WAAW;AAAEwI,MAAAA,OAAO,EAAE,CAAC9N,EAAE,CAACoG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,EAAEwI,IAAI,EAAC;AAAC,KAAC,CAAC,CAAA;GAChG,CAAA;EAGD,MAAM3B,kBAAkB,GAAIU,IAAI,IAAK;AACnCA,IAAAA,IAAI,CAAC3G,SAAS,GAAG2G,IAAI,CAAC1G,SAAS,KAAK,QAAQ,GAAG,EAAE,GAAG0G,IAAI,CAAC1G,SAAS,CAAA;GACnE,CAAA;EAED,MAAMmH,UAAU,GAAI7G,CAAC,IAAK;AACxB,IAAA,IAAIA,CAAC,EAAEA,CAAC,CAACiE,cAAc,EAAE,CAAA;AACzBrC,IAAAA,gBAAgB,CAACkB,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B4C,IAAAA,kBAAkB,CAACpE,cAAc,CAACY,OAAO,CAAC,CAAA;IAC1Cf,SAAS,CAACuC,KAAK,EAAE,CAAA;IACjB,IAAIjI,KAAK,CAACyG,OAAO,EAAE;AACjBD,MAAAA,YAAY,CAACxG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAA;AACrCjE,MAAAA,KAAK,CAACyG,OAAO,CAACW,SAAS,EAAE,CAAA;AAC3B,KAAA;GACD,CAAA;EAED,MAAMqE,MAAM,GAAIlH,CAAC,IAAK;AACpBxD,IAAAA,WAAW,CAACf,KAAK,CAACyG,OAAO,EAAEK,aAAa,CAAC,CAAA;GAC1C,CAAA;EAED,MAAM4D,kBAAkB,GAAGA,MAAM;IAC/B,OAAO9D,iBAAiB,CAACiF,UAAA,CAAY5G,WAAW,EAACA,WAAW,CAACvD,GAAG,CAAEC,CAAC,IAAGnE,MAAM,CAACnB,QAAQ,CAACyP,iBAAiB,CAACnK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;GAC9G,CAAA;EAED,MAAMoK,UAAU,GAAI9E,IAAI,iBAAK+E,KAAA,CAAA1P,aAAA,CAAC2C,UAAU,EAAA;AACtCoJ,IAAAA,GAAG,EAAEpB,IAAK;IACV3B,QAAQ,EAAE,CAAC,CAAE;IACb2G,OAAO,EAAG1H,CAAC,IAAKkE,WAAW,CAAClE,CAAC,EAAE0C,IAAI,CAAE;IACrCjC,SAAS,EAAE,iDAAiD,IAAI2B,cAAc,CAACM,IAAI,CAAC,GAAG,WAAW,GAAG,EAAE,CAAE;AACzGiF,IAAAA,IAAI,EAAC,QAAA;GAELF,eAAAA,KAAA,CAAA1P,aAAA,CAAA,MAAA,EAAA;IAAM0I,SAAS,EAAE,YAAY,GAAGiC,IAAAA;AAAK,GAAC,CAC5B,CAAC,CAAA;AAEb,EAAA,MAAMkF,eAAe,gBAAGH,KAAA,CAAA1P,aAAA,CAAC4B,iBAAiB,EAAA;AACxCU,IAAAA,SAAS,EAAEA,SAAU;AACrBwN,IAAAA,GAAG,EAAEpK,SAAU;AACfqK,IAAAA,OAAO,EAAE1E,cAAe;AACxBO,IAAAA,MAAM,EAAEH,aAAc;IACtBtJ,KAAK,EAAEuH,gBAAgB,CAACgC,MAAO;IAC/BzJ,WAAW,EAAE,CAACS,QAAQ,GAAG,CAAC6F,eAAe,IAAImB,gBAAgB,CAACgC,MAAO;AACrEhD,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,eAErBgH,KAAA,CAAA1P,aAAA,CAACkC,cAAc,EAAA;AAACwG,IAAAA,SAAS,EAAC,iBAAA;AAAiB,GAAA,EACxCC,WAAW,CAACvD,GAAG,CAAC,CAACC,CAAC,EAAE2K,CAAC,KAAK3K,CAAC,KAAK,WAAW,gBAAGqK,KAAA,CAAA1P,aAAA,CAAC6C,aAAa,EAAA;AAAC6F,IAAAA,SAAS,EAAC,WAAW;IACrBqD,GAAG,EAAE,YAAY,GAAGiE,CAAAA;AAAE,GAAC,CAAC,GAAGP,UAAU,CAACpK,CAAC,CAAC,CACxF,CAAC,eACjBqK,KAAA,CAAA1P,aAAA,CAACwC,aAAa,EAAA,IAAA,eACZkN,KAAA,CAAA1P,aAAA,CAACiQ,eAAe,EAAA;AACdvH,IAAAA,SAAS,EAAE3F,QAAS;AACpBmN,IAAAA,QAAQ,EAAExM,KAAM;AAChByM,IAAAA,IAAI,EAAElG,SAAS,CAACE,OAAO,IAAI,EAAG;AAC9ByB,IAAAA,MAAM,EAAEA,MAAO;AACf+D,IAAAA,OAAO,EAAEP,WAAY;AACrBgB,IAAAA,OAAO,EAAErB,WAAY;AACrBsB,IAAAA,SAAS,EAAErB,aAAc;AACzBsB,IAAAA,OAAO,EAAErB,eAAgB;AACzBsB,IAAAA,MAAM,EAAEtB,eAAgB;AACxBjG,IAAAA,QAAQ,EAAEA,QAAS;AACnBtG,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,SAAS,EAAEA,SAAU;AACrBgG,IAAAA,WAAW,EAAEA,WAAAA;GACd,CACY,CAAC,EACfrG,MAAM,iBAAIsN,KAAA,CAAA1P,aAAA,CAACZ,SAAS,EAAA;AAACoR,IAAAA,IAAI,EAAC,MAAA;GAAO,CAAC,EAEjCpH,SAAS,CAACsC,MAAM,iBAChBgE,KAAA,CAAA1P,aAAA,CAACyQ,aAAa,EAAA;AACZ/M,IAAAA,KAAK,EAAEA,KAAM;AACb6F,IAAAA,cAAc,EAAEA,cAAe;AAC/BmH,IAAAA,MAAM,EAAE9B,kBAAmB;IAC3BpN,MAAM,EAAE4H,SAAS,CAACsC,MAAO;AACzBoD,IAAAA,UAAU,EAAEA,UAAW;AACvB6B,IAAAA,QAAQ,EAAErC,gBAAAA;AAAiB,GAC5B,CAEc,CAAC,CAAA;AACpB,EAAA,OAAQhG,KAAK,gBACPoH,KAAA,CAAA1P,aAAA,CAAC4Q,KAAK,EAAA;AAACC,IAAAA,UAAU,EAAE1O,KAAM;AAAC2G,IAAAA,QAAQ,EAAEA,QAAS;AAACC,IAAAA,QAAQ,EAAEA,QAAS;AAACT,IAAAA,KAAK,EAAEA,KAAM;AAACO,IAAAA,SAAS,EAAEA,SAAAA;GAC5FgH,EAAAA,eACI,CAAC,GACJA,eAAe,CAAA;AAEvB,EAAC;AAED,MAAMY,aAAa,GAAGK,KAAA,IAAmE;EAAA,IAAlE;IAACJ,MAAM;IAAE5B,UAAU;IAAEvF,cAAc;IAAE7F,KAAK;IAAEiN,QAAQ;AAAEnP,IAAAA,MAAAA;AAAM,GAAC,GAAAsP,KAAA,CAAA;AAClF,EAAA,MAAM1H,SAAS,GAAGI,MAAM,EAAE,CAAA;AAC1B,EAAA,MAAMuH,OAAO,GAAGvH,MAAM,EAAE,CAAA;AACxB,EAAA,MAAMwH,WAAW,GAAGxH,MAAM,EAAE,CAAA;AAC5B,EAAA,MAAMyH,UAAU,GAAGzH,MAAM,EAAE,CAAA;EAC3B,MAAM0H,MAAM,GAAGC,UAAU,CAACC,gBAAgB,CAAC,CAACC,MAAM,CAACnJ,QAAQ,CAAA;EAG3D,MAAMoJ,aAAa,GAAIC,UAAU,IAAK;AACpC,IAAA,IAAIC,MAAM,CAAA;AACV,IAAA,IAAI,CAACD,UAAU,CAAC9C,QAAQ,EAAE;AACxB+C,MAAAA,MAAM,GAAG;AAAC,QAAA,UAAU,EAAE,CAACN,MAAM,CAACO,aAAa,CAAA;OAAE,CAAA;AAC/C,KAAA;IACA,IAAI,CAACF,UAAU,CAAC/C,OAAO,IAAI+C,UAAU,CAAC/C,OAAO,KAAK,GAAG,IAAI,CAACkD,SAAS,CAACC,IAAI,CAACJ,UAAU,CAAC/C,OAAO,CAACc,IAAI,EAAE,CAAC,EAAE;AACnGkC,MAAAA,MAAM,GAAAI,aAAA,CAAAA,aAAA,KAAOJ,MAAM,CAAA,EAAA,EAAA,EAAA;AAAE,QAAA,SAAS,EAAE,CAACN,MAAM,CAACW,YAAY,CAAA;OAAE,CAAA,CAAA;AACxD,KAAA;AACA,IAAA,OAAOL,MAAM,CAAA;GACd,CAAA;EAED,MAAMM,eAAe,GAAI7J,CAAC,IAAK;AAC7B,IAAA,IAAIA,CAAC,CAAC8J,OAAO,KAAK,EAAE,EAAE;MACpB9J,CAAC,CAAC+J,eAAe,EAAE,CAAA;MACnBtB,MAAM,CAACzI,CAAC,CAAC,CAAA;AACX,KAAC,MAAM,IAAIA,CAAC,CAAC8J,OAAO,KAAK,EAAE,EAAE;MAC3B9J,CAAC,CAACiE,cAAc,EAAE,CAAA;MAClBjE,CAAC,CAAC+J,eAAe,EAAE,CAAA;AACnBjB,MAAAA,OAAO,CAAC5G,OAAO,CAAC8H,UAAU,EAAE,CAAA;AAC9B,KAAA;GACD,CAAA;AAED7H,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMsE,qBAAqB,GAAGnF,cAAc,CAACY,OAAO,CAAA;AACpD,IAAA,MAAM+H,gBAAgB,GAAG9I,SAAS,CAACe,OAAO,CAAA;AAC1C,IAAA,MAAMgI,UAAU,GAAGzD,qBAAqB,CAAC0D,cAAc,EAAE,CAACtO,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAACyO,UAAU,GAAGzD,qBAAqB,CAACyD,UAAU,CAAA;AAC1H,IAAA,MAAME,IAAI,GAAK3D,qBAAqB,CAAC4D,WAAW,GAAI,CAAC,GAAKJ,gBAAgB,CAACI,WAAW,GAAG,CAAE,GAAGH,UAAU,CAAA;IACxG,MAAMI,GAAG,GAAI7D,qBAAqB,CAAC8D,YAAY,GAAI9D,qBAAqB,CAAC+D,SAAS,CAAA;AAClFlL,IAAAA,MAAM,CAACC,MAAM,CAAC0K,gBAAgB,CAACjS,KAAK,EAAE;AACpC,MAAA,UAAU,EAAE,UAAU;MACtB,MAAM,EAAEoS,IAAI,GAAG,IAAI;MACnB,KAAK,EAAEE,GAAG,GAAG,IAAA;AACf,KAAC,CAAC,CAAA;IACF,IAAI/Q,MAAM,CAACiN,QAAQ,EAAE;AACnBwC,MAAAA,UAAU,CAAC9G,OAAO,CAAChI,KAAK,EAAE,CAAA;AAC5B,KAAC,MAAM;AACL6O,MAAAA,WAAW,CAAC7G,OAAO,CAAChI,KAAK,EAAE,CAAA;AAC7B,KAAA;AACA,IAAA,OAAOuO,MAAM,CAAA;GACd,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBAAOhB,KAAA,CAAA1P,aAAA,CAAC0S,QAAQ,EAAA;IAACC,OAAO,EAAA,IAAA;AAAC7C,IAAAA,GAAG,EAAEiB,OAAQ;AAAC6B,IAAAA,MAAM,EAAEjC,QAAS;AAACnP,IAAAA,MAAM,EAAEA,MAAO;AAAC8P,IAAAA,aAAa,EAAEA,aAAAA;AAAc,GAAA,EAAEuB,IAAI,iBAC1GnD,KAAA,CAAA1P,aAAA,CAAA,KAAA,EAAA;IAAK2P,OAAO,EAAEqC,eAAe,EAAG;AAAClC,IAAAA,GAAG,EAAE1G,SAAU;AAACiH,IAAAA,SAAS,EAAEyB,eAAgB;AAC1EpJ,IAAAA,SAAS,EAAC,yCAAyC;AAACoK,IAAAA,eAAe,EAAE,KAAA;AAAM,GAAA,eAC3EpD,KAAA,CAAA1P,aAAA,CAAC+S,SAAS,EAAA;AACRjD,IAAAA,GAAG,EAAEkB,WAAY;IACjBnI,SAAS,EAAA,IAAA;AACTT,IAAAA,IAAI,EAAC,UAAU;IACfE,KAAK,EAAE4I,MAAM,CAAC8B,aAAAA;AAAc,GAC7B,CAAC,eACFtD,KAAA,CAAA1P,aAAA,CAAC+S,SAAS,EAAA;AACRjD,IAAAA,GAAG,EAAEmB,UAAW;IAChBpI,SAAS,EAAA,IAAA;AACTT,IAAAA,IAAI,EAAC,SAAS;IACdE,KAAK,EAAE4I,MAAM,CAAC+B,YAAAA;AAAa,GAC5B,CAAC,eACFvD,KAAA,CAAA1P,aAAA,CAAA,KAAA,EAAA;AAAK0I,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,eAC3BgH,KAAA,CAAA1P,aAAA,CAAC4C,MAAM,EAAA;AAAC8F,IAAAA,SAAS,EAAC,aAAa;AAAC8H,IAAAA,IAAI,EAAC,QAAQ;AAACb,IAAAA,OAAO,EAAEb,UAAAA;GACpDoC,EAAAA,MAAM,CAACgC,WACF,CAAC,eACTxD,KAAA,CAAA1P,aAAA,CAAC4C,MAAM,EAAA;AAAC+M,IAAAA,OAAO,EAAEe,MAAO;AAAC1H,IAAAA,QAAQ,EAAE,CAAA;GAAIkI,EAAAA,MAAM,CAACiC,WAAoB,CAAC,eACnEzD,KAAA,CAAA1P,aAAA,CAAC4C,MAAM,EAAA;IAACwQ,SAAS,EAAA,IAAA;IAACzD,OAAO,EAAEkD,IAAI,CAACQ,cAAAA;AAAe,GAAA,EAAEnC,MAAM,CAACoC,YAAqB,CAC1E,CAAC,eACN5D,KAAA,CAAA1P,aAAA,CAACuT,MAAM,EAAC,IAAA,CACL,CACI,CAAC,CAAA;AACd,CAAC;;;;"}
@@ -0,0 +1,359 @@
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
+ import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
5
+ import _identity from 'lodash/fp/identity';
6
+ import _isFunction from 'lodash/fp/isFunction';
7
+ import _isRegExp from 'lodash/fp/isRegExp';
8
+ import _isString from 'lodash/fp/isString';
9
+ import React, { useState, useEffect, forwardRef } from 'react';
10
+ import { Field } from './Field.mjs';
11
+ import { useInput } from './enhanceInput.mjs';
12
+ import styled, { css } from 'styled-components';
13
+ import { Icon, Loading } from '@startlibs/components';
14
+ import { getColor, media, customTheme, isTouchDevice, ifUndefined, getScrollParent, callIfFunction, digitsToPattern, intToHour } from '@startlibs/utils';
15
+ import { darken } from 'polished';
16
+ import { useRefState, useEnsureRef } from '@startlibs/core';
17
+
18
+ const _excluded = ["onFocus", "onBlur", "autoResize", "autoSelectOnFocus", "constraint", "pattern", "path", "rawValue", "rawSetValue", "rawHasErrors", "transformOnBlur", "raw", "showValue", "deleteTrailing"],
19
+ _excluded2 = ["showValue", "label", "type", "helpText", "descText", "bellowDescText", "mandatory", "isLoading", "locked", "textBoxBefore", "textBoxAfter", "textAfter", "icon", "className", "fieldClassName", "FieldType", "margin", "value", "setValue", "hasErrors", "textarea", "onImage", "rounded", "autoFocus", "noFocus", "autoSelectOnFocus", "onFocus", "onBlur", "pattern", "autoResize", "constraint", "path", "raw", "tabIndex"];
20
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ const InputWithTextAfter = /*#__PURE__*/styled.div.withConfig({
24
+ displayName: "TextInput__InputWithTextAfter",
25
+ componentId: "sc-yzpeng-0"
26
+ })(["display:flex;align-items:center;border:1px solid ", ";border-radius:", ";background:white;", " ", " input{border:none;box-shadow:none !important;flex:1;min-width:0;}"], getColor('gray210'), props => props.rounded ? '100px' : '8px', props => props.focused && css(["border-color:", ";box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);"], getColor('gray180')), props => props.hasErrors && css(["border-color:", " !important;"], getColor('alert')));
27
+ const TextAfterLabel = /*#__PURE__*/styled.span.withConfig({
28
+ displayName: "TextInput__TextAfterLabel",
29
+ componentId: "sc-yzpeng-1"
30
+ })(["padding-right:0.7rem;color:", ";font-size:14px;white-space:nowrap;", ""], getColor('gray180'), media.mobile(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding-right: 1rem;\n "]))));
31
+ const InputWithIcon = /*#__PURE__*/styled.div.withConfig({
32
+ displayName: "TextInput__InputWithIcon",
33
+ componentId: "sc-yzpeng-2"
34
+ })(["position:relative;width:100%;input,textarea{display:block;}"]);
35
+ const InputIcon = /*#__PURE__*/styled(Icon).withConfig({
36
+ displayName: "TextInput__InputIcon",
37
+ componentId: "sc-yzpeng-3"
38
+ })(["position:absolute;left:", ";top:50%;transform:translateY(-50%);font-size:23px;color:", ";pointer-events:none;z-index:1;line-height:0;", ""], props => props.rounded ? '13px' : '0.7rem', getColor('gray180'), media.mobile(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n left: ", ";\n "])), props => props.rounded ? '1.25rem' : '1rem'));
39
+ const InputLoading = /*#__PURE__*/styled(Loading).withConfig({
40
+ displayName: "TextInput__InputLoading",
41
+ componentId: "sc-yzpeng-4"
42
+ })(["bottom:8px;right:0.6rem;left:auto;top:auto;", " "], media.mobile(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n bottom: 10px;\n "]))));
43
+ const Input = /*#__PURE__*/styled.input.withConfig({
44
+ displayName: "TextInput__Input",
45
+ componentId: "sc-yzpeng-5"
46
+ })(["width:100%;font-size:14px;border:1px solid ", ";border-radius:8px;outline:0;outline:none;color:", ";background:white;position:relative;height:3rem;padding:0 0.7rem;overflow:auto;", "::-webkit-input-placeholder{color:rgba(0,0,0,0.3);}::-moz-placeholder{color:rgba(0,0,0,0.3);}:-moz-placeholder{color:rgba(0,0,0,0.3);}:-ms-input-placeholder{color:rgba(0,0,0,0.3);}", "::-ms-clear{display:none;}", " ", " ", " ", " ", ""], getColor('gray210'), getColor('gray60'), media.mobile(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n height: 42px;\n padding: 0 1rem;\n @supports (-webkit-touch-callout: none) {\n font-size: 16px;\n }\n "]))), props => !props.hasTextBox && !props.noFocus && css([":focus{border-color:", ";box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);}", ""], getColor('gray180'), props => props.hasErrors && css(["border-color:", " !important;"], getColor('alert'))), props => props.locked && css(["padding-right:2.25rem;background:rgba(0,0,0,0.075);pointer-events:none;"]), props => props.isTextArea && css(["resize:none;min-height:", "px;padding:.7rem;display:block;", " ", ""], props => props.regularInputHeight ? 36 : props.minHeight || 60, props => props.autoResize ? 'overflow:hidden;' : 'overflow:auto;', media.mobile(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n padding: 1rem;\n ", "\n "])), props => props.regularInputHeight && 'min-height: 42px;')), props => props.rounded && css(["border-radius:100px;padding-left:1.25rem;padding-right:1.25rem;"]), props => props.hasIcon && css(["padding-left:", ";", ""], props.rounded ? '3rem' : '2.5rem', media.mobile(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding-left: ", ";\n "])), props.rounded ? '3.25rem' : '2.75rem')), customTheme('TextInput'));
47
+ const InputWithTextBox = /*#__PURE__*/styled.div.withConfig({
48
+ displayName: "TextInput__InputWithTextBox",
49
+ componentId: "sc-yzpeng-6"
50
+ })(["display:flex;border-radius:", ";position:relative;:before{position:absolute;border-radius:", ";top:0;bottom:0;right:0;left:0;z-index:2;pointer-events:none;}", " ", " ", " ", ""], props => props.rounded ? '100px' : '8px', props => props.rounded ? '100px' : '8px', props => props.focused && css(["box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);:before{content:'';border:1px solid ", ";}"], getColor('gray180')), props => props.hasErrors && css([":before{content:'';border:1px solid ", ";}"], getColor('alert')), props => props.textBoxBefore && css(["input{border-top-left-radius:0;border-bottom-left-radius:0;}"]), props => props.textBoxAfter && css(["input{border-top-right-radius:0;border-bottom-right-radius:0;}"]));
51
+ const TextBox = /*#__PURE__*/styled.span.withConfig({
52
+ displayName: "TextInput__TextBox",
53
+ componentId: "sc-yzpeng-7"
54
+ })(["display:flex;align-items:center;padding:0 0.7rem;z-index:1;background-color:", ";border:1px solid ", ";cursor:text;white-space:nowrap;"], props => darken(0.075, getColor('gray240')(props)), getColor('gray210'));
55
+ const TextBoxBefore = /*#__PURE__*/styled(TextBox).withConfig({
56
+ displayName: "TextInput__TextBoxBefore",
57
+ componentId: "sc-yzpeng-8"
58
+ })(["border-top-left-radius:", ";border-bottom-left-radius:", ";", " margin-right:-1px;"], props => props.rounded ? '100px' : '8px', props => props.rounded ? '100px' : '8px', props => props.rounded && 'padding-left: 1.25rem;');
59
+ const TextBoxAfter = /*#__PURE__*/styled(TextBox).withConfig({
60
+ displayName: "TextInput__TextBoxAfter",
61
+ componentId: "sc-yzpeng-9"
62
+ })(["border-top-right-radius:", ";border-bottom-right-radius:", ";", " margin-left:-1px;"], props => props.rounded ? '100px' : '8px', props => props.rounded ? '100px' : '8px', props => props.rounded && 'padding-right: 1.25rem;');
63
+ const doAutoResize = element => {
64
+ const scrollContainer = getScrollParent(element);
65
+ const lastTop = scrollContainer.scrollTop || scrollContainer.pageYOffset;
66
+ element.style.height = 'auto';
67
+ element.style.height = element.scrollHeight + 'px';
68
+ if (scrollContainer === window) {
69
+ scrollContainer.scroll(scrollContainer.pageXOffset, lastTop);
70
+ } else {
71
+ scrollContainer.scrollTop = lastTop;
72
+ }
73
+ };
74
+ const useTextInput = (_ref, ref) => {
75
+ let {
76
+ onFocus,
77
+ onBlur,
78
+ autoResize,
79
+ autoSelectOnFocus,
80
+ constraint,
81
+ pattern,
82
+ path,
83
+ rawValue,
84
+ rawSetValue,
85
+ rawHasErrors,
86
+ transformOnBlur,
87
+ raw,
88
+ showValue,
89
+ deleteTrailing
90
+ } = _ref,
91
+ rest = _objectWithoutProperties(_ref, _excluded);
92
+ const [formValue, setFormValue, {
93
+ hasErrors
94
+ }] = useInput(_objectSpread({
95
+ path,
96
+ value: rawValue,
97
+ setValue: rawSetValue
98
+ }, rest), raw);
99
+ const [focused, setFocused] = useState();
100
+ const lastSelection = useRefState();
101
+ const lastValue = useRefState(showValue(formValue));
102
+ const handleOnFocus = e => {
103
+ setFocused(true);
104
+ if (!!autoSelectOnFocus && !!ref.current) {
105
+ setTimeout(() => {
106
+ var _ref$current;
107
+ return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.select();
108
+ }, 0);
109
+ }
110
+ callIfFunction(onFocus, e);
111
+ };
112
+ const handleOnBlur = e => {
113
+ setFocused(false);
114
+ callIfFunction(onBlur, e);
115
+ if (transformOnBlur) {
116
+ setFormValue(transformOnBlur(formValue));
117
+ }
118
+ };
119
+ useEffect(() => {
120
+ if (lastSelection.get() === 1 && constraint === 'capitalize') {
121
+ ref.current.setSelectionRange(lastSelection.get(), lastSelection.get());
122
+ }
123
+ });
124
+ useEffect(() => {
125
+ if (autoResize) {
126
+ doAutoResize(ref.current);
127
+ }
128
+ }, []);
129
+ useEffect(() => {
130
+ if (!!autoSelectOnFocus && !!ref.current && document.activeElement === ref.current) {
131
+ setTimeout(() => {
132
+ var _ref$current2;
133
+ return (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.select();
134
+ }, 0);
135
+ }
136
+ }, [autoSelectOnFocus]);
137
+ const handleChange = e => {
138
+ if (autoResize) {
139
+ doAutoResize(ref.current);
140
+ }
141
+ const target = e.target;
142
+ try {
143
+ lastSelection.set(target.selectionEnd);
144
+ } catch (e) {}
145
+ if (constraint || pattern) {
146
+ setFormValue(validateConstraint(target.value, constraint, showValue(formValue), pattern), ref.current);
147
+ } else {
148
+ setFormValue(target.value, ref.current);
149
+ }
150
+ };
151
+ const validateConstraint = (value, constraint, prevValue, pattern) => {
152
+ let newValue = '';
153
+ if (value === lastValue.get() + "" || lastValue.get() && (lastValue.get() + "").indexOf(value) >= 0 && !pattern) {
154
+ newValue = value;
155
+ if (deleteTrailing) {
156
+ if (_isString(deleteTrailing) && value.slice(-deleteTrailing.length) === deleteTrailing) {
157
+ newValue = value.slice(0, -deleteTrailing.length);
158
+ } else if (_isRegExp(deleteTrailing) && deleteTrailing.test(value)) {
159
+ newValue = value.replace(deleteTrailing, '');
160
+ }
161
+ }
162
+ lastValue.set(showValue(newValue));
163
+ return newValue;
164
+ }
165
+ if (pattern) {
166
+ var _value$match;
167
+ newValue = ((_value$match = value.match(pattern)) === null || _value$match === void 0 || (_value$match = _value$match.slice(1)) === null || _value$match === void 0 ? void 0 : _value$match.join("")) || "";
168
+ // if (newValue.length < value.length - 1) {
169
+ // newValue = value
170
+ // }
171
+ } else if (constraint === 'price') {
172
+ if (value.indexOf(',') >= 0) value = value.replace(/\./g, ''); // ponytail: '.' é separador de milhar quando já há ',' decimal (ex: colar "2.000,45")
173
+ value = value.replace('.', ',').replace(/[^0-9,]/g, '');
174
+ const number = parseFloat(value.replace(',', '.'));
175
+ const commas = value.split(',');
176
+ const fixedNumber = number.toFixed(2);
177
+ newValue = !!commas[0] && commas.length === 2 && parseFloat(fixedNumber) === number && fixedNumber.split('.')[1].indexOf(commas[1]) === 0 ? value : digitsToPattern('>3???????#,##', value);
178
+ } else if (constraint === 'capitalize') {
179
+ // v = "R$ "+(parseInt(v.replace(/[^1-9]*([0-9]*)(,?)([0-9]{0,3}).*/,"$1$3") || 0)/100).toFixed(2).replace(".",",");
180
+ newValue = value.replace(/^[a-z]/, function (e) {
181
+ return e.toUpperCase();
182
+ });
183
+ } else if (constraint === 'number' || constraint === 'hour' || constraint === 'hour-int') {
184
+ newValue = value.replace(/\D/g, '');
185
+ if (newValue !== '') {
186
+ newValue = window.parseInt(newValue, 10);
187
+ if (constraint !== 'number') {
188
+ if ((newValue + '').length > 4 || newValue > 2399) {
189
+ newValue = prevValue;
190
+ } else {
191
+ const resultHour = intToHour(newValue, false);
192
+ const val = resultHour.replace(/\D/g, '');
193
+ const result = isNaN(parseInt(val, 10)) ? undefined : parseInt(val, 10);
194
+ newValue = constraint === 'hour-int' ? result : resultHour;
195
+ }
196
+ }
197
+ }
198
+ } else if (constraint === 'cpf') {
199
+ newValue = digitsToPattern('###.###.###-##', value);
200
+ } else if (constraint === 'cnpj') {
201
+ newValue = digitsToPattern('##.###.###/####-##', value);
202
+ } else if (_isFunction(constraint)) {
203
+ newValue = constraint(value);
204
+ } else if (_isRegExp(constraint)) {
205
+ newValue = value.replace(constraint, '');
206
+ } else {
207
+ newValue = digitsToPattern(constraint, value);
208
+ }
209
+ lastValue.set(showValue(newValue));
210
+ return newValue;
211
+ };
212
+ return [formValue, {
213
+ onChange: handleChange,
214
+ onFocus: handleOnFocus,
215
+ onBlur: handleOnBlur
216
+ }, rawHasErrors || hasErrors, focused];
217
+ };
218
+ const TextInput = /*#__PURE__*/styled(/*#__PURE__*/forwardRef((_ref2, forwardedRef) => {
219
+ let {
220
+ showValue = _identity,
221
+ label,
222
+ type = 'text',
223
+ helpText,
224
+ descText,
225
+ bellowDescText,
226
+ mandatory,
227
+ isLoading,
228
+ locked,
229
+ textBoxBefore,
230
+ textBoxAfter,
231
+ textAfter,
232
+ icon,
233
+ className,
234
+ fieldClassName = '',
235
+ FieldType = Field,
236
+ margin,
237
+ value: rawValue,
238
+ setValue: rawSetValue,
239
+ hasErrors: rawHasErrors,
240
+ textarea = false,
241
+ onImage = false,
242
+ rounded,
243
+ autoFocus,
244
+ noFocus,
245
+ autoSelectOnFocus,
246
+ onFocus,
247
+ onBlur,
248
+ pattern,
249
+ autoResize,
250
+ constraint,
251
+ path,
252
+ raw,
253
+ tabIndex = 1
254
+ } = _ref2,
255
+ rest = _objectWithoutProperties(_ref2, _excluded2);
256
+ const ref = useEnsureRef(forwardedRef);
257
+ const [value, events, hasErrors, focused] = useTextInput(_objectSpread({
258
+ path,
259
+ onFocus,
260
+ onBlur,
261
+ autoResize,
262
+ autoSelectOnFocus,
263
+ constraint,
264
+ pattern,
265
+ rawValue,
266
+ rawSetValue,
267
+ rawHasErrors,
268
+ raw,
269
+ showValue
270
+ }, rest), ref);
271
+ const inputTag = textarea ? 'textarea' : 'input';
272
+ const focusInput = () => ref.current.focus();
273
+ const wrapInput = input => {
274
+ if (textBoxBefore) {
275
+ return /*#__PURE__*/React.createElement(InputWithTextBox, {
276
+ focused: focused,
277
+ hasErrors: hasErrors,
278
+ onClick: focusInput,
279
+ textBoxBefore: true,
280
+ rounded: rounded
281
+ }, /*#__PURE__*/React.createElement(TextBoxBefore, {
282
+ rounded: rounded
283
+ }, textBoxBefore), input);
284
+ } else if (textBoxAfter) {
285
+ return /*#__PURE__*/React.createElement(InputWithTextBox, {
286
+ focused: focused,
287
+ hasErrors: hasErrors,
288
+ onClick: focusInput,
289
+ textBoxAfter: true,
290
+ rounded: rounded
291
+ }, input, /*#__PURE__*/React.createElement(TextBoxAfter, {
292
+ rounded: rounded
293
+ }, textBoxAfter));
294
+ } else if (textAfter) {
295
+ return /*#__PURE__*/React.createElement(InputWithTextAfter, {
296
+ focused: focused,
297
+ hasErrors: hasErrors,
298
+ onClick: focusInput,
299
+ rounded: rounded
300
+ }, input, /*#__PURE__*/React.createElement(TextAfterLabel, null, textAfter));
301
+ } else {
302
+ return input;
303
+ }
304
+ };
305
+ const input = wrapInput(/*#__PURE__*/React.createElement(Input, _extends({}, rest, {
306
+ as: inputTag,
307
+ className: !label ? className : undefined,
308
+ isTextArea: textarea,
309
+ "data-hj-whitelist": type !== "password",
310
+ locked: locked,
311
+ rounded: rounded,
312
+ hasIcon: !!icon,
313
+ autoFocus: !isTouchDevice() && autoFocus,
314
+ noFocus: noFocus,
315
+ hasErrors: hasErrors,
316
+ isOnImage: onImage,
317
+ ref: ref,
318
+ tabIndex: tabIndex,
319
+ type: type,
320
+ value: ifUndefined(showValue(value), ''),
321
+ hasTextBox: textBoxBefore || textBoxAfter || textAfter,
322
+ autoResize: autoResize,
323
+ rows: 1
324
+ }, events)));
325
+ const wrappedInput = icon ? /*#__PURE__*/React.createElement(InputWithIcon, null, /*#__PURE__*/React.createElement(InputIcon, {
326
+ icon: icon,
327
+ rounded: rounded
328
+ }), input) : input;
329
+ return !label ? wrappedInput : /*#__PURE__*/React.createElement(FieldType, {
330
+ className: fieldClassName + ' ' + className,
331
+ value: value,
332
+ focused: focused,
333
+ mandatory: mandatory,
334
+ isOnImage: onImage,
335
+ descText: descText,
336
+ bellowDescText: bellowDescText,
337
+ helpText: helpText,
338
+ label: label,
339
+ labelClick: focusInput,
340
+ margin: margin
341
+ }, isLoading && /*#__PURE__*/React.createElement(InputLoading, {
342
+ absolute: true,
343
+ size: 20
344
+ }), wrappedInput);
345
+ })).withConfig({
346
+ displayName: "TextInput",
347
+ componentId: "sc-yzpeng-10"
348
+ })([""]);
349
+ TextInput.Input = Input;
350
+ const FloatingFieldType = /*#__PURE__*/styled(Field).withConfig({
351
+ displayName: "TextInput__FloatingFieldType",
352
+ componentId: "sc-yzpeng-11"
353
+ })(["input{height:5rem;box-shadow:0 1px 4px rgba(0,0,0,.2);border-radius:8px;font-size:16px;font-weight:400;padding:16px 1rem 0;}", "{position:absolute;top:1.5rem;left:1rem;font-size:20px;font-weight:normal;transition:all .2s ease;color:rgba(0,0,0,.2);pointer-events:none;z-index:1;", "}"], Field.Label, props => (props.value || props.focused) && "\n top: 12px;\n font-size: 14px;\n color: rgba(0,0,0,.4);\n ");
354
+ const FloatLabelTextInput = props => /*#__PURE__*/React.createElement(TextInput, _extends({}, props, {
355
+ FieldType: FloatingFieldType
356
+ }));
357
+
358
+ export { FloatLabelTextInput, TextInput, TextInput as default, useTextInput };
359
+ //# sourceMappingURL=TextInput.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextInput.mjs","sources":["../src/TextInput.jsx"],"sourcesContent":["import React, {useState, forwardRef, useEffect} from 'react'\nimport {Field} from './Field'\nimport {useInput} from './enhanceInput'\nimport styled, {css} from 'styled-components'\nimport {Loading} from '@startlibs/components'\nimport {getScrollParent, ifUndefined, callIfFunction, getColor, customTheme, intToHour, digitsToPattern, isTouchDevice, media} from '@startlibs/utils'\nimport {darken} from 'polished'\nimport _ from 'lodash/fp'\nimport {Icon} from '@startlibs/components'\nimport {useEnsureRef, useRefState} from '@startlibs/core'\n\nconst InputWithTextAfter = styled.div`\n display: flex;\n align-items: center;\n border: 1px solid ${getColor('gray210')};\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n background: white;\n ${props => props.focused && css`\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n input {\n border: none;\n box-shadow: none !important;\n flex: 1;\n min-width: 0;\n }\n`\nconst TextAfterLabel = styled.span`\n padding-right: 0.7rem;\n color: ${getColor('gray180')};\n font-size: 14px;\n white-space: nowrap;\n ${media.mobile`\n padding-right: 1rem;\n `}\n`\n\nconst InputWithIcon = styled.div`\n position: relative;\n width: 100%;\n input, textarea {\n display: block;\n }\n`\nconst InputIcon = styled(Icon)`\n position: absolute;\n left: ${props => props.rounded ? '13px' : '0.7rem'};\n top: 50%;\n transform: translateY(-50%);\n font-size: 23px;\n color: ${getColor('gray180')};\n pointer-events: none;\n z-index: 1;\n line-height: 0;\n ${media.mobile`\n left: ${props => props.rounded ? '1.25rem' : '1rem'};\n `}\n`\n\nconst InputLoading = styled(Loading)`\n bottom: 8px;\n right: 0.6rem;\n left: auto;\n top: auto;\n ${media.mobile`\n bottom: 10px;\n `} \n`\n\nconst Input = styled.input`\n width: 100%;\n font-size: 14px;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n outline: 0;\n outline: none;\n color: ${getColor('gray60')};\n background: white;\n position: relative;\n height: 3rem;\n padding: 0 0.7rem;\n overflow: auto;\n ${media.mobile`\n height: 42px;\n padding: 0 1rem;\n @supports (-webkit-touch-callout: none) {\n font-size: 16px;\n }\n `}\n\n ::-webkit-input-placeholder {\n color: rgba(0,0,0,0.3);\n }\n ::-moz-placeholder {\n color: rgba(0,0,0,0.3);\n }\n :-moz-placeholder {\n color: rgba(0,0,0,0.3);\n }\n :-ms-input-placeholder {\n color: rgba(0,0,0,0.3);\n }\n ${props => !props.hasTextBox && !props.noFocus && css`\n :focus {\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n }\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n `}\n ::-ms-clear { //Clear IE pseudo-buttons\n display: none;\n }\n ${props => props.locked && css`\n padding-right: 2.25rem;\n background: rgba(0,0,0,0.075);\n pointer-events: none;\n `}\n ${props => props.isTextArea && css`\n resize: none;\n min-height: ${props => props.regularInputHeight ? 36 : props.minHeight || 60}px;\n padding: .7rem;\n display: block;\n ${props => props.autoResize ? 'overflow:hidden;' : 'overflow:auto;'}\n ${media.mobile`\n padding: 1rem;\n ${props => props.regularInputHeight && 'min-height: 42px;'}\n `}\n `}\n ${props => props.rounded && css`\n border-radius: 100px;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n `}\n ${props => props.hasIcon && css`\n padding-left: ${props.rounded ? '3rem' : '2.5rem'};\n ${media.mobile`\n padding-left: ${props.rounded ? '3.25rem' : '2.75rem'};\n `}\n `}\n ${customTheme('TextInput')}\n`\n\nconst InputWithTextBox = styled.div`\n display: flex;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n position: relative;\n :before {\n position: absolute;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n z-index: 2;\n pointer-events: none;\n }\n ${props => props.focused && css`\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n :before {\n content: '';\n border: 1px solid ${getColor('gray180')};\n }\n `}\n ${props => props.hasErrors && css`\n :before {\n content: '';\n border: 1px solid ${getColor('alert')};\n }\n `}\n ${props => props.textBoxBefore && css`\n input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n `}\n ${props => props.textBoxAfter && css`\n input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n `}\n`\nconst TextBox = styled.span`\n display: flex;\n align-items: center;\n padding: 0 0.7rem;\n z-index: 1;\n background-color: ${props => darken(0.075, getColor('gray240')(props))};\n border: 1px solid ${getColor('gray210')};\n cursor: text;\n white-space: nowrap;\n`\nconst TextBoxBefore = styled(TextBox)`\n border-top-left-radius: ${props => props.rounded ? '100px' : '8px'};\n border-bottom-left-radius: ${props => props.rounded ? '100px' : '8px'};\n ${props => props.rounded && 'padding-left: 1.25rem;'}\n margin-right: -1px;\n`\nconst TextBoxAfter = styled(TextBox)`\n border-top-right-radius: ${props => props.rounded ? '100px' : '8px'};\n border-bottom-right-radius: ${props => props.rounded ? '100px' : '8px'};\n ${props => props.rounded && 'padding-right: 1.25rem;'}\n margin-left: -1px;\n`\n\nconst doAutoResize = (element) => {\n const scrollContainer = getScrollParent(element)\n const lastTop = scrollContainer.scrollTop || scrollContainer.pageYOffset\n element.style.height = 'auto'\n element.style.height = (element.scrollHeight) + 'px'\n if (scrollContainer === window) {\n scrollContainer.scroll(scrollContainer.pageXOffset,lastTop)\n } else {\n scrollContainer.scrollTop = lastTop\n }\n}\n\nexport const useTextInput = (\n {\n onFocus,\n onBlur,\n autoResize,\n autoSelectOnFocus,\n constraint,\n pattern,\n path,\n rawValue,\n rawSetValue,\n rawHasErrors,\n transformOnBlur,\n raw,\n showValue,\n deleteTrailing,\n ...rest\n },\n ref\n) => {\n\n const [formValue, setFormValue, {hasErrors}] = useInput({path,value:rawValue,setValue:rawSetValue,...rest},raw)\n const [focused, setFocused] = useState()\n\n const lastSelection = useRefState()\n const lastValue = useRefState(showValue(formValue))\n\n const handleOnFocus = (e) => {\n setFocused(true)\n if (!!autoSelectOnFocus && !!ref.current) {\n setTimeout(() => ref.current?.select(), 0)\n }\n callIfFunction(onFocus, e)\n }\n const handleOnBlur = (e) => {\n setFocused(false)\n callIfFunction(onBlur, e)\n if (transformOnBlur) {\n setFormValue(transformOnBlur(formValue))\n }\n }\n\n useEffect(() => {\n if (lastSelection.get() === 1 && constraint === 'capitalize') {\n ref.current.setSelectionRange(lastSelection.get(), lastSelection.get())\n }\n })\n\n useEffect(() => {\n if (autoResize) {\n doAutoResize(ref.current)\n }\n },[])\n\n useEffect(() => {\n if (!!autoSelectOnFocus && !!ref.current && document.activeElement === ref.current) {\n setTimeout(() => ref.current?.select(), 0)\n }\n }, [autoSelectOnFocus])\n\n \n\n const handleChange = (e) => {\n if (autoResize) {\n doAutoResize(ref.current)\n }\n const target = e.target\n try {\n lastSelection.set(target.selectionEnd)\n } catch(e) {}\n if (constraint || pattern) {\n setFormValue(validateConstraint(target.value, constraint, showValue(formValue), pattern), ref.current)\n } else {\n setFormValue(target.value, ref.current)\n }\n }\n\n const validateConstraint = (value, constraint, prevValue, pattern) => {\n let newValue = ''\n if (value === (lastValue.get()+\"\") || (lastValue.get() && (lastValue.get()+\"\").indexOf(value)>=0 && !pattern)) {\n newValue = value\n if (deleteTrailing) {\n if (_.isString(deleteTrailing) && value.slice(-deleteTrailing.length) === deleteTrailing) {\n newValue = value.slice(0,-deleteTrailing.length)\n } else if (_.isRegExp(deleteTrailing) && deleteTrailing.test(value)) {\n newValue = value.replace(deleteTrailing,'')\n }\n }\n lastValue.set(showValue(newValue))\n return newValue\n }\n if (pattern) {\n newValue = value.match(pattern)?.slice(1)?.join(\"\") || \"\"\n // if (newValue.length < value.length - 1) {\n // newValue = value\n // }\n } else if (constraint === 'price') {\n if (value.indexOf(',') >= 0) value = value.replace(/\\./g, '') // ponytail: '.' é separador de milhar quando já há ',' decimal (ex: colar \"2.000,45\")\n value = value.replace('.', ',').replace(/[^0-9,]/g, '')\n const number = parseFloat(value.replace(',', '.'))\n const commas = value.split(',')\n const fixedNumber = number.toFixed(2)\n newValue = !!commas[0] && commas.length === 2 && parseFloat(fixedNumber) === number && fixedNumber.split('.')[1].indexOf(commas[1]) === 0 ? value : digitsToPattern('>3???????#,##', value)\n } else if (constraint === 'capitalize') {\n // v = \"R$ \"+(parseInt(v.replace(/[^1-9]*([0-9]*)(,?)([0-9]{0,3}).*/,\"$1$3\") || 0)/100).toFixed(2).replace(\".\",\",\");\n newValue = value.replace(/^[a-z]/, function(e) { return e.toUpperCase() })\n } else if (constraint === 'number' || constraint === 'hour' || constraint === 'hour-int') {\n newValue = value.replace(/\\D/g, '')\n if (newValue !== '') {\n newValue = window.parseInt(newValue, 10)\n if (constraint !== 'number') {\n if ((newValue + '').length > 4 || newValue > 2399) {\n newValue = prevValue\n } else {\n const resultHour = intToHour(newValue, false)\n const val = resultHour.replace(/\\D/g, '')\n const result = (isNaN(parseInt(val, 10)) ? undefined : parseInt(val, 10))\n newValue = constraint === 'hour-int' ? result : resultHour\n }\n }\n }\n } else if (constraint === 'cpf') {\n newValue = digitsToPattern('###.###.###-##', value)\n } else if (constraint === 'cnpj') {\n newValue = digitsToPattern('##.###.###/####-##', value)\n } else if (_.isFunction(constraint)) {\n newValue = constraint(value)\n } else if (_.isRegExp(constraint)) {\n newValue = value.replace(constraint, '')\n } else {\n newValue = digitsToPattern(constraint, value)\n }\n lastValue.set(showValue(newValue))\n return newValue\n }\n return [formValue, {onChange: handleChange, onFocus: handleOnFocus, onBlur: handleOnBlur}, rawHasErrors || hasErrors, focused]\n}\n\n\nexport const TextInput = styled(forwardRef((\n {\n showValue = _.identity,\n label,\n type = 'text',\n helpText,\n descText,\n bellowDescText,\n mandatory,\n isLoading,\n locked,\n textBoxBefore,\n textBoxAfter,\n textAfter,\n icon,\n className,\n fieldClassName = '',\n FieldType = Field,\n margin,\n\n value: rawValue,\n setValue: rawSetValue,\n hasErrors: rawHasErrors,\n\n textarea = false,\n onImage = false,\n rounded,\n autoFocus,\n noFocus,\n autoSelectOnFocus,\n\n onFocus,\n onBlur,\n pattern,\n autoResize,\n constraint,\n path,\n raw,\n\n tabIndex = 1,\n\n ...rest\n },\n forwardedRef\n) => {\n const ref = useEnsureRef(forwardedRef)\n const [value, events, hasErrors, focused] = useTextInput({path, onFocus, onBlur, autoResize, autoSelectOnFocus, constraint, pattern, rawValue, rawSetValue, rawHasErrors, raw, showValue, ...rest}, ref)\n const inputTag = textarea ? 'textarea' : 'input'\n\n const focusInput = () => ref.current.focus()\n\n const wrapInput = (input) => {\n if (textBoxBefore) {\n return (\n <InputWithTextBox focused={focused} hasErrors={hasErrors} onClick={focusInput} textBoxBefore rounded={rounded}>\n <TextBoxBefore rounded={rounded}>{textBoxBefore}</TextBoxBefore>\n {input}\n </InputWithTextBox>)\n } else if (textBoxAfter) {\n return (\n <InputWithTextBox focused={focused} hasErrors={hasErrors} onClick={focusInput} textBoxAfter rounded={rounded}>\n {input}\n <TextBoxAfter rounded={rounded}>{textBoxAfter}</TextBoxAfter>\n </InputWithTextBox>)\n } else if (textAfter) {\n return (\n <InputWithTextAfter focused={focused} hasErrors={hasErrors} onClick={focusInput} rounded={rounded}>\n {input}\n <TextAfterLabel>{textAfter}</TextAfterLabel>\n </InputWithTextAfter>)\n } else {\n return input\n }\n }\n const input = wrapInput(<Input\n {...rest}\n as={inputTag}\n className={!label ? className : undefined}\n isTextArea={textarea}\n data-hj-whitelist={type !== \"password\"}\n locked={locked}\n rounded={rounded}\n hasIcon={!!icon}\n autoFocus={!isTouchDevice() && autoFocus}\n noFocus={noFocus}\n hasErrors={hasErrors}\n isOnImage={onImage}\n ref={ref}\n tabIndex={tabIndex}\n type={type}\n value={ifUndefined(showValue(value),'')}\n hasTextBox={textBoxBefore || textBoxAfter || textAfter}\n autoResize={autoResize}\n rows={1}\n {...events}\n />)\n\n const wrappedInput = icon\n ? <InputWithIcon>\n <InputIcon icon={icon} rounded={rounded}/>\n {input}\n </InputWithIcon>\n : input\n\n return (\n !label\n ? wrappedInput\n : <FieldType\n className={fieldClassName+ ' ' + className}\n value={value}\n focused={focused}\n mandatory={mandatory}\n isOnImage={onImage}\n descText={descText}\n bellowDescText={bellowDescText}\n helpText={helpText}\n label={label}\n labelClick={focusInput}\n margin={margin}\n >\n {isLoading && <InputLoading absolute size={20}/>}\n {wrappedInput}\n </FieldType>\n )\n\n}))``\n\nTextInput.Input = Input\nexport default TextInput\n\nconst FloatingFieldType = styled(Field)`\n input {\n height: 5rem;\n box-shadow: 0 1px 4px rgba(0,0,0,.2);\n border-radius: 8px;\n font-size: 16px;\n font-weight: 400;\n padding: 16px 1rem 0;\n }\n ${Field.Label} {\n position: absolute;\n top: 1.5rem;\n left: 1rem;\n font-size: 20px;\n font-weight: normal;\n transition: all .2s ease;\n color: rgba(0,0,0,.2);\n pointer-events: none;\n z-index: 1;\n ${props => (props.value || props.focused) && `\n top: 12px;\n font-size: 14px;\n color: rgba(0,0,0,.4);\n `}\n }\n `\nexport const FloatLabelTextInput = (props) => <TextInput {...props} FieldType={FloatingFieldType}/>\n"],"names":["InputWithTextAfter","styled","div","withConfig","displayName","componentId","getColor","props","rounded","focused","css","hasErrors","TextAfterLabel","span","media","mobile","_templateObject","_taggedTemplateLiteral","InputWithIcon","InputIcon","Icon","_templateObject2","InputLoading","Loading","_templateObject3","Input","input","_templateObject4","hasTextBox","noFocus","locked","isTextArea","regularInputHeight","minHeight","autoResize","_templateObject5","hasIcon","_templateObject6","customTheme","InputWithTextBox","textBoxBefore","textBoxAfter","TextBox","darken","TextBoxBefore","TextBoxAfter","doAutoResize","element","scrollContainer","getScrollParent","lastTop","scrollTop","pageYOffset","style","height","scrollHeight","window","scroll","pageXOffset","useTextInput","_ref","ref","onFocus","onBlur","autoSelectOnFocus","constraint","pattern","path","rawValue","rawSetValue","rawHasErrors","transformOnBlur","raw","showValue","deleteTrailing","rest","_objectWithoutProperties","_excluded","formValue","setFormValue","useInput","_objectSpread","value","setValue","setFocused","useState","lastSelection","useRefState","lastValue","handleOnFocus","e","current","setTimeout","_ref$current","select","callIfFunction","handleOnBlur","useEffect","get","setSelectionRange","document","activeElement","_ref$current2","handleChange","target","set","selectionEnd","validateConstraint","prevValue","newValue","indexOf","_isString","slice","length","_isRegExp","test","replace","_value$match","match","join","number","parseFloat","commas","split","fixedNumber","toFixed","digitsToPattern","toUpperCase","parseInt","resultHour","intToHour","val","result","isNaN","undefined","_isFunction","onChange","TextInput","forwardRef","_ref2","forwardedRef","_identity","label","type","helpText","descText","bellowDescText","mandatory","isLoading","textAfter","icon","className","fieldClassName","FieldType","Field","margin","textarea","onImage","autoFocus","tabIndex","_excluded2","useEnsureRef","events","inputTag","focusInput","focus","wrapInput","React","createElement","onClick","_extends","as","isTouchDevice","isOnImage","ifUndefined","rows","wrappedInput","labelClick","absolute","size","FloatingFieldType","Label","FloatLabelTextInput"],"mappings":"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"}