@jetbrains/ring-ui-built 6.0.32 → 6.0.34

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 (226) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +567 -1
  2. package/components/_helpers/anchor.js +6 -7
  3. package/components/_helpers/button__classes.js +14 -16
  4. package/components/_helpers/caption.js +20 -14
  5. package/components/_helpers/card.js +105 -95
  6. package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
  7. package/components/_helpers/icon__svg.js +25 -22
  8. package/components/_helpers/input.js +176 -146
  9. package/components/_helpers/query-assist__suggestions.js +90 -74
  10. package/components/_helpers/select__filter.js +69 -48
  11. package/components/_helpers/services-link.js +37 -29
  12. package/components/_helpers/sidebar.js +107 -99
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +40 -31
  15. package/components/_helpers/title.js +72 -57
  16. package/components/alert/alert.js +202 -150
  17. package/components/alert/container.js +41 -32
  18. package/components/alert-service/alert-service.js +170 -105
  19. package/components/analytics/analytics.js +22 -12
  20. package/components/analytics/analytics__custom-plugin.js +75 -54
  21. package/components/auth/auth.js +36 -4
  22. package/components/auth/auth__core.js +1471 -746
  23. package/components/auth/background-flow.js +127 -87
  24. package/components/auth/down-notification.js +73 -30
  25. package/components/auth/iframe-flow.js +133 -75
  26. package/components/auth/request-builder.js +82 -46
  27. package/components/auth/response-parser.js +116 -86
  28. package/components/auth/storage.js +334 -171
  29. package/components/auth/token-validator.js +242 -137
  30. package/components/auth/window-flow.js +134 -92
  31. package/components/auth-dialog/auth-dialog.js +172 -114
  32. package/components/auth-dialog-service/auth-dialog-service.js +31 -8
  33. package/components/avatar/avatar-example-datauri.js +1 -23
  34. package/components/avatar/avatar.js +152 -119
  35. package/components/avatar/fallback-avatar.js +38 -22
  36. package/components/badge/badge.js +45 -35
  37. package/components/button/button.js +107 -86
  38. package/components/button-group/button-group.js +33 -19
  39. package/components/button-set/button-set.js +32 -20
  40. package/components/button-toolbar/button-toolbar.js +31 -19
  41. package/components/caret/caret.js +220 -186
  42. package/components/checkbox/checkbox.js +101 -76
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +132 -35
  45. package/components/code/code.js +166 -92
  46. package/components/collapse/collapse-content.js +64 -42
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +14 -12
  49. package/components/collapse/collapse.js +17 -11
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +3 -1
  52. package/components/confirm/confirm.js +104 -66
  53. package/components/confirm-service/confirm-service.js +59 -37
  54. package/components/content-layout/content-layout.js +64 -43
  55. package/components/content-layout/sidebar.js +1 -0
  56. package/components/contenteditable/contenteditable.js +59 -50
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +182 -129
  59. package/components/data-list/data-list.mock.js +6 -2
  60. package/components/data-list/item.js +170 -143
  61. package/components/data-list/selection.js +136 -76
  62. package/components/data-list/title.js +12 -1
  63. package/components/date-picker/consts.js +26 -19
  64. package/components/date-picker/date-input.js +144 -113
  65. package/components/date-picker/date-picker.js +282 -227
  66. package/components/date-picker/date-popup.js +395 -350
  67. package/components/date-picker/day.js +116 -87
  68. package/components/date-picker/month-names.js +66 -43
  69. package/components/date-picker/month-slider.js +76 -51
  70. package/components/date-picker/month.js +25 -16
  71. package/components/date-picker/months.js +50 -43
  72. package/components/date-picker/weekdays.js +22 -12
  73. package/components/date-picker/years.js +110 -83
  74. package/components/dialog/dialog.js +190 -142
  75. package/components/dialog/dialog__body-scroll-preventer.js +4 -0
  76. package/components/dropdown/anchor.js +9 -0
  77. package/components/dropdown/dropdown.js +213 -182
  78. package/components/dropdown-menu/dropdown-menu.js +97 -71
  79. package/components/editable-heading/editable-heading.js +127 -75
  80. package/components/error-bubble/error-bubble.js +60 -31
  81. package/components/error-message/error-message.js +59 -39
  82. package/components/footer/footer.js +30 -27
  83. package/components/global/compose.js +10 -1
  84. package/components/global/composeRefs.js +12 -7
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +14 -6
  88. package/components/global/dom.js +86 -47
  89. package/components/global/focus-sensor-hoc.js +132 -122
  90. package/components/global/fuzzy-highlight.js +36 -22
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +8 -4
  93. package/components/global/inject-styles.js +15 -10
  94. package/components/global/listeners.js +51 -27
  95. package/components/global/memoize.js +12 -6
  96. package/components/global/normalize-indent.js +50 -19
  97. package/components/global/promise-with-timeout.js +8 -6
  98. package/components/global/prop-types.js +5 -3
  99. package/components/global/react-dom-renderer.js +44 -28
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +30 -12
  102. package/components/global/schedule-raf.js +6 -5
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +22 -0
  105. package/components/global/trivial-template-tag.js +10 -3
  106. package/components/global/typescript-utils.js +6 -2
  107. package/components/global/url.js +26 -20
  108. package/components/global/use-event-callback.js +4 -6
  109. package/components/grid/col.js +52 -35
  110. package/components/grid/grid.js +31 -17
  111. package/components/grid/row.js +47 -35
  112. package/components/group/group.js +25 -17
  113. package/components/header/header.js +78 -33
  114. package/components/header/logo.js +36 -20
  115. package/components/header/profile.js +199 -166
  116. package/components/header/services-link.js +4 -0
  117. package/components/header/services.js +116 -73
  118. package/components/header/smart-profile.js +203 -111
  119. package/components/header/smart-services.js +113 -62
  120. package/components/header/tray-icon.js +37 -21
  121. package/components/header/tray.js +32 -21
  122. package/components/heading/heading.js +25 -24
  123. package/components/http/http.d.ts +1 -2
  124. package/components/http/http.js +345 -203
  125. package/components/http/http.mock.d.ts +1 -5
  126. package/components/http/http.mock.js +101 -49
  127. package/components/hub-source/hub-source.js +190 -83
  128. package/components/hub-source/hub-source__user.js +44 -11
  129. package/components/hub-source/hub-source__users-groups.js +65 -37
  130. package/components/i18n/i18n-context.js +10 -7
  131. package/components/i18n/i18n.js +10 -7
  132. package/components/icon/icon.js +93 -76
  133. package/components/icon/icon__svg.js +8 -0
  134. package/components/icon/index.js +8 -0
  135. package/components/input/input.js +13 -0
  136. package/components/island/adaptive-island-hoc.js +43 -30
  137. package/components/island/content.js +132 -115
  138. package/components/island/header.js +70 -57
  139. package/components/island/island.js +40 -28
  140. package/components/island-legacy/content-legacy.js +25 -17
  141. package/components/island-legacy/header-legacy.js +27 -19
  142. package/components/island-legacy/island-legacy.js +25 -17
  143. package/components/link/clickableLink.js +59 -44
  144. package/components/link/link.js +68 -57
  145. package/components/list/consts.js +2 -2
  146. package/components/list/list.js +698 -611
  147. package/components/list/list__custom.js +62 -44
  148. package/components/list/list__hint.js +19 -10
  149. package/components/list/list__item.js +174 -133
  150. package/components/list/list__link.js +50 -37
  151. package/components/list/list__separator.js +24 -14
  152. package/components/list/list__title.js +32 -22
  153. package/components/list/list__users-groups-source.js +126 -54
  154. package/components/loader/loader.js +74 -43
  155. package/components/loader/loader__core.js +263 -198
  156. package/components/loader-inline/loader-inline.js +35 -23
  157. package/components/loader-screen/loader-screen.js +46 -25
  158. package/components/login-dialog/login-dialog.js +158 -111
  159. package/components/login-dialog/service.js +34 -8
  160. package/components/markdown/markdown.js +23 -15
  161. package/components/message/message.js +203 -161
  162. package/components/old-browsers-message/old-browsers-message.js +18 -11
  163. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  164. package/components/old-browsers-message/white-list.js +17 -9
  165. package/components/pager/pager.js +271 -212
  166. package/components/panel/panel.js +25 -17
  167. package/components/permissions/permissions.js +172 -127
  168. package/components/permissions/permissions__cache.js +224 -194
  169. package/components/popup/popup.consts.js +1 -1
  170. package/components/popup/popup.js +343 -284
  171. package/components/popup/popup.target.js +8 -9
  172. package/components/popup/position.js +106 -96
  173. package/components/popup-menu/popup-menu.js +81 -44
  174. package/components/progress-bar/progress-bar.js +104 -87
  175. package/components/query-assist/query-assist.js +916 -838
  176. package/components/query-assist/query-assist__suggestions.js +30 -1
  177. package/components/radio/radio.js +34 -19
  178. package/components/radio/radio__item.js +69 -52
  179. package/components/select/select.js +957 -852
  180. package/components/select/select__filter.js +30 -0
  181. package/components/select/select__popup.js +487 -373
  182. package/components/shortcuts/core.js +217 -166
  183. package/components/shortcuts/shortcut-title.js +11 -6
  184. package/components/shortcuts/shortcuts-hoc.js +45 -19
  185. package/components/shortcuts/shortcuts.js +75 -50
  186. package/components/slider/slider.js +122 -99
  187. package/components/slider/slider.utils.js +24 -14
  188. package/components/storage/storage.js +33 -4
  189. package/components/storage/storage__fallback.js +224 -149
  190. package/components/storage/storage__local.js +153 -90
  191. package/components/tab-trap/tab-trap.js +153 -122
  192. package/components/table/cell.js +26 -14
  193. package/components/table/disable-hover-hoc.js +51 -33
  194. package/components/table/header-cell.js +89 -64
  195. package/components/table/header.js +132 -104
  196. package/components/table/multitable.js +125 -107
  197. package/components/table/row-with-focus-sensor.js +69 -25
  198. package/components/table/row.js +216 -175
  199. package/components/table/selection-adapter.js +3 -1
  200. package/components/table/selection-shortcuts-hoc.js +181 -180
  201. package/components/table/selection.js +226 -156
  202. package/components/table/smart-table.js +88 -50
  203. package/components/table/table.js +358 -289
  204. package/components/tabs/collapsible-more.js +79 -46
  205. package/components/tabs/collapsible-tab.js +38 -31
  206. package/components/tabs/collapsible-tabs.js +153 -88
  207. package/components/tabs/custom-item.js +2 -4
  208. package/components/tabs/dumb-tabs.js +117 -74
  209. package/components/tabs/smart-tabs.js +69 -29
  210. package/components/tabs/tab-link.js +5 -1
  211. package/components/tabs/tab.js +31 -19
  212. package/components/tabs/tabs.js +31 -0
  213. package/components/tag/tag.js +173 -133
  214. package/components/tags-input/tags-input.js +427 -329
  215. package/components/tags-list/tags-list.js +78 -57
  216. package/components/text/text.js +39 -28
  217. package/components/toggle/toggle.js +70 -56
  218. package/components/tooltip/tooltip.js +190 -146
  219. package/components/user-agreement/service.js +371 -228
  220. package/components/user-agreement/toolbox.eula.js +1 -160
  221. package/components/user-agreement/user-agreement.js +120 -85
  222. package/components/user-card/card.js +29 -0
  223. package/components/user-card/smart-user-card-tooltip.js +111 -51
  224. package/components/user-card/tooltip.js +84 -47
  225. package/components/user-card/user-card.js +29 -0
  226. package/package.json +1 -2
@@ -1,16 +1,19 @@
1
1
  import React, { useEffect } from 'react';
2
2
  import { getTranslations, translate, setTranslations } from './i18n.js';
3
+ import '../_helpers/_rollupPluginBabelHelpers.js';
4
+ import 'core-js/modules/es.array.iterator.js';
5
+ import 'core-js/modules/es.object.to-string.js';
6
+ import 'core-js/modules/es.set.js';
7
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
8
 
4
- const I18nContext = /*#__PURE__*/React.createContext({
9
+ var I18nContext = /*#__PURE__*/React.createContext({
5
10
  messages: getTranslations(),
6
11
  translate
7
12
  });
8
- const I18nContextHolder = _ref => {
9
- let {
10
- children,
11
- messages
12
- } = _ref;
13
- useEffect(() => {
13
+ var I18nContextHolder = function I18nContextHolder(_ref) {
14
+ var children = _ref.children,
15
+ messages = _ref.messages;
16
+ useEffect(function () {
14
17
  setTranslations(messages);
15
18
  }, [messages]);
16
19
  return /*#__PURE__*/React.createElement(I18nContext.Provider, {
@@ -1,3 +1,9 @@
1
+ import { d as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.iterator.js';
3
+ import 'core-js/modules/es.object.to-string.js';
4
+ import 'core-js/modules/es.set.js';
5
+ import 'core-js/modules/web.dom-collections.iterator.js';
6
+
1
7
  var login = "Log in";
2
8
  var logout = "Log out";
3
9
  var loginTo = "Log in to {{serviceName}}";
@@ -103,15 +109,15 @@ var defaultMessages = {
103
109
  unverified: unverified
104
110
  };
105
111
 
106
- let messages = defaultMessages;
107
- const warned = new Set();
112
+ var messages = defaultMessages;
113
+ var warned = new Set();
108
114
  function warnMissedKeyOnce(key) {
109
115
  if (warned.has(key)) {
110
116
  return;
111
117
  }
112
118
  warned.add(key);
113
119
  // eslint-disable-next-line no-console
114
- console.warn(`Missing localisation for key "${key}"`);
120
+ console.warn("Missing localisation for key \"".concat(key, "\""));
115
121
  }
116
122
  function setTranslations(newMessages) {
117
123
  messages = newMessages;
@@ -120,10 +126,7 @@ function getTranslations() {
120
126
  return messages;
121
127
  }
122
128
  function getTranslationsWithFallback() {
123
- return {
124
- ...defaultMessages,
125
- ...messages
126
- };
129
+ return _objectSpread2(_objectSpread2({}, defaultMessages), messages);
127
130
  }
128
131
  function translate(key) {
129
132
  var _messages$key;
@@ -1,90 +1,107 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _inherits, b as _createClass, c as _objectWithoutProperties, e as _extends, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { PureComponent } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
5
  import deprecate from 'util-deprecate';
6
6
  import { Color, Size } from './icon__constants.js';
7
7
  import { m as modules_29747b80, I as IconSVG } from '../_helpers/icon__svg.js';
8
+ import 'core-js/modules/es.regexp.exec.js';
9
+ import 'core-js/modules/es.string.replace.js';
10
+ import 'core-js/modules/es.string.starts-with.js';
8
11
  import '../global/memoize.js';
12
+ import 'core-js/modules/es.array.iterator.js';
13
+ import 'core-js/modules/es.map.js';
14
+ import 'core-js/modules/es.object.to-string.js';
15
+ import 'core-js/modules/es.weak-map.js';
16
+ import 'core-js/modules/web.dom-collections.iterator.js';
9
17
 
10
- const warnSize = deprecate(() => {}, `\`size\`, \`width\` and \`height\` props are not recommended to use in Ring UI \`Icon\` component. The intrinsic sizes of SVG icon (\`width\` and \`height\` SVG attributes) are used instead.
11
-
12
- We strongly recommend to use icons handcrafted for particular sizes. If your icon doesn't exist in the desired size, please ask your designer to draw one. "Responsive" checkmark should be unchecked when exporting icon.'`);
13
- class Icon extends PureComponent {
14
- static propTypes = {
15
- className: PropTypes.string,
16
- color: PropTypes.string,
17
- glyph: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]).isRequired,
18
- height: PropTypes.number,
19
- size: PropTypes.number,
20
- width: PropTypes.number,
21
- loading: PropTypes.bool,
22
- suppressSizeWarning: PropTypes.bool
23
- };
24
- static defaultProps = {
25
- className: '',
26
- color: Color.DEFAULT,
27
- glyph: ''
28
- };
29
- static Color = Color;
30
- static Size = Size;
31
- warnSize() {
32
- if (this.props.suppressSizeWarning) {
33
- return;
34
- }
35
- warnSize();
18
+ var _excluded = ["className", "size", "color", "loading", "glyph", "width", "height", "suppressSizeWarning"];
19
+ var _warnSize = deprecate(function () {}, "`size`, `width` and `height` props are not recommended to use in Ring UI `Icon` component. The intrinsic sizes of SVG icon (`width` and `height` SVG attributes) are used instead.\n\nWe strongly recommend to use icons handcrafted for particular sizes. If your icon doesn't exist in the desired size, please ask your designer to draw one. \"Responsive\" checkmark should be unchecked when exporting icon.'");
20
+ var Icon = /*#__PURE__*/function (_PureComponent) {
21
+ function Icon() {
22
+ _classCallCheck(this, Icon);
23
+ return _callSuper(this, Icon, arguments);
36
24
  }
37
- getStyle() {
38
- const {
39
- size,
40
- width,
41
- height
42
- } = this.props;
43
- if (width || height) {
44
- this.warnSize();
45
- return {
46
- width,
47
- height
48
- };
25
+ _inherits(Icon, _PureComponent);
26
+ return _createClass(Icon, [{
27
+ key: "warnSize",
28
+ value: function warnSize() {
29
+ if (this.props.suppressSizeWarning) {
30
+ return;
31
+ }
32
+ _warnSize();
49
33
  }
50
- if (size) {
51
- this.warnSize();
52
- return {
53
- width: size,
54
- height: size
55
- };
34
+ }, {
35
+ key: "getStyle",
36
+ value: function getStyle() {
37
+ var _this$props = this.props,
38
+ size = _this$props.size,
39
+ width = _this$props.width,
40
+ height = _this$props.height;
41
+ if (width || height) {
42
+ this.warnSize();
43
+ return {
44
+ width,
45
+ height
46
+ };
47
+ }
48
+ if (size) {
49
+ this.warnSize();
50
+ return {
51
+ width: size,
52
+ height: size
53
+ };
54
+ }
55
+ return undefined;
56
56
  }
57
- return undefined;
58
- }
59
- render() {
60
- const {
61
- className,
62
- size,
63
- color,
64
- loading,
65
- glyph: Glyph,
66
- width,
67
- height,
68
- suppressSizeWarning,
69
- ...restProps
70
- } = this.props;
71
- if (!Glyph) {
72
- return null;
57
+ }, {
58
+ key: "render",
59
+ value: function render() {
60
+ var _this$props2 = this.props,
61
+ className = _this$props2.className;
62
+ _this$props2.size;
63
+ var color = _this$props2.color,
64
+ loading = _this$props2.loading,
65
+ Glyph = _this$props2.glyph;
66
+ _this$props2.width;
67
+ _this$props2.height;
68
+ _this$props2.suppressSizeWarning;
69
+ var restProps = _objectWithoutProperties(_this$props2, _excluded);
70
+ if (!Glyph) {
71
+ return null;
72
+ }
73
+ var classes = classNames(modules_29747b80.icon, {
74
+ [modules_29747b80[color]]: !!color,
75
+ [modules_29747b80.loading]: loading
76
+ }, className);
77
+ return /*#__PURE__*/React.createElement("span", _extends({}, restProps, {
78
+ className: classes
79
+ }), typeof Glyph === 'string' ? /*#__PURE__*/React.createElement(IconSVG, {
80
+ src: Glyph,
81
+ style: this.getStyle()
82
+ }) : /*#__PURE__*/React.createElement(Glyph, {
83
+ className: modules_29747b80.glyph,
84
+ style: this.getStyle()
85
+ }));
73
86
  }
74
- const classes = classNames(modules_29747b80.icon, {
75
- [modules_29747b80[color]]: !!color,
76
- [modules_29747b80.loading]: loading
77
- }, className);
78
- return /*#__PURE__*/React.createElement("span", _extends({}, restProps, {
79
- className: classes
80
- }), typeof Glyph === 'string' ? /*#__PURE__*/React.createElement(IconSVG, {
81
- src: Glyph,
82
- style: this.getStyle()
83
- }) : /*#__PURE__*/React.createElement(Glyph, {
84
- className: modules_29747b80.glyph,
85
- style: this.getStyle()
86
- }));
87
- }
88
- }
87
+ }]);
88
+ }(PureComponent);
89
+ _defineProperty(Icon, "propTypes", {
90
+ className: PropTypes.string,
91
+ color: PropTypes.string,
92
+ glyph: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]).isRequired,
93
+ height: PropTypes.number,
94
+ size: PropTypes.number,
95
+ width: PropTypes.number,
96
+ loading: PropTypes.bool,
97
+ suppressSizeWarning: PropTypes.bool
98
+ });
99
+ _defineProperty(Icon, "defaultProps", {
100
+ className: '',
101
+ color: Color.DEFAULT,
102
+ glyph: ''
103
+ });
104
+ _defineProperty(Icon, "Color", Color);
105
+ _defineProperty(Icon, "Size", Size);
89
106
 
90
107
  export { Color, Size, Icon as default };
@@ -1,6 +1,14 @@
1
1
  import '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.regexp.exec.js';
3
+ import 'core-js/modules/es.string.replace.js';
4
+ import 'core-js/modules/es.string.starts-with.js';
2
5
  import 'react';
3
6
  import 'classnames';
4
7
  import 'prop-types';
5
8
  import '../global/memoize.js';
6
9
  export { I as default } from '../_helpers/icon__svg.js';
10
+ import 'core-js/modules/es.array.iterator.js';
11
+ import 'core-js/modules/es.map.js';
12
+ import 'core-js/modules/es.object.to-string.js';
13
+ import 'core-js/modules/es.weak-map.js';
14
+ import 'core-js/modules/web.dom-collections.iterator.js';
@@ -6,4 +6,12 @@ import 'prop-types';
6
6
  import 'classnames';
7
7
  import 'util-deprecate';
8
8
  import '../_helpers/icon__svg.js';
9
+ import 'core-js/modules/es.regexp.exec.js';
10
+ import 'core-js/modules/es.string.replace.js';
11
+ import 'core-js/modules/es.string.starts-with.js';
9
12
  import '../global/memoize.js';
13
+ import 'core-js/modules/es.array.iterator.js';
14
+ import 'core-js/modules/es.map.js';
15
+ import 'core-js/modules/es.object.to-string.js';
16
+ import 'core-js/modules/es.weak-map.js';
17
+ import 'core-js/modules/web.dom-collections.iterator.js';
@@ -1,4 +1,6 @@
1
1
  import '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.concat.js';
3
+ import 'core-js/modules/es.object.values.js';
2
4
  import 'react';
3
5
  import 'prop-types';
4
6
  import 'classnames';
@@ -18,5 +20,16 @@ import '../_helpers/button__classes.js';
18
20
  import '../icon/icon__constants.js';
19
21
  import 'util-deprecate';
20
22
  import '../_helpers/icon__svg.js';
23
+ import 'core-js/modules/es.regexp.exec.js';
24
+ import 'core-js/modules/es.string.replace.js';
25
+ import 'core-js/modules/es.string.starts-with.js';
21
26
  import '../global/memoize.js';
27
+ import 'core-js/modules/es.array.iterator.js';
28
+ import 'core-js/modules/es.map.js';
29
+ import 'core-js/modules/es.object.to-string.js';
30
+ import 'core-js/modules/es.weak-map.js';
31
+ import 'core-js/modules/web.dom-collections.iterator.js';
32
+ import 'core-js/modules/es.regexp.to-string.js';
22
33
  import '../i18n/i18n.js';
34
+ import 'core-js/modules/es.set.js';
35
+ import 'core-js/modules/web.dom-collections.for-each.js';
@@ -1,38 +1,51 @@
1
- import React, { Component, createContext } from 'react';
1
+ import { _ as _defineProperty, a as _inherits, b as _createClass, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.concat.js';
3
+ import React, { createContext, Component } from 'react';
2
4
  import { interpolateLinear } from '../global/linear-function.js';
3
5
 
4
- const TITLE_RESIZE_END = 20;
5
- const TITLE_RESIZE_THRESHOLD = 36;
6
- const PhaseContext = /*#__PURE__*/createContext(null);
7
- const ScrollHandlerContext = /*#__PURE__*/createContext(null);
6
+ var TITLE_RESIZE_END = 20;
7
+ var TITLE_RESIZE_THRESHOLD = 36;
8
+ var PhaseContext = /*#__PURE__*/createContext(null);
9
+ var ScrollHandlerContext = /*#__PURE__*/createContext(null);
8
10
  function adaptiveIslandHOC(ComposedComponent) {
9
- return class AdaptiveIsland extends Component {
10
- static propTypes = ComposedComponent.propTypes;
11
- state = {
12
- phase: null
13
- };
14
- onContentScroll = _ref => {
15
- var _this$state$phase;
16
- let {
17
- scrollTop,
18
- scrollHeight,
19
- clientHeight
20
- } = _ref;
21
- if (scrollHeight - clientHeight >= interpolateLinear(TITLE_RESIZE_THRESHOLD, TITLE_RESIZE_END, (_this$state$phase = this.state.phase) !== null && _this$state$phase !== void 0 ? _this$state$phase : 0)) {
22
- const phase = Math.min(1, scrollTop / TITLE_RESIZE_END);
23
- this.setState({
24
- phase
25
- });
11
+ var _AdaptiveIsland;
12
+ return _AdaptiveIsland = /*#__PURE__*/function (_Component) {
13
+ function AdaptiveIsland() {
14
+ var _this;
15
+ _classCallCheck(this, AdaptiveIsland);
16
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17
+ args[_key] = arguments[_key];
26
18
  }
27
- };
28
- render() {
29
- return /*#__PURE__*/React.createElement(PhaseContext.Provider, {
30
- value: this.state.phase
31
- }, /*#__PURE__*/React.createElement(ScrollHandlerContext.Provider, {
32
- value: this.onContentScroll
33
- }, /*#__PURE__*/React.createElement(ComposedComponent, this.props)));
19
+ _this = _callSuper(this, AdaptiveIsland, [].concat(args));
20
+ _defineProperty(_this, "state", {
21
+ phase: null
22
+ });
23
+ _defineProperty(_this, "onContentScroll", function (_ref) {
24
+ var _this$state$phase;
25
+ var scrollTop = _ref.scrollTop,
26
+ scrollHeight = _ref.scrollHeight,
27
+ clientHeight = _ref.clientHeight;
28
+ if (scrollHeight - clientHeight >= interpolateLinear(TITLE_RESIZE_THRESHOLD, TITLE_RESIZE_END, (_this$state$phase = _this.state.phase) !== null && _this$state$phase !== void 0 ? _this$state$phase : 0)) {
29
+ var phase = Math.min(1, scrollTop / TITLE_RESIZE_END);
30
+ _this.setState({
31
+ phase
32
+ });
33
+ }
34
+ });
35
+ return _this;
34
36
  }
35
- };
37
+ _inherits(AdaptiveIsland, _Component);
38
+ return _createClass(AdaptiveIsland, [{
39
+ key: "render",
40
+ value: function render() {
41
+ return /*#__PURE__*/React.createElement(PhaseContext.Provider, {
42
+ value: this.state.phase
43
+ }, /*#__PURE__*/React.createElement(ScrollHandlerContext.Provider, {
44
+ value: this.onContentScroll
45
+ }, /*#__PURE__*/React.createElement(ComposedComponent, this.props)));
46
+ }
47
+ }]);
48
+ }(Component), _defineProperty(_AdaptiveIsland, "propTypes", ComposedComponent.propTypes), _AdaptiveIsland;
36
49
  }
37
50
 
38
51
  export { PhaseContext, ScrollHandlerContext, adaptiveIslandHOC as default };
@@ -1,4 +1,5 @@
1
- import { _ as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _inherits, b as _createClass, c as _objectWithoutProperties, e as _extends, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.concat.js';
2
3
  import React, { Component, forwardRef } from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import classNames from 'classnames';
@@ -8,125 +9,141 @@ import { m as modules_e6a056e1 } from '../_helpers/island.js';
8
9
  import { ScrollHandlerContext } from './adaptive-island-hoc.js';
9
10
  import '../global/linear-function.js';
10
11
 
11
- const scheduleScrollAction = scheduleRAF();
12
- const noop = () => {};
13
- const END_DISTANCE = 16;
14
- class Content extends Component {
15
- static propTypes = {
16
- children: PropTypes.node,
17
- className: PropTypes.string,
18
- scrollableWrapperClassName: PropTypes.string,
19
- fade: PropTypes.bool,
20
- bottomBorder: PropTypes.bool,
21
- onScroll: PropTypes.func,
22
- onScrollToBottom: PropTypes.func
23
- };
24
- static defaultProps = {
25
- fade: true,
26
- bottomBorder: false,
27
- onScroll: noop,
28
- onScrollToBottom: noop
29
- };
30
- state = {
31
- scrolledToTop: true,
32
- scrolledToBottom: false
33
- };
34
- componentWillUnmount() {
35
- this.scrollableNode = null;
36
- if (!this.wrapperNode) {
37
- return;
12
+ var _excluded = ["children", "className", "bottomBorder", "scrollableWrapperClassName", "onScroll", "onScrollToBottom", "fade"];
13
+ var scheduleScrollAction = scheduleRAF();
14
+ var noop = function noop() {};
15
+ var END_DISTANCE = 16;
16
+ var Content = /*#__PURE__*/function (_Component) {
17
+ function Content() {
18
+ var _this;
19
+ _classCallCheck(this, Content);
20
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21
+ args[_key] = arguments[_key];
38
22
  }
39
- this.resizeDetector.removeAllListeners(this.wrapperNode);
23
+ _this = _callSuper(this, Content, [].concat(args));
24
+ _defineProperty(_this, "state", {
25
+ scrolledToTop: true,
26
+ scrolledToBottom: false
27
+ });
28
+ _defineProperty(_this, "resizeDetector", createResizeDetector({
29
+ strategy: 'scroll'
30
+ }));
31
+ _defineProperty(_this, "wrapperNode", void 0);
32
+ _defineProperty(_this, "setWrapper", function (node) {
33
+ if (!node) {
34
+ return;
35
+ }
36
+ _this.wrapperNode = node;
37
+ _this.resizeDetector.listenTo(node, _this.calculateScrollPosition);
38
+ });
39
+ _defineProperty(_this, "calculateScrollPosition", function () {
40
+ return scheduleScrollAction(function () {
41
+ var _this2 = _this,
42
+ scrollableNode = _this2.scrollableNode;
43
+ if (!scrollableNode) {
44
+ return;
45
+ }
46
+ _this.props.onScroll(scrollableNode);
47
+ var scrollTop = scrollableNode.scrollTop,
48
+ scrollHeight = scrollableNode.scrollHeight,
49
+ offsetHeight = scrollableNode.offsetHeight;
50
+ var scrolledToTop = scrollTop === 0;
51
+ var scrolledToBottom = offsetHeight + scrollTop >= scrollHeight - END_DISTANCE;
52
+ if (scrolledToBottom) {
53
+ var _this$props$onScrollT, _this$props;
54
+ (_this$props$onScrollT = (_this$props = _this.props).onScrollToBottom) === null || _this$props$onScrollT === void 0 || _this$props$onScrollT.call(_this$props);
55
+ }
56
+ _this.setState({
57
+ scrolledToTop,
58
+ scrolledToBottom
59
+ });
60
+ });
61
+ });
62
+ _defineProperty(_this, "scrollableNode", void 0);
63
+ _defineProperty(_this, "setScrollableNodeAndCalculatePosition", function (node) {
64
+ if (!node) {
65
+ return;
66
+ }
67
+ _this.scrollableNode = node;
68
+ _this.calculateScrollPosition();
69
+ });
70
+ return _this;
40
71
  }
41
- resizeDetector = createResizeDetector({
42
- strategy: 'scroll'
43
- });
44
- wrapperNode;
45
- setWrapper = node => {
46
- if (!node) {
47
- return;
48
- }
49
- this.wrapperNode = node;
50
- this.resizeDetector.listenTo(node, this.calculateScrollPosition);
51
- };
52
- calculateScrollPosition = () => scheduleScrollAction(() => {
53
- const {
54
- scrollableNode
55
- } = this;
56
- if (!scrollableNode) {
57
- return;
72
+ _inherits(Content, _Component);
73
+ return _createClass(Content, [{
74
+ key: "componentWillUnmount",
75
+ value: function componentWillUnmount() {
76
+ this.scrollableNode = null;
77
+ if (!this.wrapperNode) {
78
+ return;
79
+ }
80
+ this.resizeDetector.removeAllListeners(this.wrapperNode);
58
81
  }
59
- this.props.onScroll(scrollableNode);
60
- const {
61
- scrollTop,
62
- scrollHeight,
63
- offsetHeight
64
- } = scrollableNode;
65
- const scrolledToTop = scrollTop === 0;
66
- const scrolledToBottom = offsetHeight + scrollTop >= scrollHeight - END_DISTANCE;
67
- if (scrolledToBottom) {
68
- this.props.onScrollToBottom?.();
82
+ }, {
83
+ key: "render",
84
+ value: function render() {
85
+ var _this$props2 = this.props,
86
+ children = _this$props2.children,
87
+ className = _this$props2.className,
88
+ bottomBorder = _this$props2.bottomBorder,
89
+ scrollableWrapperClassName = _this$props2.scrollableWrapperClassName;
90
+ _this$props2.onScroll;
91
+ _this$props2.onScrollToBottom;
92
+ var fade = _this$props2.fade,
93
+ restProps = _objectWithoutProperties(_this$props2, _excluded);
94
+ var _this$state = this.state,
95
+ scrolledToTop = _this$state.scrolledToTop,
96
+ scrolledToBottom = _this$state.scrolledToBottom;
97
+ var classes = classNames(modules_e6a056e1.content, className, {
98
+ [modules_e6a056e1.contentWithTopFade]: fade && !scrolledToTop,
99
+ [modules_e6a056e1.contentWithBottomFade]: fade && !scrolledToBottom,
100
+ [modules_e6a056e1.withTransparentBottomBorder]: bottomBorder,
101
+ [modules_e6a056e1.withBottomBorder]: bottomBorder && !scrolledToBottom
102
+ });
103
+ var scrollableWrapperClasses = classNames(modules_e6a056e1.scrollableWrapper, scrollableWrapperClassName);
104
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
105
+ "data-test": "ring-island-content",
106
+ className: classes
107
+ }), /*#__PURE__*/React.createElement("div", {
108
+ // it has to be focusable because it can be scrollable
109
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
110
+ tabIndex: 0,
111
+ "data-scrollable-container": true,
112
+ className: scrollableWrapperClasses,
113
+ ref: this.setScrollableNodeAndCalculatePosition,
114
+ onScroll: fade ? this.calculateScrollPosition : noop
115
+ }, fade && /*#__PURE__*/React.createElement("div", {
116
+ ref: this.setWrapper
117
+ }, children), !fade && children));
69
118
  }
70
- this.setState({
71
- scrolledToTop,
72
- scrolledToBottom
73
- });
74
- });
75
- scrollableNode;
76
- setScrollableNodeAndCalculatePosition = node => {
77
- if (!node) {
78
- return;
79
- }
80
- this.scrollableNode = node;
81
- this.calculateScrollPosition();
82
- };
83
- render() {
84
- const {
85
- children,
86
- className,
87
- bottomBorder,
88
- scrollableWrapperClassName,
119
+ }]);
120
+ }(Component);
121
+ _defineProperty(Content, "propTypes", {
122
+ children: PropTypes.node,
123
+ className: PropTypes.string,
124
+ scrollableWrapperClassName: PropTypes.string,
125
+ fade: PropTypes.bool,
126
+ bottomBorder: PropTypes.bool,
127
+ onScroll: PropTypes.func,
128
+ onScrollToBottom: PropTypes.func
129
+ });
130
+ _defineProperty(Content, "defaultProps", {
131
+ fade: true,
132
+ bottomBorder: false,
133
+ onScroll: noop,
134
+ onScrollToBottom: noop
135
+ });
136
+ var ContentWrapper = /*#__PURE__*/forwardRef(function (props, ref) {
137
+ return /*#__PURE__*/React.createElement(ScrollHandlerContext.Consumer, null, function (onScroll) {
138
+ var addProps = onScroll != null ? {
89
139
  onScroll,
90
- onScrollToBottom,
91
- fade,
92
- ...restProps
93
- } = this.props;
94
- const {
95
- scrolledToTop,
96
- scrolledToBottom
97
- } = this.state;
98
- const classes = classNames(modules_e6a056e1.content, className, {
99
- [modules_e6a056e1.contentWithTopFade]: fade && !scrolledToTop,
100
- [modules_e6a056e1.contentWithBottomFade]: fade && !scrolledToBottom,
101
- [modules_e6a056e1.withTransparentBottomBorder]: bottomBorder,
102
- [modules_e6a056e1.withBottomBorder]: bottomBorder && !scrolledToBottom
103
- });
104
- const scrollableWrapperClasses = classNames(modules_e6a056e1.scrollableWrapper, scrollableWrapperClassName);
105
- return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
106
- "data-test": "ring-island-content",
107
- className: classes
108
- }), /*#__PURE__*/React.createElement("div", {
109
- // it has to be focusable because it can be scrollable
110
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
111
- tabIndex: 0,
112
- "data-scrollable-container": true,
113
- className: scrollableWrapperClasses,
114
- ref: this.setScrollableNodeAndCalculatePosition,
115
- onScroll: fade ? this.calculateScrollPosition : noop
116
- }, fade && /*#__PURE__*/React.createElement("div", {
117
- ref: this.setWrapper
118
- }, children), !fade && children));
119
- }
120
- }
121
- const ContentWrapper = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScrollHandlerContext.Consumer, null, onScroll => {
122
- const addProps = onScroll != null ? {
123
- onScroll,
124
- bottomBorder: true
125
- } : {};
126
- return /*#__PURE__*/React.createElement(Content, _extends({}, props, addProps, {
127
- ref: ref
128
- }));
129
- }));
140
+ bottomBorder: true
141
+ } : {};
142
+ return /*#__PURE__*/React.createElement(Content, _extends({}, props, addProps, {
143
+ ref: ref
144
+ }));
145
+ });
146
+ });
130
147
  ContentWrapper.displayName = 'ContentWrapper';
131
148
 
132
149
  export { ContentWrapper as default };