ydb-embedded-ui 6.10.3 → 6.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/DateRange/DateRange.d.ts +4 -4
- package/dist/components/DateRange/DateRange.js +23 -26
- package/dist/components/DateRange/DateRange.scss +14 -13
- package/dist/components/DateRange/__test__/fromDateRangeValues.test.d.ts +1 -0
- package/dist/components/DateRange/__test__/fromDateRangeValues.test.js +80 -0
- package/dist/components/DateRange/__test__/getdatePickerSize.test.d.ts +1 -0
- package/dist/components/DateRange/__test__/getdatePickerSize.test.js +56 -0
- package/dist/components/DateRange/__test__/toDateRangeValues.test.d.ts +1 -0
- package/dist/components/DateRange/__test__/toDateRangeValues.test.js +80 -0
- package/dist/components/DateRange/i18n/en.json +4 -0
- package/dist/components/DateRange/i18n/index.d.ts +2 -0
- package/dist/components/DateRange/i18n/index.js +5 -0
- package/dist/components/DateRange/i18n/ru.json +4 -0
- package/dist/components/DateRange/utils.d.ts +5 -0
- package/dist/components/DateRange/utils.js +41 -0
- package/dist/components/DeveloperUILinkButton/DeveloperUILinkButton.d.ts +8 -0
- package/dist/components/DeveloperUILinkButton/DeveloperUILinkButton.js +9 -0
- package/dist/components/DeveloperUILinkButton/DeveloperUILinkButton.scss +12 -0
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.d.ts +6 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +22 -12
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +45 -45
- package/dist/components/EntityStatus/EntityStatus.js +1 -1
- package/dist/components/EntityStatus/EntityStatus.scss +6 -2
- package/dist/components/MetricChart/reducer.d.ts +2 -2
- package/dist/components/MonacoEditor/MonacoEditor.js +0 -2
- package/dist/components/NodeHostWrapper/NodeHostWrapper.d.ts +0 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js +11 -7
- package/dist/components/PDiskInfo/PDiskInfo.d.ts +7 -4
- package/dist/components/PDiskInfo/PDiskInfo.js +73 -26
- package/dist/components/PDiskInfo/PDiskInfo.scss +15 -1
- package/dist/components/PDiskInfo/i18n/en.json +11 -5
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PDiskPopup/PDiskPopup.js +8 -2
- package/dist/components/VDiskInfo/VDiskInfo.d.ts +3 -2
- package/dist/components/VDiskInfo/VDiskInfo.js +9 -4
- package/dist/components/VDiskInfo/VDiskInfo.scss +7 -1
- package/dist/components/VDiskInfo/i18n/en.json +2 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Cluster/Cluster.scss +1 -4
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +1 -1
- package/dist/containers/Heatmap/Heatmap.d.ts +2 -1
- package/dist/containers/Heatmap/Heatmap.js +2 -2
- package/dist/containers/Node/Node.scss +1 -4
- package/dist/containers/Node/NodeStructure/NodeStructure.scss +0 -20
- package/dist/containers/Node/NodeStructure/Pdisk.js +2 -2
- package/dist/containers/PDiskPage/PDiskGroups/PDiskGroups.d.ts +6 -0
- package/dist/containers/PDiskPage/PDiskGroups/PDiskGroups.js +24 -0
- package/dist/containers/PDiskPage/PDiskPage.js +62 -24
- package/dist/containers/PDiskPage/PDiskPage.scss +8 -5
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.d.ts +7 -0
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +93 -0
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.scss +52 -0
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/utils.d.ts +4 -0
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/utils.js +9 -0
- package/dist/containers/PDiskPage/i18n/en.json +8 -1
- package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.js +16 -6
- package/dist/containers/Tablets/Tablets.js +12 -5
- package/dist/containers/Tenant/Acl/Acl.d.ts +2 -1
- package/dist/containers/Tenant/Acl/Acl.js +10 -8
- package/dist/containers/Tenant/Acl/Acl.scss +8 -8
- package/dist/containers/Tenant/Acl/i18n/en.json +6 -0
- package/dist/containers/Tenant/Acl/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Acl/i18n/index.js +4 -0
- package/dist/containers/Tenant/Diagnostics/Describe/Describe.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +4 -4
- package/dist/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.js +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +3 -3
- package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +3 -1
- package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +3 -3
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +6 -18
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.d.ts +1 -3
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/TableInfo.js +2 -2
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/i18n/en.json +14 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/i18n/index.js +1 -2
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo.d.ts +2 -3
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo.js +64 -76
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.js +8 -5
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +28 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/getSectionTitle.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/getSectionTitle.js +2 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +3 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.js +2 -2
- package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.d.ts +2 -2
- package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.js +19 -28
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js +7 -17
- package/dist/containers/Tenant/Diagnostics/TopShards/getTopShardsColumns.js +6 -2
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +31 -18
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js +2 -2
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +8 -3
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +2 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +9 -7
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.d.ts +2 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +38 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.scss +63 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsSelect.d.ts +15 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsSelect.js +14 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsSelect.scss +19 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.d.ts +99 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.js +109 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/en.json +13 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/index.js +5 -0
- package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/ru.json +13 -0
- package/dist/containers/Tenant/Query/i18n/en.json +14 -0
- package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Schema/CreateDirectoryDialog/CreateDirectoryDialog.d.ts +3 -2
- package/dist/containers/Tenant/Schema/CreateDirectoryDialog/CreateDirectoryDialog.js +2 -2
- package/dist/containers/Tenant/Schema/SchemaTree/SchemaTree.js +2 -2
- package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +1 -1
- package/dist/containers/Tenant/Tenant.js +1 -1
- package/dist/containers/Tenant/TenantPages.d.ts +12 -1
- package/dist/containers/Tenant/TenantPages.js +1 -1
- package/dist/containers/Tenant/i18n/en.json +2 -2
- package/dist/containers/Tenant/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/utils/schema.js +1 -1
- package/dist/containers/Tenants/Tenants.js +1 -1
- package/dist/containers/Tenants/Tenants.scss +0 -4
- package/dist/containers/UserSettings/i18n/en.json +2 -0
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +1 -0
- package/dist/containers/UserSettings/settings.js +6 -1
- package/dist/routes.js +2 -2
- package/dist/services/api.d.ts +39 -21
- package/dist/services/api.js +45 -56
- package/dist/services/settings.d.ts +1 -0
- package/dist/services/settings.js +2 -1
- package/dist/store/configureStore.d.ts +4 -4
- package/dist/store/defaultStore.d.ts +2 -2
- package/dist/store/reducers/api.d.ts +1 -1
- package/dist/store/reducers/api.js +1 -1
- package/dist/store/reducers/cluster/cluster.d.ts +2 -2
- package/dist/store/reducers/clusterNodes/clusterNodes.d.ts +2 -2
- package/dist/store/reducers/clusters/clusters.d.ts +2 -2
- package/dist/store/reducers/describe.d.ts +5 -2
- package/dist/store/reducers/describe.js +2 -2
- package/dist/store/reducers/executeQuery.d.ts +2 -2
- package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +2 -2
- package/dist/store/reducers/executeTopQueries/executeTopQueries.js +20 -14
- package/dist/store/reducers/executeTopQueries/types.d.ts +2 -2
- package/dist/store/reducers/executeTopQueries/utils.js +11 -7
- package/dist/store/reducers/explainQuery/explainQuery.d.ts +2 -2
- package/dist/store/reducers/explainQuery/explainQuery.js +6 -1
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +58 -58
- package/dist/store/reducers/heatmap.d.ts +2 -2
- package/dist/store/reducers/heatmap.js +3 -3
- package/dist/store/reducers/hotKeys/hotKeys.d.ts +3 -2
- package/dist/store/reducers/hotKeys/hotKeys.js +3 -3
- package/dist/store/reducers/index.d.ts +3 -3
- package/dist/store/reducers/network/network.d.ts +2 -2
- package/dist/store/reducers/network/network.js +1 -1
- package/dist/store/reducers/node/node.d.ts +3 -3
- package/dist/store/reducers/node/selectors.d.ts +1 -1
- package/dist/store/reducers/node/selectors.js +2 -2
- package/dist/store/reducers/nodes/nodes.d.ts +3 -3
- package/dist/store/reducers/nodesList.d.ts +3 -3
- package/dist/store/reducers/overview/overview.d.ts +5 -2
- package/dist/store/reducers/overview/overview.js +2 -2
- package/dist/store/reducers/partitions/partitions.d.ts +2 -2
- package/dist/store/reducers/pdisk/pdisk.d.ts +3 -3
- package/dist/store/reducers/pdisk/pdisk.js +15 -2
- package/dist/store/reducers/pdisk/types.d.ts +17 -1
- package/dist/store/reducers/pdisk/utils.d.ts +2 -2
- package/dist/store/reducers/pdisk/utils.js +68 -8
- package/dist/store/reducers/preview.d.ts +2 -2
- package/dist/store/reducers/preview.js +1 -1
- package/dist/store/reducers/queryActions/types.d.ts +1 -1
- package/dist/store/reducers/schema/schema.d.ts +28 -10
- package/dist/store/reducers/schema/schema.js +11 -12
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +4 -2
- package/dist/store/reducers/schemaAcl/schemaAcl.js +9 -3
- package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
- package/dist/store/reducers/shardsWorkload/shardsWorkload.js +22 -6
- package/dist/store/reducers/shardsWorkload/types.d.ts +2 -2
- package/dist/store/reducers/storage/storage.d.ts +3 -3
- package/dist/store/reducers/tablet.d.ts +3 -3
- package/dist/store/reducers/tablets.d.ts +13 -13
- package/dist/store/reducers/tabletsFilters.d.ts +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.js +1 -1
- package/dist/store/reducers/tenantOverview/topNodes/topNodes.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js +1 -1
- package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.d.ts +2 -2
- package/dist/store/reducers/tenants/selectors.d.ts +27 -27
- package/dist/store/reducers/tenants/tenants.d.ts +2 -2
- package/dist/store/reducers/topic.d.ts +44 -44
- package/dist/store/reducers/vdisk/vdisk.d.ts +2 -2
- package/dist/store/reducers/vdisk/vdisk.js +1 -1
- package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
- package/dist/store/reducers/viewSchema/viewSchema.js +1 -1
- package/dist/store/state-url-mapping.d.ts +70 -0
- package/dist/store/state-url-mapping.js +1 -5
- package/dist/styles/mixins.scss +11 -0
- package/dist/types/api/acl.d.ts +1 -0
- package/dist/types/api/pdisk.d.ts +65 -2
- package/dist/types/api/schema/schema.d.ts +21 -0
- package/dist/types/api/vdisk.d.ts +33 -2
- package/dist/types/common.d.ts +3 -0
- package/dist/types/store/heatmap.d.ts +1 -0
- package/dist/types/store/query.d.ts +4 -1
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +1 -0
- package/dist/utils/dataFormatters/dataFormatters.d.ts +0 -4
- package/dist/utils/dataFormatters/dataFormatters.js +2 -8
- package/dist/utils/developerUI/developerUI.d.ts +1 -0
- package/dist/utils/developerUI/developerUI.js +3 -0
- package/dist/utils/diagnostics.d.ts +21 -17
- package/dist/utils/diagnostics.js +28 -7
- package/dist/utils/disks/getPDiskType.d.ts +3 -3
- package/dist/utils/disks/helpers.d.ts +1 -0
- package/dist/utils/disks/helpers.js +3 -0
- package/dist/utils/disks/prepareDisks.d.ts +2 -2
- package/dist/utils/disks/prepareDisks.js +17 -22
- package/dist/utils/disks/types.d.ts +7 -5
- package/dist/utils/monaco/constats.d.ts +2 -0
- package/dist/utils/monaco/constats.js +2 -0
- package/dist/utils/monaco/yql/constants.d.ts +0 -1
- package/dist/utils/monaco/yql/constants.js +0 -1
- package/dist/utils/monaco/yql/yql.completionItemProvider.js +3 -3
- package/dist/utils/query.d.ts +24 -1
- package/dist/utils/query.js +40 -0
- package/package.json +5 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.scss +0 -15
- package/dist/containers/Node/NodeStructure/Vdisk.d.ts +0 -6
- package/dist/containers/Node/NodeStructure/Vdisk.js +0 -13
- package/dist/containers/PDiskPage/PDiskGroups.d.ts +0 -9
- package/dist/containers/PDiskPage/PDiskGroups.js +0 -20
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/i18n/ru.json +0 -5
- package/dist/store/reducers/olapStats.d.ts +0 -5
- package/dist/store/reducers/olapStats.js +0 -31
- package/dist/store/reducers/tenantOverview/topQueries/tenantOverviewTopQueries.d.ts +0 -5
- package/dist/store/reducers/tenantOverview/topQueries/tenantOverviewTopQueries.js +0 -38
- package/dist/utils/monaco/index.d.ts +0 -1
- package/dist/utils/monaco/index.js +0 -6
- package/dist/utils/monaco/s-expression/constants.d.ts +0 -1
- package/dist/utils/monaco/s-expression/constants.js +0 -1
- package/dist/utils/monaco/s-expression/registerLanguage.d.ts +0 -1
- package/dist/utils/monaco/s-expression/registerLanguage.js +0 -59
- package/dist/utils/monaco/yql/registerLanguage.d.ts +0 -1
- package/dist/utils/monaco/yql/registerLanguage.js +0 -8
- package/dist/utils/monaco/yql/yql.d.ts +0 -7
- package/dist/utils/monaco/yql/yql.js +0 -180
- package/dist/utils/monaco/yql/yql.keywords.d.ts +0 -3
- package/dist/utils/monaco/yql/yql.keywords.js +0 -3
@@ -1,9 +1,9 @@
|
|
1
1
|
import './DateRange.scss';
|
2
2
|
export interface DateRangeValues {
|
3
|
-
/** ms from epoch */
|
4
|
-
from?:
|
5
|
-
/** ms from epoch */
|
6
|
-
to?:
|
3
|
+
/** ms from epoch or special values like now, 1h, 1m, etc*/
|
4
|
+
from?: string;
|
5
|
+
/** ms from epoch or special values like now, 1h, 1m, etc*/
|
6
|
+
to?: string;
|
7
7
|
}
|
8
8
|
interface DateRangeProps extends DateRangeValues {
|
9
9
|
className?: string;
|
@@ -1,33 +1,30 @@
|
|
1
|
-
import { jsx as _jsx
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { RelativeRangeDatePicker } from '@gravity-ui/date-components';
|
2
4
|
import { cn } from '../../utils/cn';
|
5
|
+
import i18n from './i18n';
|
6
|
+
import { fromDateRangeValues, getdatePickerSize, toDateRangeValues } from './utils';
|
3
7
|
import './DateRange.scss';
|
4
8
|
const b = cn('date-range');
|
5
|
-
const
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
const DEFAULT_VALUE = {
|
10
|
+
start: {
|
11
|
+
value: 'now-1h',
|
12
|
+
type: 'relative',
|
13
|
+
},
|
14
|
+
end: {
|
15
|
+
value: 'now',
|
16
|
+
type: 'relative',
|
17
|
+
},
|
12
18
|
};
|
13
19
|
export const DateRange = ({ from, to, className, onChange }) => {
|
14
|
-
const
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
newFrom = to;
|
20
|
+
const handleUpdate = React.useCallback((pickerValue) => onChange === null || onChange === void 0 ? void 0 : onChange(toDateRangeValues(pickerValue)), [onChange]);
|
21
|
+
const value = React.useMemo(() => {
|
22
|
+
if (!from && !to) {
|
23
|
+
return undefined;
|
19
24
|
}
|
20
|
-
|
21
|
-
};
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
if (from && newTo && from > newTo) {
|
26
|
-
newTo = from;
|
27
|
-
}
|
28
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ from, to: newTo });
|
29
|
-
};
|
30
|
-
const startISO = toTimezonelessISOString(from);
|
31
|
-
const endISO = toTimezonelessISOString(to);
|
32
|
-
return (_jsxs("div", { className: b(null, className), children: [_jsx("input", { type: "datetime-local", value: startISO || '', max: endISO, onChange: handleFromChange, className: b('input') }), "\u2014", _jsx("input", { type: "datetime-local", min: startISO, value: endISO || '', onChange: handleToChange, className: b('input') })] }));
|
25
|
+
return fromDateRangeValues({ from, to });
|
26
|
+
}, [from, to]);
|
27
|
+
// eslint-disable-next-line new-cap
|
28
|
+
const timeZoneString = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
29
|
+
return (_jsx("div", { className: b(null, className), children: _jsx(RelativeRangeDatePicker, { withPresets: true, className: b('range-input', { [getdatePickerSize(value)]: true }), timeZone: timeZoneString, value: value || DEFAULT_VALUE, allowNullableValues: true, size: "m", format: i18n('date-time-format'), onUpdate: handleUpdate, placeholder: `${i18n('date-time-format')} - ${i18n('date-time-format')}`, withApplyButton: true }) }));
|
33
30
|
};
|
@@ -1,18 +1,19 @@
|
|
1
1
|
.date-range {
|
2
|
-
&
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
&__range-input {
|
3
|
+
&_s {
|
4
|
+
width: 200px;
|
5
|
+
}
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
&_m {
|
8
|
+
width: 300px;
|
9
|
+
}
|
10
|
+
|
11
|
+
&_l {
|
12
|
+
width: 350px;
|
13
|
+
}
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
input {
|
16
|
+
cursor: pointer;
|
17
|
+
}
|
17
18
|
}
|
18
19
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import { dateTimeParse } from '@gravity-ui/date-utils';
|
2
|
+
import { fromDateRangeValues } from '../utils';
|
3
|
+
describe('From daterange values to datepicker values', () => {
|
4
|
+
it('should return the correct datepicker values for to-absolute, from-absolute values', () => {
|
5
|
+
const from = new Date('2020-01-01 19:00:00').getTime();
|
6
|
+
const to = new Date('2022-01-01 19:00:00').getTime();
|
7
|
+
const dateRangeValues = {
|
8
|
+
from: String(from),
|
9
|
+
to: String(to),
|
10
|
+
};
|
11
|
+
const result = fromDateRangeValues(dateRangeValues);
|
12
|
+
expect(result).toEqual({
|
13
|
+
start: {
|
14
|
+
type: 'absolute',
|
15
|
+
value: dateTimeParse(Number(from)),
|
16
|
+
},
|
17
|
+
end: {
|
18
|
+
type: 'absolute',
|
19
|
+
value: dateTimeParse(Number(to)),
|
20
|
+
},
|
21
|
+
});
|
22
|
+
});
|
23
|
+
it('should return the correct datepicker values for to-relative, from-absolute values', () => {
|
24
|
+
const from = new Date('2020-01-01 19:00:00').getTime();
|
25
|
+
const to = 'now';
|
26
|
+
const dateRangeValues = {
|
27
|
+
from: String(from),
|
28
|
+
to: String(to),
|
29
|
+
};
|
30
|
+
const result = fromDateRangeValues(dateRangeValues);
|
31
|
+
expect(result).toEqual({
|
32
|
+
start: {
|
33
|
+
type: 'absolute',
|
34
|
+
value: dateTimeParse(Number(from)),
|
35
|
+
},
|
36
|
+
end: {
|
37
|
+
type: 'relative',
|
38
|
+
value: to,
|
39
|
+
},
|
40
|
+
});
|
41
|
+
});
|
42
|
+
it('should return the correct datepicker values for from-relative, to-absolute values', () => {
|
43
|
+
const from = 'now';
|
44
|
+
const to = new Date('2022-01-01 19:00:00').getTime();
|
45
|
+
const dateRangeValues = {
|
46
|
+
from: String(from),
|
47
|
+
to: String(to),
|
48
|
+
};
|
49
|
+
const result = fromDateRangeValues(dateRangeValues);
|
50
|
+
expect(result).toEqual({
|
51
|
+
start: {
|
52
|
+
type: 'relative',
|
53
|
+
value: from,
|
54
|
+
},
|
55
|
+
end: {
|
56
|
+
type: 'absolute',
|
57
|
+
value: dateTimeParse(Number(to)),
|
58
|
+
},
|
59
|
+
});
|
60
|
+
});
|
61
|
+
it('should return the correct datepicker values for from-relative, to-relative values', () => {
|
62
|
+
const from = 'now';
|
63
|
+
const to = 'now + 1h';
|
64
|
+
const dateRangeValues = {
|
65
|
+
from: String(from),
|
66
|
+
to: String(to),
|
67
|
+
};
|
68
|
+
const result = fromDateRangeValues(dateRangeValues);
|
69
|
+
expect(result).toEqual({
|
70
|
+
start: {
|
71
|
+
type: 'relative',
|
72
|
+
value: from,
|
73
|
+
},
|
74
|
+
end: {
|
75
|
+
type: 'relative',
|
76
|
+
value: to,
|
77
|
+
},
|
78
|
+
});
|
79
|
+
});
|
80
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { dateTimeParse } from '@gravity-ui/date-utils';
|
2
|
+
import { getdatePickerSize } from '../utils';
|
3
|
+
describe('getdatePickerSize test', () => {
|
4
|
+
it('should return the correct datepicker size', () => {
|
5
|
+
const datePickerRangeValues = {
|
6
|
+
start: {
|
7
|
+
type: 'relative',
|
8
|
+
value: 'now',
|
9
|
+
},
|
10
|
+
end: {
|
11
|
+
type: 'relative',
|
12
|
+
value: 'now',
|
13
|
+
},
|
14
|
+
};
|
15
|
+
expect(getdatePickerSize(datePickerRangeValues)).toEqual('s');
|
16
|
+
});
|
17
|
+
it('should return the correct datepicker size', () => {
|
18
|
+
const datePickerRangeValues = {
|
19
|
+
start: {
|
20
|
+
type: 'absolute',
|
21
|
+
value: dateTimeParse(Number(new Date().getTime())),
|
22
|
+
},
|
23
|
+
end: {
|
24
|
+
type: 'relative',
|
25
|
+
value: 'now + 1',
|
26
|
+
},
|
27
|
+
};
|
28
|
+
expect(getdatePickerSize(datePickerRangeValues)).toEqual('m');
|
29
|
+
});
|
30
|
+
it('should return the correct datepicker size', () => {
|
31
|
+
const datePickerRangeValues = {
|
32
|
+
start: {
|
33
|
+
type: 'relative',
|
34
|
+
value: 'now + 1',
|
35
|
+
},
|
36
|
+
end: {
|
37
|
+
type: 'absolute',
|
38
|
+
value: dateTimeParse(Number(new Date().getTime())),
|
39
|
+
},
|
40
|
+
};
|
41
|
+
expect(getdatePickerSize(datePickerRangeValues)).toEqual('m');
|
42
|
+
});
|
43
|
+
it('should return the correct datepicker size', () => {
|
44
|
+
const datePickerRangeValues = {
|
45
|
+
start: {
|
46
|
+
type: 'absolute',
|
47
|
+
value: dateTimeParse(Number(new Date().getTime())),
|
48
|
+
},
|
49
|
+
end: {
|
50
|
+
type: 'absolute',
|
51
|
+
value: dateTimeParse(Number(new Date().getTime())),
|
52
|
+
},
|
53
|
+
};
|
54
|
+
expect(getdatePickerSize(datePickerRangeValues)).toEqual('l');
|
55
|
+
});
|
56
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import { dateTimeParse } from '@gravity-ui/date-utils';
|
2
|
+
import { toDateRangeValues } from '../utils';
|
3
|
+
describe('To daterange values from datepicker values', () => {
|
4
|
+
it('should return the correct datepicker values for to-absolute, from-absolute values', () => {
|
5
|
+
const from = new Date('2020-01-01 19:00:00').getTime();
|
6
|
+
const to = new Date('2022-01-01 19:00:00').getTime();
|
7
|
+
const datePickerRangeValues = {
|
8
|
+
start: {
|
9
|
+
type: 'absolute',
|
10
|
+
value: dateTimeParse(Number(from)),
|
11
|
+
},
|
12
|
+
end: {
|
13
|
+
type: 'absolute',
|
14
|
+
value: dateTimeParse(Number(to)),
|
15
|
+
},
|
16
|
+
};
|
17
|
+
const result = toDateRangeValues(datePickerRangeValues);
|
18
|
+
expect(result).toEqual({
|
19
|
+
from: String(from),
|
20
|
+
to: String(to),
|
21
|
+
});
|
22
|
+
});
|
23
|
+
});
|
24
|
+
it('should return the correct daterange values for to-relative, from-absolute values', () => {
|
25
|
+
const from = new Date('2020-01-01 19:00:00').getTime();
|
26
|
+
const to = 'now';
|
27
|
+
const datePickerRangeValues = {
|
28
|
+
start: {
|
29
|
+
type: 'absolute',
|
30
|
+
value: dateTimeParse(Number(from)),
|
31
|
+
},
|
32
|
+
end: {
|
33
|
+
type: 'relative',
|
34
|
+
value: to,
|
35
|
+
},
|
36
|
+
};
|
37
|
+
const result = toDateRangeValues(datePickerRangeValues);
|
38
|
+
expect(result).toEqual({
|
39
|
+
from: String(from),
|
40
|
+
to: to,
|
41
|
+
});
|
42
|
+
});
|
43
|
+
it('should return the correct daterange values for from-relative, to-absolute values', () => {
|
44
|
+
const from = 'now';
|
45
|
+
const to = new Date('2022-01-01 19:00:00').getTime();
|
46
|
+
const datePickerRangeValues = {
|
47
|
+
start: {
|
48
|
+
type: 'relative',
|
49
|
+
value: from,
|
50
|
+
},
|
51
|
+
end: {
|
52
|
+
type: 'absolute',
|
53
|
+
value: dateTimeParse(Number(to)),
|
54
|
+
},
|
55
|
+
};
|
56
|
+
const result = toDateRangeValues(datePickerRangeValues);
|
57
|
+
expect(result).toEqual({
|
58
|
+
from: from,
|
59
|
+
to: String(to),
|
60
|
+
});
|
61
|
+
});
|
62
|
+
it('should return the correct daterange values for from-relative, to-relative values', () => {
|
63
|
+
const from = 'now';
|
64
|
+
const to = 'now + 1';
|
65
|
+
const datePickerRangeValues = {
|
66
|
+
start: {
|
67
|
+
type: 'relative',
|
68
|
+
value: from,
|
69
|
+
},
|
70
|
+
end: {
|
71
|
+
type: 'relative',
|
72
|
+
value: to,
|
73
|
+
},
|
74
|
+
};
|
75
|
+
const result = toDateRangeValues(datePickerRangeValues);
|
76
|
+
expect(result).toEqual({
|
77
|
+
from: from,
|
78
|
+
to: to,
|
79
|
+
});
|
80
|
+
});
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import type { RelativeRangeDatePickerProps } from '@gravity-ui/date-components';
|
2
|
+
import type { DateRangeValues } from './DateRange';
|
3
|
+
export declare function fromDateRangeValues(value: DateRangeValues): RelativeRangeDatePickerProps['value'];
|
4
|
+
export declare function toDateRangeValues(value: RelativeRangeDatePickerProps['value']): DateRangeValues;
|
5
|
+
export declare function getdatePickerSize(value: RelativeRangeDatePickerProps['value']): "m" | "s" | "l";
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { dateTimeParse, isLikeRelative } from '@gravity-ui/date-utils';
|
2
|
+
export function fromDateRangeValues(value) {
|
3
|
+
var _a, _b;
|
4
|
+
const isFromRelative = isLikeRelative((_a = value.from) !== null && _a !== void 0 ? _a : '');
|
5
|
+
const isToRelative = isLikeRelative((_b = value.to) !== null && _b !== void 0 ? _b : '');
|
6
|
+
return {
|
7
|
+
start: value.from
|
8
|
+
? {
|
9
|
+
type: isFromRelative ? 'relative' : 'absolute',
|
10
|
+
value: isFromRelative ? value.from : dateTimeParse(Number(value.from)),
|
11
|
+
}
|
12
|
+
: null,
|
13
|
+
end: value.to
|
14
|
+
? {
|
15
|
+
type: isToRelative ? 'relative' : 'absolute',
|
16
|
+
value: isToRelative ? value.to : dateTimeParse(Number(value.to)),
|
17
|
+
}
|
18
|
+
: null,
|
19
|
+
};
|
20
|
+
}
|
21
|
+
export function toDateRangeValues(value) {
|
22
|
+
var _a, _b, _c, _d, _e, _f;
|
23
|
+
return {
|
24
|
+
from: ((_a = value === null || value === void 0 ? void 0 : value.start) === null || _a === void 0 ? void 0 : _a.type) === 'relative'
|
25
|
+
? value.start.value.toString()
|
26
|
+
: String((_c = dateTimeParse((_b = value === null || value === void 0 ? void 0 : value.start) === null || _b === void 0 ? void 0 : _b.value)) === null || _c === void 0 ? void 0 : _c.valueOf()),
|
27
|
+
to: ((_d = value === null || value === void 0 ? void 0 : value.end) === null || _d === void 0 ? void 0 : _d.type) === 'relative'
|
28
|
+
? value.end.value.toString()
|
29
|
+
: String((_f = dateTimeParse((_e = value === null || value === void 0 ? void 0 : value.end) === null || _e === void 0 ? void 0 : _e.value)) === null || _f === void 0 ? void 0 : _f.valueOf()),
|
30
|
+
};
|
31
|
+
}
|
32
|
+
export function getdatePickerSize(value) {
|
33
|
+
var _a, _b, _c, _d;
|
34
|
+
if (((_a = value === null || value === void 0 ? void 0 : value.start) === null || _a === void 0 ? void 0 : _a.type) === 'relative' && ((_b = value === null || value === void 0 ? void 0 : value.end) === null || _b === void 0 ? void 0 : _b.type) === 'relative') {
|
35
|
+
return 's';
|
36
|
+
}
|
37
|
+
else if (((_c = value === null || value === void 0 ? void 0 : value.start) === null || _c === void 0 ? void 0 : _c.type) === 'relative' || ((_d = value === null || value === void 0 ? void 0 : value.end) === null || _d === void 0 ? void 0 : _d.type) === 'relative') {
|
38
|
+
return 'm';
|
39
|
+
}
|
40
|
+
return 'l';
|
41
|
+
}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import './DeveloperUILinkButton.scss';
|
2
|
+
interface DeveloperUiLinkProps {
|
3
|
+
className?: string;
|
4
|
+
visible?: boolean;
|
5
|
+
href: string;
|
6
|
+
}
|
7
|
+
export declare function DeveloperUILinkButton({ href, visible, className }: DeveloperUiLinkProps): import("react/jsx-runtime").JSX.Element;
|
8
|
+
export {};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { ArrowUpRightFromSquare } from '@gravity-ui/icons';
|
3
|
+
import { Button, Icon } from '@gravity-ui/uikit';
|
4
|
+
import { cn } from '../../utils/cn';
|
5
|
+
import './DeveloperUILinkButton.scss';
|
6
|
+
const b = cn('developer-ui-link-button');
|
7
|
+
export function DeveloperUILinkButton({ href, visible = false, className }) {
|
8
|
+
return (_jsx(Button, { size: "s", href: href, className: b({ visible }, className), target: "_blank", children: _jsx(Icon, { data: ArrowUpRightFromSquare }) }));
|
9
|
+
}
|
@@ -1,8 +1,13 @@
|
|
1
|
+
import React from 'react';
|
1
2
|
import './DiskStateProgressBar.scss';
|
2
3
|
interface DiskStateProgressBarProps {
|
3
4
|
diskAllocatedPercent?: number;
|
4
5
|
severity?: number;
|
5
6
|
compact?: boolean;
|
7
|
+
faded?: boolean;
|
8
|
+
empty?: boolean;
|
9
|
+
content?: React.ReactNode;
|
10
|
+
className?: string;
|
6
11
|
}
|
7
|
-
export declare function DiskStateProgressBar({ diskAllocatedPercent, severity, compact, }: DiskStateProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
12
|
+
export declare function DiskStateProgressBar({ diskAllocatedPercent, severity, compact, faded, empty, content, className, }: DiskStateProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
8
13
|
export {};
|
@@ -1,25 +1,35 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
-
import React from 'react';
|
3
2
|
import { cn } from '../../utils/cn';
|
4
3
|
import { INVERTED_DISKS_KEY } from '../../utils/constants';
|
5
4
|
import { getSeverityColor } from '../../utils/disks/helpers';
|
6
5
|
import { useSetting } from '../../utils/hooks';
|
7
6
|
import './DiskStateProgressBar.scss';
|
8
7
|
const b = cn('storage-disk-progress-bar');
|
9
|
-
export function DiskStateProgressBar({ diskAllocatedPercent = -1, severity, compact, }) {
|
8
|
+
export function DiskStateProgressBar({ diskAllocatedPercent = -1, severity, compact, faded, empty, content, className, }) {
|
10
9
|
const [inverted] = useSetting(INVERTED_DISKS_KEY);
|
11
|
-
const
|
12
|
-
if (compact) {
|
13
|
-
return _jsx("div", { className: b('filled'), style: { width: '100%' } });
|
14
|
-
}
|
15
|
-
return (diskAllocatedPercent >= 0 && (_jsxs(React.Fragment, { children: [_jsx("div", { className: b('filled'), style: {
|
16
|
-
width: `${inverted ? 100 - diskAllocatedPercent : diskAllocatedPercent}%`,
|
17
|
-
} }), _jsx("div", { className: b('filled-title'), children: `${Math.round(diskAllocatedPercent)}%` })] })));
|
18
|
-
};
|
19
|
-
const mods = { inverted, compact };
|
10
|
+
const mods = { inverted, compact, faded, empty };
|
20
11
|
const color = severity !== undefined && getSeverityColor(severity);
|
21
12
|
if (color) {
|
22
13
|
mods[color.toLocaleLowerCase()] = true;
|
23
14
|
}
|
24
|
-
|
15
|
+
const renderAllocatedPercent = () => {
|
16
|
+
if (compact) {
|
17
|
+
return _jsx("div", { className: b('fill-bar', mods), style: { width: '100%' } });
|
18
|
+
}
|
19
|
+
const fillWidth = inverted ? 100 - diskAllocatedPercent : diskAllocatedPercent;
|
20
|
+
if (diskAllocatedPercent >= 0) {
|
21
|
+
return _jsx("div", { className: b('fill-bar', mods), style: { width: `${fillWidth}%` } });
|
22
|
+
}
|
23
|
+
return null;
|
24
|
+
};
|
25
|
+
const renderContent = () => {
|
26
|
+
if (content) {
|
27
|
+
return content;
|
28
|
+
}
|
29
|
+
if (!compact && diskAllocatedPercent >= 0) {
|
30
|
+
return _jsx("div", { className: b('title'), children: `${Math.round(diskAllocatedPercent)}%` });
|
31
|
+
}
|
32
|
+
return null;
|
33
|
+
};
|
34
|
+
return (_jsxs("div", { className: b(mods, className), role: "meter", "aria-label": "Disk allocated space", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": diskAllocatedPercent, children: [renderAllocatedPercent(), renderContent()] }));
|
25
35
|
}
|
@@ -5,81 +5,70 @@
|
|
5
5
|
$outer-border-radius: 4px;
|
6
6
|
$inner-border-radius: $outer-border-radius - $border-width;
|
7
7
|
|
8
|
+
--progress-bar-border-color: var(--g-color-base-misc-heavy);
|
9
|
+
--progress-bar-background-color: var(--g-color-base-misc-light);
|
10
|
+
--progress-bar-fill-color: var(--g-color-base-misc-medium);
|
11
|
+
|
8
12
|
position: relative;
|
9
13
|
z-index: 0;
|
10
14
|
|
11
|
-
display: block;
|
12
|
-
|
13
15
|
min-width: 50px;
|
14
16
|
height: var(--g-text-body-3-line-height);
|
15
17
|
|
16
18
|
text-align: center;
|
17
19
|
|
18
20
|
color: var(--g-color-text-primary);
|
19
|
-
border: $border-width solid var(--
|
21
|
+
border: $border-width solid var(--progress-bar-border-color);
|
20
22
|
border-radius: $outer-border-radius;
|
21
|
-
background-color: var(--
|
23
|
+
background-color: var(--progress-bar-background-color);
|
22
24
|
|
23
25
|
&_compact {
|
24
26
|
min-width: 0;
|
25
27
|
height: 12px;
|
26
28
|
|
27
29
|
border-radius: 2px;
|
28
|
-
|
29
|
-
#{$block}__filled {
|
30
|
-
border-radius: 1px;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
#{$block}__filled {
|
35
|
-
background-color: var(--g-color-base-misc-medium);
|
36
30
|
}
|
37
31
|
|
38
32
|
&_green {
|
39
|
-
border-color: var(--g-color-base-positive-heavy);
|
40
|
-
background-color: var(--g-color-base-positive-light);
|
41
|
-
|
42
|
-
background-color: var(--g-color-base-positive-medium);
|
43
|
-
|
44
|
-
.g-root_theme_dark & {
|
45
|
-
// the common medium green is too bright for this case
|
46
|
-
background-color: rgb(124, 227, 121, 0.4);
|
47
|
-
}
|
48
|
-
}
|
33
|
+
--progress-bar-border-color: var(--g-color-base-positive-heavy);
|
34
|
+
--progress-bar-background-color: var(--g-color-base-positive-light);
|
35
|
+
--progress-bar-fill-color: var(--g-color-base-positive-medium);
|
49
36
|
}
|
50
37
|
|
51
38
|
&_blue {
|
52
|
-
border-color: var(--g-color-base-info-heavy);
|
53
|
-
background-color: var(--g-color-base-info-light);
|
54
|
-
|
55
|
-
background-color: var(--g-color-base-info-medium);
|
56
|
-
}
|
39
|
+
--progress-bar-border-color: var(--g-color-base-info-heavy);
|
40
|
+
--progress-bar-background-color: var(--g-color-base-info-light);
|
41
|
+
--progress-bar-fill-color: var(--g-color-base-info-medium);
|
57
42
|
}
|
58
43
|
|
59
44
|
&_yellow {
|
60
|
-
border-color: var(--g-color-base-warning-heavy);
|
61
|
-
background-color: var(--g-color-base-yellow-light);
|
62
|
-
|
63
|
-
background-color: var(--g-color-base-yellow-medium);
|
64
|
-
}
|
45
|
+
--progress-bar-border-color: var(--g-color-base-warning-heavy);
|
46
|
+
--progress-bar-background-color: var(--g-color-base-yellow-light);
|
47
|
+
--progress-bar-fill-color: var(--g-color-base-yellow-medium);
|
65
48
|
}
|
66
49
|
|
67
50
|
&_orange {
|
68
|
-
border-color: var(--ydb-color-status-orange);
|
69
|
-
background-color: var(--g-color-base-warning-light);
|
70
|
-
|
71
|
-
background-color: var(--g-color-base-warning-medium);
|
72
|
-
}
|
51
|
+
--progress-bar-border-color: var(--ydb-color-status-orange);
|
52
|
+
--progress-bar-background-color: var(--g-color-base-warning-light);
|
53
|
+
--progress-bar-fill-color: var(--g-color-base-warning-medium);
|
73
54
|
}
|
74
55
|
&_red {
|
75
|
-
border-color: var(--g-color-base-danger-heavy);
|
76
|
-
background-color: var(--g-color-base-danger-light);
|
77
|
-
|
78
|
-
|
79
|
-
|
56
|
+
--progress-bar-border-color: var(--g-color-base-danger-heavy);
|
57
|
+
--progress-bar-background-color: var(--g-color-base-danger-light);
|
58
|
+
--progress-bar-fill-color: var(--g-color-base-danger-medium);
|
59
|
+
}
|
60
|
+
|
61
|
+
&_faded {
|
62
|
+
background-color: unset;
|
80
63
|
}
|
81
64
|
|
82
|
-
&
|
65
|
+
&_empty {
|
66
|
+
color: var(--g-color-text-hint);
|
67
|
+
border-style: dashed;
|
68
|
+
background-color: unset;
|
69
|
+
}
|
70
|
+
|
71
|
+
&__fill-bar {
|
83
72
|
position: absolute;
|
84
73
|
top: 0;
|
85
74
|
left: 0;
|
@@ -87,15 +76,26 @@
|
|
87
76
|
height: 100%;
|
88
77
|
|
89
78
|
border-radius: $inner-border-radius 0 0 $inner-border-radius;
|
79
|
+
background-color: var(--progress-bar-fill-color);
|
90
80
|
|
91
|
-
|
81
|
+
&_faded {
|
82
|
+
// Bg color is light variant, use it to make bar less bright
|
83
|
+
background-color: var(--progress-bar-background-color);
|
84
|
+
}
|
85
|
+
|
86
|
+
&_compact {
|
87
|
+
border-radius: 1px;
|
88
|
+
}
|
89
|
+
|
90
|
+
&_inverted {
|
92
91
|
right: 0;
|
93
92
|
left: auto;
|
94
93
|
|
95
94
|
border-radius: 0 $inner-border-radius $inner-border-radius 0;
|
96
95
|
}
|
97
96
|
}
|
98
|
-
|
97
|
+
|
98
|
+
&__title {
|
99
99
|
position: relative;
|
100
100
|
z-index: 2;
|
101
101
|
|
@@ -28,5 +28,5 @@ export function EntityStatus({ status = EFlag.Grey, name = '', label, path, icon
|
|
28
28
|
};
|
29
29
|
return (_jsxs("div", { className: b(null, className), title: name, children: [iconPath ? renderStatusLink(iconPath) : renderIcon(), label && (_jsx("span", { title: label, className: b('label', { size, state: status.toLowerCase() }), children: label })), _jsx("span", { className: b('link', { 'with-left-trim': withLeftTrim }), children: renderLink() }), hasClipboardButton && (_jsx(ClipboardButton, { text: name, size: "s", className: b('clipboard-button', {
|
30
30
|
visible: clipboardButtonAlwaysVisible,
|
31
|
-
}) })), additionalControls] }));
|
31
|
+
}) })), additionalControls && (_jsx("span", { className: b('additional-controls '), children: additionalControls }))] }));
|
32
32
|
}
|