ydb-embedded-ui 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (285) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +28 -0
  3. package/dist/HOCS/WithSearch/WithSearch.js +26 -0
  4. package/dist/HOCS/index.js +1 -0
  5. package/dist/assets/icons/bug.svg +1 -0
  6. package/dist/assets/icons/close.svg +1 -0
  7. package/dist/assets/icons/control-menu-button.svg +1 -0
  8. package/dist/assets/icons/databases.svg +3 -0
  9. package/dist/assets/icons/dots.svg +1 -0
  10. package/dist/assets/icons/server.svg +1 -0
  11. package/dist/assets/icons/settings-with-dot.svg +1 -0
  12. package/dist/assets/icons/settings.svg +1 -0
  13. package/dist/assets/icons/signIn.svg +1 -0
  14. package/dist/assets/icons/signOut.svg +1 -0
  15. package/dist/assets/icons/star.svg +1 -0
  16. package/dist/assets/icons/storage.svg +1 -0
  17. package/dist/assets/icons/support.svg +1 -0
  18. package/dist/assets/icons/user-check.svg +1 -0
  19. package/dist/assets/icons/user-secret.svg +1 -0
  20. package/dist/assets/icons/ydb.svg +4 -0
  21. package/dist/components/AsideNavigation/AsideHeader.scss +148 -0
  22. package/dist/components/AsideNavigation/AsideHeader.tsx +388 -0
  23. package/dist/components/AsideNavigation/AsideHeaderFooterItem/AsideHeaderFooterItem.scss +82 -0
  24. package/dist/components/AsideNavigation/AsideHeaderFooterItem/AsideHeaderFooterItem.tsx +138 -0
  25. package/dist/components/AsideNavigation/AsideHeaderFooterSlot/AsideHeaderFooterSlot.tsx +33 -0
  26. package/dist/components/AsideNavigation/AsideHeaderFooterSlot/SlotsContext.tsx +49 -0
  27. package/dist/components/AsideNavigation/AsideHeaderTooltip/AsideHeaderTooltip.scss +16 -0
  28. package/dist/components/AsideNavigation/AsideHeaderTooltip/AsideHeaderTooltip.tsx +37 -0
  29. package/dist/components/AsideNavigation/CompositeBar/CompositeBar.scss +108 -0
  30. package/dist/components/AsideNavigation/CompositeBar/CompositeBar.tsx +282 -0
  31. package/dist/components/AsideNavigation/Content/Content.tsx +35 -0
  32. package/dist/components/AsideNavigation/Drawer/Drawer.scss +76 -0
  33. package/dist/components/AsideNavigation/Drawer/Drawer.tsx +134 -0
  34. package/dist/components/AsideNavigation/Drawer/index.ts +1 -0
  35. package/dist/components/AsideNavigation/Logo/Logo.scss +44 -0
  36. package/dist/components/AsideNavigation/Logo/Logo.tsx +82 -0
  37. package/dist/components/AsideNavigation/Settings/README.md +92 -0
  38. package/dist/components/AsideNavigation/Settings/Settings.scss +113 -0
  39. package/dist/components/AsideNavigation/Settings/Settings.tsx +270 -0
  40. package/dist/components/AsideNavigation/Settings/SettingsMenu/SettingsMenu.scss +70 -0
  41. package/dist/components/AsideNavigation/Settings/SettingsMenu/SettingsMenu.tsx +141 -0
  42. package/dist/components/AsideNavigation/Settings/SettingsSearch/SettingsSearch.tsx +57 -0
  43. package/dist/components/AsideNavigation/Settings/collect-settings.ts +156 -0
  44. package/dist/components/AsideNavigation/Settings/filter-settings.ts +38 -0
  45. package/dist/components/AsideNavigation/Settings/helpers.ts +39 -0
  46. package/dist/components/AsideNavigation/Settings/i18n/en.json +5 -0
  47. package/dist/components/AsideNavigation/Settings/i18n/index.ts +11 -0
  48. package/dist/components/AsideNavigation/Settings/i18n/ru.json +5 -0
  49. package/dist/components/AsideNavigation/Settings/index.ts +1 -0
  50. package/dist/components/AsideNavigation/constants.ts +28 -0
  51. package/dist/components/AsideNavigation/helpers.ts +34 -0
  52. package/dist/components/AsideNavigation/i18n/en.json +4 -0
  53. package/dist/components/AsideNavigation/i18n/index.ts +11 -0
  54. package/dist/components/AsideNavigation/i18n/ru.json +4 -0
  55. package/dist/components/AsideNavigation/icons.ts +32 -0
  56. package/dist/components/AsideNavigation/types.ts +23 -0
  57. package/dist/components/Breadcrumbs/Breadcrumbs.js +25 -0
  58. package/dist/components/Breadcrumbs/Breadcrumbs.scss +4 -0
  59. package/dist/components/ClusterInfo/ClusterInfo.scss +65 -0
  60. package/dist/components/ClusterInfo/ClusterInfo.tsx +157 -0
  61. package/dist/components/Collapse/Collapse.js +84 -0
  62. package/dist/components/Collapse/Collapse.scss +70 -0
  63. package/dist/components/CriticalActionDialog/CriticalActionDialog.js +53 -0
  64. package/dist/components/CriticalActionDialog/CriticalActionDialog.scss +31 -0
  65. package/dist/components/EmptyState/EmptyState.js +48 -0
  66. package/dist/components/EmptyState/EmptyState.scss +70 -0
  67. package/dist/components/EntityStatus/EntityStatus.js +96 -0
  68. package/dist/components/EntityStatus/EntityStatus.scss +81 -0
  69. package/dist/components/FullGroupViewer/FullGroupViewer.js +149 -0
  70. package/dist/components/FullGroupViewer/FullGroupViewer.scss +32 -0
  71. package/dist/components/FullNodeViewer/FullNodeViewer.js +108 -0
  72. package/dist/components/FullNodeViewer/FullNodeViewer.scss +78 -0
  73. package/dist/components/GroupTreeViewer/GroupTreeViewer.js +86 -0
  74. package/dist/components/GroupTreeViewer/GroupTreeViewer.scss +17 -0
  75. package/dist/components/GroupViewer/GroupViewer.js +100 -0
  76. package/dist/components/GroupViewer/GroupViewer.scss +41 -0
  77. package/dist/components/Hotkey/Hotkey.js +102 -0
  78. package/dist/components/Icon/Icon.js +26 -0
  79. package/dist/components/InfoViewer/InfoViewer.js +47 -0
  80. package/dist/components/InfoViewer/InfoViewer.scss +48 -0
  81. package/dist/components/InternalLink/InternalLink.js +15 -0
  82. package/dist/components/NodesViewer/NodesViewer.js +183 -0
  83. package/dist/components/NodesViewer/NodesViewer.scss +66 -0
  84. package/dist/components/PDiskViewer/PDiskViewer.js +80 -0
  85. package/dist/components/PDiskViewer/PDiskViewer.scss +40 -0
  86. package/dist/components/Pagination/Pagination.js +63 -0
  87. package/dist/components/Pagination/Pagination.scss +25 -0
  88. package/dist/components/PoolBar/PoolBar.js +52 -0
  89. package/dist/components/PoolBar/PoolBar.scss +40 -0
  90. package/dist/components/PoolUsage/PoolUsage.js +54 -0
  91. package/dist/components/PoolUsage/PoolUsage.scss +65 -0
  92. package/dist/components/PoolsGraph/PoolsGraph.js +33 -0
  93. package/dist/components/PoolsGraph/PoolsGraph.scss +3 -0
  94. package/dist/components/ProblemFilter/ProblemFilter.js +24 -0
  95. package/dist/components/ProgressViewer/ProgressViewer.js +92 -0
  96. package/dist/components/ProgressViewer/ProgressViewer.scss +84 -0
  97. package/dist/components/SplitPane/SplitPane.js +368 -0
  98. package/dist/components/SplitPane/SplitPane.scss +107 -0
  99. package/dist/components/SplitPane/index.js +3 -0
  100. package/dist/components/Tablet/Tablet.js +61 -0
  101. package/dist/components/Tablet/Tablet.scss +49 -0
  102. package/dist/components/TabletsStatistic/TabletsStatistic.js +58 -0
  103. package/dist/components/TabletsStatistic/TabletsStatistic.scss +41 -0
  104. package/dist/components/TabletsViewer/TabletsViewer.js +44 -0
  105. package/dist/components/TabletsViewer/TabletsViewer.scss +37 -0
  106. package/dist/components/Tag/Tag.js +14 -0
  107. package/dist/components/Tag/Tag.scss +17 -0
  108. package/dist/components/Tags/Tags.js +36 -0
  109. package/dist/components/Tags/Tags.scss +5 -0
  110. package/dist/components/TenantOverview/TenantOverview.js +148 -0
  111. package/dist/components/TenantOverview/TenantOverview.scss +75 -0
  112. package/dist/components/TreeView/TreeView.js +60 -0
  113. package/dist/components/TreeView/TreeView.scss +30 -0
  114. package/dist/components/TruncatedQuery/TruncatedQuery.js +26 -0
  115. package/dist/components/TruncatedQuery/TruncatedQuery.scss +12 -0
  116. package/dist/containers/App/App.js +67 -0
  117. package/dist/containers/App/App.scss +154 -0
  118. package/dist/containers/App/Content.js +109 -0
  119. package/dist/containers/App/TipPopup/TipPopup.js +66 -0
  120. package/dist/containers/App/TipPopup/TipPopup.scss +42 -0
  121. package/dist/containers/AppIcons/AppIcons.js +477 -0
  122. package/dist/containers/AsideNavigation/AsideNavigation.scss +43 -0
  123. package/dist/containers/AsideNavigation/AsideNavigation.tsx +228 -0
  124. package/dist/containers/Authentication/Authentication.scss +37 -0
  125. package/dist/containers/Authentication/Authentication.tsx +89 -0
  126. package/dist/containers/Cluster/Cluster.js +168 -0
  127. package/dist/containers/Cluster/Cluster.scss +52 -0
  128. package/dist/containers/Group/Group.js +97 -0
  129. package/dist/containers/Group/Group.scss +6 -0
  130. package/dist/containers/Header/Header.js +88 -0
  131. package/dist/containers/Header/Header.scss +72 -0
  132. package/dist/containers/Header/Host/Host.js +66 -0
  133. package/dist/containers/Header/Host/Host.scss +43 -0
  134. package/dist/containers/Heatmap/Heatmap.js +246 -0
  135. package/dist/containers/Heatmap/Heatmap.scss +94 -0
  136. package/dist/containers/Heatmap/HeatmapCanvas/HeatmapCanvas.js +167 -0
  137. package/dist/containers/Heatmap/Histogram/Histogram.js +108 -0
  138. package/dist/containers/Heatmap/Histogram/Histogram.scss +49 -0
  139. package/dist/containers/Heatmap/util.js +110 -0
  140. package/dist/containers/Node/Node.js +184 -0
  141. package/dist/containers/Node/Node.scss +34 -0
  142. package/dist/containers/Node/NodePages.js +13 -0
  143. package/dist/containers/Nodes/Nodes.js +193 -0
  144. package/dist/containers/Nodes/Nodes.scss +50 -0
  145. package/dist/containers/Pdisk/Pdisk.js +159 -0
  146. package/dist/containers/Pdisk/Pdisk.scss +40 -0
  147. package/dist/containers/Pool/Pool.js +169 -0
  148. package/dist/containers/Pool/Pool.scss +32 -0
  149. package/dist/containers/ReduxTooltip/ReduxTooltip.js +108 -0
  150. package/dist/containers/ReduxTooltip/ReduxTooltip.scss +67 -0
  151. package/dist/containers/StorageV2/DiskStateProgressBar/DiskStateProgressBar.scss +81 -0
  152. package/dist/containers/StorageV2/DiskStateProgressBar/DiskStateProgressBar.tsx +56 -0
  153. package/dist/containers/StorageV2/Pdisk/Pdisk.scss +32 -0
  154. package/dist/containers/StorageV2/Pdisk/Pdisk.tsx +167 -0
  155. package/dist/containers/StorageV2/Storage.js +249 -0
  156. package/dist/containers/StorageV2/Storage.scss +57 -0
  157. package/dist/containers/StorageV2/StorageFilter/StorageFilter.js +39 -0
  158. package/dist/containers/StorageV2/StorageGroups/StorageGroups.scss +26 -0
  159. package/dist/containers/StorageV2/StorageGroups/StorageGroups.tsx +234 -0
  160. package/dist/containers/StorageV2/StorageNodes/StorageNodes.scss +30 -0
  161. package/dist/containers/StorageV2/StorageNodes/StorageNodes.tsx +135 -0
  162. package/dist/containers/StorageV2/Vdisk/Vdisk.js +250 -0
  163. package/dist/containers/StorageV2/Vdisk/Vdisk.scss +32 -0
  164. package/dist/containers/Tablet/Tablet.js +453 -0
  165. package/dist/containers/Tablet/Tablet.scss +88 -0
  166. package/dist/containers/Tablets/Tablets.js +306 -0
  167. package/dist/containers/Tablets/Tablets.scss +77 -0
  168. package/dist/containers/TabletsFilters/TabletsFilters.js +412 -0
  169. package/dist/containers/TabletsFilters/TabletsFilters.scss +104 -0
  170. package/dist/containers/Tenant/Acl/Acl.js +149 -0
  171. package/dist/containers/Tenant/Acl/Acl.scss +34 -0
  172. package/dist/containers/Tenant/Compute/Compute.js +110 -0
  173. package/dist/containers/Tenant/Compute/Compute.scss +6 -0
  174. package/dist/containers/Tenant/Describe/Describe.js +81 -0
  175. package/dist/containers/Tenant/Describe/Describe.scss +25 -0
  176. package/dist/containers/Tenant/Healthcheck/Healthcheck.js +116 -0
  177. package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +64 -0
  178. package/dist/containers/Tenant/Healthcheck/IssuesViewer/IssueViewer.scss +164 -0
  179. package/dist/containers/Tenant/Healthcheck/IssuesViewer/IssuesViewer.js +185 -0
  180. package/dist/containers/Tenant/Network/Network.js +341 -0
  181. package/dist/containers/Tenant/Network/Network.scss +145 -0
  182. package/dist/containers/Tenant/Network/NodeNetwork/NodeNetwork.js +71 -0
  183. package/dist/containers/Tenant/Network/NodeNetwork/NodeNetwork.scss +52 -0
  184. package/dist/containers/Tenant/Preview/Preview.js +169 -0
  185. package/dist/containers/Tenant/Preview/Preview.scss +20 -0
  186. package/dist/containers/Tenant/QueryEditor/QueryEditor.js +649 -0
  187. package/dist/containers/Tenant/QueryEditor/QueryEditor.scss +71 -0
  188. package/dist/containers/Tenant/QueryEditor/QueryExplain/QueryExplain.js +168 -0
  189. package/dist/containers/Tenant/QueryEditor/QueryExplain/QueryExplain.scss +42 -0
  190. package/dist/containers/Tenant/QueryEditor/QueryResult/QueryResult.js +58 -0
  191. package/dist/containers/Tenant/QueryEditor/QueryResult/QueryResult.scss +24 -0
  192. package/dist/containers/Tenant/QueryEditor/SaveQuery/SaveQuery.js +171 -0
  193. package/dist/containers/Tenant/QueryEditor/SaveQuery/SaveQuery.scss +51 -0
  194. package/dist/containers/Tenant/QueryEditor/SavedQueries/SavedQueries.js +156 -0
  195. package/dist/containers/Tenant/QueryEditor/SavedQueries/SavedQueries.scss +82 -0
  196. package/dist/containers/Tenant/Schema/HotKeys/HotKeys.js +149 -0
  197. package/dist/containers/Tenant/Schema/HotKeys/HotKeys.scss +48 -0
  198. package/dist/containers/Tenant/Schema/Info/Info.js +84 -0
  199. package/dist/containers/Tenant/Schema/Info/Info.scss +3 -0
  200. package/dist/containers/Tenant/Schema/SchemaInfoViewer/SchemaInfoViewer.js +67 -0
  201. package/dist/containers/Tenant/Schema/SchemaInfoViewer/SchemaInfoViewer.scss +21 -0
  202. package/dist/containers/Tenant/Schema/SchemaMain/SchemaMain.js +439 -0
  203. package/dist/containers/Tenant/Schema/SchemaMain/SchemaMain.scss +90 -0
  204. package/dist/containers/Tenant/Schema/SchemaNode/SchemaNode.js +150 -0
  205. package/dist/containers/Tenant/Schema/SchemaNode/SchemaNode.scss +41 -0
  206. package/dist/containers/Tenant/Schema/SchemaPages.js +56 -0
  207. package/dist/containers/Tenant/Schema/SchemaTree/SchemaTree.js +115 -0
  208. package/dist/containers/Tenant/Schema/SchemaTree/SchemaTree.scss +13 -0
  209. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +63 -0
  210. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.scss +28 -0
  211. package/dist/containers/Tenant/Tenant.js +199 -0
  212. package/dist/containers/Tenant/Tenant.scss +94 -0
  213. package/dist/containers/Tenant/TenantPages.js +35 -0
  214. package/dist/containers/Tenant/TopQueries/TopQueries.js +184 -0
  215. package/dist/containers/Tenant/TopQueries/TopQueries.scss +53 -0
  216. package/dist/containers/Tenant/TopShards/TopShards.js +171 -0
  217. package/dist/containers/Tenant/TopShards/TopShards.scss +23 -0
  218. package/dist/containers/Tenants/Tenants.js +375 -0
  219. package/dist/containers/Tenants/Tenants.scss +73 -0
  220. package/dist/containers/UserSettings/UserSettings.tsx +57 -0
  221. package/dist/containers/Vdisk/Vdisk.js +160 -0
  222. package/dist/containers/Vdisk/Vdisk.scss +40 -0
  223. package/dist/containers/VdiskPdiskNode/VdiskPdiskNode.js +528 -0
  224. package/dist/containers/VdiskPdiskNode/VdiskPdiskNode.scss +60 -0
  225. package/dist/contexts/HistoryContext.ts +6 -0
  226. package/dist/index.css +11 -0
  227. package/dist/index.js +28 -0
  228. package/dist/index.test.js +5 -0
  229. package/dist/react-app-env.d.ts +1 -0
  230. package/dist/reportWebVitals.js +13 -0
  231. package/dist/routes.js +40 -0
  232. package/dist/services/api.js +224 -0
  233. package/dist/setupTests.js +5 -0
  234. package/dist/store/index.js +61 -0
  235. package/dist/store/reducers/authentication.js +77 -0
  236. package/dist/store/reducers/cluster.js +52 -0
  237. package/dist/store/reducers/clusterInfo.js +48 -0
  238. package/dist/store/reducers/clusterNodes.js +70 -0
  239. package/dist/store/reducers/describe.js +45 -0
  240. package/dist/store/reducers/executeQuery.js +158 -0
  241. package/dist/store/reducers/executeTopQueries.js +69 -0
  242. package/dist/store/reducers/explainQuery.js +174 -0
  243. package/dist/store/reducers/group.js +49 -0
  244. package/dist/store/reducers/healthcheckInfo.js +45 -0
  245. package/dist/store/reducers/heatmap.js +105 -0
  246. package/dist/store/reducers/host.js +44 -0
  247. package/dist/store/reducers/hotKeys.js +57 -0
  248. package/dist/store/reducers/index.js +78 -0
  249. package/dist/store/reducers/network.js +45 -0
  250. package/dist/store/reducers/node.js +42 -0
  251. package/dist/store/reducers/nodes.js +58 -0
  252. package/dist/store/reducers/olapStats.js +74 -0
  253. package/dist/store/reducers/pdisk.js +51 -0
  254. package/dist/store/reducers/pool.js +42 -0
  255. package/dist/store/reducers/preview.js +73 -0
  256. package/dist/store/reducers/schema.js +95 -0
  257. package/dist/store/reducers/schemaAcl.js +44 -0
  258. package/dist/store/reducers/settings.js +76 -0
  259. package/dist/store/reducers/shardsWorkload.js +75 -0
  260. package/dist/store/reducers/storage.js +280 -0
  261. package/dist/store/reducers/tablet.js +94 -0
  262. package/dist/store/reducers/tablets.js +90 -0
  263. package/dist/store/reducers/tabletsFilters.js +126 -0
  264. package/dist/store/reducers/tenant.js +76 -0
  265. package/dist/store/reducers/tenants.js +61 -0
  266. package/dist/store/reducers/tooltip.js +64 -0
  267. package/dist/store/reducers/vdisk.js +49 -0
  268. package/dist/store/state-url-mapping.js +133 -0
  269. package/dist/store/utils.js +55 -0
  270. package/dist/styles/mixins.scss +254 -0
  271. package/dist/styles/react-treeview.scss +45 -0
  272. package/dist/types/assets.d.ts +12 -0
  273. package/dist/types/react-list.d.ts +4 -0
  274. package/dist/types/window.d.ts +33 -0
  275. package/dist/utils/actionsConstants.js +4 -0
  276. package/dist/utils/constants.js +126 -0
  277. package/dist/utils/getNodesColumns.js +156 -0
  278. package/dist/utils/i18n/i18n.ts +7 -0
  279. package/dist/utils/i18n/index.ts +1 -0
  280. package/dist/utils/index.js +136 -0
  281. package/dist/utils/monaco.js +69 -0
  282. package/dist/utils/prepareQueryExplain.ts +101 -0
  283. package/dist/utils/tooltip.js +197 -0
  284. package/dist/utils/utils.js +75 -0
  285. package/package.json +89 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0 (2022-02-17)
4
+
5
+
6
+ ### Features
7
+
8
+ * initial import ([9bf5e83](https://www.github.com/ydb-platform/ydb-embedded-ui/commit/9bf5e833e3d2d10897215f7d439b284a4c3c10df))
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # ydb-embedded-ui
2
+
3
+ Local viewer for YDB clusters
4
+
5
+ ## How to work with this repo
6
+
7
+ ### Development
8
+
9
+ 1) Run on a machine with Docker installed:
10
+ ```
11
+ docker pull registry.yandex.net/yandex-docker-local-ydb:testing`
12
+ docker run --hostname localhost -e YDB_ALLOW_ORIGIN="http://localhost:3000" -dp 2135:2135 -dp 8765:8765 registry.yandex.net/yandex-docker-local-ydb:testing
13
+ ```
14
+ 2) Run the frontend app in the development mode, via invoking `npm run dev`
15
+ 3) Open [http://localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.\
16
+ You will also see any lint errors in the console.
17
+
18
+ ### Making a production bundle.
19
+
20
+ Base command `npm run build` builds the app for production to the `build` folder.\
21
+ It correctly bundles React in production mode and optimizes the build for the best performance.
22
+
23
+ The build is minified and the filenames include the hashes.
24
+
25
+ To test production bundle with latest YDB backend release, do the following:
26
+ 1) Build a production bundle with a few tweaks for embedded version: `npm run build:embedded`.
27
+ 2) Invoke `docker run -it --hostname localhost -e YDB_LOCAL_SURVIVE_RESTART=true -dp 2135:2135 -p 8765:8765 -v ~/projects/ydb-embedded-ui-opensource/build:/ydb_data/node_1/contentmonitoring cr.yandex/yc/yandex-docker-local-ydb:latest`
28
+ 3) Open [embedded YDB UI](http://localhost:8765/monitoring) to view it in the browser.
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+
3
+ export const withSearch = (Component) => {
4
+ class HOC extends React.Component {
5
+ state = {
6
+ searchQuery: '',
7
+ };
8
+
9
+ handleSearchQuery = (searchQuery) => {
10
+ this.setState({searchQuery});
11
+ };
12
+
13
+ render() {
14
+ const {searchQuery} = this.state;
15
+ return (
16
+ <Component
17
+ {...this.props}
18
+ searchQuery={searchQuery}
19
+ handleSearchQuery={this.handleSearchQuery}
20
+ />
21
+ );
22
+ }
23
+ }
24
+
25
+ return HOC;
26
+ };
@@ -0,0 +1 @@
1
+ export * from './WithSearch/WithSearch';
@@ -0,0 +1 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20.248 12.66a1.021 1.021 0 00-1-1.065H17.44V9.723l1.485-1.518a.996.996 0 000-1.453.996.996 0 00-1.453 0l-1.776 1.744H8.303L6.528 6.752a.996.996 0 00-1.453 0 .996.996 0 000 1.453l1.517 1.518v1.872H4.784c-.581 0-1.065.484-1.033 1.065 0 .582.484 1.001 1.033 1.001h1.808v.517c0 .71.13 1.388.42 2.002l-1.937 1.936a.996.996 0 000 1.453.996.996 0 001.453 0l1.775-1.775a4.646 4.646 0 002.938 1.033v-7.878c0-.193.162-.387.388-.387h.774c.194 0 .388.194.388.387v7.878a4.624 4.624 0 002.905-1.033l1.776 1.775a.996.996 0 001.453 0 .996.996 0 000-1.453l-1.937-1.936c.29-.614.452-1.292.452-2.002v-.517h1.775c.55 0 1.034-.42 1.034-1zm-8.2-9.33c-2.002 0-3.616 1.647-3.616 3.616h7.232c0-1.97-1.646-3.616-3.616-3.616z" fill="currentColor"/></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="xmark" class="svg-inline--fa fa-xmark" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.031 8.531c.281-.281.281-.75 0-1.062l-4.25-4.25c-.312-.281-.781-.281-1.062 0L2 3.938c-.281.312-.281.78 0 1.062l3.031 3.031-3.031 3c-.281.281-.281.75 0 1.063l.719.687c.281.313.75.313 1.062 0l4.25-4.25zm6-1.062-4.25-4.25c-.312-.281-.781-.281-1.062 0L8 3.938A.774.774 0 0 0 8 5l3.031 3L8 11.031c-.281.281-.281.75 0 1.063l.719.687c.281.313.75.313 1.062 0l4.25-4.25c.281-.281.281-.75 0-1.062z" fill="currentColor"/></svg>
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="currenColor" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M16 1.5C16 2.32843 14.6569 3 13 3C11.3431 3 10 2.32843 10 1.5C10 0.671573 11.3431 0 13 0C14.6569 0 16 0.671573 16 1.5ZM5 11.6V14.3C5 15.2 6.3 15.9 8 15.9C9.7 15.9 11 15.2 11 14.3V11.6C10.2 12.3 9.1 12.6 8 12.6C6.9 12.6 5.8 12.3 5 11.6ZM10 3V2.60001C10.8 3.30001 11.9 3.60001 13 3.60001C14.1 3.60001 15.2 3.30001 16 2.60001V5.40001C16 6.20001 14.8 6.90001 13.2 7.00001L10.7247 9.8714C10.9014 10.0626 11 10.2755 11 10.5C11 11.3284 9.65685 12 8 12C6.34315 12 5 11.3284 5 10.5C5 10.2947 5.08248 10.0991 5.23177 9.92086L2.8 7.10001C1.3 7.00001 0 6.30001 0 5.50001V2.60001C0.8 3.30001 1.9 3.60001 3 3.60001C4.1 3.60001 5.2 3.30001 6 2.60001V3.00001L10 3ZM9.72421 9.27234C9.23641 9.10075 8.64174 9 8 9C7.7351 9 7.47822 9.01717 7.23356 9.0494C6.84837 9.09762 6.45653 9.18116 6.1 9.3L4 6.9C5.1 6.7 6 6.1 6 5.4V4H10V5.4C10 6.1 10.7 6.7 11.8 6.9L9.72421 9.27234ZM6 1.5C6 2.32843 4.65685 3 3 3C1.34315 3 0 2.32843 0 1.5C0 0.671573 1.34315 0 3 0C4.65685 0 6 0.671573 6 1.5Z" />
3
+ </svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="ellipsis" class="svg-inline--fa fa-ellipsis" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="server" class="svg-inline--fa fa-server" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.134 13.343l1.629.912a.51.51 0 01.227.531c-.454 1.367-1.136 2.583-2.084 3.608a.458.458 0 01-.568.076l-1.63-.912a7.613 7.613 0 01-2.273 1.33v1.86c0 .19-.152.38-.379.456-1.326.266-2.728.304-4.13 0-.19-.076-.341-.266-.341-.456v-1.86a7.355 7.355 0 01-2.312-1.33l-1.629.912a.459.459 0 01-.568-.076 9.714 9.714 0 01-2.046-3.608.437.437 0 01.189-.531l1.63-.912a8.05 8.05 0 010-2.696l-1.63-.911a.437.437 0 01-.19-.532 9.714 9.714 0 012.047-3.607.459.459 0 01.568-.076l1.63.949a6.783 6.783 0 012.31-1.367v-1.86c0-.19.114-.38.342-.418 1.326-.304 2.728-.342 4.13 0a.442.442 0 01.379.417v1.861a7.3 7.3 0 01.067.025 3.901 3.901 0 004.677 5.755 6.447 6.447 0 01-.045 2.46zm1.67-3.634a.45.45 0 00.146-.19 3.864 3.864 0 01-.147.19zM8.978 11.976c0 1.71 1.326 3.038 3.03 3.038a3.02 3.02 0 003.032-3.038 3.044 3.044 0 00-3.031-3.038 3.02 3.02 0 00-3.031 3.038z" fill="currentColor"/><circle cx="17.783" cy="7.239" r="2.5" fill="#FF0400" fill-opacity=".8"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20.763 14.255l-1.63-.912c.19-.911.19-1.784 0-2.696l1.63-.911a.437.437 0 00.19-.532 9.714 9.714 0 00-2.046-3.607.459.459 0 00-.569-.076l-1.63.911a7.611 7.611 0 00-2.273-1.329v-1.86c0-.19-.151-.38-.379-.418-1.402-.342-2.804-.304-4.13 0-.227.038-.34.227-.34.417v1.861c-.872.304-1.63.76-2.312 1.367l-1.63-.95a.459.459 0 00-.568.077A9.714 9.714 0 003.03 9.204c-.076.19 0 .418.19.532l1.629.911a8.05 8.05 0 000 2.696l-1.63.912a.437.437 0 00-.19.531 9.713 9.713 0 002.047 3.608c.152.152.379.19.568.076l1.63-.912a7.355 7.355 0 002.311 1.33v1.86c0 .19.152.38.341.456 1.402.304 2.804.266 4.13 0 .228-.076.38-.266.38-.456v-1.86a7.612 7.612 0 002.273-1.33l1.63.912a.458.458 0 00.568-.076c.947-1.025 1.629-2.24 2.084-3.608a.511.511 0 00-.228-.531zm-8.753.76c-1.705 0-3.031-1.33-3.031-3.039a3.02 3.02 0 013.031-3.038 3.044 3.044 0 013.031 3.038 3.02 3.02 0 01-3.03 3.038z" fill="currentColor"/></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="arrow-right-to-bracket" class="svg-inline--fa fa-arrow-right-to-bracket" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M416 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c17.67 0 32 14.33 32 32v256c0 17.67-14.33 32-32 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c53.02 0 96-42.98 96-96V128C512 74.98 469 32 416 32zM342.6 233.4l-128-128c-12.51-12.51-32.76-12.49-45.25 0c-12.5 12.5-12.5 32.75 0 45.25L242.8 224H32C14.31 224 0 238.3 0 256s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128C355.1 266.1 355.1 245.9 342.6 233.4z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="arrow-right-from-bracket" class="svg-inline--fa fa-arrow-right-from-bracket" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M160 416H96c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h64c17.67 0 32-14.33 32-32S177.7 32 160 32H96C42.98 32 0 74.98 0 128v256c0 53.02 42.98 96 96 96h64c17.67 0 32-14.33 32-32S177.7 416 160 416zM502.6 233.4l-128-128c-12.51-12.51-32.76-12.49-45.25 0c-12.5 12.5-12.5 32.75 0 45.25L402.8 224H192C174.3 224 160 238.3 160 256s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128C515.1 266.1 515.1 245.9 502.6 233.4z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="star" class="svg-inline--fa fa-star" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M316.7 17.8l65.43 132.4l146.4 21.29c26.27 3.796 36.79 36.09 17.75 54.59l-105.9 102.1l25.05 145.5c4.508 26.31-23.23 45.9-46.49 33.7L288 439.6l-130.9 68.7C133.8 520.5 106.1 500.9 110.6 474.6l25.05-145.5L29.72 226.1c-19.03-18.5-8.516-50.79 17.75-54.59l146.4-21.29l65.43-132.4C271.1-6.083 305-5.786 316.7 17.8z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="database" class="svg-inline--fa fa-database" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 73.12v45.75C448 159.1 347.6 192 224 192S0 159.1 0 118.9V73.12C0 32.88 100.4 0 224 0S448 32.88 448 73.12zM448 176v102.9C448 319.1 347.6 352 224 352S0 319.1 0 278.9V176c48.12 33.12 136.2 48.62 224 48.62S399.9 209.1 448 176zM448 336v102.9C448 479.1 347.6 512 224 512s-224-32.88-224-73.13V336c48.12 33.13 136.2 48.63 224 48.63S399.9 369.1 448 336z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21 12c0-4.936-4.065-9-9-9-4.972 0-9 4.064-9 9 0 4.972 4.028 9 9 9 4.935 0 9-4.028 9-9zm-8.782-6.024c2.068 0 4.246 1.596 4.246 3.701 0 2.831-3.012 2.867-3.012 3.883v.037a.441.441 0 01-.436.435h-2.032a.42.42 0 01-.436-.435v-.146c0-1.487 1.125-2.068 1.96-2.54.726-.399 1.198-.69 1.198-1.234 0-.725-.944-1.197-1.67-1.197-.98 0-1.415.472-2.068 1.306a.453.453 0 01-.617.073l-1.27-.944c-.182-.145-.218-.399-.073-.617.98-1.488 2.25-2.322 4.21-2.322zm-.218 9c.907 0 1.67.762 1.67 1.67 0 .943-.763 1.668-1.67 1.668-.944 0-1.67-.725-1.67-1.669 0-.907.726-1.67 1.67-1.67z" fill="currentColor"/></svg>
@@ -0,0 +1 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="user-check" class="svg-inline--fa fa-user-check" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M274.7 304H173.3C77.61 304 0 381.6 0 477.3C0 496.5 15.52 512 34.66 512H413.3C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM632.3 134.4c-9.703-9-24.91-8.453-33.92 1.266l-87.05 93.75l-38.39-38.39c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94l56 56C499.5 285.5 505.6 288 512 288h.4375c6.531-.125 12.72-2.891 17.16-7.672l104-112C642.6 158.6 642 143.4 632.3 134.4z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill='none'><path fill="currentColor" d="M377.7 338.8l37.15-92.87C419 235.4 411.3 224 399.1 224h-57.48C348.5 209.2 352 193 352 176c0-4.117-.8359-8.057-1.217-12.08C390.7 155.1 416 142.3 416 128c0-16.08-31.75-30.28-80.31-38.99C323.8 45.15 304.9 0 277.4 0c-10.38 0-19.62 4.5-27.38 10.5c-15.25 11.88-36.75 11.88-52 0C190.3 4.5 181.1 0 170.7 0C143.2 0 124.4 45.16 112.5 88.98C63.83 97.68 32 111.9 32 128c0 14.34 25.31 27.13 65.22 35.92C96.84 167.9 96 171.9 96 176C96 193 99.47 209.2 105.5 224H48.02C36.7 224 28.96 235.4 33.16 245.9l37.15 92.87C27.87 370.4 0 420.4 0 477.3C0 496.5 15.52 512 34.66 512H413.3C432.5 512 448 496.5 448 477.3C448 420.4 420.1 370.4 377.7 338.8zM176 479.1L128 288l64 32l16 32L176 479.1zM271.1 479.1L240 352l16-32l64-32L271.1 479.1zM320 186C320 207 302.8 224 281.6 224h-12.33c-16.46 0-30.29-10.39-35.63-24.99C232.1 194.9 228.4 192 224 192S215.9 194.9 214.4 199C209 213.6 195.2 224 178.8 224h-12.33C145.2 224 128 207 128 186V169.5C156.3 173.6 188.1 176 224 176s67.74-2.383 96-6.473V186z"></path></svg>
@@ -0,0 +1,4 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 16C0 7.16344 7.16344 0 16 0V0C24.8366 0 32 7.16344 32 16V16C32 24.8366 24.8366 32 16 32V32C7.16344 32 0 24.8366 0 16V16Z" fill="#5282FF"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M24 9.5C24 10.3284 22.6569 11 21 11C19.3431 11 18 10.3284 18 9.5C18 8.67157 19.3431 8 21 8C22.6569 8 24 8.67157 24 9.5ZM13 19.6V22.3C13 23.2 14.3 23.9 16 23.9C17.7 23.9 19 23.2 19 22.3V19.6C18.2 20.3 17.1 20.6 16 20.6C14.9 20.6 13.8 20.3 13 19.6ZM18 11V10.6C18.8 11.3 19.9 11.6 21 11.6C22.1 11.6 23.2 11.3 24 10.6V13.4C24 14.2 22.8 14.9 21.2 15L18.7247 17.8714C18.9014 18.0626 19 18.2755 19 18.5C19 19.3284 17.6569 20 16 20C14.3431 20 13 19.3284 13 18.5C13 18.2947 13.0825 18.0991 13.2318 17.9209L10.8 15.1C9.3 15 8 14.3 8 13.5V10.6C8.8 11.3 9.9 11.6 11 11.6C12.1 11.6 13.2 11.3 14 10.6V11L18 11ZM17.7242 17.2723C17.2364 17.1007 16.6417 17 16 17C15.7351 17 15.4782 17.0172 15.2336 17.0494C14.8484 17.0976 14.4565 17.1812 14.1 17.3L12 14.9C13.1 14.7 14 14.1 14 13.4V12H18V13.4C18 14.1 18.7 14.7 19.8 14.9L17.7242 17.2723ZM14 9.5C14 10.3284 12.6569 11 11 11C9.34315 11 8 10.3284 8 9.5C8 8.67157 9.34315 8 11 8C12.6569 8 14 8.67157 14 9.5Z" fill="white"/>
4
+ </svg>
@@ -0,0 +1,148 @@
1
+ .nv-aside-header {
2
+ --nv-aside-header-min-width: 56px;
3
+ $class: &;
4
+ position: relative;
5
+
6
+ width: 100%;
7
+
8
+ height: 100%;
9
+
10
+ background-color: var(--yc-color-base-background);
11
+
12
+ &__aside {
13
+ position: sticky;
14
+ z-index: 100;
15
+ top: 0;
16
+ left: 0;
17
+
18
+ display: flex;
19
+ flex-direction: column;
20
+
21
+ width: inherit;
22
+ height: 100vh;
23
+
24
+ border-right: 1px solid var(--yc-color-line-generic);
25
+ background-color: var(--yc-color-base-background);
26
+
27
+ &-popup-anchor {
28
+ position: absolute;
29
+ z-index: 1;
30
+ top: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ left: 0;
34
+ }
35
+
36
+ &-content {
37
+ position: relative;
38
+ z-index: 2;
39
+
40
+ display: flex;
41
+ overflow-x: hidden;
42
+ flex-direction: column;
43
+
44
+ width: inherit;
45
+ height: inherit;
46
+
47
+ user-select: none;
48
+ }
49
+ }
50
+
51
+ &__footer {
52
+ display: flex;
53
+ flex-direction: column;
54
+ flex-shrink: 0;
55
+
56
+ width: 100%;
57
+ margin: 8px 0;
58
+
59
+ &::before {
60
+ position: relative;
61
+ top: -8px;
62
+
63
+ content: '';
64
+
65
+ border-top: 1px solid var(--yc-color-line-generic);
66
+ }
67
+ }
68
+
69
+ &__drawer {
70
+ position: fixed;
71
+ z-index: 98;
72
+ top: 0;
73
+ right: 0;
74
+ bottom: 0;
75
+ left: 0;
76
+
77
+ overflow: auto;
78
+ }
79
+
80
+ &__panel {
81
+ height: 100%;
82
+ }
83
+
84
+ &__content-container {
85
+ height: 100%;
86
+ }
87
+
88
+ &__pane-container {
89
+ display: flex;
90
+ overflow: visible;
91
+ flex: 1 1 0;
92
+ flex-direction: row;
93
+
94
+ user-select: text;
95
+
96
+ outline: none;
97
+ }
98
+
99
+ &__content {
100
+ z-index: 90;
101
+
102
+ width: calc(100% - var(--nv-aside-header-size));
103
+ }
104
+
105
+ &__all-services-button {
106
+ &_top {
107
+ box-sizing: border-box;
108
+
109
+ border-bottom: 1px solid var(--yc-color-line-generic);
110
+ }
111
+ }
112
+
113
+ &__collapse-button {
114
+ position: absolute;
115
+ z-index: 3;
116
+ right: 14px;
117
+ bottom: 14px;
118
+
119
+ width: 28px;
120
+ height: 28px;
121
+
122
+ transition: none;
123
+ &_compact {
124
+ right: -29px;
125
+
126
+ border: 1px solid var(--yc-color-line-generic);
127
+ border-left: none;
128
+ border-radius: 0 4px 4px 0;
129
+ background-color: inherit;
130
+
131
+ &.yc-button::before {
132
+ border-radius: 0 3px 3px 0;
133
+ }
134
+ }
135
+
136
+ &:not(#{&}_compact) {
137
+ transform: rotate(180deg);
138
+ }
139
+
140
+ &:hover {
141
+ color: var(--yc-color-text-misc);
142
+ }
143
+ }
144
+
145
+ &__collapse-icon {
146
+ color: var(--yc-color-text-misc);
147
+ }
148
+ }