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

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 (438) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +22 -16
  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.examples.js +1 -1
  35. package/components/date-picker/date-picker.js +16 -14
  36. package/components/date-picker/date-popup.js +22 -7
  37. package/components/date-picker/month-names.js +8 -5
  38. package/components/date-picker/month.js +6 -2
  39. package/components/date-picker/weekdays.js +10 -2
  40. package/components/dialog/dialog.examples.js +3 -1
  41. package/components/dialog/dialog.js +5 -2
  42. package/components/dialog/dialog.test.js +1 -1
  43. package/components/dialog/dialog__body-scroll-preventer.js +2 -2
  44. package/components/dialog-ng/dialog-ng.js +7 -8
  45. package/components/dialog-ng/{dialog-ng.html → dialog-ng__template.js} +2 -2
  46. package/components/dropdown/anchor.js +1 -0
  47. package/components/dropdown/dropdown.examples.js +36 -1
  48. package/components/dropdown-menu/dropdown-menu.examples.js +47 -0
  49. package/components/dropdown-menu/dropdown-menu.js +117 -0
  50. package/components/dropdown-menu/dropdown-menu.test.js +76 -0
  51. package/components/error-bubble/error-bubble-legacy.css +1 -1
  52. package/components/error-bubble/error-bubble.css +1 -1
  53. package/components/error-bubble/error-bubble.examples.js +1 -1
  54. package/components/error-page/error-page.css +2 -2
  55. package/components/footer-ng/footer-ng.js +13 -3
  56. package/components/form/form.css +2 -2
  57. package/components/form-ng/form-ng.js +3 -1
  58. package/components/global/global.css +1 -1
  59. package/components/global/theme.js +1 -1
  60. package/components/global/variables.css +8 -1
  61. package/components/grid/grid.css +10 -9
  62. package/components/header/header.css +1 -1
  63. package/components/header/header.examples.js +7 -8
  64. package/components/header/profile.js +10 -11
  65. package/components/http/http.js +1 -1
  66. package/components/icon/icon.css +5 -4
  67. package/components/island/island.css +4 -3
  68. package/components/island-legacy/island-legacy.css +3 -1
  69. package/components/list/list.js +6 -1
  70. package/components/list/list__custom.js +9 -3
  71. package/components/list/list__item.js +8 -2
  72. package/components/list/list__link.js +2 -1
  73. package/components/loader-inline/loader-inline.css +1 -1
  74. package/components/loader-screen/loader-screen.css +1 -1
  75. package/components/message/message.css +1 -1
  76. package/components/message/message.examples.js +8 -5
  77. package/components/pager/pager.js +5 -3
  78. package/components/permissions/permissions.js +1 -1
  79. package/components/progress-bar/progress-bar.css +1 -1
  80. package/components/progress-bar/progress-bar.examples.js +3 -3
  81. package/components/progress-bar/progress-bar.js +5 -2
  82. package/components/progress-bar/progress-bar.test.js +12 -13
  83. package/components/progress-bar-ng/progress-bar-ng.examples.js +3 -3
  84. package/components/query-assist/query-assist.css +13 -3
  85. package/components/query-assist/query-assist.examples.js +3 -1
  86. package/components/query-assist/query-assist.js +56 -12
  87. package/components/query-assist/query-assist.test.js +37 -5
  88. package/components/save-field-ng/save-field-ng.css +0 -3
  89. package/components/save-field-ng/save-field-ng.js +3 -1
  90. package/components/save-field-ng/{save-field-ng.html → save-field-ng__template.js} +2 -2
  91. package/components/select/select.css +12 -7
  92. package/components/select/select.examples.js +13 -0
  93. package/components/select/select.js +30 -43
  94. package/components/select/select.test.js +4 -5
  95. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  96. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -1
  97. package/components/shortcuts-hint-ng/{shortcuts-hint-ng.html → shortcuts-hint-ng__template.js} +2 -2
  98. package/components/sidebar/sidebar.css +1 -0
  99. package/components/sidebar-ng/sidebar-ng.js +6 -2
  100. package/components/sidebar-ng/{sidebar-ng__button.html → sidebar-ng__button-template.js} +2 -2
  101. package/components/sidebar-ng/{sidebar-ng.html → sidebar-ng__template.js} +2 -2
  102. package/components/table/row.js +2 -1
  103. package/components/table/table.css +2 -1
  104. package/components/table-legacy/table-legacy.css +2 -2
  105. package/components/table-legacy/table-legacy__toolbar.css +2 -2
  106. package/components/table-legacy-ng/table-legacy-ng.js +38 -5
  107. package/components/table-legacy-ng/table-legacy-ng__pager.js +7 -1
  108. package/components/tabs/collapsible-tab.js +2 -2
  109. package/components/tabs/collapsible-tabs.js +4 -8
  110. package/components/tabs/dumb-tabs.js +1 -0
  111. package/components/tabs/tab-link.js +4 -2
  112. package/components/tabs/tabs.css +27 -0
  113. package/components/tabs-ng/tabs-ng.js +4 -2
  114. package/components/tabs-ng/{tabs-ng.html → tabs-ng__template.js} +6 -2
  115. package/components/tag/tag.css +5 -2
  116. package/components/tag/tag.examples.js +3 -0
  117. package/components/tag/tag.js +19 -16
  118. package/components/tags-input/tag-input.examples.js +1 -1
  119. package/components/tags-input/tags-input.js +5 -2
  120. package/components/template-ng/template-ng.js +1 -1
  121. package/components/tooltip/tooltip.js +7 -2
  122. package/components/user-agreement/user-agreement.css +1 -1
  123. package/components/user-agreement/user-agreement.examples.js +7 -4
  124. package/components/user-agreement/user-agreement.js +1 -0
  125. package/dist/_helpers/_rollupPluginBabelHelpers.js +1 -94
  126. package/dist/_helpers/anchor.js +6 -6
  127. package/dist/_helpers/badge.js +1 -1
  128. package/dist/_helpers/button-group.js +3 -0
  129. package/dist/_helpers/button-set.js +3 -0
  130. package/dist/_helpers/button-toolbar.js +3 -0
  131. package/dist/_helpers/button__classes.js +1 -1
  132. package/dist/_helpers/card.js +6 -8
  133. package/dist/_helpers/checkbox.js +3 -0
  134. package/dist/_helpers/date-picker.js +1 -1
  135. package/dist/_helpers/dialog__body-scroll-preventer.js +3 -2
  136. package/dist/_helpers/error-message.js +3 -0
  137. package/dist/_helpers/footer.js +121 -0
  138. package/dist/_helpers/grid.js +1 -1
  139. package/dist/_helpers/group.js +3 -0
  140. package/dist/_helpers/header.js +1 -1
  141. package/dist/_helpers/icon.js +3 -0
  142. package/dist/_helpers/inject-styles.js +1 -1
  143. package/dist/_helpers/input.js +3 -0
  144. package/dist/_helpers/island.js +1 -1
  145. package/dist/_helpers/link.js +3 -0
  146. package/dist/_helpers/list.js +1 -1
  147. package/dist/_helpers/loader-screen.js +3 -0
  148. package/dist/_helpers/panel.js +3 -0
  149. package/dist/_helpers/query-assist__suggestions.js +1 -1
  150. package/dist/_helpers/radio.js +3 -0
  151. package/dist/_helpers/select__filter.js +6 -8
  152. package/dist/_helpers/services-link.js +6 -8
  153. package/dist/_helpers/sidebar.js +6 -8
  154. package/dist/_helpers/table.js +1 -1
  155. package/dist/_helpers/tabs.js +1 -1
  156. package/dist/_helpers/title.js +1 -1
  157. package/dist/alert/alert.js +15 -9
  158. package/dist/alert/container.js +7 -9
  159. package/dist/alert-service/alert-service.js +24 -13
  160. package/dist/analytics/analytics.js +2 -2
  161. package/dist/analytics/analytics__custom-plugin.js +1 -1
  162. package/dist/analytics/analytics__fus-plugin.js +2 -2
  163. package/dist/analytics/analytics__ga-plugin.js +1 -1
  164. package/dist/analytics/analytics__plugin-utils.js +1 -1
  165. package/dist/analytics-ng/analytics-ng.js +94 -0
  166. package/dist/auth/auth.js +7 -4
  167. package/dist/auth/auth__core.js +86 -48
  168. package/dist/auth/background-flow.js +1 -2
  169. package/dist/auth/down-notification.js +6 -3
  170. package/dist/auth/iframe-flow.js +5 -2
  171. package/dist/auth/landing-entry.js +1 -1
  172. package/dist/auth/landing.js +5 -2
  173. package/dist/auth/request-builder.js +1 -1
  174. package/dist/auth/response-parser.js +1 -1
  175. package/dist/auth/storage.js +3 -2
  176. package/dist/auth/token-validator.js +1 -1
  177. package/dist/auth/window-flow.js +1 -1
  178. package/dist/auth-dialog/auth-dialog.js +5 -3
  179. package/dist/auth-dialog-service/auth-dialog-service.js +6 -5
  180. package/dist/auth-ng/auth-ng.js +203 -0
  181. package/dist/auth-ng/auth-ng.mock.js +33 -0
  182. package/dist/autofocus-ng/autofocus-ng.js +50 -0
  183. package/dist/avatar/avatar.js +36 -30
  184. package/dist/avatar/fallback-avatar.js +141 -0
  185. package/dist/avatar-editor-ng/avatar-editor-ng.js +164 -0
  186. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +30 -0
  187. package/dist/avatar-ng/avatar-ng.js +18 -0
  188. package/dist/badge/badge.js +6 -8
  189. package/dist/badge-ng/badge-ng.js +16 -0
  190. package/dist/breadcrumb-ng/breadcrumb-ng.js +61 -0
  191. package/dist/button/button.js +16 -10
  192. package/dist/button-group/button-group.js +4 -4
  193. package/dist/button-group/caption.js +24 -5
  194. package/dist/button-group-ng/button-group-ng.js +38 -0
  195. package/dist/button-ng/button-ng.js +223 -0
  196. package/dist/button-set/button-set.js +3 -4
  197. package/dist/button-set-ng/button-set-ng.js +19 -0
  198. package/dist/button-toolbar/button-toolbar.js +3 -4
  199. package/dist/button-toolbar-ng/button-toolbar-ng.js +23 -0
  200. package/dist/caret/caret.js +1 -1
  201. package/dist/checkbox/checkbox.js +9 -11
  202. package/dist/checkbox-ng/checkbox-ng.js +55 -0
  203. package/dist/code/code.js +136 -0
  204. package/dist/compiler-ng/compiler-ng.js +53 -0
  205. package/dist/confirm/confirm.js +6 -3
  206. package/dist/confirm-ng/confirm-ng.js +66 -0
  207. package/dist/confirm-service/confirm-service.js +12 -10
  208. package/dist/content-layout/content-layout.js +6 -8
  209. package/dist/contenteditable/contenteditable.js +13 -16
  210. package/dist/data-list/data-list.js +10 -7
  211. package/dist/data-list/data-list.mock.js +2 -2
  212. package/dist/data-list/item.js +5 -3
  213. package/dist/data-list/selection.js +1 -1
  214. package/dist/data-list/title.js +3 -1
  215. package/dist/data-list-ng/data-list-ng.js +59 -0
  216. package/dist/date-picker/consts.js +1 -2
  217. package/dist/date-picker/date-input.js +10 -6
  218. package/dist/date-picker/date-picker.js +38 -29
  219. package/dist/date-picker/date-popup.js +51 -28
  220. package/dist/date-picker/day.js +2 -2
  221. package/dist/date-picker/formats.js +1 -1
  222. package/dist/date-picker/month-names.js +16 -9
  223. package/dist/date-picker/month-slider.js +2 -2
  224. package/dist/date-picker/month.js +13 -7
  225. package/dist/date-picker/months.js +3 -3
  226. package/dist/date-picker/weekdays.js +12 -4
  227. package/dist/date-picker/years.js +2 -2
  228. package/dist/dialog/dialog.js +13 -10
  229. package/dist/dialog/dialog__body-scroll-preventer.js +1 -1
  230. package/dist/dialog-ng/dialog-ng.js +601 -0
  231. package/dist/dialog-ng/dialog-ng__template.js +71 -0
  232. package/dist/docked-panel-ng/docked-panel-ng.js +170 -0
  233. package/dist/dropdown/anchor.js +2 -1
  234. package/dist/dropdown/dropdown.js +8 -10
  235. package/dist/dropdown-menu/dropdown-menu.js +175 -0
  236. package/dist/error-bubble/error-bubble.js +7 -9
  237. package/dist/error-message/error-message.js +4 -4
  238. package/dist/error-message-ng/error-message-ng.js +53 -0
  239. package/dist/footer/footer.js +6 -122
  240. package/dist/footer-ng/footer-ng.js +75 -0
  241. package/dist/form-ng/form-ng.js +169 -0
  242. package/dist/global/angular-component-factory.js +1 -2
  243. package/dist/global/compose.js +1 -1
  244. package/dist/global/composeRefs.js +1 -1
  245. package/dist/global/conic-gradient.js +3 -5
  246. package/dist/global/create-stateful-context.js +1 -1
  247. package/dist/global/data-tests.js +1 -1
  248. package/dist/global/focus-sensor-hoc.js +9 -11
  249. package/dist/global/fuzzy-highlight.js +1 -1
  250. package/dist/global/get-event-key.js +1 -1
  251. package/dist/global/get-uid.js +1 -1
  252. package/dist/global/linear-function.js +1 -2
  253. package/dist/global/listeners.js +1 -1
  254. package/dist/global/memoize.js +1 -1
  255. package/dist/global/normalize-indent.js +1 -1
  256. package/dist/global/promise-with-timeout.js +1 -1
  257. package/dist/global/radial-gradient-mask.js +1 -1
  258. package/dist/global/react-dom-renderer.js +1 -1
  259. package/dist/global/rerender-hoc.js +3 -5
  260. package/dist/global/ring-angular-component.js +1 -1
  261. package/dist/global/schedule-raf.js +1 -1
  262. package/dist/global/sniffer.js +1 -1
  263. package/dist/global/supports-css.js +1 -1
  264. package/dist/global/theme.js +6 -8
  265. package/dist/global/trivial-template-tag.js +1 -1
  266. package/dist/global/variables_dark.js +1 -1
  267. package/dist/grid/col.js +6 -8
  268. package/dist/grid/grid.js +5 -7
  269. package/dist/grid/row.js +6 -8
  270. package/dist/group/group.js +7 -10
  271. package/dist/group-ng/group-ng.js +11 -0
  272. package/dist/header/header.js +29 -26
  273. package/dist/header/logo.js +8 -9
  274. package/dist/header/profile.js +37 -32
  275. package/dist/header/services-link.js +1 -0
  276. package/dist/header/services.js +10 -9
  277. package/dist/header/smart-profile.js +27 -24
  278. package/dist/header/smart-services.js +10 -9
  279. package/dist/header/tray-icon.js +12 -12
  280. package/dist/header/tray.js +6 -8
  281. package/dist/heading/heading.js +9 -12
  282. package/dist/http/http.js +37 -37
  283. package/dist/http/http.mock.js +4 -4
  284. package/dist/hub-source/hub-source.js +1 -1
  285. package/dist/hub-source/hub-source__users-groups.js +1 -1
  286. package/dist/icon/icon.js +8 -8
  287. package/dist/icon/icon__svg.js +81 -6
  288. package/dist/icon/index.js +2 -1
  289. package/dist/icon-ng/icon-ng.js +89 -0
  290. package/dist/input/input.js +9 -12
  291. package/dist/input-ng/input-ng.js +166 -0
  292. package/dist/island/adaptive-island-hoc.js +1 -2
  293. package/dist/island/content.js +6 -8
  294. package/dist/island/header.js +6 -8
  295. package/dist/island/island.js +6 -9
  296. package/dist/island-legacy/content-legacy.js +6 -8
  297. package/dist/island-legacy/header-legacy.js +6 -8
  298. package/dist/island-legacy/island-legacy.js +6 -8
  299. package/dist/island-ng/island-content-ng.js +56 -0
  300. package/dist/island-ng/island-header-ng.js +32 -0
  301. package/dist/island-ng/island-ng-class-fixer.js +9 -0
  302. package/dist/island-ng/island-ng.js +31 -0
  303. package/dist/link/clickableLink.js +6 -8
  304. package/dist/link/link.js +7 -11
  305. package/dist/link-ng/link-ng.js +25 -0
  306. package/dist/list/list.js +25 -13
  307. package/dist/list/list__custom.js +13 -10
  308. package/dist/list/list__hint.js +1 -1
  309. package/dist/list/list__item.js +20 -13
  310. package/dist/list/list__link.js +11 -12
  311. package/dist/list/list__separator.js +1 -1
  312. package/dist/list/list__title.js +1 -1
  313. package/dist/list/list__users-groups-source.js +11 -7
  314. package/dist/loader/loader.js +6 -8
  315. package/dist/loader/loader__core.js +2 -2
  316. package/dist/loader-inline/inject-styles.js +1 -1
  317. package/dist/loader-inline/loader-inline.js +6 -8
  318. package/dist/loader-inline-ng/loader-inline-ng.js +42 -0
  319. package/dist/loader-ng/loader-ng.js +43 -0
  320. package/dist/loader-screen/loader-screen.js +7 -10
  321. package/dist/loader-screen-ng/loader-screen-ng.js +99 -0
  322. package/dist/login-dialog/login-dialog.js +5 -3
  323. package/dist/login-dialog/service.js +7 -5
  324. package/dist/markdown/code.js +30 -0
  325. package/dist/markdown/heading.js +23 -0
  326. package/dist/markdown/link.js +30 -0
  327. package/dist/markdown/markdown.js +73 -0
  328. package/dist/message/message.js +5 -4
  329. package/dist/message-bundle-ng/message-bundle-ng.js +111 -0
  330. package/dist/old-browsers-message/old-browsers-message.js +0 -1
  331. package/dist/old-browsers-message/old-browsers-message__stop.js +0 -1
  332. package/dist/old-browsers-message/white-list.js +4 -5
  333. package/dist/pager/pager.js +18 -9
  334. package/dist/pager-ng/pager-ng.js +96 -0
  335. package/dist/panel/panel.js +7 -10
  336. package/dist/panel-ng/panel-ng.js +16 -0
  337. package/dist/permissions/permissions.js +1 -1
  338. package/dist/permissions/permissions__cache.js +1 -1
  339. package/dist/permissions-ng/permissions-ng.js +274 -0
  340. package/dist/place-under-ng/place-under-ng.js +157 -0
  341. package/dist/popup/popup.js +8 -8
  342. package/dist/popup/popup.target.js +4 -5
  343. package/dist/popup/position.js +1 -2
  344. package/dist/popup-menu/popup-menu.js +21 -14
  345. package/dist/progress-bar/progress-bar.js +12 -10
  346. package/dist/progress-bar-ng/progress-bar-ng.js +15 -0
  347. package/dist/promised-click-ng/promised-click-ng.js +126 -0
  348. package/dist/proxy-attrs/proxy-attrs.js +1 -1
  349. package/dist/query-assist/query-assist.js +97 -28
  350. package/dist/query-assist/query-assist__suggestions.js +5 -1
  351. package/dist/query-assist-ng/query-assist-ng.js +82 -0
  352. package/dist/radio/radio.js +7 -5
  353. package/dist/radio/radio__item.js +10 -15
  354. package/dist/radio-ng/radio-ng.js +63 -0
  355. package/dist/save-field-ng/save-field-ng.js +335 -0
  356. package/dist/save-field-ng/save-field-ng__template.js +34 -0
  357. package/dist/select/select.js +50 -49
  358. package/dist/select/select__filter.js +6 -1
  359. package/dist/select/select__popup.js +8 -3
  360. package/dist/select-ng/select-ng.js +621 -0
  361. package/dist/select-ng/select-ng__lazy.js +150 -0
  362. package/dist/select-ng/select-ng__options.js +145 -0
  363. package/dist/shortcuts/core.js +2 -2
  364. package/dist/shortcuts/shortcuts-hoc.js +6 -8
  365. package/dist/shortcuts/shortcuts.js +6 -6
  366. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +120 -0
  367. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +50 -0
  368. package/dist/shortcuts-ng/shortcuts-ng.js +261 -0
  369. package/dist/sidebar-ng/sidebar-ng.js +111 -0
  370. package/dist/sidebar-ng/sidebar-ng__button-template.js +20 -0
  371. package/dist/sidebar-ng/sidebar-ng__template.js +12 -0
  372. package/dist/storage/storage.js +3 -2
  373. package/dist/storage/storage__fallback.js +1 -1
  374. package/dist/storage/storage__local.js +3 -2
  375. package/dist/style.css +1 -1
  376. package/dist/tab-trap/tab-trap.js +7 -9
  377. package/dist/table/cell.js +2 -2
  378. package/dist/table/disable-hover-hoc.js +2 -2
  379. package/dist/table/header-cell.js +8 -9
  380. package/dist/table/header.js +5 -3
  381. package/dist/table/multitable.js +1 -1
  382. package/dist/table/row-with-focus-sensor.js +5 -3
  383. package/dist/table/row.js +11 -10
  384. package/dist/table/selection-adapter.js +1 -1
  385. package/dist/table/selection-shortcuts-hoc.js +8 -6
  386. package/dist/table/selection.js +1 -1
  387. package/dist/table/smart-table.js +14 -8
  388. package/dist/table/table.js +10 -11
  389. package/dist/table-legacy-ng/table-legacy-ng.js +501 -0
  390. package/dist/table-legacy-ng/table-legacy-ng__pager.js +122 -0
  391. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +123 -0
  392. package/dist/table-legacy-ng/table-legacy-ng__selection.js +179 -0
  393. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +56 -0
  394. package/dist/table-ng/smart-table-ng.js +65 -0
  395. package/dist/table-ng/table-ng.js +64 -0
  396. package/dist/tabs/collapsible-more.js +9 -6
  397. package/dist/tabs/collapsible-tab.js +7 -7
  398. package/dist/tabs/collapsible-tabs.js +18 -19
  399. package/dist/tabs/dumb-tabs.js +12 -9
  400. package/dist/tabs/smart-tabs.js +11 -9
  401. package/dist/tabs/tab-link.js +13 -7
  402. package/dist/tabs/tab.js +1 -1
  403. package/dist/tabs/tabs.js +5 -1
  404. package/dist/tabs-ng/tabs-ng.js +193 -0
  405. package/dist/tabs-ng/tabs-ng__template.js +40 -0
  406. package/dist/tag/tag.js +20 -14
  407. package/dist/tags-input/tags-input.js +14 -10
  408. package/dist/tags-input-ng/tags-input-ng.js +89 -0
  409. package/dist/tags-list/tags-list.js +8 -9
  410. package/dist/template-ng/template-ng.js +70 -0
  411. package/dist/text/text.js +7 -9
  412. package/dist/theme-ng/theme-ng.js +44 -0
  413. package/dist/title-ng/title-ng.js +114 -0
  414. package/dist/toggle/toggle.js +8 -11
  415. package/dist/toggle-ng/toggle-ng.js +16 -0
  416. package/dist/tooltip/tooltip.js +14 -12
  417. package/dist/tooltip-ng/tooltip-ng.js +98 -0
  418. package/dist/user-agreement/service.js +409 -0
  419. package/dist/user-agreement/toolbox.eula.js +162 -0
  420. package/dist/user-agreement/user-agreement.js +167 -0
  421. package/dist/user-card/card.js +3 -0
  422. package/dist/user-card/smart-user-card-tooltip.js +14 -14
  423. package/dist/user-card/tooltip.js +9 -7
  424. package/dist/user-card/user-card.js +5 -2
  425. package/dist/user-card-ng/user-card-ng.js +59 -0
  426. package/package.json +81 -79
  427. package/webpack.config.js +14 -10
  428. package/components/button-set-ng/button-set-ng.html +0 -1
  429. package/components/footer-ng/footer-ng.html +0 -13
  430. package/components/form-ng/form-ng__error-bubble.html +0 -3
  431. package/components/table-legacy-ng/table-legacy-ng.html +0 -4
  432. package/components/table-legacy-ng/table-legacy-ng__column.html +0 -12
  433. package/components/table-legacy-ng/table-legacy-ng__header.html +0 -4
  434. package/components/table-legacy-ng/table-legacy-ng__pager.html +0 -7
  435. package/components/table-legacy-ng/table-legacy-ng__row.html +0 -12
  436. package/components/table-legacy-ng/table-legacy-ng__title.html +0 -9
  437. package/dist/_helpers/caption.js +0 -25
  438. package/dist/_helpers/icon__svg.js +0 -83
@@ -0,0 +1,96 @@
1
+ import angularComponentFactory from '../global/angular-component-factory.js';
2
+ import Pager$1 from '../pager/pager.js';
3
+ import '../_helpers/_rollupPluginBabelHelpers.js';
4
+ import 'angular';
5
+ import 'react';
6
+ import 'react-dom';
7
+ import '../global/ring-angular-component.js';
8
+ import '../global/react-dom-renderer.js';
9
+ import 'prop-types';
10
+ import 'classnames';
11
+ import '@jetbrains/icons/chevron-left';
12
+ import '@jetbrains/icons/chevron-right';
13
+ import '../button/button.js';
14
+ import 'focus-visible';
15
+ import '@jetbrains/icons/chevron-10px';
16
+ import '../icon/icon.js';
17
+ import 'util-deprecate';
18
+ import '../icon/icon__constants.js';
19
+ import '../_helpers/icon.js';
20
+ import '../icon/icon__svg.js';
21
+ import '../global/memoize.js';
22
+ import '../global/theme.js';
23
+ import '../link/clickableLink.js';
24
+ import '../_helpers/button__classes.js';
25
+ import '../button-group/button-group.js';
26
+ import '../button-group/caption.js';
27
+ import '../_helpers/button-group.js';
28
+ import '../button-toolbar/button-toolbar.js';
29
+ import '../_helpers/button-toolbar.js';
30
+ import '../select/select.js';
31
+ import '@jetbrains/icons/close';
32
+ import 'deep-equal';
33
+ import '../dropdown/dropdown.js';
34
+ import '../global/data-tests.js';
35
+ import '../_helpers/anchor.js';
36
+ import '../avatar/avatar.js';
37
+ import '../global/url.js';
38
+ import '../global/dom.js';
39
+ import '../avatar/fallback-avatar.js';
40
+ import '../global/get-uid.js';
41
+ import '../popup/popup.js';
42
+ import '../global/schedule-raf.js';
43
+ import '../shortcuts/shortcuts.js';
44
+ import '../shortcuts/core.js';
45
+ import 'combokeys';
46
+ import '../global/sniffer.js';
47
+ import 'sniffr';
48
+ import '../tab-trap/tab-trap.js';
49
+ import '../popup/position.js';
50
+ import '../popup/popup.consts.js';
51
+ import '../popup/popup.target.js';
52
+ import '../list/list.js';
53
+ import 'react-virtualized/dist/es/List';
54
+ import 'react-virtualized/dist/es/AutoSizer';
55
+ import 'react-virtualized/dist/es/WindowScroller';
56
+ import 'react-virtualized/dist/es/CellMeasurer';
57
+ import 'memoize-one';
58
+ import '../global/create-stateful-context.js';
59
+ import '../list/list__link.js';
60
+ import '../link/link.js';
61
+ import '../_helpers/link.js';
62
+ import '../_helpers/list.js';
63
+ import '../list/list__item.js';
64
+ import '../checkbox/checkbox.js';
65
+ import '@jetbrains/icons/checkmark';
66
+ import '@jetbrains/icons/remove-10px';
67
+ import '../_helpers/checkbox.js';
68
+ import '../list/list__custom.js';
69
+ import '../global/get-event-key.js';
70
+ import '../list/list__title.js';
71
+ import '../list/list__separator.js';
72
+ import '../list/list__hint.js';
73
+ import '../list/consts.js';
74
+ import '../input/input.js';
75
+ import '../_helpers/input.js';
76
+ import '../global/rerender-hoc.js';
77
+ import '../global/fuzzy-highlight.js';
78
+ import '../select/select__popup.js';
79
+ import '@jetbrains/icons/search';
80
+ import '../loader-inline/loader-inline.js';
81
+ import '../_helpers/inject-styles.js';
82
+ import '../global/conic-gradient.js';
83
+ import 'conic-gradient';
84
+ import '../global/supports-css.js';
85
+ import '../global/inject-styles.js';
86
+ import '../global/radial-gradient-mask.js';
87
+ import '../shortcuts/shortcuts-hoc.js';
88
+ import '../tags-list/tags-list.js';
89
+ import '../tag/tag.js';
90
+ import '../caret/caret.js';
91
+ import '../text/text.js';
92
+ import '../_helpers/select__filter.js';
93
+
94
+ var Pager = angularComponentFactory(Pager$1, 'Pager').name;
95
+
96
+ export { Pager as default };
@@ -1,9 +1,8 @@
1
- import { a as _objectWithoutProperties, b as _extends, _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { PureComponent } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
-
6
- var modules_cf670408 = {"unit":"8px","panel":"panel_panel__559bc5c3 dialog_panel__16e57f84"};
5
+ import { m as modules_cf670408 } from '../_helpers/panel.js';
7
6
 
8
7
  /**
9
8
  * @name Panel
@@ -11,13 +10,11 @@ var modules_cf670408 = {"unit":"8px","panel":"panel_panel__559bc5c3 dialog_panel
11
10
 
12
11
  class Panel extends PureComponent {
13
12
  render() {
14
- const _this$props = this.props,
15
- {
13
+ const {
16
14
  className,
17
- children
18
- } = _this$props,
19
- props = _objectWithoutProperties(_this$props, ["className", "children"]);
20
-
15
+ children,
16
+ ...props
17
+ } = this.props;
21
18
  const classes = classNames(modules_cf670408.panel, className);
22
19
  return /*#__PURE__*/React.createElement("div", _extends({}, props, {
23
20
  className: classes
@@ -31,4 +28,4 @@ _defineProperty(Panel, "propTypes", {
31
28
  children: PropTypes.node
32
29
  });
33
30
 
34
- export default Panel;
31
+ export { Panel as default };
@@ -0,0 +1,16 @@
1
+ import angular from 'angular';
2
+ import { m as modules_cf670408 } from '../_helpers/panel.js';
3
+ import { addClasses } from '../global/dom.js';
4
+ import '../_helpers/_rollupPluginBabelHelpers.js';
5
+
6
+ const angularModule = angular.module('Ring.panel', []);
7
+ angularModule.directive('rgPanel', function rgEqualValueDirective() {
8
+ return {
9
+ link: function link(scope, iElement) {
10
+ addClasses(iElement[0].classList, modules_cf670408.panel);
11
+ }
12
+ };
13
+ });
14
+ var panelNg = angularModule.name;
15
+
16
+ export { panelNg as default };
@@ -197,4 +197,4 @@ class Permissions {
197
197
 
198
198
  _defineProperty(Permissions, "API_PERMISSION_CACHE_PATH", 'permissions/cache');
199
199
 
200
- export default Permissions;
200
+ export { Permissions as default };
@@ -269,4 +269,4 @@ class PermissionCache {
269
269
 
270
270
  _defineProperty(PermissionCache, "GLOBAL_PROJECT_ID", 'global');
271
271
 
272
- export default PermissionCache;
272
+ export { PermissionCache as default };
@@ -0,0 +1,274 @@
1
+ import angular from 'angular';
2
+ import '../auth-ng/auth-ng.js';
3
+ import Permissions from '../permissions/permissions.js';
4
+ import PermissionCache from '../permissions/permissions__cache.js';
5
+ import '../auth/auth.js';
6
+ import '../auth/window-flow.js';
7
+ import '../_helpers/_rollupPluginBabelHelpers.js';
8
+ import '../auth/response-parser.js';
9
+ import 'es6-error';
10
+ import '../global/url.js';
11
+ import '../auth/down-notification.js';
12
+ import 'react';
13
+ import 'prop-types';
14
+ import '../alert-service/alert-service.js';
15
+ import 'react-dom';
16
+ import '../global/get-uid.js';
17
+ import '../alert/alert.js';
18
+ import 'classnames';
19
+ import '@jetbrains/icons/exception';
20
+ import '@jetbrains/icons/checkmark';
21
+ import '@jetbrains/icons/warning';
22
+ import '@jetbrains/icons/close';
23
+ import '../icon/icon.js';
24
+ import 'util-deprecate';
25
+ import '../icon/icon__constants.js';
26
+ import '../_helpers/icon.js';
27
+ import '../icon/icon__svg.js';
28
+ import '../global/memoize.js';
29
+ import '../loader-inline/loader-inline.js';
30
+ import '../global/theme.js';
31
+ import '../global/data-tests.js';
32
+ import '../_helpers/inject-styles.js';
33
+ import '../global/conic-gradient.js';
34
+ import 'conic-gradient';
35
+ import '../global/supports-css.js';
36
+ import '../global/inject-styles.js';
37
+ import '../global/radial-gradient-mask.js';
38
+ import '../global/dom.js';
39
+ import '../alert/container.js';
40
+ import '../link/link.js';
41
+ import 'focus-visible';
42
+ import '../link/clickableLink.js';
43
+ import '../_helpers/link.js';
44
+ import '../group/group.js';
45
+ import '../_helpers/group.js';
46
+ import '../auth/auth__core.js';
47
+ import '../global/listeners.js';
48
+ import '../http/http.js';
49
+ import '../global/promise-with-timeout.js';
50
+ import '../auth/storage.js';
51
+ import '../storage/storage.js';
52
+ import '../storage/storage__local.js';
53
+ import '../storage/storage__fallback.js';
54
+ import 'deep-equal';
55
+ import '../auth/request-builder.js';
56
+ import 'simply-uuid';
57
+ import '../auth/background-flow.js';
58
+ import '../auth/token-validator.js';
59
+
60
+ function registerPermission(element) {
61
+ const somePermissionsCtrl = element.controller('rgSomePermissions');
62
+ return somePermissionsCtrl && somePermissionsCtrl.registerPermission() || angular.noop;
63
+ }
64
+
65
+ const angularModule = angular.module('Ring.permissions', ['Ring.auth']);
66
+ /**
67
+ * @ngdoc object
68
+ * @name userPermissions
69
+ *
70
+ * @description
71
+ * Configured instance of Permissions object.
72
+ */
73
+
74
+ /**
75
+ * @typedef {Object} permissionsNgConfig
76
+ * @property {?string} serviceId
77
+ * @property {?string} prefix
78
+ */
79
+
80
+ angularModule.provider('userPermissions', function provider() {
81
+ /**
82
+ * @type {permissionsNgConfig}
83
+ */
84
+ let _config = {};
85
+ /**
86
+ * @param {permissionsNgConfig} config
87
+ */
88
+
89
+ this.config = config => {
90
+ _config = config;
91
+ };
92
+
93
+ this.$get = ["auth", "$q", "$http", (auth, $q, $http) => {
94
+ const apiUri = auth.auth.getAPIPath() + Permissions.API_PERMISSION_CACHE_PATH;
95
+
96
+ async function datasource(query) {
97
+ const {
98
+ data
99
+ } = await $http.get(apiUri, {
100
+ params: {
101
+ fields: 'permission/key,global,projects(id)',
102
+ query
103
+ }
104
+ });
105
+ return data;
106
+ }
107
+
108
+ _config.datasource = _config.datasource || datasource;
109
+ const permissions = new Permissions(auth.auth, _config); // Override load to execute in $digest
110
+
111
+ permissions.load = function load() {
112
+ return $q.when(Permissions.prototype.load.call(this));
113
+ };
114
+
115
+ return permissions;
116
+ }];
117
+ });
118
+ /**
119
+ * @ngdoc directive
120
+ * @name permission
121
+ *
122
+ * @description
123
+ * The `permission` directive show or hide a portion of the DOM tree (HTML) depending
124
+ * on the logged in user permissions. If the user has listed permissions then the DOM tree
125
+ * is shown, otherwise it is hidden.
126
+ *
127
+ * @restrict A
128
+ * @element ANY
129
+ * @requires userPermissions
130
+ */
131
+
132
+ angularModule.directive('rgPermission', ["userPermissions", "$interpolate", function rgPermissionDirective(userPermissions, $interpolate) {
133
+ return {
134
+ controller: ["$scope", "$element", "$attrs", function controller($scope, $element, $attrs) {
135
+ const element = $element[0]; //noinspection JSPotentiallyInvalidUsageOfThis
136
+
137
+ this.permitted = false;
138
+ element.classList.add('ring-permission-hide');
139
+ const permission = $interpolate($attrs.rgPermission)($scope);
140
+ const projectId = $attrs.hasOwnProperty('inGlobal') ? PermissionCache.GLOBAL_PROJECT_ID : $scope.$eval($attrs.inProject);
141
+ userPermissions.check(permission, projectId).then(permitted => {
142
+ this.permitted = permitted;
143
+
144
+ if (permitted) {
145
+ element.classList.remove('ring-permission-hide');
146
+ }
147
+
148
+ return permitted;
149
+ }).then(registerPermission($element));
150
+ }]
151
+ };
152
+ }]);
153
+ /**
154
+ * @ngdoc directive
155
+ * @name permissionIf
156
+ *
157
+ * @description
158
+ * The `permission` directive transcludes or not a portion of the DOM tree (HTML) depending
159
+ * on the logged in user permissions. If the user has listed permissions then the DOM tree
160
+ * is transcluded, otherwise it is not.
161
+ * @example
162
+ <example name="rgPermissionIf directive">
163
+ <file name="index.html">
164
+ <div rg-permission-if="project-read" in-project="0-0-0-0-0">
165
+ Is transcluded if user has permission 'read-project' in project 0-0-0-0-0.
166
+ </div>
167
+ <div rg-permission-if="project-read">
168
+ Is transcluded if user has permission 'read-project' at least in one project.
169
+ </div>
170
+ <div rg-permission-if="project-read" in-global>
171
+ Is transcluded if user has permission 'read-project' at project "global".
172
+ </div>
173
+ </file>
174
+ </example>
175
+ *
176
+ * @restrict A
177
+ * @element ANY
178
+ * @requires $animate
179
+ * @requires userPermissions
180
+ */
181
+
182
+ angularModule.directive('rgPermissionIf', ["$animate", "userPermissions", "$interpolate", function rgPermissionIfDirective($animate, userPermissions, $interpolate) {
183
+ return {
184
+ transclude: 'element',
185
+ priority: 600,
186
+ terminal: true,
187
+ restrict: 'A',
188
+ // disable error about multiple transclude like in ngIf
189
+ $$tlb: true,
190
+ // eslint-disable-line angular/no-private-call
191
+ require: '^?rgSomePermissions',
192
+ link: function link(scope, iElement, iAttrs, somePermittedCtrl, $transclude) {
193
+ let block;
194
+ let childScope;
195
+ const projectId = iAttrs.hasOwnProperty('inGlobal') ? PermissionCache.GLOBAL_PROJECT_ID : scope.$eval(iAttrs.inProject);
196
+ const permission = $interpolate(iAttrs.rgPermissionIf)(scope);
197
+ userPermissions.check(permission, projectId).then(permitted => {
198
+ if (permitted) {
199
+ if (!childScope) {
200
+ childScope = scope.$new();
201
+ $transclude(childScope, clone => {
202
+ block = {
203
+ startNode: clone[0],
204
+ endNode: clone[clone.length++] = document.createComment(` end rgPermissionIf: ${iAttrs.rgPermissionIf} `)
205
+ };
206
+ $animate.enter(clone, iElement.parent(), iElement);
207
+ });
208
+ }
209
+ } else {
210
+ if (childScope) {
211
+ childScope.$destroy();
212
+ childScope = null;
213
+ }
214
+
215
+ if (block) {
216
+ /* global getBlockElements: false */
217
+ $animate.leave(getBlockElements(block));
218
+ block = null;
219
+ }
220
+ }
221
+ }).then(registerPermission(iElement));
222
+ }
223
+ };
224
+ }]);
225
+ /**
226
+ * @ngdoc directive
227
+ * @name rgSomePermissions
228
+ *
229
+ * @description
230
+ * Binds left-value expression with a boolean value that is true when at least one permission of
231
+ * nested {@link permission} or {@link rgPermissionIf} directive is obtained by the logged in user.
232
+ *
233
+ * @scope
234
+ * @restrict A
235
+ * @element ANY
236
+ */
237
+
238
+ angularModule.directive('rgSomePermissions', function rgSomePermissionsDirective() {
239
+ return {
240
+ scope: {
241
+ rgSomePermissions: '='
242
+ },
243
+ controller: ["$scope", function controller($scope) {
244
+ const permissions = [];
245
+ $scope.rgSomePermissions = false;
246
+
247
+ function checkPermissions() {
248
+ for (let i = permissions.length - 1; i >= 0; i--) {
249
+ if (permissions[i].permitted) {
250
+ $scope.rgSomePermissions = true;
251
+ return;
252
+ }
253
+ }
254
+
255
+ $scope.rgSomePermissions = false;
256
+ } //noinspection JSPotentiallyInvalidUsageOfThis
257
+
258
+
259
+ this.registerPermission = () => {
260
+ const permission = {
261
+ permitted: false
262
+ };
263
+ permissions.push(permission);
264
+ return permitted => {
265
+ permission.permitted = permitted;
266
+ checkPermissions();
267
+ };
268
+ };
269
+ }]
270
+ };
271
+ });
272
+ var permissionsNg = angularModule.name;
273
+
274
+ export { permissionsNg as default };
@@ -0,0 +1,157 @@
1
+ import angular from 'angular';
2
+ import debounce from 'just-debounce-it';
3
+ import createResizeDetector from 'element-resize-detector';
4
+ import { getDocumentScrollTop } from '../global/dom.js';
5
+ import '../_helpers/_rollupPluginBabelHelpers.js';
6
+
7
+ const resizeDetector = createResizeDetector();
8
+ const angularModule = angular.module('Ring.place-under', []);
9
+ angularModule.directive('rgPlaceUnder', // eslint-disable-next-line angular/di-unused
10
+ ["$window", "getClosestElementWithCommonParent", "rgPlaceUnderHelper", function rgPlaceUnderDirective($window, getClosestElementWithCommonParent, rgPlaceUnderHelper) {
11
+ return {
12
+ restrict: 'A',
13
+ link: function link(scope, iElement, iAttrs) {
14
+ const element = iElement[0];
15
+ const synchronizer = rgPlaceUnderHelper.createPositionSynchronizer(element, iAttrs, scope);
16
+
17
+ function startSyncing(placeUnderSelector) {
18
+ if (placeUnderSelector) {
19
+ scope.$evalAsync(() => {
20
+ const syncWith = getClosestElementWithCommonParent(element, placeUnderSelector);
21
+
22
+ if (syncWith) {
23
+ synchronizer.syncPositionWith(syncWith);
24
+ } else {
25
+ throw new Error('rgPlaceUnder cannot find element to sync with.');
26
+ }
27
+ });
28
+ }
29
+ }
30
+
31
+ iAttrs.$observe('rgPlaceUnder', startSyncing);
32
+ }
33
+ };
34
+ }]);
35
+ angularModule.factory('getClosestElementWithCommonParent', function getClosestElementWithCommonParentFactory() {
36
+ return function getClosestElementWithCommonParent(currentElement, selector) {
37
+ const parent = currentElement.parentNode;
38
+
39
+ if (parent) {
40
+ return parent.querySelector(selector) || getClosestElementWithCommonParent(parent, selector);
41
+ } else {
42
+ return null;
43
+ }
44
+ };
45
+ });
46
+ angularModule.factory('rgPlaceUnderHelper', ["$window", $window => {
47
+ const DEBOUNCE_INTERVAL = 10;
48
+ const AFTER_SCROLL_RECHECK_INTERVAL = 50;
49
+ const HEIGHT_CHECK_INTERVAL = 50;
50
+ return {
51
+ DEBOUNCE_INTERVAL,
52
+ AFTER_SCROLL_RECHECK_INTERVAL,
53
+ HEIGHT_CHECK_INTERVAL,
54
+ createPositionSynchronizer: (element, iAttrs, scope) => {
55
+ const topOffset = parseInt(iAttrs.placeTopOffset, 10) || 0;
56
+ const syncHeight = iAttrs.syncHeight;
57
+ let syncBottom = [];
58
+ let removeScrollListener = [];
59
+
60
+ if (iAttrs.syncBottom) {
61
+ syncBottom = iAttrs.syncBottom.split(',');
62
+ }
63
+
64
+ function waitForNonZeroHeight(elementToCheck) {
65
+ return new Promise(resolve => {
66
+ function checkElementHeight() {
67
+ if (elementToCheck.offsetHeight === 0) {
68
+ $window.setTimeout(checkElementHeight, HEIGHT_CHECK_INTERVAL);
69
+ } else {
70
+ resolve();
71
+ }
72
+ }
73
+
74
+ checkElementHeight();
75
+ });
76
+ }
77
+
78
+ function onScroll(syncElement) {
79
+ const documentScrollTop = getDocumentScrollTop();
80
+ const documentOffsetHeight = $window.document.documentElement && $window.document.documentElement.offsetHeight || $window.document.body.offsetHeight;
81
+ const syncedElementHeight = syncElement.offsetHeight;
82
+ const syncedElementOffsetTop = syncElement.getBoundingClientRect().top + documentScrollTop;
83
+ const bottom = syncedElementOffsetTop + syncedElementHeight;
84
+ const margin = Math.max(bottom - documentScrollTop, syncedElementHeight);
85
+ element.style.marginTop = `${margin + topOffset}px`;
86
+
87
+ if (syncHeight) {
88
+ /**
89
+ * Decrease height by margin value to make scroll work properly
90
+ */
91
+ let bottomOffset = 0;
92
+
93
+ if (syncBottom.length) {
94
+ for (let i = 0; i < syncBottom.length; i++) {
95
+ const syncBottomParams = syncBottom[i].split(';');
96
+ const elem = $window.document.querySelector(syncBottomParams[0]);
97
+ const extraMargin = syncBottomParams[1] ? parseInt(syncBottomParams[1], 10) : 0;
98
+
99
+ if (elem) {
100
+ const boundingRect = elem.getBoundingClientRect();
101
+
102
+ if (boundingRect.top === 0) {
103
+ continue;
104
+ }
105
+
106
+ const marginTop = parseInt($window.getComputedStyle(elem).getPropertyValue('margin-top'), 10);
107
+ bottomOffset = documentOffsetHeight - boundingRect.top + marginTop + extraMargin;
108
+
109
+ if (bottomOffset < 0) {
110
+ bottomOffset = 0;
111
+ }
112
+
113
+ break;
114
+ }
115
+ }
116
+ }
117
+
118
+ element.style.height = `calc(100% - ${parseInt(element.style.marginTop, 10) + bottomOffset}px)`;
119
+ }
120
+ }
121
+
122
+ function removeScrollListeners() {
123
+ removeScrollListener.map(cb => cb());
124
+ removeScrollListener = [];
125
+ }
126
+
127
+ function syncPositionWith(syncElement) {
128
+ removeScrollListeners();
129
+ const afterScrollFinishRecheck = debounce(() => this.onScroll(syncElement), AFTER_SCROLL_RECHECK_INTERVAL);
130
+ const sidebarScrollListener = debounce(() => {
131
+ this.onScroll(syncElement);
132
+ afterScrollFinishRecheck();
133
+ }, DEBOUNCE_INTERVAL);
134
+ this.waitForNonZeroHeight(syncElement).then(sidebarScrollListener);
135
+ $window.addEventListener('scroll', sidebarScrollListener);
136
+ removeScrollListener.push(() => {
137
+ $window.removeEventListener('scroll', sidebarScrollListener);
138
+ });
139
+ removeScrollListener.push(scope.$watch('show', sidebarScrollListener));
140
+ removeScrollListener.push(scope.$on('rgPlaceUnder:sync', sidebarScrollListener));
141
+ const elementToHeightListening = iAttrs.listenToHeightChange ? $window.document.querySelector(iAttrs.listenToHeightChange) : $window.document.body;
142
+ resizeDetector.listenTo(elementToHeightListening, sidebarScrollListener);
143
+ removeScrollListener.push(() => resizeDetector.removeAllListeners(elementToHeightListening));
144
+ }
145
+
146
+ scope.$on('$destroy', removeScrollListeners);
147
+ return {
148
+ waitForNonZeroHeight,
149
+ onScroll,
150
+ syncPositionWith
151
+ };
152
+ }
153
+ };
154
+ }]);
155
+ var PlaceUnder = angularModule.name;
156
+
157
+ export { PlaceUnder as default };
@@ -1,4 +1,4 @@
1
- import { _ as _defineProperty, c as _objectSpread2 } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { PureComponent } from 'react';
3
3
  import { createPortal } from 'react-dom';
4
4
  import PropTypes from 'prop-types';
@@ -18,7 +18,7 @@ import 'combokeys';
18
18
  import '../global/sniffer.js';
19
19
  import 'sniffr';
20
20
 
21
- var modules_2f69e2e2 = {"popup":"popup_popup__d157c5ca global_font__0f8f4370","hidden":"popup_hidden__d157c5ca","showing":"popup_showing__d157c5ca","attached":"popup_attached__d157c5ca"};
21
+ var modules_2f69e2e2 = {"popup":"popup_rui_d157 font_rui_750f","hidden":"hidden_rui_d157","showing":"showing_rui_d157","attached":"attached_rui_d157"};
22
22
 
23
23
  const stop = e => e.stopPropagation();
24
24
 
@@ -43,7 +43,7 @@ class Popup extends PureComponent {
43
43
 
44
44
  _defineProperty(this, "uid", getUID('popup-'));
45
45
 
46
- _defineProperty(this, "calculateDisplay", prevState => _objectSpread2(_objectSpread2({}, prevState), {}, {
46
+ _defineProperty(this, "calculateDisplay", prevState => ({ ...prevState,
47
47
  display: this.props.hidden ? Display.SHOWING : Display.SHOWN
48
48
  }));
49
49
 
@@ -189,11 +189,12 @@ class Popup extends PureComponent {
189
189
  return acc;
190
190
  }, {});
191
191
  const container = this.getContainer();
192
- return position(_objectSpread2({
192
+ return position({
193
193
  popup: this.popup,
194
194
  container: container && getStyles(container).position !== 'static' ? container : null,
195
- anchor: this._getAnchor()
196
- }, positionProps));
195
+ anchor: this._getAnchor(),
196
+ ...positionProps
197
+ });
197
198
  }
198
199
 
199
200
  _getAnchor() {
@@ -385,5 +386,4 @@ _defineProperty(Popup, "PopupProps", {
385
386
  MaxHeight
386
387
  });
387
388
 
388
- export default Popup;
389
- export { getPopupContainer };
389
+ export { Popup as default, getPopupContainer };
@@ -1,4 +1,4 @@
1
- import { a as _objectWithoutProperties, b as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import React, { createContext, forwardRef } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
 
@@ -6,10 +6,9 @@ const PopupTargetContext = /*#__PURE__*/createContext();
6
6
  const PopupTarget = /*#__PURE__*/forwardRef(function PopupTarget(_ref, ref) {
7
7
  let {
8
8
  id,
9
- children
10
- } = _ref,
11
- restProps = _objectWithoutProperties(_ref, ["id", "children"]);
12
-
9
+ children,
10
+ ...restProps
11
+ } = _ref;
13
12
  const isFunctionChild = typeof children === 'function';
14
13
  const target = /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
15
14
  "data-portaltarget": id,
@@ -276,5 +276,4 @@ function position(attrs) {
276
276
  };
277
277
  }
278
278
 
279
- export default position;
280
- export { maxHeightForDirection, positionPropKeys };
279
+ export { position as default, maxHeightForDirection, positionPropKeys };