@skbkontur/react-ui 3.7.1 → 3.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -2
- package/README.md +1 -1
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js +4 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +2 -2
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +1 -2
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +5 -14
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -0
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.md +0 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +17 -3
- package/cjs/components/DropdownMenu/DropdownMenu.js +15 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +87 -6
- package/cjs/components/Kebab/Kebab.d.ts +5 -2
- package/cjs/components/Kebab/Kebab.js +5 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +249 -3
- package/cjs/components/MenuHeader/MenuHeader.d.ts +5 -1
- package/cjs/components/MenuHeader/MenuHeader.js +5 -1
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.md +23 -0
- package/cjs/components/MenuItem/MenuItem.d.ts +10 -1
- package/cjs/components/MenuItem/MenuItem.js +11 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +106 -4
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -1
- package/cjs/components/MenuSeparator/MenuSeparator.js +3 -1
- package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +22 -20
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +23 -3
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.js +2 -1
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +0 -2
- package/cjs/components/Textarea/Textarea.js +6 -3
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +47 -1
- package/cjs/components/Toggle/Toggle.js +52 -2
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.md +83 -9
- package/cjs/components/Toggle/Toggle.styles.d.ts +3 -0
- package/cjs/components/Toggle/Toggle.styles.js +36 -23
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +8 -0
- package/cjs/components/TokenInput/TokenInput.js +19 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +26 -8
- package/cjs/components/TooltipMenu/TooltipMenu.js +24 -6
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.md +76 -8
- package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +4 -0
- package/cjs/internal/themes/DefaultTheme.js +13 -3
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/Upgrades.d.ts +2 -0
- package/cjs/lib/Upgrades.js +14 -0
- package/cjs/lib/Upgrades.js.map +1 -1
- package/cjs/lib/locale/LOCALECONTEXT.md +1 -1
- package/cjs/lib/theming/Emotion.js +1 -1
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +1 -1
- package/cjs/lib/utils.d.ts +7 -0
- package/cjs/lib/utils.js +12 -2
- package/cjs/lib/utils.js.map +1 -1
- package/components/Button/Button/Button.js +2 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Button/Button.styles/Button.styles.js +1 -1
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +5 -11
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js +1 -0
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +1 -0
- package/components/Dropdown/Dropdown.md +0 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +17 -3
- package/components/DropdownMenu/DropdownMenu.md +87 -6
- package/components/Kebab/Kebab/Kebab.js +2 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +5 -2
- package/components/Kebab/Kebab.md +249 -3
- package/components/MenuHeader/MenuHeader/MenuHeader.js +5 -1
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +5 -1
- package/components/MenuHeader/MenuHeader.md +23 -0
- package/components/MenuItem/MenuItem/MenuItem.js +4 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +10 -1
- package/components/MenuItem/MenuItem.md +106 -4
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +3 -1
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +3 -1
- package/components/MenuSeparator/MenuSeparator.md +14 -0
- package/components/Modal/Modal.styles/Modal.styles.js +18 -15
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalClose/ModalClose.js +25 -2
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +1 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +0 -2
- package/components/Toggle/Toggle/Toggle.js +11 -5
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +47 -1
- package/components/Toggle/Toggle.md +83 -9
- package/components/Toggle/Toggle.styles/Toggle.styles.js +21 -15
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Toggle/Toggle.styles.d.ts +3 -0
- package/components/TokenInput/TokenInput/TokenInput.js +20 -0
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +8 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +9 -6
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +26 -8
- package/components/TooltipMenu/TooltipMenu.md +76 -8
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +2 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +2 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +17 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +4 -0
- package/lib/Upgrades/Upgrades.js +13 -0
- package/lib/Upgrades/Upgrades.js.map +1 -1
- package/lib/Upgrades.d.ts +2 -0
- package/lib/locale/LOCALECONTEXT.md +1 -1
- package/lib/theming/Emotion/Emotion.js +1 -1
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeContext.md +1 -1
- package/lib/utils/utils.js +10 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +7 -0
- package/package.json +2 -2
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js +0 -9
- package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js.map +0 -1
- package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js +0 -10
- package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js.map +0 -1
- package/components/CurrencyLabel/CurrencyLabel.styles/package.json +0 -6
- package/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");
|
|
2
2
|
|
|
3
|
-
var _Mixins = require("../../lib/styles/Mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22;
|
|
3
|
+
var _Mixins = require("../../lib/styles/Mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23;
|
|
4
4
|
|
|
5
5
|
var styles = (0, _Emotion.memoizeStyle)({
|
|
6
6
|
root: function root() {
|
|
@@ -78,7 +78,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
78
78
|
|
|
79
79
|
close: function close(t) {
|
|
80
80
|
var padding = parseInt(t.modalCloseButtonPadding);
|
|
81
|
-
return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n position: absolute;\n display: flex;\n right: ", "px;\n top: ", "px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ", ";\n text-align: center;\n vertical-align: middle;\n padding: ", ";\n margin: -", ";\n\n &:
|
|
81
|
+
return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n position: absolute;\n display: flex;\n right: ", "px;\n top: ", "px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ", ";\n text-align: center;\n vertical-align: middle;\n padding: ", ";\n margin: -", ";\n\n &:hover {\n color: ", ";\n }\n\n & > svg {\n width: ", ";\n height: ", ";\n box-sizing: content-box;\n }\n "])),
|
|
82
82
|
(0, _Mixins.resetButton)(),
|
|
83
83
|
|
|
84
84
|
|
|
@@ -94,15 +94,10 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
94
94
|
t.modalCloseButtonClickArea,
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
|
|
98
97
|
t.modalCloseButtonHoverColor,
|
|
99
98
|
|
|
100
99
|
|
|
101
100
|
|
|
102
|
-
t.borderColorFocus,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
101
|
t.modalCloseIconSize,
|
|
107
102
|
t.modalCloseIconSize);
|
|
108
103
|
|
|
@@ -133,14 +128,21 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
133
128
|
|
|
134
129
|
},
|
|
135
130
|
|
|
131
|
+
focus: function focus(t) {
|
|
132
|
+
return (0, _Emotion.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n outline: 2px solid ", ";\n "])),
|
|
133
|
+
t.modalCloseButtonHoverColor,
|
|
134
|
+
t.borderColorFocus);
|
|
135
|
+
|
|
136
|
+
},
|
|
137
|
+
|
|
136
138
|
headerWrapper: function headerWrapper() {
|
|
137
|
-
return (0, _Emotion.css)(
|
|
139
|
+
return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n "])));
|
|
138
140
|
|
|
139
141
|
|
|
140
142
|
},
|
|
141
143
|
|
|
142
144
|
header: function header(t) {
|
|
143
|
-
return (0, _Emotion.css)(
|
|
145
|
+
return (0, _Emotion.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteralLoose2.default)(["\n font-size: ", ";\n line-height: ", ";\n padding: ", " ", " ", " ", ";\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ", ";\n "])),
|
|
144
146
|
t.modalHeaderFontSize,
|
|
145
147
|
t.modalHeaderLineHeight,
|
|
146
148
|
t.modalHeaderPaddingTop, t.modalPaddingRight, t.modalHeaderPaddingBottom, t.modalPaddingLeft,
|
|
@@ -151,7 +153,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
151
153
|
},
|
|
152
154
|
|
|
153
155
|
body: function body(t) {
|
|
154
|
-
return (0, _Emotion.css)(
|
|
156
|
+
return (0, _Emotion.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding: 0 ", " ", " ", ";\n "])),
|
|
155
157
|
t.modalPaddingRight, t.modalBodyPaddingBottom, t.modalPaddingLeft);
|
|
156
158
|
|
|
157
159
|
},
|
|
@@ -160,25 +162,25 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
160
162
|
var rightPadding =
|
|
161
163
|
2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);
|
|
162
164
|
|
|
163
|
-
return (0, _Emotion.css)(
|
|
165
|
+
return (0, _Emotion.css)(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-right: ", "px;\n "])),
|
|
164
166
|
rightPadding);
|
|
165
167
|
|
|
166
168
|
},
|
|
167
169
|
|
|
168
170
|
footer: function footer(t) {
|
|
169
|
-
return (0, _Emotion.css)(
|
|
171
|
+
return (0, _Emotion.css)(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding: ", " ", " ", " ", ";\n "])),
|
|
170
172
|
t.modalFooterPaddingTop, t.modalPaddingRight, t.modalFooterPaddingBottom, t.modalPaddingLeft);
|
|
171
173
|
|
|
172
174
|
},
|
|
173
175
|
|
|
174
176
|
footerWrapper: function footerWrapper() {
|
|
175
|
-
return (0, _Emotion.css)(
|
|
177
|
+
return (0, _Emotion.css)(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n "])));
|
|
176
178
|
|
|
177
179
|
|
|
178
180
|
},
|
|
179
181
|
|
|
180
182
|
panel: function panel(t) {
|
|
181
|
-
return (0, _Emotion.css)(
|
|
183
|
+
return (0, _Emotion.css)(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-top: ", ";\n padding-bottom: ", ";\n background: ", ";\n "])),
|
|
182
184
|
t.modalFooterPanelPaddingTop,
|
|
183
185
|
t.modalFooterPanelPaddingBottom,
|
|
184
186
|
t.modalFooterBg);
|
|
@@ -186,7 +188,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
186
188
|
},
|
|
187
189
|
|
|
188
190
|
fixedHeader: function fixedHeader(t) {
|
|
189
|
-
return (0, _Emotion.css)(
|
|
191
|
+
return (0, _Emotion.css)(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-bottom: 10px;\n padding-bottom: ", ";\n background: ", ";\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])),
|
|
190
192
|
|
|
191
193
|
t.modalFixedHeaderPaddingBottom,
|
|
192
194
|
t.modalFixedHeaderBg,
|
|
@@ -205,7 +207,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
205
207
|
},
|
|
206
208
|
|
|
207
209
|
fixedFooter: function fixedFooter(t) {
|
|
208
|
-
return (0, _Emotion.css)(
|
|
210
|
+
return (0, _Emotion.css)(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-top: 20px;\n margin-top: 10px;\n background: ", ";\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])),
|
|
209
211
|
|
|
210
212
|
|
|
211
213
|
t.modalFixedHeaderBg,
|
|
@@ -224,25 +226,25 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
224
226
|
},
|
|
225
227
|
|
|
226
228
|
headerAddPadding: function headerAddPadding() {
|
|
227
|
-
return (0, _Emotion.css)(
|
|
229
|
+
return (0, _Emotion.css)(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-bottom: 22px;\n "])));
|
|
228
230
|
|
|
229
231
|
|
|
230
232
|
},
|
|
231
233
|
|
|
232
234
|
bodyWithoutHeader: function bodyWithoutHeader(t) {
|
|
233
|
-
return (0, _Emotion.css)(
|
|
235
|
+
return (0, _Emotion.css)(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-top: ", ";\n "])),
|
|
234
236
|
t.modalPaddingTop);
|
|
235
237
|
|
|
236
238
|
},
|
|
237
239
|
|
|
238
240
|
bodyWithoutPadding: function bodyWithoutPadding() {
|
|
239
|
-
return (0, _Emotion.css)(
|
|
241
|
+
return (0, _Emotion.css)(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding: 0;\n "])));
|
|
240
242
|
|
|
241
243
|
|
|
242
244
|
},
|
|
243
245
|
|
|
244
246
|
bodyAddPaddingForPanel: function bodyAddPaddingForPanel(t) {
|
|
245
|
-
return (0, _Emotion.css)(
|
|
247
|
+
return (0, _Emotion.css)(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding-bottom: ", ";\n "])),
|
|
246
248
|
t.modalPaddingBottom);
|
|
247
249
|
|
|
248
250
|
} });exports.styles = styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Modal.styles.ts"],"names":["styles","root","css","bg","t","modalBackBg","modalBackOpacity","container","window","bgDefault","centerContainer","modalAdaptiveThreshold","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","borderColorFocus","modalCloseIconSize","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","disabled","modalCloseButtonDisabledColor","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","body","modalBodyPaddingBottom","headerWithClose","rightPadding","modalCloseLegacyGap","footer","modalFooterPaddingTop","modalFooterPaddingBottom","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderShadow","fixedFooter","modalFixedFooterShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.bgDefault};\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n\n @media screen and (max-width: ${t.modalAdaptiveThreshold}) {\n margin: 0;\n width: 100%;\n }\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:focus,\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n &:focus {\n outline: 2px solid ${t.borderColorFocus};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["Modal.styles.ts"],"names":["styles","root","css","bg","t","modalBackBg","modalBackOpacity","container","window","bgDefault","centerContainer","modalAdaptiveThreshold","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","body","modalBodyPaddingBottom","headerWithClose","rightPadding","modalCloseLegacyGap","footer","modalFooterPaddingTop","modalFooterPaddingBottom","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderShadow","fixedFooter","modalFixedFooterShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.bgDefault};\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n\n @media screen and (max-width: ${t.modalAdaptiveThreshold}) {\n margin: 0;\n width: 100%;\n }\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n});\n"]}
|
|
@@ -3,21 +3,41 @@
|
|
|
3
3
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
4
4
|
var _CrossIcon = require("../../internal/icons/CrossIcon");
|
|
5
5
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
6
|
+
var _keyListener = require("../../lib/events/keyListener");
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
var _Modal = require("./Modal.styles");
|
|
9
10
|
|
|
10
11
|
function ModalClose(_ref) {var _cx;var disableClose = _ref.disableClose,requestClose = _ref.requestClose;
|
|
11
|
-
var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
|
|
12
|
+
var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);var _React$useState =
|
|
13
|
+
_react.default.useState(false),focusedByTab = _React$useState[0],setFocusedByTab = _React$useState[1];
|
|
14
|
+
|
|
15
|
+
var handleFocus = function handleFocus() {
|
|
16
|
+
// focus event fires before keyDown eventlistener
|
|
17
|
+
// so we should check tabPressed in async way
|
|
18
|
+
requestAnimationFrame(function () {
|
|
19
|
+
if (_keyListener.keyListener.isTabPressed) {
|
|
20
|
+
setFocusedByTab(true);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var handleBlur = function handleBlur() {
|
|
26
|
+
setFocusedByTab(false);
|
|
27
|
+
};
|
|
12
28
|
|
|
13
29
|
return /*#__PURE__*/(
|
|
14
30
|
_react.default.createElement("button", {
|
|
15
31
|
className: (0, _Emotion.cx)((_cx = {}, _cx[
|
|
16
32
|
_Modal.styles.close(theme)] = true, _cx[
|
|
17
|
-
_Modal.styles.disabled(theme)] = disableClose, _cx
|
|
33
|
+
_Modal.styles.disabled(theme)] = disableClose, _cx[
|
|
34
|
+
_Modal.styles.focus(theme)] = focusedByTab, _cx)),
|
|
18
35
|
|
|
19
36
|
onClick: requestClose,
|
|
20
|
-
|
|
37
|
+
onFocus: handleFocus,
|
|
38
|
+
onBlur: handleBlur,
|
|
39
|
+
"data-tid": "modal-close",
|
|
40
|
+
tabIndex: disableClose ? -1 : 0 }, /*#__PURE__*/
|
|
21
41
|
|
|
22
42
|
_react.default.createElement(_CrossIcon.CrossIcon, null)));
|
|
23
43
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalClose.tsx"],"names":["ModalClose","disableClose","requestClose","theme","ThemeContext","styles","close","disabled"],"mappings":"8JAAA;;AAEA;AACA;AACA;;;AAGA;;AAEO,SAASA,UAAT,OAAgE,aAA1CC,YAA0C,QAA1CA,YAA0C,CAA5BC,YAA4B,QAA5BA,YAA4B;AACrE,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;;
|
|
1
|
+
{"version":3,"sources":["ModalClose.tsx"],"names":["ModalClose","disableClose","requestClose","theme","ThemeContext","React","useState","focusedByTab","setFocusedByTab","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","styles","close","disabled","focus"],"mappings":"8JAAA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEO,SAASA,UAAT,OAAgE,aAA1CC,YAA0C,QAA1CA,YAA0C,CAA5BC,YAA4B,QAA5BA,YAA4B;AACrE,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd,CADqE;AAE7BC,iBAAMC,QAAN,CAAe,KAAf,CAF6B,CAE9DC,YAF8D,sBAEhDC,eAFgD;;AAIrE,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB;AACA;AACAC,IAAAA,qBAAqB,CAAC,YAAM;AAC1B,UAAIC,yBAAYC,YAAhB,EAA8B;AAC5BJ,QAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,KAJoB,CAArB;AAKD,GARD;;AAUA,MAAMK,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBL,IAAAA,eAAe,CAAC,KAAD,CAAf;AACD,GAFD;;AAIA;AACE;AACE,MAAA,SAAS,EAAE;AACRM,oBAAOC,KAAP,CAAaZ,KAAb,CADQ,IACc,IADd;AAERW,oBAAOE,QAAP,CAAgBb,KAAhB,CAFQ,IAEiBF,YAFjB;AAGRa,oBAAOG,KAAP,CAAad,KAAb,CAHQ,IAGcI,YAHd,OADb;;AAME,MAAA,OAAO,EAAEL,YANX;AAOE,MAAA,OAAO,EAAEO,WAPX;AAQE,MAAA,MAAM,EAAEI,UARV;AASE,kBAAS,aATX;AAUE,MAAA,QAAQ,EAAEZ,YAAY,GAAG,CAAC,CAAJ,GAAQ,CAVhC;;AAYE,iCAAC,oBAAD,OAZF,CADF;;;AAgBD","sourcesContent":["import React, { useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\n\nimport { CloseProps } from './ModalContext';\nimport { styles } from './Modal.styles';\n\nexport function ModalClose({ disableClose, requestClose }: CloseProps) {\n const theme = useContext(ThemeContext);\n const [focusedByTab, setFocusedByTab] = React.useState(false);\n\n const handleFocus = () => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n };\n\n const handleBlur = () => {\n setFocusedByTab(false);\n };\n\n return (\n <button\n className={cx({\n [styles.close(theme)]: true,\n [styles.disabled(theme)]: disableClose,\n [styles.focus(theme)]: focusedByTab,\n })}\n onClick={requestClose}\n onFocus={handleFocus}\n onBlur={handleBlur}\n data-tid=\"modal-close\"\n tabIndex={disableClose ? -1 : 0}\n >\n <CrossIcon />\n </button>\n );\n}\n"]}
|
|
@@ -52,9 +52,10 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
52
52
|
},
|
|
53
53
|
|
|
54
54
|
disabled: function disabled(t) {
|
|
55
|
-
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
|
|
55
|
+
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n cursor: default;\n "])),
|
|
56
56
|
t.pagingForwardLinkDisabledColor);
|
|
57
57
|
|
|
58
|
+
|
|
58
59
|
},
|
|
59
60
|
|
|
60
61
|
pageLinkWrapper: function pageLinkWrapper() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paging.styles.ts"],"names":["styles","paging","t","css","pagingFontSize","pagingLineHeight","dots","pagingDotsColor","pagingDotsPadding","forwardLink","pagingForwardLinkColor","pagingPageForwardLinkMarginTop","pagingPageForwardLinkMarginLeft","pagingPageForwardLinkPaddingRight","forwardLinkFocused","forwardIcon","pagingForwardIconMarginTop","disabled","pagingForwardLinkDisabledColor","pageLinkWrapper","pageLink","pagingPageLinkBorderRadius","pagingPageLinkMargin","pagingPageLinkMinWidth","pagingPageLinkPaddingY","pagingPageLinkPaddingX","pagingPageLinkLegacyPaddingY","pagingPageLinkHoverBg","active","pagingPageLinkActiveBg","pagingPageLinkActiveColor","pageLinkFocused","borderColorFocus","transparent","pageLinkHintPlaceHolder","pagingPageLinkHintLineHeight","pageLinkHint","pagingPageLinkHintFontSize","pagingPageLinkHintColor"],"mappings":"4QAAA;AACA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,eAAOC,YAAP;;;AAGeD,IAAAA,CAAC,CAACE,cAHjB;AAIiBF,IAAAA,CAAC,CAACG,gBAJnB;;AAMD,GARgC;;AAUjCC,EAAAA,IAViC,gBAU5BJ,CAV4B,EAUlB;AACb,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACK,eADb;;AAGaL,IAAAA,CAAC,CAACM,iBAHf;;AAKD,GAhBgC;;AAkBjCC,EAAAA,WAlBiC,uBAkBrBP,CAlBqB,EAkBX;AACpB,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACQ,sBADb;;;AAIgBR,IAAAA,CAAC,CAACS,8BAJlB;AAKiBT,IAAAA,CAAC,CAACU,+BALnB;;AAOmBV,IAAAA,CAAC,CAACW,iCAPrB;;;;;;AAaD,GAhCgC;;AAkCjCC,EAAAA,kBAlCiC,gCAkCZ;AACnB,eAAOX,YAAP;;;AAGD,GAtCgC;;AAwCjCY,EAAAA,WAxCiC,uBAwCrBb,CAxCqB,EAwCX;AACpB,eAAOC,YAAP;;;AAGgBD,IAAAA,CAAC,CAACc,0BAHlB;;;AAMD,GA/CgC;;AAiDjCC,EAAAA,QAjDiC,oBAiDxBf,CAjDwB,EAiDd;AACjB,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACgB,8BADb
|
|
1
|
+
{"version":3,"sources":["Paging.styles.ts"],"names":["styles","paging","t","css","pagingFontSize","pagingLineHeight","dots","pagingDotsColor","pagingDotsPadding","forwardLink","pagingForwardLinkColor","pagingPageForwardLinkMarginTop","pagingPageForwardLinkMarginLeft","pagingPageForwardLinkPaddingRight","forwardLinkFocused","forwardIcon","pagingForwardIconMarginTop","disabled","pagingForwardLinkDisabledColor","pageLinkWrapper","pageLink","pagingPageLinkBorderRadius","pagingPageLinkMargin","pagingPageLinkMinWidth","pagingPageLinkPaddingY","pagingPageLinkPaddingX","pagingPageLinkLegacyPaddingY","pagingPageLinkHoverBg","active","pagingPageLinkActiveBg","pagingPageLinkActiveColor","pageLinkFocused","borderColorFocus","transparent","pageLinkHintPlaceHolder","pagingPageLinkHintLineHeight","pageLinkHint","pagingPageLinkHintFontSize","pagingPageLinkHintColor"],"mappings":"4QAAA;AACA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,eAAOC,YAAP;;;AAGeD,IAAAA,CAAC,CAACE,cAHjB;AAIiBF,IAAAA,CAAC,CAACG,gBAJnB;;AAMD,GARgC;;AAUjCC,EAAAA,IAViC,gBAU5BJ,CAV4B,EAUlB;AACb,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACK,eADb;;AAGaL,IAAAA,CAAC,CAACM,iBAHf;;AAKD,GAhBgC;;AAkBjCC,EAAAA,WAlBiC,uBAkBrBP,CAlBqB,EAkBX;AACpB,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACQ,sBADb;;;AAIgBR,IAAAA,CAAC,CAACS,8BAJlB;AAKiBT,IAAAA,CAAC,CAACU,+BALnB;;AAOmBV,IAAAA,CAAC,CAACW,iCAPrB;;;;;;AAaD,GAhCgC;;AAkCjCC,EAAAA,kBAlCiC,gCAkCZ;AACnB,eAAOX,YAAP;;;AAGD,GAtCgC;;AAwCjCY,EAAAA,WAxCiC,uBAwCrBb,CAxCqB,EAwCX;AACpB,eAAOC,YAAP;;;AAGgBD,IAAAA,CAAC,CAACc,0BAHlB;;;AAMD,GA/CgC;;AAiDjCC,EAAAA,QAjDiC,oBAiDxBf,CAjDwB,EAiDd;AACjB,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACgB,8BADb;;;AAID,GAtDgC;;AAwDjCC,EAAAA,eAxDiC,6BAwDf;AAChB,eAAOhB,YAAP;;;;;;;AAOD,GAhEgC;;AAkEjCiB,EAAAA,QAlEiC,oBAkExBlB,CAlEwB,EAkEd;AACjB,eAAOC,YAAP;AACmBD,IAAAA,CAAC,CAACmB,0BADrB;AAEWnB,IAAAA,CAAC,CAACQ,sBAFb;;;AAKYR,IAAAA,CAAC,CAACoB,oBALd;;AAOepB,IAAAA,CAAC,CAACqB,sBAPjB;AAQarB,IAAAA,CAAC,CAACsB,sBARf,EAQyCtB,CAAC,CAACuB,sBAR3C;AASM,kCAAWvB,CAAX,IAAgBA,CAAC,CAACsB,sBAAlB,GAA2CtB,CAAC,CAACwB,4BATnD;;;;AAakBxB,IAAAA,CAAC,CAACyB,qBAbpB;;;AAgBD,GAnFgC;;AAqFjCC,EAAAA,MArFiC,kBAqF1B1B,CArF0B,EAqFhB;AACf,eAAOC,YAAP;;AAEgBD,IAAAA,CAAC,CAAC2B,sBAFlB;AAGW3B,IAAAA,CAAC,CAAC4B,yBAHb;;AAKD,GA3FgC;;AA6FjCC,EAAAA,eA7FiC,2BA6FjB7B,CA7FiB,EA6FP;AACxB,eAAOC,YAAP;AACI,kCAAWD,CAAX;;AAE0BA,IAAAA,CAAC,CAAC8B,gBAF5B;;;;AAMsB9B,IAAAA,CAAC,CAAC8B,gBANxB,MADJ;;AASD,GAvGgC;;AAyGjCC,EAAAA,WAzGiC,yBAyGnB;AACZ,eAAO9B,YAAP;;;AAGD,GA7GgC;;AA+GjC+B,EAAAA,uBA/GiC,mCA+GThC,CA/GS,EA+GC;AAChC,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACiC,4BADd;AAEiBjC,IAAAA,CAAC,CAACiC,4BAFnB;;AAID,GApHgC;;AAsHjCC,EAAAA,YAtHiC,wBAsHpBlC,CAtHoB,EAsHV;AACrB,eAAOC,YAAP;;;AAGeD,IAAAA,CAAC,CAACmC,0BAHjB;AAIiBnC,IAAAA,CAAC,CAACiC,4BAJnB;AAKWjC,IAAAA,CAAC,CAACoC,uBALb;;AAOD,GA9HgC,EAAb,CAAf,C","sourcesContent":["import { is8pxTheme } from '../../lib/theming/ThemeHelpers';\nimport { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n paging(t: Theme) {\n return css`\n user-select: none;\n outline: 0;\n font-size: ${t.pagingFontSize};\n line-height: ${t.pagingLineHeight};\n `;\n },\n\n dots(t: Theme) {\n return css`\n color: ${t.pagingDotsColor};\n display: inline-block;\n padding: ${t.pagingDotsPadding};\n `;\n },\n\n forwardLink(t: Theme) {\n return css`\n color: ${t.pagingForwardLinkColor};\n cursor: pointer;\n display: inline-block;\n margin-top: ${t.pagingPageForwardLinkMarginTop};\n margin-left: ${t.pagingPageForwardLinkMarginLeft};\n outline: none;\n padding-right: ${t.pagingPageForwardLinkPaddingRight};\n position: relative;\n text-decoration: none;\n user-select: none;\n vertical-align: top;\n `;\n },\n\n forwardLinkFocused() {\n return css`\n text-decoration: underline;\n `;\n },\n\n forwardIcon(t: Theme) {\n return css`\n vertical-align: -2px;\n position: absolute;\n margin-top: ${t.pagingForwardIconMarginTop};\n right: 0;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.pagingForwardLinkDisabledColor};\n cursor: default;\n `;\n },\n\n pageLinkWrapper() {\n return css`\n display: inline-flex;\n flex-flow: column nowrap;\n text-align: center;\n user-select: none;\n vertical-align: top;\n `;\n },\n\n pageLink(t: Theme) {\n return css`\n border-radius: ${t.pagingPageLinkBorderRadius};\n color: ${t.pagingForwardLinkColor};\n cursor: pointer;\n display: block;\n margin: ${t.pagingPageLinkMargin};\n outline: none;\n min-width: ${t.pagingPageLinkMinWidth};\n padding: ${t.pagingPageLinkPaddingY} ${t.pagingPageLinkPaddingX}\n ${is8pxTheme(t) ? t.pagingPageLinkPaddingY : t.pagingPageLinkLegacyPaddingY};\n text-decoration: none;\n\n &:hover {\n background: ${t.pagingPageLinkHoverBg};\n }\n `;\n },\n\n active(t: Theme) {\n return css`\n cursor: default;\n background: ${t.pagingPageLinkActiveBg} !important; // override hover styles\n color: ${t.pagingPageLinkActiveColor};\n `;\n },\n\n pageLinkFocused(t: Theme) {\n return css`\n ${is8pxTheme(t)\n ? `\n box-shadow: 0 0 0 2px ${t.borderColorFocus};\n `\n : `\n margin: 0 -1px;\n border: solid 2px ${t.borderColorFocus};`}\n `;\n },\n\n transparent() {\n return css`\n color: transparent;\n `;\n },\n\n pageLinkHintPlaceHolder(t: Theme) {\n return css`\n height: ${t.pagingPageLinkHintLineHeight};\n line-height: ${t.pagingPageLinkHintLineHeight};\n `;\n },\n\n pageLinkHint(t: Theme) {\n return css`\n display: inline-block;\n margin: 0 -20px;\n font-size: ${t.pagingPageLinkHintFontSize};\n line-height: ${t.pagingPageLinkHintLineHeight};\n color: ${t.pagingPageLinkHintColor};\n `;\n },\n});\n"]}
|
|
@@ -67,7 +67,6 @@ export interface TextareaProps extends CommonProps, Override<React.TextareaHTMLA
|
|
|
67
67
|
}
|
|
68
68
|
export interface TextareaState {
|
|
69
69
|
polyfillPlaceholder: boolean;
|
|
70
|
-
rows: number | string;
|
|
71
70
|
isCounterVisible: boolean;
|
|
72
71
|
}
|
|
73
72
|
/**
|
|
@@ -130,7 +129,6 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
|
|
|
130
129
|
};
|
|
131
130
|
state: {
|
|
132
131
|
polyfillPlaceholder: boolean;
|
|
133
|
-
rows: number;
|
|
134
132
|
isCounterVisible: boolean;
|
|
135
133
|
};
|
|
136
134
|
private reflowCounter;
|
|
@@ -104,7 +104,6 @@ var AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;
|
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
|
|
108
107
|
|
|
109
108
|
|
|
110
109
|
/**
|
|
@@ -180,7 +179,6 @@ Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
|
|
|
180
179
|
|
|
181
180
|
state = {
|
|
182
181
|
polyfillPlaceholder: _polyfillPlaceholder.polyfillPlaceholder,
|
|
183
|
-
rows: 1,
|
|
184
182
|
isCounterVisible: false };_this.
|
|
185
183
|
|
|
186
184
|
reflowCounter = function () {
|
|
@@ -264,6 +262,11 @@ Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
|
|
|
264
262
|
|
|
265
263
|
|
|
266
264
|
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
267
270
|
|
|
268
271
|
|
|
269
272
|
|
|
@@ -520,7 +523,7 @@ Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
|
|
|
520
523
|
}
|
|
521
524
|
};return _this;}var _proto = Textarea.prototype;_proto.getAutoResizeThrottleWait = function getAutoResizeThrottleWait(props) {if (props === void 0) {props = this.props;} // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты
|
|
522
525
|
// Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120
|
|
523
|
-
return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref2 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref2.disableAnimations,extraRow = _ref2.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}if (this.props.autoResize && this.props.rows
|
|
526
|
+
return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref2 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref2.disableAnimations,extraRow = _ref2.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}if (this.props.autoResize && (this.props.rows !== prevProps.rows || this.props.maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this2.props, _this2.renderMain);});} /**
|
|
524
527
|
* @public
|
|
525
528
|
*/;_proto.focus = function focus() {if (this.node) {this.node.focus();}} /**
|
|
526
529
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Textarea.tsx"],"names":["DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","Textarea","state","polyfillPlaceholder","rows","isCounterVisible","reflowCounter","counter","reflow","theme","selectAllId","node","fakeNode","layoutEvents","textareaObserver","isBrowser","MutationObserver","setSelectionRange","start","end","Error","document","activeElement","focus","selectAll","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","renderMain","props","width","error","warning","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","textareaProps","rootProps","style","textareaClassNames","styles","textarea","isAnimationsDisabled","textareaStyle","placeholderPolyfill","fakeTextarea","fakeProps","defaultValue","className","fake","readOnly","refFake","maxLength","handleCloseCounterHelp","refCounter","root","undefined","ref","handleChange","handleCut","handlePaste","handleFocus","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","onKeyDown","fieldIsEmpty","target","onChange","element","autoResizeHandler","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","isIE11","componentDidMount","LayoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","render","blur","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","disabled","oneOfType","string","number","id","name","title","spellCheck","role","tabIndex","func","onMouseEnter","onMouseLeave","onMouseOver","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onClick","onDoubleClick","onKeyPress","onKeyUp","onInput","onBlur","onScroll","onWheel","onCopy","defaultProps","isTestEnv"],"mappings":"yhBAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAMA,aAAa,GAAG,GAAtB;AACA,IAAMC,gCAAgC,GAAG,GAAzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA;AACA;AACA;AACA;AACA;AACA;AACA,G;AACaC,Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEJC,IAAAA,K,GAAQ;AACbC,MAAAA,mBAAmB,EAAnBA,wCADa;AAEbC,MAAAA,IAAI,EAAE,CAFO;AAGbC,MAAAA,gBAAgB,EAAE,KAHL,E;;AAKPC,IAAAA,a,GAAgB,YAAM;AAC5B,UAAI,MAAKC,OAAT,EAAkB;AAChB,cAAKA,OAAL,CAAaC,MAAb;AACD;AACF,K;;AAEOC,IAAAA,K;AACAC,IAAAA,W,GAA6B,I;AAC7BC,IAAAA,I;AACAC,IAAAA,Q;AACAL,IAAAA,O;AACAM,IAAAA,Y;AACAC,IAAAA,gB,GAAmBC,oBAAY,IAAIC,gBAAJ,CAAqB,MAAKV,aAA1B,CAAZ,GAAuD,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2E3EW,IAAAA,iB,GAAoB,UAACC,KAAD,EAAgBC,GAAhB,EAAgC;AACzD,UAAI,CAAC,MAAKR,IAAV,EAAgB;AACd,cAAM,IAAIS,KAAJ,CAAU,oDAAV,CAAN;AACD;;AAED,UAAIC,QAAQ,CAACC,aAAT,KAA2B,MAAKX,IAApC,EAA0C;AACxC,cAAKY,KAAL;AACD;;AAED,YAAKZ,IAAL,CAAUM,iBAAV,CAA4BC,KAA5B,EAAmCC,GAAnC;AACD,K;;;;;AAKMK,IAAAA,S,GAAY,YAAM;AACvB,UAAI,MAAKb,IAAT,EAAe;AACb,cAAKM,iBAAL,CAAuB,CAAvB,EAA0B,MAAKN,IAAL,CAAUc,KAAV,CAAgBC,MAA1C;AACD;AACF,K;;AAEOC,IAAAA,c,GAAiB,oBAAe,MAAKjB,WAAL,GAAmB,kBAAI,MAAKc,SAAT,CAAlC,E;;AAEjBI,IAAAA,sB,GAAyB,YAAY;AAC3C,UAAI,MAAKlB,WAAT,EAAsB;AACpBmB,qBAAIC,MAAJ,CAAW,MAAKpB,WAAhB;AACA,cAAKA,WAAL,GAAmB,IAAnB;AACD;AACF,K;;AAEOqB,IAAAA,U,GAAa,UAACC,KAAD,EAAkD;;;;;;;;;;;;;;;;;;;;AAoBjEA,MAAAA,KApBiE,CAEnEC,KAFmE,CAEnEA,KAFmE,6BAE3DlC,aAF2D,gBAGnEmC,KAHmE,GAoBjEF,KApBiE,CAGnEE,KAHmE,CAInEC,OAJmE,GAoBjEH,KApBiE,CAInEG,OAJmE,CAKnEC,UALmE,GAoBjEJ,KApBiE,CAKnEI,UALmE,CAMnEC,MANmE,GAoBjEL,KApBiE,CAMnEK,MANmE,CAOnEC,KAPmE,GAoBjEN,KApBiE,CAOnEM,KAPmE,CAQnEC,OARmE,GAoBjEP,KApBiE,CAQnEO,OARmE,CASnEC,OATmE,GAoBjER,KApBiE,CASnEQ,OATmE,CAUnEC,OAVmE,GAoBjET,KApBiE,CAUnES,OAVmE,CAWnEC,gBAXmE,GAoBjEV,KApBiE,CAWnEU,gBAXmE,CAYnEC,WAZmE,GAoBjEX,KApBiE,CAYnEW,WAZmE,CAanEC,aAbmE,GAoBjEZ,KApBiE,CAanEY,aAbmE,CAcnEC,iBAdmE,GAoBjEb,KApBiE,CAcnEa,iBAdmE,CAenEC,aAfmE,GAoBjEd,KApBiE,CAenEc,aAfmE,CAgBnEC,WAhBmE,GAoBjEf,KApBiE,CAgBnEe,WAhBmE,CAiBnEC,QAjBmE,GAoBjEhB,KApBiE,CAiBnEgB,QAjBmE,CAkBnEC,iBAlBmE,GAoBjEjB,KApBiE,CAkBnEiB,iBAlBmE,CAmBhEC,aAnBgE,+CAoBjElB,KApBiE;;AAsB7D3B,MAAAA,gBAtB6D,GAsBxC,MAAKH,KAtBmC,CAsB7DG,gBAtB6D;;AAwBrE,UAAM8C,SAAS,GAAG;AAChBC,QAAAA,KAAK,EAAE;AACLnB,UAAAA,KAAK,EAALA,KADK,EADS,EAAlB;;;;AAMA,UAAMoB,kBAAkB,GAAG;AACxBC,uBAAOC,QAAP,CAAgB,MAAK9C,KAArB,CADwB,IACM,IADN;AAExB6C,uBAAOpB,KAAP,CAAa,MAAKzB,KAAlB,CAFwB,IAEG,CAAC,CAACyB,KAFL;AAGxBoB,uBAAOnB,OAAP,CAAe,MAAK1B,KAApB,CAHwB,IAGK,CAAC,CAAC0B,OAHP;AAIxBmB,uBAAOL,iBAAP,EAJwB,IAIK,MAAKO,oBAAL,EAJL,OAA3B;;;AAOA,UAAMC,aAAa,GAAG;AACpBpB,QAAAA,MAAM,EAAED,UAAU,GAAG,MAAH,GAAYC,MADV,EAAtB;;;AAIA,UAAIqB,mBAAmB,GAAG,IAA1B;;AAEA,UAAI,MAAKxD,KAAL,CAAWC,mBAAX,IAAkC,CAAC+C,aAAa,CAACzB,KAArD,EAA4D;AAC1DiC,QAAAA,mBAAmB,gBAAG,uCAAM,SAAS,EAAEJ,iBAAOX,WAAP,EAAjB,IAAwCA,WAAxC,CAAtB;AACD;;AAED,UAAIgB,YAAY,GAAG,IAAnB;AACA,UAAIvB,UAAJ,EAAgB;AACd,YAAMwB,SAAS,GAAG;AAChBnC,UAAAA,KAAK,EAAE,MAAKO,KAAL,CAAWP,KADF;AAEhBoC,UAAAA,YAAY,EAAE,MAAK7B,KAAL,CAAW6B,YAFT;AAGhBC,UAAAA,SAAS,EAAE,iBAAGT,kBAAH,EAAuBC,iBAAOS,IAAP,EAAvB,CAHK;AAIhBC,UAAAA,QAAQ,EAAE,IAJM,EAAlB;;AAMAL,QAAAA,YAAY,gBAAG,oEAAcC,SAAd,IAAyB,GAAG,EAAE,MAAKK,OAAnC,IAAf;AACD;;AAED,UAAM1D,OAAO,GAAGsC,iBAAiB,IAAIxC,gBAArB,IAAyC,MAAKM,IAA9C;AACd,mCAAC,gCAAD;AACE,QAAA,QAAQ,EAAE,MAAKA,IADjB;AAEE,QAAA,IAAI,EAAEoC,WAFR;AAGE,QAAA,KAAK,EAAEG,aAAa,CAACzB,KAHvB;AAIE,QAAA,MAAM,mCAAEyB,aAAa,CAACgB,SAAhB,oCAA6BpB,aAA7B,mBAA8C,CAJtD;AAKE,QAAA,WAAW,EAAE,MAAKqB,sBALpB;AAME,QAAA,GAAG,EAAE,MAAKC,UANZ,GADF;;;;AAWA;AACE,qCAAC,wBAAD;AACE,UAAA,cAAc,EAAE,MAAKD,sBADvB;AAEE,UAAA,cAAc,EAAE,MAAKA,sBAFvB;AAGE,UAAA,MAAM,EAAE,MAAKjE,KAAL,CAAWG,gBAHrB;;AAKE,yEAAW8C,SAAX,IAAsB,SAAS,EAAEG,iBAAOe,IAAP,CAAY,MAAK5D,KAAjB,CAAjC;AACGiD,QAAAA,mBADH;AAEE,qCAAC,8BAAD,IAAgB,QAAQ,EAAE,MAAKpD,aAA/B;AACE;AACM4C,QAAAA,aADN;AAEE,UAAA,SAAS,EAAEG,kBAFb;AAGE,UAAA,KAAK,EAAEI,aAHT;AAIE,UAAA,WAAW,EAAE,CAACC,mBAAD,GAAuBf,WAAvB,GAAqC2B,SAJpD;AAKE,UAAA,GAAG,EAAE,MAAKC,GALZ;AAME,UAAA,QAAQ,EAAE,MAAKC,YANjB;AAOE,UAAA,KAAK,EAAE,MAAKC,SAPd;AAQE,UAAA,OAAO,EAAE,MAAKC,WARhB;AASE,UAAA,OAAO,EAAE,MAAKC,WAThB;AAUE,UAAA,SAAS,EAAE,MAAKC,aAVlB;;AAYG,cAAK5C,KAAL,CAAW6C,QAZd,CADF,CAFF;;;AAkBGlB,QAAAA,YAlBH;AAmBGpD,QAAAA,OAnBH,CALF,CADF;;;;AA6BD,K;;AAEO4D,IAAAA,sB,GAAyB,oBAAM,MAAKW,QAAL,CAAc,EAAEzE,gBAAgB,EAAE,KAApB,EAAd,CAAN,E;;AAEzBuE,IAAAA,a,GAAgB,UAACG,CAAD,EAAiD;AACvE;AACA;AACA,UAAMtD,KAAK,GAAG,MAAKO,KAAL,CAAWP,KAAX,KAAqB6C,SAArB,GAAiC,MAAKtC,KAAL,CAAWP,KAAX,CAAiBuD,QAAjB,EAAjC,GAA+D,IAA7E;AACA,UAAMC,YAAY,GAAG,6BAAWF,CAAX,KAAiBtD,KAAK,KAAK,IAA3B,IAAmCA,KAAK,CAACC,MAAN,KAAiB,MAAKM,KAAL,CAAWkC,SAApF;;AAEA,UAAIe,YAAJ,EAAkB;AAChBF,QAAAA,CAAC,CAACG,cAAF;AACD;;AAED,UAAI,MAAKlD,KAAL,CAAWmD,SAAf,EAA0B;AACxB,cAAKnD,KAAL,CAAWmD,SAAX,CAAqBJ,CAArB;AACD;AACF,K;;AAEOP,IAAAA,Y,GAAe,UAACO,CAAD,EAA+C;AACpE,UAAI5E,wCAAJ,EAAyB;AACvB,YAAMiF,YAAY,GAAGL,CAAC,CAACM,MAAF,CAAS5D,KAAT,KAAmB,EAAxC;;AAEA,YAAI,MAAKvB,KAAL,CAAWC,mBAAX,KAAmCiF,YAAvC,EAAqD;AACnD,gBAAKN,QAAL,CAAc,EAAE3E,mBAAmB,EAAEiF,YAAvB,EAAd;AACD;AACF;;AAED,UAAI,MAAKpD,KAAL,CAAWY,aAAf,EAA8B;AAC5B,cAAKZ,KAAL,CAAWY,aAAX,CAAyBmC,CAAC,CAACM,MAAF,CAAS5D,KAAlC;AACD;;AAED,UAAI,MAAKO,KAAL,CAAWI,UAAf,EAA2B;AACzB,cAAKA,UAAL;AACD;;AAED,UAAI,MAAKJ,KAAL,CAAWsD,QAAf,EAAyB;AACvB,cAAKtD,KAAL,CAAWsD,QAAX,CAAoBP,CAApB;AACD;;AAED,YAAKzE,aAAL;AACD,K;;AAEOiE,IAAAA,G,GAAM,UAACgB,OAAD,EAAkC;AAC9C,YAAK5E,IAAL,GAAY4E,OAAZ;AACD,K;;AAEOtB,IAAAA,O,GAAU,UAACsB,OAAD,EAAkC;AAClD,YAAK3E,QAAL,GAAgB2E,OAAhB;AACD,K;;AAEOnB,IAAAA,U,GAAa,UAACG,GAAD,EAAoC;AACvD,YAAKhE,OAAL,GAAegE,GAAf;AACD,K;;AAEOiB,IAAAA,iB,GAAoB,YAAM;AAChC,UAAM5E,QAAQ,GAAG,MAAKA,QAAtB;AACA,UAAI,CAACA,QAAL,EAAe;AACb;AACD;AACD,UAAMD,IAAI,GAAG,MAAKA,IAAlB;AACA,UAAI,CAACA,IAAL,EAAW;AACT;AACD;AACD,UAAI,MAAKqB,KAAL,CAAWP,KAAX,KAAqB6C,SAAzB,EAAoC;AAClC1D,QAAAA,QAAQ,CAACa,KAAT,GAAiBd,IAAI,CAACc,KAAtB;AACD,OAX+B;;AAaI,YAAKO,KAbT,CAaxB5B,IAbwB,eAaxBA,IAbwB,CAalBoC,OAbkB,eAalBA,OAbkB,CAaTQ,QAbS,eAaTA,QAbS;AAchC,UAAI5C,IAAI,KAAKkE,SAAT,IAAsB9B,OAAO,KAAK8B,SAAtC,EAAiD;AAC/C;AACD,OAhB+B;AAiBM,8CAAkB;AACtD3D,QAAAA,IAAI,EAAEC,QADgD;AAEtD6E,QAAAA,OAAO,EAAE,OAAOrF,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCsF,QAAQ,CAACtF,IAAD,EAAO,EAAP,CAFG;AAGtDoC,QAAAA,OAAO,EAAE,OAAOA,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwCkD,QAAQ,CAAClD,OAAD,EAAU,EAAV,CAHH;AAItDQ,QAAAA,QAAQ,EAARA,QAJsD,EAAlB,CAjBN,CAiBxB2C,MAjBwB,sBAiBxBA,MAjBwB,CAiBhBC,iBAjBgB,sBAiBhBA,iBAjBgB;;AAuBhCjF,MAAAA,IAAI,CAACyC,KAAL,CAAWuC,MAAX,GAAoBA,MAAM,GAAG,IAA7B;AACAhF,MAAAA,IAAI,CAACyC,KAAL,CAAWyC,SAAX,GAAuBD,iBAAiB,GAAG,QAAH,GAAc,QAAtD;AACAhF,MAAAA,QAAQ,CAACwC,KAAT,CAAeyC,SAAf,GAA2BD,iBAAiB,GAAG,QAAH,GAAc,QAA1D;AACD,K;;AAEOxD,IAAAA,U,GAAa,qBAAS,MAAKoD,iBAAd,EAAiC,MAAKM,yBAAL,EAAjC,C;;AAEbrB,IAAAA,S,GAAY,UAACsB,KAAD,EAAsD;AACxE,UAAI,MAAK/D,KAAL,CAAWI,UAAf,EAA2B;AACzB,cAAKA,UAAL;AACD;;AAED,UAAI,MAAKJ,KAAL,CAAWM,KAAf,EAAsB;AACpB,cAAKN,KAAL,CAAWM,KAAX,CAAiByD,KAAjB;AACD;;AAED,YAAKzF,aAAL;AACD,K;;AAEOoE,IAAAA,W,GAAc,UAACqB,KAAD,EAAsD;AAC1E,UAAI,MAAK/D,KAAL,CAAWI,UAAf,EAA2B;AACzB,cAAKA,UAAL;AACD;;AAED,UAAI,MAAKJ,KAAL,CAAWO,OAAf,EAAwB;AACtB,cAAKP,KAAL,CAAWO,OAAX,CAAmBwD,KAAnB;AACD;;AAED,YAAKzF,aAAL;AACD,K;;AAEOqE,IAAAA,W,GAAc,UAACoB,KAAD,EAAkD;AACtE,YAAKjB,QAAL,CAAc,EAAEzE,gBAAgB,EAAE,IAApB,EAAd;;AAEA,UAAI,MAAK2B,KAAL,CAAWU,gBAAf,EAAiC;AAC/B;AACA,cAAK/B,IAAL,IAAa,CAACqF,cAAd,GAAuB,MAAKxE,SAAL,EAAvB,GAA0C,MAAKG,cAAL,EAA1C;AACD;;AAED,UAAI,MAAKK,KAAL,CAAWS,OAAf,EAAwB;AACtB,cAAKT,KAAL,CAAWS,OAAX,CAAmBsD,KAAnB;AACD;AACF,K,sDAlUOD,yB,GAAR,mCAAkC9D,KAAlC,EAA6E,KAA3CA,KAA2C,cAA3CA,KAA2C,GAApB,KAAKA,KAAe,GAC3E;AACA;AACA,WAAO,KAAKwB,oBAAL,CAA0BxB,KAA1B,IAAmC,CAAnC,GAAuChC,gCAA9C,CACD,C,QACOwD,oB,GAAR,qCAAmG,gCAArB,KAAKxB,KAAgB,SAApEiB,iBAAoE,SAApEA,iBAAoE,CAAjDD,QAAiD,SAAjDA,QAAiD,CACjG,OAAOC,iBAAiB,IAAI,CAACD,QAA7B,CACD,C,QAEMiD,iB,GAAP,6BAA2B,CACzB,IAAI,KAAKjE,KAAL,CAAWI,UAAf,EAA2B,CACzB,KAAKA,UAAL,GACA,KAAKvB,YAAL,GAAoBqF,YAAY,CAACC,WAAb,CAAyB,KAAK/D,UAA9B,CAApB,CACD,CAED,IAAI,KAAKzB,IAAL,IAAa,KAAKqB,KAAL,CAAWa,iBAAxB,IAA6C,KAAK/B,gBAAtD,EAAwE,CACtE,KAAKA,gBAAL,CAAsBsF,OAAtB,CAA8B,KAAKzF,IAAnC,EAAyC,EAAE0F,UAAU,EAAE,IAAd,EAAzC,EACD,CACF,C,QAEMC,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKzF,YAAT,EAAuB,CACrB,KAAKA,YAAL,CAAkB0F,MAAlB,GACD,CACD,IAAI,KAAKvE,KAAL,CAAWa,iBAAX,IAAgC,KAAK/B,gBAAzC,EAA2D,CACzD,KAAKA,gBAAL,CAAsB0F,UAAtB,GACD,CACD,KAAK5E,sBAAL,GACD,C,QAEM6E,kB,GAAP,4BAA0BC,SAA1B,EAAoD,CAClD,IAAI,KAAKZ,yBAAL,OAAqC,KAAKA,yBAAL,CAA+BY,SAA/B,CAAzC,EAAoF,CAClF,KAAKtE,UAAL,CAAgBN,MAAhB,GACA,KAAKM,UAAL,GAAkB,qBAAS,KAAKoD,iBAAd,EAAiC,KAAKM,yBAAL,EAAjC,CAAlB,CACD,CACD,IAAK,KAAK9D,KAAL,CAAWI,UAAX,IAAyB,KAAKJ,KAAL,CAAW5B,IAAX,GAAkB,KAAKF,KAAL,CAAWE,IAAvD,IAAgE,KAAK4B,KAAL,CAAWP,KAAX,KAAqBiF,SAAS,CAACjF,KAAnG,EAA0G,CACxG,KAAKW,UAAL,GACD,CACF,C,QAEMuE,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAAClG,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBAAO,6BAAC,4BAAD,EAAmB,MAAI,CAACuB,KAAxB,EAAgC,MAAI,CAACD,UAArC,CAAP,CACD,CAJH,CADF,CAQD,C,CAED;AACF;AACA,K,QACSR,K,GAAP,iBAAe,CACb,IAAI,KAAKZ,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUY,KAAV,GACD,CACF,C,CAED;AACF;AACA,K,QACSqF,I,GAAP,gBAAc,CACZ,IAAI,KAAKjG,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUiG,IAAV,GACD,CACF,C,CAED;AACF;AACA;AACA;AACA,K,mBA3J8BC,eAAMC,S,8BAAvB7G,Q,CACG8G,mB,GAAsB,U,CADzB9G,Q,CAGG+G,S,GAAY,EACxB9E,KAAK,EAAE+E,mBAAUC,IADO,EAExB/E,OAAO,EAAE8E,mBAAUC,IAFK,EAGxBC,QAAQ,EAAEF,mBAAUC,IAHI,EAKxB9E,UAAU,EAAE6E,mBAAUC,IALE,EAMxBlE,QAAQ,EAAEiE,mBAAUC,IANI,EAOxBjE,iBAAiB,EAAEgE,mBAAUC,IAPL,EAQxB1E,OAAO,EAAEyE,mBAAUG,SAAV,CAAoB,CAACH,mBAAUI,MAAX,EAAmBJ,mBAAUK,MAA7B,CAApB,CARe,EAUxBjF,MAAM,EAAE4E,mBAAUG,SAAV,CAAoB,CAACH,mBAAUI,MAAX,EAAmBJ,mBAAUK,MAA7B,CAApB,CAVgB,EAWxBrF,KAAK,EAAEgF,mBAAUG,SAAV,CAAoB,CAACH,mBAAUI,MAAX,EAAmBJ,mBAAUK,MAA7B,CAApB,CAXiB,EAaxBC,EAAE,EAAEN,mBAAUI,MAbU,EAcxBG,IAAI,EAAEP,mBAAUI,MAdQ,EAexBI,KAAK,EAAER,mBAAUI,MAfO,EAgBxBK,UAAU,EAAET,mBAAUC,IAhBE,EAiBxBS,IAAI,EAAEV,mBAAUI,MAjBQ,EAkBxBnD,SAAS,EAAE+C,mBAAUK,MAlBG,EAmBxBM,QAAQ,EAAEX,mBAAUK,MAnBI,EAoBxBlH,IAAI,EAAE6G,mBAAUK,MApBQ,EAqBxB3E,WAAW,EAAEsE,mBAAUI,MArBC,EAuBxB5F,KAAK,EAAEwF,mBAAUI,MAvBO,EAwBxBxD,YAAY,EAAEoD,mBAAUI,MAxBA,EAyBxBzE,aAAa,EAAEqE,mBAAUY,IAzBD,EA2BxBC,YAAY,EAAEb,mBAAUY,IA3BA,EA4BxBE,YAAY,EAAEd,mBAAUY,IA5BA,EA6BxBG,WAAW,EAAEf,mBAAUY,IA7BC,EA8BxBI,WAAW,EAAEhB,mBAAUY,IA9BC,EA+BxBK,UAAU,EAAEjB,mBAAUY,IA/BE,EAiCxBM,SAAS,EAAElB,mBAAUY,IAjCG,EAkCxBO,WAAW,EAAEnB,mBAAUY,IAlCC,EAmCxBQ,OAAO,EAAEpB,mBAAUY,IAnCK,EAoCxBS,aAAa,EAAErB,mBAAUY,IApCD,EAsCxB1C,SAAS,EAAE8B,mBAAUY,IAtCG,EAuCxBU,UAAU,EAAEtB,mBAAUY,IAvCE,EAwCxBW,OAAO,EAAEvB,mBAAUY,IAxCK,EAyCxBY,OAAO,EAAExB,mBAAUY,IAzCK,EA2CxBpF,OAAO,EAAEwE,mBAAUY,IA3CK,EA4CxBa,MAAM,EAAEzB,mBAAUY,IA5CM,EA8CxBc,QAAQ,EAAE1B,mBAAUY,IA9CI,EA+CxBe,OAAO,EAAE3B,mBAAUY,IA/CK,EAiDxBvF,KAAK,EAAE2E,mBAAUY,IAjDO,EAkDxBtF,OAAO,EAAE0E,mBAAUY,IAlDK,EAmDxBgB,MAAM,EAAE5B,mBAAUY,IAnDM,E,CAHf5H,Q,CAyDG6I,Y,GAAe,EAC3B1I,IAAI,EAAE,CADqB,EAE3BoC,OAAO,EAAE,EAFkB,EAG3BQ,QAAQ,EAAE,IAHiB,EAI3BC,iBAAiB,EAAE8F,6BAJQ,E","sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport raf from 'raf';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isBrowser, isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport { TextareaCounter, TextareaCounterRef } from './TextareaCounter';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Ошибка */\n error?: boolean;\n /** Предупреждение */\n warning?: boolean;\n /** Не активное состояние */\n disabled?: boolean;\n\n /**\n * Атоматический ресайз\n * в зависимости от содержимого\n */\n autoResize?: boolean;\n /**\n * Число строк\n */\n rows: number;\n /**\n * Максимальное число строк при\n * автоматическом ресайзе\n */\n maxRows: string | number;\n\n /**\n * Стандартный ресайз\n * Попадает в `style`\n */\n resize?: React.CSSProperties['resize'];\n\n /**\n * Ширина\n */\n width?: React.CSSProperties['width'];\n\n /**\n * Вызывается при изменении `value`\n */\n onValueChange?: (value: string) => void;\n\n /** Выделение значения при фокусе */\n selectAllOnFocus?: boolean;\n\n /** Показывать счетчик символов */\n showLengthCounter?: boolean;\n\n /** Допустимое количество символов в поле. Отображается в счетчике.\n * Если не указано, равно `maxLength`\n */\n lengthCounter?: number;\n\n /** Подсказка к счетчику символов.\n *\n * По умолчанию - тултип с содежимым из пропа, если передан`ReactNode`.\n *\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой. Например,\n *\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ```\n * */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавлять дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04\n * */\n extraRow: boolean;\n\n /** Отключать анимацию при авто-ресайзе.\n * Автоматически отключается когда в `extraRow` передан `false`.\n */\n disableAnimations: boolean;\n }\n > {}\n\nexport interface TextareaState {\n polyfillPlaceholder: boolean;\n rows: number | string;\n isCounterVisible: boolean;\n}\n\n/**\n * Компонент для ввода многострочного текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`\n *\n * ** `className` и `style` игнорируются**\n */\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n\n public static propTypes = {\n error: PropTypes.bool,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n\n autoResize: PropTypes.bool,\n extraRow: PropTypes.bool,\n disableAnimations: PropTypes.bool,\n maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n id: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n spellCheck: PropTypes.bool,\n role: PropTypes.string,\n maxLength: PropTypes.number,\n tabIndex: PropTypes.number,\n rows: PropTypes.number,\n placeholder: PropTypes.string,\n\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onValueChange: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onInput: PropTypes.func,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n onScroll: PropTypes.func,\n onWheel: PropTypes.func,\n\n onCut: PropTypes.func,\n onPaste: PropTypes.func,\n onCopy: PropTypes.func,\n };\n\n public static defaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public state = {\n polyfillPlaceholder,\n rows: 1,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = isBrowser ? new MutationObserver(this.reflowCounter) : null;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n if ((this.props.autoResize && this.props.rows > this.state.rows) || this.props.value !== prevProps.value) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx({\n [styles.textarea(this.theme)]: true,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.polyfillPlaceholder && !textareaProps.value) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label {...rootProps} className={styles.root(this.theme)}>\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <textarea\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n >\n {this.props.children}\n </textarea>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (polyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows, extraRow } = this.props;\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n const { height, exceededMaxHeight } = getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow,\n });\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Textarea.tsx"],"names":["DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","Textarea","state","polyfillPlaceholder","isCounterVisible","reflowCounter","counter","reflow","theme","selectAllId","node","fakeNode","layoutEvents","textareaObserver","isBrowser","MutationObserver","setSelectionRange","start","end","Error","document","activeElement","focus","selectAll","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","renderMain","props","width","error","warning","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","textareaProps","rootProps","style","textareaClassNames","styles","textarea","isAnimationsDisabled","textareaStyle","placeholderPolyfill","fakeTextarea","fakeProps","defaultValue","className","fake","readOnly","refFake","maxLength","handleCloseCounterHelp","refCounter","root","undefined","ref","handleChange","handleCut","handlePaste","handleFocus","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","onKeyDown","fieldIsEmpty","target","onChange","element","autoResizeHandler","rows","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","isIE11","componentDidMount","LayoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","render","blur","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","disabled","oneOfType","string","number","id","name","title","spellCheck","role","tabIndex","func","onMouseEnter","onMouseLeave","onMouseOver","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onClick","onDoubleClick","onKeyPress","onKeyUp","onInput","onBlur","onScroll","onWheel","onCopy","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport raf from 'raf';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isBrowser, isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport { TextareaCounter, TextareaCounterRef } from './TextareaCounter';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Ошибка */\n error?: boolean;\n /** Предупреждение */\n warning?: boolean;\n /** Не активное состояние */\n disabled?: boolean;\n\n /**\n * Атоматический ресайз\n * в зависимости от содержимого\n */\n autoResize?: boolean;\n /**\n * Число строк\n */\n rows: number;\n /**\n * Максимальное число строк при\n * автоматическом ресайзе\n */\n maxRows: string | number;\n\n /**\n * Стандартный ресайз\n * Попадает в `style`\n */\n resize?: React.CSSProperties['resize'];\n\n /**\n * Ширина\n */\n width?: React.CSSProperties['width'];\n\n /**\n * Вызывается при изменении `value`\n */\n onValueChange?: (value: string) => void;\n\n /** Выделение значения при фокусе */\n selectAllOnFocus?: boolean;\n\n /** Показывать счетчик символов */\n showLengthCounter?: boolean;\n\n /** Допустимое количество символов в поле. Отображается в счетчике.\n * Если не указано, равно `maxLength`\n */\n lengthCounter?: number;\n\n /** Подсказка к счетчику символов.\n *\n * По умолчанию - тултип с содежимым из пропа, если передан`ReactNode`.\n *\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой. Например,\n *\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ```\n * */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавлять дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04\n * */\n extraRow: boolean;\n\n /** Отключать анимацию при авто-ресайзе.\n * Автоматически отключается когда в `extraRow` передан `false`.\n */\n disableAnimations: boolean;\n }\n > {}\n\nexport interface TextareaState {\n polyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\n/**\n * Компонент для ввода многострочного текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`\n *\n * ** `className` и `style` игнорируются**\n */\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n\n public static propTypes = {\n error: PropTypes.bool,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n\n autoResize: PropTypes.bool,\n extraRow: PropTypes.bool,\n disableAnimations: PropTypes.bool,\n maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n id: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n spellCheck: PropTypes.bool,\n role: PropTypes.string,\n maxLength: PropTypes.number,\n tabIndex: PropTypes.number,\n rows: PropTypes.number,\n placeholder: PropTypes.string,\n\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onValueChange: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onInput: PropTypes.func,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n onScroll: PropTypes.func,\n onWheel: PropTypes.func,\n\n onCut: PropTypes.func,\n onPaste: PropTypes.func,\n onCopy: PropTypes.func,\n };\n\n public static defaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public state = {\n polyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = isBrowser ? new MutationObserver(this.reflowCounter) : null;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n if (\n this.props.autoResize &&\n (this.props.rows !== prevProps.rows ||\n this.props.maxRows !== prevProps.maxRows ||\n this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx({\n [styles.textarea(this.theme)]: true,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.polyfillPlaceholder && !textareaProps.value) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label {...rootProps} className={styles.root(this.theme)}>\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <textarea\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n >\n {this.props.children}\n </textarea>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (polyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows, extraRow } = this.props;\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n const { height, exceededMaxHeight } = getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow,\n });\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"]}
|
|
@@ -4,27 +4,73 @@ import { CommonProps } from '../../internal/CommonWrapper';
|
|
|
4
4
|
export interface ToggleProps extends CommonProps {
|
|
5
5
|
children?: React.ReactNode;
|
|
6
6
|
/**
|
|
7
|
-
* Положение children
|
|
7
|
+
* Положение `children` относительно переключателя.
|
|
8
8
|
* @default 'right'
|
|
9
9
|
*/
|
|
10
10
|
captionPosition: 'left' | 'right';
|
|
11
|
+
/**
|
|
12
|
+
* Состояние `тогла`, если `true` - `тогл` будет включён, иначе выключен.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
11
15
|
checked?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Делает `тогл` включенным по умолчанию.
|
|
18
|
+
*/
|
|
12
19
|
defaultChecked?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Отключает `тогл`.
|
|
22
|
+
*/
|
|
13
23
|
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Событие вызывающееся, когда значение `тогла` меняется, передаёт текущее значение тогла в переданную функцию.
|
|
26
|
+
*/
|
|
14
27
|
onValueChange?: (value: boolean) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Событие вызывающееся при клике на `тогл`.
|
|
30
|
+
*/
|
|
15
31
|
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
32
|
+
/**
|
|
33
|
+
* Добавляет оранжевую обводку вокруг переключателя.
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
16
36
|
warning?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Добавляет красную обводку вокруг переключателя.
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
17
41
|
error?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Добавляет стили для состояния `loading` и отключает `тогл`.
|
|
44
|
+
*/
|
|
18
45
|
loading?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Если true, выставляет фокус на `тогле` после загрузки страницы.
|
|
48
|
+
*/
|
|
19
49
|
autoFocus?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Событие вызывающееся, когда `тогл` получает фокус.
|
|
52
|
+
*/
|
|
20
53
|
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
54
|
+
/**
|
|
55
|
+
* Событие вызывающееся, когда `тогл` теряет фокус.
|
|
56
|
+
*/
|
|
21
57
|
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated используйте переменную темы `toggleBgChecked` вместо этого пропа.
|
|
60
|
+
*/
|
|
22
61
|
color?: React.CSSProperties['color'];
|
|
62
|
+
/**
|
|
63
|
+
* HTML-атрибут `id` для передачи во внутренний `<input />`.
|
|
64
|
+
*/
|
|
65
|
+
id?: string;
|
|
23
66
|
}
|
|
24
67
|
export interface ToggleState {
|
|
25
68
|
checked?: boolean;
|
|
26
69
|
focusByTab?: boolean;
|
|
27
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* _Примечание:_ под тоглом понимается полный компонент т.е. надпись + переключатель, а не просто переключатель.
|
|
73
|
+
*/
|
|
28
74
|
export declare class Toggle extends React.Component<ToggleProps, ToggleState> {
|
|
29
75
|
static __KONTUR_REACT_UI__: string;
|
|
30
76
|
static propTypes: {
|