@skbkontur/react-ui 4.4.0 → 4.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +43 -1
  2. package/README.md +27 -4
  3. package/cjs/components/Autocomplete/Autocomplete.md +15 -1
  4. package/cjs/components/ComboBox/ComboBox.md +32 -0
  5. package/cjs/components/DatePicker/DatePicker.md +18 -0
  6. package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
  7. package/cjs/components/FileUploader/FileUploader.js +15 -2
  8. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  9. package/cjs/components/FxInput/FxInput.md +13 -0
  10. package/cjs/components/Input/Input.js +2 -1
  11. package/cjs/components/Input/Input.js.map +1 -1
  12. package/cjs/components/Input/Input.md +12 -0
  13. package/cjs/components/Input/Input.styles.d.ts +1 -0
  14. package/cjs/components/Input/Input.styles.js +17 -10
  15. package/cjs/components/Input/Input.styles.js.map +1 -1
  16. package/cjs/components/Loader/Loader.d.ts +11 -2
  17. package/cjs/components/Loader/Loader.js +10 -1
  18. package/cjs/components/Loader/Loader.js.map +1 -1
  19. package/cjs/components/Loader/Loader.md +30 -23
  20. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  21. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  22. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  23. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  24. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  25. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  26. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  27. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  28. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  29. package/cjs/components/Select/Select.md +14 -0
  30. package/cjs/components/Spinner/Spinner.d.ts +11 -2
  31. package/cjs/components/Spinner/Spinner.js +10 -1
  32. package/cjs/components/Spinner/Spinner.js.map +1 -1
  33. package/cjs/components/Textarea/Textarea.md +19 -0
  34. package/cjs/components/Token/Token.styles.js +2 -1
  35. package/cjs/components/Token/Token.styles.js.map +1 -1
  36. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  37. package/cjs/components/TokenInput/TokenInput.js +56 -13
  38. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  39. package/cjs/components/TokenInput/TokenInput.md +26 -0
  40. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  41. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  42. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  43. package/cjs/internal/ZIndex/ZIndex.d.ts +17 -3
  44. package/cjs/internal/ZIndex/ZIndex.js +55 -14
  45. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  46. package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
  47. package/cjs/internal/themes/DefaultTheme.js +8 -2
  48. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  49. package/cjs/lib/rootNode/getRootNode.d.ts +1 -1
  50. package/cjs/lib/rootNode/getRootNode.js +37 -12
  51. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  52. package/components/Autocomplete/Autocomplete.md +15 -1
  53. package/components/ComboBox/ComboBox.md +32 -0
  54. package/components/DatePicker/DatePicker.md +18 -0
  55. package/components/FileUploader/FileUploader/FileUploader.js +8 -3
  56. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  57. package/components/FileUploader/FileUploader.d.ts +2 -1
  58. package/components/FxInput/FxInput.md +13 -0
  59. package/components/Input/Input/Input.js +1 -1
  60. package/components/Input/Input/Input.js.map +1 -1
  61. package/components/Input/Input.md +12 -0
  62. package/components/Input/Input.styles/Input.styles.js +13 -10
  63. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  64. package/components/Input/Input.styles.d.ts +1 -0
  65. package/components/Loader/Loader/Loader.js +3 -1
  66. package/components/Loader/Loader/Loader.js.map +1 -1
  67. package/components/Loader/Loader.d.ts +11 -2
  68. package/components/Loader/Loader.md +30 -23
  69. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  70. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  71. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  72. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  73. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  74. package/components/ResponsiveLayout/types.d.ts +9 -1
  75. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  76. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  77. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  78. package/components/Select/Select.md +14 -0
  79. package/components/Spinner/Spinner/Spinner.js +1 -1
  80. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  81. package/components/Spinner/Spinner.d.ts +11 -2
  82. package/components/Textarea/Textarea.md +19 -0
  83. package/components/Token/Token.styles/Token.styles.js +1 -1
  84. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  85. package/components/TokenInput/TokenInput/TokenInput.js +82 -19
  86. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  87. package/components/TokenInput/TokenInput.d.ts +3 -0
  88. package/components/TokenInput/TokenInput.md +26 -0
  89. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  90. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  91. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  92. package/internal/ZIndex/ZIndex/ZIndex.js +46 -27
  93. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  94. package/internal/ZIndex/ZIndex.d.ts +17 -3
  95. package/internal/themes/DefaultTheme/DefaultTheme.js +11 -1
  96. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  97. package/internal/themes/DefaultTheme.d.ts +2 -0
  98. package/lib/rootNode/getRootNode/getRootNode.js +28 -10
  99. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  100. package/lib/rootNode/getRootNode.d.ts +1 -1
  101. package/package.json +3 -20
@@ -1,7 +1,7 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");
2
2
 
3
3
  var _DimensionFunctions = require("../../lib/styles/DimensionFunctions");
4
- var _Mixins = require("../../lib/styles/Mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40;
4
+ var _Mixins = require("../../lib/styles/Mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41;
5
5
 
6
6
  var shouldCompensateFontFamily = function shouldCompensateFontFamily(fontFamilyCompensation) {return (
7
7
  Boolean(parseInt(fontFamilyCompensation)));};
@@ -65,7 +65,8 @@ var styles = (0, _Emotion.memoizeStyle)({
65
65
  },
66
66
 
67
67
  focus: function focus(t) {
68
- return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n border-color: ", ";\n box-shadow: ", ";\n outline: none;\n z-index: 2;\n "])),
68
+ return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n background-color: ", ";\n border-color: ", ";\n box-shadow: ", ";\n outline: none;\n z-index: 2;\n "])),
69
+ t.inputFocusedBg,
69
70
  t.inputBorderColorFocus,
70
71
  t.inputFocusShadow);
71
72
 
@@ -375,58 +376,64 @@ var styles = (0, _Emotion.memoizeStyle)({
375
376
 
376
377
 
377
378
 
379
+ },
380
+
381
+ iconFocus: function iconFocus(t) {
382
+ return (0, _Emotion.css)(_templateObject33 || (_templateObject33 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
383
+ t.inputFocusedIconColor);
384
+
378
385
  },
379
386
 
380
387
  iconDisabled: function iconDisabled() {
381
- return (0, _Emotion.css)(_templateObject33 || (_templateObject33 = (0, _taggedTemplateLiteralLoose2.default)(["\n cursor: default;\n "])));
388
+ return (0, _Emotion.css)(_templateObject34 || (_templateObject34 = (0, _taggedTemplateLiteralLoose2.default)(["\n cursor: default;\n "])));
382
389
 
383
390
 
384
391
  },
385
392
 
386
393
  leftIconSmall: function leftIconSmall(t) {
387
- return (0, _Emotion.css)(_templateObject34 || (_templateObject34 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-right: ", ";\n "])),
394
+ return (0, _Emotion.css)(_templateObject35 || (_templateObject35 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-right: ", ";\n "])),
388
395
  t.inputIconSizeSmall,
389
396
  t.inputIconGapSmall);
390
397
 
391
398
  },
392
399
 
393
400
  rightIconSmall: function rightIconSmall(t) {
394
- return (0, _Emotion.css)(_templateObject35 || (_templateObject35 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-left: ", ";\n "])),
401
+ return (0, _Emotion.css)(_templateObject36 || (_templateObject36 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-left: ", ";\n "])),
395
402
  t.inputIconSizeSmall,
396
403
  t.inputIconGapSmall);
397
404
 
398
405
  },
399
406
 
400
407
  leftIconMedium: function leftIconMedium(t) {
401
- return (0, _Emotion.css)(_templateObject36 || (_templateObject36 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-right: ", ";\n "])),
408
+ return (0, _Emotion.css)(_templateObject37 || (_templateObject37 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-right: ", ";\n "])),
402
409
  t.inputIconSizeMedium,
403
410
  t.inputIconGapMedium);
404
411
 
405
412
  },
406
413
 
407
414
  rightIconMedium: function rightIconMedium(t) {
408
- return (0, _Emotion.css)(_templateObject37 || (_templateObject37 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-left: ", ";\n "])),
415
+ return (0, _Emotion.css)(_templateObject38 || (_templateObject38 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-left: ", ";\n "])),
409
416
  t.inputIconSizeMedium,
410
417
  t.inputIconGapMedium);
411
418
 
412
419
  },
413
420
 
414
421
  leftIconLarge: function leftIconLarge(t) {
415
- return (0, _Emotion.css)(_templateObject38 || (_templateObject38 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-right: ", ";\n "])),
422
+ return (0, _Emotion.css)(_templateObject39 || (_templateObject39 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-right: ", ";\n "])),
416
423
  t.inputIconSizeLarge,
417
424
  t.inputIconGapLarge);
418
425
 
419
426
  },
420
427
 
421
428
  rightIconLarge: function rightIconLarge(t) {
422
- return (0, _Emotion.css)(_templateObject39 || (_templateObject39 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-left: ", ";\n "])),
429
+ return (0, _Emotion.css)(_templateObject40 || (_templateObject40 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", ";\n padding-left: ", ";\n "])),
423
430
  t.inputIconSizeLarge,
424
431
  t.inputIconGapLarge);
425
432
 
426
433
  },
427
434
 
428
435
  hideBlinkingCursor: function hideBlinkingCursor() {
429
- return (0, _Emotion.css)(_templateObject40 || (_templateObject40 = (0, _taggedTemplateLiteralLoose2.default)(["\n caret-color: transparent;\n "])));
436
+ return (0, _Emotion.css)(_templateObject41 || (_templateObject41 = (0, _taggedTemplateLiteralLoose2.default)(["\n caret-color: transparent;\n "])));
430
437
 
431
438
 
432
439
  } });exports.styles = styles;
@@ -1 +1 @@
1
- {"version":3,"sources":["Input.styles.ts"],"names":["shouldCompensateFontFamily","fontFamilyCompensation","Boolean","parseInt","styles","wrapper","css","root","t","inputBg","inputBorderWidth","inputBorderColor","inputBorderTopColor","inputShadow","inputColor","inputWidth","borderless","useDefaultColor","inputIconColor","focus","inputBorderColorFocus","inputFocusShadow","focusFallback","inputOutlineWidth","inputFocusOutline","placeholder","inputPlaceholderColor","placeholderFocus","inputPlaceholderColorLight","placeholderDisabled","inputPlaceholderColorDisabled","input","inputTextColor","inputFocus","inputDisabled","inputTextColorDisabled","warning","inputBorderColorWarning","warningFallback","error","inputBorderColorError","errorFallback","disabled","inputDisabledBg","inputDisabledBorderColor","blink","blinkAnimation","keyframes","inputBlinkColor","sizeSmall","inputFontSizeSmall","inputLineHeightSmall","inputPaddingYSmall","inputPaddingXSmall","inputHeightSmall","inputBorderRadiusSmall","sizeSmallFallback","fontFamilyCompensationBaseline","sizeMedium","inputFontSizeMedium","inputLineHeightMedium","inputPaddingYMedium","inputPaddingXMedium","inputHeightMedium","inputBorderRadiusMedium","sizeMediumFallback","sizeLarge","inputFontSizeLarge","inputLineHeightLarge","inputHeightLarge","inputPaddingYLarge","inputPaddingXLarge","inputBorderRadiusLarge","sizeLargeFallback","prefix","prefixDisabled","suffix","suffixDisabled","sideContainer","rightContainer","icon","iconDisabled","leftIconSmall","inputIconSizeSmall","inputIconGapSmall","rightIconSmall","leftIconMedium","inputIconSizeMedium","inputIconGapMedium","rightIconMedium","leftIconLarge","inputIconSizeLarge","inputIconGapLarge","rightIconLarge","hideBlinkingCursor"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { shift } from '../../lib/styles/DimensionFunctions';\nimport { resetText } from '../../lib/styles/Mixins';\n\nconst shouldCompensateFontFamily = (fontFamilyCompensation: string): boolean =>\n Boolean(parseInt(fontFamilyCompensation));\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n ${resetText()};\n\n align-items: center;\n background-clip: padding-box;\n background-color: ${t.inputBg};\n border: ${t.inputBorderWidth} solid ${t.inputBorderColor};\n border-top-color: ${t.inputBorderTopColor};\n box-shadow: ${t.inputShadow};\n box-sizing: border-box;\n color: ${t.inputColor};\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ${t.inputWidth};\n\n & * {\n box-sizing: border-box;\n }\n `;\n },\n\n borderless() {\n return css`\n box-shadow: none;\n border-color: transparent;\n `;\n },\n\n useDefaultColor(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorFocus};\n box-shadow: ${t.inputFocusShadow};\n outline: none;\n z-index: 2;\n `;\n },\n\n focusFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputOutlineWidth} solid ${t.inputFocusOutline};\n `;\n },\n\n placeholder(t: Theme) {\n return css`\n -ms-user-select: none;\n color: ${t.inputPlaceholderColor};\n cursor: text;\n font-size: inherit;\n height: 100%;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n top: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n `;\n },\n\n placeholderFocus(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorLight};\n `;\n },\n\n placeholderDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n input(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ${t.inputTextColor};\n font: inherit;\n line-height: inherit;\n margin: 0;\n outline: none;\n padding: 0;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n &::-ms-clear {\n display: none;\n }\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColor};\n }\n `;\n },\n\n inputFocus(t: Theme) {\n return css`\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n color: ${t.inputTextColorDisabled};\n /* fix text color in safari https://bugs.webkit.org/show_bug.cgi?id=115510 */\n -webkit-text-fill-color: ${t.inputTextColorDisabled};\n\n &:-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorWarning};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorWarning};\n z-index: 2;\n `;\n },\n\n warningFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorError};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorError};\n z-index: 2;\n `;\n },\n\n errorFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorError};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background-color: ${t.inputDisabledBg};\n border-color: ${t.inputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n blink(t: Theme) {\n const blinkAnimation = keyframes`\n 0% {\n background-color: ${t.inputBlinkColor};\n }\n `;\n return css`\n animation: ${blinkAnimation} 0.15s ease-in;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n line-height: ${t.inputLineHeightSmall};\n padding-top: ${t.inputPaddingYSmall};\n padding-bottom: ${t.inputPaddingYSmall};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n height: ${t.inputHeightSmall};\n border-radius: ${t.inputBorderRadiusSmall};\n `;\n },\n\n sizeSmallFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n line-height: normal;\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n line-height: ${t.inputLineHeightMedium};\n padding-top: ${t.inputPaddingYMedium};\n padding-bottom: ${t.inputPaddingYMedium};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n height: ${t.inputHeightMedium};\n border-radius: ${t.inputBorderRadiusMedium};\n `;\n },\n\n sizeMediumFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n line-height: normal;\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n line-height: ${t.inputLineHeightLarge};\n height: ${t.inputHeightLarge};\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n border-radius: ${t.inputBorderRadiusLarge};\n `;\n },\n\n sizeLargeFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-2' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '2' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n line-height: normal;\n `;\n },\n\n prefix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n prefixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n suffix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n suffixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n sideContainer() {\n return css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n height: 100%;\n\n &::before {\n content: '\\\\a0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n rightContainer() {\n return css`\n justify-self: flex-end;\n margin: 0 0 0 auto;\n padding-left: 0;\n `;\n },\n\n icon() {\n return css`\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n `;\n },\n\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n\n leftIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-right: ${t.inputIconGapSmall};\n `;\n },\n\n rightIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-left: ${t.inputIconGapSmall};\n `;\n },\n\n leftIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-right: ${t.inputIconGapMedium};\n `;\n },\n\n rightIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-left: ${t.inputIconGapMedium};\n `;\n },\n\n leftIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-right: ${t.inputIconGapLarge};\n `;\n },\n\n rightIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-left: ${t.inputIconGapLarge};\n `;\n },\n\n hideBlinkingCursor() {\n return css`\n caret-color: transparent;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Input.styles.ts"],"names":["shouldCompensateFontFamily","fontFamilyCompensation","Boolean","parseInt","styles","wrapper","css","root","t","inputBg","inputBorderWidth","inputBorderColor","inputBorderTopColor","inputShadow","inputColor","inputWidth","borderless","useDefaultColor","inputIconColor","focus","inputFocusedBg","inputBorderColorFocus","inputFocusShadow","focusFallback","inputOutlineWidth","inputFocusOutline","placeholder","inputPlaceholderColor","placeholderFocus","inputPlaceholderColorLight","placeholderDisabled","inputPlaceholderColorDisabled","input","inputTextColor","inputFocus","inputDisabled","inputTextColorDisabled","warning","inputBorderColorWarning","warningFallback","error","inputBorderColorError","errorFallback","disabled","inputDisabledBg","inputDisabledBorderColor","blink","blinkAnimation","keyframes","inputBlinkColor","sizeSmall","inputFontSizeSmall","inputLineHeightSmall","inputPaddingYSmall","inputPaddingXSmall","inputHeightSmall","inputBorderRadiusSmall","sizeSmallFallback","fontFamilyCompensationBaseline","sizeMedium","inputFontSizeMedium","inputLineHeightMedium","inputPaddingYMedium","inputPaddingXMedium","inputHeightMedium","inputBorderRadiusMedium","sizeMediumFallback","sizeLarge","inputFontSizeLarge","inputLineHeightLarge","inputHeightLarge","inputPaddingYLarge","inputPaddingXLarge","inputBorderRadiusLarge","sizeLargeFallback","prefix","prefixDisabled","suffix","suffixDisabled","sideContainer","rightContainer","icon","iconFocus","inputFocusedIconColor","iconDisabled","leftIconSmall","inputIconSizeSmall","inputIconGapSmall","rightIconSmall","leftIconMedium","inputIconSizeMedium","inputIconGapMedium","rightIconMedium","leftIconLarge","inputIconSizeLarge","inputIconGapLarge","rightIconLarge","hideBlinkingCursor"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { shift } from '../../lib/styles/DimensionFunctions';\nimport { resetText } from '../../lib/styles/Mixins';\n\nconst shouldCompensateFontFamily = (fontFamilyCompensation: string): boolean =>\n Boolean(parseInt(fontFamilyCompensation));\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n ${resetText()};\n\n align-items: center;\n background-clip: padding-box;\n background-color: ${t.inputBg};\n border: ${t.inputBorderWidth} solid ${t.inputBorderColor};\n border-top-color: ${t.inputBorderTopColor};\n box-shadow: ${t.inputShadow};\n box-sizing: border-box;\n color: ${t.inputColor};\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ${t.inputWidth};\n\n & * {\n box-sizing: border-box;\n }\n `;\n },\n\n borderless() {\n return css`\n box-shadow: none;\n border-color: transparent;\n `;\n },\n\n useDefaultColor(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n background-color: ${t.inputFocusedBg};\n border-color: ${t.inputBorderColorFocus};\n box-shadow: ${t.inputFocusShadow};\n outline: none;\n z-index: 2;\n `;\n },\n\n focusFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputOutlineWidth} solid ${t.inputFocusOutline};\n `;\n },\n\n placeholder(t: Theme) {\n return css`\n -ms-user-select: none;\n color: ${t.inputPlaceholderColor};\n cursor: text;\n font-size: inherit;\n height: 100%;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n top: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n `;\n },\n\n placeholderFocus(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorLight};\n `;\n },\n\n placeholderDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n input(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ${t.inputTextColor};\n font: inherit;\n line-height: inherit;\n margin: 0;\n outline: none;\n padding: 0;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n &::-ms-clear {\n display: none;\n }\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColor};\n }\n `;\n },\n\n inputFocus(t: Theme) {\n return css`\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n color: ${t.inputTextColorDisabled};\n /* fix text color in safari https://bugs.webkit.org/show_bug.cgi?id=115510 */\n -webkit-text-fill-color: ${t.inputTextColorDisabled};\n\n &:-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorWarning};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorWarning};\n z-index: 2;\n `;\n },\n\n warningFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorError};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorError};\n z-index: 2;\n `;\n },\n\n errorFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorError};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background-color: ${t.inputDisabledBg};\n border-color: ${t.inputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n blink(t: Theme) {\n const blinkAnimation = keyframes`\n 0% {\n background-color: ${t.inputBlinkColor};\n }\n `;\n return css`\n animation: ${blinkAnimation} 0.15s ease-in;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n line-height: ${t.inputLineHeightSmall};\n padding-top: ${t.inputPaddingYSmall};\n padding-bottom: ${t.inputPaddingYSmall};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n height: ${t.inputHeightSmall};\n border-radius: ${t.inputBorderRadiusSmall};\n `;\n },\n\n sizeSmallFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n line-height: normal;\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n line-height: ${t.inputLineHeightMedium};\n padding-top: ${t.inputPaddingYMedium};\n padding-bottom: ${t.inputPaddingYMedium};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n height: ${t.inputHeightMedium};\n border-radius: ${t.inputBorderRadiusMedium};\n `;\n },\n\n sizeMediumFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n line-height: normal;\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n line-height: ${t.inputLineHeightLarge};\n height: ${t.inputHeightLarge};\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n border-radius: ${t.inputBorderRadiusLarge};\n `;\n },\n\n sizeLargeFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-2' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '2' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n line-height: normal;\n `;\n },\n\n prefix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n prefixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n suffix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n suffixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n sideContainer() {\n return css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n height: 100%;\n\n &::before {\n content: '\\\\a0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n rightContainer() {\n return css`\n justify-self: flex-end;\n margin: 0 0 0 auto;\n padding-left: 0;\n `;\n },\n\n icon() {\n return css`\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n `;\n },\n\n iconFocus(t: Theme) {\n return css`\n color: ${t.inputFocusedIconColor};\n `;\n },\n\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n\n leftIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-right: ${t.inputIconGapSmall};\n `;\n },\n\n rightIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-left: ${t.inputIconGapSmall};\n `;\n },\n\n leftIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-right: ${t.inputIconGapMedium};\n `;\n },\n\n rightIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-left: ${t.inputIconGapMedium};\n `;\n },\n\n leftIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-right: ${t.inputIconGapLarge};\n `;\n },\n\n rightIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-left: ${t.inputIconGapLarge};\n `;\n },\n\n hideBlinkingCursor() {\n return css`\n caret-color: transparent;\n `;\n },\n});\n"]}
@@ -10,12 +10,19 @@ export interface LoaderProps extends CommonProps {
10
10
  * @default false
11
11
  */
12
12
  active?: boolean;
13
+ /**
14
+ * Подпись под спиннером
15
+ */
13
16
  caption?: SpinnerProps['caption'];
14
17
  /**
15
18
  * Компонент заменяющий спиннер.
16
19
  */
17
20
  component?: React.ReactNode;
18
- className?: string;
21
+ /**
22
+ * Размер спиннера и текста
23
+ *
24
+ * @default normal
25
+ */
19
26
  type?: 'mini' | 'normal' | 'big';
20
27
  /**
21
28
  * Время в миллисекундах для показа вуали без спиннера.
@@ -40,7 +47,9 @@ export declare const LoaderDataTids: {
40
47
  };
41
48
  declare type DefaultProps = Required<Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
42
49
  /**
43
- * DRAFT - лоадер-контейнер
50
+ * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер
51
+ *
52
+ * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)
44
53
  */
45
54
  export declare class Loader extends React.Component<LoaderProps, LoaderState> {
46
55
  static __KONTUR_REACT_UI__: string;
@@ -45,6 +45,13 @@ var _Loader = require("./Loader.styles");var _class, _class2, _temp;function _ge
45
45
 
46
46
 
47
47
 
48
+
49
+
50
+
51
+
52
+
53
+
54
+
48
55
 
49
56
 
50
57
 
@@ -63,7 +70,9 @@ var LoaderDataTids = {
63
70
 
64
71
 
65
72
  /**
66
- * DRAFT - лоадер-контейнер
73
+ * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер
74
+ *
75
+ * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)
67
76
  */var
68
77
 
69
78
  Loader = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Loader, _React$Component);
@@ -1 +1 @@
1
- {"version":3,"sources":["Loader.tsx"],"names":["LoaderDataTids","veil","spinner","Loader","rootNode","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","LayoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","styles","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","React","Component","__KONTUR_REACT_UI__","Spinner","Types","normal","isTestEnv","propTypes","PropTypes","bool","node","className","string","oneOf","Object","keys","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n className?: string;\n type?: 'mini' | 'normal' | 'big';\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * DRAFT - лоадер-контейнер\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: Spinner.Types.normal,\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(Spinner.Types)),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: 'mini' | 'normal' | 'big', caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
1
+ {"version":3,"sources":["Loader.tsx"],"names":["LoaderDataTids","veil","spinner","Loader","rootNode","props","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","window","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","makeUnobservable","Array","from","document","querySelectorAll","getAttribute","removeAttribute","target","config","childList","subtree","observer","MutationObserver","observe","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","componentDidMount","active","start","layoutEvents","LayoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","theme","renderMain","caption","type","setRootNode","styles","loader","children","renderSpinner","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","undefined","React","Component","__KONTUR_REACT_UI__","Spinner","Types","normal","isTestEnv","propTypes","PropTypes","bool","node","className","string","oneOf","Object","keys","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n /**\n * Подпись под спиннером\n */\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n /**\n * Размер спиннера и текста\n *\n * @default normal\n */\n type?: 'mini' | 'normal' | 'big';\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер\n *\n * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: Spinner.Types.normal,\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(Spinner.Types)),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n priority={'Loader'}\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n priority={'Loader'}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: 'mini' | 'normal' | 'big', caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(document.querySelectorAll('[origin-tabindex]')).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"]}
@@ -1,25 +1,32 @@
1
1
  ```jsx harmony
2
- <Loader type="big" active>
3
- <h1>Yeah, and if you were the pope they'd be all, "Straighten your pope hat." And "Put on your good vestments."</h1>
4
- <p>
5
- No, I'm Santa Claus! I guess if you want children beaten, you have to do it yourself. We're also Santa Claus! Leela,
6
- Bender, we're going grave robbing.
7
- </p>
8
- <p>
9
- Are you crazy? I can't swallow that. Large bet on myself in round one. Hey, whatcha watching?
10
- <strong> Moving along… I guess if you want children beaten, you have to do it yourself.</strong>
11
- <em>It's okay, Bender.</em> I like cooking too.
12
- </p>
13
- <h2>Oh, I think we should just stay friends.</h2>
14
- <p>
15
- No argument here. And when we woke up, we had these bodies. You guys go on without me! I'm going to go… look for
16
- more stuff to steal! Oh, how awful. Did he at least die painlessly? …To shreds, you say. Well, how is his wife
17
- holding up? …To shreds, you say.
18
- </p>
19
- <ol>
20
- <li>No! The kind with looting and maybe starting a few fires!</li>
21
- <li>You are the last hope of the universe.</li>
22
- <li>Hey, guess what you're accessories to.</li>
23
- </ol>
24
- </Loader>
2
+ import { Button } from '@skbkontur/react-ui';
3
+
4
+ const [isActive, setIsActive] = React.useState(true);
5
+
6
+ <>
7
+ <Button onClick={() => setIsActive(!isActive)}>{isActive ? 'Остановить загрузку' : 'Продолжить загрузку'}</Button>
8
+ <Loader type="big" active={isActive}>
9
+ <h1>Yeah, and if you were the pope they'd be all, "Straighten your pope hat." And "Put on your good vestments."</h1>
10
+ <p>
11
+ No, I'm Santa Claus! I guess if you want children beaten, you have to do it yourself. We're also Santa Claus! Leela,
12
+ Bender, we're going grave robbing.
13
+ </p>
14
+ <p>
15
+ Are you crazy? I can't swallow that. Large bet on myself in round one. Hey, whatcha watching?
16
+ <strong> Moving along… I guess if you want children beaten, you have to do it yourself.</strong>
17
+ <em>It's okay, Bender.</em> I like cooking too.
18
+ </p>
19
+ <h2>Oh, I think we should just stay friends.</h2>
20
+ <p>
21
+ No argument here. And when we woke up, we had these bodies. You guys go on without me! I'm going to go… look for
22
+ more stuff to steal! Oh, how awful. Did he at least die painlessly? …To shreds, you say. Well, how is his wife
23
+ holding up? …To shreds, you say.
24
+ </p>
25
+ <ol>
26
+ <li>No! The kind with looting and maybe starting a few fires!</li>
27
+ <li>You are the last hope of the universe.</li>
28
+ <li>Hey, guess what you're accessories to.</li>
29
+ </ol>
30
+ </Loader>
31
+ </>
25
32
  ```
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- import { ResponsiveLayoutFlags } from './types';
3
- interface ResponsiveLayoutProps {
4
- onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;
5
- children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);
2
+ import { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';
3
+ interface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {
4
+ onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;
5
+ children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);
6
+ customMediaQueries?: T;
6
7
  }
7
8
  /**
8
9
  * Компонент для определения текущего лэйаута.
9
10
  */
10
- export declare const ResponsiveLayout: React.FC<ResponsiveLayoutProps>;
11
+ export declare function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>): JSX.Element;
11
12
  export {};
@@ -1,5 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ResponsiveLayout = void 0;var _react = _interopRequireWildcard(require("react"));
2
- var _propTypes = _interopRequireDefault(require("prop-types"));
1
+ "use strict";exports.__esModule = true;exports.ResponsiveLayout = ResponsiveLayout;var _react = _interopRequireWildcard(require("react"));
3
2
 
4
3
  var _utils = require("../../lib/utils");
5
4
  var _CommonWrapper = require("../../internal/CommonWrapper");
@@ -12,12 +11,13 @@ var _useResponsiveLayout = require("./useResponsiveLayout");function _getRequire
12
11
 
13
12
 
14
13
 
14
+
15
15
  /**
16
16
  * Компонент для определения текущего лэйаута.
17
17
  */
18
18
 
19
- var ResponsiveLayout = function ResponsiveLayout(props) {var _props$children, _props$children2;
20
- var layoutFlags = (0, _useResponsiveLayout.useResponsiveLayout)();
19
+ function ResponsiveLayout(props) {var _props$children, _props$children2;
20
+ var layoutFlags = (0, _useResponsiveLayout.useResponsiveLayout)({ customMediaQueries: props.customMediaQueries });
21
21
 
22
22
  (0, _react.useEffect)(function () {
23
23
  if (props.onLayoutChange) {
@@ -30,8 +30,4 @@ var ResponsiveLayout = function ResponsiveLayout(props) {var _props$children, _p
30
30
  (0, _utils.isFunction)(props.children) ? (_props$children = props.children(layoutFlags)) != null ? _props$children : null : (_props$children2 = props.children) != null ? _props$children2 : null));
31
31
 
32
32
 
33
- };exports.ResponsiveLayout = ResponsiveLayout;
34
-
35
- ResponsiveLayout.propTypes = {
36
- onLayoutChange: _propTypes.default.func,
37
- children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]) };
33
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["ResponsiveLayout","props","layoutFlags","onLayoutChange","children","propTypes","func","oneOfType","node"],"mappings":"8JAAA;AACA;;AAEA;AACA;;;AAGA,4D;;;;;;;AAOA;AACA;AACA;;AAEO,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAG,+CAApB;;AAEA,wBAAU,YAAM;AACd,QAAID,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJD,EAIG,CAACA,WAAD,CAJH;;AAMA;AACE,iCAAC,4BAAD,EAAmBD,KAAnB;AACG,2BAAWA,KAAK,CAACG,QAAjB,uBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM,C;;AAgBPJ,gBAAgB,CAACK,SAAjB,GAA6B;AAC3BF,EAAAA,cAAc,EAAEE,mBAAUC,IADC;AAE3BF,EAAAA,QAAQ,EAAEC,mBAAUE,SAAV,CAAoB,CAACF,mBAAUG,IAAX,EAAiBH,mBAAUC,IAA3B,CAApB,CAFiB,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.oneOfType([propTypes.node, propTypes.func]),\n};\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["ResponsiveLayout","props","layoutFlags","customMediaQueries","onLayoutChange","children"],"mappings":"mFAAA;;AAEA;AACA;;;AAGA,4D;;;;;;;;AAQA;AACA;AACA;;AAEO,SAASA,gBAAT,CAAoEC,KAApE,EAAqG;AAC1G,MAAMC,WAAW,GAAG,8CAAuB,EAAEC,kBAAkB,EAAEF,KAAK,CAACE,kBAA5B,EAAvB,CAApB;;AAEA,wBAAU,YAAM;AACd,QAAIF,KAAK,CAACG,cAAV,EAA0B;AACxBH,MAAAA,KAAK,CAACG,cAAN,CAAqBF,WAArB;AACD;AACF,GAJD,EAIG,CAACA,WAAD,CAJH;;AAMA;AACE,iCAAC,4BAAD,EAAmBD,KAAnB;AACG,2BAAWA,KAAK,CAACI,QAAjB,uBAA6BJ,KAAK,CAACI,QAAN,CAAeH,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACI,QAAzE,+BAAqF,IADxF,CADF;;;AAKD","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {\n onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);\n customMediaQueries?: T;\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>) {\n const layoutFlags = useResponsiveLayout<T>({ customMediaQueries: props.customMediaQueries });\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n}\n"]}
@@ -40,4 +40,35 @@ class SomeComponent {
40
40
  }
41
41
  ```
42
42
 
43
+ В компонент можно передать проп `customMediaQueries: MediaQueriesType`, который позволяет кастомизировать возвращаемые флаги:
44
+ ```ts static
45
+ type MediaQueriesType = Record<string, string>;
46
+ ```
47
+ 1. Без кастомизации есть только флаг isMobile
48
+ 2. Поля из `customMediaQueries` дополняют список возвращаемых флагов в `ResponsiveLayoutFlags`
49
+ 3. При добавлении кастомного флага isMobile, значение дефолтного флага перезаписывается в пользу кастомного
50
+
51
+ ```jsx static
52
+ import { ResponsiveLayout } from '@skbkontur/react-ui';
53
+
54
+ const customMediaQueries = {
55
+ isTablet: '(min-width: 577px)',
56
+ isDesktop: '(min-width: 1280px)',
57
+ };
58
+
59
+ class SomeComponent {
60
+ public render() {
61
+ return (
62
+ <ResponsiveLayout customMediaQueries={customMediaQueries}>
63
+ {
64
+ ({ isMobile, isTablet, isDesktop }) => {
65
+ /* ... */
66
+ }
67
+ }
68
+ </ResponsiveLayout>
69
+ )
70
+ }
71
+ }
72
+ ```
73
+
43
74
  Как альтернативу можно использовать хук [useResponsiveLayout](#/Mobiles).
@@ -3,7 +3,7 @@ import { ResponsiveLayoutFlags } from './types';
3
3
  export declare function responsiveLayout<T extends new (...args: any[]) => React.Component>(WrappedComp: T): {
4
4
  new (...args: any[]): {
5
5
  layout: ResponsiveLayoutFlags;
6
- currentLayout: ResponsiveLayoutFlags;
6
+ currentLayout: ResponsiveLayoutFlags<import("./types").EmptyObject>;
7
7
  isMobileLayout: boolean;
8
8
  renderWithLayout: (currentLayout: ResponsiveLayoutFlags) => React.ReactNode;
9
9
  render(): JSX.Element;
@@ -1,3 +1,11 @@
1
- export interface ResponsiveLayoutFlags {
1
+ export declare type MediaQueriesType = Record<string, string>;
2
+ export declare type EmptyObject = Record<never, never>;
3
+ export interface ResponsiveLayoutOptions<MQ extends MediaQueriesType> {
4
+ customMediaQueries?: MQ;
5
+ }
6
+ export declare type ResponsiveLayoutFlags<T extends MediaQueriesType = EmptyObject> = {
7
+ [K in keyof T]?: boolean;
8
+ } & ResponsiveLayoutFlagsInternal;
9
+ export interface ResponsiveLayoutFlagsInternal {
2
10
  isMobile: boolean;
3
11
  }
@@ -1,2 +1,2 @@
1
- import { ResponsiveLayoutFlags } from './types';
2
- export declare function useResponsiveLayout(): ResponsiveLayoutFlags;
1
+ import { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags, ResponsiveLayoutOptions } from './types';
2
+ export declare function useResponsiveLayout<T extends MediaQueriesType = EmptyObject>({ customMediaQueries, }?: ResponsiveLayoutOptions<T>): ResponsiveLayoutFlags<T>;