@jetbrains/ring-ui 5.1.1 → 6.0.2-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 (850) hide show
  1. package/README.md +1 -6
  2. package/babel.config.js +0 -1
  3. package/components/alert/alert.d.ts +1 -1
  4. package/components/alert/container.css +3 -0
  5. package/components/alert-service/alert-service.d.ts +2 -2
  6. package/components/analytics/analytics.d.ts +21 -7
  7. package/components/analytics/analytics.js +19 -24
  8. package/components/analytics/analytics__custom-plugin.d.ts +6 -16
  9. package/components/analytics/analytics__custom-plugin.js +12 -52
  10. package/components/analytics/analytics__fus-plugin.d.ts +15 -25
  11. package/components/analytics/analytics__fus-plugin.js +15 -73
  12. package/components/analytics/analytics__ga-plugin.d.ts +13 -3
  13. package/components/analytics/analytics__ga-plugin.js +35 -5
  14. package/components/analytics/analytics__plugin-utils.d.ts +16 -0
  15. package/components/analytics/analytics__plugin-utils.js +26 -1
  16. package/components/auth/auth__core.d.ts +5 -4
  17. package/components/auth/auth__core.js +44 -27
  18. package/components/auth-dialog/auth-dialog.d.ts +2 -2
  19. package/components/auth-dialog/auth-dialog.js +3 -1
  20. package/components/auth-dialog-service/auth-dialog-service.js +4 -1
  21. package/components/avatar/avatar.d.ts +3 -3
  22. package/components/avatar/fallback-avatar.d.ts +2 -2
  23. package/components/avatar/fallback-avatar.js +2 -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-set/button-set.d.ts +2 -2
  32. package/components/button-toolbar/button-toolbar.d.ts +2 -2
  33. package/components/checkbox/checkbox.css +2 -2
  34. package/components/checkbox/checkbox.d.ts +2 -2
  35. package/components/code/code.d.ts +1 -1
  36. package/components/confirm/confirm.d.ts +1 -1
  37. package/components/confirm/confirm.js +3 -3
  38. package/components/confirm-service/confirm-service.js +2 -2
  39. package/components/content-layout/content-layout.d.ts +2 -2
  40. package/components/content-layout/sidebar.d.ts +2 -2
  41. package/components/contenteditable/contenteditable.d.ts +3 -3
  42. package/components/control-label/control-label.css +23 -0
  43. package/components/control-label/control-label.d.ts +11 -0
  44. package/components/control-label/control-label.js +22 -0
  45. package/components/data-list/data-list.css +2 -1
  46. package/components/data-list/data-list.d.ts +3 -3
  47. package/components/data-list/data-list.mock.d.ts +2 -2
  48. package/components/data-list/item.d.ts +3 -3
  49. package/components/data-list/title.d.ts +1 -1
  50. package/components/date-picker/consts.d.ts +5 -5
  51. package/components/date-picker/date-input.d.ts +3 -12
  52. package/components/date-picker/date-input.js +9 -15
  53. package/components/date-picker/date-picker.css +1 -1
  54. package/components/date-picker/date-picker.d.ts +8 -6
  55. package/components/date-picker/date-picker.js +9 -15
  56. package/components/date-picker/date-popup.d.ts +1 -1
  57. package/components/date-picker/date-popup.js +2 -1
  58. package/components/date-picker/day.d.ts +2 -2
  59. package/components/date-picker/month-names.d.ts +2 -2
  60. package/components/date-picker/month-names.js +2 -2
  61. package/components/date-picker/month-slider.d.ts +2 -2
  62. package/components/date-picker/month.d.ts +2 -2
  63. package/components/date-picker/months.d.ts +2 -2
  64. package/components/date-picker/months.js +46 -29
  65. package/components/date-picker/weekdays.d.ts +2 -2
  66. package/components/date-picker/years.d.ts +6 -2
  67. package/components/date-picker/years.js +26 -14
  68. package/components/dialog/dialog.css +1 -1
  69. package/components/dialog/dialog.d.ts +4 -16
  70. package/components/dialog/dialog.js +4 -2
  71. package/components/dropdown/anchor.d.ts +1 -1
  72. package/components/dropdown/dropdown.d.ts +8 -1
  73. package/components/editable-heading/editable-heading.css +20 -7
  74. package/components/editable-heading/editable-heading.d.ts +2 -2
  75. package/components/editable-heading/editable-heading.js +39 -12
  76. package/components/error-bubble/error-bubble.d.ts +2 -2
  77. package/components/error-message/error-message.d.ts +2 -2
  78. package/components/footer/footer.js +1 -0
  79. package/components/form/form.examples.js +2 -11
  80. package/components/global/controls-height.d.ts +2 -0
  81. package/components/global/controls-height.js +8 -0
  82. package/components/global/create-stateful-context.d.ts +1 -1
  83. package/components/global/focus-sensor-hoc.d.ts +1 -0
  84. package/components/global/focus-sensor-hoc.js +5 -4
  85. package/components/global/react-dom-renderer.d.ts +4 -4
  86. package/components/global/react-dom-renderer.js +5 -5
  87. package/components/global/react-render-adapter.js +19 -31
  88. package/components/global/use-event-callback.d.ts +1 -0
  89. package/components/global/use-event-callback.js +14 -0
  90. package/components/global/variables_dark.css +2 -2
  91. package/components/grid/col.d.ts +2 -2
  92. package/components/grid/grid.d.ts +2 -2
  93. package/components/grid/row.d.ts +2 -2
  94. package/components/group/group.d.ts +2 -2
  95. package/components/header/header.d.ts +2 -2
  96. package/components/header/logo.d.ts +2 -2
  97. package/components/header/profile.d.ts +4 -2
  98. package/components/header/profile.js +15 -11
  99. package/components/header/services-link.d.ts +2 -2
  100. package/components/header/services.d.ts +2 -2
  101. package/components/header/smart-profile.d.ts +2 -2
  102. package/components/header/smart-services.d.ts +2 -2
  103. package/components/header/tray-icon.d.ts +2 -2
  104. package/components/header/tray.d.ts +2 -2
  105. package/components/heading/heading.css +8 -8
  106. package/components/http/http.d.ts +16 -6
  107. package/components/http/http.js +26 -0
  108. package/components/hub-source/hub-source__users-groups.d.ts +1 -1
  109. package/components/i18n/README.md +46 -0
  110. package/components/i18n/i18n-context.d.ts +13 -0
  111. package/components/i18n/i18n-context.js +14 -0
  112. package/components/i18n/i18n.d.ts +59 -0
  113. package/components/i18n/i18n.js +26 -0
  114. package/components/i18n/messages.json +53 -0
  115. package/components/icon/icon.d.ts +3 -3
  116. package/components/icon/icon__svg.d.ts +1 -1
  117. package/components/input/input-legacy.css +3 -3
  118. package/components/input/input.css +8 -21
  119. package/components/input/input.d.ts +7 -1
  120. package/components/input/input.js +18 -14
  121. package/components/input-size/input-size.examples.js +4 -150
  122. package/components/island/adaptive-island-hoc.d.ts +2 -2
  123. package/components/island/content.d.ts +1 -1
  124. package/components/island/header.d.ts +2 -2
  125. package/components/island/island.css +1 -1
  126. package/components/island/island.d.ts +3 -3
  127. package/components/island-legacy/content-legacy.d.ts +2 -2
  128. package/components/island-legacy/header-legacy.d.ts +2 -2
  129. package/components/island-legacy/island-legacy.d.ts +2 -2
  130. package/components/link/clickableLink.d.ts +1 -1
  131. package/components/link/link.css +1 -1
  132. package/components/link/link.d.ts +8 -9
  133. package/components/link/link.js +0 -1
  134. package/components/list/consts.js +3 -0
  135. package/components/list/list.css +2 -2
  136. package/components/list/list.d.ts +7 -7
  137. package/components/list/list.js +4 -1
  138. package/components/list/list__custom.d.ts +1 -1
  139. package/components/list/list__hint.d.ts +2 -2
  140. package/components/list/list__item.d.ts +2 -2
  141. package/components/list/list__link.d.ts +2 -2
  142. package/components/list/list__separator.d.ts +2 -2
  143. package/components/list/list__title.d.ts +2 -2
  144. package/components/loader/loader.d.ts +2 -2
  145. package/components/loader-inline/loader-inline.d.ts +2 -2
  146. package/components/loader-screen/loader-screen.d.ts +2 -2
  147. package/components/login-dialog/login-dialog.d.ts +2 -2
  148. package/components/login-dialog/service.js +4 -1
  149. package/components/markdown/code.d.ts +2 -2
  150. package/components/markdown/heading.d.ts +2 -2
  151. package/components/markdown/link.d.ts +2 -2
  152. package/components/markdown/markdown.d.ts +2 -2
  153. package/components/message/message.d.ts +3 -7
  154. package/components/message/message.js +17 -16
  155. package/components/pager/pager.d.ts +8 -13
  156. package/components/pager/pager.js +12 -14
  157. package/components/panel/panel.css +1 -1
  158. package/components/panel/panel.d.ts +2 -2
  159. package/components/popup/popup.d.ts +2 -2
  160. package/components/popup/popup.js +1 -1
  161. package/components/popup/position.d.ts +1 -1
  162. package/components/popup/position.js +43 -33
  163. package/components/popup-menu/popup-menu.d.ts +2 -2
  164. package/components/progress-bar/progress-bar.d.ts +2 -2
  165. package/components/query-assist/query-assist.css +16 -11
  166. package/components/query-assist/query-assist.d.ts +3 -7
  167. package/components/query-assist/query-assist.js +50 -31
  168. package/components/query-assist/query-assist__suggestions.d.ts +2 -2
  169. package/components/radio/radio.css +1 -1
  170. package/components/radio/radio.d.ts +1 -1
  171. package/components/radio/radio__item.d.ts +1 -1
  172. package/components/select/select-popup.css +2 -2
  173. package/components/select/select.css +9 -5
  174. package/components/select/select.d.ts +20 -9
  175. package/components/select/select.js +47 -23
  176. package/components/select/select__filter.d.ts +2 -3
  177. package/components/select/select__filter.js +4 -2
  178. package/components/select/select__popup.d.ts +48 -8
  179. package/components/select/select__popup.js +29 -8
  180. package/components/shortcuts/shortcuts-hoc.d.ts +2 -2
  181. package/components/shortcuts/shortcuts.d.ts +1 -1
  182. package/components/tab-trap/tab-trap.d.ts +1 -1
  183. package/components/table/cell.d.ts +2 -2
  184. package/components/table/disable-hover-hoc.d.ts +2 -2
  185. package/components/table/header-cell.d.ts +2 -2
  186. package/components/table/header.d.ts +3 -14
  187. package/components/table/header.js +5 -49
  188. package/components/table/multitable.d.ts +2 -2
  189. package/components/table/row-with-focus-sensor.d.ts +1 -1
  190. package/components/table/row.d.ts +2 -1
  191. package/components/table/row.js +4 -3
  192. package/components/table/smart-table.d.ts +3 -1
  193. package/components/table/table.css +9 -26
  194. package/components/table/table.d.ts +6 -4
  195. package/components/table/table.js +5 -3
  196. package/components/tabs/collapsible-more.d.ts +3 -3
  197. package/components/tabs/collapsible-tab.d.ts +1 -1
  198. package/components/tabs/collapsible-tabs.d.ts +2 -2
  199. package/components/tabs/dumb-tabs.d.ts +5 -3
  200. package/components/tabs/dumb-tabs.js +3 -2
  201. package/components/tabs/smart-tabs.d.ts +2 -2
  202. package/components/tabs/tab-link.d.ts +1 -1
  203. package/components/tabs/tab.d.ts +2 -2
  204. package/components/tabs/tab.js +3 -3
  205. package/components/tabs/tabs.css +4 -1
  206. package/components/tag/tag.css +3 -3
  207. package/components/tag/tag.d.ts +5 -5
  208. package/components/tags-input/tags-input.css +1 -1
  209. package/components/tags-input/tags-input.d.ts +9 -4
  210. package/components/tags-input/tags-input.js +7 -7
  211. package/components/tags-list/tags-list.d.ts +2 -2
  212. package/components/text/text.css +12 -0
  213. package/components/text/text.d.ts +8 -2
  214. package/components/text/text.js +12 -2
  215. package/components/toggle/toggle.css +1 -1
  216. package/components/toggle/toggle.d.ts +2 -2
  217. package/components/tooltip/tooltip.d.ts +1 -1
  218. package/components/user-agreement/service.js +4 -1
  219. package/components/user-agreement/user-agreement.d.ts +3 -11
  220. package/components/user-agreement/user-agreement.js +31 -30
  221. package/components/user-card/card.d.ts +22 -21
  222. package/components/user-card/card.js +29 -29
  223. package/components/user-card/smart-user-card-tooltip.d.ts +3 -3
  224. package/components/user-card/tooltip.d.ts +11 -6
  225. package/components/user-card/tooltip.js +1 -1
  226. package/components/user-card/user-card.css +10 -1
  227. package/dist/_helpers/_rollupPluginBabelHelpers.js +614 -1
  228. package/dist/_helpers/anchor.js +7 -8
  229. package/dist/_helpers/badge.js +1 -1
  230. package/dist/_helpers/button__classes.js +17 -29
  231. package/dist/_helpers/caption.js +31 -0
  232. package/dist/_helpers/card.js +100 -91
  233. package/dist/_helpers/date-picker.js +1 -1
  234. package/dist/_helpers/dialog__body-scroll-preventer.js +21 -12
  235. package/dist/_helpers/grid.js +1 -1
  236. package/dist/_helpers/header.js +1 -1
  237. package/dist/_helpers/icon__svg.js +73 -0
  238. package/dist/_helpers/input.js +228 -2
  239. package/dist/_helpers/island.js +1 -1
  240. package/dist/_helpers/list.js +1 -1
  241. package/dist/_helpers/query-assist__suggestions.js +92 -75
  242. package/dist/_helpers/select__filter.js +70 -43
  243. package/dist/_helpers/services-link.js +33 -21
  244. package/dist/_helpers/sidebar.js +87 -86
  245. package/dist/_helpers/tab-link.js +36 -0
  246. package/dist/_helpers/table.js +1 -1
  247. package/dist/_helpers/theme.js +43 -36
  248. package/dist/_helpers/title.js +66 -56
  249. package/dist/alert/alert.d.ts +1 -1
  250. package/dist/alert/alert.js +165 -130
  251. package/dist/alert/container.js +40 -29
  252. package/dist/alert-service/alert-service.d.ts +2 -2
  253. package/dist/alert-service/alert-service.js +170 -106
  254. package/dist/analytics/analytics.d.ts +21 -7
  255. package/dist/analytics/analytics.js +90 -71
  256. package/dist/analytics/analytics__custom-plugin.d.ts +6 -16
  257. package/dist/analytics/analytics__custom-plugin.js +74 -87
  258. package/dist/analytics/analytics__fus-plugin.d.ts +15 -25
  259. package/dist/analytics/analytics__fus-plugin.js +31 -89
  260. package/dist/analytics/analytics__ga-plugin.d.ts +13 -3
  261. package/dist/analytics/analytics__ga-plugin.js +76 -25
  262. package/dist/analytics/analytics__plugin-utils.d.ts +16 -0
  263. package/dist/analytics/analytics__plugin-utils.js +52 -21
  264. package/dist/auth/auth.js +40 -10
  265. package/dist/auth/auth__core.d.ts +5 -4
  266. package/dist/auth/auth__core.js +1460 -722
  267. package/dist/auth/background-flow.js +125 -84
  268. package/dist/auth/down-notification.js +77 -37
  269. package/dist/auth/iframe-flow.js +130 -73
  270. package/dist/auth/landing.js +94 -36
  271. package/dist/auth/request-builder.js +79 -45
  272. package/dist/auth/response-parser.js +117 -85
  273. package/dist/auth/storage.js +323 -164
  274. package/dist/auth/token-validator.js +239 -128
  275. package/dist/auth/window-flow.js +126 -83
  276. package/dist/auth-dialog/auth-dialog.d.ts +2 -2
  277. package/dist/auth-dialog/auth-dialog.js +153 -96
  278. package/dist/auth-dialog-service/auth-dialog-service.js +37 -12
  279. package/dist/avatar/avatar-example-datauri.js +1 -23
  280. package/dist/avatar/avatar.d.ts +3 -3
  281. package/dist/avatar/avatar.js +132 -99
  282. package/dist/avatar/fallback-avatar.d.ts +2 -2
  283. package/dist/avatar/fallback-avatar.js +44 -24
  284. package/dist/badge/badge.d.ts +2 -2
  285. package/dist/badge/badge.js +34 -26
  286. package/dist/button/button.d.ts +3 -4
  287. package/dist/button/button.js +90 -71
  288. package/dist/button/button__classes.js +1 -0
  289. package/dist/button-group/button-group.d.ts +2 -2
  290. package/dist/button-group/button-group.js +33 -17
  291. package/dist/button-group/caption.d.ts +2 -2
  292. package/dist/button-group/caption.js +5 -22
  293. package/dist/button-set/button-set.d.ts +2 -2
  294. package/dist/button-set/button-set.js +31 -16
  295. package/dist/button-toolbar/button-toolbar.d.ts +2 -2
  296. package/dist/button-toolbar/button-toolbar.js +30 -15
  297. package/dist/caret/caret.js +223 -188
  298. package/dist/checkbox/checkbox.d.ts +2 -2
  299. package/dist/checkbox/checkbox.js +86 -61
  300. package/dist/clipboard/clipboard-fallback.js +10 -10
  301. package/dist/clipboard/clipboard.js +132 -38
  302. package/dist/code/code.d.ts +1 -1
  303. package/dist/code/code.js +153 -81
  304. package/dist/confirm/confirm.d.ts +1 -1
  305. package/dist/confirm/confirm.js +86 -50
  306. package/dist/confirm-service/confirm-service.js +68 -47
  307. package/dist/content-layout/content-layout.d.ts +2 -2
  308. package/dist/content-layout/content-layout.js +53 -35
  309. package/dist/content-layout/sidebar.d.ts +2 -2
  310. package/dist/content-layout/sidebar.js +1 -0
  311. package/dist/contenteditable/contenteditable.d.ts +3 -3
  312. package/dist/contenteditable/contenteditable.js +54 -43
  313. package/dist/control-label/control-label.d.ts +11 -0
  314. package/dist/control-label/control-label.js +32 -0
  315. package/dist/data-list/data-list.d.ts +3 -3
  316. package/dist/data-list/data-list.js +166 -120
  317. package/dist/data-list/data-list.mock.d.ts +2 -2
  318. package/dist/data-list/data-list.mock.js +11 -4
  319. package/dist/data-list/item.d.ts +3 -3
  320. package/dist/data-list/item.js +141 -118
  321. package/dist/data-list/selection.js +139 -77
  322. package/dist/data-list/title.d.ts +1 -1
  323. package/dist/data-list/title.js +13 -3
  324. package/dist/date-picker/consts.d.ts +5 -5
  325. package/dist/date-picker/consts.js +18 -15
  326. package/dist/date-picker/date-input.d.ts +3 -12
  327. package/dist/date-picker/date-input.js +132 -111
  328. package/dist/date-picker/date-picker.d.ts +8 -6
  329. package/dist/date-picker/date-picker.js +215 -165
  330. package/dist/date-picker/date-popup.d.ts +1 -1
  331. package/dist/date-picker/date-popup.js +341 -301
  332. package/dist/date-picker/day.d.ts +2 -2
  333. package/dist/date-picker/day.js +78 -68
  334. package/dist/date-picker/month-names.d.ts +2 -2
  335. package/dist/date-picker/month-names.js +59 -41
  336. package/dist/date-picker/month-slider.d.ts +2 -2
  337. package/dist/date-picker/month-slider.js +59 -40
  338. package/dist/date-picker/month.d.ts +2 -2
  339. package/dist/date-picker/month.js +21 -15
  340. package/dist/date-picker/months.d.ts +2 -2
  341. package/dist/date-picker/months.js +80 -56
  342. package/dist/date-picker/weekdays.d.ts +2 -2
  343. package/dist/date-picker/weekdays.js +18 -12
  344. package/dist/date-picker/years.d.ts +6 -2
  345. package/dist/date-picker/years.js +102 -66
  346. package/dist/dialog/dialog.d.ts +4 -16
  347. package/dist/dialog/dialog.js +149 -100
  348. package/dist/dialog/dialog__body-scroll-preventer.js +5 -0
  349. package/dist/dropdown/anchor.d.ts +1 -1
  350. package/dist/dropdown/anchor.js +11 -3
  351. package/dist/dropdown/dropdown.d.ts +8 -1
  352. package/dist/dropdown/dropdown.js +159 -132
  353. package/dist/dropdown-menu/dropdown-menu.js +103 -77
  354. package/dist/editable-heading/editable-heading.d.ts +2 -2
  355. package/dist/editable-heading/editable-heading.js +134 -66
  356. package/dist/error-bubble/error-bubble.d.ts +2 -2
  357. package/dist/error-bubble/error-bubble.js +60 -27
  358. package/dist/error-message/error-message.d.ts +2 -2
  359. package/dist/error-message/error-message.js +55 -32
  360. package/dist/footer/footer.js +115 -8
  361. package/dist/global/compose.js +10 -1
  362. package/dist/global/composeRefs.js +12 -7
  363. package/dist/global/controls-height.d.ts +2 -0
  364. package/dist/global/controls-height.js +10 -2
  365. package/dist/global/create-stateful-context.d.ts +1 -1
  366. package/dist/global/create-stateful-context.js +19 -19
  367. package/dist/global/data-tests.js +15 -7
  368. package/dist/global/dom.js +93 -55
  369. package/dist/global/focus-sensor-hoc.d.ts +1 -0
  370. package/dist/global/focus-sensor-hoc.js +118 -102
  371. package/dist/global/fuzzy-highlight.js +41 -27
  372. package/dist/global/get-event-key.js +8 -8
  373. package/dist/global/get-uid.js +8 -4
  374. package/dist/global/inject-styles.js +15 -10
  375. package/dist/global/linear-function.js +2 -2
  376. package/dist/global/listeners.js +50 -28
  377. package/dist/global/memoize.js +13 -6
  378. package/dist/global/normalize-indent.js +51 -19
  379. package/dist/global/promise-with-timeout.js +8 -6
  380. package/dist/global/prop-types.js +5 -3
  381. package/dist/global/react-dom-renderer.d.ts +4 -4
  382. package/dist/global/react-dom-renderer.js +44 -28
  383. package/dist/global/react-render-adapter.js +21 -15
  384. package/dist/global/rerender-hoc.js +40 -19
  385. package/dist/global/schedule-raf.js +6 -5
  386. package/dist/global/sniffer.js +1 -1
  387. package/dist/global/theme.js +24 -0
  388. package/dist/global/trivial-template-tag.js +10 -3
  389. package/dist/global/typescript-utils.js +6 -2
  390. package/dist/global/url.js +27 -21
  391. package/dist/global/use-event-callback.d.ts +1 -0
  392. package/dist/global/use-event-callback.js +17 -0
  393. package/dist/grid/col.d.ts +2 -2
  394. package/dist/grid/col.js +42 -23
  395. package/dist/grid/grid.d.ts +2 -2
  396. package/dist/grid/grid.js +32 -13
  397. package/dist/grid/row.d.ts +2 -2
  398. package/dist/grid/row.js +32 -20
  399. package/dist/group/group.d.ts +2 -2
  400. package/dist/group/group.js +25 -14
  401. package/dist/header/header.d.ts +2 -2
  402. package/dist/header/header.js +76 -31
  403. package/dist/header/logo.d.ts +2 -2
  404. package/dist/header/logo.js +32 -14
  405. package/dist/header/profile.d.ts +4 -2
  406. package/dist/header/profile.js +155 -109
  407. package/dist/header/services-link.d.ts +2 -2
  408. package/dist/header/services-link.js +9 -2
  409. package/dist/header/services.d.ts +2 -2
  410. package/dist/header/services.js +105 -66
  411. package/dist/header/smart-profile.d.ts +2 -2
  412. package/dist/header/smart-profile.js +195 -104
  413. package/dist/header/smart-services.d.ts +2 -2
  414. package/dist/header/smart-services.js +112 -64
  415. package/dist/header/tray-icon.d.ts +2 -2
  416. package/dist/header/tray-icon.js +37 -22
  417. package/dist/header/tray.d.ts +2 -2
  418. package/dist/header/tray.js +30 -17
  419. package/dist/heading/heading.js +26 -27
  420. package/dist/http/http.d.ts +16 -6
  421. package/dist/http/http.js +357 -170
  422. package/dist/http/http.mock.js +105 -50
  423. package/dist/hub-source/hub-source.js +183 -77
  424. package/dist/hub-source/hub-source__user.js +45 -12
  425. package/dist/hub-source/hub-source__users-groups.d.ts +1 -1
  426. package/dist/hub-source/hub-source__users-groups.js +63 -34
  427. package/dist/i18n/i18n-context.d.ts +13 -0
  428. package/dist/i18n/i18n-context.js +28 -0
  429. package/dist/i18n/i18n.d.ts +59 -0
  430. package/dist/i18n/i18n.js +140 -0
  431. package/dist/icon/icon.d.ts +3 -3
  432. package/dist/icon/icon.js +78 -61
  433. package/dist/icon/icon__svg.d.ts +1 -1
  434. package/dist/icon/icon__svg.js +15 -71
  435. package/dist/icon/index.js +10 -2
  436. package/dist/input/input.d.ts +7 -1
  437. package/dist/input/input.js +30 -197
  438. package/dist/island/adaptive-island-hoc.d.ts +2 -2
  439. package/dist/island/adaptive-island-hoc.js +38 -27
  440. package/dist/island/content.d.ts +1 -1
  441. package/dist/island/content.js +104 -92
  442. package/dist/island/header.d.ts +2 -2
  443. package/dist/island/header.js +60 -47
  444. package/dist/island/island.d.ts +3 -3
  445. package/dist/island/island.js +33 -21
  446. package/dist/island-legacy/content-legacy.d.ts +2 -2
  447. package/dist/island-legacy/content-legacy.js +23 -13
  448. package/dist/island-legacy/header-legacy.d.ts +2 -2
  449. package/dist/island-legacy/header-legacy.js +25 -15
  450. package/dist/island-legacy/island-legacy.d.ts +2 -2
  451. package/dist/island-legacy/island-legacy.js +23 -13
  452. package/dist/link/clickableLink.d.ts +1 -1
  453. package/dist/link/clickableLink.js +43 -29
  454. package/dist/link/link.d.ts +8 -9
  455. package/dist/link/link.js +74 -63
  456. package/dist/list/consts.js +4 -1
  457. package/dist/list/list.d.ts +7 -7
  458. package/dist/list/list.js +500 -406
  459. package/dist/list/list__custom.d.ts +1 -1
  460. package/dist/list/list__custom.js +60 -47
  461. package/dist/list/list__hint.d.ts +2 -2
  462. package/dist/list/list__hint.js +18 -8
  463. package/dist/list/list__item.d.ts +2 -2
  464. package/dist/list/list__item.js +168 -135
  465. package/dist/list/list__link.d.ts +2 -2
  466. package/dist/list/list__link.js +54 -39
  467. package/dist/list/list__separator.d.ts +2 -2
  468. package/dist/list/list__separator.js +24 -14
  469. package/dist/list/list__title.d.ts +2 -2
  470. package/dist/list/list__title.js +32 -22
  471. package/dist/list/list__users-groups-source.js +131 -58
  472. package/dist/loader/loader.d.ts +2 -2
  473. package/dist/loader/loader.js +66 -34
  474. package/dist/loader/loader__core.js +197 -129
  475. package/dist/loader-inline/loader-inline.d.ts +2 -2
  476. package/dist/loader-inline/loader-inline.js +34 -19
  477. package/dist/loader-screen/loader-screen.d.ts +2 -2
  478. package/dist/loader-screen/loader-screen.js +45 -21
  479. package/dist/login-dialog/login-dialog.d.ts +2 -2
  480. package/dist/login-dialog/login-dialog.js +126 -81
  481. package/dist/login-dialog/service.js +40 -13
  482. package/dist/markdown/code.d.ts +2 -2
  483. package/dist/markdown/code.js +30 -9
  484. package/dist/markdown/heading.d.ts +2 -2
  485. package/dist/markdown/heading.js +3 -5
  486. package/dist/markdown/link.d.ts +2 -2
  487. package/dist/markdown/link.js +13 -8
  488. package/dist/markdown/markdown.d.ts +2 -2
  489. package/dist/markdown/markdown.js +67 -36
  490. package/dist/message/message.d.ts +3 -7
  491. package/dist/message/message.js +154 -121
  492. package/dist/old-browsers-message/old-browsers-message.js +19 -11
  493. package/dist/old-browsers-message/old-browsers-message__stop.js +8 -0
  494. package/dist/old-browsers-message/white-list.js +17 -10
  495. package/dist/pager/pager.d.ts +8 -13
  496. package/dist/pager/pager.js +260 -197
  497. package/dist/panel/panel.d.ts +2 -2
  498. package/dist/panel/panel.js +25 -14
  499. package/dist/permissions/permissions.js +166 -122
  500. package/dist/permissions/permissions__cache.js +220 -191
  501. package/dist/popup/popup.consts.js +1 -1
  502. package/dist/popup/popup.d.ts +2 -2
  503. package/dist/popup/popup.js +299 -236
  504. package/dist/popup/popup.target.js +8 -9
  505. package/dist/popup/position.d.ts +1 -1
  506. package/dist/popup/position.js +175 -154
  507. package/dist/popup-menu/popup-menu.d.ts +2 -2
  508. package/dist/popup-menu/popup-menu.js +81 -46
  509. package/dist/progress-bar/progress-bar.d.ts +2 -2
  510. package/dist/progress-bar/progress-bar.js +66 -52
  511. package/dist/query-assist/query-assist.d.ts +3 -7
  512. package/dist/query-assist/query-assist.js +679 -575
  513. package/dist/query-assist/query-assist__suggestions.d.ts +2 -2
  514. package/dist/query-assist/query-assist__suggestions.js +34 -6
  515. package/dist/radio/radio.d.ts +1 -1
  516. package/dist/radio/radio.js +28 -15
  517. package/dist/radio/radio__item.d.ts +1 -1
  518. package/dist/radio/radio__item.js +62 -45
  519. package/dist/select/select.d.ts +20 -9
  520. package/dist/select/select.js +832 -706
  521. package/dist/select/select__filter.d.ts +2 -3
  522. package/dist/select/select__filter.js +38 -8
  523. package/dist/select/select__popup.d.ts +48 -8
  524. package/dist/select/select__popup.js +430 -299
  525. package/dist/shortcuts/core.js +197 -146
  526. package/dist/shortcuts/shortcut-title.js +11 -6
  527. package/dist/shortcuts/shortcuts-hoc.d.ts +2 -2
  528. package/dist/shortcuts/shortcuts-hoc.js +43 -19
  529. package/dist/shortcuts/shortcuts.d.ts +1 -1
  530. package/dist/shortcuts/shortcuts.js +69 -43
  531. package/dist/storage/storage.js +35 -7
  532. package/dist/storage/storage__fallback.js +217 -143
  533. package/dist/storage/storage__local.js +156 -93
  534. package/dist/style.css +1 -1
  535. package/dist/tab-trap/tab-trap.d.ts +1 -1
  536. package/dist/tab-trap/tab-trap.js +117 -84
  537. package/dist/table/cell.d.ts +2 -2
  538. package/dist/table/cell.js +23 -9
  539. package/dist/table/disable-hover-hoc.d.ts +2 -2
  540. package/dist/table/disable-hover-hoc.js +44 -26
  541. package/dist/table/header-cell.d.ts +2 -2
  542. package/dist/table/header-cell.js +75 -56
  543. package/dist/table/header.d.ts +3 -14
  544. package/dist/table/header.js +103 -134
  545. package/dist/table/multitable.d.ts +2 -2
  546. package/dist/table/multitable.js +102 -86
  547. package/dist/table/row-with-focus-sensor.d.ts +1 -1
  548. package/dist/table/row-with-focus-sensor.js +70 -27
  549. package/dist/table/row.d.ts +2 -1
  550. package/dist/table/row.js +192 -158
  551. package/dist/table/selection-adapter.js +3 -1
  552. package/dist/table/selection-shortcuts-hoc.js +132 -131
  553. package/dist/table/selection.js +220 -150
  554. package/dist/table/smart-table.d.ts +3 -1
  555. package/dist/table/smart-table.js +88 -53
  556. package/dist/table/table.d.ts +6 -4
  557. package/dist/table/table.js +312 -250
  558. package/dist/tabs/collapsible-more.d.ts +3 -3
  559. package/dist/tabs/collapsible-more.js +91 -59
  560. package/dist/tabs/collapsible-tab.d.ts +1 -1
  561. package/dist/tabs/collapsible-tab.js +46 -42
  562. package/dist/tabs/collapsible-tabs.d.ts +2 -2
  563. package/dist/tabs/collapsible-tabs.js +167 -105
  564. package/dist/tabs/custom-item.js +2 -4
  565. package/dist/tabs/dumb-tabs.d.ts +5 -3
  566. package/dist/tabs/dumb-tabs.js +103 -62
  567. package/dist/tabs/smart-tabs.d.ts +2 -2
  568. package/dist/tabs/smart-tabs.js +72 -31
  569. package/dist/tabs/tab-link.d.ts +1 -1
  570. package/dist/tabs/tab-link.js +13 -35
  571. package/dist/tabs/tab.d.ts +2 -2
  572. package/dist/tabs/tab.js +26 -15
  573. package/dist/tabs/tabs.js +37 -7
  574. package/dist/tag/tag.d.ts +5 -5
  575. package/dist/tag/tag.js +147 -115
  576. package/dist/tags-input/tags-input.d.ts +9 -4
  577. package/dist/tags-input/tags-input.js +328 -227
  578. package/dist/tags-list/tags-list.d.ts +2 -2
  579. package/dist/tags-list/tags-list.js +62 -40
  580. package/dist/text/text.d.ts +8 -2
  581. package/dist/text/text.js +38 -17
  582. package/dist/toggle/toggle.d.ts +2 -2
  583. package/dist/toggle/toggle.js +55 -39
  584. package/dist/tooltip/tooltip.d.ts +1 -1
  585. package/dist/tooltip/tooltip.js +145 -102
  586. package/dist/user-agreement/service.js +411 -264
  587. package/dist/user-agreement/toolbox.eula.js +1 -160
  588. package/dist/user-agreement/user-agreement.d.ts +3 -11
  589. package/dist/user-agreement/user-agreement.js +107 -72
  590. package/dist/user-card/card.d.ts +22 -21
  591. package/dist/user-card/card.js +35 -5
  592. package/dist/user-card/smart-user-card-tooltip.d.ts +3 -3
  593. package/dist/user-card/smart-user-card-tooltip.js +138 -78
  594. package/dist/user-card/tooltip.d.ts +11 -6
  595. package/dist/user-card/tooltip.js +76 -36
  596. package/dist/user-card/user-card.js +35 -5
  597. package/package.json +86 -86
  598. package/components/auth-ng/auth-ng.examples.js +0 -41
  599. package/components/auth-ng/auth-ng.js +0 -143
  600. package/components/auth-ng/auth-ng.mock.js +0 -28
  601. package/components/autofocus-ng/autofocus-ng.examples.js +0 -41
  602. package/components/autofocus-ng/autofocus-ng.js +0 -51
  603. package/components/autofocus-ng/autofocus-ng.test.js +0 -49
  604. package/components/avatar-editor-ng/avatar-editor-ng.css +0 -104
  605. package/components/avatar-editor-ng/avatar-editor-ng.examples.js +0 -41
  606. package/components/avatar-editor-ng/avatar-editor-ng.js +0 -133
  607. package/components/avatar-editor-ng/avatar-editor-ng__template.js +0 -28
  608. package/components/avatar-ng/avatar-ng.examples.js +0 -33
  609. package/components/avatar-ng/avatar-ng.js +0 -7
  610. package/components/badge-ng/badge-ng.examples.js +0 -32
  611. package/components/badge-ng/badge-ng.js +0 -8
  612. package/components/breadcrumb-ng/breadcrumb-ng.examples.js +0 -33
  613. package/components/breadcrumb-ng/breadcrumb-ng.js +0 -60
  614. package/components/breadcrumb-ng/breadcrumb.css +0 -70
  615. package/components/button-group-ng/button-group-ng.css +0 -4
  616. package/components/button-group-ng/button-group-ng.examples.js +0 -30
  617. package/components/button-group-ng/button-group-ng.js +0 -43
  618. package/components/button-ng/button-ng.css +0 -23
  619. package/components/button-ng/button-ng.examples.js +0 -114
  620. package/components/button-ng/button-ng.js +0 -192
  621. package/components/button-ng/button-ng.test.js +0 -95
  622. package/components/button-set-ng/button-set-ng.examples.js +0 -30
  623. package/components/button-set-ng/button-set-ng.js +0 -22
  624. package/components/button-toolbar-ng/button-toolbar-ng.examples.js +0 -35
  625. package/components/button-toolbar-ng/button-toolbar-ng.js +0 -23
  626. package/components/checkbox-ng/checkbox-ng.examples.js +0 -80
  627. package/components/checkbox-ng/checkbox-ng.js +0 -64
  628. package/components/checkbox-ng/checkbox-ng.test.js +0 -61
  629. package/components/compiler-ng/compiler-ng.examples.js +0 -32
  630. package/components/compiler-ng/compiler-ng.js +0 -63
  631. package/components/compiler-ng/compiler-ng.test.js +0 -207
  632. package/components/confirm-ng/confirm-ng.examples.js +0 -43
  633. package/components/confirm-ng/confirm-ng.js +0 -30
  634. package/components/data-list-ng/data-list-ng.examples.js +0 -54
  635. package/components/data-list-ng/data-list-ng.js +0 -7
  636. package/components/dialog-ng/dialog-ng.css +0 -98
  637. package/components/dialog-ng/dialog-ng.examples.js +0 -240
  638. package/components/dialog-ng/dialog-ng.js +0 -607
  639. package/components/dialog-ng/dialog-ng.test.js +0 -829
  640. package/components/dialog-ng/dialog-ng__template.js +0 -70
  641. package/components/docked-panel-ng/docked-panel-ng.css +0 -28
  642. package/components/docked-panel-ng/docked-panel-ng.examples.js +0 -39
  643. package/components/docked-panel-ng/docked-panel-ng.js +0 -169
  644. package/components/error-message-ng/error-message-ng.examples.js +0 -33
  645. package/components/error-message-ng/error-message-ng.js +0 -50
  646. package/components/error-page-ng/error-page-ng.css +0 -6
  647. package/components/error-page-ng/error-page-ng.examples.js +0 -31
  648. package/components/error-page-ng/error-page-ng.js +0 -269
  649. package/components/error-page-ng/error-page-ng.test.js +0 -138
  650. package/components/footer-ng/footer-ng.examples.js +0 -35
  651. package/components/footer-ng/footer-ng.js +0 -61
  652. package/components/footer-ng/footer-ng.test.js +0 -41
  653. package/components/form-ng/error-bubble-ng.css +0 -7
  654. package/components/form-ng/form-ng.examples.js +0 -73
  655. package/components/form-ng/form-ng.js +0 -176
  656. package/components/global/angular-component-factory.js +0 -87
  657. package/components/global/angular-component-factory.test.js +0 -118
  658. package/components/global/ring-angular-component.js +0 -15
  659. package/components/global/ring-angular-component.test.js +0 -31
  660. package/components/group-ng/group-ng.js +0 -16
  661. package/components/group-ng/group.examples.js +0 -29
  662. package/components/heading-ng/heading-ng.examples.js +0 -29
  663. package/components/heading-ng/heading-ng.js +0 -8
  664. package/components/icon-ng/icon-ng.examples.js +0 -34
  665. package/components/icon-ng/icon-ng.js +0 -89
  666. package/components/input/input-label.d.ts +0 -10
  667. package/components/input/input-label.js +0 -18
  668. package/components/input-ng/input-ng.css +0 -7
  669. package/components/input-ng/input-ng.examples.js +0 -125
  670. package/components/input-ng/input-ng.js +0 -159
  671. package/components/input-ng/input-ng.test.js +0 -32
  672. package/components/island-ng/island-content-ng.js +0 -56
  673. package/components/island-ng/island-header-ng.js +0 -34
  674. package/components/island-ng/island-ng-class-fixer.js +0 -7
  675. package/components/island-ng/island-ng.examples.js +0 -54
  676. package/components/island-ng/island-ng.js +0 -35
  677. package/components/link-ng/link-ng.examples.js +0 -22
  678. package/components/link-ng/link-ng.js +0 -26
  679. package/components/link-ng/link-ng.test.js +0 -29
  680. package/components/loader-inline-ng/loader-inline-ng.examples.js +0 -28
  681. package/components/loader-inline-ng/loader-inline-ng.js +0 -17
  682. package/components/loader-inline-ng/loader-inline-ng.test.js +0 -28
  683. package/components/loader-ng/loader-ng.examples.js +0 -27
  684. package/components/loader-ng/loader-ng.js +0 -37
  685. package/components/loader-ng/loader-ng.test.js +0 -41
  686. package/components/loader-screen-ng/loader-screen-ng.examples.js +0 -30
  687. package/components/loader-screen-ng/loader-screen-ng.js +0 -95
  688. package/components/message-bundle-ng/message-bundle-ng.js +0 -67
  689. package/components/pager-ng/pager-ng.examples.js +0 -37
  690. package/components/pager-ng/pager-ng.js +0 -7
  691. package/components/palette/palette.examples.js +0 -63
  692. package/components/panel-ng/panel-ng.js +0 -20
  693. package/components/permissions-ng/permissions-ng.css +0 -5
  694. package/components/permissions-ng/permissions-ng.examples.js +0 -49
  695. package/components/permissions-ng/permissions-ng.js +0 -246
  696. package/components/permissions-ng/permissions-ng.test.js +0 -82
  697. package/components/place-under-ng/place-under-ng.examples.js +0 -94
  698. package/components/place-under-ng/place-under-ng.js +0 -190
  699. package/components/place-under-ng/place-under-ng.test.js +0 -182
  700. package/components/progress-bar-ng/progress-bar-ng.examples.js +0 -52
  701. package/components/progress-bar-ng/progress-bar-ng.js +0 -7
  702. package/components/promised-click-ng/promised-click-ng.examples.js +0 -42
  703. package/components/promised-click-ng/promised-click-ng.js +0 -118
  704. package/components/promised-click-ng/promised-click-ng.test.js +0 -166
  705. package/components/proxy-attrs/proxy-attrs.js +0 -24
  706. package/components/proxy-attrs/proxy-attrs.test.js +0 -102
  707. package/components/query-assist-ng/query-assist-ng.examples.js +0 -89
  708. package/components/query-assist-ng/query-assist-ng.js +0 -7
  709. package/components/radio-ng/radio-ng.examples.js +0 -31
  710. package/components/radio-ng/radio-ng.js +0 -61
  711. package/components/radio-ng/radio-ng.test.js +0 -55
  712. package/components/save-field-ng/save-field-ng.css +0 -13
  713. package/components/save-field-ng/save-field-ng.examples.js +0 -221
  714. package/components/save-field-ng/save-field-ng.js +0 -358
  715. package/components/save-field-ng/save-field-ng__template.js +0 -32
  716. package/components/select-ng/select-ng.examples.js +0 -483
  717. package/components/select-ng/select-ng.js +0 -561
  718. package/components/select-ng/select-ng.test.js +0 -620
  719. package/components/select-ng/select-ng__lazy.js +0 -83
  720. package/components/select-ng/select-ng__lazy.test.js +0 -81
  721. package/components/select-ng/select-ng__options.js +0 -147
  722. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +0 -116
  723. package/components/shortcuts-hint-ng/shortcuts-hint-ng.examples.js +0 -126
  724. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +0 -102
  725. package/components/shortcuts-hint-ng/shortcuts-hint-ng.test.js +0 -113
  726. package/components/shortcuts-hint-ng/shortcuts-hint-ng__template.js +0 -48
  727. package/components/shortcuts-ng/shortcuts-ng.js +0 -285
  728. package/components/sidebar-ng/sidebar-ng.examples.js +0 -94
  729. package/components/sidebar-ng/sidebar-ng.js +0 -100
  730. package/components/sidebar-ng/sidebar-ng.test.js +0 -37
  731. package/components/sidebar-ng/sidebar-ng__button-template.js +0 -18
  732. package/components/sidebar-ng/sidebar-ng__template.js +0 -10
  733. package/components/table-legacy-ng/table-legacy-ng.examples.js +0 -192
  734. package/components/table-legacy-ng/table-legacy-ng.js +0 -433
  735. package/components/table-legacy-ng/table-legacy-ng.test.js +0 -296
  736. package/components/table-legacy-ng/table-legacy-ng__pager.js +0 -32
  737. package/components/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +0 -105
  738. package/components/table-legacy-ng/table-legacy-ng__selection.js +0 -165
  739. package/components/table-legacy-ng/table-legacy-ng__toolbar.js +0 -58
  740. package/components/table-ng/smart-table-ng.js +0 -7
  741. package/components/table-ng/table-ng.examples.js +0 -84
  742. package/components/table-ng/table-ng.js +0 -7
  743. package/components/tabs-ng/tabs-ng.examples.js +0 -30
  744. package/components/tabs-ng/tabs-ng.js +0 -206
  745. package/components/tabs-ng/tabs-ng.test.js +0 -76
  746. package/components/tabs-ng/tabs-ng__template.js +0 -38
  747. package/components/tags-input-ng/tags-input-ng.examples.js +0 -41
  748. package/components/tags-input-ng/tags-input-ng.js +0 -7
  749. package/components/template-ng/template-ng.examples.js +0 -32
  750. package/components/template-ng/template-ng.js +0 -58
  751. package/components/template-ng/template-ng.test.js +0 -97
  752. package/components/title-ng/title-ng.examples.js +0 -30
  753. package/components/title-ng/title-ng.js +0 -120
  754. package/components/title-ng/title-ng.test.js +0 -47
  755. package/components/toggle-ng/toggle-ng.examples.js +0 -22
  756. package/components/toggle-ng/toggle-ng.js +0 -8
  757. package/components/tooltip-ng/tooltip-ng.css +0 -25
  758. package/components/tooltip-ng/tooltip-ng.examples.js +0 -36
  759. package/components/tooltip-ng/tooltip-ng.js +0 -100
  760. package/components/tooltip-ng/tooltip-ng.test.js +0 -69
  761. package/components/user-card-ng/user-card-ng.examples.js +0 -66
  762. package/components/user-card-ng/user-card-ng.js +0 -16
  763. package/dist/_helpers/button-group.js +0 -3
  764. package/dist/_helpers/button-set.js +0 -3
  765. package/dist/_helpers/button-toolbar.js +0 -3
  766. package/dist/_helpers/checkbox.js +0 -3
  767. package/dist/_helpers/error-message.js +0 -3
  768. package/dist/_helpers/footer.js +0 -110
  769. package/dist/_helpers/group.js +0 -3
  770. package/dist/_helpers/icon.js +0 -3
  771. package/dist/_helpers/link.js +0 -3
  772. package/dist/_helpers/loader-inline.js +0 -3
  773. package/dist/_helpers/loader-screen.js +0 -3
  774. package/dist/_helpers/panel.js +0 -3
  775. package/dist/_helpers/radio.js +0 -3
  776. package/dist/_helpers/tabs.js +0 -3
  777. package/dist/auth-ng/auth-ng.js +0 -198
  778. package/dist/auth-ng/auth-ng.mock.js +0 -29
  779. package/dist/autofocus-ng/autofocus-ng.js +0 -45
  780. package/dist/avatar-editor-ng/avatar-editor-ng.js +0 -161
  781. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +0 -30
  782. package/dist/avatar-ng/avatar-ng.js +0 -19
  783. package/dist/badge-ng/badge-ng.js +0 -17
  784. package/dist/breadcrumb-ng/breadcrumb-ng.js +0 -61
  785. package/dist/button-group-ng/button-group-ng.js +0 -39
  786. package/dist/button-ng/button-ng.js +0 -180
  787. package/dist/button-set-ng/button-set-ng.js +0 -17
  788. package/dist/button-toolbar-ng/button-toolbar-ng.js +0 -21
  789. package/dist/checkbox-ng/checkbox-ng.js +0 -63
  790. package/dist/compiler-ng/compiler-ng.js +0 -48
  791. package/dist/confirm-ng/confirm-ng.js +0 -67
  792. package/dist/data-list-ng/data-list-ng.js +0 -57
  793. package/dist/dialog-ng/dialog-ng.js +0 -512
  794. package/dist/dialog-ng/dialog-ng__template.js +0 -72
  795. package/dist/docked-panel-ng/docked-panel-ng.js +0 -147
  796. package/dist/error-message-ng/error-message-ng.js +0 -53
  797. package/dist/footer-ng/footer-ng.js +0 -62
  798. package/dist/form-ng/form-ng.js +0 -148
  799. package/dist/global/angular-component-factory.js +0 -73
  800. package/dist/global/ring-angular-component.js +0 -19
  801. package/dist/group-ng/group-ng.js +0 -11
  802. package/dist/heading-ng/heading-ng.js +0 -16
  803. package/dist/icon-ng/icon-ng.js +0 -84
  804. package/dist/input/input-label.d.ts +0 -10
  805. package/dist/input/input-label.js +0 -27
  806. package/dist/input-ng/input-ng.js +0 -146
  807. package/dist/island-ng/island-content-ng.js +0 -53
  808. package/dist/island-ng/island-header-ng.js +0 -32
  809. package/dist/island-ng/island-ng-class-fixer.js +0 -9
  810. package/dist/island-ng/island-ng.js +0 -31
  811. package/dist/link-ng/link-ng.js +0 -23
  812. package/dist/loader-inline-ng/loader-inline-ng.js +0 -14
  813. package/dist/loader-ng/loader-ng.js +0 -36
  814. package/dist/loader-screen-ng/loader-screen-ng.js +0 -87
  815. package/dist/message-bundle-ng/message-bundle-ng.js +0 -68
  816. package/dist/pager-ng/pager-ng.js +0 -97
  817. package/dist/panel-ng/panel-ng.js +0 -16
  818. package/dist/permissions-ng/permissions-ng.js +0 -277
  819. package/dist/place-under-ng/place-under-ng.js +0 -138
  820. package/dist/progress-bar-ng/progress-bar-ng.js +0 -15
  821. package/dist/promised-click-ng/promised-click-ng.js +0 -107
  822. package/dist/proxy-attrs/proxy-attrs.js +0 -19
  823. package/dist/query-assist-ng/query-assist-ng.js +0 -83
  824. package/dist/radio-ng/radio-ng.js +0 -59
  825. package/dist/save-field-ng/save-field-ng.js +0 -291
  826. package/dist/save-field-ng/save-field-ng__template.js +0 -34
  827. package/dist/select-ng/select-ng.js +0 -577
  828. package/dist/select-ng/select-ng__lazy.js +0 -153
  829. package/dist/select-ng/select-ng__options.js +0 -119
  830. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +0 -107
  831. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +0 -50
  832. package/dist/shortcuts-ng/shortcuts-ng.js +0 -231
  833. package/dist/sidebar-ng/sidebar-ng.js +0 -101
  834. package/dist/sidebar-ng/sidebar-ng__button-template.js +0 -20
  835. package/dist/sidebar-ng/sidebar-ng__template.js +0 -12
  836. package/dist/table-legacy-ng/table-legacy-ng.js +0 -472
  837. package/dist/table-legacy-ng/table-legacy-ng__pager.js +0 -123
  838. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +0 -92
  839. package/dist/table-legacy-ng/table-legacy-ng__selection.js +0 -147
  840. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +0 -53
  841. package/dist/table-ng/smart-table-ng.js +0 -67
  842. package/dist/table-ng/table-ng.js +0 -66
  843. package/dist/tabs-ng/tabs-ng.js +0 -172
  844. package/dist/tabs-ng/tabs-ng__template.js +0 -40
  845. package/dist/tags-input-ng/tags-input-ng.js +0 -90
  846. package/dist/template-ng/template-ng.js +0 -58
  847. package/dist/title-ng/title-ng.js +0 -103
  848. package/dist/toggle-ng/toggle-ng.js +0 -16
  849. package/dist/tooltip-ng/tooltip-ng.js +0 -96
  850. package/dist/user-card-ng/user-card-ng.js +0 -67
@@ -1,5 +1,20 @@
1
- import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
- import React, { Component, Fragment } from 'react';
1
+ import { _ as _defineProperty, a as _inherits, b as _createSuper, c as _classCallCheck, l as _typeof, k as _assertThisInitialized, g as _objectSpread2, e as _objectWithoutProperties, q as _toPropertyKey, d as _createClass, f as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.index-of.js';
3
+ import 'core-js/modules/es.array.reduce.js';
4
+ import 'core-js/modules/es.object.to-string.js';
5
+ import 'core-js/modules/es.string.trim.js';
6
+ import 'core-js/modules/es.array.filter.js';
7
+ import 'core-js/modules/es.regexp.exec.js';
8
+ import 'core-js/modules/es.array.find.js';
9
+ import 'core-js/modules/es.array.concat.js';
10
+ import 'core-js/modules/es.string.replace.js';
11
+ import 'core-js/modules/es.array.map.js';
12
+ import 'core-js/modules/web.dom-collections.for-each.js';
13
+ import 'core-js/modules/es.array.slice.js';
14
+ import 'core-js/modules/es.object.keys.js';
15
+ import 'core-js/modules/es.object.assign.js';
16
+ import 'core-js/modules/es.object.values.js';
17
+ import React, { Fragment, Component } from 'react';
3
18
  import classNames from 'classnames';
4
19
  import PropTypes from 'prop-types';
5
20
  import chevronDownIcon from '@jetbrains/icons/chevron-down';
@@ -9,8 +24,8 @@ import '../dropdown/dropdown.js';
9
24
  import Avatar, { Size as Size$1 } from '../avatar/avatar.js';
10
25
  import Popup from '../popup/popup.js';
11
26
  import List, { ActiveItemContext } from '../list/list.js';
12
- import { Size, Input } from '../input/input.js';
13
- import { InputLabel } from '../input/input-label.js';
27
+ import { S as Size, I as Input, m as modules_88cfaf40 } from '../_helpers/input.js';
28
+ import { ControlLabel } from '../control-label/control-label.js';
14
29
  import Shortcuts from '../shortcuts/shortcuts.js';
15
30
  import { Button } from '../button/button.js';
16
31
  import joinDataTestAttributes from '../global/data-tests.js';
@@ -18,33 +33,53 @@ import getUID from '../global/get-uid.js';
18
33
  import rerenderHOC from '../global/rerender-hoc.js';
19
34
  import fuzzyHighlight from '../global/fuzzy-highlight.js';
20
35
  import memoize from '../global/memoize.js';
36
+ import { I18nContext } from '../i18n/i18n-context.js';
37
+ import composeRefs from '../global/composeRefs.js';
38
+ import { refObject } from '../global/prop-types.js';
21
39
  import { isArray } from '../global/typescript-utils.js';
22
40
  import { ControlsHeight, ControlsHeightContext } from '../global/controls-height.js';
23
- import { m as modules_88cfaf40 } from '../_helpers/input.js';
24
41
  import SelectPopup from './select__popup.js';
25
42
  import { A as Anchor } from '../_helpers/anchor.js';
43
+ import 'core-js/modules/es.object.entries.js';
26
44
  import '@jetbrains/icons/chevron-10px';
27
45
  import '../icon/icon.js';
28
46
  import 'util-deprecate';
29
47
  import '../icon/icon__constants.js';
30
- import '../_helpers/icon.js';
31
- import '../icon/icon__svg.js';
32
- import 'focus-visible';
48
+ import '../_helpers/icon__svg.js';
49
+ import 'core-js/modules/es.string.starts-with.js';
50
+ import 'core-js/modules/es.array.iterator.js';
51
+ import 'core-js/modules/es.map.js';
52
+ import 'core-js/modules/es.string.iterator.js';
53
+ import 'core-js/modules/web.dom-collections.iterator.js';
54
+ import 'core-js/modules/es.weak-map.js';
33
55
  import '../link/clickableLink.js';
34
56
  import '../_helpers/button__classes.js';
35
57
  import '../global/url.js';
58
+ import 'core-js/modules/es.string.match.js';
36
59
  import '../global/dom.js';
60
+ import 'core-js/modules/es.string.split.js';
61
+ import 'core-js/modules/es.set.js';
37
62
  import '../avatar/fallback-avatar.js';
63
+ import 'core-js/modules/es.number.constructor.js';
64
+ import 'core-js/modules/es.array.from.js';
65
+ import 'core-js/modules/es.regexp.to-string.js';
38
66
  import 'react-dom';
39
67
  import '../global/schedule-raf.js';
40
68
  import '../tab-trap/tab-trap.js';
41
69
  import '../popup/position.js';
70
+ import 'core-js/modules/es.array.includes.js';
71
+ import 'core-js/modules/es.string.includes.js';
72
+ import 'core-js/modules/es.array.sort.js';
42
73
  import '../popup/popup.consts.js';
43
74
  import '../popup/popup.target.js';
44
75
  import '../shortcuts/core.js';
76
+ import 'core-js/modules/es.array.splice.js';
77
+ import 'core-js/modules/es.array.find-index.js';
45
78
  import 'combokeys';
46
79
  import '../global/sniffer.js';
47
80
  import 'sniffr';
81
+ import 'core-js/modules/es.symbol.js';
82
+ import 'core-js/modules/es.symbol.description.js';
48
83
  import 'react-virtualized/dist/es/List';
49
84
  import 'react-virtualized/dist/es/AutoSizer';
50
85
  import 'react-virtualized/dist/es/WindowScroller';
@@ -53,15 +88,11 @@ import 'memoize-one';
53
88
  import '../global/create-stateful-context.js';
54
89
  import '../list/list__link.js';
55
90
  import '../link/link.js';
56
- import '../_helpers/link.js';
57
91
  import '../_helpers/list.js';
58
92
  import '../list/list__item.js';
59
93
  import '../checkbox/checkbox.js';
60
94
  import '@jetbrains/icons/checkmark-14px';
61
95
  import '@jetbrains/icons/remove-14px';
62
- import '../global/prop-types.js';
63
- import '../global/composeRefs.js';
64
- import '../_helpers/checkbox.js';
65
96
  import '../list/list__custom.js';
66
97
  import '../global/get-event-key.js';
67
98
  import '../list/list__title.js';
@@ -69,9 +100,9 @@ import '../list/list__separator.js';
69
100
  import '../list/list__hint.js';
70
101
  import '../list/consts.js';
71
102
  import '../global/react-render-adapter.js';
103
+ import '../i18n/i18n.js';
72
104
  import '@jetbrains/icons/search';
73
105
  import '../loader-inline/loader-inline.js';
74
- import '../_helpers/loader-inline.js';
75
106
  import '../shortcuts/shortcuts-hoc.js';
76
107
  import '../tags-list/tags-list.js';
77
108
  import '../tag/tag.js';
@@ -79,7 +110,7 @@ import '../caret/caret.js';
79
110
  import '../text/text.js';
80
111
  import '../_helpers/select__filter.js';
81
112
 
82
- var modules_9d0de074 = {"unit":"8px","button-shadow":"inset 0 0 0 1px","select":"select_rui_11de","value":"value_rui_11de ellipsis_rui_8bff font_rui_8bff","icons":"icons_rui_11de","light":"light_rui_11de","toolbar":"toolbar_rui_11de","button":"button_rui_11de","buttonSpaced":"buttonSpaced_rui_11de","inputMode":"inputMode_rui_11de","selectedIcon":"selectedIcon_rui_11de resetButton_rui_8bff","clearIcon":"clearIcon_rui_11de","sizeS":"sizeS_rui_11de","sizeM":"sizeM_rui_11de","sizeL":"sizeL_rui_11de","sizeFULL":"sizeFULL_rui_11de","sizeAUTO":"sizeAUTO_rui_11de","buttonMode":"buttonMode_rui_11de","open":"open_rui_11de","buttonContainer":"buttonContainer_rui_11de","buttonValue":"buttonValue_rui_11de ellipsis_rui_8bff","buttonValueOpen":"buttonValueOpen_rui_11de","heightS":"heightS_rui_11de","label":"label_rui_11de","disabled":"disabled_rui_11de","avatar":"avatar_rui_11de","popup":"popup_rui_11de","chevron":"chevron_rui_11de","chevronIcon":"chevronIcon_rui_11de"};
113
+ var modules_9d0de074 = {"unit":"i__const_unit_0","button-shadow":"i__const_button_shadow_1","select":"select_rui_11de","value":"value_rui_11de ellipsis_rui_8bff font_rui_8bff","icons":"icons_rui_11de","light":"light_rui_2ac4","toolbar":"toolbar_rui_11de","button":"button_rui_11de","buttonSpaced":"buttonSpaced_rui_11de","inputMode":"inputMode_rui_11de","selectedIcon":"selectedIcon_rui_11de resetButton_rui_8bff","clearIcon":"clearIcon_rui_11de","sizeS":"sizeS_rui_11de","sizeM":"sizeM_rui_11de","sizeL":"sizeL_rui_11de","sizeFULL":"sizeFULL_rui_11de","sizeAUTO":"sizeAUTO_rui_11de","buttonMode":"buttonMode_rui_11de","open":"open_rui_11de","buttonContainer":"buttonContainer_rui_11de","buttonValue":"buttonValue_rui_11de ellipsis_rui_8bff","buttonValueOpen":"buttonValueOpen_rui_11de","buttonValueEmpty":"buttonValueEmpty_rui_11de","heightS":"heightS_rui_11de","label":"label_rui_11de","disabled":"disabled_rui_11de","avatar":"avatar_rui_11de","popup":"popup_rui_11de","chevron":"chevron_rui_11de","chevronIcon":"chevronIcon_rui_11de"};
83
114
 
84
115
  /**
85
116
  * @name Select
@@ -96,12 +127,16 @@ var Type;
96
127
  Type["INLINE"] = "INLINE";
97
128
  Type["INPUT_WITHOUT_CONTROLS"] = "INPUT_WITHOUT_CONTROLS";
98
129
  })(Type || (Type = {}));
99
- const ICONS_OFFSET = 5;
100
- const ICON_WIDTH = 20;
101
- const getStyle = memoize(iconsLength => ({
102
- paddingRight: ICONS_OFFSET + iconsLength * ICON_WIDTH
103
- }));
104
- const isInputMode = type => type === Type.INPUT || type === Type.INPUT_WITHOUT_CONTROLS;
130
+ var ICONS_OFFSET = 5;
131
+ var ICON_WIDTH = 20;
132
+ var getStyle = memoize(function (iconsLength) {
133
+ return {
134
+ paddingRight: ICONS_OFFSET + iconsLength * ICON_WIDTH
135
+ };
136
+ });
137
+ var _isInputMode = function isInputMode(type) {
138
+ return type === Type.INPUT || type === Type.INPUT_WITHOUT_CONTROLS;
139
+ };
105
140
  function getLowerCaseLabel(item) {
106
141
  if (List.isItemType(List.ListProps.Type.SEPARATOR, item) || List.isItemType(List.ListProps.Type.HINT, item) || typeof item.label !== 'string') {
107
142
  return null;
@@ -109,66 +144,77 @@ function getLowerCaseLabel(item) {
109
144
  return item.label.toLowerCase();
110
145
  }
111
146
  function doesLabelMatch(itemToCheck, fn) {
112
- const lowerCaseLabel = getLowerCaseLabel(itemToCheck);
147
+ var lowerCaseLabel = getLowerCaseLabel(itemToCheck);
113
148
  if (lowerCaseLabel == null) {
114
149
  return true;
115
150
  }
116
151
  return fn(lowerCaseLabel);
117
152
  }
118
- function getFilterFn(filter) {
119
- if (typeof filter === 'object') {
153
+ function _getFilterFn(filter) {
154
+ if (_typeof(filter) === 'object') {
120
155
  if (filter.fn) {
121
156
  return filter.fn;
122
157
  }
123
158
  if (filter.fuzzy) {
124
- return (itemToCheck, checkString) => doesLabelMatch(itemToCheck, lowerCaseLabel => fuzzyHighlight(checkString, lowerCaseLabel).matched);
159
+ return function (itemToCheck, checkString) {
160
+ return doesLabelMatch(itemToCheck, function (lowerCaseLabel) {
161
+ return fuzzyHighlight(checkString, lowerCaseLabel).matched;
162
+ });
163
+ };
125
164
  }
126
165
  }
127
- return (itemToCheck, checkString) => doesLabelMatch(itemToCheck, lowerCaseLabel => lowerCaseLabel.indexOf(checkString) >= 0);
166
+ return function (itemToCheck, checkString) {
167
+ return doesLabelMatch(itemToCheck, function (lowerCaseLabel) {
168
+ return lowerCaseLabel.indexOf(checkString) >= 0;
169
+ });
170
+ };
128
171
  }
129
172
  function buildMultipleMap(selected) {
130
- return selected.reduce((acc, item) => {
173
+ return selected.reduce(function (acc, item) {
131
174
  acc[item.key] = true;
132
175
  return acc;
133
176
  }, {});
134
177
  }
135
- function getListItems(props, state, rawFilterString) {
136
- let data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : props.data;
137
- let filterString = rawFilterString.trim();
138
- if (isInputMode(props.type) && !props.allowAny && state.selected && !Array.isArray(state.selected) && filterString === state.selected.label) {
178
+ function _getListItems(props, state, rawFilterString) {
179
+ var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : props.data;
180
+ var filterString = rawFilterString.trim();
181
+ if (_isInputMode(props.type) && !props.allowAny && state.selected && !Array.isArray(state.selected) && filterString === state.selected.label) {
139
182
  filterString = ''; // ignore multiple if it is exactly the selected item
140
183
  }
141
184
 
142
- const lowerCaseString = filterString.toLowerCase();
143
- const filteredData = [];
144
- let exactMatch = false;
145
- const check = getFilterFn(props.filter);
146
- for (let i = 0; i < data.length; i++) {
147
- const item = {
148
- ...data[i]
149
- };
185
+ var lowerCaseString = filterString.toLowerCase();
186
+ var filteredData = [];
187
+ var exactMatch = false;
188
+ var check = _getFilterFn(props.filter);
189
+ var _loop = function _loop() {
190
+ var item = _objectSpread2({}, data[i]);
150
191
  if (check(item, lowerCaseString, data)) {
192
+ var _state$multipleMap2;
151
193
  exactMatch = item.label === filterString;
152
- if (props.multiple && !(typeof props.multiple === 'object' && props.multiple.removeSelectedItems)) {
153
- item.checkbox = !!state.multipleMap?.[item.key];
194
+ if (props.multiple && !(_typeof(props.multiple) === 'object' && props.multiple.removeSelectedItems)) {
195
+ var _state$multipleMap;
196
+ item.checkbox = !!((_state$multipleMap = state.multipleMap) !== null && _state$multipleMap !== void 0 && _state$multipleMap[item.key]);
154
197
  }
155
- if (props.multiple && typeof props.multiple === 'object' && props.multiple.limit && Array.isArray(state.selected)) {
156
- item.disabled = props.multiple.limit === state.selected.length && !state.selected.find(selectedItem => selectedItem.key === item.key);
198
+ if (props.multiple && _typeof(props.multiple) === 'object' && props.multiple.limit && Array.isArray(state.selected)) {
199
+ item.disabled = props.multiple.limit === state.selected.length && !state.selected.find(function (selectedItem) {
200
+ return selectedItem.key === item.key;
201
+ });
157
202
  }
158
203
  // Ignore item if it's multiple and is already selected
159
- if (!(props.multiple && typeof props.multiple === 'object' && props.multiple.removeSelectedItems && state.multipleMap?.[item.key])) {
204
+ if (!(props.multiple && _typeof(props.multiple) === 'object' && props.multiple.removeSelectedItems && (_state$multipleMap2 = state.multipleMap) !== null && _state$multipleMap2 !== void 0 && _state$multipleMap2[item.key])) {
160
205
  filteredData.push(item);
161
206
  }
162
207
  }
208
+ };
209
+ for (var i = 0; i < data.length; i++) {
210
+ _loop();
163
211
  }
164
- let addButton = null;
165
- const {
166
- add
167
- } = props;
212
+ var addButton = null;
213
+ var add = props.add;
168
214
  if (add && filterString && !exactMatch || add && add.alwaysVisible) {
169
215
  if (!(add.regexp && !add.regexp.test(filterString)) && !(add.minlength && filterString.length < +add.minlength) || add.alwaysVisible) {
170
216
  var _add$delayed;
171
- let label;
217
+ var label;
172
218
  if (add.label) {
173
219
  label = typeof add.label === 'function' ? add.label(filterString) : add.label;
174
220
  } else {
@@ -176,23 +222,23 @@ function getListItems(props, state, rawFilterString) {
176
222
  }
177
223
  addButton = {
178
224
  prefix: add.prefix,
179
- label,
225
+ label: label,
180
226
  delayed: (_add$delayed = add.delayed) !== null && _add$delayed !== void 0 ? _add$delayed : true
181
227
  };
182
228
  }
183
229
  }
184
230
  return {
185
- filteredData,
186
- addButton
231
+ filteredData: filteredData,
232
+ addButton: addButton
187
233
  };
188
234
  }
189
235
  function getSelectedIndex(selected, data) {
190
- const firstSelected = Array.isArray(selected) ? selected[0] : selected;
236
+ var firstSelected = Array.isArray(selected) ? selected[0] : selected;
191
237
  if (firstSelected == null) {
192
238
  return null;
193
239
  }
194
- for (let i = 0; i < data.length; i++) {
195
- const item = data[i];
240
+ for (var i = 0; i < data.length; i++) {
241
+ var item = data[i];
196
242
  if (item.key === undefined) {
197
243
  continue;
198
244
  }
@@ -202,26 +248,28 @@ function getSelectedIndex(selected, data) {
202
248
  }
203
249
  return null;
204
250
  }
205
- const getItemLabel = _ref => {
206
- let {
207
- selectedLabel,
208
- label
209
- } = _ref;
251
+ var getItemLabel = function getItemLabel(_ref) {
252
+ var selectedLabel = _ref.selectedLabel,
253
+ label = _ref.label;
210
254
  if (selectedLabel != null) {
211
255
  return selectedLabel;
212
256
  }
213
257
  return typeof label === 'string' ? label : '';
214
258
  };
215
- const getValueForFilter = (selected, type, filterValue) => selected && !isArray(selected) && isInputMode(type) ? getItemLabel(selected) : filterValue;
259
+ var _getValueForFilter = function getValueForFilter(selected, type, filterValue) {
260
+ return selected && !isArray(selected) && _isInputMode(type) ? getItemLabel(selected) : filterValue;
261
+ };
216
262
  function isSameSelected(prevSelected, selected) {
217
263
  if (!prevSelected || !selected || prevSelected.length !== selected.length) {
218
264
  return false;
219
265
  }
220
- const keysMap = selected.reduce((result, item) => {
266
+ var keysMap = selected.reduce(function (result, item) {
221
267
  result[item.key] = true;
222
268
  return result;
223
269
  }, {});
224
- return prevSelected.every(it => keysMap[it.key]);
270
+ return prevSelected.every(function (it) {
271
+ return keysMap[it.key];
272
+ });
225
273
  }
226
274
  /**
227
275
  * @name Select
@@ -231,255 +279,279 @@ function isSameSelected(prevSelected, selected) {
231
279
  /**
232
280
  * Displays a select.
233
281
  */
234
- class Select extends Component {
235
- constructor() {
282
+ var Select = /*#__PURE__*/function (_Component) {
283
+ _inherits(Select, _Component);
284
+ var _super = _createSuper(Select);
285
+ function Select() {
236
286
  var _this;
237
- super(...arguments);
238
- _this = this;
239
- _defineProperty(this, "state", {
287
+ _classCallCheck(this, Select);
288
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
289
+ args[_key] = arguments[_key];
290
+ }
291
+ _this = _super.call.apply(_super, [this].concat(args));
292
+ _defineProperty(_assertThisInitialized(_this), "state", {
240
293
  data: [],
241
294
  shownData: [],
242
- selected: this.props.multiple ? [] : null,
295
+ selected: _this.props.multiple ? [] : null,
243
296
  selectedIndex: null,
244
- filterValue: this.props.filter && typeof this.props.filter === 'object' && this.props.filter.value || '',
297
+ filterValue: _this.props.filter && _typeof(_this.props.filter) === 'object' && _this.props.filter.value || '',
245
298
  shortcutsEnabled: false,
246
299
  popupShortcuts: false,
247
- showPopup: false,
248
- prevData: this.props.data,
300
+ showPopup: _this.props.showPopup,
301
+ prevData: _this.props.data,
249
302
  prevSelected: null,
250
- prevMultiple: this.props.multiple,
303
+ prevMultiple: _this.props.multiple,
251
304
  multipleMap: {},
252
305
  addButton: null
253
306
  });
254
- _defineProperty(this, "id", getUID('select-'));
255
- _defineProperty(this, "shortcutsScope", this.id);
256
- _defineProperty(this, "listId", `${this.id}:list`);
257
- _defineProperty(this, "_focusHandler", e => {
258
- this.props.onFocus(e);
259
- this.setState({
307
+ _defineProperty(_assertThisInitialized(_this), "id", getUID('select-'));
308
+ _defineProperty(_assertThisInitialized(_this), "shortcutsScope", _this.id);
309
+ _defineProperty(_assertThisInitialized(_this), "listId", "".concat(_this.id, ":list"));
310
+ _defineProperty(_assertThisInitialized(_this), "_focusHandler", function (e) {
311
+ _this.props.onFocus(e);
312
+ _this.setState({
260
313
  shortcutsEnabled: true,
261
314
  focused: true
262
315
  });
263
316
  });
264
- _defineProperty(this, "_blurHandler", () => {
265
- this.props.onBlur();
266
- if (this._popup && this._popup.isVisible() && !this._popup.isClickingPopup) {
267
- window.setTimeout(() => {
268
- this.setState({
317
+ _defineProperty(_assertThisInitialized(_this), "_blurHandler", function () {
318
+ var _this$_popup;
319
+ _this.props.onBlur();
320
+ if (_this._popup && _this._popup.isVisible() && !_this._popup.isClickingPopup) {
321
+ window.setTimeout(function () {
322
+ _this.setState({
269
323
  showPopup: false
270
324
  });
271
325
  });
272
326
  }
273
- if (!this._popup?.isClickingPopup) {
274
- this.setState({
327
+ if (!((_this$_popup = _this._popup) !== null && _this$_popup !== void 0 && _this$_popup.isClickingPopup)) {
328
+ _this.setState({
275
329
  shortcutsEnabled: false,
276
330
  focused: false
277
331
  });
278
332
  }
279
333
  });
280
- _defineProperty(this, "node", void 0);
281
- _defineProperty(this, "nodeRef", el => {
282
- this.node = el;
334
+ _defineProperty(_assertThisInitialized(_this), "node", void 0);
335
+ _defineProperty(_assertThisInitialized(_this), "nodeRef", function (el) {
336
+ _this.node = el;
283
337
  });
284
- _defineProperty(this, "_popup", null);
285
- _defineProperty(this, "onEmptyPopupEnter", () => {
286
- if (this.state.addButton) {
287
- this.addHandler();
338
+ _defineProperty(_assertThisInitialized(_this), "_popup", null);
339
+ _defineProperty(_assertThisInitialized(_this), "onEmptyPopupEnter", function () {
340
+ if (_this.state.addButton) {
341
+ _this.addHandler();
288
342
  }
289
343
  });
290
- _defineProperty(this, "_onEnter", () => {
291
- if (this.state.addButton && this.state.shownData.length === 0) {
292
- this.addHandler();
344
+ _defineProperty(_assertThisInitialized(_this), "_onEnter", function () {
345
+ var _this$_popup2;
346
+ if (_this.state.addButton && _this.state.shownData.length === 0) {
347
+ _this.addHandler();
293
348
  }
294
- this.props.onDone();
295
- if (!this._popup?.isVisible() && this.props.allowAny) {
349
+ _this.props.onDone();
350
+ if (!((_this$_popup2 = _this._popup) !== null && _this$_popup2 !== void 0 && _this$_popup2.isVisible()) && _this.props.allowAny) {
296
351
  return true;
297
352
  }
298
353
  return undefined;
299
354
  });
300
- _defineProperty(this, "_onEsc", event => {
301
- if (!this._popup?.isVisible()) {
355
+ _defineProperty(_assertThisInitialized(_this), "_onEsc", function (event) {
356
+ var _this$_popup3;
357
+ if (!((_this$_popup3 = _this._popup) !== null && _this$_popup3 !== void 0 && _this$_popup3.isVisible())) {
302
358
  return true;
303
- } else if (this.props.multiple || !this.props.getInitial) {
359
+ } else if (_this.props.multiple || !_this.props.getInitial) {
304
360
  return false;
305
361
  }
306
- const selected = {
362
+ var selected = {
307
363
  key: Math.random(),
308
- label: this.props.getInitial()
364
+ label: _this.props.getInitial()
309
365
  };
310
- this.setState({
311
- selected,
312
- filterValue: this.getValueForFilter(selected)
313
- }, () => {
314
- this.props.onChange(selected, event);
315
- this.props.onReset();
366
+ _this.setState({
367
+ selected: selected,
368
+ filterValue: _this.getValueForFilter(selected)
369
+ }, function () {
370
+ _this.props.onChange(selected, event);
371
+ _this.props.onReset();
316
372
  });
317
373
  return undefined;
318
374
  });
319
- _defineProperty(this, "_inputShortcutHandler", () => {
320
- if (this.state.focused && this._popup && !this._popup.isVisible()) {
321
- this._clickHandler();
375
+ _defineProperty(_assertThisInitialized(_this), "_inputShortcutHandler", function () {
376
+ if (_this.state.focused && _this._popup && !_this._popup.isVisible()) {
377
+ _this._clickHandler();
322
378
  }
323
379
  });
324
- _defineProperty(this, "popupRef", el => {
325
- this._popup = el;
380
+ _defineProperty(_assertThisInitialized(_this), "popupRef", function (el) {
381
+ _this._popup = el;
326
382
  });
327
- _defineProperty(this, "addHandler", () => {
328
- const value = this.filterValue();
329
- this._hidePopup();
330
- this.props.onAdd(value);
383
+ _defineProperty(_assertThisInitialized(_this), "addHandler", function () {
384
+ var value = _this.filterValue();
385
+ _this._hidePopup();
386
+ _this.props.onAdd(value);
331
387
  });
332
- _defineProperty(this, "getLowerCaseLabel", getLowerCaseLabel);
333
- _defineProperty(this, "doesLabelMatch", doesLabelMatch);
334
- _defineProperty(this, "_clickHandler", () => {
335
- if (!this.props.disabled) {
336
- if (this.state.showPopup) {
337
- this._hidePopup();
388
+ _defineProperty(_assertThisInitialized(_this), "getLowerCaseLabel", getLowerCaseLabel);
389
+ _defineProperty(_assertThisInitialized(_this), "doesLabelMatch", doesLabelMatch);
390
+ _defineProperty(_assertThisInitialized(_this), "_clickHandler", function () {
391
+ if (!_this.props.disabled) {
392
+ if (_this.state.showPopup) {
393
+ _this._hidePopup();
338
394
  } else {
339
- this.props.onBeforeOpen();
340
- this._showPopup();
395
+ _this.props.onBeforeOpen();
396
+ _this._showPopup();
341
397
  }
342
398
  }
343
399
  });
344
- _defineProperty(this, "_openPopupIfClosed", () => {
345
- if (this.props.disabled || this.state.showPopup) {
400
+ _defineProperty(_assertThisInitialized(_this), "_openPopupIfClosed", function () {
401
+ if (_this.props.disabled || _this.state.showPopup) {
346
402
  return;
347
403
  }
348
- this.props.onBeforeOpen();
349
- this._showPopup();
404
+ _this.props.onBeforeOpen();
405
+ _this._showPopup();
350
406
  });
351
- _defineProperty(this, "_filterChangeHandler", e => {
352
- this._setFilter(e.currentTarget.value, e);
407
+ _defineProperty(_assertThisInitialized(_this), "_filterChangeHandler", function (e) {
408
+ _this._setFilter(e.currentTarget.value, e);
353
409
  });
354
- _defineProperty(this, "_setFilter", (value, event) => {
355
- if (this.isInputMode() && !this.state.focused) {
410
+ _defineProperty(_assertThisInitialized(_this), "_setFilter", function (value, event) {
411
+ var _this$_popup4;
412
+ if (_this.isInputMode() && !_this.state.focused) {
356
413
  return;
357
414
  }
358
- if (value === this.state.filterValue) {
415
+ if (value === _this.state.filterValue) {
359
416
  return;
360
417
  }
361
- const filterValue = value.replace(/^\s+/g, '');
362
- this.props.onFilter(filterValue);
363
- if (this.props.allowAny) {
364
- const fakeSelected = {
418
+ var filterValue = value.replace(/^\s+/g, '');
419
+ _this.props.onFilter(filterValue);
420
+ if (_this.props.allowAny) {
421
+ var fakeSelected = {
365
422
  key: Math.random(),
366
423
  label: filterValue
367
424
  };
368
- this.setState({
425
+ _this.setState({
369
426
  selected: filterValue === '' ? null : fakeSelected,
370
427
  selectedIndex: null
371
- }, () => {
372
- this.props.onSelect(fakeSelected, event);
373
- this.props.onChange(fakeSelected, event);
428
+ }, function () {
429
+ _this.props.onSelect(fakeSelected, event);
430
+ _this.props.onChange(fakeSelected, event);
374
431
  });
375
432
  }
376
- !this._popup?.isVisible() && this.props.onBeforeOpen();
377
- this.setState({
378
- filterValue
379
- }, () => {
380
- this._showPopup();
433
+ !((_this$_popup4 = _this._popup) !== null && _this$_popup4 !== void 0 && _this$_popup4.isVisible()) && _this.props.onBeforeOpen();
434
+ _this.setState({
435
+ filterValue: filterValue
436
+ }, function () {
437
+ _this._showPopup();
381
438
  });
382
439
  });
383
- _defineProperty(this, "_redrawPopup", () => {
384
- if (this.props.multiple) {
385
- setTimeout(() => {
386
- this.isInputMode() && this.clearFilter();
387
- this._showPopup();
440
+ _defineProperty(_assertThisInitialized(_this), "_redrawPopup", function () {
441
+ if (_this.props.multiple) {
442
+ setTimeout(function () {
443
+ _this.isInputMode() && _this.clearFilter();
444
+ _this._showPopup();
388
445
  }, 0);
389
446
  }
390
447
  });
391
- _defineProperty(this, "_listSelectHandler", function (selected, event) {
392
- let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
393
- const isItem = item => List.isItemType(List.ListProps.Type.ITEM, item);
394
- const isCustomItem = item => List.isItemType(List.ListProps.Type.CUSTOM, item);
395
- const isSelectItemEvent = event && (event.type === 'select' || event.type === 'keydown');
448
+ _defineProperty(_assertThisInitialized(_this), "_listSelectHandler", function (selected, event) {
449
+ var _this$props$tryKeepOp;
450
+ var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
451
+ var isItem = function isItem(item) {
452
+ return List.isItemType(List.ListProps.Type.ITEM, item);
453
+ };
454
+ var isCustomItem = function isCustomItem(item) {
455
+ return List.isItemType(List.ListProps.Type.CUSTOM, item);
456
+ };
457
+ var isSelectItemEvent = event && (event.type === 'select' || event.type === 'keydown');
396
458
  if (isSelectItemEvent) {
397
459
  event.preventDefault();
398
460
  }
399
461
  if (!isItem(selected) && !isCustomItem(selected) || selected.disabled || selected.isResetItem) {
400
462
  return;
401
463
  }
464
+ var tryKeepOpen = (_this$props$tryKeepOp = _this.props.tryKeepOpen) !== null && _this$props$tryKeepOp !== void 0 ? _this$props$tryKeepOp : opts.tryKeepOpen;
402
465
  if (!_this.props.multiple) {
403
- _this._hidePopup(isSelectItemEvent);
466
+ if (!tryKeepOpen) {
467
+ _this._hidePopup(isSelectItemEvent);
468
+ }
404
469
  _this.setState({
405
- selected,
470
+ selected: selected,
406
471
  selectedIndex: _this._getSelectedIndex(selected, _this.props.data)
407
- }, () => {
408
- const newFilterValue = _this.isInputMode() && !_this.props.hideSelected ? getItemLabel(selected) : '';
472
+ }, function () {
473
+ var newFilterValue = _this.isInputMode() && !_this.props.hideSelected ? getItemLabel(selected) : '';
409
474
  _this.filterValue(newFilterValue);
410
475
  _this.props.onFilter(newFilterValue);
411
476
  _this.props.onSelect(selected, event);
412
477
  _this.props.onChange(selected, event);
413
478
  });
414
479
  } else {
415
- const {
416
- tryKeepOpen
417
- } = opts;
418
480
  if (!tryKeepOpen) {
419
481
  _this._hidePopup(isSelectItemEvent);
420
482
  }
421
483
  if (selected.key == null) {
422
484
  throw new Error('Multiple selection requires each item to have the "key" property');
423
485
  }
424
- _this.setState(prevState => {
425
- const currentSelection = prevState.selected;
426
- let nextSelection;
486
+ _this.setState(function (prevState) {
487
+ var currentSelection = prevState.selected;
488
+ var nextSelection;
427
489
  if (!prevState.multipleMap[selected.key]) {
428
490
  nextSelection = currentSelection.concat(selected);
429
491
  _this.props.onSelect && _this.props.onSelect(selected, event);
430
492
  } else {
431
- nextSelection = currentSelection.filter(item => item.key !== selected.key);
493
+ nextSelection = currentSelection.filter(function (item) {
494
+ return item.key !== selected.key;
495
+ });
432
496
  _this.props.onDeselect && _this.props.onDeselect(selected);
433
497
  }
434
498
  _this.props.onChange(nextSelection, event);
435
- const nextState = {
499
+ var nextState = {
500
+ filterValue: '',
436
501
  selected: nextSelection,
437
502
  selectedIndex: _this._getSelectedIndex(selected, _this.props.data)
438
503
  };
439
- if (typeof _this.props.multiple === 'object' && _this.props.multiple.limit && nextSelection.length === _this.props.multiple.limit) {
440
- nextState.shownData = prevState.shownData.map(item => nextSelection.find(selectedItem => selectedItem.key === item.key) ? item : {
441
- ...item,
442
- disabled: true
504
+ if (_typeof(_this.props.multiple) === 'object' && _this.props.multiple.limit && nextSelection.length === _this.props.multiple.limit) {
505
+ nextState.shownData = prevState.shownData.map(function (item) {
506
+ return nextSelection.find(function (selectedItem) {
507
+ return selectedItem.key === item.key;
508
+ }) ? item : _objectSpread2(_objectSpread2({}, item), {}, {
509
+ disabled: true
510
+ });
443
511
  });
444
512
  }
445
513
  if (!prevState.multipleMap[selected.key]) {
446
- nextState.multipleMap = {
447
- ...prevState.multipleMap,
448
- [selected.key]: true
449
- };
514
+ nextState.multipleMap = _objectSpread2(_objectSpread2({}, prevState.multipleMap), {}, _defineProperty({}, selected.key, true));
450
515
  } else {
451
- const {
452
- [selected.key]: _,
453
- ...restMultipleMap
454
- } = prevState.multipleMap;
516
+ var _prevState$multipleMa = prevState.multipleMap,
517
+ _selected$key = selected.key;
518
+ _prevState$multipleMa[_selected$key];
519
+ var restMultipleMap = _objectWithoutProperties(_prevState$multipleMa, [_selected$key].map(_toPropertyKey));
455
520
  nextState.multipleMap = restMultipleMap;
456
521
  }
457
- return {
458
- ...prevState,
459
- ...nextState
460
- };
461
- }, () => {
522
+ return _objectSpread2(_objectSpread2({}, prevState), nextState);
523
+ }, function () {
462
524
  if (tryKeepOpen) {
463
525
  _this._redrawPopup();
464
526
  }
465
527
  });
466
528
  }
467
529
  });
468
- _defineProperty(this, "_listSelectAllHandler", function () {
469
- let isSelectAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
470
- const isItem = item => List.isItemType(List.ListProps.Type.ITEM, item);
471
- const isCustomItem = item => List.isItemType(List.ListProps.Type.CUSTOM, item);
472
- _this.setState(prevState => {
473
- const currentSelection = prevState.selected;
474
- let nextSelection;
530
+ _defineProperty(_assertThisInitialized(_this), "_listSelectAllHandler", function () {
531
+ var isSelectAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
532
+ var isItem = function isItem(item) {
533
+ return List.isItemType(List.ListProps.Type.ITEM, item);
534
+ };
535
+ var isCustomItem = function isCustomItem(item) {
536
+ return List.isItemType(List.ListProps.Type.CUSTOM, item);
537
+ };
538
+ _this.setState(function (prevState) {
539
+ var currentSelection = prevState.selected;
540
+ var nextSelection;
475
541
  if (isSelectAll) {
476
- nextSelection = _this.props.data.filter(item => (isItem(item) || isCustomItem(item)) && !item.disabled);
477
- nextSelection.filter(item => !_this.props.selected.find(selectedItem => item.key === selectedItem.key)).forEach(item => {
542
+ nextSelection = _this.props.data.filter(function (item) {
543
+ return (isItem(item) || isCustomItem(item)) && !item.disabled;
544
+ });
545
+ nextSelection.filter(function (item) {
546
+ return !_this.props.selected.find(function (selectedItem) {
547
+ return item.key === selectedItem.key;
548
+ });
549
+ }).forEach(function (item) {
478
550
  _this.props.onSelect && _this.props.onSelect(item);
479
551
  });
480
552
  } else {
481
553
  nextSelection = [];
482
- currentSelection.forEach(item => {
554
+ currentSelection.forEach(function (item) {
483
555
  _this.props.onDeselect && _this.props.onDeselect(item);
484
556
  });
485
557
  }
@@ -488,582 +560,630 @@ class Select extends Component {
488
560
  filterValue: '',
489
561
  selected: nextSelection,
490
562
  selectedIndex: isSelectAll ? _this._getSelectedIndex(nextSelection, _this.props.data) : null,
491
- shownData: prevState.shownData.map(item => ({
492
- ...item,
493
- checkbox: isSelectAll
494
- })),
495
- multipleMap: isSelectAll ? buildMultipleMap(_this.props.data.filter(item => !item.disabled)) : {}
563
+ shownData: prevState.shownData.map(function (item) {
564
+ return _objectSpread2(_objectSpread2({}, item), {}, {
565
+ checkbox: isSelectAll
566
+ });
567
+ }),
568
+ multipleMap: isSelectAll ? buildMultipleMap(_this.props.data.filter(function (item) {
569
+ return !item.disabled;
570
+ })) : {}
496
571
  };
497
572
  }, _this._redrawPopup);
498
573
  });
499
- _defineProperty(this, "_onCloseAttempt", (event, isEsc) => {
500
- if (this.isInputMode()) {
501
- if (!this.props.allowAny) {
502
- if (this.props.hideSelected || !this.state.selected || this.props.multiple) {
503
- this.clearFilter();
504
- } else if (this.state.selected && !Array.isArray(this.state.selected)) {
505
- this.filterValue(getItemLabel(this.state.selected));
574
+ _defineProperty(_assertThisInitialized(_this), "_onCloseAttempt", function (event, isEsc) {
575
+ if (_this.isInputMode()) {
576
+ if (!_this.props.allowAny) {
577
+ if (_this.props.hideSelected || !_this.state.selected || _this.props.multiple) {
578
+ _this.clearFilter();
579
+ } else if (_this.state.selected && !Array.isArray(_this.state.selected)) {
580
+ _this.filterValue(getItemLabel(_this.state.selected));
506
581
  }
507
582
  }
508
583
  }
509
- const isTagRemoved = this.props.tags && event && event.target && event.target instanceof Element && event.target.matches('[data-test="ring-tag-remove"]');
584
+ var isTagRemoved = _this.props.tags && event && event.target && event.target instanceof Element && event.target.matches('[data-test="ring-tag-remove"]');
510
585
  if (!isTagRemoved) {
511
- this._hidePopup(isEsc);
586
+ _this._hidePopup(isEsc);
512
587
  }
513
588
  });
514
- _defineProperty(this, "clearFilter", e => {
515
- this._setFilter('', e);
589
+ _defineProperty(_assertThisInitialized(_this), "clearFilter", function (e) {
590
+ _this._setFilter('', e);
516
591
  });
517
- _defineProperty(this, "clear", event => {
592
+ _defineProperty(_assertThisInitialized(_this), "clear", function (event) {
518
593
  if (event) {
519
594
  event.stopPropagation();
520
595
  }
521
- const empty = this.props.multiple ? [] : null;
522
- this.setState({
596
+ var empty = _this.props.multiple ? [] : null;
597
+ _this.setState({
523
598
  selected: empty,
524
599
  selectedIndex: null,
525
600
  filterValue: ''
526
- }, () => {
527
- if (this.props.onChange) {
528
- this.props.onChange(empty, event);
601
+ }, function () {
602
+ if (_this.props.onChange) {
603
+ _this.props.onChange(empty, event);
529
604
  }
530
605
  });
531
606
  return false;
532
607
  });
533
- _defineProperty(this, "filter", void 0);
534
- _defineProperty(this, "filterRef", el => {
535
- this.filter = el;
608
+ _defineProperty(_assertThisInitialized(_this), "filter", void 0);
609
+ _defineProperty(_assertThisInitialized(_this), "filterRef", function (el) {
610
+ _this.filter = el;
536
611
  });
612
+ return _this;
537
613
  }
538
- static getDerivedStateFromProps(nextProps, prevState) {
539
- const {
540
- multiple,
541
- data,
542
- type
543
- } = nextProps;
544
- const {
545
- prevSelected,
546
- prevData,
547
- prevMultiple,
548
- filterValue
549
- } = prevState;
550
- const nextState = {
551
- prevData: data,
552
- prevSelected: nextProps.selected,
553
- prevMultiple: multiple
554
- };
555
- if ('data' in nextProps && data !== prevData) {
556
- const {
557
- filteredData,
558
- addButton
559
- } = getListItems(nextProps, prevState, filterValue, data);
560
- Object.assign(nextState, {
561
- shownData: filteredData,
562
- addButton
563
- });
564
- if (prevState.selected) {
565
- Object.assign(nextState, {
566
- selectedIndex: getSelectedIndex(prevState.selected, data),
567
- prevFilterValue: getValueForFilter(prevState.selected, type, filterValue)
568
- });
614
+ _createClass(Select, [{
615
+ key: "componentDidUpdate",
616
+ value: function componentDidUpdate(prevProps, prevState) {
617
+ var _this$state = this.state,
618
+ showPopup = _this$state.showPopup,
619
+ selected = _this$state.selected;
620
+ var _this$props = this.props,
621
+ onClose = _this$props.onClose,
622
+ onOpen = _this$props.onOpen,
623
+ onChange = _this$props.onChange,
624
+ multiple = _this$props.multiple;
625
+ if (prevState.showPopup && !showPopup) {
626
+ onClose(selected);
627
+ } else if (!prevState.showPopup && showPopup) {
628
+ onOpen();
569
629
  }
570
- }
571
- if ('selected' in nextProps && nextProps.selected !== prevSelected) {
572
- const selected = nextProps.selected || (multiple ? [] : null);
573
- const selectedIndex = getSelectedIndex(selected, data || prevData);
574
- Object.assign(nextState, {
575
- selected,
576
- prevFilterValue: getValueForFilter(selected, type, filterValue)
577
- });
578
- if (!Array.isArray(prevSelected) || !Array.isArray(selected) || !isSameSelected(prevSelected, selected)) {
579
- Object.assign(nextState, {
580
- selectedIndex
581
- });
630
+ if (multiple !== prevProps.multiple && !deepEqual(multiple, prevProps.multiple)) {
631
+ onChange(selected);
582
632
  }
583
633
  }
584
- if (prevMultiple !== multiple && !deepEqual(prevMultiple, multiple)) {
585
- nextState.selected = multiple ? [] : null;
634
+ }, {
635
+ key: "getValueForFilter",
636
+ value: function getValueForFilter(selected) {
637
+ return _getValueForFilter(selected, this.props.type, this.state.filterValue);
586
638
  }
587
- if (multiple && !nextState.selected) {
588
- nextState.selected = prevState.selected;
639
+ }, {
640
+ key: "_getSelectedIndex",
641
+ value: function _getSelectedIndex(selected, data) {
642
+ return getSelectedIndex(selected, data);
589
643
  }
590
- const {
591
- selected
592
- } = {
593
- ...prevState,
594
- ...nextState
595
- };
596
- if (selected && Array.isArray(selected)) {
597
- nextState.multipleMap = buildMultipleMap(selected);
598
- const {
599
- filteredData,
600
- addButton
601
- } = getListItems(nextProps, nextState, filterValue, data);
602
- Object.assign(nextState, {
603
- shownData: filteredData,
604
- addButton
605
- });
644
+ }, {
645
+ key: "_getResetOption",
646
+ value: function _getResetOption() {
647
+ var _this2 = this;
648
+ var isOptionsSelected = Array.isArray(this.state.selected) && this.state.selected.length;
649
+ var reset = this.props.tags && _typeof(this.props.tags) === 'object' ? this.props.tags.reset : null;
650
+ if (!isOptionsSelected || !reset) {
651
+ return null;
652
+ }
653
+ var resetHandler = function resetHandler(item, event) {
654
+ _this2.clear(event);
655
+ _this2.clearFilter();
656
+ _this2.props.onFilter('');
657
+ _this2.setState(function (prevState) {
658
+ return {
659
+ shownData: prevState.shownData.slice(reset.separator ? 2 : 1),
660
+ multipleMap: {}
661
+ };
662
+ });
663
+ _this2._redrawPopup();
664
+ };
665
+ return {
666
+ isResetItem: true,
667
+ separator: reset.separator,
668
+ key: reset.label,
669
+ rgItemType: List.ListProps.Type.CUSTOM,
670
+ template: /*#__PURE__*/React.createElement(Button, {
671
+ text: true,
672
+ className: modules_9d0de074.button,
673
+ "data-test": "ring-select-reset-tags-button",
674
+ height: ControlsHeight.S
675
+ }, reset.label),
676
+ glyph: reset.glyph,
677
+ onClick: resetHandler
678
+ };
606
679
  }
607
- return nextState;
608
- }
609
- componentDidUpdate(prevProps, prevState) {
610
- const {
611
- showPopup,
612
- selected
613
- } = this.state;
614
- const {
615
- onClose,
616
- onOpen,
617
- onChange,
618
- multiple
619
- } = this.props;
620
- if (prevState.showPopup && !showPopup) {
621
- onClose(selected);
622
- } else if (!prevState.showPopup && showPopup) {
623
- onOpen();
680
+ }, {
681
+ key: "_prependResetOption",
682
+ value: function _prependResetOption(shownData) {
683
+ var resetOption = this._getResetOption();
684
+ if (resetOption) {
685
+ var resetItems = [resetOption];
686
+ if (resetOption.separator) {
687
+ resetItems.push({
688
+ rgItemType: List.ListProps.Type.SEPARATOR
689
+ });
690
+ }
691
+ return resetItems.concat(shownData);
692
+ }
693
+ return shownData;
624
694
  }
625
- if (multiple !== prevProps.multiple && !deepEqual(multiple, prevProps.multiple)) {
626
- onChange(selected);
695
+ }, {
696
+ key: "_renderPopup",
697
+ value: function _renderPopup() {
698
+ var _this3 = this;
699
+ var anchorElement = this.props.targetElement || this.node;
700
+ var _this$state2 = this.state,
701
+ showPopup = _this$state2.showPopup,
702
+ shownData = _this$state2.shownData;
703
+ var _shownData = this._prependResetOption(shownData);
704
+ return /*#__PURE__*/React.createElement(I18nContext.Consumer, null, function (_ref2) {
705
+ var translate = _ref2.translate;
706
+ var message;
707
+ if (_this3.props.loading) {
708
+ var _this3$props$loadingM;
709
+ message = (_this3$props$loadingM = _this3.props.loadingMessage) !== null && _this3$props$loadingM !== void 0 ? _this3$props$loadingM : translate('loading');
710
+ } else if (!shownData.length) {
711
+ var _this3$props$notFound;
712
+ message = (_this3$props$notFound = _this3.props.notFoundMessage) !== null && _this3$props$notFound !== void 0 ? _this3$props$notFound : translate('noOptionsFound');
713
+ }
714
+ return /*#__PURE__*/React.createElement(SelectPopup, {
715
+ data: _shownData,
716
+ message: message,
717
+ toolbar: showPopup && _this3.getToolbar(),
718
+ topbar: _this3.getTopbar(),
719
+ loading: _this3.props.loading,
720
+ activeIndex: _this3.state.selectedIndex,
721
+ hidden: !showPopup,
722
+ ref: _this3.popupRef,
723
+ maxHeight: _this3.props.maxHeight,
724
+ minWidth: _this3.props.minWidth,
725
+ directions: _this3.props.directions,
726
+ className: _this3.props.popupClassName,
727
+ style: _this3.props.popupStyle,
728
+ top: _this3.props.top,
729
+ left: _this3.props.left,
730
+ filter: _this3.isInputMode() ? false : _this3.props.filter // disable popup filter in INPUT mode
731
+ ,
732
+ filterIcon: _this3.props.filterIcon,
733
+ filterRef: _this3.props.filterRef,
734
+ multiple: _this3.props.multiple,
735
+ filterValue: _this3.state.filterValue,
736
+ anchorElement: anchorElement,
737
+ onCloseAttempt: _this3._onCloseAttempt,
738
+ onOutsideClick: _this3.props.onOutsideClick,
739
+ onSelect: _this3._listSelectHandler,
740
+ onSelectAll: _this3._listSelectAllHandler,
741
+ onFilter: _this3._filterChangeHandler,
742
+ onClear: _this3.clearFilter,
743
+ onLoadMore: _this3.props.onLoadMore,
744
+ isInputMode: _this3.isInputMode(),
745
+ selected: _this3.state.selected,
746
+ tags: _this3.props.tags,
747
+ compact: _this3.props.compact,
748
+ renderOptimization: _this3.props.renderOptimization,
749
+ ringPopupTarget: _this3.props.ringPopupTarget,
750
+ disableMoveOverflow: _this3.props.disableMoveOverflow,
751
+ disableScrollToActive: _this3.props.disableScrollToActive,
752
+ dir: _this3.props.dir,
753
+ onEmptyPopupEnter: _this3.onEmptyPopupEnter,
754
+ listId: _this3.listId
755
+ });
756
+ });
627
757
  }
628
- }
629
- getValueForFilter(selected) {
630
- return getValueForFilter(selected, this.props.type, this.state.filterValue);
631
- }
632
- _getSelectedIndex(selected, data) {
633
- return getSelectedIndex(selected, data);
634
- }
635
- _getResetOption() {
636
- const isOptionsSelected = Array.isArray(this.state.selected) && this.state.selected.length;
637
- const reset = this.props.tags && typeof this.props.tags === 'object' ? this.props.tags.reset : null;
638
- if (!isOptionsSelected || !reset) {
639
- return null;
758
+ }, {
759
+ key: "_showPopup",
760
+ value: function _showPopup() {
761
+ if (!this.node) {
762
+ return;
763
+ }
764
+ var shownData = this.getListItems(this.filterValue());
765
+ this.setState({
766
+ showPopup: true,
767
+ shownData: shownData
768
+ });
640
769
  }
641
- const resetHandler = (item, event) => {
642
- this.clear(event);
643
- this.clearFilter();
644
- this.props.onFilter('');
645
- this.setState(prevState => ({
646
- shownData: prevState.shownData.slice(reset.separator ? 2 : 1),
647
- multipleMap: {}
648
- }));
649
- this._redrawPopup();
650
- };
651
- return {
652
- isResetItem: true,
653
- separator: reset.separator,
654
- key: reset.label,
655
- rgItemType: List.ListProps.Type.CUSTOM,
656
- template: /*#__PURE__*/React.createElement(Button, {
657
- text: true,
658
- className: modules_9d0de074.button,
659
- "data-test": "ring-select-reset-tags-button",
660
- height: ControlsHeight.S
661
- }, reset.label),
662
- glyph: reset.glyph,
663
- onClick: resetHandler
664
- };
665
- }
666
- _prependResetOption(shownData) {
667
- const resetOption = this._getResetOption();
668
- if (resetOption) {
669
- const resetItems = [resetOption];
670
- if (resetOption.separator) {
671
- resetItems.push({
672
- rgItemType: List.ListProps.Type.SEPARATOR
770
+ }, {
771
+ key: "_hidePopup",
772
+ value: function _hidePopup(tryFocusAnchor) {
773
+ var _this4 = this;
774
+ if (this.node && this.state.showPopup) {
775
+ this.setState(function (prevState) {
776
+ return {
777
+ showPopup: false,
778
+ filterValue: _this4.props.allowAny ? prevState.filterValue : ''
779
+ };
673
780
  });
781
+ if (tryFocusAnchor) {
782
+ var focusableSelectExists = this.node && this.node.querySelector('[data-test~=ring-select__focus]');
783
+ var restoreFocusNode = this.props.targetElement || focusableSelectExists;
784
+ if (restoreFocusNode) {
785
+ restoreFocusNode.focus();
786
+ }
787
+ }
674
788
  }
675
- return resetItems.concat(shownData);
676
789
  }
677
- return shownData;
678
- }
679
- _renderPopup() {
680
- const anchorElement = this.props.targetElement || this.node;
681
- const {
682
- showPopup,
683
- shownData
684
- } = this.state;
685
- const _shownData = this._prependResetOption(shownData);
686
- let message;
687
- if (this.props.loading) {
688
- message = this.props.loadingMessage;
689
- } else if (!shownData.length) {
690
- message = this.props.notFoundMessage;
691
- }
692
- return /*#__PURE__*/React.createElement(SelectPopup, {
693
- data: _shownData,
694
- message: message,
695
- toolbar: showPopup && this.getToolbar(),
696
- loading: this.props.loading,
697
- activeIndex: this.state.selectedIndex,
698
- hidden: !showPopup,
699
- ref: this.popupRef,
700
- maxHeight: this.props.maxHeight,
701
- minWidth: this.props.minWidth,
702
- directions: this.props.directions,
703
- className: this.props.popupClassName,
704
- style: this.props.popupStyle,
705
- top: this.props.top,
706
- left: this.props.left,
707
- filter: this.isInputMode() ? false : this.props.filter // disable popup filter in INPUT mode
708
- ,
709
- multiple: this.props.multiple,
710
- filterValue: this.state.filterValue,
711
- anchorElement: anchorElement,
712
- onCloseAttempt: this._onCloseAttempt,
713
- onSelect: this._listSelectHandler,
714
- onSelectAll: this._listSelectAllHandler,
715
- onFilter: this._filterChangeHandler,
716
- onClear: this.clearFilter,
717
- onLoadMore: this.props.onLoadMore,
718
- isInputMode: this.isInputMode(),
719
- selected: this.state.selected,
720
- tags: this.props.tags,
721
- compact: this.props.compact,
722
- renderOptimization: this.props.renderOptimization,
723
- ringPopupTarget: this.props.ringPopupTarget,
724
- disableMoveOverflow: this.props.disableMoveOverflow,
725
- disableScrollToActive: this.props.disableScrollToActive,
726
- dir: this.props.dir,
727
- onEmptyPopupEnter: this.onEmptyPopupEnter,
728
- listId: this.listId
729
- });
730
- }
731
- _showPopup() {
732
- if (!this.node) {
733
- return;
734
- }
735
- const shownData = this.getListItems(this.filterValue());
736
- this.setState({
737
- showPopup: !!shownData.length || !this.props.allowAny,
738
- shownData
739
- });
740
- }
741
- _hidePopup(tryFocusAnchor) {
742
- if (this.node && this.state.showPopup) {
743
- this.setState(prevState => ({
744
- showPopup: false,
745
- filterValue: this.props.allowAny ? prevState.filterValue : ''
746
- }));
747
- if (tryFocusAnchor) {
748
- const focusableSelectExists = this.node && this.node.querySelector('[data-test~=ring-select__focus]');
749
- const restoreFocusNode = this.props.targetElement || focusableSelectExists;
750
- if (restoreFocusNode) {
751
- restoreFocusNode.focus();
752
- }
790
+ }, {
791
+ key: "getToolbar",
792
+ value: function getToolbar() {
793
+ var _this$props2 = this.props,
794
+ hint = _this$props2.hint,
795
+ renderBottomToolbar = _this$props2.renderBottomToolbar;
796
+ var _ref3 = this.state.addButton || {},
797
+ prefix = _ref3.prefix,
798
+ label = _ref3.label,
799
+ delayed = _ref3.delayed;
800
+ var isToolbarHasElements = this.state.addButton || hint || renderBottomToolbar;
801
+ if (!isToolbarHasElements) {
802
+ return null;
753
803
  }
804
+ return /*#__PURE__*/React.createElement("div", {
805
+ className: classNames(_defineProperty({}, modules_9d0de074.toolbar, Boolean(this.state.addButton || renderBottomToolbar))),
806
+ "data-test": "ring-select-toolbar"
807
+ }, renderBottomToolbar && renderBottomToolbar(), this.state.addButton && /*#__PURE__*/React.createElement(Button, {
808
+ text: true,
809
+ delayed: delayed,
810
+ className: classNames(modules_9d0de074.button, modules_9d0de074.buttonSpaced),
811
+ onClick: this.addHandler,
812
+ "data-test": "ring-select-toolbar-button"
813
+ }, prefix ? "".concat(prefix, " ").concat(label) : label), hint && /*#__PURE__*/React.createElement(List.ListHint, {
814
+ label: hint,
815
+ "data-test": "ring-select-toolbar-hint"
816
+ }));
754
817
  }
755
- }
756
- getToolbar() {
757
- const {
758
- hint,
759
- renderBottomToolbar
760
- } = this.props;
761
- const {
762
- prefix,
763
- label,
764
- delayed
765
- } = this.state.addButton || {};
766
- const isToolbarHasElements = this.state.addButton || hint || renderBottomToolbar;
767
- if (!isToolbarHasElements) {
768
- return null;
818
+ }, {
819
+ key: "getTopbar",
820
+ value: function getTopbar() {
821
+ var _this$props$renderTop, _this$props3;
822
+ return (_this$props$renderTop = (_this$props3 = this.props).renderTopToolbar) === null || _this$props$renderTop === void 0 ? void 0 : _this$props$renderTop.call(_this$props3);
769
823
  }
770
- return /*#__PURE__*/React.createElement("div", {
771
- className: classNames({
772
- [modules_9d0de074.toolbar]: Boolean(this.state.addButton || renderBottomToolbar)
773
- }),
774
- "data-test": "ring-select-toolbar"
775
- }, renderBottomToolbar && renderBottomToolbar(), this.state.addButton && /*#__PURE__*/React.createElement(Button, {
776
- text: true,
777
- delayed: delayed,
778
- className: classNames(modules_9d0de074.button, modules_9d0de074.buttonSpaced),
779
- onClick: this.addHandler,
780
- "data-test": "ring-select-toolbar-button"
781
- }, prefix ? `${prefix} ${label}` : label), hint && /*#__PURE__*/React.createElement(List.ListHint, {
782
- label: hint,
783
- "data-test": "ring-select-toolbar-hint"
784
- }));
785
- }
786
- getFilterFn() {
787
- return getFilterFn(this.props.filter);
788
- }
789
- getListItems(rawFilterString, data) {
790
- const {
791
- filteredData,
792
- addButton
793
- } = getListItems(this.props, this.state, rawFilterString, data);
794
- this.setState({
795
- addButton
796
- });
797
- return filteredData;
798
- }
799
- filterValue(setValue) {
800
- if (typeof setValue === 'string' || typeof setValue === 'number') {
801
- this.setState({
802
- filterValue: setValue
803
- });
804
- return undefined;
805
- } else {
806
- return this.state.filterValue;
824
+ }, {
825
+ key: "getFilterFn",
826
+ value: function getFilterFn() {
827
+ return _getFilterFn(this.props.filter);
807
828
  }
808
- }
809
- isInputMode() {
810
- return isInputMode(this.props.type);
811
- }
812
- _rebuildMultipleMap(selected) {
813
- if (Array.isArray(selected)) {
829
+ }, {
830
+ key: "getListItems",
831
+ value: function getListItems(rawFilterString, data) {
832
+ var _getListItems2 = _getListItems(this.props, this.state, rawFilterString, data),
833
+ filteredData = _getListItems2.filteredData,
834
+ addButton = _getListItems2.addButton;
814
835
  this.setState({
815
- multipleMap: buildMultipleMap(selected)
836
+ addButton: addButton
816
837
  });
838
+ return filteredData;
817
839
  }
818
- }
819
- _selectionIsEmpty() {
820
- return Array.isArray(this.state.selected) && !this.state.selected.length || !this.state.selected;
821
- }
822
- _getLabel() {
823
- var _ref2, _this$props$label;
824
- return (_ref2 = (_this$props$label = this.props.label) !== null && _this$props$label !== void 0 ? _this$props$label : this.props.selectedLabel) !== null && _ref2 !== void 0 ? _ref2 : 'Select an option';
825
- }
826
- _getPlaceholder() {
827
- if (this._selectionIsEmpty()) {
828
- var _this$props$label2;
829
- return (_this$props$label2 = this.props.label) !== null && _this$props$label2 !== void 0 ? _this$props$label2 : 'Select an option';
840
+ }, {
841
+ key: "filterValue",
842
+ value: function filterValue(setValue) {
843
+ if (typeof setValue === 'string' || typeof setValue === 'number') {
844
+ this.setState({
845
+ filterValue: setValue
846
+ });
847
+ return undefined;
848
+ } else {
849
+ return this.state.filterValue;
850
+ }
830
851
  }
831
- return this._getSelectedString();
832
- }
833
- _getSelectedString() {
834
- if (Array.isArray(this.state.selected)) {
835
- const labels = [];
836
- for (let i = 0; i < this.state.selected.length; i++) {
837
- labels.push(getItemLabel(this.state.selected[i]));
852
+ }, {
853
+ key: "isInputMode",
854
+ value: function isInputMode() {
855
+ return _isInputMode(this.props.type);
856
+ }
857
+ }, {
858
+ key: "_rebuildMultipleMap",
859
+ value: function _rebuildMultipleMap(selected) {
860
+ if (Array.isArray(selected)) {
861
+ this.setState({
862
+ multipleMap: buildMultipleMap(selected)
863
+ });
838
864
  }
839
- return labels.filter(Boolean).join(', ');
840
- } else {
841
- return this.state.selected != null ? getItemLabel(this.state.selected) : null;
842
865
  }
843
- }
844
- _getIcons() {
845
- const {
846
- selected
847
- } = this.state;
848
- const {
849
- disabled,
850
- clear,
851
- hideArrow
852
- } = this.props;
853
- const icons = [];
854
- const height = this.props.height || this.context;
855
- if (!Array.isArray(selected) && selected?.icon) {
856
- icons.push( /*#__PURE__*/React.createElement("button", {
857
- title: "Toggle options popup",
858
- type: "button",
859
- className: modules_9d0de074.selectedIcon,
860
- key: "selected",
861
- disabled: this.props.disabled,
862
- onClick: this._clickHandler,
863
- style: {
864
- backgroundImage: `url(${selected.icon})`
865
- }
866
- }));
866
+ }, {
867
+ key: "_selectionIsEmpty",
868
+ value: function _selectionIsEmpty() {
869
+ return Array.isArray(this.state.selected) && !this.state.selected.length || !this.state.selected;
867
870
  }
868
- if (clear && !disabled && !this._selectionIsEmpty()) {
869
- icons.push( /*#__PURE__*/React.createElement(Button, {
870
- title: "Clear selection",
871
- "data-test": "ring-clear-select",
872
- className: modules_9d0de074.clearIcon,
873
- key: "close",
874
- disabled: this.props.disabled,
875
- onClick: this.clear,
876
- height: height,
877
- icon: closeIcon
878
- }));
871
+ }, {
872
+ key: "_getLabel",
873
+ value: function _getLabel() {
874
+ var _ref4, _this$props$label;
875
+ return (_ref4 = (_this$props$label = this.props.label) !== null && _this$props$label !== void 0 ? _this$props$label : this.props.selectedLabel) !== null && _ref4 !== void 0 ? _ref4 : 'Select an option';
879
876
  }
880
- if (!hideArrow) {
881
- icons.push( /*#__PURE__*/React.createElement(Button, {
882
- title: "Toggle options popup",
883
- className: modules_9d0de074.chevron,
884
- iconClassName: modules_9d0de074.chevronIcon,
885
- icon: chevronDownIcon,
886
- key: "hide",
887
- disabled: this.props.disabled,
888
- height: height,
889
- onClick: this._clickHandler
890
- }));
877
+ }, {
878
+ key: "_getPlaceholder",
879
+ value: function _getPlaceholder() {
880
+ if (this._selectionIsEmpty()) {
881
+ var _this$props$label2;
882
+ return (_this$props$label2 = this.props.label) !== null && _this$props$label2 !== void 0 ? _this$props$label2 : 'Select an option';
883
+ }
884
+ return this._getSelectedString();
891
885
  }
892
- return icons;
893
- }
894
- _getAvatar() {
895
- return !Array.isArray(this.state.selected) && (this.state.selected?.avatar || this.state.selected?.showGeneratedAvatar) && /*#__PURE__*/React.createElement(Avatar, {
896
- className: modules_9d0de074.avatar,
897
- url: this.state.selected.avatar,
898
- username: this.state.selected.username,
899
- size: Size$1.Size20
900
- });
901
- }
902
- getShortcutsMap() {
903
- return {
904
- enter: this._onEnter,
905
- esc: this._onEsc,
906
- up: this._inputShortcutHandler,
907
- down: this._inputShortcutHandler,
908
- right: noop,
909
- left: noop,
910
- 'shift+up': noop,
911
- 'shift+down': noop,
912
- space: noop
913
- };
914
- }
915
- renderSelect(activeItemId) {
916
- var _this$props$label3, _this$props$label4, _this$props$buttonCla;
917
- const dataTest = this.props['data-test'];
918
- const {
919
- selectedLabel
920
- } = this.props;
921
- const {
922
- shortcutsEnabled
923
- } = this.state;
924
- const classes = classNames(modules_9d0de074.select, 'ring-js-shortcuts', this.props.className, modules_9d0de074[`height${this.props.height || this.context}`], {
925
- [modules_9d0de074[`size${this.props.size}`]]: this.props.type !== Type.INLINE,
926
- [modules_9d0de074.disabled]: this.props.disabled
927
- });
928
- const icons = this._getIcons();
929
- const style = getStyle(icons.length);
930
- const iconsNode = /*#__PURE__*/React.createElement("div", {
931
- className: modules_9d0de074.icons
932
- }, icons);
933
- const ariaProps = this.state.showPopup ? {
934
- 'aria-owns': this.listId,
935
- 'aria-activedescendant': activeItemId,
936
- 'aria-label': (_this$props$label3 = this.props.label) !== null && _this$props$label3 !== void 0 ? _this$props$label3 : undefined
937
- } : {
938
- 'aria-label': (_this$props$label4 = this.props.label) !== null && _this$props$label4 !== void 0 ? _this$props$label4 : undefined
939
- };
940
- switch (this.props.type) {
941
- case Type.INPUT_WITHOUT_CONTROLS:
942
- case Type.INPUT:
943
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
944
- ref: this.nodeRef,
945
- className: classNames(classes, modules_9d0de074.inputMode),
946
- "data-test": joinDataTestAttributes('ring-select', dataTest)
947
- }, shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
948
- map: this.getShortcutsMap(),
949
- scope: this.shortcutsScope
950
- }), /*#__PURE__*/React.createElement(Input, _extends({}, ariaProps, {
951
- height: this.props.height,
952
- autoComplete: "off",
953
- id: this.props.id,
954
- onClick: this._clickHandler,
955
- inputRef: this.filterRef,
956
- disabled: this.props.disabled,
957
- value: this.state.filterValue,
958
- borderless: this.props.type === Type.INPUT_WITHOUT_CONTROLS,
959
- style: style,
960
- size: Size.FULL,
961
- onChange: this._filterChangeHandler,
962
- onFocus: this._focusHandler,
963
- onBlur: this._blurHandler
964
- // Input with error style without description
965
- ,
966
- error: this.props.error != null ? '' : null,
967
- label: this.props.type === Type.INPUT ? this._getLabel() : null,
968
- placeholder: this.props.inputPlaceholder,
969
- onKeyDown: this.props.onKeyDown,
970
- "data-test": "ring-select__focus",
971
- enableShortcuts: shortcutsEnabled ? Object.keys({
972
- ...this.getShortcutsMap(),
973
- ...this._popup?.list?.shortcutsMap
974
- }) : undefined,
975
- afterInput: this.props.type === Type.INPUT && iconsNode
976
- })), this._renderPopup()), this.props.error && /*#__PURE__*/React.createElement("div", {
977
- className: classNames(modules_88cfaf40.errorText, modules_88cfaf40[`size${this.props.size}`])
978
- }, this.props.error));
979
- case Type.BUTTON:
980
- return /*#__PURE__*/React.createElement("div", {
981
- ref: this.nodeRef,
982
- className: classNames(classes, modules_9d0de074.buttonMode),
983
- "data-test": joinDataTestAttributes('ring-select', dataTest)
984
- }, selectedLabel && /*#__PURE__*/React.createElement(InputLabel, {
985
- label: selectedLabel,
886
+ }, {
887
+ key: "_getSelectedString",
888
+ value: function _getSelectedString() {
889
+ if (Array.isArray(this.state.selected)) {
890
+ var labels = [];
891
+ for (var i = 0; i < this.state.selected.length; i++) {
892
+ labels.push(getItemLabel(this.state.selected[i]));
893
+ }
894
+ return labels.filter(Boolean).join(', ');
895
+ } else {
896
+ return this.state.selected != null ? getItemLabel(this.state.selected) : null;
897
+ }
898
+ }
899
+ }, {
900
+ key: "_getIcons",
901
+ value: function _getIcons() {
902
+ var selected = this.state.selected;
903
+ var _this$props4 = this.props,
904
+ disabled = _this$props4.disabled,
905
+ clear = _this$props4.clear,
906
+ hideArrow = _this$props4.hideArrow;
907
+ var icons = [];
908
+ var height = this.props.height || this.context;
909
+ if (!Array.isArray(selected) && selected !== null && selected !== void 0 && selected.icon) {
910
+ icons.push( /*#__PURE__*/React.createElement("button", {
911
+ title: "Toggle options popup",
912
+ type: "button",
913
+ className: modules_9d0de074.selectedIcon,
914
+ key: "selected",
986
915
  disabled: this.props.disabled,
987
- htmlFor: this.props.id
988
- }), shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
989
- map: this.getShortcutsMap(),
990
- scope: this.shortcutsScope
991
- }), /*#__PURE__*/React.createElement("div", {
992
- className: modules_9d0de074.buttonContainer
993
- }, /*#__PURE__*/React.createElement(Button, _extends({}, ariaProps, {
994
- height: this.props.height,
995
- id: this.props.id,
996
916
  onClick: this._clickHandler,
997
- className: classNames(this.props.buttonClassName, modules_9d0de074.buttonValue, {
998
- [modules_9d0de074.buttonValueOpen]: this.state.showPopup
999
- }),
917
+ style: {
918
+ backgroundImage: "url(".concat(selected.icon, ")")
919
+ }
920
+ }));
921
+ }
922
+ if (clear && !disabled && !this._selectionIsEmpty()) {
923
+ icons.push( /*#__PURE__*/React.createElement(Button, {
924
+ title: "Clear selection",
925
+ "data-test": "ring-clear-select",
926
+ className: modules_9d0de074.clearIcon,
927
+ key: "close",
1000
928
  disabled: this.props.disabled,
1001
- style: style,
1002
- "data-test": "ring-select__button ring-select__focus"
1003
- }), this._getAvatar(), this._getPlaceholder()), iconsNode), this._renderPopup());
1004
- case Type.INLINE:
1005
- return /*#__PURE__*/React.createElement("div", {
1006
- className: classes,
1007
- ref: this.nodeRef,
1008
- "data-test": joinDataTestAttributes('ring-select', dataTest)
1009
- }, shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
1010
- map: this.getShortcutsMap(),
1011
- scope: this.shortcutsScope
1012
- }), /*#__PURE__*/React.createElement(Anchor, _extends({}, ariaProps, {
1013
- className: (_this$props$buttonCla = this.props.buttonClassName) !== null && _this$props$buttonCla !== void 0 ? _this$props$buttonCla : undefined,
1014
- id: this.props.id,
1015
- onClick: this._clickHandler,
1016
- "data-test": "ring-select__focus",
929
+ onClick: this.clear,
930
+ height: height,
931
+ icon: closeIcon
932
+ }));
933
+ }
934
+ if (!hideArrow) {
935
+ icons.push( /*#__PURE__*/React.createElement(Button, {
936
+ title: "Toggle options popup",
937
+ className: modules_9d0de074.chevron,
938
+ iconClassName: modules_9d0de074.chevronIcon,
939
+ icon: chevronDownIcon,
940
+ key: "hide",
1017
941
  disabled: this.props.disabled,
1018
- active: this.state.showPopup
1019
- }), this._getPlaceholder()), this._renderPopup());
1020
- default:
1021
- if (this.props.customAnchor) {
1022
- return /*#__PURE__*/React.createElement(Fragment, null, shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
942
+ height: height,
943
+ onClick: this._clickHandler
944
+ }));
945
+ }
946
+ return icons;
947
+ }
948
+ }, {
949
+ key: "_getAvatar",
950
+ value: function _getAvatar() {
951
+ var _this$state$selected, _this$state$selected2;
952
+ return !Array.isArray(this.state.selected) && (((_this$state$selected = this.state.selected) === null || _this$state$selected === void 0 ? void 0 : _this$state$selected.avatar) || ((_this$state$selected2 = this.state.selected) === null || _this$state$selected2 === void 0 ? void 0 : _this$state$selected2.showGeneratedAvatar)) && /*#__PURE__*/React.createElement(Avatar, {
953
+ className: modules_9d0de074.avatar,
954
+ url: this.state.selected.avatar,
955
+ username: this.state.selected.username,
956
+ size: Size$1.Size20
957
+ });
958
+ }
959
+ }, {
960
+ key: "getShortcutsMap",
961
+ value: function getShortcutsMap() {
962
+ return {
963
+ enter: this._onEnter,
964
+ esc: this._onEsc,
965
+ up: this._inputShortcutHandler,
966
+ down: this._inputShortcutHandler,
967
+ right: noop,
968
+ left: noop,
969
+ 'shift+up': noop,
970
+ 'shift+down': noop,
971
+ space: noop
972
+ };
973
+ }
974
+ }, {
975
+ key: "renderSelect",
976
+ value: function renderSelect(activeItemId) {
977
+ var _classNames2, _this$props$label3, _this$props$label4, _this$_popup5, _classNames3, _this$props$buttonCla;
978
+ var dataTest = this.props['data-test'];
979
+ var selectedLabel = this.props.selectedLabel;
980
+ var shortcutsEnabled = this.state.shortcutsEnabled;
981
+ var classes = classNames(modules_9d0de074.select, 'ring-js-shortcuts', this.props.className, modules_9d0de074["height".concat(this.props.height || this.context)], (_classNames2 = {}, _defineProperty(_classNames2, modules_9d0de074["size".concat(this.props.size)], this.props.type !== Type.INLINE), _defineProperty(_classNames2, modules_9d0de074.disabled, this.props.disabled), _classNames2));
982
+ var icons = this._getIcons();
983
+ var style = getStyle(icons.length);
984
+ var iconsNode = /*#__PURE__*/React.createElement("div", {
985
+ className: modules_9d0de074.icons
986
+ }, icons);
987
+ var ariaProps = this.state.showPopup ? {
988
+ 'aria-owns': this.listId,
989
+ 'aria-activedescendant': activeItemId,
990
+ 'aria-label': (_this$props$label3 = this.props.label) !== null && _this$props$label3 !== void 0 ? _this$props$label3 : undefined
991
+ } : {
992
+ 'aria-label': (_this$props$label4 = this.props.label) !== null && _this$props$label4 !== void 0 ? _this$props$label4 : undefined
993
+ };
994
+ switch (this.props.type) {
995
+ case Type.INPUT_WITHOUT_CONTROLS:
996
+ case Type.INPUT:
997
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
998
+ ref: this.nodeRef,
999
+ className: classNames(classes, modules_9d0de074.inputMode),
1000
+ "data-test": joinDataTestAttributes('ring-select', dataTest)
1001
+ }, shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
1002
+ map: this.getShortcutsMap(),
1003
+ scope: this.shortcutsScope
1004
+ }), /*#__PURE__*/React.createElement(Input, _extends({}, ariaProps, {
1005
+ height: this.props.height,
1006
+ autoComplete: "off",
1007
+ id: this.props.id,
1008
+ onClick: this._clickHandler,
1009
+ inputRef: composeRefs(this.filterRef, this.props.filterRef),
1010
+ disabled: this.props.disabled,
1011
+ value: this.state.filterValue,
1012
+ borderless: this.props.type === Type.INPUT_WITHOUT_CONTROLS,
1013
+ style: style,
1014
+ size: Size.FULL,
1015
+ onChange: this._filterChangeHandler,
1016
+ onFocus: this._focusHandler,
1017
+ onBlur: this._blurHandler
1018
+ // Input with error style without description
1019
+ ,
1020
+ error: this.props.error != null ? '' : null,
1021
+ label: this.props.type === Type.INPUT ? this._getLabel() : null,
1022
+ placeholder: this.props.inputPlaceholder,
1023
+ onKeyDown: this.props.onKeyDown,
1024
+ "data-test": "ring-select__focus",
1025
+ enableShortcuts: shortcutsEnabled ? Object.keys(_objectSpread2(_objectSpread2({}, this.getShortcutsMap()), (_this$_popup5 = this._popup) === null || _this$_popup5 === void 0 || (_this$_popup5 = _this$_popup5.list) === null || _this$_popup5 === void 0 ? void 0 : _this$_popup5.shortcutsMap)) : undefined,
1026
+ icon: this.props.filterIcon,
1027
+ afterInput: this.props.type === Type.INPUT && iconsNode
1028
+ })), this._renderPopup()), this.props.error && /*#__PURE__*/React.createElement("div", {
1029
+ className: classNames(modules_88cfaf40.errorText, modules_88cfaf40["size".concat(this.props.size)])
1030
+ }, this.props.error));
1031
+ case Type.BUTTON:
1032
+ return /*#__PURE__*/React.createElement("div", {
1033
+ ref: this.nodeRef,
1034
+ className: classNames(classes, modules_9d0de074.buttonMode),
1035
+ "data-test": joinDataTestAttributes('ring-select', dataTest)
1036
+ }, selectedLabel && /*#__PURE__*/React.createElement(ControlLabel, {
1037
+ type: this.props.labelType,
1038
+ disabled: this.props.disabled,
1039
+ htmlFor: this.props.id
1040
+ }, selectedLabel), shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
1041
+ map: this.getShortcutsMap(),
1042
+ scope: this.shortcutsScope
1043
+ }), /*#__PURE__*/React.createElement("div", {
1044
+ className: modules_9d0de074.buttonContainer
1045
+ }, /*#__PURE__*/React.createElement(Button, _extends({}, ariaProps, {
1046
+ height: this.props.height,
1047
+ id: this.props.id,
1048
+ onClick: this._clickHandler,
1049
+ className: classNames(this.props.buttonClassName, modules_9d0de074.buttonValue, (_classNames3 = {}, _defineProperty(_classNames3, modules_9d0de074.buttonValueOpen, this.state.showPopup), _defineProperty(_classNames3, modules_9d0de074.buttonValueEmpty, this._selectionIsEmpty()), _classNames3)),
1050
+ disabled: this.props.disabled,
1051
+ style: style,
1052
+ "data-test": "ring-select__button ring-select__focus"
1053
+ }), this._getAvatar(), this._getPlaceholder()), iconsNode), this._renderPopup());
1054
+ case Type.INLINE:
1055
+ return /*#__PURE__*/React.createElement("div", {
1056
+ className: classes,
1057
+ ref: this.nodeRef,
1058
+ "data-test": joinDataTestAttributes('ring-select', dataTest)
1059
+ }, shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
1023
1060
  map: this.getShortcutsMap(),
1024
1061
  scope: this.shortcutsScope
1025
- }), this.props.customAnchor({
1026
- wrapperProps: {
1027
- ref: this.nodeRef,
1028
- 'data-test': joinDataTestAttributes('ring-select', dataTest)
1029
- },
1030
- buttonProps: {
1031
- ...ariaProps,
1032
- id: this.props.id,
1033
- onClick: this._clickHandler,
1034
- disabled: this.props.disabled,
1035
- children: this._getPlaceholder(),
1036
- 'data-test': 'ring-select_focus'
1037
- },
1038
- popup: this._renderPopup()
1039
- }));
1062
+ }), /*#__PURE__*/React.createElement(Anchor, _extends({}, ariaProps, {
1063
+ className: (_this$props$buttonCla = this.props.buttonClassName) !== null && _this$props$buttonCla !== void 0 ? _this$props$buttonCla : undefined,
1064
+ id: this.props.id,
1065
+ onClick: this._clickHandler,
1066
+ "data-test": "ring-select__focus",
1067
+ disabled: this.props.disabled,
1068
+ active: this.state.showPopup
1069
+ }), this._getPlaceholder()), this._renderPopup());
1070
+ default:
1071
+ if (this.props.customAnchor) {
1072
+ return /*#__PURE__*/React.createElement(Fragment, null, shortcutsEnabled && /*#__PURE__*/React.createElement(Shortcuts, {
1073
+ map: this.getShortcutsMap(),
1074
+ scope: this.shortcutsScope
1075
+ }), this.props.customAnchor({
1076
+ wrapperProps: {
1077
+ ref: this.nodeRef,
1078
+ 'data-test': joinDataTestAttributes('ring-select', dataTest)
1079
+ },
1080
+ buttonProps: _objectSpread2(_objectSpread2({}, ariaProps), {}, {
1081
+ id: this.props.id,
1082
+ onClick: this._clickHandler,
1083
+ disabled: this.props.disabled,
1084
+ children: this._getPlaceholder(),
1085
+ 'data-test': 'ring-select_focus'
1086
+ }),
1087
+ popup: this._renderPopup()
1088
+ }));
1089
+ }
1090
+ return /*#__PURE__*/React.createElement("span", {
1091
+ id: this.props.id,
1092
+ ref: this.nodeRef,
1093
+ "data-test": "ring-select"
1094
+ }, this._renderPopup());
1095
+ }
1096
+ }
1097
+ }, {
1098
+ key: "render",
1099
+ value: function render() {
1100
+ var _this5 = this;
1101
+ return /*#__PURE__*/React.createElement(ActiveItemContext.Provider, null, /*#__PURE__*/React.createElement(ActiveItemContext.ValueContext.Consumer, null, function (activeItemId) {
1102
+ return _this5.renderSelect(activeItemId);
1103
+ }));
1104
+ }
1105
+ }], [{
1106
+ key: "getDerivedStateFromProps",
1107
+ value: function getDerivedStateFromProps(nextProps, prevState) {
1108
+ var multiple = nextProps.multiple,
1109
+ data = nextProps.data,
1110
+ type = nextProps.type;
1111
+ var prevSelected = prevState.prevSelected,
1112
+ prevData = prevState.prevData,
1113
+ prevMultiple = prevState.prevMultiple,
1114
+ filterValue = prevState.filterValue;
1115
+ var nextState = {
1116
+ prevData: data,
1117
+ prevSelected: nextProps.selected,
1118
+ prevMultiple: multiple
1119
+ };
1120
+ if ('data' in nextProps && data !== prevData) {
1121
+ var _getListItems3 = _getListItems(nextProps, prevState, filterValue, data),
1122
+ filteredData = _getListItems3.filteredData,
1123
+ addButton = _getListItems3.addButton;
1124
+ Object.assign(nextState, {
1125
+ shownData: filteredData,
1126
+ addButton: addButton
1127
+ });
1128
+ if (prevState.selected) {
1129
+ Object.assign(nextState, {
1130
+ selectedIndex: getSelectedIndex(prevState.selected, data),
1131
+ filterValue: _getValueForFilter(prevState.selected, type, filterValue)
1132
+ });
1133
+ }
1134
+ }
1135
+ if ('selected' in nextProps && nextProps.selected !== prevSelected) {
1136
+ var _selected = nextProps.selected || (multiple ? [] : null);
1137
+ var selectedIndex = getSelectedIndex(_selected, data || prevData);
1138
+ Object.assign(nextState, {
1139
+ selected: _selected,
1140
+ filterValue: _getValueForFilter(_selected, type, filterValue)
1141
+ });
1142
+ if (!Array.isArray(prevSelected) || !Array.isArray(_selected) || !isSameSelected(prevSelected, _selected)) {
1143
+ Object.assign(nextState, {
1144
+ selectedIndex: selectedIndex
1145
+ });
1040
1146
  }
1041
- return /*#__PURE__*/React.createElement("span", {
1042
- id: this.props.id,
1043
- ref: this.nodeRef,
1044
- "data-test": "ring-select"
1045
- }, this._renderPopup());
1147
+ }
1148
+ if (prevMultiple !== multiple && !deepEqual(prevMultiple, multiple)) {
1149
+ nextState.selected = multiple ? [] : null;
1150
+ }
1151
+ if (multiple && !nextState.selected) {
1152
+ nextState.selected = prevState.selected;
1153
+ }
1154
+ var _prevState$nextState = _objectSpread2(_objectSpread2({}, prevState), nextState),
1155
+ selected = _prevState$nextState.selected;
1156
+ if (selected && Array.isArray(selected)) {
1157
+ nextState.multipleMap = buildMultipleMap(selected);
1158
+ var _getListItems4 = _getListItems(nextProps, nextState, filterValue, data),
1159
+ _filteredData = _getListItems4.filteredData,
1160
+ _addButton = _getListItems4.addButton;
1161
+ Object.assign(nextState, {
1162
+ shownData: _filteredData,
1163
+ addButton: _addButton
1164
+ });
1165
+ }
1166
+ return nextState;
1046
1167
  }
1047
- }
1048
- render() {
1049
- return /*#__PURE__*/React.createElement(ActiveItemContext.Provider, null, /*#__PURE__*/React.createElement(ActiveItemContext.ValueContext.Consumer, null, activeItemId => this.renderSelect(activeItemId)));
1050
- }
1051
- }
1168
+ }]);
1169
+ return Select;
1170
+ }(Component);
1052
1171
  _defineProperty(Select, "defaultProps", {
1053
1172
  data: [],
1054
1173
  filter: false,
1174
+ filterIcon: null,
1175
+ filterRef: noop,
1055
1176
  multiple: false,
1056
1177
  clear: false,
1057
1178
  loading: false,
1058
1179
  disabled: false,
1059
- loadingMessage: 'Loading...',
1060
- notFoundMessage: 'No options found',
1061
1180
  type: Type.BUTTON,
1062
1181
  size: Size.M,
1063
1182
  targetElement: null,
1064
1183
  hideSelected: false,
1065
1184
  allowAny: false,
1066
1185
  hideArrow: false,
1186
+ showPopup: false,
1067
1187
  maxHeight: 600,
1068
1188
  directions: [Popup.PopupProps.Directions.BOTTOM_RIGHT, Popup.PopupProps.Directions.BOTTOM_LEFT, Popup.PopupProps.Directions.TOP_LEFT, Popup.PopupProps.Directions.TOP_RIGHT],
1069
1189
  selected: null,
@@ -1082,6 +1202,7 @@ _defineProperty(Select, "defaultProps", {
1082
1202
  onKeyDown: noop,
1083
1203
  onSelect: noop,
1084
1204
  onDeselect: noop,
1205
+ onOutsideClick: noop,
1085
1206
  onChange: noop,
1086
1207
  onAdd: noop,
1087
1208
  onDone: noop,
@@ -1100,6 +1221,8 @@ Select.propTypes = {
1100
1221
  multiple: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
1101
1222
  allowAny: PropTypes.bool,
1102
1223
  filter: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
1224
+ filterIcon: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
1225
+ filterRef: PropTypes.oneOfType([PropTypes.func, refObject(PropTypes.instanceOf(HTMLInputElement))]),
1103
1226
  getInitial: PropTypes.func,
1104
1227
  onClose: PropTypes.func,
1105
1228
  onOpen: PropTypes.func,
@@ -1112,6 +1235,7 @@ Select.propTypes = {
1112
1235
  onBeforeOpen: PropTypes.func,
1113
1236
  onSelect: PropTypes.func,
1114
1237
  onDeselect: PropTypes.func,
1238
+ onOutsideClick: PropTypes.func,
1115
1239
  onFocus: PropTypes.func,
1116
1240
  onBlur: PropTypes.func,
1117
1241
  onKeyDown: PropTypes.func,
@@ -1142,6 +1266,8 @@ Select.propTypes = {
1142
1266
  inputPlaceholder: PropTypes.string,
1143
1267
  clear: PropTypes.bool,
1144
1268
  hideArrow: PropTypes.bool,
1269
+ showPopup: PropTypes.bool,
1270
+ tryKeepOpen: PropTypes.bool,
1145
1271
  compact: PropTypes.bool,
1146
1272
  size: PropTypes.oneOf(Object.values(Size)),
1147
1273
  customAnchor: PropTypes.func,
@@ -1150,6 +1276,6 @@ Select.propTypes = {
1150
1276
  dir: PropTypes.oneOf(['ltr', 'rtl']),
1151
1277
  'data-test': PropTypes.string
1152
1278
  };
1153
- const RerenderableSelect = rerenderHOC(Select);
1279
+ var RerenderableSelect = rerenderHOC(Select);
1154
1280
 
1155
- export { RerenderableSelect, Select as default };
1281
+ export { RerenderableSelect, Type, Select as default };