@jetbrains/ring-ui 4.1.0-beta.4 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) 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/alert.test.js +21 -48
  6. package/components/alert/container.css +1 -1
  7. package/components/alert/container.test.js +3 -13
  8. package/components/alert-service/alert-service.examples.css +18 -0
  9. package/components/alert-service/alert-service.examples.js +21 -0
  10. package/components/alert-service/alert-service.js +10 -3
  11. package/components/analytics/analytics__fus-plugin.js +3 -3
  12. package/components/analytics/analytics__ga-plugin.js +2 -2
  13. package/components/auth/auth.test.js +14 -7
  14. package/components/auth/auth__core.js +64 -33
  15. package/components/auth-dialog/auth-dialog.css +2 -3
  16. package/components/auth-dialog/auth-dialog.js +4 -1
  17. package/components/auth-dialog/auth-dialog.test.js +3 -19
  18. package/components/avatar/avatar.css +4 -1
  19. package/components/avatar/avatar.examples.js +3 -2
  20. package/components/avatar/avatar.js +34 -6
  21. package/components/avatar/avatar.test.js +20 -17
  22. package/components/avatar/fallback-avatar.js +136 -0
  23. package/components/avatar-editor-ng/avatar-editor-ng.css +2 -2
  24. package/components/avatar-editor-ng/avatar-editor-ng.js +2 -1
  25. package/components/avatar-editor-ng/{avatar-editor-ng.html → avatar-editor-ng__template.js} +2 -2
  26. package/components/badge/badge.test.js +13 -20
  27. package/components/button/button.css +2 -2
  28. package/components/button/button.js +4 -1
  29. package/components/button/button.test.js +32 -33
  30. package/components/button-group/button-group.js +1 -1
  31. package/components/button-group/caption.js +1 -1
  32. package/components/button-ng/button-ng.js +1 -1
  33. package/components/button-set-ng/button-set-ng.js +3 -1
  34. package/components/checkbox/checkbox.css +1 -1
  35. package/components/code/code.js +2 -5
  36. package/components/confirm/confirm.js +1 -0
  37. package/components/confirm-service/confirm-service.js +5 -5
  38. package/components/content-layout/content-layout.css +1 -1
  39. package/components/data-list/data-list.css +1 -1
  40. package/components/date-picker/date-input.js +5 -4
  41. package/components/date-picker/date-picker.css +34 -22
  42. package/components/date-picker/date-picker.js +16 -14
  43. package/components/date-picker/date-popup.js +22 -7
  44. package/components/date-picker/month-names.js +8 -5
  45. package/components/date-picker/month.js +6 -2
  46. package/components/date-picker/weekdays.js +10 -2
  47. package/components/dialog/dialog.examples.js +3 -1
  48. package/components/dialog/dialog.js +10 -5
  49. package/components/dialog/dialog.test.js +1 -1
  50. package/components/dialog/dialog__body-scroll-preventer.js +51 -31
  51. package/components/dialog-ng/dialog-ng.js +10 -10
  52. package/components/dialog-ng/{dialog-ng.html → dialog-ng__template.js} +2 -2
  53. package/components/dropdown/dropdown.examples.js +36 -1
  54. package/components/dropdown/dropdown.test.js +2 -2
  55. package/components/dropdown-menu/dropdown-menu.examples.js +47 -0
  56. package/components/dropdown-menu/dropdown-menu.js +117 -0
  57. package/components/dropdown-menu/dropdown-menu.test.js +76 -0
  58. package/components/error-bubble/error-bubble-legacy.css +1 -1
  59. package/components/error-bubble/error-bubble.css +1 -1
  60. package/components/error-bubble/error-bubble.examples.js +1 -1
  61. package/components/error-page/error-page.css +2 -2
  62. package/components/footer-ng/footer-ng.js +13 -3
  63. package/components/form/form.css +2 -2
  64. package/components/form-ng/form-ng.js +3 -1
  65. package/components/global/global.css +1 -1
  66. package/components/global/theme.js +1 -1
  67. package/components/global/variables.css +8 -1
  68. package/components/grid/grid.css +10 -9
  69. package/components/header/header.css +1 -1
  70. package/components/header/header.examples.js +7 -8
  71. package/components/header/profile.js +10 -11
  72. package/components/http/http.js +1 -1
  73. package/components/icon/icon.css +5 -4
  74. package/components/input/input-legacy.css +7 -7
  75. package/components/island/header.js +2 -2
  76. package/components/island/island.css +8 -3
  77. package/components/island-legacy/island-legacy.css +3 -1
  78. package/components/list/list.js +6 -1
  79. package/components/list/list__custom.js +9 -3
  80. package/components/list/list__item.js +8 -2
  81. package/components/list/list__link.js +2 -1
  82. package/components/loader-inline/loader-inline.css +1 -1
  83. package/components/loader-screen/loader-screen.css +1 -1
  84. package/components/message/message.css +1 -1
  85. package/components/message/message.examples.js +8 -7
  86. package/components/pager/pager.js +5 -3
  87. package/components/permissions/permissions.js +1 -1
  88. package/components/popup/popup.js +1 -1
  89. package/components/popup/popup.test.js +15 -13
  90. package/components/progress-bar/progress-bar.css +1 -1
  91. package/components/progress-bar/progress-bar.examples.js +3 -3
  92. package/components/progress-bar/progress-bar.js +5 -2
  93. package/components/progress-bar/progress-bar.test.js +12 -13
  94. package/components/progress-bar-ng/progress-bar-ng.examples.js +3 -3
  95. package/components/query-assist/query-assist.css +13 -3
  96. package/components/query-assist/query-assist.examples.js +3 -4
  97. package/components/query-assist/query-assist.js +56 -12
  98. package/components/query-assist/query-assist.test.js +37 -5
  99. package/components/save-field-ng/save-field-ng.css +0 -3
  100. package/components/save-field-ng/save-field-ng.js +3 -1
  101. package/components/save-field-ng/{save-field-ng.html → save-field-ng__template.js} +2 -2
  102. package/components/select/select.css +12 -7
  103. package/components/select/select.examples.js +13 -0
  104. package/components/select/select.js +30 -43
  105. package/components/select/select.test.js +4 -5
  106. package/components/select/select__popup.js +1 -0
  107. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  108. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -1
  109. package/components/shortcuts-hint-ng/{shortcuts-hint-ng.html → shortcuts-hint-ng__template.js} +2 -2
  110. package/components/sidebar/sidebar.css +1 -0
  111. package/components/sidebar-ng/sidebar-ng.js +6 -2
  112. package/components/sidebar-ng/{sidebar-ng__button.html → sidebar-ng__button-template.js} +2 -2
  113. package/components/sidebar-ng/{sidebar-ng.html → sidebar-ng__template.js} +2 -2
  114. package/components/table/header.js +9 -1
  115. package/components/table/row.js +2 -1
  116. package/components/table/table.css +2 -1
  117. package/components/table-legacy/table-legacy.css +2 -2
  118. package/components/table-legacy/table-legacy__toolbar.css +2 -2
  119. package/components/table-legacy-ng/table-legacy-ng.js +38 -5
  120. package/components/table-legacy-ng/table-legacy-ng__pager.js +7 -1
  121. package/components/tabs/collapsible-tab.js +2 -2
  122. package/components/tabs/collapsible-tabs.js +5 -9
  123. package/components/tabs/tab-link.js +4 -2
  124. package/components/tabs/tabs.css +32 -5
  125. package/components/tabs-ng/tabs-ng.js +4 -2
  126. package/components/tabs-ng/{tabs-ng.html → tabs-ng__template.js} +6 -2
  127. package/components/tag/tag.css +5 -2
  128. package/components/tag/tag.examples.js +3 -0
  129. package/components/tag/tag.js +19 -16
  130. package/components/tags-input/tag-input.examples.js +1 -1
  131. package/components/tags-input/tags-input.js +5 -2
  132. package/components/template-ng/template-ng.js +1 -1
  133. package/components/tooltip/tooltip.js +7 -2
  134. package/components/user-agreement/user-agreement.css +1 -5
  135. package/components/user-agreement/user-agreement.examples.js +7 -6
  136. package/components/user-agreement/user-agreement.js +11 -3
  137. package/dist/_helpers/_rollupPluginBabelHelpers.js +1 -90
  138. package/dist/_helpers/anchor.js +6 -7
  139. package/dist/_helpers/badge.js +1 -1
  140. package/dist/_helpers/button-group.js +3 -0
  141. package/dist/_helpers/button-set.js +3 -0
  142. package/dist/_helpers/button-toolbar.js +3 -0
  143. package/dist/_helpers/button__classes.js +16 -15
  144. package/dist/_helpers/card.js +6 -8
  145. package/dist/_helpers/checkbox.js +3 -0
  146. package/dist/_helpers/date-picker.js +1 -1
  147. package/dist/_helpers/dialog__body-scroll-preventer.js +49 -32
  148. package/dist/_helpers/error-message.js +3 -0
  149. package/dist/_helpers/footer.js +121 -0
  150. package/dist/_helpers/grid.js +1 -1
  151. package/dist/_helpers/group.js +3 -0
  152. package/dist/_helpers/header.js +1 -1
  153. package/dist/_helpers/icon.js +3 -0
  154. package/dist/_helpers/inject-styles.js +1 -1
  155. package/dist/_helpers/input.js +3 -0
  156. package/dist/_helpers/island.js +1 -1
  157. package/dist/_helpers/link.js +3 -0
  158. package/dist/_helpers/list.js +1 -1
  159. package/dist/_helpers/loader-screen.js +3 -0
  160. package/dist/_helpers/panel.js +3 -0
  161. package/dist/_helpers/query-assist__suggestions.js +1 -1
  162. package/dist/_helpers/radio.js +3 -0
  163. package/dist/_helpers/select__filter.js +8 -10
  164. package/dist/_helpers/services-link.js +6 -8
  165. package/dist/_helpers/sidebar.js +17 -17
  166. package/dist/_helpers/table.js +1 -1
  167. package/dist/_helpers/tabs.js +1 -1
  168. package/dist/_helpers/title.js +3 -3
  169. package/dist/alert/alert.js +20 -9
  170. package/dist/alert/container.js +7 -9
  171. package/dist/alert-service/alert-service.js +26 -13
  172. package/dist/analytics/analytics.js +2 -2
  173. package/dist/analytics/analytics__custom-plugin.js +1 -1
  174. package/dist/analytics/analytics__fus-plugin.js +13 -11
  175. package/dist/analytics/analytics__ga-plugin.js +3 -3
  176. package/dist/analytics/analytics__plugin-utils.js +1 -1
  177. package/dist/analytics-ng/analytics-ng.js +94 -0
  178. package/dist/auth/auth.js +7 -4
  179. package/dist/auth/auth__core.js +106 -63
  180. package/dist/auth/background-flow.js +1 -2
  181. package/dist/auth/down-notification.js +19 -12
  182. package/dist/auth/iframe-flow.js +5 -2
  183. package/dist/auth/landing-entry.js +1 -1
  184. package/dist/auth/landing.js +5 -2
  185. package/dist/auth/request-builder.js +1 -1
  186. package/dist/auth/response-parser.js +3 -2
  187. package/dist/auth/storage.js +5 -3
  188. package/dist/auth/token-validator.js +6 -5
  189. package/dist/auth/window-flow.js +1 -1
  190. package/dist/auth-dialog/auth-dialog.js +9 -6
  191. package/dist/auth-dialog-service/auth-dialog-service.js +9 -6
  192. package/dist/auth-ng/auth-ng.js +203 -0
  193. package/dist/auth-ng/auth-ng.mock.js +33 -0
  194. package/dist/autofocus-ng/autofocus-ng.js +50 -0
  195. package/dist/avatar/avatar.js +41 -32
  196. package/dist/avatar/fallback-avatar.js +141 -0
  197. package/dist/avatar-editor-ng/avatar-editor-ng.js +164 -0
  198. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +30 -0
  199. package/dist/avatar-ng/avatar-ng.js +18 -0
  200. package/dist/badge/badge.js +6 -8
  201. package/dist/badge-ng/badge-ng.js +16 -0
  202. package/dist/breadcrumb-ng/breadcrumb-ng.js +61 -0
  203. package/dist/button/button.js +16 -10
  204. package/dist/button-group/button-group.js +4 -4
  205. package/dist/button-group/caption.js +24 -5
  206. package/dist/button-group-ng/button-group-ng.js +38 -0
  207. package/dist/button-ng/button-ng.js +223 -0
  208. package/dist/button-set/button-set.js +3 -4
  209. package/dist/button-set-ng/button-set-ng.js +19 -0
  210. package/dist/button-toolbar/button-toolbar.js +3 -4
  211. package/dist/button-toolbar-ng/button-toolbar-ng.js +23 -0
  212. package/dist/caret/caret.js +4 -2
  213. package/dist/checkbox/checkbox.js +11 -13
  214. package/dist/checkbox-ng/checkbox-ng.js +55 -0
  215. package/dist/code/code.js +136 -0
  216. package/dist/compiler-ng/compiler-ng.js +53 -0
  217. package/dist/confirm/confirm.js +8 -5
  218. package/dist/confirm-ng/confirm-ng.js +66 -0
  219. package/dist/confirm-service/confirm-service.js +21 -18
  220. package/dist/content-layout/content-layout.js +8 -10
  221. package/dist/contenteditable/contenteditable.js +14 -17
  222. package/dist/data-list/data-list.js +12 -9
  223. package/dist/data-list/data-list.mock.js +2 -2
  224. package/dist/data-list/item.js +7 -5
  225. package/dist/data-list/selection.js +7 -3
  226. package/dist/data-list/title.js +3 -1
  227. package/dist/data-list-ng/data-list-ng.js +59 -0
  228. package/dist/date-picker/consts.js +1 -2
  229. package/dist/date-picker/date-input.js +17 -12
  230. package/dist/date-picker/date-picker.js +41 -32
  231. package/dist/date-picker/date-popup.js +51 -28
  232. package/dist/date-picker/day.js +4 -4
  233. package/dist/date-picker/formats.js +1 -1
  234. package/dist/date-picker/month-names.js +18 -11
  235. package/dist/date-picker/month-slider.js +4 -4
  236. package/dist/date-picker/month.js +13 -7
  237. package/dist/date-picker/months.js +3 -3
  238. package/dist/date-picker/weekdays.js +12 -4
  239. package/dist/date-picker/years.js +4 -4
  240. package/dist/dialog/dialog.js +21 -16
  241. package/dist/dialog/dialog__body-scroll-preventer.js +1 -1
  242. package/dist/dialog-ng/dialog-ng.js +601 -0
  243. package/dist/dialog-ng/dialog-ng__template.js +71 -0
  244. package/dist/docked-panel-ng/docked-panel-ng.js +170 -0
  245. package/dist/dropdown/anchor.js +2 -1
  246. package/dist/dropdown/dropdown.js +22 -18
  247. package/dist/dropdown-menu/dropdown-menu.js +175 -0
  248. package/dist/error-bubble/error-bubble.js +7 -9
  249. package/dist/error-message/error-message.js +4 -4
  250. package/dist/error-message-ng/error-message-ng.js +53 -0
  251. package/dist/footer/footer.js +6 -119
  252. package/dist/footer-ng/footer-ng.js +75 -0
  253. package/dist/form-ng/form-ng.js +169 -0
  254. package/dist/global/angular-component-factory.js +6 -4
  255. package/dist/global/compose.js +8 -2
  256. package/dist/global/composeRefs.js +13 -7
  257. package/dist/global/conic-gradient.js +13 -12
  258. package/dist/global/create-stateful-context.js +12 -9
  259. package/dist/global/data-tests.js +10 -3
  260. package/dist/global/dom.js +12 -5
  261. package/dist/global/focus-sensor-hoc.js +20 -19
  262. package/dist/global/fuzzy-highlight.js +10 -6
  263. package/dist/global/get-event-key.js +1 -1
  264. package/dist/global/get-uid.js +1 -1
  265. package/dist/global/inject-styles.js +4 -1
  266. package/dist/global/linear-function.js +1 -2
  267. package/dist/global/listeners.js +1 -1
  268. package/dist/global/memoize.js +3 -2
  269. package/dist/global/normalize-indent.js +1 -1
  270. package/dist/global/promise-with-timeout.js +5 -4
  271. package/dist/global/radial-gradient-mask.js +6 -3
  272. package/dist/global/react-dom-renderer.js +3 -3
  273. package/dist/global/rerender-hoc.js +14 -12
  274. package/dist/global/ring-angular-component.js +6 -2
  275. package/dist/global/schedule-raf.js +1 -1
  276. package/dist/global/sniffer.js +1 -1
  277. package/dist/global/supports-css.js +1 -1
  278. package/dist/global/theme.js +27 -26
  279. package/dist/global/trivial-template-tag.js +6 -2
  280. package/dist/global/url.js +3 -1
  281. package/dist/global/variables_dark.js +1 -1
  282. package/dist/grid/col.js +6 -8
  283. package/dist/grid/grid.js +5 -7
  284. package/dist/grid/row.js +6 -8
  285. package/dist/group/group.js +7 -10
  286. package/dist/group-ng/group-ng.js +11 -0
  287. package/dist/header/header.js +29 -26
  288. package/dist/header/logo.js +8 -9
  289. package/dist/header/profile.js +54 -46
  290. package/dist/header/services-link.js +1 -0
  291. package/dist/header/services.js +23 -19
  292. package/dist/header/smart-profile.js +29 -26
  293. package/dist/header/smart-services.js +12 -11
  294. package/dist/header/tray-icon.js +12 -12
  295. package/dist/header/tray.js +6 -8
  296. package/dist/heading/heading.js +10 -13
  297. package/dist/http/http.js +53 -44
  298. package/dist/http/http.mock.js +4 -4
  299. package/dist/hub-source/hub-source.js +1 -1
  300. package/dist/hub-source/hub-source__user.js +4 -2
  301. package/dist/hub-source/hub-source__users-groups.js +5 -3
  302. package/dist/icon/icon.js +8 -8
  303. package/dist/icon/icon__svg.js +81 -6
  304. package/dist/icon/index.js +2 -1
  305. package/dist/icon-ng/icon-ng.js +89 -0
  306. package/dist/input/input.js +11 -14
  307. package/dist/input-ng/input-ng.js +166 -0
  308. package/dist/island/adaptive-island-hoc.js +10 -9
  309. package/dist/island/content.js +8 -10
  310. package/dist/island/header.js +7 -9
  311. package/dist/island/island.js +6 -9
  312. package/dist/island-legacy/content-legacy.js +6 -8
  313. package/dist/island-legacy/header-legacy.js +6 -8
  314. package/dist/island-legacy/island-legacy.js +6 -8
  315. package/dist/island-ng/island-content-ng.js +56 -0
  316. package/dist/island-ng/island-header-ng.js +32 -0
  317. package/dist/island-ng/island-ng-class-fixer.js +9 -0
  318. package/dist/island-ng/island-ng.js +31 -0
  319. package/dist/link/clickableLink.js +8 -10
  320. package/dist/link/link.js +12 -15
  321. package/dist/link-ng/link-ng.js +25 -0
  322. package/dist/list/list.js +100 -76
  323. package/dist/list/list__custom.js +15 -12
  324. package/dist/list/list__hint.js +1 -1
  325. package/dist/list/list__item.js +22 -15
  326. package/dist/list/list__link.js +11 -12
  327. package/dist/list/list__separator.js +1 -1
  328. package/dist/list/list__title.js +1 -1
  329. package/dist/list/list__users-groups-source.js +13 -8
  330. package/dist/loader/loader.js +8 -10
  331. package/dist/loader/loader__core.js +9 -8
  332. package/dist/loader-inline/inject-styles.js +1 -1
  333. package/dist/loader-inline/loader-inline.js +6 -8
  334. package/dist/loader-inline-ng/loader-inline-ng.js +42 -0
  335. package/dist/loader-ng/loader-ng.js +43 -0
  336. package/dist/loader-screen/loader-screen.js +7 -10
  337. package/dist/loader-screen-ng/loader-screen-ng.js +99 -0
  338. package/dist/login-dialog/login-dialog.js +7 -5
  339. package/dist/login-dialog/service.js +9 -6
  340. package/dist/markdown/code.js +30 -0
  341. package/dist/markdown/heading.js +23 -0
  342. package/dist/markdown/link.js +30 -0
  343. package/dist/markdown/markdown.js +73 -0
  344. package/dist/message/message.js +7 -6
  345. package/dist/message-bundle-ng/message-bundle-ng.js +111 -0
  346. package/dist/old-browsers-message/old-browsers-message.js +0 -1
  347. package/dist/old-browsers-message/old-browsers-message__stop.js +0 -1
  348. package/dist/old-browsers-message/white-list.js +4 -5
  349. package/dist/pager/pager.js +20 -11
  350. package/dist/pager-ng/pager-ng.js +96 -0
  351. package/dist/panel/panel.js +7 -10
  352. package/dist/panel-ng/panel-ng.js +16 -0
  353. package/dist/permissions/permissions.js +4 -2
  354. package/dist/permissions/permissions__cache.js +1 -1
  355. package/dist/permissions-ng/permissions-ng.js +274 -0
  356. package/dist/place-under-ng/place-under-ng.js +157 -0
  357. package/dist/popup/popup.js +11 -11
  358. package/dist/popup/popup.target.js +4 -5
  359. package/dist/popup/position.js +18 -16
  360. package/dist/popup-menu/popup-menu.js +23 -16
  361. package/dist/progress-bar/progress-bar.js +14 -12
  362. package/dist/progress-bar-ng/progress-bar-ng.js +15 -0
  363. package/dist/promised-click-ng/promised-click-ng.js +126 -0
  364. package/dist/proxy-attrs/proxy-attrs.js +1 -1
  365. package/dist/query-assist/query-assist.js +156 -76
  366. package/dist/query-assist/query-assist__suggestions.js +5 -1
  367. package/dist/query-assist-ng/query-assist-ng.js +82 -0
  368. package/dist/radio/radio.js +9 -7
  369. package/dist/radio/radio__item.js +13 -18
  370. package/dist/radio-ng/radio-ng.js +63 -0
  371. package/dist/save-field-ng/save-field-ng.js +335 -0
  372. package/dist/save-field-ng/save-field-ng__template.js +34 -0
  373. package/dist/select/select.js +118 -95
  374. package/dist/select/select__filter.js +6 -1
  375. package/dist/select/select__popup.js +12 -6
  376. package/dist/select-ng/select-ng.js +621 -0
  377. package/dist/select-ng/select-ng__lazy.js +150 -0
  378. package/dist/select-ng/select-ng__options.js +145 -0
  379. package/dist/shortcuts/core.js +7 -4
  380. package/dist/shortcuts/shortcuts-hoc.js +8 -10
  381. package/dist/shortcuts/shortcuts.js +6 -6
  382. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +120 -0
  383. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +50 -0
  384. package/dist/shortcuts-ng/shortcuts-ng.js +261 -0
  385. package/dist/sidebar-ng/sidebar-ng.js +111 -0
  386. package/dist/sidebar-ng/sidebar-ng__button-template.js +20 -0
  387. package/dist/sidebar-ng/sidebar-ng__template.js +12 -0
  388. package/dist/storage/storage.js +3 -2
  389. package/dist/storage/storage__fallback.js +3 -2
  390. package/dist/storage/storage__local.js +5 -3
  391. package/dist/style.css +1 -1
  392. package/dist/tab-trap/tab-trap.js +15 -13
  393. package/dist/table/cell.js +2 -2
  394. package/dist/table/disable-hover-hoc.js +4 -4
  395. package/dist/table/header-cell.js +10 -11
  396. package/dist/table/header.js +19 -12
  397. package/dist/table/multitable.js +33 -25
  398. package/dist/table/row-with-focus-sensor.js +7 -5
  399. package/dist/table/row.js +17 -15
  400. package/dist/table/selection-adapter.js +1 -1
  401. package/dist/table/selection-shortcuts-hoc.js +10 -8
  402. package/dist/table/selection.js +25 -17
  403. package/dist/table/smart-table.js +16 -10
  404. package/dist/table/table.js +38 -33
  405. package/dist/table-legacy-ng/table-legacy-ng.js +501 -0
  406. package/dist/table-legacy-ng/table-legacy-ng__pager.js +122 -0
  407. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +123 -0
  408. package/dist/table-legacy-ng/table-legacy-ng__selection.js +179 -0
  409. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +56 -0
  410. package/dist/table-ng/smart-table-ng.js +65 -0
  411. package/dist/table-ng/table-ng.js +64 -0
  412. package/dist/tabs/collapsible-more.js +37 -30
  413. package/dist/tabs/collapsible-tab.js +16 -14
  414. package/dist/tabs/collapsible-tabs.js +83 -80
  415. package/dist/tabs/custom-item.js +6 -3
  416. package/dist/tabs/dumb-tabs.js +19 -14
  417. package/dist/tabs/smart-tabs.js +13 -11
  418. package/dist/tabs/tab-link.js +13 -7
  419. package/dist/tabs/tab.js +1 -1
  420. package/dist/tabs/tabs.js +5 -1
  421. package/dist/tabs-ng/tabs-ng.js +193 -0
  422. package/dist/tabs-ng/tabs-ng__template.js +40 -0
  423. package/dist/tag/tag.js +22 -16
  424. package/dist/tags-input/tags-input.js +48 -36
  425. package/dist/tags-input-ng/tags-input-ng.js +89 -0
  426. package/dist/tags-list/tags-list.js +8 -9
  427. package/dist/template-ng/template-ng.js +70 -0
  428. package/dist/text/text.js +7 -9
  429. package/dist/theme-ng/theme-ng.js +44 -0
  430. package/dist/title-ng/title-ng.js +114 -0
  431. package/dist/toggle/toggle.js +8 -11
  432. package/dist/toggle-ng/toggle-ng.js +16 -0
  433. package/dist/tooltip/tooltip.js +16 -14
  434. package/dist/tooltip-ng/tooltip-ng.js +98 -0
  435. package/dist/user-agreement/service.js +409 -0
  436. package/dist/user-agreement/toolbox.eula.js +162 -0
  437. package/dist/user-agreement/user-agreement.js +167 -0
  438. package/dist/user-card/card.js +3 -0
  439. package/dist/user-card/smart-user-card-tooltip.js +16 -16
  440. package/dist/user-card/tooltip.js +9 -7
  441. package/dist/user-card/user-card.js +5 -2
  442. package/dist/user-card-ng/user-card-ng.js +59 -0
  443. package/package.json +83 -81
  444. package/webpack.config.js +14 -10
  445. package/components/button-set-ng/button-set-ng.html +0 -1
  446. package/components/footer-ng/footer-ng.html +0 -13
  447. package/components/form-ng/form-ng__error-bubble.html +0 -3
  448. package/components/table-legacy-ng/table-legacy-ng.html +0 -4
  449. package/components/table-legacy-ng/table-legacy-ng__column.html +0 -12
  450. package/components/table-legacy-ng/table-legacy-ng__header.html +0 -4
  451. package/components/table-legacy-ng/table-legacy-ng__pager.html +0 -7
  452. package/components/table-legacy-ng/table-legacy-ng__row.html +0 -12
  453. package/components/table-legacy-ng/table-legacy-ng__title.html +0 -9
  454. package/dist/_helpers/caption.js +0 -25
  455. package/dist/_helpers/icon__svg.js +0 -83
@@ -1,4 +1,4 @@
1
- import { _ as _defineProperty, a as _objectWithoutProperties, b as _extends, c as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React from 'react';
3
3
  import { render } from 'react-dom';
4
4
  import getUID from '../global/get-uid.js';
@@ -13,7 +13,8 @@ import '@jetbrains/icons/close';
13
13
  import '../icon/icon.js';
14
14
  import 'util-deprecate';
15
15
  import '../icon/icon__constants.js';
16
- import '../_helpers/icon__svg.js';
16
+ import '../_helpers/icon.js';
17
+ import '../icon/icon__svg.js';
17
18
  import '../global/memoize.js';
18
19
  import '../loader-inline/loader-inline.js';
19
20
  import '../global/theme.js';
@@ -51,10 +52,9 @@ class AlertService {
51
52
  return /*#__PURE__*/React.createElement(Alerts, null, alerts.map(alert => {
52
53
  const {
53
54
  message,
54
- key
55
- } = alert,
56
- rest = _objectWithoutProperties(alert, ["message", "key"]);
57
-
55
+ key,
56
+ ...rest
57
+ } = alert;
58
58
  return /*#__PURE__*/React.createElement(Alert, _extends({
59
59
  key: key
60
60
  }, rest), message);
@@ -101,7 +101,14 @@ class AlertService {
101
101
  }, ANIMATION_TIME);
102
102
  }
103
103
 
104
- addAlert(message, type, timeout = this.defaultTimeout, restOptions = {}) {
104
+ addAlert(message, type) {
105
+ let timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.defaultTimeout;
106
+ let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
107
+ const {
108
+ onCloseRequest,
109
+ onClose,
110
+ ...restOptions
111
+ } = options;
105
112
  const sameAlert = this.findSameAlert(message, type);
106
113
 
107
114
  if (sameAlert) {
@@ -111,16 +118,22 @@ class AlertService {
111
118
  return sameAlert.key;
112
119
  }
113
120
 
114
- const alert = _objectSpread2({
121
+ const alert = {
115
122
  key: getUID('alert-service-'),
116
123
  message,
117
124
  type,
118
125
  timeout,
119
126
  isClosing: false,
120
- onCloseRequest: () => this.startAlertClosing(alert),
121
- onClose: () => this.removeWithoutAnimation(alert.key)
122
- }, restOptions);
123
-
127
+ onCloseRequest: () => {
128
+ onCloseRequest && onCloseRequest();
129
+ this.startAlertClosing(alert);
130
+ },
131
+ onClose: () => {
132
+ onClose && onClose();
133
+ this.removeWithoutAnimation(alert.key);
134
+ },
135
+ ...restOptions
136
+ };
124
137
  this.showingAlerts = [alert, ...this.showingAlerts];
125
138
  this.renderAlerts();
126
139
  return alert.key;
@@ -154,4 +167,4 @@ class AlertService {
154
167
 
155
168
  const alertService = new AlertService();
156
169
 
157
- export default alertService;
170
+ export { alertService as default };
@@ -111,6 +111,6 @@ class Analytics {
111
111
 
112
112
  }
113
113
 
114
- var analytics = new Analytics();
114
+ var analyticsInstance = new Analytics();
115
115
 
116
- export default analytics;
116
+ export { analyticsInstance as default };
@@ -124,4 +124,4 @@ class AnalyticsCustomPlugin {
124
124
 
125
125
  }
126
126
 
127
- export default AnalyticsCustomPlugin;
127
+ export { AnalyticsCustomPlugin as default };
@@ -16,21 +16,23 @@ import 'sniffr';
16
16
  */
17
17
 
18
18
  class AnalyticsFUSPlugin {
19
- constructor({
20
- productId,
21
- productBuild,
22
- recorderVersion = '1',
23
- isDevelopment = false,
24
- groups = []
25
- }) {
19
+ constructor(_ref) {
20
+ let {
21
+ productId,
22
+ productBuild,
23
+ recorderVersion = '1',
24
+ isDevelopment = false,
25
+ groups = []
26
+ } = _ref;
27
+
26
28
  if (!productId && !isDevelopment) {
27
29
  return;
28
30
  }
29
31
 
30
32
  ((i, s, o, g, r) => {
31
- i[r] = i[r] || (() => {
33
+ i[r] = i[r] || function addArgumentsToQueueForWaitingTheScriptLoading() {
32
34
  (i[r].query = i[r].query || []).push(arguments);
33
- });
35
+ };
34
36
 
35
37
  const script = document.createElement(o);
36
38
  script.async = true;
@@ -46,7 +48,7 @@ class AnalyticsFUSPlugin {
46
48
  recorderVersion,
47
49
  productCode: productId,
48
50
  productBuild,
49
- internal: true,
51
+ internal: isDevelopment,
50
52
  groups,
51
53
  useForSubdomains: true
52
54
  });
@@ -96,4 +98,4 @@ class AnalyticsFUSPlugin {
96
98
 
97
99
  }
98
100
 
99
- export default AnalyticsFUSPlugin;
101
+ export { AnalyticsFUSPlugin as default };
@@ -12,9 +12,9 @@ class AnalyticsGAPlugin {
12
12
  ((i, s, o, g, r) => {
13
13
  i.GoogleAnalyticsObject = r;
14
14
 
15
- i[r] = i[r] || (() => {
15
+ i[r] = i[r] || function addArgumentsToQueueForWaitingTheScriptLoading() {
16
16
  (i[r].q = i[r].q || []).push(arguments);
17
- });
17
+ };
18
18
 
19
19
  i[r].l = 1 * new Date();
20
20
  const a = s.createElement(o);
@@ -63,4 +63,4 @@ class AnalyticsGAPlugin {
63
63
 
64
64
  }
65
65
 
66
- export default AnalyticsGAPlugin;
66
+ export { AnalyticsGAPlugin as default };
@@ -76,4 +76,4 @@ AnalyticsPluginUtils.getDevicePixelRatioPresentation = () => {
76
76
  return String(window.devicePixelRatio.toFixed(1));
77
77
  };
78
78
 
79
- export default AnalyticsPluginUtils;
79
+ export { AnalyticsPluginUtils as default };
@@ -0,0 +1,94 @@
1
+ import angular from 'angular';
2
+ import analyticsInstance from '../analytics/analytics.js';
3
+ import AnalyticsGAPlugin from '../analytics/analytics__ga-plugin.js';
4
+ import AnalyticsFUSPlugin from '../analytics/analytics__fus-plugin.js';
5
+ import AnalyticsCustomPlugin from '../analytics/analytics__custom-plugin.js';
6
+ import '../analytics/analytics__plugin-utils.js';
7
+ import '../global/sniffer.js';
8
+ import 'sniffr';
9
+
10
+ /**
11
+ * @name Analytics Ng
12
+ */
13
+
14
+ const angularModule = angular.module('Ring.analytics', []);
15
+ /**
16
+ * @name analyticsProvider
17
+ * @description Configures analytics with plugins.
18
+ */
19
+
20
+ angularModule.provider('analytics', function provider() {
21
+ let configPlugins = [];
22
+ /**
23
+ * @param plugins
24
+ */
25
+
26
+ this.plugins = plugins => {
27
+ configPlugins = plugins;
28
+ };
29
+
30
+ this.$get = ["$log", "$injector", function get($log, $injector) {
31
+ const loadedPlugins = [];
32
+
33
+ for (let i = 0; i < configPlugins.length; ++i) {
34
+ if (typeof configPlugins[i] === 'string') {
35
+ try {
36
+ const plugin = $injector.get(configPlugins[i]);
37
+ loadedPlugins.push(plugin);
38
+ $log.debug(`analytics: loaded plugin ${configPlugins[i]}`);
39
+ } catch (err) {
40
+ $log.debug(`analytics: unable to load factory ${configPlugins[i]}`);
41
+ }
42
+ } else {
43
+ loadedPlugins.push(configPlugins[i]);
44
+ }
45
+ }
46
+
47
+ analyticsInstance.config(loadedPlugins);
48
+ return analyticsInstance;
49
+ }];
50
+ });
51
+ angularModule.constant('AnalyticsGAPlugin', AnalyticsGAPlugin);
52
+ angularModule.constant('AnalyticsCustomPlugin', AnalyticsCustomPlugin);
53
+ angularModule.constant('AnalyticsFUSPlugin', AnalyticsFUSPlugin);
54
+ /**
55
+ * Enable page tracking
56
+ */
57
+
58
+ angularModule.run(["$rootScope", "analytics", function analyticsRun($rootScope, analytics) {
59
+ $rootScope.$on('$routeChangeSuccess', (evt, current) => {
60
+ // eslint-disable-line angular/on-watch
61
+
62
+ /* eslint-disable angular/no-private-call */
63
+ if (current && current.$$route && current.$$route.originalPath) {
64
+ analytics.trackPageView(current.$$route.originalPath);
65
+ }
66
+ /* eslint-enable angular/no-private-call */
67
+
68
+ });
69
+ }]);
70
+ /**
71
+ * @ngdoc directive
72
+ * @name rg-analytics
73
+ *
74
+ * @description
75
+ * The `rg-analytics="<categoryName>:<eventName>"` sends categoryName and eventName to analytics server on
76
+ * user action, specified via attribute `rg-analytics-on` (e.g. rg-analytics-on='mouseover' means that analytics will be sent on mouseover,
77
+ * rg-analytics-on='click' - on click). If there is no attribute rg-analytics-on, the default value 'click' is used.
78
+ */
79
+
80
+ angularModule.directive('rgAnalytics', ["analytics", function rgAnalyticsDirective(analytics) {
81
+ return {
82
+ restrict: 'A',
83
+ replace: false,
84
+ link: function link($scope, elem) {
85
+ const eventType = elem.attr('rg-analytics-on') || 'click';
86
+ angular.element(elem).bind(eventType, () => {
87
+ analytics.track(elem.attr('rg-analytics'));
88
+ });
89
+ }
90
+ };
91
+ }]);
92
+ var analyticsNg = angularModule.name;
93
+
94
+ export { analyticsNg as default };
package/dist/auth/auth.js CHANGED
@@ -1,8 +1,8 @@
1
- import { c as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
1
  import WindowFlow from './window-flow.js';
3
2
  import onBackendDown from './down-notification.js';
4
3
  import Auth from './auth__core.js';
5
4
  export { DEFAULT_BACKGROUND_TIMEOUT, DEFAULT_EXPIRES_TIMEOUT, DOMAIN_USER_CHANGED_EVENT, LOGOUT_EVENT, LOGOUT_POSTPONED_EVENT, USER_CHANGED_EVENT, USER_CHANGE_POSTPONED_EVENT, default } from './auth__core.js';
5
+ import '../_helpers/_rollupPluginBabelHelpers.js';
6
6
  import './response-parser.js';
7
7
  import 'es6-error';
8
8
  import '../global/url.js';
@@ -20,7 +20,8 @@ import '@jetbrains/icons/close';
20
20
  import '../icon/icon.js';
21
21
  import 'util-deprecate';
22
22
  import '../icon/icon__constants.js';
23
- import '../_helpers/icon__svg.js';
23
+ import '../_helpers/icon.js';
24
+ import '../icon/icon__svg.js';
24
25
  import '../global/memoize.js';
25
26
  import '../loader-inline/loader-inline.js';
26
27
  import '../global/theme.js';
@@ -36,7 +37,9 @@ import '../alert/container.js';
36
37
  import '../link/link.js';
37
38
  import 'focus-visible';
38
39
  import '../link/clickableLink.js';
40
+ import '../_helpers/link.js';
39
41
  import '../group/group.js';
42
+ import '../_helpers/group.js';
40
43
  import '../global/listeners.js';
41
44
  import '../http/http.js';
42
45
  import '../global/promise-with-timeout.js';
@@ -84,7 +87,7 @@ import './token-validator.js';
84
87
  * Extend Auth config with non-required and not pure-JS stuff
85
88
  */
86
89
 
87
- Auth.DEFAULT_CONFIG = _objectSpread2(_objectSpread2({}, Auth.DEFAULT_CONFIG), {}, {
90
+ Auth.DEFAULT_CONFIG = { ...Auth.DEFAULT_CONFIG,
88
91
  EmbeddedLoginFlow: WindowFlow,
89
92
  onBackendDown: onBackendDown
90
- });
93
+ };
@@ -1,5 +1,5 @@
1
- import { _ as _defineProperty, c as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import { fixUrl, getAbsoluteBaseURL } from '../global/url.js';
1
+ import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import { getAbsoluteBaseURL, fixUrl } from '../global/url.js';
3
3
  import Listeners from '../global/listeners.js';
4
4
  import HTTP from '../http/http.js';
5
5
  import promiseWithTimeout from '../global/promise-with-timeout.js';
@@ -25,7 +25,8 @@ import '@jetbrains/icons/close';
25
25
  import '../icon/icon.js';
26
26
  import 'util-deprecate';
27
27
  import '../icon/icon__constants.js';
28
- import '../_helpers/icon__svg.js';
28
+ import '../_helpers/icon.js';
29
+ import '../icon/icon__svg.js';
29
30
  import '../global/memoize.js';
30
31
  import '../loader-inline/loader-inline.js';
31
32
  import '../global/theme.js';
@@ -48,6 +49,7 @@ const DEFAULT_EXPIRES_TIMEOUT = 40 * 60;
48
49
  const DEFAULT_BACKGROUND_TIMEOUT = 10 * 1000;
49
50
  const DEFAULT_BACKEND_CHECK_TIMEOUT = 10 * 1000;
50
51
  const BACKGROUND_REDIRECT_TIMEOUT = 20 * 1000;
52
+ const DEFAULT_WAIT_FOR_REDIRECT_TIMEOUT = 5 * 1000;
51
53
  /* eslint-enable no-magic-numbers */
52
54
 
53
55
  const USER_CHANGED_EVENT = 'userChange';
@@ -79,6 +81,7 @@ const DEFAULT_CONFIG = {
79
81
  checkBackendIsUp: () => Promise.resolve(null),
80
82
  onBackendDown: () => {},
81
83
  defaultExpiresIn: DEFAULT_EXPIRES_TIMEOUT,
84
+ waitForRedirectTimeout: DEFAULT_WAIT_FOR_REDIRECT_TIMEOUT,
82
85
  translations: {
83
86
  login: 'Log in',
84
87
  loginTo: 'Log in to %serviceName%',
@@ -135,7 +138,9 @@ class Auth {
135
138
  }
136
139
 
137
140
  config.userFields = config.userFields || [];
138
- this.config = _objectSpread2(_objectSpread2({}, Auth.DEFAULT_CONFIG), config);
141
+ this.config = { ...Auth.DEFAULT_CONFIG,
142
+ ...config
143
+ };
139
144
  const {
140
145
  clientId,
141
146
  redirect,
@@ -227,7 +232,8 @@ class Auth {
227
232
  this.setUpPreconnect(config.serverUri);
228
233
  }
229
234
 
230
- _setPostponed(postponed = false) {
235
+ _setPostponed() {
236
+ let postponed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
231
237
  this._postponed = postponed;
232
238
  }
233
239
 
@@ -268,7 +274,7 @@ class Auth {
268
274
 
269
275
 
270
276
  async init() {
271
- this._storage.onTokenChange(token => {
277
+ this._storage.onTokenChange(async token => {
272
278
  const isGuest = this.user ? this.user.guest : false;
273
279
 
274
280
  if (isGuest && !token) {
@@ -278,14 +284,25 @@ class Auth {
278
284
  if (!token) {
279
285
  this.logout();
280
286
  } else {
281
- this._detectUserChange(token.accessToken);
287
+ try {
288
+ await this._detectUserChange(token.accessToken);
289
+ } catch (error) {
290
+ if (this._canShowDialogs()) {
291
+ this._showAuthDialog({
292
+ nonInteractive: true,
293
+ error
294
+ });
295
+ }
296
+ }
282
297
  }
283
298
  });
284
299
 
285
- this._domainStorage.onMessage(DOMAIN_USER_CHANGED_EVENT, ({
286
- userID,
287
- serviceID
288
- }) => {
300
+ this._domainStorage.onMessage(DOMAIN_USER_CHANGED_EVENT, _ref => {
301
+ let {
302
+ userID,
303
+ serviceID
304
+ } = _ref;
305
+
289
306
  if (serviceID === this.config.clientId) {
290
307
  return;
291
308
  }
@@ -357,8 +374,12 @@ class Auth {
357
374
  async sendRedirect(error) {
358
375
  const authRequest = await this._requestBuilder.prepareAuthRequest();
359
376
 
360
- this._redirectCurrentPage(authRequest.url);
377
+ this._redirectCurrentPage(authRequest.url); // HUB-10867 Since we already redirecting the page, there is no actual need to throw an error
378
+ // and scare user with flashing error
379
+ // But let's keep it just in case redirect was not successful
361
380
 
381
+
382
+ await new Promise(resolve => setTimeout(resolve, this.config.waitForRedirectTimeout));
362
383
  throw error;
363
384
  }
364
385
 
@@ -536,39 +557,35 @@ class Auth {
536
557
 
537
558
  async _detectUserChange(accessToken) {
538
559
  const windowWasOpen = this._isLoginWindowOpen;
560
+ const user = await this.getUser(accessToken);
539
561
 
540
- try {
541
- const user = await this.getUser(accessToken);
562
+ const onApply = () => {
563
+ this.user = user;
564
+ this.listeners.trigger(USER_CHANGED_EVENT, user);
565
+ };
542
566
 
543
- const onApply = () => {
544
- this.user = user;
545
- this.listeners.trigger(USER_CHANGED_EVENT, user);
546
- };
567
+ if (user && this.user && this.user.id !== user.id) {
568
+ if (!this._canShowDialogs() || this.user.guest || windowWasOpen) {
569
+ onApply();
570
+ return;
571
+ }
547
572
 
548
- if (user && this.user && this.user.id !== user.id) {
549
- if (!this._canShowDialogs() || this.user.guest || windowWasOpen) {
550
- onApply();
551
- return;
552
- }
573
+ if (user.guest) {
574
+ this._showAuthDialog({
575
+ nonInteractive: true
576
+ });
553
577
 
554
- if (user.guest) {
555
- this._showAuthDialog({
556
- nonInteractive: true
557
- });
578
+ return;
579
+ }
558
580
 
559
- return;
581
+ await this._showUserChangedDialog({
582
+ newUser: user,
583
+ onApply,
584
+ onPostpone: () => {
585
+ this.listeners.trigger(USER_CHANGE_POSTPONED_EVENT);
586
+ this.config.onPostponeChangedUser(this.user, user);
560
587
  }
561
-
562
- await this._showUserChangedDialog({
563
- newUser: user,
564
- onApply,
565
- onPostpone: () => {
566
- this.listeners.trigger(USER_CHANGE_POSTPONED_EVENT);
567
- this.config.onPostponeChangedUser(this.user, user);
568
- }
569
- });
570
- }
571
- } catch (e) {// noop
588
+ });
572
589
  }
573
590
  }
574
591
 
@@ -582,11 +599,12 @@ class Auth {
582
599
  this.logout();
583
600
  }
584
601
 
585
- _showAuthDialog({
586
- nonInteractive,
587
- error,
588
- canCancel
589
- } = {}) {
602
+ _showAuthDialog() {
603
+ let {
604
+ nonInteractive,
605
+ error,
606
+ canCancel
607
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
590
608
  const {
591
609
  embeddedLogin,
592
610
  onPostponeLogout,
@@ -636,15 +654,15 @@ class Auth {
636
654
  }
637
655
  };
638
656
 
639
- const hide = this._authDialogService(_objectSpread2(_objectSpread2({}, this._service), {}, {
657
+ const hide = this._authDialogService({ ...this._service,
640
658
  loginCaption: translations.login,
641
659
  loginToCaption: translations.loginTo,
642
660
  confirmLabel: translations.login,
643
661
  cancelLabel: cancelable ? translations.cancel : translations.postpone,
644
- errorMessage: error && error.toString ? error.toString() : null,
662
+ errorMessage: this._extractErrorMessage(error, true),
645
663
  onConfirm,
646
664
  onCancel
647
- }));
665
+ });
648
666
 
649
667
  const stopTokenListening = this._storage.onTokenChange(token => {
650
668
  if (token) {
@@ -657,11 +675,12 @@ class Auth {
657
675
  const stopMessageListening = this._storage.onMessage(Auth.CLOSE_WINDOW_MESSAGE, () => this._embeddedFlow.stop());
658
676
  }
659
677
 
660
- _showUserChangedDialog({
661
- newUser,
662
- onApply,
663
- onPostpone
664
- } = {}) {
678
+ _showUserChangedDialog() {
679
+ let {
680
+ newUser,
681
+ onApply,
682
+ onPostpone
683
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
665
684
  const {
666
685
  translations
667
686
  } = this.config;
@@ -675,7 +694,7 @@ class Auth {
675
694
  hide();
676
695
  };
677
696
 
678
- const hide = this._authDialogService(_objectSpread2(_objectSpread2({}, this._service), {}, {
697
+ const hide = this._authDialogService({ ...this._service,
679
698
  title: translations.youHaveLoggedInAs.replace('%userName%', newUser.name),
680
699
  loginCaption: translations.login,
681
700
  loginToCaption: translations.loginTo,
@@ -689,7 +708,32 @@ class Auth {
689
708
  done();
690
709
  onPostpone();
691
710
  }
692
- }));
711
+ });
712
+ }
713
+
714
+ _extractErrorMessage(error) {
715
+ let logError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
716
+
717
+ if (!error) {
718
+ return null;
719
+ }
720
+
721
+ if (logError) {
722
+ // eslint-disable-next-line no-console
723
+ console.error('RingUI Auth error', error);
724
+ }
725
+
726
+ try {
727
+ // We've got some error from this list
728
+ // https://www.jetbrains.com/help/youtrack/devportal/OAuth-2.0-Errors.html
729
+ if (error.code && typeof error.code.code === 'string') {
730
+ const readableCode = error.code.code.split('_').join(' ');
731
+ return `Authorization error: ${readableCode}`;
732
+ }
733
+ } catch {// noop
734
+ }
735
+
736
+ return error.toString ? error.toString() : null;
693
737
  }
694
738
 
695
739
  _showBackendDownDialog(backendError) {
@@ -755,11 +799,11 @@ class Auth {
755
799
 
756
800
 
757
801
  async logout(extraParams) {
758
- const requestParams = _objectSpread2({
802
+ const requestParams = {
759
803
  // eslint-disable-next-line camelcase
760
- request_credentials: 'required'
761
- }, extraParams);
762
-
804
+ request_credentials: 'required',
805
+ ...extraParams
806
+ };
763
807
  await this._checkBackendsStatusesIfEnabled();
764
808
  await this.listeners.trigger(LOGOUT_EVENT);
765
809
 
@@ -813,11 +857,11 @@ class Auth {
813
857
  }
814
858
 
815
859
  async switchUser() {
816
- if (this.config.embeddedLogin) {
817
- await this._runEmbeddedLogin();
860
+ if (!this.config.embeddedLogin) {
861
+ throw new Error('Auth: switchUser only supported for "embeddedLogin" mode');
818
862
  }
819
863
 
820
- throw new Error('Auth: switchUser only supported for "embeddedLogin" mode');
864
+ await this._runEmbeddedLogin();
821
865
  }
822
866
  /**
823
867
  * Check if the hash contains an access token.
@@ -978,5 +1022,4 @@ _defineProperty(Auth, "shouldRefreshToken", TokenValidator.shouldRefreshToken);
978
1022
 
979
1023
  _defineProperty(Auth, "storageIsUnavailable", !navigator.cookieEnabled);
980
1024
 
981
- export default Auth;
982
- export { DEFAULT_BACKGROUND_TIMEOUT, DEFAULT_EXPIRES_TIMEOUT, DOMAIN_USER_CHANGED_EVENT, LOGOUT_EVENT, LOGOUT_POSTPONED_EVENT, USER_CHANGED_EVENT, USER_CHANGE_POSTPONED_EVENT };
1025
+ export { DEFAULT_BACKGROUND_TIMEOUT, DEFAULT_EXPIRES_TIMEOUT, DOMAIN_USER_CHANGED_EVENT, LOGOUT_EVENT, LOGOUT_POSTPONED_EVENT, USER_CHANGED_EVENT, USER_CHANGE_POSTPONED_EVENT, Auth as default };
@@ -119,5 +119,4 @@ class BackgroundFlow {
119
119
 
120
120
  }
121
121
 
122
- export default BackgroundFlow;
123
- export { HUB_AUTH_PAGE_OPENED };
122
+ export { HUB_AUTH_PAGE_OPENED, BackgroundFlow as default };
@@ -16,7 +16,8 @@ import '@jetbrains/icons/close';
16
16
  import '../icon/icon.js';
17
17
  import 'util-deprecate';
18
18
  import '../icon/icon__constants.js';
19
- import '../_helpers/icon__svg.js';
19
+ import '../_helpers/icon.js';
20
+ import '../icon/icon__svg.js';
20
21
  import '../global/memoize.js';
21
22
  import '../loader-inline/loader-inline.js';
22
23
  import '../global/theme.js';
@@ -30,12 +31,15 @@ import '../global/radial-gradient-mask.js';
30
31
  import '../global/dom.js';
31
32
  import 'focus-visible';
32
33
  import '../link/clickableLink.js';
34
+ import '../_helpers/link.js';
35
+ import '../_helpers/group.js';
33
36
 
34
- var modules_c87dd562 = {"unit":"8px","title":"downNotification_title__dc35b944","error":"downNotification_error__dc35b944"};
37
+ var modules_c87dd562 = {"unit":"8px","title":"title_rui_dc35","error":"error_rui_dc35"};
35
38
 
36
39
  let key = null;
37
40
 
38
- function renderAlert(message, type = Alert.Type.WARNING) {
41
+ function renderAlert(message) {
42
+ let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Alert.Type.WARNING;
39
43
  const existingAlert = alertService.showingAlerts.filter(alert => alert.key === key)[0];
40
44
 
41
45
  if (!existingAlert) {
@@ -49,10 +53,11 @@ function renderAlert(message, type = Alert.Type.WARNING) {
49
53
  }
50
54
  }
51
55
 
52
- function Message({
53
- translations,
54
- onCheckAgain
55
- }) {
56
+ function Message(_ref) {
57
+ let {
58
+ translations,
59
+ onCheckAgain
60
+ } = _ref;
56
61
  const {
57
62
  backendIsNotAvailable,
58
63
  checkAgain,
@@ -78,10 +83,12 @@ Message.propTypes = {
78
83
  }),
79
84
  onCheckAgain: PropTypes.func
80
85
  };
81
- function onBackendDown({
82
- onCheckAgain,
83
- translations
84
- }) {
86
+ function onBackendDown(_ref2) {
87
+ let {
88
+ onCheckAgain,
89
+ translations
90
+ } = _ref2;
91
+
85
92
  async function checkAgainWithoutClosing(e) {
86
93
  // Alert has weird behaviour of handling clicks by "a" tags
87
94
  e.stopPropagation();
@@ -104,4 +111,4 @@ function onBackendDown({
104
111
  return () => alertService.remove(key);
105
112
  }
106
113
 
107
- export default onBackendDown;
114
+ export { onBackendDown as default };