@jetbrains/ring-ui 5.1.1 → 6.0.1-beta.0

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 (702) hide show
  1. package/README.md +1 -6
  2. package/components/alert/alert.d.ts +1 -1
  3. package/components/alert/container.css +3 -0
  4. package/components/alert-service/alert-service.d.ts +2 -2
  5. package/components/analytics/analytics.d.ts +21 -7
  6. package/components/analytics/analytics.js +19 -24
  7. package/components/analytics/analytics__custom-plugin.d.ts +6 -16
  8. package/components/analytics/analytics__custom-plugin.js +12 -52
  9. package/components/analytics/analytics__fus-plugin.d.ts +15 -25
  10. package/components/analytics/analytics__fus-plugin.js +15 -73
  11. package/components/analytics/analytics__ga-plugin.d.ts +13 -3
  12. package/components/analytics/analytics__ga-plugin.js +35 -5
  13. package/components/analytics/analytics__plugin-utils.d.ts +16 -0
  14. package/components/analytics/analytics__plugin-utils.js +26 -1
  15. package/components/auth/auth__core.d.ts +5 -4
  16. package/components/auth/auth__core.js +44 -27
  17. package/components/auth-dialog/auth-dialog.d.ts +2 -2
  18. package/components/auth-dialog/auth-dialog.js +3 -1
  19. package/components/auth-dialog-service/auth-dialog-service.js +4 -1
  20. package/components/avatar/avatar.d.ts +3 -3
  21. package/components/avatar/fallback-avatar.d.ts +2 -2
  22. package/components/avatar/fallback-avatar.js +2 -1
  23. package/components/avatar-editor-ng/avatar-editor-ng.css +1 -1
  24. package/components/badge/badge.d.ts +2 -2
  25. package/components/button/button.css +7 -7
  26. package/components/button/button.d.ts +3 -4
  27. package/components/button/button.js +0 -1
  28. package/components/button-group/button-group.css +2 -2
  29. package/components/button-group/button-group.d.ts +2 -2
  30. package/components/button-group/caption.d.ts +2 -2
  31. package/components/button-ng/button-ng.examples.js +2 -2
  32. package/components/button-ng/button-ng.js +1 -1
  33. package/components/button-set/button-set.d.ts +2 -2
  34. package/components/button-toolbar/button-toolbar.d.ts +2 -2
  35. package/components/checkbox/checkbox.css +2 -2
  36. package/components/checkbox/checkbox.d.ts +2 -2
  37. package/components/code/code.d.ts +1 -1
  38. package/components/confirm/confirm.d.ts +1 -1
  39. package/components/confirm/confirm.js +3 -3
  40. package/components/confirm-ng/confirm-ng.examples.js +1 -1
  41. package/components/confirm-service/confirm-service.js +2 -2
  42. package/components/content-layout/content-layout.d.ts +2 -2
  43. package/components/content-layout/sidebar.d.ts +2 -2
  44. package/components/contenteditable/contenteditable.d.ts +3 -3
  45. package/components/control-label/control-label.css +23 -0
  46. package/components/control-label/control-label.d.ts +11 -0
  47. package/components/control-label/control-label.js +22 -0
  48. package/components/data-list/data-list.css +2 -1
  49. package/components/data-list/data-list.d.ts +3 -3
  50. package/components/data-list/data-list.mock.d.ts +2 -2
  51. package/components/data-list/item.d.ts +3 -3
  52. package/components/data-list/title.d.ts +1 -1
  53. package/components/date-picker/consts.d.ts +5 -5
  54. package/components/date-picker/date-input.d.ts +3 -12
  55. package/components/date-picker/date-input.js +9 -15
  56. package/components/date-picker/date-picker.css +1 -1
  57. package/components/date-picker/date-picker.d.ts +8 -6
  58. package/components/date-picker/date-picker.js +9 -15
  59. package/components/date-picker/date-popup.d.ts +1 -1
  60. package/components/date-picker/date-popup.js +2 -1
  61. package/components/date-picker/day.d.ts +2 -2
  62. package/components/date-picker/month-names.d.ts +2 -2
  63. package/components/date-picker/month-names.js +2 -2
  64. package/components/date-picker/month-slider.d.ts +2 -2
  65. package/components/date-picker/month.d.ts +2 -2
  66. package/components/date-picker/months.d.ts +2 -2
  67. package/components/date-picker/months.js +46 -29
  68. package/components/date-picker/weekdays.d.ts +2 -2
  69. package/components/date-picker/years.d.ts +6 -2
  70. package/components/date-picker/years.js +26 -14
  71. package/components/dialog/dialog.css +1 -1
  72. package/components/dialog/dialog.d.ts +4 -16
  73. package/components/dialog/dialog.js +4 -2
  74. package/components/dialog-ng/dialog-ng.examples.js +1 -1
  75. package/components/dialog-ng/dialog-ng.js +4 -5
  76. package/components/dropdown/anchor.d.ts +1 -1
  77. package/components/dropdown/dropdown.d.ts +8 -1
  78. package/components/editable-heading/editable-heading.css +20 -7
  79. package/components/editable-heading/editable-heading.d.ts +2 -2
  80. package/components/editable-heading/editable-heading.js +39 -12
  81. package/components/error-bubble/error-bubble.d.ts +2 -2
  82. package/components/error-message/error-message.d.ts +2 -2
  83. package/components/footer/footer.js +1 -0
  84. package/components/form/form.examples.js +1 -0
  85. package/components/global/angular-component-factory.js +13 -7
  86. package/components/global/angular-component-factory.test.js +30 -10
  87. package/components/global/controls-height.d.ts +2 -0
  88. package/components/global/controls-height.js +8 -0
  89. package/components/global/create-stateful-context.d.ts +1 -1
  90. package/components/global/focus-sensor-hoc.d.ts +1 -0
  91. package/components/global/focus-sensor-hoc.js +5 -4
  92. package/components/global/react-dom-renderer.d.ts +4 -4
  93. package/components/global/react-dom-renderer.js +5 -5
  94. package/components/global/react-render-adapter.js +19 -31
  95. package/components/global/ring-angular-component.js +1 -3
  96. package/components/global/ring-angular-component.test.js +2 -1
  97. package/components/global/use-event-callback.d.ts +1 -0
  98. package/components/global/use-event-callback.js +14 -0
  99. package/components/global/variables_dark.css +2 -2
  100. package/components/grid/col.d.ts +2 -2
  101. package/components/grid/grid.d.ts +2 -2
  102. package/components/grid/row.d.ts +2 -2
  103. package/components/group/group.d.ts +2 -2
  104. package/components/header/header.d.ts +2 -2
  105. package/components/header/logo.d.ts +2 -2
  106. package/components/header/profile.d.ts +4 -2
  107. package/components/header/profile.js +15 -11
  108. package/components/header/services-link.d.ts +2 -2
  109. package/components/header/services.d.ts +2 -2
  110. package/components/header/smart-profile.d.ts +2 -2
  111. package/components/header/smart-services.d.ts +2 -2
  112. package/components/header/tray-icon.d.ts +2 -2
  113. package/components/header/tray.d.ts +2 -2
  114. package/components/heading/heading.css +8 -8
  115. package/components/http/http.d.ts +16 -6
  116. package/components/http/http.js +26 -0
  117. package/components/hub-source/hub-source__users-groups.d.ts +1 -1
  118. package/components/i18n/README.md +46 -0
  119. package/components/i18n/i18n-context.d.ts +13 -0
  120. package/components/i18n/i18n-context.js +14 -0
  121. package/components/i18n/i18n.d.ts +59 -0
  122. package/components/i18n/i18n.js +26 -0
  123. package/components/i18n/messages.json +53 -0
  124. package/components/icon/icon.d.ts +3 -3
  125. package/components/icon/icon__svg.d.ts +1 -1
  126. package/components/input/input-legacy.css +3 -3
  127. package/components/input/input.css +8 -21
  128. package/components/input/input.d.ts +7 -1
  129. package/components/input/input.js +18 -14
  130. package/components/input-ng/input-ng.examples.js +3 -1
  131. package/components/input-ng/input-ng.js +3 -2
  132. package/components/input-size/input-size.examples.js +1 -0
  133. package/components/island/adaptive-island-hoc.d.ts +2 -2
  134. package/components/island/content.d.ts +1 -1
  135. package/components/island/header.d.ts +2 -2
  136. package/components/island/island.css +1 -1
  137. package/components/island/island.d.ts +3 -3
  138. package/components/island-legacy/content-legacy.d.ts +2 -2
  139. package/components/island-legacy/header-legacy.d.ts +2 -2
  140. package/components/island-legacy/island-legacy.d.ts +2 -2
  141. package/components/island-ng/island-ng.js +3 -3
  142. package/components/link/clickableLink.d.ts +1 -1
  143. package/components/link/link.css +1 -1
  144. package/components/link/link.d.ts +8 -9
  145. package/components/link/link.js +0 -1
  146. package/components/list/consts.js +3 -0
  147. package/components/list/list.css +2 -2
  148. package/components/list/list.d.ts +7 -7
  149. package/components/list/list.js +4 -1
  150. package/components/list/list__custom.d.ts +1 -1
  151. package/components/list/list__hint.d.ts +2 -2
  152. package/components/list/list__item.d.ts +2 -2
  153. package/components/list/list__link.d.ts +2 -2
  154. package/components/list/list__separator.d.ts +2 -2
  155. package/components/list/list__title.d.ts +2 -2
  156. package/components/loader/loader.d.ts +2 -2
  157. package/components/loader-inline/loader-inline.d.ts +2 -2
  158. package/components/loader-ng/loader-ng.js +1 -1
  159. package/components/loader-screen/loader-screen.d.ts +2 -2
  160. package/components/login-dialog/login-dialog.d.ts +2 -2
  161. package/components/login-dialog/service.js +4 -1
  162. package/components/markdown/code.d.ts +2 -2
  163. package/components/markdown/heading.d.ts +2 -2
  164. package/components/markdown/link.d.ts +2 -2
  165. package/components/markdown/markdown.d.ts +2 -2
  166. package/components/message/message.d.ts +3 -7
  167. package/components/message/message.js +17 -16
  168. package/components/pager/pager.d.ts +8 -13
  169. package/components/pager/pager.js +12 -14
  170. package/components/panel/panel.css +1 -1
  171. package/components/panel/panel.d.ts +2 -2
  172. package/components/popup/popup.d.ts +2 -2
  173. package/components/popup/popup.js +1 -1
  174. package/components/popup/position.d.ts +1 -1
  175. package/components/popup/position.js +43 -33
  176. package/components/popup-menu/popup-menu.d.ts +2 -2
  177. package/components/progress-bar/progress-bar.d.ts +2 -2
  178. package/components/promised-click-ng/promised-click-ng.js +1 -1
  179. package/components/query-assist/query-assist.css +16 -11
  180. package/components/query-assist/query-assist.d.ts +3 -7
  181. package/components/query-assist/query-assist.js +50 -31
  182. package/components/query-assist/query-assist__suggestions.d.ts +2 -2
  183. package/components/radio/radio.css +1 -1
  184. package/components/radio/radio.d.ts +1 -1
  185. package/components/radio/radio__item.d.ts +1 -1
  186. package/components/select/select-popup.css +2 -2
  187. package/components/select/select.css +9 -5
  188. package/components/select/select.d.ts +20 -9
  189. package/components/select/select.js +47 -23
  190. package/components/select/select__filter.d.ts +2 -3
  191. package/components/select/select__filter.js +4 -2
  192. package/components/select/select__popup.d.ts +48 -8
  193. package/components/select/select__popup.js +29 -8
  194. package/components/shortcuts/shortcuts-hoc.d.ts +2 -2
  195. package/components/shortcuts/shortcuts.d.ts +1 -1
  196. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -2
  197. package/components/sidebar-ng/sidebar-ng.js +1 -2
  198. package/components/tab-trap/tab-trap.d.ts +1 -1
  199. package/components/table/cell.d.ts +2 -2
  200. package/components/table/disable-hover-hoc.d.ts +2 -2
  201. package/components/table/header-cell.d.ts +2 -2
  202. package/components/table/header.d.ts +3 -14
  203. package/components/table/header.js +5 -49
  204. package/components/table/multitable.d.ts +2 -2
  205. package/components/table/row-with-focus-sensor.d.ts +1 -1
  206. package/components/table/row.d.ts +2 -1
  207. package/components/table/row.js +4 -3
  208. package/components/table/smart-table.d.ts +3 -1
  209. package/components/table/table.css +9 -26
  210. package/components/table/table.d.ts +6 -4
  211. package/components/table/table.js +5 -3
  212. package/components/tabs/collapsible-more.d.ts +3 -3
  213. package/components/tabs/collapsible-tab.d.ts +1 -1
  214. package/components/tabs/collapsible-tabs.d.ts +2 -2
  215. package/components/tabs/dumb-tabs.d.ts +5 -3
  216. package/components/tabs/dumb-tabs.js +3 -2
  217. package/components/tabs/smart-tabs.d.ts +2 -2
  218. package/components/tabs/tab-link.d.ts +1 -1
  219. package/components/tabs/tab.d.ts +2 -2
  220. package/components/tabs/tab.js +3 -3
  221. package/components/tabs/tabs.css +4 -1
  222. package/components/tag/tag.css +3 -3
  223. package/components/tag/tag.d.ts +5 -5
  224. package/components/tags-input/tags-input.css +1 -1
  225. package/components/tags-input/tags-input.d.ts +9 -4
  226. package/components/tags-input/tags-input.js +7 -7
  227. package/components/tags-list/tags-list.d.ts +2 -2
  228. package/components/template-ng/template-ng.js +1 -2
  229. package/components/text/text.css +12 -0
  230. package/components/text/text.d.ts +8 -2
  231. package/components/text/text.js +12 -2
  232. package/components/toggle/toggle.css +1 -1
  233. package/components/toggle/toggle.d.ts +2 -2
  234. package/components/tooltip/tooltip.d.ts +1 -1
  235. package/components/user-agreement/service.js +4 -1
  236. package/components/user-agreement/user-agreement.d.ts +3 -11
  237. package/components/user-agreement/user-agreement.js +31 -30
  238. package/components/user-card/card.d.ts +22 -21
  239. package/components/user-card/card.js +29 -29
  240. package/components/user-card/smart-user-card-tooltip.d.ts +3 -3
  241. package/components/user-card/tooltip.d.ts +11 -6
  242. package/components/user-card/tooltip.js +1 -1
  243. package/components/user-card/user-card.css +10 -1
  244. package/dist/_helpers/_rollupPluginBabelHelpers.js +614 -1
  245. package/dist/_helpers/anchor.js +7 -8
  246. package/dist/_helpers/badge.js +1 -1
  247. package/dist/_helpers/button-group.js +1 -1
  248. package/dist/_helpers/button-set.js +1 -1
  249. package/dist/_helpers/button-toolbar.js +1 -1
  250. package/dist/_helpers/button__classes.js +17 -29
  251. package/dist/_helpers/card.js +100 -91
  252. package/dist/_helpers/checkbox.js +1 -1
  253. package/dist/_helpers/control-label.js +3 -0
  254. package/dist/_helpers/date-picker.js +1 -1
  255. package/dist/_helpers/dialog__body-scroll-preventer.js +21 -12
  256. package/dist/_helpers/error-message.js +1 -1
  257. package/dist/_helpers/footer.js +31 -35
  258. package/dist/_helpers/grid.js +1 -1
  259. package/dist/_helpers/group.js +1 -1
  260. package/dist/_helpers/header.js +1 -1
  261. package/dist/_helpers/icon.js +1 -1
  262. package/dist/_helpers/input.js +1 -1
  263. package/dist/_helpers/island.js +1 -1
  264. package/dist/_helpers/link.js +1 -1
  265. package/dist/_helpers/list.js +1 -1
  266. package/dist/_helpers/loader-inline.js +1 -1
  267. package/dist/_helpers/loader-screen.js +1 -1
  268. package/dist/_helpers/panel.js +1 -1
  269. package/dist/_helpers/query-assist__suggestions.js +92 -75
  270. package/dist/_helpers/radio.js +1 -1
  271. package/dist/_helpers/select__filter.js +69 -42
  272. package/dist/_helpers/services-link.js +33 -21
  273. package/dist/_helpers/sidebar.js +87 -86
  274. package/dist/_helpers/table.js +1 -1
  275. package/dist/_helpers/tabs.js +1 -1
  276. package/dist/_helpers/theme.js +43 -36
  277. package/dist/_helpers/title.js +66 -56
  278. package/dist/alert/alert.d.ts +1 -1
  279. package/dist/alert/alert.js +164 -127
  280. package/dist/alert/container.js +40 -29
  281. package/dist/alert-service/alert-service.d.ts +2 -2
  282. package/dist/alert-service/alert-service.js +169 -103
  283. package/dist/analytics/analytics.d.ts +21 -7
  284. package/dist/analytics/analytics.js +90 -71
  285. package/dist/analytics/analytics__custom-plugin.d.ts +6 -16
  286. package/dist/analytics/analytics__custom-plugin.js +74 -87
  287. package/dist/analytics/analytics__fus-plugin.d.ts +15 -25
  288. package/dist/analytics/analytics__fus-plugin.js +31 -89
  289. package/dist/analytics/analytics__ga-plugin.d.ts +13 -3
  290. package/dist/analytics/analytics__ga-plugin.js +76 -25
  291. package/dist/analytics/analytics__plugin-utils.d.ts +16 -0
  292. package/dist/analytics/analytics__plugin-utils.js +52 -21
  293. package/dist/auth/auth.js +39 -5
  294. package/dist/auth/auth__core.d.ts +5 -4
  295. package/dist/auth/auth__core.js +1459 -719
  296. package/dist/auth/background-flow.js +125 -84
  297. package/dist/auth/down-notification.js +76 -32
  298. package/dist/auth/iframe-flow.js +129 -69
  299. package/dist/auth/landing.js +93 -31
  300. package/dist/auth/request-builder.js +79 -45
  301. package/dist/auth/response-parser.js +117 -85
  302. package/dist/auth/storage.js +322 -161
  303. package/dist/auth/token-validator.js +239 -128
  304. package/dist/auth/window-flow.js +126 -83
  305. package/dist/auth-dialog/auth-dialog.d.ts +2 -2
  306. package/dist/auth-dialog/auth-dialog.js +152 -94
  307. package/dist/auth-dialog-service/auth-dialog-service.js +36 -10
  308. package/dist/auth-ng/auth-ng.js +73 -35
  309. package/dist/auth-ng/auth-ng.mock.js +6 -6
  310. package/dist/autofocus-ng/autofocus-ng.js +23 -8
  311. package/dist/avatar/avatar-example-datauri.js +1 -23
  312. package/dist/avatar/avatar.d.ts +3 -3
  313. package/dist/avatar/avatar.js +132 -99
  314. package/dist/avatar/fallback-avatar.d.ts +2 -2
  315. package/dist/avatar/fallback-avatar.js +44 -24
  316. package/dist/avatar-editor-ng/avatar-editor-ng.js +57 -25
  317. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
  318. package/dist/avatar-ng/avatar-ng.js +22 -0
  319. package/dist/badge/badge.d.ts +2 -2
  320. package/dist/badge/badge.js +34 -26
  321. package/dist/badge-ng/badge-ng.js +12 -0
  322. package/dist/breadcrumb-ng/breadcrumb-ng.js +17 -32
  323. package/dist/button/button.d.ts +3 -4
  324. package/dist/button/button.js +89 -69
  325. package/dist/button/button__classes.js +1 -0
  326. package/dist/button-group/button-group.d.ts +2 -2
  327. package/dist/button-group/button-group.js +31 -15
  328. package/dist/button-group/caption.d.ts +2 -2
  329. package/dist/button-group/caption.js +19 -11
  330. package/dist/button-group-ng/button-group-ng.js +13 -7
  331. package/dist/button-ng/button-ng.js +132 -112
  332. package/dist/button-set/button-set.d.ts +2 -2
  333. package/dist/button-set/button-set.js +29 -15
  334. package/dist/button-set-ng/button-set-ng.js +2 -2
  335. package/dist/button-toolbar/button-toolbar.d.ts +2 -2
  336. package/dist/button-toolbar/button-toolbar.js +28 -14
  337. package/dist/button-toolbar-ng/button-toolbar-ng.js +5 -3
  338. package/dist/caret/caret.js +223 -188
  339. package/dist/checkbox/checkbox.d.ts +2 -2
  340. package/dist/checkbox/checkbox.js +83 -58
  341. package/dist/checkbox-ng/checkbox-ng.js +18 -28
  342. package/dist/clipboard/clipboard-fallback.js +10 -10
  343. package/dist/clipboard/clipboard.js +131 -35
  344. package/dist/code/code.d.ts +1 -1
  345. package/dist/code/code.js +153 -81
  346. package/dist/compiler-ng/compiler-ng.js +18 -15
  347. package/dist/confirm/confirm.d.ts +1 -1
  348. package/dist/confirm/confirm.js +85 -47
  349. package/dist/confirm-ng/confirm-ng.js +34 -6
  350. package/dist/confirm-service/confirm-service.js +67 -44
  351. package/dist/content-layout/content-layout.d.ts +2 -2
  352. package/dist/content-layout/content-layout.js +53 -35
  353. package/dist/content-layout/sidebar.d.ts +2 -2
  354. package/dist/content-layout/sidebar.js +1 -0
  355. package/dist/contenteditable/contenteditable.d.ts +3 -3
  356. package/dist/contenteditable/contenteditable.js +54 -43
  357. package/dist/control-label/control-label.d.ts +11 -0
  358. package/dist/control-label/control-label.js +31 -0
  359. package/dist/data-list/data-list.d.ts +3 -3
  360. package/dist/data-list/data-list.js +164 -114
  361. package/dist/data-list/data-list.mock.d.ts +2 -2
  362. package/dist/data-list/data-list.mock.js +11 -3
  363. package/dist/data-list/item.d.ts +3 -3
  364. package/dist/data-list/item.js +140 -113
  365. package/dist/data-list/selection.js +139 -77
  366. package/dist/data-list/title.d.ts +1 -1
  367. package/dist/data-list/title.js +12 -0
  368. package/dist/data-list-ng/data-list-ng.js +30 -1
  369. package/dist/date-picker/consts.d.ts +5 -5
  370. package/dist/date-picker/consts.js +18 -15
  371. package/dist/date-picker/date-input.d.ts +3 -12
  372. package/dist/date-picker/date-input.js +131 -107
  373. package/dist/date-picker/date-picker.d.ts +8 -6
  374. package/dist/date-picker/date-picker.js +214 -160
  375. package/dist/date-picker/date-popup.d.ts +1 -1
  376. package/dist/date-picker/date-popup.js +340 -297
  377. package/dist/date-picker/day.d.ts +2 -2
  378. package/dist/date-picker/day.js +78 -68
  379. package/dist/date-picker/month-names.d.ts +2 -2
  380. package/dist/date-picker/month-names.js +59 -41
  381. package/dist/date-picker/month-slider.d.ts +2 -2
  382. package/dist/date-picker/month-slider.js +59 -40
  383. package/dist/date-picker/month.d.ts +2 -2
  384. package/dist/date-picker/month.js +21 -15
  385. package/dist/date-picker/months.d.ts +2 -2
  386. package/dist/date-picker/months.js +80 -56
  387. package/dist/date-picker/weekdays.d.ts +2 -2
  388. package/dist/date-picker/weekdays.js +18 -12
  389. package/dist/date-picker/years.d.ts +6 -2
  390. package/dist/date-picker/years.js +102 -66
  391. package/dist/dialog/dialog.d.ts +4 -16
  392. package/dist/dialog/dialog.js +148 -98
  393. package/dist/dialog/dialog__body-scroll-preventer.js +5 -0
  394. package/dist/dialog-ng/dialog-ng.js +404 -291
  395. package/dist/dialog-ng/dialog-ng__template.js +1 -70
  396. package/dist/docked-panel-ng/docked-panel-ng.js +33 -19
  397. package/dist/dropdown/anchor.d.ts +1 -1
  398. package/dist/dropdown/anchor.js +10 -1
  399. package/dist/dropdown/dropdown.d.ts +8 -1
  400. package/dist/dropdown/dropdown.js +158 -130
  401. package/dist/dropdown-menu/dropdown-menu.js +102 -73
  402. package/dist/editable-heading/editable-heading.d.ts +2 -2
  403. package/dist/editable-heading/editable-heading.js +133 -62
  404. package/dist/error-bubble/error-bubble.d.ts +2 -2
  405. package/dist/error-bubble/error-bubble.js +60 -27
  406. package/dist/error-message/error-message.d.ts +2 -2
  407. package/dist/error-message/error-message.js +52 -29
  408. package/dist/error-message-ng/error-message-ng.js +12 -24
  409. package/dist/footer/footer.js +11 -2
  410. package/dist/footer-ng/footer-ng.js +52 -27
  411. package/dist/form-ng/form-ng.js +67 -57
  412. package/dist/global/angular-component-factory.js +78 -50
  413. package/dist/global/compose.js +10 -1
  414. package/dist/global/composeRefs.js +12 -7
  415. package/dist/global/controls-height.d.ts +2 -0
  416. package/dist/global/controls-height.js +10 -2
  417. package/dist/global/create-stateful-context.d.ts +1 -1
  418. package/dist/global/create-stateful-context.js +19 -19
  419. package/dist/global/data-tests.js +15 -7
  420. package/dist/global/dom.js +93 -55
  421. package/dist/global/focus-sensor-hoc.d.ts +1 -0
  422. package/dist/global/focus-sensor-hoc.js +118 -102
  423. package/dist/global/fuzzy-highlight.js +41 -27
  424. package/dist/global/get-event-key.js +8 -8
  425. package/dist/global/get-uid.js +8 -4
  426. package/dist/global/inject-styles.js +15 -10
  427. package/dist/global/linear-function.js +2 -2
  428. package/dist/global/listeners.js +50 -28
  429. package/dist/global/memoize.js +13 -6
  430. package/dist/global/normalize-indent.js +51 -19
  431. package/dist/global/promise-with-timeout.js +8 -6
  432. package/dist/global/prop-types.js +5 -3
  433. package/dist/global/react-dom-renderer.d.ts +4 -4
  434. package/dist/global/react-dom-renderer.js +44 -28
  435. package/dist/global/react-render-adapter.js +21 -15
  436. package/dist/global/rerender-hoc.js +40 -19
  437. package/dist/global/ring-angular-component.js +18 -10
  438. package/dist/global/schedule-raf.js +6 -5
  439. package/dist/global/sniffer.js +1 -1
  440. package/dist/global/theme.js +24 -0
  441. package/dist/global/trivial-template-tag.js +10 -3
  442. package/dist/global/typescript-utils.js +6 -2
  443. package/dist/global/url.js +27 -21
  444. package/dist/global/use-event-callback.d.ts +1 -0
  445. package/dist/global/use-event-callback.js +17 -0
  446. package/dist/grid/col.d.ts +2 -2
  447. package/dist/grid/col.js +42 -23
  448. package/dist/grid/grid.d.ts +2 -2
  449. package/dist/grid/grid.js +32 -13
  450. package/dist/grid/row.d.ts +2 -2
  451. package/dist/grid/row.js +32 -20
  452. package/dist/group/group.d.ts +2 -2
  453. package/dist/group/group.js +23 -13
  454. package/dist/group-ng/group-ng.js +2 -2
  455. package/dist/header/header.d.ts +2 -2
  456. package/dist/header/header.js +75 -25
  457. package/dist/header/logo.d.ts +2 -2
  458. package/dist/header/logo.js +31 -12
  459. package/dist/header/profile.d.ts +4 -2
  460. package/dist/header/profile.js +154 -105
  461. package/dist/header/services-link.d.ts +2 -2
  462. package/dist/header/services-link.js +9 -1
  463. package/dist/header/services.d.ts +2 -2
  464. package/dist/header/services.js +104 -63
  465. package/dist/header/smart-profile.d.ts +2 -2
  466. package/dist/header/smart-profile.js +194 -98
  467. package/dist/header/smart-services.d.ts +2 -2
  468. package/dist/header/smart-services.js +104 -52
  469. package/dist/header/tray-icon.d.ts +2 -2
  470. package/dist/header/tray-icon.js +36 -20
  471. package/dist/header/tray.d.ts +2 -2
  472. package/dist/header/tray.js +30 -17
  473. package/dist/heading/heading.js +26 -27
  474. package/dist/heading-ng/heading-ng.js +10 -0
  475. package/dist/http/http.d.ts +16 -6
  476. package/dist/http/http.js +357 -170
  477. package/dist/http/http.mock.js +105 -50
  478. package/dist/hub-source/hub-source.js +183 -77
  479. package/dist/hub-source/hub-source__user.js +45 -12
  480. package/dist/hub-source/hub-source__users-groups.d.ts +1 -1
  481. package/dist/hub-source/hub-source__users-groups.js +63 -34
  482. package/dist/i18n/i18n-context.d.ts +13 -0
  483. package/dist/i18n/i18n-context.js +28 -0
  484. package/dist/i18n/i18n.d.ts +59 -0
  485. package/dist/i18n/i18n.js +140 -0
  486. package/dist/icon/icon.d.ts +3 -3
  487. package/dist/icon/icon.js +77 -59
  488. package/dist/icon/icon__svg.d.ts +1 -1
  489. package/dist/icon/icon__svg.js +31 -24
  490. package/dist/icon/index.js +9 -0
  491. package/dist/icon-ng/icon-ng.js +27 -16
  492. package/dist/input/input.d.ts +7 -1
  493. package/dist/input/input.js +178 -131
  494. package/dist/input-ng/input-ng.js +77 -99
  495. package/dist/island/adaptive-island-hoc.d.ts +2 -2
  496. package/dist/island/adaptive-island-hoc.js +38 -27
  497. package/dist/island/content.d.ts +1 -1
  498. package/dist/island/content.js +104 -92
  499. package/dist/island/header.d.ts +2 -2
  500. package/dist/island/header.js +60 -47
  501. package/dist/island/island.d.ts +3 -3
  502. package/dist/island/island.js +33 -21
  503. package/dist/island-legacy/content-legacy.d.ts +2 -2
  504. package/dist/island-legacy/content-legacy.js +23 -13
  505. package/dist/island-legacy/header-legacy.d.ts +2 -2
  506. package/dist/island-legacy/header-legacy.js +25 -15
  507. package/dist/island-legacy/island-legacy.d.ts +2 -2
  508. package/dist/island-legacy/island-legacy.js +23 -13
  509. package/dist/island-ng/island-content-ng.js +17 -26
  510. package/dist/island-ng/island-header-ng.js +9 -12
  511. package/dist/island-ng/island-ng-class-fixer.js +3 -0
  512. package/dist/island-ng/island-ng.js +6 -10
  513. package/dist/link/clickableLink.d.ts +1 -1
  514. package/dist/link/clickableLink.js +43 -29
  515. package/dist/link/link.d.ts +8 -9
  516. package/dist/link/link.js +72 -62
  517. package/dist/link-ng/link-ng.js +5 -7
  518. package/dist/list/consts.js +4 -1
  519. package/dist/list/list.d.ts +7 -7
  520. package/dist/list/list.js +499 -402
  521. package/dist/list/list__custom.d.ts +1 -1
  522. package/dist/list/list__custom.js +60 -47
  523. package/dist/list/list__hint.d.ts +2 -2
  524. package/dist/list/list__hint.js +18 -8
  525. package/dist/list/list__item.d.ts +2 -2
  526. package/dist/list/list__item.js +167 -132
  527. package/dist/list/list__link.d.ts +2 -2
  528. package/dist/list/list__link.js +54 -38
  529. package/dist/list/list__separator.d.ts +2 -2
  530. package/dist/list/list__separator.js +24 -14
  531. package/dist/list/list__title.d.ts +2 -2
  532. package/dist/list/list__title.js +32 -22
  533. package/dist/list/list__users-groups-source.js +130 -54
  534. package/dist/loader/loader.d.ts +2 -2
  535. package/dist/loader/loader.js +66 -34
  536. package/dist/loader/loader__core.js +197 -129
  537. package/dist/loader-inline/loader-inline.d.ts +2 -2
  538. package/dist/loader-inline/loader-inline.js +32 -18
  539. package/dist/loader-inline-ng/loader-inline-ng.js +2 -2
  540. package/dist/loader-ng/loader-ng.js +44 -18
  541. package/dist/loader-screen/loader-screen.d.ts +2 -2
  542. package/dist/loader-screen/loader-screen.js +43 -20
  543. package/dist/loader-screen-ng/loader-screen-ng.js +45 -30
  544. package/dist/login-dialog/login-dialog.d.ts +2 -2
  545. package/dist/login-dialog/login-dialog.js +125 -78
  546. package/dist/login-dialog/service.js +39 -10
  547. package/dist/markdown/code.d.ts +2 -2
  548. package/dist/markdown/code.js +30 -9
  549. package/dist/markdown/heading.d.ts +2 -2
  550. package/dist/markdown/heading.js +3 -5
  551. package/dist/markdown/link.d.ts +2 -2
  552. package/dist/markdown/link.js +13 -7
  553. package/dist/markdown/markdown.d.ts +2 -2
  554. package/dist/markdown/markdown.js +67 -35
  555. package/dist/message/message.d.ts +3 -7
  556. package/dist/message/message.js +153 -119
  557. package/dist/message-bundle-ng/message-bundle-ng.js +130 -46
  558. package/dist/old-browsers-message/old-browsers-message.js +19 -11
  559. package/dist/old-browsers-message/old-browsers-message__stop.js +8 -0
  560. package/dist/old-browsers-message/white-list.js +17 -10
  561. package/dist/pager/pager.d.ts +8 -13
  562. package/dist/pager/pager.js +259 -188
  563. package/dist/pager-ng/pager-ng.js +39 -2
  564. package/dist/panel/panel.d.ts +2 -2
  565. package/dist/panel/panel.js +23 -13
  566. package/dist/panel-ng/panel-ng.js +13 -1
  567. package/dist/permissions/permissions.js +166 -122
  568. package/dist/permissions/permissions__cache.js +220 -191
  569. package/dist/permissions-ng/permissions-ng.js +89 -36
  570. package/dist/place-under-ng/place-under-ng.js +67 -45
  571. package/dist/popup/popup.consts.js +1 -1
  572. package/dist/popup/popup.d.ts +2 -2
  573. package/dist/popup/popup.js +299 -236
  574. package/dist/popup/popup.target.js +8 -9
  575. package/dist/popup/position.d.ts +1 -1
  576. package/dist/popup/position.js +175 -154
  577. package/dist/popup-menu/popup-menu.d.ts +2 -2
  578. package/dist/popup-menu/popup-menu.js +80 -42
  579. package/dist/progress-bar/progress-bar.d.ts +2 -2
  580. package/dist/progress-bar/progress-bar.js +66 -52
  581. package/dist/progress-bar-ng/progress-bar-ng.js +10 -0
  582. package/dist/promised-click-ng/promised-click-ng.js +93 -60
  583. package/dist/proxy-attrs/proxy-attrs.js +18 -9
  584. package/dist/query-assist/query-assist.d.ts +3 -7
  585. package/dist/query-assist/query-assist.js +677 -567
  586. package/dist/query-assist/query-assist__suggestions.d.ts +2 -2
  587. package/dist/query-assist/query-assist__suggestions.js +33 -2
  588. package/dist/query-assist-ng/query-assist-ng.js +41 -2
  589. package/dist/radio/radio.d.ts +1 -1
  590. package/dist/radio/radio.js +28 -14
  591. package/dist/radio/radio__item.d.ts +1 -1
  592. package/dist/radio/radio__item.js +60 -44
  593. package/dist/radio-ng/radio-ng.js +14 -25
  594. package/dist/save-field-ng/save-field-ng.js +90 -56
  595. package/dist/save-field-ng/save-field-ng__template.js +1 -32
  596. package/dist/select/select.d.ts +20 -9
  597. package/dist/select/select.js +831 -699
  598. package/dist/select/select__filter.d.ts +2 -3
  599. package/dist/select/select__filter.js +37 -2
  600. package/dist/select/select__popup.d.ts +48 -8
  601. package/dist/select/select__popup.js +430 -293
  602. package/dist/select-ng/select-ng.js +130 -77
  603. package/dist/select-ng/select-ng__lazy.js +104 -51
  604. package/dist/select-ng/select-ng__options.js +93 -68
  605. package/dist/shortcuts/core.js +197 -146
  606. package/dist/shortcuts/shortcut-title.js +11 -6
  607. package/dist/shortcuts/shortcuts-hoc.d.ts +2 -2
  608. package/dist/shortcuts/shortcuts-hoc.js +43 -19
  609. package/dist/shortcuts/shortcuts.d.ts +1 -1
  610. package/dist/shortcuts/shortcuts.js +69 -43
  611. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +109 -58
  612. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
  613. package/dist/shortcuts-ng/shortcuts-ng.js +110 -76
  614. package/dist/sidebar-ng/sidebar-ng.js +55 -25
  615. package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
  616. package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
  617. package/dist/storage/storage.js +34 -4
  618. package/dist/storage/storage__fallback.js +217 -143
  619. package/dist/storage/storage__local.js +155 -90
  620. package/dist/style.css +1 -1
  621. package/dist/tab-trap/tab-trap.d.ts +1 -1
  622. package/dist/tab-trap/tab-trap.js +117 -84
  623. package/dist/table/cell.d.ts +2 -2
  624. package/dist/table/cell.js +23 -9
  625. package/dist/table/disable-hover-hoc.d.ts +2 -2
  626. package/dist/table/disable-hover-hoc.js +44 -26
  627. package/dist/table/header-cell.d.ts +2 -2
  628. package/dist/table/header-cell.js +74 -54
  629. package/dist/table/header.d.ts +3 -14
  630. package/dist/table/header.js +102 -131
  631. package/dist/table/multitable.d.ts +2 -2
  632. package/dist/table/multitable.js +102 -86
  633. package/dist/table/row-with-focus-sensor.d.ts +1 -1
  634. package/dist/table/row-with-focus-sensor.js +69 -24
  635. package/dist/table/row.d.ts +2 -1
  636. package/dist/table/row.js +191 -155
  637. package/dist/table/selection-adapter.js +3 -1
  638. package/dist/table/selection-shortcuts-hoc.js +132 -131
  639. package/dist/table/selection.js +220 -150
  640. package/dist/table/smart-table.d.ts +3 -1
  641. package/dist/table/smart-table.js +87 -50
  642. package/dist/table/table.d.ts +6 -4
  643. package/dist/table/table.js +311 -247
  644. package/dist/table-legacy-ng/table-legacy-ng.js +120 -103
  645. package/dist/table-legacy-ng/table-legacy-ng__pager.js +46 -12
  646. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +92 -69
  647. package/dist/table-legacy-ng/table-legacy-ng__selection.js +167 -119
  648. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +35 -21
  649. package/dist/table-ng/smart-table-ng.js +30 -2
  650. package/dist/table-ng/table-ng.js +30 -2
  651. package/dist/tabs/collapsible-more.d.ts +3 -3
  652. package/dist/tabs/collapsible-more.js +92 -56
  653. package/dist/tabs/collapsible-tab.d.ts +1 -1
  654. package/dist/tabs/collapsible-tab.js +45 -39
  655. package/dist/tabs/collapsible-tabs.d.ts +2 -2
  656. package/dist/tabs/collapsible-tabs.js +161 -95
  657. package/dist/tabs/custom-item.js +2 -4
  658. package/dist/tabs/dumb-tabs.d.ts +5 -3
  659. package/dist/tabs/dumb-tabs.js +101 -56
  660. package/dist/tabs/smart-tabs.d.ts +2 -2
  661. package/dist/tabs/smart-tabs.js +70 -25
  662. package/dist/tabs/tab-link.d.ts +1 -1
  663. package/dist/tabs/tab-link.js +29 -20
  664. package/dist/tabs/tab.d.ts +2 -2
  665. package/dist/tabs/tab.js +26 -15
  666. package/dist/tabs/tabs.js +35 -1
  667. package/dist/tabs-ng/tabs-ng.js +38 -24
  668. package/dist/tabs-ng/tabs-ng__template.js +1 -38
  669. package/dist/tag/tag.d.ts +5 -5
  670. package/dist/tag/tag.js +146 -113
  671. package/dist/tags-input/tags-input.d.ts +9 -4
  672. package/dist/tags-input/tags-input.js +327 -220
  673. package/dist/tags-input-ng/tags-input-ng.js +40 -2
  674. package/dist/tags-list/tags-list.d.ts +2 -2
  675. package/dist/tags-list/tags-list.js +61 -38
  676. package/dist/template-ng/template-ng.js +45 -35
  677. package/dist/text/text.d.ts +8 -2
  678. package/dist/text/text.js +38 -17
  679. package/dist/title-ng/title-ng.js +28 -23
  680. package/dist/toggle/toggle.d.ts +2 -2
  681. package/dist/toggle/toggle.js +55 -39
  682. package/dist/toggle-ng/toggle-ng.js +13 -0
  683. package/dist/tooltip/tooltip.d.ts +1 -1
  684. package/dist/tooltip/tooltip.js +145 -102
  685. package/dist/tooltip-ng/tooltip-ng.js +51 -25
  686. package/dist/user-agreement/service.js +411 -259
  687. package/dist/user-agreement/toolbox.eula.js +1 -160
  688. package/dist/user-agreement/user-agreement.d.ts +3 -11
  689. package/dist/user-agreement/user-agreement.js +106 -68
  690. package/dist/user-card/card.d.ts +22 -21
  691. package/dist/user-card/card.js +34 -1
  692. package/dist/user-card/smart-user-card-tooltip.d.ts +3 -3
  693. package/dist/user-card/smart-user-card-tooltip.js +139 -76
  694. package/dist/user-card/tooltip.d.ts +11 -6
  695. package/dist/user-card/tooltip.js +75 -32
  696. package/dist/user-card/user-card.js +34 -1
  697. package/dist/user-card-ng/user-card-ng.js +39 -6
  698. package/package.json +86 -82
  699. package/components/input/input-label.d.ts +0 -10
  700. package/components/input/input-label.js +0 -18
  701. package/dist/input/input-label.d.ts +0 -10
  702. package/dist/input/input-label.js +0 -27
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import type { Locale } from 'date-fns';
3
3
  import PropTypes from 'prop-types';
4
4
  interface WeekdaysProps {
5
5
  locale: Locale | undefined;
6
6
  }
7
- declare function Weekdays(props: WeekdaysProps): JSX.Element;
7
+ declare function Weekdays(props: WeekdaysProps): React.JSX.Element;
8
8
  declare namespace Weekdays {
9
9
  var propTypes: {
10
10
  locale: PropTypes.Requireable<string>;
@@ -1,4 +1,4 @@
1
- import { PureComponent } from 'react';
1
+ import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { CalendarProps } from './consts';
4
4
  interface YearsState {
@@ -13,9 +13,13 @@ export default class Years extends PureComponent<CalendarProps> {
13
13
  state: {
14
14
  scrollDate: null;
15
15
  };
16
+ componentDidMount(): void;
16
17
  componentDidUpdate(prevProps: CalendarProps, prevState: YearsState): void;
18
+ componentWillUnmount(): void;
17
19
  stoppedScrolling?: boolean;
18
20
  setYear(date: number): void;
19
- render(): JSX.Element;
21
+ componentRef: React.RefObject<HTMLDivElement>;
22
+ handleWheel: (e: WheelEvent) => void;
23
+ render(): React.JSX.Element;
20
24
  }
21
25
  export {};
@@ -1,4 +1,4 @@
1
- import React, { PureComponent } from 'react';
1
+ import React, { createRef, PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
4
  import addYears from 'date-fns/addYears';
@@ -23,9 +23,19 @@ export default class Years extends PureComponent {
23
23
  onScrollChange: PropTypes.func
24
24
  };
25
25
  state = { scrollDate: null };
26
+ componentDidMount() {
27
+ if (this.componentRef.current) {
28
+ this.componentRef.current.addEventListener('wheel', this.handleWheel);
29
+ }
30
+ }
26
31
  componentDidUpdate(prevProps, prevState) {
27
32
  this.stoppedScrolling = prevState.scrollDate != null && !this.state.scrollDate;
28
33
  }
34
+ componentWillUnmount() {
35
+ if (this.componentRef.current) {
36
+ this.componentRef.current.removeEventListener('wheel', this.handleWheel);
37
+ }
38
+ }
29
39
  stoppedScrolling;
30
40
  setYear(date) {
31
41
  if (scrollTO) {
@@ -35,6 +45,20 @@ export default class Years extends PureComponent {
35
45
  this.setState({ scrollDate: null });
36
46
  this.props.onScroll(Number(setYear(this.props.scrollDate, getYear(date))));
37
47
  }
48
+ componentRef = createRef();
49
+ handleWheel = (e) => {
50
+ const { scrollDate } = this.props;
51
+ const date = this.state.scrollDate || scrollDate;
52
+ e.preventDefault();
53
+ const newScrollDate = linearFunction(0, Number(date), yearDuration / yearHeight).y(e.deltaY);
54
+ this.setState({
55
+ scrollDate: newScrollDate
56
+ });
57
+ if (scrollTO) {
58
+ window.clearTimeout(scrollTO);
59
+ }
60
+ scrollTO = window.setTimeout(() => this.setYear(newScrollDate), scrollDelay);
61
+ };
38
62
  render() {
39
63
  const { onScrollChange, scrollDate } = this.props;
40
64
  const date = this.state.scrollDate || scrollDate;
@@ -46,19 +70,7 @@ export default class Years extends PureComponent {
46
70
  years.push(year);
47
71
  }
48
72
  const pxToDate = linearFunction(0, Number(years[0]), yearDuration / yearHeight);
49
- const handleWheel = (e) => {
50
- e.preventDefault();
51
- const newScrollDate = linearFunction(0, Number(date), yearDuration / yearHeight).
52
- y(e.deltaY);
53
- this.setState({
54
- scrollDate: newScrollDate
55
- });
56
- if (scrollTO) {
57
- window.clearTimeout(scrollTO);
58
- }
59
- scrollTO = window.setTimeout(() => this.setYear(newScrollDate), scrollDelay);
60
- };
61
- return (<div className={styles.years} onWheel={handleWheel} style={{
73
+ return (<div className={styles.years} ref={this.componentRef} style={{
62
74
  transition: this.stoppedScrolling ? 'top .2s ease-out 0s' : 'none',
63
75
  top: Math.floor(calHeight * HALF - pxToDate.x(Number(date)))
64
76
  }}>
@@ -48,7 +48,7 @@
48
48
  }
49
49
 
50
50
  /* stylelint-disable-next-line selector-max-specificity */
51
- & .panel button {
51
+ & .panel > button:not(:last-child) {
52
52
  margin-right: unit;
53
53
  }
54
54
  }
@@ -1,6 +1,7 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import TabTrap, { TabTrapProps } from '../tab-trap/tab-trap';
4
+ import type { ShortcutsScopeOptions } from '../shortcuts/core';
4
5
  export interface DialogProps extends Partial<TabTrapProps> {
5
6
  show: boolean;
6
7
  label: string;
@@ -9,6 +10,7 @@ export interface DialogProps extends Partial<TabTrapProps> {
9
10
  onCloseClick: (event: React.MouseEvent<HTMLElement>) => void;
10
11
  onCloseAttempt: (event: React.MouseEvent<HTMLElement> | KeyboardEvent) => void;
11
12
  showCloseButton: boolean;
13
+ shortcutOptions: ShortcutsScopeOptions;
12
14
  closeButtonInside: boolean;
13
15
  closeButtonTitle?: string;
14
16
  trapFocus: boolean;
@@ -17,10 +19,6 @@ export interface DialogProps extends Partial<TabTrapProps> {
17
19
  'data-test'?: string | null | undefined;
18
20
  dense?: boolean | null | undefined;
19
21
  }
20
- /**
21
- * @name Dialog
22
- */
23
- declare function noop(): void;
24
22
  export default class Dialog extends PureComponent<DialogProps> {
25
23
  static propTypes: {
26
24
  label: PropTypes.Requireable<string>;
@@ -34,23 +32,14 @@ export default class Dialog extends PureComponent<DialogProps> {
34
32
  onOverlayClick: PropTypes.Requireable<(...args: any[]) => any>;
35
33
  onEscPress: PropTypes.Requireable<(...args: any[]) => any>;
36
34
  onCloseClick: PropTypes.Requireable<(...args: any[]) => any>;
35
+ shortcutOptions: PropTypes.Requireable<object>;
37
36
  onCloseAttempt: PropTypes.Requireable<(...args: any[]) => any>;
38
37
  trapFocus: PropTypes.Requireable<boolean>;
39
38
  portalTarget: PropTypes.Requireable<HTMLElement>;
40
39
  autoFocusFirst: PropTypes.Requireable<boolean>;
41
40
  'data-test': PropTypes.Requireable<string>;
42
41
  };
43
- static defaultProps: {
44
- label: string;
45
- onOverlayClick: typeof noop;
46
- onEscPress: typeof noop;
47
- onCloseClick: typeof noop;
48
- onCloseAttempt: typeof noop;
49
- showCloseButton: boolean;
50
- closeButtonInside: boolean;
51
- trapFocus: boolean;
52
- autoFocusFirst: boolean;
53
- };
42
+ static defaultProps: Partial<DialogProps>;
54
43
  state: {
55
44
  shortcutsScope: string;
56
45
  };
@@ -73,4 +62,3 @@ export default class Dialog extends PureComponent<DialogProps> {
73
62
  render(): false | React.ReactPortal;
74
63
  }
75
64
  export type DialogAttrs = JSX.LibraryManagedAttributes<typeof Dialog, DialogProps>;
76
- export {};
@@ -32,6 +32,7 @@ export default class Dialog extends PureComponent {
32
32
  onOverlayClick: PropTypes.func,
33
33
  onEscPress: PropTypes.func,
34
34
  onCloseClick: PropTypes.func,
35
+ shortcutOptions: PropTypes.object,
35
36
  // onCloseAttempt is a common callback for ESC pressing and overlay clicking.
36
37
  // Use it if you don't need different behaviors for this cases.
37
38
  onCloseAttempt: PropTypes.func,
@@ -49,6 +50,7 @@ export default class Dialog extends PureComponent {
49
50
  onCloseAttempt: noop,
50
51
  showCloseButton: false,
51
52
  closeButtonInside: false,
53
+ shortcutOptions: { modal: false },
52
54
  trapFocus: false,
53
55
  autoFocusFirst: true
54
56
  };
@@ -100,12 +102,12 @@ export default class Dialog extends PureComponent {
100
102
  this.dialog = tabTrap && tabTrap.node;
101
103
  };
102
104
  render() {
103
- const { show, showCloseButton, onOverlayClick, onCloseAttempt, onEscPress, onCloseClick, children, className, contentClassName, trapFocus, 'data-test': dataTest, closeButtonInside, portalTarget, label, closeButtonTitle, dense, ...restProps } = this.props;
105
+ const { show, showCloseButton, onOverlayClick, onCloseAttempt, onEscPress, onCloseClick, children, className, contentClassName, trapFocus, 'data-test': dataTest, closeButtonInside, portalTarget, label, closeButtonTitle, dense, shortcutOptions, ...restProps } = this.props;
104
106
  const classes = classNames(styles.container, className);
105
107
  const shortcutsMap = this.getShortcutsMap();
106
108
  return show && createPortal(<PopupTarget id={this.uid} className={styles.popupTarget}>
107
109
  {target => (<TabTrap trapDisabled={!trapFocus} data-test={dataTests('ring-dialog-container', dataTest)} ref={this.dialogRef} className={classes} role="presentation" {...restProps}>
108
- <Shortcuts map={shortcutsMap} scope={this.state.shortcutsScope}/>
110
+ <Shortcuts map={shortcutsMap} scope={this.state.shortcutsScope} options={this.props.shortcutOptions}/>
109
111
  {(onOverlayClick !== noop || onCloseAttempt !== noop) && (<div
110
112
  // click handler is duplicated in close button
111
113
  role="presentation" className={styles.clickableOverlay} onClick={this.handleClick}/>)}
@@ -16,7 +16,7 @@ export default {
16
16
  parameters: {
17
17
  notes: 'Provides an Angular wrapper for Dialog.',
18
18
  hermione: {captureSelector: '*[data-test~=ring-dialog]'},
19
- a11y: {element: '*[data-test~=ring-dialog]'}
19
+ a11y: {element: '#storybook-root,*[data-test~=ring-dialog]'}
20
20
  }
21
21
  };
22
22
 
@@ -26,8 +26,6 @@ const angularModule = angular.module(
26
26
  );
27
27
 
28
28
  class DialogController extends RingAngularComponent {
29
- static $inject = ['$scope', '$q', 'dialog', '$element', 'dialogInSidebar', '$compile',
30
- '$injector', '$controller', 'rgCompiler', '$sce'];
31
29
 
32
30
  constructor(...args) {
33
31
  super(...args);
@@ -333,9 +331,9 @@ class DialogController extends RingAngularComponent {
333
331
  };
334
332
  }
335
333
  }
336
-
334
+ DialogController.$inject = ['$scope', '$q', 'dialog', '$element', 'dialogInSidebar', '$compile',
335
+ '$injector', '$controller', 'rgCompiler', '$sce'];
337
336
  class DialogService extends RingAngularComponent {
338
- static $inject = ['$log'];
339
337
 
340
338
  DIALOG_NAMESPACE = 'ring-dialog';
341
339
  fallbackDialog = null;
@@ -366,9 +364,9 @@ class DialogService extends RingAngularComponent {
366
364
  Reflect.deleteProperty(this, 'ctrl');
367
365
  };
368
366
  }
367
+ DialogService.$inject = ['$log'];
369
368
 
370
369
  class DialogInSidebarService extends DialogService {
371
- static $inject = [...DialogService.$inject, 'dialog'];
372
370
 
373
371
  DIALOG_NAMESPACE = 'ring-dialog-in-sidebar';
374
372
 
@@ -377,6 +375,7 @@ class DialogInSidebarService extends DialogService {
377
375
  this.fallbackDialog = this.$inject.dialog;
378
376
  }
379
377
  }
378
+ DialogInSidebarService.$inject = [...DialogService.$inject, 'dialog'];
380
379
 
381
380
  function rgDialogDirective($timeout) {
382
381
  function link(scope, iElement, iAttrs, dialogCtrl) {
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { ButtonAttrs } from '../button/button';
4
4
  declare const _default: React.MemoExoticComponent<{
5
- ({ children, className, ...restProps }: ButtonAttrs): JSX.Element;
5
+ ({ children, className, ...restProps }: ButtonAttrs): React.JSX.Element;
6
6
  propTypes: {
7
7
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
8
8
  className: PropTypes.Requireable<string>;
@@ -6,6 +6,13 @@ export interface AnchorProps {
6
6
  active: boolean;
7
7
  pinned: boolean;
8
8
  }
9
+ export interface DropdownChildProps {
10
+ hidden: boolean;
11
+ onCloseAttempt: () => void;
12
+ onMouseDown?: () => void | undefined;
13
+ onContextMenu?: () => void | undefined;
14
+ dontCloseOnAnchorClick: boolean;
15
+ }
9
16
  export interface DropdownProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
10
17
  anchor: ReactElement | readonly ReactElement[] | string | ((props: AnchorProps) => ReactNode);
11
18
  children: ReactElement<PopupAttrs> | ((props: Omit<PopupAttrs, 'children'>) => ReactNode);
@@ -74,7 +81,7 @@ export default class Dropdown extends Component<DropdownProps, DropdownState> {
74
81
  toggle(show?: boolean): void;
75
82
  _toggle(show: boolean, pinned?: boolean): void;
76
83
  _clearTimer(): void;
77
- render(): JSX.Element;
84
+ render(): React.JSX.Element;
78
85
  }
79
86
  export type DropdownAttrs = JSX.LibraryManagedAttributes<typeof Dropdown, DropdownProps>;
80
87
  export { Anchor };
@@ -22,6 +22,7 @@
22
22
  padding: 0;
23
23
 
24
24
  cursor: pointer;
25
+ user-select: text;
25
26
 
26
27
  text-align: inherit;
27
28
 
@@ -29,23 +30,33 @@
29
30
 
30
31
  border: none;
31
32
  border-radius: var(--ring-border-radius);
33
+ outline: none;
32
34
  background: inherit;
33
35
 
34
36
  font-size: inherit;
35
37
 
36
- &:focus {
37
- outline: 1px solid var(--ring-border-hover-color);
38
+ .disabled &,
39
+ .selectionMode & {
40
+ user-select: text;
41
+
42
+ border-radius: 0;
38
43
  }
39
44
 
40
- @nest .disabled &:focus {
41
- outline: none;
45
+ &:focus-visible {
46
+ box-shadow: 0 0 0 2px var(--ring-border-hover-color);
47
+ }
48
+
49
+ .disabled &:focus,
50
+ .selectionMode &:focus {
51
+ box-shadow: none;
42
52
  }
43
53
 
44
54
  &:hover {
45
55
  background-color: var(--ring-hover-background-color);
46
56
  }
47
57
 
48
- @nest .disabled &:hover {
58
+ .disabled &:hover,
59
+ .selectionMode &:hover {
49
60
  cursor: initial;
50
61
 
51
62
  background-color: initial;
@@ -59,9 +70,11 @@
59
70
  -webkit-line-clamp: 1;
60
71
  -webkit-box-orient: vertical;
61
72
 
73
+ word-wrap: break-word;
74
+
62
75
  border-radius: var(--ring-border-radius);
63
76
 
64
- @nest .multiline & {
77
+ .multiline & {
65
78
  -webkit-line-clamp: 3;
66
79
  }
67
80
  }
@@ -106,7 +119,7 @@
106
119
  background-color: initial;
107
120
  }
108
121
 
109
- @nest .error & {
122
+ .error & {
110
123
  margin-bottom: 1px;
111
124
 
112
125
  border-bottom-width: 2px;
@@ -26,6 +26,6 @@ export type EditableHeadingProps = Omit<InputHTMLAttributes<HTMLInputElement>, '
26
26
  renderMenu?: () => React.ReactNode;
27
27
  translations?: EditableHeadingTranslations;
28
28
  };
29
- export declare const EditableHeading: (props: EditableHeadingProps) => JSX.Element;
30
- declare const _default: React.MemoExoticComponent<(props: EditableHeadingProps) => JSX.Element>;
29
+ export declare const EditableHeading: (props: EditableHeadingProps) => React.JSX.Element;
30
+ declare const _default: React.MemoExoticComponent<(props: EditableHeadingProps) => React.JSX.Element>;
31
31
  export default _default;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useEffect } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import Heading, { Levels } from '../heading/heading';
4
4
  import Button from '../button/button';
@@ -17,29 +17,48 @@ export const EditableHeading = (props) => {
17
17
  }, ...restProps } = props;
18
18
  const [shortcutsScope] = React.useState(getUID('ring-editable-heading-'));
19
19
  const [isInFocus, setIsInFocus] = React.useState(false);
20
+ const [isMouseDown, setIsMouseDown] = React.useState(false);
21
+ const [isInSelectionMode, setIsInSelectionMode] = React.useState(false);
20
22
  const hasError = error !== undefined;
21
23
  const isSaveDisabled = !isSavingPossible || !children || children.trim() === '' || hasError || isSaving;
22
24
  const isCancelDisabled = isSaving;
23
25
  const isShortcutsDisabled = !isInFocus || isSaving;
24
- const shortcutsMap = React.useMemo(() => ({
25
- enter: isSaveDisabled ? noop : onSave,
26
- esc: isCancelDisabled ? noop : onCancel
27
- }), [isSaveDisabled, isCancelDisabled, onSave, onCancel]);
26
+ const shortcutsMap = React.useMemo(() => {
27
+ const map = {};
28
+ if (!isSaveDisabled) {
29
+ map.enter = onSave;
30
+ }
31
+ if (isCancelDisabled) {
32
+ map.esc = onCancel;
33
+ }
34
+ return map;
35
+ }, [isSaveDisabled, isCancelDisabled, onSave, onCancel]);
28
36
  const classes = classNames(styles.editableHeading, className, {
29
37
  [styles.fullSize]: isEditing && size === Size.FULL,
30
38
  [styles.isEditing]: isEditing,
31
39
  [styles.error]: hasError,
32
40
  [styles.disabled]: disabled,
33
- [styles.multiline]: multiline
41
+ [styles.multiline]: multiline,
42
+ [styles.selectionMode]: isInSelectionMode
34
43
  });
35
44
  const headingClasses = classNames(styles.heading, headingClassName, styles[`size${size}`]);
36
45
  const inputClasses = classNames('ring-js-shortcuts', styles.input, inputStyles[`size${size}`], styles[`level${level}`], inputClassName);
37
- const onHeadingClick = React.useCallback(() => {
38
- if (disabled) {
39
- return undefined;
46
+ const onHeadingMouseDown = React.useCallback(() => {
47
+ setIsMouseDown(true);
48
+ }, []);
49
+ const onMouseMove = React.useCallback(() => {
50
+ if (!isMouseDown) {
51
+ return;
40
52
  }
41
- return onEdit();
42
- }, [disabled, onEdit]);
53
+ setIsInSelectionMode(true);
54
+ }, [isMouseDown]);
55
+ const onMouseUp = React.useCallback(() => {
56
+ if (isMouseDown && !isInSelectionMode && !disabled) {
57
+ onEdit();
58
+ }
59
+ setIsMouseDown(false);
60
+ setIsInSelectionMode(false);
61
+ }, [isMouseDown, isInSelectionMode, disabled, onEdit]);
43
62
  const onInputFocus = React.useCallback((e) => {
44
63
  setIsInFocus(true);
45
64
  onFocus?.(e);
@@ -48,6 +67,14 @@ export const EditableHeading = (props) => {
48
67
  setIsInFocus(false);
49
68
  onBlur?.(e);
50
69
  }, [onBlur]);
70
+ useEffect(() => {
71
+ window.addEventListener('mousemove', onMouseMove);
72
+ window.addEventListener('mouseup', onMouseUp);
73
+ return () => {
74
+ window.removeEventListener('mousemove', onMouseMove);
75
+ window.removeEventListener('mouseup', onMouseUp);
76
+ };
77
+ });
51
78
  return (<>
52
79
  <div className={classes}>
53
80
  {!disabled && isEditing
@@ -56,7 +83,7 @@ export const EditableHeading = (props) => {
56
83
 
57
84
  <input className={inputClasses} value={children} autoFocus={autoFocus} data-test={dataTest} disabled={isSaving} {...restProps} onFocus={onInputFocus} onBlur={onInputBlur}/>
58
85
  </>)
59
- : (<button type="button" className={styles.headingWrapperButton} onClick={onHeadingClick}>
86
+ : (<button type="button" className={styles.headingWrapperButton} onMouseDown={onHeadingMouseDown}>
60
87
  <Heading className={headingClasses} level={level} data-test={dataTest}>{children}</Heading>
61
88
  </button>)}
62
89
 
@@ -1,4 +1,4 @@
1
- import { PureComponent, ReactElement } from 'react';
1
+ import React, { PureComponent, ReactElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export type ErrorBubbleProps<P> = Partial<P> & {
4
4
  className?: string | null | undefined;
@@ -14,5 +14,5 @@ export default class ErrorBubble<P> extends PureComponent<ErrorBubbleProps<P>> {
14
14
  className: PropTypes.Requireable<string>;
15
15
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
16
16
  };
17
- render(): JSX.Element;
17
+ render(): React.JSX.Element;
18
18
  }
@@ -1,4 +1,4 @@
1
- import { Component, ReactNode } from 'react';
1
+ import React, { Component, ReactNode } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { IconType } from '../icon/icon';
4
4
  export interface ErrorMessageProps {
@@ -23,5 +23,5 @@ export default class ErrorMessage extends Component<ErrorMessageProps> {
23
23
  className: PropTypes.Requireable<string>;
24
24
  'data-test': PropTypes.Requireable<string>;
25
25
  };
26
- render(): JSX.Element;
26
+ render(): React.JSX.Element;
27
27
  }
@@ -46,6 +46,7 @@ export function copyright(year) {
46
46
  const FooterLine = memo(function FooterLine(props) {
47
47
  const items = Array.isArray(props.item) ? props.item : [props.item];
48
48
  function renderItem(item) {
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
50
  if (isValidElement(item) || typeof item !== 'object') {
50
51
  return item;
51
52
  }
@@ -5,6 +5,7 @@ import angularDecorator, {APP_NAME} from '../../.storybook/angular-decorator';
5
5
  import '../input/input-legacy.css';
6
6
  import './form.css';
7
7
  import '../input-size/input-size.css';
8
+ import '../error-bubble/error-bubble-legacy.css';
8
9
 
9
10
  import ButtonNG from '../button-ng/button-ng';
10
11
 
@@ -19,8 +19,7 @@ function createAngularComponent(Component) {
19
19
  bindings[key] = '<';
20
20
  });
21
21
 
22
- return class AngularComponent extends RingAngularComponent {
23
- static $inject = ['$scope', '$element', '$transclude'];
22
+ class AngularComponent extends RingAngularComponent {
24
23
 
25
24
  static bindings = bindings;
26
25
  static transclude = true;
@@ -28,14 +27,19 @@ function createAngularComponent(Component) {
28
27
  $postLink() {
29
28
  const {$transclude} = this.$inject;
30
29
 
30
+
31
31
  $transclude(clone => {
32
- this.innerNodes = Array.from(clone);
32
+ this.container = document.createElement('div');
33
+
34
+ for (let i = 0; i < clone.length; i++) {
35
+ this.container.appendChild(clone[i]);
36
+ }
33
37
  this.render();
34
38
  });
35
39
  }
36
40
 
37
41
  $onChanges() {
38
- if (!this.innerNodes) {
42
+ if (!this.container) {
39
43
  return;
40
44
  }
41
45
  this.render();
@@ -63,16 +67,18 @@ function createAngularComponent(Component) {
63
67
  }
64
68
  });
65
69
 
66
- const hasInnerContent = this.innerNodes && this.innerNodes.length;
70
+ const hasInnerContent = this.container.hasChildNodes();
67
71
 
68
72
  render(
69
73
  <Component {...props}>
70
- {hasInnerContent ? <DomRenderer nodes={this.innerNodes}/> : null}
74
+ {hasInnerContent ? <DomRenderer nodes={this.container.childNodes}/> : null}
71
75
  </Component>,
72
76
  container
73
77
  );
74
78
  }
75
- };
79
+ }
80
+ AngularComponent.$inject = ['$scope', '$element', '$transclude'];
81
+ return AngularComponent;
76
82
  }
77
83
 
78
84
  function angularComponentFactory(Component, name) {
@@ -4,7 +4,7 @@ import angular from 'angular';
4
4
  import 'angular-mocks';
5
5
  import React, {PureComponent} from 'react';
6
6
  import PropTypes from 'prop-types';
7
- import {Simulate} from 'react-dom/test-utils';
7
+ import {act, Simulate} from 'react-dom/test-utils';
8
8
 
9
9
  import angularComponentFactory from './angular-component-factory';
10
10
 
@@ -13,7 +13,8 @@ class TestComponent extends PureComponent {
13
13
  id: PropTypes.string,
14
14
  someObj: PropTypes.object,
15
15
  onClick: PropTypes.func,
16
- className: PropTypes.string
16
+ className: PropTypes.string,
17
+ children: PropTypes.node
17
18
  };
18
19
 
19
20
  static defaultProps = {
@@ -23,15 +24,18 @@ class TestComponent extends PureComponent {
23
24
  handleClick = () => this.props.onClick('payload');
24
25
 
25
26
  render() {
26
- const {id, someObj, className} = this.props;
27
+ const {id, someObj, className, children} = this.props;
27
28
  return (
28
- <button
29
- type="button"
30
- id={id}
31
- data-some-obj={someObj.foo}
32
- onClick={this.handleClick}
33
- className={className}
34
- />
29
+ <>
30
+ <button
31
+ type="button"
32
+ id={id}
33
+ data-some-obj={someObj.foo}
34
+ onClick={this.handleClick}
35
+ className={className}
36
+ />
37
+ {children}
38
+ </>
35
39
  );
36
40
  }
37
41
  }
@@ -115,4 +119,20 @@ describe('angularComponentFactory', () => {
115
119
  $rootScope.callback.should.have.been.called;
116
120
  $rootScope.callback.should.have.been.calledWith('payload');
117
121
  });
122
+
123
+ it('should support ng-if in nested content', () => {
124
+ let $element = null;
125
+ act(() => {
126
+ $element = $compile(`
127
+ <rg-test-component>
128
+ <span data-test="hello">HELLO</span>
129
+ </rg-test-component>`
130
+ )($rootScope);
131
+ });
132
+
133
+ const component = $element[0].querySelector('[data-test~=hello]');
134
+ $rootScope.$digest();
135
+
136
+ should.exist(component);
137
+ });
118
138
  });
@@ -5,3 +5,5 @@ export declare enum ControlsHeight {
5
5
  L = "L"
6
6
  }
7
7
  export declare const ControlsHeightContext: import("react").Context<ControlsHeight>;
8
+ export declare function configureGlobalControlsHeight(value: ControlsHeight): void;
9
+ export declare function getGlobalControlsHeight(): ControlsHeight;
@@ -6,3 +6,11 @@ export var ControlsHeight;
6
6
  ControlsHeight["L"] = "L";
7
7
  })(ControlsHeight || (ControlsHeight = {}));
8
8
  export const ControlsHeightContext = createContext(ControlsHeight.M);
9
+ let globalControlsHeight = ControlsHeight.M;
10
+ // This can be used if React Context is not applicable, for example for alertService or Auth dialog
11
+ export function configureGlobalControlsHeight(value) {
12
+ globalControlsHeight = value;
13
+ }
14
+ export function getGlobalControlsHeight() {
15
+ return globalControlsHeight;
16
+ }
@@ -12,7 +12,7 @@ export default function createStatefulContext<T>(initialValue: T, name?: string)
12
12
  ValueContext: React.Context<T>;
13
13
  UpdateContext: React.Context<Update<T>>;
14
14
  Provider: {
15
- ({ children }: ProviderProps): JSX.Element;
15
+ ({ children }: ProviderProps): React.JSX.Element;
16
16
  propTypes: {
17
17
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
18
18
  };
@@ -2,6 +2,7 @@ import { ComponentType, Ref } from 'react';
2
2
  export interface FocusSensorOuterProps<T extends HTMLElement> {
3
3
  focused?: boolean | undefined;
4
4
  autofocus?: boolean | undefined;
5
+ scrollOnTableFocus?: boolean;
5
6
  onFocus?: (() => void) | undefined;
6
7
  onBlur?: (() => void) | undefined;
7
8
  innerRef?: Ref<T> | null | undefined;