ydb-embedded-ui 18.6.0 → 19.0.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 (150) hide show
  1. package/dist/components/Drawer/Drawer.js +17 -12
  2. package/dist/components/Drawer/Drawer.js.map +1 -1
  3. package/dist/components/Drawer/DrawerContext.d.ts +10 -1
  4. package/dist/components/Drawer/DrawerContext.js +59 -6
  5. package/dist/components/Drawer/DrawerContext.js.map +1 -1
  6. package/dist/components/Drawer/DrawerWidthUtils.d.ts +4 -0
  7. package/dist/components/Drawer/DrawerWidthUtils.js +4 -0
  8. package/dist/components/Drawer/DrawerWidthUtils.js.map +1 -1
  9. package/dist/components/EntityName/EntityName.d.ts +15 -0
  10. package/dist/components/EntityName/EntityName.js +39 -0
  11. package/dist/components/EntityName/EntityName.js.map +1 -0
  12. package/dist/components/EntityName/EntityName.scss +140 -0
  13. package/dist/components/EntityStatus/EntityStatus.d.ts +17 -14
  14. package/dist/components/EntityStatus/EntityStatus.js +41 -40
  15. package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
  16. package/dist/components/EntityStatus/EntityStatus.scss +5 -132
  17. package/dist/components/EntityStatus/i18n/index.js.map +1 -0
  18. package/dist/components/EntityStatus/utils.js.map +1 -0
  19. package/dist/components/Fullscreen/Fullscreen.d.ts +2 -1
  20. package/dist/components/Fullscreen/Fullscreen.js +11 -2
  21. package/dist/components/Fullscreen/Fullscreen.js.map +1 -1
  22. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.d.ts +2 -1
  23. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js +5 -2
  24. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js.map +1 -1
  25. package/dist/components/NodeHostWrapper/NodeHostWrapper.js +3 -2
  26. package/dist/components/NodeHostWrapper/NodeHostWrapper.js.map +1 -1
  27. package/dist/components/StatusColor/StatusColor.d.ts +10 -0
  28. package/dist/components/StatusColor/StatusColor.js +10 -0
  29. package/dist/components/StatusColor/StatusColor.js.map +1 -0
  30. package/dist/components/StatusColor/StatusColor.scss +49 -0
  31. package/dist/components/StatusIcon/StatusIcon.js +2 -1
  32. package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
  33. package/dist/components/StatusIcon/StatusIcon.scss +0 -22
  34. package/dist/components/TabletNameWrapper/TabletNameWrapper.js +2 -2
  35. package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
  36. package/dist/components/TenantNameWrapper/TenantNameWrapper.js +1 -1
  37. package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
  38. package/dist/containers/Cluster/Cluster.js +2 -2
  39. package/dist/containers/Cluster/Cluster.js.map +1 -1
  40. package/dist/containers/Cluster/ClusterDrawerHealthcheck.d.ts +2 -1
  41. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js +5 -5
  42. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js.map +1 -1
  43. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +1 -1
  44. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -1
  45. package/dist/containers/Clusters/columns.js +1 -1
  46. package/dist/containers/Clusters/columns.js.map +1 -1
  47. package/dist/containers/Node/NodeStructure/NodeStructure.scss +1 -1
  48. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +2 -2
  49. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  50. package/dist/containers/Storage/Storage.scss +1 -1
  51. package/dist/containers/Tablet/Tablet.js +12 -5
  52. package/dist/containers/Tablet/Tablet.js.map +1 -1
  53. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.d.ts +3 -1
  54. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +31 -19
  55. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -1
  56. package/dist/containers/Tablet/components/TabletInfo/i18n/en.json +2 -0
  57. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
  58. package/dist/containers/Tablet/components/TabletTable/TabletTable.js +2 -2
  59. package/dist/containers/Tablet/components/TabletTable/TabletTable.js.map +1 -1
  60. package/dist/containers/Tablet/utils.d.ts +3 -0
  61. package/dist/containers/Tablet/utils.js +12 -0
  62. package/dist/containers/Tablet/utils.js.map +1 -1
  63. package/dist/containers/Tablets/TabletsTable.js +2 -2
  64. package/dist/containers/Tablets/TabletsTable.js.map +1 -1
  65. package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js +6 -11
  66. package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/RevokeAllRightsDialog.js.map +1 -1
  67. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +13 -2
  68. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  69. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo/prepareRowTableInfo.js +9 -5
  70. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo/prepareRowTableInfo.js.map +1 -1
  71. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +6 -6
  72. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
  73. package/dist/containers/Tenant/Diagnostics/StorageUsage/StorageUsageTable.js +2 -2
  74. package/dist/containers/Tenant/Diagnostics/StorageUsage/StorageUsageTable.js.map +1 -1
  75. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +1 -1
  76. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -1
  77. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +1 -1
  78. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
  79. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +4 -0
  80. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +3 -2
  81. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  82. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +6 -6
  83. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
  84. package/dist/containers/Tenant/GrantAccess/GrantAccess.js +14 -16
  85. package/dist/containers/Tenant/GrantAccess/GrantAccess.js.map +1 -1
  86. package/dist/containers/Tenant/Healthcheck/Healthcheck.d.ts +2 -0
  87. package/dist/containers/Tenant/Healthcheck/Healthcheck.js +30 -9
  88. package/dist/containers/Tenant/Healthcheck/Healthcheck.js.map +1 -1
  89. package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +28 -0
  90. package/dist/containers/Tenant/Healthcheck/HealthcheckContext.d.ts +7 -0
  91. package/dist/containers/Tenant/Healthcheck/HealthcheckContext.js.map +1 -1
  92. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js +24 -2
  93. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js.map +1 -1
  94. package/dist/containers/Tenant/Healthcheck/i18n/en.json +4 -0
  95. package/dist/containers/Tenant/Healthcheck/i18n/index.d.ts +1 -1
  96. package/dist/containers/Tenant/Healthcheck/types.d.ts +31 -0
  97. package/dist/containers/Tenant/Healthcheck/types.js +2 -0
  98. package/dist/containers/Tenant/Healthcheck/types.js.map +1 -0
  99. package/dist/containers/Tenant/Healthcheck/useHealthcheck.d.ts +3 -0
  100. package/dist/containers/Tenant/Healthcheck/useHealthcheck.js +6 -0
  101. package/dist/containers/Tenant/Healthcheck/useHealthcheck.js.map +1 -1
  102. package/dist/containers/Tenant/Healthcheck/utils.d.ts +21 -0
  103. package/dist/containers/Tenant/Healthcheck/utils.js +16 -0
  104. package/dist/containers/Tenant/Healthcheck/utils.js.map +1 -1
  105. package/dist/containers/Tenant/TenantDrawerHealthcheck.d.ts +3 -2
  106. package/dist/containers/Tenant/TenantDrawerHealthcheck.js +5 -5
  107. package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
  108. package/dist/containers/Tenant/TenantDrawerWrappers.js +3 -1
  109. package/dist/containers/Tenant/TenantDrawerWrappers.js.map +1 -1
  110. package/dist/containers/Tenant/utils/diagnosticsNavigation.d.ts +2 -2
  111. package/dist/containers/Tenant/utils/diagnosticsNavigation.js +13 -1
  112. package/dist/containers/Tenant/utils/diagnosticsNavigation.js.map +1 -1
  113. package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js +10 -1
  114. package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js.map +1 -1
  115. package/dist/lib.d.ts +4 -1
  116. package/dist/lib.js +1 -0
  117. package/dist/lib.js.map +1 -1
  118. package/dist/services/api/viewer.d.ts +5 -1
  119. package/dist/services/api/viewer.js +7 -0
  120. package/dist/services/api/viewer.js.map +1 -1
  121. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  122. package/dist/store/reducers/capabilities/hooks.js +4 -0
  123. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  124. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +78 -12
  125. package/dist/store/reducers/schemaAcl/schemaAcl.js +13 -7
  126. package/dist/store/reducers/schemaAcl/schemaAcl.js.map +1 -1
  127. package/dist/store/reducers/schemaAcl/utils.d.ts +12 -0
  128. package/dist/store/reducers/schemaAcl/utils.js +86 -0
  129. package/dist/store/reducers/schemaAcl/utils.js.map +1 -0
  130. package/dist/store/reducers/tablet/utils.d.ts +2 -0
  131. package/dist/store/reducers/tablet/utils.js +11 -0
  132. package/dist/store/reducers/tablet/utils.js.map +1 -0
  133. package/dist/store/reducers/tablet.d.ts +5 -0
  134. package/dist/store/reducers/tablet.js +22 -0
  135. package/dist/store/reducers/tablet.js.map +1 -1
  136. package/dist/types/api/tablet.d.ts +13 -0
  137. package/dist/types/api/tablet.js.map +1 -1
  138. package/dist/uiFactory/types.d.ts +3 -0
  139. package/package.json +1 -1
  140. package/dist/components/EntityStatusNew/EntityStatus.d.ts +0 -24
  141. package/dist/components/EntityStatusNew/EntityStatus.js +0 -48
  142. package/dist/components/EntityStatusNew/EntityStatus.js.map +0 -1
  143. package/dist/components/EntityStatusNew/EntityStatus.scss +0 -11
  144. package/dist/components/EntityStatusNew/i18n/index.js.map +0 -1
  145. package/dist/components/EntityStatusNew/utils.js.map +0 -1
  146. /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/en.json +0 -0
  147. /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/index.d.ts +0 -0
  148. /package/dist/components/{EntityStatusNew → EntityStatus}/i18n/index.js +0 -0
  149. /package/dist/components/{EntityStatusNew → EntityStatus}/utils.d.ts +0 -0
  150. /package/dist/components/{EntityStatusNew → EntityStatus}/utils.js +0 -0
@@ -6,7 +6,7 @@ import { debounce } from 'lodash';
6
6
  import { cn } from '../../utils/cn';
7
7
  import { useSetting } from '../../utils/hooks/useSetting';
8
8
  import { CopyLinkButton } from '../CopyLinkButton/CopyLinkButton';
9
- import { useDrawerContext } from './DrawerContext';
9
+ import { isClickInRightInset, useDrawerContextInternal } from './DrawerContext';
10
10
  import { normalizeDrawerWidthFromResize, normalizeDrawerWidthFromSavedString, } from './DrawerWidthUtils';
11
11
  import './Drawer.scss';
12
12
  const DEFAULT_DRAWER_WIDTH_PERCENTS = 60;
@@ -18,7 +18,8 @@ const DrawerPaneContentWrapper = ({ isVisible, onClose, children, drawerId = 'dr
18
18
  const [savedWidthString, setSavedWidthString] = useSetting(storageKey);
19
19
  const [userDrawerWidth, setUserDrawerWidth] = React.useState(undefined);
20
20
  const drawerRef = React.useRef(null);
21
- const { containerWidth, itemContainerRef } = useDrawerContext();
21
+ const { containerWidth, itemContainerRef, rightInset, visibleRightInset } = useDrawerContextInternal();
22
+ const availableWidth = Math.max(0, containerWidth - visibleRightInset);
22
23
  const derivedDrawerWidth = React.useMemo(() => {
23
24
  return normalizeDrawerWidthFromSavedString({
24
25
  savedWidthString,
@@ -29,26 +30,30 @@ const DrawerPaneContentWrapper = ({ isVisible, onClose, children, drawerId = 'dr
29
30
  defaultPx: DEFAULT_DRAWER_WIDTH,
30
31
  });
31
32
  }, [containerWidth, defaultWidth, isPercentageWidth, savedWidthString]);
32
- const drawerWidth = userDrawerWidth !== null && userDrawerWidth !== void 0 ? userDrawerWidth : derivedDrawerWidth;
33
+ const requestedDrawerWidth = userDrawerWidth !== null && userDrawerWidth !== void 0 ? userDrawerWidth : derivedDrawerWidth;
33
34
  // Calculate drawer width based on container width percentage if specified
34
- const calculatedWidth = React.useMemo(() => {
35
+ const requestedWidth = React.useMemo(() => {
35
36
  if (isPercentageWidth && containerWidth > 0) {
36
- return Math.round((containerWidth * (drawerWidth || DEFAULT_DRAWER_WIDTH_PERCENTS)) / 100);
37
+ return Math.round((containerWidth * (requestedDrawerWidth || DEFAULT_DRAWER_WIDTH_PERCENTS)) / 100);
37
38
  }
38
- return drawerWidth || DEFAULT_DRAWER_WIDTH;
39
- }, [containerWidth, isPercentageWidth, drawerWidth]);
39
+ return requestedDrawerWidth || DEFAULT_DRAWER_WIDTH;
40
+ }, [containerWidth, isPercentageWidth, requestedDrawerWidth]);
41
+ const calculatedWidth = Math.min(requestedWidth, availableWidth);
40
42
  const drawerOverlayStyle = React.useMemo(() => {
41
43
  return {
42
44
  overflow: 'hidden',
43
- ...(containerWidth > 0 ? { width: containerWidth } : {}),
45
+ width: availableWidth,
44
46
  };
45
- }, [containerWidth]);
47
+ }, [availableWidth]);
46
48
  React.useEffect(() => {
47
49
  if (!detectClickOutside || !isVisible) {
48
50
  return undefined;
49
51
  }
50
52
  const handleClickOutside = (event) => {
51
- if (event._capturedInsideDrawer || !event.isTrusted) {
53
+ var _a;
54
+ if (event._capturedInsideDrawer ||
55
+ !event.isTrusted ||
56
+ isClickInRightInset(event, (_a = itemContainerRef === null || itemContainerRef === void 0 ? void 0 : itemContainerRef.current) !== null && _a !== void 0 ? _a : null, rightInset)) {
52
57
  return;
53
58
  }
54
59
  if (drawerRef.current && !drawerRef.current.contains(event.target)) {
@@ -64,7 +69,7 @@ const DrawerPaneContentWrapper = ({ isVisible, onClose, children, drawerId = 'dr
64
69
  window.clearTimeout(listenerTimeoutId);
65
70
  document.removeEventListener('click', handleClickOutside);
66
71
  };
67
- }, [isVisible, onClose, detectClickOutside]);
72
+ }, [detectClickOutside, isVisible, itemContainerRef, onClose, rightInset]);
68
73
  const saveWidthDebounced = React.useMemo(() => {
69
74
  return debounce((value) => setSavedWidthString(value), SAVE_DEBOUNCE_MS);
70
75
  }, [setSavedWidthString]);
@@ -95,7 +100,7 @@ const DrawerPaneContentWrapper = ({ isVisible, onClose, children, drawerId = 'dr
95
100
  if (!itemContainer) {
96
101
  return null;
97
102
  }
98
- return (_jsx(GravityDrawer, { qa: drawerId, open: isVisible, onOpenChange: handleOpenChange, placement: direction, hideVeil: hideVeil, className: b('container', className), contentClassName: b('item'), style: drawerOverlayStyle, container: itemContainer, resizable: true, maxSize: containerWidth || undefined, size: calculatedWidth, onResizeEnd: handleResizeDrawer, disableBodyScrollLock: true, disableOutsideClick: detectClickOutside, floatingRef: detectClickOutside ? drawerRef : undefined, children: _jsx("div", { className: b('click-handler'), onClickCapture: handleClickInsideDrawer, children: children }) }));
103
+ return (_jsx(GravityDrawer, { qa: drawerId, open: isVisible, onOpenChange: handleOpenChange, placement: direction, hideVeil: hideVeil, className: b('container', className), contentClassName: b('item'), style: drawerOverlayStyle, container: itemContainer, resizable: true, maxSize: availableWidth, size: calculatedWidth, onResizeEnd: handleResizeDrawer, disableBodyScrollLock: true, disableOutsideClick: detectClickOutside, floatingRef: detectClickOutside ? drawerRef : undefined, children: _jsx("div", { className: b('click-handler'), onClickCapture: handleClickInsideDrawer, children: children }) }));
99
104
  };
100
105
  export const DrawerWrapper = ({ children, renderDrawerContent, isDrawerVisible, onCloseDrawer, drawerId, storageKey, defaultWidth, direction, className, detectClickOutside, isPercentageWidth, drawerControls = [], title, headerClassName, hideVeil, }) => {
101
106
  const onCloseDrawerRef = React.useRef(onCloseDrawer);
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/components/Drawer/Drawer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/components/Drawer/Drawer.tsx"],"names":[],"mappings":"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"}
@@ -3,12 +3,21 @@ import './Drawer.scss';
3
3
  export interface DrawerContextType {
4
4
  containerWidth: number;
5
5
  itemContainerRef: React.RefObject<HTMLDivElement> | null;
6
+ rightInset: number;
6
7
  setContainerWidth: React.Dispatch<React.SetStateAction<number>>;
8
+ setRightInset: React.Dispatch<React.SetStateAction<number>>;
9
+ }
10
+ interface DrawerInternalContextType extends DrawerContextType {
11
+ visibleRightInset: number;
7
12
  }
8
13
  interface DrawerContextProviderProps {
9
14
  children: React.ReactNode;
10
15
  className?: string;
16
+ rightInset?: number;
17
+ onRightInsetChange?: (rightInset: number) => void;
11
18
  }
12
- export declare const DrawerContextProvider: ({ children, className }: DrawerContextProviderProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare function isClickInRightInset(event: Pick<MouseEvent, 'clientX' | 'clientY'>, itemContainer: HTMLElement | null, rightInset: number): boolean;
20
+ export declare const DrawerContextProvider: ({ children, className, rightInset: controlledRightInset, onRightInsetChange, }: DrawerContextProviderProps) => import("react/jsx-runtime").JSX.Element;
13
21
  export declare const useDrawerContext: () => DrawerContextType;
22
+ export declare const useDrawerContextInternal: () => DrawerInternalContextType;
14
23
  export {};
@@ -1,17 +1,54 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { cn } from '../../utils/cn';
4
+ import { getVisibleRightInset } from './DrawerWidthUtils';
4
5
  import './Drawer.scss';
5
6
  const b = cn('ydb-drawer');
6
7
  const DrawerContext = React.createContext({
7
8
  containerWidth: 0,
8
9
  itemContainerRef: null,
10
+ rightInset: 0,
9
11
  setContainerWidth: () => { },
12
+ setRightInset: () => { },
13
+ visibleRightInset: 0,
10
14
  });
11
- export const DrawerContextProvider = ({ children, className }) => {
12
- const [containerWidth, setContainerWidth] = React.useState(0);
15
+ function normalizeRightInset(rightInset) {
16
+ return Number.isFinite(rightInset) ? Math.max(0, rightInset) : 0;
17
+ }
18
+ export function isClickInRightInset(event, itemContainer, rightInset) {
19
+ if (rightInset <= 0 || !itemContainer) {
20
+ return false;
21
+ }
22
+ const providerContainer = itemContainer.parentElement;
23
+ if (!providerContainer) {
24
+ return false;
25
+ }
26
+ const itemRight = itemContainer.getBoundingClientRect().right;
27
+ const providerRect = providerContainer.getBoundingClientRect();
28
+ return (event.clientX >= itemRight &&
29
+ event.clientX <= providerRect.right &&
30
+ event.clientY >= providerRect.top &&
31
+ event.clientY <= providerRect.bottom);
32
+ }
33
+ export const DrawerContextProvider = ({ children, className, rightInset: controlledRightInset, onRightInsetChange, }) => {
34
+ const [measuredContainerWidth, setContainerWidth] = React.useState(0);
35
+ const [rightViewportOverflow, setRightViewportOverflow] = React.useState(0);
36
+ const [internalRightInset, setInternalRightInset] = React.useState(0);
13
37
  const containerRef = React.useRef(null);
14
38
  const itemContainerRef = React.useRef(null);
39
+ const rightInset = normalizeRightInset(controlledRightInset !== null && controlledRightInset !== void 0 ? controlledRightInset : internalRightInset);
40
+ const rightInsetRef = React.useRef(rightInset);
41
+ rightInsetRef.current = rightInset;
42
+ const setRightInset = React.useCallback((nextRightInset) => {
43
+ const nextValue = normalizeRightInset(typeof nextRightInset === 'function'
44
+ ? nextRightInset(rightInsetRef.current)
45
+ : nextRightInset);
46
+ rightInsetRef.current = nextValue;
47
+ if (controlledRightInset === undefined) {
48
+ setInternalRightInset(nextValue);
49
+ }
50
+ onRightInsetChange === null || onRightInsetChange === void 0 ? void 0 : onRightInsetChange(nextValue);
51
+ }, [controlledRightInset, onRightInsetChange]);
15
52
  React.useEffect(() => {
16
53
  if (!containerRef.current) {
17
54
  return undefined;
@@ -22,7 +59,9 @@ export const DrawerContextProvider = ({ children, className }) => {
22
59
  const visibleLeft = Math.max(containerRect.left, 0);
23
60
  const visibleRight = Math.min(containerRect.right, window.innerWidth);
24
61
  const visibleWidth = Math.max(0, visibleRight - visibleLeft);
62
+ const nextRightViewportOverflow = Math.max(0, containerRect.right - visibleRight);
25
63
  setContainerWidth(visibleWidth || containerRef.current.clientWidth);
64
+ setRightViewportOverflow(nextRightViewportOverflow);
26
65
  }
27
66
  };
28
67
  // Set initial width
@@ -30,23 +69,37 @@ export const DrawerContextProvider = ({ children, className }) => {
30
69
  // Update width on resize
31
70
  const resizeObserver = new ResizeObserver(updateWidth);
32
71
  resizeObserver.observe(containerRef.current);
72
+ window.addEventListener('resize', updateWidth);
33
73
  return () => {
34
74
  resizeObserver.disconnect();
75
+ window.removeEventListener('resize', updateWidth);
35
76
  };
36
77
  }, []);
78
+ const visibleRightInset = getVisibleRightInset({ rightInset, rightViewportOverflow });
37
79
  // Memoize the context value to prevent unnecessary re-renders
38
80
  const value = React.useMemo(() => ({
39
- containerWidth,
81
+ containerWidth: measuredContainerWidth,
40
82
  setContainerWidth,
41
83
  itemContainerRef,
42
- }), [containerWidth]);
43
- return (_jsx(DrawerContext.Provider, { value: value, children: _jsxs("div", { ref: containerRef, className: b('drawer-container', className), children: [children, _jsx("div", { ref: itemContainerRef, className: b('item-container') })] }) }));
84
+ rightInset,
85
+ setRightInset,
86
+ visibleRightInset,
87
+ }), [measuredContainerWidth, rightInset, setRightInset, visibleRightInset]);
88
+ const itemContainerStyle = React.useMemo(() => {
89
+ if (rightInset === 0) {
90
+ return undefined;
91
+ }
92
+ return { width: `max(0px, calc(100% - ${rightInset}px))` };
93
+ }, [rightInset]);
94
+ return (_jsx(DrawerContext.Provider, { value: value, children: _jsxs("div", { ref: containerRef, className: b('drawer-container', className), children: [children, _jsx("div", { ref: itemContainerRef, className: b('item-container'), style: itemContainerStyle })] }) }));
44
95
  };
45
- export const useDrawerContext = () => {
96
+ const useDrawerContextValue = () => {
46
97
  const context = React.useContext(DrawerContext);
47
98
  if (context === undefined) {
48
99
  throw Error('useDrawerContext must be used within a DrawerContextProvider');
49
100
  }
50
101
  return context;
51
102
  };
103
+ export const useDrawerContext = () => useDrawerContextValue();
104
+ export const useDrawerContextInternal = () => useDrawerContextValue();
52
105
  //# sourceMappingURL=DrawerContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContext.js","sourceRoot":"","sources":["../../../src/components/Drawer/DrawerContext.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAElC,OAAO,eAAe,CAAC;AAEvB,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AAQ3B,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAoB;IACzD,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;CAC9B,CAAC,CAAC;AAOH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAA6B,EAAE,EAAE;IACvF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE5D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,EAAE;YACrB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBACnE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;gBAE7D,iBAAiB,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACxE,CAAC;QACL,CAAC,CAAC;QAEF,oBAAoB;QACpB,WAAW,EAAE,CAAC;QAEd,yBAAyB;QACzB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;QACvD,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO,GAAG,EAAE;YACR,cAAc,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,8DAA8D;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC;QACH,cAAc;QACd,iBAAiB;QACjB,gBAAgB;KACnB,CAAC,EACF,CAAC,cAAc,CAAC,CACnB,CAAC;IAEF,OAAO,CACH,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAChC,eAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,aAC9D,QAAQ,EAKT,cAAK,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAI,IAC5D,GACe,CAC5B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAsB,EAAE;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEhD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"DrawerContext.js","sourceRoot":"","sources":["../../../src/components/Drawer/DrawerContext.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  export declare const MIN_DRAWER_WIDTH_PERCENTS = 1;
2
2
  export declare const MAX_DRAWER_WIDTH_PERCENTS = 100;
3
3
  export declare const MIN_DRAWER_WIDTH_PX = 1;
4
+ export declare function getVisibleRightInset(args: {
5
+ rightInset: number;
6
+ rightViewportOverflow: number;
7
+ }): number;
4
8
  export declare function normalizeDrawerWidthFromSavedString(args: {
5
9
  savedWidthString: string | undefined;
6
10
  defaultWidth?: number;
@@ -5,6 +5,10 @@ export const MIN_DRAWER_WIDTH_PX = 1;
5
5
  function clamp(value, min, max) {
6
6
  return Math.min(max, Math.max(min, value));
7
7
  }
8
+ export function getVisibleRightInset(args) {
9
+ const { rightInset, rightViewportOverflow } = args;
10
+ return Math.max(0, rightInset - Math.max(0, rightViewportOverflow));
11
+ }
8
12
  function getFallbackWidth(args) {
9
13
  const { defaultWidth, isPercentageWidth, defaultPercents, defaultPx } = args;
10
14
  if (defaultWidth !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerWidthUtils.js","sourceRoot":"","sources":["../../../src/components/Drawer/DrawerWidthUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAClD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAKzB;IACG,MAAM,EAAC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC;IAC3E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,IAOnD;IACG,MAAM,EACF,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,SAAS,GACZ,GAAG,IAAI,CAAC;IAET,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAC9B,YAAY;QACZ,iBAAiB;QACjB,eAAe;QACf,SAAS;KACZ,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,GAAG,EAAE,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAI9C;IACG,MAAM,EAAC,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;IAEjE,IAAI,iBAAiB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;QAC/E,MAAM,eAAe,GAAG,KAAK,CACzB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,CAC5B,CAAC;QAEF,OAAO;YACH,WAAW,EAAE,eAAe;YAC5B,gBAAgB,EAAE,eAAe,CAAC,QAAQ,EAAE;SACtC,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GACb,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAE7D,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAU,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"DrawerWidthUtils.js","sourceRoot":"","sources":["../../../src/components/Drawer/DrawerWidthUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import './EntityName.scss';
3
+ export interface EntityNameProps {
4
+ name?: string;
5
+ renderName?: (name?: string) => React.ReactNode;
6
+ path?: string;
7
+ externalLink?: boolean;
8
+ withLeftTrim?: boolean;
9
+ hasClipboardButton?: boolean;
10
+ infoPopoverContent?: React.ReactNode;
11
+ clipboardButtonAlwaysVisible?: boolean;
12
+ leadingContent?: React.ReactNode;
13
+ className?: string;
14
+ }
15
+ export declare function EntityName({ name, renderName, path, externalLink, withLeftTrim, hasClipboardButton, infoPopoverContent, clipboardButtonAlwaysVisible, leadingContent, className, }: EntityNameProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { CircleInfo } from '@gravity-ui/icons';
4
+ import { Button, ClipboardButton, Icon, Popover, Link as UIKitLink } from '@gravity-ui/uikit';
5
+ import { cn } from '../../utils/cn';
6
+ import { YDB_POPOVER_CLASS_NAME } from '../../utils/constants';
7
+ import { InternalLink } from '../InternalLink/InternalLink';
8
+ import './EntityName.scss';
9
+ const b = cn('ydb-entity-name');
10
+ function defaultRenderName(name) {
11
+ return name !== null && name !== void 0 ? name : '';
12
+ }
13
+ export function EntityName({ name = '', renderName = defaultRenderName, path, externalLink = false, withLeftTrim = false, hasClipboardButton, infoPopoverContent, clipboardButtonAlwaysVisible = false, leadingContent, className, }) {
14
+ const [infoIconHovered, setInfoIconHovered] = React.useState(false);
15
+ const renderLink = () => {
16
+ if (path) {
17
+ if (externalLink) {
18
+ return (_jsx(UIKitLink, { className: b('name'), href: path, children: renderName(name) }));
19
+ }
20
+ return (_jsx(InternalLink, { className: b('name'), to: path, children: renderName(name) }));
21
+ }
22
+ return name && _jsx("span", { className: b('name'), children: renderName(name) });
23
+ };
24
+ return (_jsxs("div", { className: b(null, className), children: [leadingContent ? _jsx("div", { className: b('leading-content'), children: leadingContent }) : null, (path || name) && (_jsxs("div", { className: b('wrapper', {
25
+ 'with-clipboard-button': hasClipboardButton,
26
+ 'with-info-button': Boolean(infoPopoverContent),
27
+ 'with-link': Boolean(path),
28
+ }), children: [_jsx("span", { className: b('link', {
29
+ 'with-left-trim': withLeftTrim,
30
+ 'with-path': Boolean(path),
31
+ }), title: name, children: renderLink() }), (hasClipboardButton || infoPopoverContent) && (_jsxs("div", { className: b('controls-wrapper', {
32
+ visible: clipboardButtonAlwaysVisible || infoIconHovered,
33
+ }), onClick: (e) => e.stopPropagation(), children: [infoPopoverContent && (_jsx(Popover, { className: YDB_POPOVER_CLASS_NAME, content: infoPopoverContent, placement: ['top-start', 'bottom-start'], onOpenChange: (visible) => setInfoIconHovered(visible), children: _jsx(Button, { view: "normal", size: "xs", className: b('info-icon', {
34
+ visible: clipboardButtonAlwaysVisible || infoIconHovered,
35
+ }), children: _jsx(Icon, { data: CircleInfo, size: "12" }) }) })), hasClipboardButton && (_jsx(ClipboardButton, { text: name, size: "xs", view: "normal", className: b('clipboard-button', {
36
+ visible: clipboardButtonAlwaysVisible || infoIconHovered,
37
+ }) }))] }))] }))] }));
38
+ }
39
+ //# sourceMappingURL=EntityName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityName.js","sourceRoot":"","sources":["../../../src/components/EntityName/EntityName.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ @use '../../styles/mixins.scss';
2
+
3
+ .ydb-entity-name {
4
+ --button-width: 24px;
5
+ --entity-name-height: 20px;
6
+
7
+ position: relative;
8
+
9
+ display: inline-flex;
10
+ align-items: center;
11
+
12
+ max-width: 100%;
13
+ height: var(--entity-name-height);
14
+
15
+ @include mixins.body-2-typography();
16
+
17
+ &__leading-content {
18
+ display: inline-flex;
19
+
20
+ margin-right: var(--g-spacing-2);
21
+ }
22
+
23
+ &__info-icon,
24
+ &__clipboard-button {
25
+ // Default button height is 20px. When focused it has 24px height because of outline
26
+ // Negative offset is needed to prevent button to have bigger size when focused
27
+ --g-button-focus-outline-offset: -2px;
28
+ --g-button-focus-outline-width: 2px;
29
+
30
+ opacity: 0;
31
+ color: var(--g-color-text-secondary);
32
+
33
+ &_visible,
34
+ &:focus-visible,
35
+ &:hover,
36
+ .ydb-entity-name__wrapper:focus-within &,
37
+ .data-table__row:hover &,
38
+ .ydb-paginated-table__row:hover & {
39
+ opacity: 1;
40
+ }
41
+
42
+ &:focus-visible,
43
+ .ydb-entity-name__wrapper:focus-within {
44
+ background-color: var(--g-color-base-float);
45
+ }
46
+ &:hover {
47
+ color: var(--g-color-text-primary);
48
+ }
49
+ }
50
+
51
+ &__wrapper {
52
+ position: relative;
53
+
54
+ overflow: hidden;
55
+
56
+ height: var(--entity-name-height);
57
+
58
+ &_with-clipboard-button {
59
+ padding-right: var(--button-width);
60
+ }
61
+
62
+ &_with-info-button {
63
+ padding-right: var(--button-width);
64
+ }
65
+
66
+ &_with-clipboard-button {
67
+ &.ydb-entity-name__wrapper_with-info-button {
68
+ padding-right: calc(2 * var(--button-width));
69
+ }
70
+ }
71
+ }
72
+
73
+ &__controls-wrapper {
74
+ position: absolute;
75
+ top: 0;
76
+ right: 0;
77
+
78
+ display: flex;
79
+ align-items: center;
80
+ gap: var(--g-spacing-1);
81
+
82
+ width: 0;
83
+
84
+ &_visible,
85
+ &:focus-within {
86
+ width: min-content;
87
+
88
+ background-color: var(--g-color-base-background);
89
+ }
90
+
91
+ .data-table__row:hover &,
92
+ .ydb-paginated-table__row:hover & {
93
+ width: min-content;
94
+
95
+ background-color: var(--ydb-data-table-color-hover);
96
+ }
97
+ }
98
+
99
+ &__wrapper_with-clipboard-button &__link {
100
+ width: calc(100% + var(--button-width));
101
+ }
102
+
103
+ &__wrapper_with-info-button &__link {
104
+ width: calc(100% + var(--button-width));
105
+ }
106
+
107
+ &__wrapper_with-clipboard-button {
108
+ &.ydb-entity-name__wrapper_with-info-button .ydb-entity-name__link {
109
+ width: calc(100% + 2 * var(--button-width));
110
+ }
111
+ }
112
+
113
+ &__link {
114
+ display: inline-block;
115
+ overflow: hidden;
116
+
117
+ width: 100%;
118
+
119
+ white-space: nowrap;
120
+ text-overflow: ellipsis;
121
+
122
+ & a:focus-visible {
123
+ outline-width: 2px;
124
+ outline-offset: -2px;
125
+ }
126
+ }
127
+
128
+ &__link_with-path {
129
+ color: var(--g-color-text-link);
130
+ }
131
+
132
+ &__link_with-left-trim {
133
+ text-align: end;
134
+ direction: rtl;
135
+
136
+ .ydb-entity-name__name {
137
+ unicode-bidi: plaintext;
138
+ }
139
+ }
140
+ }
@@ -1,21 +1,24 @@
1
1
  import React from 'react';
2
+ import type { LabelProps } from '@gravity-ui/uikit';
2
3
  import { EFlag } from '../../types/api/enums';
3
- import type { StatusIconMode, StatusIconSize } from '../StatusIcon/StatusIcon';
4
4
  import './EntityStatus.scss';
5
+ interface EntityStatusLabelProps {
6
+ status: EFlag;
7
+ note?: React.ReactNode;
8
+ children?: React.ReactNode;
9
+ withStatusName?: boolean;
10
+ size?: LabelProps['size'];
11
+ iconSize?: number;
12
+ onClick?: (event: React.MouseEvent<HTMLElement>) => void;
13
+ }
14
+ declare function EntityStatusLabel({ children, status, withStatusName, note, size, iconSize, onClick, }: EntityStatusLabelProps): import("react/jsx-runtime").JSX.Element;
5
15
  interface EntityStatusProps {
6
- status?: EFlag;
7
- name?: string;
8
- renderName?: (name?: string) => React.ReactNode;
9
- path?: string;
10
- size?: StatusIconSize;
11
- mode?: StatusIconMode;
12
- showStatus?: boolean;
13
- externalLink?: boolean;
14
- withLeftTrim?: boolean;
15
- hasClipboardButton?: boolean;
16
- infoPopoverContent?: React.ReactNode;
17
- clipboardButtonAlwaysVisible?: boolean;
16
+ children?: React.ReactNode;
18
17
  className?: string;
19
18
  }
20
- export declare function EntityStatus({ status, name, renderName, path, size, mode, showStatus, externalLink, withLeftTrim, hasClipboardButton, infoPopoverContent, clipboardButtonAlwaysVisible, className, }: EntityStatusProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function EntityStatus({ className, children }: EntityStatusProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare namespace EntityStatus {
21
+ var Label: typeof EntityStatusLabel;
22
+ var displayName: string;
23
+ }
21
24
  export {};
@@ -1,47 +1,48 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { CircleInfo } from '@gravity-ui/icons';
4
- import { Button, ClipboardButton, Icon, Popover, Link as UIKitLink } from '@gravity-ui/uikit';
2
+ import { ActionTooltip, Flex, HelpMark, Label } from '@gravity-ui/uikit';
5
3
  import { EFlag } from '../../types/api/enums';
6
4
  import { cn } from '../../utils/cn';
7
- import { YDB_POPOVER_CLASS_NAME } from '../../utils/constants';
8
- import { InternalLink } from '../InternalLink/InternalLink';
9
- import { StatusIcon } from '../StatusIcon/StatusIcon';
5
+ import { StatusIcon } from '../StatusIconNew/StatusIcon';
6
+ import i18n from './i18n';
7
+ import { EFlagToDescription } from './utils';
10
8
  import './EntityStatus.scss';
11
- const b = cn('entity-status');
12
- function defaultRenderName(name) {
13
- return name !== null && name !== void 0 ? name : '';
9
+ const b = cn('ydb-entity-status');
10
+ const EFlagToLabelTheme = {
11
+ [EFlag.Red]: 'danger',
12
+ [EFlag.Blue]: 'info',
13
+ [EFlag.Green]: 'success',
14
+ [EFlag.Grey]: 'unknown',
15
+ [EFlag.Orange]: 'orange',
16
+ [EFlag.Yellow]: 'warning',
17
+ };
18
+ const EFlagToStatusName = {
19
+ get [EFlag.Red]() {
20
+ return i18n('title_red');
21
+ },
22
+ get [EFlag.Yellow]() {
23
+ return i18n('title_yellow');
24
+ },
25
+ get [EFlag.Orange]() {
26
+ return i18n('title_orange');
27
+ },
28
+ get [EFlag.Green]() {
29
+ return i18n('title_green');
30
+ },
31
+ get [EFlag.Grey]() {
32
+ return i18n('title_grey');
33
+ },
34
+ get [EFlag.Blue]() {
35
+ return i18n('title_blue');
36
+ },
37
+ };
38
+ function EntityStatusLabel({ children, status, withStatusName = true, note, size = 'm', iconSize = 14, onClick, }) {
39
+ const theme = EFlagToLabelTheme[status];
40
+ const isClickable = Boolean(onClick);
41
+ return (_jsx(ActionTooltip, { title: EFlagToDescription[status], disabled: Boolean(note), children: _jsx(Label, { theme: theme === 'orange' ? undefined : theme, icon: _jsx(StatusIcon, { size: iconSize, status: status }), size: size, className: b({ orange: theme === 'orange', clickable: isClickable }), onClick: onClick, interactive: isClickable, children: _jsxs(Flex, { gap: "2", wrap: "nowrap", children: [children, withStatusName ? EFlagToStatusName[status] : null, note && _jsx(HelpMark, { className: b('note'), children: note })] }) }) }));
14
42
  }
15
- export function EntityStatus({ status = EFlag.Grey, name = '', renderName = defaultRenderName, path, size = 's', mode = 'color', showStatus = true, externalLink = false, withLeftTrim = false, hasClipboardButton, infoPopoverContent, clipboardButtonAlwaysVisible = false, className, }) {
16
- const [infoIconHovered, setInfoIconHovered] = React.useState(false);
17
- const renderIcon = () => {
18
- if (!showStatus) {
19
- return null;
20
- }
21
- return _jsx(StatusIcon, { className: b('icon'), status: status, size: size, mode: mode });
22
- };
23
- const renderLink = () => {
24
- if (path) {
25
- if (externalLink) {
26
- return (_jsx(UIKitLink, { className: b('name'), href: path, children: renderName(name) }));
27
- }
28
- return (_jsx(InternalLink, { className: b('name'), to: path, children: renderName(name) }));
29
- }
30
- return name && _jsx("span", { className: b('name'), children: renderName(name) });
31
- };
32
- return (_jsxs("div", { className: b(null, className), children: [renderIcon(), (path || name) && (_jsxs("div", { className: b('wrapper', {
33
- 'with-clipboard-button': hasClipboardButton,
34
- 'with-info-button': Boolean(infoPopoverContent),
35
- 'with-link': Boolean(path),
36
- }), children: [_jsx("span", { className: b('link', {
37
- 'with-left-trim': withLeftTrim,
38
- 'with-path': Boolean(path),
39
- }), title: name, children: renderLink() }), (hasClipboardButton || infoPopoverContent) && (_jsxs("div", { className: b('controls-wrapper', {
40
- visible: clipboardButtonAlwaysVisible || infoIconHovered,
41
- }), onClick: (e) => e.stopPropagation(), children: [infoPopoverContent && (_jsx(Popover, { className: YDB_POPOVER_CLASS_NAME, content: infoPopoverContent, placement: ['top-start', 'bottom-start'], onOpenChange: (visible) => setInfoIconHovered(visible), children: _jsx(Button, { view: "normal", size: "xs", className: b('info-icon', {
42
- visible: clipboardButtonAlwaysVisible || infoIconHovered,
43
- }), children: _jsx(Icon, { data: CircleInfo, size: "12" }) }) })), hasClipboardButton && (_jsx(ClipboardButton, { text: name, size: "xs", view: "normal", className: b('clipboard-button', {
44
- visible: clipboardButtonAlwaysVisible || infoIconHovered,
45
- }) }))] }))] }))] }));
43
+ export function EntityStatus({ className, children }) {
44
+ return (_jsx(Flex, { gap: "2", wrap: "nowrap", alignItems: "center", className: b(null, className), children: children }));
46
45
  }
46
+ EntityStatus.Label = EntityStatusLabel;
47
+ EntityStatus.displayName = 'EntityStatus';
47
48
  //# sourceMappingURL=EntityStatus.js.map