@semcore/bulk-textarea 1.1.0-prerelease.9 → 1.1.0

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 (41) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/lib/cjs/BulkTextarea.js +9 -7
  3. package/lib/cjs/BulkTextarea.js.map +1 -1
  4. package/lib/cjs/BulkTextarea.types.js.map +1 -1
  5. package/lib/cjs/components/InputField/InputField.js +42 -28
  6. package/lib/cjs/components/InputField/InputField.js.map +1 -1
  7. package/lib/cjs/components/InputField/InputField.types.js.map +1 -1
  8. package/lib/cjs/components/InputField/inputField.shadow.css +1 -0
  9. package/lib/es6/BulkTextarea.js +9 -7
  10. package/lib/es6/BulkTextarea.js.map +1 -1
  11. package/lib/es6/BulkTextarea.types.js.map +1 -1
  12. package/lib/es6/components/InputField/InputField.js +42 -28
  13. package/lib/es6/components/InputField/InputField.js.map +1 -1
  14. package/lib/es6/components/InputField/InputField.types.js.map +1 -1
  15. package/lib/es6/components/InputField/inputField.shadow.css +1 -0
  16. package/lib/esm/BulkTextarea.mjs +212 -0
  17. package/lib/esm/components/ClearAll.mjs +16 -0
  18. package/lib/esm/components/Counter.mjs +18 -0
  19. package/lib/esm/components/ErrorsNavigation.mjs +43 -0
  20. package/lib/esm/components/InputField/InputField.mjs +625 -0
  21. package/lib/esm/index.mjs +4 -0
  22. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +33 -0
  23. package/lib/esm/translations/de.json.mjs +13 -0
  24. package/lib/esm/translations/en.json.mjs +13 -0
  25. package/lib/esm/translations/es.json.mjs +13 -0
  26. package/lib/esm/translations/fr.json.mjs +13 -0
  27. package/lib/esm/translations/it.json.mjs +13 -0
  28. package/lib/esm/translations/ja.json.mjs +13 -0
  29. package/lib/esm/translations/ko.json.mjs +13 -0
  30. package/lib/esm/translations/nl.json.mjs +13 -0
  31. package/lib/esm/translations/pl.json.mjs +13 -0
  32. package/lib/esm/translations/pt.json.mjs +13 -0
  33. package/lib/esm/translations/sv.json.mjs +13 -0
  34. package/lib/esm/translations/tr.json.mjs +13 -0
  35. package/lib/esm/translations/vi.json.mjs +13 -0
  36. package/lib/esm/translations/zh.json.mjs +13 -0
  37. package/lib/types/BulkTextarea.types.d.ts +1 -1
  38. package/lib/types/components/InputField/InputField.d.ts +1 -0
  39. package/lib/types/components/InputField/InputField.types.d.ts +4 -3
  40. package/package.json +16 -11
  41. package/vite.config.ts +25 -0
package/CHANGELOG.md CHANGED
@@ -2,11 +2,23 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [1.1.0] - 2025-02-28
5
+ ## [1.1.0] - 2025-03-14
6
6
 
7
- ### Changed
7
+ ### Added
8
+
9
+ - Build for ESM.
10
+
11
+ ## [1.0.6] - 2025-03-06
12
+
13
+ ### Fixed
14
+
15
+ - Tooltip issues when using bulk-textarea without common error message.
16
+
17
+ ## [1.0.5] - 2025-03-03
18
+
19
+ ### Added
8
20
 
9
- - Version minor update due to children dependencies update (`@semcore/utils` [4.45.1 ~> 4.47.1], `@semcore/flex-box` [5.40.1 ~> 5.41.0], `@semcore/button` [5.41.2 ~> 5.42.0], `@semcore/icon` [4.57.1 ~> 4.58.0], `@semcore/popper` [5.45.3 ~> 5.46.0], `@semcore/tooltip` [6.47.3 ~> 6.48.0], `@semcore/core` [2.38.1 ~> 2.39.0]).
21
+ - White background for both light and dark themes.
10
22
 
11
23
  ## [1.0.4] - 2025-02-07
12
24
 
@@ -138,7 +138,7 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
138
138
  showErrors = _this$asProps.showErrors;
139
139
  var _this$state = this.state,
140
140
  errorIndex = _this$state.errorIndex,
141
- lastError = _this$state.lastError,
141
+ prevError = _this$state.prevError,
142
142
  linesCount = _this$state.linesCount,
143
143
  highlightErrorIndex = _this$state.highlightErrorIndex;
144
144
  return (0, _defineProperty2["default"])({
@@ -151,7 +151,7 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
151
151
  maxRows: maxRows,
152
152
  maxLines: maxLines,
153
153
  placeholder: placeholder,
154
- lastError: lastError,
154
+ prevError: prevError,
155
155
  pasteProps: pasteProps,
156
156
  linesCount: linesCount,
157
157
  lineProcessing: lineProcessing,
@@ -178,10 +178,10 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
178
178
  lineValidation: lineValidation,
179
179
  errors: errors,
180
180
  onErrorsChange: function onErrorsChange(newErrors) {
181
- var lastError = newErrors.length === 0 ? errors[0] : undefined;
181
+ var prevError = newErrors.length === 0 ? errors[0] : undefined;
182
182
  _this2.handlers.errors(newErrors);
183
183
  _this2.setState({
184
- lastError: lastError
184
+ prevError: prevError
185
185
  });
186
186
  setTimeout(function () {
187
187
  var _this2$asProps = _this2.asProps,
@@ -195,7 +195,7 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
195
195
  _this2.handlers.showErrors(false);
196
196
  setTimeout(function () {
197
197
  _this2.setState({
198
- lastError: undefined
198
+ prevError: undefined
199
199
  });
200
200
  }, 150);
201
201
  }
@@ -204,9 +204,11 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
204
204
 
205
205
  highlightErrorIndex: highlightErrorIndex,
206
206
  errorIndex: errorIndex,
207
- onErrorIndexChange: function onErrorIndexChange(errorIndex) {
207
+ onErrorIndexChange: function onErrorIndexChange(newErrorIndex) {
208
+ var prevError = errors[errorIndex];
208
209
  _this2.setState({
209
- errorIndex: errorIndex,
210
+ errorIndex: newErrorIndex,
211
+ prevError: prevError,
210
212
  highlightErrorIndex: false
211
213
  });
212
214
  },
@@ -1 +1 @@
1
- {"version":3,"file":"BulkTextarea.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_InputField","_Counter","_ClearAll","_ErrorsNavigation","_intergalacticDynamicLocales","_i18nEnhance","_focusSourceEnhance","_uniqueID","BulkTextareaRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","linesCount","isEmptyText","errorIndex","highlightErrorIndex","isEmpty","setState","handlers","showErrors","errors","state","e","_this$inputFieldRef$c","value","textarea","inputFieldRef","current","querySelector","HTMLDivElement","focus","amount","_this$asProps$errors","asProps","itemsIndex","newIndex","handleChangeErrorIndex","setTimeout","_createClass2","key","uncontrolledProps","get","uid","getInputFieldProps","_this2","_this$asProps","size","minRows","maxRows","lineValidation","placeholder","validateOn","onChange","linesDelimiters","maxLines","disabled","readonly","pasteProps","lineProcessing","_this$asProps$errors2","_this$state","lastError","onChangeLinesCount","handleChangeLinesCount","onChangeLineIndex","includes","onBlur","event","focusSourceRef","FocusEvent","relatedTarget","clearAllButtonRef","_this2$nextButtonRef$","nextButtonRef","onErrorsChange","newErrors","undefined","_this2$asProps","newState","onErrorIndexChange","ref","counterId","getCounterProps","_this$asProps2","getI18nText","_this$state2","counterTheme","id","counterRef","theme","getClearAllProps","_this$asProps3","onClick","handleClickClearAll","isHidden","getErrorsNavigationProps","_this$asProps4","_this$asProps4$errors","onPrevError","onNextError","errorsCount","map","Boolean","prevButtonRef","render","_ref","createElement","Box","assignProps","Component","defaultValue","defaultState","locale","defaultErrors","defaultShowErrors","i18nEnhance","localizedMessages","focusSourceEnhance","uniqueIdEnhance","BulkTextarea","createComponent","InputField","Counter","ClearAll","ErrorsNavigation","_default","exports"],"sources":["../../src/BulkTextarea.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\n\nimport { BulkTextareaType, BulkTextareaProps } from './BulkTextarea.types';\n\nimport { InputField, InputFieldProps } from './components/InputField/InputField';\nimport { Counter } from './components/Counter';\nimport { ClearAll } from './components/ClearAll';\nimport { ErrorsNavigation } from './components/ErrorsNavigation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport focusSourceEnhance from '@semcore/utils/lib/enhances/focusSourceEnhance';\nimport uniqueIdEnhance from '@semcore/utils/lib/uniqueID';\n\ntype State = {\n linesCount: number;\n isEmptyText: boolean;\n errorIndex: number;\n highlightErrorIndex: boolean;\n lastError?: InputFieldProps['errors'][number];\n};\n\nclass BulkTextareaRoot extends Component<\n BulkTextareaProps,\n {},\n State,\n typeof BulkTextareaRoot.enhance\n> {\n static displayName = 'BulkTextarea';\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n defaultState: 'normal',\n minRows: 2,\n maxRows: 10,\n maxLines: 100,\n validateOn: 'blur',\n locale: 'en',\n defaultErrors: [],\n defaultShowErrors: false,\n };\n\n static enhance = [\n i18nEnhance(localizedMessages),\n focusSourceEnhance(),\n uniqueIdEnhance(),\n ] as const;\n\n inputFieldRef = React.createRef<HTMLDivElement>();\n clearAllButtonRef = React.createRef<HTMLButtonElement>();\n nextButtonRef = React.createRef<HTMLButtonElement>();\n prevButtonRef = React.createRef<HTMLButtonElement>();\n counterRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n linesCount: 0,\n isEmptyText: true,\n errorIndex: -1,\n highlightErrorIndex: false,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n state: null,\n showErrors: null,\n errors: null,\n };\n }\n\n get counterId() {\n return `${this.asProps.uid}_counter`;\n }\n\n getInputFieldProps() {\n const {\n value,\n size,\n minRows,\n maxRows,\n lineValidation,\n placeholder,\n validateOn,\n onChange,\n linesDelimiters,\n maxLines,\n disabled,\n readonly,\n pasteProps,\n lineProcessing,\n errors = [],\n showErrors,\n } = this.asProps;\n const { errorIndex, lastError, linesCount, highlightErrorIndex } = this.state;\n\n return {\n value,\n size,\n state: showErrors && errors?.length > 0 ? 'invalid' : 'normal',\n disabled,\n readonly,\n minRows,\n maxRows,\n maxLines,\n placeholder,\n lastError,\n pasteProps,\n linesCount,\n lineProcessing,\n onChangeLinesCount: this.handleChangeLinesCount,\n onChangeLineIndex: () => {\n if (validateOn?.includes('blurLine')) {\n this.handlers.showErrors(true);\n }\n },\n onBlur: (value: string, event: Event) => {\n if (\n validateOn?.includes('blur') &&\n (this.asProps.focusSourceRef.current === 'keyboard' ||\n (event instanceof FocusEvent && event.relatedTarget !== this.clearAllButtonRef.current))\n ) {\n this.handlers.showErrors(true);\n }\n\n if (\n this.asProps.showErrors === false &&\n (validateOn?.includes('blur') || validateOn?.includes('blurLine'))\n ) {\n setTimeout(() => {\n this.nextButtonRef.current?.focus();\n }, 250);\n }\n\n onChange?.(value, event);\n },\n showErrors,\n validateOn,\n lineValidation: lineValidation,\n errors,\n onErrorsChange: (newErrors: InputFieldProps['errors']) => {\n const lastError = newErrors.length === 0 ? errors[0] : undefined;\n this.handlers.errors(newErrors);\n this.setState({ lastError });\n setTimeout(() => {\n const { showErrors, errors } = this.asProps;\n if (showErrors) {\n const newState = newErrors.length === 0 ? 'normal' : 'invalid';\n this.handlers.state(newState);\n }\n if (errors?.length === 0) {\n this.handlers.showErrors(false);\n\n setTimeout(() => {\n this.setState({ lastError: undefined });\n }, 150);\n }\n }, 10); // this timeout to be sure that code will be after state change\n },\n highlightErrorIndex,\n errorIndex,\n onErrorIndexChange: (errorIndex: number) => {\n this.setState({ errorIndex, highlightErrorIndex: false });\n },\n linesDelimiters,\n ref: this.inputFieldRef,\n ['aria-describedby']: this.counterId,\n };\n }\n\n getCounterProps() {\n const { maxLines, getI18nText, size } = this.asProps;\n const { linesCount, isEmptyText } = this.state;\n\n let counterTheme = '';\n\n if (linesCount === maxLines) {\n counterTheme = 'warning';\n } else if (linesCount > maxLines!) {\n counterTheme = 'danger';\n }\n\n return {\n id: this.counterId,\n ref: this.counterRef,\n getI18nText,\n theme: counterTheme,\n linesCount: isEmptyText ? 0 : linesCount,\n maxLines,\n size,\n };\n }\n\n getClearAllProps() {\n const { size, getI18nText, disabled, readonly } = this.asProps;\n\n return {\n onClick: this.handleClickClearAll,\n isHidden: this.state.isEmptyText,\n size,\n getI18nText,\n ref: this.clearAllButtonRef,\n disabled: disabled || readonly,\n };\n }\n\n getErrorsNavigationProps() {\n const { size, getI18nText, disabled, readonly, errors = [], showErrors } = this.asProps;\n const { errorIndex } = this.state;\n return {\n size,\n getI18nText,\n errorIndex: errorIndex,\n onPrevError: this.handleChangeErrorIndex(-1),\n onNextError: this.handleChangeErrorIndex(1),\n errorsCount: errors.map(Boolean).length,\n showErrors,\n disabled: disabled || readonly || false,\n nextButtonRef: this.nextButtonRef,\n prevButtonRef: this.prevButtonRef,\n };\n }\n\n handleChangeLinesCount = (linesCount: number) => {\n const isEmpty = !linesCount;\n this.setState({ linesCount, isEmptyText: isEmpty });\n\n if (isEmpty) {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.handlers.state('normal');\n }\n };\n\n handleClickClearAll = (e: Event) => {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.setState({ errorIndex: -1 });\n this.handlers.value('', e);\n this.handlers.state('normal');\n\n const textarea = this.inputFieldRef.current?.querySelector('[role=\"textbox\"]');\n textarea instanceof HTMLDivElement && textarea.focus();\n };\n\n handleChangeErrorIndex = (amount: number) => () => {\n const { errors = [] } = this.asProps;\n const { errorIndex } = this.state;\n const itemsIndex = errors.length - 1;\n let newIndex = errorIndex + amount;\n\n if (newIndex < 0) {\n newIndex = amount + itemsIndex + 1;\n } else if (newIndex > itemsIndex) {\n newIndex = newIndex - itemsIndex - 1;\n }\n\n if (!errors[newIndex]) {\n this.handleChangeErrorIndex(amount < 0 ? amount - 1 : amount + 1)();\n } else {\n this.handlers.showErrors(false);\n this.setState({ errorIndex: -1 });\n\n setTimeout(() => {\n this.handlers.showErrors(true);\n this.setState({ errorIndex: newIndex, highlightErrorIndex: true });\n });\n }\n };\n\n render() {\n return <Root render={Box} __excludeProps={['onBlur', 'value', 'placeholder']} />;\n }\n}\n\nconst BulkTextarea = createComponent(BulkTextareaRoot, {\n InputField,\n Counter,\n ClearAll,\n ErrorsNavigation,\n}) as BulkTextareaType;\n\nexport default BulkTextarea;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BulkTextarea.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_InputField","_Counter","_ClearAll","_ErrorsNavigation","_intergalacticDynamicLocales","_i18nEnhance","_focusSourceEnhance","_uniqueID","BulkTextareaRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","linesCount","isEmptyText","errorIndex","highlightErrorIndex","isEmpty","setState","handlers","showErrors","errors","state","e","_this$inputFieldRef$c","value","textarea","inputFieldRef","current","querySelector","HTMLDivElement","focus","amount","_this$asProps$errors","asProps","itemsIndex","newIndex","handleChangeErrorIndex","setTimeout","_createClass2","key","uncontrolledProps","get","uid","getInputFieldProps","_this2","_this$asProps","size","minRows","maxRows","lineValidation","placeholder","validateOn","onChange","linesDelimiters","maxLines","disabled","readonly","pasteProps","lineProcessing","_this$asProps$errors2","_this$state","prevError","onChangeLinesCount","handleChangeLinesCount","onChangeLineIndex","includes","onBlur","event","focusSourceRef","FocusEvent","relatedTarget","clearAllButtonRef","_this2$nextButtonRef$","nextButtonRef","onErrorsChange","newErrors","undefined","_this2$asProps","newState","onErrorIndexChange","newErrorIndex","ref","counterId","getCounterProps","_this$asProps2","getI18nText","_this$state2","counterTheme","id","counterRef","theme","getClearAllProps","_this$asProps3","onClick","handleClickClearAll","isHidden","getErrorsNavigationProps","_this$asProps4","_this$asProps4$errors","onPrevError","onNextError","errorsCount","map","Boolean","prevButtonRef","render","_ref","createElement","Box","assignProps","Component","defaultValue","defaultState","locale","defaultErrors","defaultShowErrors","i18nEnhance","localizedMessages","focusSourceEnhance","uniqueIdEnhance","BulkTextarea","createComponent","InputField","Counter","ClearAll","ErrorsNavigation","_default","exports"],"sources":["../../src/BulkTextarea.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\n\nimport { BulkTextareaType, BulkTextareaProps } from './BulkTextarea.types';\n\nimport { InputField, InputFieldProps } from './components/InputField/InputField';\nimport { Counter } from './components/Counter';\nimport { ClearAll } from './components/ClearAll';\nimport { ErrorsNavigation } from './components/ErrorsNavigation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport focusSourceEnhance from '@semcore/utils/lib/enhances/focusSourceEnhance';\nimport uniqueIdEnhance from '@semcore/utils/lib/uniqueID';\n\ntype State = {\n linesCount: number;\n isEmptyText: boolean;\n errorIndex: number;\n highlightErrorIndex: boolean;\n prevError?: InputFieldProps['errors'][number];\n};\n\nclass BulkTextareaRoot extends Component<\n BulkTextareaProps,\n {},\n State,\n typeof BulkTextareaRoot.enhance\n> {\n static displayName = 'BulkTextarea';\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n defaultState: 'normal',\n minRows: 2,\n maxRows: 10,\n maxLines: 100,\n validateOn: 'blur',\n locale: 'en',\n defaultErrors: [],\n defaultShowErrors: false,\n };\n\n static enhance = [\n i18nEnhance(localizedMessages),\n focusSourceEnhance(),\n uniqueIdEnhance(),\n ] as const;\n\n inputFieldRef = React.createRef<HTMLDivElement>();\n clearAllButtonRef = React.createRef<HTMLButtonElement>();\n nextButtonRef = React.createRef<HTMLButtonElement>();\n prevButtonRef = React.createRef<HTMLButtonElement>();\n counterRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n linesCount: 0,\n isEmptyText: true,\n errorIndex: -1,\n highlightErrorIndex: false,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n state: null,\n showErrors: null,\n errors: null,\n };\n }\n\n get counterId() {\n return `${this.asProps.uid}_counter`;\n }\n\n getInputFieldProps() {\n const {\n value,\n size,\n minRows,\n maxRows,\n lineValidation,\n placeholder,\n validateOn,\n onChange,\n linesDelimiters,\n maxLines,\n disabled,\n readonly,\n pasteProps,\n lineProcessing,\n errors = [],\n showErrors,\n } = this.asProps;\n const { errorIndex, prevError, linesCount, highlightErrorIndex } = this.state;\n\n return {\n value,\n size,\n state: showErrors && errors?.length > 0 ? 'invalid' : 'normal',\n disabled,\n readonly,\n minRows,\n maxRows,\n maxLines,\n placeholder,\n prevError,\n pasteProps,\n linesCount,\n lineProcessing,\n onChangeLinesCount: this.handleChangeLinesCount,\n onChangeLineIndex: () => {\n if (validateOn?.includes('blurLine')) {\n this.handlers.showErrors(true);\n }\n },\n onBlur: (value: string, event: Event) => {\n if (\n validateOn?.includes('blur') &&\n (this.asProps.focusSourceRef.current === 'keyboard' ||\n (event instanceof FocusEvent && event.relatedTarget !== this.clearAllButtonRef.current))\n ) {\n this.handlers.showErrors(true);\n }\n\n if (\n this.asProps.showErrors === false &&\n (validateOn?.includes('blur') || validateOn?.includes('blurLine'))\n ) {\n setTimeout(() => {\n this.nextButtonRef.current?.focus();\n }, 250);\n }\n\n onChange?.(value, event);\n },\n showErrors,\n validateOn,\n lineValidation: lineValidation,\n errors,\n onErrorsChange: (newErrors: InputFieldProps['errors']) => {\n const prevError = newErrors.length === 0 ? errors[0] : undefined;\n this.handlers.errors(newErrors);\n this.setState({ prevError });\n setTimeout(() => {\n const { showErrors, errors } = this.asProps;\n if (showErrors) {\n const newState = newErrors.length === 0 ? 'normal' : 'invalid';\n this.handlers.state(newState);\n }\n if (errors?.length === 0) {\n this.handlers.showErrors(false);\n\n setTimeout(() => {\n this.setState({ prevError: undefined });\n }, 150);\n }\n }, 10); // this timeout to be sure that code will be after state change\n },\n highlightErrorIndex,\n errorIndex,\n onErrorIndexChange: (newErrorIndex: number) => {\n const prevError = errors[errorIndex];\n\n this.setState({ errorIndex: newErrorIndex, prevError, highlightErrorIndex: false });\n },\n linesDelimiters,\n ref: this.inputFieldRef,\n ['aria-describedby']: this.counterId,\n };\n }\n\n getCounterProps() {\n const { maxLines, getI18nText, size } = this.asProps;\n const { linesCount, isEmptyText } = this.state;\n\n let counterTheme = '';\n\n if (linesCount === maxLines) {\n counterTheme = 'warning';\n } else if (linesCount > maxLines!) {\n counterTheme = 'danger';\n }\n\n return {\n id: this.counterId,\n ref: this.counterRef,\n getI18nText,\n theme: counterTheme,\n linesCount: isEmptyText ? 0 : linesCount,\n maxLines,\n size,\n };\n }\n\n getClearAllProps() {\n const { size, getI18nText, disabled, readonly } = this.asProps;\n\n return {\n onClick: this.handleClickClearAll,\n isHidden: this.state.isEmptyText,\n size,\n getI18nText,\n ref: this.clearAllButtonRef,\n disabled: disabled || readonly,\n };\n }\n\n getErrorsNavigationProps() {\n const { size, getI18nText, disabled, readonly, errors = [], showErrors } = this.asProps;\n const { errorIndex } = this.state;\n return {\n size,\n getI18nText,\n errorIndex: errorIndex,\n onPrevError: this.handleChangeErrorIndex(-1),\n onNextError: this.handleChangeErrorIndex(1),\n errorsCount: errors.map(Boolean).length,\n showErrors,\n disabled: disabled || readonly || false,\n nextButtonRef: this.nextButtonRef,\n prevButtonRef: this.prevButtonRef,\n };\n }\n\n handleChangeLinesCount = (linesCount: number) => {\n const isEmpty = !linesCount;\n this.setState({ linesCount, isEmptyText: isEmpty });\n\n if (isEmpty) {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.handlers.state('normal');\n }\n };\n\n handleClickClearAll = (e: Event) => {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.setState({ errorIndex: -1 });\n this.handlers.value('', e);\n this.handlers.state('normal');\n\n const textarea = this.inputFieldRef.current?.querySelector('[role=\"textbox\"]');\n textarea instanceof HTMLDivElement && textarea.focus();\n };\n\n handleChangeErrorIndex = (amount: number) => () => {\n const { errors = [] } = this.asProps;\n const { errorIndex } = this.state;\n const itemsIndex = errors.length - 1;\n let newIndex = errorIndex + amount;\n\n if (newIndex < 0) {\n newIndex = amount + itemsIndex + 1;\n } else if (newIndex > itemsIndex) {\n newIndex = newIndex - itemsIndex - 1;\n }\n\n if (!errors[newIndex]) {\n this.handleChangeErrorIndex(amount < 0 ? amount - 1 : amount + 1)();\n } else {\n this.handlers.showErrors(false);\n this.setState({ errorIndex: -1 });\n\n setTimeout(() => {\n this.handlers.showErrors(true);\n this.setState({ errorIndex: newIndex, highlightErrorIndex: true });\n });\n }\n };\n\n render() {\n return <Root render={Box} __excludeProps={['onBlur', 'value', 'placeholder']} />;\n }\n}\n\nconst BulkTextarea = createComponent(BulkTextareaRoot, {\n InputField,\n Counter,\n ClearAll,\n ErrorsNavigation,\n}) as BulkTextareaType;\n\nexport default BulkTextarea;\n"],"mappings":";;;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AADA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AAIA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,4BAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,mBAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,SAAA,GAAAT,sBAAA,CAAAF,OAAA;AAA0D,IAUpDY,gBAAgB,0BAAAC,UAAA;EAAA,IAAAC,UAAA,aAAAF,gBAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,OAAAC,aAAA,aAAAJ,gBAAA;EAAA,SAAAA,iBAAA;IAAA,IAAAK,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,gBAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAA,IAAAM,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,iCA0BJa,iBAAK,CAACC,SAAS,EAAkB;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,qCAC7Ba,iBAAK,CAACC,SAAS,EAAqB;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,iCACxCa,iBAAK,CAACC,SAAS,EAAqB;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,iCACpCa,iBAAK,CAACC,SAAS,EAAqB;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,8BACvCa,iBAAK,CAACC,SAAS,EAAkB;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,YAE/B;MACbe,UAAU,EAAE,CAAC;MACbC,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE,CAAC,CAAC;MACdC,mBAAmB,EAAE;IACvB,CAAC;IAAA,IAAAP,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,6BAqKwB,UAACe,UAAkB,EAAK;MAC/C,IAAMI,OAAO,GAAG,CAACJ,UAAU;MAC3Bf,KAAA,CAAKoB,QAAQ,CAAC;QAAEL,UAAU,EAAVA,UAAU;QAAEC,WAAW,EAAEG;MAAQ,CAAC,CAAC;MAEnD,IAAIA,OAAO,EAAE;QACXnB,KAAA,CAAKqB,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC;QAC/BtB,KAAA,CAAKqB,QAAQ,CAACE,MAAM,CAAC,EAAE,CAAC;QACxBvB,KAAA,CAAKqB,QAAQ,CAACG,KAAK,CAAC,QAAQ,CAAC;MAC/B;IACF,CAAC;IAAA,IAAAb,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,0BAEqB,UAACyB,CAAQ,EAAK;MAAA,IAAAC,qBAAA;MAClC1B,KAAA,CAAKqB,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC;MAC/BtB,KAAA,CAAKqB,QAAQ,CAACE,MAAM,CAAC,EAAE,CAAC;MACxBvB,KAAA,CAAKoB,QAAQ,CAAC;QAAEH,UAAU,EAAE,CAAC;MAAE,CAAC,CAAC;MACjCjB,KAAA,CAAKqB,QAAQ,CAACM,KAAK,CAAC,EAAE,EAAEF,CAAC,CAAC;MAC1BzB,KAAA,CAAKqB,QAAQ,CAACG,KAAK,CAAC,QAAQ,CAAC;MAE7B,IAAMI,QAAQ,IAAAF,qBAAA,GAAG1B,KAAA,CAAK6B,aAAa,CAACC,OAAO,cAAAJ,qBAAA,uBAA1BA,qBAAA,CAA4BK,aAAa,CAAC,kBAAkB,CAAC;MAC9EH,QAAQ,YAAYI,cAAc,IAAIJ,QAAQ,CAACK,KAAK,EAAE;IACxD,CAAC;IAAA,IAAAtB,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,6BAEwB,UAACkC,MAAc;MAAA,OAAK,YAAM;QACjD,IAAAC,oBAAA,GAAwBnC,KAAA,CAAKoC,OAAO,CAA5Bb,MAAM;UAANA,MAAM,GAAAY,oBAAA,cAAG,EAAE,GAAAA,oBAAA;QACnB,IAAQlB,UAAU,GAAKjB,KAAA,CAAKwB,KAAK,CAAzBP,UAAU;QAClB,IAAMoB,UAAU,GAAGd,MAAM,CAACnB,MAAM,GAAG,CAAC;QACpC,IAAIkC,QAAQ,GAAGrB,UAAU,GAAGiB,MAAM;QAElC,IAAII,QAAQ,GAAG,CAAC,EAAE;UAChBA,QAAQ,GAAGJ,MAAM,GAAGG,UAAU,GAAG,CAAC;QACpC,CAAC,MAAM,IAAIC,QAAQ,GAAGD,UAAU,EAAE;UAChCC,QAAQ,GAAGA,QAAQ,GAAGD,UAAU,GAAG,CAAC;QACtC;QAEA,IAAI,CAACd,MAAM,CAACe,QAAQ,CAAC,EAAE;UACrBtC,KAAA,CAAKuC,sBAAsB,CAACL,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CAAC,CAAC,EAAE;QACrE,CAAC,MAAM;UACLlC,KAAA,CAAKqB,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC;UAC/BtB,KAAA,CAAKoB,QAAQ,CAAC;YAAEH,UAAU,EAAE,CAAC;UAAE,CAAC,CAAC;UAEjCuB,UAAU,CAAC,YAAM;YACfxC,KAAA,CAAKqB,QAAQ,CAACC,UAAU,CAAC,IAAI,CAAC;YAC9BtB,KAAA,CAAKoB,QAAQ,CAAC;cAAEH,UAAU,EAAEqB,QAAQ;cAAEpB,mBAAmB,EAAE;YAAK,CAAC,CAAC;UACpE,CAAC,CAAC;QACJ;MACF,CAAC;IAAA;IAAA,OAAAlB,KAAA;EAAA;EAAA,IAAAyC,aAAA,aAAA9C,gBAAA;IAAA+C,GAAA;IAAAf,KAAA,EAhND,SAAAgB,kBAAA,EAAoB;MAClB,OAAO;QACLhB,KAAK,EAAE,IAAI;QACXH,KAAK,EAAE,IAAI;QACXF,UAAU,EAAE,IAAI;QAChBC,MAAM,EAAE;MACV,CAAC;IACH;EAAC;IAAAmB,GAAA;IAAAE,GAAA,EAED,SAAAA,IAAA,EAAgB;MACd,UAAAlC,MAAA,CAAU,IAAI,CAAC0B,OAAO,CAACS,GAAG;IAC5B;EAAC;IAAAH,GAAA;IAAAf,KAAA,EAED,SAAAmB,mBAAA,EAAqB;MAAA,IAAAC,MAAA;MACnB,IAAAC,aAAA,GAiBI,IAAI,CAACZ,OAAO;QAhBdT,KAAK,GAAAqB,aAAA,CAALrB,KAAK;QACLsB,IAAI,GAAAD,aAAA,CAAJC,IAAI;QACJC,OAAO,GAAAF,aAAA,CAAPE,OAAO;QACPC,OAAO,GAAAH,aAAA,CAAPG,OAAO;QACPC,cAAc,GAAAJ,aAAA,CAAdI,cAAc;QACdC,WAAW,GAAAL,aAAA,CAAXK,WAAW;QACXC,UAAU,GAAAN,aAAA,CAAVM,UAAU;QACVC,QAAQ,GAAAP,aAAA,CAARO,QAAQ;QACRC,eAAe,GAAAR,aAAA,CAAfQ,eAAe;QACfC,QAAQ,GAAAT,aAAA,CAARS,QAAQ;QACRC,QAAQ,GAAAV,aAAA,CAARU,QAAQ;QACRC,QAAQ,GAAAX,aAAA,CAARW,QAAQ;QACRC,UAAU,GAAAZ,aAAA,CAAVY,UAAU;QACVC,cAAc,GAAAb,aAAA,CAAda,cAAc;QAAAC,qBAAA,GAAAd,aAAA,CACdzB,MAAM;QAANA,MAAM,GAAAuC,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QACXxC,UAAU,GAAA0B,aAAA,CAAV1B,UAAU;MAEZ,IAAAyC,WAAA,GAAmE,IAAI,CAACvC,KAAK;QAArEP,UAAU,GAAA8C,WAAA,CAAV9C,UAAU;QAAE+C,SAAS,GAAAD,WAAA,CAATC,SAAS;QAAEjD,UAAU,GAAAgD,WAAA,CAAVhD,UAAU;QAAEG,mBAAmB,GAAA6C,WAAA,CAAnB7C,mBAAmB;MAE9D,WAAAP,gBAAA;QACEgB,KAAK,EAALA,KAAK;QACLsB,IAAI,EAAJA,IAAI;QACJzB,KAAK,EAAEF,UAAU,IAAI,CAAAC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEnB,MAAM,IAAG,CAAC,GAAG,SAAS,GAAG,QAAQ;QAC9DsD,QAAQ,EAARA,QAAQ;QACRC,QAAQ,EAARA,QAAQ;QACRT,OAAO,EAAPA,OAAO;QACPC,OAAO,EAAPA,OAAO;QACPM,QAAQ,EAARA,QAAQ;QACRJ,WAAW,EAAXA,WAAW;QACXW,SAAS,EAATA,SAAS;QACTJ,UAAU,EAAVA,UAAU;QACV7C,UAAU,EAAVA,UAAU;QACV8C,cAAc,EAAdA,cAAc;QACdI,kBAAkB,EAAE,IAAI,CAACC,sBAAsB;QAC/CC,iBAAiB,EAAE,SAAAA,kBAAA,EAAM;UACvB,IAAIb,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEc,QAAQ,CAAC,UAAU,CAAC,EAAE;YACpCrB,MAAI,CAAC1B,QAAQ,CAACC,UAAU,CAAC,IAAI,CAAC;UAChC;QACF,CAAC;QACD+C,MAAM,EAAE,SAAAA,OAAC1C,KAAa,EAAE2C,KAAY,EAAK;UACvC,IACEhB,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEc,QAAQ,CAAC,MAAM,CAAC,KAC3BrB,MAAI,CAACX,OAAO,CAACmC,cAAc,CAACzC,OAAO,KAAK,UAAU,IAChDwC,KAAK,YAAYE,UAAU,IAAIF,KAAK,CAACG,aAAa,KAAK1B,MAAI,CAAC2B,iBAAiB,CAAC5C,OAAQ,CAAC,EAC1F;YACAiB,MAAI,CAAC1B,QAAQ,CAACC,UAAU,CAAC,IAAI,CAAC;UAChC;UAEA,IACEyB,MAAI,CAACX,OAAO,CAACd,UAAU,KAAK,KAAK,KAChCgC,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEc,QAAQ,CAAC,MAAM,CAAC,IAAId,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEc,QAAQ,CAAC,UAAU,CAAC,CAAC,EAClE;YACA5B,UAAU,CAAC,YAAM;cAAA,IAAAmC,qBAAA;cACf,CAAAA,qBAAA,GAAA5B,MAAI,CAAC6B,aAAa,CAAC9C,OAAO,cAAA6C,qBAAA,uBAA1BA,qBAAA,CAA4B1C,KAAK,EAAE;YACrC,CAAC,EAAE,GAAG,CAAC;UACT;UAEAsB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG5B,KAAK,EAAE2C,KAAK,CAAC;QAC1B,CAAC;QACDhD,UAAU,EAAVA,UAAU;QACVgC,UAAU,EAAVA,UAAU;QACVF,cAAc,EAAEA,cAAc;QAC9B7B,MAAM,EAANA,MAAM;QACNsD,cAAc,EAAE,SAAAA,eAACC,SAAoC,EAAK;UACxD,IAAMd,SAAS,GAAGc,SAAS,CAAC1E,MAAM,KAAK,CAAC,GAAGmB,MAAM,CAAC,CAAC,CAAC,GAAGwD,SAAS;UAChEhC,MAAI,CAAC1B,QAAQ,CAACE,MAAM,CAACuD,SAAS,CAAC;UAC/B/B,MAAI,CAAC3B,QAAQ,CAAC;YAAE4C,SAAS,EAATA;UAAU,CAAC,CAAC;UAC5BxB,UAAU,CAAC,YAAM;YACf,IAAAwC,cAAA,GAA+BjC,MAAI,CAACX,OAAO;cAAnCd,UAAU,GAAA0D,cAAA,CAAV1D,UAAU;cAAEC,MAAM,GAAAyD,cAAA,CAANzD,MAAM;YAC1B,IAAID,UAAU,EAAE;cACd,IAAM2D,QAAQ,GAAGH,SAAS,CAAC1E,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,SAAS;cAC9D2C,MAAI,CAAC1B,QAAQ,CAACG,KAAK,CAACyD,QAAQ,CAAC;YAC/B;YACA,IAAI,CAAA1D,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEnB,MAAM,MAAK,CAAC,EAAE;cACxB2C,MAAI,CAAC1B,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC;cAE/BkB,UAAU,CAAC,YAAM;gBACfO,MAAI,CAAC3B,QAAQ,CAAC;kBAAE4C,SAAS,EAAEe;gBAAU,CAAC,CAAC;cACzC,CAAC,EAAE,GAAG,CAAC;YACT;UACF,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACV,CAAC;;QACD7D,mBAAmB,EAAnBA,mBAAmB;QACnBD,UAAU,EAAVA,UAAU;QACViE,kBAAkB,EAAE,SAAAA,mBAACC,aAAqB,EAAK;UAC7C,IAAMnB,SAAS,GAAGzC,MAAM,CAACN,UAAU,CAAC;UAEpC8B,MAAI,CAAC3B,QAAQ,CAAC;YAAEH,UAAU,EAAEkE,aAAa;YAAEnB,SAAS,EAATA,SAAS;YAAE9C,mBAAmB,EAAE;UAAM,CAAC,CAAC;QACrF,CAAC;QACDsC,eAAe,EAAfA,eAAe;QACf4B,GAAG,EAAE,IAAI,CAACvD;MAAa,GACtB,kBAAkB,EAAG,IAAI,CAACwD,SAAS;IAExC;EAAC;IAAA3C,GAAA;IAAAf,KAAA,EAED,SAAA2D,gBAAA,EAAkB;MAChB,IAAAC,cAAA,GAAwC,IAAI,CAACnD,OAAO;QAA5CqB,QAAQ,GAAA8B,cAAA,CAAR9B,QAAQ;QAAE+B,WAAW,GAAAD,cAAA,CAAXC,WAAW;QAAEvC,IAAI,GAAAsC,cAAA,CAAJtC,IAAI;MACnC,IAAAwC,YAAA,GAAoC,IAAI,CAACjE,KAAK;QAAtCT,UAAU,GAAA0E,YAAA,CAAV1E,UAAU;QAAEC,WAAW,GAAAyE,YAAA,CAAXzE,WAAW;MAE/B,IAAI0E,YAAY,GAAG,EAAE;MAErB,IAAI3E,UAAU,KAAK0C,QAAQ,EAAE;QAC3BiC,YAAY,GAAG,SAAS;MAC1B,CAAC,MAAM,IAAI3E,UAAU,GAAG0C,QAAS,EAAE;QACjCiC,YAAY,GAAG,QAAQ;MACzB;MAEA,OAAO;QACLC,EAAE,EAAE,IAAI,CAACN,SAAS;QAClBD,GAAG,EAAE,IAAI,CAACQ,UAAU;QACpBJ,WAAW,EAAXA,WAAW;QACXK,KAAK,EAAEH,YAAY;QACnB3E,UAAU,EAAEC,WAAW,GAAG,CAAC,GAAGD,UAAU;QACxC0C,QAAQ,EAARA,QAAQ;QACRR,IAAI,EAAJA;MACF,CAAC;IACH;EAAC;IAAAP,GAAA;IAAAf,KAAA,EAED,SAAAmE,iBAAA,EAAmB;MACjB,IAAAC,cAAA,GAAkD,IAAI,CAAC3D,OAAO;QAAtDa,IAAI,GAAA8C,cAAA,CAAJ9C,IAAI;QAAEuC,WAAW,GAAAO,cAAA,CAAXP,WAAW;QAAE9B,QAAQ,GAAAqC,cAAA,CAARrC,QAAQ;QAAEC,QAAQ,GAAAoC,cAAA,CAARpC,QAAQ;MAE7C,OAAO;QACLqC,OAAO,EAAE,IAAI,CAACC,mBAAmB;QACjCC,QAAQ,EAAE,IAAI,CAAC1E,KAAK,CAACR,WAAW;QAChCiC,IAAI,EAAJA,IAAI;QACJuC,WAAW,EAAXA,WAAW;QACXJ,GAAG,EAAE,IAAI,CAACV,iBAAiB;QAC3BhB,QAAQ,EAAEA,QAAQ,IAAIC;MACxB,CAAC;IACH;EAAC;IAAAjB,GAAA;IAAAf,KAAA,EAED,SAAAwE,yBAAA,EAA2B;MACzB,IAAAC,cAAA,GAA2E,IAAI,CAAChE,OAAO;QAA/Ea,IAAI,GAAAmD,cAAA,CAAJnD,IAAI;QAAEuC,WAAW,GAAAY,cAAA,CAAXZ,WAAW;QAAE9B,QAAQ,GAAA0C,cAAA,CAAR1C,QAAQ;QAAEC,QAAQ,GAAAyC,cAAA,CAARzC,QAAQ;QAAA0C,qBAAA,GAAAD,cAAA,CAAE7E,MAAM;QAANA,MAAM,GAAA8E,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAE/E,UAAU,GAAA8E,cAAA,CAAV9E,UAAU;MACtE,IAAQL,UAAU,GAAK,IAAI,CAACO,KAAK,CAAzBP,UAAU;MAClB,OAAO;QACLgC,IAAI,EAAJA,IAAI;QACJuC,WAAW,EAAXA,WAAW;QACXvE,UAAU,EAAEA,UAAU;QACtBqF,WAAW,EAAE,IAAI,CAAC/D,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC5CgE,WAAW,EAAE,IAAI,CAAChE,sBAAsB,CAAC,CAAC,CAAC;QAC3CiE,WAAW,EAAEjF,MAAM,CAACkF,GAAG,CAACC,OAAO,CAAC,CAACtG,MAAM;QACvCkB,UAAU,EAAVA,UAAU;QACVoC,QAAQ,EAAEA,QAAQ,IAAIC,QAAQ,IAAI,KAAK;QACvCiB,aAAa,EAAE,IAAI,CAACA,aAAa;QACjC+B,aAAa,EAAE,IAAI,CAACA;MACtB,CAAC;IACH;EAAC;IAAAjE,GAAA;IAAAf,KAAA,EAiDD,SAAAiF,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAzE,OAAA;MACP,oBAAOpD,MAAA,YAAA8H,aAAA,CAAcC,YAAG,MAAAlI,KAAA,CAAAmI,WAAA;QAAA,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa;MAAC,GAAAH,IAAA,EAAI;IAClF;EAAC;EAAA,OAAAlH,gBAAA;AAAA,EA3P4BsH,eAAS;AAAA,IAAAtG,gBAAA,aAAlChB,gBAAgB,iBAMC,cAAc;AAAA,IAAAgB,gBAAA,aAN/BhB,gBAAgB,kBAOE;EACpBuH,YAAY,EAAE,EAAE;EAChBjE,IAAI,EAAE,GAAG;EACTkE,YAAY,EAAE,QAAQ;EACtBjE,OAAO,EAAE,CAAC;EACVC,OAAO,EAAE,EAAE;EACXM,QAAQ,EAAE,GAAG;EACbH,UAAU,EAAE,MAAM;EAClB8D,MAAM,EAAE,IAAI;EACZC,aAAa,EAAE,EAAE;EACjBC,iBAAiB,EAAE;AACrB,CAAC;AAAA,IAAA3G,gBAAA,aAlBGhB,gBAAgB,aAoBH,CACf,IAAA4H,uBAAW,EAACC,8CAAiB,CAAC,EAC9B,IAAAC,8BAAkB,GAAE,EACpB,IAAAC,oBAAe,GAAE,CAClB;AAsOH,IAAMC,YAAY,GAAG,IAAAC,gBAAe,EAACjI,gBAAgB,EAAE;EACrDkI,UAAU,EAAVA,sBAAU;EACVC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAARA,kBAAQ;EACRC,gBAAgB,EAAhBA;AACF,CAAC,CAAqB;AAAC,IAAAC,QAAA,GAERN,YAAY;AAAAO,OAAA,cAAAD,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"BulkTextarea.types.js","names":[],"sources":["../../src/BulkTextarea.types.ts"],"sourcesContent":["import { Intergalactic } from '@semcore/utils/lib/core';\nimport { BoxProps } from '@semcore/flex-box';\nimport Button from '@semcore/button';\nimport { InputFieldProps } from './components/InputField/InputField';\nimport { CounterProps } from './components/Counter';\nimport { ErrorsNavigationProps } from './components/ErrorsNavigation';\n\nexport type BulkTextareaProps = {\n value?: InputFieldProps['value'];\n onChange?: InputFieldProps['onBlur'];\n placeholder?: InputFieldProps['placeholder'];\n size?: InputFieldProps['size'];\n state?: InputFieldProps['state'];\n disabled?: InputFieldProps['disabled'];\n readonly?: InputFieldProps['readonly'];\n\n minRows?: InputFieldProps['minRows'];\n maxRows?: InputFieldProps['maxRows'];\n\n validateOn?: InputFieldProps['validateOn'];\n lineValidation?: InputFieldProps['lineValidation'];\n linesDelimiters?: InputFieldProps['linesDelimiters'];\n pasteProps?: InputFieldProps['pasteProps'];\n\n maxLines?: InputFieldProps['maxLines'];\n lineProcessing?: InputFieldProps['lineProcessing'];\n\n errors?: InputFieldProps['errors'];\n showErrors?: boolean;\n\n onErrorsChange?: InputFieldProps['onErrorsChange'];\n onShowErrorsChange?: InputFieldProps['onShowErrorsChange'];\n};\n\nexport type BulkTextareaType = Intergalactic.Component<'div', BoxProps & BulkTextareaProps> & {\n InputField: Intergalactic.Component<\n 'div',\n Pick<InputFieldProps, 'commonErrorMessage' | 'id'> & Partial<BulkTextareaProps>\n >;\n Counter: Intergalactic.Component<'div', Partial<CounterProps>>;\n ClearAll: typeof Button;\n ErrorsNavigation: Intergalactic.Component<'div', Partial<ErrorsNavigationProps>>;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"BulkTextarea.types.js","names":[],"sources":["../../src/BulkTextarea.types.ts"],"sourcesContent":["import { Intergalactic } from '@semcore/utils/lib/core';\nimport { BoxProps } from '@semcore/flex-box';\nimport Button from '@semcore/button';\nimport { InputFieldProps } from './components/InputField/InputField';\nimport { CounterProps } from './components/Counter';\nimport { ErrorsNavigationProps } from './components/ErrorsNavigation';\n\nexport type BulkTextareaProps = {\n value?: InputFieldProps['value'];\n onChange?: InputFieldProps['onBlur'];\n placeholder?: InputFieldProps['placeholder'];\n size?: InputFieldProps['size'];\n state?: InputFieldProps['state'];\n disabled?: InputFieldProps['disabled'];\n readonly?: InputFieldProps['readonly'];\n\n minRows?: InputFieldProps['minRows'];\n maxRows?: InputFieldProps['maxRows'];\n\n validateOn?: InputFieldProps['validateOn'];\n lineValidation?: InputFieldProps['lineValidation'];\n linesDelimiters?: InputFieldProps['linesDelimiters'];\n pasteProps?: InputFieldProps['pasteProps'];\n\n maxLines?: InputFieldProps['maxLines'];\n lineProcessing?: InputFieldProps['lineProcessing'];\n\n errors?: InputFieldProps['errors'];\n showErrors?: boolean;\n\n onErrorsChange?: InputFieldProps['onErrorsChange'];\n onShowErrorsChange?: InputFieldProps['onShowErrorsChange'];\n};\n\nexport type BulkTextareaType = Intergalactic.Component<'div', BoxProps & BulkTextareaProps> & {\n InputField: Intergalactic.Component<\n 'div',\n Pick<InputFieldProps, 'commonErrorMessage' | 'id'> & Partial<BulkTextareaProps> & BoxProps\n >;\n Counter: Intergalactic.Component<'div', Partial<CounterProps>>;\n ClearAll: typeof Button;\n ErrorsNavigation: Intergalactic.Component<'div', Partial<ErrorsNavigationProps>>;\n};\n"],"mappings":""}
@@ -23,18 +23,18 @@ var _ariaProps = require("@semcore/utils/lib/ariaProps");
23
23
  var _uniqueID = _interopRequireDefault(require("@semcore/utils/lib/uniqueID"));
24
24
  var _dompurify = _interopRequireDefault(require("dompurify"));
25
25
  /*__reshadow-styles__:"./inputField.shadow.css"*/
26
- var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SInputField_9rh9t_gg_>div{box-sizing:content-box;outline:0;border-radius:var(--intergalactic-control-rounded, 6px);border-color:var(--intergalactic-border-primary, #c4c7cf);border-style:solid;border-width:1px;overflow:auto;position:relative;color:var(--intergalactic-text-primary, #191b23);word-wrap:break-word;word-break:break-word;font-family:inherit}.___SInputField_9rh9t_gg_>div:empty::before{content:\"1. \"attr(placeholder);color:var(--intergalactic-text-placeholder, #8a8e9b);position:absolute}.___SInputField_9rh9t_gg_>div:nth-child(even){color:red;counter-increment:row;margin-bottom:var(--intergalactic-spacing-1x, 4px);position:relative;word-break:break-all}.___SInputField_9rh9t_gg_>div:nth-child(even)::before{content:counter(row)\".\";display:inline-block;white-space:nowrap;text-align:right;color:var(--intergalactic-text-secondary, #6c6e79);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SInputField_9rh9t_gg_>div>p{counter-increment:row;display:flex;margin:0 0 var(--intergalactic-spacing-1x, 4px)0;position:relative;word-break:break-all;white-space:pre-wrap;padding-right:20px}.___SInputField_9rh9t_gg_>div>p:last-of-type{margin-bottom:0}.___SInputField_9rh9t_gg_>div>p:not(:empty)::before{content:counter(row)\".\";display:inline-block;white-space:nowrap;text-align:right;color:var(--intergalactic-text-secondary, #6c6e79);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SInputField_9rh9t_gg_>div>p[data-over-max-rows=true]{background-color:var(--intergalactic-bg-secondary-critical, #fff0f7)}.___SInputField_9rh9t_gg_>div:has(p:nth-child(n+10))>p:nth-child(-n+9)::before{padding-left:8px}.___SInputField_9rh9t_gg_>div:has(p:nth-child(n+100))>p:nth-child(-n+9)::before{padding-left:16px}.___SInputField_9rh9t_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+10)::before{padding-left:8px}.___SInputField_9rh9t_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+100)::before{padding-left:0}.___SInputField_9rh9t_gg_.__showErrors_9rh9t_gg_>div[aria-invalid]>p[aria-invalid]:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZDEwMDJmIj48cGF0aCBkPSJNNyA2aDJ2NEg3VjZabTIgN3YtMkg3djJoMloiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYuMTUyIDEuMTcyYy43MTktMS41NjMgMi45NzctMS41NjMgMy42OTYgMGw2LjA0MyAxMy4xNDFjLjM2My43OTEtLjIyNSAxLjY4Ny0xLjEwOSAxLjY4N0gxLjIxOGMtLjg4NCAwLTEuNDcyLS44OTYtMS4xMDktMS42ODdMNi4xNTIgMS4xNzJabTcuMzc0IDEyLjgzN0w4IDEuOTkgMi40NzQgMTQuMDFoMTEuMDUyWiIvPjwvc3ZnPgo=\\ );position:absolute;right:0}.___SInputField_9rh9t_gg_._size_m_9rh9t_gg_>div{padding:var(--intergalactic-spacing-2x, 8px) var(--intergalactic-spacing-4x, 16px);font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);min-height:calc(var(--minRows_9rh9t)*20px);max-height:calc((var(--maxRows_9rh9t) - 1)*(20px + var(--intergalactic-spacing-1x, 4px)) + 18px)}.___SInputField_9rh9t_gg_._size_l_9rh9t_gg_>div:empty,.___SInputField_9rh9t_gg_._size_m_9rh9t_gg_>div:empty{padding-left:var(--intergalactic-spacing-8x, 32px)}.___SInputField_9rh9t_gg_._size_m_9rh9t_gg_>div:empty::before{left:var(--intergalactic-spacing-4x, 16px)}.___SInputField_9rh9t_gg_._size_l_9rh9t_gg_>div{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-4x, 16px);font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%);min-height:calc(var(--minRows_9rh9t)*24px);max-height:calc((var(--maxRows_9rh9t) - 1)*(24px + var(--intergalactic-spacing-1x, 4px)) + 20px)}.___SInputField_9rh9t_gg_._size_l_9rh9t_gg_>div:empty::before{left:calc(var(--intergalactic-spacing-4x, 16px) - var(--intergalactic-spacing-05x, 2px))}.___SInputField_9rh9t_gg_._state_normal_9rh9t_gg_:not(.__disabled_9rh9t_gg_)>div:focus:focus{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));border-color:var(--intergalactic-border-info-active, #006dca)}.___SInputField_9rh9t_gg_._state_valid_9rh9t_gg_>div{border-color:var(--intergalactic-border-success-active, #007c65)}.___SInputField_9rh9t_gg_._state_valid_9rh9t_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-valid, 0px 0px 0px 3px rgba(0, 159, 129, 0.5))}.___SInputField_9rh9t_gg_._state_invalid_9rh9t_gg_>div{border-color:var(--intergalactic-border-critical-active, #d1002f);background-image:var(--intergalactic-border-critical-pattern, repeating-linear-gradient(315deg, rgba(209, 0, 47, 1) 0, rgba(209, 0, 47, 1) 2px, transparent 0, transparent 50%));background-size:6px 6px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);border-bottom-left-radius:var(--intergalactic-control-rounded, 6px);border-top-left-radius:var(--intergalactic-control-rounded, 6px);background-repeat:repeat-y}.___SInputField_9rh9t_gg_._state_invalid_9rh9t_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-invalid, 0px 0px 0px 3px rgba(255, 73, 83, 0.5))}.___SInputField_9rh9t_gg_.__readonly_9rh9t_gg_>div{background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}.___SInputField_9rh9t_gg_.__disabled_9rh9t_gg_>div{opacity:var(--intergalactic-disabled-opacity, 0.3)}" /*__inner_css_end__*/, "9rh9t_gg_") /*__reshadow_css_end__*/, {
27
- "__SInputField": "___SInputField_9rh9t_gg_",
28
- "_showErrors": "__showErrors_9rh9t_gg_",
29
- "_readonly": "__readonly_9rh9t_gg_",
30
- "_disabled": "__disabled_9rh9t_gg_",
31
- "_size_m": "_size_m_9rh9t_gg_",
32
- "--minRows": "--minRows_9rh9t",
33
- "--maxRows": "--maxRows_9rh9t",
34
- "_size_l": "_size_l_9rh9t_gg_",
35
- "_state_normal": "_state_normal_9rh9t_gg_",
36
- "_state_valid": "_state_valid_9rh9t_gg_",
37
- "_state_invalid": "_state_invalid_9rh9t_gg_"
26
+ var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SInputField_11fze_gg_>div{box-sizing:content-box;outline:0;border-radius:var(--intergalactic-control-rounded, 6px);border-color:var(--intergalactic-border-primary, #c4c7cf);border-style:solid;border-width:1px;overflow:auto;position:relative;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);color:var(--intergalactic-text-primary, #191b23);word-wrap:break-word;word-break:break-word;font-family:inherit}.___SInputField_11fze_gg_>div:empty::before{content:\"1. \"attr(placeholder);color:var(--intergalactic-text-placeholder, #8a8e9b);position:absolute}.___SInputField_11fze_gg_>div:nth-child(even){color:red;counter-increment:row;margin-bottom:var(--intergalactic-spacing-1x, 4px);position:relative;word-break:break-all}.___SInputField_11fze_gg_>div:nth-child(even)::before{content:counter(row)\".\";display:inline-block;white-space:nowrap;text-align:right;color:var(--intergalactic-text-secondary, #6c6e79);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SInputField_11fze_gg_>div>p{counter-increment:row;display:flex;margin:0 0 var(--intergalactic-spacing-1x, 4px)0;position:relative;word-break:break-all;white-space:pre-wrap;padding-right:20px}.___SInputField_11fze_gg_>div>p:last-of-type{margin-bottom:0}.___SInputField_11fze_gg_>div>p:not(:empty)::before{content:counter(row)\".\";display:inline-block;white-space:nowrap;text-align:right;color:var(--intergalactic-text-secondary, #6c6e79);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SInputField_11fze_gg_>div>p[data-over-max-rows=true]{background-color:var(--intergalactic-bg-secondary-critical, #fff0f7)}.___SInputField_11fze_gg_>div:has(p:nth-child(n+10))>p:nth-child(-n+9)::before{padding-left:8px}.___SInputField_11fze_gg_>div:has(p:nth-child(n+100))>p:nth-child(-n+9)::before{padding-left:16px}.___SInputField_11fze_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+10)::before{padding-left:8px}.___SInputField_11fze_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+100)::before{padding-left:0}.___SInputField_11fze_gg_.__showErrors_11fze_gg_>div[aria-invalid]>p[aria-invalid]:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZDEwMDJmIj48cGF0aCBkPSJNNyA2aDJ2NEg3VjZabTIgN3YtMkg3djJoMloiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYuMTUyIDEuMTcyYy43MTktMS41NjMgMi45NzctMS41NjMgMy42OTYgMGw2LjA0MyAxMy4xNDFjLjM2My43OTEtLjIyNSAxLjY4Ny0xLjEwOSAxLjY4N0gxLjIxOGMtLjg4NCAwLTEuNDcyLS44OTYtMS4xMDktMS42ODdMNi4xNTIgMS4xNzJabTcuMzc0IDEyLjgzN0w4IDEuOTkgMi40NzQgMTQuMDFoMTEuMDUyWiIvPjwvc3ZnPgo=\\ );position:absolute;right:0}.___SInputField_11fze_gg_._size_m_11fze_gg_>div{padding:var(--intergalactic-spacing-2x, 8px) var(--intergalactic-spacing-4x, 16px);font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);min-height:calc(var(--minRows_11fze)*20px);max-height:calc((var(--maxRows_11fze) - 1)*(20px + var(--intergalactic-spacing-1x, 4px)) + 18px)}.___SInputField_11fze_gg_._size_l_11fze_gg_>div:empty,.___SInputField_11fze_gg_._size_m_11fze_gg_>div:empty{padding-left:var(--intergalactic-spacing-8x, 32px)}.___SInputField_11fze_gg_._size_m_11fze_gg_>div:empty::before{left:var(--intergalactic-spacing-4x, 16px)}.___SInputField_11fze_gg_._size_l_11fze_gg_>div{padding:var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-4x, 16px);font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%);min-height:calc(var(--minRows_11fze)*24px);max-height:calc((var(--maxRows_11fze) - 1)*(24px + var(--intergalactic-spacing-1x, 4px)) + 20px)}.___SInputField_11fze_gg_._size_l_11fze_gg_>div:empty::before{left:calc(var(--intergalactic-spacing-4x, 16px) - var(--intergalactic-spacing-05x, 2px))}.___SInputField_11fze_gg_._state_normal_11fze_gg_:not(.__disabled_11fze_gg_)>div:focus:focus{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));border-color:var(--intergalactic-border-info-active, #006dca)}.___SInputField_11fze_gg_._state_valid_11fze_gg_>div{border-color:var(--intergalactic-border-success-active, #007c65)}.___SInputField_11fze_gg_._state_valid_11fze_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-valid, 0px 0px 0px 3px rgba(0, 159, 129, 0.5))}.___SInputField_11fze_gg_._state_invalid_11fze_gg_>div{border-color:var(--intergalactic-border-critical-active, #d1002f);background-image:var(--intergalactic-border-critical-pattern, repeating-linear-gradient(315deg, rgba(209, 0, 47, 1) 0, rgba(209, 0, 47, 1) 2px, transparent 0, transparent 50%));background-size:6px 6px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);border-bottom-left-radius:var(--intergalactic-control-rounded, 6px);border-top-left-radius:var(--intergalactic-control-rounded, 6px);background-repeat:repeat-y}.___SInputField_11fze_gg_._state_invalid_11fze_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-invalid, 0px 0px 0px 3px rgba(255, 73, 83, 0.5))}.___SInputField_11fze_gg_.__readonly_11fze_gg_>div{background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}.___SInputField_11fze_gg_.__disabled_11fze_gg_>div{opacity:var(--intergalactic-disabled-opacity, 0.3)}" /*__inner_css_end__*/, "11fze_gg_") /*__reshadow_css_end__*/, {
27
+ "__SInputField": "___SInputField_11fze_gg_",
28
+ "_showErrors": "__showErrors_11fze_gg_",
29
+ "_readonly": "__readonly_11fze_gg_",
30
+ "_disabled": "__disabled_11fze_gg_",
31
+ "_size_m": "_size_m_11fze_gg_",
32
+ "--minRows": "--minRows_11fze",
33
+ "--maxRows": "--maxRows_11fze",
34
+ "_size_l": "_size_l_11fze_gg_",
35
+ "_state_normal": "_state_normal_11fze_gg_",
36
+ "_state_valid": "_state_valid_11fze_gg_",
37
+ "_state_invalid": "_state_invalid_11fze_gg_"
38
38
  });
39
39
  var InputField = /*#__PURE__*/function (_Component) {
40
40
  (0, _inherits2["default"])(InputField, _Component);
@@ -186,12 +186,12 @@ var InputField = /*#__PURE__*/function (_Component) {
186
186
  }, {
187
187
  key: "errorMessage",
188
188
  get: function get() {
189
- var _ref3, _errorItem$errorMessa, _errorItem, _errorItem2;
189
+ var _errorItem$errorMessa, _errorItem, _errorItem2;
190
190
  var _this$asProps2 = this.asProps,
191
191
  errors = _this$asProps2.errors,
192
192
  errorIndex = _this$asProps2.errorIndex,
193
193
  commonErrorMessage = _this$asProps2.commonErrorMessage,
194
- lastError = _this$asProps2.lastError;
194
+ prevError = _this$asProps2.prevError;
195
195
  var _this$state = this.state,
196
196
  mouseLineIndex = _this$state.mouseLineIndex,
197
197
  keyboardLineIndex = _this$state.keyboardLineIndex;
@@ -202,9 +202,9 @@ var InputField = /*#__PURE__*/function (_Component) {
202
202
  return (e === null || e === void 0 ? void 0 : e.lineIndex) === currentLineIndex;
203
203
  });
204
204
  }
205
- var errorMessage = errors.length === 0 && !lastError // show any errors only if there are at least one error
206
- ? null : (_ref3 = (_errorItem$errorMessa = (_errorItem = errorItem) === null || _errorItem === void 0 ? void 0 : _errorItem.errorMessage) !== null && _errorItem$errorMessa !== void 0 ? _errorItem$errorMessa : lastError === null || lastError === void 0 ? void 0 : lastError.errorMessage) !== null && _ref3 !== void 0 ? _ref3 : commonErrorMessage;
207
- var isCommonError = !((_errorItem2 = errorItem) !== null && _errorItem2 !== void 0 && _errorItem2.errorMessage) && !(lastError !== null && lastError !== void 0 && lastError.errorMessage);
205
+ var errorMessage = errors.length === 0 && !prevError // show any errors only if there are at least one error
206
+ ? null : (_errorItem$errorMessa = (_errorItem = errorItem) === null || _errorItem === void 0 ? void 0 : _errorItem.errorMessage) !== null && _errorItem$errorMessa !== void 0 ? _errorItem$errorMessa : commonErrorMessage === '' || errors.length === 0 ? prevError === null || prevError === void 0 ? void 0 : prevError.errorMessage : commonErrorMessage;
207
+ var isCommonError = !((_errorItem2 = errorItem) !== null && _errorItem2 !== void 0 && _errorItem2.errorMessage) && (commonErrorMessage === '' || errors.length === 0 ? !(prevError !== null && prevError !== void 0 && prevError.errorMessage) : true);
208
208
  return {
209
209
  errorMessage: errorMessage,
210
210
  isCommonError: isCommonError
@@ -257,6 +257,7 @@ var InputField = /*#__PURE__*/function (_Component) {
257
257
  var listOfNodes = this.prepareNodesForPaste(value);
258
258
  (_this$textarea = this.textarea).replaceChildren.apply(_this$textarea, (0, _toConsumableArray2["default"])(listOfNodes));
259
259
  this.recalculateLinesCount();
260
+ this.recalculateErrors();
260
261
  }
261
262
  }
262
263
  }, {
@@ -346,7 +347,7 @@ var InputField = /*#__PURE__*/function (_Component) {
346
347
  textNode = lastNodeToInsert.childNodes.item(0);
347
348
  position = ((_lastNodeToInsert$tex = lastNodeToInsert.textContent) !== null && _lastNodeToInsert$tex !== void 0 ? _lastNodeToInsert$tex : '').length;
348
349
  } else if (focusNode instanceof HTMLParagraphElement && anchorNode instanceof HTMLParagraphElement) {
349
- var _anchorNode$textConte, _anchorNode$textConte2, _focusNode$textConten, _focusNode$textConten2, _ref4;
350
+ var _anchorNode$textConte, _anchorNode$textConte2, _focusNode$textConten, _focusNode$textConten2, _ref3;
350
351
  var before = (_anchorNode$textConte = anchorNode === null || anchorNode === void 0 ? void 0 : (_anchorNode$textConte2 = anchorNode.textContent) === null || _anchorNode$textConte2 === void 0 ? void 0 : _anchorNode$textConte2.substring(0, fromOffset)) !== null && _anchorNode$textConte !== void 0 ? _anchorNode$textConte : '';
351
352
  var after = (_focusNode$textConten = focusNode === null || focusNode === void 0 ? void 0 : (_focusNode$textConten2 = focusNode.textContent) === null || _focusNode$textConten2 === void 0 ? void 0 : _focusNode$textConten2.substring(toOffset)) !== null && _focusNode$textConten !== void 0 ? _focusNode$textConten : '';
352
353
  selection.deleteFromDocument();
@@ -355,7 +356,7 @@ var InputField = /*#__PURE__*/function (_Component) {
355
356
  }
356
357
  var firstNodeToInsert = listOfNodes.splice(0, 1)[0];
357
358
  var _lastNodeToInsert = listOfNodes[listOfNodes.length - 1];
358
- anchorNode.textContent = (_ref4 = before + (firstNodeToInsert === null || firstNodeToInsert === void 0 ? void 0 : firstNodeToInsert.textContent)) !== null && _ref4 !== void 0 ? _ref4 : '';
359
+ anchorNode.textContent = (_ref3 = before + (firstNodeToInsert === null || firstNodeToInsert === void 0 ? void 0 : firstNodeToInsert.textContent)) !== null && _ref3 !== void 0 ? _ref3 : '';
359
360
  anchorNode.after.apply(anchorNode, (0, _toConsumableArray2["default"])(listOfNodes));
360
361
  if (_lastNodeToInsert) {
361
362
  var _lastNodeToInsert$tex2, _lastNodeToInsert$tex3;
@@ -467,8 +468,14 @@ var InputField = /*#__PURE__*/function (_Component) {
467
468
  }
468
469
  var trigger = !isValid || isValid && errors.length === 1 && errors[0].lineNode === rowNode ? rowNode : this.textarea;
469
470
  if (showErrors && ((_this$popper = this.popper) === null || _this$popper === void 0 ? void 0 : _this$popper.current.state.elements.reference) !== trigger) {
470
- var _this$setPopperTrigge;
471
- (_this$setPopperTrigge = this.setPopperTrigger) === null || _this$setPopperTrigge === void 0 ? void 0 : _this$setPopperTrigge.call(this, trigger);
471
+ if (this.shouldChangePopperTrigger(trigger)) {
472
+ var _this$setPopperTrigge;
473
+ (_this$setPopperTrigge = this.setPopperTrigger) === null || _this$setPopperTrigge === void 0 ? void 0 : _this$setPopperTrigge.call(this, trigger);
474
+ } else {
475
+ this.setState({
476
+ visibleErrorPopper: false
477
+ });
478
+ }
472
479
  }
473
480
  } else if (rowNode === null) {
474
481
  var _this$setPopperTrigge2;
@@ -716,9 +723,9 @@ var InputField = /*#__PURE__*/function (_Component) {
716
723
  boundary: (_this$containerRef$cu2 = this.containerRef.current) !== null && _this$containerRef$cu2 !== void 0 ? _this$containerRef$cu2 : undefined,
717
724
  tether: false
718
725
  }
719
- }), function (_ref5) {
720
- var popper = _ref5.popper,
721
- setTrigger = _ref5.setTrigger;
726
+ }), function (_ref4) {
727
+ var popper = _ref4.popper,
728
+ setTrigger = _ref4.setTrigger;
722
729
  if (!_this6.popper) {
723
730
  _this6.setPopperTrigger = setTrigger;
724
731
  // @ts-ignore
@@ -820,6 +827,11 @@ var InputField = /*#__PURE__*/function (_Component) {
820
827
  });
821
828
  return values;
822
829
  }
830
+ }, {
831
+ key: "shouldChangePopperTrigger",
832
+ value: function shouldChangePopperTrigger(node) {
833
+ return this.textarea !== node || this.textarea === node && Boolean(this.asProps.commonErrorMessage);
834
+ }
823
835
  }, {
824
836
  key: "toggleErrorsPopperByKeyboard",
825
837
  value: function toggleErrorsPopperByKeyboard(timer) {
@@ -859,7 +871,7 @@ var InputField = /*#__PURE__*/function (_Component) {
859
871
  if (targetElement instanceof HTMLElement) {
860
872
  _this10.setState(function (prevState) {
861
873
  var newState = {
862
- visibleErrorPopper: _this10.isFocusing ? true : isInvalidRow,
874
+ visibleErrorPopper: _this10.isFocusing && Boolean(_this10.asProps.commonErrorMessage) ? true : isInvalidRow,
863
875
  mouseLineIndex: prevState.mouseLineIndex,
864
876
  keyboardLineIndex: prevState.keyboardLineIndex
865
877
  };
@@ -868,10 +880,12 @@ var InputField = /*#__PURE__*/function (_Component) {
868
880
  }
869
881
  return newState;
870
882
  }, function () {
871
- var _this10$setPopperTrig;
872
883
  var trigger = isInvalidRow ? targetElement : _this10.textarea;
873
- (_this10$setPopperTrig = _this10.setPopperTrigger) === null || _this10$setPopperTrig === void 0 ? void 0 : _this10$setPopperTrig.call(_this10, trigger);
874
- _this10.forceUpdate();
884
+ if (_this10.shouldChangePopperTrigger(trigger)) {
885
+ var _this10$setPopperTrig;
886
+ (_this10$setPopperTrig = _this10.setPopperTrigger) === null || _this10$setPopperTrig === void 0 ? void 0 : _this10$setPopperTrig.call(_this10, trigger);
887
+ _this10.forceUpdate();
888
+ }
875
889
  });
876
890
  }
877
891
  }, timer !== null && timer !== void 0 ? timer : 50);