@ytsaurus/ui 1.16.1 → 1.17.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 (371) hide show
  1. package/README.md +6 -11
  2. package/build/cjs/@types/core.d.ts +7 -7
  3. package/build/cjs/server/components/layout-config.js +3 -3
  4. package/build/cjs/server/components/layout-config.js.map +1 -1
  5. package/build/cjs/server/components/requestsSetup.js +13 -5
  6. package/build/cjs/server/components/requestsSetup.js.map +1 -1
  7. package/build/cjs/server/components/settings.d.ts +10 -5
  8. package/build/cjs/server/components/settings.js +24 -23
  9. package/build/cjs/server/components/settings.js.map +1 -1
  10. package/build/cjs/server/components/table.d.ts +3 -3
  11. package/build/cjs/server/components/table.js +4 -4
  12. package/build/cjs/server/components/table.js.map +1 -1
  13. package/build/cjs/server/components/yt-auth.d.ts +0 -2
  14. package/build/cjs/server/components/yt-auth.js +5 -14
  15. package/build/cjs/server/components/yt-auth.js.map +1 -1
  16. package/build/cjs/server/configs/common.js +5 -13
  17. package/build/cjs/server/configs/common.js.map +1 -1
  18. package/build/cjs/server/configs/local.js +0 -5
  19. package/build/cjs/server/configs/local.js.map +1 -1
  20. package/build/cjs/server/controllers/chyt-api.js +1 -1
  21. package/build/cjs/server/controllers/chyt-api.js.map +1 -1
  22. package/build/cjs/server/controllers/cluster-info.js +2 -2
  23. package/build/cjs/server/controllers/cluster-info.js.map +1 -1
  24. package/build/cjs/server/controllers/cluster-params.js +1 -1
  25. package/build/cjs/server/controllers/cluster-params.js.map +1 -1
  26. package/build/cjs/server/controllers/clusters.d.ts +1 -0
  27. package/build/cjs/server/controllers/clusters.js +24 -1
  28. package/build/cjs/server/controllers/clusters.js.map +1 -1
  29. package/build/cjs/server/controllers/home.js +10 -6
  30. package/build/cjs/server/controllers/home.js.map +1 -1
  31. package/build/cjs/server/controllers/login.js +18 -5
  32. package/build/cjs/server/controllers/login.js.map +1 -1
  33. package/build/cjs/server/controllers/odin-proxy-api.js +1 -1
  34. package/build/cjs/server/controllers/odin-proxy-api.js.map +1 -1
  35. package/build/cjs/server/controllers/scheduling-pools.js +2 -2
  36. package/build/cjs/server/controllers/scheduling-pools.js.map +1 -1
  37. package/build/cjs/server/controllers/settings.js +10 -10
  38. package/build/cjs/server/controllers/settings.js.map +1 -1
  39. package/build/cjs/server/controllers/table-column-preset.js +4 -3
  40. package/build/cjs/server/controllers/table-column-preset.js.map +1 -1
  41. package/build/cjs/server/controllers/yt-api.js +1 -1
  42. package/build/cjs/server/controllers/yt-api.js.map +1 -1
  43. package/build/cjs/server/controllers/yt-proxy-api.js +2 -2
  44. package/build/cjs/server/controllers/yt-proxy-api.js.map +1 -1
  45. package/build/cjs/server/index.js +11 -8
  46. package/build/cjs/server/index.js.map +1 -1
  47. package/build/cjs/server/middlewares/authorization.d.ts +1 -1
  48. package/build/cjs/server/middlewares/authorization.js +3 -2
  49. package/build/cjs/server/middlewares/authorization.js.map +1 -1
  50. package/build/cjs/server/middlewares/yt-auth.js +3 -2
  51. package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
  52. package/build/cjs/server/routes.js +26 -25
  53. package/build/cjs/server/routes.js.map +1 -1
  54. package/build/cjs/server/utils/index.d.ts +1 -1
  55. package/build/cjs/server/utils/index.js +12 -4
  56. package/build/cjs/server/utils/index.js.map +1 -1
  57. package/build/cjs/shared/yt-types.d.ts +1 -0
  58. package/build/cjs/ui/common/utils/settings-remote-provider.d.ts +5 -5
  59. package/build/cjs/ui/common/utils/settings-remote-provider.js +42 -16
  60. package/build/cjs/ui/common/utils/settings-remote-provider.js.map +1 -1
  61. package/build/cjs/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
  62. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
  63. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
  64. package/build/cjs/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
  65. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +7 -4
  66. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  67. package/build/cjs/ui/config/ui-settings.d.ts +1 -0
  68. package/build/cjs/ui/config/ui-settings.js +3 -2
  69. package/build/cjs/ui/config/ui-settings.js.map +1 -1
  70. package/build/cjs/ui/constants/index.d.ts +7 -0
  71. package/build/cjs/ui/constants/index.js +3 -1
  72. package/build/cjs/ui/constants/index.js.map +1 -1
  73. package/build/cjs/ui/containers/App/App.js +4 -3
  74. package/build/cjs/ui/containers/App/App.js.map +1 -1
  75. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
  76. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  77. package/build/cjs/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
  78. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js +3 -1
  79. package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  80. package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
  81. package/build/cjs/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
  82. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
  83. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js +11 -3
  84. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
  85. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
  86. package/build/cjs/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
  87. package/build/cjs/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
  88. package/build/cjs/ui/entries/main.js +4 -1
  89. package/build/cjs/ui/entries/main.js.map +1 -1
  90. package/build/cjs/ui/pages/operations/selectors.d.ts +5 -0
  91. package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
  92. package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
  93. package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
  94. package/build/cjs/ui/pages/system/Chunks/Chunks.d.ts +1 -1
  95. package/build/cjs/ui/store/actions/cluster-params.d.ts +1 -0
  96. package/build/cjs/ui/store/actions/cluster-params.js +13 -0
  97. package/build/cjs/ui/store/actions/cluster-params.js.map +1 -1
  98. package/build/cjs/ui/store/actions/clusters-menu.d.ts +1 -0
  99. package/build/cjs/ui/store/actions/clusters-menu.js +22 -2
  100. package/build/cjs/ui/store/actions/clusters-menu.js.map +1 -1
  101. package/build/cjs/ui/store/actions/global/index.d.ts +3 -1
  102. package/build/cjs/ui/store/actions/global/index.js +19 -4
  103. package/build/cjs/ui/store/actions/global/index.js.map +1 -1
  104. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
  105. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
  106. package/build/cjs/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
  107. package/build/cjs/ui/store/actions/navigation/content/table/table.js +2 -1
  108. package/build/cjs/ui/store/actions/navigation/content/table/table.js.map +1 -1
  109. package/build/cjs/ui/store/actions/settings/index.js +25 -19
  110. package/build/cjs/ui/store/actions/settings/index.js.map +1 -1
  111. package/build/cjs/ui/store/reducers/accounts/usage/index.d.ts +1 -1
  112. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
  113. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js +8 -0
  114. package/build/cjs/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
  115. package/build/cjs/ui/store/reducers/index.d.ts +5 -0
  116. package/build/cjs/ui/store/reducers/index.js.map +1 -1
  117. package/build/cjs/ui/store/reducers/settings.js +1 -1
  118. package/build/cjs/ui/store/reducers/settings.js.map +1 -1
  119. package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +40 -0
  120. package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
  121. package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
  122. package/build/cjs/ui/store/selectors/chyt/index.d.ts +35 -0
  123. package/build/cjs/ui/store/selectors/components/node/memory.d.ts +35 -0
  124. package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
  125. package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
  126. package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
  127. package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
  128. package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
  129. package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
  130. package/build/cjs/ui/store/selectors/global/index.d.ts +912 -0
  131. package/build/cjs/ui/store/selectors/global/index.js +10 -1
  132. package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
  133. package/build/cjs/ui/store/selectors/global/supported-features.d.ts +30 -0
  134. package/build/cjs/ui/store/selectors/modals/errors.d.ts +5 -0
  135. package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +5 -0
  136. package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
  137. package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
  138. package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
  139. package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +35 -0
  140. package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
  141. package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
  142. package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +10 -0
  143. package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
  144. package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
  145. package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
  146. package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
  147. package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
  148. package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
  149. package/build/cjs/ui/store/selectors/operations/index.d.ts +60 -0
  150. package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
  151. package/build/cjs/ui/store/selectors/operations/operation.d.ts +60 -0
  152. package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +15 -0
  153. package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
  154. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
  155. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
  156. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
  157. package/build/cjs/ui/store/selectors/scheduling/index.d.ts +5 -0
  158. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
  159. package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
  160. package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
  161. package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
  162. package/build/cjs/ui/store/selectors/thor/support.d.ts +25 -0
  163. package/build/esm/@types/core.d.ts +7 -7
  164. package/build/esm/server/components/layout-config.js +4 -3
  165. package/build/esm/server/components/layout-config.js.map +1 -1
  166. package/build/esm/server/components/requestsSetup.js +12 -5
  167. package/build/esm/server/components/requestsSetup.js.map +1 -1
  168. package/build/esm/server/components/settings.d.ts +10 -5
  169. package/build/esm/server/components/settings.js +33 -22
  170. package/build/esm/server/components/settings.js.map +1 -1
  171. package/build/esm/server/components/table.d.ts +3 -3
  172. package/build/esm/server/components/table.js +10 -10
  173. package/build/esm/server/components/table.js.map +1 -1
  174. package/build/esm/server/components/yt-auth.d.ts +0 -2
  175. package/build/esm/server/components/yt-auth.js +6 -11
  176. package/build/esm/server/components/yt-auth.js.map +1 -1
  177. package/build/esm/server/configs/common.js +4 -14
  178. package/build/esm/server/configs/common.js.map +1 -1
  179. package/build/esm/server/configs/local.js +0 -5
  180. package/build/esm/server/configs/local.js.map +1 -1
  181. package/build/esm/server/controllers/chyt-api.js +1 -1
  182. package/build/esm/server/controllers/chyt-api.js.map +1 -1
  183. package/build/esm/server/controllers/cluster-info.js +3 -3
  184. package/build/esm/server/controllers/cluster-info.js.map +1 -1
  185. package/build/esm/server/controllers/cluster-params.js +1 -1
  186. package/build/esm/server/controllers/cluster-params.js.map +1 -1
  187. package/build/esm/server/controllers/clusters.d.ts +1 -0
  188. package/build/esm/server/controllers/clusters.js +23 -0
  189. package/build/esm/server/controllers/clusters.js.map +1 -1
  190. package/build/esm/server/controllers/home.js +32 -28
  191. package/build/esm/server/controllers/home.js.map +1 -1
  192. package/build/esm/server/controllers/login.js +35 -21
  193. package/build/esm/server/controllers/login.js.map +1 -1
  194. package/build/esm/server/controllers/odin-proxy-api.js +1 -1
  195. package/build/esm/server/controllers/odin-proxy-api.js.map +1 -1
  196. package/build/esm/server/controllers/scheduling-pools.js +3 -3
  197. package/build/esm/server/controllers/scheduling-pools.js.map +1 -1
  198. package/build/esm/server/controllers/settings.js +26 -15
  199. package/build/esm/server/controllers/settings.js.map +1 -1
  200. package/build/esm/server/controllers/table-column-preset.js +15 -14
  201. package/build/esm/server/controllers/table-column-preset.js.map +1 -1
  202. package/build/esm/server/controllers/yt-api.js +1 -1
  203. package/build/esm/server/controllers/yt-api.js.map +1 -1
  204. package/build/esm/server/controllers/yt-proxy-api.js +3 -3
  205. package/build/esm/server/controllers/yt-proxy-api.js.map +1 -1
  206. package/build/esm/server/index.js +12 -8
  207. package/build/esm/server/index.js.map +1 -1
  208. package/build/esm/server/middlewares/authorization.d.ts +1 -1
  209. package/build/esm/server/middlewares/authorization.js +21 -16
  210. package/build/esm/server/middlewares/authorization.js.map +1 -1
  211. package/build/esm/server/middlewares/yt-auth.js +8 -7
  212. package/build/esm/server/middlewares/yt-auth.js.map +1 -1
  213. package/build/esm/server/routes.js +29 -26
  214. package/build/esm/server/routes.js.map +1 -1
  215. package/build/esm/server/utils/index.d.ts +1 -1
  216. package/build/esm/server/utils/index.js +12 -6
  217. package/build/esm/server/utils/index.js.map +1 -1
  218. package/build/esm/shared/yt-types.d.ts +1 -0
  219. package/build/esm/ui/common/utils/settings-remote-provider.d.ts +5 -5
  220. package/build/esm/ui/common/utils/settings-remote-provider.js +42 -16
  221. package/build/esm/ui/common/utils/settings-remote-provider.js.map +1 -1
  222. package/build/esm/ui/components/ElementsTable/ElementsTable.d.ts +1 -1
  223. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.d.ts +2 -1
  224. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js +11 -6
  225. package/build/esm/ui/components/Login/ChangePasswordFormPage/ChangePasswordFormPage.js.map +1 -1
  226. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +8 -5
  227. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  228. package/build/esm/ui/config/ui-settings.d.ts +1 -0
  229. package/build/esm/ui/config/ui-settings.js +2 -1
  230. package/build/esm/ui/config/ui-settings.js.map +1 -1
  231. package/build/esm/ui/constants/index.d.ts +7 -0
  232. package/build/esm/ui/constants/index.js +1 -0
  233. package/build/esm/ui/constants/index.js.map +1 -1
  234. package/build/esm/ui/containers/App/App.js +4 -3
  235. package/build/esm/ui/containers/App/App.js.map +1 -1
  236. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +39 -22
  237. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  238. package/build/esm/ui/containers/ClusterPage/ClusterPage.d.ts +3 -1
  239. package/build/esm/ui/containers/ClusterPage/ClusterPage.js +4 -2
  240. package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
  241. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css +5 -0
  242. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.css.map +1 -1
  243. package/build/esm/ui/containers/ClustersMenu/ClusterMenuHeader.scss +6 -0
  244. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.d.ts +3 -1
  245. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js +12 -4
  246. package/build/esm/ui/containers/ClustersMenu/ClustersMenuBody.js.map +1 -1
  247. package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.d.ts +4 -4
  248. package/build/esm/ui/containers/ClustersMenu/ClustersMenuHeader.js.map +1 -1
  249. package/build/esm/ui/containers/MaintenancePage/HandleRedirect.js.map +1 -1
  250. package/build/esm/ui/entries/main.js +4 -1
  251. package/build/esm/ui/entries/main.js.map +1 -1
  252. package/build/esm/ui/pages/operations/selectors.d.ts +5 -0
  253. package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +20 -0
  254. package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +5 -0
  255. package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +5 -0
  256. package/build/esm/ui/pages/system/Chunks/Chunks.d.ts +1 -1
  257. package/build/esm/ui/store/actions/cluster-params.d.ts +1 -0
  258. package/build/esm/ui/store/actions/cluster-params.js +12 -0
  259. package/build/esm/ui/store/actions/cluster-params.js.map +1 -1
  260. package/build/esm/ui/store/actions/clusters-menu.d.ts +1 -0
  261. package/build/esm/ui/store/actions/clusters-menu.js +22 -3
  262. package/build/esm/ui/store/actions/clusters-menu.js.map +1 -1
  263. package/build/esm/ui/store/actions/global/index.d.ts +3 -1
  264. package/build/esm/ui/store/actions/global/index.js +19 -4
  265. package/build/esm/ui/store/actions/global/index.js.map +1 -1
  266. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.d.ts +1 -1
  267. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js +6 -4
  268. package/build/esm/ui/store/actions/navigation/content/table/columns-preset.js.map +1 -1
  269. package/build/esm/ui/store/actions/navigation/content/table/table.js +2 -1
  270. package/build/esm/ui/store/actions/navigation/content/table/table.js.map +1 -1
  271. package/build/esm/ui/store/actions/settings/index.js +25 -19
  272. package/build/esm/ui/store/actions/settings/index.js.map +1 -1
  273. package/build/esm/ui/store/reducers/accounts/usage/index.d.ts +1 -1
  274. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.d.ts +4 -0
  275. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js +9 -1
  276. package/build/esm/ui/store/reducers/clusters-menu/clusters-menu.js.map +1 -1
  277. package/build/esm/ui/store/reducers/index.d.ts +5 -0
  278. package/build/esm/ui/store/reducers/index.js.map +1 -1
  279. package/build/esm/ui/store/reducers/settings.js +1 -1
  280. package/build/esm/ui/store/reducers/settings.js.map +1 -1
  281. package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +40 -0
  282. package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +40 -0
  283. package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +55 -0
  284. package/build/esm/ui/store/selectors/chyt/index.d.ts +35 -0
  285. package/build/esm/ui/store/selectors/components/node/memory.d.ts +35 -0
  286. package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +15 -0
  287. package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +5 -0
  288. package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +10 -0
  289. package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +30 -0
  290. package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +10 -0
  291. package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +25 -0
  292. package/build/esm/ui/store/selectors/global/index.d.ts +912 -0
  293. package/build/esm/ui/store/selectors/global/index.js +10 -1
  294. package/build/esm/ui/store/selectors/global/index.js.map +1 -1
  295. package/build/esm/ui/store/selectors/global/supported-features.d.ts +30 -0
  296. package/build/esm/ui/store/selectors/modals/errors.d.ts +5 -0
  297. package/build/esm/ui/store/selectors/navigation/content/document.d.ts +5 -0
  298. package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +15 -0
  299. package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +5 -0
  300. package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +20 -0
  301. package/build/esm/ui/store/selectors/navigation/content/table.d.ts +35 -0
  302. package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +15 -0
  303. package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +5 -0
  304. package/build/esm/ui/store/selectors/navigation/navigation.d.ts +10 -0
  305. package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +5 -0
  306. package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +5 -0
  307. package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +5 -0
  308. package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +10 -0
  309. package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +10 -0
  310. package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +5 -0
  311. package/build/esm/ui/store/selectors/operations/index.d.ts +60 -0
  312. package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +20 -0
  313. package/build/esm/ui/store/selectors/operations/operation.d.ts +60 -0
  314. package/build/esm/ui/store/selectors/operations/operations-list.d.ts +15 -0
  315. package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +40 -0
  316. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +5 -0
  317. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +5 -0
  318. package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +5 -0
  319. package/build/esm/ui/store/selectors/scheduling/index.d.ts +5 -0
  320. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +15 -0
  321. package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +30 -0
  322. package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +100 -0
  323. package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +75 -0
  324. package/build/esm/ui/store/selectors/thor/support.d.ts +25 -0
  325. package/dist/public/build/assets-manifest.json +12 -12
  326. package/dist/public/build/css/main.8a4cd357.css +2 -0
  327. package/dist/public/build/css/main.8a4cd357.css.map +1 -0
  328. package/dist/public/build/js/{861.9703a31c.chunk.js → 861.a0939319.chunk.js} +2 -2
  329. package/dist/public/build/js/861.a0939319.chunk.js.map +1 -0
  330. package/dist/public/build/js/main.c39cff0d.js +3 -0
  331. package/dist/public/build/js/{main.5b132a95.js.map → main.c39cff0d.js.map} +1 -1
  332. package/dist/public/build/js/runtime.0ac0f2e8.js +2 -0
  333. package/dist/public/build/js/{runtime.a87a1f88.js.map → runtime.0ac0f2e8.js.map} +1 -1
  334. package/dist/public/build/manifest.json +8 -8
  335. package/dist/server/components/layout-config.js +3 -3
  336. package/dist/server/components/requestsSetup.js +13 -5
  337. package/dist/server/components/settings.d.ts +10 -5
  338. package/dist/server/components/settings.js +24 -23
  339. package/dist/server/components/table.d.ts +3 -3
  340. package/dist/server/components/table.js +4 -4
  341. package/dist/server/components/yt-auth.d.ts +0 -2
  342. package/dist/server/components/yt-auth.js +5 -14
  343. package/dist/server/configs/common.js +5 -13
  344. package/dist/server/configs/local.js +0 -5
  345. package/dist/server/controllers/chyt-api.js +1 -1
  346. package/dist/server/controllers/cluster-info.js +2 -2
  347. package/dist/server/controllers/cluster-params.js +1 -1
  348. package/dist/server/controllers/clusters.d.ts +1 -0
  349. package/dist/server/controllers/clusters.js +24 -1
  350. package/dist/server/controllers/home.js +10 -6
  351. package/dist/server/controllers/login.js +18 -5
  352. package/dist/server/controllers/odin-proxy-api.js +1 -1
  353. package/dist/server/controllers/scheduling-pools.js +2 -2
  354. package/dist/server/controllers/settings.js +10 -10
  355. package/dist/server/controllers/table-column-preset.js +4 -3
  356. package/dist/server/controllers/yt-api.js +1 -1
  357. package/dist/server/controllers/yt-proxy-api.js +2 -2
  358. package/dist/server/index.js +11 -8
  359. package/dist/server/middlewares/authorization.d.ts +1 -1
  360. package/dist/server/middlewares/authorization.js +3 -2
  361. package/dist/server/middlewares/yt-auth.js +3 -2
  362. package/dist/server/routes.js +26 -25
  363. package/dist/server/utils/index.d.ts +1 -1
  364. package/dist/server/utils/index.js +12 -4
  365. package/package.json +2 -2
  366. package/dist/public/build/css/main.4aa70d7b.css +0 -2
  367. package/dist/public/build/css/main.4aa70d7b.css.map +0 -1
  368. package/dist/public/build/js/861.9703a31c.chunk.js.map +0 -1
  369. package/dist/public/build/js/main.5b132a95.js +0 -3
  370. package/dist/public/build/js/runtime.a87a1f88.js +0 -2
  371. /package/dist/public/build/js/{main.5b132a95.js.LICENSE.txt → main.c39cff0d.js.LICENSE.txt} +0 -0
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  interface Props {
3
3
  theme?: 'light' | 'dark';
4
+ cluster: string;
4
5
  }
5
- export declare function ChangePasswordFormPage({ theme }: Props): React.JSX.Element;
6
+ export declare function ChangePasswordFormPage({ theme, cluster }: Props): React.JSX.Element;
6
7
  export {};
@@ -30,7 +30,8 @@ var validate = function validate(_ref) {
30
30
  return result;
31
31
  };
32
32
  function ChangePasswordForm(_ref2) {
33
- var theme = _ref2.theme;
33
+ var theme = _ref2.theme,
34
+ cluster = _ref2.cluster;
34
35
  var history = useHistory();
35
36
  var location = useLocation();
36
37
  var _useState = useState(''),
@@ -83,7 +84,8 @@ function ChangePasswordForm(_ref2) {
83
84
  setLoading(true);
84
85
  changePassword({
85
86
  newPassword: newPassword,
86
- currentPassword: currentPassword
87
+ currentPassword: currentPassword,
88
+ cluster: cluster
87
89
  }).then(function () {
88
90
  goBack();
89
91
  wrapApiPromiseByToaster(Promise.resolve(), {
@@ -183,18 +185,21 @@ function ChangePasswordForm(_ref2) {
183
185
  }
184
186
  function changePassword(_ref4) {
185
187
  var newPassword = _ref4.newPassword,
186
- currentPassword = _ref4.currentPassword;
187
- return axios.post("/api/yt/change-password", {
188
+ currentPassword = _ref4.currentPassword,
189
+ cluster = _ref4.cluster;
190
+ return axios.post("/api/yt/".concat(cluster, "/change-password"), {
188
191
  newPassword: newPassword,
189
192
  currentPassword: currentPassword
190
193
  });
191
194
  }
192
195
  export function ChangePasswordFormPage(_ref5) {
193
- var theme = _ref5.theme;
196
+ var theme = _ref5.theme,
197
+ cluster = _ref5.cluster;
194
198
  return /*#__PURE__*/_jsx(LoginPageWrapper, {
195
199
  theme: theme,
196
200
  children: /*#__PURE__*/_jsx(ChangePasswordForm, {
197
- theme: theme
201
+ theme: theme,
202
+ cluster: cluster
198
203
  })
199
204
  });
200
205
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useState","Button","TextInput","cn","LoginPageWrapper","axios","useHistory","useLocation","wrapApiPromiseByToaster","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","block","validate","_ref","currentPassword","newPassword","confirmPassword","result","ChangePasswordForm","_ref2","theme","history","location","_useState","_useState2","_slicedToArray","setCurrentPassword","_useState3","_useState4","setNewPassword","_useState5","_useState6","setConfirmPassword","_React$useState","_React$useState2","errors","setErrors","_useState7","_useState8","loading","setLoading","goBack","key","push","handleFormSubmit","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","e","validationErrors","wrap","_callee$","_context","prev","next","preventDefault","_isEmpty","abrupt","changePassword","then","Promise","resolve","skipSuccessToast","toasterName","successTitle","error","_error$response$data$","_error$response","msg","response","data","message","stop","_x","apply","arguments","children","className","onSubmit","password","type","size","placeholder","name","value","onUpdate","solid","width","pin","view","outline","onClick","_ref4","post","ChangePasswordFormPage","_ref5"],"sources":["ChangePasswordFormPage.tsx"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {Button, TextInput} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport LoginPageWrapper from '../LoginPageWrapper/LoginPageWrapper';\nimport axios from 'axios';\nimport {useHistory, useLocation} from 'react-router';\nimport {wrapApiPromiseByToaster} from '../../../utils/utils';\nimport _ from 'lodash';\n\nconst block = cn('login-page');\n\ninterface Props {\n theme?: 'light' | 'dark';\n}\n\ninterface ErrorFields {\n currentPassword?: string;\n newPassword?: string;\n confirmPassword?: string;\n}\n\nconst validate = ({\n currentPassword,\n newPassword,\n confirmPassword,\n}: Record<keyof ErrorFields, string>): ErrorFields => {\n const result: ErrorFields = {};\n if (currentPassword === '') {\n result.currentPassword = 'Current password must not be empty';\n }\n\n if (newPassword === '') {\n result.newPassword = 'New password must not be empty';\n }\n\n if (newPassword !== confirmPassword) {\n result.confirmPassword = 'New and confirm password must be equal';\n }\n\n return result;\n};\n\nfunction ChangePasswordForm({theme}: Props) {\n const history = useHistory();\n const location = useLocation();\n const [currentPassword, setCurrentPassword] = useState('');\n const [newPassword, setNewPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n const [errors, setErrors] = React.useState<ErrorFields>({});\n const [loading, setLoading] = useState<boolean>(false);\n\n const goBack = useCallback(() => {\n if (location.key) {\n history.goBack();\n } else {\n history.push('/');\n }\n }, [history, location]);\n\n const handleFormSubmit = useCallback(\n async (e: React.FormEvent) => {\n e.preventDefault();\n setErrors({});\n\n const validationErrors = validate({currentPassword, newPassword, confirmPassword});\n if (!_.isEmpty(validationErrors)) {\n setErrors(validationErrors);\n return;\n }\n\n setLoading(true);\n changePassword({newPassword, currentPassword})\n .then(() => {\n goBack();\n wrapApiPromiseByToaster(Promise.resolve(), {\n skipSuccessToast: false,\n toasterName: 'change-password-success',\n successTitle: 'Password was changed.',\n });\n })\n .catch((error: any) => {\n const msg = error.response?.data?.message ?? error.message;\n setErrors({currentPassword: msg});\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [currentPassword, newPassword, confirmPassword, goBack],\n );\n\n return (\n <>\n <h1 className={block('title')}>Create new password</h1>\n <p className={block('text')}>\n Your new password must be different from previous used passwords.\n </p>\n <form onSubmit={handleFormSubmit}>\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"Current password\"\n name=\"current-password\"\n value={currentPassword}\n onUpdate={setCurrentPassword}\n error={errors.currentPassword}\n />\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"New password\"\n name=\"new-password\"\n value={newPassword}\n onUpdate={setNewPassword}\n error={errors.newPassword}\n />\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"Confirm password\"\n name=\"confirm-password\"\n value={confirmPassword}\n onUpdate={setConfirmPassword}\n error={errors.confirmPassword}\n />\n <Button\n className={block('button', {solid: true})}\n type=\"submit\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n view={theme === 'light' ? 'action' : 'normal-contrast'}\n loading={loading}\n >\n Reset Password\n </Button>\n </form>\n <div className={block('navigate')}>\n <Button\n className={block('button', {outline: true})}\n type=\"button\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n onClick={goBack}\n view=\"outlined\"\n >\n Back\n </Button>\n </div>\n </>\n );\n}\n\nfunction changePassword({\n newPassword,\n currentPassword,\n}: {\n newPassword: string;\n currentPassword: string;\n}) {\n return axios.post(`/api/yt/change-password`, {\n newPassword,\n currentPassword,\n });\n}\n\nexport function ChangePasswordFormPage({theme}: Props) {\n return (\n <LoginPageWrapper theme={theme}>\n <ChangePasswordForm theme={theme} />\n </LoginPageWrapper>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useState","Button","TextInput","cn","LoginPageWrapper","axios","useHistory","useLocation","wrapApiPromiseByToaster","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","block","validate","_ref","currentPassword","newPassword","confirmPassword","result","ChangePasswordForm","_ref2","theme","cluster","history","location","_useState","_useState2","_slicedToArray","setCurrentPassword","_useState3","_useState4","setNewPassword","_useState5","_useState6","setConfirmPassword","_React$useState","_React$useState2","errors","setErrors","_useState7","_useState8","loading","setLoading","goBack","key","push","handleFormSubmit","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","e","validationErrors","wrap","_callee$","_context","prev","next","preventDefault","_isEmpty","abrupt","changePassword","then","Promise","resolve","skipSuccessToast","toasterName","successTitle","error","_error$response$data$","_error$response","msg","response","data","message","stop","_x","apply","arguments","children","className","onSubmit","password","type","size","placeholder","name","value","onUpdate","solid","width","pin","view","outline","onClick","_ref4","post","concat","ChangePasswordFormPage","_ref5"],"sources":["ChangePasswordFormPage.tsx"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {Button, TextInput} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport LoginPageWrapper from '../LoginPageWrapper/LoginPageWrapper';\nimport axios from 'axios';\nimport {useHistory, useLocation} from 'react-router';\nimport {wrapApiPromiseByToaster} from '../../../utils/utils';\nimport _ from 'lodash';\n\nconst block = cn('login-page');\n\ninterface Props {\n theme?: 'light' | 'dark';\n cluster: string;\n}\n\ninterface ErrorFields {\n currentPassword?: string;\n newPassword?: string;\n confirmPassword?: string;\n}\n\nconst validate = ({\n currentPassword,\n newPassword,\n confirmPassword,\n}: Record<keyof ErrorFields, string>): ErrorFields => {\n const result: ErrorFields = {};\n if (currentPassword === '') {\n result.currentPassword = 'Current password must not be empty';\n }\n\n if (newPassword === '') {\n result.newPassword = 'New password must not be empty';\n }\n\n if (newPassword !== confirmPassword) {\n result.confirmPassword = 'New and confirm password must be equal';\n }\n\n return result;\n};\n\nfunction ChangePasswordForm({theme, cluster}: Props) {\n const history = useHistory();\n const location = useLocation();\n const [currentPassword, setCurrentPassword] = useState('');\n const [newPassword, setNewPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n const [errors, setErrors] = React.useState<ErrorFields>({});\n const [loading, setLoading] = useState<boolean>(false);\n\n const goBack = useCallback(() => {\n if (location.key) {\n history.goBack();\n } else {\n history.push('/');\n }\n }, [history, location]);\n\n const handleFormSubmit = useCallback(\n async (e: React.FormEvent) => {\n e.preventDefault();\n setErrors({});\n\n const validationErrors = validate({currentPassword, newPassword, confirmPassword});\n if (!_.isEmpty(validationErrors)) {\n setErrors(validationErrors);\n return;\n }\n\n setLoading(true);\n changePassword({newPassword, currentPassword, cluster})\n .then(() => {\n goBack();\n wrapApiPromiseByToaster(Promise.resolve(), {\n skipSuccessToast: false,\n toasterName: 'change-password-success',\n successTitle: 'Password was changed.',\n });\n })\n .catch((error: any) => {\n const msg = error.response?.data?.message ?? error.message;\n setErrors({currentPassword: msg});\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [currentPassword, newPassword, confirmPassword, goBack],\n );\n\n return (\n <>\n <h1 className={block('title')}>Create new password</h1>\n <p className={block('text')}>\n Your new password must be different from previous used passwords.\n </p>\n <form onSubmit={handleFormSubmit}>\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"Current password\"\n name=\"current-password\"\n value={currentPassword}\n onUpdate={setCurrentPassword}\n error={errors.currentPassword}\n />\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"New password\"\n name=\"new-password\"\n value={newPassword}\n onUpdate={setNewPassword}\n error={errors.newPassword}\n />\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"Confirm password\"\n name=\"confirm-password\"\n value={confirmPassword}\n onUpdate={setConfirmPassword}\n error={errors.confirmPassword}\n />\n <Button\n className={block('button', {solid: true})}\n type=\"submit\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n view={theme === 'light' ? 'action' : 'normal-contrast'}\n loading={loading}\n >\n Reset Password\n </Button>\n </form>\n <div className={block('navigate')}>\n <Button\n className={block('button', {outline: true})}\n type=\"button\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n onClick={goBack}\n view=\"outlined\"\n >\n Back\n </Button>\n </div>\n </>\n );\n}\n\nfunction changePassword({\n newPassword,\n currentPassword,\n cluster,\n}: {\n newPassword: string;\n currentPassword: string;\n cluster: string;\n}) {\n return axios.post(`/api/yt/${cluster}/change-password`, {\n newPassword,\n currentPassword,\n });\n}\n\nexport function ChangePasswordFormPage({theme, cluster}: Props) {\n return (\n <LoginPageWrapper theme={theme}>\n <ChangePasswordForm theme={theme} cluster={cluster} />\n </LoginPageWrapper>\n );\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { useDispatch, useSelector } from 'react-redux';
7
7
  import { Button, Text, TextInput } from '@gravity-ui/uikit';
8
8
  import { onSuccessLogin } from '../../../store/actions/global';
9
9
  import ytLocalStorage from '../../../utils/yt-local-storage';
10
- import { getOAuthButtonLabel, getOAuthEnabled } from '../../../store/selectors/global';
10
+ import { getGlobalYTAuthCluster, getOAuthButtonLabel, getOAuthEnabled } from '../../../store/selectors/global';
11
11
  import LoginPageWrapper from '../LoginPageWrapper/LoginPageWrapper';
12
12
  import isEmpty from 'lodash/isEmpty';
13
13
  import cn from 'bem-cn-lite';
@@ -28,7 +28,7 @@ var validate = function validate(_ref) {
28
28
  return result;
29
29
  };
30
30
  function LoginForm(_ref2) {
31
- var _ytLocalStorage$get;
31
+ var _ytLocalStorage$get, _useSelector;
32
32
  var theme = _ref2.theme;
33
33
  var dispatch = useDispatch();
34
34
  var _useState = useState(((_ytLocalStorage$get = ytLocalStorage.get('loginDialog')) === null || _ytLocalStorage$get === void 0 ? void 0 : _ytLocalStorage$get.username) || ''),
@@ -37,6 +37,7 @@ function LoginForm(_ref2) {
37
37
  setUsername = _useState2[1];
38
38
  var allowOAuth = useSelector(getOAuthEnabled);
39
39
  var buttonLabel = useSelector(getOAuthButtonLabel);
40
+ var ytAuthCluster = (_useSelector = useSelector(getGlobalYTAuthCluster)) !== null && _useSelector !== void 0 ? _useSelector : '';
40
41
  var _useState3 = useState(''),
41
42
  _useState4 = _slicedToArray(_useState3, 2),
42
43
  password = _useState4[0],
@@ -63,7 +64,8 @@ function LoginForm(_ref2) {
63
64
  setLoading(true);
64
65
  authorize({
65
66
  username: username,
66
- password: password
67
+ password: password,
68
+ ytAuthCluster: ytAuthCluster
67
69
  }).then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
68
70
  return _regeneratorRuntime.wrap(function _callee$(_context) {
69
71
  while (1) switch (_context.prev = _context.next) {
@@ -157,8 +159,9 @@ function LoginForm(_ref2) {
157
159
  }
158
160
  function authorize(_ref4) {
159
161
  var username = _ref4.username,
160
- password = _ref4.password;
161
- return axios.post("/api/yt/login", {
162
+ password = _ref4.password,
163
+ ytAuthCluster = _ref4.ytAuthCluster;
164
+ return axios.post("/api/yt/".concat(ytAuthCluster, "/login"), {
162
165
  username: username,
163
166
  password: password
164
167
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useState","axios","useDispatch","useSelector","Button","Text","TextInput","onSuccessLogin","ytLocalStorage","getOAuthButtonLabel","getOAuthEnabled","LoginPageWrapper","isEmpty","cn","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","block","validate","_ref","username","password","result","LoginForm","_ref2","_ytLocalStorage$get","theme","dispatch","_useState","get","_useState2","_slicedToArray","setUsername","allowOAuth","buttonLabel","_useState3","_useState4","setPassword","_useState5","_useState6","loading","setLoading","_React$useState","_React$useState2","errors","setErrors","handleFormSubmit","e","preventDefault","validationErrors","authorize","then","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","set","stop","error","response","data","message","children","className","onSubmit","type","size","placeholder","name","value","onUpdate","solid","submit","width","pin","view","link","href","as","color","_ref4","post","LoginFormPage","_ref5"],"sources":["LoginFormPage.tsx"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport axios, {AxiosError} from 'axios';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Button, Text, TextInput} from '@gravity-ui/uikit';\nimport {onSuccessLogin} from '../../../store/actions/global';\nimport ytLocalStorage from '../../../utils/yt-local-storage';\nimport {getOAuthButtonLabel, getOAuthEnabled} from '../../../store/selectors/global';\nimport LoginPageWrapper from '../LoginPageWrapper/LoginPageWrapper';\nimport isEmpty from 'lodash/isEmpty';\n\nimport cn from 'bem-cn-lite';\n\nconst block = cn('login-page');\n\ninterface ErrorFields {\n username?: string;\n password?: string;\n response?: string;\n}\n\ninterface Props {\n theme?: 'light' | 'dark';\n}\n\nconst validate = ({\n username,\n password,\n}: Record<keyof Omit<ErrorFields, 'response'>, string>): ErrorFields => {\n const result: ErrorFields = {};\n if (username === '') {\n result.username = 'Username must not be empty';\n }\n\n if (password === '') {\n result.password = 'Password must not be empty';\n }\n\n return result;\n};\n\nfunction LoginForm({theme}: Props) {\n const dispatch = useDispatch();\n const [username, setUsername] = useState(ytLocalStorage.get('loginDialog')?.username || '');\n const allowOAuth = useSelector(getOAuthEnabled);\n const buttonLabel = useSelector(getOAuthButtonLabel);\n const [password, setPassword] = useState('');\n const [loading, setLoading] = useState<boolean>(false);\n const [errors, setErrors] = React.useState<ErrorFields>({});\n\n const handleFormSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n setErrors({});\n const validationErrors = validate({username, password});\n if (!isEmpty(validationErrors)) {\n setErrors(validationErrors);\n return;\n }\n setLoading(true);\n authorize({username, password})\n .then(async () => {\n ytLocalStorage.set('loginDialog', {username});\n dispatch(onSuccessLogin(username));\n })\n .catch((error: AxiosError<Error>) => {\n if (error.response && error.response.data && error.response.data.message) {\n setErrors({\n response: error.response.data.message,\n });\n } else {\n setErrors({response: error.message});\n }\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [username, password, dispatch],\n );\n\n return (\n <>\n <h1 className={block('title')}>Welcome to YTsaurus!</h1>\n <p className={block('text')}>\n A unified scalable platform for storing and processing large volumes of data.\n <br />\n <br />\n Login to your account.\n </p>\n <form onSubmit={handleFormSubmit}>\n <TextInput\n className={block('field')}\n type=\"text\"\n size=\"l\"\n placeholder=\"Login\"\n name=\"username\"\n value={username}\n onUpdate={setUsername}\n error={errors.username}\n />\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"Password\"\n name=\"password\"\n value={password}\n onUpdate={setPassword}\n error={errors.password}\n />\n\n <Button\n className={block('button', {solid: true, submit: true})}\n type=\"submit\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n view={theme === 'light' ? 'action' : 'normal-contrast'}\n loading={loading}\n >\n Login\n </Button>\n\n {allowOAuth && (\n <Button\n className={block('button', {solid: true, link: true, submit: true})}\n type=\"submit\"\n href=\"/oauth/login\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n view={theme === 'light' ? 'action' : 'normal-contrast'}\n loading={loading}\n >\n {buttonLabel || 'Login via SSO'}\n </Button>\n )}\n\n {errors.response && (\n <Text as=\"p\" color=\"danger\" className={block('error')}>\n {errors.response}\n </Text>\n )}\n </form>\n </>\n );\n}\n\nfunction authorize({username, password}: {username: string; password: string}) {\n return axios.post(`/api/yt/login`, {\n username,\n password,\n });\n}\n\nexport function LoginFormPage({theme}: Props) {\n return (\n <LoginPageWrapper theme={theme}>\n <LoginForm theme={theme} />\n </LoginPageWrapper>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useState","axios","useDispatch","useSelector","Button","Text","TextInput","onSuccessLogin","ytLocalStorage","getGlobalYTAuthCluster","getOAuthButtonLabel","getOAuthEnabled","LoginPageWrapper","isEmpty","cn","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","block","validate","_ref","username","password","result","LoginForm","_ref2","_ytLocalStorage$get","_useSelector","theme","dispatch","_useState","get","_useState2","_slicedToArray","setUsername","allowOAuth","buttonLabel","ytAuthCluster","_useState3","_useState4","setPassword","_useState5","_useState6","loading","setLoading","_React$useState","_React$useState2","errors","setErrors","handleFormSubmit","e","preventDefault","validationErrors","authorize","then","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","set","stop","error","response","data","message","children","className","onSubmit","type","size","placeholder","name","value","onUpdate","solid","submit","width","pin","view","link","href","as","color","_ref4","post","concat","LoginFormPage","_ref5"],"sources":["LoginFormPage.tsx"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport axios, {AxiosError} from 'axios';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Button, Text, TextInput} from '@gravity-ui/uikit';\nimport {onSuccessLogin} from '../../../store/actions/global';\nimport ytLocalStorage from '../../../utils/yt-local-storage';\nimport {\n getGlobalYTAuthCluster,\n getOAuthButtonLabel,\n getOAuthEnabled,\n} from '../../../store/selectors/global';\nimport LoginPageWrapper from '../LoginPageWrapper/LoginPageWrapper';\nimport isEmpty from 'lodash/isEmpty';\n\nimport cn from 'bem-cn-lite';\n\nconst block = cn('login-page');\n\ninterface ErrorFields {\n username?: string;\n password?: string;\n response?: string;\n}\n\ninterface Props {\n theme?: 'light' | 'dark';\n}\n\nconst validate = ({\n username,\n password,\n}: Record<keyof Omit<ErrorFields, 'response'>, string>): ErrorFields => {\n const result: ErrorFields = {};\n if (username === '') {\n result.username = 'Username must not be empty';\n }\n\n if (password === '') {\n result.password = 'Password must not be empty';\n }\n\n return result;\n};\n\nfunction LoginForm({theme}: Props) {\n const dispatch = useDispatch();\n const [username, setUsername] = useState(ytLocalStorage.get('loginDialog')?.username || '');\n const allowOAuth = useSelector(getOAuthEnabled);\n const buttonLabel = useSelector(getOAuthButtonLabel);\n const ytAuthCluster = useSelector(getGlobalYTAuthCluster) ?? '';\n const [password, setPassword] = useState('');\n const [loading, setLoading] = useState<boolean>(false);\n const [errors, setErrors] = React.useState<ErrorFields>({});\n\n const handleFormSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n setErrors({});\n const validationErrors = validate({username, password});\n if (!isEmpty(validationErrors)) {\n setErrors(validationErrors);\n return;\n }\n setLoading(true);\n authorize({username, password, ytAuthCluster})\n .then(async () => {\n ytLocalStorage.set('loginDialog', {username});\n dispatch(onSuccessLogin(username));\n })\n .catch((error: AxiosError<Error>) => {\n if (error.response && error.response.data && error.response.data.message) {\n setErrors({\n response: error.response.data.message,\n });\n } else {\n setErrors({response: error.message});\n }\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [username, password, dispatch],\n );\n\n return (\n <>\n <h1 className={block('title')}>Welcome to YTsaurus!</h1>\n <p className={block('text')}>\n A unified scalable platform for storing and processing large volumes of data.\n <br />\n <br />\n Login to your account.\n </p>\n <form onSubmit={handleFormSubmit}>\n <TextInput\n className={block('field')}\n type=\"text\"\n size=\"l\"\n placeholder=\"Login\"\n name=\"username\"\n value={username}\n onUpdate={setUsername}\n error={errors.username}\n />\n <TextInput\n className={block('field', {password: true})}\n type=\"password\"\n size=\"l\"\n placeholder=\"Password\"\n name=\"password\"\n value={password}\n onUpdate={setPassword}\n error={errors.password}\n />\n\n <Button\n className={block('button', {solid: true, submit: true})}\n type=\"submit\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n view={theme === 'light' ? 'action' : 'normal-contrast'}\n loading={loading}\n >\n Login\n </Button>\n\n {allowOAuth && (\n <Button\n className={block('button', {solid: true, link: true, submit: true})}\n type=\"submit\"\n href=\"/oauth/login\"\n width=\"max\"\n size=\"l\"\n pin=\"circle-circle\"\n view={theme === 'light' ? 'action' : 'normal-contrast'}\n loading={loading}\n >\n {buttonLabel || 'Login via SSO'}\n </Button>\n )}\n\n {errors.response && (\n <Text as=\"p\" color=\"danger\" className={block('error')}>\n {errors.response}\n </Text>\n )}\n </form>\n </>\n );\n}\n\nfunction authorize({\n username,\n password,\n ytAuthCluster,\n}: {\n username: string;\n password: string;\n ytAuthCluster: string;\n}) {\n return axios.post(`/api/yt/${ytAuthCluster}/login`, {\n username,\n password,\n });\n}\n\nexport function LoginFormPage({theme}: Props) {\n return (\n <LoginPageWrapper theme={theme}>\n <LoginForm theme={theme} />\n </LoginPageWrapper>\n );\n}\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { ConfigData } from '../../shared/yt-types';
2
2
  export declare function getConfigData(): ConfigData;
3
3
  export declare const uiSettings: Partial<Required<ConfigData>['uiSettings']>;
4
+ export declare const userSettingsCluster: ConfigData['userSettingsCluster'];
@@ -1,6 +1,7 @@
1
- var _getConfigData;
1
+ var _getConfigData, _getConfigData2;
2
2
  export function getConfigData() {
3
3
  return window.__DATA__;
4
4
  }
5
5
  export var uiSettings = ((_getConfigData = getConfigData()) === null || _getConfigData === void 0 ? void 0 : _getConfigData.uiSettings) || {};
6
+ export var userSettingsCluster = (_getConfigData2 = getConfigData()) === null || _getConfigData2 === void 0 ? void 0 : _getConfigData2.userSettingsCluster;
6
7
  // #sourceMappingURL=ui-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getConfigData","window","__DATA__","uiSettings","_getConfigData"],"sources":["ui-settings.ts"],"sourcesContent":["import type {ConfigData} from '../../shared/yt-types';\n\nexport function getConfigData(): ConfigData {\n return (window as any).__DATA__;\n}\n\nexport const uiSettings: Partial<Required<ConfigData>['uiSettings']> =\n getConfigData()?.uiSettings || {};\n"],"mappings":";AAEA,OAAO,SAASA,aAAaA,CAAA,EAAe;EACxC,OAAQC,MAAM,CAASC,QAAQ;AACnC;AAEA,OAAO,IAAMC,UAAuD,GAChE,EAAAC,cAAA,GAAAJ,aAAa,CAAC,CAAC,cAAAI,cAAA,uBAAfA,cAAA,CAAiBD,UAAU,KAAI,CAAC,CAAC"}
1
+ {"version":3,"names":["getConfigData","window","__DATA__","uiSettings","_getConfigData","userSettingsCluster","_getConfigData2"],"sources":["ui-settings.ts"],"sourcesContent":["import type {ConfigData} from '../../shared/yt-types';\n\nexport function getConfigData(): ConfigData {\n return (window as any).__DATA__;\n}\n\nexport const uiSettings: Partial<Required<ConfigData>['uiSettings']> =\n getConfigData()?.uiSettings || {};\n\nexport const userSettingsCluster: ConfigData['userSettingsCluster'] =\n getConfigData()?.userSettingsCluster;\n"],"mappings":";AAEA,OAAO,SAASA,aAAaA,CAAA,EAAe;EACxC,OAAQC,MAAM,CAASC,QAAQ;AACnC;AAEA,OAAO,IAAMC,UAAuD,GAChE,EAAAC,cAAA,GAAAJ,aAAa,CAAC,CAAC,cAAAI,cAAA,uBAAfA,cAAA,CAAiBD,UAAU,KAAI,CAAC,CAAC;AAErC,OAAO,IAAME,mBAAsD,IAAAC,eAAA,GAC/DN,aAAa,CAAC,CAAC,cAAAM,eAAA,uBAAfA,eAAA,CAAiBD,mBAAmB"}
@@ -75,6 +75,13 @@ export declare const FETCH_CLUSTER_AVAILABILITY: {
75
75
  readonly FAILURE: `${string}_FAILURE`;
76
76
  readonly CANCELLED: `${string}_CANCELLED`;
77
77
  };
78
+ export declare const FETCH_CLUSTER_AUTH_STATUS: {
79
+ readonly REQUEST: "FETCH_CLUSTER_AUTH_STATUS_REQUEST";
80
+ readonly PARTITION: "FETCH_CLUSTER_AUTH_STATUS_PARTITION";
81
+ readonly SUCCESS: "FETCH_CLUSTER_AUTH_STATUS_SUCCESS";
82
+ readonly FAILURE: "FETCH_CLUSTER_AUTH_STATUS_FAILURE";
83
+ readonly CANCELLED: "FETCH_CLUSTER_AUTH_STATUS_CANCELLED";
84
+ };
78
85
  export declare const UPDATE_VIEWMODE: string;
79
86
  export declare const UPDATE_FILTER: string;
80
87
  export declare const SPLIT_PANE_ID = "split-portal";
@@ -66,6 +66,7 @@ export var MediumType = {
66
66
  var CLUSTER_MENU_PREFIX = createPrefix('CLUSTER_MENU');
67
67
  export var FETCH_CLUSTER_VERSIONS = createActionTypes(CLUSTER_MENU_PREFIX + 'FETCH_CLUSTER_VERSIONS');
68
68
  export var FETCH_CLUSTER_AVAILABILITY = createActionTypes(CLUSTER_MENU_PREFIX + 'FETCH_CLUSTER_AVAILABILITY');
69
+ export var FETCH_CLUSTER_AUTH_STATUS = createActionTypes('FETCH_CLUSTER_AUTH_STATUS');
69
70
  export var UPDATE_VIEWMODE = CLUSTER_MENU_PREFIX + 'UPDATE_VIEWMODE';
70
71
  export var UPDATE_FILTER = CLUSTER_MENU_PREFIX + 'UPDATE_FILTER';
71
72
  export var SPLIT_PANE_ID = 'split-portal';
@@ -1 +1 @@
1
- {"version":3,"names":["createActionTypes","createPrefix","Page","HEADER_HEIGHT","STICKY_VERTICAL_PADDING","KeyCode","ESCAPE","ENTER","ARROW_UP","ARROW_DOWN","TAB","LOADING_STATUS","UNINITIALIZED","LOADING","LOADED","ERROR","CANCELLED","LOAD_ERROR","GENERAL","CONNECTION","AUTHENTICATION","TYPED_OUTPUT_FORMAT","$value","$attributes","stringify","annotate_with_types","MENU_PREFIX","SPLIT_MENU_ITEMS","JOIN_MENU_ITEMS","SETTINGS_PREFIX","SET_SETTING_VALUE","concat","UNSET_SETTING_VALUE","UPDATE_SETTING_DATA","GLOBAL_PREFIX","UPDATE_TITLE","BLOCK_USER","BAN_USER","INC_NAV_BLOCKER_COUNTER","DEC_NAV_BLOCKER_COUNTER","SET_MAINTENANCE_PAGE_EVENT","SPLIT_SCREEN","MERGE_SCREEN","INIT_CLUSTER_PARAMS","UPDATE_CLUSTER","_objectSpread","FINAL_SUCCESS","GLOBAL_SET_THEME","MediumType","DEFAULT","ALL","CLUSTER_MENU_PREFIX","FETCH_CLUSTER_VERSIONS","FETCH_CLUSTER_AVAILABILITY","UPDATE_VIEWMODE","UPDATE_FILTER","SPLIT_PANE_ID","DASHBOARD_VIEW_CONTEXT","GENERIC_ERROR_MESSAGE"],"sources":["index.ts"],"sourcesContent":["import createActionTypes, {createPrefix} from './utils';\nexport {Page} from '../../shared/constants/settings';\n\nexport * from './system/nodes';\n\nexport const HEADER_HEIGHT = 56;\nexport const STICKY_VERTICAL_PADDING = 10;\n\nexport const KeyCode = {\n ESCAPE: 27,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n TAB: 9,\n};\n\nexport const LOADING_STATUS = {\n UNINITIALIZED: '',\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const LOAD_ERROR = {\n GENERAL: 'general',\n CONNECTION: 'connection',\n AUTHENTICATION: 'authentication',\n};\n\nexport const TYPED_OUTPUT_FORMAT = {\n $value: 'json',\n $attributes: {\n stringify: true,\n annotate_with_types: true,\n },\n};\n\n// Menu\nconst MENU_PREFIX = createPrefix('MENU');\n\nexport const SPLIT_MENU_ITEMS = MENU_PREFIX + 'SPLIT_MENU_ITEMS';\nexport const JOIN_MENU_ITEMS = MENU_PREFIX + 'JOIN_MENU_ITEMS';\n\n// Settings\nconst SETTINGS_PREFIX = createPrefix('SETTINGS');\n\nexport const SET_SETTING_VALUE = `${SETTINGS_PREFIX}SET_SETTING_VALUE` as const;\nexport const UNSET_SETTING_VALUE = `${SETTINGS_PREFIX}UNSET_SETTING_VALUE` as const;\nexport const UPDATE_SETTING_DATA = `${SETTINGS_PREFIX}UPDATE_SETTING_DATA` as const;\n\n// Global\nconst GLOBAL_PREFIX = createPrefix('GLOBAL');\n\nexport const UPDATE_TITLE = GLOBAL_PREFIX + 'UPDATE_TITLE';\nexport const BLOCK_USER = GLOBAL_PREFIX + 'BLOCK_USER';\nexport const BAN_USER = GLOBAL_PREFIX + 'BAN_USER';\nexport const INC_NAV_BLOCKER_COUNTER = GLOBAL_PREFIX + 'INC_NAV_BLOCKER_COUNTER';\nexport const DEC_NAV_BLOCKER_COUNTER = GLOBAL_PREFIX + 'DEC_NAV_BLOCKER_COUNTER';\nexport const SET_MAINTENANCE_PAGE_EVENT = GLOBAL_PREFIX + 'SET_MAINTENANCE_PAGE_EVENT';\nexport const SPLIT_SCREEN = GLOBAL_PREFIX + 'SPLIT_SCREEN';\nexport const MERGE_SCREEN = GLOBAL_PREFIX + 'MERGE_SCREEN';\nexport const INIT_CLUSTER_PARAMS = createActionTypes(GLOBAL_PREFIX + 'INIT_CLUSTER_PARAMS');\nexport const UPDATE_CLUSTER = {\n ...createActionTypes(GLOBAL_PREFIX + 'UPDATE_CLUSTER'),\n FINAL_SUCCESS: `${GLOBAL_PREFIX}_UPDATE_CLUSTER_FINAL_SUCCESS`,\n};\nexport const GLOBAL_SET_THEME = 'GLOBAL_SET_THEME';\n\nexport const MediumType = {\n DEFAULT: 'default',\n ALL: 'all',\n};\n\n// Cluster menu\nconst CLUSTER_MENU_PREFIX = createPrefix('CLUSTER_MENU');\n\nexport const FETCH_CLUSTER_VERSIONS = createActionTypes(\n CLUSTER_MENU_PREFIX + 'FETCH_CLUSTER_VERSIONS',\n);\nexport const FETCH_CLUSTER_AVAILABILITY = createActionTypes(\n CLUSTER_MENU_PREFIX + 'FETCH_CLUSTER_AVAILABILITY',\n);\n\nexport const UPDATE_VIEWMODE = CLUSTER_MENU_PREFIX + 'UPDATE_VIEWMODE';\nexport const UPDATE_FILTER = CLUSTER_MENU_PREFIX + 'UPDATE_FILTER';\n\nexport const SPLIT_PANE_ID = 'split-portal';\n\nexport const DASHBOARD_VIEW_CONTEXT = 'dashboard';\n\nexport const GENERIC_ERROR_MESSAGE = ' If the problem persists please report it via Bug Reporter.';\n"],"mappings":"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"}
1
+ {"version":3,"names":["createActionTypes","createPrefix","Page","HEADER_HEIGHT","STICKY_VERTICAL_PADDING","KeyCode","ESCAPE","ENTER","ARROW_UP","ARROW_DOWN","TAB","LOADING_STATUS","UNINITIALIZED","LOADING","LOADED","ERROR","CANCELLED","LOAD_ERROR","GENERAL","CONNECTION","AUTHENTICATION","TYPED_OUTPUT_FORMAT","$value","$attributes","stringify","annotate_with_types","MENU_PREFIX","SPLIT_MENU_ITEMS","JOIN_MENU_ITEMS","SETTINGS_PREFIX","SET_SETTING_VALUE","concat","UNSET_SETTING_VALUE","UPDATE_SETTING_DATA","GLOBAL_PREFIX","UPDATE_TITLE","BLOCK_USER","BAN_USER","INC_NAV_BLOCKER_COUNTER","DEC_NAV_BLOCKER_COUNTER","SET_MAINTENANCE_PAGE_EVENT","SPLIT_SCREEN","MERGE_SCREEN","INIT_CLUSTER_PARAMS","UPDATE_CLUSTER","_objectSpread","FINAL_SUCCESS","GLOBAL_SET_THEME","MediumType","DEFAULT","ALL","CLUSTER_MENU_PREFIX","FETCH_CLUSTER_VERSIONS","FETCH_CLUSTER_AVAILABILITY","FETCH_CLUSTER_AUTH_STATUS","UPDATE_VIEWMODE","UPDATE_FILTER","SPLIT_PANE_ID","DASHBOARD_VIEW_CONTEXT","GENERIC_ERROR_MESSAGE"],"sources":["index.ts"],"sourcesContent":["import createActionTypes, {createPrefix} from './utils';\nexport {Page} from '../../shared/constants/settings';\n\nexport * from './system/nodes';\n\nexport const HEADER_HEIGHT = 56;\nexport const STICKY_VERTICAL_PADDING = 10;\n\nexport const KeyCode = {\n ESCAPE: 27,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n TAB: 9,\n};\n\nexport const LOADING_STATUS = {\n UNINITIALIZED: '',\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error',\n CANCELLED: 'cancelled',\n} as const;\n\nexport const LOAD_ERROR = {\n GENERAL: 'general',\n CONNECTION: 'connection',\n AUTHENTICATION: 'authentication',\n};\n\nexport const TYPED_OUTPUT_FORMAT = {\n $value: 'json',\n $attributes: {\n stringify: true,\n annotate_with_types: true,\n },\n};\n\n// Menu\nconst MENU_PREFIX = createPrefix('MENU');\n\nexport const SPLIT_MENU_ITEMS = MENU_PREFIX + 'SPLIT_MENU_ITEMS';\nexport const JOIN_MENU_ITEMS = MENU_PREFIX + 'JOIN_MENU_ITEMS';\n\n// Settings\nconst SETTINGS_PREFIX = createPrefix('SETTINGS');\n\nexport const SET_SETTING_VALUE = `${SETTINGS_PREFIX}SET_SETTING_VALUE` as const;\nexport const UNSET_SETTING_VALUE = `${SETTINGS_PREFIX}UNSET_SETTING_VALUE` as const;\nexport const UPDATE_SETTING_DATA = `${SETTINGS_PREFIX}UPDATE_SETTING_DATA` as const;\n\n// Global\nconst GLOBAL_PREFIX = createPrefix('GLOBAL');\n\nexport const UPDATE_TITLE = GLOBAL_PREFIX + 'UPDATE_TITLE';\nexport const BLOCK_USER = GLOBAL_PREFIX + 'BLOCK_USER';\nexport const BAN_USER = GLOBAL_PREFIX + 'BAN_USER';\nexport const INC_NAV_BLOCKER_COUNTER = GLOBAL_PREFIX + 'INC_NAV_BLOCKER_COUNTER';\nexport const DEC_NAV_BLOCKER_COUNTER = GLOBAL_PREFIX + 'DEC_NAV_BLOCKER_COUNTER';\nexport const SET_MAINTENANCE_PAGE_EVENT = GLOBAL_PREFIX + 'SET_MAINTENANCE_PAGE_EVENT';\nexport const SPLIT_SCREEN = GLOBAL_PREFIX + 'SPLIT_SCREEN';\nexport const MERGE_SCREEN = GLOBAL_PREFIX + 'MERGE_SCREEN';\nexport const INIT_CLUSTER_PARAMS = createActionTypes(GLOBAL_PREFIX + 'INIT_CLUSTER_PARAMS');\nexport const UPDATE_CLUSTER = {\n ...createActionTypes(GLOBAL_PREFIX + 'UPDATE_CLUSTER'),\n FINAL_SUCCESS: `${GLOBAL_PREFIX}_UPDATE_CLUSTER_FINAL_SUCCESS`,\n};\nexport const GLOBAL_SET_THEME = 'GLOBAL_SET_THEME';\n\nexport const MediumType = {\n DEFAULT: 'default',\n ALL: 'all',\n};\n\n// Cluster menu\nconst CLUSTER_MENU_PREFIX = createPrefix('CLUSTER_MENU');\n\nexport const FETCH_CLUSTER_VERSIONS = createActionTypes(\n CLUSTER_MENU_PREFIX + 'FETCH_CLUSTER_VERSIONS',\n);\nexport const FETCH_CLUSTER_AVAILABILITY = createActionTypes(\n CLUSTER_MENU_PREFIX + 'FETCH_CLUSTER_AVAILABILITY',\n);\n\nexport const FETCH_CLUSTER_AUTH_STATUS = createActionTypes('FETCH_CLUSTER_AUTH_STATUS');\n\nexport const UPDATE_VIEWMODE = CLUSTER_MENU_PREFIX + 'UPDATE_VIEWMODE';\nexport const UPDATE_FILTER = CLUSTER_MENU_PREFIX + 'UPDATE_FILTER';\n\nexport const SPLIT_PANE_ID = 'split-portal';\n\nexport const DASHBOARD_VIEW_CONTEXT = 'dashboard';\n\nexport const GENERIC_ERROR_MESSAGE = ' If the problem persists please report it via Bug Reporter.';\n"],"mappings":"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"}
@@ -97,10 +97,11 @@ function AppWithRum() {
97
97
  }
98
98
  }) : /*#__PURE__*/_jsxs(Switch, {
99
99
  children: [hasAuthPages ? /*#__PURE__*/_jsx(Route, {
100
- path: "/change-password",
101
- render: function render() {
100
+ path: "/:cluster/change-password",
101
+ render: function render(props) {
102
102
  return /*#__PURE__*/_jsx(ChangePasswordFormPage, {
103
- theme: themeType
103
+ theme: themeType,
104
+ cluster: props.match.params.cluster
104
105
  });
105
106
  }
106
107
  }) : null, /*#__PURE__*/_jsx(Route, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Route","Switch","useDispatch","useSelector","ThemeProvider","useThemeType","useThemeValue","ModalErrors","AttributesModal","ClustersMenu","ClusterPageWrapper","ActionModal","ChangePasswordFormPage","LoginFormPage","getSettingTheme","shouldUseSafeColors","RumUiProvider","AppNavigation","RetryBatchModals","loadAllowedExperimentalPages","setTheme","getAuthPagesEnabled","getGlobalShowLoginDialog","getFontType","jsx","_jsx","jsxs","_jsxs","App","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentDidMount","_this$props","props","theme","fontType","document","body","classList","add","concat","componentDidUpdate","prevProps","remove","render","children","LoadAllowedExperimentalUrls","className","exact","path","dispatch","useMemo","AppWithRum","themeType","a11y","showLogin","hasAuthPages","AppWithRumContext","_useThemeProviderProp","useThemeProviderProperties","systemLightTheme","systemDarkTheme","ThemeUpdater","memo","useEffect","selectedTheme","useContrastTheme"],"sources":["App.tsx"],"sourcesContent":["import React, {Component} from 'react';\nimport {Route, Switch} from 'react-router';\nimport {useDispatch, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {ThemeProvider, useThemeType, useThemeValue} from '@gravity-ui/uikit';\n\nimport ModalErrors from '../../containers/ModalErrors/ModalErrors';\nimport AttributesModal from '../../components/AttributesModal/AttributesModal';\nimport ClustersMenu from '../ClustersMenu/ClustersMenu';\nimport ClusterPageWrapper from '../../containers/ClusterPageWrapper/ClusterPageWrapper';\nimport ActionModal from '../ActionModal/ActionModal';\nimport {ChangePasswordFormPage} from '../../components/Login/ChangePasswordFormPage/ChangePasswordFormPage';\nimport {LoginFormPage} from '../../components/Login/LoginFormPage/LoginFormPage';\n\nimport {getSettingTheme, shouldUseSafeColors} from '../../store/selectors/settings';\n\nimport {RumUiProvider} from '../../rum/RumUiContext';\nimport AppNavigation from '../AppNavigation/AppNavigation';\nimport RetryBatchModals from '../RetryBatchModal/RetryBatchModal';\nimport {loadAllowedExperimentalPages, setTheme} from '../../store/actions/global';\nimport {getAuthPagesEnabled, getGlobalShowLoginDialog} from '../../store/selectors/global';\n\nimport './App.scss';\nimport {getFontType} from '../../store/selectors/settings-ts';\n\ninterface AppProps {\n theme?: 'light' | 'dark' | 'system' | 'light-hc' | 'dark-hc';\n fontType?: string;\n a11y?: boolean;\n}\n\nclass App extends Component<AppProps> {\n static propTypes = {\n theme: PropTypes.oneOf(['light', 'dark', 'system', 'light-hc', 'dark-hc']).isRequired,\n fontType: PropTypes.string,\n a11y: PropTypes.bool.isRequired,\n };\n\n componentDidMount() {\n const {theme, fontType} = this.props;\n document.body.classList.add(`theme-${theme}`);\n if (fontType) document.body.classList.add(`font-${fontType}`);\n }\n\n componentDidUpdate(prevProps: AppProps) {\n if (prevProps.theme !== this.props.theme) {\n document.body.classList.remove(`theme-${prevProps.theme}`);\n document.body.classList.add(`theme-${this.props.theme}`);\n }\n\n if (prevProps.fontType !== this.props.fontType) {\n document.body.classList.remove(`font-${prevProps.fontType}`);\n document.body.classList.add(`font-${this.props.fontType}`);\n }\n }\n\n render() {\n return (\n <AppNavigation>\n <LoadAllowedExperimentalUrls />\n <div className=\"elements-page\">\n <Route exact path=\"/\" render={() => <ClustersMenu />} />\n <Route path=\"/:cluster/\" render={() => <ClusterPageWrapper />} />\n <AttributesModal />\n <ActionModal />\n <ModalErrors />\n <RetryBatchModals />\n </div>\n </AppNavigation>\n );\n }\n}\n\nfunction LoadAllowedExperimentalUrls() {\n const dispatch = useDispatch();\n\n React.useMemo(() => {\n dispatch(loadAllowedExperimentalPages());\n }, [dispatch]);\n return null;\n}\n\nfunction AppWithRum() {\n const theme = useThemeValue() as AppProps['theme'];\n const themeType = useThemeType();\n const a11y = useSelector(shouldUseSafeColors);\n const showLogin = useSelector(getGlobalShowLoginDialog);\n const hasAuthPages = useSelector(getAuthPagesEnabled);\n const fontType = useSelector(getFontType);\n\n return showLogin ? (\n <Route render={() => <LoginFormPage theme={themeType} />} />\n ) : (\n <Switch>\n {hasAuthPages ? (\n <Route\n path=\"/change-password\"\n render={() => <ChangePasswordFormPage theme={themeType} />}\n />\n ) : null}\n <Route render={() => <App theme={theme} a11y={a11y} fontType={fontType} />} />\n </Switch>\n );\n}\n\nfunction AppWithRumContext() {\n const {theme, systemLightTheme, systemDarkTheme} = useThemeProviderProperties();\n return (\n <RumUiProvider>\n <ThemeProvider\n theme={theme as any}\n systemLightTheme={systemLightTheme}\n systemDarkTheme={systemDarkTheme}\n >\n <ThemeUpdater />\n <AppWithRum />\n </ThemeProvider>\n </RumUiProvider>\n );\n}\n\nexport default React.memo(AppWithRumContext);\n\nfunction ThemeUpdater() {\n const dispatch = useDispatch();\n const theme = useThemeValue() as AppProps['theme'];\n React.useEffect(() => {\n dispatch(setTheme(theme!));\n }, [theme, dispatch]);\n\n return null;\n}\n\nfunction useThemeProviderProperties() {\n const selectedTheme = useSelector(getSettingTheme);\n const useContrastTheme: boolean = useSelector(shouldUseSafeColors);\n const systemLightTheme = useContrastTheme ? 'light-hc' : 'light';\n const systemDarkTheme = useContrastTheme ? 'dark-hc' : 'dark';\n let theme: AppProps['theme'] = selectedTheme;\n if ((theme === 'dark' || theme === 'light') && useContrastTheme) theme = `${theme}-hc`;\n return {\n theme,\n systemLightTheme,\n systemDarkTheme,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Component","Route","Switch","useDispatch","useSelector","ThemeProvider","useThemeType","useThemeValue","ModalErrors","AttributesModal","ClustersMenu","ClusterPageWrapper","ActionModal","ChangePasswordFormPage","LoginFormPage","getSettingTheme","shouldUseSafeColors","RumUiProvider","AppNavigation","RetryBatchModals","loadAllowedExperimentalPages","setTheme","getAuthPagesEnabled","getGlobalShowLoginDialog","getFontType","jsx","_jsx","jsxs","_jsxs","App","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","componentDidMount","_this$props","props","theme","fontType","document","body","classList","add","concat","componentDidUpdate","prevProps","remove","render","children","LoadAllowedExperimentalUrls","className","exact","path","dispatch","useMemo","AppWithRum","themeType","a11y","showLogin","hasAuthPages","cluster","match","params","AppWithRumContext","_useThemeProviderProp","useThemeProviderProperties","systemLightTheme","systemDarkTheme","ThemeUpdater","memo","useEffect","selectedTheme","useContrastTheme"],"sources":["App.tsx"],"sourcesContent":["import React, {Component} from 'react';\nimport {Route, Switch} from 'react-router';\nimport {useDispatch, useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {ThemeProvider, useThemeType, useThemeValue} from '@gravity-ui/uikit';\n\nimport ModalErrors from '../../containers/ModalErrors/ModalErrors';\nimport AttributesModal from '../../components/AttributesModal/AttributesModal';\nimport ClustersMenu from '../ClustersMenu/ClustersMenu';\nimport ClusterPageWrapper from '../../containers/ClusterPageWrapper/ClusterPageWrapper';\nimport ActionModal from '../ActionModal/ActionModal';\nimport {ChangePasswordFormPage} from '../../components/Login/ChangePasswordFormPage/ChangePasswordFormPage';\nimport {LoginFormPage} from '../../components/Login/LoginFormPage/LoginFormPage';\n\nimport {getSettingTheme, shouldUseSafeColors} from '../../store/selectors/settings';\n\nimport {RumUiProvider} from '../../rum/RumUiContext';\nimport AppNavigation from '../AppNavigation/AppNavigation';\nimport RetryBatchModals from '../RetryBatchModal/RetryBatchModal';\nimport {loadAllowedExperimentalPages, setTheme} from '../../store/actions/global';\nimport {getAuthPagesEnabled, getGlobalShowLoginDialog} from '../../store/selectors/global';\n\nimport './App.scss';\nimport {getFontType} from '../../store/selectors/settings-ts';\n\ninterface AppProps {\n theme?: 'light' | 'dark' | 'system' | 'light-hc' | 'dark-hc';\n fontType?: string;\n a11y?: boolean;\n}\n\nclass App extends Component<AppProps> {\n static propTypes = {\n theme: PropTypes.oneOf(['light', 'dark', 'system', 'light-hc', 'dark-hc']).isRequired,\n fontType: PropTypes.string,\n a11y: PropTypes.bool.isRequired,\n };\n\n componentDidMount() {\n const {theme, fontType} = this.props;\n document.body.classList.add(`theme-${theme}`);\n if (fontType) document.body.classList.add(`font-${fontType}`);\n }\n\n componentDidUpdate(prevProps: AppProps) {\n if (prevProps.theme !== this.props.theme) {\n document.body.classList.remove(`theme-${prevProps.theme}`);\n document.body.classList.add(`theme-${this.props.theme}`);\n }\n\n if (prevProps.fontType !== this.props.fontType) {\n document.body.classList.remove(`font-${prevProps.fontType}`);\n document.body.classList.add(`font-${this.props.fontType}`);\n }\n }\n\n render() {\n return (\n <AppNavigation>\n <LoadAllowedExperimentalUrls />\n <div className=\"elements-page\">\n <Route exact path=\"/\" render={() => <ClustersMenu />} />\n <Route path=\"/:cluster/\" render={() => <ClusterPageWrapper />} />\n <AttributesModal />\n <ActionModal />\n <ModalErrors />\n <RetryBatchModals />\n </div>\n </AppNavigation>\n );\n }\n}\n\nfunction LoadAllowedExperimentalUrls() {\n const dispatch = useDispatch();\n\n React.useMemo(() => {\n dispatch(loadAllowedExperimentalPages());\n }, [dispatch]);\n return null;\n}\n\nfunction AppWithRum() {\n const theme = useThemeValue() as AppProps['theme'];\n const themeType = useThemeType();\n const a11y = useSelector(shouldUseSafeColors);\n const showLogin = useSelector(getGlobalShowLoginDialog);\n const hasAuthPages = useSelector(getAuthPagesEnabled);\n const fontType = useSelector(getFontType);\n\n return showLogin ? (\n <Route render={() => <LoginFormPage theme={themeType} />} />\n ) : (\n <Switch>\n {hasAuthPages ? (\n <Route\n path={`/:cluster/change-password`}\n render={(props) => (\n <ChangePasswordFormPage\n theme={themeType}\n cluster={props.match.params.cluster}\n />\n )}\n />\n ) : null}\n <Route render={() => <App theme={theme} a11y={a11y} fontType={fontType} />} />\n </Switch>\n );\n}\n\nfunction AppWithRumContext() {\n const {theme, systemLightTheme, systemDarkTheme} = useThemeProviderProperties();\n return (\n <RumUiProvider>\n <ThemeProvider\n theme={theme as any}\n systemLightTheme={systemLightTheme}\n systemDarkTheme={systemDarkTheme}\n >\n <ThemeUpdater />\n <AppWithRum />\n </ThemeProvider>\n </RumUiProvider>\n );\n}\n\nexport default React.memo(AppWithRumContext);\n\nfunction ThemeUpdater() {\n const dispatch = useDispatch();\n const theme = useThemeValue() as AppProps['theme'];\n React.useEffect(() => {\n dispatch(setTheme(theme!));\n }, [theme, dispatch]);\n\n return null;\n}\n\nfunction useThemeProviderProperties() {\n const selectedTheme = useSelector(getSettingTheme);\n const useContrastTheme: boolean = useSelector(shouldUseSafeColors);\n const systemLightTheme = useContrastTheme ? 'light-hc' : 'light';\n const systemDarkTheme = useContrastTheme ? 'dark-hc' : 'dark';\n let theme: AppProps['theme'] = selectedTheme;\n if ((theme === 'dark' || theme === 'light') && useContrastTheme) theme = `${theme}-hc`;\n return {\n theme,\n systemLightTheme,\n systemDarkTheme,\n };\n}\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ import { useHistory } from 'react-router';
5
5
  import cn from 'bem-cn-lite';
6
6
  import { FooterItem, PageLayoutAside } from '@gravity-ui/navigation';
7
7
  import { Menu } from '@gravity-ui/uikit';
8
+ import { useSelector } from 'react-redux';
8
9
  import Logo from '../../../../img/svg/appLogo.svg';
9
10
  var GearIcon = function GearIcon(props) {
10
11
  return /*#__PURE__*/_jsxs("svg", _objectSpread(_objectSpread({}, props), {}, {
@@ -64,7 +65,9 @@ BugIcon.defaultProps = {
64
65
  };
65
66
  import Link from '../../components/Link/Link';
66
67
  import unknown from '../../../../img/user-avatar.svg';
68
+ import YT from '../../config/yt-config';
67
69
  import UIFactory from '../../UIFactory';
70
+ import { getSettingsCluster } from '../../store/selectors/global';
68
71
  import "./AppNavigationComponent.css";
69
72
  import { jsx as _jsx } from "react/jsx-runtime";
70
73
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -99,7 +102,14 @@ function AppNavigationComponent(_ref) {
99
102
  _useState2 = _slicedToArray(_useState, 2),
100
103
  popupVisible = _useState2[0],
101
104
  setPopupVisible = _useState2[1];
105
+ var settingsCluster = useSelector(getSettingsCluster);
102
106
  var history = useHistory();
107
+ var showUserIcon = Boolean(currentUser);
108
+ var showSettings = settingsCluster && Boolean(currentUser);
109
+ if (authWay === 'passwd') {
110
+ showUserIcon = Boolean(settingsCluster) && Boolean(currentUser);
111
+ showSettings = settingsCluster && Boolean(currentUser);
112
+ }
103
113
  return /*#__PURE__*/_jsx(PageLayoutAside, {
104
114
  multipleTooltip: true,
105
115
  panelItems: panelItems,
@@ -123,27 +133,28 @@ function AppNavigationComponent(_ref) {
123
133
  });
124
134
  }
125
135
  },
126
- onChangeCompact: onChangeCompact,
136
+ onChangeCompact: showSettings ? onChangeCompact : undefined,
127
137
  renderFooter: function renderFooter(_ref2) {
128
138
  var compact = _ref2.compact;
129
- return /*#__PURE__*/_jsxs(_Fragment, {
130
- children: [UIFactory.makeSupportContent({
131
- login: currentUser
132
- }, function (_ref3) {
133
- var onSupportClick = _ref3.onSupportClick,
134
- supportContent = _ref3.supportContent;
135
- return /*#__PURE__*/_jsxs(React.Fragment, {
136
- children: [/*#__PURE__*/_jsx(FooterItem, {
137
- compact: compact,
138
- item: {
139
- id: 'support',
140
- title: 'Report a bug',
141
- icon: BugIcon,
142
- onItemClick: onSupportClick
143
- }
144
- }), supportContent]
145
- });
146
- }), /*#__PURE__*/_jsx(FooterItem, {
139
+ var footerItems = [UIFactory.makeSupportContent({
140
+ login: currentUser
141
+ }, function (_ref3) {
142
+ var onSupportClick = _ref3.onSupportClick,
143
+ supportContent = _ref3.supportContent;
144
+ return /*#__PURE__*/_jsxs(React.Fragment, {
145
+ children: [/*#__PURE__*/_jsx(FooterItem, {
146
+ compact: compact,
147
+ item: {
148
+ id: 'support',
149
+ title: 'Report a bug',
150
+ icon: BugIcon,
151
+ onItemClick: onSupportClick
152
+ }
153
+ }, "support"), supportContent]
154
+ });
155
+ })];
156
+ if (showSettings) {
157
+ footerItems.push( /*#__PURE__*/_jsx(FooterItem, {
147
158
  compact: compact,
148
159
  item: {
149
160
  id: 'settings',
@@ -151,7 +162,10 @@ function AppNavigationComponent(_ref) {
151
162
  onItemClick: toggleSettingsVisible,
152
163
  icon: GearIcon
153
164
  }
154
- }), /*#__PURE__*/_jsx(FooterItem, {
165
+ }, "settings"));
166
+ }
167
+ if (showUserIcon) {
168
+ footerItems.push( /*#__PURE__*/_jsx(FooterItem, {
155
169
  compact: compact,
156
170
  item: {
157
171
  id: 'user',
@@ -183,7 +197,7 @@ function AppNavigationComponent(_ref) {
183
197
  children: /*#__PURE__*/_jsxs(Menu, {
184
198
  children: [authWay === 'passwd' && /*#__PURE__*/_jsx(Menu.Item, {
185
199
  onClick: function onClick() {
186
- return history.push('/change-password');
200
+ return history.push("/".concat(YT.cluster, "/change-password"));
187
201
  },
188
202
  children: "Change password"
189
203
  }), /*#__PURE__*/_jsx(Menu.Item, {
@@ -193,7 +207,10 @@ function AppNavigationComponent(_ref) {
193
207
  })
194
208
  });
195
209
  }
196
- })]
210
+ }, "user"));
211
+ }
212
+ return /*#__PURE__*/_jsx(_Fragment, {
213
+ children: footerItems
197
214
  });
198
215
  }
199
216
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useHistory","cn","FooterItem","PageLayoutAside","Menu","Logo","GearIcon","props","_jsxs","_objectSpread","children","_jsx","clipPath","fill","fillRule","d","clipRule","id","defaultProps","xmlns","width","height","viewBox","BugIcon","Link","unknown","UIFactory","jsx","jsxs","Fragment","_Fragment","block","AppNavigationComponent","_ref","logoClassName","menuItems","currentUser","authWay","panelContent","panelVisible","panelClassName","onClosePanel","settingsVisible","settingsContent","toggleSettingsVisible","onChangeCompact","panelItems","useMemo","content","visible","className","_useState","_useState2","_slicedToArray","popupVisible","setPopupVisible","history","multipleTooltip","headerDecoration","logo","text","textSize","icon","iconSize","iconClassName","wrapper","node","url","theme","target","renderFooter","_ref2","compact","makeSupportContent","login","_ref3","onSupportClick","supportContent","item","title","onItemClick","itemWrapper","_ref4","makeItem","src","enableTooltip","onClosePopup","renderPopupContent","Item","onClick","push","href","memo"],"sources":["AppNavigationComponent.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport {useHistory} from 'react-router';\nimport cn from 'bem-cn-lite';\nimport {FooterItem, PageLayoutAside} from '@gravity-ui/navigation';\nimport {Menu} from '@gravity-ui/uikit';\n\nimport Logo from '../../../../img/svg/appLogo.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport BugIcon from '@gravity-ui/icons/svgs/bug.svg';\nimport Link from '../../components/Link/Link';\nimport unknown from '../../../../img/user-avatar.svg';\nimport {AppNavigationProps} from './AppNavigationPageLayout';\nimport UIFactory from '../../UIFactory';\n\nimport './AppNavigationComponent.scss';\n\nconst block = cn('yt-app-navigation');\n\nfunction AppNavigationComponent({\n logoClassName,\n menuItems,\n currentUser,\n authWay,\n\n panelContent,\n panelVisible,\n panelClassName,\n onClosePanel,\n\n settingsVisible,\n settingsContent,\n toggleSettingsVisible,\n\n onChangeCompact,\n}: Omit<AppNavigationProps, 'compact' | 'rememberSize' | 'className'>) {\n const panelItems = React.useMemo(() => {\n return [\n {\n id: 'panel',\n content: panelContent,\n visible: panelVisible,\n className: panelClassName,\n },\n {\n id: 'settings',\n content: settingsContent,\n visible: settingsVisible,\n },\n ];\n }, [panelVisible, panelContent, settingsVisible, settingsContent]);\n\n const [popupVisible, setPopupVisible] = useState(false);\n const history = useHistory();\n\n return (\n <PageLayoutAside\n multipleTooltip\n panelItems={panelItems}\n onClosePanel={onClosePanel}\n menuItems={menuItems}\n headerDecoration\n logo={{\n text: () => 'YTsaurus',\n textSize: 22,\n icon: Logo,\n iconSize: 36,\n iconClassName: logoClassName,\n wrapper: (node) => {\n return (\n <Link url={'/'} theme={'primary'} target=\"_blank\">\n {node}\n </Link>\n );\n },\n }}\n onChangeCompact={onChangeCompact}\n renderFooter={({compact}) => {\n return (\n <>\n {UIFactory.makeSupportContent(\n {login: currentUser},\n ({onSupportClick, supportContent}) => (\n <React.Fragment>\n <FooterItem\n compact={compact}\n item={{\n id: 'support',\n title: 'Report a bug',\n icon: BugIcon,\n onItemClick: onSupportClick,\n }}\n />\n {supportContent}\n </React.Fragment>\n ),\n )}\n <FooterItem\n compact={compact}\n item={{\n id: 'settings',\n title: 'Settings',\n onItemClick: toggleSettingsVisible,\n icon: GearIcon,\n }}\n />\n <FooterItem\n compact={compact}\n item={{\n id: 'user',\n title: currentUser,\n onItemClick: () => {\n setPopupVisible(!popupVisible);\n },\n itemWrapper: ({title}: any, makeItem: any) => {\n return makeItem({\n title,\n icon: (\n <img\n className={block('user-icon')}\n width={40}\n height={40}\n src={unknown}\n />\n ),\n });\n },\n }}\n enableTooltip={!popupVisible}\n popupVisible={popupVisible}\n onClosePopup={() => setPopupVisible(false)}\n renderPopupContent={() => {\n return (\n <div className={block('settings-ul')}>\n <Menu>\n {authWay === 'passwd' && (\n <Menu.Item\n onClick={() => history.push('/change-password')}\n >\n Change password\n </Menu.Item>\n )}\n <Menu.Item href={'/api/yt/logout'}>Logout</Menu.Item>\n </Menu>\n </div>\n );\n }}\n />\n </>\n );\n }}\n />\n );\n}\n\nexport default React.memo(AppNavigationComponent);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","useHistory","cn","FooterItem","PageLayoutAside","Menu","useSelector","Logo","GearIcon","props","_jsxs","_objectSpread","children","_jsx","clipPath","fill","fillRule","d","clipRule","id","defaultProps","xmlns","width","height","viewBox","BugIcon","Link","unknown","YT","UIFactory","getSettingsCluster","jsx","jsxs","Fragment","_Fragment","block","AppNavigationComponent","_ref","logoClassName","menuItems","currentUser","authWay","panelContent","panelVisible","panelClassName","onClosePanel","settingsVisible","settingsContent","toggleSettingsVisible","onChangeCompact","panelItems","useMemo","content","visible","className","_useState","_useState2","_slicedToArray","popupVisible","setPopupVisible","settingsCluster","history","showUserIcon","Boolean","showSettings","multipleTooltip","headerDecoration","logo","text","textSize","icon","iconSize","iconClassName","wrapper","node","url","theme","target","undefined","renderFooter","_ref2","compact","footerItems","makeSupportContent","login","_ref3","onSupportClick","supportContent","item","title","onItemClick","push","itemWrapper","_ref4","makeItem","src","enableTooltip","onClosePopup","renderPopupContent","Item","onClick","concat","cluster","href","memo"],"sources":["AppNavigationComponent.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport {useHistory} from 'react-router';\nimport cn from 'bem-cn-lite';\nimport {FooterItem, PageLayoutAside} from '@gravity-ui/navigation';\nimport {Menu} from '@gravity-ui/uikit';\nimport {useSelector} from 'react-redux';\n\nimport Logo from '../../../../img/svg/appLogo.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport BugIcon from '@gravity-ui/icons/svgs/bug.svg';\nimport Link from '../../components/Link/Link';\nimport unknown from '../../../../img/user-avatar.svg';\nimport {AppNavigationProps} from './AppNavigationPageLayout';\nimport YT from '../../config/yt-config';\nimport UIFactory from '../../UIFactory';\nimport {getSettingsCluster} from '../../store/selectors/global';\n\nimport './AppNavigationComponent.scss';\n\nconst block = cn('yt-app-navigation');\n\nfunction AppNavigationComponent({\n logoClassName,\n menuItems,\n currentUser,\n authWay,\n\n panelContent,\n panelVisible,\n panelClassName,\n onClosePanel,\n\n settingsVisible,\n settingsContent,\n toggleSettingsVisible,\n\n onChangeCompact,\n}: Omit<AppNavigationProps, 'compact' | 'rememberSize' | 'className'>) {\n const panelItems = React.useMemo(() => {\n return [\n {\n id: 'panel',\n content: panelContent,\n visible: panelVisible,\n className: panelClassName,\n },\n {\n id: 'settings',\n content: settingsContent,\n visible: settingsVisible,\n },\n ];\n }, [panelVisible, panelContent, settingsVisible, settingsContent]);\n\n const [popupVisible, setPopupVisible] = useState(false);\n const settingsCluster = useSelector(getSettingsCluster);\n const history = useHistory();\n\n let showUserIcon = Boolean(currentUser);\n let showSettings = settingsCluster && Boolean(currentUser);\n\n if (authWay === 'passwd') {\n showUserIcon = Boolean(settingsCluster) && Boolean(currentUser);\n showSettings = settingsCluster && Boolean(currentUser);\n }\n\n return (\n <PageLayoutAside\n multipleTooltip\n panelItems={panelItems}\n onClosePanel={onClosePanel}\n menuItems={menuItems}\n headerDecoration\n logo={{\n text: () => 'YTsaurus',\n textSize: 22,\n icon: Logo,\n iconSize: 36,\n iconClassName: logoClassName,\n wrapper: (node) => {\n return (\n <Link url={'/'} theme={'primary'} target=\"_blank\">\n {node}\n </Link>\n );\n },\n }}\n onChangeCompact={showSettings ? onChangeCompact : undefined}\n renderFooter={({compact}) => {\n const footerItems = [\n UIFactory.makeSupportContent(\n {login: currentUser},\n ({onSupportClick, supportContent}) => (\n <React.Fragment>\n <FooterItem\n key=\"support\"\n compact={compact}\n item={{\n id: 'support',\n title: 'Report a bug',\n icon: BugIcon,\n onItemClick: onSupportClick,\n }}\n />\n {supportContent}\n </React.Fragment>\n ),\n ),\n ];\n\n if (showSettings) {\n footerItems.push(\n <FooterItem\n key=\"settings\"\n compact={compact}\n item={{\n id: 'settings',\n title: 'Settings',\n onItemClick: toggleSettingsVisible,\n icon: GearIcon,\n }}\n />,\n );\n }\n\n if (showUserIcon) {\n footerItems.push(\n <FooterItem\n key=\"user\"\n compact={compact}\n item={{\n id: 'user',\n title: currentUser,\n onItemClick: () => {\n setPopupVisible(!popupVisible);\n },\n itemWrapper: ({title}: any, makeItem: any) => {\n return makeItem({\n title,\n icon: (\n <img\n className={block('user-icon')}\n width={40}\n height={40}\n src={unknown}\n />\n ),\n });\n },\n }}\n enableTooltip={!popupVisible}\n popupVisible={popupVisible}\n onClosePopup={() => setPopupVisible(false)}\n renderPopupContent={() => {\n return (\n <div className={block('settings-ul')}>\n <Menu>\n {authWay === 'passwd' && (\n <Menu.Item\n onClick={() =>\n history.push(\n `/${YT.cluster}/change-password`,\n )\n }\n >\n Change password\n </Menu.Item>\n )}\n <Menu.Item href={'/api/yt/logout'}>Logout</Menu.Item>\n </Menu>\n </div>\n );\n }}\n />,\n );\n }\n\n return <>{footerItems}</>;\n }}\n />\n );\n}\n\nexport default React.memo(AppNavigationComponent);\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,QAAQ,QAAO,OAAO;AACrC,SAAQC,UAAU,QAAO,cAAc;AACvC,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,UAAU,EAAEC,eAAe,QAAO,wBAAwB;AAClE,SAAQC,IAAI,QAAO,mBAAmB;AACtC,SAAQC,WAAW,QAAO,aAAa;AAEvC,OAAOC,IAAI,MAAM,iCAAiC;AAAC,IAC5CC,QAAQ,YAARA,QAAQA,CAAAC,KAAA;EAAA,oBAAAC,KAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,gBAAAC,IAAA;MAAAC,QAAA;MAAAF,QAAA,eAAAC,IAAA;QAAAE,IAAA;QAAAC,QAAA;QAAAC,CAAA;QAAAC,QAAA;MAAA;IAAA,iBAAAL,IAAA;MAAAD,QAAA,eAAAC,IAAA;QAAAM,EAAA;QAAAP,QAAA,eAAAC,IAAA;UAAAE,IAAA;UAAAE,CAAA;QAAA;MAAA;IAAA;EAAA;AAAA;AAART,QAAQ,CAAAY,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAR,IAAA;EAAAS,OAAA;AAAA;AAAA,IACRC,OAAO,YAAPA,OAAOA,CAAAhB,KAAA;EAAA,oBAAAC,KAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,gBAAAC,IAAA;MAAAC,QAAA;MAAAF,QAAA,eAAAC,IAAA;QAAAE,IAAA;QAAAC,QAAA;QAAAC,CAAA;QAAAC,QAAA;MAAA;IAAA,iBAAAL,IAAA;MAAAD,QAAA,eAAAC,IAAA;QAAAM,EAAA;QAAAP,QAAA,eAAAC,IAAA;UAAAE,IAAA;UAAAE,CAAA;QAAA;MAAA;IAAA;EAAA;AAAA;AAAPQ,OAAO,CAAAL,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAR,IAAA;EAAAS,OAAA;AAAA;AACd,OAAOE,IAAI,MAAM,4BAA4B;AAC7C,OAAOC,OAAO,MAAM,iCAAiC;AAErD,OAAOC,EAAE,MAAM,wBAAwB;AACvC,OAAOC,SAAS,MAAM,iBAAiB;AACvC,SAAQC,kBAAkB,QAAO,8BAA8B;AAE/D,OAAO,8BAA+B;AAAC,SAAAC,GAAA,IAAAlB,IAAA;AAAA,SAAAmB,IAAA,IAAAtB,KAAA;AAAA,SAAAuB,QAAA,IAAAC,SAAA;AAEvC,IAAMC,KAAK,GAAGjC,EAAE,CAAC,mBAAmB,CAAC;AAErC,SAASkC,sBAAsBA,CAAAC,IAAA,EAgBwC;EAAA,IAfnEC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IACXC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAEPC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IACZC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,cAAc,GAAAP,IAAA,CAAdO,cAAc;IACdC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IAEZC,eAAe,GAAAT,IAAA,CAAfS,eAAe;IACfC,eAAe,GAAAV,IAAA,CAAfU,eAAe;IACfC,qBAAqB,GAAAX,IAAA,CAArBW,qBAAqB;IAErBC,eAAe,GAAAZ,IAAA,CAAfY,eAAe;EAEf,IAAMC,UAAU,GAAGnD,KAAK,CAACoD,OAAO,CAAC,YAAM;IACnC,OAAO,CACH;MACIhC,EAAE,EAAE,OAAO;MACXiC,OAAO,EAAEV,YAAY;MACrBW,OAAO,EAAEV,YAAY;MACrBW,SAAS,EAAEV;IACf,CAAC,EACD;MACIzB,EAAE,EAAE,UAAU;MACdiC,OAAO,EAAEL,eAAe;MACxBM,OAAO,EAAEP;IACb,CAAC,CACJ;EACL,CAAC,EAAE,CAACH,YAAY,EAAED,YAAY,EAAEI,eAAe,EAAEC,eAAe,CAAC,CAAC;EAElE,IAAAQ,SAAA,GAAwCvD,QAAQ,CAAC,KAAK,CAAC;IAAAwD,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAhDG,YAAY,GAAAF,UAAA;IAAEG,eAAe,GAAAH,UAAA;EACpC,IAAMI,eAAe,GAAGtD,WAAW,CAACwB,kBAAkB,CAAC;EACvD,IAAM+B,OAAO,GAAG5D,UAAU,CAAC,CAAC;EAE5B,IAAI6D,YAAY,GAAGC,OAAO,CAACvB,WAAW,CAAC;EACvC,IAAIwB,YAAY,GAAGJ,eAAe,IAAIG,OAAO,CAACvB,WAAW,CAAC;EAE1D,IAAIC,OAAO,KAAK,QAAQ,EAAE;IACtBqB,YAAY,GAAGC,OAAO,CAACH,eAAe,CAAC,IAAIG,OAAO,CAACvB,WAAW,CAAC;IAC/DwB,YAAY,GAAGJ,eAAe,IAAIG,OAAO,CAACvB,WAAW,CAAC;EAC1D;EAEA,oBACI3B,IAAA,CAACT,eAAe;IACZ6D,eAAe;IACff,UAAU,EAAEA,UAAW;IACvBL,YAAY,EAAEA,YAAa;IAC3BN,SAAS,EAAEA,SAAU;IACrB2B,gBAAgB;IAChBC,IAAI,EAAE;MACFC,IAAI,EAAE,SAAAA,KAAA;QAAA,OAAM,UAAU;MAAA;MACtBC,QAAQ,EAAE,EAAE;MACZC,IAAI,EAAE/D,IAAI;MACVgE,QAAQ,EAAE,EAAE;MACZC,aAAa,EAAElC,aAAa;MAC5BmC,OAAO,EAAE,SAAAA,QAACC,IAAI,EAAK;QACf,oBACI7D,IAAA,CAACa,IAAI;UAACiD,GAAG,EAAE,GAAI;UAACC,KAAK,EAAE,SAAU;UAACC,MAAM,EAAC,QAAQ;UAAAjE,QAAA,EAC5C8D;QAAI,CACH,CAAC;MAEf;IACJ,CAAE;IACFzB,eAAe,EAAEe,YAAY,GAAGf,eAAe,GAAG6B,SAAU;IAC5DC,YAAY,EAAE,SAAAA,aAAAC,KAAA,EAAe;MAAA,IAAbC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MACnB,IAAMC,WAAW,GAAG,CAChBrD,SAAS,CAACsD,kBAAkB,CACxB;QAACC,KAAK,EAAE5C;MAAW,CAAC,EACpB,UAAA6C,KAAA;QAAA,IAAEC,cAAc,GAAAD,KAAA,CAAdC,cAAc;UAAEC,cAAc,GAAAF,KAAA,CAAdE,cAAc;QAAA,oBAC5B7E,KAAA,CAACX,KAAK,CAACkC,QAAQ;UAAArB,QAAA,gBACXC,IAAA,CAACV,UAAU;YAEP8E,OAAO,EAAEA,OAAQ;YACjBO,IAAI,EAAE;cACFrE,EAAE,EAAE,SAAS;cACbsE,KAAK,EAAE,cAAc;cACrBnB,IAAI,EAAE7C,OAAO;cACbiE,WAAW,EAAEJ;YACjB;UAAE,GAPE,SAQP,CAAC,EACDC,cAAc;QAAA,CACH,CAAC;MAAA,CAEzB,CAAC,CACJ;MAED,IAAIvB,YAAY,EAAE;QACdkB,WAAW,CAACS,IAAI,eACZ9E,IAAA,CAACV,UAAU;UAEP8E,OAAO,EAAEA,OAAQ;UACjBO,IAAI,EAAE;YACFrE,EAAE,EAAE,UAAU;YACdsE,KAAK,EAAE,UAAU;YACjBC,WAAW,EAAE1C,qBAAqB;YAClCsB,IAAI,EAAE9D;UACV;QAAE,GAPE,UAQP,CACL,CAAC;MACL;MAEA,IAAIsD,YAAY,EAAE;QACdoB,WAAW,CAACS,IAAI,eACZ9E,IAAA,CAACV,UAAU;UAEP8E,OAAO,EAAEA,OAAQ;UACjBO,IAAI,EAAE;YACFrE,EAAE,EAAE,MAAM;YACVsE,KAAK,EAAEjD,WAAW;YAClBkD,WAAW,EAAE,SAAAA,YAAA,EAAM;cACf/B,eAAe,CAAC,CAACD,YAAY,CAAC;YAClC,CAAC;YACDkC,WAAW,EAAE,SAAAA,YAAAC,KAAA,EAAeC,QAAa,EAAK;cAAA,IAA/BL,KAAK,GAAAI,KAAA,CAALJ,KAAK;cAChB,OAAOK,QAAQ,CAAC;gBACZL,KAAK,EAALA,KAAK;gBACLnB,IAAI,eACAzD,IAAA;kBACIyC,SAAS,EAAEnB,KAAK,CAAC,WAAW,CAAE;kBAC9Bb,KAAK,EAAE,EAAG;kBACVC,MAAM,EAAE,EAAG;kBACXwE,GAAG,EAAEpE;gBAAQ,CAChB;cAET,CAAC,CAAC;YACN;UACJ,CAAE;UACFqE,aAAa,EAAE,CAACtC,YAAa;UAC7BA,YAAY,EAAEA,YAAa;UAC3BuC,YAAY,EAAE,SAAAA,aAAA;YAAA,OAAMtC,eAAe,CAAC,KAAK,CAAC;UAAA,CAAC;UAC3CuC,kBAAkB,EAAE,SAAAA,mBAAA,EAAM;YACtB,oBACIrF,IAAA;cAAKyC,SAAS,EAAEnB,KAAK,CAAC,aAAa,CAAE;cAAAvB,QAAA,eACjCF,KAAA,CAACL,IAAI;gBAAAO,QAAA,GACA6B,OAAO,KAAK,QAAQ,iBACjB5B,IAAA,CAACR,IAAI,CAAC8F,IAAI;kBACNC,OAAO,EAAE,SAAAA,QAAA;oBAAA,OACLvC,OAAO,CAAC8B,IAAI,KAAAU,MAAA,CACJzE,EAAE,CAAC0E,OAAO,qBAClB,CAAC;kBAAA,CACJ;kBAAA1F,QAAA,EACJ;gBAED,CAAW,CACd,eACDC,IAAA,CAACR,IAAI,CAAC8F,IAAI;kBAACI,IAAI,EAAE,gBAAiB;kBAAA3F,QAAA,EAAC;gBAAM,CAAW,CAAC;cAAA,CACnD;YAAC,CACN,CAAC;UAEd;QAAE,GA5CE,MA6CP,CACL,CAAC;MACL;MAEA,oBAAOC,IAAA,CAAAqB,SAAA;QAAAtB,QAAA,EAAGsE;MAAW,CAAG,CAAC;IAC7B;EAAE,CACL,CAAC;AAEV;AAEA,4BAAenF,KAAK,CAACyG,IAAI,CAACpE,sBAAsB,CAAC"}
@@ -22,10 +22,11 @@ declare const _default: import("react-redux").ConnectedComponent<typeof ClusterP
22
22
  initClusterParams: PropTypes.Validator<(...args: any[]) => any>;
23
23
  updateCluster: PropTypes.Validator<(...args: any[]) => any>;
24
24
  updateTitle: PropTypes.Validator<(...args: any[]) => any>;
25
+ unmountCluster: PropTypes.Validator<(...args: any[]) => any>;
25
26
  trackVisit: PropTypes.Validator<(...args: any[]) => any>;
26
27
  allowChyt: PropTypes.Requireable<boolean>;
27
28
  allowQueryTracker: PropTypes.Requireable<boolean>;
28
- }>, "error" | "clusters" | "login" | "startingPage" | "clusterPagePaneSizes" | "hasError" | "maintenancePageEvent" | "trackVisit" | "allowQueryTracker" | "setSetting" | "splitScreen" | "updateTitle" | "updateCluster" | "splitMenuItemsAction" | "joinMenuItemsAction" | "isLoaded" | "paramsError" | "allowChyt" | "initClusterParams">>;
29
+ }>, "error" | "clusters" | "login" | "startingPage" | "clusterPagePaneSizes" | "hasError" | "maintenancePageEvent" | "trackVisit" | "allowQueryTracker" | "setSetting" | "splitScreen" | "updateTitle" | "updateCluster" | "unmountCluster" | "splitMenuItemsAction" | "joinMenuItemsAction" | "isLoaded" | "paramsError" | "allowChyt" | "initClusterParams">>;
29
30
  export default _default;
30
31
  declare class ClusterPage extends React.Component<any, any, any> {
31
32
  static propTypes: {
@@ -52,6 +53,7 @@ declare class ClusterPage extends React.Component<any, any, any> {
52
53
  initClusterParams: PropTypes.Validator<(...args: any[]) => any>;
53
54
  updateCluster: PropTypes.Validator<(...args: any[]) => any>;
54
55
  updateTitle: PropTypes.Validator<(...args: any[]) => any>;
56
+ unmountCluster: PropTypes.Validator<(...args: any[]) => any>;
55
57
  trackVisit: PropTypes.Validator<(...args: any[]) => any>;
56
58
  allowChyt: PropTypes.Requireable<boolean>;
57
59
  allowQueryTracker: PropTypes.Requireable<boolean>;