@ytsaurus/ui 1.72.0 → 1.73.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 (36) hide show
  1. package/dist/public/build/assets-manifest.json +26 -26
  2. package/dist/public/build/css/yt-monaco-editor.43c1d967.chunk.css +2 -0
  3. package/dist/public/build/css/yt-monaco-editor.43c1d967.chunk.css.map +1 -0
  4. package/dist/public/build/js/3302.dff164d9.chunk.js +3 -0
  5. package/dist/public/build/js/3302.dff164d9.chunk.js.map +1 -0
  6. package/dist/public/build/js/{chyt.eff6e270.chunk.js → chyt.8c82dc61.chunk.js} +2 -2
  7. package/dist/public/build/js/{chyt.eff6e270.chunk.js.map → chyt.8c82dc61.chunk.js.map} +1 -1
  8. package/dist/public/build/js/{cluster-page-wrapper.434bb4ef.chunk.js → cluster-page-wrapper.7c7301b9.chunk.js} +2 -2
  9. package/dist/public/build/js/{cluster-page-wrapper.434bb4ef.chunk.js.map → cluster-page-wrapper.7c7301b9.chunk.js.map} +1 -1
  10. package/dist/public/build/js/{components.233a938d.chunk.js → components.a4b032ee.chunk.js} +2 -2
  11. package/dist/public/build/js/components.a4b032ee.chunk.js.map +1 -0
  12. package/dist/public/build/js/main.afa006d1.js +3 -0
  13. package/dist/public/build/js/main.afa006d1.js.map +1 -0
  14. package/dist/public/build/js/{navigation.f5cf971c.chunk.js → navigation.0adc0583.chunk.js} +2 -2
  15. package/dist/public/build/js/{navigation.f5cf971c.chunk.js.map → navigation.0adc0583.chunk.js.map} +1 -1
  16. package/dist/public/build/js/{query-tracker.64472502.chunk.js → query-tracker.5f5e3683.chunk.js} +2 -2
  17. package/dist/public/build/js/{query-tracker.64472502.chunk.js.map → query-tracker.5f5e3683.chunk.js.map} +1 -1
  18. package/dist/public/build/js/{query-widget.2271e15c.chunk.js → query-widget.4bd0f75f.chunk.js} +2 -2
  19. package/dist/public/build/js/{query-widget.2271e15c.chunk.js.map → query-widget.4bd0f75f.chunk.js.map} +1 -1
  20. package/dist/public/build/js/{runtime.c88113bf.js → runtime.30501cea.js} +2 -2
  21. package/dist/public/build/js/{runtime.c88113bf.js.map → runtime.30501cea.js.map} +1 -1
  22. package/dist/public/build/js/yt-monaco-editor.00e55e53.chunk.js +2 -0
  23. package/dist/public/build/js/yt-monaco-editor.00e55e53.chunk.js.map +1 -0
  24. package/dist/public/build/manifest.json +22 -22
  25. package/package.json +2 -2
  26. package/dist/public/build/css/yt-monaco-editor.e7c3868b.chunk.css +0 -2
  27. package/dist/public/build/css/yt-monaco-editor.e7c3868b.chunk.css.map +0 -1
  28. package/dist/public/build/js/3337.31ee332d.chunk.js +0 -3
  29. package/dist/public/build/js/3337.31ee332d.chunk.js.map +0 -1
  30. package/dist/public/build/js/components.233a938d.chunk.js.map +0 -1
  31. package/dist/public/build/js/main.c46b0cfa.js +0 -3
  32. package/dist/public/build/js/main.c46b0cfa.js.map +0 -1
  33. package/dist/public/build/js/yt-monaco-editor.59382231.chunk.js +0 -2
  34. package/dist/public/build/js/yt-monaco-editor.59382231.chunk.js.map +0 -1
  35. /package/dist/public/build/js/{3337.31ee332d.chunk.js.LICENSE.txt → 3302.dff164d9.chunk.js.LICENSE.txt} +0 -0
  36. /package/dist/public/build/js/{main.c46b0cfa.js.LICENSE.txt → main.afa006d1.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/query-tracker.64472502.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/ColumnSelector/ColumnSelector.js","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","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/components/Dropdown/Dropdown.js","webpack://@ytsaurus/ui/./src/ui/components/EditableAsText/EditableAsText.tsx","webpack://@ytsaurus/ui/./src/ui/components/SortIcon/SortIcon.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/modals/cell-preview.ts","webpack://@ytsaurus/ui/./src/ui/containers/CellPreviewModal/CellPreviewModal.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryClusterSelector/QueryClusterItem.tsx","webpack://@ytsaurus/ui/./src/ui/hooks/use-prevent-unload.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/module/settings/selector.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/QueriesList/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/QueryListFilter/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/Query/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/EditQueryNameModal/EditQueryNameModal.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesHistoryList/useQueryListColumns.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesHistoryList/index.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/learn.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesTutorialList/index.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesListFilter/QueryEngineFilter.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesListFilter/QueryTextFilter.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesListFilter/index.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/index.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/layout-columns.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/FileEditor/FileEditor.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTracker/QueryEditorSplit.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTracker/QueryTracker.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/RightButtonsGroup.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QuerySelector.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryClusterSelector/QueryClusterSelector.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryCliqueSelector/QueryCliqueItem.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryCliqueSelector/QueryCliqueSelector.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QuerySelectorsByEngine.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/index.tsx","webpack://@ytsaurus/ui/./src/ui/hooks/useIsDesktop.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/module/queryNavigation/selectors.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/index.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/thor/unipika.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/bars-descending-align-left.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-question.svg","webpack://@ytsaurus/ui/./node_modules/d3-path/src/path.js","webpack://@ytsaurus/ui/./node_modules/d3-scale/src/init.js","webpack://@ytsaurus/ui/./node_modules/d3-scale/src/ordinal.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/matcher.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/namespace.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/namespaces.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/select.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/selectChild.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/sparse.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/enter.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/data.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/sort.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/attr.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/property.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/classed.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/text.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/html.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/raise.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/lower.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/creator.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/insert.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/remove.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/clone.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/on.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/dispatch.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/index.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/select.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/selectAll.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/array.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/filter.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/constant.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/exit.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/join.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/merge.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/order.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/call.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/nodes.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/node.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/size.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/empty.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/each.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/append.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/datum.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/iterator.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/style.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selector.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selectorAll.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/window.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/arc.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/array.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/constant.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/math.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/path.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/descending.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/identity.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/pie.js","webpack://@ytsaurus/ui/./node_modules/internmap/src/index.js"],"sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {sortableContainer, sortableElement, sortableHandle} from 'react-sortable-hoc';\nimport ReactList from 'react-list';\n\nimport each_ from 'lodash/each';\nimport escapeRegExp_ from 'lodash/escapeRegExp';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\nimport reduce_ from 'lodash/reduce';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../../components/Icon/Icon';\n\nimport {renderText} from '../../components/templates/utils';\n\nimport './ColumnSelector.scss';\nimport Button from '../Button/Button';\n\nconst b = cn('column-selector');\n\nexport function makeItemsCopy(items) {\n return map_(items, (item) => {\n return {...item};\n });\n}\n\nconst DragHandle = sortableHandle(() => (\n <div className={b('drag-handle')}>\n <Icon face=\"solid\" awesome=\"list\" />\n </div>\n));\n\nconst SortableItem = sortableElement(\n ({\n item,\n isSortable,\n isSelectable,\n isDisabled,\n itemRenderer,\n onCheckBoxChange,\n withClickableHandler,\n }) => {\n const active = !isDisabled && !item.disabled;\n const className = b('list-item', {\n selected: item.checked && active && 'yes',\n selectable: isSelectable && active && 'yes',\n disabled: !active && 'yes',\n });\n\n return (\n <div className={className}>\n {isSortable && item.checked && <DragHandle />}\n <div className={b('list-item-name')}>\n {item.keyColumn && <Icon awesome=\"key\" />}\n {itemRenderer(item)}\n </div>\n {active && withClickableHandler && (\n <span\n className={b('list-item-check')}\n onClick={onCheckBoxChange}\n data-item={item.name}\n >\n <Icon awesome=\"check\" />\n </span>\n )}\n {!active && <Icon className={b('list-item-lock')} awesome=\"lock\" />}\n </div>\n );\n },\n);\n\nconst SortableList = sortableContainer(\n ({\n items,\n isSortable,\n isDisabled,\n itemRenderer,\n onCheckBoxChange,\n isSelectable,\n useStaticSize,\n withClickableHandler = true,\n }) => {\n const renderer = (index, key) => {\n const item = items[index];\n return (\n <SortableItem\n key={key}\n index={index}\n item={item}\n disabled={!isSortable}\n isSortable={isSortable}\n isDisabled={isDisabled}\n isSelectable={isSelectable}\n itemRenderer={itemRenderer}\n onCheckBoxChange={onCheckBoxChange}\n withClickableHandler={withClickableHandler}\n />\n );\n };\n // Use 'simple' placement for draggable items because 'uniform' produces bugs when items are dragged outside the viewport\n const type = isSortable ? 'simple' : 'uniform';\n const mods = {'static-size': useStaticSize};\n\n return (\n <div className={b('list', mods)}>\n <ReactList itemRenderer={renderer} length={items.length} type={type} />\n </div>\n );\n },\n);\n\nexport default class ColumnSelector extends Component {\n static itemsProps = PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n keyColumn: PropTypes.bool,\n caption: PropTypes.string,\n disabled: PropTypes.bool,\n }),\n );\n\n static propTypes = {\n className: PropTypes.string,\n items: ColumnSelector.itemsProps.isRequired,\n showDisabledItems: PropTypes.bool,\n isSortable: PropTypes.bool,\n isSelectable: PropTypes.bool,\n isFilterable: PropTypes.bool,\n showSelectedOnly: PropTypes.bool,\n isHeadless: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n children: PropTypes.node,\n itemRenderer: PropTypes.func,\n };\n\n static defaultProps = {\n itemRenderer: ({name, caption = name}) => renderText(caption, {asHTML: false}),\n isSortable: false,\n isHeadless: false,\n isSelectable: true,\n isFilterable: true,\n showSelectedOnly: false,\n };\n\n constructor(props) {\n const {items, isHeadless, showSelectedOnly} = props;\n super(props);\n\n const state = {\n showSelectedOnly,\n filter: '',\n };\n if (isHeadless) {\n Object.assign(state, {items: makeItemsCopy(items)});\n }\n this.state = state;\n }\n\n get items() {\n return this.props.isHeadless ? this.state.items : this.props.items;\n }\n\n get buttonALLisDisabled() {\n return this.items.every((item) => item.checked);\n }\n\n get buttonNONEisDisabled() {\n return !this.items.some((item) => item.checked);\n }\n\n /*\n Takes items from the proper place (props or state), modifies them and writes them back at the same place.\n */\n withActualItems(func) {\n const {onChange} = this.props;\n // headless widget keeps its state to itself, but calls onChange as a way of notifying caller about changes\n if (this.props.isHeadless) {\n const {items} = func({items: this.state.items || []});\n this.setState({items}, () => {\n onChange({items: [...this.state.items]});\n });\n } else {\n // widget inside modal passes all changes to the modal component where they are put into state\n const {items} = func({items: this.props.items || []});\n onChange({items: [...items]});\n }\n }\n\n toggleItem = (name) => {\n this.withActualItems(({items}) => {\n items = [...items];\n const index = items.findIndex((item) => item.name === name);\n const changedItem = items[index];\n items[index] = {...changedItem, checked: !changedItem.checked};\n\n return {items};\n });\n };\n\n selectAllItems = () => {\n this.withActualItems(({items}) => {\n const visibleMap = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleMap[item.name]) {\n return;\n }\n if (!item.checked && !item.disabled) {\n items[index] = {...item, checked: true};\n }\n });\n\n return {items};\n });\n };\n\n deselectAllItems = () => {\n this.withActualItems(({items}) => {\n const visibleMap = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleMap[item.name]) {\n return;\n }\n if (item.checked && !item.disabled) {\n items[index] = {...item, checked: false};\n }\n });\n\n return {items};\n });\n };\n\n invertItems = () => {\n this.withActualItems(({items}) => {\n const visibleItems = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleItems[item.name]) {\n return;\n }\n if (!item.disabled) {\n items[index] = {...item, checked: !item.checked};\n }\n });\n\n return {items};\n });\n };\n\n _handleCheckBoxChange = (event) => {\n this.toggleItem(event.currentTarget.getAttribute('data-item'));\n };\n\n _handleSortEnd = ({oldIndex, newIndex}) => {\n if (oldIndex === newIndex) {\n return;\n }\n\n this.withActualItems(({items}) => {\n items = [...items];\n\n const {items: visibleItems} = this.getVisibleItems();\n const fromIndex = items.findIndex((item) => item.name === visibleItems[oldIndex].name);\n const toIndex = items.findIndex((item) => item.name === visibleItems[newIndex].name);\n\n const [removed] = items.splice(fromIndex, 1);\n items.splice(toIndex, 0, removed);\n\n return {items};\n });\n };\n\n _handleDefaultSort = () => {\n this.withActualItems(({items}) => {\n return {\n items: items.sort((a, b) => {\n const aCaption = a.caption || a.name;\n const bCaption = b.caption || b.name;\n\n return aCaption.localeCompare(bCaption);\n }),\n };\n });\n };\n\n _toggleShownItems = () => {\n this.setState((prevState) => ({\n showSelectedOnly: !prevState.showSelectedOnly,\n }));\n };\n\n _changeFilter = (filter) => {\n this.setState({filter});\n };\n\n renderSearchBox() {\n return (\n <TextInput\n placeholder=\"Search...\"\n onUpdate={this._changeFilter}\n value={this.state.filter}\n hasClear={true}\n />\n );\n }\n\n renderControls() {\n const {isFilterable, isSelectable, isSortable, isHeadless} = this.props;\n const btnProps = {\n size: 'm',\n className: b('controls-item'),\n };\n\n return (\n <div className={b('controls')}>\n {isFilterable && this.renderSearchBox()}\n {isHeadless && (\n <Button {...btnProps} onClick={this._toggleShownItems}>\n Selected &nbsp;\n <span className=\"elements-secondary-text\">\n {filter_(this.items, (item) => item.checked).length}\n </span>\n </Button>\n )}\n {isSelectable && (\n <Button\n {...btnProps}\n disabled={this.buttonALLisDisabled}\n onClick={this.selectAllItems}\n >\n Add all\n </Button>\n )}\n {isSelectable && (\n <Button {...btnProps} onClick={this.invertItems}>\n Invert list\n </Button>\n )}\n {!isSelectable && (\n <Button\n {...btnProps}\n disabled={this.buttonNONEisDisabled}\n onClick={this.deselectAllItems}\n >\n Remove all\n </Button>\n )}\n {isSortable && (\n <Button {...btnProps} onClick={this._handleDefaultSort}>\n Default sort\n </Button>\n )}\n </div>\n );\n }\n\n filterItemsByName(items) {\n const re = new RegExp(escapeRegExp_(this.state.filter), 'i');\n return filter_(items, (item) => re.test(item.name));\n }\n\n filterItems(items) {\n const {showDisabledItems} = this.props;\n items = showDisabledItems ? items : filter_(items, (item) => !item.disabled);\n\n const visibleItems = this.filterItemsByName(items);\n return this.state.showSelectedOnly\n ? filter_(visibleItems, (item) => item.checked)\n : visibleItems;\n }\n\n getVisibleItems() {\n const toSplit = this.filterItems(this.items);\n const [keyItems, items] = partition_(toSplit, (item) => item.keyColumn);\n return {items, keyItems};\n }\n\n getVisibleItemsMap() {\n return reduce_(\n this.filterItems(this.items),\n (acc, item) => {\n acc[item.name] = item;\n return acc;\n },\n {},\n );\n }\n\n renderList() {\n const {isSortable, isSelectable, itemRenderer, children, isHeadless} = this.props;\n\n const {items, keyItems} = this.getVisibleItems();\n\n const className = b(\n 'content',\n {\n headless: isHeadless ? undefined : 'no',\n empty: items.length ? undefined : 'yes',\n },\n 'pretty-scroll',\n );\n\n return (\n <div className={className}>\n {keyItems.length > 0 && (\n <React.Fragment>\n <SortableList\n lockAxis=\"y\"\n isDisabled={false}\n isSortable={false}\n isSelectable={isSelectable}\n items={keyItems}\n itemRenderer={itemRenderer}\n helperClass={b('list-item', {helper: 'yes'})}\n onCheckBoxChange={this._handleCheckBoxChange}\n />\n {items.length > 0 && <div className={b('separator')} />}\n </React.Fragment>\n )}\n {items.length > 0 && (\n <SortableList\n items={items}\n isSelectable={isSelectable}\n isSortable={isSortable}\n itemRenderer={itemRenderer}\n lockAxis=\"y\"\n helperClass={b('list-item', {helper: 'yes'})}\n onSortEnd={this._handleSortEnd}\n onCheckBoxChange={this._handleCheckBoxChange}\n useDragHandle\n />\n )}\n {!keyItems.length && !items.length && children}\n </div>\n );\n }\n\n render() {\n const {isHeadless, isSortable, className} = this.props;\n const classNames = b(\n {\n headless: isHeadless ? 'yes' : undefined,\n sortable: isSortable ? undefined : 'no',\n },\n className,\n );\n return (\n <div className={classNames}>\n {this.renderControls()}\n {this.renderList()}\n </div>\n );\n }\n}\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\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: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n 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 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 Block 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 <Block {...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 React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport templates from '../templates/templates';\n\nimport {Popup} from '@gravity-ui/uikit';\n\nconst block = cn('elements-dropdown');\n\nclass Dropdown extends Component {\n static propTypes = {\n button: PropTypes.oneOfType([PropTypes.element, PropTypes.object]).isRequired,\n className: PropTypes.string,\n popup: PropTypes.object,\n directions: PropTypes.array,\n trigger: PropTypes.oneOf(['click', 'hover']).isRequired,\n template: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({\n key: PropTypes.string.isRequired,\n data: PropTypes.object,\n }),\n ]).isRequired,\n zIndexGroupLevel: PropTypes.number,\n };\n\n static defaultProps = {\n zIndexGroupLevel: 1,\n directions: ['bottom-end', 'top-end'],\n };\n\n state = {\n popupVisible: false,\n };\n\n anchor = React.createRef();\n\n toggle = () =>\n this.setState((prevState) => ({\n popupVisible: !prevState.popupVisible,\n }));\n\n open = () => this.setState({popupVisible: true});\n\n close = () => this.setState({popupVisible: false});\n\n renderButton() {\n const {button, trigger} = this.props;\n\n const actionProps = {\n onClick: trigger === 'click' ? this.toggle : undefined,\n onMouseEnter: trigger === 'hover' ? this.open : undefined,\n onMouseLeave: trigger === 'hover' ? this.close : undefined,\n };\n\n return React.cloneElement(button, actionProps);\n }\n\n renderTemplate() {\n const {template} = this.props;\n const {key, data} = this.props.template;\n const renderer = templates.get(key).__default__;\n\n return React.isValidElement(template)\n ? React.cloneElement(template)\n : renderer.call(this, data);\n }\n\n renderPopup() {\n const {popup, directions} = this.props;\n\n return (\n <Popup\n placement={directions}\n onClose={this.close}\n open={true}\n anchorRef={this.anchor}\n hasArrow\n {...popup}\n >\n {this.renderTemplate()}\n </Popup>\n );\n }\n\n render() {\n const {className} = this.props;\n\n return (\n <span className={block(null, className)} ref={this.anchor}>\n {this.renderButton()}\n {this.state.popupVisible && this.renderPopup()}\n </span>\n );\n }\n}\n\nexport default Dropdown;\n","import React, {useCallback, useEffect} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../Icon/Icon';\n\nimport './EditableAsText.scss';\nimport Button, {ButtonProps} from '../Button/Button';\nconst block = cn('editable-as-text');\n\ninterface Props {\n className?: string;\n editorClassName?: string;\n\n text?: string;\n children: React.ReactNode;\n onChange: (v?: string) => void;\n disableEdit?: boolean;\n withControls?: boolean;\n cancelOnClose?: boolean;\n openOnClick?: boolean;\n size?: 's' | 'm' | 'l' | 'xl';\n saveButtonView?: ButtonProps['view'];\n cancelButtonView?: ButtonProps['view'];\n\n renderEditor?: (props: {\n value?: string;\n onBlur: () => void;\n onChange: (value?: string) => void;\n className?: string;\n onApply: (value?: string) => void;\n }) => React.ReactNode;\n onModeChange?: (isEdit: boolean) => void;\n}\n\nexport function EditableAsText(props: Props) {\n const {\n children,\n onChange,\n text,\n className,\n withControls,\n size,\n disableEdit,\n cancelOnClose,\n openOnClick,\n renderEditor,\n onModeChange,\n saveButtonView = 'normal',\n cancelButtonView = 'normal',\n } = props;\n const [editMode, setEditMode] = React.useState(false);\n const [input, setInput] = React.useState(text || '');\n\n useEffect(() => {\n setInput(text || '');\n }, [text]);\n\n const handleChangeMode = useCallback(\n (isEdit: boolean) => {\n if (onModeChange) onModeChange(isEdit);\n setEditMode(isEdit);\n },\n [onModeChange],\n );\n\n const closeEditMode = React.useCallback(() => {\n handleChangeMode(false);\n if (cancelOnClose) setInput(text || '');\n }, [cancelOnClose, handleChangeMode, text]);\n\n const startTextEdit = useCallback(() => {\n handleChangeMode(true);\n }, [handleChangeMode]);\n\n const handleWrapClick = () => {\n if (!editMode && openOnClick) {\n startTextEdit();\n }\n };\n\n const handleChange = React.useCallback((val?: string) => setInput(val ?? ''), [setInput]);\n\n const applyValue = useCallback(() => {\n handleChangeMode(false);\n onChange(input);\n }, [onChange, handleChangeMode, input]);\n\n const closeAndResetValue = useCallback(() => {\n handleChangeMode(false);\n setInput(text || '');\n }, [handleChangeMode, text]);\n\n const onApply = useCallback(\n (value?: string) => {\n handleChangeMode(false);\n onChange(value);\n },\n [handleChangeMode, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if (evt.key === 'Enter') {\n applyValue();\n }\n if (evt.key === 'Escape') {\n closeAndResetValue();\n }\n },\n [applyValue, closeAndResetValue],\n );\n\n const controlSize = size ? size : 'm';\n\n return (\n <div\n className={block(null, [className || '', editMode ? 'edit' : ''])}\n onClick={handleWrapClick}\n >\n {editMode ? (\n <>\n {renderEditor ? (\n renderEditor({\n value: input,\n onChange: handleChange,\n className: block('control'),\n onBlur: closeEditMode,\n onApply,\n })\n ) : (\n <TextInput\n className={block('control')}\n autoFocus\n size={controlSize}\n value={input}\n onUpdate={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={closeEditMode}\n />\n )}\n {withControls && (\n <>\n <Button\n className={block('control')}\n view={saveButtonView}\n extraProps={{onMouseDown: applyValue}}\n size={controlSize}\n >\n <Icon awesome={'check'} size={controlSize} />\n </Button>\n <Button\n className={block('control')}\n view={cancelButtonView}\n extraProps={{onMouseDown: closeAndResetValue}}\n size={controlSize}\n >\n <Icon awesome={'times'} size={controlSize} />\n </Button>\n </>\n )}\n </>\n ) : (\n <React.Fragment>\n {children}\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </React.Fragment>\n )}\n </div>\n );\n}\n\nexport function EditButton({\n onClick,\n size = 'm',\n}: {\n onClick: () => void;\n size?: ButtonProps['size'];\n}) {\n return (\n <Button className={block('edit-btn')} onClick={onClick} size={size}>\n <Icon awesome={'pencil'} />\n </Button>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport format from '../../common/hammer/format';\nimport Icon from '../../components/Icon/Icon';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {OrderType, nextSortOrderValue} from '../../utils/sort-helpers';\n\nimport './SortIcon.scss';\n\nconst block = cn('sort-icon');\n\nconst ICON_BY_TYPE = {\n ['']: 'sort',\n asc: 'sort-up',\n desc: 'sort-down',\n 'asc-undefined': 'arrow-to-bottom',\n 'desc-undefined': 'arrow-from-bottom',\n 'undefined-asc': 'arrow-from-top',\n 'undefined-desc': 'arrow-to-top',\n} as const;\n\ninterface Props {\n className?: string;\n label?: string;\n onChange?: (nextOrder: OrderType) => void;\n order?: OrderType;\n hidden?: boolean;\n allowUnordered?: boolean;\n withUndefined?: boolean;\n}\n\nexport default class SortIcon extends React.Component<Props> {\n onClick = () => {\n const {order, onChange, allowUnordered, withUndefined} = this.props;\n if (!onChange) {\n return;\n }\n\n const nextOrder = nextSortOrderValue(order, allowUnordered, withUndefined);\n onChange(nextOrder);\n };\n\n render() {\n const {className, label, order, hidden} = this.props;\n const icon = ICON_BY_TYPE[order || ''];\n\n return (\n <span className={block({hidden}, className)} onClick={this.onClick}>\n {label && <span className={block('label')}>{label}</span>}\n <Tooltip\n className={block('icon')}\n content={order ? format.ReadableField(order) : 'Unordered'}\n >\n <Icon awesome={icon} face=\"solid\" />\n </Tooltip>\n </span>\n );\n }\n}\n","import React from 'react';\nimport unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n","import type {RootState} from '../../reducers';\n\nexport const selectCellPreviewVisible = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.visible;\nexport const selectCellPreviewLoading = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.loading;\nexport const selectCellPreviewData = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.data;\nexport const selectCellPreviewYtCliDownloadCommand = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.ytCliDownloadCommand;\nexport const selectCellPreviewNoticeText = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.noticeText;\nexport const selectErrorPreviewCellPath = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.error;\n","import React from 'react';\n\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Flex, Text} from '@gravity-ui/uikit';\n\nimport SimpleModal from '../../components/Modal/SimpleModal';\nimport {\n selectCellPreviewData,\n selectCellPreviewLoading,\n selectCellPreviewNoticeText,\n selectCellPreviewVisible,\n selectCellPreviewYtCliDownloadCommand,\n selectErrorPreviewCellPath,\n} from '../../store/selectors/modals/cell-preview';\n\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport block from 'bem-cn-lite';\n\nimport Yson from '../../components/Yson/Yson';\nimport Error from '../../components/Error/Error';\nimport {type YsonSettings, getPreviewCellYsonSettings} from '../../store/selectors/thor/unipika';\nimport {closeCellPreviewAndCancelRequest} from '../../store/actions/modals/cell-preview';\n\nimport './CellPreviewModal.scss';\n\nconst b = block('cell-preview-modal');\n\nexport const CellPreviewModal: React.FC = () => {\n const dispatch = useDispatch();\n\n const loading = useSelector(selectCellPreviewLoading);\n const data = useSelector(selectCellPreviewData);\n const visible = useSelector(selectCellPreviewVisible);\n const ytCliDownloadCommand = useSelector(selectCellPreviewYtCliDownloadCommand);\n const noticeText = useSelector(selectCellPreviewNoticeText);\n const error = useSelector(selectErrorPreviewCellPath);\n\n const unipikaSettings = useSelector(getPreviewCellYsonSettings);\n\n return (\n <SimpleModal\n title=\"Preview\"\n visible={visible}\n loading={loading}\n onCancel={() => dispatch(closeCellPreviewAndCancelRequest())}\n wrapperClassName={b('wrapper')}\n >\n <Flex\n qa=\"cell-preview-modal-content\"\n className={b('content')}\n gap={2}\n direction=\"column\"\n >\n <Flex gap={2} direction=\"column\">\n <Text variant=\"subheader-3\" color=\"secondary\">\n {noticeText}\n </Text>\n {ytCliDownloadCommand ? (\n <code className={b('command-wrapper')}>\n <div className={b('command')}>\n <div\n data-qa=\"cell-preview-command\"\n className={b('command-content')}\n title={ytCliDownloadCommand}\n >\n {ytCliDownloadCommand}\n </div>\n <ClipboardButton\n view={'flat-secondary'}\n text={ytCliDownloadCommand}\n size={'s'}\n />\n </div>\n </code>\n ) : null}\n </Flex>\n {error ? (\n <Error error={error} />\n ) : (\n <PreviewContent data={data} unipikaSettings={unipikaSettings} />\n )}\n </Flex>\n </SimpleModal>\n );\n};\n\ntype PreviewContentProps = {\n data: {$type: string; $value: any} | undefined;\n unipikaSettings: YsonSettings;\n};\n\nfunction PreviewContent(props: PreviewContentProps) {\n const {data, unipikaSettings} = props;\n\n switch (data?.$type) {\n case 'yql.string':\n case 'yql.json':\n return <pre className=\"elements-code\">{data.$value}</pre>;\n default:\n return (\n <Yson\n className={b('yson-container')}\n folding={true}\n value={data?.$value}\n tableSettings={{dynamicRenderScrollParentGetter: undefined}}\n settings={unipikaSettings}\n customLayout={({toolbar, content}) => {\n return (\n <>\n <div className={b('toolbar')}>{toolbar}</div>\n {content}\n </>\n );\n }}\n />\n );\n }\n}\n","import React, {FC} from 'react';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport cn from 'bem-cn-lite';\nimport './QueryClusterItem.scss';\nimport {Text} from '@gravity-ui/uikit';\nimport ClusterIcon from '../../../../components/ClusterIcon/ClusterIcon';\nimport {useClusterColorClassName} from '../../../../containers/ClusterPageHeader/ClusterColor';\n\nconst block = cn('query-cluster-item');\nconst IconBlock = cn('query-cluster-icon');\n\ntype Props = Pick<ClusterConfig, 'id' | 'name' | 'environment'> & {className?: string};\n\nexport const QueryClusterItem: FC<Props> = ({id, name, environment, className}) => {\n const clusterColorClassName = useClusterColorClassName(id);\n\n return (\n <div className={block(null, className)}>\n <ClusterIcon name={name} className={IconBlock(null, clusterColorClassName)} />\n <div className={block('info')}>\n {name}\n <Text color=\"secondary\" className={block('environment')}>\n {environment}\n </Text>\n </div>\n </div>\n );\n};\n","import {useCallback, useEffect} from 'react';\n\nexport const usePreventUnload = ({shouldListen}: {shouldListen: boolean}) => {\n const beforeUnloadHandler = useCallback((e: BeforeUnloadEvent) => {\n e.preventDefault();\n\n // Included for legacy support, e.g. Chrome/Edge < 119\n e.returnValue = true;\n }, []);\n\n useEffect(() => {\n if (shouldListen) {\n window.addEventListener('beforeunload', beforeUnloadHandler);\n }\n\n return () => window.removeEventListener('beforeunload', beforeUnloadHandler);\n }, [shouldListen]);\n};\n","import {createSelector} from 'reselect';\nimport {getSettingsData} from '../../../../store/selectors/settings-base';\n\nexport const getSettingQueryTrackerQueriesListSidebarVisibilityMode = createSelector(\n getSettingsData,\n (settings) => Boolean(settings['global::queryTracker::queriesListSidebarVisibilityMode']),\n);\n","import {useCallback} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueryItem} from '../../module/api';\nimport {\n getQueriesList,\n getQueriesListCursor,\n hasQueriesListMore,\n isQueriesListLoading,\n} from '../../module/queries_list/selectors';\nimport {loadNextQueriesList, resetCursor} from '../../module/queries_list/actions';\nimport {setSettingByKey} from '../../../../store/actions/settings';\nimport {getSettingQueryTrackerQueriesListSidebarVisibilityMode} from '../../module/settings/selector';\nimport {QueriesHistoryCursorDirection} from '../../../../pages/query-tracker/module/query-tracker-contants';\n\nexport function useQueryList(): [QueryItem[], boolean] {\n const items = useSelector(getQueriesList);\n const isLoading = useSelector(isQueriesListLoading);\n\n return [items, isLoading];\n}\n\nexport const useQueriesPagination = () => {\n const dispatch = useDispatch();\n const cursor = useSelector(getQueriesListCursor);\n const hasNext = useSelector(hasQueriesListMore);\n\n const goNext = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.PAST));\n }, [dispatch]);\n\n const goBack = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.FUTURE));\n }, [dispatch]);\n\n const reset = useCallback(() => {\n dispatch(resetCursor());\n }, [dispatch]);\n\n return {\n first: !cursor?.cursorTime,\n last: !hasNext,\n currentCursorTime: cursor?.cursorTime,\n goNext,\n goBack,\n goFirst: reset,\n };\n};\n\nexport const useQueriesListSidebarToggle = () => {\n const dispatch = useDispatch();\n const isQueriesListSidebarVisible = useSelector(\n getSettingQueryTrackerQueriesListSidebarVisibilityMode,\n );\n\n const toggleQueriesListSideBarToggle = () => {\n dispatch(\n setSettingByKey<boolean>(\n 'global::queryTracker::queriesListSidebarVisibilityMode',\n !isQueriesListSidebarVisible,\n ),\n );\n };\n\n return {\n isQueriesListSidebarVisible,\n toggleQueriesListSideBarToggle,\n };\n};\n","import {useDispatch, useSelector} from 'react-redux';\nimport {useCallback} from 'react';\nimport {applyFilter} from '../../module/queries_list/actions';\nimport {getQueriesListFilter, getQueriesListMode} from '../../module/queries_list/selectors';\nimport {QueriesListFilter, QueriesListMode} from '../../module/queries_list/types';\n\nexport const useQuriesHistoryFilter = (): [\n QueriesListFilter,\n QueriesListMode,\n <K extends keyof QueriesListFilter>(filter: K, value: QueriesListFilter[K]) => void,\n] => {\n const filter = useSelector(getQueriesListFilter);\n const filterPreset = useSelector(getQueriesListMode);\n const dispatch = useDispatch();\n const setFilter = useCallback(\n function setFilter<K extends keyof QueriesListFilter>(\n name: K,\n value: QueriesListFilter[K],\n ) {\n dispatch(\n applyFilter({\n [name]: value,\n }),\n );\n },\n [dispatch],\n );\n return [filter, filterPreset, setFilter];\n};\n","import {useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport {useHistory} from 'react-router';\nimport {createQueryUrl} from '../../utils/navigation';\nimport {QueryItem} from '../../module/api';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getQuery} from '../../module/query/selectors';\n\nexport const useQueryNavigation = (): [QueryItem['id'] | undefined, (id: QueryItem) => void] => {\n const selectedItem = useSelector(getQuery);\n const cluster = useSelector(getCluster);\n const history = useHistory();\n\n const goToQuery = useCallback(\n (item: QueryItem) => {\n history.push(createQueryUrl(cluster, item.id));\n },\n [history],\n );\n\n return [selectedItem?.id, goToQuery];\n};\n","import React, {useMemo, useState} from 'react';\nimport {YTDFDialog, makeErrorFields} from '../../../../components/Dialog';\nimport Button from '../../../../components/Button/Button';\nimport Icon from '../../../../components/Icon/Icon';\n\nimport {QueryItem, setQueryName} from '../../module/api';\nimport {useThunkDispatch} from '../../../../store/thunkDispatch';\n\nexport interface Props {\n query: QueryItem;\n className?: string;\n}\n\ninterface FormValues {\n name: string;\n}\n\nexport default function EditQueryNameModal({query, className}: Props) {\n const [error, setError] = useState(undefined);\n const [visible, setVisible] = useState(false);\n const {state} = query;\n\n const dispatch = useThunkDispatch();\n\n const initialValues = useMemo(() => {\n return {\n name: query.annotations?.title || '',\n };\n }, [query.annotations?.title]);\n\n const handleSubmit = (name: string) => {\n return dispatch(setQueryName(query.id, {...query.annotations, title: name}));\n };\n\n return state === 'completed' || state === 'failed' || state === 'draft' ? (\n <div\n className={className}\n onClick={(event) => {\n event.stopPropagation();\n }}\n onKeyDown={(event) => {\n event.stopPropagation();\n }}\n >\n <Button\n onClick={() => {\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={(form) => {\n const {name} = form.getState().values;\n return handleSubmit(name).catch((err) => {\n setError(err);\n throw err;\n });\n }}\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 {useDispatch, useSelector} from 'react-redux';\nimport intersectionBy_ from 'lodash/intersectionBy';\nimport {QueriesListAuthorFilter} from '../../module/queries_list/types';\nimport {AllColumns, AuthorColumns, MyColumns, NameColumns} from './index';\nimport {setSettingByKey} from '../../../../store/actions/settings';\nimport {getQueryListHistoryColumns} from '../../module/queries_list/selectors';\n\nexport const useQueryHistoryListColumns = ({type}: {type?: QueriesListAuthorFilter}) => {\n const dispatch = useDispatch();\n const selectedColumns = useSelector(getQueryListHistoryColumns);\n\n const handleColumnChange = (selectedColumns: {\n items: Array<{checked: boolean; name: string}>;\n }) => {\n dispatch(\n setSettingByKey(\n `global::queryTracker::history::Columns`,\n selectedColumns.items.filter(({checked}) => checked).map(({name}) => name),\n ),\n );\n };\n\n return React.useMemo(() => {\n const ALL_COLUMN_NAMES = intersectionBy_(AllColumns, MyColumns, 'name').map(\n (item) => item.name,\n );\n const EXCLUDED_COLUMNS = [NameColumns.name, AuthorColumns.name];\n const currentColumnsPreset = type === 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\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 handleColumnChange,\n };\n }, [type, selectedColumns]);\n};\n","import moment from 'moment';\nimport groupBy_ from 'lodash/groupBy';\nimport noop_ from 'lodash/noop';\nimport {Text} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport React, {useCallback, useContext, useEffect, useMemo, useRef} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport DataTable, {Column, Settings} from '@gravity-ui/react-data-table';\nimport {QueryItem, QueryStatus} from '../../module/api';\nimport {refreshQueriesListIfNeeded} from '../../module/queries_list/actions';\nimport {getQueriesListTimestamp, getUncompletedItems} from '../../module/queries_list/selectors';\nimport {QueryStatusIcon} from '../../QueryStatus';\nimport hammer from '../../../../common/hammer';\n\nimport Pagination from '../../../../components/Pagination/Pagination';\nimport {QueriesPoolingContext} from '../../hooks/QueriesPooling/context';\nimport {formatTime} from '../../../../components/common/Timeline/util';\nimport {QueryEnginesNames} from '../../utils/query';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\nimport {useQuriesHistoryFilter} from '../../hooks/QueryListFilter';\nimport {QueryDuration} from '../../QueryDuration';\nimport {useQueryNavigation} from '../../hooks/Query';\nimport {useQueriesPagination, useQueryList} from '../../hooks/QueriesList';\nimport EditQueryNameModal from '../EditQueryNameModal/EditQueryNameModal';\nimport {UPDATE_QUERIES_LIST} from '../../module/query-tracker-contants';\nimport {useQueryHistoryListColumns} from './useQueryListColumns';\n\nimport './index.scss';\n\nconst b = block('queries-history-list');\n\nconst itemBlock = block('query-history-item');\n\nfunction useQueriesHistoryUpdate() {\n const pollingContext = useContext(QueriesPoolingContext);\n const uncompletedItems = useSelector(getUncompletedItems);\n const dispatch = useDispatch();\n\n const queryListUpdateHandler = useMemo(\n () => (items: QueryItem[]) => {\n dispatch({\n type: UPDATE_QUERIES_LIST,\n data: items,\n });\n },\n [dispatch],\n );\n\n useEffect(\n function pollingEffect() {\n if (!uncompletedItems?.length) {\n return;\n }\n pollingContext.watch(uncompletedItems, queryListUpdateHandler);\n },\n [pollingContext, queryListUpdateHandler, uncompletedItems],\n );\n}\n\nfunction useRefreshHistoryList(timeout = 5000) {\n // Naive history list's polling impl\n const dispatch = useDispatch();\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n function start() {\n timer = setTimeout(() => {\n dispatch(refreshQueriesListIfNeeded(start));\n }, timeout);\n }\n\n start();\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [timeout, dispatch]);\n}\n\nfunction useQueryHistoryList() {\n useRefreshHistoryList();\n useQueriesHistoryUpdate();\n return useQueryList();\n}\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 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 <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];\nexport const AllColumns: Column<TableItem>[] = [\n NameColumns,\n TypeColumns,\n DurationColumns,\n AuthorColumns,\n StartedColumns,\n ACOColumns,\n];\n\nconst tableSettings: Settings = {\n displayIndices: false,\n sortable: false,\n stickyHead: DataTable.MOVING,\n syncHeadOnResize: true,\n};\n\nexport function QueriesHistoryList() {\n const [items, isLoading] = useQueryHistoryList();\n const [filter] = useQuriesHistoryFilter();\n const {columns} = useQueryHistoryListColumns({type: filter.user});\n const timestamp = useSelector(getQueriesListTimestamp);\n const {first, last, goBack, goNext, goFirst} = useQueriesPagination();\n const [selectedId, goToQuery] = useQueryNavigation();\n const scrollElemRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (scrollElemRef?.current) {\n scrollElemRef.current.scrollTop = 0;\n }\n }, [scrollElemRef, timestamp]);\n\n const setClassName = useCallback(\n (item: TableItem) => {\n if (isHeaderTableItem(item)) {\n return itemBlock({\n header: Boolean(item.header),\n });\n }\n\n return itemBlock({\n selected: item.id === selectedId,\n });\n },\n [selectedId],\n );\n\n const itemsByDate = useMemo(\n () =>\n Object.entries(\n groupBy_(items, (item) => moment(item.start_time).format('DD MMMM YYYY')),\n ).reduce((ret, [header, items]) => {\n ret.push({\n header,\n });\n\n return ret.concat(items.map((item) => item));\n }, [] as Array<TableItem>),\n [items],\n );\n\n return (\n <div className={b()}>\n <div className={b('list-wrapper')} ref={scrollElemRef}>\n <DataTableYT\n className={b('list')}\n loading={isLoading}\n columns={columns}\n data={itemsByDate}\n useThemeYT={true}\n rowKey={(row) => {\n if (isHeaderTableItem(row)) {\n return row.header;\n }\n\n return row.id;\n }}\n onRowClick={(item) => {\n if (!isHeaderTableItem(item)) {\n goToQuery(item);\n }\n }}\n disableRightGap={true}\n settings={tableSettings}\n rowClassName={setClassName}\n getColSpansOfRow={({row}) => {\n if (isHeaderTableItem(row)) {\n return {\n Name: columns.length,\n };\n }\n\n return undefined;\n }}\n />\n <div className={b('pagination')}>\n {(!first || !last) && (\n <Pagination\n size=\"m\"\n first={{\n handler: goFirst,\n disabled: first,\n }}\n previous={{\n handler: goBack,\n disabled: first,\n }}\n next={{\n handler: goNext,\n disabled: last,\n }}\n last={{\n handler: noop_,\n disabled: true,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n","const SvgLearn = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 14\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M6.836 2.202 1.74 4.386a.396.396 0 0 0 0 .728l5.096 2.184a2.5 2.5 0 0 0 .985.202h.358a2.5 2.5 0 0 0 .985-.202l5.096-2.184a.396.396 0 0 0 0-.728L9.164 2.202A2.5 2.5 0 0 0 8.179 2h-.358a2.5 2.5 0 0 0-.985.202M1.5 6.642l1.5.644v3.228a2 2 0 0 0 1.106 1.789l.806.403a7 7 0 0 0 6.193.033l.909-.442a2 2 0 0 0 1.125-1.798V7.226l1.712-.734a1.896 1.896 0 0 0 0-3.484L9.755.823A4 4 0 0 0 8.179.5h-.358a4 4 0 0 0-1.576.323L1.15 3.008A1.9 1.9 0 0 0 0 4.75v4.5a.75.75 0 0 0 1.5 0zm3 3.872V7.929l1.745.748A4 4 0 0 0 7.821 9h.358a4 4 0 0 0 1.576-.323l1.884-.808v2.63a.5.5 0 0 1-.282.45l-.909.442a5.5 5.5 0 0 1-4.865-.027l-.807-.403a.5.5 0 0 1-.276-.447\" clipRule=\"evenodd\" /></svg>;\nexport default SvgLearn;","import React, {useMemo} from 'react';\nimport cn from 'bem-cn-lite';\nimport {Icon, List, ListItemData, Loader, Text} from '@gravity-ui/uikit';\nimport {QueryItem} from '../../module/api';\nimport {useQueryList} from '../../hooks/QueriesList';\nimport {useQueryNavigation} from '../../hooks/Query';\nimport tutorialIcon from '../../../../assets/img/svg/learn.svg';\nimport './index.scss';\n\nconst itemCn = cn('query-tutorial-item');\nconst block = cn('queries-tutorial-list');\n\nfunction renderItem(item: QueryItem) {\n return (\n <>\n <Icon className={itemCn('icon')} data={tutorialIcon} />\n <Text className={itemCn('text')} ellipsis title={item?.annotations?.title}>\n {item?.annotations?.title || 'No name'}\n </Text>\n </>\n );\n}\n\nexport function QueriesTutorialList({className}: {className: string}) {\n const [items, isLoading] = useQueryList();\n\n const [selectedId, goToQuery] = useQueryNavigation();\n\n const selectedIndex = useMemo(() => {\n return items.findIndex((query) => query.id === selectedId);\n }, [selectedId, items]);\n\n const tutorialFilter = useMemo(() => {\n return (filter: string) => {\n return (item: ListItemData<QueryItem>) => {\n return (\n item?.annotations?.title\n ?.toLocaleLowerCase()\n .includes(filter.toLocaleLowerCase()) || false\n );\n };\n };\n }, []);\n\n return (\n <div className={block(null, className)}>\n <List\n className={block('list', {loading: isLoading})}\n filterable={true}\n filterClassName={block('filter')}\n filterPlaceholder={'Filter by name'}\n filterItem={tutorialFilter}\n virtualized={false}\n selectedItemIndex={selectedIndex}\n sortable={false}\n itemHeight={32}\n itemClassName={itemCn()}\n items={isLoading ? [] : items}\n renderItem={renderItem}\n onItemClick={goToQuery}\n />\n {isLoading && (\n <div className={block('loader')}>\n <Loader size=\"l\" />\n </div>\n )}\n </div>\n );\n}\n","import React, {useCallback, useMemo} from 'react';\nimport {ControlGroupOption, RadioButton} from '@gravity-ui/uikit';\nimport {Engines} from '../../module/api';\nimport {QueryEngine} from '../../module/engines';\nimport {QueryEnginesNames} from '../../utils/query';\n\nconst ALL_ENGINE_KEY = '__all';\n\nexport function QueryEngineFilter({\n value,\n onChange,\n className,\n engines = Engines,\n}: {\n engines?: QueryEngine[];\n value?: QueryEngine;\n className?: string;\n onChange: (value?: QueryEngine) => void;\n}) {\n const enginesList = useMemo<ControlGroupOption[]>(() => {\n return [\n {\n value: ALL_ENGINE_KEY,\n content: 'All',\n },\n ...engines.map((engine) => {\n return {\n value: engine,\n content: QueryEnginesNames[engine],\n };\n }),\n ];\n }, [engines]);\n\n const onChangeEngineFilter = useCallback(\n (engine: string) => {\n onChange(engine === ALL_ENGINE_KEY ? undefined : (engine as QueryEngine));\n },\n [onChange],\n );\n return (\n <RadioButton\n className={className}\n options={enginesList}\n value={value || ALL_ENGINE_KEY}\n onUpdate={onChangeEngineFilter}\n />\n );\n}\n","import {TextInput} from '@gravity-ui/uikit';\nimport debounce_ from 'lodash/debounce';\nimport React, {useEffect, useMemo, useState} from 'react';\n\nexport type QueryTextFilterProps = {\n value?: string;\n placeholder: string;\n onChange: (value?: string) => void;\n delay?: number;\n};\n\nexport function QueryTextFilter({value, placeholder, onChange, delay = 200}: QueryTextFilterProps) {\n const [pattern, setPattern] = useState<string>(value || '');\n\n const debouncedChange = useMemo(() => {\n return debounce_((value: string) => {\n onChange(value);\n }, delay);\n }, [onChange, delay]);\n\n useEffect(() => {\n debouncedChange(pattern);\n return () => {\n debouncedChange.cancel();\n };\n }, [pattern, debouncedChange]);\n\n return (\n <TextInput\n placeholder={placeholder}\n value={pattern}\n onBlur={() => debouncedChange.flush()}\n onUpdate={setPattern}\n />\n );\n}\n","import React, {useCallback} from 'react';\nimport block from 'bem-cn-lite';\nimport {ControlGroupOption, Icon as GravityIcon, RadioButton, Tooltip} from '@gravity-ui/uikit';\nimport {QueriesListAuthorFilter, QueriesListMode} from '../../module/queries_list/types';\nimport CircleQuestionIcon from '@gravity-ui/icons/svgs/circle-question.svg';\n\nimport './index.scss';\nimport {QueryEngineFilter} from './QueryEngineFilter';\nimport {QueryEngine} from '../../module/engines';\nimport {QueryTextFilter} from './QueryTextFilter';\nimport {useQuriesHistoryFilter} from '../../hooks/QueryListFilter';\nimport Dropdown from '../../../../components/Dropdown/Dropdown';\nimport Button from '../../../../components/Button/Button';\nimport Icon from '../../../../components/Icon/Icon';\nimport ColumnSelector from '../../../../components/ColumnSelector/ColumnSelector';\nimport {useQueryHistoryListColumns} from '../QueriesHistoryList/useQueryListColumns';\n\nconst AuthorFilter: ControlGroupOption[] = [\n {\n value: QueriesListAuthorFilter.My,\n content: 'My',\n },\n {\n value: QueriesListAuthorFilter.All,\n content: 'All',\n },\n];\n\nconst b = block('queries-history-filter');\n\ntype QueriesHistoryListFilterProps = {\n className?: string;\n};\n\nexport function QueriesHistoryListFilter({className}: QueriesHistoryListFilterProps) {\n const [filter, filterViewMode, onChange] = useQuriesHistoryFilter();\n const {allowedColumns, handleColumnChange} = useQueryHistoryListColumns({type: filter.user});\n\n const onChangeAuthorFilter = useCallback(\n (user: string) => {\n onChange('user', user as QueriesListAuthorFilter);\n },\n [onChange],\n );\n const onChangeEngineFilter = useCallback(\n (engine?: QueryEngine) => {\n onChange('engine', engine);\n },\n [onChange],\n );\n const onChangeTextFilter = useCallback(\n (text?: string) => {\n onChange('filter', text || undefined);\n },\n [onChange],\n );\n return (\n <div className={b(null, className)}>\n <div className={b('row')}>\n {filterViewMode === QueriesListMode.History && (\n <RadioButton\n options={AuthorFilter}\n value={filter?.user || QueriesListAuthorFilter.My}\n onUpdate={onChangeAuthorFilter}\n />\n )}\n <QueryEngineFilter value={filter?.engine} onChange={onChangeEngineFilter} />\n </div>\n {filterViewMode === QueriesListMode.History && (\n <div className={b('row')}>\n <QueryTextFilter\n placeholder=\"Search in query name, body and access control\"\n value={filter?.filter}\n onChange={onChangeTextFilter}\n />\n <Tooltip\n content={\n <>\n Search in query text, annotations and access control\n <br />\n Use `&quot;title&quot;=&quot;test_name&quot;` to search in query\n name\n <br />\n Use `aco:nobody` to search in query access control\n </>\n }\n >\n <GravityIcon data={CircleQuestionIcon} size={16} />\n </Tooltip>\n <Dropdown\n trigger=\"click\"\n directions={['bottom']}\n button={\n <Button pin={'round-round'} className={b('columns-button')}>\n <Icon awesome=\"table\" face=\"light\" />\n </Button>\n }\n template={\n <ColumnSelector items={allowedColumns} onChange={handleColumnChange} />\n }\n />\n </div>\n )}\n </div>\n );\n}\n","import {lazy} from 'react';\nimport withLazyLoading from '../../../hocs/withLazyLoading';\n\nfunction importVcs() {\n return import(/* webpackChunkName: \"vcs\" */ './Vcs');\n}\n\nexport const Vcs = withLazyLoading(\n lazy(async () => {\n return {default: (await importVcs()).Vcs};\n }),\n);\n","import {lazy} from 'react';\nimport withLazyLoading from '../../../hocs/withLazyLoading';\n\nfunction importVcs() {\n return import(/* webpackChunkName: \"query-navigation\" */ './Navigation');\n}\n\nexport const Navigation = withLazyLoading(\n lazy(async () => {\n return {default: (await importVcs()).Navigation};\n }),\n);\n","import React, {useCallback, useEffect, useMemo} from 'react';\nimport block from 'bem-cn-lite';\nimport {Tabs, TabsItemProps} from '@gravity-ui/uikit';\nimport {QueriesHistoryList} from './QueriesHistoryList';\n\nimport {getQueriesListMode} from '../module/queries_list/selectors';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueriesListMode, getQueriesListModes} from '../module/queries_list/types';\nimport {applyListMode, requestQueriesList} from '../module/queries_list/actions';\n\nimport './index.scss';\nimport {QueriesTutorialList} from './QueriesTutorialList';\nimport {QueriesHistoryListFilter} from './QueriesListFilter';\nimport {Vcs} from '../Vcs';\nimport {Navigation} from '../Navigation';\nimport {selectIsVcsVisible} from '../module/vcs/selectors';\n\nconst b = block('queires-list');\n\nconst TabNames = {\n [QueriesListMode.History]: 'History',\n [QueriesListMode.Tutorials]: 'Tutorials',\n [QueriesListMode.VCS]: 'VCS',\n [QueriesListMode.Navigation]: 'Navigation',\n};\n\nconst useQueryTabs = (): [TabsItemProps[], string, (tab: string) => void] => {\n const dispatch = useDispatch();\n const selectedTab = useSelector(getQueriesListMode);\n const isVcsVisible = useSelector(selectIsVcsVisible);\n const setTab = useCallback(\n (tab: string) => {\n dispatch(applyListMode(tab as QueriesListMode));\n },\n [dispatch],\n );\n\n const tabOptions = useMemo<TabsItemProps[]>(() => {\n return getQueriesListModes({vcs: isVcsVisible}).map((tab) => {\n return {\n id: tab as unknown as string,\n title: TabNames[tab],\n };\n });\n }, [isVcsVisible]);\n return [tabOptions, (selectedTab || QueriesListMode.History).toString(), setTab];\n};\n\nexport function QueriesList() {\n const [tabs, tab, setTab] = useQueryTabs();\n\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(requestQueriesList());\n }, [dispatch]);\n\n const isVsc = tab === QueriesListMode.VCS;\n\n if (tab === QueriesListMode.Navigation)\n return (\n <div className={b()}>\n <Tabs className={b('tabs')} items={tabs} activeTab={tab} onSelectTab={setTab} />\n <div className={b('content')}>\n <Navigation />\n </div>\n </div>\n );\n\n return (\n <div className={b()}>\n <Tabs className={b('tabs')} items={tabs} activeTab={tab} onSelectTab={setTab} />\n <div className={b('content')}>\n {!isVsc && <QueriesHistoryListFilter className={b('filter')} />}\n\n {tab === QueriesListMode.History && <QueriesHistoryList />}\n {tab === QueriesListMode.Tutorials && (\n <QueriesTutorialList className={b('list-content')} />\n )}\n {isVsc && <Vcs />}\n </div>\n </div>\n );\n}\n","const SvgLayoutColumns = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M8.75 3.5H12A1.5 1.5 0 0 1 13.5 5v6a1.5 1.5 0 0 1-1.5 1.5H8.75zm-1.5 0H4A1.5 1.5 0 0 0 2.5 5v6A1.5 1.5 0 0 0 4 12.5h3.25zM1 5a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgLayoutColumns;","import React, {FC, useRef} from 'react';\nimport {setFileEditor} from '../module/queryFilesForm/queryFilesFormSlice';\nimport {selectFileEditorConfig} from '../module/queryFilesForm/selectors';\nimport {changeQueryFile} from '../module/queryFilesForm/actions';\nimport {useDispatch, useSelector} from 'react-redux';\nimport FileIcon from '@gravity-ui/icons/svgs/file.svg';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\nimport SquareIcon from '@gravity-ui/icons/svgs/square.svg';\nimport LayoutColumnsIcon from '@gravity-ui/icons/svgs/layout-columns.svg';\nimport {Button, Icon, Text} from '@gravity-ui/uikit';\nimport './FileEditor.scss';\nimport cn from 'bem-cn-lite';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor';\nimport * as monaco from 'monaco-editor';\n\nconst block = cn('file-editor');\n\nconst MONACO_CONFIG: MonacoEditorConfig = {\n fontSize: 14,\n language: 'plaintext',\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n};\n\nexport const FileEditor: FC = () => {\n const dispatch = useDispatch();\n const {fileEditor, file} = useSelector(selectFileEditorConfig);\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n const handleOnChange = (content: string) => {\n if (!file) return;\n dispatch(changeQueryFile({...file, content}));\n };\n\n const handleOnClose = () => {\n dispatch(setFileEditor({...fileEditor, isOpen: false, isFullWidth: false}));\n };\n\n const handleOnWidthToggle = () => {\n dispatch(setFileEditor({...fileEditor, isFullWidth: !fileEditor.isFullWidth}));\n };\n\n if (!file) return null;\n\n return (\n <div className={block()}>\n <div className={block('header')}>\n <div className={block('header-side')}>\n <Icon data={FileIcon} size={16} />\n <Text variant=\"subheader-1\" ellipsis>\n {file.name}\n </Text>\n </div>\n <div className={block('header-side')}>\n <Button view=\"flat\" onClick={handleOnWidthToggle}>\n <Icon\n data={fileEditor.isFullWidth ? LayoutColumnsIcon : SquareIcon}\n size={16}\n />\n </Button>\n <Button view=\"flat\" onClick={handleOnClose}>\n <Icon data={XmarkIcon} size={16} />\n </Button>\n </div>\n </div>\n <MonacoEditor\n className={block('editor')}\n editorRef={editorRef}\n value={file.content || ''}\n language=\"plaintext\"\n onChange={handleOnChange}\n monacoConfig={MONACO_CONFIG}\n />\n </div>\n );\n};\n","import React, {FC, useState} from 'react';\nimport QueryEditor from '../QueryEditor/QueryEditor';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {FileEditor} from '../FileEditor';\n\nconst EDITOR_INITIAL_SIZE = [50, 50];\n\ntype Props = {\n fileEditorFullWidth: boolean;\n fileEditorVisible: boolean;\n onStartQuery: (queryId: string) => void;\n};\n\nexport const QueryEditorSplit: FC<Props> = ({\n fileEditorFullWidth,\n fileEditorVisible,\n onStartQuery,\n}) => {\n const [sizes, setSize] = useState(EDITOR_INITIAL_SIZE);\n const hideQueryEditor = !(fileEditorVisible && fileEditorFullWidth);\n\n return (\n <FlexSplitPane\n direction={FlexSplitPane.HORIZONTAL}\n onResizeEnd={setSize}\n getInitialSizes={sizes}\n >\n {hideQueryEditor && <QueryEditor onStartQuery={onStartQuery} showStatusInTitle />}\n {fileEditorVisible && <FileEditor />}\n </FlexSplitPane>\n );\n};\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Route, Switch} from 'react-router';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueriesPooling} from '../hooks/QueriesPooling/context';\nimport {isEngine} from '../module/api';\nimport {QueryEngine} from '../module/engines';\nimport {\n createEmptyQuery,\n createQueryFromTablePath,\n goToQuery,\n loadQuery,\n} from '../module/query/actions';\nimport {usePreventUnload} from '../../../hooks/use-prevent-unload';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\nimport {getDirtySinceLastSubmit, getQueryGetParams} from '../module/query/selectors';\nimport {QueriesList} from '../QueriesList';\nimport {useQueryACO} from '../QueryACO/useQueryACO';\nimport {MonacoContext} from '../context/MonacoContext';\n\nimport cn from 'bem-cn-lite';\n\nimport './QueryTracker.scss';\nimport {QueryEditorSplit} from './QueryEditorSplit';\nimport {selectFileEditor} from '../module/queryFilesForm/selectors';\nimport {selectNavigationCluster} from '../module/queryNavigation/selectors';\nimport {setSettingByKey} from '../../../store/actions/settings';\nimport {CellPreviewModal} from '../../../containers/CellPreviewModal/CellPreviewModal';\nimport {SET_QUERY_PARAMS} from '../module/query-tracker-contants';\n\nconst b = cn('query-tracker-page');\n\ntype Props = {\n match: {\n path: string;\n params: {\n queryId?: string;\n };\n };\n location: {\n search: string;\n };\n};\n\nconst initialSizes = [23, 77];\nconst minSize = 380; // see history list's cells size\n\nfunction QueryPageDraft() {\n const dispatch = useDispatch();\n const routeParams = useSelector(getQueryGetParams);\n const cluster = useSelector(selectNavigationCluster);\n\n useEffect(() => {\n const engine =\n routeParams.engine && isEngine(routeParams.engine)\n ? (routeParams.engine as QueryEngine)\n : QueryEngine.YQL;\n if (routeParams.cluster && routeParams.path) {\n if (routeParams.useDraft) {\n dispatch({\n type: SET_QUERY_PARAMS,\n data: {\n params: {\n ...routeParams,\n useDraft: undefined,\n },\n },\n });\n }\n dispatch(\n createQueryFromTablePath(engine, routeParams.cluster, routeParams.path, {\n useDraft: true,\n }),\n );\n } else {\n dispatch(createEmptyQuery(engine));\n }\n if (cluster) {\n dispatch(\n setSettingByKey<boolean>(\n 'global::queryTracker::queriesListSidebarVisibilityMode',\n true,\n ),\n );\n }\n }, [dispatch]);\n return null;\n}\n\nfunction QueryPage(props: Props) {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({\n type: SET_QUERY_PARAMS,\n data: {\n params: {},\n },\n });\n if (props.match.params.queryId) {\n dispatch(loadQuery(props.match.params.queryId));\n } else {\n dispatch(createEmptyQuery());\n }\n }, [dispatch, props.match.params.queryId]);\n return null;\n}\n\nexport default function QueryTracker({match}: Props) {\n const {isQueriesListSidebarVisible} = useQueriesListSidebarToggle();\n const isQueryStateDirty = useSelector(getDirtySinceLastSubmit);\n const fileEditor = useSelector(selectFileEditor);\n usePreventUnload({shouldListen: isQueryStateDirty});\n const [sizes, setSize] = useState(initialSizes);\n const getSize = useMemo(() => {\n return () => sizes;\n }, [sizes]);\n const dispatch = useDispatch();\n const {loadQueryTrackerInfo} = useQueryACO();\n\n const goToCreatedQuery = useCallback(\n (queryId: string) => {\n dispatch(goToQuery(queryId));\n return true;\n },\n [dispatch],\n );\n\n useEffect(() => {\n loadQueryTrackerInfo();\n }, []);\n\n return (\n <>\n <Switch>\n <Route exact path={match.path} component={QueryPageDraft} />\n <Route path={`${match.path}/:queryId`} component={QueryPage} />\n </Switch>\n <MonacoContext.Provider value={new Map()}>\n <QueriesPooling>\n <FlexSplitPane\n className={b('container')}\n direction={FlexSplitPane.HORIZONTAL}\n onResizeEnd={setSize}\n minSize={minSize}\n getInitialSizes={getSize}\n >\n {isQueriesListSidebarVisible ? <QueriesList /> : null}\n <QueryEditorSplit\n fileEditorFullWidth={fileEditor.isFullWidth}\n fileEditorVisible={fileEditor.isOpen}\n onStartQuery={goToCreatedQuery}\n />\n </FlexSplitPane>\n </QueriesPooling>\n </MonacoContext.Provider>\n <CellPreviewModal />\n </>\n );\n}\n","import React from 'react';\nimport {Button} from '@gravity-ui/uikit';\nimport Icon from '../../../components/Icon/Icon';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\n\nexport function QueriesListSidebarToggleButton() {\n const {isQueriesListSidebarVisible, toggleQueriesListSideBarToggle} =\n useQueriesListSidebarToggle();\n\n return (\n <Button\n view=\"outlined\"\n size=\"l\"\n title={`${isQueriesListSidebarVisible ? 'Hide' : 'Show'} queries list`}\n onClick={toggleQueriesListSideBarToggle}\n >\n <Icon awesome=\"layout-side-content\" size={16} />\n </Button>\n );\n}\n","import React, {FC} from 'react';\nimport {QueriesListSidebarToggleButton} from '../QueriesListSidebarToggleButton/QueriesListSidebarToggleButton';\nimport {NewQueryButton} from '../NewQueryButton';\nimport {Flex} from '@gravity-ui/uikit';\n\ntype Props = {\n onQueryCreate: () => void;\n};\n\nexport const RightButtonsGroup: FC<Props> = ({onQueryCreate}) => {\n return (\n <Flex gap={2}>\n <QueriesListSidebarToggleButton />\n <NewQueryButton onClick={onQueryCreate} />\n </Flex>\n );\n};\n","import React, {ReactElement} from 'react';\nimport {Select, SelectProps, TextInput} from '@gravity-ui/uikit';\nimport type {Option} from '@gravity-ui/uikit/build/esm/components/Select/tech-components';\nimport {SelectOption} from '@gravity-ui/uikit/build/esm/components/Select/types';\nimport './QuerySelector.scss';\nimport cn from 'bem-cn-lite';\n\nconst controlBlock = cn('yt-query-selector-control');\nconst popupBlock = cn('yt-query-selector-popup');\n\ntype Props<T> = {\n items: T[];\n value?: string;\n onChange: (value: string) => void;\n children: (items: T[]) => ReactElement<SelectOption<T>, typeof Option>[];\n} & Omit<SelectProps, 'children' | 'onUpdate' | 'value'>;\n\nconst Filter: Required<SelectProps>['renderFilter'] = ({onChange, onKeyDown, ref, value}) => {\n return (\n <div className={popupBlock('filter')}>\n <TextInput\n ref={ref}\n value={value}\n size=\"l\"\n onKeyDown={onKeyDown}\n onChange={(e) => onChange(e.target.value)}\n />\n </div>\n );\n};\n\nexport const QuerySelector = <T,>({\n items,\n children,\n className,\n popupClassName,\n onChange,\n value,\n ...props\n}: Props<T>): JSX.Element => {\n const handleChange = (values: string[]) => {\n onChange(values.length ? values[0] : '');\n };\n\n return (\n <Select\n size=\"l\"\n filterable\n className={controlBlock(null, className)}\n popupClassName={popupBlock(null, popupClassName)}\n value={value ? [value] : []}\n onUpdate={handleChange}\n renderFilter={Filter}\n {...props}\n >\n {children(items)}\n </Select>\n );\n};\n","import React, {FC} from 'react';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport {QueryClusterItem} from './QueryClusterItem';\nimport {Select} from '@gravity-ui/uikit';\nimport {QuerySelector} from '../QuerySelector';\n\ntype Props = {\n clusters: ClusterConfig[];\n value: string | undefined;\n onChange: (clusterId: string) => void;\n};\n\nexport const QueryClusterSelector: FC<Props> = ({clusters, value, onChange}) => {\n return (\n <QuerySelector\n placeholder=\"Cluster\"\n filterPlaceholder=\"Search\"\n items={clusters}\n onChange={onChange}\n hasClear\n value={value}\n getOptionHeight={() => 52}\n >\n {(items) =>\n items.map(({id, name, environment}) => (\n <Select.Option key={id} value={id}>\n <QueryClusterItem id={id} name={name} environment={environment} />\n </Select.Option>\n ))\n }\n </QuerySelector>\n );\n};\n","import React, {FC} from 'react';\nimport {ChytInfo} from '../../../../store/reducers/chyt/list';\nimport './QueryCliqueItem.scss';\nimport cn from 'bem-cn-lite';\nimport {Text} from '@gravity-ui/uikit';\n\nconst block = cn('query-clique-item');\n\ntype Props = {\n name: ChytInfo['alias'];\n ytId: ChytInfo['yt_operation_id'];\n};\n\nexport const QueryCliqueItem: FC<Props> = ({name, ytId}) => {\n return (\n <div className={block()}>\n {name}\n <Text color=\"secondary\">{ytId}</Text>\n </div>\n );\n};\n","import React, {FC} from 'react';\nimport {QueryCliqueItem} from './QueryCliqueItem';\nimport {QuerySelector} from '../QuerySelector';\nimport {Flex, Select} from '@gravity-ui/uikit';\n\ntype Props = {\n loading: boolean;\n cliqueList: {alias: string; yt_operation_id?: string}[];\n value: string | undefined;\n placeholder?: string;\n onChange: (alias: string) => void;\n};\n\nexport const QueryCliqueSelector: FC<Props> = ({\n cliqueList,\n value,\n placeholder = 'Clique alias',\n loading,\n onChange,\n}) => {\n return (\n <QuerySelector\n placeholder={placeholder}\n filterPlaceholder=\"Search\"\n hasClear\n items={cliqueList}\n value={value}\n loading={loading}\n onChange={onChange}\n getOptionHeight={() => 52}\n disabled={loading && !cliqueList.length}\n renderEmptyOptions={() => <Flex justifyContent=\"center\">No access clique</Flex>}\n >\n {(items) =>\n items.map(({alias, yt_operation_id}) => (\n <Select.Option key={alias} value={alias}>\n <QueryCliqueItem name={alias} ytId={yt_operation_id} />\n </Select.Option>\n ))\n }\n </QuerySelector>\n );\n};\n","import React, {FC} from 'react';\nimport {QueryClusterSelector} from './QueryClusterSelector';\nimport {ClusterConfig} from '../../../../shared/yt-types';\nimport {QueryEngine} from '../module/engines';\nimport {QueryCliqueSelector} from './QueryCliqueSelector';\n\ntype Props = {\n settings?: Record<string, string>;\n engine: QueryEngine;\n clusters: ClusterConfig[];\n cliqueMap: Record<string, Record<string, {alias: string; yt_operation_id?: string}[]>>;\n cliqueLoading: boolean;\n onClusterChange: (clusterId: string) => void;\n onCliqueChange: (alias: string) => void;\n onPathChange: (path: string) => void;\n};\nexport const QuerySelectorsByEngine: FC<Props> = ({\n settings = {},\n clusters,\n cliqueMap,\n cliqueLoading,\n engine,\n onClusterChange,\n onCliqueChange,\n onPathChange,\n}) => {\n const clusterCliqueList =\n settings.cluster && settings.cluster in cliqueMap ? cliqueMap[settings.cluster] : {};\n const cliqueList = engine in clusterCliqueList ? clusterCliqueList[engine] : [];\n\n if (engine === QueryEngine.CHYT) {\n return (\n <>\n <QueryClusterSelector\n clusters={clusters}\n value={settings.cluster}\n onChange={onClusterChange}\n />\n <QueryCliqueSelector\n loading={cliqueLoading}\n cliqueList={cliqueList}\n value={settings.clique}\n onChange={onCliqueChange}\n />\n </>\n );\n }\n\n if (engine === QueryEngine.SPYT) {\n return (\n <>\n <QueryClusterSelector\n clusters={clusters}\n value={settings.cluster}\n onChange={onClusterChange}\n />\n <QueryCliqueSelector\n placeholder=\"Discovery path\"\n loading={cliqueLoading}\n cliqueList={cliqueList}\n value={settings.discovery_group}\n onChange={onPathChange}\n />\n </>\n );\n }\n\n return (\n <QueryClusterSelector\n clusters={clusters}\n value={settings.cluster}\n onChange={onClusterChange}\n />\n );\n};\n","import React, {FC, useCallback, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {RowWithName} from '../../../containers/AppNavigation/TopRowContent/SectionName';\nimport {Page} from '../../../../shared/constants/settings';\nimport {\n getCliqueLoading,\n getCliqueMap,\n getQueryDraft,\n getQueryGetParams,\n} from '../module/query/selectors';\nimport {loadCliqueByCluster, resetQueryTracker, updateQueryDraft} from '../module/query/actions';\nimport {RightButtonsGroup} from './RightButtonsGroup';\nimport {HeadSpacer} from '../../../containers/ClusterPageHeader/HeadSpacer';\nimport {Flex, Text, Tooltip} from '@gravity-ui/uikit';\nimport {QueryEngineSelect, QueryEngineSelector} from '../QueryEngineSelector';\nimport {QuerySettingsButton} from '../QuerySettingsButton';\nimport {QueryFilesButton} from '../QueryFilesButton';\nimport {getClusterList} from '../../../store/selectors/slideoutMenu';\nimport {QuerySelectorsByEngine} from './QuerySelectorsByEngine';\nimport {QueryEngine} from '../module/engines';\nimport './QueryTrackerTopRow.scss';\nimport cn from 'bem-cn-lite';\nimport {EditableAsText} from '../../../components/EditableAsText/EditableAsText';\nimport {useIsDesktop} from '../../../hooks/useIsDesktop';\n\nconst NAME_PLACEHOLDER = 'No name';\nconst block = cn('query-tracker-top-row');\n\nconst QueryTrackerTopRow: FC = () => {\n const dispatch = useDispatch();\n const {cluster, path} = useSelector(getQueryGetParams);\n const {annotations, settings, engine} = useSelector(getQueryDraft);\n const clusters = useSelector(getClusterList);\n const cliqueMap = useSelector(getCliqueMap);\n const cliqueLoading = useSelector(getCliqueLoading);\n const [nameEdit, setNameEdit] = useState(false);\n const isDesktop = useIsDesktop();\n\n useEffect(() => {\n if ((engine === QueryEngine.CHYT || engine === QueryEngine.SPYT) && settings?.cluster) {\n dispatch(loadCliqueByCluster(engine, settings.cluster));\n }\n }, [engine, settings?.cluster, dispatch]);\n\n const handleChangeEngine = useCallback(\n (newEngine: QueryEngine) => {\n const newSettings = {...settings};\n const isSpyt = newEngine === QueryEngine.SPYT;\n const isChyt = newEngine === QueryEngine.CHYT;\n\n if (!isSpyt && 'discovery_group' in newSettings) {\n delete newSettings['discovery_group'];\n delete newSettings['discovery_path']; // old request type. Deprecated\n }\n if (!isChyt && 'clique' in newSettings) {\n delete newSettings['clique'];\n }\n\n dispatch(updateQueryDraft({settings: newSettings}));\n },\n [dispatch, settings],\n );\n\n const handleCreateNewQuery = useCallback(() => {\n dispatch(resetQueryTracker());\n }, [dispatch]);\n\n const handleNameChange = useCallback(\n (title: string | undefined) => {\n dispatch(updateQueryDraft({annotations: {title}}));\n },\n [dispatch],\n );\n\n const handleSettingsChange = useCallback(\n (newSettings: Record<string, string>) =>\n dispatch(updateQueryDraft({settings: newSettings})),\n [dispatch],\n );\n\n const handleClusterChange = useCallback(\n (clusterId: string) => {\n const newSettings: Record<string, string> = settings ? {...settings} : {};\n if (clusterId) {\n newSettings.cluster = clusterId;\n } else {\n delete newSettings['cluster'];\n }\n delete newSettings['clique'];\n dispatch(updateQueryDraft({settings: newSettings}));\n },\n [dispatch, settings],\n );\n\n const handleCliqueChange = useCallback(\n (alias: string) => {\n const newSettings: Record<string, string> = settings ? {...settings} : {};\n if (!alias && 'clique' in newSettings) {\n delete newSettings.clique;\n } else {\n newSettings.clique = alias;\n }\n dispatch(updateQueryDraft({settings: newSettings}));\n },\n [dispatch, settings],\n );\n\n const handlePathChange = useCallback(\n (newPath: string) => {\n dispatch(updateQueryDraft({settings: {...settings, discovery_group: newPath}}));\n },\n [dispatch, settings],\n );\n\n const name = annotations?.title || NAME_PLACEHOLDER;\n\n return (\n <RowWithName page={Page.QUERIES} className={block()}>\n <Flex alignItems=\"center\" gap={4} grow={1}>\n <EditableAsText\n className={block('name-input')}\n onChange={handleNameChange}\n size=\"l\"\n text={annotations?.title}\n cancelOnClose\n withControls\n openOnClick\n onModeChange={setNameEdit}\n saveButtonView=\"action\"\n cancelButtonView=\"outlined\"\n >\n <Tooltip content={name}>\n <Text ellipsis>{name}</Text>\n </Tooltip>\n </EditableAsText>\n\n {!nameEdit && (\n <>\n <HeadSpacer />\n {isDesktop ? (\n <QueryEngineSelector\n cluster={cluster}\n path={path}\n onChange={handleChangeEngine}\n />\n ) : (\n <QueryEngineSelect onChange={handleChangeEngine} />\n )}\n <QuerySelectorsByEngine\n settings={settings}\n engine={engine}\n clusters={clusters}\n cliqueMap={cliqueMap}\n cliqueLoading={cliqueLoading}\n onClusterChange={handleClusterChange}\n onCliqueChange={handleCliqueChange}\n onPathChange={handlePathChange}\n />\n <Flex gap={2}>\n <QuerySettingsButton\n settings={settings}\n onChange={handleSettingsChange}\n />\n <QueryFilesButton />\n </Flex>\n </>\n )}\n </Flex>\n <RightButtonsGroup onQueryCreate={handleCreateNewQuery} />\n </RowWithName>\n );\n};\n\nexport default QueryTrackerTopRow;\n","import {useEffect, useState} from 'react';\nexport const useIsDesktop = () => {\n const [isDesktop, setIsDesktop] = useState(false);\n\n useEffect(() => {\n const handleResize = () => {\n setIsDesktop(window.matchMedia('(min-width: 1280px)').matches);\n };\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return isDesktop;\n};\n","import {RootState} from '../../../../store/reducers';\nimport {createSelector} from 'reselect';\nimport {getClusterList} from '../../../../store/selectors/slideoutMenu';\nimport {NavigationNode} from './queryNavigationSlice';\nimport {makeGetSetting} from '../../../../store/selectors/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;\n\nexport const selectClusterConfigs = (state: RootState) => state.clustersMenu.clusters;\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 {createSelector} from 'reselect';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {NAVIGATION_MAP_NODE_TABLE_ID} from '../../../constants/navigation/index';\nimport {getNavigationDefaultPath} from '../../../store/selectors/settings';\nimport {isFinalLoadingStatus} from '../../../utils/utils';\n\nexport const getTransaction = (state) => state.navigation.navigation.transaction;\nexport const getAttributes = (state) => state.navigation.navigation.attributes;\nexport const getAttributesWithTypes = (state) => state.navigation.navigation.attributesWithTypes;\nexport const getLoadState = (state) => state.navigation.navigation.loadState;\nexport const getError = (state) => state.navigation.navigation.error;\nexport const getRawPath = (state) => state.navigation.navigation.path;\nexport const getIdmSupport = (state) => state.navigation.navigation.isIdmSupported;\nexport const getSortState = (state) => state.tables[NAVIGATION_MAP_NODE_TABLE_ID];\n\nexport const getType = createSelector(getAttributes, (attributes) => attributes?.type);\n\nexport const getPath = createSelector(\n [getRawPath, getNavigationDefaultPath],\n (rawPath, defaultPath) => rawPath || defaultPath,\n);\n\nexport const getAttributesPath = createSelector(\n [getAttributes, getPath],\n (attributes, navigationPath) => attributes?.path || navigationPath,\n);\n\nexport const isNavigationFinalLoadState = createSelector([getLoadState], (state) => {\n return isFinalLoadingStatus(state);\n});\n\nexport const getParsedPath = createSelector(getPath, (path) => {\n try {\n return ypath.YPath.create(path, 'absolute');\n } catch (ex) {\n console.error(ex);\n }\n});\nexport const getActualPath = createSelector([getPath, getType], (path, type) => {\n return type === 'map_node' ? path + '/' : path;\n});\n\nexport const checkIsTrash = createSelector(\n [getPath],\n (path) => path.startsWith('//tmp/trash') || path.startsWith('//trash'),\n);\n","import {createSelector} from 'reselect';\nimport clone_ from 'lodash/clone';\n\nimport {\n getFormat,\n getShowDecoded,\n shouldCompact,\n shouldEscapeWhitespace,\n useBinaryAsHex,\n} from '../../../store/selectors/settings';\nimport {getUnipikaSettingsFromConfig} from '../../../common/thor/unipika-settings';\n\nexport interface YsonSettings {\n format: string;\n showDecoded: boolean;\n compact: boolean;\n escapeWhitespace: boolean;\n binaryAsHex: boolean;\n asHTML: boolean;\n}\n\n/**\n * !!! Do not use this selector directly, result should be copied by another selector !!!\n * unipika.format && unipika.foramtRaw mix different properties into settings-object.\n * So, to minimize side-effects each UI-component should use his-own copy of settings-object.\n */\nconst getYsonSettings = createSelector(\n [getFormat, getShowDecoded, shouldCompact, shouldEscapeWhitespace, useBinaryAsHex],\n (\n format: string,\n showDecoded: boolean,\n compact: boolean,\n escapeWhitespace: boolean,\n binaryAsHex: boolean,\n ): YsonSettings => {\n return {\n format,\n showDecoded,\n compact,\n escapeWhitespace,\n binaryAsHex,\n asHTML: true,\n ...getUnipikaSettingsFromConfig(),\n };\n },\n);\n\nexport const getJobGeneralYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getJobSpecificationYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getTableYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getOperationAttributesYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getOperationExperimentsYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getNavigationMountConfigYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getEditJsonYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getNodeUnrecognizedOptionsYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getPreviewCellYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getFlowSpecYsonSettings = createSelector([getYsonSettings], clone_);\n","const SvgBarsDescendingAlignLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBarsDescendingAlignLeft;","const SvgCircleQuestion = 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 14M6.44 4.54c.43-.354.994-.565 1.56-.565 1.217 0 2.34.82 2.34 2.14 0 .377-.079.745-.298 1.1-.208.339-.513.614-.875.867-.217.153-.326.257-.379.328-.038.052-.038.07-.038.089a.75.75 0 0 1-1.5 0c0-.794.544-1.286 1.057-1.645.28-.196.4-.332.458-.426a.54.54 0 0 0 .074-.312c0-.3-.243-.641-.839-.641a1 1 0 0 0-.608.223c-.167.138-.231.287-.231.418a.75.75 0 1 1-1.5 0c0-.674.345-1.22.78-1.577ZM8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleQuestion;","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n"],"names":["b","cn","makeItemsCopy","items","map_","item","_objectSpread","DragHandle","sortableHandle","_jsx","className","children","Icon","face","awesome","SortableItem","sortableElement","_ref","isSortable","isSelectable","isDisabled","itemRenderer","onCheckBoxChange","withClickableHandler","active","disabled","selected","checked","selectable","_jsxs","keyColumn","onClick","name","SortableList","sortableContainer","_ref2","useStaticSize","_ref2$withClickableHa","type","mods","ReactList","index","key","length","ColumnSelector","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","isHeadless","showSelectedOnly","call","toggleItem","withActualItems","_ref3","_toConsumableArray","findIndex","changedItem","selectAllItems","_ref4","visibleMap","getVisibleItemsMap","each_","deselectAllItems","_ref5","invertItems","_ref6","visibleItems","_handleCheckBoxChange","event","currentTarget","getAttribute","_handleSortEnd","_ref7","oldIndex","newIndex","_ref8","getVisibleItems","fromIndex","toIndex","_items$splice","splice","removed","_slicedToArray","_handleDefaultSort","_ref9","sort","a","aCaption","caption","bCaption","localeCompare","_toggleShownItems","setState","prevState","_changeFilter","filter","state","Object","assign","_createClass","get","this","every","some","value","func","_this2","onChange","TextInput","placeholder","onUpdate","hasClear","_this$props","isFilterable","btnProps","size","renderSearchBox","Button","filter_","buttonALLisDisabled","buttonNONEisDisabled","re","RegExp","escapeRegExp_","test","showDisabledItems","filterItemsByName","toSplit","filterItems","_partition_","partition_","_partition_2","keyItems","reduce_","acc","_this$props2","_this$getVisibleItems2","headless","undefined","empty","React","lockAxis","helperClass","helper","onSortEnd","useDragHandle","_this$props3","classNames","sortable","renderControls","renderList","Component","itemsProps","PropTypes","isRequired","defaultProps","_ref10","_ref10$caption","renderText","asHTML","block","prepareRoleListValue","roles","otherMembers","arguments","current","toAdd","toRemove","unrecognized","forEach_","isUnrecognized","isRequested","isApproved","isDepriving","push","currentArr","map","prepareItemOfCurrent","otherArr","title","data","frozen","newItems","concat","itemClassName","role","extraProps","text","roleListValueToSubjectList","manyListDataItemToSubjectList","manyListDataItem","extractChangedSubjects","added","user","group","DialogError","Block","makeErrorFields","errors","compact_","error","extras","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","Dropdown","_len","args","Array","_key","apply","popupVisible","anchor","toggle","open","close","button","trigger","actionProps","onMouseEnter","onMouseLeave","template","_this$props$template","renderer","templates","__default__","popup","directions","Popup","placement","onClose","anchorRef","hasArrow","renderTemplate","ref","renderButton","renderPopup","zIndexGroupLevel","EditableAsText","withControls","disableEdit","cancelOnClose","openOnClick","renderEditor","onModeChange","_props$saveButtonView","saveButtonView","_props$cancelButtonVi","cancelButtonView","editMode","setEditMode","_React$useState3","_React$useState4","input","setInput","useEffect","handleChangeMode","useCallback","isEdit","closeEditMode","startTextEdit","handleChange","val","applyValue","closeAndResetValue","onApply","handleKeyDown","evt","controlSize","_Fragment","onBlur","autoFocus","onKeyDown","view","onMouseDown","EditButton","_ref$size","ICON_BY_TYPE","_ICON_BY_TYPE","SortIcon","_React$Component","order","allowUnordered","withUndefined","nextSortOrderValue","label","hidden","icon","Tooltip","content","format","ReadableField","settings","mix","elem","textProps","dangerouslySetInnerHTML","__html","unipika","decode","String","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","column","getColumn","hammer","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","Link","theme","showErrorPopup","hideOopsMsg","NO_VALUE","asNumber","_templates","add","templateId","keys","reduce","newTemplates","wrapRenderMethods","selectCellPreviewVisible","navigation","modals","cellPreviewModal","selectCellPreviewLoading","loading","selectCellPreviewData","selectCellPreviewYtCliDownloadCommand","ytCliDownloadCommand","selectCellPreviewNoticeText","noticeText","selectErrorPreviewCellPath","CellPreviewModal","dispatch","useDispatch","useSelector","unipikaSettings","getPreviewCellYsonSettings","SimpleModal","onCancel","closeCellPreviewAndCancelRequest","wrapperClassName","Flex","qa","gap","direction","Text","variant","color","ClipboardButton","Error","PreviewContent","$type","$value","Yson","folding","tableSettings","dynamicRenderScrollParentGetter","customLayout","toolbar","IconBlock","QueryClusterItem","id","environment","clusterColorClassName","useClusterColorClassName","ClusterIcon","usePreventUnload","shouldListen","beforeUnloadHandler","e","preventDefault","returnValue","window","addEventListener","removeEventListener","getSettingQueryTrackerQueriesListSidebarVisibilityMode","createSelector","getSettingsData","Boolean","useQueryList","getQueriesList","isQueriesListLoading","useQueriesPagination","cursor","getQueriesListCursor","hasNext","hasQueriesListMore","goNext","loadNextQueriesList","QueriesHistoryCursorDirection","PAST","goBack","FUTURE","reset","resetCursor","first","cursorTime","last","currentCursorTime","goFirst","useQueriesListSidebarToggle","isQueriesListSidebarVisible","toggleQueriesListSideBarToggle","setSettingByKey","useQuriesHistoryFilter","getQueriesListFilter","filterPreset","getQueriesListMode","applyFilter","useQueryNavigation","selectedItem","getQuery","cluster","getCluster","history","useHistory","goToQuery","createQueryUrl","EditQueryNameModal","_query$annotations2","query","_useState","useState","_useState2","setError","_useState3","_useState4","setVisible","useThunkDispatch","initialValues","useMemo","_query$annotations","annotations","stopPropagation","width","pristineSubmittable","modal","headerProps","footerProps","textApply","onAdd","form","getState","values","setQueryName","err","fields","required","useQueryHistoryListColumns","selectedColumns","getQueryListHistoryColumns","handleColumnChange","ALL_COLUMN_NAMES","intersectionBy_","AllColumns","MyColumns","EXCLUDED_COLUMNS","NameColumns","AuthorColumns","currentColumnsPreset","QueriesListAuthorFilter","My","selectedColumnNames","Set","isArray","columns","has","allowedColumns","includes","itemBlock","isHeaderTableItem","header","align","render","_row$annotations","row","QueryStatusIcon","status","ellipsis","TypeColumns","engine","QueryEnginesNames","DurationColumns","QueryStatus","RUNNING","QueryDuration","StartedColumns","formatTime","start_time","ACOColumns","_row$access_control_o","access_control_objects","join","displayIndices","stickyHead","DataTable","MOVING","syncHeadOnResize","QueriesHistoryList","pollingContext","uncompletedItems","queryListUpdateHandler","_useQueryHistoryList","timeout","timer","start","setTimeout","refreshQueriesListIfNeeded","clearTimeout","useRefreshHistoryList","useContext","QueriesPoolingContext","getUncompletedItems","UPDATE_QUERIES_LIST","watch","_useQueryHistoryList2","isLoading","_useQuriesHistoryFilt","timestamp","getQueriesListTimestamp","_useQueriesPagination","_useQueryNavigation","_useQueryNavigation2","selectedId","scrollElemRef","useRef","scrollTop","setClassName","itemsByDate","entries","groupBy_","moment","ret","DataTableYT","useThemeYT","rowKey","onRowClick","disableRightGap","rowClassName","getColSpansOfRow","Name","Pagination","handler","previous","noop_","xmlns","fill","viewBox","fillRule","d","clipRule","itemCn","renderItem","_item$annotations","_item$annotations2","tutorialIcon","QueriesTutorialList","_useQueryList","_useQueryList2","selectedIndex","tutorialFilter","_item$annotations3","toLocaleLowerCase","List","filterable","filterClassName","filterPlaceholder","filterItem","virtualized","selectedItemIndex","itemHeight","onItemClick","Loader","ALL_ENGINE_KEY","QueryEngineFilter","_ref$engines","engines","Engines","enginesList","onChangeEngineFilter","RadioButton","options","QueryTextFilter","_ref$delay","delay","pattern","setPattern","debouncedChange","debounce_","cancel","flush","AuthorFilter","All","QueriesHistoryListFilter","_useQuriesHistoryFilt2","filterViewMode","_useQueryHistoryListC","onChangeAuthorFilter","onChangeTextFilter","QueriesListMode","History","GravityIcon","CircleQuestionIcon","pin","Vcs","lazy","Navigation","TabNames","_TabNames","Tutorials","VCS","useQueryTabs","selectedTab","isVcsVisible","selectIsVcsVisible","setTab","tab","applyListMode","getQueriesListModes","vcs","toString","QueriesList","_useQueryTabs","_useQueryTabs2","tabs","requestQueriesList","isVsc","Tabs","activeTab","onSelectTab","MONACO_CONFIG","fontSize","language","renderWhitespace","minimap","enabled","FileEditor","_useSelector","selectFileEditorConfig","fileEditor","file","editorRef","FileIcon","setFileEditor","isFullWidth","LayoutColumnsIcon","SquareIcon","isOpen","XmarkIcon","MonacoEditor","changeQueryFile","monacoConfig","EDITOR_INITIAL_SIZE","QueryEditorSplit","fileEditorFullWidth","fileEditorVisible","onStartQuery","sizes","setSize","hideQueryEditor","FlexSplitPane","HORIZONTAL","onResizeEnd","getInitialSizes","QueryEditor","showStatusInTitle","initialSizes","minSize","QueryPageDraft","routeParams","getQueryGetParams","selectNavigationCluster","isEngine","QueryEngine","YQL","path","useDraft","SET_QUERY_PARAMS","params","createQueryFromTablePath","createEmptyQuery","QueryPage","match","queryId","loadQuery","QueryTracker","isQueryStateDirty","getDirtySinceLastSubmit","selectFileEditor","getSize","loadQueryTrackerInfo","useQueryACO","goToCreatedQuery","Switch","Route","exact","component","MonacoContext","Provider","Map","QueriesPooling","QueriesListSidebarToggleButton","_useQueriesListSideba","RightButtonsGroup","onQueryCreate","NewQueryButton","controlBlock","popupBlock","Filter","target","QuerySelector","popupClassName","_objectWithoutProperties","_excluded","Select","renderFilter","QueryClusterSelector","clusters","getOptionHeight","Option","QueryCliqueItem","ytId","QueryCliqueSelector","cliqueList","_ref$placeholder","renderEmptyOptions","justifyContent","alias","yt_operation_id","QuerySelectorsByEngine","_ref$settings","cliqueMap","cliqueLoading","onClusterChange","onCliqueChange","onPathChange","clusterCliqueList","CHYT","clique","SPYT","discovery_group","_useSelector2","getQueryDraft","getClusterList","getCliqueMap","getCliqueLoading","nameEdit","setNameEdit","isDesktop","setIsDesktop","handleResize","matchMedia","matches","useIsDesktop","loadCliqueByCluster","handleChangeEngine","newEngine","newSettings","isSpyt","isChyt","updateQueryDraft","handleCreateNewQuery","resetQueryTracker","handleNameChange","handleSettingsChange","handleClusterChange","clusterId","handleCliqueChange","handlePathChange","newPath","RowWithName","page","Page","QUERIES","alignItems","grow","HeadSpacer","QueryEngineSelector","QueryEngineSelect","QuerySettingsButton","QueryFilesButton","queryTracker","queryNavigation","selectNavigationClusterConfig","clustersMenu","clusterName","selectFavouritePaths","makeGetSetting","getSetting","parentNS","createNestedNS","NAMESPACES","LOCAL","favourites","SettingName","FAVOURITES","i","selectNavigationPath","selectNavigationNodeType","nodeType","selectNavigationFilter","selectNavigationNodes","nodes","filterValueInText","toLowerCase","selectTableWithFilter","table","schema","selectClustersByFilter","selectNodeListByFilter","isRoot","upItem","split","slice","isFavorite","result","unshift","getTransaction","transaction","getAttributes","attributes","getAttributesWithTypes","attributesWithTypes","getLoadState","loadState","getError","getRawPath","getIdmSupport","isIdmSupported","getType","getPath","getNavigationDefaultPath","rawPath","defaultPath","getAttributesPath","navigationPath","isNavigationFinalLoadState","isFinalLoadingStatus","getParsedPath","ypath","create","ex","console","getActualPath","checkIsTrash","startsWith","getYsonSettings","getFormat","getShowDecoded","shouldCompact","shouldEscapeWhitespace","useBinaryAsHex","showDecoded","compact","escapeWhitespace","binaryAsHex","getUnipikaSettingsFromConfig","getJobGeneralYsonSettings","clone_","getJobSpecificationYsonSettings","getTableYsonSettings","getOperationAttributesYsonSettings","getOperationExperimentsYsonSettings","getNavigationMountConfigYsonSettings","getEditJsonYsonSettings","getNodeUnrecognizedOptionsYsonSettings","getFlowSpecYsonSettings","pi","Math","PI","tau","epsilon","tauEpsilon","append","strings","_","n","Path","constructor","digits","_x0","_y0","_x1","_y1","_append","floor","k","round","appendRound","moveTo","x","y","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","r","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","prototype","initRange","domain","range","implicit","Symbol","ordinal","unknown","scale","set","from","copy","selector","childMatcher","node","prefix","indexOf","hasOwnProperty","space","local","xhtml","svg","xlink","xml","document","querySelector","documentElement","find","childFirst","firstElementChild","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","delete","arraylike","ascending","NaN","appendChild","child","insertBefore","querySelectorAll","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","classList","ClassList","_node","_names","classedAdd","names","list","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","parentNode","lower","previousSibling","firstChild","contains","creatorInherit","uri","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","j","m","listener","contextListener","dispatchEvent","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","Selection","groups","parents","_groups","_parents","selection","select","subgroups","subnode","subgroup","selectAll","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","merge","context","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","callback","each","attr","getAttributeNS","style","property","classed","html","creator","insert","before","deep","t","typenames","parseTypenames","iterator","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","none","defaultView","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","r0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","atan2","max","halfPi","asin","withPath","shape","RangeError","identity","sortValues","descending","constant","pie","array","sum","arcs","p","pa","InternMap","keyof","super","defineProperties","_intern","intern_get","intern_set","intern_delete","valueOf"],"sourceRoot":""}
1
+ {"version":3,"file":"js/query-tracker.5f5e3683.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/components/ColumnSelector/ColumnSelector.js","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","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/components/Dropdown/Dropdown.js","webpack://@ytsaurus/ui/./src/ui/components/EditableAsText/EditableAsText.tsx","webpack://@ytsaurus/ui/./src/ui/components/SortIcon/SortIcon.tsx","webpack://@ytsaurus/ui/./src/ui/components/templates/utils.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/modals/cell-preview.ts","webpack://@ytsaurus/ui/./src/ui/containers/CellPreviewModal/CellPreviewModal.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryClusterSelector/QueryClusterItem.tsx","webpack://@ytsaurus/ui/./src/ui/hooks/use-prevent-unload.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/module/settings/selector.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/QueriesList/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/QueryListFilter/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/hooks/Query/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/EditQueryNameModal/EditQueryNameModal.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesHistoryList/useQueryListColumns.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesHistoryList/index.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/learn.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesTutorialList/index.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesListFilter/QueryEngineFilter.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesListFilter/QueryTextFilter.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/QueriesListFilter/index.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Vcs/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/Navigation/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesList/index.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/layout-columns.svg","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/FileEditor/FileEditor.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTracker/QueryEditorSplit.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTracker/QueryTracker.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueriesListSidebarToggleButton/QueriesListSidebarToggleButton.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/RightButtonsGroup.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QuerySelector.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryClusterSelector/QueryClusterSelector.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryCliqueSelector/QueryCliqueItem.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QueryCliqueSelector/QueryCliqueSelector.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/QuerySelectorsByEngine.tsx","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/QueryTrackerTopRow/index.tsx","webpack://@ytsaurus/ui/./src/ui/hooks/useIsDesktop.ts","webpack://@ytsaurus/ui/./src/ui/pages/query-tracker/module/queryNavigation/selectors.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/index.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/thor/unipika.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/bars-descending-align-left.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-question.svg","webpack://@ytsaurus/ui/./node_modules/d3-path/src/path.js","webpack://@ytsaurus/ui/./node_modules/d3-scale/src/init.js","webpack://@ytsaurus/ui/./node_modules/d3-scale/src/ordinal.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/matcher.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/namespace.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/namespaces.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/select.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/selectChild.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/sparse.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/enter.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/data.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/sort.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/attr.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/property.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/classed.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/text.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/html.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/raise.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/lower.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/creator.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/insert.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/remove.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/clone.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/on.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/dispatch.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/index.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/select.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/selectAll.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/array.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/filter.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/constant.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/exit.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/join.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/merge.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/order.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/call.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/nodes.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/node.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/size.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/empty.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/each.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/append.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/datum.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/iterator.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selection/style.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selector.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/selectorAll.js","webpack://@ytsaurus/ui/./node_modules/d3-selection/src/window.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/arc.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/array.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/constant.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/math.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/path.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/descending.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/identity.js","webpack://@ytsaurus/ui/./node_modules/d3-shape/src/pie.js","webpack://@ytsaurus/ui/./node_modules/internmap/src/index.js"],"sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {sortableContainer, sortableElement, sortableHandle} from 'react-sortable-hoc';\nimport ReactList from 'react-list';\n\nimport each_ from 'lodash/each';\nimport escapeRegExp_ from 'lodash/escapeRegExp';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\nimport reduce_ from 'lodash/reduce';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../../components/Icon/Icon';\n\nimport {renderText} from '../../components/templates/utils';\n\nimport './ColumnSelector.scss';\nimport Button from '../Button/Button';\n\nconst b = cn('column-selector');\n\nexport function makeItemsCopy(items) {\n return map_(items, (item) => {\n return {...item};\n });\n}\n\nconst DragHandle = sortableHandle(() => (\n <div className={b('drag-handle')}>\n <Icon face=\"solid\" awesome=\"list\" />\n </div>\n));\n\nconst SortableItem = sortableElement(\n ({\n item,\n isSortable,\n isSelectable,\n isDisabled,\n itemRenderer,\n onCheckBoxChange,\n withClickableHandler,\n }) => {\n const active = !isDisabled && !item.disabled;\n const className = b('list-item', {\n selected: item.checked && active && 'yes',\n selectable: isSelectable && active && 'yes',\n disabled: !active && 'yes',\n });\n\n return (\n <div className={className}>\n {isSortable && item.checked && <DragHandle />}\n <div className={b('list-item-name')}>\n {item.keyColumn && <Icon awesome=\"key\" />}\n {itemRenderer(item)}\n </div>\n {active && withClickableHandler && (\n <span\n className={b('list-item-check')}\n onClick={onCheckBoxChange}\n data-item={item.name}\n >\n <Icon awesome=\"check\" />\n </span>\n )}\n {!active && <Icon className={b('list-item-lock')} awesome=\"lock\" />}\n </div>\n );\n },\n);\n\nconst SortableList = sortableContainer(\n ({\n items,\n isSortable,\n isDisabled,\n itemRenderer,\n onCheckBoxChange,\n isSelectable,\n useStaticSize,\n withClickableHandler = true,\n }) => {\n const renderer = (index, key) => {\n const item = items[index];\n return (\n <SortableItem\n key={key}\n index={index}\n item={item}\n disabled={!isSortable}\n isSortable={isSortable}\n isDisabled={isDisabled}\n isSelectable={isSelectable}\n itemRenderer={itemRenderer}\n onCheckBoxChange={onCheckBoxChange}\n withClickableHandler={withClickableHandler}\n />\n );\n };\n // Use 'simple' placement for draggable items because 'uniform' produces bugs when items are dragged outside the viewport\n const type = isSortable ? 'simple' : 'uniform';\n const mods = {'static-size': useStaticSize};\n\n return (\n <div className={b('list', mods)}>\n <ReactList itemRenderer={renderer} length={items.length} type={type} />\n </div>\n );\n },\n);\n\nexport default class ColumnSelector extends Component {\n static itemsProps = PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n keyColumn: PropTypes.bool,\n caption: PropTypes.string,\n disabled: PropTypes.bool,\n }),\n );\n\n static propTypes = {\n className: PropTypes.string,\n items: ColumnSelector.itemsProps.isRequired,\n showDisabledItems: PropTypes.bool,\n isSortable: PropTypes.bool,\n isSelectable: PropTypes.bool,\n isFilterable: PropTypes.bool,\n showSelectedOnly: PropTypes.bool,\n isHeadless: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n children: PropTypes.node,\n itemRenderer: PropTypes.func,\n };\n\n static defaultProps = {\n itemRenderer: ({name, caption = name}) => renderText(caption, {asHTML: false}),\n isSortable: false,\n isHeadless: false,\n isSelectable: true,\n isFilterable: true,\n showSelectedOnly: false,\n };\n\n constructor(props) {\n const {items, isHeadless, showSelectedOnly} = props;\n super(props);\n\n const state = {\n showSelectedOnly,\n filter: '',\n };\n if (isHeadless) {\n Object.assign(state, {items: makeItemsCopy(items)});\n }\n this.state = state;\n }\n\n get items() {\n return this.props.isHeadless ? this.state.items : this.props.items;\n }\n\n get buttonALLisDisabled() {\n return this.items.every((item) => item.checked);\n }\n\n get buttonNONEisDisabled() {\n return !this.items.some((item) => item.checked);\n }\n\n /*\n Takes items from the proper place (props or state), modifies them and writes them back at the same place.\n */\n withActualItems(func) {\n const {onChange} = this.props;\n // headless widget keeps its state to itself, but calls onChange as a way of notifying caller about changes\n if (this.props.isHeadless) {\n const {items} = func({items: this.state.items || []});\n this.setState({items}, () => {\n onChange({items: [...this.state.items]});\n });\n } else {\n // widget inside modal passes all changes to the modal component where they are put into state\n const {items} = func({items: this.props.items || []});\n onChange({items: [...items]});\n }\n }\n\n toggleItem = (name) => {\n this.withActualItems(({items}) => {\n items = [...items];\n const index = items.findIndex((item) => item.name === name);\n const changedItem = items[index];\n items[index] = {...changedItem, checked: !changedItem.checked};\n\n return {items};\n });\n };\n\n selectAllItems = () => {\n this.withActualItems(({items}) => {\n const visibleMap = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleMap[item.name]) {\n return;\n }\n if (!item.checked && !item.disabled) {\n items[index] = {...item, checked: true};\n }\n });\n\n return {items};\n });\n };\n\n deselectAllItems = () => {\n this.withActualItems(({items}) => {\n const visibleMap = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleMap[item.name]) {\n return;\n }\n if (item.checked && !item.disabled) {\n items[index] = {...item, checked: false};\n }\n });\n\n return {items};\n });\n };\n\n invertItems = () => {\n this.withActualItems(({items}) => {\n const visibleItems = this.getVisibleItemsMap();\n items = [...items];\n each_(items, (item, index) => {\n if (!visibleItems[item.name]) {\n return;\n }\n if (!item.disabled) {\n items[index] = {...item, checked: !item.checked};\n }\n });\n\n return {items};\n });\n };\n\n _handleCheckBoxChange = (event) => {\n this.toggleItem(event.currentTarget.getAttribute('data-item'));\n };\n\n _handleSortEnd = ({oldIndex, newIndex}) => {\n if (oldIndex === newIndex) {\n return;\n }\n\n this.withActualItems(({items}) => {\n items = [...items];\n\n const {items: visibleItems} = this.getVisibleItems();\n const fromIndex = items.findIndex((item) => item.name === visibleItems[oldIndex].name);\n const toIndex = items.findIndex((item) => item.name === visibleItems[newIndex].name);\n\n const [removed] = items.splice(fromIndex, 1);\n items.splice(toIndex, 0, removed);\n\n return {items};\n });\n };\n\n _handleDefaultSort = () => {\n this.withActualItems(({items}) => {\n return {\n items: items.sort((a, b) => {\n const aCaption = a.caption || a.name;\n const bCaption = b.caption || b.name;\n\n return aCaption.localeCompare(bCaption);\n }),\n };\n });\n };\n\n _toggleShownItems = () => {\n this.setState((prevState) => ({\n showSelectedOnly: !prevState.showSelectedOnly,\n }));\n };\n\n _changeFilter = (filter) => {\n this.setState({filter});\n };\n\n renderSearchBox() {\n return (\n <TextInput\n placeholder=\"Search...\"\n onUpdate={this._changeFilter}\n value={this.state.filter}\n hasClear={true}\n />\n );\n }\n\n renderControls() {\n const {isFilterable, isSelectable, isSortable, isHeadless} = this.props;\n const btnProps = {\n size: 'm',\n className: b('controls-item'),\n };\n\n return (\n <div className={b('controls')}>\n {isFilterable && this.renderSearchBox()}\n {isHeadless && (\n <Button {...btnProps} onClick={this._toggleShownItems}>\n Selected &nbsp;\n <span className=\"elements-secondary-text\">\n {filter_(this.items, (item) => item.checked).length}\n </span>\n </Button>\n )}\n {isSelectable && (\n <Button\n {...btnProps}\n disabled={this.buttonALLisDisabled}\n onClick={this.selectAllItems}\n >\n Add all\n </Button>\n )}\n {isSelectable && (\n <Button {...btnProps} onClick={this.invertItems}>\n Invert list\n </Button>\n )}\n {!isSelectable && (\n <Button\n {...btnProps}\n disabled={this.buttonNONEisDisabled}\n onClick={this.deselectAllItems}\n >\n Remove all\n </Button>\n )}\n {isSortable && (\n <Button {...btnProps} onClick={this._handleDefaultSort}>\n Default sort\n </Button>\n )}\n </div>\n );\n }\n\n filterItemsByName(items) {\n const re = new RegExp(escapeRegExp_(this.state.filter), 'i');\n return filter_(items, (item) => re.test(item.name));\n }\n\n filterItems(items) {\n const {showDisabledItems} = this.props;\n items = showDisabledItems ? items : filter_(items, (item) => !item.disabled);\n\n const visibleItems = this.filterItemsByName(items);\n return this.state.showSelectedOnly\n ? filter_(visibleItems, (item) => item.checked)\n : visibleItems;\n }\n\n getVisibleItems() {\n const toSplit = this.filterItems(this.items);\n const [keyItems, items] = partition_(toSplit, (item) => item.keyColumn);\n return {items, keyItems};\n }\n\n getVisibleItemsMap() {\n return reduce_(\n this.filterItems(this.items),\n (acc, item) => {\n acc[item.name] = item;\n return acc;\n },\n {},\n );\n }\n\n renderList() {\n const {isSortable, isSelectable, itemRenderer, children, isHeadless} = this.props;\n\n const {items, keyItems} = this.getVisibleItems();\n\n const className = b(\n 'content',\n {\n headless: isHeadless ? undefined : 'no',\n empty: items.length ? undefined : 'yes',\n },\n 'pretty-scroll',\n );\n\n return (\n <div className={className}>\n {keyItems.length > 0 && (\n <React.Fragment>\n <SortableList\n lockAxis=\"y\"\n isDisabled={false}\n isSortable={false}\n isSelectable={isSelectable}\n items={keyItems}\n itemRenderer={itemRenderer}\n helperClass={b('list-item', {helper: 'yes'})}\n onCheckBoxChange={this._handleCheckBoxChange}\n />\n {items.length > 0 && <div className={b('separator')} />}\n </React.Fragment>\n )}\n {items.length > 0 && (\n <SortableList\n items={items}\n isSelectable={isSelectable}\n isSortable={isSortable}\n itemRenderer={itemRenderer}\n lockAxis=\"y\"\n helperClass={b('list-item', {helper: 'yes'})}\n onSortEnd={this._handleSortEnd}\n onCheckBoxChange={this._handleCheckBoxChange}\n useDragHandle\n />\n )}\n {!keyItems.length && !items.length && children}\n </div>\n );\n }\n\n render() {\n const {isHeadless, isSortable, className} = this.props;\n const classNames = b(\n {\n headless: isHeadless ? 'yes' : undefined,\n sortable: isSortable ? undefined : 'no',\n },\n className,\n );\n return (\n <div className={classNames}>\n {this.renderControls()}\n {this.renderList()}\n </div>\n );\n }\n}\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\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: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n 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 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 Block 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 <Block {...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 React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport templates from '../templates/templates';\n\nimport {Popup} from '@gravity-ui/uikit';\n\nconst block = cn('elements-dropdown');\n\nclass Dropdown extends Component {\n static propTypes = {\n button: PropTypes.oneOfType([PropTypes.element, PropTypes.object]).isRequired,\n className: PropTypes.string,\n popup: PropTypes.object,\n directions: PropTypes.array,\n trigger: PropTypes.oneOf(['click', 'hover']).isRequired,\n template: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.shape({\n key: PropTypes.string.isRequired,\n data: PropTypes.object,\n }),\n ]).isRequired,\n zIndexGroupLevel: PropTypes.number,\n };\n\n static defaultProps = {\n zIndexGroupLevel: 1,\n directions: ['bottom-end', 'top-end'],\n };\n\n state = {\n popupVisible: false,\n };\n\n anchor = React.createRef();\n\n toggle = () =>\n this.setState((prevState) => ({\n popupVisible: !prevState.popupVisible,\n }));\n\n open = () => this.setState({popupVisible: true});\n\n close = () => this.setState({popupVisible: false});\n\n renderButton() {\n const {button, trigger} = this.props;\n\n const actionProps = {\n onClick: trigger === 'click' ? this.toggle : undefined,\n onMouseEnter: trigger === 'hover' ? this.open : undefined,\n onMouseLeave: trigger === 'hover' ? this.close : undefined,\n };\n\n return React.cloneElement(button, actionProps);\n }\n\n renderTemplate() {\n const {template} = this.props;\n const {key, data} = this.props.template;\n const renderer = templates.get(key).__default__;\n\n return React.isValidElement(template)\n ? React.cloneElement(template)\n : renderer.call(this, data);\n }\n\n renderPopup() {\n const {popup, directions} = this.props;\n\n return (\n <Popup\n placement={directions}\n onClose={this.close}\n open={true}\n anchorRef={this.anchor}\n hasArrow\n {...popup}\n >\n {this.renderTemplate()}\n </Popup>\n );\n }\n\n render() {\n const {className} = this.props;\n\n return (\n <span className={block(null, className)} ref={this.anchor}>\n {this.renderButton()}\n {this.state.popupVisible && this.renderPopup()}\n </span>\n );\n }\n}\n\nexport default Dropdown;\n","import React, {useCallback, useEffect} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput} from '@gravity-ui/uikit';\nimport Icon from '../Icon/Icon';\n\nimport './EditableAsText.scss';\nimport Button, {ButtonProps} from '../Button/Button';\nconst block = cn('editable-as-text');\n\ninterface Props {\n className?: string;\n editorClassName?: string;\n\n text?: string;\n children: React.ReactNode;\n onChange: (v?: string) => void;\n disableEdit?: boolean;\n withControls?: boolean;\n cancelOnClose?: boolean;\n openOnClick?: boolean;\n size?: 's' | 'm' | 'l' | 'xl';\n saveButtonView?: ButtonProps['view'];\n cancelButtonView?: ButtonProps['view'];\n\n renderEditor?: (props: {\n value?: string;\n onBlur: () => void;\n onChange: (value?: string) => void;\n className?: string;\n onApply: (value?: string) => void;\n }) => React.ReactNode;\n onModeChange?: (isEdit: boolean) => void;\n}\n\nexport function EditableAsText(props: Props) {\n const {\n children,\n onChange,\n text,\n className,\n withControls,\n size,\n disableEdit,\n cancelOnClose,\n openOnClick,\n renderEditor,\n onModeChange,\n saveButtonView = 'normal',\n cancelButtonView = 'normal',\n } = props;\n const [editMode, setEditMode] = React.useState(false);\n const [input, setInput] = React.useState(text || '');\n\n useEffect(() => {\n setInput(text || '');\n }, [text]);\n\n const handleChangeMode = useCallback(\n (isEdit: boolean) => {\n if (onModeChange) onModeChange(isEdit);\n setEditMode(isEdit);\n },\n [onModeChange],\n );\n\n const closeEditMode = React.useCallback(() => {\n handleChangeMode(false);\n if (cancelOnClose) setInput(text || '');\n }, [cancelOnClose, handleChangeMode, text]);\n\n const startTextEdit = useCallback(() => {\n handleChangeMode(true);\n }, [handleChangeMode]);\n\n const handleWrapClick = () => {\n if (!editMode && openOnClick) {\n startTextEdit();\n }\n };\n\n const handleChange = React.useCallback((val?: string) => setInput(val ?? ''), [setInput]);\n\n const applyValue = useCallback(() => {\n handleChangeMode(false);\n onChange(input);\n }, [onChange, handleChangeMode, input]);\n\n const closeAndResetValue = useCallback(() => {\n handleChangeMode(false);\n setInput(text || '');\n }, [handleChangeMode, text]);\n\n const onApply = useCallback(\n (value?: string) => {\n handleChangeMode(false);\n onChange(value);\n },\n [handleChangeMode, onChange],\n );\n\n const handleKeyDown = React.useCallback(\n (evt: React.KeyboardEvent<HTMLElement>) => {\n if (evt.key === 'Enter') {\n applyValue();\n }\n if (evt.key === 'Escape') {\n closeAndResetValue();\n }\n },\n [applyValue, closeAndResetValue],\n );\n\n const controlSize = size ? size : 'm';\n\n return (\n <div\n className={block(null, [className || '', editMode ? 'edit' : ''])}\n onClick={handleWrapClick}\n >\n {editMode ? (\n <>\n {renderEditor ? (\n renderEditor({\n value: input,\n onChange: handleChange,\n className: block('control'),\n onBlur: closeEditMode,\n onApply,\n })\n ) : (\n <TextInput\n className={block('control')}\n autoFocus\n size={controlSize}\n value={input}\n onUpdate={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={closeEditMode}\n />\n )}\n {withControls && (\n <>\n <Button\n className={block('control')}\n view={saveButtonView}\n extraProps={{onMouseDown: applyValue}}\n size={controlSize}\n >\n <Icon awesome={'check'} size={controlSize} />\n </Button>\n <Button\n className={block('control')}\n view={cancelButtonView}\n extraProps={{onMouseDown: closeAndResetValue}}\n size={controlSize}\n >\n <Icon awesome={'times'} size={controlSize} />\n </Button>\n </>\n )}\n </>\n ) : (\n <React.Fragment>\n {children}\n {!disableEdit && (\n <Button\n className={block('control', {type: 'edit'})}\n view=\"outlined\"\n onClick={startTextEdit}\n size={controlSize}\n >\n <Icon awesome={'pencil'} size={controlSize} />\n </Button>\n )}\n </React.Fragment>\n )}\n </div>\n );\n}\n\nexport function EditButton({\n onClick,\n size = 'm',\n}: {\n onClick: () => void;\n size?: ButtonProps['size'];\n}) {\n return (\n <Button className={block('edit-btn')} onClick={onClick} size={size}>\n <Icon awesome={'pencil'} />\n </Button>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport format from '../../common/hammer/format';\nimport Icon from '../../components/Icon/Icon';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {OrderType, nextSortOrderValue} from '../../utils/sort-helpers';\n\nimport './SortIcon.scss';\n\nconst block = cn('sort-icon');\n\nconst ICON_BY_TYPE = {\n ['']: 'sort',\n asc: 'sort-up',\n desc: 'sort-down',\n 'asc-undefined': 'arrow-to-bottom',\n 'desc-undefined': 'arrow-from-bottom',\n 'undefined-asc': 'arrow-from-top',\n 'undefined-desc': 'arrow-to-top',\n} as const;\n\ninterface Props {\n className?: string;\n label?: string;\n onChange?: (nextOrder: OrderType) => void;\n order?: OrderType;\n hidden?: boolean;\n allowUnordered?: boolean;\n withUndefined?: boolean;\n}\n\nexport default class SortIcon extends React.Component<Props> {\n onClick = () => {\n const {order, onChange, allowUnordered, withUndefined} = this.props;\n if (!onChange) {\n return;\n }\n\n const nextOrder = nextSortOrderValue(order, allowUnordered, withUndefined);\n onChange(nextOrder);\n };\n\n render() {\n const {className, label, order, hidden} = this.props;\n const icon = ICON_BY_TYPE[order || ''];\n\n return (\n <span className={block({hidden}, className)} onClick={this.onClick}>\n {label && <span className={block('label')}>{label}</span>}\n <Tooltip\n className={block('icon')}\n content={order ? format.ReadableField(order) : 'Unordered'}\n >\n <Icon awesome={icon} face=\"solid\" />\n </Tooltip>\n </span>\n );\n }\n}\n","import React from 'react';\nimport unipika from '../../common/thor/unipika';\nimport block from 'bem-cn-lite';\n\nimport Link from '../../components/Link/Link';\n\nimport hammer from '../../common/hammer';\nimport {showErrorPopup} from '../../utils/utils';\n\nimport './utils.scss';\n\nfunction wrapRenderMethods(templates) {\n return Object.keys(templates).reduce((newTemplates, key) => {\n newTemplates[key] = templates[key];\n\n return newTemplates;\n }, {});\n}\n\n/**\n * Template must be a scoped function, because they are bound to elements-table component instance\n * @param {ViewModel} item\n * @param {String} columnName\n */\nfunction defaultTemplate(item, columnName) {\n return String(hammer.format['ValueOrDefault'](item[columnName]));\n}\n\nfunction prepareTextProps(text, asHTML) {\n const props = {};\n\n if (asHTML) {\n // Need to render html strings\n props.dangerouslySetInnerHTML = {__html: text};\n } else {\n props.children = unipika.decode(String(text));\n }\n\n return props;\n}\n\nexport function renderText(text, settings = {}) {\n let className = block('elements-text');\n\n if (settings.mix) {\n className = className(\n false,\n block(settings.mix.block)(settings.mix.elem, {\n ...settings.mix.mods,\n }),\n );\n } else {\n className = className();\n }\n\n const textProps = prepareTextProps(text, settings.asHTML);\n\n const title = settings.title || text;\n\n return <span {...textProps} title={title} className={className} />;\n}\n\nexport function printColumnAsBytes(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Bytes'](column.get(item));\n}\n\nexport function printColumnAsNumber(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['Number'](column.get(item));\n}\n\nexport function printColumnAsTimeDurationWithMs(item, columnName) {\n const column = this.getColumn(columnName);\n return hammer.format['TimeDuration'](column.get(item), {\n format: 'milliseconds',\n });\n}\n\nexport function printColumnAsReadableField(item, columnName) {\n const column = this.getColumn(columnName);\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['ReadableField'](column.get(item))}\n </span>\n );\n}\n\nexport function printColumnAsTime(item, columnName) {\n const value = this?.getColumn ? this.getColumn(columnName).get(item) : item[columnName];\n return <ColumnAsTime value={value} />;\n}\n\nexport function ColumnAsTime({value}) {\n return (\n <span className=\"elements-ellipsis\">\n {hammer.format['DateTime'](value, {format: 'full'})}\n </span>\n );\n}\n\nexport function printColumnAsError(error) {\n const showError = () => {\n showErrorPopup(error, {hideOopsMsg: true});\n };\n return typeof error === 'object' ? (\n <Link theme=\"ghost\" onClick={showError}>\n View\n </Link>\n ) : (\n hammer.format.NO_VALUE\n );\n}\n\n// Using prepared table data\nexport function asBytes(item, columnName) {\n return hammer.format['Bytes'](item[columnName]);\n}\n\nexport function asNumber(item, columnName) {\n return hammer.format['Number'](item[columnName]);\n}\n\nexport default {\n __default__: defaultTemplate,\n _templates: {},\n add: function (templateId, templates) {\n this._templates[templateId] = wrapRenderMethods(templates);\n },\n get: function (templateId) {\n return this._templates[templateId] || {};\n },\n};\n","import type {RootState} from '../../reducers';\n\nexport const selectCellPreviewVisible = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.visible;\nexport const selectCellPreviewLoading = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.loading;\nexport const selectCellPreviewData = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.data;\nexport const selectCellPreviewYtCliDownloadCommand = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.ytCliDownloadCommand;\nexport const selectCellPreviewNoticeText = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.noticeText;\nexport const selectErrorPreviewCellPath = (state: RootState) =>\n state.navigation.modals.cellPreviewModal.error;\n","import React from 'react';\n\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Flex, Text} from '@gravity-ui/uikit';\n\nimport SimpleModal from '../../components/Modal/SimpleModal';\nimport {\n selectCellPreviewData,\n selectCellPreviewLoading,\n selectCellPreviewNoticeText,\n selectCellPreviewVisible,\n selectCellPreviewYtCliDownloadCommand,\n selectErrorPreviewCellPath,\n} from '../../store/selectors/modals/cell-preview';\n\nimport ClipboardButton from '../../components/ClipboardButton/ClipboardButton';\nimport block from 'bem-cn-lite';\n\nimport Yson from '../../components/Yson/Yson';\nimport Error from '../../components/Error/Error';\nimport {type YsonSettings, getPreviewCellYsonSettings} from '../../store/selectors/thor/unipika';\nimport {closeCellPreviewAndCancelRequest} from '../../store/actions/modals/cell-preview';\n\nimport './CellPreviewModal.scss';\n\nconst b = block('cell-preview-modal');\n\nexport const CellPreviewModal: React.FC = () => {\n const dispatch = useDispatch();\n\n const loading = useSelector(selectCellPreviewLoading);\n const data = useSelector(selectCellPreviewData);\n const visible = useSelector(selectCellPreviewVisible);\n const ytCliDownloadCommand = useSelector(selectCellPreviewYtCliDownloadCommand);\n const noticeText = useSelector(selectCellPreviewNoticeText);\n const error = useSelector(selectErrorPreviewCellPath);\n\n const unipikaSettings = useSelector(getPreviewCellYsonSettings);\n\n return (\n <SimpleModal\n title=\"Preview\"\n visible={visible}\n loading={loading}\n onCancel={() => dispatch(closeCellPreviewAndCancelRequest())}\n wrapperClassName={b('wrapper')}\n >\n <Flex\n qa=\"cell-preview-modal-content\"\n className={b('content')}\n gap={2}\n direction=\"column\"\n >\n <Flex gap={2} direction=\"column\">\n <Text variant=\"subheader-3\" color=\"secondary\">\n {noticeText}\n </Text>\n {ytCliDownloadCommand ? (\n <code className={b('command-wrapper')}>\n <div className={b('command')}>\n <div\n data-qa=\"cell-preview-command\"\n className={b('command-content')}\n title={ytCliDownloadCommand}\n >\n {ytCliDownloadCommand}\n </div>\n <ClipboardButton\n view={'flat-secondary'}\n text={ytCliDownloadCommand}\n size={'s'}\n />\n </div>\n </code>\n ) : null}\n </Flex>\n {error ? (\n <Error error={error} />\n ) : (\n <PreviewContent data={data} unipikaSettings={unipikaSettings} />\n )}\n </Flex>\n </SimpleModal>\n );\n};\n\ntype PreviewContentProps = {\n data: {$type: string; $value: any} | undefined;\n unipikaSettings: YsonSettings;\n};\n\nfunction PreviewContent(props: PreviewContentProps) {\n const {data, unipikaSettings} = props;\n\n switch (data?.$type) {\n case 'yql.string':\n case 'yql.json':\n return <pre className=\"elements-code\">{data.$value}</pre>;\n default:\n return (\n <Yson\n className={b('yson-container')}\n folding={true}\n value={data?.$value}\n tableSettings={{dynamicRenderScrollParentGetter: undefined}}\n settings={unipikaSettings}\n customLayout={({toolbar, content}) => {\n return (\n <>\n <div className={b('toolbar')}>{toolbar}</div>\n {content}\n </>\n );\n }}\n />\n );\n }\n}\n","import React, {FC} from 'react';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport cn from 'bem-cn-lite';\nimport './QueryClusterItem.scss';\nimport {Text} from '@gravity-ui/uikit';\nimport ClusterIcon from '../../../../components/ClusterIcon/ClusterIcon';\nimport {useClusterColorClassName} from '../../../../containers/ClusterPageHeader/ClusterColor';\n\nconst block = cn('query-cluster-item');\nconst IconBlock = cn('query-cluster-icon');\n\ntype Props = Pick<ClusterConfig, 'id' | 'name' | 'environment'> & {className?: string};\n\nexport const QueryClusterItem: FC<Props> = ({id, name, environment, className}) => {\n const clusterColorClassName = useClusterColorClassName(id);\n\n return (\n <div className={block(null, className)}>\n <ClusterIcon name={name} className={IconBlock(null, clusterColorClassName)} />\n <div className={block('info')}>\n {name}\n <Text color=\"secondary\" className={block('environment')}>\n {environment}\n </Text>\n </div>\n </div>\n );\n};\n","import {useCallback, useEffect} from 'react';\n\nexport const usePreventUnload = ({shouldListen}: {shouldListen: boolean}) => {\n const beforeUnloadHandler = useCallback((e: BeforeUnloadEvent) => {\n e.preventDefault();\n\n // Included for legacy support, e.g. Chrome/Edge < 119\n e.returnValue = true;\n }, []);\n\n useEffect(() => {\n if (shouldListen) {\n window.addEventListener('beforeunload', beforeUnloadHandler);\n }\n\n return () => window.removeEventListener('beforeunload', beforeUnloadHandler);\n }, [shouldListen]);\n};\n","import {createSelector} from 'reselect';\nimport {getSettingsData} from '../../../../store/selectors/settings-base';\n\nexport const getSettingQueryTrackerQueriesListSidebarVisibilityMode = createSelector(\n getSettingsData,\n (settings) => Boolean(settings['global::queryTracker::queriesListSidebarVisibilityMode']),\n);\n","import {useCallback} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueryItem} from '../../module/api';\nimport {\n getQueriesList,\n getQueriesListCursor,\n hasQueriesListMore,\n isQueriesListLoading,\n} from '../../module/queries_list/selectors';\nimport {loadNextQueriesList, resetCursor} from '../../module/queries_list/actions';\nimport {setSettingByKey} from '../../../../store/actions/settings';\nimport {getSettingQueryTrackerQueriesListSidebarVisibilityMode} from '../../module/settings/selector';\nimport {QueriesHistoryCursorDirection} from '../../../../pages/query-tracker/module/query-tracker-contants';\n\nexport function useQueryList(): [QueryItem[], boolean] {\n const items = useSelector(getQueriesList);\n const isLoading = useSelector(isQueriesListLoading);\n\n return [items, isLoading];\n}\n\nexport const useQueriesPagination = () => {\n const dispatch = useDispatch();\n const cursor = useSelector(getQueriesListCursor);\n const hasNext = useSelector(hasQueriesListMore);\n\n const goNext = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.PAST));\n }, [dispatch]);\n\n const goBack = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.FUTURE));\n }, [dispatch]);\n\n const reset = useCallback(() => {\n dispatch(resetCursor());\n }, [dispatch]);\n\n return {\n first: !cursor?.cursorTime,\n last: !hasNext,\n currentCursorTime: cursor?.cursorTime,\n goNext,\n goBack,\n goFirst: reset,\n };\n};\n\nexport const useQueriesListSidebarToggle = () => {\n const dispatch = useDispatch();\n const isQueriesListSidebarVisible = useSelector(\n getSettingQueryTrackerQueriesListSidebarVisibilityMode,\n );\n\n const toggleQueriesListSideBarToggle = () => {\n dispatch(\n setSettingByKey<boolean>(\n 'global::queryTracker::queriesListSidebarVisibilityMode',\n !isQueriesListSidebarVisible,\n ),\n );\n };\n\n return {\n isQueriesListSidebarVisible,\n toggleQueriesListSideBarToggle,\n };\n};\n","import {useDispatch, useSelector} from 'react-redux';\nimport {useCallback} from 'react';\nimport {applyFilter} from '../../module/queries_list/actions';\nimport {getQueriesListFilter, getQueriesListMode} from '../../module/queries_list/selectors';\nimport {QueriesListFilter, QueriesListMode} from '../../module/queries_list/types';\n\nexport const useQuriesHistoryFilter = (): [\n QueriesListFilter,\n QueriesListMode,\n <K extends keyof QueriesListFilter>(filter: K, value: QueriesListFilter[K]) => void,\n] => {\n const filter = useSelector(getQueriesListFilter);\n const filterPreset = useSelector(getQueriesListMode);\n const dispatch = useDispatch();\n const setFilter = useCallback(\n function setFilter<K extends keyof QueriesListFilter>(\n name: K,\n value: QueriesListFilter[K],\n ) {\n dispatch(\n applyFilter({\n [name]: value,\n }),\n );\n },\n [dispatch],\n );\n return [filter, filterPreset, setFilter];\n};\n","import {useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport {useHistory} from 'react-router';\nimport {createQueryUrl} from '../../utils/navigation';\nimport {QueryItem} from '../../module/api';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getQuery} from '../../module/query/selectors';\n\nexport const useQueryNavigation = (): [QueryItem['id'] | undefined, (id: QueryItem) => void] => {\n const selectedItem = useSelector(getQuery);\n const cluster = useSelector(getCluster);\n const history = useHistory();\n\n const goToQuery = useCallback(\n (item: QueryItem) => {\n history.push(createQueryUrl(cluster, item.id));\n },\n [history],\n );\n\n return [selectedItem?.id, goToQuery];\n};\n","import React, {useMemo, useState} from 'react';\nimport {YTDFDialog, makeErrorFields} from '../../../../components/Dialog';\nimport Button from '../../../../components/Button/Button';\nimport Icon from '../../../../components/Icon/Icon';\n\nimport {QueryItem, setQueryName} from '../../module/api';\nimport {useThunkDispatch} from '../../../../store/thunkDispatch';\n\nexport interface Props {\n query: QueryItem;\n className?: string;\n}\n\ninterface FormValues {\n name: string;\n}\n\nexport default function EditQueryNameModal({query, className}: Props) {\n const [error, setError] = useState(undefined);\n const [visible, setVisible] = useState(false);\n const {state} = query;\n\n const dispatch = useThunkDispatch();\n\n const initialValues = useMemo(() => {\n return {\n name: query.annotations?.title || '',\n };\n }, [query.annotations?.title]);\n\n const handleSubmit = (name: string) => {\n return dispatch(setQueryName(query.id, {...query.annotations, title: name}));\n };\n\n return state === 'completed' || state === 'failed' || state === 'draft' ? (\n <div\n className={className}\n onClick={(event) => {\n event.stopPropagation();\n }}\n onKeyDown={(event) => {\n event.stopPropagation();\n }}\n >\n <Button\n onClick={() => {\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={(form) => {\n const {name} = form.getState().values;\n return handleSubmit(name).catch((err) => {\n setError(err);\n throw err;\n });\n }}\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 {useDispatch, useSelector} from 'react-redux';\nimport intersectionBy_ from 'lodash/intersectionBy';\nimport {QueriesListAuthorFilter} from '../../module/queries_list/types';\nimport {AllColumns, AuthorColumns, MyColumns, NameColumns} from './index';\nimport {setSettingByKey} from '../../../../store/actions/settings';\nimport {getQueryListHistoryColumns} from '../../module/queries_list/selectors';\n\nexport const useQueryHistoryListColumns = ({type}: {type?: QueriesListAuthorFilter}) => {\n const dispatch = useDispatch();\n const selectedColumns = useSelector(getQueryListHistoryColumns);\n\n const handleColumnChange = (selectedColumns: {\n items: Array<{checked: boolean; name: string}>;\n }) => {\n dispatch(\n setSettingByKey(\n `global::queryTracker::history::Columns`,\n selectedColumns.items.filter(({checked}) => checked).map(({name}) => name),\n ),\n );\n };\n\n return React.useMemo(() => {\n const ALL_COLUMN_NAMES = intersectionBy_(AllColumns, MyColumns, 'name').map(\n (item) => item.name,\n );\n const EXCLUDED_COLUMNS = [NameColumns.name, AuthorColumns.name];\n const currentColumnsPreset = type === 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\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 handleColumnChange,\n };\n }, [type, selectedColumns]);\n};\n","import moment from 'moment';\nimport groupBy_ from 'lodash/groupBy';\nimport noop_ from 'lodash/noop';\nimport {Text} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport React, {useCallback, useContext, useEffect, useMemo, useRef} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport DataTable, {Column, Settings} from '@gravity-ui/react-data-table';\nimport {QueryItem, QueryStatus} from '../../module/api';\nimport {refreshQueriesListIfNeeded} from '../../module/queries_list/actions';\nimport {getQueriesListTimestamp, getUncompletedItems} from '../../module/queries_list/selectors';\nimport {QueryStatusIcon} from '../../QueryStatus';\nimport hammer from '../../../../common/hammer';\n\nimport Pagination from '../../../../components/Pagination/Pagination';\nimport {QueriesPoolingContext} from '../../hooks/QueriesPooling/context';\nimport {formatTime} from '../../../../components/common/Timeline/util';\nimport {QueryEnginesNames} from '../../utils/query';\nimport DataTableYT from '../../../../components/DataTableYT/DataTableYT';\nimport {useQuriesHistoryFilter} from '../../hooks/QueryListFilter';\nimport {QueryDuration} from '../../QueryDuration';\nimport {useQueryNavigation} from '../../hooks/Query';\nimport {useQueriesPagination, useQueryList} from '../../hooks/QueriesList';\nimport EditQueryNameModal from '../EditQueryNameModal/EditQueryNameModal';\nimport {UPDATE_QUERIES_LIST} from '../../module/query-tracker-contants';\nimport {useQueryHistoryListColumns} from './useQueryListColumns';\n\nimport './index.scss';\n\nconst b = block('queries-history-list');\n\nconst itemBlock = block('query-history-item');\n\nfunction useQueriesHistoryUpdate() {\n const pollingContext = useContext(QueriesPoolingContext);\n const uncompletedItems = useSelector(getUncompletedItems);\n const dispatch = useDispatch();\n\n const queryListUpdateHandler = useMemo(\n () => (items: QueryItem[]) => {\n dispatch({\n type: UPDATE_QUERIES_LIST,\n data: items,\n });\n },\n [dispatch],\n );\n\n useEffect(\n function pollingEffect() {\n if (!uncompletedItems?.length) {\n return;\n }\n pollingContext.watch(uncompletedItems, queryListUpdateHandler);\n },\n [pollingContext, queryListUpdateHandler, uncompletedItems],\n );\n}\n\nfunction useRefreshHistoryList(timeout = 5000) {\n // Naive history list's polling impl\n const dispatch = useDispatch();\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n function start() {\n timer = setTimeout(() => {\n dispatch(refreshQueriesListIfNeeded(start));\n }, timeout);\n }\n\n start();\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [timeout, dispatch]);\n}\n\nfunction useQueryHistoryList() {\n useRefreshHistoryList();\n useQueriesHistoryUpdate();\n return useQueryList();\n}\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 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 <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];\nexport const AllColumns: Column<TableItem>[] = [\n NameColumns,\n TypeColumns,\n DurationColumns,\n AuthorColumns,\n StartedColumns,\n ACOColumns,\n];\n\nconst tableSettings: Settings = {\n displayIndices: false,\n sortable: false,\n stickyHead: DataTable.MOVING,\n syncHeadOnResize: true,\n};\n\nexport function QueriesHistoryList() {\n const [items, isLoading] = useQueryHistoryList();\n const [filter] = useQuriesHistoryFilter();\n const {columns} = useQueryHistoryListColumns({type: filter.user});\n const timestamp = useSelector(getQueriesListTimestamp);\n const {first, last, goBack, goNext, goFirst} = useQueriesPagination();\n const [selectedId, goToQuery] = useQueryNavigation();\n const scrollElemRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (scrollElemRef?.current) {\n scrollElemRef.current.scrollTop = 0;\n }\n }, [scrollElemRef, timestamp]);\n\n const setClassName = useCallback(\n (item: TableItem) => {\n if (isHeaderTableItem(item)) {\n return itemBlock({\n header: Boolean(item.header),\n });\n }\n\n return itemBlock({\n selected: item.id === selectedId,\n });\n },\n [selectedId],\n );\n\n const itemsByDate = useMemo(\n () =>\n Object.entries(\n groupBy_(items, (item) => moment(item.start_time).format('DD MMMM YYYY')),\n ).reduce((ret, [header, items]) => {\n ret.push({\n header,\n });\n\n return ret.concat(items.map((item) => item));\n }, [] as Array<TableItem>),\n [items],\n );\n\n return (\n <div className={b()}>\n <div className={b('list-wrapper')} ref={scrollElemRef}>\n <DataTableYT\n className={b('list')}\n loading={isLoading}\n columns={columns}\n data={itemsByDate}\n useThemeYT={true}\n rowKey={(row) => {\n if (isHeaderTableItem(row)) {\n return row.header;\n }\n\n return row.id;\n }}\n onRowClick={(item) => {\n if (!isHeaderTableItem(item)) {\n goToQuery(item);\n }\n }}\n disableRightGap={true}\n settings={tableSettings}\n rowClassName={setClassName}\n getColSpansOfRow={({row}) => {\n if (isHeaderTableItem(row)) {\n return {\n Name: columns.length,\n };\n }\n\n return undefined;\n }}\n />\n <div className={b('pagination')}>\n {(!first || !last) && (\n <Pagination\n size=\"m\"\n first={{\n handler: goFirst,\n disabled: first,\n }}\n previous={{\n handler: goBack,\n disabled: first,\n }}\n next={{\n handler: goNext,\n disabled: last,\n }}\n last={{\n handler: noop_,\n disabled: true,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n","const SvgLearn = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 14\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M6.836 2.202 1.74 4.386a.396.396 0 0 0 0 .728l5.096 2.184a2.5 2.5 0 0 0 .985.202h.358a2.5 2.5 0 0 0 .985-.202l5.096-2.184a.396.396 0 0 0 0-.728L9.164 2.202A2.5 2.5 0 0 0 8.179 2h-.358a2.5 2.5 0 0 0-.985.202M1.5 6.642l1.5.644v3.228a2 2 0 0 0 1.106 1.789l.806.403a7 7 0 0 0 6.193.033l.909-.442a2 2 0 0 0 1.125-1.798V7.226l1.712-.734a1.896 1.896 0 0 0 0-3.484L9.755.823A4 4 0 0 0 8.179.5h-.358a4 4 0 0 0-1.576.323L1.15 3.008A1.9 1.9 0 0 0 0 4.75v4.5a.75.75 0 0 0 1.5 0zm3 3.872V7.929l1.745.748A4 4 0 0 0 7.821 9h.358a4 4 0 0 0 1.576-.323l1.884-.808v2.63a.5.5 0 0 1-.282.45l-.909.442a5.5 5.5 0 0 1-4.865-.027l-.807-.403a.5.5 0 0 1-.276-.447\" clipRule=\"evenodd\" /></svg>;\nexport default SvgLearn;","import React, {useMemo} from 'react';\nimport cn from 'bem-cn-lite';\nimport {Icon, List, ListItemData, Loader, Text} from '@gravity-ui/uikit';\nimport {QueryItem} from '../../module/api';\nimport {useQueryList} from '../../hooks/QueriesList';\nimport {useQueryNavigation} from '../../hooks/Query';\nimport tutorialIcon from '../../../../assets/img/svg/learn.svg';\nimport './index.scss';\n\nconst itemCn = cn('query-tutorial-item');\nconst block = cn('queries-tutorial-list');\n\nfunction renderItem(item: QueryItem) {\n return (\n <>\n <Icon className={itemCn('icon')} data={tutorialIcon} />\n <Text className={itemCn('text')} ellipsis title={item?.annotations?.title}>\n {item?.annotations?.title || 'No name'}\n </Text>\n </>\n );\n}\n\nexport function QueriesTutorialList({className}: {className: string}) {\n const [items, isLoading] = useQueryList();\n\n const [selectedId, goToQuery] = useQueryNavigation();\n\n const selectedIndex = useMemo(() => {\n return items.findIndex((query) => query.id === selectedId);\n }, [selectedId, items]);\n\n const tutorialFilter = useMemo(() => {\n return (filter: string) => {\n return (item: ListItemData<QueryItem>) => {\n return (\n item?.annotations?.title\n ?.toLocaleLowerCase()\n .includes(filter.toLocaleLowerCase()) || false\n );\n };\n };\n }, []);\n\n return (\n <div className={block(null, className)}>\n <List\n className={block('list', {loading: isLoading})}\n filterable={true}\n filterClassName={block('filter')}\n filterPlaceholder={'Filter by name'}\n filterItem={tutorialFilter}\n virtualized={false}\n selectedItemIndex={selectedIndex}\n sortable={false}\n itemHeight={32}\n itemClassName={itemCn()}\n items={isLoading ? [] : items}\n renderItem={renderItem}\n onItemClick={goToQuery}\n />\n {isLoading && (\n <div className={block('loader')}>\n <Loader size=\"l\" />\n </div>\n )}\n </div>\n );\n}\n","import React, {useCallback, useMemo} from 'react';\nimport {ControlGroupOption, RadioButton} from '@gravity-ui/uikit';\nimport {Engines} from '../../module/api';\nimport {QueryEngine} from '../../module/engines';\nimport {QueryEnginesNames} from '../../utils/query';\n\nconst ALL_ENGINE_KEY = '__all';\n\nexport function QueryEngineFilter({\n value,\n onChange,\n className,\n engines = Engines,\n}: {\n engines?: QueryEngine[];\n value?: QueryEngine;\n className?: string;\n onChange: (value?: QueryEngine) => void;\n}) {\n const enginesList = useMemo<ControlGroupOption[]>(() => {\n return [\n {\n value: ALL_ENGINE_KEY,\n content: 'All',\n },\n ...engines.map((engine) => {\n return {\n value: engine,\n content: QueryEnginesNames[engine],\n };\n }),\n ];\n }, [engines]);\n\n const onChangeEngineFilter = useCallback(\n (engine: string) => {\n onChange(engine === ALL_ENGINE_KEY ? undefined : (engine as QueryEngine));\n },\n [onChange],\n );\n return (\n <RadioButton\n className={className}\n options={enginesList}\n value={value || ALL_ENGINE_KEY}\n onUpdate={onChangeEngineFilter}\n />\n );\n}\n","import {TextInput} from '@gravity-ui/uikit';\nimport debounce_ from 'lodash/debounce';\nimport React, {useEffect, useMemo, useState} from 'react';\n\nexport type QueryTextFilterProps = {\n value?: string;\n placeholder: string;\n onChange: (value?: string) => void;\n delay?: number;\n};\n\nexport function QueryTextFilter({value, placeholder, onChange, delay = 200}: QueryTextFilterProps) {\n const [pattern, setPattern] = useState<string>(value || '');\n\n const debouncedChange = useMemo(() => {\n return debounce_((value: string) => {\n onChange(value);\n }, delay);\n }, [onChange, delay]);\n\n useEffect(() => {\n debouncedChange(pattern);\n return () => {\n debouncedChange.cancel();\n };\n }, [pattern, debouncedChange]);\n\n return (\n <TextInput\n placeholder={placeholder}\n value={pattern}\n onBlur={() => debouncedChange.flush()}\n onUpdate={setPattern}\n />\n );\n}\n","import React, {useCallback} from 'react';\nimport block from 'bem-cn-lite';\nimport {ControlGroupOption, Icon as GravityIcon, RadioButton, Tooltip} from '@gravity-ui/uikit';\nimport {QueriesListAuthorFilter, QueriesListMode} from '../../module/queries_list/types';\nimport CircleQuestionIcon from '@gravity-ui/icons/svgs/circle-question.svg';\n\nimport './index.scss';\nimport {QueryEngineFilter} from './QueryEngineFilter';\nimport {QueryEngine} from '../../module/engines';\nimport {QueryTextFilter} from './QueryTextFilter';\nimport {useQuriesHistoryFilter} from '../../hooks/QueryListFilter';\nimport Dropdown from '../../../../components/Dropdown/Dropdown';\nimport Button from '../../../../components/Button/Button';\nimport Icon from '../../../../components/Icon/Icon';\nimport ColumnSelector from '../../../../components/ColumnSelector/ColumnSelector';\nimport {useQueryHistoryListColumns} from '../QueriesHistoryList/useQueryListColumns';\n\nconst AuthorFilter: ControlGroupOption[] = [\n {\n value: QueriesListAuthorFilter.My,\n content: 'My',\n },\n {\n value: QueriesListAuthorFilter.All,\n content: 'All',\n },\n];\n\nconst b = block('queries-history-filter');\n\ntype QueriesHistoryListFilterProps = {\n className?: string;\n};\n\nexport function QueriesHistoryListFilter({className}: QueriesHistoryListFilterProps) {\n const [filter, filterViewMode, onChange] = useQuriesHistoryFilter();\n const {allowedColumns, handleColumnChange} = useQueryHistoryListColumns({type: filter.user});\n\n const onChangeAuthorFilter = useCallback(\n (user: string) => {\n onChange('user', user as QueriesListAuthorFilter);\n },\n [onChange],\n );\n const onChangeEngineFilter = useCallback(\n (engine?: QueryEngine) => {\n onChange('engine', engine);\n },\n [onChange],\n );\n const onChangeTextFilter = useCallback(\n (text?: string) => {\n onChange('filter', text || undefined);\n },\n [onChange],\n );\n return (\n <div className={b(null, className)}>\n <div className={b('row')}>\n {filterViewMode === QueriesListMode.History && (\n <RadioButton\n options={AuthorFilter}\n value={filter?.user || QueriesListAuthorFilter.My}\n onUpdate={onChangeAuthorFilter}\n />\n )}\n <QueryEngineFilter value={filter?.engine} onChange={onChangeEngineFilter} />\n </div>\n {filterViewMode === QueriesListMode.History && (\n <div className={b('row')}>\n <QueryTextFilter\n placeholder=\"Search in query name, body and access control\"\n value={filter?.filter}\n onChange={onChangeTextFilter}\n />\n <Tooltip\n content={\n <>\n Search in query text, annotations and access control\n <br />\n Use `&quot;title&quot;=&quot;test_name&quot;` to search in query\n name\n <br />\n Use `aco:nobody` to search in query access control\n </>\n }\n >\n <GravityIcon data={CircleQuestionIcon} size={16} />\n </Tooltip>\n <Dropdown\n trigger=\"click\"\n directions={['bottom']}\n button={\n <Button pin={'round-round'} className={b('columns-button')}>\n <Icon awesome=\"table\" face=\"light\" />\n </Button>\n }\n template={\n <ColumnSelector items={allowedColumns} onChange={handleColumnChange} />\n }\n />\n </div>\n )}\n </div>\n );\n}\n","import {lazy} from 'react';\nimport withLazyLoading from '../../../hocs/withLazyLoading';\n\nfunction importVcs() {\n return import(/* webpackChunkName: \"vcs\" */ './Vcs');\n}\n\nexport const Vcs = withLazyLoading(\n lazy(async () => {\n return {default: (await importVcs()).Vcs};\n }),\n);\n","import {lazy} from 'react';\nimport withLazyLoading from '../../../hocs/withLazyLoading';\n\nfunction importVcs() {\n return import(/* webpackChunkName: \"query-navigation\" */ './Navigation');\n}\n\nexport const Navigation = withLazyLoading(\n lazy(async () => {\n return {default: (await importVcs()).Navigation};\n }),\n);\n","import React, {useCallback, useEffect, useMemo} from 'react';\nimport block from 'bem-cn-lite';\nimport {Tabs, TabsItemProps} from '@gravity-ui/uikit';\nimport {QueriesHistoryList} from './QueriesHistoryList';\n\nimport {getQueriesListMode} from '../module/queries_list/selectors';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueriesListMode, getQueriesListModes} from '../module/queries_list/types';\nimport {applyListMode, requestQueriesList} from '../module/queries_list/actions';\n\nimport './index.scss';\nimport {QueriesTutorialList} from './QueriesTutorialList';\nimport {QueriesHistoryListFilter} from './QueriesListFilter';\nimport {Vcs} from '../Vcs';\nimport {Navigation} from '../Navigation';\nimport {selectIsVcsVisible} from '../module/vcs/selectors';\n\nconst b = block('queires-list');\n\nconst TabNames = {\n [QueriesListMode.History]: 'History',\n [QueriesListMode.Tutorials]: 'Tutorials',\n [QueriesListMode.VCS]: 'VCS',\n [QueriesListMode.Navigation]: 'Navigation',\n};\n\nconst useQueryTabs = (): [TabsItemProps[], string, (tab: string) => void] => {\n const dispatch = useDispatch();\n const selectedTab = useSelector(getQueriesListMode);\n const isVcsVisible = useSelector(selectIsVcsVisible);\n const setTab = useCallback(\n (tab: string) => {\n dispatch(applyListMode(tab as QueriesListMode));\n },\n [dispatch],\n );\n\n const tabOptions = useMemo<TabsItemProps[]>(() => {\n return getQueriesListModes({vcs: isVcsVisible}).map((tab) => {\n return {\n id: tab as unknown as string,\n title: TabNames[tab],\n };\n });\n }, [isVcsVisible]);\n return [tabOptions, (selectedTab || QueriesListMode.History).toString(), setTab];\n};\n\nexport function QueriesList() {\n const [tabs, tab, setTab] = useQueryTabs();\n\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(requestQueriesList());\n }, [dispatch]);\n\n const isVsc = tab === QueriesListMode.VCS;\n\n if (tab === QueriesListMode.Navigation)\n return (\n <div className={b()}>\n <Tabs className={b('tabs')} items={tabs} activeTab={tab} onSelectTab={setTab} />\n <div className={b('content')}>\n <Navigation />\n </div>\n </div>\n );\n\n return (\n <div className={b()}>\n <Tabs className={b('tabs')} items={tabs} activeTab={tab} onSelectTab={setTab} />\n <div className={b('content')}>\n {!isVsc && <QueriesHistoryListFilter className={b('filter')} />}\n\n {tab === QueriesListMode.History && <QueriesHistoryList />}\n {tab === QueriesListMode.Tutorials && (\n <QueriesTutorialList className={b('list-content')} />\n )}\n {isVsc && <Vcs />}\n </div>\n </div>\n );\n}\n","const SvgLayoutColumns = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M8.75 3.5H12A1.5 1.5 0 0 1 13.5 5v6a1.5 1.5 0 0 1-1.5 1.5H8.75zm-1.5 0H4A1.5 1.5 0 0 0 2.5 5v6A1.5 1.5 0 0 0 4 12.5h3.25zM1 5a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgLayoutColumns;","import React, {FC, useRef} from 'react';\nimport {setFileEditor} from '../module/queryFilesForm/queryFilesFormSlice';\nimport {selectFileEditorConfig} from '../module/queryFilesForm/selectors';\nimport {changeQueryFile} from '../module/queryFilesForm/actions';\nimport {useDispatch, useSelector} from 'react-redux';\nimport FileIcon from '@gravity-ui/icons/svgs/file.svg';\nimport XmarkIcon from '@gravity-ui/icons/svgs/xmark.svg';\nimport SquareIcon from '@gravity-ui/icons/svgs/square.svg';\nimport LayoutColumnsIcon from '@gravity-ui/icons/svgs/layout-columns.svg';\nimport {Button, Icon, Text} from '@gravity-ui/uikit';\nimport './FileEditor.scss';\nimport cn from 'bem-cn-lite';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor';\nimport * as monaco from 'monaco-editor';\n\nconst block = cn('file-editor');\n\nconst MONACO_CONFIG: MonacoEditorConfig = {\n fontSize: 14,\n language: 'plaintext',\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n};\n\nexport const FileEditor: FC = () => {\n const dispatch = useDispatch();\n const {fileEditor, file} = useSelector(selectFileEditorConfig);\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n const handleOnChange = (content: string) => {\n if (!file) return;\n dispatch(changeQueryFile({...file, content}));\n };\n\n const handleOnClose = () => {\n dispatch(setFileEditor({...fileEditor, isOpen: false, isFullWidth: false}));\n };\n\n const handleOnWidthToggle = () => {\n dispatch(setFileEditor({...fileEditor, isFullWidth: !fileEditor.isFullWidth}));\n };\n\n if (!file) return null;\n\n return (\n <div className={block()}>\n <div className={block('header')}>\n <div className={block('header-side')}>\n <Icon data={FileIcon} size={16} />\n <Text variant=\"subheader-1\" ellipsis>\n {file.name}\n </Text>\n </div>\n <div className={block('header-side')}>\n <Button view=\"flat\" onClick={handleOnWidthToggle}>\n <Icon\n data={fileEditor.isFullWidth ? LayoutColumnsIcon : SquareIcon}\n size={16}\n />\n </Button>\n <Button view=\"flat\" onClick={handleOnClose}>\n <Icon data={XmarkIcon} size={16} />\n </Button>\n </div>\n </div>\n <MonacoEditor\n className={block('editor')}\n editorRef={editorRef}\n value={file.content || ''}\n language=\"plaintext\"\n onChange={handleOnChange}\n monacoConfig={MONACO_CONFIG}\n />\n </div>\n );\n};\n","import React, {FC, useState} from 'react';\nimport QueryEditor from '../QueryEditor/QueryEditor';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {FileEditor} from '../FileEditor';\n\nconst EDITOR_INITIAL_SIZE = [50, 50];\n\ntype Props = {\n fileEditorFullWidth: boolean;\n fileEditorVisible: boolean;\n onStartQuery: (queryId: string) => void;\n};\n\nexport const QueryEditorSplit: FC<Props> = ({\n fileEditorFullWidth,\n fileEditorVisible,\n onStartQuery,\n}) => {\n const [sizes, setSize] = useState(EDITOR_INITIAL_SIZE);\n const hideQueryEditor = !(fileEditorVisible && fileEditorFullWidth);\n\n return (\n <FlexSplitPane\n direction={FlexSplitPane.HORIZONTAL}\n onResizeEnd={setSize}\n getInitialSizes={sizes}\n >\n {hideQueryEditor && <QueryEditor onStartQuery={onStartQuery} showStatusInTitle />}\n {fileEditorVisible && <FileEditor />}\n </FlexSplitPane>\n );\n};\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {Route, Switch} from 'react-router';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueriesPooling} from '../hooks/QueriesPooling/context';\nimport {isEngine} from '../module/api';\nimport {QueryEngine} from '../module/engines';\nimport {\n createEmptyQuery,\n createQueryFromTablePath,\n goToQuery,\n loadQuery,\n} from '../module/query/actions';\nimport {usePreventUnload} from '../../../hooks/use-prevent-unload';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\nimport {getDirtySinceLastSubmit, getQueryGetParams} from '../module/query/selectors';\nimport {QueriesList} from '../QueriesList';\nimport {useQueryACO} from '../QueryACO/useQueryACO';\nimport {MonacoContext} from '../context/MonacoContext';\n\nimport cn from 'bem-cn-lite';\n\nimport './QueryTracker.scss';\nimport {QueryEditorSplit} from './QueryEditorSplit';\nimport {selectFileEditor} from '../module/queryFilesForm/selectors';\nimport {selectNavigationCluster} from '../module/queryNavigation/selectors';\nimport {setSettingByKey} from '../../../store/actions/settings';\nimport {CellPreviewModal} from '../../../containers/CellPreviewModal/CellPreviewModal';\nimport {SET_QUERY_PARAMS} from '../module/query-tracker-contants';\n\nconst b = cn('query-tracker-page');\n\ntype Props = {\n match: {\n path: string;\n params: {\n queryId?: string;\n };\n };\n location: {\n search: string;\n };\n};\n\nconst initialSizes = [23, 77];\nconst minSize = 380; // see history list's cells size\n\nfunction QueryPageDraft() {\n const dispatch = useDispatch();\n const routeParams = useSelector(getQueryGetParams);\n const cluster = useSelector(selectNavigationCluster);\n\n useEffect(() => {\n const engine =\n routeParams.engine && isEngine(routeParams.engine)\n ? (routeParams.engine as QueryEngine)\n : QueryEngine.YQL;\n if (routeParams.cluster && routeParams.path) {\n if (routeParams.useDraft) {\n dispatch({\n type: SET_QUERY_PARAMS,\n data: {\n params: {\n ...routeParams,\n useDraft: undefined,\n },\n },\n });\n }\n dispatch(\n createQueryFromTablePath(engine, routeParams.cluster, routeParams.path, {\n useDraft: true,\n }),\n );\n } else {\n dispatch(createEmptyQuery(engine));\n }\n if (cluster) {\n dispatch(\n setSettingByKey<boolean>(\n 'global::queryTracker::queriesListSidebarVisibilityMode',\n true,\n ),\n );\n }\n }, [dispatch]);\n return null;\n}\n\nfunction QueryPage(props: Props) {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({\n type: SET_QUERY_PARAMS,\n data: {\n params: {},\n },\n });\n if (props.match.params.queryId) {\n dispatch(loadQuery(props.match.params.queryId));\n } else {\n dispatch(createEmptyQuery());\n }\n }, [dispatch, props.match.params.queryId]);\n return null;\n}\n\nexport default function QueryTracker({match}: Props) {\n const {isQueriesListSidebarVisible} = useQueriesListSidebarToggle();\n const isQueryStateDirty = useSelector(getDirtySinceLastSubmit);\n const fileEditor = useSelector(selectFileEditor);\n usePreventUnload({shouldListen: isQueryStateDirty});\n const [sizes, setSize] = useState(initialSizes);\n const getSize = useMemo(() => {\n return () => sizes;\n }, [sizes]);\n const dispatch = useDispatch();\n const {loadQueryTrackerInfo} = useQueryACO();\n\n const goToCreatedQuery = useCallback(\n (queryId: string) => {\n dispatch(goToQuery(queryId));\n return true;\n },\n [dispatch],\n );\n\n useEffect(() => {\n loadQueryTrackerInfo();\n }, []);\n\n return (\n <>\n <Switch>\n <Route exact path={match.path} component={QueryPageDraft} />\n <Route path={`${match.path}/:queryId`} component={QueryPage} />\n </Switch>\n <MonacoContext.Provider value={new Map()}>\n <QueriesPooling>\n <FlexSplitPane\n className={b('container')}\n direction={FlexSplitPane.HORIZONTAL}\n onResizeEnd={setSize}\n minSize={minSize}\n getInitialSizes={getSize}\n >\n {isQueriesListSidebarVisible ? <QueriesList /> : null}\n <QueryEditorSplit\n fileEditorFullWidth={fileEditor.isFullWidth}\n fileEditorVisible={fileEditor.isOpen}\n onStartQuery={goToCreatedQuery}\n />\n </FlexSplitPane>\n </QueriesPooling>\n </MonacoContext.Provider>\n <CellPreviewModal />\n </>\n );\n}\n","import React from 'react';\nimport {Button} from '@gravity-ui/uikit';\nimport Icon from '../../../components/Icon/Icon';\nimport {useQueriesListSidebarToggle} from '../hooks/QueriesList';\n\nexport function QueriesListSidebarToggleButton() {\n const {isQueriesListSidebarVisible, toggleQueriesListSideBarToggle} =\n useQueriesListSidebarToggle();\n\n return (\n <Button\n view=\"outlined\"\n size=\"l\"\n title={`${isQueriesListSidebarVisible ? 'Hide' : 'Show'} queries list`}\n onClick={toggleQueriesListSideBarToggle}\n >\n <Icon awesome=\"layout-side-content\" size={16} />\n </Button>\n );\n}\n","import React, {FC} from 'react';\nimport {QueriesListSidebarToggleButton} from '../QueriesListSidebarToggleButton/QueriesListSidebarToggleButton';\nimport {NewQueryButton} from '../NewQueryButton';\nimport {Flex} from '@gravity-ui/uikit';\n\ntype Props = {\n onQueryCreate: () => void;\n};\n\nexport const RightButtonsGroup: FC<Props> = ({onQueryCreate}) => {\n return (\n <Flex gap={2}>\n <QueriesListSidebarToggleButton />\n <NewQueryButton onClick={onQueryCreate} />\n </Flex>\n );\n};\n","import React, {ReactElement} from 'react';\nimport {Select, SelectProps, TextInput} from '@gravity-ui/uikit';\nimport type {Option} from '@gravity-ui/uikit/build/esm/components/Select/tech-components';\nimport {SelectOption} from '@gravity-ui/uikit/build/esm/components/Select/types';\nimport './QuerySelector.scss';\nimport cn from 'bem-cn-lite';\n\nconst controlBlock = cn('yt-query-selector-control');\nconst popupBlock = cn('yt-query-selector-popup');\n\ntype Props<T> = {\n items: T[];\n value?: string;\n onChange: (value: string) => void;\n children: (items: T[]) => ReactElement<SelectOption<T>, typeof Option>[];\n} & Omit<SelectProps, 'children' | 'onUpdate' | 'value'>;\n\nconst Filter: Required<SelectProps>['renderFilter'] = ({onChange, onKeyDown, ref, value}) => {\n return (\n <div className={popupBlock('filter')}>\n <TextInput\n ref={ref}\n value={value}\n size=\"l\"\n onKeyDown={onKeyDown}\n onChange={(e) => onChange(e.target.value)}\n />\n </div>\n );\n};\n\nexport const QuerySelector = <T,>({\n items,\n children,\n className,\n popupClassName,\n onChange,\n value,\n ...props\n}: Props<T>): JSX.Element => {\n const handleChange = (values: string[]) => {\n onChange(values.length ? values[0] : '');\n };\n\n return (\n <Select\n size=\"l\"\n filterable\n className={controlBlock(null, className)}\n popupClassName={popupBlock(null, popupClassName)}\n value={value ? [value] : []}\n onUpdate={handleChange}\n renderFilter={Filter}\n {...props}\n >\n {children(items)}\n </Select>\n );\n};\n","import React, {FC} from 'react';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport {QueryClusterItem} from './QueryClusterItem';\nimport {Select} from '@gravity-ui/uikit';\nimport {QuerySelector} from '../QuerySelector';\n\ntype Props = {\n clusters: ClusterConfig[];\n value: string | undefined;\n onChange: (clusterId: string) => void;\n};\n\nexport const QueryClusterSelector: FC<Props> = ({clusters, value, onChange}) => {\n return (\n <QuerySelector\n placeholder=\"Cluster\"\n filterPlaceholder=\"Search\"\n items={clusters}\n onChange={onChange}\n hasClear\n value={value}\n getOptionHeight={() => 52}\n >\n {(items) =>\n items.map(({id, name, environment}) => (\n <Select.Option key={id} value={id}>\n <QueryClusterItem id={id} name={name} environment={environment} />\n </Select.Option>\n ))\n }\n </QuerySelector>\n );\n};\n","import React, {FC} from 'react';\nimport {ChytInfo} from '../../../../store/reducers/chyt/list';\nimport './QueryCliqueItem.scss';\nimport cn from 'bem-cn-lite';\nimport {Text} from '@gravity-ui/uikit';\n\nconst block = cn('query-clique-item');\n\ntype Props = {\n name: ChytInfo['alias'];\n ytId: ChytInfo['yt_operation_id'];\n};\n\nexport const QueryCliqueItem: FC<Props> = ({name, ytId}) => {\n return (\n <div className={block()}>\n {name}\n <Text color=\"secondary\">{ytId}</Text>\n </div>\n );\n};\n","import React, {FC} from 'react';\nimport {QueryCliqueItem} from './QueryCliqueItem';\nimport {QuerySelector} from '../QuerySelector';\nimport {Flex, Select} from '@gravity-ui/uikit';\n\ntype Props = {\n loading: boolean;\n cliqueList: {alias: string; yt_operation_id?: string}[];\n value: string | undefined;\n placeholder?: string;\n onChange: (alias: string) => void;\n};\n\nexport const QueryCliqueSelector: FC<Props> = ({\n cliqueList,\n value,\n placeholder = 'Clique alias',\n loading,\n onChange,\n}) => {\n return (\n <QuerySelector\n placeholder={placeholder}\n filterPlaceholder=\"Search\"\n hasClear\n items={cliqueList}\n value={value}\n loading={loading}\n onChange={onChange}\n getOptionHeight={() => 52}\n disabled={loading && !cliqueList.length}\n renderEmptyOptions={() => <Flex justifyContent=\"center\">No access clique</Flex>}\n >\n {(items) =>\n items.map(({alias, yt_operation_id}) => (\n <Select.Option key={alias} value={alias}>\n <QueryCliqueItem name={alias} ytId={yt_operation_id} />\n </Select.Option>\n ))\n }\n </QuerySelector>\n );\n};\n","import React, {FC} from 'react';\nimport {QueryClusterSelector} from './QueryClusterSelector';\nimport {ClusterConfig} from '../../../../shared/yt-types';\nimport {QueryEngine} from '../module/engines';\nimport {QueryCliqueSelector} from './QueryCliqueSelector';\n\ntype Props = {\n settings?: Record<string, string>;\n engine: QueryEngine;\n clusters: ClusterConfig[];\n cliqueMap: Record<string, Record<string, {alias: string; yt_operation_id?: string}[]>>;\n cliqueLoading: boolean;\n onClusterChange: (clusterId: string) => void;\n onCliqueChange: (alias: string) => void;\n onPathChange: (path: string) => void;\n};\nexport const QuerySelectorsByEngine: FC<Props> = ({\n settings = {},\n clusters,\n cliqueMap,\n cliqueLoading,\n engine,\n onClusterChange,\n onCliqueChange,\n onPathChange,\n}) => {\n const clusterCliqueList =\n settings.cluster && settings.cluster in cliqueMap ? cliqueMap[settings.cluster] : {};\n const cliqueList = engine in clusterCliqueList ? clusterCliqueList[engine] : [];\n\n if (engine === QueryEngine.CHYT) {\n return (\n <>\n <QueryClusterSelector\n clusters={clusters}\n value={settings.cluster}\n onChange={onClusterChange}\n />\n <QueryCliqueSelector\n loading={cliqueLoading}\n cliqueList={cliqueList}\n value={settings.clique}\n onChange={onCliqueChange}\n />\n </>\n );\n }\n\n if (engine === QueryEngine.SPYT) {\n return (\n <>\n <QueryClusterSelector\n clusters={clusters}\n value={settings.cluster}\n onChange={onClusterChange}\n />\n <QueryCliqueSelector\n placeholder=\"Discovery path\"\n loading={cliqueLoading}\n cliqueList={cliqueList}\n value={settings.discovery_group}\n onChange={onPathChange}\n />\n </>\n );\n }\n\n return (\n <QueryClusterSelector\n clusters={clusters}\n value={settings.cluster}\n onChange={onClusterChange}\n />\n );\n};\n","import React, {FC, useCallback, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {RowWithName} from '../../../containers/AppNavigation/TopRowContent/SectionName';\nimport {Page} from '../../../../shared/constants/settings';\nimport {\n getCliqueLoading,\n getCliqueMap,\n getQueryDraft,\n getQueryGetParams,\n} from '../module/query/selectors';\nimport {loadCliqueByCluster, resetQueryTracker, updateQueryDraft} from '../module/query/actions';\nimport {RightButtonsGroup} from './RightButtonsGroup';\nimport {HeadSpacer} from '../../../containers/ClusterPageHeader/HeadSpacer';\nimport {Flex, Text, Tooltip} from '@gravity-ui/uikit';\nimport {QueryEngineSelect, QueryEngineSelector} from '../QueryEngineSelector';\nimport {QuerySettingsButton} from '../QuerySettingsButton';\nimport {QueryFilesButton} from '../QueryFilesButton';\nimport {getClusterList} from '../../../store/selectors/slideoutMenu';\nimport {QuerySelectorsByEngine} from './QuerySelectorsByEngine';\nimport {QueryEngine} from '../module/engines';\nimport './QueryTrackerTopRow.scss';\nimport cn from 'bem-cn-lite';\nimport {EditableAsText} from '../../../components/EditableAsText/EditableAsText';\nimport {useIsDesktop} from '../../../hooks/useIsDesktop';\n\nconst NAME_PLACEHOLDER = 'No name';\nconst block = cn('query-tracker-top-row');\n\nconst QueryTrackerTopRow: FC = () => {\n const dispatch = useDispatch();\n const {cluster, path} = useSelector(getQueryGetParams);\n const {annotations, settings, engine} = useSelector(getQueryDraft);\n const clusters = useSelector(getClusterList);\n const cliqueMap = useSelector(getCliqueMap);\n const cliqueLoading = useSelector(getCliqueLoading);\n const [nameEdit, setNameEdit] = useState(false);\n const isDesktop = useIsDesktop();\n\n useEffect(() => {\n if ((engine === QueryEngine.CHYT || engine === QueryEngine.SPYT) && settings?.cluster) {\n dispatch(loadCliqueByCluster(engine, settings.cluster));\n }\n }, [engine, settings?.cluster, dispatch]);\n\n const handleChangeEngine = useCallback(\n (newEngine: QueryEngine) => {\n const newSettings = {...settings};\n const isSpyt = newEngine === QueryEngine.SPYT;\n const isChyt = newEngine === QueryEngine.CHYT;\n\n if (!isSpyt && 'discovery_group' in newSettings) {\n delete newSettings['discovery_group'];\n delete newSettings['discovery_path']; // old request type. Deprecated\n }\n if (!isChyt && 'clique' in newSettings) {\n delete newSettings['clique'];\n }\n\n dispatch(updateQueryDraft({settings: newSettings}));\n },\n [dispatch, settings],\n );\n\n const handleCreateNewQuery = useCallback(() => {\n dispatch(resetQueryTracker());\n }, [dispatch]);\n\n const handleNameChange = useCallback(\n (title: string | undefined) => {\n dispatch(updateQueryDraft({annotations: {title}}));\n },\n [dispatch],\n );\n\n const handleSettingsChange = useCallback(\n (newSettings: Record<string, string>) =>\n dispatch(updateQueryDraft({settings: newSettings})),\n [dispatch],\n );\n\n const handleClusterChange = useCallback(\n (clusterId: string) => {\n const newSettings: Record<string, string> = settings ? {...settings} : {};\n if (clusterId) {\n newSettings.cluster = clusterId;\n } else {\n delete newSettings['cluster'];\n }\n delete newSettings['clique'];\n dispatch(updateQueryDraft({settings: newSettings}));\n },\n [dispatch, settings],\n );\n\n const handleCliqueChange = useCallback(\n (alias: string) => {\n const newSettings: Record<string, string> = settings ? {...settings} : {};\n if (!alias && 'clique' in newSettings) {\n delete newSettings.clique;\n } else {\n newSettings.clique = alias;\n }\n dispatch(updateQueryDraft({settings: newSettings}));\n },\n [dispatch, settings],\n );\n\n const handlePathChange = useCallback(\n (newPath: string) => {\n dispatch(updateQueryDraft({settings: {...settings, discovery_group: newPath}}));\n },\n [dispatch, settings],\n );\n\n const name = annotations?.title || NAME_PLACEHOLDER;\n\n return (\n <RowWithName page={Page.QUERIES} className={block()}>\n <Flex alignItems=\"center\" gap={4} grow={1}>\n <EditableAsText\n className={block('name-input')}\n onChange={handleNameChange}\n size=\"l\"\n text={annotations?.title}\n cancelOnClose\n withControls\n openOnClick\n onModeChange={setNameEdit}\n saveButtonView=\"action\"\n cancelButtonView=\"outlined\"\n >\n <Tooltip content={name}>\n <Text ellipsis>{name}</Text>\n </Tooltip>\n </EditableAsText>\n\n {!nameEdit && (\n <>\n <HeadSpacer />\n {isDesktop ? (\n <QueryEngineSelector\n cluster={cluster}\n path={path}\n onChange={handleChangeEngine}\n />\n ) : (\n <QueryEngineSelect onChange={handleChangeEngine} />\n )}\n <QuerySelectorsByEngine\n settings={settings}\n engine={engine}\n clusters={clusters}\n cliqueMap={cliqueMap}\n cliqueLoading={cliqueLoading}\n onClusterChange={handleClusterChange}\n onCliqueChange={handleCliqueChange}\n onPathChange={handlePathChange}\n />\n <Flex gap={2}>\n <QuerySettingsButton\n settings={settings}\n onChange={handleSettingsChange}\n />\n <QueryFilesButton />\n </Flex>\n </>\n )}\n </Flex>\n <RightButtonsGroup onQueryCreate={handleCreateNewQuery} />\n </RowWithName>\n );\n};\n\nexport default QueryTrackerTopRow;\n","import {useEffect, useState} from 'react';\nexport const useIsDesktop = () => {\n const [isDesktop, setIsDesktop] = useState(false);\n\n useEffect(() => {\n const handleResize = () => {\n setIsDesktop(window.matchMedia('(min-width: 1280px)').matches);\n };\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return isDesktop;\n};\n","import {RootState} from '../../../../store/reducers';\nimport {createSelector} from 'reselect';\nimport {getClusterList} from '../../../../store/selectors/slideoutMenu';\nimport {NavigationNode} from './queryNavigationSlice';\nimport {makeGetSetting} from '../../../../store/selectors/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;\n\nexport const selectClusterConfigs = (state: RootState) => state.clustersMenu.clusters;\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 {createSelector} from 'reselect';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\n\nimport {NAVIGATION_MAP_NODE_TABLE_ID} from '../../../constants/navigation/index';\nimport {getNavigationDefaultPath} from '../../../store/selectors/settings';\nimport {isFinalLoadingStatus} from '../../../utils/utils';\n\nexport const getTransaction = (state) => state.navigation.navigation.transaction;\nexport const getAttributes = (state) => state.navigation.navigation.attributes;\nexport const getAttributesWithTypes = (state) => state.navigation.navigation.attributesWithTypes;\nexport const getLoadState = (state) => state.navigation.navigation.loadState;\nexport const getError = (state) => state.navigation.navigation.error;\nexport const getRawPath = (state) => state.navigation.navigation.path;\nexport const getIdmSupport = (state) => state.navigation.navigation.isIdmSupported;\nexport const getSortState = (state) => state.tables[NAVIGATION_MAP_NODE_TABLE_ID];\n\nexport const getType = createSelector(getAttributes, (attributes) => attributes?.type);\n\nexport const getPath = createSelector(\n [getRawPath, getNavigationDefaultPath],\n (rawPath, defaultPath) => rawPath || defaultPath,\n);\n\nexport const getAttributesPath = createSelector(\n [getAttributes, getPath],\n (attributes, navigationPath) => attributes?.path || navigationPath,\n);\n\nexport const isNavigationFinalLoadState = createSelector([getLoadState], (state) => {\n return isFinalLoadingStatus(state);\n});\n\nexport const getParsedPath = createSelector(getPath, (path) => {\n try {\n return ypath.YPath.create(path, 'absolute');\n } catch (ex) {\n console.error(ex);\n }\n});\nexport const getActualPath = createSelector([getPath, getType], (path, type) => {\n return type === 'map_node' ? path + '/' : path;\n});\n\nexport const checkIsTrash = createSelector(\n [getPath],\n (path) => path.startsWith('//tmp/trash') || path.startsWith('//trash'),\n);\n","import {createSelector} from 'reselect';\nimport clone_ from 'lodash/clone';\n\nimport {\n getFormat,\n getShowDecoded,\n shouldCompact,\n shouldEscapeWhitespace,\n useBinaryAsHex,\n} from '../../../store/selectors/settings';\nimport {getUnipikaSettingsFromConfig} from '../../../common/thor/unipika-settings';\n\nexport interface YsonSettings {\n format: string;\n showDecoded: boolean;\n compact: boolean;\n escapeWhitespace: boolean;\n binaryAsHex: boolean;\n asHTML: boolean;\n}\n\n/**\n * !!! Do not use this selector directly, result should be copied by another selector !!!\n * unipika.format && unipika.foramtRaw mix different properties into settings-object.\n * So, to minimize side-effects each UI-component should use his-own copy of settings-object.\n */\nconst getYsonSettings = createSelector(\n [getFormat, getShowDecoded, shouldCompact, shouldEscapeWhitespace, useBinaryAsHex],\n (\n format: string,\n showDecoded: boolean,\n compact: boolean,\n escapeWhitespace: boolean,\n binaryAsHex: boolean,\n ): YsonSettings => {\n return {\n format,\n showDecoded,\n compact,\n escapeWhitespace,\n binaryAsHex,\n asHTML: true,\n ...getUnipikaSettingsFromConfig(),\n };\n },\n);\n\nexport const getJobGeneralYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getJobSpecificationYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getTableYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getOperationAttributesYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getOperationExperimentsYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getNavigationMountConfigYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getEditJsonYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getNodeUnrecognizedOptionsYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getPreviewCellYsonSettings = createSelector([getYsonSettings], clone_);\n\nexport const getFlowSpecYsonSettings = createSelector([getYsonSettings], clone_);\n","const SvgBarsDescendingAlignLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M1 3.25a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 3.25M1 8a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5A.75.75 0 0 1 1 8m.75 4a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgBarsDescendingAlignLeft;","const SvgCircleQuestion = 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 14M6.44 4.54c.43-.354.994-.565 1.56-.565 1.217 0 2.34.82 2.34 2.14 0 .377-.079.745-.298 1.1-.208.339-.513.614-.875.867-.217.153-.326.257-.379.328-.038.052-.038.07-.038.089a.75.75 0 0 1-1.5 0c0-.794.544-1.286 1.057-1.645.28-.196.4-.332.458-.426a.54.54 0 0 0 .074-.312c0-.3-.243-.641-.839-.641a1 1 0 0 0-.608.223c-.167.138-.231.287-.231.418a.75.75 0 1 1-1.5 0c0-.674.345-1.22.78-1.577ZM8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleQuestion;","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n"],"names":["b","cn","makeItemsCopy","items","map_","item","_objectSpread","DragHandle","sortableHandle","_jsx","className","children","Icon","face","awesome","SortableItem","sortableElement","_ref","isSortable","isSelectable","isDisabled","itemRenderer","onCheckBoxChange","withClickableHandler","active","disabled","selected","checked","selectable","_jsxs","keyColumn","onClick","name","SortableList","sortableContainer","_ref2","useStaticSize","_ref2$withClickableHa","type","mods","ReactList","index","key","length","ColumnSelector","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","isHeadless","showSelectedOnly","call","toggleItem","withActualItems","_ref3","_toConsumableArray","findIndex","changedItem","selectAllItems","_ref4","visibleMap","getVisibleItemsMap","each_","deselectAllItems","_ref5","invertItems","_ref6","visibleItems","_handleCheckBoxChange","event","currentTarget","getAttribute","_handleSortEnd","_ref7","oldIndex","newIndex","_ref8","getVisibleItems","fromIndex","toIndex","_items$splice","splice","removed","_slicedToArray","_handleDefaultSort","_ref9","sort","a","aCaption","caption","bCaption","localeCompare","_toggleShownItems","setState","prevState","_changeFilter","filter","state","Object","assign","_createClass","get","this","every","some","value","func","_this2","onChange","TextInput","placeholder","onUpdate","hasClear","_this$props","isFilterable","btnProps","size","renderSearchBox","Button","filter_","buttonALLisDisabled","buttonNONEisDisabled","re","RegExp","escapeRegExp_","test","showDisabledItems","filterItemsByName","toSplit","filterItems","_partition_","partition_","_partition_2","keyItems","reduce_","acc","_this$props2","_this$getVisibleItems2","headless","undefined","empty","React","lockAxis","helperClass","helper","onSortEnd","useDragHandle","_this$props3","classNames","sortable","renderControls","renderList","Component","itemsProps","PropTypes","isRequired","defaultProps","_ref10","_ref10$caption","renderText","asHTML","block","prepareRoleListValue","roles","otherMembers","arguments","current","toAdd","toRemove","unrecognized","forEach_","isUnrecognized","isRequested","isApproved","isDepriving","push","currentArr","map","prepareItemOfCurrent","otherArr","title","data","frozen","newItems","concat","itemClassName","role","extraProps","text","roleListValueToSubjectList","manyListDataItemToSubjectList","manyListDataItem","extractChangedSubjects","added","user","group","DialogError","Block","makeErrorFields","errors","compact_","error","extras","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","YTDFDialog","withLazyLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","Dropdown","_len","args","Array","_key","apply","popupVisible","anchor","toggle","open","close","button","trigger","actionProps","onMouseEnter","onMouseLeave","template","_this$props$template","renderer","templates","__default__","popup","directions","Popup","placement","onClose","anchorRef","hasArrow","renderTemplate","ref","renderButton","renderPopup","zIndexGroupLevel","EditableAsText","withControls","disableEdit","cancelOnClose","openOnClick","renderEditor","onModeChange","_props$saveButtonView","saveButtonView","_props$cancelButtonVi","cancelButtonView","editMode","setEditMode","_React$useState3","_React$useState4","input","setInput","useEffect","handleChangeMode","useCallback","isEdit","closeEditMode","startTextEdit","handleChange","val","applyValue","closeAndResetValue","onApply","handleKeyDown","evt","controlSize","_Fragment","onBlur","autoFocus","onKeyDown","view","onMouseDown","EditButton","_ref$size","ICON_BY_TYPE","_ICON_BY_TYPE","SortIcon","_React$Component","order","allowUnordered","withUndefined","nextSortOrderValue","label","hidden","icon","Tooltip","content","format","ReadableField","settings","mix","elem","textProps","dangerouslySetInnerHTML","__html","unipika","decode","String","prepareTextProps","printColumnAsTimeDurationWithMs","columnName","column","getColumn","hammer","printColumnAsReadableField","printColumnAsTime","ColumnAsTime","printColumnAsError","_typeof","Link","theme","showErrorPopup","hideOopsMsg","NO_VALUE","asNumber","_templates","add","templateId","keys","reduce","newTemplates","wrapRenderMethods","selectCellPreviewVisible","navigation","modals","cellPreviewModal","selectCellPreviewLoading","loading","selectCellPreviewData","selectCellPreviewYtCliDownloadCommand","ytCliDownloadCommand","selectCellPreviewNoticeText","noticeText","selectErrorPreviewCellPath","CellPreviewModal","dispatch","useDispatch","useSelector","unipikaSettings","getPreviewCellYsonSettings","SimpleModal","onCancel","closeCellPreviewAndCancelRequest","wrapperClassName","Flex","qa","gap","direction","Text","variant","color","ClipboardButton","Error","PreviewContent","$type","$value","Yson","folding","tableSettings","dynamicRenderScrollParentGetter","customLayout","toolbar","IconBlock","QueryClusterItem","id","environment","clusterColorClassName","useClusterColorClassName","ClusterIcon","usePreventUnload","shouldListen","beforeUnloadHandler","e","preventDefault","returnValue","window","addEventListener","removeEventListener","getSettingQueryTrackerQueriesListSidebarVisibilityMode","createSelector","getSettingsData","Boolean","useQueryList","getQueriesList","isQueriesListLoading","useQueriesPagination","cursor","getQueriesListCursor","hasNext","hasQueriesListMore","goNext","loadNextQueriesList","QueriesHistoryCursorDirection","PAST","goBack","FUTURE","reset","resetCursor","first","cursorTime","last","currentCursorTime","goFirst","useQueriesListSidebarToggle","isQueriesListSidebarVisible","toggleQueriesListSideBarToggle","setSettingByKey","useQuriesHistoryFilter","getQueriesListFilter","filterPreset","getQueriesListMode","applyFilter","useQueryNavigation","selectedItem","getQuery","cluster","getCluster","history","useHistory","goToQuery","createQueryUrl","EditQueryNameModal","_query$annotations2","query","_useState","useState","_useState2","setError","_useState3","_useState4","setVisible","useThunkDispatch","initialValues","useMemo","_query$annotations","annotations","stopPropagation","width","pristineSubmittable","modal","headerProps","footerProps","textApply","onAdd","form","getState","values","setQueryName","err","fields","required","useQueryHistoryListColumns","selectedColumns","getQueryListHistoryColumns","handleColumnChange","ALL_COLUMN_NAMES","intersectionBy_","AllColumns","MyColumns","EXCLUDED_COLUMNS","NameColumns","AuthorColumns","currentColumnsPreset","QueriesListAuthorFilter","My","selectedColumnNames","Set","isArray","columns","has","allowedColumns","includes","itemBlock","isHeaderTableItem","header","align","render","_row$annotations","row","QueryStatusIcon","status","ellipsis","TypeColumns","engine","QueryEnginesNames","DurationColumns","QueryStatus","RUNNING","QueryDuration","StartedColumns","formatTime","start_time","ACOColumns","_row$access_control_o","access_control_objects","join","displayIndices","stickyHead","DataTable","MOVING","syncHeadOnResize","QueriesHistoryList","pollingContext","uncompletedItems","queryListUpdateHandler","_useQueryHistoryList","timeout","timer","start","setTimeout","refreshQueriesListIfNeeded","clearTimeout","useRefreshHistoryList","useContext","QueriesPoolingContext","getUncompletedItems","UPDATE_QUERIES_LIST","watch","_useQueryHistoryList2","isLoading","_useQuriesHistoryFilt","timestamp","getQueriesListTimestamp","_useQueriesPagination","_useQueryNavigation","_useQueryNavigation2","selectedId","scrollElemRef","useRef","scrollTop","setClassName","itemsByDate","entries","groupBy_","moment","ret","DataTableYT","useThemeYT","rowKey","onRowClick","disableRightGap","rowClassName","getColSpansOfRow","Name","Pagination","handler","previous","noop_","xmlns","fill","viewBox","fillRule","d","clipRule","itemCn","renderItem","_item$annotations","_item$annotations2","tutorialIcon","QueriesTutorialList","_useQueryList","_useQueryList2","selectedIndex","tutorialFilter","_item$annotations3","toLocaleLowerCase","List","filterable","filterClassName","filterPlaceholder","filterItem","virtualized","selectedItemIndex","itemHeight","onItemClick","Loader","ALL_ENGINE_KEY","QueryEngineFilter","_ref$engines","engines","Engines","enginesList","onChangeEngineFilter","RadioButton","options","QueryTextFilter","_ref$delay","delay","pattern","setPattern","debouncedChange","debounce_","cancel","flush","AuthorFilter","All","QueriesHistoryListFilter","_useQuriesHistoryFilt2","filterViewMode","_useQueryHistoryListC","onChangeAuthorFilter","onChangeTextFilter","QueriesListMode","History","GravityIcon","CircleQuestionIcon","pin","Vcs","lazy","Navigation","TabNames","_TabNames","Tutorials","VCS","useQueryTabs","selectedTab","isVcsVisible","selectIsVcsVisible","setTab","tab","applyListMode","getQueriesListModes","vcs","toString","QueriesList","_useQueryTabs","_useQueryTabs2","tabs","requestQueriesList","isVsc","Tabs","activeTab","onSelectTab","MONACO_CONFIG","fontSize","language","renderWhitespace","minimap","enabled","FileEditor","_useSelector","selectFileEditorConfig","fileEditor","file","editorRef","FileIcon","setFileEditor","isFullWidth","LayoutColumnsIcon","SquareIcon","isOpen","XmarkIcon","MonacoEditor","changeQueryFile","monacoConfig","EDITOR_INITIAL_SIZE","QueryEditorSplit","fileEditorFullWidth","fileEditorVisible","onStartQuery","sizes","setSize","hideQueryEditor","FlexSplitPane","HORIZONTAL","onResizeEnd","getInitialSizes","QueryEditor","showStatusInTitle","initialSizes","minSize","QueryPageDraft","routeParams","getQueryGetParams","selectNavigationCluster","isEngine","QueryEngine","YQL","path","useDraft","SET_QUERY_PARAMS","params","createQueryFromTablePath","createEmptyQuery","QueryPage","match","queryId","loadQuery","QueryTracker","isQueryStateDirty","getDirtySinceLastSubmit","selectFileEditor","getSize","loadQueryTrackerInfo","useQueryACO","goToCreatedQuery","Switch","Route","exact","component","MonacoContext","Provider","Map","QueriesPooling","QueriesListSidebarToggleButton","_useQueriesListSideba","RightButtonsGroup","onQueryCreate","NewQueryButton","controlBlock","popupBlock","Filter","target","QuerySelector","popupClassName","_objectWithoutProperties","_excluded","Select","renderFilter","QueryClusterSelector","clusters","getOptionHeight","Option","QueryCliqueItem","ytId","QueryCliqueSelector","cliqueList","_ref$placeholder","renderEmptyOptions","justifyContent","alias","yt_operation_id","QuerySelectorsByEngine","_ref$settings","cliqueMap","cliqueLoading","onClusterChange","onCliqueChange","onPathChange","clusterCliqueList","CHYT","clique","SPYT","discovery_group","_useSelector2","getQueryDraft","getClusterList","getCliqueMap","getCliqueLoading","nameEdit","setNameEdit","isDesktop","setIsDesktop","handleResize","matchMedia","matches","useIsDesktop","loadCliqueByCluster","handleChangeEngine","newEngine","newSettings","isSpyt","isChyt","updateQueryDraft","handleCreateNewQuery","resetQueryTracker","handleNameChange","handleSettingsChange","handleClusterChange","clusterId","handleCliqueChange","handlePathChange","newPath","RowWithName","page","Page","QUERIES","alignItems","grow","HeadSpacer","QueryEngineSelector","QueryEngineSelect","QuerySettingsButton","QueryFilesButton","queryTracker","queryNavigation","selectNavigationClusterConfig","clustersMenu","clusterName","selectFavouritePaths","makeGetSetting","getSetting","parentNS","createNestedNS","NAMESPACES","LOCAL","favourites","SettingName","FAVOURITES","i","selectNavigationPath","selectNavigationNodeType","nodeType","selectNavigationFilter","selectNavigationNodes","nodes","filterValueInText","toLowerCase","selectTableWithFilter","table","schema","selectClustersByFilter","selectNodeListByFilter","isRoot","upItem","split","slice","isFavorite","result","unshift","getTransaction","transaction","getAttributes","attributes","getAttributesWithTypes","attributesWithTypes","getLoadState","loadState","getError","getRawPath","getIdmSupport","isIdmSupported","getType","getPath","getNavigationDefaultPath","rawPath","defaultPath","getAttributesPath","navigationPath","isNavigationFinalLoadState","isFinalLoadingStatus","getParsedPath","ypath","create","ex","console","getActualPath","checkIsTrash","startsWith","getYsonSettings","getFormat","getShowDecoded","shouldCompact","shouldEscapeWhitespace","useBinaryAsHex","showDecoded","compact","escapeWhitespace","binaryAsHex","getUnipikaSettingsFromConfig","getJobGeneralYsonSettings","clone_","getJobSpecificationYsonSettings","getTableYsonSettings","getOperationAttributesYsonSettings","getOperationExperimentsYsonSettings","getNavigationMountConfigYsonSettings","getEditJsonYsonSettings","getNodeUnrecognizedOptionsYsonSettings","getFlowSpecYsonSettings","pi","Math","PI","tau","epsilon","tauEpsilon","append","strings","_","n","Path","constructor","digits","_x0","_y0","_x1","_y1","_append","floor","k","round","appendRound","moveTo","x","y","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","r","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","prototype","initRange","domain","range","implicit","Symbol","ordinal","unknown","scale","set","from","copy","selector","childMatcher","node","prefix","indexOf","hasOwnProperty","space","local","xhtml","svg","xlink","xml","document","querySelector","documentElement","find","childFirst","firstElementChild","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","delete","arraylike","ascending","NaN","appendChild","child","insertBefore","querySelectorAll","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","classList","ClassList","_node","_names","classedAdd","names","list","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","parentNode","lower","previousSibling","firstChild","contains","creatorInherit","uri","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","j","m","listener","contextListener","dispatchEvent","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","Selection","groups","parents","_groups","_parents","selection","select","subgroups","subnode","subgroup","selectAll","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","merge","context","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","callback","each","attr","getAttributeNS","style","property","classed","html","creator","insert","before","deep","t","typenames","parseTypenames","iterator","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","none","defaultView","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","r0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","atan2","max","halfPi","asin","withPath","shape","RangeError","identity","sortValues","descending","constant","pie","array","sum","arcs","p","pa","InternMap","keyof","super","defineProperties","_intern","intern_get","intern_set","intern_delete","valueOf"],"sourceRoot":""}