@ytsaurus/ui 1.12.1 → 1.13.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 (176) hide show
  1. package/build/cjs/@types/core.d.ts +38 -0
  2. package/build/cjs/server/components/layout-config.js +6 -1
  3. package/build/cjs/server/components/layout-config.js.map +1 -1
  4. package/build/cjs/server/components/oauth.d.ts +26 -0
  5. package/build/cjs/server/components/oauth.js +123 -0
  6. package/build/cjs/server/components/oauth.js.map +1 -0
  7. package/build/cjs/server/components/yt-auth.d.ts +6 -0
  8. package/build/cjs/server/components/yt-auth.js +23 -0
  9. package/build/cjs/server/components/yt-auth.js.map +1 -0
  10. package/build/cjs/server/controllers/login.d.ts +0 -1
  11. package/build/cjs/server/controllers/login.js +4 -26
  12. package/build/cjs/server/controllers/login.js.map +1 -1
  13. package/build/cjs/server/controllers/logout.d.ts +2 -0
  14. package/build/cjs/server/controllers/logout.js +15 -0
  15. package/build/cjs/server/controllers/logout.js.map +1 -0
  16. package/build/cjs/server/controllers/oauth-login.d.ts +4 -0
  17. package/build/cjs/server/controllers/oauth-login.js +30 -0
  18. package/build/cjs/server/controllers/oauth-login.js.map +1 -0
  19. package/build/cjs/server/index.js +9 -1
  20. package/build/cjs/server/index.js.map +1 -1
  21. package/build/cjs/server/middlewares/authorization.d.ts +2 -0
  22. package/build/cjs/server/middlewares/authorization.js +42 -0
  23. package/build/cjs/server/middlewares/authorization.js.map +1 -0
  24. package/build/cjs/server/middlewares/oauth.d.ts +2 -0
  25. package/build/cjs/server/middlewares/oauth.js +27 -0
  26. package/build/cjs/server/middlewares/oauth.js.map +1 -0
  27. package/build/cjs/server/middlewares/yt-auth.d.ts +1 -1
  28. package/build/cjs/server/middlewares/yt-auth.js +10 -42
  29. package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
  30. package/build/cjs/server/routes.js +6 -1
  31. package/build/cjs/server/routes.js.map +1 -1
  32. package/build/cjs/server/utils/authorization.d.ts +6 -0
  33. package/build/cjs/server/utils/authorization.js +33 -0
  34. package/build/cjs/server/utils/authorization.js.map +1 -0
  35. package/build/cjs/shared/constants/index.d.ts +3 -0
  36. package/build/cjs/shared/constants/index.js +3 -1
  37. package/build/cjs/shared/constants/index.js.map +1 -1
  38. package/build/cjs/shared/yt-types.d.ts +2 -0
  39. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +23 -5
  40. package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  41. package/build/cjs/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css +8 -0
  42. package/build/cjs/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css.map +1 -1
  43. package/build/cjs/ui/components/NumberInput/NumberInput.d.ts +1 -1
  44. package/build/cjs/ui/constants/docsUrls.d.ts +1 -0
  45. package/build/cjs/ui/constants/docsUrls.js +1 -0
  46. package/build/cjs/ui/constants/docsUrls.js.map +1 -1
  47. package/build/cjs/ui/containers/AppNavigation/AppNavigation.js +2 -0
  48. package/build/cjs/ui/containers/AppNavigation/AppNavigation.js.map +1 -1
  49. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.d.ts +1 -1
  50. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +5 -7
  51. package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  52. package/build/cjs/ui/containers/AppNavigation/AppNavigationPageLayout.d.ts +2 -0
  53. package/build/cjs/ui/containers/AppNavigation/AppNavigationPageLayout.js.map +1 -1
  54. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +11 -7
  55. package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
  56. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  57. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  58. package/build/cjs/ui/store/reducers/global/index.d.ts +1 -0
  59. package/build/cjs/ui/store/reducers/global/index.js +1 -0
  60. package/build/cjs/ui/store/reducers/global/index.js.map +1 -1
  61. package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
  62. package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
  63. package/build/cjs/ui/store/selectors/global/index.d.ts +4 -0
  64. package/build/cjs/ui/store/selectors/global/index.js +14 -4
  65. package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
  66. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
  67. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +16 -1
  68. package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
  69. package/build/esm/@types/core.d.ts +38 -0
  70. package/build/esm/server/components/layout-config.js +7 -2
  71. package/build/esm/server/components/layout-config.js.map +1 -1
  72. package/build/esm/server/components/oauth.d.ts +26 -0
  73. package/build/esm/server/components/oauth.js +169 -0
  74. package/build/esm/server/components/oauth.js.map +1 -0
  75. package/build/esm/server/components/yt-auth.d.ts +6 -0
  76. package/build/esm/server/components/yt-auth.js +17 -0
  77. package/build/esm/server/components/yt-auth.js.map +1 -0
  78. package/build/esm/server/controllers/login.d.ts +0 -1
  79. package/build/esm/server/controllers/login.js +41 -88
  80. package/build/esm/server/controllers/login.js.map +1 -1
  81. package/build/esm/server/controllers/logout.d.ts +2 -0
  82. package/build/esm/server/controllers/logout.js +11 -0
  83. package/build/esm/server/controllers/logout.js.map +1 -0
  84. package/build/esm/server/controllers/oauth-login.d.ts +4 -0
  85. package/build/esm/server/controllers/oauth-login.js +50 -0
  86. package/build/esm/server/controllers/oauth-login.js.map +1 -0
  87. package/build/esm/server/index.js +7 -2
  88. package/build/esm/server/index.js.map +1 -1
  89. package/build/esm/server/middlewares/authorization.d.ts +2 -0
  90. package/build/esm/server/middlewares/authorization.js +74 -0
  91. package/build/esm/server/middlewares/authorization.js.map +1 -0
  92. package/build/esm/server/middlewares/oauth.d.ts +2 -0
  93. package/build/esm/server/middlewares/oauth.js +50 -0
  94. package/build/esm/server/middlewares/oauth.js.map +1 -0
  95. package/build/esm/server/middlewares/yt-auth.d.ts +1 -1
  96. package/build/esm/server/middlewares/yt-auth.js +8 -58
  97. package/build/esm/server/middlewares/yt-auth.js.map +1 -1
  98. package/build/esm/server/routes.js +16 -2
  99. package/build/esm/server/routes.js.map +1 -1
  100. package/build/esm/server/utils/authorization.d.ts +6 -0
  101. package/build/esm/server/utils/authorization.js +28 -0
  102. package/build/esm/server/utils/authorization.js.map +1 -0
  103. package/build/esm/shared/constants/index.d.ts +3 -0
  104. package/build/esm/shared/constants/index.js +2 -1
  105. package/build/esm/shared/constants/index.js.map +1 -1
  106. package/build/esm/shared/yt-types.d.ts +2 -0
  107. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +24 -6
  108. package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
  109. package/build/esm/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css +8 -0
  110. package/build/esm/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css.map +1 -1
  111. package/build/esm/ui/components/Login/LoginPageWrapper/LoginPageWrapper.scss +12 -0
  112. package/build/esm/ui/components/NumberInput/NumberInput.d.ts +1 -1
  113. package/build/esm/ui/constants/docsUrls.d.ts +1 -0
  114. package/build/esm/ui/constants/docsUrls.js +1 -0
  115. package/build/esm/ui/constants/docsUrls.js.map +1 -1
  116. package/build/esm/ui/containers/AppNavigation/AppNavigation.js +3 -1
  117. package/build/esm/ui/containers/AppNavigation/AppNavigation.js.map +1 -1
  118. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.d.ts +1 -1
  119. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +5 -7
  120. package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
  121. package/build/esm/ui/containers/AppNavigation/AppNavigationPageLayout.d.ts +2 -0
  122. package/build/esm/ui/containers/AppNavigation/AppNavigationPageLayout.js.map +1 -1
  123. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +12 -8
  124. package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
  125. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  126. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  127. package/build/esm/ui/store/reducers/global/index.d.ts +1 -0
  128. package/build/esm/ui/store/reducers/global/index.js +1 -0
  129. package/build/esm/ui/store/reducers/global/index.js.map +1 -1
  130. package/build/esm/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
  131. package/build/esm/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
  132. package/build/esm/ui/store/selectors/global/index.d.ts +4 -0
  133. package/build/esm/ui/store/selectors/global/index.js +12 -2
  134. package/build/esm/ui/store/selectors/global/index.js.map +1 -1
  135. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
  136. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +15 -0
  137. package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
  138. package/dist/public/build/assets-manifest.json +12 -12
  139. package/dist/public/build/css/{main.136a49c7.css → main.e919e247.css} +2 -2
  140. package/dist/public/build/css/main.e919e247.css.map +1 -0
  141. package/dist/public/build/js/89.07445d46.chunk.js +2 -0
  142. package/dist/public/build/js/89.07445d46.chunk.js.map +1 -0
  143. package/dist/public/build/js/main.9d592639.js +3 -0
  144. package/dist/public/build/js/{main.69fdeec5.js.map → main.9d592639.js.map} +1 -1
  145. package/dist/public/build/js/{runtime.6c8d85d3.js → runtime.9491563b.js} +2 -2
  146. package/dist/public/build/js/{runtime.6c8d85d3.js.map → runtime.9491563b.js.map} +1 -1
  147. package/dist/public/build/manifest.json +8 -8
  148. package/dist/server/components/layout-config.js +6 -1
  149. package/dist/server/components/oauth.d.ts +26 -0
  150. package/dist/server/components/oauth.js +123 -0
  151. package/dist/server/components/yt-auth.d.ts +6 -0
  152. package/dist/server/components/yt-auth.js +23 -0
  153. package/dist/server/controllers/login.d.ts +0 -1
  154. package/dist/server/controllers/login.js +4 -26
  155. package/dist/server/controllers/logout.d.ts +2 -0
  156. package/dist/server/controllers/logout.js +15 -0
  157. package/dist/server/controllers/oauth-login.d.ts +4 -0
  158. package/dist/server/controllers/oauth-login.js +30 -0
  159. package/dist/server/index.js +9 -1
  160. package/dist/server/middlewares/authorization.d.ts +2 -0
  161. package/dist/server/middlewares/authorization.js +42 -0
  162. package/dist/server/middlewares/oauth.d.ts +2 -0
  163. package/dist/server/middlewares/oauth.js +27 -0
  164. package/dist/server/middlewares/yt-auth.d.ts +1 -1
  165. package/dist/server/middlewares/yt-auth.js +10 -42
  166. package/dist/server/routes.js +6 -1
  167. package/dist/server/utils/authorization.d.ts +6 -0
  168. package/dist/server/utils/authorization.js +33 -0
  169. package/dist/shared/constants/index.d.ts +3 -0
  170. package/dist/shared/constants/index.js +3 -1
  171. package/package.json +2 -2
  172. package/dist/public/build/css/main.136a49c7.css.map +0 -1
  173. package/dist/public/build/js/89.6ea87438.chunk.js +0 -2
  174. package/dist/public/build/js/89.6ea87438.chunk.js.map +0 -1
  175. package/dist/public/build/js/main.69fdeec5.js +0 -3
  176. /package/dist/public/build/js/{main.69fdeec5.js.LICENSE.txt → main.9d592639.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","_some","_isEmpty","ellipsisIcon","useDispatch","useSelector","PagesSettingsEditor","usePagesMenuItems","getClusterConfigByName","getCurrentUserName","getRootPagesCluster","SettingsPanel","useClusterFromLocation","UIFactory","getSettingNavigationPanelExpanded","setSettingNavigationPanelExpanded","setAsideHeaderWidth","jsx","_jsx","block","isRootPage","cluster","arguments","length","undefined","getExtraRootPages","info","pageId","AppNavigation","_ref","children","dispatch","pageOrCluster","rootPageCluster","clusterConfig","items","currentUser","_React$useState","useState","_React$useState2","_slicedToArray","settingsVisible","setSettingsVisible","_React$useState3","_React$useState4","panelVisible","setPanelVisible","onClosePanel","useCallback","togglePanelVisibility","toggleSettingsVisible","menuItems","useMemo","concat","_toConsumableArray","id","title","icon","current","onItemClick","iconSize","className","expanded","onChangeCompact","newCompact","setTimeout","el","window","document","querySelector","_getComputedStyle","_widthStr$slice","widthStr","getComputedStyle","getPropertyValue","width","Number","slice","call","isNaN","props","logoClassName","panelContent","panelClassName","settingsContent","compact","renderAppNavigation"],"sources":["AppNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport _some from 'lodash/some';\nimport _isEmpty from 'lodash/isEmpty';\n\nimport ellipsisIcon from '../../../../img/svg/ellipsis.svg';\n\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {PagesSettingsEditor, usePagesMenuItems} from './PagesSettingsEditor';\nimport {\n getClusterConfigByName,\n getCurrentUserName,\n getRootPagesCluster,\n} from '../../store/selectors/global';\n\nimport SettingsPanel from '../SettingsPanel/SettingsPanel';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\n\nimport './AppNavigation.scss';\nimport UIFactory from '../../UIFactory';\nimport {AppNavigationProps} from './AppNavigationPageLayout';\nimport {getSettingNavigationPanelExpanded} from '../../store/selectors/settings';\nimport {setSettingNavigationPanelExpanded} from '../../store/actions/settings/settings';\nimport {setAsideHeaderWidth} from '../../store/actions/global';\n\nconst block = cn('app-navigation');\n\ninterface ExtProps {\n children: React.ReactNode;\n}\n\nfunction isRootPage(cluster = '') {\n return _some(UIFactory.getExtraRootPages(), (info) => {\n return cluster === info.pageId;\n });\n}\n\nexport default function AppNavigation({children}: ExtProps) {\n const dispatch = useDispatch();\n const pageOrCluster = useClusterFromLocation();\n const rootPageCluster = useSelector(getRootPagesCluster);\n const cluster = isRootPage(pageOrCluster) ? rootPageCluster : pageOrCluster;\n const clusterConfig = getClusterConfigByName(cluster || '');\n\n const items = usePagesMenuItems(cluster);\n const currentUser = useSelector(getCurrentUserName);\n\n const [settingsVisible, setSettingsVisible] = React.useState(false);\n const [panelVisible, setPanelVisible] = React.useState(false);\n\n const onClosePanel = React.useCallback(() => {\n setSettingsVisible(false);\n setPanelVisible(false);\n }, []);\n\n const togglePanelVisibility = React.useCallback(() => {\n setSettingsVisible(false);\n setPanelVisible(!panelVisible);\n }, [panelVisible]);\n\n const toggleSettingsVisible = React.useCallback(() => {\n setPanelVisible(false);\n setSettingsVisible(!settingsVisible);\n }, [settingsVisible]);\n\n const menuItems: typeof items = React.useMemo(() => {\n if (!cluster) {\n return [];\n }\n return [\n ...items,\n {\n id: 'all_pages',\n title: 'All pages',\n icon: ellipsisIcon,\n current: false,\n onItemClick: togglePanelVisibility,\n iconSize: 24,\n },\n ];\n }, [items, cluster, togglePanelVisibility]);\n\n const className = block();\n\n const expanded = useSelector(getSettingNavigationPanelExpanded);\n const onChangeCompact = React.useCallback(\n (newCompact: boolean) => {\n dispatch(setSettingNavigationPanelExpanded(!newCompact));\n\n setTimeout(() => {\n const el = window.document.querySelector(`.${className}`);\n if (el) {\n const widthStr =\n getComputedStyle(el)?.getPropertyValue('--gn-aside-header-size');\n const width = Number(widthStr?.slice?.(0, -2)); // '236px' or '56px'\n if (!isNaN(width)) {\n dispatch(setAsideHeaderWidth(width));\n }\n }\n }, 500);\n },\n [dispatch],\n );\n\n const props: AppNavigationProps = {\n className,\n clusterConfig,\n logoClassName: block('logo-icon', {'no-cluster': !cluster}),\n currentUser,\n menuItems: _isEmpty(clusterConfig) ? [] : menuItems,\n panelContent: (\n <PagesSettingsEditor\n cluster={cluster}\n className={block('panel-content')}\n onItemClick={onClosePanel}\n />\n ),\n panelClassName: block('panel'),\n panelVisible,\n onClosePanel,\n settingsContent: <SettingsPanel />,\n settingsVisible,\n toggleSettingsVisible,\n\n compact: !expanded,\n onChangeCompact,\n children,\n };\n\n return UIFactory.renderAppNavigation(props);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","cn","_some","_isEmpty","ellipsisIcon","useDispatch","useSelector","PagesSettingsEditor","usePagesMenuItems","getAuthWay","getClusterConfigByName","getCurrentUserName","getRootPagesCluster","SettingsPanel","useClusterFromLocation","UIFactory","getSettingNavigationPanelExpanded","setSettingNavigationPanelExpanded","setAsideHeaderWidth","jsx","_jsx","block","isRootPage","cluster","arguments","length","undefined","getExtraRootPages","info","pageId","AppNavigation","_ref","children","dispatch","pageOrCluster","rootPageCluster","clusterConfig","items","currentUser","authWay","_React$useState","useState","_React$useState2","_slicedToArray","settingsVisible","setSettingsVisible","_React$useState3","_React$useState4","panelVisible","setPanelVisible","onClosePanel","useCallback","togglePanelVisibility","toggleSettingsVisible","menuItems","useMemo","concat","_toConsumableArray","id","title","icon","current","onItemClick","iconSize","className","expanded","onChangeCompact","newCompact","setTimeout","el","window","document","querySelector","_getComputedStyle","_widthStr$slice","widthStr","getComputedStyle","getPropertyValue","width","Number","slice","call","isNaN","props","logoClassName","panelContent","panelClassName","settingsContent","compact","renderAppNavigation"],"sources":["AppNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport _some from 'lodash/some';\nimport _isEmpty from 'lodash/isEmpty';\n\nimport ellipsisIcon from '../../../../img/svg/ellipsis.svg';\n\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {PagesSettingsEditor, usePagesMenuItems} from './PagesSettingsEditor';\nimport {\n getAuthWay,\n getClusterConfigByName,\n getCurrentUserName,\n getRootPagesCluster,\n} from '../../store/selectors/global';\n\nimport SettingsPanel from '../SettingsPanel/SettingsPanel';\nimport {useClusterFromLocation} from '../../hooks/use-cluster';\n\nimport './AppNavigation.scss';\nimport UIFactory from '../../UIFactory';\nimport {AppNavigationProps} from './AppNavigationPageLayout';\nimport {getSettingNavigationPanelExpanded} from '../../store/selectors/settings';\nimport {setSettingNavigationPanelExpanded} from '../../store/actions/settings/settings';\nimport {setAsideHeaderWidth} from '../../store/actions/global';\n\nconst block = cn('app-navigation');\n\ninterface ExtProps {\n children: React.ReactNode;\n}\n\nfunction isRootPage(cluster = '') {\n return _some(UIFactory.getExtraRootPages(), (info) => {\n return cluster === info.pageId;\n });\n}\n\nexport default function AppNavigation({children}: ExtProps) {\n const dispatch = useDispatch();\n const pageOrCluster = useClusterFromLocation();\n const rootPageCluster = useSelector(getRootPagesCluster);\n const cluster = isRootPage(pageOrCluster) ? rootPageCluster : pageOrCluster;\n const clusterConfig = getClusterConfigByName(cluster || '');\n\n const items = usePagesMenuItems(cluster);\n const currentUser = useSelector(getCurrentUserName);\n const authWay = useSelector(getAuthWay);\n\n const [settingsVisible, setSettingsVisible] = React.useState(false);\n const [panelVisible, setPanelVisible] = React.useState(false);\n\n const onClosePanel = React.useCallback(() => {\n setSettingsVisible(false);\n setPanelVisible(false);\n }, []);\n\n const togglePanelVisibility = React.useCallback(() => {\n setSettingsVisible(false);\n setPanelVisible(!panelVisible);\n }, [panelVisible]);\n\n const toggleSettingsVisible = React.useCallback(() => {\n setPanelVisible(false);\n setSettingsVisible(!settingsVisible);\n }, [settingsVisible]);\n\n const menuItems: typeof items = React.useMemo(() => {\n if (!cluster) {\n return [];\n }\n return [\n ...items,\n {\n id: 'all_pages',\n title: 'All pages',\n icon: ellipsisIcon,\n current: false,\n onItemClick: togglePanelVisibility,\n iconSize: 24,\n },\n ];\n }, [items, cluster, togglePanelVisibility]);\n\n const className = block();\n\n const expanded = useSelector(getSettingNavigationPanelExpanded);\n const onChangeCompact = React.useCallback(\n (newCompact: boolean) => {\n dispatch(setSettingNavigationPanelExpanded(!newCompact));\n\n setTimeout(() => {\n const el = window.document.querySelector(`.${className}`);\n if (el) {\n const widthStr =\n getComputedStyle(el)?.getPropertyValue('--gn-aside-header-size');\n const width = Number(widthStr?.slice?.(0, -2)); // '236px' or '56px'\n if (!isNaN(width)) {\n dispatch(setAsideHeaderWidth(width));\n }\n }\n }, 500);\n },\n [dispatch],\n );\n\n const props: AppNavigationProps = {\n className,\n clusterConfig,\n logoClassName: block('logo-icon', {'no-cluster': !cluster}),\n currentUser,\n authWay,\n menuItems: _isEmpty(clusterConfig) ? [] : menuItems,\n panelContent: (\n <PagesSettingsEditor\n cluster={cluster}\n className={block('panel-content')}\n onItemClick={onClosePanel}\n />\n ),\n panelClassName: block('panel'),\n panelVisible,\n onClosePanel,\n settingsContent: <SettingsPanel />,\n settingsVisible,\n toggleSettingsVisible,\n\n compact: !expanded,\n onChangeCompact,\n children,\n };\n\n return UIFactory.renderAppNavigation(props);\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { AppNavigationProps } from './AppNavigationPageLayout';
3
3
  import './AppNavigationComponent.scss';
4
- declare function AppNavigationComponent({ logoClassName, menuItems, currentUser, panelContent, panelVisible, panelClassName, onClosePanel, settingsVisible, settingsContent, toggleSettingsVisible, onChangeCompact, }: Omit<AppNavigationProps, 'compact' | 'rememberSize' | 'className'>): React.JSX.Element;
4
+ declare function AppNavigationComponent({ logoClassName, menuItems, currentUser, authWay, panelContent, panelVisible, panelClassName, onClosePanel, settingsVisible, settingsContent, toggleSettingsVisible, onChangeCompact, }: Omit<AppNavigationProps, 'compact' | 'rememberSize' | 'className'>): React.JSX.Element;
5
5
  declare const _default: React.MemoExoticComponent<typeof AppNavigationComponent>;
6
6
  export default _default;
@@ -2,10 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import React, { useState } from 'react';
4
4
  import cn from 'bem-cn-lite';
5
- import axios from 'axios';
6
- import { useHistory } from 'react-router';
7
5
  import { FooterItem, PageLayoutAside } from '@gravity-ui/navigation';
8
- import { Menu } from '@gravity-ui/uikit';
9
6
  import Logo from '../../../../img/svg/appLogo.svg';
10
7
  var GearIcon = function GearIcon(props) {
11
8
  return /*#__PURE__*/_jsxs("svg", _objectSpread(_objectSpread({}, props), {}, {
@@ -38,6 +35,8 @@ GearIcon.defaultProps = {
38
35
  import Link from '../../components/Link/Link';
39
36
  import unknown from '../../../../img/user-avatar.svg';
40
37
  import "./AppNavigationComponent.css";
38
+ import { Menu } from '@gravity-ui/uikit';
39
+ import { useHistory } from 'react-router';
41
40
  import { jsx as _jsx } from "react/jsx-runtime";
42
41
  import { jsxs as _jsxs } from "react/jsx-runtime";
43
42
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -46,6 +45,7 @@ function AppNavigationComponent(_ref) {
46
45
  var logoClassName = _ref.logoClassName,
47
46
  menuItems = _ref.menuItems,
48
47
  currentUser = _ref.currentUser,
48
+ authWay = _ref.authWay,
49
49
  panelContent = _ref.panelContent,
50
50
  panelVisible = _ref.panelVisible,
51
51
  panelClassName = _ref.panelClassName,
@@ -136,15 +136,13 @@ function AppNavigationComponent(_ref) {
136
136
  return /*#__PURE__*/_jsx("div", {
137
137
  className: block('settings-ul'),
138
138
  children: /*#__PURE__*/_jsxs(Menu, {
139
- children: [/*#__PURE__*/_jsx(Menu.Item, {
139
+ children: [authWay === 'passwd' && /*#__PURE__*/_jsx(Menu.Item, {
140
140
  onClick: function onClick() {
141
141
  return history.push('/change-password');
142
142
  },
143
143
  children: "Change password"
144
144
  }), /*#__PURE__*/_jsx(Menu.Item, {
145
- onClick: function onClick() {
146
- axios.post('/api/yt/logout')["catch"](function () {});
147
- },
145
+ href: '/api/yt/logout',
148
146
  children: "Logout"
149
147
  })]
150
148
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","cn","axios","useHistory","FooterItem","PageLayoutAside","Menu","Logo","GearIcon","props","_jsxs","_objectSpread","children","_jsx","clipPath","fill","fillRule","d","clipRule","id","defaultProps","xmlns","width","height","viewBox","Link","unknown","jsx","jsxs","Fragment","_Fragment","block","AppNavigationComponent","_ref","logoClassName","menuItems","currentUser","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","item","title","onItemClick","itemWrapper","_ref3","makeItem","src","enableTooltip","onClosePopup","renderPopupContent","Item","onClick","push","post","memo"],"sources":["AppNavigationComponent.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport axios from 'axios';\nimport {useHistory} from 'react-router';\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 Link from '../../components/Link/Link';\nimport unknown from '../../../../img/user-avatar.svg';\nimport {AppNavigationProps} from './AppNavigationPageLayout';\n\nimport './AppNavigationComponent.scss';\n\nconst block = cn('yt-app-navigation');\n\nfunction AppNavigationComponent({\n logoClassName,\n menuItems,\n currentUser,\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 <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 <Menu.Item\n onClick={() => history.push('/change-password')}\n >\n Change password\n </Menu.Item>\n <Menu.Item\n onClick={() => {\n axios.post('/api/yt/logout').catch(() => {});\n }}\n >\n Logout\n </Menu.Item>\n </Menu>\n </div>\n );\n }}\n />\n </>\n );\n }}\n />\n );\n}\n\nexport default React.memo(AppNavigationComponent);\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,QAAQ,QAAO,OAAO;AACrC,OAAOC,EAAE,MAAM,aAAa;AAC5B,OAAOC,KAAK,MAAM,OAAO;AACzB,SAAQC,UAAU,QAAO,cAAc;AACvC,SAAQC,UAAU,EAAEC,eAAe,QAAO,wBAAwB;AAClE,SAAQC,IAAI,QAAO,mBAAmB;AAEtC,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;AACf,OAAOC,IAAI,MAAM,4BAA4B;AAC7C,OAAOC,OAAO,MAAM,iCAAiC;AAGrD,OAAO,8BAA+B;AAAC,SAAAC,GAAA,IAAAd,IAAA;AAAA,SAAAe,IAAA,IAAAlB,KAAA;AAAA,SAAAmB,QAAA,IAAAC,SAAA;AAEvC,IAAMC,KAAK,GAAG9B,EAAE,CAAC,mBAAmB,CAAC;AAErC,SAAS+B,sBAAsBA,CAAAC,IAAA,EAewC;EAAA,IAdnEC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAEXC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IACZC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IACZC,cAAc,GAAAN,IAAA,CAAdM,cAAc;IACdC,YAAY,GAAAP,IAAA,CAAZO,YAAY;IAEZC,eAAe,GAAAR,IAAA,CAAfQ,eAAe;IACfC,eAAe,GAAAT,IAAA,CAAfS,eAAe;IACfC,qBAAqB,GAAAV,IAAA,CAArBU,qBAAqB;IAErBC,eAAe,GAAAX,IAAA,CAAfW,eAAe;EAEf,IAAMC,UAAU,GAAG9C,KAAK,CAAC+C,OAAO,CAAC,YAAM;IACnC,OAAO,CACH;MACI3B,EAAE,EAAE,OAAO;MACX4B,OAAO,EAAEV,YAAY;MACrBW,OAAO,EAAEV,YAAY;MACrBW,SAAS,EAAEV;IACf,CAAC,EACD;MACIpB,EAAE,EAAE,UAAU;MACd4B,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,GAAwClD,QAAQ,CAAC,KAAK,CAAC;IAAAmD,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAhDG,YAAY,GAAAF,UAAA;IAAEG,eAAe,GAAAH,UAAA;EACpC,IAAMI,OAAO,GAAGpD,UAAU,CAAC,CAAC;EAE5B,oBACIU,IAAA,CAACR,eAAe;IACZmD,eAAe;IACfX,UAAU,EAAEA,UAAW;IACvBL,YAAY,EAAEA,YAAa;IAC3BL,SAAS,EAAEA,SAAU;IACrBsB,gBAAgB;IAChBC,IAAI,EAAE;MACFC,IAAI,EAAE,SAAAA,KAAA;QAAA,OAAM,UAAU;MAAA;MACtBC,QAAQ,EAAE,EAAE;MACZC,IAAI,EAAEtD,IAAI;MACVuD,QAAQ,EAAE,EAAE;MACZC,aAAa,EAAE7B,aAAa;MAC5B8B,OAAO,EAAE,SAAAA,QAACC,IAAI,EAAK;QACf,oBACIpD,IAAA,CAACY,IAAI;UAACyC,GAAG,EAAE,GAAI;UAACC,KAAK,EAAE,SAAU;UAACC,MAAM,EAAC,QAAQ;UAAAxD,QAAA,EAC5CqD;QAAI,CACH,CAAC;MAEf;IACJ,CAAE;IACFrB,eAAe,EAAEA,eAAgB;IACjCyB,YAAY,EAAE,SAAAA,aAAAC,KAAA,EAAe;MAAA,IAAbC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MACnB,oBACI7D,KAAA,CAAAoB,SAAA;QAAAlB,QAAA,gBACIC,IAAA,CAACT,UAAU;UACPmE,OAAO,EAAEA,OAAQ;UACjBC,IAAI,EAAE;YACFrD,EAAE,EAAE,UAAU;YACdsD,KAAK,EAAE,UAAU;YACjBC,WAAW,EAAE/B,qBAAqB;YAClCkB,IAAI,EAAErD;UACV;QAAE,CACL,CAAC,eACFK,IAAA,CAACT,UAAU;UACPmE,OAAO,EAAEA,OAAQ;UACjBC,IAAI,EAAE;YACFrD,EAAE,EAAE,MAAM;YACVsD,KAAK,EAAErC,WAAW;YAClBsC,WAAW,EAAE,SAAAA,YAAA,EAAM;cACfpB,eAAe,CAAC,CAACD,YAAY,CAAC;YAClC,CAAC;YACDsB,WAAW,EAAE,SAAAA,YAAAC,KAAA,EAAeC,QAAa,EAAK;cAAA,IAA/BJ,KAAK,GAAAG,KAAA,CAALH,KAAK;cAChB,OAAOI,QAAQ,CAAC;gBACZJ,KAAK,EAALA,KAAK;gBACLZ,IAAI,eACAhD,IAAA;kBACIoC,SAAS,EAAElB,KAAK,CAAC,WAAW,CAAE;kBAC9BT,KAAK,EAAE,EAAG;kBACVC,MAAM,EAAE,EAAG;kBACXuD,GAAG,EAAEpD;gBAAQ,CAChB;cAET,CAAC,CAAC;YACN;UACJ,CAAE;UACFqD,aAAa,EAAE,CAAC1B,YAAa;UAC7BA,YAAY,EAAEA,YAAa;UAC3B2B,YAAY,EAAE,SAAAA,aAAA;YAAA,OAAM1B,eAAe,CAAC,KAAK,CAAC;UAAA,CAAC;UAC3C2B,kBAAkB,EAAE,SAAAA,mBAAA,EAAM;YACtB,oBACIpE,IAAA;cAAKoC,SAAS,EAAElB,KAAK,CAAC,aAAa,CAAE;cAAAnB,QAAA,eACjCF,KAAA,CAACJ,IAAI;gBAAAM,QAAA,gBACDC,IAAA,CAACP,IAAI,CAAC4E,IAAI;kBACNC,OAAO,EAAE,SAAAA,QAAA;oBAAA,OAAM5B,OAAO,CAAC6B,IAAI,CAAC,kBAAkB,CAAC;kBAAA,CAAC;kBAAAxE,QAAA,EACnD;gBAED,CAAW,CAAC,eACZC,IAAA,CAACP,IAAI,CAAC4E,IAAI;kBACNC,OAAO,EAAE,SAAAA,QAAA,EAAM;oBACXjF,KAAK,CAACmF,IAAI,CAAC,gBAAgB,CAAC,SAAM,CAAC,YAAM,CAAC,CAAC,CAAC;kBAChD,CAAE;kBAAAzE,QAAA,EACL;gBAED,CAAW,CAAC;cAAA,CACV;YAAC,CACN,CAAC;UAEd;QAAE,CACL,CAAC;MAAA,CACJ,CAAC;IAEX;EAAE,CACL,CAAC;AAEV;AAEA,4BAAeb,KAAK,CAACuF,IAAI,CAACtD,sBAAsB,CAAC"}
1
+ {"version":3,"names":["React","useState","cn","FooterItem","PageLayoutAside","Logo","GearIcon","props","_jsxs","_objectSpread","children","_jsx","clipPath","fill","fillRule","d","clipRule","id","defaultProps","xmlns","width","height","viewBox","Link","unknown","Menu","useHistory","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","item","title","onItemClick","itemWrapper","_ref3","makeItem","src","enableTooltip","onClosePopup","renderPopupContent","Item","onClick","push","href","memo"],"sources":["AppNavigationComponent.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {FooterItem, PageLayoutAside} from '@gravity-ui/navigation';\n\nimport Logo from '../../../../img/svg/appLogo.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport Link from '../../components/Link/Link';\nimport unknown from '../../../../img/user-avatar.svg';\nimport {AppNavigationProps} from './AppNavigationPageLayout';\n\nimport './AppNavigationComponent.scss';\nimport {Menu} from '@gravity-ui/uikit';\nimport {useHistory} from 'react-router';\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 <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,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { MenuItem } from '@gravity-ui/navigation';
3
3
  import { ClusterConfig } from '../../../shared/yt-types';
4
+ import { AuthWay } from '../../../shared/constants';
4
5
  export interface AppNavigationProps {
5
6
  initialCompact?: boolean;
6
7
  className: string;
@@ -13,6 +14,7 @@ export interface AppNavigationProps {
13
14
  title: string;
14
15
  }>;
15
16
  currentUser: string;
17
+ authWay: AuthWay;
16
18
  panelVisible: boolean;
17
19
  panelContent: React.ReactNode;
18
20
  panelClassName: string;
@@ -1 +1 @@
1
- {"version":3,"names":["React","AsideFallback","PageLayout","jsx","_jsx","jsxs","_jsxs","Aside","lazy","AppNavigationPageLayout","props","onChangeCompact","className","compact","rest","_objectWithoutProperties","_excluded","children","Suspense","fallback","_objectSpread","Content","memo"],"sources":["AppNavigationPageLayout.tsx"],"sourcesContent":["import React from 'react';\nimport {AsideFallback, MenuItem, PageLayout} from '@gravity-ui/navigation';\n\nimport {ClusterConfig} from '../../../shared/yt-types';\n\nexport interface AppNavigationProps {\n initialCompact?: boolean;\n className: string;\n children?: React.ReactNode;\n\n clusterConfig?: ClusterConfig;\n logoClassName: string;\n\n menuItems: Array<\n Omit<MenuItem, 'title' | 'type'> & {itemUrl?: string; current?: boolean; title: string}\n >;\n currentUser: string;\n\n panelVisible: boolean;\n panelContent: React.ReactNode;\n panelClassName: string;\n onClosePanel: () => void;\n\n settingsContent: React.ReactNode;\n settingsVisible: boolean;\n toggleSettingsVisible: () => void;\n\n compact: boolean;\n onChangeCompact: (compact: boolean) => void;\n}\n\nconst Aside = React.lazy(() => import('./AppNavigationComponent'));\n\nexport function AppNavigationPageLayout(props: AppNavigationProps) {\n const {onChangeCompact, className, compact, ...rest} = props;\n\n return (\n <PageLayout compact={compact} className={className}>\n <React.Suspense fallback={<AsideFallback />}>\n <Aside {...rest} onChangeCompact={onChangeCompact} />\n </React.Suspense>\n\n <PageLayout.Content>{props.children}</PageLayout.Content>\n </PageLayout>\n );\n}\n\nexport default React.memo(AppNavigationPageLayout);\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,aAAa,EAAYC,UAAU,QAAO,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AA8B3E,IAAMC,KAAK,gBAAGP,KAAK,CAACQ,IAAI,CAAC;EAAA,OAAM,MAAM,CAAC,0BAA0B,CAAC;AAAA,EAAC;AAElE,OAAO,SAASC,uBAAuBA,CAACC,KAAyB,EAAE;EAC/D,IAAOC,eAAe,GAAiCD,KAAK,CAArDC,eAAe;IAAEC,SAAS,GAAsBF,KAAK,CAApCE,SAAS;IAAEC,OAAO,GAAaH,KAAK,CAAzBG,OAAO;IAAKC,IAAI,GAAAC,wBAAA,CAAIL,KAAK,EAAAM,SAAA;EAE5D,oBACIV,KAAA,CAACJ,UAAU;IAACW,OAAO,EAAEA,OAAQ;IAACD,SAAS,EAAEA,SAAU;IAAAK,QAAA,gBAC/Cb,IAAA,CAACJ,KAAK,CAACkB,QAAQ;MAACC,QAAQ,eAAEf,IAAA,CAACH,aAAa,IAAE,CAAE;MAAAgB,QAAA,eACxCb,IAAA,CAACG,KAAK,EAAAa,aAAA,CAAAA,aAAA,KAAKN,IAAI;QAAEH,eAAe,EAAEA;MAAgB,EAAE;IAAC,CACzC,CAAC,eAEjBP,IAAA,CAACF,UAAU,CAACmB,OAAO;MAAAJ,QAAA,EAAEP,KAAK,CAACO;IAAQ,CAAqB,CAAC;EAAA,CACjD,CAAC;AAErB;AAEA,4BAAejB,KAAK,CAACsB,IAAI,CAACb,uBAAuB,CAAC"}
1
+ {"version":3,"names":["React","AsideFallback","PageLayout","jsx","_jsx","jsxs","_jsxs","Aside","lazy","AppNavigationPageLayout","props","onChangeCompact","className","compact","rest","_objectWithoutProperties","_excluded","children","Suspense","fallback","_objectSpread","Content","memo"],"sources":["AppNavigationPageLayout.tsx"],"sourcesContent":["import React from 'react';\nimport {AsideFallback, MenuItem, PageLayout} from '@gravity-ui/navigation';\n\nimport {ClusterConfig} from '../../../shared/yt-types';\nimport {AuthWay} from '../../../shared/constants';\n\nexport interface AppNavigationProps {\n initialCompact?: boolean;\n className: string;\n children?: React.ReactNode;\n\n clusterConfig?: ClusterConfig;\n logoClassName: string;\n\n menuItems: Array<\n Omit<MenuItem, 'title' | 'type'> & {itemUrl?: string; current?: boolean; title: string}\n >;\n currentUser: string;\n\n authWay: AuthWay;\n\n panelVisible: boolean;\n panelContent: React.ReactNode;\n panelClassName: string;\n onClosePanel: () => void;\n\n settingsContent: React.ReactNode;\n settingsVisible: boolean;\n toggleSettingsVisible: () => void;\n\n compact: boolean;\n onChangeCompact: (compact: boolean) => void;\n}\n\nconst Aside = React.lazy(() => import('./AppNavigationComponent'));\n\nexport function AppNavigationPageLayout(props: AppNavigationProps) {\n const {onChangeCompact, className, compact, ...rest} = props;\n\n return (\n <PageLayout compact={compact} className={className}>\n <React.Suspense fallback={<AsideFallback />}>\n <Aside {...rest} onChangeCompact={onChangeCompact} />\n </React.Suspense>\n\n <PageLayout.Content>{props.children}</PageLayout.Content>\n </PageLayout>\n );\n}\n\nexport default React.memo(AppNavigationPageLayout);\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,aAAa,EAAYC,UAAU,QAAO,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAiC3E,IAAMC,KAAK,gBAAGP,KAAK,CAACQ,IAAI,CAAC;EAAA,OAAM,MAAM,CAAC,0BAA0B,CAAC;AAAA,EAAC;AAElE,OAAO,SAASC,uBAAuBA,CAACC,KAAyB,EAAE;EAC/D,IAAOC,eAAe,GAAiCD,KAAK,CAArDC,eAAe;IAAEC,SAAS,GAAsBF,KAAK,CAApCE,SAAS;IAAEC,OAAO,GAAaH,KAAK,CAAzBG,OAAO;IAAKC,IAAI,GAAAC,wBAAA,CAAIL,KAAK,EAAAM,SAAA;EAE5D,oBACIV,KAAA,CAACJ,UAAU;IAACW,OAAO,EAAEA,OAAQ;IAACD,SAAS,EAAEA,SAAU;IAAAK,QAAA,gBAC/Cb,IAAA,CAACJ,KAAK,CAACkB,QAAQ;MAACC,QAAQ,eAAEf,IAAA,CAACH,aAAa,IAAE,CAAE;MAAAgB,QAAA,eACxCb,IAAA,CAACG,KAAK,EAAAa,aAAA,CAAAA,aAAA,KAAKN,IAAI;QAAEH,eAAe,EAAEA;MAAgB,EAAE;IAAC,CACzC,CAAC,eAEjBP,IAAA,CAACF,UAAU,CAACmB,OAAO;MAAAJ,QAAA,EAAEP,KAAK,CAACO;IAAQ,CAAqB,CAAC;EAAA,CACjD,CAAC;AAErB;AAEA,4BAAejB,KAAK,CAACsB,IAAI,CAACb,uBAAuB,CAAC"}
@@ -17,7 +17,7 @@ import { getClusterUiConfig, isDeveloper } from '../../../../store/selectors/glo
17
17
  import { hideTabletCellBundleEditor, setBundleEditorController } from '../../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';
18
18
  import { getBundleEditorData, getTabletBundlesWriteableByName } from '../../../../store/selectors/tablet_cell_bundles';
19
19
  import { getTabletCellBundleEditorState } from '../../../../store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor';
20
- import { bundleEditorDict, createConfigurationList, createParams, getBundleControllerResource, getInitialFormValues, getResourceData, prepareSubmitBundle, simpleBundleValidate } from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';
20
+ import { bundleEditorDict, createConfigurationList, createParams, getBundleControllerResource, getInitialFormValues, getResourceData, instanceCountValidate, prepareSubmitBundle, simpleBundleValidate } from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';
21
21
  import UIFactory, { isAbcAllowed } from '../../../../UIFactory';
22
22
  import { makeLink } from '../../../../utils/utils';
23
23
  import { docsUrl } from '../../../../config';
@@ -56,15 +56,17 @@ export function BundleEditorDialog() {
56
56
  }();
57
57
  var _ref = function () {
58
58
  if (!bundleDefaultConfig) {
59
- return [[], []];
59
+ return [[], [], []];
60
60
  }
61
61
  var rpc_proxy_sizes = bundleDefaultConfig.rpc_proxy_sizes,
62
- tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes;
63
- return [createConfigurationList(rpc_proxy_sizes), createConfigurationList(tablet_node_sizes)];
62
+ tablet_node_sizes = bundleDefaultConfig.tablet_node_sizes,
63
+ data_centers = bundleDefaultConfig.data_centers;
64
+ return [createConfigurationList(rpc_proxy_sizes), createConfigurationList(tablet_node_sizes), data_centers ? _toConsumableArray(Object.values(data_centers)) : []];
64
65
  }(),
65
- _ref2 = _slicedToArray(_ref, 2),
66
+ _ref2 = _slicedToArray(_ref, 3),
66
67
  rpcConfigurations = _ref2[0],
67
- nodeConfigurations = _ref2[1];
68
+ nodeConfigurations = _ref2[1],
69
+ dcConfigurations = _ref2[2];
68
70
  var renderGeneralTabs = {
69
71
  name: 'general',
70
72
  title: 'General',
@@ -149,7 +151,8 @@ export function BundleEditorDialog() {
149
151
  withoutDetailedBar: true,
150
152
  hasClear: true
151
153
  },
152
- validator: simpleBundleValidate
154
+ tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),
155
+ validator: instanceCountValidate(dcConfigurations)
153
156
  }, {
154
157
  type: 'bundle-table-field',
155
158
  name: 'rpc_proxy_resource_guarantee',
@@ -169,7 +172,8 @@ export function BundleEditorDialog() {
169
172
  withoutDetailedBar: true,
170
173
  hasClear: true
171
174
  },
172
- validator: simpleBundleValidate
175
+ tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),
176
+ validator: instanceCountValidate(dcConfigurations)
173
177
  }, {
174
178
  type: 'bundle-table-field',
175
179
  name: 'tablet_node_resource_guarantee',
@@ -1 +1 @@
1
- {"version":3,"names":["React","useDispatch","useSelector","cn","Info","BundleParamsList","DialogError","FORM_ERROR","YTDFDialog","hammer","getClusterUiConfig","isDeveloper","hideTabletCellBundleEditor","setBundleEditorController","getBundleEditorData","getTabletBundlesWriteableByName","getTabletCellBundleEditorState","bundleEditorDict","createConfigurationList","createParams","getBundleControllerResource","getInitialFormValues","getResourceData","prepareSubmitBundle","simpleBundleValidate","UIFactory","isAbcAllowed","makeLink","docsUrl","jsx","_jsx","jsxs","_jsxs","block","BundleEditorDialog","_initialValues$resour","_useSelector","visibleEditor","bundleName","bundleData","data","orchidData","bundleControllerData","clusterUiConfig","_useSelector2","bundleDefaultConfig","defaultConfig","bundleControllerConfig","bundle_controller_target_config","enableBundleController","enable_bundle_controller","_getResourceData","tabletCountUsage","usage","_getResourceData2","tabletStaticMemoryUsage","writeableByName","allowTabletCount","get","allowEdit","initialValues","_ref","rpc_proxy_sizes","tablet_node_sizes","_ref2","_slicedToArray","rpcConfigurations","nodeConfigurations","renderGeneralTabs","name","title","type","size","fields","concat","_toConsumableArray","caption","extras","placeholder","disabled","allowRootAccount","renderResourceTab","fullWidth","children","className","renderTableCellBundleEditorNotice","params","value","format","resource_quota","memory","vcpu","Number","resources","tablet_count","withoutDetailedBar","progress","validator","section","hasClear","values","_ref3","form","onRadioClick","nodeConfigurationType","defaultMemory","default_config","memory_limits","defaultThreadPool","cpu_limits","resultMemory","resultThreadPool","change","_objectSpread","defaults","renderSimpleResourceTab","tooltip","renderMemoryTab","visibilityCondition","when","isActive","v","allValues","_ref4","_allValues$resources","tablet_node_resource_guarantee","onReset","used","keys","reduce","sum","k","_allValues$memory_lim","isNaN","docsUrls","undefined","_ref5","hasError","_get","errorText","validateMemoryLimits","header","message","renderThreadPoolTab","_ref6","_allValues$resources2","postfix","push","dispatch","onClose","onSubmit","_ref7","_asyncToGenerator","_regeneratorRuntime","mark","_callee","preparedData","wrap","_callee$","_context","prev","next","abrupt","t0","validationErrors","_defineProperty","error","stop","_x","apply","arguments","_isEmpty","headerProps","visible","onAdd","_values$resources","_values$resources$tab","memoryLimits","currentAccLimit","Object","acc"],"sources":["BundleEditorDialog.tsx"],"sourcesContent":["import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {Info} from '../../../../components/Info/Info';\nimport {BundleParamsList} from './components/BundleParamsList/BundleParamsList';\nimport {\n DialogError,\n DialogField,\n DialogTabField,\n FORM_ERROR,\n FormApi,\n YTDFDialog,\n} from '../../../../components/Dialog/Dialog';\nimport hammer from '../../../../common/hammer';\n\nimport {getClusterUiConfig, isDeveloper} from '../../../../store/selectors/global';\nimport {\n hideTabletCellBundleEditor,\n setBundleEditorController,\n} from '../../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';\nimport {\n getBundleEditorData,\n getTabletBundlesWriteableByName,\n} from '../../../../store/selectors/tablet_cell_bundles';\nimport {BundleResourceGuarantee} from '../../../../store/reducers/tablet_cell_bundles';\nimport {getTabletCellBundleEditorState} from '../../../../store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor';\n\nimport {\n bundleEditorDict,\n createConfigurationList,\n createParams,\n getBundleControllerResource,\n getInitialFormValues,\n getResourceData,\n prepareSubmitBundle,\n simpleBundleValidate,\n} from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';\nimport UIFactory, {isAbcAllowed} from '../../../../UIFactory';\nimport {makeLink} from '../../../../utils/utils';\nimport {docsUrl} from '../../../../config';\n\nimport './BundleEditorDialog.scss';\n\nconst block = cn('bundle-editor');\n\nexport interface BundleEditorDialogFormValues {\n general: {\n abc?: {slug: string; id?: number};\n changelog_account?: string;\n snapshot_account?: string;\n };\n resources: {\n info?: string; // system\n rpc_proxy_count?: number; // todo\n rpc_proxy_resource_guarantee?: BundleResourceGuarantee;\n tablet_node_count?: number;\n tablet_node_resource_guarantee?: BundleResourceGuarantee;\n tablet_count?: number; // old\n tablet_static_memory?: number; // pld\n };\n memory_limits: {\n error?: boolean; // system\n memory_reset: boolean; // system\n reserved?: number;\n tablet_static?: number;\n tablet_dynamic?: number;\n compressed_block_cache?: number;\n uncompressed_block_cache?: number;\n versioned_chunk_meta?: number;\n lookup_row_cache?: number;\n key_filter_block_cache?: number;\n };\n cpu_limits: {\n threadPool_reset?: boolean; //system\n lookup_thread_pool_size?: number;\n query_thread_pool_size?: number;\n write_thread_pool_size?: number;\n };\n}\n\nexport function BundleEditorDialog() {\n const {\n visibleEditor,\n bundleName,\n bundleData,\n data,\n bundleControllerData: orchidData,\n } = useSelector(getTabletCellBundleEditorState);\n\n const clusterUiConfig = useSelector(getClusterUiConfig);\n\n const {defaultConfig: bundleDefaultConfig} = useSelector(getBundleEditorData);\n\n const bundleControllerConfig = bundleData?.bundle_controller_target_config;\n const enableBundleController = bundleData?.enable_bundle_controller || false;\n\n const {usage: tabletCountUsage} = getResourceData(data, 'tablet_count');\n const {usage: tabletStaticMemoryUsage} = getResourceData(data, 'tablet_static_memory');\n\n const writeableByName = useSelector(getTabletBundlesWriteableByName);\n const allowTabletCount = writeableByName.get(bundleName ?? '');\n const allowEdit = useSelector(isDeveloper);\n\n const initialValues: Partial<BundleEditorDialogFormValues> = (() => {\n if (!enableBundleController) {\n return getInitialFormValues(data);\n }\n if (!bundleControllerConfig) {\n return {};\n }\n return getInitialFormValues(data, bundleControllerConfig);\n })();\n\n const [rpcConfigurations, nodeConfigurations] = (() => {\n if (!bundleDefaultConfig) {\n return [[], []];\n }\n const {rpc_proxy_sizes, tablet_node_sizes} = bundleDefaultConfig;\n\n return [\n createConfigurationList(rpc_proxy_sizes),\n createConfigurationList(tablet_node_sizes),\n ];\n })();\n\n const renderGeneralTabs: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'general',\n title: 'General',\n type: 'tab-vertical',\n size: 's',\n fields: [\n ...(!isAbcAllowed()\n ? []\n : [\n {\n name: 'abc',\n type: 'abc-control' as const,\n caption: 'ABC Service',\n extras: {\n placeholder: 'Select ABC service...',\n disabled: !allowEdit,\n },\n },\n ]),\n {\n name: 'changelog_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Changelog account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n {\n name: 'snapshot_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Snapshot account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n ],\n };\n\n const renderResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'info',\n type: 'block',\n fullWidth: true,\n extras: {\n children: (\n <Info className={block('info')}>\n {UIFactory.renderTableCellBundleEditorNotice({\n bundleData,\n clusterUiConfig,\n })}\n <BundleParamsList\n className={block('params')}\n params={[\n {\n title: 'Memory',\n value: hammer.format['Bytes'](\n orchidData?.resource_quota.memory || '0',\n ),\n },\n {\n title: 'vCPU',\n value: hammer.format['vCores'](\n orchidData?.resource_quota.vcpu || '0',\n ),\n },\n {\n title: 'Tablet count',\n value: hammer.format.Number(\n initialValues.resources?.tablet_count,\n ),\n },\n ]}\n />\n </Info>\n ),\n },\n },\n ...(!allowTabletCount\n ? []\n : [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n } as const,\n ]),\n {section: 'RPC proxy'},\n {\n type: 'bundle-input',\n name: 'rpc_proxy_count',\n caption: 'RPC proxy count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'bundle-table-field',\n name: 'rpc_proxy_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: {\n data: rpcConfigurations,\n },\n },\n {section: 'Tablet node'},\n {\n type: 'bundle-input',\n name: 'tablet_node_count',\n caption: 'Tablet node count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'bundle-table-field',\n name: 'tablet_node_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: function (values, {form}) {\n const onRadioClick = (value: BundleResourceGuarantee) => {\n const nodeConfigurationType = value.type || '';\n\n const defaultMemory =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.memory_limits || {};\n const defaultThreadPool =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.cpu_limits || {};\n\n const resultMemory = getBundleControllerResource(\n values.memory_limits,\n defaultMemory,\n 'memory_limits',\n );\n const resultThreadPool = getBundleControllerResource(\n values.cpu_limits,\n defaultThreadPool,\n 'cpu_limits',\n );\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...resultMemory,\n });\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...resultThreadPool,\n });\n };\n\n return {\n data: nodeConfigurations,\n onRadioClick,\n };\n },\n },\n ],\n };\n\n const renderSimpleResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_static_memory',\n type: 'bundle-input',\n caption: 'Tablet static memory',\n extras: {\n format: 'Bytes',\n progress: {\n usage: tabletStaticMemoryUsage,\n },\n },\n validator: simpleBundleValidate,\n tooltip: (\n <span>\n Tablet static memory limit is based on hardware resources. Do not increase\n it unless you fully understand what you are doing. In case of emergency\n consider adding new tablet cells to the bundle, consulting with\n Components/Nodes page and increasing the limit only when new nodes are added\n to the bundle.\n </span>\n ),\n },\n ],\n };\n\n const renderMemoryTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'memory_limits',\n title: 'Memory',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'memory_reset',\n type: 'bundle-title',\n caption: 'Memory',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n const onReset = () => {\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return;\n }\n const type = tablet_node_resource_guarantee.type;\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {memory_limits} = tablet_node_sizes[type].default_config;\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...memory_limits,\n });\n };\n\n if (!tablet_node_resource_guarantee) {\n return {\n params: [],\n onReset,\n };\n }\n const {memory} = tablet_node_resource_guarantee;\n\n const used = bundleEditorDict.keys.memory_limits.reduce((sum, k) => {\n const v = allValues?.memory_limits?.[k];\n return typeof v !== 'number' || isNaN(v) ? sum : sum + v;\n }, 0);\n\n return {\n params: createParams('Bytes', memory, used),\n onReset,\n };\n },\n },\n {\n name: 'reserved',\n type: 'bundle-input',\n caption: 'Reserved',\n extras: {\n format: 'Bytes',\n disabled: true,\n },\n tooltip: docsUrl(\n makeLink(UIFactory.docsUrls['bundle-controller:reserved-memory'], 'Help'),\n ),\n },\n {\n name: 'tablet_static',\n type: 'bundle-input',\n caption: 'Tablet static',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_dynamic',\n type: 'bundle-input',\n caption: 'Tablet dynamic',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'compressed_block_cache',\n type: 'bundle-input',\n caption: 'Compressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'uncompressed_block_cache',\n type: 'bundle-input',\n caption: 'Uncompressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'versioned_chunk_meta',\n type: 'bundle-input',\n caption: 'Versioned chunk meta',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'lookup_row_cache',\n type: 'bundle-input',\n caption: 'Lookup row cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'key_filter_block_cache',\n type: 'bundle-input',\n caption: 'Key filter block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'block',\n name: 'error',\n validator: (v: any) => (v ? v : undefined),\n fullWidth: true,\n extras(allValues, {form}) {\n const hasError = _.get(allValues, 'memory_limits.error');\n const errorText = validateMemoryLimits(allValues);\n\n if (errorText && !hasError) {\n form.change('memory_limits.error', true);\n } else if (!errorText && hasError) {\n form.change('memory_limits.error', false);\n }\n\n return {\n children: !errorText ? null : (\n <DialogError header={'Error'} message={<span>{errorText}</span>} />\n ),\n };\n },\n },\n ],\n };\n\n const renderThreadPoolTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'cpu_limits',\n title: 'Thread pools',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'threadPool_reset',\n type: 'bundle-title',\n caption: 'vCPU',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return {\n params: [],\n onReset: () => {},\n };\n }\n\n const onReset = () => {\n const type = tablet_node_resource_guarantee.type;\n if (!type) {\n return;\n }\n\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {cpu_limits} = tablet_node_sizes[type].default_config;\n\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...cpu_limits,\n });\n };\n\n const {vcpu} = tablet_node_resource_guarantee;\n\n return {\n params: createParams('vCores', vcpu),\n onReset,\n };\n },\n },\n {\n name: 'lookup_thread_pool_size',\n type: 'bundle-input',\n caption: 'Lookup thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'query_thread_pool_size',\n type: 'bundle-input',\n caption: 'Query thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'write_thread_pool_size',\n type: 'bundle-input',\n caption: 'Write thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n ],\n };\n\n const fields = [renderGeneralTabs];\n if (enableBundleController) {\n fields.push(renderResourceTab, renderMemoryTab, renderThreadPoolTab);\n } else {\n fields.push(renderSimpleResourceTab);\n }\n\n const dispatch = useDispatch();\n const onClose = () => {\n dispatch(hideTabletCellBundleEditor());\n };\n\n const onSubmit = async (form: FormApi<BundleEditorDialogFormValues>) => {\n if (!bundleName) {\n return {};\n }\n\n const preparedData = prepareSubmitBundle(form);\n\n try {\n await dispatch(\n setBundleEditorController({\n bundleName,\n data: preparedData,\n }),\n );\n return undefined;\n } catch (error) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n }\n };\n\n if (_.isEmpty(data)) {\n return null;\n }\n\n return (\n <YTDFDialog<BundleEditorDialogFormValues>\n className={block('dialog')}\n headerProps={{\n title: bundleName,\n }}\n size=\"l\"\n initialValues={initialValues}\n visible={visibleEditor}\n onAdd={onSubmit}\n onClose={onClose}\n fields={fields}\n />\n );\n}\n\nfunction validateMemoryLimits(values: BundleEditorDialogFormValues) {\n if (values.resources?.tablet_node_resource_guarantee) {\n const memoryLimits = values.resources.tablet_node_resource_guarantee?.memory || 0;\n const currentAccLimit =\n Object.values(values.memory_limits || {}).reduce((acc: number, v: number | boolean) => {\n if (typeof v !== 'number') {\n return acc;\n }\n return acc + v;\n }, 0) || 0;\n\n if (currentAccLimit > memoryLimits) {\n return 'The sum of the memory limits exceeds the allowed values';\n }\n }\n\n return '';\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useDispatch","useSelector","cn","Info","BundleParamsList","DialogError","FORM_ERROR","YTDFDialog","hammer","getClusterUiConfig","isDeveloper","hideTabletCellBundleEditor","setBundleEditorController","getBundleEditorData","getTabletBundlesWriteableByName","getTabletCellBundleEditorState","bundleEditorDict","createConfigurationList","createParams","getBundleControllerResource","getInitialFormValues","getResourceData","instanceCountValidate","prepareSubmitBundle","simpleBundleValidate","UIFactory","isAbcAllowed","makeLink","docsUrl","jsx","_jsx","jsxs","_jsxs","block","BundleEditorDialog","_initialValues$resour","_useSelector","visibleEditor","bundleName","bundleData","data","orchidData","bundleControllerData","clusterUiConfig","_useSelector2","bundleDefaultConfig","defaultConfig","bundleControllerConfig","bundle_controller_target_config","enableBundleController","enable_bundle_controller","_getResourceData","tabletCountUsage","usage","_getResourceData2","tabletStaticMemoryUsage","writeableByName","allowTabletCount","get","allowEdit","initialValues","_ref","rpc_proxy_sizes","tablet_node_sizes","data_centers","_toConsumableArray","Object","values","_ref2","_slicedToArray","rpcConfigurations","nodeConfigurations","dcConfigurations","renderGeneralTabs","name","title","type","size","fields","concat","caption","extras","placeholder","disabled","allowRootAccount","renderResourceTab","fullWidth","children","className","renderTableCellBundleEditorNotice","params","value","format","resource_quota","memory","vcpu","Number","resources","tablet_count","withoutDetailedBar","progress","validator","section","hasClear","tooltip","docsUrls","_ref3","form","onRadioClick","nodeConfigurationType","defaultMemory","default_config","memory_limits","defaultThreadPool","cpu_limits","resultMemory","resultThreadPool","change","_objectSpread","defaults","renderSimpleResourceTab","renderMemoryTab","visibilityCondition","when","isActive","v","allValues","_ref4","_allValues$resources","tablet_node_resource_guarantee","onReset","used","keys","reduce","sum","k","_allValues$memory_lim","isNaN","undefined","_ref5","hasError","_get","errorText","validateMemoryLimits","header","message","renderThreadPoolTab","_ref6","_allValues$resources2","postfix","push","dispatch","onClose","onSubmit","_ref7","_asyncToGenerator","_regeneratorRuntime","mark","_callee","preparedData","wrap","_callee$","_context","prev","next","abrupt","t0","validationErrors","_defineProperty","error","stop","_x","apply","arguments","_isEmpty","headerProps","visible","onAdd","_values$resources","_values$resources$tab","memoryLimits","currentAccLimit","acc"],"sources":["BundleEditorDialog.tsx"],"sourcesContent":["import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport _ from 'lodash';\n\nimport {Info} from '../../../../components/Info/Info';\nimport {BundleParamsList} from './components/BundleParamsList/BundleParamsList';\nimport {\n DialogError,\n DialogField,\n DialogTabField,\n FORM_ERROR,\n FormApi,\n YTDFDialog,\n} from '../../../../components/Dialog/Dialog';\nimport hammer from '../../../../common/hammer';\n\nimport {getClusterUiConfig, isDeveloper} from '../../../../store/selectors/global';\nimport {\n hideTabletCellBundleEditor,\n setBundleEditorController,\n} from '../../../../store/actions/tablet_cell_bundles/tablet-cell-bundle-editor';\nimport {\n getBundleEditorData,\n getTabletBundlesWriteableByName,\n} from '../../../../store/selectors/tablet_cell_bundles';\nimport {BundleResourceGuarantee} from '../../../../store/reducers/tablet_cell_bundles';\nimport {getTabletCellBundleEditorState} from '../../../../store/selectors/tablet_cell_bundles/tablet-cell-bundle-editor';\n\nimport {\n bundleEditorDict,\n createConfigurationList,\n createParams,\n getBundleControllerResource,\n getInitialFormValues,\n getResourceData,\n instanceCountValidate,\n prepareSubmitBundle,\n simpleBundleValidate,\n} from '../../../../utils/tablet_cell_bundles/bundles/bundle-editor-dialog';\nimport UIFactory, {isAbcAllowed} from '../../../../UIFactory';\nimport {makeLink} from '../../../../utils/utils';\nimport {docsUrl} from '../../../../config';\n\nimport './BundleEditorDialog.scss';\n\nconst block = cn('bundle-editor');\n\nexport interface BundleEditorDialogFormValues {\n general: {\n abc?: {slug: string; id?: number};\n changelog_account?: string;\n snapshot_account?: string;\n };\n resources: {\n info?: string; // system\n rpc_proxy_count?: number; // todo\n rpc_proxy_resource_guarantee?: BundleResourceGuarantee;\n tablet_node_count?: number;\n tablet_node_resource_guarantee?: BundleResourceGuarantee;\n tablet_count?: number; // old\n tablet_static_memory?: number; // pld\n };\n memory_limits: {\n error?: boolean; // system\n memory_reset: boolean; // system\n reserved?: number;\n tablet_static?: number;\n tablet_dynamic?: number;\n compressed_block_cache?: number;\n uncompressed_block_cache?: number;\n versioned_chunk_meta?: number;\n lookup_row_cache?: number;\n key_filter_block_cache?: number;\n };\n cpu_limits: {\n threadPool_reset?: boolean; //system\n lookup_thread_pool_size?: number;\n query_thread_pool_size?: number;\n write_thread_pool_size?: number;\n };\n}\n\nexport function BundleEditorDialog() {\n const {\n visibleEditor,\n bundleName,\n bundleData,\n data,\n bundleControllerData: orchidData,\n } = useSelector(getTabletCellBundleEditorState);\n\n const clusterUiConfig = useSelector(getClusterUiConfig);\n\n const {defaultConfig: bundleDefaultConfig} = useSelector(getBundleEditorData);\n\n const bundleControllerConfig = bundleData?.bundle_controller_target_config;\n const enableBundleController = bundleData?.enable_bundle_controller || false;\n\n const {usage: tabletCountUsage} = getResourceData(data, 'tablet_count');\n const {usage: tabletStaticMemoryUsage} = getResourceData(data, 'tablet_static_memory');\n\n const writeableByName = useSelector(getTabletBundlesWriteableByName);\n const allowTabletCount = writeableByName.get(bundleName ?? '');\n const allowEdit = useSelector(isDeveloper);\n\n const initialValues: Partial<BundleEditorDialogFormValues> = (() => {\n if (!enableBundleController) {\n return getInitialFormValues(data);\n }\n if (!bundleControllerConfig) {\n return {};\n }\n return getInitialFormValues(data, bundleControllerConfig);\n })();\n\n const [rpcConfigurations, nodeConfigurations, dcConfigurations] = (() => {\n if (!bundleDefaultConfig) {\n return [[], [], []];\n }\n const {rpc_proxy_sizes, tablet_node_sizes, data_centers} = bundleDefaultConfig;\n\n return [\n createConfigurationList(rpc_proxy_sizes),\n createConfigurationList(tablet_node_sizes),\n data_centers ? [...Object.values(data_centers)] : [],\n ];\n })();\n\n const renderGeneralTabs: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'general',\n title: 'General',\n type: 'tab-vertical',\n size: 's',\n fields: [\n ...(!isAbcAllowed()\n ? []\n : [\n {\n name: 'abc',\n type: 'abc-control' as const,\n caption: 'ABC Service',\n extras: {\n placeholder: 'Select ABC service...',\n disabled: !allowEdit,\n },\n },\n ]),\n {\n name: 'changelog_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Changelog account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n {\n name: 'snapshot_account',\n type: 'accounts-suggest-with-loading',\n caption: 'Snapshot account',\n extras: {\n allowRootAccount: true,\n disabled: !allowEdit,\n },\n },\n ],\n };\n\n const renderResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'info',\n type: 'block',\n fullWidth: true,\n extras: {\n children: (\n <Info className={block('info')}>\n {UIFactory.renderTableCellBundleEditorNotice({\n bundleData,\n clusterUiConfig,\n })}\n <BundleParamsList\n className={block('params')}\n params={[\n {\n title: 'Memory',\n value: hammer.format['Bytes'](\n orchidData?.resource_quota.memory || '0',\n ),\n },\n {\n title: 'vCPU',\n value: hammer.format['vCores'](\n orchidData?.resource_quota.vcpu || '0',\n ),\n },\n {\n title: 'Tablet count',\n value: hammer.format.Number(\n initialValues.resources?.tablet_count,\n ),\n },\n ]}\n />\n </Info>\n ),\n },\n },\n ...(!allowTabletCount\n ? []\n : [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n } as const,\n ]),\n {section: 'RPC proxy'},\n {\n type: 'bundle-input',\n name: 'rpc_proxy_count',\n caption: 'RPC proxy count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),\n validator: instanceCountValidate(dcConfigurations),\n },\n {\n type: 'bundle-table-field',\n name: 'rpc_proxy_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: {\n data: rpcConfigurations,\n },\n },\n {section: 'Tablet node'},\n {\n type: 'bundle-input',\n name: 'tablet_node_count',\n caption: 'Tablet node count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n hasClear: true,\n },\n tooltip: docsUrl(makeLink(UIFactory.docsUrls['dynamic-tables:cross-dc'], 'Help')),\n validator: instanceCountValidate(dcConfigurations),\n },\n {\n type: 'bundle-table-field',\n name: 'tablet_node_resource_guarantee',\n caption: 'Instance configuration',\n fullWidth: true,\n extras: function (values, {form}) {\n const onRadioClick = (value: BundleResourceGuarantee) => {\n const nodeConfigurationType = value.type || '';\n\n const defaultMemory =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.memory_limits || {};\n const defaultThreadPool =\n bundleDefaultConfig?.tablet_node_sizes[nodeConfigurationType]\n .default_config.cpu_limits || {};\n\n const resultMemory = getBundleControllerResource(\n values.memory_limits,\n defaultMemory,\n 'memory_limits',\n );\n const resultThreadPool = getBundleControllerResource(\n values.cpu_limits,\n defaultThreadPool,\n 'cpu_limits',\n );\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...resultMemory,\n });\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...resultThreadPool,\n });\n };\n\n return {\n data: nodeConfigurations,\n onRadioClick,\n };\n },\n },\n ],\n };\n\n const renderSimpleResourceTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'resources',\n title: 'Resources',\n type: 'tab-vertical',\n size: 's',\n fields: [\n {\n name: 'tablet_count',\n type: 'bundle-input',\n caption: 'Tablet count',\n extras: {\n format: 'Number',\n withoutDetailedBar: true,\n progress: {\n usage: tabletCountUsage,\n },\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_static_memory',\n type: 'bundle-input',\n caption: 'Tablet static memory',\n extras: {\n format: 'Bytes',\n progress: {\n usage: tabletStaticMemoryUsage,\n },\n },\n validator: simpleBundleValidate,\n tooltip: (\n <span>\n Tablet static memory limit is based on hardware resources. Do not increase\n it unless you fully understand what you are doing. In case of emergency\n consider adding new tablet cells to the bundle, consulting with\n Components/Nodes page and increasing the limit only when new nodes are added\n to the bundle.\n </span>\n ),\n },\n ],\n };\n\n const renderMemoryTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'memory_limits',\n title: 'Memory',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'memory_reset',\n type: 'bundle-title',\n caption: 'Memory',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n const onReset = () => {\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return;\n }\n const type = tablet_node_resource_guarantee.type;\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {memory_limits} = tablet_node_sizes[type].default_config;\n\n form.change('memory_limits', {\n ...bundleEditorDict.defaults.memory_limits,\n ...memory_limits,\n });\n };\n\n if (!tablet_node_resource_guarantee) {\n return {\n params: [],\n onReset,\n };\n }\n const {memory} = tablet_node_resource_guarantee;\n\n const used = bundleEditorDict.keys.memory_limits.reduce((sum, k) => {\n const v = allValues?.memory_limits?.[k];\n return typeof v !== 'number' || isNaN(v) ? sum : sum + v;\n }, 0);\n\n return {\n params: createParams('Bytes', memory, used),\n onReset,\n };\n },\n },\n {\n name: 'reserved',\n type: 'bundle-input',\n caption: 'Reserved',\n extras: {\n format: 'Bytes',\n disabled: true,\n },\n tooltip: docsUrl(\n makeLink(UIFactory.docsUrls['bundle-controller:reserved-memory'], 'Help'),\n ),\n },\n {\n name: 'tablet_static',\n type: 'bundle-input',\n caption: 'Tablet static',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'tablet_dynamic',\n type: 'bundle-input',\n caption: 'Tablet dynamic',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'compressed_block_cache',\n type: 'bundle-input',\n caption: 'Compressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'uncompressed_block_cache',\n type: 'bundle-input',\n caption: 'Uncompressed block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'versioned_chunk_meta',\n type: 'bundle-input',\n caption: 'Versioned chunk meta',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'lookup_row_cache',\n type: 'bundle-input',\n caption: 'Lookup row cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'key_filter_block_cache',\n type: 'bundle-input',\n caption: 'Key filter block cache',\n extras: {\n format: 'Bytes',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n type: 'block',\n name: 'error',\n validator: (v: any) => (v ? v : undefined),\n fullWidth: true,\n extras(allValues, {form}) {\n const hasError = _.get(allValues, 'memory_limits.error');\n const errorText = validateMemoryLimits(allValues);\n\n if (errorText && !hasError) {\n form.change('memory_limits.error', true);\n } else if (!errorText && hasError) {\n form.change('memory_limits.error', false);\n }\n\n return {\n children: !errorText ? null : (\n <DialogError header={'Error'} message={<span>{errorText}</span>} />\n ),\n };\n },\n },\n ],\n };\n\n const renderThreadPoolTab: DialogTabField<DialogField<BundleEditorDialogFormValues>> = {\n name: 'cpu_limits',\n title: 'Thread pools',\n type: 'tab-vertical',\n size: 's',\n visibilityCondition: {\n when: 'resources.tablet_node_resource_guarantee',\n isActive: (v) => typeof v !== 'undefined',\n },\n fields: [\n {\n name: 'threadPool_reset',\n type: 'bundle-title',\n caption: 'vCPU',\n extras: (allValues, {form}) => {\n const tablet_node_resource_guarantee =\n allValues.resources?.tablet_node_resource_guarantee;\n\n if (\n !tablet_node_resource_guarantee ||\n !tablet_node_resource_guarantee.type ||\n !bundleDefaultConfig\n ) {\n return {\n params: [],\n onReset: () => {},\n };\n }\n\n const onReset = () => {\n const type = tablet_node_resource_guarantee.type;\n if (!type) {\n return;\n }\n\n const {tablet_node_sizes} = bundleDefaultConfig;\n const {cpu_limits} = tablet_node_sizes[type].default_config;\n\n form.change('cpu_limits', {\n ...bundleEditorDict.defaults.cpu_limits,\n ...cpu_limits,\n });\n };\n\n const {vcpu} = tablet_node_resource_guarantee;\n\n return {\n params: createParams('vCores', vcpu),\n onReset,\n };\n },\n },\n {\n name: 'lookup_thread_pool_size',\n type: 'bundle-input',\n caption: 'Lookup thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'query_thread_pool_size',\n type: 'bundle-input',\n caption: 'Query thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n {\n name: 'write_thread_pool_size',\n type: 'bundle-input',\n caption: 'Write thread pool size',\n extras: {\n postfix: 'threads',\n format: 'Number',\n hasClear: true,\n },\n validator: simpleBundleValidate,\n },\n ],\n };\n\n const fields = [renderGeneralTabs];\n if (enableBundleController) {\n fields.push(renderResourceTab, renderMemoryTab, renderThreadPoolTab);\n } else {\n fields.push(renderSimpleResourceTab);\n }\n\n const dispatch = useDispatch();\n const onClose = () => {\n dispatch(hideTabletCellBundleEditor());\n };\n\n const onSubmit = async (form: FormApi<BundleEditorDialogFormValues>) => {\n if (!bundleName) {\n return {};\n }\n\n const preparedData = prepareSubmitBundle(form);\n\n try {\n await dispatch(\n setBundleEditorController({\n bundleName,\n data: preparedData,\n }),\n );\n return undefined;\n } catch (error) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n }\n };\n\n if (_.isEmpty(data)) {\n return null;\n }\n\n return (\n <YTDFDialog<BundleEditorDialogFormValues>\n className={block('dialog')}\n headerProps={{\n title: bundleName,\n }}\n size=\"l\"\n initialValues={initialValues}\n visible={visibleEditor}\n onAdd={onSubmit}\n onClose={onClose}\n fields={fields}\n />\n );\n}\n\nfunction validateMemoryLimits(values: BundleEditorDialogFormValues) {\n if (values.resources?.tablet_node_resource_guarantee) {\n const memoryLimits = values.resources.tablet_node_resource_guarantee?.memory || 0;\n const currentAccLimit =\n Object.values(values.memory_limits || {}).reduce((acc: number, v: number | boolean) => {\n if (typeof v !== 'number') {\n return acc;\n }\n return acc + v;\n }, 0) || 0;\n\n if (currentAccLimit > memoryLimits) {\n return 'The sum of the memory limits exceeds the allowed values';\n }\n }\n\n return '';\n}\n"],"mappings":"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"}
@@ -94,7 +94,7 @@ export function fetchTabletsBundles() {
94
94
  ytApiV3Id.get(YTApiId.bundleControllerZones, {
95
95
  parameters: {
96
96
  path: "//sys/bundle_controller/controller/zones",
97
- attributes: ['tablet_node_sizes', 'rpc_proxy_sizes']
97
+ attributes: ['tablet_node_sizes', 'rpc_proxy_sizes', 'data_centers']
98
98
  },
99
99
  cancellation: cancelHelper.saveCancelToken
100
100
  }).then(function (result) {
@@ -1 +1 @@
1
- {"version":3,"names":["map_","reduce_","ypath","TABLETS_BUNDLES_ACTIVE_ACCOUNT","TABLETS_BUNDLES_LOAD_FAILURE","TABLETS_BUNDLES_LOAD_REQUEST","TABLETS_BUNDLES_LOAD_SUCCESS","TABLETS_BUNDLES_PARTIAL","prepareBundles","prepareTabletCells","tabletActiveBundleLink","bundlesTrackVisit","filterTabletCellsByBundle","getTabletsBundlesSorted","getTabletsCells","prepareHostsFromCells","copy","getBatchError","splitBatchResults","wrapApiPromiseByToaster","getCluster","getCurrentUserName","YTApiId","ytApiV3Id","getAppBrowserHistory","makeCheckPermissionBatchSubRequestUI","CancelHelper","isCancelled","getZones","allBundles","map","Map","forEach","_ref","bundle","has","set","_toConsumableArray","keys","prepareBundleDefaultConfig","result","Object","entries","reduce","acc","_ref2","_ref3","_slicedToArray","k","v","getValue","create","cancelHelper","fetchTabletsBundles","dispatch","type","requests","command","parameters","path","attributes","removeAllRequests","executeBatch","tabletCellBundles","cancellation","saveCancelToken","then","results","_results","_toArray","isBundleControllerSupported","output","rest","slice","_rest","cells","bundles","error","allCells","zones","fetchWritePermissions","length","data","get","bundleControllerZones","bundleDefaultConfig","e","arguments","undefined","getState","user","item","concat","permission","tabletBundlesCheckWrite","_splitBatchResults","outputs","writableByName","index","action","name","Promise","reject","toasterName","skipSuccessToast","errorTitle","setTabletsBundlesSortState","bundlesSort","setTabletsBundlesNameFilter","bundlesNameFilter","setTabletsBundlesAccountFilter","bundlesAccountFilter","setTabletsBundlesTagNodeFilter","bundlesTagNodeFilter","setTabletsPartial","setTabletsActiveBundle","activeBundle","setTabletsFirstBundleAsActive","state","_bundles","first","cluster","push","copyHostListToClipboard","_dispatch","hosts"],"sources":["index.ts"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\n// @ts-ignore\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {RootState} from '../../reducers';\nimport {\n TabletBundle,\n TabletsBundlesAction,\n TabletsPartialAction,\n} from '../../reducers/tablet_cell_bundles';\nimport {\n TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n TABLETS_BUNDLES_LOAD_FAILURE,\n TABLETS_BUNDLES_LOAD_REQUEST,\n TABLETS_BUNDLES_LOAD_SUCCESS,\n TABLETS_BUNDLES_PARTIAL,\n} from '../../../constants/tablets';\nimport {\n prepareBundles,\n prepareTabletCells,\n tabletActiveBundleLink,\n} from '../../../utils/components/tablet-cells';\nimport {SortState} from '../../../types';\nimport {bundlesTrackVisit} from '../favourites';\nimport {\n filterTabletCellsByBundle,\n getTabletsBundlesSorted,\n getTabletsCells,\n prepareHostsFromCells,\n} from '../../selectors/tablet_cell_bundles';\n\nimport copy from 'copy-to-clipboard';\nimport {getBatchError, splitBatchResults, wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {getCluster, getCurrentUserName} from '../../selectors/global';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {getAppBrowserHistory} from '../../../store/window-store';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {\n CheckPermissionResult,\n makeCheckPermissionBatchSubRequestUI,\n} from '../../../utils/acl/acl-api';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\n\nfunction getZones(allBundles: TabletBundle[]) {\n const map = new Map<string, boolean>();\n allBundles.forEach(({bundle}) => {\n if (!map.has(bundle)) {\n map.set(bundle, true);\n }\n });\n\n return [...map.keys()];\n}\n\nfunction prepareBundleDefaultConfig(result: object) {\n return Object.entries(result).reduce((acc, [k, v]) => {\n acc[k] = ypath.getValue(v, '/@');\n return acc;\n }, Object.create(null));\n}\n\ntype TabletsBundlesThunkAction = ThunkAction<any, RootState, any, TabletsBundlesAction>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function fetchTabletsBundles(): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch({type: TABLETS_BUNDLES_LOAD_REQUEST});\n const requests = [\n {\n command: 'exists' as const,\n parameters: {\n path: '//sys/bundle_controller/orchid/bundle_controller/state/bundles',\n },\n },\n {\n command: 'list' as const,\n parameters: {\n path: '//sys/tablet_cells',\n attributes: ['peers', 'id', 'tablet_cell_bundle', 'total_statistics', 'status'],\n },\n },\n {\n command: 'get' as const,\n parameters: {\n path: '//sys/tablet_cell_bundles',\n attributes: [\n 'nodes',\n 'enable_bundle_balancer',\n 'health',\n 'options',\n 'node_tag_filter',\n 'resource_limits',\n 'resource_usage',\n 'folder_id',\n 'abc',\n 'dynamic_options',\n 'bundle_controller_target_config',\n 'enable_bundle_controller',\n 'zone',\n ],\n },\n },\n ];\n\n cancelHelper.removeAllRequests();\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletCellBundles, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results: Array<any>) => {\n const [{output: isBundleControllerSupported}, ...rest] = results;\n\n const [{output: cells}, {output: bundles}] = rest;\n\n const error = getBatchError(rest, 'Tablet cell bundles cannot be loaded');\n if (error) {\n throw error;\n }\n\n const allCells = prepareTabletCells(cells);\n const allBundles = prepareBundles(allCells, bundles);\n\n const zones = getZones(allBundles);\n\n dispatch(fetchWritePermissions(allBundles));\n\n if (!zones.length || !isBundleControllerSupported) {\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n },\n });\n return;\n }\n\n ytApiV3Id\n .get(YTApiId.bundleControllerZones, {\n parameters: {\n path: `//sys/bundle_controller/controller/zones`,\n attributes: ['tablet_node_sizes', 'rpc_proxy_sizes'],\n },\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((result: object) => {\n const bundleDefaultConfig = prepareBundleDefaultConfig(result);\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n bundleDefaultConfig,\n },\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n };\n}\n\nexport function fetchWritePermissions(\n bundles: Array<{bundle: string}> = [],\n): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const user = getCurrentUserName(getState());\n const requests: Array<BatchSubRequest> = map_(bundles, (item) => {\n return makeCheckPermissionBatchSubRequestUI({\n path: `//sys/tablet_cell_bundles/${item.bundle}`,\n user,\n permission: 'write',\n });\n });\n return wrapApiPromiseByToaster(\n ytApiV3Id\n .executeBatch(YTApiId.tabletBundlesCheckWrite, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((data) => {\n const {error, outputs} = splitBatchResults<CheckPermissionResult>(data);\n const writableByName = reduce_(\n outputs,\n (acc, item, index) => {\n if (item?.action === 'allow') {\n const name = bundles[index].bundle;\n acc.set(name, true);\n }\n return acc;\n },\n new Map<string, boolean>(),\n );\n\n dispatch({type: TABLETS_BUNDLES_PARTIAL, data: {writableByName}});\n\n return error ? Promise.reject(error) : undefined;\n }),\n {\n toasterName: 'bundleWritePermissions',\n skipSuccessToast: true,\n errorTitle: 'Fetch write permissions',\n },\n );\n };\n}\n\nexport function setTabletsBundlesSortState(\n bundlesSort: SortState<keyof TabletBundle>,\n): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesSort}};\n}\n\nexport function setTabletsBundlesNameFilter(bundlesNameFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesNameFilter}};\n}\n\nexport function setTabletsBundlesAccountFilter(bundlesAccountFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesAccountFilter}};\n}\n\nexport function setTabletsBundlesTagNodeFilter(bundlesTagNodeFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesTagNodeFilter}};\n}\n\nexport function setTabletsPartial(data: TabletsPartialAction['data']) {\n return {type: TABLETS_BUNDLES_PARTIAL, data};\n}\n\nexport function setTabletsActiveBundle(activeBundle: string): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch(bundlesTrackVisit(activeBundle));\n dispatch({\n type: TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n data: {activeBundle},\n });\n };\n}\n\nexport function setTabletsFirstBundleAsActive(): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const bundles = getTabletsBundlesSorted(state);\n const [first] = bundles;\n if (!first) {\n return;\n }\n\n const cluster = getCluster(state);\n dispatch(setTabletsActiveBundle(first.bundle));\n getAppBrowserHistory().push(tabletActiveBundleLink(cluster, first.bundle));\n };\n}\n\nexport function copyHostListToClipboard(bundle: string): TabletsBundlesThunkAction {\n return (_dispatch, getState) => {\n const cells = filterTabletCellsByBundle(bundle, getTabletsCells(getState()));\n const hosts = prepareHostsFromCells(cells);\n copy(hosts || '');\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["map_","reduce_","ypath","TABLETS_BUNDLES_ACTIVE_ACCOUNT","TABLETS_BUNDLES_LOAD_FAILURE","TABLETS_BUNDLES_LOAD_REQUEST","TABLETS_BUNDLES_LOAD_SUCCESS","TABLETS_BUNDLES_PARTIAL","prepareBundles","prepareTabletCells","tabletActiveBundleLink","bundlesTrackVisit","filterTabletCellsByBundle","getTabletsBundlesSorted","getTabletsCells","prepareHostsFromCells","copy","getBatchError","splitBatchResults","wrapApiPromiseByToaster","getCluster","getCurrentUserName","YTApiId","ytApiV3Id","getAppBrowserHistory","makeCheckPermissionBatchSubRequestUI","CancelHelper","isCancelled","getZones","allBundles","map","Map","forEach","_ref","bundle","has","set","_toConsumableArray","keys","prepareBundleDefaultConfig","result","Object","entries","reduce","acc","_ref2","_ref3","_slicedToArray","k","v","getValue","create","cancelHelper","fetchTabletsBundles","dispatch","type","requests","command","parameters","path","attributes","removeAllRequests","executeBatch","tabletCellBundles","cancellation","saveCancelToken","then","results","_results","_toArray","isBundleControllerSupported","output","rest","slice","_rest","cells","bundles","error","allCells","zones","fetchWritePermissions","length","data","get","bundleControllerZones","bundleDefaultConfig","e","arguments","undefined","getState","user","item","concat","permission","tabletBundlesCheckWrite","_splitBatchResults","outputs","writableByName","index","action","name","Promise","reject","toasterName","skipSuccessToast","errorTitle","setTabletsBundlesSortState","bundlesSort","setTabletsBundlesNameFilter","bundlesNameFilter","setTabletsBundlesAccountFilter","bundlesAccountFilter","setTabletsBundlesTagNodeFilter","bundlesTagNodeFilter","setTabletsPartial","setTabletsActiveBundle","activeBundle","setTabletsFirstBundleAsActive","state","_bundles","first","cluster","push","copyHostListToClipboard","_dispatch","hosts"],"sources":["index.ts"],"sourcesContent":["import {ThunkAction} from 'redux-thunk';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\n\n// @ts-ignore\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {RootState} from '../../reducers';\nimport {\n TabletBundle,\n TabletsBundlesAction,\n TabletsPartialAction,\n} from '../../reducers/tablet_cell_bundles';\nimport {\n TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n TABLETS_BUNDLES_LOAD_FAILURE,\n TABLETS_BUNDLES_LOAD_REQUEST,\n TABLETS_BUNDLES_LOAD_SUCCESS,\n TABLETS_BUNDLES_PARTIAL,\n} from '../../../constants/tablets';\nimport {\n prepareBundles,\n prepareTabletCells,\n tabletActiveBundleLink,\n} from '../../../utils/components/tablet-cells';\nimport {SortState} from '../../../types';\nimport {bundlesTrackVisit} from '../favourites';\nimport {\n filterTabletCellsByBundle,\n getTabletsBundlesSorted,\n getTabletsCells,\n prepareHostsFromCells,\n} from '../../selectors/tablet_cell_bundles';\n\nimport copy from 'copy-to-clipboard';\nimport {getBatchError, splitBatchResults, wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {getCluster, getCurrentUserName} from '../../selectors/global';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {getAppBrowserHistory} from '../../../store/window-store';\nimport {BatchSubRequest} from '../../../../shared/yt-types';\nimport {\n CheckPermissionResult,\n makeCheckPermissionBatchSubRequestUI,\n} from '../../../utils/acl/acl-api';\nimport CancelHelper, {isCancelled} from '../../../utils/cancel-helper';\n\nfunction getZones(allBundles: TabletBundle[]) {\n const map = new Map<string, boolean>();\n allBundles.forEach(({bundle}) => {\n if (!map.has(bundle)) {\n map.set(bundle, true);\n }\n });\n\n return [...map.keys()];\n}\n\nfunction prepareBundleDefaultConfig(result: object) {\n return Object.entries(result).reduce((acc, [k, v]) => {\n acc[k] = ypath.getValue(v, '/@');\n return acc;\n }, Object.create(null));\n}\n\ntype TabletsBundlesThunkAction = ThunkAction<any, RootState, any, TabletsBundlesAction>;\n\nconst cancelHelper = new CancelHelper();\n\nexport function fetchTabletsBundles(): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch({type: TABLETS_BUNDLES_LOAD_REQUEST});\n const requests = [\n {\n command: 'exists' as const,\n parameters: {\n path: '//sys/bundle_controller/orchid/bundle_controller/state/bundles',\n },\n },\n {\n command: 'list' as const,\n parameters: {\n path: '//sys/tablet_cells',\n attributes: ['peers', 'id', 'tablet_cell_bundle', 'total_statistics', 'status'],\n },\n },\n {\n command: 'get' as const,\n parameters: {\n path: '//sys/tablet_cell_bundles',\n attributes: [\n 'nodes',\n 'enable_bundle_balancer',\n 'health',\n 'options',\n 'node_tag_filter',\n 'resource_limits',\n 'resource_usage',\n 'folder_id',\n 'abc',\n 'dynamic_options',\n 'bundle_controller_target_config',\n 'enable_bundle_controller',\n 'zone',\n ],\n },\n },\n ];\n\n cancelHelper.removeAllRequests();\n\n return ytApiV3Id\n .executeBatch(YTApiId.tabletCellBundles, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results: Array<any>) => {\n const [{output: isBundleControllerSupported}, ...rest] = results;\n\n const [{output: cells}, {output: bundles}] = rest;\n\n const error = getBatchError(rest, 'Tablet cell bundles cannot be loaded');\n if (error) {\n throw error;\n }\n\n const allCells = prepareTabletCells(cells);\n const allBundles = prepareBundles(allCells, bundles);\n\n const zones = getZones(allBundles);\n\n dispatch(fetchWritePermissions(allBundles));\n\n if (!zones.length || !isBundleControllerSupported) {\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n },\n });\n return;\n }\n\n ytApiV3Id\n .get(YTApiId.bundleControllerZones, {\n parameters: {\n path: `//sys/bundle_controller/controller/zones`,\n attributes: ['tablet_node_sizes', 'rpc_proxy_sizes', 'data_centers'],\n },\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((result: object) => {\n const bundleDefaultConfig = prepareBundleDefaultConfig(result);\n dispatch({\n type: TABLETS_BUNDLES_LOAD_SUCCESS,\n data: {\n cells: allCells,\n bundles: allBundles,\n bundleDefaultConfig,\n },\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n })\n .catch((e: any) => {\n if (!isCancelled(e)) {\n dispatch({type: TABLETS_BUNDLES_LOAD_FAILURE, data: e});\n }\n });\n };\n}\n\nexport function fetchWritePermissions(\n bundles: Array<{bundle: string}> = [],\n): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const user = getCurrentUserName(getState());\n const requests: Array<BatchSubRequest> = map_(bundles, (item) => {\n return makeCheckPermissionBatchSubRequestUI({\n path: `//sys/tablet_cell_bundles/${item.bundle}`,\n user,\n permission: 'write',\n });\n });\n return wrapApiPromiseByToaster(\n ytApiV3Id\n .executeBatch(YTApiId.tabletBundlesCheckWrite, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((data) => {\n const {error, outputs} = splitBatchResults<CheckPermissionResult>(data);\n const writableByName = reduce_(\n outputs,\n (acc, item, index) => {\n if (item?.action === 'allow') {\n const name = bundles[index].bundle;\n acc.set(name, true);\n }\n return acc;\n },\n new Map<string, boolean>(),\n );\n\n dispatch({type: TABLETS_BUNDLES_PARTIAL, data: {writableByName}});\n\n return error ? Promise.reject(error) : undefined;\n }),\n {\n toasterName: 'bundleWritePermissions',\n skipSuccessToast: true,\n errorTitle: 'Fetch write permissions',\n },\n );\n };\n}\n\nexport function setTabletsBundlesSortState(\n bundlesSort: SortState<keyof TabletBundle>,\n): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesSort}};\n}\n\nexport function setTabletsBundlesNameFilter(bundlesNameFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesNameFilter}};\n}\n\nexport function setTabletsBundlesAccountFilter(bundlesAccountFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesAccountFilter}};\n}\n\nexport function setTabletsBundlesTagNodeFilter(bundlesTagNodeFilter: string): TabletsBundlesAction {\n return {type: TABLETS_BUNDLES_PARTIAL, data: {bundlesTagNodeFilter}};\n}\n\nexport function setTabletsPartial(data: TabletsPartialAction['data']) {\n return {type: TABLETS_BUNDLES_PARTIAL, data};\n}\n\nexport function setTabletsActiveBundle(activeBundle: string): TabletsBundlesThunkAction {\n return (dispatch) => {\n dispatch(bundlesTrackVisit(activeBundle));\n dispatch({\n type: TABLETS_BUNDLES_ACTIVE_ACCOUNT,\n data: {activeBundle},\n });\n };\n}\n\nexport function setTabletsFirstBundleAsActive(): TabletsBundlesThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const bundles = getTabletsBundlesSorted(state);\n const [first] = bundles;\n if (!first) {\n return;\n }\n\n const cluster = getCluster(state);\n dispatch(setTabletsActiveBundle(first.bundle));\n getAppBrowserHistory().push(tabletActiveBundleLink(cluster, first.bundle));\n };\n}\n\nexport function copyHostListToClipboard(bundle: string): TabletsBundlesThunkAction {\n return (_dispatch, getState) => {\n const cells = filterTabletCellsByBundle(bundle, getTabletsCells(getState()));\n const hosts = prepareHostsFromCells(cells);\n copy(hosts || '');\n };\n}\n"],"mappings":"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"}
@@ -25,6 +25,7 @@ declare function _default(state: {
25
25
  schedulerVersion: null;
26
26
  masterVersion: null;
27
27
  login: any;
28
+ authWay: any;
28
29
  paramsLoading: boolean;
29
30
  paramsLoaded: boolean;
30
31
  paramsError: null;
@@ -39,6 +39,7 @@ var initialState = {
39
39
  schedulerVersion: null,
40
40
  masterVersion: null,
41
41
  login: YT.parameters.login,
42
+ authWay: YT.parameters.authWay,
42
43
  // cluster-params
43
44
  paramsLoading: false,
44
45
  paramsLoaded: false,