@semcore/bulk-textarea 1.0.1 → 1.0.2-prerelease.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.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/BulkTextarea.js +6 -6
- package/lib/cjs/components/ClearAll.js +1 -1
- package/lib/cjs/components/InputField/InputField.js +21 -21
- package/lib/es6/{BulkTextarea.mjs → BulkTextarea.js} +7 -7
- package/lib/es6/BulkTextarea.js.map +1 -0
- package/lib/es6/BulkTextarea.types.js +2 -0
- package/lib/es6/BulkTextarea.types.js.map +1 -0
- package/lib/es6/components/{ClearAll.mjs → ClearAll.js} +2 -2
- package/lib/es6/components/ClearAll.js.map +1 -0
- package/lib/es6/components/{Counter.mjs → Counter.js} +1 -1
- package/lib/es6/components/Counter.js.map +1 -0
- package/lib/es6/components/{ErrorsNavigation.mjs → ErrorsNavigation.js} +1 -1
- package/lib/es6/components/ErrorsNavigation.js.map +1 -0
- package/lib/es6/components/InputField/{InputField.mjs → InputField.js} +22 -22
- package/lib/es6/components/InputField/InputField.js.map +1 -0
- package/lib/es6/components/InputField/InputField.types.js +2 -0
- package/lib/es6/components/InputField/InputField.types.js.map +1 -0
- package/lib/es6/{index.mjs → index.js} +1 -1
- package/lib/es6/index.js.map +1 -0
- package/lib/es6/translations/{__intergalactic-dynamic-locales.mjs → __intergalactic-dynamic-locales.js} +1 -1
- package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -0
- package/package.json +4 -4
- package/lib/es6/BulkTextarea.mjs.map +0 -1
- package/lib/es6/BulkTextarea.types.mjs +0 -2
- package/lib/es6/BulkTextarea.types.mjs.map +0 -1
- package/lib/es6/components/ClearAll.mjs.map +0 -1
- package/lib/es6/components/Counter.mjs.map +0 -1
- package/lib/es6/components/ErrorsNavigation.mjs.map +0 -1
- package/lib/es6/components/InputField/InputField.mjs.map +0 -1
- package/lib/es6/components/InputField/InputField.types.mjs +0 -2
- package/lib/es6/components/InputField/InputField.types.mjs.map +0 -1
- package/lib/es6/index.mjs.map +0 -1
- package/lib/es6/translations/__intergalactic-dynamic-locales.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [1.0.2] - 2025-02-05
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/button` [5.41.0 ~> 5.41.1], `@semcore/icon` [4.56.0 ~> 4.57.0]).
|
|
10
|
+
|
|
5
11
|
## [1.0.1] - 2025-02-03
|
|
6
12
|
|
|
7
13
|
### Changed
|
package/lib/cjs/BulkTextarea.js
CHANGED
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
11
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
13
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
var _core = _interopRequireWildcard(require("@semcore/core"));
|
|
16
16
|
var _react = _interopRequireDefault(require("react"));
|
|
17
17
|
var _flexBox = require("@semcore/flex-box");
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.ClearAll = ClearAll;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
9
|
var _core = require("@semcore/core");
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _button = _interopRequireDefault(require("@semcore/button"));
|
|
@@ -5,15 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.InputField = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
9
|
-
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
13
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
15
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _index = require("@semcore/utils/lib/core/index");
|
|
18
18
|
var _core = require("@semcore/core");
|
|
19
19
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -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__*/".
|
|
27
|
-
"__SInputField": "
|
|
28
|
-
"_showErrors": "
|
|
29
|
-
"_readonly": "
|
|
30
|
-
"_disabled": "
|
|
31
|
-
"_size_m": "
|
|
32
|
-
"--minRows": "--
|
|
33
|
-
"--maxRows": "--
|
|
34
|
-
"_size_l": "
|
|
35
|
-
"_state_normal": "
|
|
36
|
-
"_state_valid": "
|
|
37
|
-
"_state_invalid": "
|
|
26
|
+
var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SInputField_h7hpq_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_h7hpq_gg_>div:empty::before{content:\"1. \"attr(placeholder);color:var(--intergalactic-text-placeholder, #8a8e9b);position:absolute}.___SInputField_h7hpq_gg_>div:nth-child(even){color:red;counter-increment:row;margin-bottom:var(--intergalactic-spacing-1x, 4px);position:relative;word-break:break-all}.___SInputField_h7hpq_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_h7hpq_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_h7hpq_gg_>div>p:last-of-type{margin-bottom:0}.___SInputField_h7hpq_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_h7hpq_gg_>div>p[data-over-max-rows=true]{background-color:var(--intergalactic-bg-secondary-critical, #fff0f7)}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+10))>p:nth-child(-n+9)::before{padding-left:8px}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+100))>p:nth-child(-n+9)::before{padding-left:16px}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+10)::before{padding-left:8px}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+100)::before{padding-left:0}.___SInputField_h7hpq_gg_.__showErrors_h7hpq_gg_>div[aria-invalid]>p[aria-invalid]:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZDEwMDJmIj48cGF0aCBkPSJNNyA2aDJ2NEg3VjZabTIgN3YtMkg3djJoMloiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYuMTUyIDEuMTcyYy43MTktMS41NjMgMi45NzctMS41NjMgMy42OTYgMGw2LjA0MyAxMy4xNDFjLjM2My43OTEtLjIyNSAxLjY4Ny0xLjEwOSAxLjY4N0gxLjIxOGMtLjg4NCAwLTEuNDcyLS44OTYtMS4xMDktMS42ODdMNi4xNTIgMS4xNzJabTcuMzc0IDEyLjgzN0w4IDEuOTkgMi40NzQgMTQuMDFoMTEuMDUyWiIvPjwvc3ZnPgo=\\ );position:absolute;right:0}.___SInputField_h7hpq_gg_._size_m_h7hpq_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_h7hpq)*20px);max-height:calc((var(--maxRows_h7hpq) - 1)*(20px + var(--intergalactic-spacing-1x, 4px)) + 18px)}.___SInputField_h7hpq_gg_._size_l_h7hpq_gg_>div:empty,.___SInputField_h7hpq_gg_._size_m_h7hpq_gg_>div:empty{padding-left:var(--intergalactic-spacing-8x, 32px)}.___SInputField_h7hpq_gg_._size_m_h7hpq_gg_>div:empty::before{left:var(--intergalactic-spacing-4x, 16px)}.___SInputField_h7hpq_gg_._size_l_h7hpq_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_h7hpq)*24px);max-height:calc((var(--maxRows_h7hpq) - 1)*(24px + var(--intergalactic-spacing-1x, 4px)) + 20px)}.___SInputField_h7hpq_gg_._size_l_h7hpq_gg_>div:empty::before{left:calc(var(--intergalactic-spacing-4x, 16px) - var(--intergalactic-spacing-05x, 2px))}.___SInputField_h7hpq_gg_._state_normal_h7hpq_gg_:not(.__disabled_h7hpq_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_h7hpq_gg_._state_valid_h7hpq_gg_>div{border-color:var(--intergalactic-border-success-active, #007c65)}.___SInputField_h7hpq_gg_._state_valid_h7hpq_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-valid, 0px 0px 0px 3px rgba(0, 159, 129, 0.5))}.___SInputField_h7hpq_gg_._state_invalid_h7hpq_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_h7hpq_gg_._state_invalid_h7hpq_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-invalid, 0px 0px 0px 3px rgba(255, 73, 83, 0.5))}.___SInputField_h7hpq_gg_.__readonly_h7hpq_gg_>div{background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}.___SInputField_h7hpq_gg_.__disabled_h7hpq_gg_>div{opacity:var(--intergalactic-disabled-opacity, 0.3)}" /*__inner_css_end__*/, "h7hpq_gg_") /*__reshadow_css_end__*/, {
|
|
27
|
+
"__SInputField": "___SInputField_h7hpq_gg_",
|
|
28
|
+
"_showErrors": "__showErrors_h7hpq_gg_",
|
|
29
|
+
"_readonly": "__readonly_h7hpq_gg_",
|
|
30
|
+
"_disabled": "__disabled_h7hpq_gg_",
|
|
31
|
+
"_size_m": "_size_m_h7hpq_gg_",
|
|
32
|
+
"--minRows": "--minRows_h7hpq",
|
|
33
|
+
"--maxRows": "--maxRows_h7hpq",
|
|
34
|
+
"_size_l": "_size_l_h7hpq_gg_",
|
|
35
|
+
"_state_normal": "_state_normal_h7hpq_gg_",
|
|
36
|
+
"_state_valid": "_state_valid_h7hpq_gg_",
|
|
37
|
+
"_state_invalid": "_state_invalid_h7hpq_gg_"
|
|
38
38
|
});
|
|
39
39
|
var InputField = /*#__PURE__*/function (_Component) {
|
|
40
40
|
(0, _inherits2["default"])(InputField, _Component);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/
|
|
3
|
-
import _assertThisInitialized from "@babel/runtime/helpers/
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/
|
|
5
|
-
import _createSuper from "@babel/runtime/helpers/
|
|
6
|
-
import _defineProperty from "@babel/runtime/helpers/
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
4
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
+
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
6
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
7
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import createComponent, { Component, Root } from '@semcore/core';
|
|
@@ -307,4 +307,4 @@ var BulkTextarea = createComponent(BulkTextareaRoot, {
|
|
|
307
307
|
ErrorsNavigation: ErrorsNavigation
|
|
308
308
|
});
|
|
309
309
|
export default BulkTextarea;
|
|
310
|
-
//# sourceMappingURL=BulkTextarea.
|
|
310
|
+
//# sourceMappingURL=BulkTextarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkTextarea.js","names":["React","createComponent","Component","Root","Box","InputField","Counter","ClearAll","ErrorsNavigation","localizedMessages","i18nEnhance","focusSourceEnhance","uniqueIdEnhance","BulkTextareaRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","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","_createClass","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","_assignProps","defaultValue","defaultState","locale","defaultErrors","defaultShowErrors","BulkTextarea"],"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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"}
|
|
@@ -0,0 +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,4 +1,4 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Root, sstyled } from '@semcore/core';
|
|
@@ -14,4 +14,4 @@ export function ClearAll(props) {
|
|
|
14
14
|
"addonLeft": CloseM
|
|
15
15
|
}, _ref))), props.getI18nText('BulkTextarea.ClearAllButton.buttonText')));
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=ClearAll.
|
|
17
|
+
//# sourceMappingURL=ClearAll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClearAll.js","names":["React","Root","sstyled","Button","CloseM","ClearAll","props","_ref","arguments[0]","_ref2","SButton","isHidden","styles","createElement","cn","_objectSpread","_assignProps","getI18nText"],"sources":["../../../src/components/ClearAll.tsx"],"sourcesContent":["import React from 'react';\nimport { IRootComponentProps, Root, sstyled } from '@semcore/core';\nimport Button from '@semcore/button';\nimport CloseM from '@semcore/icon/Close/m';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport function ClearAll(\n props: IRootComponentProps & { isHidden: boolean; getI18nText: ReturnType<typeof useI18n> },\n) {\n const SButton = Root;\n return (\n !props.isHidden &&\n sstyled(props.styles)(\n <SButton render={Button} theme='muted' use='tertiary' addonLeft={CloseM}>\n {props.getI18nText('BulkTextarea.ClearAllButton.buttonText')}\n </SButton>,\n )\n );\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAA8BC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AAClE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,OAAOC,MAAM,MAAM,uBAAuB;AAG1C,OAAO,SAASC,QAAQA,CACtBC,KAA2F,EAC3F;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACA,IAAMC,OAAO,GAIQP,MAAM;EAH3B,OACE,CAACG,KAAK,CAACK,QAAQ,KAAAF,KAAA,GACfP,OAAO,CAACI,KAAK,CAACM,MAAM,CAAC,eACnBZ,KAAA,CAAAa,aAAA,CAACH,OAAO,EAAAD,KAAA,CAAAK,EAAA,YAAAC,aAAA,KAAAC,YAAA;IAAA,SAAuB,OAAO;IAAA,OAAK,UAAU;IAAA,aAAYZ;EAAM,GAAAG,IAAA,KACpED,KAAK,CAACW,WAAW,CAAC,wCAAwC,CAAC,CACpD,CACX;AAEL"}
|
|
@@ -18,4 +18,4 @@ export function Counter(props) {
|
|
|
18
18
|
rowsNumber: maxLines
|
|
19
19
|
})), theme === 'warning' && /*#__PURE__*/React.createElement(ScreenReaderOnly, null, getI18nText('BulkTextarea.Counter.limitReached:sr-message')), theme === 'danger' && /*#__PURE__*/React.createElement(ScreenReaderOnly, null, getI18nText('BulkTextarea.Counter.limitExceeded:sr-message')));
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=Counter.
|
|
21
|
+
//# sourceMappingURL=Counter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Counter.js","names":["React","Root","ScreenReaderOnly","CounterKit","Counter","props","_ref","arguments[0]","theme","linesCount","maxLines","getI18nText","createElement","_assignProps","rowsNumber"],"sources":["../../../src/components/Counter.tsx"],"sourcesContent":["import React from 'react';\nimport { Root } from '@semcore/core';\nimport { ScreenReaderOnly } from '@semcore/flex-box';\nimport CounterKit, { CounterProps as CounterPropsKit } from '@semcore/counter';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport type CounterProps = {\n theme: CounterPropsKit['theme'];\n linesCount: number;\n maxLines: number;\n getI18nText: ReturnType<typeof useI18n>;\n};\n\nexport function Counter(props: CounterProps) {\n const { theme, linesCount, maxLines, getI18nText } = props;\n\n return (\n <Root render={CounterKit} ml={1} theme={theme}>\n {linesCount}\n <span aria-hidden='true'>/{maxLines}</span>\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.ofAllowedRows:sr-message', { rowsNumber: maxLines })}\n </ScreenReaderOnly>\n {theme === 'warning' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitReached:sr-message')}\n </ScreenReaderOnly>\n )}\n {theme === 'danger' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitExceeded:sr-message')}\n </ScreenReaderOnly>\n )}\n </Root>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,OAAOC,UAAU,MAA2C,kBAAkB;AAU9E,OAAO,SAASC,OAAOA,CAACC,KAAmB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;EAC3C,IAAQC,KAAK,GAAwCH,KAAK,CAAlDG,KAAK;IAAEC,UAAU,GAA4BJ,KAAK,CAA3CI,UAAU;IAAEC,QAAQ,GAAkBL,KAAK,CAA/BK,QAAQ;IAAEC,WAAW,GAAKN,KAAK,CAArBM,WAAW;EAEhD,oBACEX,KAAA,CAAAY,aAAA,CAAcT,UAAU,EAAAU,YAAA;IAAA,MAAM,CAAC;IAAA,SAASL;EAAK,GAAAF,IAAA,GAC1CG,UAAU,eACXT,KAAA,CAAAY,aAAA;IAAM,eAAY;EAAM,GAAC,GAAC,EAACF,QAAQ,CAAQ,eAC3CV,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,+CAA+C,EAAE;IAAEG,UAAU,EAAEJ;EAAS,CAAC,CAAC,CACtE,EAClBF,KAAK,KAAK,SAAS,iBAClBR,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,8CAA8C,CAAC,CAE/D,EACAH,KAAK,KAAK,QAAQ,iBACjBR,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,+CAA+C,CAAC,CAEhE,CACI;AAEX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorsNavigation.js","names":["React","Button","Flex","Text","ChevronUpM","ChevronDownM","ErrorsNavigation","props","errorIndex","errorsCount","onPrevError","onNextError","size","showErrors","getI18nText","disabled","nextButtonRef","prevButtonRef","createElement","alignItems","Fragment","onClick","addonLeft","use","theme","hintPlacement","ref","color","ml"],"sources":["../../../src/components/ErrorsNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport Button from '@semcore/button';\nimport { Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport ChevronUpM from '@semcore/icon/ChevronUp/m';\nimport ChevronDownM from '@semcore/icon/ChevronDown/m';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport type ErrorsNavigationProps = {\n errorIndex: number;\n onPrevError: () => void;\n onNextError: () => void;\n errorsCount: number;\n size: 'm' | 'l';\n showErrors: boolean;\n getI18nText: ReturnType<typeof useI18n>;\n disabled: boolean;\n nextButtonRef: React.RefObject<HTMLButtonElement>;\n prevButtonRef: React.RefObject<HTMLButtonElement>;\n};\n\nexport function ErrorsNavigation(props: ErrorsNavigationProps) {\n const {\n errorIndex,\n errorsCount,\n onPrevError,\n onNextError,\n size,\n showErrors,\n getI18nText,\n disabled,\n nextButtonRef,\n prevButtonRef,\n } = props;\n return (\n <Flex alignItems='center'>\n {errorsCount > 0 && showErrors && (\n <>\n <Button\n onClick={onNextError}\n addonLeft={ChevronDownM}\n use={'tertiary'}\n theme={'muted'}\n aria-label={getI18nText('BulkTextarea.ErrorsNavigation.nextError:aria-label')}\n hintPlacement={'bottom'}\n disabled={disabled}\n ref={nextButtonRef}\n />\n <Button\n onClick={onPrevError}\n addonLeft={ChevronUpM}\n use={'tertiary'}\n theme={'muted'}\n aria-label={getI18nText('BulkTextarea.ErrorsNavigation.previousError:aria-label')}\n hintPlacement={'bottom'}\n disabled={disabled}\n ref={prevButtonRef}\n />\n <Text size={size === 'l' ? 300 : 200} color='text-critical' ml={1} disabled={disabled}>\n {errorIndex === -1\n ? getI18nText('BulkTextarea.ErrorsNavigation.totalErrors', { errorsCount })\n : getI18nText('BulkTextarea.ErrorsNavigation.selectedError', {\n errorIndex: errorIndex + 1,\n errorsCount,\n })}\n </Text>\n </>\n )}\n </Flex>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,UAAU,MAAM,2BAA2B;AAClD,OAAOC,YAAY,MAAM,6BAA6B;AAgBtD,OAAO,SAASC,gBAAgBA,CAACC,KAA4B,EAAE;EAC7D,IACEC,UAAU,GAURD,KAAK,CAVPC,UAAU;IACVC,WAAW,GASTF,KAAK,CATPE,WAAW;IACXC,WAAW,GAQTH,KAAK,CARPG,WAAW;IACXC,WAAW,GAOTJ,KAAK,CAPPI,WAAW;IACXC,IAAI,GAMFL,KAAK,CANPK,IAAI;IACJC,UAAU,GAKRN,KAAK,CALPM,UAAU;IACVC,WAAW,GAITP,KAAK,CAJPO,WAAW;IACXC,QAAQ,GAGNR,KAAK,CAHPQ,QAAQ;IACRC,aAAa,GAEXT,KAAK,CAFPS,aAAa;IACbC,aAAa,GACXV,KAAK,CADPU,aAAa;EAEf,oBACEjB,KAAA,CAAAkB,aAAA,CAAChB,IAAI;IAACiB,UAAU,EAAC;EAAQ,GACtBV,WAAW,GAAG,CAAC,IAAII,UAAU,iBAC5Bb,KAAA,CAAAkB,aAAA,CAAAlB,KAAA,CAAAoB,QAAA,qBACEpB,KAAA,CAAAkB,aAAA,CAACjB,MAAM;IACLoB,OAAO,EAAEV,WAAY;IACrBW,SAAS,EAAEjB,YAAa;IACxBkB,GAAG,EAAE,UAAW;IAChBC,KAAK,EAAE,OAAQ;IACf,cAAYV,WAAW,CAAC,oDAAoD,CAAE;IAC9EW,aAAa,EAAE,QAAS;IACxBV,QAAQ,EAAEA,QAAS;IACnBW,GAAG,EAAEV;EAAc,EACnB,eACFhB,KAAA,CAAAkB,aAAA,CAACjB,MAAM;IACLoB,OAAO,EAAEX,WAAY;IACrBY,SAAS,EAAElB,UAAW;IACtBmB,GAAG,EAAE,UAAW;IAChBC,KAAK,EAAE,OAAQ;IACf,cAAYV,WAAW,CAAC,wDAAwD,CAAE;IAClFW,aAAa,EAAE,QAAS;IACxBV,QAAQ,EAAEA,QAAS;IACnBW,GAAG,EAAET;EAAc,EACnB,eACFjB,KAAA,CAAAkB,aAAA,CAACf,IAAI;IAACS,IAAI,EAAEA,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAI;IAACe,KAAK,EAAC,eAAe;IAACC,EAAE,EAAE,CAAE;IAACb,QAAQ,EAAEA;EAAS,GACnFP,UAAU,KAAK,CAAC,CAAC,GACdM,WAAW,CAAC,2CAA2C,EAAE;IAAEL,WAAW,EAAXA;EAAY,CAAC,CAAC,GACzEK,WAAW,CAAC,6CAA6C,EAAE;IACzDN,UAAU,EAAEA,UAAU,GAAG,CAAC;IAC1BC,WAAW,EAAXA;EACF,CAAC,CAAC,CACD,CAEV,CACI;AAEX"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/
|
|
2
|
-
import _createForOfIteratorHelper from "@babel/runtime/helpers/
|
|
3
|
-
import _toConsumableArray from "@babel/runtime/helpers/
|
|
4
|
-
import _classCallCheck from "@babel/runtime/helpers/
|
|
5
|
-
import _createClass from "@babel/runtime/helpers/
|
|
6
|
-
import _assertThisInitialized from "@babel/runtime/helpers/
|
|
7
|
-
import _inherits from "@babel/runtime/helpers/
|
|
8
|
-
import _createSuper from "@babel/runtime/helpers/
|
|
9
|
-
import _defineProperty from "@babel/runtime/helpers/
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
7
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
|
+
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
9
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
10
|
import { sstyled as _sstyled } from "@semcore/utils/lib/core/index";
|
|
11
11
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
12
12
|
import React from 'react';
|
|
13
13
|
import { Component, sstyled, Root } from '@semcore/core';
|
|
14
14
|
import { Box } from '@semcore/flex-box';
|
|
15
15
|
/*__reshadow-styles__:"./inputField.shadow.css"*/
|
|
16
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
17
|
-
"__SInputField": "
|
|
18
|
-
"_showErrors": "
|
|
19
|
-
"_readonly": "
|
|
20
|
-
"_disabled": "
|
|
21
|
-
"_size_m": "
|
|
22
|
-
"--minRows": "--
|
|
23
|
-
"--maxRows": "--
|
|
24
|
-
"_size_l": "
|
|
25
|
-
"_state_normal": "
|
|
26
|
-
"_state_valid": "
|
|
27
|
-
"_state_invalid": "
|
|
16
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SInputField_h7hpq_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_h7hpq_gg_>div:empty::before{content:\"1. \"attr(placeholder);color:var(--intergalactic-text-placeholder, #8a8e9b);position:absolute}.___SInputField_h7hpq_gg_>div:nth-child(even){color:red;counter-increment:row;margin-bottom:var(--intergalactic-spacing-1x, 4px);position:relative;word-break:break-all}.___SInputField_h7hpq_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_h7hpq_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_h7hpq_gg_>div>p:last-of-type{margin-bottom:0}.___SInputField_h7hpq_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_h7hpq_gg_>div>p[data-over-max-rows=true]{background-color:var(--intergalactic-bg-secondary-critical, #fff0f7)}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+10))>p:nth-child(-n+9)::before{padding-left:8px}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+100))>p:nth-child(-n+9)::before{padding-left:16px}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+10)::before{padding-left:8px}.___SInputField_h7hpq_gg_>div:has(p:nth-child(n+100))>p:nth-child(n+100)::before{padding-left:0}.___SInputField_h7hpq_gg_.__showErrors_h7hpq_gg_>div[aria-invalid]>p[aria-invalid]:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZDEwMDJmIj48cGF0aCBkPSJNNyA2aDJ2NEg3VjZabTIgN3YtMkg3djJoMloiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYuMTUyIDEuMTcyYy43MTktMS41NjMgMi45NzctMS41NjMgMy42OTYgMGw2LjA0MyAxMy4xNDFjLjM2My43OTEtLjIyNSAxLjY4Ny0xLjEwOSAxLjY4N0gxLjIxOGMtLjg4NCAwLTEuNDcyLS44OTYtMS4xMDktMS42ODdMNi4xNTIgMS4xNzJabTcuMzc0IDEyLjgzN0w4IDEuOTkgMi40NzQgMTQuMDFoMTEuMDUyWiIvPjwvc3ZnPgo=\\ );position:absolute;right:0}.___SInputField_h7hpq_gg_._size_m_h7hpq_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_h7hpq)*20px);max-height:calc((var(--maxRows_h7hpq) - 1)*(20px + var(--intergalactic-spacing-1x, 4px)) + 18px)}.___SInputField_h7hpq_gg_._size_l_h7hpq_gg_>div:empty,.___SInputField_h7hpq_gg_._size_m_h7hpq_gg_>div:empty{padding-left:var(--intergalactic-spacing-8x, 32px)}.___SInputField_h7hpq_gg_._size_m_h7hpq_gg_>div:empty::before{left:var(--intergalactic-spacing-4x, 16px)}.___SInputField_h7hpq_gg_._size_l_h7hpq_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_h7hpq)*24px);max-height:calc((var(--maxRows_h7hpq) - 1)*(24px + var(--intergalactic-spacing-1x, 4px)) + 20px)}.___SInputField_h7hpq_gg_._size_l_h7hpq_gg_>div:empty::before{left:calc(var(--intergalactic-spacing-4x, 16px) - var(--intergalactic-spacing-05x, 2px))}.___SInputField_h7hpq_gg_._state_normal_h7hpq_gg_:not(.__disabled_h7hpq_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_h7hpq_gg_._state_valid_h7hpq_gg_>div{border-color:var(--intergalactic-border-success-active, #007c65)}.___SInputField_h7hpq_gg_._state_valid_h7hpq_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-valid, 0px 0px 0px 3px rgba(0, 159, 129, 0.5))}.___SInputField_h7hpq_gg_._state_invalid_h7hpq_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_h7hpq_gg_._state_invalid_h7hpq_gg_>div:focus{box-shadow:var(--intergalactic-keyboard-focus-invalid, 0px 0px 0px 3px rgba(255, 73, 83, 0.5))}.___SInputField_h7hpq_gg_.__readonly_h7hpq_gg_>div{background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}.___SInputField_h7hpq_gg_.__disabled_h7hpq_gg_>div{opacity:var(--intergalactic-disabled-opacity, 0.3)}" /*__inner_css_end__*/, "h7hpq_gg_") /*__reshadow_css_end__*/, {
|
|
17
|
+
"__SInputField": "___SInputField_h7hpq_gg_",
|
|
18
|
+
"_showErrors": "__showErrors_h7hpq_gg_",
|
|
19
|
+
"_readonly": "__readonly_h7hpq_gg_",
|
|
20
|
+
"_disabled": "__disabled_h7hpq_gg_",
|
|
21
|
+
"_size_m": "_size_m_h7hpq_gg_",
|
|
22
|
+
"--minRows": "--minRows_h7hpq",
|
|
23
|
+
"--maxRows": "--maxRows_h7hpq",
|
|
24
|
+
"_size_l": "_size_l_h7hpq_gg_",
|
|
25
|
+
"_state_normal": "_state_normal_h7hpq_gg_",
|
|
26
|
+
"_state_valid": "_state_valid_h7hpq_gg_",
|
|
27
|
+
"_state_invalid": "_state_invalid_h7hpq_gg_"
|
|
28
28
|
});
|
|
29
29
|
import Tooltip from '@semcore/tooltip';
|
|
30
30
|
import { extractAriaProps } from '@semcore/utils/lib/ariaProps';
|
|
@@ -1101,4 +1101,4 @@ _defineProperty(InputField, "defaultProps", {
|
|
|
1101
1101
|
defaultLinesCount: 0
|
|
1102
1102
|
});
|
|
1103
1103
|
export { InputField };
|
|
1104
|
-
//# sourceMappingURL=InputField.
|
|
1104
|
+
//# sourceMappingURL=InputField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputField.js","names":["React","Component","sstyled","Root","Box","style","_sstyled","insert","Tooltip","extractAriaProps","uniqueIDEnhancement","DOMPurify","InputField","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","visibleErrorPopper","keyboardLineIndex","mouseLineIndex","handlePaste","bind","handleChange","handleFocus","handleBlur","handleKeyDown","handleMouseDown","handleMouseMove","handleMouseLeave","handleScroll","handleSelectAll","textarea","createContentEditableElement","_createClass","key","value","uncontrolledProps","linesCount","errorIndex","componentDidMount","_this$containerRef$cu","containerRef","current","append","handleValueOutChange","componentDidUpdate","prevProps","prevState","_this2","_this$props","errors","showErrors","disabled","readonly","highlightErrorIndex","lineProcessing","_this$props$ariaDesc","ariaDescribedby","getValues","join","delimiter","length","toggleAriaInvalid","setAttribute","handleChangeErrorIndex","isDisabled","removeEventListeners","addEventListeners","state","_lines$prevState$keyb","lines","newValue","newValueTextNode","document","createTextNode","paragraph","childNodes","item","HTMLParagraphElement","innerHTML","emptyLineValue","replaceChild","validateLine","setTimeout","newNode","setErrorIndex","recalculateErrors","recalculateLinesCount","asProps","onChangeLineIndex","componentWillUnmount","get","_this$asProps","Boolean","uid","concat","_ref3","_errorItem$errorMessa","_errorItem","_errorItem2","_this$asProps2","commonErrorMessage","lastError","_this$state","currentLineIndex","errorByInteraction","errorItem","find","e","lineIndex","errorMessage","isCommonError","createElement","id","placeholder","_extractAriaProps","extractedAriaProps","ariaProp","addEventListener","_this$props2","onChangeLinesCount","textContent","_this$textarea","listOfNodes","prepareNodesForPaste","replaceChildren","apply","_toConsumableArray","_this3","scrollingTimeout","clearTimeout","isScrolling","window","event","element","target","HTMLElement","toggleErrorsPopper","isFocusing","getAttribute","setState","changeTriggerTimeout","rowNode","getNodeFromSelection","_event$clipboardData","preventDefault","validateOn","clipboardData","getData","selection","getSelection","anchorNode","focusNode","anchorOffset","focusOffset","documentPosition","compareDocumentPosition","direction","getSelectionDirection","anchorElement","focusElement","fromOffset","toOffset","Text","parentElement","textNode","position","_this$textarea2","_lastNodeToInsert$tex","lastNodeToInsert","_anchorNode$textConte","_anchorNode$textConte2","_focusNode$textConten","_focusNode$textConten2","_ref4","before","substring","after","deleteFromDocument","removeChild","firstNodeToInsert","splice","_lastNodeToInsert$tex2","_lastNodeToInsert$tex3","_anchorNode$textConte3","_anchorNode$textConte4","_position","_position2","setSelection","parentNode","_textNode","console","warn","includes","HTMLDivElement","InputEvent","_firstNode$textConten2","nodes","firstNode","secondNode","_firstNode$textConten","nodeText","firstRow","text","replaceWith","setPosition","HTMLBRElement","trim","maxDeep","_rowNode","_rowNode2","_rowNode$textContent","_this$popper","_childNodes$item$text","offset","firstSymbol","at","lastSymbol","getEmptyParagraph","inputType","_this$asProps3","isValid","trigger","lineNode","popper","elements","reference","_this$setPopperTrigge","setPopperTrigger","_this$setPopperTrigge2","nodeIndex","emptyParagraph","emptyBr","toggleErrorsPopperByKeyboard","_this4","_this$asProps4","onBlur","_this5","linesDelimiters","currentNode","_currentNode$textCont","currentRowValue","_selection$focusNode","_selectionNode$textCo","_currentNode$textCont2","_row$textContent","selectionNode","selectionOffset","newRowValue","undefined","_selectionNode$textCo2","_selectionNode$textCo3","row","previousSibling","handleCursorMovement","isDeleteKey","_currentNode$textCont3","isRangeSelection","prevNode","_prevNode$textContent","_text$textContent$len","_text$textContent","_currentNode$textCont4","_focusElement$parentN","_anchorElement$parent","_focusElement$parentN2","_focusElement$parentN3","anchorParagraph","focusParagraph","paragraphs","Array","from","children","isCleaning","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","f","ctrlKey","metaKey","render","_ref","_ref2","_this$containerRef$cu2","_this6","SInputField","_this$asProps5","styles","_this$errorMessage","visibleErrorTooltip","_extractAriaProps2","__excludeProps","Fragment","cn","boundary","tether","_ref5","setTrigger","Popper","popperDescribedId","_objectSpread","_assignProps","_pasteProps$lineProce","_pasteProps$skipEmpty","_pasteProps$delimiter","_this7","pasteProps","line","trimmedLine","skipEmptyLines","split","forEach","preparedLine","node","allSpacesRegExp","RegExp","sanitize","replace","spaceLineValue","push","index","_node$dataset$errorme","dataset","errormessage","onErrorsChange","_this8","linesCountTimeout","_this8$asProps","maxLines","overMaxRows","values","_node$textContent","timer","_this9","toggleErrorsPopperTimeout","_this10","targetElement","isInvalidRow","indexOf","newState","_this10$setPopperTrig","forceUpdate","errorsLength","removeAttribute","_error$lineNode","_this11","error","lineValidation","_node$textContent2","_lineValidation","start","end","scrollType","arguments","range","createRange","setStart","setEnd","removeAllRanges","addRange","nodeToScroll","scrollIntoView","block","inline","behavior","nextNode","nextSibling","_nextNode$textContent","_nextNode$textContent2","_selection$focusOffse","nodeToSetSelection","currentOffset","nodeToCompare","filter","Element","findIndex","handlers","removeEventListener","Node","DOCUMENT_POSITION_PRECEDING","defaultValue","size","minRows","maxRows","defaultShowErrors","defaultErrorIndex","defaultLinesCount"],"sources":["../../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\n\nimport style from './inputField.shadow.css';\nimport { PopperContext } from '@semcore/popper';\nimport Tooltip from '@semcore/tooltip';\nimport { InputFieldProps, ErrorItem } from './InputField.types';\nimport { extractAriaProps } from '@semcore/utils/lib/ariaProps';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport DOMPurify from 'dompurify';\n\ntype IndexKeys = 'keyboardLineIndex' | 'mouseLineIndex';\n\ntype State = {\n [key in IndexKeys]: number;\n} & {\n visibleErrorPopper: boolean;\n};\n\nclass InputField extends Component<InputFieldProps, {}, State, typeof InputField.enhance> {\n static displayName = 'Textarea';\n static style = style;\n\n static enhance = [uniqueIDEnhancement()] as const;\n\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n state: 'normal',\n minRows: 2,\n maxRows: 10,\n defaultShowErrors: false,\n defaultErrorIndex: -1,\n defaultLinesCount: 0,\n };\n\n delimiter = '\\n';\n skipEmptyLines = true;\n emptyLineValue = '';\n spaceLineValue = ' ';\n\n containerRef = React.createRef<HTMLDivElement>();\n textarea: HTMLDivElement;\n\n popper: PopperContext['popper'] | null = null;\n setPopperTrigger: PopperContext['setTrigger'] | null = null;\n\n errorByInteraction: 'keyboard' | 'mouse' | null = null;\n\n changeTriggerTimeout = 0;\n isScrolling = false;\n scrollingTimeout = 0;\n\n toggleErrorsPopperTimeout = 0;\n\n isFocusing = false;\n\n linesCountTimeout = 0;\n\n state = {\n visibleErrorPopper: false,\n keyboardLineIndex: -1,\n mouseLineIndex: -1,\n };\n\n constructor(props: InputFieldProps) {\n super(props);\n\n this.handlePaste = this.handlePaste.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleSelectAll = this.handleSelectAll.bind(this);\n\n this.textarea = this.createContentEditableElement(props);\n }\n\n uncontrolledProps() {\n return {\n value: null,\n linesCount: null,\n errorIndex: null,\n };\n }\n\n componentDidMount() {\n this.containerRef.current?.append(this.textarea);\n\n this.handleValueOutChange();\n }\n\n componentDidUpdate(prevProps: InputFieldProps, prevState: State): void {\n const {\n value,\n errors,\n errorIndex,\n showErrors,\n disabled,\n readonly,\n highlightErrorIndex,\n lineProcessing,\n ['aria-describedby']: ariaDescribedby = '',\n } = this.props;\n\n if (prevProps.value !== value && value !== this.getValues().join(this.delimiter)) {\n this.handleValueOutChange();\n }\n\n if (prevProps.showErrors !== showErrors || prevProps.errors.length !== errors.length) {\n this.toggleAriaInvalid(showErrors, errors.length);\n\n if (showErrors === false) {\n this.textarea.setAttribute('aria-describedby', ariaDescribedby);\n }\n }\n\n if (prevProps.errorIndex !== errorIndex && highlightErrorIndex) {\n this.handleChangeErrorIndex(errorIndex);\n }\n\n if (prevProps.disabled !== disabled || prevProps.readonly !== readonly) {\n if (this.isDisabled) {\n this.textarea.setAttribute('contenteditable', 'false');\n this.removeEventListeners(this.textarea);\n } else {\n this.textarea.setAttribute('contenteditable', 'true');\n this.addEventListeners(this.textarea);\n }\n\n if (disabled) {\n this.textarea.setAttribute('tabindex', '-1');\n } else {\n this.textarea.setAttribute('tabindex', '0');\n }\n }\n\n const { keyboardLineIndex } = this.state;\n\n if (prevState.keyboardLineIndex !== -1 && prevState.keyboardLineIndex !== keyboardLineIndex) {\n if (lineProcessing) {\n const lines = this.getValues();\n const newValue = lineProcessing(lines[prevState.keyboardLineIndex] ?? '', lines);\n const newValueTextNode = document.createTextNode(newValue);\n const paragraph = this.textarea.childNodes.item(prevState.keyboardLineIndex);\n\n if (paragraph instanceof HTMLParagraphElement) {\n if (newValue === '') {\n paragraph.innerHTML = this.emptyLineValue;\n } else {\n paragraph.replaceChild(newValueTextNode, paragraph.childNodes.item(0));\n }\n }\n\n this.validateLine(paragraph);\n\n setTimeout(() => {\n const newNode = this.textarea.childNodes.item(keyboardLineIndex);\n if (newNode) {\n this.setErrorIndex(newNode);\n }\n }, 0); // need this timeout to update errorIndex to the new (usually empty) line\n }\n\n if (!showErrors) {\n this.recalculateErrors();\n }\n this.recalculateLinesCount();\n this.asProps.onChangeLineIndex(keyboardLineIndex);\n }\n }\n\n componentWillUnmount() {\n this.removeEventListeners(this.textarea);\n }\n\n get isDisabled(): boolean {\n const { disabled, readonly } = this.asProps;\n\n return Boolean(disabled || readonly);\n }\n\n get popperDescribedId() {\n const { uid } = this.asProps;\n return `bulk-textarea-${uid}-popper-describedby`;\n }\n\n get errorMessage() {\n const { errors, errorIndex, commonErrorMessage, lastError } = this.asProps;\n const { mouseLineIndex, keyboardLineIndex } = this.state;\n const currentLineIndex =\n this.errorByInteraction === 'keyboard'\n ? keyboardLineIndex\n : this.errorByInteraction === 'mouse'\n ? mouseLineIndex\n : -1;\n let errorItem: ErrorItem | undefined = errors[errorIndex];\n\n if (currentLineIndex !== -1) {\n errorItem = errors.find((e) => e?.lineIndex === currentLineIndex);\n }\n\n const errorMessage =\n errors.length === 0 && !lastError // show any errors only if there are at least one error\n ? null\n : errorItem?.errorMessage ?? lastError?.errorMessage ?? commonErrorMessage;\n const isCommonError = !errorItem?.errorMessage && !lastError?.errorMessage;\n\n return {\n errorMessage,\n isCommonError,\n };\n }\n\n createContentEditableElement(props: InputFieldProps) {\n const textarea = document.createElement('div');\n textarea.setAttribute('contentEditable', props.disabled || props.readonly ? 'false' : 'true');\n textarea.setAttribute('role', 'textbox');\n textarea.setAttribute('classname', 'editable');\n\n if (props.id) {\n textarea.setAttribute('id', props.id);\n }\n if (props.placeholder) {\n textarea.setAttribute('placeholder', props.placeholder);\n }\n const { extractedAriaProps } = extractAriaProps(props);\n for (const key in extractedAriaProps) {\n const ariaProp: string | undefined = (props as any)[key];\n if (ariaProp) {\n textarea.setAttribute(key, ariaProp);\n }\n }\n\n if (!props.disabled) {\n textarea.setAttribute('tabIndex', '0');\n } else {\n textarea.setAttribute('tabIndex', '-1');\n }\n\n if (!props.disabled && !props.readonly) {\n this.addEventListeners(textarea);\n } else {\n textarea.addEventListener('keydown', this.handleSelectAll.bind(this));\n }\n\n return textarea;\n }\n\n handleValueOutChange() {\n const { value, onChangeLinesCount } = this.props;\n\n if (value === '') {\n this.textarea.textContent = '';\n onChangeLinesCount(0);\n } else {\n const listOfNodes = this.prepareNodesForPaste(value);\n\n this.textarea.replaceChildren(...listOfNodes);\n\n this.recalculateLinesCount();\n }\n }\n\n handleScroll(): void {\n if (this.scrollingTimeout) {\n clearTimeout(this.scrollingTimeout);\n }\n\n this.isScrolling = true;\n\n this.scrollingTimeout = window.setTimeout(() => {\n this.isScrolling = false;\n }, 50);\n }\n\n handleMouseDown(event: MouseEvent): void {\n // we need to change keyboardLineIndex, because the caret in real on that current row\n this.errorByInteraction = 'keyboard';\n const element = event.target;\n\n if (element instanceof HTMLElement) {\n // we need to change keyboardLineIndex, because the caret in real on that current row\n this.toggleErrorsPopper('keyboardLineIndex', element);\n\n this.setErrorIndex(element);\n }\n }\n\n handleMouseMove(event: MouseEvent): void {\n this.errorByInteraction = 'mouse';\n const element = event.target;\n\n if (element !== this.textarea) {\n if (\n this.isFocusing ||\n (element instanceof HTMLElement && element.getAttribute('aria-invalid') === 'true')\n ) {\n this.toggleErrorsPopper('mouseLineIndex', element);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n }\n\n handleMouseLeave(event: MouseEvent): void {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n if (this.isFocusing) {\n this.errorByInteraction = 'keyboard';\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n this.setState({ mouseLineIndex: -1 });\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n handlePaste(event: ClipboardEvent) {\n event.preventDefault();\n const { validateOn } = this.asProps;\n const value = event.clipboardData?.getData('text/plain');\n const listOfNodes = value ? this.prepareNodesForPaste(value) : [];\n\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const anchorOffset = selection.anchorOffset;\n const focusOffset = selection.focusOffset;\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n const direction = this.getSelectionDirection();\n\n const anchorElement = direction === 'forward' ? selection.anchorNode : selection.focusNode;\n const focusElement = direction === 'forward' ? selection.focusNode : selection.anchorNode;\n const fromOffset = direction === 'forward' ? anchorOffset : focusOffset;\n const toOffset = direction === 'forward' ? focusOffset : anchorOffset;\n const anchorNode =\n anchorElement instanceof Text ? anchorElement.parentElement : anchorElement;\n const focusNode = focusElement instanceof Text ? focusElement.parentElement : focusElement;\n\n let textNode: ChildNode | null = null;\n let position: number | null = null;\n\n if (focusElement === this.textarea) {\n this.textarea.replaceChildren(...listOfNodes);\n\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n } else if (\n focusNode instanceof HTMLParagraphElement &&\n anchorNode instanceof HTMLParagraphElement\n ) {\n const before = anchorNode?.textContent?.substring(0, fromOffset) ?? '';\n const after = focusNode?.textContent?.substring(toOffset) ?? '';\n\n selection.deleteFromDocument();\n\n if (documentPosition !== 0) {\n this.textarea.removeChild(focusNode);\n }\n\n const firstNodeToInsert = listOfNodes.splice(0, 1)[0];\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n\n anchorNode.textContent = before + firstNodeToInsert?.textContent ?? '';\n\n anchorNode.after(...listOfNodes);\n\n if (lastNodeToInsert) {\n lastNodeToInsert.textContent = (lastNodeToInsert.textContent ?? '') + after;\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n\n this.validateLine(lastNodeToInsert);\n this.setErrorIndex(lastNodeToInsert);\n } else {\n position = (anchorNode.textContent ?? '').length;\n anchorNode.textContent = (anchorNode.textContent ?? '') + after;\n textNode = anchorNode.childNodes.item(0);\n\n this.validateLine(anchorNode);\n this.setErrorIndex(anchorNode);\n }\n }\n\n if (textNode instanceof Text) {\n this.setSelection(textNode, position ?? 1, position ?? 1);\n this.toggleErrorsPopper('keyboardLineIndex', textNode.parentNode);\n } else {\n console.warn('incorrect child type', textNode, textNode?.parentNode);\n }\n }\n\n this.recalculateLinesCount();\n\n if (validateOn.includes('paste') || this.asProps.showErrors) {\n this.recalculateErrors();\n }\n }\n\n handleChange(event: Event) {\n const target = event.target;\n if (target instanceof HTMLDivElement && event instanceof InputEvent) {\n const nodes = this.textarea.childNodes;\n const firstNode = nodes.item(0);\n const secondNode = nodes.item(1);\n const selection = document.getSelection();\n\n if (firstNode instanceof Text) {\n const nodeText = firstNode.textContent ?? '';\n const firstRow = document.createElement('p');\n const text = document.createTextNode(nodeText);\n firstRow.append(text);\n firstNode.replaceWith(firstRow);\n\n selection?.setPosition(firstRow, nodeText.length);\n } else if (!firstNode || (firstNode instanceof HTMLBRElement && nodes.length === 1)) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n } else if (firstNode instanceof HTMLParagraphElement && !firstNode.textContent?.trim()) {\n if (nodes.length <= 1 || secondNode instanceof HTMLBRElement) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n }\n }\n\n let maxDeep = 10;\n let rowNode = selection?.focusNode;\n\n while (rowNode?.parentNode !== this.textarea && maxDeep > 0) {\n rowNode = rowNode?.parentNode;\n maxDeep--;\n }\n\n if (rowNode instanceof HTMLParagraphElement) {\n const childNodes = rowNode.childNodes;\n const textContent = rowNode.textContent ?? '';\n\n if (childNodes.length > 1) {\n const offset = childNodes.item(0).textContent?.length;\n\n rowNode.textContent = textContent;\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n\n if (textContent.length > 0) {\n const firstSymbol = textContent.at(0);\n const lastSymbol = textContent.at(textContent.length - 1);\n\n if (\n firstSymbol === this.getEmptyParagraph().textContent ||\n lastSymbol === this.getEmptyParagraph().textContent\n ) {\n let offset: number | null = null;\n if (firstSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(1);\n offset =\n event.inputType === 'deleteContentBackward' ||\n event.inputType === 'deleteContentForward'\n ? 0\n : rowNode.textContent.length;\n } else if (lastSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(0, textContent.length - 1);\n offset = rowNode.textContent.length;\n }\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n } else if (childNodes.length === 1 && childNodes[0] instanceof HTMLBRElement) {\n rowNode.innerHTML = this.emptyLineValue;\n }\n\n const { errors, showErrors } = this.asProps;\n const isValid = this.validateLine(rowNode);\n this.recalculateErrors();\n this.setErrorIndex(rowNode);\n\n if (!isValid && showErrors) {\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n }\n\n const trigger =\n !isValid || (isValid && errors.length === 1 && errors[0].lineNode === rowNode)\n ? rowNode\n : this.textarea;\n\n if (showErrors && this.popper?.current.state.elements.reference !== trigger) {\n this.setPopperTrigger?.(trigger);\n }\n } else if (rowNode === null) {\n this.setPopperTrigger?.(this.textarea);\n\n if (selection?.focusNode === this.textarea && this.textarea.childNodes.length > 1) {\n const nodeIndex = selection.focusOffset;\n const emptyParagraph = this.textarea.childNodes.item(nodeIndex - 1);\n const emptyBr = this.textarea.childNodes.item(nodeIndex);\n\n this.textarea.removeChild(emptyBr);\n\n if (emptyParagraph instanceof HTMLParagraphElement) {\n emptyParagraph.innerHTML = this.emptyLineValue;\n }\n\n if (emptyParagraph) {\n this.setSelection(emptyParagraph, 0, 0);\n }\n } else {\n this.setSelection(this.textarea, 0, 0);\n }\n }\n\n this.recalculateLinesCount();\n }\n }\n\n handleFocus(event: FocusEvent) {\n this.isFocusing = true;\n this.errorByInteraction = 'keyboard';\n\n if (this.asProps.showErrors) {\n this.toggleErrorsPopperByKeyboard(150);\n } else {\n this.toggleErrorsPopper('keyboardLineIndex', this.textarea);\n }\n }\n\n handleBlur(event: Event) {\n this.isFocusing = false;\n this.setState({ visibleErrorPopper: false });\n\n const { validateOn, onBlur } = this.asProps;\n\n if (validateOn.includes('blur')) {\n this.recalculateErrors();\n }\n\n onBlur(this.getValues().join(this.delimiter), event);\n\n setTimeout(() => {\n this.setState({ keyboardLineIndex: -1 });\n }, 200);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n this.errorByInteraction = 'keyboard';\n const { linesDelimiters } = this.asProps;\n\n const currentNode = this.getNodeFromSelection();\n\n if (event.key === 'Enter' || linesDelimiters?.includes(event.key)) {\n if (currentNode === this.textarea) {\n event.preventDefault();\n }\n if (currentNode instanceof HTMLParagraphElement) {\n const currentRowValue = currentNode.textContent?.trim();\n\n if (!currentRowValue) {\n event.preventDefault();\n } else {\n event.preventDefault();\n const selection = document.getSelection();\n const selectionNode =\n selection?.focusNode instanceof Text\n ? selection.focusNode\n : selection?.focusNode?.childNodes.item(0);\n const selectionOffset = selection?.focusOffset;\n\n let newRowValue = '';\n\n if (\n selectionNode instanceof Text &&\n selectionOffset !== undefined &&\n selectionOffset !== selectionNode.textContent?.length\n ) {\n newRowValue =\n selectionNode.textContent?.substring(selectionOffset) ?? this.emptyLineValue;\n\n if (selectionNode.textContent) {\n selectionNode.textContent = selectionNode.textContent.substring(0, selectionOffset);\n }\n }\n\n if (currentNode.textContent?.trim() === '') {\n currentNode.innerHTML = this.emptyLineValue;\n }\n\n const row = document.createElement('p');\n if (newRowValue) {\n row.textContent = newRowValue;\n } else {\n row.innerHTML = this.emptyLineValue;\n }\n currentNode.after(row);\n\n this.setSelection(row, 0, 0);\n\n this.validateLine(currentNode);\n this.validateLine(row);\n if (currentNode.previousSibling) {\n this.validateLine(currentNode.previousSibling);\n }\n this.setErrorIndex(row);\n\n if (row.textContent?.trim() !== '') {\n this.recalculateLinesCount();\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (currentNode instanceof HTMLParagraphElement) {\n this.handleCursorMovement(currentNode, event);\n }\n this.toggleErrorsPopperByKeyboard(200);\n } else if (this.isDeleteKey(event) && currentNode instanceof HTMLParagraphElement) {\n if (currentNode.textContent?.trim() === '' && !this.isRangeSelection()) {\n // Backspace on empty row\n const prevNode = currentNode.previousSibling;\n if (prevNode instanceof HTMLParagraphElement) {\n event.preventDefault();\n this.textarea.removeChild(currentNode);\n this.toggleErrorsPopperByKeyboard(0);\n\n if (\n prevNode.textContent?.trim() === '' &&\n prevNode.previousSibling === null &&\n this.textarea.childNodes.length === 1\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n if (prevNode instanceof HTMLParagraphElement) {\n const text = prevNode.childNodes.item(0);\n const offset = text.textContent?.length ?? 0;\n this.setSelection(text, offset, offset);\n } else {\n console.warn('incorrect prevNode type', prevNode);\n }\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n } else if (this.isRangeSelection()) {\n const selection = document.getSelection();\n\n const direction = this.getSelectionDirection();\n const anchorElement =\n direction === 'backward' ? selection?.focusNode : selection?.anchorNode;\n const focusElement =\n direction === 'backward' ? selection?.anchorNode : selection?.focusNode;\n const anchorOffset =\n direction === 'backward' ? selection?.focusOffset : selection?.anchorOffset;\n const focusOffset =\n direction === 'backward' ? selection?.anchorOffset : selection?.focusOffset;\n\n // Backspace on selected full row\n if (\n anchorElement === focusElement &&\n anchorOffset === 0 &&\n ((focusElement === currentNode && focusOffset === 1) ||\n focusOffset === currentNode.textContent?.length)\n ) {\n event.preventDefault();\n\n const anchorParagraph = anchorElement?.parentElement;\n const focusParagraph = focusElement?.parentElement;\n const childNodes = this.textarea.childNodes;\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n currentNode.innerHTML = this.emptyLineValue;\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n // Backspace on selected few full rows\n else if (\n focusElement !== anchorElement &&\n focusElement instanceof Text &&\n anchorElement instanceof Text &&\n focusElement?.textContent === focusElement?.parentNode?.textContent &&\n anchorElement?.textContent === anchorElement?.parentNode?.textContent &&\n anchorOffset === 0 &&\n focusOffset === focusElement?.parentNode?.textContent?.length\n ) {\n event.preventDefault();\n\n const paragraphs = Array.from(this.textarea.children);\n const anchorParagraph = anchorElement.parentElement;\n const focusParagraph = focusElement.parentElement;\n const childNodes = this.textarea.childNodes;\n\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n let isCleaning = false;\n\n for (const paragraph of paragraphs) {\n if (paragraph === anchorParagraph || isCleaning) {\n isCleaning = true;\n\n if (paragraph === focusParagraph) {\n focusParagraph.innerHTML = this.emptyLineValue;\n this.setSelection(focusParagraph, 0, 0);\n break;\n } else {\n this.textarea.removeChild(paragraph);\n }\n }\n }\n\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (event.key === 'z' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n }\n }\n\n render() {\n const SInputField = Root;\n const { styles, showErrors } = this.asProps;\n const { visibleErrorPopper } = this.state;\n\n const { errorMessage, isCommonError } = this.errorMessage;\n const visibleErrorTooltip =\n showErrors && visibleErrorPopper && Boolean(errorMessage) && !this.isDisabled;\n\n const { __excludeProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <>\n <Tooltip\n interaction={'none'}\n placement={isCommonError ? 'right-start' : 'right'}\n visible={visibleErrorTooltip}\n theme={'warning'}\n offset={isCommonError ? undefined : [0, 26]}\n preventOverflow={{\n boundary: this.containerRef.current ?? undefined,\n tether: false,\n }}\n >\n {({ popper, setTrigger }) => {\n if (!this.popper) {\n this.setPopperTrigger = setTrigger;\n // @ts-ignore\n this.popper = popper;\n }\n\n return <Tooltip.Popper id={this.popperDescribedId}>{errorMessage}</Tooltip.Popper>;\n }}\n </Tooltip>\n <SInputField\n render={Box}\n ref={this.containerRef}\n __excludeProps={['onBlur', 'value', ...__excludeProps]}\n />\n </>,\n );\n }\n\n private prepareNodesForPaste(value: string): HTMLParagraphElement[] {\n const listOfNodes: HTMLParagraphElement[] = [];\n const { pasteProps } = this.asProps;\n const lineProcessing =\n pasteProps?.lineProcessing ??\n ((line: string) => {\n const trimmedLine = line.trim();\n return trimmedLine === '' ? line : trimmedLine;\n });\n const skipEmptyLines = pasteProps?.skipEmptyLines ?? this.skipEmptyLines;\n const delimiter = pasteProps?.delimiter ?? this.delimiter;\n\n value.split(delimiter).forEach((line) => {\n const preparedLine = lineProcessing(line);\n\n if ((preparedLine === '' && skipEmptyLines === false) || preparedLine !== '') {\n const node = document.createElement('p');\n\n if (preparedLine === '') {\n node.innerHTML = this.emptyLineValue;\n } else if (preparedLine.trim() === '') {\n const allSpacesRegExp = new RegExp('\\\\s', 'g');\n node.innerHTML = DOMPurify.sanitize(\n preparedLine.replace(allSpacesRegExp, this.spaceLineValue),\n );\n } else {\n node.append(document.createTextNode(preparedLine));\n }\n\n listOfNodes.push(node);\n\n this.validateLine(node);\n }\n });\n\n return listOfNodes;\n }\n\n private recalculateErrors(): void {\n const errors: ErrorItem[] = [];\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement && node.getAttribute('aria-invalid') === 'true') {\n const errorItem = {\n errorMessage: node.dataset.errormessage ?? '',\n lineNode: node,\n lineIndex: index,\n };\n errors.push(errorItem);\n }\n });\n\n this.asProps.onErrorsChange(errors);\n }\n\n private recalculateLinesCount(): void {\n if (this.linesCountTimeout) {\n clearTimeout(this.linesCountTimeout);\n }\n\n this.linesCountTimeout = window.setTimeout(() => {\n let lines = 0;\n const { maxLines, linesCount } = this.asProps;\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement) {\n node.dataset.overMaxRows = 'false';\n\n if (\n node.textContent !== this.getEmptyParagraph().textContent &&\n node.textContent !== ''\n ) {\n lines++;\n\n if (lines > maxLines) {\n node.dataset.overMaxRows = 'true';\n }\n }\n }\n });\n\n if (linesCount !== lines) {\n this.asProps.onChangeLinesCount(lines);\n }\n }, 100);\n }\n\n private getValues(): string[] {\n const values: string[] = [];\n this.textarea.childNodes.forEach((node) => {\n values.push(node.textContent ?? '');\n });\n\n return values;\n }\n\n private toggleErrorsPopperByKeyboard(timer: number) {\n if (this.toggleErrorsPopperTimeout) {\n clearTimeout(this.toggleErrorsPopperTimeout);\n }\n\n if (!this.isScrolling) {\n setTimeout(() => {\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, timer);\n }, 0);\n } else {\n this.toggleErrorsPopperTimeout = window.setTimeout(() => {\n this.toggleErrorsPopperByKeyboard(timer);\n }, 50);\n }\n }\n\n private toggleErrorsPopper(key: IndexKeys, target?: unknown, timer?: number) {\n if (target instanceof HTMLDivElement || target instanceof HTMLParagraphElement) {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n this.changeTriggerTimeout = window.setTimeout(() => {\n const targetElement = target === this.textarea ? this.getNodeFromSelection() : target;\n\n let lineIndex = -1;\n let isInvalidRow = false;\n\n if (targetElement instanceof HTMLParagraphElement) {\n isInvalidRow = targetElement.getAttribute('aria-invalid') === 'true';\n lineIndex = Array.from(this.textarea.childNodes).indexOf(targetElement);\n } else if (targetElement === this.textarea) {\n lineIndex = 0;\n }\n\n if (targetElement instanceof HTMLElement) {\n this.setState(\n (prevState) => {\n const newState: State = {\n visibleErrorPopper: this.isFocusing ? true : isInvalidRow,\n mouseLineIndex: prevState.mouseLineIndex,\n keyboardLineIndex: prevState.keyboardLineIndex,\n };\n\n if (this.isFocusing || (key === 'mouseLineIndex' && isInvalidRow)) {\n newState[key] = lineIndex;\n }\n\n return newState;\n },\n () => {\n const trigger = isInvalidRow ? targetElement : this.textarea;\n this.setPopperTrigger?.(trigger);\n\n this.forceUpdate();\n },\n );\n }\n }, timer ?? 50);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n private toggleAriaInvalid(showErrors: boolean, errorsLength: number): void {\n if (showErrors && errorsLength > 0) {\n this.textarea.setAttribute('aria-describedby', this.popperDescribedId);\n this.textarea.setAttribute('aria-invalid', 'true');\n } else {\n this.textarea.removeAttribute('aria-invalid');\n this.textarea.removeAttribute('aria-describedby');\n }\n }\n\n private handleChangeErrorIndex(errorIndex: number): void {\n const error: ErrorItem | undefined = this.asProps.errors[errorIndex];\n const childNodes = this.textarea.childNodes;\n\n const node = error ? error.lineNode ?? childNodes.item(error.lineIndex) : null;\n const selection = document.getSelection();\n\n if (selection && node instanceof HTMLParagraphElement) {\n this.setState({ visibleErrorPopper: false });\n\n setTimeout(() => {\n const text = node.childNodes.item(0);\n if (text instanceof Text) {\n this.setSelection(text, 0, text.length);\n } else {\n this.setSelection(node, 0, 1);\n }\n }, 150);\n }\n }\n\n private validateLine(node: Node): boolean {\n const { lineValidation } = this.asProps;\n if (lineValidation && node instanceof HTMLElement) {\n const { isValid, errorMessage } = lineValidation(node.textContent ?? '', this.getValues());\n\n if (!isValid) {\n node.setAttribute('aria-invalid', 'true');\n node.dataset.errormessage = errorMessage;\n } else {\n node.removeAttribute('aria-invalid');\n node.dataset.errormessage = undefined;\n }\n\n return isValid;\n }\n\n return true;\n }\n\n private setSelection(\n node: Node,\n start: number,\n end: number,\n scrollType: 'center' | 'nearest' = 'center',\n ): void {\n const selection = document.getSelection();\n const range = document.createRange();\n range.setStart(node, start);\n range.setEnd(node, end);\n\n selection?.removeAllRanges();\n selection?.addRange(range);\n\n const nodeToScroll = node instanceof Text ? node.parentNode : node;\n\n if (nodeToScroll instanceof HTMLElement) {\n nodeToScroll.scrollIntoView({\n block: scrollType,\n inline: scrollType,\n behavior: 'smooth',\n });\n }\n }\n\n private getNodeFromSelection(): Node | null {\n const selection = document.getSelection();\n\n const rowNode =\n selection?.focusNode instanceof Text ? selection.focusNode.parentNode : selection?.focusNode;\n\n return rowNode ?? null;\n }\n\n private handleCursorMovement(currentNode: HTMLParagraphElement, event: KeyboardEvent): void {\n let nextNode: ChildNode | null = null;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n break;\n case 'ArrowDown':\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n break;\n case 'ArrowLeft': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n }\n break;\n }\n case 'ArrowRight': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n }\n }\n }\n\n if (nextNode instanceof HTMLParagraphElement) {\n const selection = document.getSelection();\n const firstNode = nextNode.childNodes.item(0);\n const nodeToSetSelection = firstNode instanceof Text ? firstNode : nextNode;\n const textNode = nextNode.textContent?.trim() ?? '';\n const currentOffset = selection?.focusOffset ?? 0;\n let offset = currentOffset <= textNode.length ? currentOffset : textNode.length;\n\n // it only works if node is empty, that's why here we could set 0 or node.length\n if (event.key === 'ArrowLeft') {\n offset = textNode.length;\n } else if (event.key === 'ArrowRight') {\n offset = 0;\n }\n\n this.setSelection(nodeToSetSelection, offset, offset, 'nearest');\n }\n }\n\n private setErrorIndex(nodeToCompare: Node): void {\n const errorIndex = Array.from(this.textarea.childNodes)\n .filter((node) => {\n return node instanceof Element && node.getAttribute('aria-invalid') === 'true';\n })\n .findIndex((node) => {\n return node === nodeToCompare;\n });\n\n this.handlers.errorIndex(errorIndex);\n }\n\n private isDeleteKey(event: KeyboardEvent): boolean {\n return event.key === 'Backspace' || (event.key === 'x' && (event.ctrlKey || event.metaKey));\n }\n\n private getEmptyParagraph() {\n const element = document.createElement('p');\n\n element.innerHTML = this.emptyLineValue;\n\n return element;\n }\n\n private addEventListeners(textarea: HTMLElement) {\n textarea.addEventListener('paste', this.handlePaste);\n textarea.addEventListener('input', this.handleChange);\n textarea.addEventListener('focus', this.handleFocus);\n textarea.addEventListener('blur', this.handleBlur);\n textarea.addEventListener('keydown', this.handleKeyDown);\n textarea.addEventListener('mousedown', this.handleMouseDown);\n textarea.addEventListener('mousemove', this.handleMouseMove);\n textarea.addEventListener('mouseleave', this.handleMouseLeave);\n textarea.addEventListener('scroll', this.handleScroll);\n\n textarea.removeEventListener('keydown', this.handleSelectAll);\n }\n private removeEventListeners(textarea: HTMLElement) {\n textarea.removeEventListener('paste', this.handlePaste);\n textarea.removeEventListener('input', this.handleChange);\n textarea.removeEventListener('focus', this.handleFocus);\n textarea.removeEventListener('blur', this.handleBlur);\n textarea.removeEventListener('keydown', this.handleKeyDown);\n textarea.removeEventListener('mousedown', this.handleMouseDown);\n textarea.removeEventListener('mousemove', this.handleMouseMove);\n textarea.removeEventListener('mouseleave', this.handleMouseLeave);\n textarea.removeEventListener('scroll', this.handleScroll);\n\n textarea.addEventListener('keydown', this.handleSelectAll);\n }\n\n private handleSelectAll(event: KeyboardEvent) {\n if (event.key === 'a' && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n\n const node = event.target;\n if (node instanceof HTMLElement && node === this.textarea) {\n this.setSelection(node, 0, node.childNodes.length);\n }\n }\n }\n\n private isRangeSelection(): boolean {\n const selection = document.getSelection();\n\n return (\n selection?.focusNode !== selection?.anchorNode ||\n selection?.focusOffset !== selection?.anchorOffset\n );\n }\n\n private getSelectionDirection(): 'forward' | 'backward' | null {\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n\n if (\n (documentPosition === 0 && selection.anchorOffset > selection.focusOffset) || // if nodes are the same\n documentPosition === Node.DOCUMENT_POSITION_PRECEDING\n ) {\n return 'backward';\n }\n\n return 'forward';\n }\n\n return null;\n }\n}\n\nexport { InputField };\nexport type { InputFieldProps, ErrorItem };\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputField.types.js","names":[],"sources":["../../../../src/components/InputField/InputField.types.ts"],"sourcesContent":["type PasteProps = {\n /**\n * @default '\\n'\n */\n delimiter?: string;\n /**\n * @default row.trim();\n */\n lineProcessing?: (line: string) => string;\n /**\n * @default true\n */\n skipEmptyLines?: boolean;\n};\n\nexport type ErrorItem = {\n lineIndex: number;\n lineNode?: Node;\n errorMessage: string;\n};\n\nexport type InputFieldProps = {\n /**\n * Unique id\n */\n id?: string;\n\n /**\n * Placeholder for field\n */\n placeholder?: string;\n /**\n * String to render in textarea. OnChanging value, it will go throw paste pipeline\n */\n value: string;\n /**\n * This component doesn't have default onChange callback, because we think that you need only the result after every changes/fixes\n */\n onBlur: (value: string, e: Event) => void;\n\n /**\n * Size of component\n * @default m\n */\n size: 'm' | 'l';\n /**\n * State for show errors or valid(green) borders\n * @default normal\n */\n state: 'normal' | 'valid' | 'invalid';\n\n /**\n * Flag for disabling field\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Flag for readonly field\n * @default false\n */\n readonly?: boolean;\n\n /**\n * Min rows\n * @default 2\n */\n minRows: number;\n /**\n * Max rows\n * @default 10\n */\n maxRows: number;\n\n /**\n * List of available points to validate value\n * @default blur\n */\n validateOn: ('blur' | 'blurLine' | 'paste')[];\n\n /**\n * Function to validate line\n */\n lineValidation?: (line: string, lines: string[]) => { isValid: boolean; errorMessage: string };\n\n /**\n * Message for display error about whole field, not only one line\n */\n commonErrorMessage: string;\n\n /**\n * Delimiters (event.key) for lines\n * @default Enter\n */\n linesDelimiters?: string[];\n\n /**\n * Count of max lines in badge\n * @default 100\n */\n maxLines: number;\n\n /**\n * Paste props\n */\n pasteProps: PasteProps;\n\n /**\n * Function for process line after it was blurred\n */\n lineProcessing?: (line: string, lines: string[]) => string;\n\n /**\n * Internal\n */\n lastError: ErrorItem;\n\n /**\n * Internal\n */\n currentLineIndex: number;\n\n /**\n * Internal\n */\n linesCount: number;\n /**\n * Internal\n */\n onChangeLineIndex: (newIndex: number) => void;\n /**\n * Internal\n */\n onChangeLinesCount: (rowsCount: number) => void;\n\n /**\n * Internal\n */\n showErrors: boolean;\n /**\n * Internal\n * List of errors in rows\n */\n errors: ErrorItem[];\n /**\n * Internal\n * Select row with error\n */\n errorIndex: number;\n /**\n * Internal\n * Flag for select all row\n */\n highlightErrorIndex: boolean;\n /**\n * Internal\n */\n onErrorsChange: (errors: ErrorItem[]) => void;\n /**\n * Internal\n */\n onShowErrorsChange: (showErrors: boolean) => void;\n /**\n * Internal\n */\n onErrorIndexChange: (errorIndex: number) => void;\n\n /**\n * Internal\n */\n 'aria-describedby'?: string;\n};\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default } from './BulkTextarea';
|
|
2
|
-
//# sourceMappingURL=index.
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './BulkTextarea';\nexport type { BulkTextareaProps } from './BulkTextarea.types';\nexport type { ErrorItem } from './components/InputField/InputField.types';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,gBAAgB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"__intergalactic-dynamic-locales.js","names":["de","en","es","fr","it","ja","ko","nl","pt","tr","vi","zh","pl","sv","localizedMessages"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pt from './pt.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\nimport pl from './pl.json';\nimport sv from './sv.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAE1B,OAAO,IAAMC,iBAAiB,GAAG;EAC/Bd,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/bulk-textarea",
|
|
3
3
|
"description": "Semrush BulkTextarea Component",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.2-prerelease.0",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.mjs",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@semcore/utils": "4.45.0",
|
|
13
13
|
"@semcore/flex-box": "5.40.0",
|
|
14
|
-
"@semcore/button": "5.41.0",
|
|
15
|
-
"@semcore/typography": "5.
|
|
14
|
+
"@semcore/button": "5.41.1-prerelease.0",
|
|
15
|
+
"@semcore/typography": "5.51.0-prerelease.0",
|
|
16
16
|
"@semcore/counter": "3.37.2",
|
|
17
|
-
"@semcore/icon": "4.
|
|
17
|
+
"@semcore/icon": "4.57.0-prerelease.0",
|
|
18
18
|
"@semcore/popper": "5.45.2",
|
|
19
19
|
"@semcore/tooltip": "6.47.2",
|
|
20
20
|
"csstype": "3.0.8",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BulkTextarea.mjs","names":["React","createComponent","Component","Root","Box","InputField","Counter","ClearAll","ErrorsNavigation","localizedMessages","i18nEnhance","focusSourceEnhance","uniqueIdEnhance","BulkTextareaRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","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","_createClass","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","_assignProps","defaultValue","defaultState","locale","defaultErrors","defaultShowErrors","BulkTextarea"],"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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BulkTextarea.types.mjs","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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClearAll.mjs","names":["React","Root","sstyled","Button","CloseM","ClearAll","props","_ref","arguments[0]","_ref2","SButton","isHidden","styles","createElement","cn","_objectSpread","_assignProps","getI18nText"],"sources":["../../../src/components/ClearAll.tsx"],"sourcesContent":["import React from 'react';\nimport { IRootComponentProps, Root, sstyled } from '@semcore/core';\nimport Button from '@semcore/button';\nimport CloseM from '@semcore/icon/Close/m';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport function ClearAll(\n props: IRootComponentProps & { isHidden: boolean; getI18nText: ReturnType<typeof useI18n> },\n) {\n const SButton = Root;\n return (\n !props.isHidden &&\n sstyled(props.styles)(\n <SButton render={Button} theme='muted' use='tertiary' addonLeft={CloseM}>\n {props.getI18nText('BulkTextarea.ClearAllButton.buttonText')}\n </SButton>,\n )\n );\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAA8BC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AAClE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,OAAOC,MAAM,MAAM,uBAAuB;AAG1C,OAAO,SAASC,QAAQA,CACtBC,KAA2F,EAC3F;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACA,IAAMC,OAAO,GAIQP,MAAM;EAH3B,OACE,CAACG,KAAK,CAACK,QAAQ,KAAAF,KAAA,GACfP,OAAO,CAACI,KAAK,CAACM,MAAM,CAAC,eACnBZ,KAAA,CAAAa,aAAA,CAACH,OAAO,EAAAD,KAAA,CAAAK,EAAA,YAAAC,aAAA,KAAAC,YAAA;IAAA,SAAuB,OAAO;IAAA,OAAK,UAAU;IAAA,aAAYZ;EAAM,GAAAG,IAAA,KACpED,KAAK,CAACW,WAAW,CAAC,wCAAwC,CAAC,CACpD,CACX;AAEL"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.mjs","names":["React","Root","ScreenReaderOnly","CounterKit","Counter","props","_ref","arguments[0]","theme","linesCount","maxLines","getI18nText","createElement","_assignProps","rowsNumber"],"sources":["../../../src/components/Counter.tsx"],"sourcesContent":["import React from 'react';\nimport { Root } from '@semcore/core';\nimport { ScreenReaderOnly } from '@semcore/flex-box';\nimport CounterKit, { CounterProps as CounterPropsKit } from '@semcore/counter';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport type CounterProps = {\n theme: CounterPropsKit['theme'];\n linesCount: number;\n maxLines: number;\n getI18nText: ReturnType<typeof useI18n>;\n};\n\nexport function Counter(props: CounterProps) {\n const { theme, linesCount, maxLines, getI18nText } = props;\n\n return (\n <Root render={CounterKit} ml={1} theme={theme}>\n {linesCount}\n <span aria-hidden='true'>/{maxLines}</span>\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.ofAllowedRows:sr-message', { rowsNumber: maxLines })}\n </ScreenReaderOnly>\n {theme === 'warning' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitReached:sr-message')}\n </ScreenReaderOnly>\n )}\n {theme === 'danger' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitExceeded:sr-message')}\n </ScreenReaderOnly>\n )}\n </Root>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,OAAOC,UAAU,MAA2C,kBAAkB;AAU9E,OAAO,SAASC,OAAOA,CAACC,KAAmB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;EAC3C,IAAQC,KAAK,GAAwCH,KAAK,CAAlDG,KAAK;IAAEC,UAAU,GAA4BJ,KAAK,CAA3CI,UAAU;IAAEC,QAAQ,GAAkBL,KAAK,CAA/BK,QAAQ;IAAEC,WAAW,GAAKN,KAAK,CAArBM,WAAW;EAEhD,oBACEX,KAAA,CAAAY,aAAA,CAAcT,UAAU,EAAAU,YAAA;IAAA,MAAM,CAAC;IAAA,SAASL;EAAK,GAAAF,IAAA,GAC1CG,UAAU,eACXT,KAAA,CAAAY,aAAA;IAAM,eAAY;EAAM,GAAC,GAAC,EAACF,QAAQ,CAAQ,eAC3CV,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,+CAA+C,EAAE;IAAEG,UAAU,EAAEJ;EAAS,CAAC,CAAC,CACtE,EAClBF,KAAK,KAAK,SAAS,iBAClBR,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,8CAA8C,CAAC,CAE/D,EACAH,KAAK,KAAK,QAAQ,iBACjBR,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,+CAA+C,CAAC,CAEhE,CACI;AAEX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorsNavigation.mjs","names":["React","Button","Flex","Text","ChevronUpM","ChevronDownM","ErrorsNavigation","props","errorIndex","errorsCount","onPrevError","onNextError","size","showErrors","getI18nText","disabled","nextButtonRef","prevButtonRef","createElement","alignItems","Fragment","onClick","addonLeft","use","theme","hintPlacement","ref","color","ml"],"sources":["../../../src/components/ErrorsNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport Button from '@semcore/button';\nimport { Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport ChevronUpM from '@semcore/icon/ChevronUp/m';\nimport ChevronDownM from '@semcore/icon/ChevronDown/m';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport type ErrorsNavigationProps = {\n errorIndex: number;\n onPrevError: () => void;\n onNextError: () => void;\n errorsCount: number;\n size: 'm' | 'l';\n showErrors: boolean;\n getI18nText: ReturnType<typeof useI18n>;\n disabled: boolean;\n nextButtonRef: React.RefObject<HTMLButtonElement>;\n prevButtonRef: React.RefObject<HTMLButtonElement>;\n};\n\nexport function ErrorsNavigation(props: ErrorsNavigationProps) {\n const {\n errorIndex,\n errorsCount,\n onPrevError,\n onNextError,\n size,\n showErrors,\n getI18nText,\n disabled,\n nextButtonRef,\n prevButtonRef,\n } = props;\n return (\n <Flex alignItems='center'>\n {errorsCount > 0 && showErrors && (\n <>\n <Button\n onClick={onNextError}\n addonLeft={ChevronDownM}\n use={'tertiary'}\n theme={'muted'}\n aria-label={getI18nText('BulkTextarea.ErrorsNavigation.nextError:aria-label')}\n hintPlacement={'bottom'}\n disabled={disabled}\n ref={nextButtonRef}\n />\n <Button\n onClick={onPrevError}\n addonLeft={ChevronUpM}\n use={'tertiary'}\n theme={'muted'}\n aria-label={getI18nText('BulkTextarea.ErrorsNavigation.previousError:aria-label')}\n hintPlacement={'bottom'}\n disabled={disabled}\n ref={prevButtonRef}\n />\n <Text size={size === 'l' ? 300 : 200} color='text-critical' ml={1} disabled={disabled}>\n {errorIndex === -1\n ? getI18nText('BulkTextarea.ErrorsNavigation.totalErrors', { errorsCount })\n : getI18nText('BulkTextarea.ErrorsNavigation.selectedError', {\n errorIndex: errorIndex + 1,\n errorsCount,\n })}\n </Text>\n </>\n )}\n </Flex>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,UAAU,MAAM,2BAA2B;AAClD,OAAOC,YAAY,MAAM,6BAA6B;AAgBtD,OAAO,SAASC,gBAAgBA,CAACC,KAA4B,EAAE;EAC7D,IACEC,UAAU,GAURD,KAAK,CAVPC,UAAU;IACVC,WAAW,GASTF,KAAK,CATPE,WAAW;IACXC,WAAW,GAQTH,KAAK,CARPG,WAAW;IACXC,WAAW,GAOTJ,KAAK,CAPPI,WAAW;IACXC,IAAI,GAMFL,KAAK,CANPK,IAAI;IACJC,UAAU,GAKRN,KAAK,CALPM,UAAU;IACVC,WAAW,GAITP,KAAK,CAJPO,WAAW;IACXC,QAAQ,GAGNR,KAAK,CAHPQ,QAAQ;IACRC,aAAa,GAEXT,KAAK,CAFPS,aAAa;IACbC,aAAa,GACXV,KAAK,CADPU,aAAa;EAEf,oBACEjB,KAAA,CAAAkB,aAAA,CAAChB,IAAI;IAACiB,UAAU,EAAC;EAAQ,GACtBV,WAAW,GAAG,CAAC,IAAII,UAAU,iBAC5Bb,KAAA,CAAAkB,aAAA,CAAAlB,KAAA,CAAAoB,QAAA,qBACEpB,KAAA,CAAAkB,aAAA,CAACjB,MAAM;IACLoB,OAAO,EAAEV,WAAY;IACrBW,SAAS,EAAEjB,YAAa;IACxBkB,GAAG,EAAE,UAAW;IAChBC,KAAK,EAAE,OAAQ;IACf,cAAYV,WAAW,CAAC,oDAAoD,CAAE;IAC9EW,aAAa,EAAE,QAAS;IACxBV,QAAQ,EAAEA,QAAS;IACnBW,GAAG,EAAEV;EAAc,EACnB,eACFhB,KAAA,CAAAkB,aAAA,CAACjB,MAAM;IACLoB,OAAO,EAAEX,WAAY;IACrBY,SAAS,EAAElB,UAAW;IACtBmB,GAAG,EAAE,UAAW;IAChBC,KAAK,EAAE,OAAQ;IACf,cAAYV,WAAW,CAAC,wDAAwD,CAAE;IAClFW,aAAa,EAAE,QAAS;IACxBV,QAAQ,EAAEA,QAAS;IACnBW,GAAG,EAAET;EAAc,EACnB,eACFjB,KAAA,CAAAkB,aAAA,CAACf,IAAI;IAACS,IAAI,EAAEA,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAI;IAACe,KAAK,EAAC,eAAe;IAACC,EAAE,EAAE,CAAE;IAACb,QAAQ,EAAEA;EAAS,GACnFP,UAAU,KAAK,CAAC,CAAC,GACdM,WAAW,CAAC,2CAA2C,EAAE;IAAEL,WAAW,EAAXA;EAAY,CAAC,CAAC,GACzEK,WAAW,CAAC,6CAA6C,EAAE;IACzDN,UAAU,EAAEA,UAAU,GAAG,CAAC;IAC1BC,WAAW,EAAXA;EACF,CAAC,CAAC,CACD,CAEV,CACI;AAEX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputField.mjs","names":["React","Component","sstyled","Root","Box","style","_sstyled","insert","Tooltip","extractAriaProps","uniqueIDEnhancement","DOMPurify","InputField","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","visibleErrorPopper","keyboardLineIndex","mouseLineIndex","handlePaste","bind","handleChange","handleFocus","handleBlur","handleKeyDown","handleMouseDown","handleMouseMove","handleMouseLeave","handleScroll","handleSelectAll","textarea","createContentEditableElement","_createClass","key","value","uncontrolledProps","linesCount","errorIndex","componentDidMount","_this$containerRef$cu","containerRef","current","append","handleValueOutChange","componentDidUpdate","prevProps","prevState","_this2","_this$props","errors","showErrors","disabled","readonly","highlightErrorIndex","lineProcessing","_this$props$ariaDesc","ariaDescribedby","getValues","join","delimiter","length","toggleAriaInvalid","setAttribute","handleChangeErrorIndex","isDisabled","removeEventListeners","addEventListeners","state","_lines$prevState$keyb","lines","newValue","newValueTextNode","document","createTextNode","paragraph","childNodes","item","HTMLParagraphElement","innerHTML","emptyLineValue","replaceChild","validateLine","setTimeout","newNode","setErrorIndex","recalculateErrors","recalculateLinesCount","asProps","onChangeLineIndex","componentWillUnmount","get","_this$asProps","Boolean","uid","concat","_ref3","_errorItem$errorMessa","_errorItem","_errorItem2","_this$asProps2","commonErrorMessage","lastError","_this$state","currentLineIndex","errorByInteraction","errorItem","find","e","lineIndex","errorMessage","isCommonError","createElement","id","placeholder","_extractAriaProps","extractedAriaProps","ariaProp","addEventListener","_this$props2","onChangeLinesCount","textContent","_this$textarea","listOfNodes","prepareNodesForPaste","replaceChildren","apply","_toConsumableArray","_this3","scrollingTimeout","clearTimeout","isScrolling","window","event","element","target","HTMLElement","toggleErrorsPopper","isFocusing","getAttribute","setState","changeTriggerTimeout","rowNode","getNodeFromSelection","_event$clipboardData","preventDefault","validateOn","clipboardData","getData","selection","getSelection","anchorNode","focusNode","anchorOffset","focusOffset","documentPosition","compareDocumentPosition","direction","getSelectionDirection","anchorElement","focusElement","fromOffset","toOffset","Text","parentElement","textNode","position","_this$textarea2","_lastNodeToInsert$tex","lastNodeToInsert","_anchorNode$textConte","_anchorNode$textConte2","_focusNode$textConten","_focusNode$textConten2","_ref4","before","substring","after","deleteFromDocument","removeChild","firstNodeToInsert","splice","_lastNodeToInsert$tex2","_lastNodeToInsert$tex3","_anchorNode$textConte3","_anchorNode$textConte4","_position","_position2","setSelection","parentNode","_textNode","console","warn","includes","HTMLDivElement","InputEvent","_firstNode$textConten2","nodes","firstNode","secondNode","_firstNode$textConten","nodeText","firstRow","text","replaceWith","setPosition","HTMLBRElement","trim","maxDeep","_rowNode","_rowNode2","_rowNode$textContent","_this$popper","_childNodes$item$text","offset","firstSymbol","at","lastSymbol","getEmptyParagraph","inputType","_this$asProps3","isValid","trigger","lineNode","popper","elements","reference","_this$setPopperTrigge","setPopperTrigger","_this$setPopperTrigge2","nodeIndex","emptyParagraph","emptyBr","toggleErrorsPopperByKeyboard","_this4","_this$asProps4","onBlur","_this5","linesDelimiters","currentNode","_currentNode$textCont","currentRowValue","_selection$focusNode","_selectionNode$textCo","_currentNode$textCont2","_row$textContent","selectionNode","selectionOffset","newRowValue","undefined","_selectionNode$textCo2","_selectionNode$textCo3","row","previousSibling","handleCursorMovement","isDeleteKey","_currentNode$textCont3","isRangeSelection","prevNode","_prevNode$textContent","_text$textContent$len","_text$textContent","_currentNode$textCont4","_focusElement$parentN","_anchorElement$parent","_focusElement$parentN2","_focusElement$parentN3","anchorParagraph","focusParagraph","paragraphs","Array","from","children","isCleaning","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","f","ctrlKey","metaKey","render","_ref","_ref2","_this$containerRef$cu2","_this6","SInputField","_this$asProps5","styles","_this$errorMessage","visibleErrorTooltip","_extractAriaProps2","__excludeProps","Fragment","cn","boundary","tether","_ref5","setTrigger","Popper","popperDescribedId","_objectSpread","_assignProps","_pasteProps$lineProce","_pasteProps$skipEmpty","_pasteProps$delimiter","_this7","pasteProps","line","trimmedLine","skipEmptyLines","split","forEach","preparedLine","node","allSpacesRegExp","RegExp","sanitize","replace","spaceLineValue","push","index","_node$dataset$errorme","dataset","errormessage","onErrorsChange","_this8","linesCountTimeout","_this8$asProps","maxLines","overMaxRows","values","_node$textContent","timer","_this9","toggleErrorsPopperTimeout","_this10","targetElement","isInvalidRow","indexOf","newState","_this10$setPopperTrig","forceUpdate","errorsLength","removeAttribute","_error$lineNode","_this11","error","lineValidation","_node$textContent2","_lineValidation","start","end","scrollType","arguments","range","createRange","setStart","setEnd","removeAllRanges","addRange","nodeToScroll","scrollIntoView","block","inline","behavior","nextNode","nextSibling","_nextNode$textContent","_nextNode$textContent2","_selection$focusOffse","nodeToSetSelection","currentOffset","nodeToCompare","filter","Element","findIndex","handlers","removeEventListener","Node","DOCUMENT_POSITION_PRECEDING","defaultValue","size","minRows","maxRows","defaultShowErrors","defaultErrorIndex","defaultLinesCount"],"sources":["../../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\n\nimport style from './inputField.shadow.css';\nimport { PopperContext } from '@semcore/popper';\nimport Tooltip from '@semcore/tooltip';\nimport { InputFieldProps, ErrorItem } from './InputField.types';\nimport { extractAriaProps } from '@semcore/utils/lib/ariaProps';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport DOMPurify from 'dompurify';\n\ntype IndexKeys = 'keyboardLineIndex' | 'mouseLineIndex';\n\ntype State = {\n [key in IndexKeys]: number;\n} & {\n visibleErrorPopper: boolean;\n};\n\nclass InputField extends Component<InputFieldProps, {}, State, typeof InputField.enhance> {\n static displayName = 'Textarea';\n static style = style;\n\n static enhance = [uniqueIDEnhancement()] as const;\n\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n state: 'normal',\n minRows: 2,\n maxRows: 10,\n defaultShowErrors: false,\n defaultErrorIndex: -1,\n defaultLinesCount: 0,\n };\n\n delimiter = '\\n';\n skipEmptyLines = true;\n emptyLineValue = '';\n spaceLineValue = ' ';\n\n containerRef = React.createRef<HTMLDivElement>();\n textarea: HTMLDivElement;\n\n popper: PopperContext['popper'] | null = null;\n setPopperTrigger: PopperContext['setTrigger'] | null = null;\n\n errorByInteraction: 'keyboard' | 'mouse' | null = null;\n\n changeTriggerTimeout = 0;\n isScrolling = false;\n scrollingTimeout = 0;\n\n toggleErrorsPopperTimeout = 0;\n\n isFocusing = false;\n\n linesCountTimeout = 0;\n\n state = {\n visibleErrorPopper: false,\n keyboardLineIndex: -1,\n mouseLineIndex: -1,\n };\n\n constructor(props: InputFieldProps) {\n super(props);\n\n this.handlePaste = this.handlePaste.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleSelectAll = this.handleSelectAll.bind(this);\n\n this.textarea = this.createContentEditableElement(props);\n }\n\n uncontrolledProps() {\n return {\n value: null,\n linesCount: null,\n errorIndex: null,\n };\n }\n\n componentDidMount() {\n this.containerRef.current?.append(this.textarea);\n\n this.handleValueOutChange();\n }\n\n componentDidUpdate(prevProps: InputFieldProps, prevState: State): void {\n const {\n value,\n errors,\n errorIndex,\n showErrors,\n disabled,\n readonly,\n highlightErrorIndex,\n lineProcessing,\n ['aria-describedby']: ariaDescribedby = '',\n } = this.props;\n\n if (prevProps.value !== value && value !== this.getValues().join(this.delimiter)) {\n this.handleValueOutChange();\n }\n\n if (prevProps.showErrors !== showErrors || prevProps.errors.length !== errors.length) {\n this.toggleAriaInvalid(showErrors, errors.length);\n\n if (showErrors === false) {\n this.textarea.setAttribute('aria-describedby', ariaDescribedby);\n }\n }\n\n if (prevProps.errorIndex !== errorIndex && highlightErrorIndex) {\n this.handleChangeErrorIndex(errorIndex);\n }\n\n if (prevProps.disabled !== disabled || prevProps.readonly !== readonly) {\n if (this.isDisabled) {\n this.textarea.setAttribute('contenteditable', 'false');\n this.removeEventListeners(this.textarea);\n } else {\n this.textarea.setAttribute('contenteditable', 'true');\n this.addEventListeners(this.textarea);\n }\n\n if (disabled) {\n this.textarea.setAttribute('tabindex', '-1');\n } else {\n this.textarea.setAttribute('tabindex', '0');\n }\n }\n\n const { keyboardLineIndex } = this.state;\n\n if (prevState.keyboardLineIndex !== -1 && prevState.keyboardLineIndex !== keyboardLineIndex) {\n if (lineProcessing) {\n const lines = this.getValues();\n const newValue = lineProcessing(lines[prevState.keyboardLineIndex] ?? '', lines);\n const newValueTextNode = document.createTextNode(newValue);\n const paragraph = this.textarea.childNodes.item(prevState.keyboardLineIndex);\n\n if (paragraph instanceof HTMLParagraphElement) {\n if (newValue === '') {\n paragraph.innerHTML = this.emptyLineValue;\n } else {\n paragraph.replaceChild(newValueTextNode, paragraph.childNodes.item(0));\n }\n }\n\n this.validateLine(paragraph);\n\n setTimeout(() => {\n const newNode = this.textarea.childNodes.item(keyboardLineIndex);\n if (newNode) {\n this.setErrorIndex(newNode);\n }\n }, 0); // need this timeout to update errorIndex to the new (usually empty) line\n }\n\n if (!showErrors) {\n this.recalculateErrors();\n }\n this.recalculateLinesCount();\n this.asProps.onChangeLineIndex(keyboardLineIndex);\n }\n }\n\n componentWillUnmount() {\n this.removeEventListeners(this.textarea);\n }\n\n get isDisabled(): boolean {\n const { disabled, readonly } = this.asProps;\n\n return Boolean(disabled || readonly);\n }\n\n get popperDescribedId() {\n const { uid } = this.asProps;\n return `bulk-textarea-${uid}-popper-describedby`;\n }\n\n get errorMessage() {\n const { errors, errorIndex, commonErrorMessage, lastError } = this.asProps;\n const { mouseLineIndex, keyboardLineIndex } = this.state;\n const currentLineIndex =\n this.errorByInteraction === 'keyboard'\n ? keyboardLineIndex\n : this.errorByInteraction === 'mouse'\n ? mouseLineIndex\n : -1;\n let errorItem: ErrorItem | undefined = errors[errorIndex];\n\n if (currentLineIndex !== -1) {\n errorItem = errors.find((e) => e?.lineIndex === currentLineIndex);\n }\n\n const errorMessage =\n errors.length === 0 && !lastError // show any errors only if there are at least one error\n ? null\n : errorItem?.errorMessage ?? lastError?.errorMessage ?? commonErrorMessage;\n const isCommonError = !errorItem?.errorMessage && !lastError?.errorMessage;\n\n return {\n errorMessage,\n isCommonError,\n };\n }\n\n createContentEditableElement(props: InputFieldProps) {\n const textarea = document.createElement('div');\n textarea.setAttribute('contentEditable', props.disabled || props.readonly ? 'false' : 'true');\n textarea.setAttribute('role', 'textbox');\n textarea.setAttribute('classname', 'editable');\n\n if (props.id) {\n textarea.setAttribute('id', props.id);\n }\n if (props.placeholder) {\n textarea.setAttribute('placeholder', props.placeholder);\n }\n const { extractedAriaProps } = extractAriaProps(props);\n for (const key in extractedAriaProps) {\n const ariaProp: string | undefined = (props as any)[key];\n if (ariaProp) {\n textarea.setAttribute(key, ariaProp);\n }\n }\n\n if (!props.disabled) {\n textarea.setAttribute('tabIndex', '0');\n } else {\n textarea.setAttribute('tabIndex', '-1');\n }\n\n if (!props.disabled && !props.readonly) {\n this.addEventListeners(textarea);\n } else {\n textarea.addEventListener('keydown', this.handleSelectAll.bind(this));\n }\n\n return textarea;\n }\n\n handleValueOutChange() {\n const { value, onChangeLinesCount } = this.props;\n\n if (value === '') {\n this.textarea.textContent = '';\n onChangeLinesCount(0);\n } else {\n const listOfNodes = this.prepareNodesForPaste(value);\n\n this.textarea.replaceChildren(...listOfNodes);\n\n this.recalculateLinesCount();\n }\n }\n\n handleScroll(): void {\n if (this.scrollingTimeout) {\n clearTimeout(this.scrollingTimeout);\n }\n\n this.isScrolling = true;\n\n this.scrollingTimeout = window.setTimeout(() => {\n this.isScrolling = false;\n }, 50);\n }\n\n handleMouseDown(event: MouseEvent): void {\n // we need to change keyboardLineIndex, because the caret in real on that current row\n this.errorByInteraction = 'keyboard';\n const element = event.target;\n\n if (element instanceof HTMLElement) {\n // we need to change keyboardLineIndex, because the caret in real on that current row\n this.toggleErrorsPopper('keyboardLineIndex', element);\n\n this.setErrorIndex(element);\n }\n }\n\n handleMouseMove(event: MouseEvent): void {\n this.errorByInteraction = 'mouse';\n const element = event.target;\n\n if (element !== this.textarea) {\n if (\n this.isFocusing ||\n (element instanceof HTMLElement && element.getAttribute('aria-invalid') === 'true')\n ) {\n this.toggleErrorsPopper('mouseLineIndex', element);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n }\n\n handleMouseLeave(event: MouseEvent): void {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n if (this.isFocusing) {\n this.errorByInteraction = 'keyboard';\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n this.setState({ mouseLineIndex: -1 });\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n handlePaste(event: ClipboardEvent) {\n event.preventDefault();\n const { validateOn } = this.asProps;\n const value = event.clipboardData?.getData('text/plain');\n const listOfNodes = value ? this.prepareNodesForPaste(value) : [];\n\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const anchorOffset = selection.anchorOffset;\n const focusOffset = selection.focusOffset;\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n const direction = this.getSelectionDirection();\n\n const anchorElement = direction === 'forward' ? selection.anchorNode : selection.focusNode;\n const focusElement = direction === 'forward' ? selection.focusNode : selection.anchorNode;\n const fromOffset = direction === 'forward' ? anchorOffset : focusOffset;\n const toOffset = direction === 'forward' ? focusOffset : anchorOffset;\n const anchorNode =\n anchorElement instanceof Text ? anchorElement.parentElement : anchorElement;\n const focusNode = focusElement instanceof Text ? focusElement.parentElement : focusElement;\n\n let textNode: ChildNode | null = null;\n let position: number | null = null;\n\n if (focusElement === this.textarea) {\n this.textarea.replaceChildren(...listOfNodes);\n\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n } else if (\n focusNode instanceof HTMLParagraphElement &&\n anchorNode instanceof HTMLParagraphElement\n ) {\n const before = anchorNode?.textContent?.substring(0, fromOffset) ?? '';\n const after = focusNode?.textContent?.substring(toOffset) ?? '';\n\n selection.deleteFromDocument();\n\n if (documentPosition !== 0) {\n this.textarea.removeChild(focusNode);\n }\n\n const firstNodeToInsert = listOfNodes.splice(0, 1)[0];\n const lastNodeToInsert = listOfNodes[listOfNodes.length - 1];\n\n anchorNode.textContent = before + firstNodeToInsert?.textContent ?? '';\n\n anchorNode.after(...listOfNodes);\n\n if (lastNodeToInsert) {\n lastNodeToInsert.textContent = (lastNodeToInsert.textContent ?? '') + after;\n textNode = lastNodeToInsert.childNodes.item(0);\n position = (lastNodeToInsert.textContent ?? '').length;\n\n this.validateLine(lastNodeToInsert);\n this.setErrorIndex(lastNodeToInsert);\n } else {\n position = (anchorNode.textContent ?? '').length;\n anchorNode.textContent = (anchorNode.textContent ?? '') + after;\n textNode = anchorNode.childNodes.item(0);\n\n this.validateLine(anchorNode);\n this.setErrorIndex(anchorNode);\n }\n }\n\n if (textNode instanceof Text) {\n this.setSelection(textNode, position ?? 1, position ?? 1);\n this.toggleErrorsPopper('keyboardLineIndex', textNode.parentNode);\n } else {\n console.warn('incorrect child type', textNode, textNode?.parentNode);\n }\n }\n\n this.recalculateLinesCount();\n\n if (validateOn.includes('paste') || this.asProps.showErrors) {\n this.recalculateErrors();\n }\n }\n\n handleChange(event: Event) {\n const target = event.target;\n if (target instanceof HTMLDivElement && event instanceof InputEvent) {\n const nodes = this.textarea.childNodes;\n const firstNode = nodes.item(0);\n const secondNode = nodes.item(1);\n const selection = document.getSelection();\n\n if (firstNode instanceof Text) {\n const nodeText = firstNode.textContent ?? '';\n const firstRow = document.createElement('p');\n const text = document.createTextNode(nodeText);\n firstRow.append(text);\n firstNode.replaceWith(firstRow);\n\n selection?.setPosition(firstRow, nodeText.length);\n } else if (!firstNode || (firstNode instanceof HTMLBRElement && nodes.length === 1)) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n } else if (firstNode instanceof HTMLParagraphElement && !firstNode.textContent?.trim()) {\n if (nodes.length <= 1 || secondNode instanceof HTMLBRElement) {\n this.textarea.textContent = '';\n this.setState({ keyboardLineIndex: 0 });\n }\n }\n\n let maxDeep = 10;\n let rowNode = selection?.focusNode;\n\n while (rowNode?.parentNode !== this.textarea && maxDeep > 0) {\n rowNode = rowNode?.parentNode;\n maxDeep--;\n }\n\n if (rowNode instanceof HTMLParagraphElement) {\n const childNodes = rowNode.childNodes;\n const textContent = rowNode.textContent ?? '';\n\n if (childNodes.length > 1) {\n const offset = childNodes.item(0).textContent?.length;\n\n rowNode.textContent = textContent;\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n\n if (textContent.length > 0) {\n const firstSymbol = textContent.at(0);\n const lastSymbol = textContent.at(textContent.length - 1);\n\n if (\n firstSymbol === this.getEmptyParagraph().textContent ||\n lastSymbol === this.getEmptyParagraph().textContent\n ) {\n let offset: number | null = null;\n if (firstSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(1);\n offset =\n event.inputType === 'deleteContentBackward' ||\n event.inputType === 'deleteContentForward'\n ? 0\n : rowNode.textContent.length;\n } else if (lastSymbol === this.getEmptyParagraph().textContent) {\n rowNode.textContent = textContent.substring(0, textContent.length - 1);\n offset = rowNode.textContent.length;\n }\n\n if (offset) {\n this.setSelection(rowNode.childNodes.item(0), offset, offset);\n }\n }\n } else if (childNodes.length === 1 && childNodes[0] instanceof HTMLBRElement) {\n rowNode.innerHTML = this.emptyLineValue;\n }\n\n const { errors, showErrors } = this.asProps;\n const isValid = this.validateLine(rowNode);\n this.recalculateErrors();\n this.setErrorIndex(rowNode);\n\n if (!isValid && showErrors) {\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, 0);\n }\n\n const trigger =\n !isValid || (isValid && errors.length === 1 && errors[0].lineNode === rowNode)\n ? rowNode\n : this.textarea;\n\n if (showErrors && this.popper?.current.state.elements.reference !== trigger) {\n this.setPopperTrigger?.(trigger);\n }\n } else if (rowNode === null) {\n this.setPopperTrigger?.(this.textarea);\n\n if (selection?.focusNode === this.textarea && this.textarea.childNodes.length > 1) {\n const nodeIndex = selection.focusOffset;\n const emptyParagraph = this.textarea.childNodes.item(nodeIndex - 1);\n const emptyBr = this.textarea.childNodes.item(nodeIndex);\n\n this.textarea.removeChild(emptyBr);\n\n if (emptyParagraph instanceof HTMLParagraphElement) {\n emptyParagraph.innerHTML = this.emptyLineValue;\n }\n\n if (emptyParagraph) {\n this.setSelection(emptyParagraph, 0, 0);\n }\n } else {\n this.setSelection(this.textarea, 0, 0);\n }\n }\n\n this.recalculateLinesCount();\n }\n }\n\n handleFocus(event: FocusEvent) {\n this.isFocusing = true;\n this.errorByInteraction = 'keyboard';\n\n if (this.asProps.showErrors) {\n this.toggleErrorsPopperByKeyboard(150);\n } else {\n this.toggleErrorsPopper('keyboardLineIndex', this.textarea);\n }\n }\n\n handleBlur(event: Event) {\n this.isFocusing = false;\n this.setState({ visibleErrorPopper: false });\n\n const { validateOn, onBlur } = this.asProps;\n\n if (validateOn.includes('blur')) {\n this.recalculateErrors();\n }\n\n onBlur(this.getValues().join(this.delimiter), event);\n\n setTimeout(() => {\n this.setState({ keyboardLineIndex: -1 });\n }, 200);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n this.errorByInteraction = 'keyboard';\n const { linesDelimiters } = this.asProps;\n\n const currentNode = this.getNodeFromSelection();\n\n if (event.key === 'Enter' || linesDelimiters?.includes(event.key)) {\n if (currentNode === this.textarea) {\n event.preventDefault();\n }\n if (currentNode instanceof HTMLParagraphElement) {\n const currentRowValue = currentNode.textContent?.trim();\n\n if (!currentRowValue) {\n event.preventDefault();\n } else {\n event.preventDefault();\n const selection = document.getSelection();\n const selectionNode =\n selection?.focusNode instanceof Text\n ? selection.focusNode\n : selection?.focusNode?.childNodes.item(0);\n const selectionOffset = selection?.focusOffset;\n\n let newRowValue = '';\n\n if (\n selectionNode instanceof Text &&\n selectionOffset !== undefined &&\n selectionOffset !== selectionNode.textContent?.length\n ) {\n newRowValue =\n selectionNode.textContent?.substring(selectionOffset) ?? this.emptyLineValue;\n\n if (selectionNode.textContent) {\n selectionNode.textContent = selectionNode.textContent.substring(0, selectionOffset);\n }\n }\n\n if (currentNode.textContent?.trim() === '') {\n currentNode.innerHTML = this.emptyLineValue;\n }\n\n const row = document.createElement('p');\n if (newRowValue) {\n row.textContent = newRowValue;\n } else {\n row.innerHTML = this.emptyLineValue;\n }\n currentNode.after(row);\n\n this.setSelection(row, 0, 0);\n\n this.validateLine(currentNode);\n this.validateLine(row);\n if (currentNode.previousSibling) {\n this.validateLine(currentNode.previousSibling);\n }\n this.setErrorIndex(row);\n\n if (row.textContent?.trim() !== '') {\n this.recalculateLinesCount();\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (currentNode instanceof HTMLParagraphElement) {\n this.handleCursorMovement(currentNode, event);\n }\n this.toggleErrorsPopperByKeyboard(200);\n } else if (this.isDeleteKey(event) && currentNode instanceof HTMLParagraphElement) {\n if (currentNode.textContent?.trim() === '' && !this.isRangeSelection()) {\n // Backspace on empty row\n const prevNode = currentNode.previousSibling;\n if (prevNode instanceof HTMLParagraphElement) {\n event.preventDefault();\n this.textarea.removeChild(currentNode);\n this.toggleErrorsPopperByKeyboard(0);\n\n if (\n prevNode.textContent?.trim() === '' &&\n prevNode.previousSibling === null &&\n this.textarea.childNodes.length === 1\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n if (prevNode instanceof HTMLParagraphElement) {\n const text = prevNode.childNodes.item(0);\n const offset = text.textContent?.length ?? 0;\n this.setSelection(text, offset, offset);\n } else {\n console.warn('incorrect prevNode type', prevNode);\n }\n }\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n } else if (this.isRangeSelection()) {\n const selection = document.getSelection();\n\n const direction = this.getSelectionDirection();\n const anchorElement =\n direction === 'backward' ? selection?.focusNode : selection?.anchorNode;\n const focusElement =\n direction === 'backward' ? selection?.anchorNode : selection?.focusNode;\n const anchorOffset =\n direction === 'backward' ? selection?.focusOffset : selection?.anchorOffset;\n const focusOffset =\n direction === 'backward' ? selection?.anchorOffset : selection?.focusOffset;\n\n // Backspace on selected full row\n if (\n anchorElement === focusElement &&\n anchorOffset === 0 &&\n ((focusElement === currentNode && focusOffset === 1) ||\n focusOffset === currentNode.textContent?.length)\n ) {\n event.preventDefault();\n\n const anchorParagraph = anchorElement?.parentElement;\n const focusParagraph = focusElement?.parentElement;\n const childNodes = this.textarea.childNodes;\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n currentNode.innerHTML = this.emptyLineValue;\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n // Backspace on selected few full rows\n else if (\n focusElement !== anchorElement &&\n focusElement instanceof Text &&\n anchorElement instanceof Text &&\n focusElement?.textContent === focusElement?.parentNode?.textContent &&\n anchorElement?.textContent === anchorElement?.parentNode?.textContent &&\n anchorOffset === 0 &&\n focusOffset === focusElement?.parentNode?.textContent?.length\n ) {\n event.preventDefault();\n\n const paragraphs = Array.from(this.textarea.children);\n const anchorParagraph = anchorElement.parentElement;\n const focusParagraph = focusElement.parentElement;\n const childNodes = this.textarea.childNodes;\n\n if (\n anchorParagraph === childNodes.item(0) &&\n focusParagraph === childNodes.item(childNodes.length - 1)\n ) {\n this.textarea.textContent = '';\n this.setSelection(this.textarea, 0, 0);\n } else {\n let isCleaning = false;\n\n for (const paragraph of paragraphs) {\n if (paragraph === anchorParagraph || isCleaning) {\n isCleaning = true;\n\n if (paragraph === focusParagraph) {\n focusParagraph.innerHTML = this.emptyLineValue;\n this.setSelection(focusParagraph, 0, 0);\n break;\n } else {\n this.textarea.removeChild(paragraph);\n }\n }\n }\n\n this.validateLine(currentNode);\n }\n\n this.setErrorIndex(currentNode);\n this.recalculateLinesCount();\n\n setTimeout(() => {\n this.recalculateErrors();\n }, 0);\n\n this.toggleErrorsPopperByKeyboard(0);\n }\n }\n } else if (event.key === 'z' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n }\n }\n\n render() {\n const SInputField = Root;\n const { styles, showErrors } = this.asProps;\n const { visibleErrorPopper } = this.state;\n\n const { errorMessage, isCommonError } = this.errorMessage;\n const visibleErrorTooltip =\n showErrors && visibleErrorPopper && Boolean(errorMessage) && !this.isDisabled;\n\n const { __excludeProps } = extractAriaProps(this.asProps);\n\n return sstyled(styles)(\n <>\n <Tooltip\n interaction={'none'}\n placement={isCommonError ? 'right-start' : 'right'}\n visible={visibleErrorTooltip}\n theme={'warning'}\n offset={isCommonError ? undefined : [0, 26]}\n preventOverflow={{\n boundary: this.containerRef.current ?? undefined,\n tether: false,\n }}\n >\n {({ popper, setTrigger }) => {\n if (!this.popper) {\n this.setPopperTrigger = setTrigger;\n // @ts-ignore\n this.popper = popper;\n }\n\n return <Tooltip.Popper id={this.popperDescribedId}>{errorMessage}</Tooltip.Popper>;\n }}\n </Tooltip>\n <SInputField\n render={Box}\n ref={this.containerRef}\n __excludeProps={['onBlur', 'value', ...__excludeProps]}\n />\n </>,\n );\n }\n\n private prepareNodesForPaste(value: string): HTMLParagraphElement[] {\n const listOfNodes: HTMLParagraphElement[] = [];\n const { pasteProps } = this.asProps;\n const lineProcessing =\n pasteProps?.lineProcessing ??\n ((line: string) => {\n const trimmedLine = line.trim();\n return trimmedLine === '' ? line : trimmedLine;\n });\n const skipEmptyLines = pasteProps?.skipEmptyLines ?? this.skipEmptyLines;\n const delimiter = pasteProps?.delimiter ?? this.delimiter;\n\n value.split(delimiter).forEach((line) => {\n const preparedLine = lineProcessing(line);\n\n if ((preparedLine === '' && skipEmptyLines === false) || preparedLine !== '') {\n const node = document.createElement('p');\n\n if (preparedLine === '') {\n node.innerHTML = this.emptyLineValue;\n } else if (preparedLine.trim() === '') {\n const allSpacesRegExp = new RegExp('\\\\s', 'g');\n node.innerHTML = DOMPurify.sanitize(\n preparedLine.replace(allSpacesRegExp, this.spaceLineValue),\n );\n } else {\n node.append(document.createTextNode(preparedLine));\n }\n\n listOfNodes.push(node);\n\n this.validateLine(node);\n }\n });\n\n return listOfNodes;\n }\n\n private recalculateErrors(): void {\n const errors: ErrorItem[] = [];\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement && node.getAttribute('aria-invalid') === 'true') {\n const errorItem = {\n errorMessage: node.dataset.errormessage ?? '',\n lineNode: node,\n lineIndex: index,\n };\n errors.push(errorItem);\n }\n });\n\n this.asProps.onErrorsChange(errors);\n }\n\n private recalculateLinesCount(): void {\n if (this.linesCountTimeout) {\n clearTimeout(this.linesCountTimeout);\n }\n\n this.linesCountTimeout = window.setTimeout(() => {\n let lines = 0;\n const { maxLines, linesCount } = this.asProps;\n\n this.textarea.childNodes.forEach((node, index) => {\n if (node instanceof HTMLParagraphElement) {\n node.dataset.overMaxRows = 'false';\n\n if (\n node.textContent !== this.getEmptyParagraph().textContent &&\n node.textContent !== ''\n ) {\n lines++;\n\n if (lines > maxLines) {\n node.dataset.overMaxRows = 'true';\n }\n }\n }\n });\n\n if (linesCount !== lines) {\n this.asProps.onChangeLinesCount(lines);\n }\n }, 100);\n }\n\n private getValues(): string[] {\n const values: string[] = [];\n this.textarea.childNodes.forEach((node) => {\n values.push(node.textContent ?? '');\n });\n\n return values;\n }\n\n private toggleErrorsPopperByKeyboard(timer: number) {\n if (this.toggleErrorsPopperTimeout) {\n clearTimeout(this.toggleErrorsPopperTimeout);\n }\n\n if (!this.isScrolling) {\n setTimeout(() => {\n const rowNode = this.getNodeFromSelection();\n\n this.toggleErrorsPopper('keyboardLineIndex', rowNode, timer);\n }, 0);\n } else {\n this.toggleErrorsPopperTimeout = window.setTimeout(() => {\n this.toggleErrorsPopperByKeyboard(timer);\n }, 50);\n }\n }\n\n private toggleErrorsPopper(key: IndexKeys, target?: unknown, timer?: number) {\n if (target instanceof HTMLDivElement || target instanceof HTMLParagraphElement) {\n if (this.changeTriggerTimeout) {\n clearTimeout(this.changeTriggerTimeout);\n }\n\n this.changeTriggerTimeout = window.setTimeout(() => {\n const targetElement = target === this.textarea ? this.getNodeFromSelection() : target;\n\n let lineIndex = -1;\n let isInvalidRow = false;\n\n if (targetElement instanceof HTMLParagraphElement) {\n isInvalidRow = targetElement.getAttribute('aria-invalid') === 'true';\n lineIndex = Array.from(this.textarea.childNodes).indexOf(targetElement);\n } else if (targetElement === this.textarea) {\n lineIndex = 0;\n }\n\n if (targetElement instanceof HTMLElement) {\n this.setState(\n (prevState) => {\n const newState: State = {\n visibleErrorPopper: this.isFocusing ? true : isInvalidRow,\n mouseLineIndex: prevState.mouseLineIndex,\n keyboardLineIndex: prevState.keyboardLineIndex,\n };\n\n if (this.isFocusing || (key === 'mouseLineIndex' && isInvalidRow)) {\n newState[key] = lineIndex;\n }\n\n return newState;\n },\n () => {\n const trigger = isInvalidRow ? targetElement : this.textarea;\n this.setPopperTrigger?.(trigger);\n\n this.forceUpdate();\n },\n );\n }\n }, timer ?? 50);\n } else {\n this.setState({ visibleErrorPopper: false });\n }\n }\n\n private toggleAriaInvalid(showErrors: boolean, errorsLength: number): void {\n if (showErrors && errorsLength > 0) {\n this.textarea.setAttribute('aria-describedby', this.popperDescribedId);\n this.textarea.setAttribute('aria-invalid', 'true');\n } else {\n this.textarea.removeAttribute('aria-invalid');\n this.textarea.removeAttribute('aria-describedby');\n }\n }\n\n private handleChangeErrorIndex(errorIndex: number): void {\n const error: ErrorItem | undefined = this.asProps.errors[errorIndex];\n const childNodes = this.textarea.childNodes;\n\n const node = error ? error.lineNode ?? childNodes.item(error.lineIndex) : null;\n const selection = document.getSelection();\n\n if (selection && node instanceof HTMLParagraphElement) {\n this.setState({ visibleErrorPopper: false });\n\n setTimeout(() => {\n const text = node.childNodes.item(0);\n if (text instanceof Text) {\n this.setSelection(text, 0, text.length);\n } else {\n this.setSelection(node, 0, 1);\n }\n }, 150);\n }\n }\n\n private validateLine(node: Node): boolean {\n const { lineValidation } = this.asProps;\n if (lineValidation && node instanceof HTMLElement) {\n const { isValid, errorMessage } = lineValidation(node.textContent ?? '', this.getValues());\n\n if (!isValid) {\n node.setAttribute('aria-invalid', 'true');\n node.dataset.errormessage = errorMessage;\n } else {\n node.removeAttribute('aria-invalid');\n node.dataset.errormessage = undefined;\n }\n\n return isValid;\n }\n\n return true;\n }\n\n private setSelection(\n node: Node,\n start: number,\n end: number,\n scrollType: 'center' | 'nearest' = 'center',\n ): void {\n const selection = document.getSelection();\n const range = document.createRange();\n range.setStart(node, start);\n range.setEnd(node, end);\n\n selection?.removeAllRanges();\n selection?.addRange(range);\n\n const nodeToScroll = node instanceof Text ? node.parentNode : node;\n\n if (nodeToScroll instanceof HTMLElement) {\n nodeToScroll.scrollIntoView({\n block: scrollType,\n inline: scrollType,\n behavior: 'smooth',\n });\n }\n }\n\n private getNodeFromSelection(): Node | null {\n const selection = document.getSelection();\n\n const rowNode =\n selection?.focusNode instanceof Text ? selection.focusNode.parentNode : selection?.focusNode;\n\n return rowNode ?? null;\n }\n\n private handleCursorMovement(currentNode: HTMLParagraphElement, event: KeyboardEvent): void {\n let nextNode: ChildNode | null = null;\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n break;\n case 'ArrowDown':\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n break;\n case 'ArrowLeft': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.previousSibling;\n }\n break;\n }\n case 'ArrowRight': {\n if (currentNode.textContent === this.getEmptyParagraph().textContent) {\n event.preventDefault();\n nextNode = currentNode.nextSibling;\n }\n }\n }\n\n if (nextNode instanceof HTMLParagraphElement) {\n const selection = document.getSelection();\n const firstNode = nextNode.childNodes.item(0);\n const nodeToSetSelection = firstNode instanceof Text ? firstNode : nextNode;\n const textNode = nextNode.textContent?.trim() ?? '';\n const currentOffset = selection?.focusOffset ?? 0;\n let offset = currentOffset <= textNode.length ? currentOffset : textNode.length;\n\n // it only works if node is empty, that's why here we could set 0 or node.length\n if (event.key === 'ArrowLeft') {\n offset = textNode.length;\n } else if (event.key === 'ArrowRight') {\n offset = 0;\n }\n\n this.setSelection(nodeToSetSelection, offset, offset, 'nearest');\n }\n }\n\n private setErrorIndex(nodeToCompare: Node): void {\n const errorIndex = Array.from(this.textarea.childNodes)\n .filter((node) => {\n return node instanceof Element && node.getAttribute('aria-invalid') === 'true';\n })\n .findIndex((node) => {\n return node === nodeToCompare;\n });\n\n this.handlers.errorIndex(errorIndex);\n }\n\n private isDeleteKey(event: KeyboardEvent): boolean {\n return event.key === 'Backspace' || (event.key === 'x' && (event.ctrlKey || event.metaKey));\n }\n\n private getEmptyParagraph() {\n const element = document.createElement('p');\n\n element.innerHTML = this.emptyLineValue;\n\n return element;\n }\n\n private addEventListeners(textarea: HTMLElement) {\n textarea.addEventListener('paste', this.handlePaste);\n textarea.addEventListener('input', this.handleChange);\n textarea.addEventListener('focus', this.handleFocus);\n textarea.addEventListener('blur', this.handleBlur);\n textarea.addEventListener('keydown', this.handleKeyDown);\n textarea.addEventListener('mousedown', this.handleMouseDown);\n textarea.addEventListener('mousemove', this.handleMouseMove);\n textarea.addEventListener('mouseleave', this.handleMouseLeave);\n textarea.addEventListener('scroll', this.handleScroll);\n\n textarea.removeEventListener('keydown', this.handleSelectAll);\n }\n private removeEventListeners(textarea: HTMLElement) {\n textarea.removeEventListener('paste', this.handlePaste);\n textarea.removeEventListener('input', this.handleChange);\n textarea.removeEventListener('focus', this.handleFocus);\n textarea.removeEventListener('blur', this.handleBlur);\n textarea.removeEventListener('keydown', this.handleKeyDown);\n textarea.removeEventListener('mousedown', this.handleMouseDown);\n textarea.removeEventListener('mousemove', this.handleMouseMove);\n textarea.removeEventListener('mouseleave', this.handleMouseLeave);\n textarea.removeEventListener('scroll', this.handleScroll);\n\n textarea.addEventListener('keydown', this.handleSelectAll);\n }\n\n private handleSelectAll(event: KeyboardEvent) {\n if (event.key === 'a' && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n\n const node = event.target;\n if (node instanceof HTMLElement && node === this.textarea) {\n this.setSelection(node, 0, node.childNodes.length);\n }\n }\n }\n\n private isRangeSelection(): boolean {\n const selection = document.getSelection();\n\n return (\n selection?.focusNode !== selection?.anchorNode ||\n selection?.focusOffset !== selection?.anchorOffset\n );\n }\n\n private getSelectionDirection(): 'forward' | 'backward' | null {\n const selection = document.getSelection();\n\n if (selection?.anchorNode && selection?.focusNode) {\n const documentPosition = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n\n if (\n (documentPosition === 0 && selection.anchorOffset > selection.focusOffset) || // if nodes are the same\n documentPosition === Node.DOCUMENT_POSITION_PRECEDING\n ) {\n return 'backward';\n }\n\n return 'forward';\n }\n\n return null;\n }\n}\n\nexport { InputField };\nexport type { InputFieldProps, ErrorItem };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputField.types.mjs","names":[],"sources":["../../../../src/components/InputField/InputField.types.ts"],"sourcesContent":["type PasteProps = {\n /**\n * @default '\\n'\n */\n delimiter?: string;\n /**\n * @default row.trim();\n */\n lineProcessing?: (line: string) => string;\n /**\n * @default true\n */\n skipEmptyLines?: boolean;\n};\n\nexport type ErrorItem = {\n lineIndex: number;\n lineNode?: Node;\n errorMessage: string;\n};\n\nexport type InputFieldProps = {\n /**\n * Unique id\n */\n id?: string;\n\n /**\n * Placeholder for field\n */\n placeholder?: string;\n /**\n * String to render in textarea. OnChanging value, it will go throw paste pipeline\n */\n value: string;\n /**\n * This component doesn't have default onChange callback, because we think that you need only the result after every changes/fixes\n */\n onBlur: (value: string, e: Event) => void;\n\n /**\n * Size of component\n * @default m\n */\n size: 'm' | 'l';\n /**\n * State for show errors or valid(green) borders\n * @default normal\n */\n state: 'normal' | 'valid' | 'invalid';\n\n /**\n * Flag for disabling field\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Flag for readonly field\n * @default false\n */\n readonly?: boolean;\n\n /**\n * Min rows\n * @default 2\n */\n minRows: number;\n /**\n * Max rows\n * @default 10\n */\n maxRows: number;\n\n /**\n * List of available points to validate value\n * @default blur\n */\n validateOn: ('blur' | 'blurLine' | 'paste')[];\n\n /**\n * Function to validate line\n */\n lineValidation?: (line: string, lines: string[]) => { isValid: boolean; errorMessage: string };\n\n /**\n * Message for display error about whole field, not only one line\n */\n commonErrorMessage: string;\n\n /**\n * Delimiters (event.key) for lines\n * @default Enter\n */\n linesDelimiters?: string[];\n\n /**\n * Count of max lines in badge\n * @default 100\n */\n maxLines: number;\n\n /**\n * Paste props\n */\n pasteProps: PasteProps;\n\n /**\n * Function for process line after it was blurred\n */\n lineProcessing?: (line: string, lines: string[]) => string;\n\n /**\n * Internal\n */\n lastError: ErrorItem;\n\n /**\n * Internal\n */\n currentLineIndex: number;\n\n /**\n * Internal\n */\n linesCount: number;\n /**\n * Internal\n */\n onChangeLineIndex: (newIndex: number) => void;\n /**\n * Internal\n */\n onChangeLinesCount: (rowsCount: number) => void;\n\n /**\n * Internal\n */\n showErrors: boolean;\n /**\n * Internal\n * List of errors in rows\n */\n errors: ErrorItem[];\n /**\n * Internal\n * Select row with error\n */\n errorIndex: number;\n /**\n * Internal\n * Flag for select all row\n */\n highlightErrorIndex: boolean;\n /**\n * Internal\n */\n onErrorsChange: (errors: ErrorItem[]) => void;\n /**\n * Internal\n */\n onShowErrorsChange: (showErrors: boolean) => void;\n /**\n * Internal\n */\n onErrorIndexChange: (errorIndex: number) => void;\n\n /**\n * Internal\n */\n 'aria-describedby'?: string;\n};\n"],"mappings":""}
|
package/lib/es6/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './BulkTextarea';\nexport type { BulkTextareaProps } from './BulkTextarea.types';\nexport type { ErrorItem } from './components/InputField/InputField.types';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,gBAAgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__intergalactic-dynamic-locales.mjs","names":["de","en","es","fr","it","ja","ko","nl","pt","tr","vi","zh","pl","sv","localizedMessages"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pt from './pt.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\nimport pl from './pl.json';\nimport sv from './sv.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAC1B,OAAOC,EAAE,MAAM,WAAW;AAE1B,OAAO,IAAMC,iBAAiB,GAAG;EAC/Bd,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA,EAAE;EACFC,EAAE,EAAFA;AACF,CAAC"}
|