@jetbrains/ring-ui 4.2.9 → 4.2.10

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 (315) hide show
  1. package/dist/_helpers/_rollupPluginBabelHelpers.js +34 -0
  2. package/dist/_helpers/anchor.js +33 -0
  3. package/dist/_helpers/badge.js +3 -0
  4. package/dist/_helpers/button-group.js +3 -0
  5. package/dist/_helpers/button-set.js +3 -0
  6. package/dist/_helpers/button-toolbar.js +3 -0
  7. package/dist/_helpers/button__classes.js +39 -0
  8. package/dist/_helpers/card.js +75 -0
  9. package/dist/_helpers/checkbox.js +3 -0
  10. package/dist/_helpers/date-picker.js +3 -0
  11. package/dist/_helpers/dialog__body-scroll-preventer.js +58 -0
  12. package/dist/_helpers/error-message.js +3 -0
  13. package/dist/_helpers/footer.js +121 -0
  14. package/dist/_helpers/grid.js +3 -0
  15. package/dist/_helpers/group.js +3 -0
  16. package/dist/_helpers/header.js +3 -0
  17. package/dist/_helpers/icon.js +3 -0
  18. package/dist/_helpers/inject-styles.js +22 -0
  19. package/dist/_helpers/input.js +3 -0
  20. package/dist/_helpers/island.js +3 -0
  21. package/dist/_helpers/link.js +3 -0
  22. package/dist/_helpers/list.js +3 -0
  23. package/dist/_helpers/loader-screen.js +3 -0
  24. package/dist/_helpers/panel.js +3 -0
  25. package/dist/_helpers/query-assist__suggestions.js +95 -0
  26. package/dist/_helpers/radio.js +3 -0
  27. package/dist/_helpers/select__filter.js +77 -0
  28. package/dist/_helpers/services-link.js +40 -0
  29. package/dist/_helpers/sidebar.js +126 -0
  30. package/dist/_helpers/table.js +3 -0
  31. package/dist/_helpers/tabs.js +3 -0
  32. package/dist/_helpers/title.js +100 -0
  33. package/dist/alert/alert.js +262 -0
  34. package/dist/alert/container.js +48 -0
  35. package/dist/alert-service/alert-service.js +173 -0
  36. package/dist/analytics/analytics.js +118 -0
  37. package/dist/analytics/analytics__custom-plugin.js +128 -0
  38. package/dist/analytics/analytics__fus-plugin.js +102 -0
  39. package/dist/analytics/analytics__ga-plugin.js +75 -0
  40. package/dist/analytics/analytics__plugin-utils.js +80 -0
  41. package/dist/analytics-ng/analytics-ng.js +95 -0
  42. package/dist/auth/auth.js +96 -0
  43. package/dist/auth/auth__core.js +1065 -0
  44. package/dist/auth/background-flow.js +123 -0
  45. package/dist/auth/down-notification.js +117 -0
  46. package/dist/auth/iframe-flow.js +153 -0
  47. package/dist/auth/landing-entry.js +5 -0
  48. package/dist/auth/landing.js +90 -0
  49. package/dist/auth/request-builder.js +76 -0
  50. package/dist/auth/response-parser.js +118 -0
  51. package/dist/auth/storage.js +283 -0
  52. package/dist/auth/token-validator.js +180 -0
  53. package/dist/auth/window-flow.js +134 -0
  54. package/dist/auth-dialog/auth-dialog.js +180 -0
  55. package/dist/auth-dialog-service/auth-dialog-service.js +71 -0
  56. package/dist/auth-ng/auth-ng.js +206 -0
  57. package/dist/auth-ng/auth-ng.mock.js +33 -0
  58. package/dist/autofocus-ng/autofocus-ng.js +51 -0
  59. package/dist/avatar/avatar-example-datauri.js +4 -0
  60. package/dist/avatar/avatar.js +163 -0
  61. package/dist/avatar/fallback-avatar.js +142 -0
  62. package/dist/avatar-editor-ng/avatar-editor-ng.js +167 -0
  63. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +3 -0
  64. package/dist/avatar-ng/avatar-ng.js +21 -0
  65. package/dist/badge/badge.js +51 -0
  66. package/dist/badge-ng/badge-ng.js +18 -0
  67. package/dist/breadcrumb-ng/breadcrumb-ng.js +37 -0
  68. package/dist/button/button.js +125 -0
  69. package/dist/button/button__classes.js +5 -0
  70. package/dist/button-group/button-group.js +30 -0
  71. package/dist/button-group/caption.js +24 -0
  72. package/dist/button-group-ng/button-group-ng.js +39 -0
  73. package/dist/button-ng/button-ng.js +217 -0
  74. package/dist/button-set/button-set.js +26 -0
  75. package/dist/button-set-ng/button-set-ng.js +19 -0
  76. package/dist/button-toolbar/button-toolbar.js +29 -0
  77. package/dist/button-toolbar-ng/button-toolbar-ng.js +24 -0
  78. package/dist/caret/caret.js +266 -0
  79. package/dist/checkbox/checkbox.js +110 -0
  80. package/dist/checkbox-ng/checkbox-ng.js +38 -0
  81. package/dist/code/code.js +137 -0
  82. package/dist/compiler-ng/compiler-ng.js +53 -0
  83. package/dist/confirm/confirm.js +127 -0
  84. package/dist/confirm-ng/confirm-ng.js +69 -0
  85. package/dist/confirm-service/confirm-service.js +117 -0
  86. package/dist/content-layout/content-layout.js +66 -0
  87. package/dist/content-layout/sidebar.js +7 -0
  88. package/dist/contenteditable/contenteditable.js +78 -0
  89. package/dist/data-list/data-list.js +208 -0
  90. package/dist/data-list/data-list.mock.js +191 -0
  91. package/dist/data-list/item.js +229 -0
  92. package/dist/data-list/selection.js +102 -0
  93. package/dist/data-list/title.js +20 -0
  94. package/dist/data-list-ng/data-list-ng.js +62 -0
  95. package/dist/date-picker/consts.js +69 -0
  96. package/dist/date-picker/date-input.js +175 -0
  97. package/dist/date-picker/date-picker.js +367 -0
  98. package/dist/date-picker/date-popup.js +483 -0
  99. package/dist/date-picker/day.js +120 -0
  100. package/dist/date-picker/formats.js +3 -0
  101. package/dist/date-picker/month-names.js +100 -0
  102. package/dist/date-picker/month-slider.js +84 -0
  103. package/dist/date-picker/month.js +55 -0
  104. package/dist/date-picker/months.js +122 -0
  105. package/dist/date-picker/weekdays.js +32 -0
  106. package/dist/date-picker/years.js +110 -0
  107. package/dist/dialog/dialog.js +205 -0
  108. package/dist/dialog/dialog__body-scroll-preventer.js +3 -0
  109. package/dist/dialog-ng/dialog-ng.js +604 -0
  110. package/dist/dialog-ng/dialog-ng__template.js +3 -0
  111. package/dist/docked-panel-ng/docked-panel-ng.js +171 -0
  112. package/dist/dropdown/anchor.js +19 -0
  113. package/dist/dropdown/dropdown.js +236 -0
  114. package/dist/dropdown-menu/dropdown-menu.js +177 -0
  115. package/dist/error-bubble/error-bubble.js +59 -0
  116. package/dist/error-message/error-message.js +57 -0
  117. package/dist/error-message-ng/error-message-ng.js +35 -0
  118. package/dist/footer/footer.js +12 -0
  119. package/dist/footer-ng/footer-ng.js +64 -0
  120. package/dist/form-ng/form-ng.js +167 -0
  121. package/dist/global/angular-component-factory.js +84 -0
  122. package/dist/global/compose.js +9 -0
  123. package/dist/global/composeRefs.js +15 -0
  124. package/dist/global/conic-gradient.js +35 -0
  125. package/dist/global/create-stateful-context.js +55 -0
  126. package/dist/global/data-tests.js +24 -0
  127. package/dist/global/dom.js +125 -0
  128. package/dist/global/focus-sensor-hoc.js +146 -0
  129. package/dist/global/fuzzy-highlight.js +67 -0
  130. package/dist/global/get-event-key.js +111 -0
  131. package/dist/global/get-uid.js +15 -0
  132. package/dist/global/inject-styles.js +15 -0
  133. package/dist/global/linear-function.js +17 -0
  134. package/dist/global/listeners.js +44 -0
  135. package/dist/global/memoize.js +20 -0
  136. package/dist/global/normalize-indent.js +30 -0
  137. package/dist/global/promise-with-timeout.js +17 -0
  138. package/dist/global/radial-gradient-mask.js +38 -0
  139. package/dist/global/react-dom-renderer.js +46 -0
  140. package/dist/global/react-render-adapter.js +41 -0
  141. package/dist/global/rerender-hoc.js +55 -0
  142. package/dist/global/ring-angular-component.js +24 -0
  143. package/dist/global/schedule-raf.js +31 -0
  144. package/dist/global/sniffer.js +6 -0
  145. package/dist/global/supports-css.js +22 -0
  146. package/dist/global/theme.js +54 -0
  147. package/dist/global/trivial-template-tag.js +17 -0
  148. package/dist/global/url.js +165 -0
  149. package/dist/global/variables_dark.js +57 -0
  150. package/dist/grid/col.js +60 -0
  151. package/dist/grid/grid.js +33 -0
  152. package/dist/grid/row.js +64 -0
  153. package/dist/group/group.js +31 -0
  154. package/dist/group-ng/group-ng.js +11 -0
  155. package/dist/header/header.js +150 -0
  156. package/dist/header/logo.js +40 -0
  157. package/dist/header/profile.js +219 -0
  158. package/dist/header/services-link.js +12 -0
  159. package/dist/header/services.js +138 -0
  160. package/dist/header/smart-profile.js +233 -0
  161. package/dist/header/smart-services.js +163 -0
  162. package/dist/header/tray-icon.js +47 -0
  163. package/dist/header/tray.js +31 -0
  164. package/dist/heading/heading.js +73 -0
  165. package/dist/http/http.js +218 -0
  166. package/dist/http/http.mock.js +67 -0
  167. package/dist/hub-source/hub-source.js +130 -0
  168. package/dist/hub-source/hub-source__user.js +30 -0
  169. package/dist/hub-source/hub-source__users-groups.js +63 -0
  170. package/dist/icon/icon.js +105 -0
  171. package/dist/icon/icon__constants.js +33 -0
  172. package/dist/icon/icon__svg.js +83 -0
  173. package/dist/icon/index.js +12 -0
  174. package/dist/icon-ng/icon-ng.js +91 -0
  175. package/dist/input/input.js +230 -0
  176. package/dist/input-ng/input-ng.js +111 -0
  177. package/dist/island/adaptive-island-hoc.js +48 -0
  178. package/dist/island/content.js +160 -0
  179. package/dist/island/header.js +84 -0
  180. package/dist/island/island.js +51 -0
  181. package/dist/island-legacy/content-legacy.js +26 -0
  182. package/dist/island-legacy/header-legacy.js +28 -0
  183. package/dist/island-legacy/island-legacy.js +28 -0
  184. package/dist/island-ng/island-content-ng.js +42 -0
  185. package/dist/island-ng/island-header-ng.js +26 -0
  186. package/dist/island-ng/island-ng-class-fixer.js +11 -0
  187. package/dist/island-ng/island-ng.js +25 -0
  188. package/dist/link/clickableLink.js +64 -0
  189. package/dist/link/link.js +115 -0
  190. package/dist/link-ng/link-ng.js +22 -0
  191. package/dist/list/consts.js +26 -0
  192. package/dist/list/list.js +822 -0
  193. package/dist/list/list__custom.js +86 -0
  194. package/dist/list/list__hint.js +26 -0
  195. package/dist/list/list__item.js +206 -0
  196. package/dist/list/list__link.js +65 -0
  197. package/dist/list/list__separator.js +30 -0
  198. package/dist/list/list__title.js +39 -0
  199. package/dist/list/list__users-groups-source.js +130 -0
  200. package/dist/loader/loader.js +71 -0
  201. package/dist/loader/loader__core.js +273 -0
  202. package/dist/loader-inline/inject-styles.js +13 -0
  203. package/dist/loader-inline/loader-inline.js +58 -0
  204. package/dist/loader-inline-ng/loader-inline-ng.js +44 -0
  205. package/dist/loader-ng/loader-ng.js +44 -0
  206. package/dist/loader-screen/loader-screen.js +44 -0
  207. package/dist/loader-screen-ng/loader-screen-ng.js +95 -0
  208. package/dist/login-dialog/login-dialog.js +188 -0
  209. package/dist/login-dialog/service.js +72 -0
  210. package/dist/markdown/code.js +31 -0
  211. package/dist/markdown/heading.js +23 -0
  212. package/dist/markdown/link.js +31 -0
  213. package/dist/markdown/markdown.js +74 -0
  214. package/dist/message/message.js +235 -0
  215. package/dist/message-bundle-ng/message-bundle-ng.js +111 -0
  216. package/dist/old-browsers-message/old-browsers-message.js +101 -0
  217. package/dist/old-browsers-message/old-browsers-message__stop.js +5 -0
  218. package/dist/old-browsers-message/white-list.js +34 -0
  219. package/dist/pager/pager.js +365 -0
  220. package/dist/pager-ng/pager-ng.js +100 -0
  221. package/dist/panel/panel.js +31 -0
  222. package/dist/panel-ng/panel-ng.js +17 -0
  223. package/dist/permissions/permissions.js +200 -0
  224. package/dist/permissions/permissions__cache.js +272 -0
  225. package/dist/permissions-ng/permissions-ng.js +277 -0
  226. package/dist/place-under-ng/place-under-ng.js +158 -0
  227. package/dist/popup/popup.consts.js +41 -0
  228. package/dist/popup/popup.js +396 -0
  229. package/dist/popup/popup.target.js +26 -0
  230. package/dist/popup/position.js +280 -0
  231. package/dist/popup-menu/popup-menu.js +117 -0
  232. package/dist/progress-bar/progress-bar.js +114 -0
  233. package/dist/progress-bar-ng/progress-bar-ng.js +17 -0
  234. package/dist/promised-click-ng/promised-click-ng.js +128 -0
  235. package/dist/proxy-attrs/proxy-attrs.js +21 -0
  236. package/dist/query-assist/query-assist.js +1096 -0
  237. package/dist/query-assist/query-assist__suggestions.js +49 -0
  238. package/dist/query-assist-ng/query-assist-ng.js +86 -0
  239. package/dist/radio/radio.js +42 -0
  240. package/dist/radio/radio__item.js +78 -0
  241. package/dist/radio-ng/radio-ng.js +47 -0
  242. package/dist/save-field-ng/save-field-ng.js +337 -0
  243. package/dist/save-field-ng/save-field-ng__template.js +3 -0
  244. package/dist/select/select.js +1357 -0
  245. package/dist/select/select__filter.js +56 -0
  246. package/dist/select/select__popup.js +553 -0
  247. package/dist/select-ng/select-ng.js +637 -0
  248. package/dist/select-ng/select-ng__lazy.js +169 -0
  249. package/dist/select-ng/select-ng__options.js +145 -0
  250. package/dist/shortcuts/core.js +245 -0
  251. package/dist/shortcuts/shortcut-title.js +51 -0
  252. package/dist/shortcuts/shortcuts-hoc.js +42 -0
  253. package/dist/shortcuts/shortcuts.js +72 -0
  254. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +123 -0
  255. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +3 -0
  256. package/dist/shortcuts-ng/shortcuts-ng.js +262 -0
  257. package/dist/sidebar-ng/sidebar-ng.js +113 -0
  258. package/dist/sidebar-ng/sidebar-ng__button-template.js +3 -0
  259. package/dist/sidebar-ng/sidebar-ng__template.js +3 -0
  260. package/dist/storage/storage.js +59 -0
  261. package/dist/storage/storage__fallback.js +215 -0
  262. package/dist/storage/storage__local.js +154 -0
  263. package/dist/style.css +1 -0
  264. package/dist/tab-trap/tab-trap.js +177 -0
  265. package/dist/table/cell.js +26 -0
  266. package/dist/table/disable-hover-hoc.js +54 -0
  267. package/dist/table/header-cell.js +92 -0
  268. package/dist/table/header.js +193 -0
  269. package/dist/table/multitable.js +141 -0
  270. package/dist/table/row-with-focus-sensor.js +83 -0
  271. package/dist/table/row.js +278 -0
  272. package/dist/table/selection-adapter.js +16 -0
  273. package/dist/table/selection-shortcuts-hoc.js +215 -0
  274. package/dist/table/selection.js +223 -0
  275. package/dist/table/smart-table.js +125 -0
  276. package/dist/table/table.js +409 -0
  277. package/dist/table-legacy-ng/table-legacy-ng.js +468 -0
  278. package/dist/table-legacy-ng/table-legacy-ng__pager.js +120 -0
  279. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +123 -0
  280. package/dist/table-legacy-ng/table-legacy-ng__selection.js +179 -0
  281. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +57 -0
  282. package/dist/table-ng/smart-table-ng.js +68 -0
  283. package/dist/table-ng/table-ng.js +67 -0
  284. package/dist/tabs/collapsible-more.js +198 -0
  285. package/dist/tabs/collapsible-tab.js +91 -0
  286. package/dist/tabs/collapsible-tabs.js +362 -0
  287. package/dist/tabs/custom-item.js +13 -0
  288. package/dist/tabs/dumb-tabs.js +164 -0
  289. package/dist/tabs/smart-tabs.js +106 -0
  290. package/dist/tabs/tab-link.js +42 -0
  291. package/dist/tabs/tab.js +33 -0
  292. package/dist/tabs/tabs.js +71 -0
  293. package/dist/tabs-ng/tabs-ng.js +194 -0
  294. package/dist/tabs-ng/tabs-ng__template.js +3 -0
  295. package/dist/tag/tag.js +197 -0
  296. package/dist/tags-input/tags-input.js +482 -0
  297. package/dist/tags-input-ng/tags-input-ng.js +93 -0
  298. package/dist/tags-list/tags-list.js +95 -0
  299. package/dist/template-ng/template-ng.js +71 -0
  300. package/dist/text/text.js +36 -0
  301. package/dist/theme-ng/theme-ng.js +45 -0
  302. package/dist/title-ng/title-ng.js +114 -0
  303. package/dist/toggle/toggle.js +78 -0
  304. package/dist/toggle-ng/toggle-ng.js +18 -0
  305. package/dist/tooltip/tooltip.js +209 -0
  306. package/dist/tooltip-ng/tooltip-ng.js +104 -0
  307. package/dist/user-agreement/service.js +412 -0
  308. package/dist/user-agreement/toolbox.eula.js +3 -0
  309. package/dist/user-agreement/user-agreement.js +169 -0
  310. package/dist/user-card/card.js +19 -0
  311. package/dist/user-card/smart-user-card-tooltip.js +114 -0
  312. package/dist/user-card/tooltip.js +95 -0
  313. package/dist/user-card/user-card.js +51 -0
  314. package/dist/user-card-ng/user-card-ng.js +62 -0
  315. package/package.json +2 -2
@@ -0,0 +1,160 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
+ import React, { Component, forwardRef } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import classNames from 'classnames';
6
+ import createResizeDetector from 'element-resize-detector';
7
+ import scheduleRAF from '../global/schedule-raf.js';
8
+ import { m as modules_e6a056e1 } from '../_helpers/island.js';
9
+ import { ScrollHandlerContext } from './adaptive-island-hoc.js';
10
+ import '../global/linear-function.js';
11
+
12
+ const scheduleScrollAction = scheduleRAF();
13
+
14
+ const noop = () => {};
15
+
16
+ const END_DISTANCE = 16;
17
+
18
+ class Content extends Component {
19
+ constructor() {
20
+ super(...arguments);
21
+
22
+ _defineProperty(this, "state", {
23
+ scrolledToTop: true,
24
+ scrolledToBottom: false
25
+ });
26
+
27
+ _defineProperty(this, "resizeDetector", createResizeDetector({
28
+ strategy: 'scroll'
29
+ }));
30
+
31
+ _defineProperty(this, "setWrapper", node => {
32
+ if (!node) {
33
+ return;
34
+ }
35
+
36
+ this.wrapperNode = node;
37
+ this.resizeDetector.listenTo(node, this.calculateScrollPosition);
38
+ });
39
+
40
+ _defineProperty(this, "calculateScrollPosition", () => scheduleScrollAction(() => {
41
+ const {
42
+ scrollableNode
43
+ } = this;
44
+
45
+ if (!scrollableNode) {
46
+ return;
47
+ }
48
+
49
+ const {
50
+ scrollTop,
51
+ scrollHeight,
52
+ offsetHeight
53
+ } = scrollableNode;
54
+ const scrolledToTop = scrollTop === 0;
55
+ const scrolledToBottom = offsetHeight + scrollTop >= scrollHeight - END_DISTANCE;
56
+
57
+ if (scrolledToBottom) {
58
+ this.props.onScrollToBottom();
59
+ }
60
+
61
+ this.setState({
62
+ scrolledToTop,
63
+ scrolledToBottom
64
+ });
65
+ }));
66
+
67
+ _defineProperty(this, "onScroll", () => {
68
+ this.props.onScroll(this.scrollableNode);
69
+ this.calculateScrollPosition();
70
+ });
71
+
72
+ _defineProperty(this, "setScrollableNodeAndCalculatePosition", node => {
73
+ if (!node) {
74
+ return;
75
+ }
76
+
77
+ this.scrollableNode = node;
78
+ this.calculateScrollPosition();
79
+ });
80
+ }
81
+
82
+ componentWillUnmount() {
83
+ this.scrollableNode = null;
84
+
85
+ if (!this.wrapperNode) {
86
+ return;
87
+ }
88
+
89
+ this.resizeDetector.removeAllListeners(this.wrapperNode);
90
+ }
91
+
92
+ render() {
93
+ const {
94
+ children,
95
+ className,
96
+ bottomBorder,
97
+ scrollableWrapperClassName,
98
+ onScroll,
99
+ onScrollToBottom,
100
+ fade,
101
+ ...restProps
102
+ } = this.props;
103
+ const {
104
+ scrolledToTop,
105
+ scrolledToBottom
106
+ } = this.state;
107
+ const classes = classNames(modules_e6a056e1.content, className, {
108
+ [modules_e6a056e1.contentWithTopFade]: fade && !scrolledToTop,
109
+ [modules_e6a056e1.contentWithBottomFade]: fade && !scrolledToBottom,
110
+ [modules_e6a056e1.withTransparentBottomBorder]: bottomBorder,
111
+ [modules_e6a056e1.withBottomBorder]: bottomBorder && !scrolledToBottom
112
+ });
113
+ const scrollableWrapperClasses = classNames(modules_e6a056e1.scrollableWrapper, scrollableWrapperClassName);
114
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
115
+ "data-test": "ring-island-content",
116
+ className: classes
117
+ }), /*#__PURE__*/React.createElement("div", {
118
+ // it has to be focusable because it can be scrollable
119
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
120
+ tabIndex: 0,
121
+ "data-scrollable-container": true,
122
+ className: scrollableWrapperClasses,
123
+ ref: this.setScrollableNodeAndCalculatePosition,
124
+ onScroll: fade ? this.onScroll : noop
125
+ }, fade && /*#__PURE__*/React.createElement("div", {
126
+ ref: this.setWrapper
127
+ }, children), !fade && children));
128
+ }
129
+
130
+ }
131
+
132
+ _defineProperty(Content, "propTypes", {
133
+ children: PropTypes.node,
134
+ className: PropTypes.string,
135
+ scrollableWrapperClassName: PropTypes.string,
136
+ fade: PropTypes.bool,
137
+ bottomBorder: PropTypes.bool,
138
+ onScroll: PropTypes.func,
139
+ onScrollToBottom: PropTypes.func
140
+ });
141
+
142
+ _defineProperty(Content, "defaultProps", {
143
+ fade: true,
144
+ bottomBorder: false,
145
+ onScroll: noop,
146
+ onScrollToBottom: noop
147
+ });
148
+
149
+ const ContentWrapper = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScrollHandlerContext.Consumer, null, onScroll => {
150
+ const addProps = onScroll != null ? {
151
+ onScroll,
152
+ bottomBorder: true
153
+ } : {};
154
+ return /*#__PURE__*/React.createElement(Content, _extends({}, props, addProps, {
155
+ ref: ref
156
+ }));
157
+ }));
158
+ ContentWrapper.displayName = 'ContentWrapper';
159
+
160
+ export { ContentWrapper as default };
@@ -0,0 +1,84 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { Component } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+ import { interpolateLinear } from '../global/linear-function.js';
6
+ import { m as modules_e6a056e1 } from '../_helpers/island.js';
7
+ import { PhaseContext } from './adaptive-island-hoc.js';
8
+ import 'core-js/modules/web.dom-collections.iterator.js';
9
+
10
+ const Start = {
11
+ FONT_SIZE: 24,
12
+ LINE_HEIGHT: 28,
13
+ PADDING: 16
14
+ };
15
+ const End = {
16
+ FONT_SIZE: 13,
17
+ LINE_HEIGHT: 28,
18
+ // Compensation
19
+ X: 0.4,
20
+ Y: 0.1,
21
+ SPACING: 1.09
22
+ };
23
+ const BORDER_APPEAR_PHASE = 0.5;
24
+
25
+ class Header extends Component {
26
+ style(name) {
27
+ return interpolateLinear(Start[name] || 0, End[name] || 0, this.props.phase);
28
+ }
29
+
30
+ render() {
31
+ const {
32
+ children,
33
+ className,
34
+ wrapWithTitle,
35
+ border,
36
+ phase,
37
+ ...restProps
38
+ } = this.props;
39
+ const classes = classNames(modules_e6a056e1.header, className, {
40
+ [modules_e6a056e1.withBottomBorder]: border || phase >= BORDER_APPEAR_PHASE
41
+ });
42
+ const headerStyle = phase != null ? {
43
+ lineHeight: "".concat(this.style('LINE_HEIGHT'), "px"),
44
+ // need to append px because number is a valid line-height value
45
+ paddingTop: this.style('PADDING')
46
+ } : null;
47
+ const scaleFont = phase != null && this.style('FONT_SIZE') / Start.FONT_SIZE;
48
+ const titleStyle = phase != null && phase < 1 ? {
49
+ fontSize: Start.FONT_SIZE,
50
+ transform: "translate(".concat(this.style('X'), "px, ").concat(this.style('Y'), "px) scale(").concat(scaleFont, ")"),
51
+ letterSpacing: this.style('SPACING')
52
+ } : null;
53
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
54
+ "data-test": "ring-island-header",
55
+ className: classes,
56
+ style: headerStyle
57
+ }), wrapWithTitle && /*#__PURE__*/React.createElement("h2", {
58
+ className: modules_e6a056e1.title,
59
+ style: titleStyle
60
+ }, children), !wrapWithTitle && children);
61
+ }
62
+
63
+ }
64
+
65
+ _defineProperty(Header, "propTypes", {
66
+ children: PropTypes.node,
67
+ className: PropTypes.string,
68
+ border: PropTypes.bool,
69
+ wrapWithTitle: PropTypes.bool,
70
+ phase: PropTypes.number
71
+ });
72
+
73
+ _defineProperty(Header, "defaultProps", {
74
+ wrapWithTitle: true
75
+ });
76
+
77
+ const HeaderWrapper = props => /*#__PURE__*/React.createElement(PhaseContext.Consumer, null, phase => {
78
+ const addProps = phase != null ? {
79
+ phase
80
+ } : {};
81
+ return /*#__PURE__*/React.createElement(Header, _extends({}, props, addProps));
82
+ });
83
+
84
+ export { HeaderWrapper as default };
@@ -0,0 +1,51 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { Component } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+ import joinDataTestAttributes from '../global/data-tests.js';
6
+ import adaptiveIslandHOC from './adaptive-island-hoc.js';
7
+ import { m as modules_e6a056e1 } from '../_helpers/island.js';
8
+ export { default as Header } from './header.js';
9
+ export { default as Content } from './content.js';
10
+ import 'core-js/modules/web.dom-collections.iterator.js';
11
+ import '../global/linear-function.js';
12
+ import 'element-resize-detector';
13
+ import '../global/schedule-raf.js';
14
+
15
+ /**
16
+ * @name Island
17
+ */
18
+
19
+ class Island extends Component {
20
+ render() {
21
+ const {
22
+ children,
23
+ className,
24
+ narrow,
25
+ withoutPaddings,
26
+ 'data-test': dataTest,
27
+ ...restProps
28
+ } = this.props;
29
+ const classes = classNames(modules_e6a056e1.island, className, {
30
+ [modules_e6a056e1.narrowIsland]: narrow,
31
+ [modules_e6a056e1.withoutPaddings]: withoutPaddings
32
+ });
33
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
34
+ className: classes,
35
+ "data-test": joinDataTestAttributes('ring-island', dataTest)
36
+ }), children);
37
+ }
38
+
39
+ }
40
+
41
+ _defineProperty(Island, "propTypes", {
42
+ children: PropTypes.node,
43
+ className: PropTypes.string,
44
+ narrow: PropTypes.bool,
45
+ withoutPaddings: PropTypes.bool,
46
+ 'data-test': PropTypes.string
47
+ });
48
+
49
+ const AdaptiveIsland = adaptiveIslandHOC(Island);
50
+
51
+ export { AdaptiveIsland, Island as default };
@@ -0,0 +1,26 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { PureComponent } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+
6
+ class Content extends PureComponent {
7
+ render() {
8
+ const {
9
+ children,
10
+ className,
11
+ ...restProps
12
+ } = this.props;
13
+ const classes = classNames('ring-island__content', className);
14
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
15
+ className: classes
16
+ }), children);
17
+ }
18
+
19
+ }
20
+
21
+ _defineProperty(Content, "propTypes", {
22
+ className: PropTypes.string,
23
+ children: PropTypes.node
24
+ });
25
+
26
+ export { Content as default };
@@ -0,0 +1,28 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { PureComponent } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+
6
+ class Header extends PureComponent {
7
+ render() {
8
+ const {
9
+ children,
10
+ className,
11
+ ...restProps
12
+ } = this.props;
13
+ const classes = classNames('ring-island__header', className);
14
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
15
+ className: classes
16
+ }), /*#__PURE__*/React.createElement("div", {
17
+ className: "ring-island__title"
18
+ }, children));
19
+ }
20
+
21
+ }
22
+
23
+ _defineProperty(Header, "propTypes", {
24
+ className: PropTypes.string,
25
+ children: PropTypes.node
26
+ });
27
+
28
+ export { Header as default };
@@ -0,0 +1,28 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { PureComponent } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+ export { default as Header } from './header-legacy.js';
6
+ export { default as Content } from './content-legacy.js';
7
+
8
+ class Island extends PureComponent {
9
+ render() {
10
+ const {
11
+ children,
12
+ className,
13
+ ...restProps
14
+ } = this.props;
15
+ const classes = classNames('ring-island', className);
16
+ return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
17
+ className: classes
18
+ }), children);
19
+ }
20
+
21
+ }
22
+
23
+ _defineProperty(Island, "propTypes", {
24
+ className: PropTypes.string,
25
+ children: PropTypes.node
26
+ });
27
+
28
+ export { Island as default };
@@ -0,0 +1,42 @@
1
+ import angular from 'angular';
2
+ import { m as modules_e6a056e1 } from '../_helpers/island.js';
3
+ import scheduleRAF from '../global/schedule-raf.js';
4
+ import compile from './island-ng-class-fixer.js';
5
+ import 'core-js/modules/es.string.replace.js';
6
+
7
+ const scheduleScroll = scheduleRAF();
8
+ const angularModule = angular.module('Ring.island-ng.header', []);
9
+ angularModule.directive('rgIslandContent', function islandContentDirective() {
10
+ return {
11
+ transclude: true,
12
+ replace: true,
13
+ bindToController: {
14
+ fade: '=?',
15
+ onScroll: '&?'
16
+ },
17
+ compile,
18
+ template: "\n<div\n data-test=\"ring-island-content\"\n class=".concat(modules_e6a056e1.content, "\n ng-class=\"{\n '").concat(modules_e6a056e1.contentWithTopFade, "': contentCtrl.fade,\n '").concat(modules_e6a056e1.contentWithBottomFade, "': contentCtrl.fade\n }\"\n>\n <div\n tabindex=\"0\"\n class=\"").concat(modules_e6a056e1.scrollableWrapper, " js-scrollable-wrapper\"\n ng-transclude\n ></div>\n</div>\n"),
19
+ controllerAs: 'contentCtrl',
20
+ controller: ["$scope", "$element", function controller($scope, $element) {
21
+ const el = $element[0];
22
+
23
+ if (this.onScroll) {
24
+ const scrollable = el.querySelector('.js-scrollable-wrapper');
25
+
26
+ const scrollCallback = evt => {
27
+ const $scrollTop = scrollable.scrollTop;
28
+ this.onScroll({
29
+ $event: evt,
30
+ $scrollTop
31
+ });
32
+ $scope.$apply();
33
+ };
34
+
35
+ scrollable.addEventListener('scroll', () => scheduleScroll(scrollCallback));
36
+ }
37
+ }]
38
+ };
39
+ });
40
+ var IslandContent = angularModule.name;
41
+
42
+ export { IslandContent as default };
@@ -0,0 +1,26 @@
1
+ import angular from 'angular';
2
+ import { m as modules_e6a056e1 } from '../_helpers/island.js';
3
+ import compile from './island-ng-class-fixer.js';
4
+ import 'core-js/modules/es.string.replace.js';
5
+
6
+ const angularModule = angular.module('Ring.island-ng.content', []);
7
+ angularModule.directive('rgIslandHeader', function islandHeaderDirective() {
8
+ return {
9
+ transclude: true,
10
+ replace: true,
11
+ bindToController: {
12
+ border: '=?'
13
+ },
14
+ compile,
15
+ template: "\n<div\n data-test=\"ring-island-header\"\n class=\"".concat(modules_e6a056e1.header, "\"\n ng-class=\"{'").concat(modules_e6a056e1.withBottomBorder, "': headerCtrl.border}\" \n ng-transclude\n></div>\n"),
16
+ controllerAs: 'headerCtrl',
17
+ controller: function controller() {
18
+ this.$onInit = () => {
19
+ this.wrapWithTitle = this.wrapWithTitle !== undefined ? this.wrapWithTitle : true;
20
+ };
21
+ }
22
+ };
23
+ });
24
+ var IslandHeader = angularModule.name;
25
+
26
+ export { IslandHeader as default };
@@ -0,0 +1,11 @@
1
+ import 'core-js/modules/es.string.replace.js';
2
+
3
+ // Workaround fo Angular bug with ng-class & replace: true support
4
+ // See https://github.com/angular/angular.js/issues/5695#issuecomment-31898355
5
+ function compile(tElement, tAttrs) {
6
+ if (tAttrs.ngClass) {
7
+ tAttrs.ngClass = tAttrs.ngClass.replace(/}\s*{/g, ', ');
8
+ }
9
+ }
10
+
11
+ export { compile as default };
@@ -0,0 +1,25 @@
1
+ import angular from 'angular';
2
+ import { m as modules_e6a056e1 } from '../_helpers/island.js';
3
+ import IslandHeader from './island-header-ng.js';
4
+ import IslandContent from './island-content-ng.js';
5
+ import compile from './island-ng-class-fixer.js';
6
+ import 'core-js/modules/es.string.replace.js';
7
+ import '../global/schedule-raf.js';
8
+
9
+ const angularModule = angular.module('Ring.island-ng', [IslandHeader, IslandContent]);
10
+ angularModule.directive('rgIsland', function islandDirective() {
11
+ return {
12
+ transclude: true,
13
+ replace: true,
14
+ bindToController: {
15
+ narrow: '='
16
+ },
17
+ compile,
18
+ template: "\n<div \n data-test=\"ring-island\"\n class=\"".concat(modules_e6a056e1.island, "\" \n ng-class=\"{'").concat(modules_e6a056e1.narrowIsland, "': islandCtrl.narrow}\" \n ng-transclude\n></div>\n"),
19
+ controllerAs: 'islandCtrl',
20
+ controller: angular.noop
21
+ };
22
+ });
23
+ var islandNg = angularModule.name;
24
+
25
+ export { islandNg as default };
@@ -0,0 +1,64 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
3
+ import React, { PureComponent } from 'react';
4
+ import PropTypes from 'prop-types';
5
+
6
+ const LEFT_BUTTON = 0; // Cmd/Ctrl/Shift/Alt + Click should trigger default browser behaviour. Same applies to non-left clicks
7
+
8
+ const isPlainLeftClick = e => e.button === LEFT_BUTTON && !e.altKey && !e.ctrlKey && !e.metaKey && !e.shiftKey;
9
+
10
+ class ClickableLink extends PureComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+
14
+ _defineProperty(this, "onClick", e => {
15
+ const {
16
+ onClick,
17
+ onConditionalClick,
18
+ onPlainLeftClick
19
+ } = this.props;
20
+ const isPlainLeft = isPlainLeftClick(e);
21
+
22
+ if (onClick) {
23
+ onClick(e);
24
+ }
25
+
26
+ if (onConditionalClick) {
27
+ onConditionalClick(isPlainLeft, e);
28
+ }
29
+
30
+ if (onPlainLeftClick && isPlainLeft) {
31
+ e.preventDefault();
32
+ onPlainLeftClick(e);
33
+ }
34
+ });
35
+ }
36
+
37
+ render() {
38
+ const {
39
+ onConditionalClick,
40
+ onPlainLeftClick,
41
+ activeClassName,
42
+ href,
43
+ children,
44
+ ...restProps
45
+ } = this.props;
46
+ return /*#__PURE__*/React.createElement("a", _extends({
47
+ href: href
48
+ }, restProps, {
49
+ onClick: this.onClick
50
+ }), children);
51
+ }
52
+
53
+ }
54
+
55
+ _defineProperty(ClickableLink, "propTypes", {
56
+ onClick: PropTypes.func,
57
+ onPlainLeftClick: PropTypes.func,
58
+ onConditionalClick: PropTypes.func,
59
+ activeClassName: PropTypes.string,
60
+ href: PropTypes.string.isRequired,
61
+ children: PropTypes.node.isRequired
62
+ });
63
+
64
+ export { ClickableLink as default };
@@ -0,0 +1,115 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'focus-visible';
3
+ import React, { Component, memo } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import classNames from 'classnames';
6
+ import memoize from '../global/memoize.js';
7
+ import joinDataTestAttributes from '../global/data-tests.js';
8
+ import ClickableLink from './clickableLink.js';
9
+ import { m as modules_607b0772 } from '../_helpers/link.js';
10
+ import 'core-js/modules/web.dom-collections.iterator.js';
11
+
12
+ /**
13
+ * @name Link
14
+ */
15
+
16
+ let isCompatibilityMode = false;
17
+ function setCompatibilityMode(isEnabled) {
18
+ isCompatibilityMode = isEnabled;
19
+ }
20
+ const makeWrapText = memoize(innerClassName => {
21
+ const WrapText = /*#__PURE__*/memo(function WrapText(_ref) {
22
+ let {
23
+ className,
24
+ children
25
+ } = _ref;
26
+ const classes = classNames(modules_607b0772.inner, className, innerClassName);
27
+ return /*#__PURE__*/React.createElement("span", {
28
+ className: classes
29
+ }, children);
30
+ });
31
+ WrapText.propTypes = {
32
+ className: PropTypes.string,
33
+ children: PropTypes.node
34
+ };
35
+ return WrapText;
36
+ });
37
+ function linkHOC(ComposedComponent) {
38
+ var _class;
39
+
40
+ const isCustom = typeof ComposedComponent !== 'string' && ComposedComponent !== ClickableLink;
41
+ return _class = class Link extends Component {
42
+ getChildren() {
43
+ const {
44
+ children,
45
+ innerClassName
46
+ } = this.props;
47
+ const WrapText = makeWrapText(innerClassName);
48
+ return typeof children === 'function' ? children(WrapText) : /*#__PURE__*/React.createElement(WrapText, null, children);
49
+ }
50
+
51
+ render() {
52
+ const {
53
+ active,
54
+ inherit,
55
+ pseudo,
56
+ hover,
57
+ className,
58
+ 'data-test': dataTest,
59
+ href,
60
+ innerClassName,
61
+ children,
62
+ onPlainLeftClick,
63
+ onClick,
64
+ ...props
65
+ } = this.props;
66
+ const useButton = pseudo || !isCustom && href == null;
67
+ const classes = classNames(modules_607b0772.link, className, {
68
+ [modules_607b0772.active]: active,
69
+ [modules_607b0772.inherit]: inherit,
70
+ [modules_607b0772.hover]: hover,
71
+ [modules_607b0772.compatibilityUnderlineMode]: isCompatibilityMode,
72
+ [modules_607b0772.pseudo]: useButton,
73
+ [modules_607b0772.text]: typeof children !== 'function'
74
+ });
75
+
76
+ if (isCustom && !props.activeClassName) {
77
+ props.activeClassName = modules_607b0772.active;
78
+ }
79
+
80
+ if (useButton) {
81
+ return /*#__PURE__*/React.createElement("button", _extends({
82
+ type: "button"
83
+ }, props, {
84
+ className: classes,
85
+ onClick: onClick || onPlainLeftClick,
86
+ "data-test": joinDataTestAttributes('ring-link', dataTest)
87
+ }), this.getChildren());
88
+ }
89
+
90
+ return /*#__PURE__*/React.createElement(ComposedComponent, _extends({}, props, {
91
+ href: href,
92
+ className: classes,
93
+ onClick: onClick,
94
+ onPlainLeftClick: onPlainLeftClick,
95
+ "data-test": joinDataTestAttributes('ring-link', dataTest)
96
+ }), this.getChildren());
97
+ }
98
+
99
+ }, _defineProperty(_class, "propTypes", {
100
+ className: PropTypes.string,
101
+ innerClassName: PropTypes.string,
102
+ active: PropTypes.bool,
103
+ inherit: PropTypes.bool,
104
+ pseudo: PropTypes.bool,
105
+ hover: PropTypes.bool,
106
+ children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
107
+ 'data-test': PropTypes.string,
108
+ href: PropTypes.string,
109
+ onPlainLeftClick: PropTypes.func,
110
+ onClick: PropTypes.func
111
+ }), _class;
112
+ }
113
+ var Link = linkHOC(ClickableLink);
114
+
115
+ export { Link as default, linkHOC, setCompatibilityMode };
@@ -0,0 +1,22 @@
1
+ import angular from 'angular';
2
+ import { m as modules_607b0772 } from '../_helpers/link.js';
3
+
4
+ /**
5
+ * @name Link Ng
6
+ */
7
+
8
+ const angularModule = angular.module('Ring.link', []);
9
+
10
+ function rgLinkDirective() {
11
+ return {
12
+ restrict: 'E',
13
+ transclude: true,
14
+ replace: true,
15
+ template: "\n<a class=\"".concat(modules_607b0772.link, " ").concat(modules_607b0772.compatibilityUnderlineMode, "\"\n><span class=\"").concat(modules_607b0772.inner, "\" ng-transclude></span></a>\n ")
16
+ };
17
+ }
18
+
19
+ angularModule.directive('rgLink', rgLinkDirective);
20
+ var LinkNG = angularModule.name;
21
+
22
+ export { LinkNG as default };