@skbkontur/react-ui 4.16.0 → 4.16.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +28 -145
  2. package/cjs/components/Button/Button.d.ts +1 -0
  3. package/cjs/components/Button/Button.js +7 -2
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Button/Button.mixins.js +1 -1
  6. package/cjs/components/Button/Button.mixins.js.map +1 -1
  7. package/cjs/components/DateInput/DateInput.js +12 -5
  8. package/cjs/components/DateInput/DateInput.js.map +1 -1
  9. package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -2
  10. package/cjs/components/Input/InputLayout/InputLayout.js +4 -3
  11. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  12. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  13. package/cjs/components/SidePage/SidePageHeader.js +5 -4
  14. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  15. package/cjs/internal/themes/Theme2022.d.ts +1 -1
  16. package/cjs/internal/themes/Theme2022.js +2 -3
  17. package/cjs/internal/themes/Theme2022.js.map +1 -1
  18. package/cjs/internal/themes/Theme2022Dark.d.ts +1 -0
  19. package/cjs/internal/themes/Theme2022Dark.js +2 -1
  20. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  21. package/components/Button/Button/Button.js +3 -1
  22. package/components/Button/Button/Button.js.map +1 -1
  23. package/components/Button/Button.d.ts +1 -0
  24. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  25. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  26. package/components/DateInput/DateInput/DateInput.js +21 -8
  27. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  28. package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
  29. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  30. package/components/Input/InputLayout/InputLayout.d.ts +3 -2
  31. package/components/SidePage/SidePageHeader/SidePageHeader.js +3 -2
  32. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  33. package/components/SidePage/SidePageHeader.d.ts +1 -0
  34. package/internal/themes/Theme2022/Theme2022.js +1 -1
  35. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  36. package/internal/themes/Theme2022.d.ts +1 -1
  37. package/internal/themes/Theme2022Dark/Theme2022Dark.js +1 -0
  38. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  39. package/internal/themes/Theme2022Dark.d.ts +1 -0
  40. package/package.json +3 -2
@@ -38,7 +38,7 @@ var getBtnPadding = function getBtnPadding(fontSize, paddingY, paddingX, fontFam
38
38
 
39
39
  export var buttonUseMixin = function buttonUseMixin(btnBackground, btnBackgroundStart, btnBackgroundEnd, color, borderColor, borderBottomColor, borderWidth) {
40
40
  var hasGradient = btnBackgroundStart !== btnBackgroundEnd;
41
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n background-image: ", ";\n color: ", ";\n box-shadow: 0 0 0 ", " ", "", ";\n\n .", " {\n box-shadow: ", " 0 0 0 ", ";\n }\n\n :hover,\n :enabled {\n .", " svg,\n .", " svg {\n color: ", ";\n }\n }\n "])), hasGradient ? "initial" : btnBackground, hasGradient ? "linear-gradient(" + btnBackgroundStart + ", " + btnBackgroundEnd + ")" : "none", color, borderWidth, borderColor, borderBottomColor ? ", 0 " + borderWidth + " 0 0 " + borderBottomColor : "", globalClasses.arrowHelper, borderWidth, borderColor, globalClasses.icon, globalClasses.arrow, color);
41
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n background-image: ", ";\n color: ", ";\n box-shadow: 0 0 0 ", " ", "", ";\n\n .", " {\n box-shadow: ", " 0 0 0 ", ";\n }\n\n :enabled:hover,\n :enabled {\n .", " svg,\n .", " svg {\n color: ", ";\n }\n }\n "])), hasGradient ? "initial" : btnBackground, hasGradient ? "linear-gradient(" + btnBackgroundStart + ", " + btnBackgroundEnd + ")" : "none", color, borderWidth, borderColor, borderBottomColor ? ", 0 " + borderWidth + " 0 0 " + borderBottomColor : "", globalClasses.arrowHelper, borderWidth, borderColor, globalClasses.icon, globalClasses.arrow, color);
42
42
  };
43
43
  export var buttonHoverMixin = function buttonHoverMixin(btnBackground, btnBackgroundStart, btnBackgroundEnd, borderColor, borderBottomColor, borderWidth) {
44
44
  var hasGradient = btnBackgroundStart !== btnBackgroundEnd;
@@ -1 +1 @@
1
- {"version":3,"sources":["Button.mixins.ts"],"names":["css","shift","globalClasses","getBtnPadding","fontSize","paddingY","paddingX","fontFamilyCompensation","additionalOffset","paddingTop","paddingBottom","offset","parseInt","shiftUp","top","bottom","buttonUseMixin","btnBackground","btnBackgroundStart","btnBackgroundEnd","color","borderColor","borderBottomColor","borderWidth","hasGradient","arrowHelper","icon","arrow","buttonHoverMixin","buttonActiveMixin","btnShadow","borderTopColor","arrowBgImage","innerShadow","arrowHelperTop","buttonSizeMixin","lineHeight","buttonSizeMixinIE11","arrowOutlineMixin","insetWidth","outlineColor","outlineWidth","insetColor","arrowHelperBottom"],"mappings":"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","sourcesContent":["import { css } from '../../lib/theming/Emotion';\nimport { shift } from '../../lib/styles/DimensionFunctions';\n\nimport { globalClasses } from './Button.styles';\n\nconst getBtnPadding = (\n fontSize: string,\n paddingY: string,\n paddingX: string,\n fontFamilyCompensation: string,\n additionalOffset = 0,\n): string => {\n let paddingTop = paddingY;\n let paddingBottom = paddingY;\n const offset = parseInt(fontFamilyCompensation) || 0;\n\n const shiftUp = (top: string, bottom: string, offset: number) => {\n return [shift(top, `${-offset}`), shift(bottom, `${offset}`)];\n };\n\n if (fontSize === '16px' && offset) {\n [paddingTop, paddingBottom] = shiftUp(paddingTop, paddingBottom, offset);\n }\n if (additionalOffset && offset) {\n [paddingTop, paddingBottom] = shiftUp(paddingTop, paddingBottom, additionalOffset);\n }\n\n return `${paddingTop} ${paddingX} ${paddingBottom}`;\n};\n\nexport const buttonUseMixin = (\n btnBackground: string,\n btnBackgroundStart: string,\n btnBackgroundEnd: string,\n color: string,\n borderColor: string,\n borderBottomColor: string,\n borderWidth: string,\n) => {\n const hasGradient = btnBackgroundStart !== btnBackgroundEnd;\n return css`\n background-color: ${hasGradient ? `initial` : btnBackground};\n background-image: ${hasGradient ? `linear-gradient(${btnBackgroundStart}, ${btnBackgroundEnd})` : `none`};\n color: ${color};\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${borderBottomColor ? `, 0 ${borderWidth} 0 0 ${borderBottomColor}` : ``};\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${borderWidth} 0 0 0 ${borderColor};\n }\n\n :hover,\n :enabled {\n .${globalClasses.icon} svg,\n .${globalClasses.arrow} svg {\n color: ${color};\n }\n }\n `;\n};\n\nexport const buttonHoverMixin = (\n btnBackground: string,\n btnBackgroundStart: string,\n btnBackgroundEnd: string,\n borderColor: string,\n borderBottomColor: string,\n borderWidth: string,\n) => {\n const hasGradient = btnBackgroundStart !== btnBackgroundEnd;\n return css`\n background-color: ${hasGradient ? `initial` : btnBackground};\n background-image: ${hasGradient ? `linear-gradient(${btnBackgroundStart}, ${btnBackgroundEnd})` : `none`};\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${borderBottomColor ? `, 0 ${borderWidth} 0 0 ${borderBottomColor}` : ``};\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${borderWidth} 0 0 ${borderColor};\n }\n `;\n};\n\nexport const buttonActiveMixin = (\n btnBackground: string,\n btnShadow: string,\n borderColor: string,\n borderTopColor: string,\n borderWidth: string,\n arrowBgImage: string,\n) => {\n return css`\n &,\n &:hover {\n background-image: none !important; // override :hover styles\n background-color: ${btnBackground} !important; // override :hover styles\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${borderTopColor ? `, 0 -${borderWidth} 0 0 ${borderTopColor}` : ``} !important; // override :hover styles\n\n .${globalClasses.innerShadow} {\n box-shadow: ${btnShadow};\n }\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${borderWidth} 0 0 ${borderColor};\n\n &.${globalClasses.arrowHelperTop} {\n background-image: ${arrowBgImage};\n }\n }\n }\n `;\n};\n\nexport const buttonSizeMixin = (\n fontSize: string,\n lineHeight: string,\n paddingX: string,\n paddingY: string,\n fontFamilyCompensation: string,\n) => {\n return css`\n font-size: ${fontSize};\n box-sizing: border-box;\n padding: ${getBtnPadding(fontSize, paddingY, paddingX, fontFamilyCompensation)};\n line-height: ${lineHeight};\n `;\n};\n\nexport const buttonSizeMixinIE11 = (\n fontSize: string,\n paddingX: string,\n paddingY: string,\n fontFamilyCompensation: string,\n) => {\n return css`\n padding: ${getBtnPadding(fontSize, paddingY, paddingX, fontFamilyCompensation, 1)};\n line-height: normal;\n `;\n};\n\nexport const arrowOutlineMixin = (\n insetWidth: string,\n outlineColor: string,\n outlineWidth: string,\n insetColor: string,\n) => {\n return css`\n .${globalClasses.arrowHelper} {\n &.${globalClasses.arrowHelperTop} {\n box-shadow: inset -${insetWidth} ${insetWidth} 0 0 ${insetColor}, ${outlineWidth} 0 0 0 ${outlineColor} !important; // override :active styles\n }\n\n &.${globalClasses.arrowHelperBottom} {\n box-shadow: inset -${insetWidth} -${insetWidth} 0 0 ${insetColor}, ${outlineWidth} 0 0 0 ${outlineColor} !important; // override :active styles\n }\n\n // don't hide inner outline\n // and keep the middle-line fix\n &:before {\n top: ${insetWidth};\n right: ${insetWidth};\n left: ${insetWidth};\n }\n &.${globalClasses.arrowHelperBottom}:before {\n bottom: ${insetWidth};\n }\n }\n `;\n};\n"]}
1
+ {"version":3,"sources":["Button.mixins.ts"],"names":["css","shift","globalClasses","getBtnPadding","fontSize","paddingY","paddingX","fontFamilyCompensation","additionalOffset","paddingTop","paddingBottom","offset","parseInt","shiftUp","top","bottom","buttonUseMixin","btnBackground","btnBackgroundStart","btnBackgroundEnd","color","borderColor","borderBottomColor","borderWidth","hasGradient","arrowHelper","icon","arrow","buttonHoverMixin","buttonActiveMixin","btnShadow","borderTopColor","arrowBgImage","innerShadow","arrowHelperTop","buttonSizeMixin","lineHeight","buttonSizeMixinIE11","arrowOutlineMixin","insetWidth","outlineColor","outlineWidth","insetColor","arrowHelperBottom"],"mappings":"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","sourcesContent":["import { css } from '../../lib/theming/Emotion';\nimport { shift } from '../../lib/styles/DimensionFunctions';\n\nimport { globalClasses } from './Button.styles';\n\nconst getBtnPadding = (\n fontSize: string,\n paddingY: string,\n paddingX: string,\n fontFamilyCompensation: string,\n additionalOffset = 0,\n): string => {\n let paddingTop = paddingY;\n let paddingBottom = paddingY;\n const offset = parseInt(fontFamilyCompensation) || 0;\n\n const shiftUp = (top: string, bottom: string, offset: number) => {\n return [shift(top, `${-offset}`), shift(bottom, `${offset}`)];\n };\n\n if (fontSize === '16px' && offset) {\n [paddingTop, paddingBottom] = shiftUp(paddingTop, paddingBottom, offset);\n }\n if (additionalOffset && offset) {\n [paddingTop, paddingBottom] = shiftUp(paddingTop, paddingBottom, additionalOffset);\n }\n\n return `${paddingTop} ${paddingX} ${paddingBottom}`;\n};\n\nexport const buttonUseMixin = (\n btnBackground: string,\n btnBackgroundStart: string,\n btnBackgroundEnd: string,\n color: string,\n borderColor: string,\n borderBottomColor: string,\n borderWidth: string,\n) => {\n const hasGradient = btnBackgroundStart !== btnBackgroundEnd;\n return css`\n background-color: ${hasGradient ? `initial` : btnBackground};\n background-image: ${hasGradient ? `linear-gradient(${btnBackgroundStart}, ${btnBackgroundEnd})` : `none`};\n color: ${color};\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${borderBottomColor ? `, 0 ${borderWidth} 0 0 ${borderBottomColor}` : ``};\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${borderWidth} 0 0 0 ${borderColor};\n }\n\n :enabled:hover,\n :enabled {\n .${globalClasses.icon} svg,\n .${globalClasses.arrow} svg {\n color: ${color};\n }\n }\n `;\n};\n\nexport const buttonHoverMixin = (\n btnBackground: string,\n btnBackgroundStart: string,\n btnBackgroundEnd: string,\n borderColor: string,\n borderBottomColor: string,\n borderWidth: string,\n) => {\n const hasGradient = btnBackgroundStart !== btnBackgroundEnd;\n return css`\n background-color: ${hasGradient ? `initial` : btnBackground};\n background-image: ${hasGradient ? `linear-gradient(${btnBackgroundStart}, ${btnBackgroundEnd})` : `none`};\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${borderBottomColor ? `, 0 ${borderWidth} 0 0 ${borderBottomColor}` : ``};\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${borderWidth} 0 0 ${borderColor};\n }\n `;\n};\n\nexport const buttonActiveMixin = (\n btnBackground: string,\n btnShadow: string,\n borderColor: string,\n borderTopColor: string,\n borderWidth: string,\n arrowBgImage: string,\n) => {\n return css`\n &,\n &:hover {\n background-image: none !important; // override :hover styles\n background-color: ${btnBackground} !important; // override :hover styles\n box-shadow: 0 0 0 ${borderWidth} ${borderColor}${borderTopColor ? `, 0 -${borderWidth} 0 0 ${borderTopColor}` : ``} !important; // override :hover styles\n\n .${globalClasses.innerShadow} {\n box-shadow: ${btnShadow};\n }\n\n .${globalClasses.arrowHelper} {\n box-shadow: ${borderWidth} 0 0 ${borderColor};\n\n &.${globalClasses.arrowHelperTop} {\n background-image: ${arrowBgImage};\n }\n }\n }\n `;\n};\n\nexport const buttonSizeMixin = (\n fontSize: string,\n lineHeight: string,\n paddingX: string,\n paddingY: string,\n fontFamilyCompensation: string,\n) => {\n return css`\n font-size: ${fontSize};\n box-sizing: border-box;\n padding: ${getBtnPadding(fontSize, paddingY, paddingX, fontFamilyCompensation)};\n line-height: ${lineHeight};\n `;\n};\n\nexport const buttonSizeMixinIE11 = (\n fontSize: string,\n paddingX: string,\n paddingY: string,\n fontFamilyCompensation: string,\n) => {\n return css`\n padding: ${getBtnPadding(fontSize, paddingY, paddingX, fontFamilyCompensation, 1)};\n line-height: normal;\n `;\n};\n\nexport const arrowOutlineMixin = (\n insetWidth: string,\n outlineColor: string,\n outlineWidth: string,\n insetColor: string,\n) => {\n return css`\n .${globalClasses.arrowHelper} {\n &.${globalClasses.arrowHelperTop} {\n box-shadow: inset -${insetWidth} ${insetWidth} 0 0 ${insetColor}, ${outlineWidth} 0 0 0 ${outlineColor} !important; // override :active styles\n }\n\n &.${globalClasses.arrowHelperBottom} {\n box-shadow: inset -${insetWidth} -${insetWidth} 0 0 ${insetColor}, ${outlineWidth} 0 0 0 ${outlineColor} !important; // override :active styles\n }\n\n // don't hide inner outline\n // and keep the middle-line fix\n &:before {\n top: ${insetWidth};\n right: ${insetWidth};\n left: ${insetWidth};\n }\n &.${globalClasses.arrowHelperBottom}:before {\n bottom: ${insetWidth};\n }\n }\n `;\n};\n"]}
@@ -4,6 +4,7 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _dec, _class, _class2, _temp;
5
5
 
6
6
  import React from 'react';
7
+ import ReactDOM from 'react-dom';
7
8
  import { ConditionalHandler } from "../../../lib/ConditionalHandler";
8
9
  import { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from "../../../lib/date/constants";
9
10
  import { InternalDateComponentType } from "../../../lib/date/types";
@@ -219,22 +220,34 @@ export var DateInput = (_dec = locale('DatePicker', DatePickerLocaleHelper), roo
219
220
  });
220
221
  };
221
222
 
222
- _this.updateValue = function (state) {
223
+ _this.updateValue = function (state, sync) {
223
224
  if (state === void 0) {
224
225
  state = {};
225
226
  }
226
227
 
228
+ if (sync === void 0) {
229
+ sync = true;
230
+ }
231
+
227
232
  var valueFormatted = _this.iDateMediator.getString();
228
233
 
229
- _this.setState(_extends({}, state, {
230
- valueFormatted: valueFormatted
231
- }), _this.emitChange);
234
+ var update = function update() {
235
+ return _this.setState(_extends({}, state, {
236
+ valueFormatted: valueFormatted
237
+ }), _this.emitChange);
238
+ };
239
+
240
+ if (sync && React.version.search('18') === 0) {
241
+ ReactDOM.flushSync(update);
242
+ } else {
243
+ update();
244
+ }
232
245
  };
233
246
 
234
- _this.updateFromProps = function () {
247
+ _this.updateFromProps = function (sync) {
235
248
  _this.iDateMediator.update(_this.props, _this.locale);
236
249
 
237
- _this.updateValue();
250
+ _this.updateValue({}, sync);
238
251
  };
239
252
 
240
253
  _this.fullSelection = function () {
@@ -393,14 +406,14 @@ export var DateInput = (_dec = locale('DatePicker', DatePickerLocaleHelper), roo
393
406
  maxDate = _this$getProps.maxDate;
394
407
 
395
408
  if (prevProps.value !== value || prevProps.minDate !== minDate || prevProps.maxDate !== maxDate || this.iDateMediator.isChangedLocale(this.locale)) {
396
- this.updateFromProps();
409
+ this.updateFromProps(false);
397
410
  }
398
411
 
399
412
  this.selectNode();
400
413
  };
401
414
 
402
415
  _proto.componentDidMount = function componentDidMount() {
403
- this.updateFromProps();
416
+ this.updateFromProps(false);
404
417
 
405
418
  if (this.props.autoFocus) {
406
419
  this.focus();
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.tsx"],"names":["React","ConditionalHandler","LENGTH_FULLDATE","MAX_FULLDATE","MIN_FULLDATE","InternalDateComponentType","DatePickerLocaleHelper","InputLikeText","locale","ThemeContext","CalendarIcon","CommonWrapper","cx","rootNode","createPropsGetter","isTheme2022","CalendarIcon2022","DateFragmentsView","styles","Actions","extractAction","InternalDateMediator","DateInputDataTids","icon","DateInput","props","getProps","defaultProps","iDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","add","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","disabled","size","theme","iconStyles","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","setRootNode","error","warning","onClick","valueVisible","getFragments","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { CalendarIcon as CalendarIcon2022 } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value?: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate?: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate?: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size?: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = isTheme2022(theme) ? <CalendarIcon2022 size={size} /> : <CalendarIcon />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
1
+ {"version":3,"sources":["DateInput.tsx"],"names":["React","ReactDOM","ConditionalHandler","LENGTH_FULLDATE","MAX_FULLDATE","MIN_FULLDATE","InternalDateComponentType","DatePickerLocaleHelper","InputLikeText","locale","ThemeContext","CalendarIcon","CommonWrapper","cx","rootNode","createPropsGetter","isTheme2022","CalendarIcon2022","DateFragmentsView","styles","Actions","extractAction","InternalDateMediator","DateInputDataTids","icon","DateInput","props","getProps","defaultProps","iDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","add","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","disabled","size","theme","iconStyles","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","sync","valueFormatted","getString","update","emitChange","version","search","flushSync","updateFromProps","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","setRootNode","error","warning","onClick","valueVisible","getFragments","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { CalendarIcon as CalendarIcon2022 } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value?: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate?: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate?: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size?: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = isTheme2022(theme) ? <CalendarIcon2022 size={size} /> : <CalendarIcon />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import React from 'react';
3
+ import { forwardRefAndName } from "../../../../lib/forwardRefAndName";
3
4
  import { InputDataTids } from "../../Input";
4
5
  import { CommonWrapper } from "../../../../internal/CommonWrapper";
5
6
  import { InputLayoutAside } from "../InputLayoutAside";
6
7
  import { InputLayoutContext, InputLayoutContextDefault } from "../InputLayoutContext";
7
8
  import { stylesLayout } from "../InputLayout.styles";
8
- export var InputLayout = function InputLayout(props) {
9
+ export var InputLayout = forwardRefAndName('InputLayout', function (props, ref) {
9
10
  var leftIcon = props.leftIcon,
10
11
  rightIcon = props.rightIcon,
11
12
  prefix = props.prefix,
@@ -19,6 +20,7 @@ export var InputLayout = function InputLayout(props) {
19
20
  return /*#__PURE__*/React.createElement(InputLayoutContext.Provider, {
20
21
  value: _context
21
22
  }, /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement("label", _extends({
23
+ ref: ref,
22
24
  "data-tid": InputDataTids.root
23
25
  }, labelProps), /*#__PURE__*/React.createElement(InputLayoutAside, {
24
26
  icon: leftIcon,
@@ -31,4 +33,4 @@ export var InputLayout = function InputLayout(props) {
31
33
  text: suffix,
32
34
  side: "right"
33
35
  }))));
34
- };
36
+ });
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLayout.tsx"],"names":["React","InputDataTids","CommonWrapper","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","stylesLayout","InputLayout","props","leftIcon","rightIcon","prefix","suffix","labelProps","context","children","_context","root","input"],"mappings":"0DAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,aAAT,QAA0C,UAA1C;AACA,SAASC,aAAT,QAA8B,iCAA9B;;AAEA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,kBAAT,EAA6BC,yBAA7B,QAAuF,sBAAvF;AACA,SAASC,YAAT,QAA6B,sBAA7B;;;;;;;;;AASA,OAAO,IAAMC,WAA0D,GAAG,SAA7DA,WAA6D,CAACC,KAAD,EAAW;AACnF,MAAQC,QAAR,GAA+ED,KAA/E,CAAQC,QAAR,CAAkBC,SAAlB,GAA+EF,KAA/E,CAAkBE,SAAlB,CAA6BC,MAA7B,GAA+EH,KAA/E,CAA6BG,MAA7B,CAAqCC,MAArC,GAA+EJ,KAA/E,CAAqCI,MAArC,CAA6CC,UAA7C,GAA+EL,KAA/E,CAA6CK,UAA7C,CAAyDC,OAAzD,GAA+EN,KAA/E,CAAyDM,OAAzD,CAAkEC,QAAlE,GAA+EP,KAA/E,CAAkEO,QAAlE;AACA,MAAMC,QAAiC,gBAAQX,yBAAR,EAAsCS,OAAtC,CAAvC;;AAEA;AACE,wBAAC,kBAAD,CAAoB,QAApB,IAA6B,KAAK,EAAEE,QAApC;AACE,wBAAC,aAAD,EAAmBR,KAAnB;AACE,4CAAO,YAAUP,aAAa,CAACgB,IAA/B,IAAyCJ,UAAzC;AACE,wBAAC,gBAAD,IAAkB,IAAI,EAAEJ,QAAxB,EAAkC,IAAI,EAAEE,MAAxC,EAAgD,IAAI,EAAC,MAArD,GADF;AAEE,kCAAM,SAAS,EAAEL,YAAY,CAACY,KAAb,EAAjB,IAAwCH,QAAxC,CAFF;AAGE,wBAAC,gBAAD,IAAkB,IAAI,EAAEL,SAAxB,EAAmC,IAAI,EAAEE,MAAzC,EAAiD,IAAI,EAAC,OAAtD,GAHF,CADF,CADF,CADF;;;;;AAWD,CAfM","sourcesContent":["import React from 'react';\n\nimport { InputDataTids, InputProps } from '../Input';\nimport { CommonWrapper } from '../../../internal/CommonWrapper';\n\nimport { InputLayoutAside } from './InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault, InputLayoutContextProps } from './InputLayoutContext';\nimport { stylesLayout } from './InputLayout.styles';\n\ntype InputLayoutRootFromInputProps = Pick<InputProps, 'leftIcon' | 'rightIcon' | 'prefix' | 'suffix'>;\n\nexport interface InputLayoutRootProps extends InputLayoutRootFromInputProps {\n labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;\n context: Partial<InputLayoutContextProps>;\n}\n\nexport const InputLayout: React.FunctionComponent<InputLayoutRootProps> = (props) => {\n const { leftIcon, rightIcon, prefix, suffix, labelProps, context, children } = props;\n const _context: InputLayoutContextProps = { ...InputLayoutContextDefault, ...context };\n\n return (\n <InputLayoutContext.Provider value={_context}>\n <CommonWrapper {...props}>\n <label data-tid={InputDataTids.root} {...labelProps}>\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n <span className={stylesLayout.input()}>{children}</span>\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n </label>\n </CommonWrapper>\n </InputLayoutContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"sources":["InputLayout.tsx"],"names":["React","forwardRefAndName","InputDataTids","CommonWrapper","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","stylesLayout","InputLayout","props","ref","leftIcon","rightIcon","prefix","suffix","labelProps","context","children","_context","root","input"],"mappings":"0DAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,iBAAT,QAAkC,gCAAlC;AACA,SAASC,aAAT,QAA0C,UAA1C;AACA,SAAsBC,aAAtB,QAA2C,iCAA3C;;AAEA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,kBAAT,EAA6BC,yBAA7B,QAAuF,sBAAvF;AACA,SAASC,YAAT,QAA6B,sBAA7B;;;;;;;;;AASA,OAAO,IAAMC,WAAW,GAAGP,iBAAiB,CAAyC,aAAzC,EAAwD,UAACQ,KAAD,EAAQC,GAAR,EAAgB;AAClH,MAAQC,QAAR,GAA+EF,KAA/E,CAAQE,QAAR,CAAkBC,SAAlB,GAA+EH,KAA/E,CAAkBG,SAAlB,CAA6BC,MAA7B,GAA+EJ,KAA/E,CAA6BI,MAA7B,CAAqCC,MAArC,GAA+EL,KAA/E,CAAqCK,MAArC,CAA6CC,UAA7C,GAA+EN,KAA/E,CAA6CM,UAA7C,CAAyDC,OAAzD,GAA+EP,KAA/E,CAAyDO,OAAzD,CAAkEC,QAAlE,GAA+ER,KAA/E,CAAkEQ,QAAlE;AACA,MAAMC,QAAiC,gBAAQZ,yBAAR,EAAsCU,OAAtC,CAAvC;;AAEA;AACE,wBAAC,kBAAD,CAAoB,QAApB,IAA6B,KAAK,EAAEE,QAApC;AACE,wBAAC,aAAD,EAAmBT,KAAnB;AACE,4CAAO,GAAG,EAAEC,GAAZ,EAAiB,YAAUR,aAAa,CAACiB,IAAzC,IAAmDJ,UAAnD;AACE,wBAAC,gBAAD,IAAkB,IAAI,EAAEJ,QAAxB,EAAkC,IAAI,EAAEE,MAAxC,EAAgD,IAAI,EAAC,MAArD,GADF;AAEE,kCAAM,SAAS,EAAEN,YAAY,CAACa,KAAb,EAAjB,IAAwCH,QAAxC,CAFF;AAGE,wBAAC,gBAAD,IAAkB,IAAI,EAAEL,SAAxB,EAAmC,IAAI,EAAEE,MAAzC,EAAiD,IAAI,EAAC,OAAtD,GAHF,CADF,CADF,CADF;;;;;AAWD,CAf2C,CAArC","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName';\nimport { InputDataTids, InputProps } from '../Input';\nimport { CommonProps, CommonWrapper } from '../../../internal/CommonWrapper';\n\nimport { InputLayoutAside } from './InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault, InputLayoutContextProps } from './InputLayoutContext';\nimport { stylesLayout } from './InputLayout.styles';\n\ntype InputLayoutRootFromInputProps = Pick<InputProps, 'leftIcon' | 'rightIcon' | 'prefix' | 'suffix'>;\n\nexport interface InputLayoutRootProps extends InputLayoutRootFromInputProps, CommonProps {\n labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;\n context: Partial<InputLayoutContextProps>;\n}\n\nexport const InputLayout = forwardRefAndName<HTMLLabelElement, InputLayoutRootProps>('InputLayout', (props, ref) => {\n const { leftIcon, rightIcon, prefix, suffix, labelProps, context, children } = props;\n const _context: InputLayoutContextProps = { ...InputLayoutContextDefault, ...context };\n\n return (\n <InputLayoutContext.Provider value={_context}>\n <CommonWrapper {...props}>\n <label ref={ref} data-tid={InputDataTids.root} {...labelProps}>\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n <span className={stylesLayout.input()}>{children}</span>\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n </label>\n </CommonWrapper>\n </InputLayoutContext.Provider>\n );\n});\n"]}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { InputProps } from '../Input';
3
+ import { CommonProps } from '../../../internal/CommonWrapper';
3
4
  import { InputLayoutContextProps } from './InputLayoutContext';
4
5
  declare type InputLayoutRootFromInputProps = Pick<InputProps, 'leftIcon' | 'rightIcon' | 'prefix' | 'suffix'>;
5
- export interface InputLayoutRootProps extends InputLayoutRootFromInputProps {
6
+ export interface InputLayoutRootProps extends InputLayoutRootFromInputProps, CommonProps {
6
7
  labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;
7
8
  context: Partial<InputLayoutContextProps>;
8
9
  }
9
- export declare const InputLayout: React.FunctionComponent<InputLayoutRootProps>;
10
+ export declare const InputLayout: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLLabelElement, InputLayoutRootProps>;
10
11
  export {};
@@ -47,6 +47,7 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_temp =
47
47
  _this.wrapper = null;
48
48
  _this.sticky = null;
49
49
  _this.lastRegularHeight = 0;
50
+ _this.closeIcon = /*#__PURE__*/React.createElement(SidePageCloseButton, null);
50
51
 
51
52
  _this.componentDidMount = function () {
52
53
  window.addEventListener('scroll', _this.update, true);
@@ -101,10 +102,10 @@ export var SidePageHeader = responsiveLayout(_class = rootNode(_class = (_temp =
101
102
  var stickyOffset = parseInt(_this.theme.sidePageHeaderStickyOffset);
102
103
  return /*#__PURE__*/React.createElement("div", {
103
104
  className: cx(styles.wrapperClose(_this.theme), (_cx3 = {}, _cx3[styles.wrapperCloseFixed(_this.theme)] = fixed, _cx3[styles.mobileWrapperClose(_this.theme)] = _this.isMobileLayout, _cx3))
104
- }, _this.isMobileLayout ? /*#__PURE__*/React.createElement(SidePageCloseButton, null) : /*#__PURE__*/React.createElement(Sticky, {
105
+ }, _this.isMobileLayout ? _this.closeIcon : /*#__PURE__*/React.createElement(Sticky, {
105
106
  side: "top",
106
107
  offset: stickyOffset
107
- }, /*#__PURE__*/React.createElement(SidePageCloseButton, null)));
108
+ }, _this.closeIcon));
108
109
  };
109
110
 
110
111
  _this.updateReadyToFix = function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["SidePageHeader.tsx"],"names":["React","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","getDOMRect","ModalSeparator","isTheme2022","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","context","state","isReadyToFix","wrapper","sticky","lastRegularHeight","componentDidMount","window","addEventListener","update","setHasHeader","headerRef","componentWillUnmount","removeEventListener","reflow","updateReadyToFix","renderHeader","fixed","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","mobileTitle","titleFixed","props","children","renderHeader2022","isDisplayed","hasSeparator","stickyOffset","parseInt","sidePageHeaderStickyOffset","wrapperClose","wrapperCloseFixed","mobileWrapperClose","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","setState","wrapperRef","el","stickyRef","render","renderMain","getStickyProp","isStickyDesktop","isStickyMobile","setRootNode","headerWrapper","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","contextType","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './SidePage.styles';\nimport { SidePageContext, SidePageContextType } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n sticky?: boolean;\n hasSeparator?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isReadyToFix: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isReadyToFix: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n private setRootNode!: TSetRootNode;\n\n public get regularHeight(): number {\n const { isReadyToFix } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToFix) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n window.addEventListener('scroll', this.update, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n window.removeEventListener('scroll', this.update, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n public update = () => {\n this.sticky?.reflow();\n this.updateReadyToFix();\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToFix } = this.state;\n\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = isTheme2022(this.theme) ? this.renderHeader2022 : this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SidePageHeaderDataTids.root} ref={this.wrapperRef} className={styles.headerWrapper()}>\n {isStickyDesktop || isStickyMobile ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n return (\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleFixed()]: fixed,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n );\n };\n\n private renderHeader2022 = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n {this.renderHeader(fixed)}\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperCloseFixed(this.theme)]: fixed,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.isMobileLayout ? (\n <SidePageCloseButton />\n ) : (\n <Sticky side=\"top\" offset={stickyOffset}>\n <SidePageCloseButton />\n </Sticky>\n )}\n </div>\n );\n };\n\n private updateReadyToFix = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToFix = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToFix !== isReadyToFix ? { ...state, isReadyToFix } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"]}
1
+ {"version":3,"sources":["SidePageHeader.tsx"],"names":["React","Sticky","isFunction","ThemeContext","CommonWrapper","cx","responsiveLayout","rootNode","getDOMRect","ModalSeparator","isTheme2022","styles","SidePageContext","SidePageCloseButton","SidePageHeaderDataTids","root","close","SidePageHeader","context","state","isReadyToFix","wrapper","sticky","lastRegularHeight","closeIcon","componentDidMount","window","addEventListener","update","setHasHeader","headerRef","componentWillUnmount","removeEventListener","reflow","updateReadyToFix","renderHeader","fixed","header","theme","headerFixed","mobileHeader","isMobileLayout","renderClose","title","mobileTitle","titleFixed","props","children","renderHeader2022","isDisplayed","hasSeparator","stickyOffset","parseInt","sidePageHeaderStickyOffset","wrapperClose","wrapperCloseFixed","mobileWrapperClose","wrapperScrolledUp","top","regularHeight","fixedHeaderHeight","setState","wrapperRef","el","stickyRef","render","renderMain","getStickyProp","isStickyDesktop","isStickyMobile","setRootNode","headerWrapper","height","sidePageHeaderFixedLineHeight","sidePageHeaderFixedPaddingY","Component","__KONTUR_REACT_UI__","contextType","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { ModalSeparator } from '../Modal/ModalSeparator';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './SidePage.styles';\nimport { SidePageContext, SidePageContextType } from './SidePageContext';\nimport { SidePageCloseButton } from './SidePageCloseButton';\n\nexport interface SidePageHeaderProps extends Omit<CommonProps, 'children'> {\n children?: React.ReactNode | ((fixed: boolean) => React.ReactNode);\n sticky?: boolean;\n hasSeparator?: boolean;\n}\n\nexport interface SidePageHeaderState {\n isReadyToFix: boolean;\n}\n\nexport const SidePageHeaderDataTids = {\n root: 'SidePageHeader__root',\n close: 'SidePage__close',\n} as const;\n\n/**\n * Шапка сайдпейджа\n *\n * @visibleName SidePage.Header\n */\n@responsiveLayout\n@rootNode\nexport class SidePageHeader extends React.Component<SidePageHeaderProps, SidePageHeaderState> {\n public static __KONTUR_REACT_UI__ = 'SidePageHeader';\n\n public static contextType = SidePageContext;\n public context: SidePageContextType = this.context;\n\n private isMobileLayout!: boolean;\n\n public state: SidePageHeaderState = {\n isReadyToFix: false,\n };\n\n public static defaultProps: Partial<SidePageHeaderProps> = {\n hasSeparator: false,\n };\n\n private theme!: Theme;\n private wrapper: HTMLElement | null = null;\n private sticky: Sticky | null = null;\n private lastRegularHeight = 0;\n private setRootNode!: TSetRootNode;\n private closeIcon = (<SidePageCloseButton />);\n\n public get regularHeight(): number {\n const { isReadyToFix } = this.state;\n if (!this.wrapper) {\n return 0;\n }\n if (!isReadyToFix) {\n this.lastRegularHeight = getDOMRect(this.wrapper).height;\n }\n return this.lastRegularHeight;\n }\n\n public get fixedHeaderHeight(): number {\n const { theme } = this;\n return parseInt(theme.sidePageHeaderFixedLineHeight) + parseInt(theme.sidePageHeaderFixedPaddingY) * 2;\n }\n\n public componentDidMount = () => {\n window.addEventListener('scroll', this.update, true);\n this.context.setHasHeader?.();\n this.context.headerRef(this);\n };\n\n public componentWillUnmount = () => {\n window.removeEventListener('scroll', this.update, true);\n this.context.setHasHeader?.(false);\n this.context.headerRef(null);\n };\n\n public update = () => {\n this.sticky?.reflow();\n this.updateReadyToFix();\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getStickyProp() {\n if (typeof this.props.sticky !== 'undefined') {\n return this.props.sticky;\n }\n\n if (this.isMobileLayout) {\n return false;\n }\n\n return true;\n }\n\n private renderMain() {\n const { isReadyToFix } = this.state;\n\n const isStickyDesktop = !this.isMobileLayout && this.getStickyProp() && isReadyToFix;\n const isStickyMobile = this.isMobileLayout && this.getStickyProp();\n\n const header = isTheme2022(this.theme) ? this.renderHeader2022 : this.renderHeader;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SidePageHeaderDataTids.root} ref={this.wrapperRef} className={styles.headerWrapper()}>\n {isStickyDesktop || isStickyMobile ? (\n <Sticky ref={this.stickyRef} side=\"top\">\n {header}\n </Sticky>\n ) : (\n header()\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = (fixed = false) => {\n return (\n <div\n className={cx(styles.header(this.theme), {\n [styles.headerFixed(this.theme)]: fixed,\n [styles.mobileHeader(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.renderClose(fixed)}\n <div\n className={cx(styles.title(this.theme), {\n [styles.mobileTitle(this.theme)]: this.isMobileLayout,\n [styles.titleFixed()]: fixed,\n })}\n >\n {isFunction(this.props.children) ? this.props.children(fixed) : this.props.children}\n </div>\n </div>\n );\n };\n\n private renderHeader2022 = (fixed = false) => {\n const isDisplayed = this.props.hasSeparator || fixed;\n return (\n <div>\n {this.renderHeader(fixed)}\n {isDisplayed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n private renderClose = (fixed: boolean) => {\n const stickyOffset = parseInt(this.theme.sidePageHeaderStickyOffset);\n return (\n <div\n className={cx(styles.wrapperClose(this.theme), {\n [styles.wrapperCloseFixed(this.theme)]: fixed,\n [styles.mobileWrapperClose(this.theme)]: this.isMobileLayout,\n })}\n >\n {this.isMobileLayout ? (\n this.closeIcon\n ) : (\n <Sticky side=\"top\" offset={stickyOffset}>\n {this.closeIcon}\n </Sticky>\n )}\n </div>\n );\n };\n\n private updateReadyToFix = () => {\n if (this.wrapper) {\n const wrapperScrolledUp = getDOMRect(this.wrapper).top;\n const isReadyToFix = this.regularHeight + wrapperScrolledUp <= this.fixedHeaderHeight;\n this.setState((state) => (state.isReadyToFix !== isReadyToFix ? { ...state, isReadyToFix } : state));\n }\n };\n\n private wrapperRef = (el: HTMLElement | null) => {\n this.wrapper = el;\n };\n\n private stickyRef = (el: Sticky | null) => {\n this.sticky = el;\n };\n}\n"]}
@@ -30,6 +30,7 @@ export declare class SidePageHeader extends React.Component<SidePageHeaderProps,
30
30
  private sticky;
31
31
  private lastRegularHeight;
32
32
  private setRootNode;
33
+ private closeIcon;
33
34
  get regularHeight(): number;
34
35
  get fixedHeaderHeight(): number;
35
36
  componentDidMount: () => void;
@@ -252,6 +252,7 @@ Theme2022.errorMain = '#FF5A49';
252
252
  Theme2022.linkColor = '#222222';
253
253
  Theme2022.linkHoverColor = '#222222';
254
254
  Theme2022.linkActiveColor = '#141414';
255
+ Theme2022.linkHoverTextDecoration = 'none';
255
256
  Theme2022.linkSuccessColor = '#538A1B';
256
257
  Theme2022.linkSuccessHoverColor = '#477916';
257
258
  Theme2022.linkSuccessActiveColor = '#3A6710';
@@ -311,7 +312,6 @@ Theme2022.btnIconGapLarge = '8px';
311
312
  Theme2022.btnWithIconPaddingLeftSmall = '8px';
312
313
  Theme2022.btnWithIconPaddingLeftMedium = '10px';
313
314
  Theme2022.btnWithIconPaddingLeftLarge = '12px';
314
- Theme2022.btnLinkHoverTextDecoration = 'none';
315
315
  Theme2022.dropdownButtonBorderRadiusSmall = '8px';
316
316
  Theme2022.dropdownButtonBorderRadiusMedium = '8px';
317
317
  Theme2022.dropdownButtonBorderRadiusLarge = '8px';