@jetbrains/ring-ui 4.1.0-beta.9 → 4.1.1

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 (354) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +17 -15
  3. package/babel.config.js +3 -2
  4. package/components/alert/alert.js +9 -3
  5. package/components/alert/container.css +1 -1
  6. package/components/alert-service/alert-service.examples.css +18 -0
  7. package/components/alert-service/alert-service.examples.js +21 -0
  8. package/components/alert-service/alert-service.js +10 -3
  9. package/components/analytics/analytics__fus-plugin.js +1 -1
  10. package/components/auth/auth.test.js +14 -7
  11. package/components/auth/auth__core.js +64 -33
  12. package/components/auth-dialog/auth-dialog.js +1 -0
  13. package/components/avatar/avatar.css +4 -1
  14. package/components/avatar/avatar.examples.js +3 -2
  15. package/components/avatar/avatar.js +31 -6
  16. package/components/avatar/fallback-avatar.js +136 -0
  17. package/components/avatar-editor-ng/avatar-editor-ng.css +2 -2
  18. package/components/avatar-editor-ng/avatar-editor-ng.js +2 -1
  19. package/components/avatar-editor-ng/{avatar-editor-ng.html → avatar-editor-ng__template.js} +2 -2
  20. package/components/button/button.css +2 -2
  21. package/components/button/button.js +4 -1
  22. package/components/button-group/button-group.js +1 -1
  23. package/components/button-group/caption.js +1 -1
  24. package/components/button-ng/button-ng.js +1 -1
  25. package/components/button-set-ng/button-set-ng.js +3 -1
  26. package/components/checkbox/checkbox.css +1 -1
  27. package/components/code/code.js +1 -1
  28. package/components/confirm/confirm.js +1 -0
  29. package/components/confirm-service/confirm-service.js +5 -5
  30. package/components/content-layout/content-layout.css +1 -1
  31. package/components/data-list/data-list.css +1 -1
  32. package/components/date-picker/date-input.js +5 -4
  33. package/components/date-picker/date-picker.css +34 -22
  34. package/components/date-picker/date-picker.js +16 -14
  35. package/components/date-picker/date-popup.js +22 -7
  36. package/components/date-picker/month-names.js +8 -5
  37. package/components/date-picker/month.js +6 -2
  38. package/components/date-picker/weekdays.js +10 -2
  39. package/components/dialog/dialog.examples.js +3 -1
  40. package/components/dialog/dialog.js +5 -2
  41. package/components/dialog/dialog.test.js +1 -1
  42. package/components/dialog/dialog__body-scroll-preventer.js +2 -2
  43. package/components/dialog-ng/dialog-ng.js +7 -8
  44. package/components/dialog-ng/{dialog-ng.html → dialog-ng__template.js} +2 -2
  45. package/components/dropdown/dropdown.examples.js +36 -1
  46. package/components/dropdown-menu/dropdown-menu.examples.js +47 -0
  47. package/components/dropdown-menu/dropdown-menu.js +117 -0
  48. package/components/dropdown-menu/dropdown-menu.test.js +76 -0
  49. package/components/error-bubble/error-bubble-legacy.css +1 -1
  50. package/components/error-bubble/error-bubble.css +1 -1
  51. package/components/error-bubble/error-bubble.examples.js +1 -1
  52. package/components/error-page/error-page.css +2 -2
  53. package/components/footer-ng/footer-ng.js +13 -3
  54. package/components/form/form.css +2 -2
  55. package/components/form-ng/form-ng.js +3 -1
  56. package/components/global/global.css +1 -1
  57. package/components/global/theme.js +1 -1
  58. package/components/global/variables.css +8 -1
  59. package/components/grid/grid.css +10 -9
  60. package/components/header/header.css +1 -1
  61. package/components/header/header.examples.js +7 -8
  62. package/components/header/profile.js +10 -11
  63. package/components/http/http.js +1 -1
  64. package/components/icon/icon.css +5 -4
  65. package/components/island/island.css +4 -3
  66. package/components/island-legacy/island-legacy.css +3 -1
  67. package/components/list/list.js +6 -1
  68. package/components/list/list__custom.js +9 -3
  69. package/components/list/list__item.js +8 -2
  70. package/components/list/list__link.js +2 -1
  71. package/components/loader-inline/loader-inline.css +1 -1
  72. package/components/loader-screen/loader-screen.css +1 -1
  73. package/components/message/message.css +1 -1
  74. package/components/message/message.examples.js +8 -5
  75. package/components/pager/pager.js +5 -3
  76. package/components/permissions/permissions.js +1 -1
  77. package/components/progress-bar/progress-bar.css +1 -1
  78. package/components/progress-bar/progress-bar.examples.js +3 -3
  79. package/components/progress-bar/progress-bar.js +5 -2
  80. package/components/progress-bar/progress-bar.test.js +12 -13
  81. package/components/progress-bar-ng/progress-bar-ng.examples.js +3 -3
  82. package/components/query-assist/query-assist.css +13 -3
  83. package/components/query-assist/query-assist.examples.js +3 -1
  84. package/components/query-assist/query-assist.js +56 -12
  85. package/components/query-assist/query-assist.test.js +37 -5
  86. package/components/save-field-ng/save-field-ng.css +0 -3
  87. package/components/save-field-ng/save-field-ng.js +3 -1
  88. package/components/save-field-ng/{save-field-ng.html → save-field-ng__template.js} +2 -2
  89. package/components/select/select.css +12 -7
  90. package/components/select/select.examples.js +13 -0
  91. package/components/select/select.js +30 -43
  92. package/components/select/select.test.js +4 -5
  93. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  94. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -1
  95. package/components/shortcuts-hint-ng/{shortcuts-hint-ng.html → shortcuts-hint-ng__template.js} +2 -2
  96. package/components/sidebar/sidebar.css +1 -0
  97. package/components/sidebar-ng/sidebar-ng.js +6 -2
  98. package/components/sidebar-ng/{sidebar-ng__button.html → sidebar-ng__button-template.js} +2 -2
  99. package/components/sidebar-ng/{sidebar-ng.html → sidebar-ng__template.js} +2 -2
  100. package/components/table/row.js +2 -1
  101. package/components/table/table.css +2 -1
  102. package/components/table-legacy/table-legacy.css +2 -2
  103. package/components/table-legacy/table-legacy__toolbar.css +2 -2
  104. package/components/table-legacy-ng/table-legacy-ng.js +38 -5
  105. package/components/table-legacy-ng/table-legacy-ng__pager.js +7 -1
  106. package/components/tabs/collapsible-tab.js +2 -2
  107. package/components/tabs/collapsible-tabs.js +4 -8
  108. package/components/tabs/tab-link.js +4 -2
  109. package/components/tabs/tabs.css +27 -0
  110. package/components/tabs-ng/tabs-ng.js +4 -2
  111. package/components/tabs-ng/{tabs-ng.html → tabs-ng__template.js} +6 -2
  112. package/components/tag/tag.css +5 -2
  113. package/components/tag/tag.examples.js +3 -0
  114. package/components/tag/tag.js +19 -16
  115. package/components/tags-input/tag-input.examples.js +1 -1
  116. package/components/tags-input/tags-input.js +5 -2
  117. package/components/template-ng/template-ng.js +1 -1
  118. package/components/tooltip/tooltip.js +7 -2
  119. package/components/user-agreement/user-agreement.css +1 -1
  120. package/components/user-agreement/user-agreement.examples.js +7 -4
  121. package/components/user-agreement/user-agreement.js +1 -0
  122. package/package.json +75 -78
  123. package/webpack.config.js +14 -10
  124. package/components/button-set-ng/button-set-ng.html +0 -1
  125. package/components/footer-ng/footer-ng.html +0 -13
  126. package/components/form-ng/form-ng__error-bubble.html +0 -3
  127. package/components/table-legacy-ng/table-legacy-ng.html +0 -4
  128. package/components/table-legacy-ng/table-legacy-ng__column.html +0 -12
  129. package/components/table-legacy-ng/table-legacy-ng__header.html +0 -4
  130. package/components/table-legacy-ng/table-legacy-ng__pager.html +0 -7
  131. package/components/table-legacy-ng/table-legacy-ng__row.html +0 -12
  132. package/components/table-legacy-ng/table-legacy-ng__title.html +0 -9
  133. package/dist/_helpers/_rollupPluginBabelHelpers.js +0 -127
  134. package/dist/_helpers/anchor.js +0 -33
  135. package/dist/_helpers/badge.js +0 -3
  136. package/dist/_helpers/button__classes.js +0 -39
  137. package/dist/_helpers/caption.js +0 -25
  138. package/dist/_helpers/card.js +0 -77
  139. package/dist/_helpers/date-picker.js +0 -3
  140. package/dist/_helpers/dialog__body-scroll-preventer.js +0 -56
  141. package/dist/_helpers/grid.js +0 -3
  142. package/dist/_helpers/header.js +0 -3
  143. package/dist/_helpers/icon__svg.js +0 -83
  144. package/dist/_helpers/inject-styles.js +0 -22
  145. package/dist/_helpers/island.js +0 -3
  146. package/dist/_helpers/list.js +0 -3
  147. package/dist/_helpers/query-assist__suggestions.js +0 -95
  148. package/dist/_helpers/select__filter.js +0 -78
  149. package/dist/_helpers/services-link.js +0 -42
  150. package/dist/_helpers/sidebar.js +0 -127
  151. package/dist/_helpers/table.js +0 -3
  152. package/dist/_helpers/tabs.js +0 -3
  153. package/dist/_helpers/title.js +0 -99
  154. package/dist/alert/alert.js +0 -254
  155. package/dist/alert/container.js +0 -50
  156. package/dist/alert-service/alert-service.js +0 -159
  157. package/dist/analytics/analytics.js +0 -116
  158. package/dist/analytics/analytics__custom-plugin.js +0 -127
  159. package/dist/analytics/analytics__fus-plugin.js +0 -101
  160. package/dist/analytics/analytics__ga-plugin.js +0 -66
  161. package/dist/analytics/analytics__plugin-utils.js +0 -79
  162. package/dist/auth/auth.js +0 -90
  163. package/dist/auth/auth__core.js +0 -987
  164. package/dist/auth/background-flow.js +0 -123
  165. package/dist/auth/down-notification.js +0 -111
  166. package/dist/auth/iframe-flow.js +0 -147
  167. package/dist/auth/landing-entry.js +0 -5
  168. package/dist/auth/landing.js +0 -84
  169. package/dist/auth/request-builder.js +0 -75
  170. package/dist/auth/response-parser.js +0 -117
  171. package/dist/auth/storage.js +0 -279
  172. package/dist/auth/token-validator.js +0 -176
  173. package/dist/auth/window-flow.js +0 -133
  174. package/dist/auth-dialog/auth-dialog.js +0 -132
  175. package/dist/auth-dialog-service/auth-dialog-service.js +0 -67
  176. package/dist/avatar/avatar-example-datauri.js +0 -26
  177. package/dist/avatar/avatar.js +0 -155
  178. package/dist/badge/badge.js +0 -52
  179. package/dist/button/button.js +0 -117
  180. package/dist/button/button__classes.js +0 -5
  181. package/dist/button-group/button-group.js +0 -30
  182. package/dist/button-group/caption.js +0 -5
  183. package/dist/button-set/button-set.js +0 -27
  184. package/dist/button-toolbar/button-toolbar.js +0 -30
  185. package/dist/caret/caret.js +0 -264
  186. package/dist/checkbox/checkbox.js +0 -110
  187. package/dist/confirm/confirm.js +0 -122
  188. package/dist/confirm-service/confirm-service.js +0 -112
  189. package/dist/content-layout/content-layout.js +0 -67
  190. package/dist/content-layout/sidebar.js +0 -6
  191. package/dist/contenteditable/contenteditable.js +0 -81
  192. package/dist/data-list/data-list.js +0 -203
  193. package/dist/data-list/data-list.mock.js +0 -190
  194. package/dist/data-list/item.js +0 -225
  195. package/dist/data-list/selection.js +0 -101
  196. package/dist/data-list/title.js +0 -16
  197. package/dist/date-picker/consts.js +0 -70
  198. package/dist/date-picker/date-input.js +0 -169
  199. package/dist/date-picker/date-picker.js +0 -356
  200. package/dist/date-picker/date-popup.js +0 -459
  201. package/dist/date-picker/day.js +0 -119
  202. package/dist/date-picker/formats.js +0 -3
  203. package/dist/date-picker/month-names.js +0 -92
  204. package/dist/date-picker/month-slider.js +0 -83
  205. package/dist/date-picker/month.js +0 -48
  206. package/dist/date-picker/months.js +0 -121
  207. package/dist/date-picker/weekdays.js +0 -24
  208. package/dist/date-picker/years.js +0 -109
  209. package/dist/dialog/dialog.js +0 -197
  210. package/dist/dialog/dialog__body-scroll-preventer.js +0 -2
  211. package/dist/dropdown/anchor.js +0 -16
  212. package/dist/dropdown/dropdown.js +0 -236
  213. package/dist/error-bubble/error-bubble.js +0 -59
  214. package/dist/error-message/error-message.js +0 -55
  215. package/dist/footer/footer.js +0 -127
  216. package/dist/global/angular-component-factory.js +0 -83
  217. package/dist/global/compose.js +0 -9
  218. package/dist/global/composeRefs.js +0 -15
  219. package/dist/global/conic-gradient.js +0 -37
  220. package/dist/global/create-stateful-context.js +0 -54
  221. package/dist/global/data-tests.js +0 -22
  222. package/dist/global/dom.js +0 -124
  223. package/dist/global/focus-sensor-hoc.js +0 -147
  224. package/dist/global/fuzzy-highlight.js +0 -67
  225. package/dist/global/get-event-key.js +0 -111
  226. package/dist/global/get-uid.js +0 -15
  227. package/dist/global/inject-styles.js +0 -17
  228. package/dist/global/linear-function.js +0 -18
  229. package/dist/global/listeners.js +0 -42
  230. package/dist/global/memoize.js +0 -18
  231. package/dist/global/normalize-indent.js +0 -28
  232. package/dist/global/promise-with-timeout.js +0 -13
  233. package/dist/global/radial-gradient-mask.js +0 -49
  234. package/dist/global/react-dom-renderer.js +0 -45
  235. package/dist/global/rerender-hoc.js +0 -53
  236. package/dist/global/ring-angular-component.js +0 -24
  237. package/dist/global/schedule-raf.js +0 -31
  238. package/dist/global/sniffer.js +0 -6
  239. package/dist/global/supports-css.js +0 -20
  240. package/dist/global/theme.js +0 -56
  241. package/dist/global/trivial-template-tag.js +0 -15
  242. package/dist/global/url.js +0 -163
  243. package/dist/global/variables_dark.js +0 -57
  244. package/dist/grid/col.js +0 -62
  245. package/dist/grid/grid.js +0 -35
  246. package/dist/grid/row.js +0 -66
  247. package/dist/group/group.js +0 -34
  248. package/dist/header/header.js +0 -144
  249. package/dist/header/logo.js +0 -39
  250. package/dist/header/profile.js +0 -212
  251. package/dist/header/services-link.js +0 -10
  252. package/dist/header/services.js +0 -135
  253. package/dist/header/smart-profile.js +0 -227
  254. package/dist/header/smart-services.js +0 -159
  255. package/dist/header/tray-icon.js +0 -45
  256. package/dist/header/tray.js +0 -33
  257. package/dist/heading/heading.js +0 -76
  258. package/dist/http/http.js +0 -216
  259. package/dist/http/http.mock.js +0 -65
  260. package/dist/hub-source/hub-source.js +0 -130
  261. package/dist/hub-source/hub-source__user.js +0 -28
  262. package/dist/hub-source/hub-source__users-groups.js +0 -62
  263. package/dist/icon/icon.js +0 -105
  264. package/dist/icon/icon__constants.js +0 -33
  265. package/dist/icon/icon__svg.js +0 -6
  266. package/dist/icon/index.js +0 -9
  267. package/dist/input/input.js +0 -231
  268. package/dist/island/adaptive-island-hoc.js +0 -48
  269. package/dist/island/content.js +0 -158
  270. package/dist/island/header.js +0 -85
  271. package/dist/island/island.js +0 -53
  272. package/dist/island-legacy/content-legacy.js +0 -28
  273. package/dist/island-legacy/header-legacy.js +0 -30
  274. package/dist/island-legacy/island-legacy.js +0 -30
  275. package/dist/link/clickableLink.js +0 -65
  276. package/dist/link/link.js +0 -118
  277. package/dist/list/consts.js +0 -26
  278. package/dist/list/list.js +0 -800
  279. package/dist/list/list__custom.js +0 -82
  280. package/dist/list/list__hint.js +0 -26
  281. package/dist/list/list__item.js +0 -197
  282. package/dist/list/list__link.js +0 -65
  283. package/dist/list/list__separator.js +0 -30
  284. package/dist/list/list__title.js +0 -39
  285. package/dist/list/list__users-groups-source.js +0 -124
  286. package/dist/loader/loader.js +0 -72
  287. package/dist/loader/loader__core.js +0 -272
  288. package/dist/loader-inline/inject-styles.js +0 -11
  289. package/dist/loader-inline/loader-inline.js +0 -58
  290. package/dist/loader-screen/loader-screen.js +0 -46
  291. package/dist/login-dialog/login-dialog.js +0 -184
  292. package/dist/login-dialog/service.js +0 -67
  293. package/dist/message/message.js +0 -232
  294. package/dist/old-browsers-message/old-browsers-message.js +0 -101
  295. package/dist/old-browsers-message/old-browsers-message__stop.js +0 -5
  296. package/dist/old-browsers-message/white-list.js +0 -34
  297. package/dist/pager/pager.js +0 -352
  298. package/dist/panel/panel.js +0 -34
  299. package/dist/permissions/permissions.js +0 -200
  300. package/dist/permissions/permissions__cache.js +0 -272
  301. package/dist/popup/popup.consts.js +0 -41
  302. package/dist/popup/popup.js +0 -389
  303. package/dist/popup/popup.target.js +0 -27
  304. package/dist/popup/position.js +0 -280
  305. package/dist/popup-menu/popup-menu.js +0 -108
  306. package/dist/progress-bar/progress-bar.js +0 -111
  307. package/dist/proxy-attrs/proxy-attrs.js +0 -19
  308. package/dist/query-assist/query-assist.js +0 -1023
  309. package/dist/query-assist/query-assist__suggestions.js +0 -43
  310. package/dist/radio/radio.js +0 -39
  311. package/dist/radio/radio__item.js +0 -82
  312. package/dist/select/select.js +0 -1335
  313. package/dist/select/select__filter.js +0 -49
  314. package/dist/select/select__popup.js +0 -541
  315. package/dist/shortcuts/core.js +0 -245
  316. package/dist/shortcuts/shortcut-title.js +0 -51
  317. package/dist/shortcuts/shortcuts-hoc.js +0 -43
  318. package/dist/shortcuts/shortcuts.js +0 -72
  319. package/dist/storage/storage.js +0 -55
  320. package/dist/storage/storage__fallback.js +0 -214
  321. package/dist/storage/storage__local.js +0 -150
  322. package/dist/style.css +0 -1
  323. package/dist/tab-trap/tab-trap.js +0 -178
  324. package/dist/table/cell.js +0 -25
  325. package/dist/table/disable-hover-hoc.js +0 -53
  326. package/dist/table/header-cell.js +0 -91
  327. package/dist/table/header.js +0 -189
  328. package/dist/table/multitable.js +0 -140
  329. package/dist/table/row-with-focus-sensor.js +0 -79
  330. package/dist/table/row.js +0 -270
  331. package/dist/table/selection-adapter.js +0 -14
  332. package/dist/table/selection-shortcuts-hoc.js +0 -212
  333. package/dist/table/selection.js +0 -221
  334. package/dist/table/smart-table.js +0 -113
  335. package/dist/table/table.js +0 -405
  336. package/dist/tabs/collapsible-more.js +0 -193
  337. package/dist/tabs/collapsible-tab.js +0 -90
  338. package/dist/tabs/collapsible-tabs.js +0 -361
  339. package/dist/tabs/custom-item.js +0 -13
  340. package/dist/tabs/dumb-tabs.js +0 -159
  341. package/dist/tabs/smart-tabs.js +0 -102
  342. package/dist/tabs/tab-link.js +0 -35
  343. package/dist/tabs/tab.js +0 -32
  344. package/dist/tabs/tabs.js +0 -65
  345. package/dist/tag/tag.js +0 -190
  346. package/dist/tags-input/tags-input.js +0 -474
  347. package/dist/tags-list/tags-list.js +0 -94
  348. package/dist/text/text.js +0 -38
  349. package/dist/toggle/toggle.js +0 -80
  350. package/dist/tooltip/tooltip.js +0 -205
  351. package/dist/user-card/card.js +0 -14
  352. package/dist/user-card/smart-user-card-tooltip.js +0 -112
  353. package/dist/user-card/tooltip.js +0 -91
  354. package/dist/user-card/user-card.js +0 -46
@@ -1,27 +0,0 @@
1
- import { a as _objectWithoutProperties, b as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import React, { createContext, forwardRef } from 'react';
3
- import PropTypes from 'prop-types';
4
-
5
- const PopupTargetContext = /*#__PURE__*/createContext();
6
- const PopupTarget = /*#__PURE__*/forwardRef(function PopupTarget(_ref, ref) {
7
- let {
8
- id,
9
- children
10
- } = _ref,
11
- restProps = _objectWithoutProperties(_ref, ["id", "children"]);
12
-
13
- const isFunctionChild = typeof children === 'function';
14
- const target = /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
15
- "data-portaltarget": id,
16
- ref: ref
17
- }), !isFunctionChild && children);
18
- return /*#__PURE__*/React.createElement(PopupTargetContext.Provider, {
19
- value: id
20
- }, isFunctionChild ? children(target) : target);
21
- });
22
- PopupTarget.propTypes = {
23
- id: PropTypes.string.isRequired,
24
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
25
- };
26
-
27
- export { PopupTarget, PopupTargetContext };
@@ -1,280 +0,0 @@
1
- import { getRect, isMounted, getDocumentScrollTop, getDocumentScrollLeft, getWindowHeight } from '../global/dom.js';
2
- import { Directions, MaxHeight, Dimension, MinWidth } from './popup.consts.js';
3
- export { Dimension, Directions, MaxHeight, MinWidth } from './popup.consts.js';
4
- import '../_helpers/_rollupPluginBabelHelpers.js';
5
-
6
- function getScrollingCoordinates(container) {
7
- if (container !== null) {
8
- return {
9
- top: container.scrollTop,
10
- left: container.scrollLeft
11
- };
12
- }
13
-
14
- return {
15
- top: getDocumentScrollTop(),
16
- left: getDocumentScrollLeft()
17
- };
18
- }
19
-
20
- function getPositionStyles(popup, anchorRect, anchorLeft, anchorTop, offset) {
21
- const popupWidth = popup.clientWidth;
22
- const popupHeight = popup.clientHeight;
23
- const anchorBottom = anchorTop + anchorRect.height;
24
- const anchorRight = anchorLeft + anchorRect.width;
25
- const popupLeft = anchorLeft - popupWidth;
26
- const popupTop = anchorTop - popupHeight;
27
- const popupRightToLeft = anchorRight - popupWidth;
28
- const popupHorizontalCenter = anchorLeft + anchorRect.width / 2 - popupWidth / 2;
29
- const popupVerticalCenter = anchorTop + anchorRect.height / 2 - popupHeight / 2;
30
- const popupBottomToTop = anchorBottom - popupHeight;
31
- return {
32
- [Directions.BOTTOM_RIGHT]: {
33
- left: anchorLeft,
34
- top: anchorBottom + offset
35
- },
36
- [Directions.BOTTOM_LEFT]: {
37
- left: popupRightToLeft,
38
- top: anchorBottom + offset
39
- },
40
- [Directions.BOTTOM_CENTER]: {
41
- left: popupHorizontalCenter,
42
- top: anchorBottom + offset
43
- },
44
- [Directions.TOP_RIGHT]: {
45
- left: anchorLeft,
46
- top: popupTop - offset
47
- },
48
- [Directions.TOP_LEFT]: {
49
- left: popupRightToLeft,
50
- top: popupTop - offset
51
- },
52
- [Directions.TOP_CENTER]: {
53
- left: popupHorizontalCenter,
54
- top: popupTop - offset
55
- },
56
- [Directions.LEFT_BOTTOM]: {
57
- left: popupLeft - offset,
58
- top: anchorTop
59
- },
60
- [Directions.LEFT_TOP]: {
61
- left: popupLeft - offset,
62
- top: popupBottomToTop
63
- },
64
- [Directions.LEFT_CENTER]: {
65
- left: popupLeft - offset,
66
- top: popupVerticalCenter
67
- },
68
- [Directions.RIGHT_BOTTOM]: {
69
- left: anchorRight + offset,
70
- top: anchorTop
71
- },
72
- [Directions.RIGHT_TOP]: {
73
- left: anchorRight + offset,
74
- top: popupBottomToTop
75
- },
76
- [Directions.RIGHT_CENTER]: {
77
- left: anchorRight + offset,
78
- top: popupVerticalCenter
79
- }
80
- };
81
- }
82
-
83
- function verticalOverflow(styles, scrollingCoordinates, attrs) {
84
- const containerHeight = attrs.container !== null ? attrs.container.clientHeight : getWindowHeight();
85
- const viewportMinX = scrollingCoordinates.top + attrs.sidePadding;
86
- const viewportMaxX = scrollingCoordinates.top + containerHeight - attrs.sidePadding;
87
- const topOverflow = Math.max(viewportMinX - styles.top, 0);
88
- const popupHeight = attrs.popup.clientHeight;
89
- const verticalDiff = styles.top + popupHeight - viewportMaxX;
90
- const bottomOverflow = Math.max(verticalDiff, 0);
91
- return topOverflow + bottomOverflow;
92
- }
93
-
94
- function horizontalOverflow(styles, scrollingCoordinates, attrs) {
95
- const containerWidth = attrs.container !== null ? attrs.container.clientWidth : window.innerWidth;
96
- const viewportMinY = scrollingCoordinates.left + attrs.sidePadding;
97
- const viewportMaxY = scrollingCoordinates.left + containerWidth - attrs.sidePadding;
98
- const leftOverflow = Math.max(viewportMinY - styles.left, 0);
99
- const popupWidth = attrs.popup.clientWidth;
100
- const horizontalDiff = styles.left + popupWidth - viewportMaxY;
101
- const rightOverflow = Math.max(horizontalDiff, 0);
102
- return leftOverflow + rightOverflow;
103
- }
104
-
105
- const positionPropKeys = ['directions', 'autoPositioning', 'autoCorrectTopOverflow', 'sidePadding', 'top', 'left', 'offset', 'maxHeight', 'minWidth'];
106
- const defaultcontainerRect = {
107
- top: 0,
108
- left: 0
109
- };
110
-
111
- function handleTopOffScreen(_ref) {
112
- let {
113
- sidePadding,
114
- styles,
115
- anchorRect,
116
- maxHeight,
117
- popupScrollHeight,
118
- direction,
119
- scroll
120
- } = _ref;
121
- const BORDER_COMPENSATION = 1;
122
- const {
123
- TOP_LEFT,
124
- TOP_RIGHT,
125
- TOP_CENTER,
126
- RIGHT_TOP,
127
- LEFT_TOP
128
- } = Directions;
129
- const openedToTop = [TOP_LEFT, TOP_RIGHT, TOP_CENTER, RIGHT_TOP, LEFT_TOP].includes(direction);
130
-
131
- if (!openedToTop) {
132
- return styles;
133
- }
134
-
135
- const isAttachedToAnchorTop = [TOP_LEFT, TOP_CENTER, TOP_RIGHT].includes(direction);
136
- const attachingPointY = isAttachedToAnchorTop ? anchorRect.top : anchorRect.bottom;
137
- const effectiveHeight = maxHeight ? Math.min(popupScrollHeight, maxHeight) : popupScrollHeight;
138
- const hypotheticalTop = attachingPointY - effectiveHeight;
139
-
140
- if (hypotheticalTop <= sidePadding) {
141
- styles.top = sidePadding + scroll.top;
142
- styles.maxHeight = attachingPointY - sidePadding + BORDER_COMPENSATION;
143
- }
144
-
145
- return styles;
146
- }
147
-
148
- function maxHeightForDirection(direction, anchorNode, containerNode) {
149
- const container = containerNode || document.documentElement;
150
- const domRect = anchorNode.getBoundingClientRect();
151
- const containerRect = container.getBoundingClientRect();
152
- const topMaxHeight = Math.max(domRect.top - containerRect.top, 0);
153
- const containerHeight = Math.max(containerRect.height, // XXX
154
- // If container is the document element
155
- // then we check client height too because we may have situation when
156
- // "height" from "getBoundingClientRect" less then "clientHeight".
157
- container === document.documentElement ? container.clientHeight : 0);
158
- const bottomMaxHeight = Math.max(containerHeight - (topMaxHeight + domRect.height), 0);
159
-
160
- switch (direction) {
161
- case Directions.TOP_LEFT:
162
- case Directions.TOP_CENTER:
163
- case Directions.TOP_RIGHT:
164
- return topMaxHeight;
165
-
166
- case Directions.BOTTOM_LEFT:
167
- case Directions.BOTTOM_CENTER:
168
- case Directions.BOTTOM_RIGHT:
169
- return bottomMaxHeight;
170
-
171
- case Directions.LEFT_BOTTOM:
172
- case Directions.RIGHT_BOTTOM:
173
- return domRect.height + bottomMaxHeight;
174
-
175
- case Directions.LEFT_TOP:
176
- case Directions.RIGHT_TOP:
177
- return domRect.height + topMaxHeight;
178
-
179
- case Directions.RIGHT_CENTER:
180
- case Directions.LEFT_CENTER:
181
- return domRect.height / 2 + Math.min(bottomMaxHeight / 2, topMaxHeight / 2);
182
-
183
- default:
184
- return null;
185
- }
186
- }
187
- function position(attrs) {
188
- const {
189
- popup,
190
- anchor,
191
- container,
192
- directions,
193
- autoPositioning,
194
- sidePadding,
195
- top,
196
- left,
197
- offset,
198
- maxHeight,
199
- minWidth,
200
- autoCorrectTopOverflow = true
201
- } = attrs;
202
- let styles = {
203
- top: 0,
204
- left: 0
205
- };
206
- let chosenDirection = null;
207
- const containerRect = container !== null ? getRect(container) : defaultcontainerRect;
208
- const defaultAnchor = container !== null ? container : document.body;
209
- const anchorRect = getRect(isMounted(anchor) ? anchor : defaultAnchor);
210
- const scroll = getScrollingCoordinates(container);
211
- const anchorLeft = anchorRect.left + scroll.left + left - containerRect.left;
212
- const anchorTop = anchorRect.top + scroll.top + top - containerRect.top;
213
-
214
- if (popup) {
215
- const directionsMatrix = getPositionStyles(popup, anchorRect, anchorLeft, anchorTop, offset);
216
-
217
- if (!autoPositioning || directions.length === 1) {
218
- styles = directionsMatrix[directions[0]];
219
- chosenDirection = directions[0];
220
- } else {
221
- const sortedByIncreasingOverflow = directions. // Fall back to the first option
222
- concat(directions[0]).filter(direction => directionsMatrix[direction]).map(direction => ({
223
- styles: directionsMatrix[direction],
224
- direction
225
- })).sort((_ref2, _ref3) => {
226
- let {
227
- styles: stylesA
228
- } = _ref2;
229
- let {
230
- styles: stylesB
231
- } = _ref3;
232
- const overflowA = verticalOverflow(stylesA, scroll, attrs) + horizontalOverflow(stylesA, scroll, attrs);
233
- const overflowB = verticalOverflow(stylesB, scroll, attrs) + horizontalOverflow(stylesB, scroll, attrs);
234
- return overflowA - overflowB;
235
- });
236
- styles = sortedByIncreasingOverflow[0].styles;
237
- chosenDirection = sortedByIncreasingOverflow[0].direction;
238
- } // because of the anchor negative margin top and left also may become negative
239
-
240
-
241
- ['left', 'top'].forEach(key => {
242
- if (styles[key] < 0) {
243
- styles[key] = 0;
244
- }
245
- });
246
- }
247
-
248
- if (maxHeight === MaxHeight.SCREEN || maxHeight === 'screen') {
249
- // this feature works properly only when direction is BOTTOM_* or *_BOTTOM
250
- styles.maxHeight = window.innerHeight + scroll.top - styles.top - Dimension.MARGIN;
251
- } else if (maxHeight) {
252
- styles.maxHeight = maxHeight;
253
- }
254
-
255
- if (autoCorrectTopOverflow) {
256
- styles = handleTopOffScreen({
257
- sidePadding,
258
- styles,
259
- anchorRect,
260
- maxHeight,
261
- direction: chosenDirection,
262
- popupScrollHeight: popup.scrollHeight,
263
- scroll
264
- });
265
- }
266
-
267
- if (minWidth === MinWidth.TARGET || minWidth === 'target') {
268
- styles.minWidth = anchorRect.width;
269
- } else if (minWidth) {
270
- styles.minWidth = anchorRect.width < minWidth ? minWidth : anchorRect.width;
271
- }
272
-
273
- return {
274
- styles,
275
- direction: chosenDirection
276
- };
277
- }
278
-
279
- export default position;
280
- export { maxHeightForDirection, positionPropKeys };
@@ -1,108 +0,0 @@
1
- import { _ as _defineProperty, a as _objectWithoutProperties, b as _extends, c as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
- import Popup from '../popup/popup.js';
5
- import List from '../list/list.js';
6
- import 'react-dom';
7
- import 'classnames';
8
- import '../global/get-uid.js';
9
- import '../global/schedule-raf.js';
10
- import '../global/dom.js';
11
- import '../shortcuts/shortcuts.js';
12
- import '../shortcuts/core.js';
13
- import 'combokeys';
14
- import '../global/sniffer.js';
15
- import 'sniffr';
16
- import '../global/data-tests.js';
17
- import '../tab-trap/tab-trap.js';
18
- import '../popup/position.js';
19
- import '../popup/popup.consts.js';
20
- import '../popup/popup.target.js';
21
- import 'react-virtualized/dist/es/List';
22
- import 'react-virtualized/dist/es/AutoSizer';
23
- import 'react-virtualized/dist/es/WindowScroller';
24
- import 'react-virtualized/dist/es/CellMeasurer';
25
- import 'util-deprecate';
26
- import 'memoize-one';
27
- import '../global/memoize.js';
28
- import '../global/create-stateful-context.js';
29
- import '../list/list__link.js';
30
- import '../link/link.js';
31
- import 'focus-visible';
32
- import '../link/clickableLink.js';
33
- import '../_helpers/list.js';
34
- import '../list/list__item.js';
35
- import '../avatar/avatar.js';
36
- import '../global/url.js';
37
- import '../checkbox/checkbox.js';
38
- import '@jetbrains/icons/checkmark';
39
- import '@jetbrains/icons/remove-10px';
40
- import '../icon/icon.js';
41
- import '../icon/icon__constants.js';
42
- import '../_helpers/icon__svg.js';
43
- import '../list/list__custom.js';
44
- import '../global/get-event-key.js';
45
- import '../list/list__title.js';
46
- import '../list/list__separator.js';
47
- import '../list/list__hint.js';
48
- import '../list/consts.js';
49
-
50
- const _ref = Popup.propTypes || {},
51
- popupPropTypes = _objectWithoutProperties(_ref, ["children"]);
52
- /**
53
- * @name Popup Menu
54
- */
55
-
56
-
57
- class PopupMenu extends Popup {
58
- constructor() {
59
- super(...arguments);
60
-
61
- _defineProperty(this, "onSelect", (item, event) => {
62
- if (this.props.closeOnSelect) {
63
- this._onCloseAttempt(event);
64
- }
65
-
66
- this.props.onSelect(item, event);
67
- });
68
-
69
- _defineProperty(this, "listRef", el => {
70
- this.list = el;
71
- });
72
- }
73
-
74
- /** @override */
75
- getInternalContent() {
76
- const _this$props = this.props,
77
- props = _objectWithoutProperties(_this$props, ["className"]);
78
-
79
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(List, _extends({
80
- ref: this.listRef
81
- }, props, {
82
- maxHeight: this.popup && this.popup.style.maxHeight,
83
- shortcuts: this.shouldUseShortcuts(),
84
- onSelect: this.onSelect
85
- })));
86
- }
87
-
88
- }
89
-
90
- _defineProperty(PopupMenu, "isItemType", List.isItemType);
91
-
92
- _defineProperty(PopupMenu, "ListProps", List.ListProps);
93
-
94
- _defineProperty(PopupMenu, "propTypes", _objectSpread2(_objectSpread2(_objectSpread2({}, popupPropTypes), List.propTypes), {}, {
95
- closeOnSelect: PropTypes.bool
96
- }));
97
-
98
- _defineProperty(PopupMenu, "defaultProps", _objectSpread2(_objectSpread2(_objectSpread2({}, List.defaultProps), Popup.defaultProps), {}, {
99
- renderOptimization: false,
100
- closeOnSelect: false
101
- }));
102
-
103
- const {
104
- ListProps
105
- } = List;
106
-
107
- export default PopupMenu;
108
- export { ListProps };
@@ -1,111 +0,0 @@
1
- import { _ as _defineProperty, a as _objectWithoutProperties, b as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import React, { PureComponent } from 'react';
3
- import PropTypes from 'prop-types';
4
- import classNames from 'classnames';
5
- import Theme from '../global/theme.js';
6
-
7
- var modules_fb7af416 = {"unit":"8px","light":"progressBar_light__9afa5539","progressBar":"progressBar_progressBar__9afa5539","dark":"progressBar_dark__9afa5539","line":"progressBar_line__9afa5539","globalMode":"progressBar_globalMode__9afa5539","progress-bar":"progressBar_progressBar__9afa5539"};
8
-
9
- /**
10
- * @name Progress Bar
11
- */
12
-
13
- class ProgressBar extends PureComponent {
14
- constructor() {
15
- super(...arguments);
16
-
17
- _defineProperty(this, "progressbarWrapperRef", el => {
18
- this.progressbarWrapper = el;
19
- });
20
-
21
- _defineProperty(this, "progressbarRef", el => {
22
- this.progressbar = el;
23
- });
24
- }
25
-
26
- /**
27
- * @param {number} value The progress task value
28
- * @param {number} max The maximum value
29
- * @return {number} The progress task value in percents
30
- * @private
31
- */
32
- static toPercent(value, max) {
33
- const HUNDRED_PERCENT = 100;
34
- const percents = value * HUNDRED_PERCENT / max;
35
- return percents > HUNDRED_PERCENT ? HUNDRED_PERCENT : percents;
36
- }
37
-
38
- render() {
39
- const _this$props = this.props,
40
- {
41
- theme,
42
- className,
43
- global,
44
- max,
45
- value
46
- } = _this$props,
47
- otherProps = _objectWithoutProperties(_this$props, ["theme", "className", "global", "max", "value"]);
48
-
49
- const width = value ? `${ProgressBar.toPercent(value, max)}%` : null;
50
- const classes = classNames(modules_fb7af416.progressBar, className, {
51
- [modules_fb7af416.light]: theme === Theme.LIGHT,
52
- [modules_fb7af416.dark]: theme === Theme.DARK,
53
- [modules_fb7af416.globalMode]: global
54
- });
55
- return /*#__PURE__*/React.createElement("div", _extends({}, otherProps, {
56
- className: classes,
57
- ref: this.progressbarWrapperRef
58
- }), /*#__PURE__*/React.createElement("div", {
59
- className: modules_fb7af416.line,
60
- ref: this.progressbarRef,
61
- role: "progressbar",
62
- "aria-valuenow": value,
63
- "aria-valuemin": 0,
64
- "aria-valuemax": max,
65
- style: {
66
- width
67
- }
68
- }));
69
- }
70
-
71
- }
72
-
73
- _defineProperty(ProgressBar, "propTypes", {
74
- theme: PropTypes.string,
75
-
76
- /**
77
- * Sets the ring-progress-bar_global class to position the progress bar on top of the screen.
78
- * Should be placed directly inside body, will be positioned right below .ring-header
79
- * if placed adjacent to it.
80
- * @type {boolean}
81
- */
82
- global: PropTypes.bool,
83
-
84
- /**
85
- * Custom class
86
- * @type {string}
87
- */
88
- className: PropTypes.string,
89
- style: PropTypes.object,
90
-
91
- /**
92
- * A floating point number that specifies minimum completion rate for a task to be considered
93
- * complete. Default value is 1.0.
94
- * @type {number}
95
- */
96
- max: PropTypes.number,
97
-
98
- /**
99
- * A floating point number that specifies current task completion rate.
100
- * @type {number}
101
- */
102
- value: PropTypes.number
103
- });
104
-
105
- _defineProperty(ProgressBar, "defaultProps", {
106
- max: 1.0,
107
- value: 0,
108
- theme: Theme.LIGHT
109
- });
110
-
111
- export default ProgressBar;
@@ -1,19 +0,0 @@
1
- function proxyAttrs(template, attrsWhitelist) {
2
- return function copyAttrs(iElement, iAttrs) {
3
- const PREFIX = 'data-proxy-';
4
- const attrsList = attrsWhitelist || Object.keys(iAttrs.$attr);
5
- let resultTemplate = template;
6
- attrsList.forEach(attrName => {
7
- if (iAttrs[attrName] !== undefined) {
8
- const attrLower = iAttrs.$attr[attrName];
9
- const attrValue = iAttrs[attrName];
10
- const attrFind = `${PREFIX}${attrLower}`.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
11
- const attrReplace = `${attrLower}="${attrValue}"`;
12
- resultTemplate = resultTemplate.replace(RegExp(`${attrFind}(="")*`, 'g'), attrReplace);
13
- }
14
- });
15
- return resultTemplate;
16
- };
17
- }
18
-
19
- export default proxyAttrs;