@ytsaurus/ui 3.1.0 → 3.2.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 (28) hide show
  1. package/dist/public/build/assets-manifest.json +20 -20
  2. package/dist/public/build/js/1422.2980037b.chunk.js +2 -0
  3. package/dist/public/build/js/1422.2980037b.chunk.js.map +1 -0
  4. package/dist/public/build/js/{4253.1e48a7d8.chunk.js → 4253.9c5e22a8.chunk.js} +3 -3
  5. package/dist/public/build/js/4253.9c5e22a8.chunk.js.map +1 -0
  6. package/dist/public/build/js/{cluster-page-wrapper.d9f0e479.chunk.js → cluster-page-wrapper.7ee2ebb7.chunk.js} +2 -2
  7. package/dist/public/build/js/{cluster-page-wrapper.d9f0e479.chunk.js.map → cluster-page-wrapper.7ee2ebb7.chunk.js.map} +1 -1
  8. package/dist/public/build/js/{main.910247d4.js → main.83f42e63.js} +3 -3
  9. package/dist/public/build/js/{main.910247d4.js.map → main.83f42e63.js.map} +1 -1
  10. package/dist/public/build/js/query-tracker.2a1efcb7.chunk.js +2 -0
  11. package/dist/public/build/js/query-tracker.2a1efcb7.chunk.js.map +1 -0
  12. package/dist/public/build/js/{runtime.ff41a284.js → runtime.42f2261f.js} +2 -2
  13. package/dist/public/build/js/{runtime.ff41a284.js.map → runtime.42f2261f.js.map} +1 -1
  14. package/dist/public/build/js/{scheduling.43b30898.chunk.js → scheduling.893e96af.chunk.js} +2 -2
  15. package/dist/public/build/js/{scheduling.43b30898.chunk.js.map → scheduling.893e96af.chunk.js.map} +1 -1
  16. package/dist/public/build/js/yt-queries-list.3fb2ae8e.chunk.js +2 -0
  17. package/dist/public/build/js/yt-queries-list.3fb2ae8e.chunk.js.map +1 -0
  18. package/dist/public/build/manifest.json +16 -16
  19. package/package.json +2 -2
  20. package/dist/public/build/js/2142.27bbbca6.chunk.js +0 -2
  21. package/dist/public/build/js/2142.27bbbca6.chunk.js.map +0 -1
  22. package/dist/public/build/js/4253.1e48a7d8.chunk.js.map +0 -1
  23. package/dist/public/build/js/query-tracker.17719828.chunk.js +0 -2
  24. package/dist/public/build/js/query-tracker.17719828.chunk.js.map +0 -1
  25. package/dist/public/build/js/yt-queries-list.0737c4ce.chunk.js +0 -2
  26. package/dist/public/build/js/yt-queries-list.0737c4ce.chunk.js.map +0 -1
  27. /package/dist/public/build/js/{4253.1e48a7d8.chunk.js.LICENSE.txt → 4253.9c5e22a8.chunk.js.LICENSE.txt} +0 -0
  28. /package/dist/public/build/js/{main.910247d4.js.LICENSE.txt → main.83f42e63.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/2142.27bbbca6.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-check.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/utils/query.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/query-tracker/queryTabs/i18n/index.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/query-tracker/queryTabs/queryTabs.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/utils/navigation.ts","webpack://@ytsaurus/ui/./src/ui/components/common/Timeline/util.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/query-tracker/queryTabs.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/utils/date.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryDuration/index.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/query-tracker/vcs.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/query-tracker/queryNavigation.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/query-tracker/query.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/file.svg","webpack://@ytsaurus/ui/./src/ui/utils/date.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/Label/constants.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/Label/Label.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/query-tracker/queriesList.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryResults/helpers/parseResultTabIndex.ts","webpack://@ytsaurus/ui/./src/ui/utils/strawberryControllerApi.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/i18n/index.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/src/components/Spin/Spin.tsx","webpack://@ytsaurus/ui/./src/ui/components/QueryStatus/index.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-exclamation.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-stop.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/EditQueryNameModal/EditQueryNameModal.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesHistoryList/columns.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/query-tracker/queriesList.ts"],"sourcesContent":["const SvgCircleCheck = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0m-3.9-1.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleCheck;","import {AbortableStatuses, CompletedStates, ProgressStatuses} from '../../../types/query-tracker';\nimport type {QueryItem} from '../../../types/query-tracker/api';\n\nexport function isQueryProgress(query: QueryItem): boolean {\n return ProgressStatuses.includes(query.state);\n}\n\nexport function isQueryCompleted(query: QueryItem): boolean {\n return CompletedStates.includes(query.state);\n}\n\nexport function isAbortable(query: QueryItem): boolean {\n return AbortableStatuses.includes(query.state);\n}\n","import {addI18Keysets} from '../../../../../i18n';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport default addI18Keysets('yt:query-tracker-tabs', {en, ru});\n","import {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../reducers';\nimport {Action} from 'redux';\nimport {isSingleProgress} from '../api';\nimport {\n QueryResultTab,\n QueryTab,\n setActiveTab,\n setTabs,\n} from '../../../reducers/query-tracker/queryTabsSlice';\nimport {CompletedStates, QueryStatus} from '../../../../types/query-tracker';\nimport times_ from 'lodash/times';\nimport find_ from 'lodash/find';\nimport UIFactory from '../../../../UIFactory';\nimport {getQuery} from '../../../selectors/query-tracker/query';\nimport {selectUserChangedQueryResultTab} from '../../../selectors/query-tracker/queryTabs';\nimport {loadQueryResultsErrors} from '../queryResult';\nimport i18n from './i18n';\n\ntype AsyncAction = ThunkAction<void, RootState, undefined, Action>;\n\nexport const updateQueryTabs = (): AsyncAction => (dispatch, getState) => {\n const state = getState();\n const query = getQuery(state);\n const userChangeTab = selectUserChangedQueryResultTab(state);\n\n if (!query) {\n dispatch(setTabs([]));\n return;\n }\n\n // step1 - make tabs. Consistency is important\n const tabs: QueryTab[] = [];\n\n if (query.state === QueryStatus.FAILED) {\n tabs.push({id: 'error', title: i18n('title_error')});\n }\n\n if (query.state === QueryStatus.COMPLETED) {\n tabs.push(\n ...times_(query.result_count, (num) => {\n const suffix = query.result_count === 1 ? '' : ` #${num + 1}`;\n return {\n id: `result/${num}` as QueryResultTab,\n title: i18n('title_result') + suffix,\n };\n }),\n );\n }\n\n const progress = isSingleProgress(query?.progress) ? query.progress : {};\n const hasProgress =\n Boolean(progress?.yql_plan?.Basic.nodes.length) ||\n Boolean(progress?.yql_plan?.Basic.links?.length);\n\n if (query.progress && hasProgress) {\n tabs.push({\n id: 'progress',\n title: i18n('title_progress'),\n });\n }\n\n if (query.state === QueryStatus.COMPLETED) {\n const queryResultChartTab = UIFactory.getQueryResultChartTab();\n if (queryResultChartTab && query.result_count) {\n tabs.push(\n ...times_(query.result_count, (num) => {\n const suffix = query.result_count === 1 ? '' : ` #${num + 1}`;\n return {\n id: `chart-tab/${num}` as QueryResultTab,\n title: i18n('title_chart') + suffix,\n };\n }),\n );\n }\n\n if (progress?.yql_statistics) {\n tabs.push({\n id: 'statistic',\n title: i18n('title_statistics'),\n });\n }\n }\n\n tabs.push({id: 'meta', title: i18n('title_metadata')});\n dispatch(setTabs(tabs));\n\n // Load query results errors for completed query-tracker\n const isCompleted = find_(CompletedStates, (status) => query?.state === status);\n if (query && isCompleted) {\n dispatch(loadQueryResultsErrors(query));\n }\n\n //step 2 - set active tab\n if (userChangeTab || !tabs.length) return;\n\n if (query.state === QueryStatus.FAILED) {\n dispatch(setActiveTab('error'));\n return;\n }\n\n if (query.state === QueryStatus.COMPLETED) {\n const firstResultTab = tabs.find((tab) => tab.id.includes('result'));\n if (firstResultTab) {\n dispatch(setActiveTab(firstResultTab.id));\n return;\n }\n }\n\n if (hasProgress) {\n dispatch(setActiveTab('progress'));\n return;\n }\n\n dispatch(setActiveTab('meta'));\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport {YTErrorBlock} from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <YTErrorBlock {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","import {makeRoutedURL} from '../../../store/location';\nimport {Page} from '../../../../shared/constants/settings';\nimport {QueryEngine} from '../../../../shared/constants/engines';\n\nexport function createQueryUrl(cluster: string, query_id: string) {\n return makeRoutedURL(`/${cluster}/${Page.QUERIES}${query_id ? `/${query_id}` : ''}`);\n}\n\nexport function createNewQueryUrl(\n QTcluster: string,\n engine: QueryEngine,\n {tableCluster, path, useDraft}: {tableCluster?: string; path?: string; useDraft?: boolean},\n) {\n return makeRoutedURL(`/${QTcluster}/${Page.QUERIES}?`, {\n engine,\n path: path || undefined,\n cluster: tableCluster || QTcluster,\n useDraft: useDraft || undefined,\n });\n}\n","/* eslint-disable valid-jsdoc */\nimport moment, {MomentInput, unitOfTime} from 'moment';\n\n/** @deprecated */\n\nexport const minute = 60 * 1000;\nexport const hour = minute * 60;\nexport const day = hour * 24;\nexport const week = day * 7;\nexport const month = day * 30;\nexport const year = day * 365;\n\n/**\n * Creates a human-readable representation of time interval\n * @param from Interval start, ms from epoch\n * @param to Interval end, ms from epoch\n * @returns Formatted string, e.g. 1d 3h\n */\nexport const humanizeInterval = (from: number, to: number) => {\n const duration = to - from;\n if (duration >= year) {\n const years = Math.floor(duration / year);\n const months = Math.floor((duration % year) / month);\n return months === 0 || years > 4 ? `${years}y` : `${years}y ${months}mo`;\n }\n if (duration >= month) {\n const months = Math.floor(duration / month);\n const days = Math.floor((duration % month) / day);\n return days === 0 || months > 4 ? `${months}mo` : `${months}mo ${days}d`;\n }\n if (duration >= week) {\n const weeks = Math.floor(duration / week);\n const days = Math.floor((duration % week) / day);\n return days === 0 || weeks > 3 ? `${weeks}w` : `${weeks}w ${days}d`;\n }\n if (duration >= day) {\n const days = Math.floor(duration / day);\n const hours = Math.floor((duration % day) / hour);\n return hours === 0 || days > 4 ? `${days}d` : `${days}d ${hours}h`;\n }\n if (duration >= hour) {\n const hours = Math.floor(duration / hour);\n const minutes = Math.floor((duration % hour) / minute);\n return minutes === 0 || hours > 6 ? `${hours}h` : `${hours}h ${minutes}m`;\n }\n const minutes = Math.round(duration / minute);\n return `${minutes}m`;\n};\n\nexport const formatInterval = (from: MomentInput, to: MomentInput) => {\n const mFrom = moment(from);\n const mTo = moment(to);\n if (mTo.isSame(mFrom, 'd')) {\n /* eslint-disable no-irregular-whitespace */\n return `${mFrom.format('YYYY-MM-DD  HH:mm')}  —  ${mTo.format('HH:mm')}`;\n } else {\n return `${mFrom.format('YYYY-MM-DD  HH:mm')}  —  ${mTo.format('YYYY-MM-DD  HH:mm')}`;\n /* eslint-enable no-irregular-whitespace */\n }\n};\n\nexport const formatTime = (date: MomentInput) => {\n return moment(date).format('HH:mm');\n};\n\nexport const formatTimeCanonical = (ts: MomentInput) => {\n return moment(ts).format('YYYY-MM-DD HH:mm');\n};\n\nexport const getTimestampFromDate = (date: MomentInput) => {\n return moment(date).valueOf();\n};\n\nconst rangeMap: Record<string, 'M' | undefined> = {\n mo: 'M',\n};\n\nexport const calculateBackTimestamp = (back: string, ts?: MomentInput) => {\n const time = moment(ts);\n const backRe = /(-?\\d+)([a-zA-Z]+)/g;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const match = backRe.exec(back);\n if (match) {\n const [, amount, rawRange] = match; // eslint-disable-line no-unused-vars\n const range = rangeMap[rawRange] || (rawRange as unitOfTime.DurationConstructor);\n time.subtract(amount, range);\n } else {\n break;\n }\n }\n return time.valueOf();\n};\n\nexport const calculateShortcutTime = (shortcut: string) => {\n const from = Date.now();\n const to = calculateBackTimestamp(shortcut, from);\n return from < to ? {from, to} : {from: to, to: from};\n};\n\nexport function convertTimeToRequestParams(time: {\n from?: number;\n to?: number;\n shortcut?: string;\n shortcutValue?: string;\n}) {\n if (!time) {\n return undefined;\n }\n\n const {from, to, shortcutValue} = time;\n return shortcutValue ? calculateShortcutTime(shortcutValue) : {from, to};\n}\n","import {RootState} from '../../reducers';\nimport {createSelector} from 'reselect';\nimport {getQueryId} from './query';\nimport {parseResultTabIndex} from '../../../pages/query-tracker/QueryResults/helpers/parseResultTabIndex';\n\nexport const selectQueryResultTabs = (state: RootState) => state.queryTracker.tabs.tabs;\nexport const selectActiveQueryResultTab = (state: RootState) => state.queryTracker.tabs.activeTabId;\nexport const selectUserChangedQueryResultTab = (state: RootState) =>\n state.queryTracker.tabs.userChangeTab;\n\nexport const selectActiveResultParams = createSelector(\n [selectActiveQueryResultTab, getQueryId],\n (activeTabId, id) => {\n if (!id || !activeTabId?.includes('result')) return undefined;\n\n return {\n queryId: id,\n resultIndex: parseResultTabIndex(activeTabId) || 0,\n };\n },\n);\n","import {durationDates} from '../../../utils/date';\nimport {QueryItem} from '../../../types/query-tracker/api';\n\nexport function queryDuration(query: QueryItem) {\n return durationDates(query.start_time, query.finish_time);\n}\n","import {Label} from '@gravity-ui/uikit';\nimport React, {useEffect, useState} from 'react';\nimport {QueryStatus} from '../../../types/query-tracker';\nimport {QueryItem} from '../../../types/query-tracker/api';\nimport {queryDuration} from '../utils/date';\nimport {isQueryCompleted} from '../utils/query';\n\nexport type QueryDurationProps = {\n query: QueryItem;\n className?: string;\n};\n\nconst useQueryDuration = (query: QueryItem) => {\n const [duration, setDuration] = useState(queryDuration(query));\n useEffect(() => {\n if (query.state === QueryStatus.DRAFT) {\n setDuration(null);\n return;\n }\n if (isQueryCompleted(query)) {\n setDuration(query.finish_time ? queryDuration(query) : '-');\n return;\n }\n setDuration(queryDuration(query));\n if (query.finish_time) {\n return;\n }\n const timer = setInterval(() => setDuration(queryDuration(query)), 1000);\n return () => {\n clearInterval(timer);\n };\n }, [query.id, query.state, query.start_time]);\n\n return duration;\n};\n\nexport const QueryDuration = React.memo(function QueryDuration({\n query,\n className,\n}: QueryDurationProps) {\n const duration = useQueryDuration(query);\n return duration && <Label className={className}>{duration}</Label>;\n});\n","import {RootState} from '../../reducers';\nimport {createSelector} from 'reselect';\nexport const selectVcsConfig = (state: RootState) => state.queryTracker.vcs.vcsConfig || [];\nexport const selectIsVcsVisible = (state: RootState) =>\n Array.isArray(state.queryTracker.vcs.vcsConfig) &&\n state.queryTracker.vcs.vcsConfig.length !== 0;\nexport const selectVcs = (state: RootState) => state.queryTracker.vcs;\nexport const selectList = (state: RootState) => state.queryTracker.vcs.list;\nexport const selectPath = (state: RootState) => state.queryTracker.vcs.path;\nexport const selectPreview = (state: RootState) => state.queryTracker.vcs.preview;\nexport const selectRepositories = (state: RootState) => state.queryTracker.vcs.repositories;\nexport const selectCurrentVcs = (state: RootState) => state.queryTracker.vcs.vcs;\nexport const selectRepository = (state: RootState) => state.queryTracker.vcs.repository;\nexport const selectBranch = (state: RootState) => state.queryTracker.vcs.branch;\nexport const selectBranches = (state: RootState) => state.queryTracker.vcs.branches;\nexport const selectListFilter = (state: RootState) => state.queryTracker.vcs.listFilter;\nexport const selectListError = (state: RootState) => state.queryTracker.vcs.listError;\n\nexport const selectShowFilter = createSelector([selectBranch, selectPreview], (branch, preview) => {\n return Boolean(branch && !preview.name);\n});\n\nexport const selectListArray = createSelector([selectList, selectListFilter], (list, filter) => {\n const listArray = Object.values(list);\n return filter ? listArray.filter((item) => item.name.includes(filter)) : listArray;\n});\n\nexport const selectCurrentRepository = createSelector(\n [selectRepository, selectRepositories],\n (repository, repositories) => {\n if (!repository) return null;\n return repositories[repository];\n },\n);\n","import {RootState} from '../../reducers';\nimport {createSelector} from 'reselect';\nimport {getClusterList} from '../slideoutMenu';\nimport {NavigationNode} from '../../reducers/query-tracker/queryNavigationSlice';\nimport {makeGetSetting} from '../settings';\nimport {createNestedNS} from '../../../../shared/utils/settings';\nimport {NAMESPACES, SettingName} from '../../../../shared/constants/settings';\n\nexport const selectNavigationCluster = (state: RootState) =>\n state.queryTracker.queryNavigation.cluster;\nexport const selectLoading = (state: RootState) => state.queryTracker.queryNavigation.loading;\nexport const selectClusterConfigs = (state: RootState) => state.clustersMenu.clusters;\nexport const selectNavigationError = (state: RootState) => state.queryTracker.queryNavigation.error;\n\nexport const selectNavigationClusterConfig = createSelector(\n [selectNavigationCluster, selectClusterConfigs],\n (clusterName, clusters) => {\n if (!clusterName || !(clusterName in clusters)) return null;\n\n return clusters[clusterName];\n },\n);\n\nexport const selectFavouritePaths = createSelector(\n [makeGetSetting, selectNavigationCluster],\n (getSetting, cluster) => {\n if (!cluster) return [];\n const parentNS = createNestedNS(cluster, NAMESPACES.LOCAL);\n const favourites = getSetting(SettingName.LOCAL.FAVOURITES, parentNS);\n\n return favourites ? favourites.map((i: {path: string}) => i.path).sort() : [];\n },\n);\n\nexport const selectNavigationPath = (state: RootState) => state.queryTracker.queryNavigation.path;\n\nexport const selectNavigationNodeType = (state: RootState) =>\n state.queryTracker.queryNavigation.nodeType;\n\nexport const selectNavigationFilter = (state: RootState) =>\n state.queryTracker.queryNavigation.filter;\n\nexport const selectNavigationNodes = (state: RootState) => state.queryTracker.queryNavigation.nodes;\n\nexport const selectNavigationTable = (state: RootState) => state.queryTracker.queryNavigation.table;\n\nconst filterValueInText = (value: string, filter: string) =>\n value.toLowerCase().includes(filter.toLowerCase());\n\nexport const selectTableWithFilter = createSelector(\n [selectNavigationTable, selectNavigationFilter],\n (table, filter) => {\n if (!table) return null;\n\n return {\n ...table,\n schema: table.schema.filter(({name, type}) => {\n return filterValueInText(name, filter) || filterValueInText(type, filter);\n }),\n };\n },\n);\n\nexport const selectClustersByFilter = createSelector(\n [getClusterList, selectNavigationFilter],\n (clusters, filter) => {\n if (!filter) return clusters;\n\n return clusters.filter(({name}) => filterValueInText(name, filter));\n },\n);\n\nexport const selectNodeListByFilter = createSelector(\n [selectNavigationNodes, selectNavigationFilter, selectNavigationPath],\n (nodes, filter, path) => {\n const isRoot = !path || path === '/';\n const parentPath = isRoot ? path : path.split('/').slice(0, -1).join('/');\n const upItem: NavigationNode = {\n name: '...',\n type: 'map_node',\n path: parentPath,\n isFavorite: false,\n };\n\n if (!filter) return isRoot ? nodes : [upItem, ...nodes];\n\n const result = nodes.filter(({name}) => filterValueInText(name, filter));\n\n if (!isRoot) {\n result.unshift(upItem);\n }\n\n return result;\n },\n);\n","import {createQueryUrl} from '../../../pages/query-tracker/utils/navigation';\nimport {AnyAction} from 'redux';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../reducers';\nimport {getCluster} from '../../selectors/global';\nimport {QueryEngine} from '../../../../shared/constants/engines';\nimport {\n DraftQuery,\n QueryItem,\n abortQuery,\n addACOToLastSelected,\n generateQueryFromTable,\n getQuery,\n startQuery,\n updateACOQuery,\n} from './api';\nimport {requestQueriesList} from './queriesList';\nimport {\n SHARED_QUERY_ACO,\n getCliqueMap,\n getCurrentQuery,\n getQueryDraft,\n getQueryDraftSettings,\n getQueryEngine,\n getQuery as selectQuery,\n} from '../../selectors/query-tracker/query';\nimport {getAppBrowserHistory} from '../../window-store';\nimport {\n QueryState,\n RequestQueryAction,\n SetDirtySubmit,\n SetQueryAction,\n SetQueryCliqueLoading,\n SetQueryClusterClique,\n SetQueryClusterLoading,\n SetQueryErrorLoadAction,\n SetQueryPatchAction,\n SetQueryReadyAction,\n UpdateDraftAction,\n} from '../../reducers/query-tracker/query';\nimport {wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {prepareQueryPlanIds} from '../../../types/query-tracker/query';\nimport {chytApiAction, spytApiAction} from '../../../utils/strawberryControllerApi';\nimport guid from '../../../common/hammer/guid';\nimport {getSettingQueryTrackerStage} from '../../selectors/settings/settings-ts';\nimport {getDefaultQueryACO, selectIsMultipleAco} from '../../selectors/query-tracker/queryAco';\nimport UIFactory from '../../../UIFactory';\n\nimport {\n REQUEST_QUERY,\n SET_DIRTY_SUBMIT,\n SET_QUERY,\n SET_QUERY_CLIQUE_LOADING,\n SET_QUERY_CLUSTER_CLIQUE,\n SET_QUERY_CLUSTER_LOADING,\n SET_QUERY_PATCH,\n SET_QUERY_READY,\n SET_SUPPORTED_ENGINE,\n UPDATE_ACO_QUERY,\n UPDATE_DRAFT,\n} from '../../reducers/query-tracker/query-tracker-contants';\nimport {loadVisualization} from './queryChart';\nimport {ChytInfo} from '../../reducers/chyt/list';\nimport {\n getLastUserChoiceQueryChytClique,\n getLastUserChoiceQueryDiscoveryPath,\n getLastUserChoiceQueryEngine,\n getLastUserChoiceYqlVersion,\n} from '../../selectors/settings/settings-queries';\nimport {getClusterParams, prepareClusterUiConfig} from '../cluster-params';\nimport {RumWrapper} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\nimport {ClusterUiConfig} from '../../../../shared/yt-types';\nimport {setSettingByKey} from '../settings';\nimport {selectClusterConfigs} from '../../selectors/query-tracker/queryNavigation';\nimport {getQueryResultGlobalSettings} from '../../selectors/query-tracker/queryResult';\nimport {createTableSelect} from '../../../pages/query-tracker/Navigation/helpers/createTableSelect';\nimport {ResetQueryTabsAction, resetQueryTabs} from '../../reducers/query-tracker/queryTabsSlice';\nimport {updateQueryTabs} from './queryTabs/queryTabs';\n\ntype AsyncAction = ThunkAction<void, RootState, unknown, any>;\n\nconst checkCliqueControllerIsSupported =\n (clusterId: string, engine: QueryEngine): AsyncAction =>\n async (dispatch) => {\n const supportedControllers = await getCliqueControllerSupportByCluster(clusterId);\n\n if (\n (engine === QueryEngine.SPYT && !supportedControllers.spyt) ||\n (engine === QueryEngine.CHYT && !supportedControllers.chyt)\n ) {\n dispatch(updateQueryDraft({engine: QueryEngine.YQL}));\n }\n\n dispatch({\n type: SET_SUPPORTED_ENGINE,\n data: supportedControllers,\n });\n };\n\nexport const setCurrentClusterToQuery = (): AsyncAction => async (dispatch, getState) => {\n const state = getState();\n const cluster = getCluster(state);\n const {settings, engine} = getQueryDraft(state);\n\n if (settings && 'cluster' in settings) return;\n\n dispatch(checkCliqueControllerIsSupported(cluster, engine));\n dispatch(updateQueryDraft({settings: {...settings, cluster}}));\n};\n\nexport const setUserLastChoice =\n (clearProps?: boolean): AsyncAction =>\n (dispatch, getState) => {\n const state = getState();\n const {settings} = getQueryDraft(state);\n const engine = getQueryEngine(state);\n const lastPath = getLastUserChoiceQueryDiscoveryPath(state);\n const lastClique = getLastUserChoiceQueryChytClique(state);\n const lastVersion = getLastUserChoiceYqlVersion(state);\n\n const newSettings = {...settings};\n if (clearProps) {\n delete newSettings.discovery_group;\n delete newSettings.clique;\n }\n\n if (engine === QueryEngine.SPYT && lastPath) {\n newSettings.discovery_group = lastPath;\n }\n\n if (engine === QueryEngine.CHYT && lastClique) {\n newSettings.clique = lastClique;\n }\n\n if (engine === QueryEngine.YQL && lastVersion && !settings?.yql_version) {\n newSettings.yql_version = lastVersion;\n }\n\n dispatch(updateQueryDraft({settings: newSettings}));\n };\n\nconst getCliqueControllerSupportByCluster = async (\n cluster: string,\n): Promise<QueryState['draft']['supportedEngines']> => {\n if (!cluster) {\n return {\n spyt: false,\n chyt: false,\n yql: true,\n ql: true,\n };\n }\n\n const rumId = new RumWrapper(cluster, RumMeasureTypes.CLUSTER_PARAMS);\n const {data} = await getClusterParams(rumId, cluster);\n const [uiConfigOutput] = prepareClusterUiConfig(data.uiConfig, data.uiDevConfig) as [\n ClusterUiConfig,\n ];\n\n return {\n yql: true,\n chyt: Boolean(uiConfigOutput.chyt_controller_base_url),\n spyt: Boolean(uiConfigOutput.livy_controller_base_url),\n ql: true,\n };\n};\n\nexport const loadTablePromptToQuery =\n (\n cluster: string,\n path: string,\n engine: QueryEngine,\n newQuerySettings?: Record<string, string>,\n ): AsyncAction =>\n async (dispatch, getState) => {\n const state = getState();\n const {pageSize} = getQueryResultGlobalSettings();\n const clusters = selectClusterConfigs(state);\n\n const clusterConfig = clusters[cluster];\n if (!clusterConfig) return;\n\n const query = await createTableSelect({clusterConfig, path, engine, limit: pageSize});\n dispatch(createEmptyQuery(engine, query, newQuerySettings));\n };\n\nexport const setQueryEngine =\n (engine: QueryEngine): AsyncAction =>\n (dispatch, getState) => {\n const settings = getQueryDraftSettings(getState());\n\n const newSettings = {...settings};\n if (engine !== QueryEngine.SPYT) {\n delete newSettings.discovery_group;\n }\n\n if (engine !== QueryEngine.CHYT) {\n delete newSettings.clique;\n }\n\n if (engine !== QueryEngine.YQL) {\n delete newSettings.yql_version;\n }\n\n dispatch(updateQueryDraft({settings: newSettings}));\n };\n\nexport const setQueryCluster =\n (clusterId: string): AsyncAction =>\n async (dispatch, getState) => {\n const state = getState();\n const {settings = {}, engine} = getQueryDraft(state);\n\n try {\n dispatch({type: SET_QUERY_CLUSTER_LOADING, data: true});\n await dispatch(checkCliqueControllerIsSupported(clusterId, engine));\n\n const newSettings = {...settings};\n if (clusterId) {\n newSettings.cluster = clusterId;\n } else {\n delete newSettings['cluster'];\n }\n delete newSettings['clique'];\n\n dispatch(updateQueryDraft({settings: newSettings}));\n dispatch(setUserLastChoice(true));\n } finally {\n dispatch({type: SET_QUERY_CLUSTER_LOADING, data: false});\n }\n };\n\nexport const setQueryClique =\n (alias: string): AsyncAction =>\n (dispatch, getState) => {\n const settings = getQueryDraftSettings(getState());\n\n const newSettings = {...settings};\n if (!alias && 'clique' in newSettings) {\n delete newSettings.clique;\n } else {\n newSettings.clique = alias;\n }\n dispatch(updateQueryDraft({settings: newSettings}));\n dispatch(\n setSettingByKey(`local::${settings?.cluster}::queryTracker::lastChytClique`, alias),\n );\n };\n\nexport const setQueryYqlVersion =\n (version: string): AsyncAction =>\n (dispatch, getState) => {\n const settings = getQueryDraftSettings(getState());\n\n dispatch(updateQueryDraft({settings: {...settings, yql_version: version}}));\n dispatch(\n setSettingByKey(`local::${settings?.cluster}::queryTracker::lastYqlVersion`, version),\n );\n };\n\nexport const setQueryPath =\n (newPath: string): AsyncAction =>\n (dispatch, getState) => {\n const settings = getQueryDraftSettings(getState());\n dispatch(updateQueryDraft({settings: {...settings, discovery_group: newPath}}));\n dispatch(\n setSettingByKey(\n `local::${settings?.cluster}::queryTracker::lastDiscoveryPath`,\n newPath,\n ),\n );\n };\n\nexport const loadCliqueByCluster =\n (\n engine: QueryEngine.SPYT | QueryEngine.CHYT,\n cluster: string,\n ): ThunkAction<void, RootState, unknown, SetQueryClusterClique | SetQueryCliqueLoading> =>\n async (dispatch, getState) => {\n const isSpyt = engine === QueryEngine.SPYT;\n const cliqueMap = getCliqueMap(getState());\n\n if (cluster in cliqueMap && cliqueMap[cluster][engine]) return;\n\n const supportedControllers = await getCliqueControllerSupportByCluster(cluster);\n\n if ((isSpyt && !supportedControllers.spyt) || (!isSpyt && !supportedControllers.chyt))\n return; // Clique selector is not supported on cluster\n\n dispatch({type: SET_QUERY_CLIQUE_LOADING, data: true});\n const apiAction = isSpyt ? spytApiAction : chytApiAction;\n apiAction('list', cluster, {attributes: ['yt_operation_id', 'state', 'health']}, {})\n .then((data) => {\n const items = data?.result?.map(({$value, $attributes = {}}) => {\n const clique: ChytInfo = {\n alias: $value,\n yt_operation_id: $attributes.yt_operation_id,\n state: $attributes.state,\n health: $attributes.health,\n };\n return clique;\n });\n\n dispatch({\n type: SET_QUERY_CLUSTER_CLIQUE,\n data: {cluster, engine, items},\n });\n })\n .catch(() => {\n dispatch({\n type: SET_QUERY_CLUSTER_CLIQUE,\n data: {cluster, engine, items: []},\n });\n })\n .finally(() => {\n dispatch({type: SET_QUERY_CLIQUE_LOADING, data: false});\n });\n };\n\nexport function loadQuery(\n queryId: string,\n config?: {dontReplaceQueryText?: boolean},\n): ThunkAction<any, RootState, any, SetQueryAction | RequestQueryAction | SetQueryErrorLoadAction> {\n return async (dispatch, getState) => {\n const state = getState();\n const stage = getSettingQueryTrackerStage(state);\n dispatch({type: REQUEST_QUERY});\n try {\n const query = await wrapApiPromiseByToaster(dispatch(getQuery(queryId)), {\n toasterName: 'load_query',\n skipSuccessToast: true,\n errorContent: (error) => {\n const {code, message} = error;\n return `[code ${code}]: ${message}${stage ? `. Your stage is set to \"${stage}\". Reset it and try again` : ''}`;\n },\n errorTitle: `Failed to load query ${stage ? `[stage: ${stage}]` : ''}`,\n });\n\n query.files = query.files.map((file) => ({...file, id: guid()}));\n const defaultQueryACO = getDefaultQueryACO(state);\n const queryItem = prepareQueryPlanIds(query, defaultQueryACO);\n\n if (config?.dontReplaceQueryText) {\n queryItem.query = state.queryTracker.query.draft.query;\n }\n\n UIFactory.getInlineSuggestionsApi()?.onQueryLoad();\n dispatch({\n type: SET_QUERY,\n data: {\n initialQuery: queryItem,\n },\n });\n dispatch(loadVisualization());\n } catch (e: unknown) {\n dispatch(createEmptyQuery());\n } finally {\n dispatch(setCurrentClusterToQuery());\n dispatch(setUserLastChoice());\n dispatch(updateQueryTabs());\n }\n };\n}\n\nexport function updateQueryDraft(data: Partial<QueryState['draft']>) {\n return {type: SET_QUERY_PATCH, data};\n}\n\nexport function createQueryFromTablePath(\n engine: QueryEngine,\n cluster: string,\n path: string,\n options?: {useDraft?: boolean},\n): ThunkAction<\n any,\n RootState,\n any,\n | SetQueryAction\n | RequestQueryAction\n | SetQueryErrorLoadAction\n | SetQueryPatchAction\n | UpdateDraftAction\n | SetQueryReadyAction\n | SetQueryClusterLoading\n> {\n return async (dispatch, getState) => {\n dispatch({type: REQUEST_QUERY});\n dispatch({type: SET_QUERY_CLUSTER_LOADING, data: true});\n\n try {\n const state = getState();\n const defaultQueryACO = getDefaultQueryACO(state);\n const draft = await wrapApiPromiseByToaster(\n generateQueryFromTable(engine, {cluster, path, defaultQueryACO}),\n {\n toasterName: 'load_query',\n skipSuccessToast: true,\n errorTitle: 'Failed to load query',\n },\n );\n if (draft) {\n if (options?.useDraft) {\n dispatch({\n type: UPDATE_DRAFT,\n data: draft,\n });\n dispatch({type: SET_QUERY_READY});\n } else {\n dispatch({\n type: SET_QUERY,\n data: {\n initialQuery: draft as QueryItem,\n },\n });\n }\n } else {\n dispatch(createEmptyQuery(engine));\n }\n } catch (e) {\n dispatch(createEmptyQuery(engine));\n } finally {\n dispatch(checkCliqueControllerIsSupported(cluster, engine));\n dispatch({type: SET_QUERY_CLUSTER_LOADING, data: false});\n }\n };\n}\n\nexport function createEmptyQuery(\n engine?: QueryEngine,\n query?: string,\n settings?: Record<string, string>,\n): ThunkAction<any, RootState, any, SetQueryAction | ResetQueryTabsAction> {\n return (dispatch, getState) => {\n const state = getState();\n const lastEngine = getLastUserChoiceQueryEngine(state);\n const defaultQueryACO = getDefaultQueryACO(state);\n\n const initialEngine = engine || lastEngine || QueryEngine.YQL;\n\n const defaultSettings: DraftQuery['settings'] = {};\n UIFactory.getInlineSuggestionsApi()?.onQueryCreate();\n dispatch({\n type: SET_QUERY,\n data: {\n initialQuery: {\n access_control_object: defaultQueryACO,\n access_control_objects: [defaultQueryACO],\n query: query || '',\n engine: initialEngine,\n settings: settings || defaultSettings,\n } as QueryItem,\n },\n });\n dispatch(setCurrentClusterToQuery());\n dispatch(setUserLastChoice());\n dispatch(resetQueryTabs());\n };\n}\n\nexport function runQuery(\n afterCreate?: (query_id: string) => boolean | void,\n options?: {execution_mode: 'validate' | 'optimize'},\n): ThunkAction<any, RootState, any, SetQueryAction | SetDirtySubmit> {\n return async (dispatch, getState) => {\n const state = getState();\n const query = getQueryDraft(state);\n\n const newQuery = {...query};\n if ('access_control_objects' in newQuery) {\n newQuery.access_control_objects = newQuery.access_control_objects?.filter(\n (i) => i !== SHARED_QUERY_ACO,\n );\n }\n\n dispatch({\n type: SET_DIRTY_SUBMIT,\n data: false,\n });\n\n const {query_id} = await wrapApiPromiseByToaster(dispatch(startQuery(newQuery, options)), {\n toasterName: 'start_query',\n skipSuccessToast: true,\n errorTitle: 'Failed to start query',\n });\n const handled = afterCreate?.(query_id);\n if (!handled) {\n dispatch(loadQuery(query_id));\n }\n\n dispatch(requestQueriesList({refresh: true}));\n };\n}\n\nexport function abortCurrentQuery(): ThunkAction<any, RootState, any, SetQueryAction> {\n return async (dispatch, getState) => {\n const state = getState();\n const currentQuery = getCurrentQuery(state);\n if (currentQuery) {\n await wrapApiPromiseByToaster(dispatch(abortQuery({query_id: currentQuery?.id})), {\n toasterName: 'abort_query',\n skipSuccessToast: true,\n errorTitle: 'Failed to abort query',\n });\n dispatch(loadQuery(currentQuery?.id, {dontReplaceQueryText: true}));\n dispatch(requestQueriesList({refresh: true}));\n }\n };\n}\n\nexport function goToQuery(query_id: string): ThunkAction<any, RootState, any, never> {\n return (_, getState) => {\n const state = getState();\n const cluster = getCluster(state);\n const history = getAppBrowserHistory();\n history.push(createQueryUrl(cluster, query_id));\n };\n}\n\nexport function resetQueryTracker(): ThunkAction<any, RootState, any, never> {\n return (dispatch, getState) => {\n const state = getState();\n const cluster = getCluster(state);\n const history = getAppBrowserHistory();\n history.push(createQueryUrl(cluster, ''));\n\n dispatch(createEmptyQuery());\n };\n}\n\nexport function setQueryACO({\n aco,\n query_id,\n}: {\n aco: string[];\n query_id: string;\n}): ThunkAction<Promise<unknown>, RootState, any, AnyAction> {\n return (dispatch, getState) => {\n const isMultipleAco = selectIsMultipleAco(getState());\n return wrapApiPromiseByToaster(dispatch(updateACOQuery({query_id, aco})), {\n toasterName: 'update_aco_query',\n skipSuccessToast: true,\n errorTitle: 'Failed to update query ACO',\n }).then(() => {\n dispatch({\n type: UPDATE_ACO_QUERY,\n data: isMultipleAco\n ? {access_control_objects: aco}\n : {access_control_object: aco[0]},\n });\n });\n };\n}\n\nexport function setDraftQueryACO({\n aco,\n}: {\n aco: string[];\n}): ThunkAction<Promise<unknown>, RootState, any, AnyAction> {\n return (dispatch, getState) => {\n const isMultipleAco = selectIsMultipleAco(getState());\n return dispatch(addACOToLastSelected(aco)).then(() =>\n dispatch(\n updateQueryDraft(\n isMultipleAco ? {access_control_objects: aco} : {access_control_object: aco[0]},\n ),\n ),\n );\n };\n}\n\nexport const toggleShareQuery =\n (): ThunkAction<unknown, RootState, any, AnyAction> => async (dispatch, getState) => {\n const state = getState();\n const query = selectQuery(state);\n if (!query) return;\n\n const defaultQueryACO = getDefaultQueryACO(state);\n let aco = query.access_control_objects || [defaultQueryACO];\n\n if (aco.includes(SHARED_QUERY_ACO)) {\n aco = aco.filter((i) => i !== SHARED_QUERY_ACO);\n if (!aco.length) aco = [defaultQueryACO];\n } else {\n aco = [...aco, SHARED_QUERY_ACO];\n }\n\n await dispatch(updateACOQuery({aco, query_id: query.id}));\n dispatch({\n type: UPDATE_ACO_QUERY,\n data: {access_control_objects: aco},\n });\n dispatch(requestQueriesList({refresh: true}));\n };\n","const SvgFile = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M11 13.5H5A1.5 1.5 0 0 1 3.5 12V4A1.5 1.5 0 0 1 5 2.5h2V5a3 3 0 0 0 3 3h2.5v4a1.5 1.5 0 0 1-1.5 1.5m1.303-7a1.5 1.5 0 0 0-.242-.318L8.818 2.939a1.5 1.5 0 0 0-.318-.242V5A1.5 1.5 0 0 0 10 6.5zm.818-1.379A3 3 0 0 1 14 7.243V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h2.757a3 3 0 0 1 2.122.879z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgFile;","import hammer from '../common/hammer';\n\nexport function durationDates(from: string, to?: string) {\n const fromDate = new Date(from).getTime();\n const toDate = (to ? new Date(to) : new Date()).getTime();\n return hammer.format.TimeDuration(toDate - fromDate);\n}\n","export const LabelQa = {\n copyButton: 'copy-button',\n closeButton: 'close-button',\n mainButton: 'main-button',\n};\n","'use client';\n\nimport * as React from 'react';\n\nimport {CircleInfo, Xmark} from '@gravity-ui/icons';\n\nimport {ClipboardIcon} from '../ClipboardIcon';\nimport {CopyToClipboard} from '../CopyToClipboard';\nimport type {CopyToClipboardStatus} from '../CopyToClipboard';\nimport {Icon} from '../Icon';\nimport type {QAProps} from '../types';\nimport {block} from '../utils/cn';\n\nimport {LabelQa} from './constants';\n\nimport './Label.scss';\n\nconst b = block('label');\n\nconst iconSizeMap: Record<NonNullable<LabelProps['size']>, number> = {\n xs: 12,\n s: 14,\n m: 16,\n} as const;\n\nexport interface LabelProps extends QAProps {\n /** Label icon (at start) */\n icon?: React.ReactNode;\n /** Disabled state */\n disabled?: boolean;\n /** Handler for click on close button */\n onCloseClick?(event: React.MouseEvent<HTMLButtonElement>): void;\n /** Text to copy */\n copyText?: string;\n /** `aria-label` of close button */\n closeButtonLabel?: string;\n /** `aria-label` of copy button */\n copyButtonLabel?: string;\n /** Handler for copy event */\n onCopy?(text: string, result: boolean): void;\n /** Handler for click on label itself */\n onClick?(event: React.MouseEvent<HTMLElement>): void;\n /** Class name */\n className?: string;\n /** Content */\n children?: React.ReactNode;\n /** Display hover */\n interactive?: boolean;\n /** Label value (shows as \"children : value\") */\n value?: React.ReactNode;\n /** Label color */\n theme?: 'normal' | 'info' | 'danger' | 'warning' | 'success' | 'utility' | 'unknown' | 'clear';\n /** Label type (plain, with copy text button, with close button, or with info icon) */\n type?: 'default' | 'copy' | 'close' | 'info';\n /** Label size */\n size?: 'xs' | 's' | 'm';\n /** Container width behavior */\n width?: 'auto';\n /** Browser title for Label */\n title?: string;\n loading?: boolean;\n}\n\nexport const Label = React.forwardRef(function Label(\n props: LabelProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n type = 'default',\n theme = 'normal',\n size = 'xs',\n width,\n title,\n icon,\n children,\n onCloseClick,\n className,\n disabled,\n copyText,\n closeButtonLabel,\n copyButtonLabel,\n interactive = false,\n value,\n onCopy,\n onClick,\n qa,\n loading = false,\n } = props;\n const hasContent = Boolean(children !== '' && React.Children.count(children) > 0);\n\n const typeClose = type === 'close' && hasContent;\n const typeCopy = type === 'copy' && hasContent;\n const typeInfo = type === 'info';\n\n const hasOnClick = typeof onClick === 'function';\n const hasCopy = Boolean(typeCopy && copyText);\n const isInteractive = (hasOnClick || hasCopy || typeInfo || interactive) && !disabled;\n\n const iconSize = iconSizeMap[size];\n\n const startIcon = icon && (\n <div className={b('addon', {side: hasContent ? 'start' : undefined, type: 'icon'})}>\n {icon}\n </div>\n );\n const content = hasContent && (\n <div className={b('text')}>\n <div className={b('content')}>{children}</div>\n {Boolean(value) && (\n <div className={b('value')}>\n <div className={b('separator')}>:</div>\n <div className={b('key')}>{value}</div>\n </div>\n )}\n </div>\n );\n\n const renderLabel = (status?: CopyToClipboardStatus) => {\n let actionButton: React.ReactNode;\n\n if (typeCopy) {\n actionButton = (\n <button\n type=\"button\"\n aria-label={copyButtonLabel || undefined}\n onClick={hasOnClick ? onClick : undefined}\n disabled={disabled}\n className={b('addon', {\n side: 'end',\n type: 'button',\n action: hasOnClick ? 'click' : 'copy',\n })}\n data-qa={LabelQa.copyButton}\n >\n <ClipboardIcon status={status || 'pending'} size={iconSize} />\n </button>\n );\n } else if (typeInfo) {\n actionButton = (\n <div\n className={b('addon', {\n side: 'end',\n type: 'icon',\n })}\n >\n <Icon size={iconSize} data={CircleInfo} />\n </div>\n );\n } else if (typeClose) {\n actionButton = (\n <button\n type=\"button\"\n onClick={onCloseClick}\n aria-label={closeButtonLabel || undefined}\n disabled={disabled}\n className={b('addon', {\n side: 'end',\n type: 'button',\n action: 'close',\n })}\n data-qa={LabelQa.closeButton}\n >\n <Icon size={iconSize} data={Xmark} />\n </button>\n );\n }\n\n return (\n <div\n ref={ref}\n className={b(\n {\n theme,\n size,\n width,\n interactive: isInteractive,\n disabled,\n },\n className,\n )}\n title={title}\n data-qa={qa}\n >\n {!disabled && loading && <div className={b('animation-container')} />}\n {startIcon}\n {hasOnClick ? (\n <button\n disabled={disabled}\n type=\"button\"\n onClick={onClick}\n className={b('main-button')}\n data-qa={LabelQa.mainButton}\n >\n {content}\n </button>\n ) : (\n content\n )}\n {actionButton}\n </div>\n );\n };\n\n if (hasCopy && copyText && !hasOnClick) {\n return (\n <CopyToClipboard text={copyText} onCopy={onCopy} timeout={1000}>\n {(status) => renderLabel(status)}\n </CopyToClipboard>\n );\n }\n\n return renderLabel();\n});\n","import {ThunkAction} from 'redux-thunk';\nimport {wrapApiPromiseByToaster} from '../../../utils/utils';\nimport {RootState} from '../../reducers';\nimport {loadQueriesList} from './api';\nimport {\n getQueriesFilters,\n getQueriesList,\n getQueriesListCursorParams,\n getQueriesListFilterParams,\n getQueriesListMode,\n} from '../../selectors/query-tracker/queriesList';\nimport {\n DefaultQueriesListFilter,\n QueriesListFilter,\n QueriesListMode,\n} from '../../../types/query-tracker/queryList';\nimport {QueriesHistoryCursorDirection} from '../../reducers/query-tracker/query-tracker-contants';\nimport {\n setCursor,\n setFilter,\n setLoading,\n updateListState,\n} from '../../reducers/query-tracker/queryListSlice';\nimport {QueryItem} from '../../../types/query-tracker/api';\n\ntype AsyncAction = ThunkAction<any, RootState, any, any>;\n\nconst QUERIES_LIST_LIMIT = 20;\n\nexport function requestQueriesList(params?: {refresh?: boolean}): AsyncAction {\n return async (dispatch, getState) => {\n const state = getState();\n const list = getQueriesList(state);\n\n dispatch(setLoading(true));\n try {\n const result = await wrapApiPromiseByToaster(\n dispatch(\n loadQueriesList({\n params: getQueriesListFilterParams(state),\n cursor: params?.refresh ? undefined : getQueriesListCursorParams(state),\n limit: QUERIES_LIST_LIMIT,\n }),\n ),\n {\n toasterName: 'load_history_list',\n skipSuccessToast: true,\n errorTitle: 'Failed to load query-tracker list',\n },\n );\n\n let items: QueryItem[];\n if (params?.refresh) {\n items = result.queries;\n dispatch(\n updateListState({\n items,\n hasMore: result.incomplete,\n timestamp: result.timestamp,\n cursor: {direction: QueriesHistoryCursorDirection.PAST},\n }),\n );\n } else {\n const itemsMap = new Map<string, QueryItem>();\n list.forEach((item) => itemsMap.set(item.id, item));\n result.queries.forEach((item) => itemsMap.set(item.id, item));\n items = Array.from(itemsMap.values());\n items.sort((a, b) => {\n const timeA = new Date(a.start_time).getTime();\n const timeB = new Date(b.start_time).getTime();\n return timeB - timeA;\n });\n dispatch(\n updateListState({\n items,\n hasMore: result.incomplete,\n timestamp: result.timestamp,\n }),\n );\n }\n } finally {\n dispatch(setLoading(false));\n }\n };\n}\n\nexport function loadNextQueriesList(direction = QueriesHistoryCursorDirection.PAST): AsyncAction {\n return (dispatch, getState) => {\n const state = getState();\n const items = getQueriesList(state);\n\n const isFuture = direction === QueriesHistoryCursorDirection.FUTURE;\n const lastItem = items[isFuture ? 0 : items.length - 1];\n\n if (items.length) {\n dispatch(\n setCursor({\n cursorTime: lastItem.start_time,\n direction,\n }),\n );\n dispatch(requestQueriesList());\n }\n };\n}\n\nexport function resetCursor(silent = false): AsyncAction {\n return (dispatch) => {\n dispatch(\n setCursor({\n direction: QueriesHistoryCursorDirection.PAST,\n }),\n );\n if (!silent) {\n dispatch(requestQueriesList());\n }\n };\n}\n\nexport function resetFilter(): AsyncAction {\n return (dispatch, getState) => {\n const state = getState();\n const listMode = getQueriesListMode(state);\n\n dispatch(setFilter({...DefaultQueriesListFilter[listMode]}));\n dispatch(requestQueriesList());\n };\n}\n\nexport function applyFilter(patch: QueriesListFilter): AsyncAction {\n return (dispatch, getState) => {\n const filter = getQueriesFilters(getState());\n\n dispatch(resetCursor(true));\n dispatch(setFilter({...filter, ...patch}));\n dispatch(requestQueriesList({refresh: true}));\n };\n}\n\nexport function applyListMode(listMode: QueriesListMode): AsyncAction {\n return (dispatch) => {\n dispatch(\n updateListState({\n listMode,\n filter: DefaultQueriesListFilter[listMode],\n cursor: {direction: QueriesHistoryCursorDirection.PAST},\n items: [],\n }),\n );\n dispatch(requestQueriesList({refresh: true}));\n };\n}\n","export const parseResultTabIndex = (tabId?: string) => {\n if (!tabId) {\n return undefined;\n }\n\n const parts = tabId.split('/');\n return parts?.[1] ? parseInt(parts?.[1], 10) : undefined;\n};\n","import axios, {CancelToken} from 'axios';\nimport {wrapApiPromiseByToaster} from './utils';\nimport {OptionsGroup} from '../components/Dialog/df-dialog-utils';\nimport {QueryEngine} from '../../shared/constants/engines';\n\nexport type WithResult<T> = {result: T};\n\nexport type StrawberryListAttributes = keyof Required<StrawberryListResponseItem>['$attributes'];\n\nexport type StrawberryDescribeOptionsType = Array<OptionsGroup>;\n\nexport type StrawberryApi =\n | {\n action: 'list';\n params: {attributes?: Array<StrawberryListAttributes>};\n response: StrawberryListResponse;\n }\n | {action: 'start'; params: {alias: string; untracked?: boolean}; response: void}\n | {action: 'stop'; params: {alias: string}; response: void}\n | {action: 'remove'; params: {alias: string}; response: void}\n | {\n action: 'create';\n params: {\n alias: string;\n speclet_options: {\n active: boolean;\n pool?: string;\n instance_count: number;\n };\n };\n response: void;\n }\n | {\n action: 'edit_options';\n params: {\n alias: string;\n options_to_set: Partial<StrawberryListResponseItem['$attributes']>;\n options_to_remove: Array<StrawberryListAttributes>;\n };\n response: void;\n }\n | {\n action: 'describe_options';\n params: {alias: string};\n response: WithResult<StrawberryDescribeOptionsType>;\n }\n | {action: 'get_speclet'; params: {alias: string}; response: WithResult<unknown>}\n | {\n action: 'get_brief_info';\n params: {alias: string};\n response: WithResult<StrawberryStatusResponse>;\n };\n\nexport type StrawberryStatusResponse = {\n ctl_attributes: {\n instance_count?: number;\n total_cpu?: number;\n total_memory?: number;\n };\n yt_operation: {\n id?: string;\n state?: string;\n start_time?: string;\n finish_time?: string;\n };\n state?: StrawberryCliqueStateType;\n health?: StrawberryCliqueHealthType;\n health_reason?: string;\n incarnation_index?: number;\n creator?: string;\n speclet_modification_time?: string;\n strawberry_state_modification_time?: string;\n stage?: string;\n\n pool?: string;\n error?: string;\n};\n\nexport type StrawberryListResponse = WithResult<Array<StrawberryListResponseItem>>;\n\nexport type StrawberryListResponseItem = {\n $value: string;\n $attributes?: {\n pool?: string;\n creator?: string;\n creation_time?: string;\n health?: StrawberryCliqueHealthType;\n health_reason?: string;\n instance_count?: number;\n speclet_modification_time?: string;\n stage?: string;\n state?: StrawberryCliqueStateType;\n strawberry_state_modification_time?: string;\n total_cpu?: number;\n total_memory?: number;\n yt_operation_id?: string;\n yt_operation_finish_time?: string;\n yt_operation_start_time?: string;\n };\n};\n\nexport type StrawberryCliqueHealthType = 'good' | 'pending' | 'failed';\nexport type StrawberryCliqueStateType = 'active' | 'inactive' | 'untracked';\n\nexport type StrawberryApiType = <\n T extends StrawberryApi['action'] = never,\n ApiItem extends StrawberryApi & {action: T} = StrawberryApi & {action: T},\n>(\n action: T,\n cluster: string,\n params: ApiItem['params'],\n props: {\n type?: 'chyt' | 'spyt';\n cancelToken?: CancelToken;\n skipErrorToast?: boolean;\n successTitle?: string;\n isAdmin?: boolean;\n },\n) => Promise<ApiItem['response']>;\n\nconst strawberryApi: StrawberryApiType = (\n action,\n cluster,\n params,\n {type, cancelToken, skipErrorToast, successTitle, isAdmin} = {},\n) => {\n const query = isAdmin ? '?isDeveloper=true' : '';\n return wrapApiPromiseByToaster(\n axios.request({\n method: 'POST',\n url: `/api/strawberry/${type}/${cluster}/${action}${query}`,\n data: {\n params: {...params},\n },\n cancelToken,\n }),\n {\n toasterName: `clique-${action}`,\n skipSuccessToast: !successTitle,\n successTitle,\n skipErrorToast,\n errorTitle: `'${action}' action failed`,\n },\n ).then((response) => {\n return response.data;\n });\n};\n\nexport const chytApiAction: StrawberryApiType = (action, cluster, params, props) => {\n return strawberryApi(action, cluster, params, {...props, type: QueryEngine.CHYT});\n};\n\nexport const spytApiAction: StrawberryApiType = (action, cluster, params, props) => {\n return strawberryApi(action, cluster, params, {...props, type: QueryEngine.SPYT});\n};\n","import {addI18Keysets} from '../../../../../i18n/index';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nexport default addI18Keysets('yt:dialog-role-list', {en, ru});\n","import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nimport i18n from './i18n';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: i18n('title_current'), data: currentArr.concat(otherArr)},\n toAdd: {\n title: i18n('title_will-be-added'),\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: i18n('title_will-be-removed'),\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: i18n('title_unrecognized'),\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import * as React from 'react';\n\nimport type {DOMProps, QAProps} from '../types';\nimport {block} from '../utils/cn';\n\nimport './Spin.scss';\n\nconst b = block('spin');\n\nexport type SpinSize = 'xs' | 's' | 'm' | 'l' | 'xl';\n\nexport interface SpinProps extends DOMProps, QAProps {\n size?: SpinSize;\n}\n\nexport const Spin = React.forwardRef<HTMLDivElement, SpinProps>(function Spin(props, ref) {\n const {size = 'm', style, className, qa} = props;\n\n return (\n <div ref={ref} style={style} className={b({size}, className)} data-qa={qa}>\n <div className={b('inner')} />\n </div>\n );\n});\n","import {Icon, Spin} from '@gravity-ui/uikit';\nimport React from 'react';\nimport block from 'bem-cn-lite';\nimport hammer from '../../common/hammer';\nimport {SVGIconData} from '@gravity-ui/uikit/build/esm/components/Icon/types';\nimport {ProgressStatuses, QueryStatus} from '../../types/query-tracker';\nimport CircleExclamationIcon from '@gravity-ui/icons/svgs/circle-exclamation.svg';\nimport CircleCheckIcon from '@gravity-ui/icons/svgs/circle-check.svg';\nimport CircleStopIcon from '@gravity-ui/icons/svgs/circle-stop.svg';\nimport FileIcon from '@gravity-ui/icons/svgs/file.svg';\nimport './index.scss';\n\nconst b = block('query-status');\n\ntype Props = {\n status: QueryStatus;\n mode: 'icon' | 'text' | 'both';\n className?: string;\n};\n\nconst STATUS_ICONS: Partial<Record<QueryStatus, SVGIconData>> = {\n [QueryStatus.DRAFT]: FileIcon,\n [QueryStatus.FAILED]: CircleExclamationIcon,\n [QueryStatus.ABORTED]: CircleStopIcon,\n [QueryStatus.COMPLETED]: CircleCheckIcon,\n};\n\nexport function QueryStatusIcon({status, className}: {status: QueryStatus; className?: string}) {\n if (ProgressStatuses.includes(status)) {\n return <Spin size=\"xs\" className={b('icon-container', className)} />;\n }\n\n const statusIcon = STATUS_ICONS[status];\n if (statusIcon) {\n return (\n <Icon\n className={b(\n 'icon-container',\n {\n [status.toLocaleLowerCase()]: true,\n },\n className,\n )}\n data={statusIcon}\n size={16}\n />\n );\n }\n return <>{status}</>;\n}\n\nexport const QueryStatusView = ({mode, status, className}: Props) => {\n return (\n <div className={b(null, className)}>\n {(mode === 'icon' || mode === 'both') && <QueryStatusIcon status={status} />}\n {(mode === 'text' || mode === 'both') && hammer.format.Readable(status)}\n </div>\n );\n};\n","const SvgCircleExclamation = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14m1-4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0M8.75 5a.75.75 0 0 0-1.5 0v2.5a.75.75 0 0 0 1.5 0z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleExclamation;","const SvgCircleStop = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0M5.25 6.25a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1v3.5a1 1 0 0 1-1 1h-3.5a1 1 0 0 1-1-1z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleStop;","import React, {useMemo, useState} from 'react';\nimport {FormApi, YTDFDialog, makeErrorFields} from '../../../../components/Dialog';\nimport Button from '../../../../components/Button/Button';\nimport Icon from '../../../../components/Icon/Icon';\n\nimport type {QueryItem} from '../../../../types/query-tracker/api';\nimport {setQueryName} from '../../../../store/actions/query-tracker/api';\nimport {useDispatch} from '../../../../store/redux-hooks';\n\nexport interface Props {\n query: QueryItem;\n className?: string;\n}\n\ninterface FormValues {\n name: string;\n}\n\nexport default function EditQueryNameModal({query: {state, annotations, id}, className}: Props) {\n const dispatch = useDispatch();\n const [error, setError] = useState<Error | undefined>(undefined);\n const [visible, setVisible] = useState(false);\n\n const handleSubmit = (form: FormApi<FormValues>) => {\n const {name} = form.getState().values;\n setError(undefined);\n return dispatch(setQueryName(id, {...annotations, title: name})).catch((err) => {\n setError(err);\n throw err;\n });\n };\n\n const initialValues = useMemo(() => {\n return {\n name: annotations?.title || '',\n };\n }, [annotations?.title]);\n\n return state === 'completed' || state === 'failed' || state === 'draft' ? (\n <div className={className}>\n <Button\n onClick={(event) => {\n event.stopPropagation();\n setVisible(true);\n }}\n view={'flat-secondary'}\n size={'m'}\n width={'auto'}\n >\n <Icon awesome=\"pencil\"></Icon>\n </Button>\n {visible ? (\n <YTDFDialog<FormValues>\n pristineSubmittable\n visible={visible}\n modal={true}\n headerProps={{title: 'Edit query name'}}\n footerProps={{textApply: 'Save'}}\n onClose={() => {\n setError(undefined);\n setVisible(false);\n }}\n onAdd={handleSubmit}\n initialValues={initialValues}\n fields={[\n {\n name: 'name',\n type: 'text',\n required: true,\n caption: 'Name',\n extras: {\n placeholder: 'Enter query name',\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n ) : null}\n </div>\n ) : null;\n}\n","import React from 'react';\nimport {Text} from '@gravity-ui/uikit';\nimport {Column} from '@gravity-ui/react-data-table';\nimport block from 'bem-cn-lite';\nimport hammer from '../../../../common/hammer';\nimport {QueryStatusIcon} from '../../../../components/QueryStatus';\nimport {formatTime} from '../../../../components/common/Timeline/util';\nimport {QueryItem} from '../../../../types/query-tracker/api';\nimport EditQueryNameModal from '../EditQueryNameModal/EditQueryNameModal';\nimport {QueryStatus} from '../../../../types/query-tracker';\nimport {QueryDuration} from '../../QueryDuration';\nimport './QueryHistoryItem.scss';\nimport {QueryEnginesNames} from '../../../../../shared/constants/engines';\n\nconst itemBlock = block('query-history-item');\n\ntype HeaderTableItem = {header: string};\ntype TableItem = QueryItem | HeaderTableItem;\n\nconst isHeaderTableItem = (b: TableItem): b is HeaderTableItem => {\n return (b as HeaderTableItem).header !== undefined;\n};\n\nexport const NameColumns: Column<TableItem> = {\n name: 'Name',\n align: 'left',\n\n className: itemBlock('name_row'),\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return <div className={itemBlock('separator')}>{row.header}</div>;\n }\n\n const name = row.annotations?.title;\n return (\n <div className={itemBlock('name')} title={name}>\n <QueryStatusIcon className={itemBlock('status-icon')} status={row.state} />\n <Text\n className={itemBlock('name-container')}\n color={name ? 'primary' : 'secondary'}\n ellipsis\n >\n {name || 'No name'}\n </Text>\n </div>\n );\n },\n};\n\nexport const ActionColumns: Column<TableItem> = {\n name: ' ',\n align: 'left',\n width: 20,\n className: itemBlock('action_row'),\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return null;\n }\n\n return (\n <div className={itemBlock('action')} onClick={(e) => e.stopPropagation()}>\n <EditQueryNameModal className={itemBlock('name-edit')} query={row} />\n </div>\n );\n },\n};\n\nconst TypeColumns: Column<TableItem> = {\n name: 'Type',\n align: 'center',\n width: 60,\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return null;\n }\n\n return (\n <Text variant=\"body-1\" color=\"secondary\">\n {row.engine in QueryEnginesNames ? QueryEnginesNames[row.engine] : row.engine}\n </Text>\n );\n },\n};\n\nconst DurationColumns: Column<TableItem> = {\n name: 'Duration',\n align: 'left',\n width: 100,\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return null;\n }\n\n if (row.state === QueryStatus.RUNNING) {\n return hammer.format.NO_VALUE;\n }\n return <QueryDuration query={row} />;\n },\n};\n\nconst StartedColumns: Column<TableItem> = {\n name: 'Started',\n align: 'left',\n width: 60,\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return null;\n }\n\n return (\n <Text variant=\"body-1\" color=\"secondary\">\n {formatTime(row.start_time)}\n </Text>\n );\n },\n};\n\nexport const AuthorColumns: Column<TableItem> = {\n name: 'Author',\n align: 'left',\n width: 120,\n className: itemBlock('author_row'),\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return null;\n }\n\n return (\n <Text variant=\"body-1\" ellipsis title={row.user}>\n {row.user}\n </Text>\n );\n },\n};\n\nconst ACOColumns: Column<TableItem> = {\n name: 'ACO',\n align: 'left',\n width: 60,\n className: itemBlock('access_control_object'),\n render: ({row}) => {\n if (isHeaderTableItem(row)) {\n return null;\n }\n\n const title = row.access_control_objects?.join(', ');\n\n return (\n <Text variant=\"body-1\" ellipsis title={title}>\n {title}\n </Text>\n );\n },\n};\n\nexport const MyColumns: Column<TableItem>[] = [\n NameColumns,\n TypeColumns,\n DurationColumns,\n StartedColumns,\n ACOColumns,\n ActionColumns,\n];\nexport const AllColumns: Column<TableItem>[] = [\n NameColumns,\n TypeColumns,\n DurationColumns,\n AuthorColumns,\n StartedColumns,\n ACOColumns,\n ActionColumns,\n];\n","import {createSelector} from 'reselect';\nimport {RootState} from '../../reducers';\nimport {getCurrentUserName} from '../global';\nimport {QueriesListParams, QueryItem} from '../../../types/query-tracker/api';\nimport {isQueryProgress} from '../../../pages/query-tracker/utils/query';\nimport {\n DefaultQueriesListFilter,\n QueriesListAuthorFilter,\n QueriesListFilterPresets,\n QueriesListMode,\n} from '../../../types/query-tracker/queryList';\nimport {getSettingsData} from '../settings/settings-base';\nimport {selectIsVcsVisible} from './vcs';\nimport groupBy_ from 'lodash/groupBy';\nimport moment from 'moment';\nimport intersectionBy_ from 'lodash/intersectionBy';\nimport {\n ActionColumns,\n AllColumns,\n AuthorColumns,\n MyColumns,\n NameColumns,\n} from '../../../pages/query-tracker/QueriesList/QueriesHistoryList/columns';\n\nexport const getQueriesListState = (state: RootState) => state.queryTracker.list;\n\nexport const isQueriesListLoading = (state: RootState) => state.queryTracker.list.isLoading;\n\nexport const getQueriesList = (state: RootState) => getQueriesListState(state).items;\n\nexport const hasQueriesListMore = (state: RootState) => getQueriesListState(state).hasMore;\n\nexport const getQueriesFilters = (state: RootState) => getQueriesListState(state).filter || {};\nexport const getQueriesListMode = (state: RootState) => getQueriesListState(state).listMode;\nexport const getQueriesListCursor = (state: RootState) => getQueriesListState(state).cursor;\n\nexport const getTutorialQueriesList = createSelector([getQueriesList], (listItems) => {\n return listItems.filter((item) => item?.is_tutorial);\n});\n\nexport const getQueryListByDate = createSelector([getQueriesList], (listItems) => {\n return Object.entries(\n groupBy_(listItems, (item) => moment(item.start_time).format('DD MMMM YYYY')),\n ).reduce<(QueryItem | {header: string})[]>((ret, [header, items]) => {\n ret.push({\n header,\n });\n\n return ret.concat(items.map((item) => item));\n }, []);\n});\n\nexport const getQueriesListTabs = createSelector([selectIsVcsVisible], (vcsVisible) => {\n const queriesListMode = Object.values(QueriesListMode);\n return vcsVisible\n ? queriesListMode\n : queriesListMode.filter((item) => item !== QueriesListMode.VCS);\n});\n\nexport const getQueryListColumns = createSelector(\n [getQueriesFilters, getQueryListHistoryColumns],\n (filter, selectedColumns) => {\n const ALL_COLUMN_NAMES = intersectionBy_(AllColumns, MyColumns, 'name').map(\n (item) => item.name,\n );\n const EXCLUDED_COLUMNS = [NameColumns.name, AuthorColumns.name, ActionColumns.name];\n const currentColumnsPreset =\n filter.user === QueriesListAuthorFilter.My ? MyColumns : AllColumns;\n\n const selectedColumnNames = new Set(\n Array.isArray(selectedColumns) ? selectedColumns : ALL_COLUMN_NAMES,\n );\n\n selectedColumnNames.add(NameColumns.name);\n selectedColumnNames.add(AuthorColumns.name);\n selectedColumnNames.add(ActionColumns.name);\n\n return {\n columns: currentColumnsPreset.filter(({name}) => selectedColumnNames.has(name)),\n allowedColumns: currentColumnsPreset\n .filter((item) => !EXCLUDED_COLUMNS.includes(item.name))\n .map(({name}) => ({name, checked: selectedColumnNames.has(name)})),\n };\n },\n);\n\nexport const hasCustomHistoryFilters = createSelector(\n [getQueriesFilters, getSettingsData],\n (filter) => {\n const {from, to, state, user} = filter;\n const defaultFilter = DefaultQueriesListFilter[QueriesListMode.History];\n\n const fromChanged = from !== undefined;\n const toChanged = to !== undefined;\n const stateChanged = state !== undefined;\n const userChanged = user !== defaultFilter.user;\n\n return fromChanged || toChanged || stateChanged || userChanged;\n },\n);\n\nexport const getUncompletedItems = createSelector(getQueriesList, (items) => {\n return items.filter(isQueryProgress);\n});\n\nexport const getQueriesListCursorParams = (state: RootState) => {\n const cursor = getQueriesListCursor(state);\n if (cursor) {\n return {cursor_time: cursor.cursorTime, cursor_direction: cursor.direction};\n }\n\n return undefined;\n};\n\nexport function getQueriesListFilterParams(state: RootState): QueriesListParams {\n const listMode = getQueriesListMode(state);\n const filterParams = {\n ...getQueriesFilters(state),\n ...(QueriesListFilterPresets[listMode] || {}),\n };\n const {is_tutorial, from, to, state: queryState, ...filter} = filterParams;\n\n let user = filter.user;\n if (filter.user === 'my') {\n user = getCurrentUserName(state);\n }\n if (filter.user === 'all') {\n user = undefined;\n }\n\n const params = {\n ...filter,\n from_time: from,\n to_time: to,\n state: queryState,\n user,\n tutorial_filter: is_tutorial,\n };\n\n return params;\n}\n\nexport function getQueryListHistoryColumns(state: RootState) {\n return getSettingsData(state)['global::queryTracker::history::Columns'];\n}\n"],"names":["props","_jsx","_objectSpread","xmlns","fill","viewBox","children","fillRule","d","clipRule","isQueryProgress","query","ProgressStatuses","includes","state","isQueryCompleted","CompletedStates","isAbortable","AbortableStatuses","addI18Keysets","en","ru","updateQueryTabs","dispatch","getState","_progress$yql_plan","_progress$yql_plan2","getQuery","userChangeTab","selectUserChangedQueryResultTab","tabs","QueryStatus","FAILED","push","id","title","i18n","COMPLETED","apply","_toConsumableArray","times_","result_count","num","suffix","concat","progress","isSingleProgress","hasProgress","Boolean","yql_plan","Basic","nodes","length","links","UIFactory","getQueryResultChartTab","yql_statistics","setTabs","isCompleted","find_","status","loadQueryResultsErrors","firstResultTab","find","tab","setActiveTab","block","cn","DialogError","YTErrorBlock","className","makeErrorFields","errors","compact_","map_","error","index","name","type","extras","undefined","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","Component","YTDFDialog","withLazyLoading","React","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","createQueryUrl","cluster","query_id","makeRoutedURL","Page","QUERIES","createNewQueryUrl","QTcluster","engine","_ref","tableCluster","path","useDraft","hour","minute","day","week","month","year","humanizeInterval","from","to","duration","years","Math","floor","months","days","weeks","hours","minutes","round","formatInterval","mFrom","moment","mTo","isSame","format","formatTime","date","formatTimeCanonical","ts","getTimestampFromDate","valueOf","rangeMap","mo","calculateShortcutTime","shortcut","Date","now","back","time","backRe","match","exec","_match","amount","rawRange","range","subtract","calculateBackTimestamp","convertTimeToRequestParams","shortcutValue","selectQueryResultTabs","queryTracker","selectActiveQueryResultTab","activeTabId","selectActiveResultParams","createSelector","getQueryId","queryId","resultIndex","parseResultTabIndex","queryDuration","durationDates","start_time","finish_time","QueryDuration","_useState","useState","_useState2","setDuration","useEffect","DRAFT","timer","setInterval","clearInterval","useQueryDuration","Label","selectVcsConfig","vcs","vcsConfig","selectIsVcsVisible","Array","isArray","selectVcs","selectPath","selectPreview","preview","selectRepositories","repositories","selectCurrentVcs","selectRepository","repository","selectBranch","branch","selectBranches","branches","selectListFilter","listFilter","selectListError","listError","selectShowFilter","selectListArray","list","filter","listArray","Object","values","item","selectCurrentRepository","selectNavigationCluster","queryNavigation","selectLoading","loading","selectClusterConfigs","clustersMenu","clusters","selectNavigationError","selectNavigationClusterConfig","clusterName","selectFavouritePaths","makeGetSetting","getSetting","parentNS","createNestedNS","NAMESPACES","LOCAL","favourites","SettingName","FAVOURITES","map","i","sort","selectNavigationPath","selectNavigationNodeType","nodeType","selectNavigationFilter","selectNavigationNodes","filterValueInText","value","toLowerCase","selectTableWithFilter","table","schema","selectClustersByFilter","getClusterList","_ref2","selectNodeListByFilter","isRoot","upItem","split","slice","join","isFavorite","result","_ref3","unshift","checkCliqueControllerIsSupported","clusterId","supportedControllers","getCliqueControllerSupportByCluster","QueryEngine","SPYT","spyt","CHYT","chyt","updateQueryDraft","YQL","SET_SUPPORTED_ENGINE","data","_x","arguments","setCurrentClusterToQuery","_getQueryDraft","settings","getCluster","getQueryDraft","_x2","_x3","setUserLastChoice","clearProps","getQueryEngine","lastPath","getLastUserChoiceQueryDiscoveryPath","lastClique","getLastUserChoiceQueryChytClique","lastVersion","getLastUserChoiceYqlVersion","newSettings","discovery_group","clique","yql_version","rumId","_yield$getClusterPara","_ref4","_ref5","uiConfigOutput","yql","ql","RumWrapper","RumMeasureTypes","CLUSTER_PARAMS","getClusterParams","prepareClusterUiConfig","uiConfig","uiDevConfig","chyt_controller_base_url","livy_controller_base_url","_x4","loadTablePromptToQuery","newQuerySettings","_ref6","_getQueryResultGlobal","pageSize","clusterConfig","getQueryResultGlobalSettings","createTableSelect","limit","createEmptyQuery","_x5","_x6","setQueryEngine","getQueryDraftSettings","setQueryCluster","_ref7","_callee5","_getQueryDraft3","_getQueryDraft3$setti","_context5","SET_QUERY_CLUSTER_LOADING","finish","_x7","_x8","setQueryClique","alias","setSettingByKey","setQueryYqlVersion","version","setQueryPath","newPath","loadCliqueByCluster","_ref8","_callee6","isSpyt","cliqueMap","_context6","getCliqueMap","SET_QUERY_CLIQUE_LOADING","spytApiAction","chytApiAction","attributes","then","_data$result","items","_ref9","$value","_ref9$$attributes","$attributes","yt_operation_id","health","SET_QUERY_CLUSTER_CLIQUE","_x9","_x0","loadQuery","config","_ref0","_callee7","stage","_UIFactory$getInlineS","defaultQueryACO","queryItem","_context7","getSettingQueryTrackerStage","REQUEST_QUERY","wrapApiPromiseByToaster","toasterName","skipSuccessToast","errorContent","code","message","errorTitle","files","file","guid","getDefaultQueryACO","prepareQueryPlanIds","dontReplaceQueryText","draft","getInlineSuggestionsApi","onQueryLoad","SET_QUERY","initialQuery","loadVisualization","_x1","_x10","SET_QUERY_PATCH","createQueryFromTablePath","options","_ref1","_callee8","_context8","generateQueryFromTable","UPDATE_DRAFT","SET_QUERY_READY","_x11","_x12","_UIFactory$getInlineS2","lastEngine","getLastUserChoiceQueryEngine","initialEngine","onQueryCreate","access_control_object","access_control_objects","resetQueryTabs","runQuery","afterCreate","_ref10","_callee9","newQuery","_newQuery$access_cont","_yield$wrapApiPromise","_context9","SHARED_QUERY_ACO","SET_DIRTY_SUBMIT","startQuery","requestQueriesList","refresh","_x13","_x14","abortCurrentQuery","_ref11","_callee0","currentQuery","_context0","getCurrentQuery","abortQuery","_x15","_x16","goToQuery","_","getAppBrowserHistory","resetQueryTracker","setQueryACO","_ref12","aco","isMultipleAco","selectIsMultipleAco","updateACOQuery","UPDATE_ACO_QUERY","setDraftQueryACO","_ref13","addACOToLastSelected","toggleShareQuery","_ref14","_callee1","_context1","selectQuery","_x17","_x18","fromDate","getTime","toDate","hammer","TimeDuration","b","iconSizeMap","xs","s","m","ref","theme","size","width","icon","onCloseClick","disabled","copyText","closeButtonLabel","copyButtonLabel","interactive","onCopy","onClick","qa","hasContent","count","typeClose","typeCopy","typeInfo","hasOnClick","hasCopy","isInteractive","iconSize","startIcon","side","content","renderLabel","actionButton","action","ClipboardIcon","Icon","I","CircleInfo","Xmark","CopyToClipboard","text","timeout","QUERIES_LIST_LIMIT","params","itemsMap","getQueriesList","setLoading","loadQueriesList","getQueriesListFilterParams","cursor","getQueriesListCursorParams","queries","updateListState","hasMore","incomplete","timestamp","direction","QueriesHistoryCursorDirection","PAST","Map","forEach","set","a","timeA","loadNextQueriesList","lastItem","FUTURE","setCursor","cursorTime","resetFilter","listMode","getQueriesListMode","setFilter","DefaultQueriesListFilter","applyFilter","patch","getQueriesFilters","silent","resetCursor","applyListMode","tabId","parts","parseInt","strawberryApi","cancelToken","skipErrorToast","successTitle","isAdmin","axios","request","method","url","response","prepareRoleListValue","roles","otherMembers","current","toAdd","toRemove","unrecognized","forEach_","isUnrecognized","isRequested","isApproved","isDepriving","currentArr","prepareItemOfCurrent","otherArr","frozen","newItems","itemClassName","role","extraProps","roleListValueToSubjectList","manyListDataItemToSubjectList","manyListDataItem","filter_","removed","extractChangedSubjects","added","user","group","Spin","style","STATUS_ICONS","FileIcon","ABORTED","CircleCheckIcon","QueryStatusIcon","statusIcon","toLocaleLowerCase","_Fragment","QueryStatusView","mode","_jsxs","Readable","EditQueryNameModal","_ref$query","annotations","useDispatch","setError","_useState3","_useState4","setVisible","initialValues","useMemo","Button","event","stopPropagation","view","awesome","pristineSubmittable","modal","headerProps","footerProps","textApply","onClose","onAdd","form","setQueryName","err","fields","required","caption","placeholder","itemBlock","isHeaderTableItem","header","NameColumns","align","render","_row$annotations","row","Text","color","ellipsis","ActionColumns","e","TypeColumns","variant","QueryEnginesNames","DurationColumns","RUNNING","NO_VALUE","StartedColumns","AuthorColumns","ACOColumns","_row$access_control_o","MyColumns","AllColumns","getQueriesListState","isQueriesListLoading","isLoading","hasQueriesListMore","getTutorialQueriesList","listItems","is_tutorial","getQueryListByDate","entries","groupBy_","reduce","ret","getQueriesListTabs","vcsVisible","queriesListMode","QueriesListMode","VCS","getQueryListColumns","getSettingsData","selectedColumns","ALL_COLUMN_NAMES","intersectionBy_","EXCLUDED_COLUMNS","currentColumnsPreset","QueriesListAuthorFilter","My","selectedColumnNames","Set","add","columns","has","allowedColumns","checked","hasCustomHistoryFilters","fromChanged","toChanged","stateChanged","userChanged","History","getQueriesListCursor","cursor_time","cursor_direction","filterParams","QueriesListFilterPresets","queryState","_objectWithoutProperties","_excluded","getCurrentUserName","from_time","to_time","tutorial_filter"],"sourceRoot":""}