@jetbrains/ring-ui 4.1.0-beta.13 → 4.1.0-beta.17

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 (382) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +14 -13
  3. package/components/alert/container.css +1 -1
  4. package/components/auth/auth.test.js +14 -7
  5. package/components/auth/auth__core.js +12 -6
  6. package/components/avatar/avatar.css +4 -1
  7. package/components/avatar/avatar.examples.js +3 -2
  8. package/components/avatar/avatar.js +31 -6
  9. package/components/avatar/fallback-avatar.js +136 -0
  10. package/components/avatar-editor-ng/avatar-editor-ng.css +2 -2
  11. package/components/avatar-editor-ng/avatar-editor-ng.js +2 -1
  12. package/components/avatar-editor-ng/{avatar-editor-ng.html → avatar-editor-ng__template.js} +2 -2
  13. package/components/button/button.css +2 -2
  14. package/components/button-group/button-group.js +1 -1
  15. package/components/button-group/caption.js +1 -1
  16. package/components/button-ng/button-ng.js +1 -1
  17. package/components/button-set-ng/button-set-ng.js +3 -1
  18. package/components/checkbox/checkbox.css +1 -1
  19. package/components/code/code.js +1 -1
  20. package/components/content-layout/content-layout.css +1 -1
  21. package/components/data-list/data-list.css +1 -1
  22. package/components/date-picker/date-input.js +5 -4
  23. package/components/date-picker/date-picker.css +10 -6
  24. package/components/date-picker/date-picker.js +16 -14
  25. package/components/date-picker/date-popup.js +8 -4
  26. package/components/date-picker/month-names.js +8 -5
  27. package/components/date-picker/month.js +6 -2
  28. package/components/date-picker/weekdays.js +10 -2
  29. package/components/dialog-ng/dialog-ng.js +6 -7
  30. package/components/dialog-ng/{dialog-ng.html → dialog-ng__template.js} +2 -2
  31. package/components/dropdown/dropdown.examples.js +36 -1
  32. package/components/dropdown-menu/dropdown-menu.examples.js +47 -0
  33. package/components/dropdown-menu/dropdown-menu.js +117 -0
  34. package/components/dropdown-menu/dropdown-menu.test.js +76 -0
  35. package/components/error-bubble/error-bubble-legacy.css +1 -1
  36. package/components/error-bubble/error-bubble.css +1 -1
  37. package/components/error-page/error-page.css +2 -2
  38. package/components/footer-ng/footer-ng.js +13 -3
  39. package/components/form/form.css +2 -2
  40. package/components/form-ng/form-ng.js +3 -1
  41. package/components/global/global.css +1 -1
  42. package/components/global/variables.css +8 -1
  43. package/components/grid/grid.css +10 -9
  44. package/components/header/header.css +1 -1
  45. package/components/header/header.examples.js +7 -8
  46. package/components/header/profile.js +10 -11
  47. package/components/http/http.js +1 -1
  48. package/components/icon/icon.css +5 -4
  49. package/components/island/island.css +4 -3
  50. package/components/island-legacy/island-legacy.css +3 -1
  51. package/components/list/list.js +6 -1
  52. package/components/list/list__custom.js +9 -3
  53. package/components/list/list__item.js +8 -2
  54. package/components/loader-inline/loader-inline.css +1 -1
  55. package/components/loader-screen/loader-screen.css +1 -1
  56. package/components/message/message.css +1 -1
  57. package/components/pager/pager.js +5 -3
  58. package/components/permissions/permissions.js +1 -1
  59. package/components/progress-bar/progress-bar.css +1 -1
  60. package/components/query-assist/query-assist.css +1 -1
  61. package/components/save-field-ng/save-field-ng.js +3 -1
  62. package/components/save-field-ng/{save-field-ng.html → save-field-ng__template.js} +2 -2
  63. package/components/select/select.css +4 -0
  64. package/components/select/select.examples.js +13 -0
  65. package/components/select/select.js +6 -6
  66. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  67. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -1
  68. package/components/shortcuts-hint-ng/{shortcuts-hint-ng.html → shortcuts-hint-ng__template.js} +2 -2
  69. package/components/sidebar/sidebar.css +1 -0
  70. package/components/sidebar-ng/sidebar-ng.js +6 -2
  71. package/components/sidebar-ng/{sidebar-ng__button.html → sidebar-ng__button-template.js} +2 -2
  72. package/components/sidebar-ng/{sidebar-ng.html → sidebar-ng__template.js} +2 -2
  73. package/components/table/table.css +2 -1
  74. package/components/table-legacy/table-legacy.css +2 -2
  75. package/components/table-legacy-ng/table-legacy-ng.js +38 -5
  76. package/components/table-legacy-ng/table-legacy-ng__pager.js +7 -1
  77. package/components/tabs-ng/tabs-ng.js +3 -1
  78. package/components/tabs-ng/{tabs-ng.html → tabs-ng__template.js} +2 -2
  79. package/components/tag/tag.css +5 -2
  80. package/components/tags-input/tags-input.js +5 -2
  81. package/components/template-ng/template-ng.js +1 -1
  82. package/components/tooltip/tooltip.js +7 -2
  83. package/components/user-agreement/user-agreement.css +1 -1
  84. package/dist/_helpers/button-group.js +3 -0
  85. package/dist/_helpers/button-set.js +3 -0
  86. package/dist/_helpers/button-toolbar.js +3 -0
  87. package/dist/_helpers/button__classes.js +1 -1
  88. package/dist/_helpers/checkbox.js +3 -0
  89. package/dist/_helpers/date-picker.js +1 -1
  90. package/dist/_helpers/error-message.js +3 -0
  91. package/dist/_helpers/footer.js +121 -0
  92. package/dist/_helpers/grid.js +1 -1
  93. package/dist/_helpers/group.js +3 -0
  94. package/dist/_helpers/header.js +1 -1
  95. package/dist/_helpers/icon.js +3 -0
  96. package/dist/_helpers/inject-styles.js +1 -1
  97. package/dist/_helpers/input.js +3 -0
  98. package/dist/_helpers/island.js +1 -1
  99. package/dist/_helpers/link.js +3 -0
  100. package/dist/_helpers/loader-screen.js +3 -0
  101. package/dist/_helpers/panel.js +3 -0
  102. package/dist/_helpers/query-assist__suggestions.js +1 -1
  103. package/dist/_helpers/radio.js +3 -0
  104. package/dist/_helpers/sidebar.js +1 -1
  105. package/dist/_helpers/table.js +1 -1
  106. package/dist/_helpers/tabs.js +1 -1
  107. package/dist/_helpers/title.js +1 -1
  108. package/dist/alert/alert.js +3 -3
  109. package/dist/alert/container.js +2 -2
  110. package/dist/alert-service/alert-service.js +3 -2
  111. package/dist/analytics/analytics.js +2 -2
  112. package/dist/analytics/analytics__custom-plugin.js +1 -1
  113. package/dist/analytics/analytics__fus-plugin.js +1 -1
  114. package/dist/analytics/analytics__ga-plugin.js +1 -1
  115. package/dist/analytics/analytics__plugin-utils.js +1 -1
  116. package/dist/analytics-ng/analytics-ng.js +94 -0
  117. package/dist/auth/auth.js +4 -1
  118. package/dist/auth/auth__core.js +15 -9
  119. package/dist/auth/background-flow.js +1 -2
  120. package/dist/auth/down-notification.js +5 -2
  121. package/dist/auth/iframe-flow.js +5 -2
  122. package/dist/auth/landing-entry.js +1 -1
  123. package/dist/auth/landing.js +5 -2
  124. package/dist/auth/request-builder.js +1 -1
  125. package/dist/auth/response-parser.js +1 -1
  126. package/dist/auth/storage.js +3 -2
  127. package/dist/auth/token-validator.js +1 -1
  128. package/dist/auth/window-flow.js +1 -1
  129. package/dist/auth-dialog/auth-dialog.js +4 -3
  130. package/dist/auth-dialog-service/auth-dialog-service.js +3 -2
  131. package/dist/auth-ng/auth-ng.js +203 -0
  132. package/dist/auth-ng/auth-ng.mock.js +33 -0
  133. package/dist/autofocus-ng/autofocus-ng.js +50 -0
  134. package/dist/avatar/avatar.js +19 -7
  135. package/dist/avatar/fallback-avatar.js +141 -0
  136. package/dist/avatar-editor-ng/avatar-editor-ng.js +164 -0
  137. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +30 -0
  138. package/dist/avatar-ng/avatar-ng.js +18 -0
  139. package/dist/badge/badge.js +1 -1
  140. package/dist/badge-ng/badge-ng.js +16 -0
  141. package/dist/breadcrumb-ng/breadcrumb-ng.js +61 -0
  142. package/dist/button/button.js +3 -2
  143. package/dist/button-group/button-group.js +3 -3
  144. package/dist/button-group/caption.js +24 -5
  145. package/dist/button-group-ng/button-group-ng.js +38 -0
  146. package/dist/button-ng/button-ng.js +223 -0
  147. package/dist/button-set/button-set.js +2 -3
  148. package/dist/button-set-ng/button-set-ng.js +19 -0
  149. package/dist/button-toolbar/button-toolbar.js +2 -3
  150. package/dist/button-toolbar-ng/button-toolbar-ng.js +23 -0
  151. package/dist/caret/caret.js +1 -1
  152. package/dist/checkbox/checkbox.js +4 -4
  153. package/dist/checkbox-ng/checkbox-ng.js +55 -0
  154. package/dist/code/code.js +136 -0
  155. package/dist/compiler-ng/compiler-ng.js +53 -0
  156. package/dist/confirm/confirm.js +4 -2
  157. package/dist/confirm-ng/confirm-ng.js +66 -0
  158. package/dist/confirm-service/confirm-service.js +4 -3
  159. package/dist/content-layout/content-layout.js +1 -1
  160. package/dist/contenteditable/contenteditable.js +1 -1
  161. package/dist/data-list/data-list.js +6 -3
  162. package/dist/data-list/data-list.mock.js +2 -2
  163. package/dist/data-list/item.js +5 -3
  164. package/dist/data-list/selection.js +1 -1
  165. package/dist/data-list/title.js +3 -1
  166. package/dist/data-list-ng/data-list-ng.js +59 -0
  167. package/dist/date-picker/consts.js +1 -2
  168. package/dist/date-picker/date-input.js +10 -6
  169. package/dist/date-picker/date-picker.js +28 -16
  170. package/dist/date-picker/date-popup.js +20 -9
  171. package/dist/date-picker/day.js +1 -1
  172. package/dist/date-picker/formats.js +1 -1
  173. package/dist/date-picker/month-names.js +14 -7
  174. package/dist/date-picker/month-slider.js +1 -1
  175. package/dist/date-picker/month.js +12 -6
  176. package/dist/date-picker/months.js +1 -1
  177. package/dist/date-picker/weekdays.js +12 -4
  178. package/dist/date-picker/years.js +1 -1
  179. package/dist/dialog/dialog.js +3 -2
  180. package/dist/dialog-ng/dialog-ng.js +601 -0
  181. package/dist/dialog-ng/dialog-ng__template.js +71 -0
  182. package/dist/docked-panel-ng/docked-panel-ng.js +170 -0
  183. package/dist/dropdown/anchor.js +2 -1
  184. package/dist/dropdown/dropdown.js +3 -2
  185. package/dist/dropdown-menu/dropdown-menu.js +175 -0
  186. package/dist/error-bubble/error-bubble.js +2 -2
  187. package/dist/error-message/error-message.js +4 -4
  188. package/dist/error-message-ng/error-message-ng.js +53 -0
  189. package/dist/footer/footer.js +6 -122
  190. package/dist/footer-ng/footer-ng.js +75 -0
  191. package/dist/form-ng/form-ng.js +169 -0
  192. package/dist/global/angular-component-factory.js +1 -2
  193. package/dist/global/compose.js +1 -1
  194. package/dist/global/composeRefs.js +1 -1
  195. package/dist/global/conic-gradient.js +1 -2
  196. package/dist/global/create-stateful-context.js +1 -1
  197. package/dist/global/data-tests.js +1 -1
  198. package/dist/global/focus-sensor-hoc.js +1 -1
  199. package/dist/global/fuzzy-highlight.js +1 -1
  200. package/dist/global/get-event-key.js +1 -1
  201. package/dist/global/get-uid.js +1 -1
  202. package/dist/global/linear-function.js +1 -2
  203. package/dist/global/listeners.js +1 -1
  204. package/dist/global/memoize.js +1 -1
  205. package/dist/global/normalize-indent.js +1 -1
  206. package/dist/global/promise-with-timeout.js +1 -1
  207. package/dist/global/radial-gradient-mask.js +1 -1
  208. package/dist/global/react-dom-renderer.js +1 -1
  209. package/dist/global/rerender-hoc.js +1 -1
  210. package/dist/global/ring-angular-component.js +1 -1
  211. package/dist/global/schedule-raf.js +1 -1
  212. package/dist/global/sniffer.js +1 -1
  213. package/dist/global/supports-css.js +1 -1
  214. package/dist/global/theme.js +1 -2
  215. package/dist/global/trivial-template-tag.js +1 -1
  216. package/dist/global/variables_dark.js +1 -1
  217. package/dist/grid/col.js +1 -1
  218. package/dist/grid/row.js +1 -1
  219. package/dist/group/group.js +2 -3
  220. package/dist/group-ng/group-ng.js +11 -0
  221. package/dist/header/header.js +24 -19
  222. package/dist/header/logo.js +3 -2
  223. package/dist/header/profile.js +31 -25
  224. package/dist/header/services-link.js +1 -0
  225. package/dist/header/services.js +4 -2
  226. package/dist/header/smart-profile.js +22 -16
  227. package/dist/header/smart-services.js +5 -2
  228. package/dist/header/tray-icon.js +3 -2
  229. package/dist/header/tray.js +1 -1
  230. package/dist/heading/heading.js +2 -3
  231. package/dist/http/http.js +1 -2
  232. package/dist/http/http.mock.js +1 -1
  233. package/dist/hub-source/hub-source.js +1 -1
  234. package/dist/hub-source/hub-source__users-groups.js +1 -1
  235. package/dist/icon/icon.js +3 -2
  236. package/dist/icon/icon__svg.js +81 -6
  237. package/dist/icon/index.js +2 -1
  238. package/dist/icon-ng/icon-ng.js +89 -0
  239. package/dist/input/input.js +4 -5
  240. package/dist/input-ng/input-ng.js +166 -0
  241. package/dist/island/adaptive-island-hoc.js +1 -2
  242. package/dist/island/content.js +1 -1
  243. package/dist/island/header.js +1 -1
  244. package/dist/island/island.js +1 -2
  245. package/dist/island-legacy/content-legacy.js +1 -1
  246. package/dist/island-legacy/header-legacy.js +1 -1
  247. package/dist/island-legacy/island-legacy.js +1 -1
  248. package/dist/island-ng/island-content-ng.js +56 -0
  249. package/dist/island-ng/island-header-ng.js +32 -0
  250. package/dist/island-ng/island-ng-class-fixer.js +9 -0
  251. package/dist/island-ng/island-ng.js +31 -0
  252. package/dist/link/clickableLink.js +1 -1
  253. package/dist/link/link.js +2 -4
  254. package/dist/link-ng/link-ng.js +25 -0
  255. package/dist/list/list.js +13 -5
  256. package/dist/list/list__custom.js +8 -3
  257. package/dist/list/list__hint.js +1 -1
  258. package/dist/list/list__item.js +15 -6
  259. package/dist/list/list__link.js +2 -1
  260. package/dist/list/list__separator.js +1 -1
  261. package/dist/list/list__title.js +1 -1
  262. package/dist/list/list__users-groups-source.js +6 -2
  263. package/dist/loader/loader.js +1 -1
  264. package/dist/loader/loader__core.js +1 -1
  265. package/dist/loader-inline/loader-inline.js +1 -1
  266. package/dist/loader-inline-ng/loader-inline-ng.js +42 -0
  267. package/dist/loader-ng/loader-ng.js +43 -0
  268. package/dist/loader-screen/loader-screen.js +2 -3
  269. package/dist/loader-screen-ng/loader-screen-ng.js +99 -0
  270. package/dist/login-dialog/login-dialog.js +4 -2
  271. package/dist/login-dialog/service.js +4 -2
  272. package/dist/markdown/code.js +30 -0
  273. package/dist/markdown/heading.js +23 -0
  274. package/dist/markdown/link.js +30 -0
  275. package/dist/markdown/markdown.js +73 -0
  276. package/dist/message/message.js +4 -3
  277. package/dist/message-bundle-ng/message-bundle-ng.js +111 -0
  278. package/dist/pager/pager.js +16 -7
  279. package/dist/pager-ng/pager-ng.js +96 -0
  280. package/dist/panel/panel.js +2 -3
  281. package/dist/panel-ng/panel-ng.js +16 -0
  282. package/dist/permissions/permissions.js +1 -1
  283. package/dist/permissions/permissions__cache.js +1 -1
  284. package/dist/permissions-ng/permissions-ng.js +274 -0
  285. package/dist/place-under-ng/place-under-ng.js +157 -0
  286. package/dist/popup/popup.js +2 -3
  287. package/dist/popup/position.js +1 -2
  288. package/dist/popup-menu/popup-menu.js +6 -3
  289. package/dist/progress-bar/progress-bar.js +2 -2
  290. package/dist/progress-bar-ng/progress-bar-ng.js +15 -0
  291. package/dist/promised-click-ng/promised-click-ng.js +126 -0
  292. package/dist/proxy-attrs/proxy-attrs.js +1 -1
  293. package/dist/query-assist/query-assist.js +6 -3
  294. package/dist/query-assist/query-assist__suggestions.js +5 -1
  295. package/dist/query-assist-ng/query-assist-ng.js +82 -0
  296. package/dist/radio/radio.js +2 -1
  297. package/dist/radio/radio__item.js +2 -4
  298. package/dist/radio-ng/radio-ng.js +63 -0
  299. package/dist/save-field-ng/save-field-ng.js +335 -0
  300. package/dist/save-field-ng/save-field-ng__template.js +34 -0
  301. package/dist/select/select.js +13 -11
  302. package/dist/select/select__filter.js +6 -1
  303. package/dist/select/select__popup.js +7 -2
  304. package/dist/select-ng/select-ng.js +621 -0
  305. package/dist/select-ng/select-ng__lazy.js +150 -0
  306. package/dist/select-ng/select-ng__options.js +145 -0
  307. package/dist/shortcuts/core.js +2 -2
  308. package/dist/shortcuts/shortcuts-hoc.js +1 -1
  309. package/dist/shortcuts/shortcuts.js +6 -6
  310. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +120 -0
  311. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +50 -0
  312. package/dist/shortcuts-ng/shortcuts-ng.js +261 -0
  313. package/dist/sidebar-ng/sidebar-ng.js +111 -0
  314. package/dist/sidebar-ng/sidebar-ng__button-template.js +20 -0
  315. package/dist/sidebar-ng/sidebar-ng__template.js +12 -0
  316. package/dist/storage/storage.js +3 -2
  317. package/dist/storage/storage__fallback.js +1 -1
  318. package/dist/storage/storage__local.js +3 -2
  319. package/dist/style.css +1 -1
  320. package/dist/tab-trap/tab-trap.js +1 -2
  321. package/dist/table/cell.js +1 -1
  322. package/dist/table/disable-hover-hoc.js +1 -1
  323. package/dist/table/header-cell.js +3 -2
  324. package/dist/table/header.js +4 -2
  325. package/dist/table/multitable.js +1 -1
  326. package/dist/table/row-with-focus-sensor.js +4 -2
  327. package/dist/table/row.js +4 -2
  328. package/dist/table/selection-adapter.js +1 -1
  329. package/dist/table/selection-shortcuts-hoc.js +1 -1
  330. package/dist/table/selection.js +1 -1
  331. package/dist/table/smart-table.js +4 -2
  332. package/dist/table/table.js +4 -3
  333. package/dist/table-legacy-ng/table-legacy-ng.js +501 -0
  334. package/dist/table-legacy-ng/table-legacy-ng__pager.js +122 -0
  335. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +123 -0
  336. package/dist/table-legacy-ng/table-legacy-ng__selection.js +179 -0
  337. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +56 -0
  338. package/dist/table-ng/smart-table-ng.js +65 -0
  339. package/dist/table-ng/table-ng.js +64 -0
  340. package/dist/tabs/collapsible-more.js +5 -1
  341. package/dist/tabs/collapsible-tab.js +2 -1
  342. package/dist/tabs/collapsible-tabs.js +6 -3
  343. package/dist/tabs/dumb-tabs.js +6 -2
  344. package/dist/tabs/smart-tabs.js +6 -2
  345. package/dist/tabs/tab-link.js +2 -1
  346. package/dist/tabs/tab.js +1 -1
  347. package/dist/tabs/tabs.js +5 -1
  348. package/dist/tabs-ng/tabs-ng.js +193 -0
  349. package/dist/tabs-ng/tabs-ng__template.js +40 -0
  350. package/dist/tag/tag.js +4 -3
  351. package/dist/tags-input/tags-input.js +12 -8
  352. package/dist/tags-input-ng/tags-input-ng.js +89 -0
  353. package/dist/tags-list/tags-list.js +3 -2
  354. package/dist/template-ng/template-ng.js +70 -0
  355. package/dist/text/text.js +1 -1
  356. package/dist/theme-ng/theme-ng.js +44 -0
  357. package/dist/title-ng/title-ng.js +114 -0
  358. package/dist/toggle/toggle.js +2 -3
  359. package/dist/toggle-ng/toggle-ng.js +16 -0
  360. package/dist/tooltip/tooltip.js +8 -4
  361. package/dist/tooltip-ng/tooltip-ng.js +98 -0
  362. package/dist/user-agreement/service.js +409 -0
  363. package/dist/user-agreement/toolbox.eula.js +162 -0
  364. package/dist/user-agreement/user-agreement.js +167 -0
  365. package/dist/user-card/card.js +3 -0
  366. package/dist/user-card/smart-user-card-tooltip.js +5 -2
  367. package/dist/user-card/tooltip.js +5 -2
  368. package/dist/user-card/user-card.js +5 -2
  369. package/dist/user-card-ng/user-card-ng.js +59 -0
  370. package/package.json +62 -64
  371. package/webpack.config.js +10 -8
  372. package/components/button-set-ng/button-set-ng.html +0 -1
  373. package/components/footer-ng/footer-ng.html +0 -13
  374. package/components/form-ng/form-ng__error-bubble.html +0 -3
  375. package/components/table-legacy-ng/table-legacy-ng.html +0 -4
  376. package/components/table-legacy-ng/table-legacy-ng__column.html +0 -12
  377. package/components/table-legacy-ng/table-legacy-ng__header.html +0 -4
  378. package/components/table-legacy-ng/table-legacy-ng__pager.html +0 -7
  379. package/components/table-legacy-ng/table-legacy-ng__row.html +0 -12
  380. package/components/table-legacy-ng/table-legacy-ng__title.html +0 -9
  381. package/dist/_helpers/caption.js +0 -25
  382. package/dist/_helpers/icon__svg.js +0 -82
@@ -0,0 +1,169 @@
1
+ import angular from 'angular';
2
+ import AngularElastic from '@jetbrains/angular-elastic';
3
+ import MessageBundle from '../message-bundle-ng/message-bundle-ng.js';
4
+
5
+ /**
6
+ * @name Form Ng
7
+ */
8
+
9
+ const angularModule = angular.module('Ring.form', [MessageBundle, AngularElastic]);
10
+ angularModule.factory('getFormErrorMessages', ["RingMessageBundle", function getFormErrorMessagesDirective(RingMessageBundle) {
11
+ function msg(id, formError) {
12
+ const messageBundleId = `form_${id}`;
13
+
14
+ if (RingMessageBundle.hasOwnProperty(messageBundleId)) {
15
+ return RingMessageBundle[messageBundleId]();
16
+ }
17
+
18
+ const formErrors = formError && formError[id] || [];
19
+
20
+ for (let j = 0; j < formErrors.length; ++j) {
21
+ if (formErrors[j] && formErrors[j].message) {
22
+ return formErrors[j].message;
23
+ }
24
+ }
25
+
26
+ return undefined;
27
+ }
28
+
29
+ return formErrors => {
30
+ const errorMessages = [];
31
+
32
+ for (const key in formErrors) {
33
+ if (formErrors.hasOwnProperty(key) && formErrors[key]) {
34
+ errorMessages.push(msg(key, formErrors));
35
+ }
36
+ }
37
+
38
+ return errorMessages;
39
+ };
40
+ }]);
41
+ /**
42
+ * <div rg-error-bubble="form.name"></div>
43
+ * @param {object} error-bubble Ng-model for this control
44
+ *
45
+ * Where form.name is a reference to angularJS form input
46
+ */
47
+
48
+ angularModule.directive('rgErrorBubble', ["getFormErrorMessages", function rgErrorBubbleDirective(getFormErrorMessages) {
49
+ return {
50
+ scope: {
51
+ errorBubble: '&rgErrorBubble'
52
+ },
53
+ replace: true,
54
+ template: `<div class="ring-error-bubble" ng-class="{ active: active, 'ring-error-bubble_material': material }" ng-style="style">
55
+ <div ng-repeat="errorMessage in getFormErrorMessages(errorBubble().$error)">{{ errorMessage }}</div>
56
+ </div>`,
57
+ link: function link(scope, iElement, iAttrs) {
58
+ scope.style = {};
59
+ const siblings = Array.from(iElement[0].parentNode.children);
60
+ let element;
61
+ let tagName;
62
+
63
+ for (let i = 0; i < siblings.length; i++) {
64
+ tagName = siblings[i].tagName.toLowerCase();
65
+
66
+ if (tagName === 'input' || tagName === 'textarea') {
67
+ element = siblings[i];
68
+ break;
69
+ }
70
+ }
71
+
72
+ scope.material = iAttrs.material !== undefined;
73
+ scope.$watch(() => {
74
+ const result = scope.errorBubble();
75
+ return result.$invalid && result.$dirty;
76
+ }, active => {
77
+ scope.active = active;
78
+
79
+ if (active && element) {
80
+ scope.style.left = element.offsetWidth + 2;
81
+ }
82
+ });
83
+ scope.getFormErrorMessages = getFormErrorMessages;
84
+ }
85
+ };
86
+ }]);
87
+ /**
88
+ * <input name="confirm" type="password" rg-equal-value="data.password" ng-model="data.confirm">
89
+ * Constraint to be user for confirm password fields.
90
+ */
91
+
92
+ angularModule.directive('rgEqualValue', function rgEqualValueDirective() {
93
+ return {
94
+ require: 'ngModel',
95
+ link: function link(scope, iElement, iAttrs, ngModelCtrl) {
96
+ const element = iElement[0];
97
+
98
+ function assertEqual(thisValue, thatValue) {
99
+ ngModelCtrl.$setValidity('equalvalue', thisValue === thatValue);
100
+ }
101
+
102
+ scope.$watch(iAttrs.rgEqualValue, value => {
103
+ assertEqual(element.value, value);
104
+ });
105
+ element.addEventListener('keyup', () => {
106
+ const thatValue = scope.$eval(iAttrs.rgEqualValue);
107
+ scope.$apply(() => {
108
+ assertEqual(element.value, thatValue);
109
+ });
110
+ });
111
+ }
112
+ };
113
+ });
114
+ /**
115
+ * <input name="name" required type="text" ng-class="form.name | rgInputClass:submitted" ng-model="name">
116
+ *
117
+ * Is intended to be used for the value of ng-class. Accepts a reference to an angularJS form input
118
+ */
119
+
120
+ angularModule.filter('rgInputClass', () => (input, submitted) => ({
121
+ 'ring-input': true,
122
+ 'ring-input_error': input.$invalid && (input.$dirty || submitted),
123
+ 'ring-input_correct': !input.$invalid && (input.$dirty || submitted)
124
+ }));
125
+ /**
126
+ * <form rg-form-autofill-fix ...>
127
+ *
128
+ * Fixes Chrome bug: https://github.com/angular/angular.js/issues/1460
129
+ */
130
+
131
+ angularModule.directive('rgFormAutofillFix', ["$timeout", $timeout => ({
132
+ require: '?form',
133
+ priority: 10,
134
+ link: function link($scope, element, attrs, form) {
135
+ if (form) {
136
+ const POLL_INTERVAL = 150;
137
+ const MAX_COUNT = 5;
138
+ let promise;
139
+ let count = 0;
140
+
141
+ (function poll() {
142
+ let filled;
143
+ angular.forEach(element.find('input'), elem => {
144
+ const $elem = angular.element(elem);
145
+ const controller = $elem.controller('ngModel');
146
+ const val = $elem.val();
147
+ const type = $elem.attr('type');
148
+
149
+ if (controller && val && type !== 'checkbox' && type !== 'radio') {
150
+ controller.$setViewValue(val);
151
+ filled = true;
152
+ }
153
+ });
154
+
155
+ if (!filled || count < MAX_COUNT) {
156
+ promise = $timeout(poll, POLL_INTERVAL);
157
+ count++;
158
+ }
159
+ })();
160
+
161
+ element.on('$destroy', () => {
162
+ $timeout.cancel(promise);
163
+ });
164
+ }
165
+ }
166
+ })]);
167
+ var Form = angularModule.name;
168
+
169
+ export { Form as default };
@@ -79,5 +79,4 @@ function angularComponentFactory(Component, name) {
79
79
  return angular.module(angularModuleName, []).component(getAngularComponentName(name), createAngularComponent(Component));
80
80
  }
81
81
 
82
- export default angularComponentFactory;
83
- export { createAngularComponent };
82
+ export { createAngularComponent, angularComponentFactory as default };
@@ -6,4 +6,4 @@ const compose = function () {
6
6
  return funcs.reduce((acc, func) => arg => acc(func(arg)), arg => arg);
7
7
  };
8
8
 
9
- export default compose;
9
+ export { compose as default };
@@ -12,4 +12,4 @@ var composeRefs = (function () {
12
12
  });
13
13
  });
14
14
 
15
- export default composeRefs;
15
+ export { composeRefs as default };
@@ -32,5 +32,4 @@ const conicGradientWithMask = (mask, stops, size) => {
32
32
  };
33
33
  };
34
34
 
35
- export default conicGradient$1;
36
- export { conicGradientWithMask };
35
+ export { conicGradientWithMask, conicGradient$1 as default };
@@ -51,4 +51,4 @@ function createStatefulContext(initialValue) {
51
51
  };
52
52
  }
53
53
 
54
- export default createStatefulContext;
54
+ export { createStatefulContext as default };
@@ -19,4 +19,4 @@ function joinDataTestAttributes() {
19
19
  }, []).join(' ');
20
20
  }
21
21
 
22
- export default joinDataTestAttributes;
22
+ export { joinDataTestAttributes as default };
@@ -142,4 +142,4 @@ function focusSensorHOC(ComposedComponent) {
142
142
  }), _temp;
143
143
  }
144
144
 
145
- export default focusSensorHOC;
145
+ export { focusSensorHOC as default };
@@ -64,4 +64,4 @@ function fuzzyHighlight(needle, haystack) {
64
64
  return result(true, highlight);
65
65
  }
66
66
 
67
- export default fuzzyHighlight;
67
+ export { fuzzyHighlight as default };
@@ -108,4 +108,4 @@ function getEventKey(nativeEvent) {
108
108
  return '';
109
109
  }
110
110
 
111
- export default getEventKey;
111
+ export { getEventKey as default };
@@ -12,4 +12,4 @@ function getUID(name) {
12
12
  return name + id;
13
13
  }
14
14
 
15
- export default getUID;
15
+ export { getUID as default };
@@ -14,5 +14,4 @@ function interpolateLinear(x0, x1, phase) {
14
14
  return linearFunction(x0, x0, phase).y(x1);
15
15
  }
16
16
 
17
- export default linearFunction;
18
- export { interpolateLinear };
17
+ export { linearFunction as default, interpolateLinear };
@@ -39,4 +39,4 @@ class Listeners {
39
39
 
40
40
  }
41
41
 
42
- export default Listeners;
42
+ export { Listeners as default };
@@ -15,4 +15,4 @@ function memoize(fn) {
15
15
  };
16
16
  }
17
17
 
18
- export default memoize;
18
+ export { memoize as default };
@@ -25,4 +25,4 @@ function normalizeIndent(string) {
25
25
  return lines.map(line => line.slice(minIndent)).join('\n');
26
26
  }
27
27
 
28
- export default normalizeIndent;
28
+ export { normalizeIndent as default };
@@ -10,4 +10,4 @@ function promiseWithTimeout(promise, timeout, _ref) {
10
10
  });
11
11
  }
12
12
 
13
- export default promiseWithTimeout;
13
+ export { promiseWithTimeout as default };
@@ -46,4 +46,4 @@ var radialGradientMask = ((length, stops) => {
46
46
  };
47
47
  });
48
48
 
49
- export default radialGradientMask;
49
+ export { radialGradientMask as default };
@@ -42,4 +42,4 @@ _defineProperty(Renderer, "propTypes", {
42
42
  nodes: PropTypes.array
43
43
  });
44
44
 
45
- export default Renderer;
45
+ export { Renderer as default };
@@ -48,4 +48,4 @@ function rerenderHOC(ComposedComponent) {
48
48
  };
49
49
  }
50
50
 
51
- export default rerenderHOC;
51
+ export { rerenderHOC as default };
@@ -21,4 +21,4 @@ class RingAngularComponent {
21
21
 
22
22
  _defineProperty(RingAngularComponent, "$inject", []);
23
23
 
24
- export default RingAngularComponent;
24
+ export { RingAngularComponent as default };
@@ -28,4 +28,4 @@ function scheduleRAF(trailingCall) {
28
28
  };
29
29
  }
30
30
 
31
- export default scheduleRAF;
31
+ export { scheduleRAF as default };
@@ -3,4 +3,4 @@ import Sniffr from 'sniffr';
3
3
  const sniffr = new Sniffr();
4
4
  sniffr.sniff();
5
5
 
6
- export default sniffr;
6
+ export { sniffr as default };
@@ -17,4 +17,4 @@ var supportsCss = memoize(declaration => {
17
17
  return true;
18
18
  });
19
19
 
20
- export default supportsCss;
20
+ export { supportsCss as default };
@@ -51,5 +51,4 @@ function applyTheme(params) {
51
51
  params.element.classList.add(params.currentTheme);
52
52
  }
53
53
 
54
- export default Theme;
55
- export { ThemeContext, applyTheme, withTheme };
54
+ export { ThemeContext, applyTheme, Theme as default, withTheme };
@@ -12,4 +12,4 @@ function trivialTemplateTag(f) {
12
12
  };
13
13
  }
14
14
 
15
- export default trivialTemplateTag;
15
+ export { trivialTemplateTag as default };
@@ -54,4 +54,4 @@ var variables_dark = {
54
54
  '--ring-code-deletion-color': '#656e76'
55
55
  };
56
56
 
57
- export default variables_dark;
57
+ export { variables_dark as default };
package/dist/grid/col.js CHANGED
@@ -57,4 +57,4 @@ _defineProperty(Col, "propTypes", {
57
57
  children: PropTypes.node
58
58
  });
59
59
 
60
- export default Col;
60
+ export { Col as default };
package/dist/grid/row.js CHANGED
@@ -61,4 +61,4 @@ _defineProperty(Row, "propTypes", {
61
61
  children: PropTypes.node
62
62
  });
63
63
 
64
- export default Row;
64
+ export { Row as default };
@@ -2,8 +2,7 @@ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBa
2
2
  import React, { Component } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
-
6
- var modules_d9da30c7 = {"unit":"8px","group":"group_group__24c2c3f1"};
5
+ import { m as modules_d9da30c7 } from '../_helpers/group.js';
7
6
 
8
7
  /**
9
8
  * @name Group
@@ -29,4 +28,4 @@ _defineProperty(Group, "propTypes", {
29
28
  className: PropTypes.string
30
29
  });
31
30
 
32
- export default Group;
31
+ export { Group as default };
@@ -0,0 +1,11 @@
1
+ import angular from 'angular';
2
+ import { m as modules_d9da30c7 } from '../_helpers/group.js';
3
+
4
+ const angularModule = angular.module('Ring.group', []);
5
+ angularModule.component('rgGroup', {
6
+ transclude: true,
7
+ template: `<span ng-transclude class="${modules_d9da30c7.group}"></span>`
8
+ });
9
+ var groupNg = angularModule.name;
10
+
11
+ export { groupNg as default };
@@ -15,7 +15,8 @@ export { default as SmartServices } from './smart-services.js';
15
15
  import '../icon/icon.js';
16
16
  import 'util-deprecate';
17
17
  import '../icon/icon__constants.js';
18
- import '../_helpers/icon__svg.js';
18
+ import '../_helpers/icon.js';
19
+ import '../icon/icon__svg.js';
19
20
  import '../global/memoize.js';
20
21
  import '../button/button.js';
21
22
  import 'focus-visible';
@@ -25,43 +26,47 @@ import '../_helpers/button__classes.js';
25
26
  import '../avatar/avatar.js';
26
27
  import '../global/url.js';
27
28
  import '../global/dom.js';
28
- import '../dropdown/dropdown.js';
29
- import '../global/data-tests.js';
30
- import '../_helpers/anchor.js';
31
- import '../popup-menu/popup-menu.js';
32
- import '../popup/popup.js';
33
- import 'react-dom';
29
+ import '../avatar/fallback-avatar.js';
34
30
  import '../global/get-uid.js';
35
- import '../global/schedule-raf.js';
36
- import '../shortcuts/shortcuts.js';
37
- import '../shortcuts/core.js';
38
- import 'combokeys';
39
- import '../global/sniffer.js';
40
- import 'sniffr';
41
- import '../tab-trap/tab-trap.js';
42
- import '../popup/position.js';
43
- import '../popup/popup.consts.js';
44
- import '../popup/popup.target.js';
31
+ import '../dropdown-menu/dropdown-menu.js';
45
32
  import '../list/list.js';
46
33
  import 'react-virtualized/dist/es/List';
47
34
  import 'react-virtualized/dist/es/AutoSizer';
48
35
  import 'react-virtualized/dist/es/WindowScroller';
49
36
  import 'react-virtualized/dist/es/CellMeasurer';
50
37
  import 'memoize-one';
38
+ import '../global/data-tests.js';
39
+ import '../global/schedule-raf.js';
40
+ import '../shortcuts/shortcuts.js';
41
+ import '../shortcuts/core.js';
42
+ import 'combokeys';
43
+ import '../global/sniffer.js';
44
+ import 'sniffr';
51
45
  import '../global/create-stateful-context.js';
52
46
  import '../list/list__link.js';
53
47
  import '../link/link.js';
48
+ import '../_helpers/link.js';
54
49
  import '../_helpers/list.js';
55
50
  import '../list/list__item.js';
56
51
  import '../checkbox/checkbox.js';
57
52
  import '@jetbrains/icons/checkmark';
58
53
  import '@jetbrains/icons/remove-10px';
54
+ import '../_helpers/checkbox.js';
59
55
  import '../list/list__custom.js';
60
56
  import '../global/get-event-key.js';
61
57
  import '../list/list__title.js';
62
58
  import '../list/list__separator.js';
63
59
  import '../list/list__hint.js';
64
60
  import '../list/consts.js';
61
+ import '../dropdown/dropdown.js';
62
+ import '../_helpers/anchor.js';
63
+ import '../popup-menu/popup-menu.js';
64
+ import '../popup/popup.js';
65
+ import 'react-dom';
66
+ import '../tab-trap/tab-trap.js';
67
+ import '../popup/position.js';
68
+ import '../popup/popup.consts.js';
69
+ import '../popup/popup.target.js';
65
70
  import '../auth/auth.js';
66
71
  import '../auth/window-flow.js';
67
72
  import '../auth/response-parser.js';
@@ -81,6 +86,7 @@ import '../global/inject-styles.js';
81
86
  import '../global/radial-gradient-mask.js';
82
87
  import '../alert/container.js';
83
88
  import '../group/group.js';
89
+ import '../_helpers/group.js';
84
90
  import '../auth/auth__core.js';
85
91
  import '../global/listeners.js';
86
92
  import '../http/http.js';
@@ -138,5 +144,4 @@ _defineProperty(Header, "defaultProps", {
138
144
  var header = withTheme(Theme.DARK)(Header);
139
145
  const RerenderableHeader = compose(withTheme(Theme.DARK))(Header);
140
146
 
141
- export default header;
142
- export { RerenderableHeader };
147
+ export { RerenderableHeader, header as default };
@@ -6,7 +6,8 @@ import Icon from '../icon/icon.js';
6
6
  import { m as modules_47759f5e } from '../_helpers/header.js';
7
7
  import { Size } from '../icon/icon__constants.js';
8
8
  import 'util-deprecate';
9
- import '../_helpers/icon__svg.js';
9
+ import '../_helpers/icon.js';
10
+ import '../icon/icon__svg.js';
10
11
  import '../global/memoize.js';
11
12
 
12
13
  class Logo extends PureComponent {
@@ -34,4 +35,4 @@ _defineProperty(Logo, "defaultProps", {
34
35
 
35
36
  _defineProperty(Logo, "Size", Size);
36
37
 
37
- export default Logo;
38
+ export { Logo as default };
@@ -4,56 +4,61 @@ import PropTypes from 'prop-types';
4
4
  import classNames from 'classnames';
5
5
  import Avatar, { Size } from '../avatar/avatar.js';
6
6
  import Button from '../button/button.js';
7
- import Dropdown from '../dropdown/dropdown.js';
7
+ import DropdownMenu from '../dropdown-menu/dropdown-menu.js';
8
8
  import PopupMenu from '../popup-menu/popup-menu.js';
9
9
  import { m as modules_47759f5e } from '../_helpers/header.js';
10
10
  import '../global/url.js';
11
11
  import '../global/dom.js';
12
+ import '../avatar/fallback-avatar.js';
13
+ import '../global/get-uid.js';
12
14
  import 'focus-visible';
13
15
  import '@jetbrains/icons/chevron-10px';
14
16
  import '../icon/icon.js';
15
17
  import 'util-deprecate';
16
18
  import '../icon/icon__constants.js';
17
- import '../_helpers/icon__svg.js';
19
+ import '../_helpers/icon.js';
20
+ import '../icon/icon__svg.js';
18
21
  import '../global/memoize.js';
19
22
  import '../global/theme.js';
20
23
  import '../link/clickableLink.js';
21
24
  import '../_helpers/button__classes.js';
25
+ import '../list/list.js';
26
+ import 'react-virtualized/dist/es/List';
27
+ import 'react-virtualized/dist/es/AutoSizer';
28
+ import 'react-virtualized/dist/es/WindowScroller';
29
+ import 'react-virtualized/dist/es/CellMeasurer';
30
+ import 'memoize-one';
22
31
  import '../global/data-tests.js';
23
- import '../_helpers/anchor.js';
24
- import '../popup/popup.js';
25
- import 'react-dom';
26
- import '../global/get-uid.js';
27
32
  import '../global/schedule-raf.js';
28
33
  import '../shortcuts/shortcuts.js';
29
34
  import '../shortcuts/core.js';
30
35
  import 'combokeys';
31
36
  import '../global/sniffer.js';
32
37
  import 'sniffr';
33
- import '../tab-trap/tab-trap.js';
34
- import '../popup/position.js';
35
- import '../popup/popup.consts.js';
36
- import '../popup/popup.target.js';
37
- import '../list/list.js';
38
- import 'react-virtualized/dist/es/List';
39
- import 'react-virtualized/dist/es/AutoSizer';
40
- import 'react-virtualized/dist/es/WindowScroller';
41
- import 'react-virtualized/dist/es/CellMeasurer';
42
- import 'memoize-one';
43
38
  import '../global/create-stateful-context.js';
44
39
  import '../list/list__link.js';
45
40
  import '../link/link.js';
41
+ import '../_helpers/link.js';
46
42
  import '../_helpers/list.js';
47
43
  import '../list/list__item.js';
48
44
  import '../checkbox/checkbox.js';
49
45
  import '@jetbrains/icons/checkmark';
50
46
  import '@jetbrains/icons/remove-10px';
47
+ import '../_helpers/checkbox.js';
51
48
  import '../list/list__custom.js';
52
49
  import '../global/get-event-key.js';
53
50
  import '../list/list__title.js';
54
51
  import '../list/list__separator.js';
55
52
  import '../list/list__hint.js';
56
53
  import '../list/consts.js';
54
+ import '../dropdown/dropdown.js';
55
+ import '../_helpers/anchor.js';
56
+ import '../popup/popup.js';
57
+ import 'react-dom';
58
+ import '../tab-trap/tab-trap.js';
59
+ import '../popup/position.js';
60
+ import '../popup/popup.consts.js';
61
+ import '../popup/popup.target.js';
57
62
 
58
63
  const rgItemType = PopupMenu.ListProps.Type.LINK;
59
64
  class Profile extends PureComponent {
@@ -133,17 +138,18 @@ class Profile extends PureComponent {
133
138
  label: translations.logout || 'Log out',
134
139
  onClick: onLogout
135
140
  }].filter(it => !!it);
136
- return /*#__PURE__*/React.createElement(Dropdown, _extends({}, props, {
141
+ return /*#__PURE__*/React.createElement(DropdownMenu, _extends({}, props, {
137
142
  title: user.name,
138
143
  anchor: anchor,
139
- "data-test": "ring-profile",
140
- className: classNames(modules_47759f5e.profile, className)
141
- }), /*#__PURE__*/React.createElement(PopupMenu, {
142
- closeOnSelect: closeOnSelect,
143
144
  data: renderPopupItems(items),
144
- left: -2,
145
- top: -8,
146
- sidePadding: 32
145
+ "data-test": "ring-profile",
146
+ className: classNames(modules_47759f5e.profile, className),
147
+ menuProps: {
148
+ closeOnSelect,
149
+ left: -2,
150
+ top: -8,
151
+ sidePadding: 32
152
+ }
147
153
  }));
148
154
  }
149
155
 
@@ -208,4 +214,4 @@ _defineProperty(Profile, "defaultProps", {
208
214
 
209
215
  _defineProperty(Profile, "Size", Size);
210
216
 
211
- export default Profile;
217
+ export { Profile as default };
@@ -8,3 +8,4 @@ import 'classnames';
8
8
  import '../global/memoize.js';
9
9
  import '../global/data-tests.js';
10
10
  import '../link/clickableLink.js';
11
+ import '../_helpers/link.js';
@@ -13,7 +13,8 @@ import '@jetbrains/icons/chevron-10px';
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 '../button/button.js';
19
20
  import 'focus-visible';
@@ -35,6 +36,7 @@ import '../popup/popup.consts.js';
35
36
  import '../popup/popup.target.js';
36
37
  import '../_helpers/header.js';
37
38
  import '../link/link.js';
39
+ import '../_helpers/link.js';
38
40
 
39
41
  const makeAnchor = loading => {
40
42
  const Anchor = _ref => {
@@ -131,4 +133,4 @@ _defineProperty(Services, "propTypes", {
131
133
 
132
134
  _defineProperty(Services, "Link", ServicesLink);
133
135
 
134
- export default Services;
136
+ export { Services as default };