@skbkontur/react-ui 3.7.2 → 3.8.3

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 (161) hide show
  1. package/CHANGELOG.md +60 -2
  2. package/README.md +1 -1
  3. package/cjs/components/Checkbox/Checkbox.styles.js +1 -2
  4. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  5. package/cjs/components/CurrencyLabel/CurrencyLabel.js +5 -14
  6. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  7. package/cjs/components/DateInput/DateInput.js +2 -1
  8. package/cjs/components/DateInput/DateInput.js.map +1 -1
  9. package/cjs/components/DatePicker/DatePicker.d.ts +3 -2
  10. package/cjs/components/DatePicker/DatePicker.js +12 -5
  11. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  12. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  13. package/cjs/components/Dropdown/Dropdown.js +1 -0
  14. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  15. package/cjs/components/Dropdown/Dropdown.md +0 -1
  16. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +17 -3
  17. package/cjs/components/DropdownMenu/DropdownMenu.js +15 -1
  18. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  19. package/cjs/components/DropdownMenu/DropdownMenu.md +87 -6
  20. package/cjs/components/Kebab/Kebab.d.ts +5 -2
  21. package/cjs/components/Kebab/Kebab.js +5 -1
  22. package/cjs/components/Kebab/Kebab.js.map +1 -1
  23. package/cjs/components/Kebab/Kebab.md +249 -3
  24. package/cjs/components/MenuHeader/MenuHeader.d.ts +5 -1
  25. package/cjs/components/MenuHeader/MenuHeader.js +5 -1
  26. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  27. package/cjs/components/MenuHeader/MenuHeader.md +23 -0
  28. package/cjs/components/MenuItem/MenuItem.d.ts +10 -1
  29. package/cjs/components/MenuItem/MenuItem.js +11 -1
  30. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  31. package/cjs/components/MenuItem/MenuItem.md +106 -4
  32. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -1
  33. package/cjs/components/MenuSeparator/MenuSeparator.js +3 -1
  34. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  35. package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
  36. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  37. package/cjs/components/Modal/Modal.styles.js +22 -20
  38. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  39. package/cjs/components/Modal/ModalClose.js +23 -3
  40. package/cjs/components/Modal/ModalClose.js.map +1 -1
  41. package/cjs/components/Textarea/Textarea.d.ts +0 -2
  42. package/cjs/components/Textarea/Textarea.js +6 -3
  43. package/cjs/components/Textarea/Textarea.js.map +1 -1
  44. package/cjs/components/Toggle/Toggle.d.ts +47 -1
  45. package/cjs/components/Toggle/Toggle.js +52 -2
  46. package/cjs/components/Toggle/Toggle.js.map +1 -1
  47. package/cjs/components/Toggle/Toggle.md +83 -9
  48. package/cjs/components/Toggle/Toggle.styles.d.ts +3 -0
  49. package/cjs/components/Toggle/Toggle.styles.js +36 -23
  50. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  51. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +26 -8
  52. package/cjs/components/TooltipMenu/TooltipMenu.js +24 -6
  53. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  54. package/cjs/components/TooltipMenu/TooltipMenu.md +76 -8
  55. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  56. package/cjs/internal/CommonWrapper/CommonWrapper.js +8 -0
  57. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  58. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  59. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  60. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
  61. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  62. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  63. package/cjs/internal/InputLikeText/InputLikeText.js +8 -3
  64. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  65. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -1
  66. package/cjs/internal/InputLikeText/InputLikeText.styles.js +1 -1
  67. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  68. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  69. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  70. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  71. package/cjs/internal/themes/DefaultTheme.d.ts +3 -0
  72. package/cjs/internal/themes/DefaultTheme.js +11 -2
  73. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  74. package/cjs/lib/Upgrades.d.ts +2 -0
  75. package/cjs/lib/Upgrades.js +14 -0
  76. package/cjs/lib/Upgrades.js.map +1 -1
  77. package/cjs/lib/theming/Emotion.js +1 -1
  78. package/cjs/lib/theming/Emotion.js.map +1 -1
  79. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  80. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  81. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +5 -11
  82. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  83. package/components/DateInput/DateInput/DateInput.js +2 -1
  84. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  85. package/components/DatePicker/DatePicker/DatePicker.js +12 -4
  86. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  87. package/components/DatePicker/DatePicker.d.ts +3 -2
  88. package/components/Dropdown/Dropdown/Dropdown.js +1 -0
  89. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  90. package/components/Dropdown/Dropdown.d.ts +1 -0
  91. package/components/Dropdown/Dropdown.md +0 -1
  92. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  93. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  94. package/components/DropdownMenu/DropdownMenu.d.ts +17 -3
  95. package/components/DropdownMenu/DropdownMenu.md +87 -6
  96. package/components/Kebab/Kebab/Kebab.js +2 -1
  97. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  98. package/components/Kebab/Kebab.d.ts +5 -2
  99. package/components/Kebab/Kebab.md +249 -3
  100. package/components/MenuHeader/MenuHeader/MenuHeader.js +5 -1
  101. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  102. package/components/MenuHeader/MenuHeader.d.ts +5 -1
  103. package/components/MenuHeader/MenuHeader.md +23 -0
  104. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  105. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  106. package/components/MenuItem/MenuItem.d.ts +10 -1
  107. package/components/MenuItem/MenuItem.md +106 -4
  108. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +3 -1
  109. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  110. package/components/MenuSeparator/MenuSeparator.d.ts +3 -1
  111. package/components/MenuSeparator/MenuSeparator.md +14 -0
  112. package/components/Modal/Modal.styles/Modal.styles.js +18 -15
  113. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  114. package/components/Modal/Modal.styles.d.ts +1 -0
  115. package/components/Modal/ModalClose/ModalClose.js +25 -2
  116. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  117. package/components/Textarea/Textarea/Textarea.js +1 -2
  118. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  119. package/components/Textarea/Textarea.d.ts +0 -2
  120. package/components/Toggle/Toggle/Toggle.js +11 -5
  121. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  122. package/components/Toggle/Toggle.d.ts +47 -1
  123. package/components/Toggle/Toggle.md +83 -9
  124. package/components/Toggle/Toggle.styles/Toggle.styles.js +21 -15
  125. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  126. package/components/Toggle/Toggle.styles.d.ts +3 -0
  127. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +9 -6
  128. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  129. package/components/TooltipMenu/TooltipMenu.d.ts +26 -8
  130. package/components/TooltipMenu/TooltipMenu.md +76 -8
  131. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  132. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  133. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -1
  134. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  135. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
  136. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  137. package/internal/InputLikeText/InputLikeText/InputLikeText.js +6 -3
  138. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  139. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  140. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +1 -1
  141. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  142. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -1
  143. package/internal/RenderContainer/RenderContainer/RenderContainer.js +2 -1
  144. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  145. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  146. package/internal/themes/DefaultTheme/DefaultTheme.js +16 -1
  147. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  148. package/internal/themes/DefaultTheme.d.ts +3 -0
  149. package/lib/Upgrades/Upgrades.js +13 -0
  150. package/lib/Upgrades/Upgrades.js.map +1 -1
  151. package/lib/Upgrades.d.ts +2 -0
  152. package/lib/theming/Emotion/Emotion.js +1 -1
  153. package/lib/theming/Emotion/Emotion.js.map +1 -1
  154. package/package.json +2 -2
  155. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
  156. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js +0 -9
  157. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js.map +0 -1
  158. package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js +0 -10
  159. package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js.map +0 -1
  160. package/components/CurrencyLabel/CurrencyLabel.styles/package.json +0 -6
  161. package/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.styles.ts"],"names":["css","memoizeStyle","prefix","globalClasses","box","styles","root","t","checkboxLineHeight","checkboxFontSize","checkboxPaddingY","checkboxHoverBg","checkboxShadowHover","checkboxShadowActive","checkboxActiveBg","rootChecked","checkboxCheckedHoverShadow","checkboxCheckedHoverBg","checkboxCheckedActiveBg","checkboxCheckedActiveShadow","rootFallback","rootWrapperIE11","boxSize","checkboxBoxSize","checkboxBorderWidthCompensation","checkboxTextColorDefault","checkboxBorder","checkboxBorderRadius","checkboxShadow","checkboxBg","input","boxWarning","checkboxOutlineColorFocus","checkboxOutlineWidth","checkboxBorderColorWarning","boxError","checkboxBorderColorError","boxChecked","checkboxCheckedBg","checkboxCheckedColor","checkboxCheckedShadow","boxFocus","checkboxBorderColorFocus","boxDisabled","checkboxShadowDisabled","checkboxBgDisabled","checkboxTextColorDisabled","disabled","iconFixBaseline","iconUnchecked","caption","checkboxLabelGap","captionIE11"],"mappings":"yYAAA,SAASA,GAAT,EAAcC,YAAd,EAA4BC,MAA5B,QAA0C,2BAA1C;;;AAGA,OAAO,IAAMC,aAAa,GAAGD,MAAM,CAAC,UAAD,CAAN,CAAmB;AAC9CE,EAAAA,GAAG,EAAE,KADyC,EAAnB,CAAtB;;;AAIP,OAAO,IAAMC,MAAM,GAAGJ,YAAY,CAAC;AACjCK,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOP,GAAP;;;;;;AAMiBO,IAAAA,CAAC,CAACC,kBANnB;AAOeD,IAAAA,CAAC,CAACE,gBAPjB;AAQaF,IAAAA,CAAC,CAACG,gBARf;;AAUaP,IAAAA,aAAa,CAACC,GAV3B;AAWkBG,IAAAA,CAAC,CAACI,eAXpB;AAYkBJ,IAAAA,CAAC,CAACK,mBAZpB;;;AAecT,IAAAA,aAAa,CAACC,GAf5B;AAgBkBG,IAAAA,CAAC,CAACM,oBAhBpB;AAiBkBN,IAAAA,CAAC,CAACO,gBAjBpB;;;AAoBD,GAtBgC;;AAwBjCC,EAAAA,WAxBiC,uBAwBrBR,CAxBqB,EAwBX;AACpB,WAAOP,GAAP;AACaG,IAAAA,aAAa,CAACC,GAD3B;AAEkBG,IAAAA,CAAC,CAACS,0BAFpB;AAGkBT,IAAAA,CAAC,CAACU,sBAHpB;;;AAMcd,IAAAA,aAAa,CAACC,GAN5B;AAOkBG,IAAAA,CAAC,CAACW,uBAPpB;AAQkBX,IAAAA,CAAC,CAACY,2BARpB;;;AAWD,GApCgC;;AAsCjCC,EAAAA,YAtCiC,0BAsClB;AACb,WAAOpB,GAAP;;;;;;;;AAQD,GA/CgC;;AAiDjCqB,EAAAA,eAjDiC,6BAiDf;AAChB,WAAOrB,GAAP;;;AAGD,GArDgC;;AAuDjCI,EAAAA,GAvDiC,eAuD7BG,CAvD6B,EAuDnB;AACZ,QAAMe,OAAO,aAAWf,CAAC,CAACgB,eAAb,eAAsChB,CAAC,CAACiB,+BAAxC,MAAb;AACA,WAAOxB,GAAP;;;;;AAKWsB,IAAAA,OALX;AAMYA,IAAAA,OANZ;;AAQef,IAAAA,CAAC,CAACE,gBARjB;AASWF,IAAAA,CAAC,CAACkB,wBATb;AAUYlB,IAAAA,CAAC,CAACmB,cAVd;AAWmBnB,IAAAA,CAAC,CAACoB,oBAXrB;AAYgBpB,IAAAA,CAAC,CAACqB,cAZlB;AAagBrB,IAAAA,CAAC,CAACsB,UAblB;;AAeYtB,IAAAA,CAAC,CAACiB,+BAfd;;AAiBD,GA1EgC;;AA4EjCM,EAAAA,KA5EiC,mBA4EzB;AACN,WAAO9B,GAAP;;;;;;;;AAQD,GArFgC;;AAuFjC+B,EAAAA,UAvFiC,sBAuFtBxB,CAvFsB,EAuFZ;AACnB,WAAOP,GAAP;AACgCO,IAAAA,CAAC,CAACyB,yBADlC;AAEYzB,IAAAA,CAAC,CAAC0B,oBAFd,EAEsC1B,CAAC,CAAC2B,0BAFxC;;AAID,GA5FgC;;AA8FjCC,EAAAA,QA9FiC,oBA8FxB5B,CA9FwB,EA8Fd;AACjB,WAAOP,GAAP;AACgCO,IAAAA,CAAC,CAACyB,yBADlC;AAEYzB,IAAAA,CAAC,CAAC0B,oBAFd,EAEsC1B,CAAC,CAAC6B,wBAFxC;;AAID,GAnGgC;;AAqGjCC,EAAAA,UArGiC,sBAqGtB9B,CArGsB,EAqGZ;AACnB,WAAOP,GAAP;AACgBO,IAAAA,CAAC,CAAC+B,iBADlB;AAEW/B,IAAAA,CAAC,CAACgC,oBAFb;AAGgBhC,IAAAA,CAAC,CAACiC,qBAHlB;;AAKD,GA3GgC;;AA6GjCC,EAAAA,QA7GiC,oBA6GxBlC,CA7GwB,EA6Gd;AACjB,WAAOP,GAAP;AACgCO,IAAAA,CAAC,CAACyB,yBADlC;AAEYzB,IAAAA,CAAC,CAAC0B,oBAFd,EAEsC1B,CAAC,CAACmC,wBAFxC;;AAID,GAlHgC;;AAoHjCC,EAAAA,WApHiC,uBAoHrBpC,CApHqB,EAoHX;AACpB,WAAOP,GAAP;AACgBO,IAAAA,CAAC,CAACqC,sBADlB;AAEgBrC,IAAAA,CAAC,CAACsC,kBAFlB;AAGWtC,IAAAA,CAAC,CAACuC,yBAHb;;AAKD,GA1HgC;;AA4HjCC,EAAAA,QA5HiC,oBA4HxBxC,CA5HwB,EA4Hd;AACjB,WAAOP,GAAP;AACWO,IAAAA,CAAC,CAACuC,yBADb;;;AAID,GAjIgC;;AAmIjCE,EAAAA,eAnIiC,6BAmIf;AAChB,WAAOhD,GAAP;;;AAGD,GAvIgC;;AAyIjCiD,EAAAA,aAzIiC,2BAyIjB;AACd,WAAOjD,GAAP;;;AAGD,GA7IgC;;AA+IjCkD,EAAAA,OA/IiC,mBA+IzB3C,CA/IyB,EA+If;AAChB,WAAOP,GAAP;AACWO,IAAAA,CAAC,CAACkB,wBADb;AAEkBlB,IAAAA,CAAC,CAAC4C,gBAFpB;;AAID,GApJgC;;AAsJjCC,EAAAA,WAtJiC,yBAsJnB;AACZ,WAAOpD,GAAP;;;AAGD,GA1JgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n user-select: none;\n line-height: ${t.checkboxLineHeight};\n font-size: ${t.checkboxFontSize};\n padding: ${t.checkboxPaddingY} 0;\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n rootFallback() {\n return css`\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n `;\n },\n\n rootWrapperIE11() {\n return css`\n display: inline;\n `;\n },\n\n box(t: Theme) {\n const boxSize = `calc(${t.checkboxBoxSize} - 2 * ${t.checkboxBorderWidthCompensation})`;\n return css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: ${boxSize};\n height: ${boxSize};\n flex: none;\n font-size: ${t.checkboxFontSize};\n color: ${t.checkboxTextColorDefault};\n border: ${t.checkboxBorder};\n border-radius: ${t.checkboxBorderRadius};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n align-self: baseline;\n margin: ${t.checkboxBorderWidthCompensation};\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n iconFixBaseline() {\n return css`\n margin-top: -2px;\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxLabelGap};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Checkbox.styles.ts"],"names":["css","memoizeStyle","prefix","globalClasses","box","styles","root","t","checkboxLineHeight","checkboxFontSize","checkboxPaddingY","checkboxHoverBg","checkboxShadowHover","checkboxShadowActive","checkboxActiveBg","rootChecked","checkboxCheckedHoverShadow","checkboxCheckedHoverBg","checkboxCheckedActiveBg","checkboxCheckedActiveShadow","rootFallback","rootWrapperIE11","boxSize","checkboxBoxSize","checkboxBorderWidthCompensation","checkboxTextColorDefault","checkboxBorder","checkboxBorderRadius","checkboxShadow","checkboxBg","input","boxWarning","checkboxOutlineColorFocus","checkboxOutlineWidth","checkboxBorderColorWarning","boxError","checkboxBorderColorError","boxChecked","checkboxCheckedBg","checkboxCheckedColor","checkboxCheckedShadow","boxFocus","checkboxBorderColorFocus","boxDisabled","checkboxShadowDisabled","checkboxBgDisabled","checkboxTextColorDisabled","disabled","iconFixBaseline","iconUnchecked","caption","checkboxLabelGap","captionIE11"],"mappings":"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","sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const globalClasses = prefix('checkbox')({\n box: 'box',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-flex;\n align-items: baseline;\n cursor: pointer;\n position: relative;\n line-height: ${t.checkboxLineHeight};\n font-size: ${t.checkboxFontSize};\n padding: ${t.checkboxPaddingY} 0;\n\n &:hover .${globalClasses.box} {\n background: ${t.checkboxHoverBg};\n box-shadow: ${t.checkboxShadowHover};\n }\n\n &:active .${globalClasses.box} {\n box-shadow: ${t.checkboxShadowActive};\n background: ${t.checkboxActiveBg};\n }\n `;\n },\n\n rootChecked(t: Theme) {\n return css`\n &:hover .${globalClasses.box} {\n box-shadow: ${t.checkboxCheckedHoverShadow};\n background: ${t.checkboxCheckedHoverBg};\n }\n\n &:active .${globalClasses.box} {\n background: ${t.checkboxCheckedActiveBg};\n box-shadow: ${t.checkboxCheckedActiveShadow};\n }\n `;\n },\n\n rootFallback() {\n return css`\n display: inline-table;\n\n & > * {\n // fix root's :active state in IE11 that gets blocked by nested elements\n pointer-events: none;\n }\n `;\n },\n\n rootWrapperIE11() {\n return css`\n display: inline;\n `;\n },\n\n box(t: Theme) {\n const boxSize = `calc(${t.checkboxBoxSize} - 2 * ${t.checkboxBorderWidthCompensation})`;\n return css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: ${boxSize};\n height: ${boxSize};\n flex: none;\n font-size: ${t.checkboxFontSize};\n color: ${t.checkboxTextColorDefault};\n border: ${t.checkboxBorder};\n border-radius: ${t.checkboxBorderRadius};\n box-shadow: ${t.checkboxShadow};\n background: ${t.checkboxBg};\n align-self: baseline;\n margin: ${t.checkboxBorderWidthCompensation};\n `;\n },\n\n input() {\n return css`\n display: inline-block;\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n z-index: -1;\n `;\n },\n\n boxWarning(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorWarning} !important; // override hover and active\n `;\n },\n\n boxError(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorError} !important; // override hover and active\n `;\n },\n\n boxChecked(t: Theme) {\n return css`\n background: ${t.checkboxCheckedBg};\n color: ${t.checkboxCheckedColor};\n box-shadow: ${t.checkboxCheckedShadow};\n `;\n },\n\n boxFocus(t: Theme) {\n return css`\n box-shadow: inset 0 0 0 1px ${t.checkboxOutlineColorFocus},\n 0 0 0 ${t.checkboxOutlineWidth} ${t.checkboxBorderColorFocus} !important; // override hover and active\n `;\n },\n\n boxDisabled(t: Theme) {\n return css`\n box-shadow: ${t.checkboxShadowDisabled} !important; // override hover and active\n background: ${t.checkboxBgDisabled} !important; // override hover and active\n color: ${t.checkboxTextColorDisabled};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDisabled};\n cursor: default;\n `;\n },\n\n iconFixBaseline() {\n return css`\n margin-top: -2px;\n `;\n },\n\n iconUnchecked() {\n return css`\n color: transparent;\n `;\n },\n\n caption(t: Theme) {\n return css`\n color: ${t.checkboxTextColorDefault};\n padding-left: ${t.checkboxLabelGap};\n `;\n },\n\n captionIE11() {\n return css`\n display: table-cell;\n `;\n },\n});\n"]}
@@ -2,8 +2,6 @@ import React from 'react';
2
2
  import { MAX_SAFE_DIGITS } from "../../CurrencyInput/constants";
3
3
  import { CurrencyHelper } from "../../CurrencyInput/CurrencyHelper";
4
4
  import { CommonWrapper } from "../../../internal/CommonWrapper";
5
- import { ThemeContext } from "../../../lib/theming/ThemeContext";
6
- import { styles } from "../CurrencyLabel.styles";
7
5
  export var defaultProps = {
8
6
  fractionDigits: 2
9
7
  };
@@ -11,15 +9,11 @@ export var CurrencyLabel = function CurrencyLabel(props) {
11
9
  var value = props.value,
12
10
  fractionDigits = props.fractionDigits,
13
11
  currencySymbol = props.currencySymbol;
14
- return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
15
- return /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement("span", {
16
- className: styles.root(theme)
17
- }, CurrencyHelper.format(value, {
18
- fractionDigits: fractionDigits
19
- }), currencySymbol && String.fromCharCode(0xa0)
20
- /*   */
21
- , currencySymbol));
22
- });
12
+ return /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement("span", null, CurrencyHelper.format(value, {
13
+ fractionDigits: fractionDigits
14
+ }), currencySymbol && String.fromCharCode(0xa0)
15
+ /*   */
16
+ , currencySymbol));
23
17
  };
24
18
  CurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';
25
19
  CurrencyLabel.defaultProps = defaultProps;
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyLabel.tsx"],"names":["React","MAX_SAFE_DIGITS","CurrencyHelper","CommonWrapper","ThemeContext","styles","defaultProps","fractionDigits","CurrencyLabel","props","value","currencySymbol","theme","root","format","String","fromCharCode","__KONTUR_REACT_UI__","propTypes","Error","destructString","fraction","length","Number","isInteger"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,eAAT,QAAgC,4BAAhC;AACA,SAASC,cAAT,QAA+B,iCAA/B;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,wBAAvB;;;;;;;;;;;;AAYA,OAAO,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,cAAc,EAAE,CADU,EAArB;;;AAIP,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAA4C;AAC/DC,EAAAA,KAD+D,GACrBD,KADqB,CAC/DC,KAD+D,CACxDH,cADwD,GACrBE,KADqB,CACxDF,cADwD,CACxCI,cADwC,GACrBF,KADqB,CACxCE,cADwC;AAEvE;AACE,wBAAC,YAAD,CAAc,QAAd;AACG,cAACC,KAAD,EAAW;AACV;AACE,4BAAC,aAAD,EAAmBH,KAAnB;AACE,sCAAM,SAAS,EAAEJ,MAAM,CAACQ,IAAP,CAAYD,KAAZ,CAAjB;AACGV,QAAAA,cAAc,CAACY,MAAf,CAAsBJ,KAAtB,EAA6B,EAAEH,cAAc,EAAdA,cAAF,EAA7B,CADH;AAEGI,QAAAA,cAAc,IAAII,MAAM,CAACC,YAAP,CAAoB,IAApB,CAFrB,CAE+C,YAF/C;AAGGL,QAAAA,cAHH,CADF,CADF;;;;AASD,KAXH,CADF;;;AAeD,CAjBM;;AAmBPH,aAAa,CAACS,mBAAd,GAAoC,eAApC;;AAEAT,aAAa,CAACF,YAAd,GAA6BA,YAA7B;;AAEAE,aAAa,CAACU,SAAd,GAA0B;AACxBX,EAAAA,cAAc,EAAE,wBAACE,KAAD,EAAqD;AACnE,QAAIA,KAAK,CAACF,cAAN,GAAuBN,eAA3B,EAA4C;AAC1C,aAAO,IAAIkB,KAAJ;AACL,0DAAkDlB,eAAlD,4EADK,CAAP;;;AAID,KANkE;;AAQ9CC,IAAAA,cAAc,CAACkB,cAAf,CAA8BL,MAAM,CAACN,KAAK,CAACC,KAAP,CAApC,KAAsD,EAAEW,QAAQ,EAAE,EAAZ,EARR,CAQ3DA,QAR2D,QAQ3DA,QAR2D;AASnE,QAAIA,QAAQ,CAACC,MAAT,GAAkBb,KAAK,CAACF,cAA5B,EAA4C;AAC1C,aAAO,IAAIY,KAAJ;AACL,gIADK,CAAP;;;AAID;;AAED,QAAI,CAACI,MAAM,CAACC,SAAP,CAAiBf,KAAK,CAACF,cAAvB,CAAL,EAA6C;AAC3C,aAAO,IAAIY,KAAJ,2GAAP;;;AAGD;;AAED,WAAO,IAAP;AACD,GAxBuB,EAA1B","sourcesContent":["import React from 'react';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { styles } from './CurrencyLabel.styles';\n\nexport interface CurrencyLabelProps extends CommonProps {\n /**\n * Минимальное количество отображаемых знаков после запятой\n * @default 2\n */\n fractionDigits: number;\n value: number;\n currencySymbol?: React.ReactNode;\n}\n\nexport const defaultProps = {\n fractionDigits: 2,\n};\n\nexport const CurrencyLabel = (props: CurrencyLabelProps): JSX.Element => {\n const { value, fractionDigits, currencySymbol } = props;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <CommonWrapper {...props}>\n <span className={styles.root(theme)}>\n {CurrencyHelper.format(value, { fractionDigits })}\n {currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n};\n\nCurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';\n\nCurrencyLabel.defaultProps = defaultProps;\n\nCurrencyLabel.propTypes = {\n fractionDigits: (props: CurrencyLabelProps & typeof defaultProps) => {\n if (props.fractionDigits > MAX_SAFE_DIGITS) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n const { fraction } = CurrencyHelper.destructString(String(props.value)) || { fraction: '' };\n if (fraction.length > props.fractionDigits) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n }\n\n if (!Number.isInteger(props.fractionDigits)) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }\n\n return null;\n },\n};\n"]}
1
+ {"version":3,"sources":["CurrencyLabel.tsx"],"names":["React","MAX_SAFE_DIGITS","CurrencyHelper","CommonWrapper","defaultProps","fractionDigits","CurrencyLabel","props","value","currencySymbol","format","String","fromCharCode","__KONTUR_REACT_UI__","propTypes","Error","destructString","fraction","length","Number","isInteger"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,eAAT,QAAgC,4BAAhC;AACA,SAASC,cAAT,QAA+B,iCAA/B;AACA,SAASC,aAAT,QAA2C,8BAA3C;;;;;;;;;;;;AAYA,OAAO,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,cAAc,EAAE,CADU,EAArB;;;AAIP,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAA4C;AAC/DC,EAAAA,KAD+D,GACrBD,KADqB,CAC/DC,KAD+D,CACxDH,cADwD,GACrBE,KADqB,CACxDF,cADwD,CACxCI,cADwC,GACrBF,KADqB,CACxCE,cADwC;AAEvE;AACE,wBAAC,aAAD,EAAmBF,KAAnB;AACE;AACGL,IAAAA,cAAc,CAACQ,MAAf,CAAsBF,KAAtB,EAA6B,EAAEH,cAAc,EAAdA,cAAF,EAA7B,CADH;AAEGI,IAAAA,cAAc,IAAIE,MAAM,CAACC,YAAP,CAAoB,IAApB,CAFrB,CAE+C,YAF/C;AAGGH,IAAAA,cAHH,CADF,CADF;;;;AASD,CAXM;;AAaPH,aAAa,CAACO,mBAAd,GAAoC,eAApC;;AAEAP,aAAa,CAACF,YAAd,GAA6BA,YAA7B;;AAEAE,aAAa,CAACQ,SAAd,GAA0B;AACxBT,EAAAA,cAAc,EAAE,wBAACE,KAAD,EAAqD;AACnE,QAAIA,KAAK,CAACF,cAAN,GAAuBJ,eAA3B,EAA4C;AAC1C,aAAO,IAAIc,KAAJ;AACL,0DAAkDd,eAAlD,4EADK,CAAP;;;AAID,KANkE;;AAQ9CC,IAAAA,cAAc,CAACc,cAAf,CAA8BL,MAAM,CAACJ,KAAK,CAACC,KAAP,CAApC,KAAsD,EAAES,QAAQ,EAAE,EAAZ,EARR,CAQ3DA,QAR2D,QAQ3DA,QAR2D;AASnE,QAAIA,QAAQ,CAACC,MAAT,GAAkBX,KAAK,CAACF,cAA5B,EAA4C;AAC1C,aAAO,IAAIU,KAAJ;AACL,gIADK,CAAP;;;AAID;;AAED,QAAI,CAACI,MAAM,CAACC,SAAP,CAAiBb,KAAK,CAACF,cAAvB,CAAL,EAA6C;AAC3C,aAAO,IAAIU,KAAJ,2GAAP;;;AAGD;;AAED,WAAO,IAAP;AACD,GAxBuB,EAA1B","sourcesContent":["import React from 'react';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nexport interface CurrencyLabelProps extends CommonProps {\n /**\n * Минимальное количество отображаемых знаков после запятой\n * @default 2\n */\n fractionDigits: number;\n value: number;\n currencySymbol?: React.ReactNode;\n}\n\nexport const defaultProps = {\n fractionDigits: 2,\n};\n\nexport const CurrencyLabel = (props: CurrencyLabelProps): JSX.Element => {\n const { value, fractionDigits, currencySymbol } = props;\n return (\n <CommonWrapper {...props}>\n <span>\n {CurrencyHelper.format(value, { fractionDigits })}\n {currencySymbol && String.fromCharCode(0xa0) /* &nbsp; */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n};\n\nCurrencyLabel.__KONTUR_REACT_UI__ = 'CurrencyLabel';\n\nCurrencyLabel.defaultProps = defaultProps;\n\nCurrencyLabel.propTypes = {\n fractionDigits: (props: CurrencyLabelProps & typeof defaultProps) => {\n if (props.fractionDigits > MAX_SAFE_DIGITS) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n const { fraction } = CurrencyHelper.destructString(String(props.value)) || { fraction: '' };\n if (fraction.length > props.fractionDigits) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n }\n\n if (!Number.isInteger(props.fractionDigits)) {\n return new Error(\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }\n\n return null;\n },\n};\n"]}
@@ -435,7 +435,8 @@ export var DateInput = (_dec = locale('DatePicker', DatePickerLocaleHelper), _de
435
435
  onMouseDragStart: this.handleMouseDragStart,
436
436
  onMouseDragEnd: this.handleMouseDragEnd,
437
437
  value: this.iDateMediator.getInternalString(),
438
- inputMode: 'numeric'
438
+ inputMode: 'numeric',
439
+ takeContentWidth: true
439
440
  }, /*#__PURE__*/React.createElement(DateFragmentsView, {
440
441
  ref: this.dateFragmentsViewRef,
441
442
  fragments: fragments,
@@ -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","DateFragmentsView","styles","Actions","extractAction","InternalDateMediator","DateInput","props","iDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","theme","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","size","disabled","iconStyles","icon","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","fragments","getFragments","width","error","warning","onClick","Component","__KONTUR_REACT_UI__","defaultProps"],"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';\n\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 interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n error?: boolean;\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\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\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 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, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.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 fragments = focused || valueFormatted !== '' ? this.iDateMediator.getFragments() : [];\n\n return (\n <CommonWrapper {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.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 >\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={fragments}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\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}>\n <CalendarIcon />\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 = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\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","ConditionalHandler","LENGTH_FULLDATE","MAX_FULLDATE","MIN_FULLDATE","InternalDateComponentType","DatePickerLocaleHelper","InputLikeText","locale","ThemeContext","CalendarIcon","CommonWrapper","cx","DateFragmentsView","styles","Actions","extractAction","InternalDateMediator","DateInput","props","iDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","theme","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","size","disabled","iconStyles","icon","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","fragments","getFragments","width","error","warning","onClick","Component","__KONTUR_REACT_UI__","defaultProps"],"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';\n\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 interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n error?: boolean;\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\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\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 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, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.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 fragments = focused || valueFormatted !== '' ? this.iDateMediator.getFragments() : [];\n\n return (\n <CommonWrapper {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.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 <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={fragments}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\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}>\n <CalendarIcon />\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 = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
@@ -14,6 +14,7 @@ import { filterProps } from "../../../lib/filterProps";
14
14
  import { CommonWrapper } from "../../../internal/CommonWrapper";
15
15
  import { isMobile } from "../../../lib/client";
16
16
  import { NativeDateInput } from "../../../internal/NativeDateInput";
17
+ import { isNonNullable } from "../../../lib/utils";
17
18
  import { Picker } from "../Picker";
18
19
  import { styles } from "../DatePicker.styles";
19
20
  var INPUT_PASS_PROPS = {
@@ -24,6 +25,7 @@ var INPUT_PASS_PROPS = {
24
25
  size: true,
25
26
  onKeyDown: true
26
27
  };
28
+ export var MIN_WIDTH = 120;
27
29
  export var DatePicker = /*#__PURE__*/function (_React$Component) {
28
30
  _inheritsLoose(DatePicker, _React$Component);
29
31
 
@@ -69,9 +71,7 @@ export var DatePicker = /*#__PURE__*/function (_React$Component) {
69
71
 
70
72
  return /*#__PURE__*/React.createElement("label", {
71
73
  className: styles.root(),
72
- style: {
73
- width: _this.props.width
74
- },
74
+ style: _this.getRootStyle(),
75
75
  onMouseEnter: _this.props.onMouseEnter,
76
76
  onMouseLeave: _this.props.onMouseLeave,
77
77
  onMouseOver: _this.props.onMouseOver
@@ -94,6 +94,15 @@ export var DatePicker = /*#__PURE__*/function (_React$Component) {
94
94
  }), !_this.state.canUseMobileNativeDatePicker && picker);
95
95
  };
96
96
 
97
+ _this.getRootStyle = function () {
98
+ var width = _this.props.width;
99
+ return isNonNullable(width) ? {
100
+ width: width
101
+ } : {
102
+ minWidth: MIN_WIDTH
103
+ };
104
+ };
105
+
97
106
  _this.getInputRef = function (ref) {
98
107
  _this.input = ref;
99
108
  };
@@ -293,7 +302,6 @@ DatePicker.propTypes = {
293
302
  isHoliday: PropTypes.func.isRequired
294
303
  };
295
304
  DatePicker.defaultProps = {
296
- width: 120,
297
305
  minDate: MIN_FULLDATE,
298
306
  maxDate: MAX_FULLDATE,
299
307
  isHoliday: function isHoliday(_day, isWeekend) {
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePicker.tsx"],"names":["PropTypes","React","findDOMNode","InternalDate","InternalDateTransformer","MAX_FULLDATE","MIN_FULLDATE","InternalDateOrder","InternalDateSeparator","InternalDateValidateCheck","DateInput","DropdownContainer","filterProps","CommonWrapper","isMobile","NativeDateInput","Picker","styles","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","DatePicker","state","opened","canUseMobileNativeDatePicker","input","focused","internalDate","parseValueToDate","props","value","minDate","maxDate","renderMain","picker","date","toNativeFormat","menuAlign","undefined","handlePick","handleSelect","enableTodayLink","isHoliday","root","width","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","ref","setState","onFocus","close","onBlur","dateShape","blur","month","year","dateToInternalString","isWeekend","dateString","componentDidMount","useMobileNativeDatePicker","focus","UNSAFE_componentWillReceiveProps","nextProps","render","validate","checks","NotNull","Native","Component","__KONTUR_REACT_UI__","propTypes","bool","string","isRequired","oneOf","oneOfType","number","func","defaultProps","_day","range","order","DMY","separator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { CalendarDateShape } from '../../internal/Calendar';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\n\nimport { Picker } from './Picker';\nimport { styles } from './DatePicker.styles';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport interface DatePickerProps<T> extends CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n enableTodayLink?: boolean;\n error?: boolean;\n minDate: T;\n maxDate: T;\n menuAlign?: 'left' | 'right';\n size?: 'small' | 'medium' | 'large';\n value?: T | null;\n warning?: boolean;\n width: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: T) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\n useMobileNativeDatePicker?: boolean;\n\n /**\n * Функция для определения праздничных дней\n * @default (_day, isWeekend) => isWeekend\n * @param {T} day - строка в формате `dd.mm.yyyy`\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье)\n *\n * @returns {boolean} `true` для выходного или `false` для рабочего дня\n */\n isHoliday: (day: T, isWeekend: boolean) => boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n}\n\ntype DatePickerValue = string;\n\nexport class DatePicker extends React.Component<DatePickerProps<DatePickerValue>, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right'] as Array<'left' | 'right'>),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func.isRequired,\n };\n\n public static defaultProps = {\n width: 120,\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n isHoliday: (_day: DatePickerValue, isWeekend: boolean) => isWeekend,\n };\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false };\n\n private input: DateInput | null = null;\n private focused = false;\n private internalDate?: InternalDate = this.parseValueToDate(this.props.value);\n private minDate?: InternalDate = this.parseValueToDate(this.props.minDate);\n private maxDate?: InternalDate = this.parseValueToDate(this.props.maxDate);\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: DatePickerProps<DatePickerValue>) {\n const { disabled } = nextProps;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n this.internalDate = this.parseValueToDate(nextProps.value);\n this.minDate = this.parseValueToDate(nextProps.minDate);\n this.maxDate = this.parseValueToDate(nextProps.maxDate);\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps<DatePickerValue>>) => {\n let picker = null;\n const date = this.internalDate ? this.internalDate.toNativeFormat() : null;\n if (this.state.opened) {\n picker = (\n <DropdownContainer getParent={() => findDOMNode(this)} offsetY={2} align={this.props.menuAlign}>\n <Picker\n value={date}\n minDate={(this.minDate && this.minDate.toNativeFormat()) || undefined}\n maxDate={(this.maxDate && this.maxDate.toNativeFormat()) || undefined}\n onPick={this.handlePick}\n onSelect={this.handleSelect}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.isHoliday}\n />\n </DropdownContainer>\n );\n }\n\n return (\n <label\n className={styles.root()}\n style={{ width: this.props.width }}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n >\n <DateInput\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n />\n {this.state.canUseMobileNativeDatePicker && (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n disabled={this.props.disabled}\n />\n )}\n {!this.state.canUseMobileNativeDatePicker && picker}\n </label>\n );\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private parseValueToDate(value?: Nullable<string>): InternalDate | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date;\n }\n return undefined;\n }\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handlePick = (dateShape: CalendarDateShape) => {\n this.handleSelect(dateShape);\n this.blur();\n };\n\n private handleSelect = ({ date, month, year }: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private isHoliday = ({ date, month, year, isWeekend }: CalendarDateShape & { isWeekend: boolean }) => {\n const dateString = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n return this.props.isHoliday(dateString, isWeekend);\n };\n}\n"]}
1
+ {"version":3,"sources":["DatePicker.tsx"],"names":["PropTypes","React","findDOMNode","InternalDate","InternalDateTransformer","MAX_FULLDATE","MIN_FULLDATE","InternalDateOrder","InternalDateSeparator","InternalDateValidateCheck","DateInput","DropdownContainer","filterProps","CommonWrapper","isMobile","NativeDateInput","isNonNullable","Picker","styles","INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePicker","state","opened","canUseMobileNativeDatePicker","input","focused","internalDate","parseValueToDate","props","value","minDate","maxDate","renderMain","picker","date","toNativeFormat","menuAlign","undefined","handlePick","handleSelect","enableTodayLink","isHoliday","root","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","width","minWidth","ref","setState","onFocus","close","onBlur","dateShape","blur","month","year","dateToInternalString","isWeekend","dateString","componentDidMount","useMobileNativeDatePicker","focus","UNSAFE_componentWillReceiveProps","nextProps","render","validate","checks","NotNull","Native","Component","__KONTUR_REACT_UI__","propTypes","bool","string","isRequired","oneOf","oneOfType","number","func","defaultProps","_day","range","order","DMY","separator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { CalendarDateShape } from '../../internal/Calendar';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { Picker } from './Picker';\nimport { styles } from './DatePicker.styles';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps<T> extends CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n enableTodayLink?: boolean;\n error?: boolean;\n minDate: T;\n maxDate: T;\n menuAlign?: 'left' | 'right';\n size?: 'small' | 'medium' | 'large';\n value?: T | null;\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: T) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\n useMobileNativeDatePicker?: boolean;\n\n /**\n * Функция для определения праздничных дней\n * @default (_day, isWeekend) => isWeekend\n * @param {T} day - строка в формате `dd.mm.yyyy`\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье)\n *\n * @returns {boolean} `true` для выходного или `false` для рабочего дня\n */\n isHoliday: (day: T, isWeekend: boolean) => boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n}\n\ntype DatePickerValue = string;\n\nexport class DatePicker extends React.Component<DatePickerProps<DatePickerValue>, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right'] as Array<'left' | 'right'>),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func.isRequired,\n };\n\n public static defaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n isHoliday: (_day: DatePickerValue, isWeekend: boolean) => isWeekend,\n };\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false };\n\n private input: DateInput | null = null;\n private focused = false;\n private internalDate?: InternalDate = this.parseValueToDate(this.props.value);\n private minDate?: InternalDate = this.parseValueToDate(this.props.minDate);\n private maxDate?: InternalDate = this.parseValueToDate(this.props.maxDate);\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: DatePickerProps<DatePickerValue>) {\n const { disabled } = nextProps;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n this.internalDate = this.parseValueToDate(nextProps.value);\n this.minDate = this.parseValueToDate(nextProps.minDate);\n this.maxDate = this.parseValueToDate(nextProps.maxDate);\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps<DatePickerValue>>) => {\n let picker = null;\n const date = this.internalDate ? this.internalDate.toNativeFormat() : null;\n if (this.state.opened) {\n picker = (\n <DropdownContainer getParent={() => findDOMNode(this)} offsetY={2} align={this.props.menuAlign}>\n <Picker\n value={date}\n minDate={(this.minDate && this.minDate.toNativeFormat()) || undefined}\n maxDate={(this.maxDate && this.maxDate.toNativeFormat()) || undefined}\n onPick={this.handlePick}\n onSelect={this.handleSelect}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.isHoliday}\n />\n </DropdownContainer>\n );\n }\n\n return (\n <label\n className={styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n >\n <DateInput\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n />\n {this.state.canUseMobileNativeDatePicker && (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={this.props.minDate}\n maxDate={this.props.maxDate}\n disabled={this.props.disabled}\n />\n )}\n {!this.state.canUseMobileNativeDatePicker && picker}\n </label>\n );\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private parseValueToDate(value?: Nullable<string>): InternalDate | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date;\n }\n return undefined;\n }\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handlePick = (dateShape: CalendarDateShape) => {\n this.handleSelect(dateShape);\n this.blur();\n };\n\n private handleSelect = ({ date, month, year }: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private isHoliday = ({ date, month, year, isWeekend }: CalendarDateShape & { isWeekend: boolean }) => {\n const dateString = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n return this.props.isHoliday(dateString, isWeekend);\n };\n}\n"]}
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
2
2
  import React from 'react';
3
3
  import { Nullable } from '../../typings/utility-types';
4
4
  import { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
5
+ export declare const MIN_WIDTH = 120;
5
6
  export interface DatePickerProps<T> extends CommonProps {
6
7
  autoFocus?: boolean;
7
8
  disabled?: boolean;
@@ -13,7 +14,7 @@ export interface DatePickerProps<T> extends CommonProps {
13
14
  size?: 'small' | 'medium' | 'large';
14
15
  value?: T | null;
15
16
  warning?: boolean;
16
- width: number | string;
17
+ width?: number | string;
17
18
  onBlur?: () => void;
18
19
  /**
19
20
  * Вызывается при изменении `value`
@@ -82,7 +83,6 @@ export declare class DatePicker extends React.Component<DatePickerProps<DatePick
82
83
  isHoliday: PropTypes.Validator<(...args: any[]) => any>;
83
84
  };
84
85
  static defaultProps: {
85
- width: number;
86
86
  minDate: string;
87
87
  maxDate: string;
88
88
  isHoliday: (_day: DatePickerValue, isWeekend: boolean) => boolean;
@@ -114,6 +114,7 @@ export declare class DatePicker extends React.Component<DatePickerProps<DatePick
114
114
  close(): void;
115
115
  render(): JSX.Element;
116
116
  renderMain: (props: CommonWrapperRestProps<DatePickerProps<DatePickerValue>>) => JSX.Element;
117
+ private getRootStyle;
117
118
  private getInputRef;
118
119
  private parseValueToDate;
119
120
  private handleFocus;
@@ -29,6 +29,7 @@ var PASS_PROPS = {
29
29
  };
30
30
  /**
31
31
  * Выпадающее меню.
32
+ *
32
33
  */
33
34
 
34
35
  export var Dropdown = /*#__PURE__*/function (_React$Component) {
@@ -1 +1 @@
1
- {"version":3,"sources":["Dropdown.tsx"],"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","Dropdown","_select","renderMain","caption","icon","props","items","Children","map","children","item","_refSelect","renderValue","element","render","open","close","Component","__KONTUR_REACT_UI__","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func","value"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonSize, ButtonUse } from '../Button';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport interface DropdownProps extends CommonProps {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Визуально показать наличие ошибки.\n */\n error?: boolean;\n /**\n * Визуально показать наличие предупреждения.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: ButtonSize;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\n/**\n * Выпадающее меню.\n */\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <Select<React.ReactNode, React.ReactNode>\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
1
+ {"version":3,"sources":["Dropdown.tsx"],"names":["React","PropTypes","filterProps","MenuHeader","MenuItem","MenuSeparator","Select","CommonWrapper","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","Dropdown","_select","renderMain","caption","icon","props","items","Children","map","children","item","_refSelect","renderValue","element","render","open","close","Component","__KONTUR_REACT_UI__","Header","Separator","propTypes","node","isRequired","bool","number","oneOf","oneOfType","string","any","func","value"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport { Nullable } from '../../typings/utility-types';\nimport { ButtonSize, ButtonUse } from '../Button';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n};\n\nexport interface DropdownProps extends CommonProps {\n /**\n * Подпись на кнопке.\n */\n caption: React.ReactNode;\n /**\n * Иконка слева от текста кнопки\n */\n icon?: React.ReactElement<any>;\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /**\n * Отключает использование портала\n */\n disablePortal?: boolean;\n\n /**\n * Визуально отключает Dropdown\n */\n disabled?: boolean;\n\n /**\n * Визуально показать наличие ошибки.\n */\n error?: boolean;\n /**\n * Визуально показать наличие предупреждения.\n */\n warning?: boolean;\n maxMenuHeight?: number;\n menuAlign?: 'left' | 'right';\n menuWidth?: number | string;\n size?: ButtonSize;\n\n /**\n * Смотри Button.\n */\n use?: ButtonUse;\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose?: () => void;\n /**\n * Вызывается при открытии меню.\n */\n onOpen?: () => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\n/**\n * Выпадающее меню.\n *\n */\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n public static propTypes = {\n /**\n * Подпись на кнопке.\n */\n caption: PropTypes.node.isRequired,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Визуально отключает Dropdown\n */\n disabled: PropTypes.bool,\n\n /**\n * Визуально показать наличие ошибки.\n */\n error: PropTypes.bool,\n\n /**\n * Иконка слева от текста кнопки\n */\n icon: PropTypes.node,\n\n maxMenuHeight: PropTypes.number,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n menuWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n\n /**\n * Смотри Button.\n */\n use: PropTypes.any,\n\n /**\n * Визуально показать наличие предупреждения.\n */\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Вызывается при закрытии меню.\n */\n onClose: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n /**\n * Вызывается при открытии меню.\n */\n onOpen: PropTypes.func,\n };\n\n private _select: Nullable<DropdownSelectType>;\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = ({ caption, icon, ...props }: CommonWrapperRestProps<DropdownProps>) => {\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <Select<React.ReactNode, React.ReactNode>\n ref={this._refSelect}\n {...filterProps(props, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
@@ -55,6 +55,7 @@ export interface DropdownProps extends CommonProps {
55
55
  }
56
56
  /**
57
57
  * Выпадающее меню.
58
+ *
58
59
  */
59
60
  export declare class Dropdown extends React.Component<DropdownProps> {
60
61
  static __KONTUR_REACT_UI__: string;
@@ -1,6 +1,5 @@
1
1
  ```jsx harmony
2
2
  import { Dropdown, MenuHeader, MenuItem, MenuSeparator } from '@skbkontur/react-ui';
3
-
4
3
  <Dropdown caption="Click">
5
4
  <MenuItem onClick={() => alert('Clack')}>Clack</MenuItem>
6
5
  <MenuSeparator />
@@ -6,7 +6,7 @@ import { PopupMenu } from "../../../internal/PopupMenu";
6
6
  import { isProductionEnv, isTestEnv } from "../../../lib/currentEnvironment";
7
7
  import { CommonWrapper } from "../../../internal/CommonWrapper";
8
8
  /**
9
- * Меню, раскрывающееся по клику на переданный в ```caption``` элемент
9
+ * Меню, раскрывающееся по клику на переданный в `caption` элемент
10
10
  */
11
11
 
12
12
  export var DropdownMenu = /*#__PURE__*/function (_React$Component) {
@@ -1 +1 @@
1
- {"version":3,"sources":["DropdownMenu.tsx"],"names":["React","ThemeContext","ThemeFactory","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","DropdownMenu","props","popupMenu","open","close","refPopupMenu","ref","handleChangeMenuState","menuVisible","onOpen","onClose","caption","Error","render","theme","create","popupMargin","renderMain","menuMaxHeight","menuWidth","positions","disableAnimations","header","footer","width","children","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { PopupPosition } from '../../internal/Popup';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nexport interface DropdownMenuProps extends CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Массив разрешенных положений меню относительно caption'а.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPosition[];\n\n onOpen?: () => void;\n onClose?: () => void;\n\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n}\n\n/**\n * Меню, раскрывающееся по клику на переданный в ```caption``` элемент\n */\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n\n public static defaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private popupMenu: Nullable<PopupMenu> = null;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: '0px',\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n return (\n <CommonWrapper {...this.props}>\n <PopupMenu\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n onChangeMenuState={this.handleChangeMenuState}\n popupHasPin={false}\n positions={this.props.positions}\n disableAnimations={this.props.disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n\n private handleChangeMenuState = (menuVisible: boolean) => {\n if (menuVisible && this.props.onOpen) {\n this.props.onOpen();\n return;\n }\n\n if (!menuVisible && this.props.onClose) {\n this.props.onClose();\n return;\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["DropdownMenu.tsx"],"names":["React","ThemeContext","ThemeFactory","PopupMenu","isProductionEnv","isTestEnv","CommonWrapper","DropdownMenu","props","popupMenu","open","close","refPopupMenu","ref","handleChangeMenuState","menuVisible","onOpen","onClose","caption","Error","render","theme","create","popupMargin","renderMain","menuMaxHeight","menuWidth","positions","disableAnimations","header","footer","width","children","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { PopupPosition } from '../../internal/Popup';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nexport interface DropdownMenuProps extends CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [`MenuHeader`](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [`MenuSeparator`](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /**\n * Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPosition[];\n\n onOpen?: () => void;\n onClose?: () => void;\n\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n}\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент\n */\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n\n public static defaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private popupMenu: Nullable<PopupMenu> = null;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: '0px',\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n return (\n <CommonWrapper {...this.props}>\n <PopupMenu\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n onChangeMenuState={this.handleChangeMenuState}\n popupHasPin={false}\n positions={this.props.positions}\n disableAnimations={this.props.disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => (this.popupMenu = ref);\n\n private handleChangeMenuState = (menuVisible: boolean) => {\n if (menuVisible && this.props.onOpen) {\n this.props.onOpen();\n return;\n }\n\n if (!menuVisible && this.props.onClose) {\n this.props.onClose();\n return;\n }\n };\n}\n"]}