@jetbrains/ring-ui 4.2.7 → 4.2.10

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 (318) hide show
  1. package/components/auth/auth__core.js +5 -0
  2. package/components/auth/token-validator.js +4 -1
  3. package/components/pager/pager.js +14 -14
  4. package/dist/_helpers/_rollupPluginBabelHelpers.js +34 -0
  5. package/dist/_helpers/anchor.js +33 -0
  6. package/dist/_helpers/badge.js +3 -0
  7. package/dist/_helpers/button-group.js +3 -0
  8. package/dist/_helpers/button-set.js +3 -0
  9. package/dist/_helpers/button-toolbar.js +3 -0
  10. package/dist/_helpers/button__classes.js +39 -0
  11. package/dist/_helpers/card.js +75 -0
  12. package/dist/_helpers/checkbox.js +3 -0
  13. package/dist/_helpers/date-picker.js +3 -0
  14. package/dist/_helpers/dialog__body-scroll-preventer.js +58 -0
  15. package/dist/_helpers/error-message.js +3 -0
  16. package/dist/_helpers/footer.js +121 -0
  17. package/dist/_helpers/grid.js +3 -0
  18. package/dist/_helpers/group.js +3 -0
  19. package/dist/_helpers/header.js +3 -0
  20. package/dist/_helpers/icon.js +3 -0
  21. package/dist/_helpers/inject-styles.js +22 -0
  22. package/dist/_helpers/input.js +3 -0
  23. package/dist/_helpers/island.js +3 -0
  24. package/dist/_helpers/link.js +3 -0
  25. package/dist/_helpers/list.js +3 -0
  26. package/dist/_helpers/loader-screen.js +3 -0
  27. package/dist/_helpers/panel.js +3 -0
  28. package/dist/_helpers/query-assist__suggestions.js +95 -0
  29. package/dist/_helpers/radio.js +3 -0
  30. package/dist/_helpers/select__filter.js +77 -0
  31. package/dist/_helpers/services-link.js +40 -0
  32. package/dist/_helpers/sidebar.js +126 -0
  33. package/dist/_helpers/table.js +3 -0
  34. package/dist/_helpers/tabs.js +3 -0
  35. package/dist/_helpers/title.js +100 -0
  36. package/dist/alert/alert.js +262 -0
  37. package/dist/alert/container.js +48 -0
  38. package/dist/alert-service/alert-service.js +173 -0
  39. package/dist/analytics/analytics.js +118 -0
  40. package/dist/analytics/analytics__custom-plugin.js +128 -0
  41. package/dist/analytics/analytics__fus-plugin.js +102 -0
  42. package/dist/analytics/analytics__ga-plugin.js +75 -0
  43. package/dist/analytics/analytics__plugin-utils.js +80 -0
  44. package/dist/analytics-ng/analytics-ng.js +95 -0
  45. package/dist/auth/auth.js +96 -0
  46. package/dist/auth/auth__core.js +1065 -0
  47. package/dist/auth/background-flow.js +123 -0
  48. package/dist/auth/down-notification.js +117 -0
  49. package/dist/auth/iframe-flow.js +153 -0
  50. package/dist/auth/landing-entry.js +5 -0
  51. package/dist/auth/landing.js +90 -0
  52. package/dist/auth/request-builder.js +76 -0
  53. package/dist/auth/response-parser.js +118 -0
  54. package/dist/auth/storage.js +283 -0
  55. package/dist/auth/token-validator.js +180 -0
  56. package/dist/auth/window-flow.js +134 -0
  57. package/dist/auth-dialog/auth-dialog.js +180 -0
  58. package/dist/auth-dialog-service/auth-dialog-service.js +71 -0
  59. package/dist/auth-ng/auth-ng.js +206 -0
  60. package/dist/auth-ng/auth-ng.mock.js +33 -0
  61. package/dist/autofocus-ng/autofocus-ng.js +51 -0
  62. package/dist/avatar/avatar-example-datauri.js +4 -0
  63. package/dist/avatar/avatar.js +163 -0
  64. package/dist/avatar/fallback-avatar.js +142 -0
  65. package/dist/avatar-editor-ng/avatar-editor-ng.js +167 -0
  66. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +3 -0
  67. package/dist/avatar-ng/avatar-ng.js +21 -0
  68. package/dist/badge/badge.js +51 -0
  69. package/dist/badge-ng/badge-ng.js +18 -0
  70. package/dist/breadcrumb-ng/breadcrumb-ng.js +37 -0
  71. package/dist/button/button.js +125 -0
  72. package/dist/button/button__classes.js +5 -0
  73. package/dist/button-group/button-group.js +30 -0
  74. package/dist/button-group/caption.js +24 -0
  75. package/dist/button-group-ng/button-group-ng.js +39 -0
  76. package/dist/button-ng/button-ng.js +217 -0
  77. package/dist/button-set/button-set.js +26 -0
  78. package/dist/button-set-ng/button-set-ng.js +19 -0
  79. package/dist/button-toolbar/button-toolbar.js +29 -0
  80. package/dist/button-toolbar-ng/button-toolbar-ng.js +24 -0
  81. package/dist/caret/caret.js +266 -0
  82. package/dist/checkbox/checkbox.js +110 -0
  83. package/dist/checkbox-ng/checkbox-ng.js +38 -0
  84. package/dist/code/code.js +137 -0
  85. package/dist/compiler-ng/compiler-ng.js +53 -0
  86. package/dist/confirm/confirm.js +127 -0
  87. package/dist/confirm-ng/confirm-ng.js +69 -0
  88. package/dist/confirm-service/confirm-service.js +117 -0
  89. package/dist/content-layout/content-layout.js +66 -0
  90. package/dist/content-layout/sidebar.js +7 -0
  91. package/dist/contenteditable/contenteditable.js +78 -0
  92. package/dist/data-list/data-list.js +208 -0
  93. package/dist/data-list/data-list.mock.js +191 -0
  94. package/dist/data-list/item.js +229 -0
  95. package/dist/data-list/selection.js +102 -0
  96. package/dist/data-list/title.js +20 -0
  97. package/dist/data-list-ng/data-list-ng.js +62 -0
  98. package/dist/date-picker/consts.js +69 -0
  99. package/dist/date-picker/date-input.js +175 -0
  100. package/dist/date-picker/date-picker.js +367 -0
  101. package/dist/date-picker/date-popup.js +483 -0
  102. package/dist/date-picker/day.js +120 -0
  103. package/dist/date-picker/formats.js +3 -0
  104. package/dist/date-picker/month-names.js +100 -0
  105. package/dist/date-picker/month-slider.js +84 -0
  106. package/dist/date-picker/month.js +55 -0
  107. package/dist/date-picker/months.js +122 -0
  108. package/dist/date-picker/weekdays.js +32 -0
  109. package/dist/date-picker/years.js +110 -0
  110. package/dist/dialog/dialog.js +205 -0
  111. package/dist/dialog/dialog__body-scroll-preventer.js +3 -0
  112. package/dist/dialog-ng/dialog-ng.js +604 -0
  113. package/dist/dialog-ng/dialog-ng__template.js +3 -0
  114. package/dist/docked-panel-ng/docked-panel-ng.js +171 -0
  115. package/dist/dropdown/anchor.js +19 -0
  116. package/dist/dropdown/dropdown.js +236 -0
  117. package/dist/dropdown-menu/dropdown-menu.js +177 -0
  118. package/dist/error-bubble/error-bubble.js +59 -0
  119. package/dist/error-message/error-message.js +57 -0
  120. package/dist/error-message-ng/error-message-ng.js +35 -0
  121. package/dist/footer/footer.js +12 -0
  122. package/dist/footer-ng/footer-ng.js +64 -0
  123. package/dist/form-ng/form-ng.js +167 -0
  124. package/dist/global/angular-component-factory.js +84 -0
  125. package/dist/global/compose.js +9 -0
  126. package/dist/global/composeRefs.js +15 -0
  127. package/dist/global/conic-gradient.js +35 -0
  128. package/dist/global/create-stateful-context.js +55 -0
  129. package/dist/global/data-tests.js +24 -0
  130. package/dist/global/dom.js +125 -0
  131. package/dist/global/focus-sensor-hoc.js +146 -0
  132. package/dist/global/fuzzy-highlight.js +67 -0
  133. package/dist/global/get-event-key.js +111 -0
  134. package/dist/global/get-uid.js +15 -0
  135. package/dist/global/inject-styles.js +15 -0
  136. package/dist/global/linear-function.js +17 -0
  137. package/dist/global/listeners.js +44 -0
  138. package/dist/global/memoize.js +20 -0
  139. package/dist/global/normalize-indent.js +30 -0
  140. package/dist/global/promise-with-timeout.js +17 -0
  141. package/dist/global/radial-gradient-mask.js +38 -0
  142. package/dist/global/react-dom-renderer.js +46 -0
  143. package/dist/global/react-render-adapter.js +41 -0
  144. package/dist/global/rerender-hoc.js +55 -0
  145. package/dist/global/ring-angular-component.js +24 -0
  146. package/dist/global/schedule-raf.js +31 -0
  147. package/dist/global/sniffer.js +6 -0
  148. package/dist/global/supports-css.js +22 -0
  149. package/dist/global/theme.js +54 -0
  150. package/dist/global/trivial-template-tag.js +17 -0
  151. package/dist/global/url.js +165 -0
  152. package/dist/global/variables_dark.js +57 -0
  153. package/dist/grid/col.js +60 -0
  154. package/dist/grid/grid.js +33 -0
  155. package/dist/grid/row.js +64 -0
  156. package/dist/group/group.js +31 -0
  157. package/dist/group-ng/group-ng.js +11 -0
  158. package/dist/header/header.js +150 -0
  159. package/dist/header/logo.js +40 -0
  160. package/dist/header/profile.js +219 -0
  161. package/dist/header/services-link.js +12 -0
  162. package/dist/header/services.js +138 -0
  163. package/dist/header/smart-profile.js +233 -0
  164. package/dist/header/smart-services.js +163 -0
  165. package/dist/header/tray-icon.js +47 -0
  166. package/dist/header/tray.js +31 -0
  167. package/dist/heading/heading.js +73 -0
  168. package/dist/http/http.js +218 -0
  169. package/dist/http/http.mock.js +67 -0
  170. package/dist/hub-source/hub-source.js +130 -0
  171. package/dist/hub-source/hub-source__user.js +30 -0
  172. package/dist/hub-source/hub-source__users-groups.js +63 -0
  173. package/dist/icon/icon.js +105 -0
  174. package/dist/icon/icon__constants.js +33 -0
  175. package/dist/icon/icon__svg.js +83 -0
  176. package/dist/icon/index.js +12 -0
  177. package/dist/icon-ng/icon-ng.js +91 -0
  178. package/dist/input/input.js +230 -0
  179. package/dist/input-ng/input-ng.js +111 -0
  180. package/dist/island/adaptive-island-hoc.js +48 -0
  181. package/dist/island/content.js +160 -0
  182. package/dist/island/header.js +84 -0
  183. package/dist/island/island.js +51 -0
  184. package/dist/island-legacy/content-legacy.js +26 -0
  185. package/dist/island-legacy/header-legacy.js +28 -0
  186. package/dist/island-legacy/island-legacy.js +28 -0
  187. package/dist/island-ng/island-content-ng.js +42 -0
  188. package/dist/island-ng/island-header-ng.js +26 -0
  189. package/dist/island-ng/island-ng-class-fixer.js +11 -0
  190. package/dist/island-ng/island-ng.js +25 -0
  191. package/dist/link/clickableLink.js +64 -0
  192. package/dist/link/link.js +115 -0
  193. package/dist/link-ng/link-ng.js +22 -0
  194. package/dist/list/consts.js +26 -0
  195. package/dist/list/list.js +822 -0
  196. package/dist/list/list__custom.js +86 -0
  197. package/dist/list/list__hint.js +26 -0
  198. package/dist/list/list__item.js +206 -0
  199. package/dist/list/list__link.js +65 -0
  200. package/dist/list/list__separator.js +30 -0
  201. package/dist/list/list__title.js +39 -0
  202. package/dist/list/list__users-groups-source.js +130 -0
  203. package/dist/loader/loader.js +71 -0
  204. package/dist/loader/loader__core.js +273 -0
  205. package/dist/loader-inline/inject-styles.js +13 -0
  206. package/dist/loader-inline/loader-inline.js +58 -0
  207. package/dist/loader-inline-ng/loader-inline-ng.js +44 -0
  208. package/dist/loader-ng/loader-ng.js +44 -0
  209. package/dist/loader-screen/loader-screen.js +44 -0
  210. package/dist/loader-screen-ng/loader-screen-ng.js +95 -0
  211. package/dist/login-dialog/login-dialog.js +188 -0
  212. package/dist/login-dialog/service.js +72 -0
  213. package/dist/markdown/code.js +31 -0
  214. package/dist/markdown/heading.js +23 -0
  215. package/dist/markdown/link.js +31 -0
  216. package/dist/markdown/markdown.js +74 -0
  217. package/dist/message/message.js +235 -0
  218. package/dist/message-bundle-ng/message-bundle-ng.js +111 -0
  219. package/dist/old-browsers-message/old-browsers-message.js +101 -0
  220. package/dist/old-browsers-message/old-browsers-message__stop.js +5 -0
  221. package/dist/old-browsers-message/white-list.js +34 -0
  222. package/dist/pager/pager.js +365 -0
  223. package/dist/pager-ng/pager-ng.js +100 -0
  224. package/dist/panel/panel.js +31 -0
  225. package/dist/panel-ng/panel-ng.js +17 -0
  226. package/dist/permissions/permissions.js +200 -0
  227. package/dist/permissions/permissions__cache.js +272 -0
  228. package/dist/permissions-ng/permissions-ng.js +277 -0
  229. package/dist/place-under-ng/place-under-ng.js +158 -0
  230. package/dist/popup/popup.consts.js +41 -0
  231. package/dist/popup/popup.js +396 -0
  232. package/dist/popup/popup.target.js +26 -0
  233. package/dist/popup/position.js +280 -0
  234. package/dist/popup-menu/popup-menu.js +117 -0
  235. package/dist/progress-bar/progress-bar.js +114 -0
  236. package/dist/progress-bar-ng/progress-bar-ng.js +17 -0
  237. package/dist/promised-click-ng/promised-click-ng.js +128 -0
  238. package/dist/proxy-attrs/proxy-attrs.js +21 -0
  239. package/dist/query-assist/query-assist.js +1096 -0
  240. package/dist/query-assist/query-assist__suggestions.js +49 -0
  241. package/dist/query-assist-ng/query-assist-ng.js +86 -0
  242. package/dist/radio/radio.js +42 -0
  243. package/dist/radio/radio__item.js +78 -0
  244. package/dist/radio-ng/radio-ng.js +47 -0
  245. package/dist/save-field-ng/save-field-ng.js +337 -0
  246. package/dist/save-field-ng/save-field-ng__template.js +3 -0
  247. package/dist/select/select.js +1357 -0
  248. package/dist/select/select__filter.js +56 -0
  249. package/dist/select/select__popup.js +553 -0
  250. package/dist/select-ng/select-ng.js +637 -0
  251. package/dist/select-ng/select-ng__lazy.js +169 -0
  252. package/dist/select-ng/select-ng__options.js +145 -0
  253. package/dist/shortcuts/core.js +245 -0
  254. package/dist/shortcuts/shortcut-title.js +51 -0
  255. package/dist/shortcuts/shortcuts-hoc.js +42 -0
  256. package/dist/shortcuts/shortcuts.js +72 -0
  257. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +123 -0
  258. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +3 -0
  259. package/dist/shortcuts-ng/shortcuts-ng.js +262 -0
  260. package/dist/sidebar-ng/sidebar-ng.js +113 -0
  261. package/dist/sidebar-ng/sidebar-ng__button-template.js +3 -0
  262. package/dist/sidebar-ng/sidebar-ng__template.js +3 -0
  263. package/dist/storage/storage.js +59 -0
  264. package/dist/storage/storage__fallback.js +215 -0
  265. package/dist/storage/storage__local.js +154 -0
  266. package/dist/style.css +1 -0
  267. package/dist/tab-trap/tab-trap.js +177 -0
  268. package/dist/table/cell.js +26 -0
  269. package/dist/table/disable-hover-hoc.js +54 -0
  270. package/dist/table/header-cell.js +92 -0
  271. package/dist/table/header.js +193 -0
  272. package/dist/table/multitable.js +141 -0
  273. package/dist/table/row-with-focus-sensor.js +83 -0
  274. package/dist/table/row.js +278 -0
  275. package/dist/table/selection-adapter.js +16 -0
  276. package/dist/table/selection-shortcuts-hoc.js +215 -0
  277. package/dist/table/selection.js +223 -0
  278. package/dist/table/smart-table.js +125 -0
  279. package/dist/table/table.js +409 -0
  280. package/dist/table-legacy-ng/table-legacy-ng.js +468 -0
  281. package/dist/table-legacy-ng/table-legacy-ng__pager.js +120 -0
  282. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +123 -0
  283. package/dist/table-legacy-ng/table-legacy-ng__selection.js +179 -0
  284. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +57 -0
  285. package/dist/table-ng/smart-table-ng.js +68 -0
  286. package/dist/table-ng/table-ng.js +67 -0
  287. package/dist/tabs/collapsible-more.js +198 -0
  288. package/dist/tabs/collapsible-tab.js +91 -0
  289. package/dist/tabs/collapsible-tabs.js +362 -0
  290. package/dist/tabs/custom-item.js +13 -0
  291. package/dist/tabs/dumb-tabs.js +164 -0
  292. package/dist/tabs/smart-tabs.js +106 -0
  293. package/dist/tabs/tab-link.js +42 -0
  294. package/dist/tabs/tab.js +33 -0
  295. package/dist/tabs/tabs.js +71 -0
  296. package/dist/tabs-ng/tabs-ng.js +194 -0
  297. package/dist/tabs-ng/tabs-ng__template.js +3 -0
  298. package/dist/tag/tag.js +197 -0
  299. package/dist/tags-input/tags-input.js +482 -0
  300. package/dist/tags-input-ng/tags-input-ng.js +93 -0
  301. package/dist/tags-list/tags-list.js +95 -0
  302. package/dist/template-ng/template-ng.js +71 -0
  303. package/dist/text/text.js +36 -0
  304. package/dist/theme-ng/theme-ng.js +45 -0
  305. package/dist/title-ng/title-ng.js +114 -0
  306. package/dist/toggle/toggle.js +78 -0
  307. package/dist/toggle-ng/toggle-ng.js +18 -0
  308. package/dist/tooltip/tooltip.js +209 -0
  309. package/dist/tooltip-ng/tooltip-ng.js +104 -0
  310. package/dist/user-agreement/service.js +412 -0
  311. package/dist/user-agreement/toolbox.eula.js +3 -0
  312. package/dist/user-agreement/user-agreement.js +169 -0
  313. package/dist/user-card/card.js +19 -0
  314. package/dist/user-card/smart-user-card-tooltip.js +114 -0
  315. package/dist/user-card/tooltip.js +95 -0
  316. package/dist/user-card/user-card.js +51 -0
  317. package/dist/user-card-ng/user-card-ng.js +62 -0
  318. package/package.json +2 -2
@@ -0,0 +1,100 @@
1
+ import angularComponentFactory from '../global/angular-component-factory.js';
2
+ import Pager$1 from '../pager/pager.js';
3
+ import '../_helpers/_rollupPluginBabelHelpers.js';
4
+ import 'core-js/modules/web.dom-collections.iterator.js';
5
+ import 'angular';
6
+ import 'react';
7
+ import '../global/react-render-adapter.js';
8
+ import 'react-dom';
9
+ import '../global/ring-angular-component.js';
10
+ import '../global/react-dom-renderer.js';
11
+ import 'prop-types';
12
+ import 'classnames';
13
+ import '@jetbrains/icons/chevron-left';
14
+ import '@jetbrains/icons/chevron-right';
15
+ import '../button/button.js';
16
+ import 'focus-visible';
17
+ import '@jetbrains/icons/chevron-10px';
18
+ import '../icon/icon.js';
19
+ import 'util-deprecate';
20
+ import '../icon/icon__constants.js';
21
+ import '../_helpers/icon.js';
22
+ import '../icon/icon__svg.js';
23
+ import 'core-js/modules/es.string.replace.js';
24
+ import '../global/memoize.js';
25
+ import '../global/theme.js';
26
+ import '../link/clickableLink.js';
27
+ import '../_helpers/button__classes.js';
28
+ import '../button-group/button-group.js';
29
+ import '../button-group/caption.js';
30
+ import '../_helpers/button-group.js';
31
+ import '../button-toolbar/button-toolbar.js';
32
+ import '../_helpers/button-toolbar.js';
33
+ import '../select/select.js';
34
+ import '@jetbrains/icons/close';
35
+ import 'deep-equal';
36
+ import '../dropdown/dropdown.js';
37
+ import '../global/data-tests.js';
38
+ import '../_helpers/anchor.js';
39
+ import '../avatar/avatar.js';
40
+ import '../global/url.js';
41
+ import '../global/dom.js';
42
+ import '../avatar/fallback-avatar.js';
43
+ import '../global/get-uid.js';
44
+ import '../popup/popup.js';
45
+ import '../global/schedule-raf.js';
46
+ import '../shortcuts/shortcuts.js';
47
+ import '../shortcuts/core.js';
48
+ import 'combokeys';
49
+ import '../global/sniffer.js';
50
+ import 'sniffr';
51
+ import '../tab-trap/tab-trap.js';
52
+ import '../popup/position.js';
53
+ import '../popup/popup.consts.js';
54
+ import '../popup/popup.target.js';
55
+ import '../list/list.js';
56
+ import 'react-virtualized/dist/es/List';
57
+ import 'react-virtualized/dist/es/AutoSizer';
58
+ import 'react-virtualized/dist/es/WindowScroller';
59
+ import 'react-virtualized/dist/es/CellMeasurer';
60
+ import 'memoize-one';
61
+ import '../global/create-stateful-context.js';
62
+ import '../list/list__link.js';
63
+ import '../link/link.js';
64
+ import '../_helpers/link.js';
65
+ import '../_helpers/list.js';
66
+ import '../list/list__item.js';
67
+ import '../checkbox/checkbox.js';
68
+ import '@jetbrains/icons/checkmark';
69
+ import '@jetbrains/icons/remove-10px';
70
+ import '../_helpers/checkbox.js';
71
+ import '../list/list__custom.js';
72
+ import '../global/get-event-key.js';
73
+ import '../list/list__title.js';
74
+ import '../list/list__separator.js';
75
+ import '../list/list__hint.js';
76
+ import '../list/consts.js';
77
+ import '../input/input.js';
78
+ import '../_helpers/input.js';
79
+ import '../global/rerender-hoc.js';
80
+ import '../global/composeRefs.js';
81
+ import '../global/fuzzy-highlight.js';
82
+ import '../select/select__popup.js';
83
+ import '@jetbrains/icons/search';
84
+ import '../loader-inline/loader-inline.js';
85
+ import '../_helpers/inject-styles.js';
86
+ import '../global/conic-gradient.js';
87
+ import 'conic-gradient';
88
+ import '../global/supports-css.js';
89
+ import '../global/inject-styles.js';
90
+ import '../global/radial-gradient-mask.js';
91
+ import '../shortcuts/shortcuts-hoc.js';
92
+ import '../tags-list/tags-list.js';
93
+ import '../tag/tag.js';
94
+ import '../caret/caret.js';
95
+ import '../text/text.js';
96
+ import '../_helpers/select__filter.js';
97
+
98
+ var Pager = angularComponentFactory(Pager$1, 'Pager').name;
99
+
100
+ export { Pager as default };
@@ -0,0 +1,31 @@
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import React, { PureComponent } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import classNames from 'classnames';
5
+ import { m as modules_cf670408 } from '../_helpers/panel.js';
6
+
7
+ /**
8
+ * @name Panel
9
+ */
10
+
11
+ class Panel extends PureComponent {
12
+ render() {
13
+ const {
14
+ className,
15
+ children,
16
+ ...props
17
+ } = this.props;
18
+ const classes = classNames(modules_cf670408.panel, className);
19
+ return /*#__PURE__*/React.createElement("div", _extends({}, props, {
20
+ className: classes
21
+ }), children);
22
+ }
23
+
24
+ }
25
+
26
+ _defineProperty(Panel, "propTypes", {
27
+ className: PropTypes.string,
28
+ children: PropTypes.node
29
+ });
30
+
31
+ export { Panel as default };
@@ -0,0 +1,17 @@
1
+ import angular from 'angular';
2
+ import { m as modules_cf670408 } from '../_helpers/panel.js';
3
+ import { addClasses } from '../global/dom.js';
4
+ import '../_helpers/_rollupPluginBabelHelpers.js';
5
+ import 'core-js/modules/web.dom-collections.iterator.js';
6
+
7
+ const angularModule = angular.module('Ring.panel', []);
8
+ angularModule.directive('rgPanel', function rgEqualValueDirective() {
9
+ return {
10
+ link: function link(scope, iElement) {
11
+ addClasses(iElement[0].classList, modules_cf670408.panel);
12
+ }
13
+ };
14
+ });
15
+ var panelNg = angularModule.name;
16
+
17
+ export { panelNg as default };
@@ -0,0 +1,200 @@
1
+ import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import PermissionCache from './permissions__cache.js';
3
+
4
+ /**
5
+ * <code>
6
+ * const permissions = new Permissions(auth, {prefix: 'jetbrains.jetpass.', services: [auth.serviceId]})
7
+ * permissions.load().then(function (p) {
8
+ * const canReadUser = p.has('read-user');
9
+ * ...
10
+ * });
11
+ *
12
+ * permissions.check('read-user').then(function(canReadUser) {
13
+ * ...
14
+ * });
15
+ * </code>
16
+ *
17
+ * @param {Auth} auth instance of well configured Auth object
18
+ * @param {{
19
+ * prefix: string?,
20
+ * namesConverter: function?
21
+ * serviceId: string?
22
+ * }=} config permissions loaded configuration.
23
+ * <code>prefix</code> if provided then this prefix is removed from the permissions names.
24
+ * <code>namesConverter</code> if provided it maps permission names used on server-side to client-side permission names. It is used only if prefix is undefined.
25
+ * <code>serviceId</code> if provided then permissions only for the service are loaded.
26
+ * @constructor
27
+ */
28
+
29
+ class Permissions {
30
+ /**
31
+ * @const {string}
32
+ */
33
+ constructor(auth) {
34
+ let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
+
36
+ _defineProperty(this, "_defaultDatasource", query => this._auth.http.get(Permissions.API_PERMISSION_CACHE_PATH, {
37
+ query: {
38
+ fields: 'permission/key,global,projects(id)',
39
+ query
40
+ }
41
+ }));
42
+
43
+ this.query = Permissions.getPermissionQuery(config.services);
44
+ this.namesConverter = config.prefix ? Permissions.getDefaultNamesConverter(config.prefix) : config.namesConverter;
45
+
46
+ if (!auth) {
47
+ throw new Error('Parameter auth is required');
48
+ }
49
+
50
+ this._auth = auth;
51
+ this._datasource = config.datasource || this._defaultDatasource;
52
+ this._promise = null;
53
+ this._subscribed = false;
54
+ this._permissionCache = new PermissionCache(null, this.namesConverter);
55
+ }
56
+
57
+ /**
58
+ * Returns function, which cuts off prefix from server-side permission name
59
+ *
60
+ * @param {string} prefix
61
+ * @returns {Function}
62
+ */
63
+ static getDefaultNamesConverter(prefix) {
64
+ return storedName => {
65
+ if (storedName.indexOf(prefix) !== 0) {
66
+ return storedName;
67
+ } else {
68
+ return storedName.substr(prefix.length);
69
+ }
70
+ };
71
+ }
72
+
73
+ static getPermissionQuery(services) {
74
+ if (!services || !services.length) {
75
+ return undefined;
76
+ }
77
+
78
+ return services.map(service => "service:{".concat(service, "}")).join(' or ');
79
+ }
80
+
81
+ set(cachedPermissions) {
82
+ this._permissionCache.set(cachedPermissions);
83
+
84
+ this._setCache(Promise.resolve(this._permissionCache));
85
+
86
+ return this._permissionCache;
87
+ }
88
+
89
+ get() {
90
+ return this._permissionCache.get();
91
+ }
92
+
93
+ _setCache(value) {
94
+ this._promise = value;
95
+ return value;
96
+ }
97
+
98
+ _getCache() {
99
+ return this._promise;
100
+ }
101
+
102
+ _resetCache() {
103
+ this._setCache(null);
104
+ }
105
+ /**
106
+ * Loads logged-in user permissions.
107
+ * @param {object?} options
108
+ * @return {Promise.<Permissions>} promise that is resolved when the permissions are loaded
109
+ */
110
+
111
+
112
+ load(options) {
113
+ if (this._subscribed === false) {
114
+ this._auth.addListener('userChange', () => {
115
+ this.reload();
116
+ });
117
+
118
+ this._subscribed = true;
119
+ }
120
+
121
+ if (!hasCacheControl('NO_CACHE', options) && this._getCache()) {
122
+ return this._getCache();
123
+ }
124
+
125
+ if (hasCacheControl('NO_STORE', options)) {
126
+ return this._loadPermissions().then(cachedPermissions => new PermissionCache(cachedPermissions, this.namesConverter));
127
+ }
128
+
129
+ return this._setCache(this._loadPermissions().then(cachedPermissions => this.set(cachedPermissions)));
130
+
131
+ function hasCacheControl(value, _options) {
132
+ if (_options && _options.cacheControl) {
133
+ return _options.cacheControl[value];
134
+ }
135
+
136
+ return false;
137
+ }
138
+ }
139
+
140
+ _loadPermissions() {
141
+ return this._datasource(this.query);
142
+ }
143
+ /**
144
+ * Reloads permission cache from server
145
+ * @returns {Promise.<Permissions>} promise that is resolved when the permissions are reloaded
146
+ */
147
+
148
+
149
+ reload() {
150
+ this._resetCache();
151
+
152
+ return this.load();
153
+ }
154
+ /**
155
+ * Waits till the permission cache is loaded then checks if the current user has the
156
+ * given permissions in the project with the given id.
157
+ *
158
+ * @param {string} permissions space separated list of permissions
159
+ * @param {string=} projectId optional projectId. If absent the method checks
160
+ * if the given permission is granted in any project.
161
+ *
162
+ * @return {Promise.<boolean>}
163
+ */
164
+
165
+
166
+ check(permissions, projectId) {
167
+ return this.load().then(permissionCache => permissionCache.has(permissions, projectId));
168
+ }
169
+ /**
170
+ * Binds a property with the name <code>propertyName</code> of the <code>object</code>
171
+ * to a boolean value that is true if user has the permissions and false if she doesn't.
172
+ *
173
+ * @example
174
+ * <code>
175
+ * userPermissions.bindVariable($scope, 'canReadRole', 'role-read')
176
+ * </code>
177
+ *
178
+ * @param {object} object an object which property should be bound
179
+ * @param {string} propertyName a name of a property to bind
180
+ * @param {string} permissions space separated list of permissions
181
+ * @param {string=} projectId optional projectId. If absent the method checks
182
+ * if the given permissions are granted in any project.
183
+ *
184
+ * @return {Promise.<boolean>}
185
+ */
186
+
187
+
188
+ bindVariable(object, propertyName, permissions, projectId) {
189
+ object[propertyName] = false;
190
+ return this.check(permissions, projectId).then(permitted => {
191
+ object[propertyName] = permitted;
192
+ return permitted;
193
+ });
194
+ }
195
+
196
+ }
197
+
198
+ _defineProperty(Permissions, "API_PERMISSION_CACHE_PATH", 'permissions/cache');
199
+
200
+ export { Permissions as default };
@@ -0,0 +1,272 @@
1
+ import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+
3
+ /**
4
+ * Converts an array of cached permissions to a a map of a permission key
5
+ * to the respective cached permission.
6
+ *
7
+ * @param { {
8
+ * permission: {key: string},
9
+ * global: boolean?,
10
+ * projects: {id: string}[]?
11
+ * }[] } permissions
12
+ * @param {function} namesConverter a function, which maps a server-side permission name to client-side permission name
13
+ * @return {object} permission cache
14
+ * @private
15
+ */
16
+ class PermissionCache {
17
+ /**
18
+ * Convert an array of projects to a set of project ids.
19
+ *
20
+ * @param {object[]=} projects
21
+ * @return {object} a set of project ids
22
+ * @private
23
+ */
24
+ static _toProjectIdSet(projects) {
25
+ let projectIdSet = null;
26
+
27
+ if (projects) {
28
+ projectIdSet = {};
29
+
30
+ for (let i = 0; i < projects.length; i++) {
31
+ projectIdSet[projects[i].id] = true;
32
+ }
33
+ }
34
+
35
+ return projectIdSet;
36
+ }
37
+
38
+ constructor(permissions, namesConverter) {
39
+ this.namesConverter = namesConverter || (key => key);
40
+
41
+ this.set(permissions);
42
+ }
43
+
44
+ set(permissions) {
45
+ const permissionCache = (permissions || []).reduce((_permissionCache, permission) => {
46
+ const key = this.namesConverter(permission.permission.key);
47
+
48
+ if (key) {
49
+ _permissionCache[key] = {
50
+ global: permission.global,
51
+ projectIdSet: this.constructor._toProjectIdSet(permission.projects)
52
+ };
53
+ }
54
+
55
+ return _permissionCache;
56
+ }, {});
57
+ this._permissions = permissions;
58
+ this.permissionCache = permissionCache;
59
+ return this;
60
+ }
61
+
62
+ get() {
63
+ return this._permissions;
64
+ }
65
+ /**
66
+ * Checks if the current user has the given permissions in the project with the given id.
67
+ *
68
+ * @param {string} permissions space separated list of permissions
69
+ * @param {string=} projectId optional projectId. If absent the method checks
70
+ * if the given permission is granted in any project.
71
+ *
72
+ * @return {boolean}
73
+ */
74
+
75
+
76
+ has(permissions, projectId) {
77
+ const lexems = this.lex(permissions);
78
+
79
+ if (lexems.length === 0) {
80
+ return true;
81
+ }
82
+
83
+ try {
84
+ return this.or(lexems, projectId);
85
+ } catch (e) {
86
+ return false;
87
+ }
88
+ }
89
+ /**
90
+ * Lexes permission query string to an array of lexems.
91
+ *
92
+ * @param {string} query
93
+ * @return {string[]}
94
+ */
95
+
96
+
97
+ lex(query) {
98
+ const lexems = [];
99
+
100
+ if (query) {
101
+ let currentIdentifier = '';
102
+
103
+ for (let i = 0; i < query.length; i++) {
104
+ switch (query.charAt(i)) {
105
+ case ' ':
106
+ case '\t':
107
+ case '\n':
108
+ case '\r':
109
+ // Finish current token
110
+ if (currentIdentifier) {
111
+ lexems.push(currentIdentifier);
112
+ currentIdentifier = '';
113
+ } // Skip space
114
+
115
+
116
+ break;
117
+
118
+ case '(':
119
+ case ')':
120
+ case '&':
121
+ case '|':
122
+ case '!':
123
+ // Finish current token
124
+ if (currentIdentifier) {
125
+ lexems.push(currentIdentifier);
126
+ currentIdentifier = '';
127
+ } // Append operator
128
+
129
+
130
+ lexems.push(query.charAt(i));
131
+ break;
132
+
133
+ default:
134
+ currentIdentifier += query.charAt(i);
135
+ break;
136
+ }
137
+ }
138
+
139
+ if (currentIdentifier) {
140
+ lexems.push(currentIdentifier);
141
+ }
142
+ }
143
+
144
+ return lexems;
145
+ }
146
+ /*
147
+ or -> and ( '|' and )*
148
+ and -> not ( '&'? not )*
149
+ not -> '!'* term
150
+ term -> '(' or ')' | permission
151
+ permission -> [^()&|!\s]+
152
+ */
153
+
154
+ /**
155
+ * @param {string[]} lexems
156
+ * @param {string=} projectId
157
+ * @return {boolean}
158
+ */
159
+
160
+
161
+ or(lexems, projectId) {
162
+ let result = this.and(lexems, projectId);
163
+
164
+ while (lexems.length > 0 && lexems[0] !== ')') {
165
+ if (lexems.shift() !== '|') {
166
+ throw new Error('Operator \'|\' was expected');
167
+ }
168
+
169
+ result = this.and(lexems, projectId) || result;
170
+ }
171
+
172
+ return result;
173
+ }
174
+ /**
175
+ * @param {string[]} lexems
176
+ * @param {string=} projectId
177
+ * @return {boolean}
178
+ */
179
+
180
+
181
+ and(lexems, projectId) {
182
+ let result = this.not(lexems, projectId);
183
+
184
+ while (lexems.length > 0 && lexems[0] !== ')' && lexems[0] !== '|') {
185
+ // Expect optional '&'
186
+ if (lexems[0] === '&') {
187
+ lexems.shift();
188
+ }
189
+
190
+ result = this.not(lexems, projectId) && result;
191
+ }
192
+
193
+ return result;
194
+ }
195
+ /**
196
+ * @param {string[]} lexems
197
+ * @param {string=} projectId
198
+ * @return {boolean}
199
+ */
200
+
201
+
202
+ not(lexems, projectId) {
203
+ let notCounter = 0;
204
+
205
+ while (lexems.length > 0 && lexems[0] === '!') {
206
+ ++notCounter;
207
+ lexems.shift();
208
+ }
209
+
210
+ const result = this.term(lexems, projectId);
211
+ return notCounter % 2 === 0 ? result : !result;
212
+ }
213
+ /**
214
+ * @param {string[]} lexems
215
+ * @param {string=} projectId
216
+ * @return {boolean}
217
+ */
218
+
219
+
220
+ term(lexems, projectId) {
221
+ if (lexems.length === 0) {
222
+ throw new Error('Operand was expected');
223
+ }
224
+
225
+ const t = lexems.shift();
226
+ let result; // Nested parenthesized expression
227
+
228
+ if (t === '(') {
229
+ result = this.or(lexems, projectId); // Expect ')'
230
+
231
+ if (lexems.shift() !== ')') {
232
+ throw new Error('Operator \')\' was expected');
233
+ }
234
+ } else {
235
+ result = this.testPermission(t, projectId);
236
+ }
237
+
238
+ return result;
239
+ }
240
+ /**
241
+ * @param {string} permissionName
242
+ * @param {string=} projectId
243
+ * @return {boolean}
244
+ */
245
+
246
+
247
+ testPermission(permissionName, projectId) {
248
+ const permissionCache = this.permissionCache;
249
+ const cachedPermission = permissionCache[permissionName] || permissionCache[this.namesConverter(permissionName)]; // Hasn't the permission in any project
250
+
251
+ if (!cachedPermission) {
252
+ return false;
253
+ } // The permission is global or is given in the global project
254
+
255
+
256
+ if (cachedPermission.global) {
257
+ return true;
258
+ }
259
+
260
+ if (projectId) {
261
+ // if projectId is specified check that the permission is given in the project
262
+ return cachedPermission.projectIdSet && projectId in cachedPermission.projectIdSet;
263
+ } else {
264
+ return true;
265
+ }
266
+ }
267
+
268
+ }
269
+
270
+ _defineProperty(PermissionCache, "GLOBAL_PROJECT_ID", 'global');
271
+
272
+ export { PermissionCache as default };