@cloud-ru/uikit-product-calculator 0.33.5 → 0.34.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.
- package/CHANGELOG.md +24 -0
- package/dist/cjs/components/Calculator/Calculator.d.ts +1 -1
- package/dist/cjs/components/Catalog/Catalog.d.ts +1 -1
- package/dist/cjs/components/Catalog/Catalog.js +5 -5
- package/dist/cjs/components/Controls/ArrayControl/ArrayControl.js +1 -1
- package/dist/cjs/components/Controls/CarouselControl/CarouselControl.js +1 -1
- package/dist/cjs/components/Controls/SelectControl/SelectControl.js +1 -1
- package/dist/cjs/components/Controls/TableControl/helperComponents/StepperWithAllowedValues.js +1 -1
- package/dist/cjs/components/Controls/ToggleControl/components/SwitchRow.js +1 -1
- package/dist/cjs/components/Controls/ToggleObjectControl/ToggleObjectControl.js +1 -1
- package/dist/cjs/components/HeaderContainer/index.js +1 -1
- package/dist/cjs/components/PriceSummary/PriceSummary.js +2 -2
- package/dist/cjs/components/PriceSummary/components/PricePeriodSelect/PricePeriodSelect.js +2 -2
- package/dist/cjs/components/PriceSummary/components/ProductCard/ProductCard.js +2 -2
- package/dist/cjs/components/PriceSummary/components/ProductListActions/ProductListActions.js +1 -1
- package/dist/cjs/components/ProductHeadline/ProductPageHeadline.js +1 -1
- package/dist/cjs/components/Welcome/Welcome.js +2 -2
- package/dist/cjs/config/platforms/advanced/platform.js +1 -1
- package/dist/cjs/config/platforms/advanced/products.js +1 -1
- package/dist/cjs/config/platforms/evolution/catalog.js +7 -1
- package/dist/cjs/config/platforms/evolution/constants.d.ts +3 -0
- package/dist/cjs/config/platforms/evolution/constants.js +3 -0
- package/dist/cjs/config/platforms/evolution/platform.js +1 -1
- package/dist/cjs/config/platforms/evolution/product-config/EvolutionDNS.d.ts +2 -0
- package/dist/cjs/config/platforms/evolution/product-config/EvolutionDNS.js +99 -0
- package/dist/cjs/config/platforms/evolution/product-config/EvolutionLoadBalancer.d.ts +2 -0
- package/dist/cjs/config/platforms/evolution/product-config/EvolutionLoadBalancer.js +62 -0
- package/dist/cjs/config/platforms/evolution/product-config/EvolutionManagedBI.d.ts +2 -0
- package/dist/cjs/config/platforms/evolution/product-config/EvolutionManagedBI.js +35 -0
- package/dist/cjs/config/platforms/evolution/products.js +36 -1
- package/dist/cjs/config/platforms/vmware/platform.js +1 -1
- package/dist/cjs/config/platforms/vmware/products.js +1 -1
- package/dist/cjs/contexts/CalculatorContext.d.ts +1 -1
- package/dist/cjs/contexts/CalculatorContext.js +1 -1
- package/dist/cjs/hooks/useAdaptive.d.ts +1 -1
- package/dist/cjs/hooks/useAdaptive.js +1 -1
- package/dist/esm/components/Calculator/Calculator.d.ts +1 -1
- package/dist/esm/components/Catalog/Catalog.d.ts +1 -1
- package/dist/esm/components/Catalog/Catalog.js +5 -5
- package/dist/esm/components/Controls/ArrayControl/ArrayControl.js +1 -1
- package/dist/esm/components/Controls/CarouselControl/CarouselControl.js +1 -1
- package/dist/esm/components/Controls/SelectControl/SelectControl.js +1 -1
- package/dist/esm/components/Controls/TableControl/helperComponents/StepperWithAllowedValues.js +1 -1
- package/dist/esm/components/Controls/ToggleControl/components/SwitchRow.js +1 -1
- package/dist/esm/components/Controls/ToggleObjectControl/ToggleObjectControl.js +1 -1
- package/dist/esm/components/HeaderContainer/index.js +1 -1
- package/dist/esm/components/PriceSummary/PriceSummary.js +2 -2
- package/dist/esm/components/PriceSummary/components/PricePeriodSelect/PricePeriodSelect.js +2 -2
- package/dist/esm/components/PriceSummary/components/ProductCard/ProductCard.js +2 -2
- package/dist/esm/components/PriceSummary/components/ProductListActions/ProductListActions.js +1 -1
- package/dist/esm/components/ProductHeadline/ProductPageHeadline.js +1 -1
- package/dist/esm/components/Welcome/Welcome.js +2 -2
- package/dist/esm/config/platforms/advanced/platform.js +1 -1
- package/dist/esm/config/platforms/advanced/products.js +1 -1
- package/dist/esm/config/platforms/evolution/catalog.js +7 -1
- package/dist/esm/config/platforms/evolution/constants.d.ts +3 -0
- package/dist/esm/config/platforms/evolution/constants.js +3 -0
- package/dist/esm/config/platforms/evolution/platform.js +1 -1
- package/dist/esm/config/platforms/evolution/product-config/EvolutionDNS.d.ts +2 -0
- package/dist/esm/config/platforms/evolution/product-config/EvolutionDNS.js +96 -0
- package/dist/esm/config/platforms/evolution/product-config/EvolutionLoadBalancer.d.ts +2 -0
- package/dist/esm/config/platforms/evolution/product-config/EvolutionLoadBalancer.js +59 -0
- package/dist/esm/config/platforms/evolution/product-config/EvolutionManagedBI.d.ts +2 -0
- package/dist/esm/config/platforms/evolution/product-config/EvolutionManagedBI.js +32 -0
- package/dist/esm/config/platforms/evolution/products.js +36 -1
- package/dist/esm/config/platforms/vmware/platform.js +1 -1
- package/dist/esm/config/platforms/vmware/products.js +1 -1
- package/dist/esm/contexts/CalculatorContext.d.ts +1 -1
- package/dist/esm/contexts/CalculatorContext.js +1 -1
- package/dist/esm/hooks/useAdaptive.d.ts +1 -1
- package/dist/esm/hooks/useAdaptive.js +1 -1
- package/package.json +8 -9
- package/src/config/platforms/evolution/catalog.tsx +7 -1
- package/src/config/platforms/evolution/constants.ts +3 -0
- package/src/config/platforms/evolution/product-config/EvolutionDNS.ts +103 -0
- package/src/config/platforms/evolution/product-config/EvolutionLoadBalancer.tsx +60 -0
- package/src/config/platforms/evolution/product-config/EvolutionManagedBI.ts +34 -0
- package/src/config/platforms/evolution/products.ts +38 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { FilterSVG } from '@
|
|
5
|
-
import { MobileDroplist } from '@
|
|
6
|
-
import { AdaptiveFieldSelect } from '@
|
|
7
|
-
import { MobileModalCustom } from '@
|
|
8
|
-
import { LAYOUT_TYPE } from '@
|
|
4
|
+
import { FilterSVG } from '@cloud-ru/uikit-product-icons';
|
|
5
|
+
import { MobileDroplist } from '@cloud-ru/uikit-product-mobile-dropdown';
|
|
6
|
+
import { AdaptiveFieldSelect } from '@cloud-ru/uikit-product-mobile-fields';
|
|
7
|
+
import { MobileModalCustom } from '@cloud-ru/uikit-product-mobile-modal';
|
|
8
|
+
import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
|
|
9
9
|
import { ButtonFilled } from '@snack-uikit/button';
|
|
10
10
|
import { Card } from '@snack-uikit/card';
|
|
11
11
|
import { Divider } from '@snack-uikit/divider';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { PlusSVG, TrashSVG } from '@
|
|
2
|
+
import { PlusSVG, TrashSVG } from '@cloud-ru/uikit-product-icons';
|
|
3
3
|
import { ButtonFunction } from '@snack-uikit/button';
|
|
4
4
|
import { ProductContext, useProductContext } from '../../../contexts';
|
|
5
5
|
import { useAdaptive } from '../../../hooks';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { createElement as _createElement } from "react";
|
|
3
3
|
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
-
import { ChevronLeftSVG, ChevronRightSVG } from '@
|
|
4
|
+
import { ChevronLeftSVG, ChevronRightSVG } from '@cloud-ru/uikit-product-icons';
|
|
5
5
|
import { ButtonFunction } from '@snack-uikit/button';
|
|
6
6
|
import { Carousel } from '@snack-uikit/carousel';
|
|
7
7
|
import { FieldDecorator } from '@snack-uikit/fields';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useMemo } from 'react';
|
|
3
|
-
import { AdaptiveFieldSelect } from '@
|
|
3
|
+
import { AdaptiveFieldSelect } from '@cloud-ru/uikit-product-mobile-fields';
|
|
4
4
|
import { useCalculatorContext } from '../../../contexts';
|
|
5
5
|
import { parseKeyToDataTest } from '../../../utils';
|
|
6
6
|
import styles from './styles.module.css';
|
package/dist/esm/components/Controls/TableControl/helperComponents/StepperWithAllowedValues.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import { MinusSVG, PlusSVG } from '@
|
|
3
|
+
import { MinusSVG, PlusSVG } from '@cloud-ru/uikit-product-icons';
|
|
4
4
|
import { ButtonFunction } from '@snack-uikit/button';
|
|
5
5
|
import { InputPrivate } from '@snack-uikit/input-private';
|
|
6
6
|
import styles from './styles.module.css';
|
|
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import cn from 'classnames';
|
|
14
|
-
import { extractSupportProps } from '@
|
|
14
|
+
import { extractSupportProps } from '@cloud-ru/uikit-product-utils';
|
|
15
15
|
import { Switch } from '@snack-uikit/toggles';
|
|
16
16
|
import { Tooltip } from '@snack-uikit/tooltip';
|
|
17
17
|
import { parseKeyToDataTest } from '../../../../utils';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState } from 'react';
|
|
3
|
-
import { MobileAccordionPrimary } from '@
|
|
3
|
+
import { MobileAccordionPrimary } from '@cloud-ru/uikit-product-mobile-accordion';
|
|
4
4
|
import { Divider } from '@snack-uikit/divider';
|
|
5
5
|
import { Switch } from '@snack-uikit/toggles';
|
|
6
6
|
import { ProductContext, useCalculatorContext, useProductContext } from '../../../contexts';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import { LAYOUT_TYPE } from '@
|
|
3
|
+
import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
|
|
4
4
|
import { useCalculatorContext } from '../../contexts';
|
|
5
5
|
import styles from './styles.module.css';
|
|
6
6
|
export const HeaderContainer = forwardRef(({ children, dataTestId }, ref) => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import { useDeferredValue, useMemo, useRef } from 'react';
|
|
4
|
-
import { PlusSVG } from '@
|
|
5
|
-
import { LAYOUT_TYPE } from '@
|
|
4
|
+
import { PlusSVG } from '@cloud-ru/uikit-product-icons';
|
|
5
|
+
import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
|
|
6
6
|
import { ButtonFilled } from '@snack-uikit/button';
|
|
7
7
|
import { Scroll } from '@snack-uikit/scroll';
|
|
8
8
|
import { Tag } from '@snack-uikit/tag';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { ChevronDownSVG, ChevronUpSVG } from '@
|
|
4
|
-
import { AdaptiveDroplist } from '@
|
|
3
|
+
import { ChevronDownSVG, ChevronUpSVG } from '@cloud-ru/uikit-product-icons';
|
|
4
|
+
import { AdaptiveDroplist } from '@cloud-ru/uikit-product-mobile-dropdown';
|
|
5
5
|
import { ButtonFunction } from '@snack-uikit/button';
|
|
6
6
|
import { Tooltip } from '@snack-uikit/tooltip';
|
|
7
7
|
import { useCalculatorContext } from '../../../../contexts';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useDeferredValue } from 'react';
|
|
3
|
-
import { KebabSVG } from '@
|
|
4
|
-
import { AdaptiveDroplist } from '@
|
|
3
|
+
import { KebabSVG } from '@cloud-ru/uikit-product-icons';
|
|
4
|
+
import { AdaptiveDroplist } from '@cloud-ru/uikit-product-mobile-dropdown';
|
|
5
5
|
import { ButtonFunction } from '@snack-uikit/button';
|
|
6
6
|
import { Card } from '@snack-uikit/card';
|
|
7
7
|
import { useCalculatorContext } from '../../../../contexts';
|
package/dist/esm/components/PriceSummary/components/ProductListActions/ProductListActions.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
11
|
import { useEffect, useRef, useState } from 'react';
|
|
12
|
-
import { CheckFilledSVG, DownloadSVG, HeadphonesSVG, LinkSVG } from '@
|
|
12
|
+
import { CheckFilledSVG, DownloadSVG, HeadphonesSVG, LinkSVG } from '@cloud-ru/uikit-product-icons';
|
|
13
13
|
import { ButtonTonal } from '@snack-uikit/button';
|
|
14
14
|
import { Tooltip } from '@snack-uikit/tooltip';
|
|
15
15
|
import { useCalculatorContext } from '../../../../contexts';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
|
-
import { LAYOUT_TYPE } from '@
|
|
3
|
+
import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
|
|
4
4
|
import { ButtonTonal } from '@snack-uikit/button';
|
|
5
5
|
import { FieldStepper } from '@snack-uikit/fields';
|
|
6
6
|
import { IconPredefined } from '@snack-uikit/icon-predefined';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { PlusSVG } from '@
|
|
3
|
-
import { LAYOUT_TYPE } from '@
|
|
2
|
+
import { PlusSVG } from '@cloud-ru/uikit-product-icons';
|
|
3
|
+
import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
|
|
4
4
|
import { ButtonFilled } from '@snack-uikit/button';
|
|
5
5
|
import { FieldStepper } from '@snack-uikit/fields';
|
|
6
6
|
import { Typography } from '@snack-uikit/typography';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { AdvancedPlatformSVG } from '@
|
|
2
|
+
import { AdvancedPlatformSVG } from '@cloud-ru/uikit-product-icons';
|
|
3
3
|
import { PLATFORM } from '../../../constants';
|
|
4
4
|
export const ADVANCED_PLATFORM = {
|
|
5
5
|
id: PLATFORM.Advanced,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CloudBackupAndRecoverySVG, CloudContainerEngineSVG, CloudSearchServiceSVG, DataLakeInsightSVG, DataWarehouseServiceSVG, DistributedCacheServiceForMemcachedSVG, DistributedCacheServiceForRedisSVG, DistributedMessageServiceForKafkaSVG, DistributedMessageServiceForRabbitMqSVG, DocumentDatabaseServiceSVG, ElasticCloudServerSVG, ElasticLoadBalanceSVG, MapReduceServiceSVG, ObjectStorageServiceSVG, PlaceholderSVG, RelationalDatabaseServiceSVG, ScalableFileServiceSVG, ServerlessFunctionSVG, SnatSVG, } from '@
|
|
1
|
+
import { CloudBackupAndRecoverySVG, CloudContainerEngineSVG, CloudSearchServiceSVG, DataLakeInsightSVG, DataWarehouseServiceSVG, DistributedCacheServiceForMemcachedSVG, DistributedCacheServiceForRedisSVG, DistributedMessageServiceForKafkaSVG, DistributedMessageServiceForRabbitMqSVG, DocumentDatabaseServiceSVG, ElasticCloudServerSVG, ElasticLoadBalanceSVG, MapReduceServiceSVG, ObjectStorageServiceSVG, PlaceholderSVG, RelationalDatabaseServiceSVG, ScalableFileServiceSVG, ServerlessFunctionSVG, SnatSVG, } from '@cloud-ru/uikit-product-icons';
|
|
2
2
|
import { PLATFORM } from '../../../constants';
|
|
3
3
|
import { ADVANCED_PRODUCT } from './constants';
|
|
4
4
|
import { CLOUD_BACKUP_FORM_CONFIG, CLOUD_CONTAINER_ENGINE_FORM_CONFIG, CLOUD_SERVER_FORM_CONFIG, DATA_AS_YOU_USE_FORM_CONFIG, DATA_LAKE_INSIGHT_FORM_CONFIG, DATA_WAREHOUSE_SERVICE_FORM_CONFIG, DCS_REDIS_FORM_CONFIG, DMS_KAFKA_FORM_CONFIG, DOCUMENT_DATABASE_FORM_CONFIG, DSC_MEMCACHED_FORM_CONFIG, DSC_RABBIT_MQ_FORM_CONFIG, ELASTIC_LOAD_BALANCE_FORM_CONFIG, ELASTIC_SEARCH_FORM_CONFIG, FUNCTION_GRAPH_FORM_CONFIG, MAP_REDUCE_FORM_CONFIG, MYSQL_DATA_BASE_FORM_CONFIG, NETWORK_FORM_CONFIG, OBJECT_STORAGE_FORM_CONFIG, POSTGRE_SQL_DATA_BASE_FORM_CONFIG, SCALABLE_FILE_FORM_CONFIG, SQL_DATA_BASE_FORM_CONFIG, } from './product-config';
|
|
@@ -43,7 +43,12 @@ export const EVOLUTION_CATALOG = {
|
|
|
43
43
|
id: CATEGORY.Network,
|
|
44
44
|
label: 'Сети',
|
|
45
45
|
dataTestId: 'network',
|
|
46
|
-
visibleProducts: [
|
|
46
|
+
visibleProducts: [
|
|
47
|
+
EVOLUTION_PRODUCT.EvolutionSnatGateway,
|
|
48
|
+
EVOLUTION_PRODUCT.EvolutionPublicIp,
|
|
49
|
+
EVOLUTION_PRODUCT.EvolutionLoadBalancer,
|
|
50
|
+
EVOLUTION_PRODUCT.EvolutionDNS,
|
|
51
|
+
],
|
|
47
52
|
},
|
|
48
53
|
{
|
|
49
54
|
id: CATEGORY.Storage,
|
|
@@ -73,6 +78,7 @@ export const EVOLUTION_CATALOG = {
|
|
|
73
78
|
EVOLUTION_PRODUCT.EvolutionManagedMetastore,
|
|
74
79
|
EVOLUTION_PRODUCT.EvolutionManagedRedis,
|
|
75
80
|
EVOLUTION_PRODUCT.EvolutionManagedSpark,
|
|
81
|
+
EVOLUTION_PRODUCT.EvolutionManagedBI,
|
|
76
82
|
],
|
|
77
83
|
},
|
|
78
84
|
{
|
|
@@ -14,10 +14,13 @@ export declare const EVOLUTION_PRODUCT: {
|
|
|
14
14
|
readonly EvolutionSnatGateway: "evolutionSnatGateway";
|
|
15
15
|
readonly EvolutionManagedMetastore: "evolutionManagedMetastore";
|
|
16
16
|
readonly EvolutionPublicIp: "evolutionPublicIp";
|
|
17
|
+
readonly EvolutionDNS: "evolutionDNS";
|
|
17
18
|
readonly EvolutionArtifactRegistry: "evolutionArtifactRegistry";
|
|
18
19
|
readonly EvolutionManagedTrino: "evolutionManagedTrino";
|
|
20
|
+
readonly EvolutionManagedBI: "evolutionManagedBI";
|
|
19
21
|
readonly EvolutionManagedRedis: "evolutionManagedRedis";
|
|
20
22
|
readonly EvolutionManagedSpark: "evolutionManagedSpark";
|
|
23
|
+
readonly EvolutionLoadBalancer: "evolutionLoadBalancer";
|
|
21
24
|
};
|
|
22
25
|
export declare const guaranteedPartToVCpuMap: {
|
|
23
26
|
[x: string]: number[];
|
|
@@ -14,10 +14,13 @@ export const EVOLUTION_PRODUCT = {
|
|
|
14
14
|
EvolutionSnatGateway: 'evolutionSnatGateway',
|
|
15
15
|
EvolutionManagedMetastore: 'evolutionManagedMetastore',
|
|
16
16
|
EvolutionPublicIp: 'evolutionPublicIp',
|
|
17
|
+
EvolutionDNS: 'evolutionDNS',
|
|
17
18
|
EvolutionArtifactRegistry: 'evolutionArtifactRegistry',
|
|
18
19
|
EvolutionManagedTrino: 'evolutionManagedTrino',
|
|
20
|
+
EvolutionManagedBI: 'evolutionManagedBI',
|
|
19
21
|
EvolutionManagedRedis: 'evolutionManagedRedis',
|
|
20
22
|
EvolutionManagedSpark: 'evolutionManagedSpark',
|
|
23
|
+
EvolutionLoadBalancer: 'evolutionLoadBalancer',
|
|
21
24
|
};
|
|
22
25
|
const GuaranteedPartItem = {
|
|
23
26
|
'10': '10',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { EvolutionSVG } from '@
|
|
2
|
+
import { EvolutionSVG } from '@cloud-ru/uikit-product-icons';
|
|
3
3
|
import { PLATFORM } from '../../../constants';
|
|
4
4
|
export const EVOLUTION_PLATFORM = {
|
|
5
5
|
id: PLATFORM.Evolution,
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { CONTROL } from '../../../../components';
|
|
2
|
+
const domainZoneCards = [
|
|
3
|
+
{
|
|
4
|
+
value: 'Private',
|
|
5
|
+
label: 'Приватная доменная зона',
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
value: 'Public',
|
|
9
|
+
label: 'Публичная доменная зона',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: 'null',
|
|
13
|
+
label: 'DNS-сервер',
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
const requestTypesCards = [
|
|
17
|
+
{
|
|
18
|
+
value: '0',
|
|
19
|
+
label: 'Запросы к приватным доменным зонам',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
value: '1',
|
|
23
|
+
label: 'Запросы к публичным доменным зонам',
|
|
24
|
+
disabled: true,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
value: '2',
|
|
28
|
+
label: 'Запросы к внешним доменным зонам',
|
|
29
|
+
disabled: true,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
export const EVOLUTION_DNS_CONFIG = {
|
|
33
|
+
ui: ['domainZone', 'requestTypes', ['requestCount']],
|
|
34
|
+
controls: {
|
|
35
|
+
domainZone: {
|
|
36
|
+
decoratorProps: {
|
|
37
|
+
label: 'Тип услуги',
|
|
38
|
+
},
|
|
39
|
+
type: CONTROL.Segmented,
|
|
40
|
+
accessorKey: 'domainZone',
|
|
41
|
+
defaultValue: domainZoneCards[0].value,
|
|
42
|
+
items: domainZoneCards,
|
|
43
|
+
onChangeFn: (value, setValue) => {
|
|
44
|
+
const itemIndex = domainZoneCards.findIndex(domain => value === domain.value);
|
|
45
|
+
const arr = [
|
|
46
|
+
['domainZone', value],
|
|
47
|
+
['requestTypes', String(itemIndex)],
|
|
48
|
+
];
|
|
49
|
+
setValue(arr);
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
requestTypes: {
|
|
53
|
+
decoratorProps: {
|
|
54
|
+
label: 'Тип запросов',
|
|
55
|
+
},
|
|
56
|
+
type: CONTROL.Segmented,
|
|
57
|
+
accessorKey: 'requestTypes',
|
|
58
|
+
defaultValue: requestTypesCards[0].value,
|
|
59
|
+
items: requestTypesCards,
|
|
60
|
+
watchedControls: { domainZone: 'domainZone' },
|
|
61
|
+
relateFn: ({ domainZone }) => {
|
|
62
|
+
const itemIndex = domainZoneCards.findIndex(domain => domainZone === domain.value);
|
|
63
|
+
if (itemIndex >= 0) {
|
|
64
|
+
return {
|
|
65
|
+
items: requestTypesCards.map((type, index) => ({
|
|
66
|
+
value: type.value,
|
|
67
|
+
label: type.label,
|
|
68
|
+
disabled: itemIndex !== index,
|
|
69
|
+
})),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
requestCount: {
|
|
75
|
+
type: CONTROL.Stepper,
|
|
76
|
+
accessorKey: 'requestCount',
|
|
77
|
+
defaultValue: 100,
|
|
78
|
+
decoratorProps: {
|
|
79
|
+
label: 'Количество запросов',
|
|
80
|
+
labelTooltip: 'Бесплатно',
|
|
81
|
+
},
|
|
82
|
+
uiProps: {
|
|
83
|
+
min: 100,
|
|
84
|
+
max: 9999900,
|
|
85
|
+
step: 100,
|
|
86
|
+
postfix: 'тыс',
|
|
87
|
+
},
|
|
88
|
+
watchedControls: { requestTypes: 'requestTypes' },
|
|
89
|
+
relateFn: ({ requestTypes }) => ({
|
|
90
|
+
decoratorProps: {
|
|
91
|
+
labelTooltip: requestTypes === '0' ? 'Бесплатно' : 'Бесплатно до 1 млн запросов',
|
|
92
|
+
},
|
|
93
|
+
}),
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { CONTROL } from '../../../../components';
|
|
2
|
+
export const EVOLUTION_LOAD_BALANCER_CONFIG = {
|
|
3
|
+
ui: [['availabilityZone'], ['outcomingTraffic'], ['incomingTraffic'], 'hasPublicIP'],
|
|
4
|
+
controls: {
|
|
5
|
+
availabilityZone: {
|
|
6
|
+
type: CONTROL.Stepper,
|
|
7
|
+
defaultValue: 1,
|
|
8
|
+
accessorKey: 'availabilityZone',
|
|
9
|
+
decoratorProps: {
|
|
10
|
+
label: 'Зоны доступности',
|
|
11
|
+
labelTooltip: 'В каждой зоне доступности по две ресурсные единицы',
|
|
12
|
+
},
|
|
13
|
+
uiProps: {
|
|
14
|
+
min: 1,
|
|
15
|
+
max: 3,
|
|
16
|
+
showHint: false,
|
|
17
|
+
postfix: 'Шт',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
outcomingTraffic: {
|
|
21
|
+
type: CONTROL.Stepper,
|
|
22
|
+
defaultValue: 1,
|
|
23
|
+
accessorKey: 'outcomingTraffic',
|
|
24
|
+
decoratorProps: {
|
|
25
|
+
label: 'Исходящий трафик',
|
|
26
|
+
labelTooltip: 'Обработка балансировщиком L4 исходящего трафика',
|
|
27
|
+
},
|
|
28
|
+
uiProps: {
|
|
29
|
+
min: 0,
|
|
30
|
+
max: 9999999999,
|
|
31
|
+
showHint: false,
|
|
32
|
+
postfix: 'Гб',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
incomingTraffic: {
|
|
36
|
+
type: CONTROL.Stepper,
|
|
37
|
+
defaultValue: 1,
|
|
38
|
+
accessorKey: 'incomingTraffic',
|
|
39
|
+
decoratorProps: {
|
|
40
|
+
label: 'Входящий трафик',
|
|
41
|
+
labelTooltip: 'Обработка балансировщиком L4 входящего трафика',
|
|
42
|
+
},
|
|
43
|
+
uiProps: {
|
|
44
|
+
min: 0,
|
|
45
|
+
max: 9999999999,
|
|
46
|
+
showHint: false,
|
|
47
|
+
postfix: 'Гб',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
hasPublicIP: {
|
|
51
|
+
type: CONTROL.Toggle,
|
|
52
|
+
accessorKey: 'hasPublicIP',
|
|
53
|
+
defaultValue: false,
|
|
54
|
+
decoratorProps: {
|
|
55
|
+
label: 'Аренда публичного IP',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CONTROL } from '../../../../components';
|
|
2
|
+
const configItems = [
|
|
3
|
+
{
|
|
4
|
+
value: '2, 4 (Freetier)',
|
|
5
|
+
label: '2 vCPU / 4 RAM (Freetier)',
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
value: '2, 4',
|
|
9
|
+
label: '2 vCPU / 4 RAM',
|
|
10
|
+
},
|
|
11
|
+
];
|
|
12
|
+
export const EVOLUTION_MANAGED_BI = {
|
|
13
|
+
ui: ['serviceAlert', ['name']],
|
|
14
|
+
controls: {
|
|
15
|
+
serviceAlert: {
|
|
16
|
+
type: CONTROL.Alert,
|
|
17
|
+
uiProps: {
|
|
18
|
+
description: 'Бесплатно предоставляем первый инстанс в заданной конфигурации',
|
|
19
|
+
},
|
|
20
|
+
accessorKey: 'tarification',
|
|
21
|
+
},
|
|
22
|
+
name: {
|
|
23
|
+
type: CONTROL.SelectSingle,
|
|
24
|
+
accessorKey: 'name',
|
|
25
|
+
items: configItems,
|
|
26
|
+
defaultValue: '2, 4 (freetier)',
|
|
27
|
+
decoratorProps: {
|
|
28
|
+
label: 'Конфигурация',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { ArenadataDbSVG, ArtifactRegistrySVG, BareMetalSVG, ContainerAppsSVG, ElasticCloudServerWithGpuSVG, EvolutionComputeSVG, ManagedKubernetesSVG, ManagedPostgreSqlSVG, MetastoreSVG, MlInferenceSVG, PublicIpSVG, RedisSVG, S3StorageSVG, SnatSVG, SparkSVG, TrinoSVG, } from '@
|
|
1
|
+
import { ArenadataDbSVG, ArtifactRegistrySVG, BareMetalSVG, ContainerAppsSVG, ElasticCloudServerWithGpuSVG, EvoDnsSVG, EvolutionBiSVG, EvolutionComputeSVG, LoadBalancerSVG, ManagedKubernetesSVG, ManagedPostgreSqlSVG, MetastoreSVG, MlInferenceSVG, PublicIpSVG, RedisSVG, S3StorageSVG, SnatSVG, SparkSVG, TrinoSVG, } from '@cloud-ru/uikit-product-icons';
|
|
2
2
|
import { PLATFORM } from '../../../constants';
|
|
3
3
|
import { EVOLUTION_PRODUCT } from './constants';
|
|
4
4
|
import { EVOLUTION_ARENADATA_DB_FORM_CONFIG, EVOLUTION_ARTIFACT_REGISTRY, EVOLUTION_BARE_METAL_FORM_CONFIG, EVOLUTION_CLOUD_SERVER_FORM_CONFIG, EVOLUTION_CLOUD_SERVER_FREE_TIER_FORM_CONFIG, EVOLUTION_CLOUD_SERVER_GPU_FORM_CONFIG, EVOLUTION_CONTAINER_APPS_CONFIG, EVOLUTION_CONTAINER_APPS_FREE_TIER_CONFIG, EVOLUTION_KUBERNETES_FORM_CONFIG, EVOLUTION_MANAGED_METASTORE_CONFIG, EVOLUTION_MANAGED_TRINO_CONFIG, EVOLUTION_ML_INFERENCE_FORM_CONFIG, EVOLUTION_POSTGRE_SQL_FORM_CONFIG, EVOLUTION_PUBLIC_IP_FORM_CONFIG, EVOLUTION_SNAT_GATEWAY_FORM_CONFIG, EVOLUTION_STORAGE_S3_FORM_CONFIG, EVOLUTION_STORAGE_S3_FREE_TIER_FORM_CONFIG, } from './product-config';
|
|
5
|
+
import { EVOLUTION_DNS_CONFIG } from './product-config/EvolutionDNS';
|
|
6
|
+
import { EVOLUTION_LOAD_BALANCER_CONFIG } from './product-config/EvolutionLoadBalancer';
|
|
7
|
+
import { EVOLUTION_MANAGED_BI } from './product-config/EvolutionManagedBI';
|
|
5
8
|
import { EVOLUTION_MANAGED_REDIS_CONFIG } from './product-config/EvolutionManagedRedis';
|
|
6
9
|
import { EVOLUTION_MANAGED_SPARK_CONFIG } from './product-config/EvolutionManagedSpark';
|
|
7
10
|
export const EVOLUTION_PRODUCTS = {
|
|
@@ -89,6 +92,16 @@ export const EVOLUTION_PRODUCTS = {
|
|
|
89
92
|
dataTestId: 'EvolutionManagedRedis',
|
|
90
93
|
enableConnectToConsole: true,
|
|
91
94
|
},
|
|
95
|
+
[EVOLUTION_PRODUCT.EvolutionLoadBalancer]: {
|
|
96
|
+
id: EVOLUTION_PRODUCT.EvolutionLoadBalancer,
|
|
97
|
+
platform: PLATFORM.Evolution,
|
|
98
|
+
label: 'Evolution Load Balancer',
|
|
99
|
+
caption: 'Сервис для балансировки сетевого трафика',
|
|
100
|
+
formConfig: EVOLUTION_LOAD_BALANCER_CONFIG,
|
|
101
|
+
icon: LoadBalancerSVG,
|
|
102
|
+
dataTestId: 'EvolutionLoadBalancer',
|
|
103
|
+
enableConnectToConsole: true,
|
|
104
|
+
},
|
|
92
105
|
[EVOLUTION_PRODUCT.EvolutionStorageS3]: {
|
|
93
106
|
id: EVOLUTION_PRODUCT.EvolutionStorageS3,
|
|
94
107
|
platform: PLATFORM.Evolution,
|
|
@@ -196,6 +209,17 @@ export const EVOLUTION_PRODUCTS = {
|
|
|
196
209
|
enableChangeProductQuantity: true,
|
|
197
210
|
enableConnectToConsole: true,
|
|
198
211
|
},
|
|
212
|
+
[EVOLUTION_PRODUCT.EvolutionDNS]: {
|
|
213
|
+
id: EVOLUTION_PRODUCT.EvolutionDNS,
|
|
214
|
+
platform: PLATFORM.Evolution,
|
|
215
|
+
label: 'Evolution DNS',
|
|
216
|
+
caption: 'Сервис для управления публичными и приватными доменными зонами на облачной платформе Cloud.ru Evolution',
|
|
217
|
+
icon: EvoDnsSVG,
|
|
218
|
+
formConfig: EVOLUTION_DNS_CONFIG,
|
|
219
|
+
dataTestId: EVOLUTION_PRODUCT.EvolutionDNS,
|
|
220
|
+
enableChangeProductQuantity: true,
|
|
221
|
+
enableConnectToConsole: true,
|
|
222
|
+
},
|
|
199
223
|
[EVOLUTION_PRODUCT.EvolutionPublicIp]: {
|
|
200
224
|
id: EVOLUTION_PRODUCT.EvolutionPublicIp,
|
|
201
225
|
platform: PLATFORM.Evolution,
|
|
@@ -218,4 +242,15 @@ export const EVOLUTION_PRODUCTS = {
|
|
|
218
242
|
enableChangeProductQuantity: false,
|
|
219
243
|
enableConnectToConsole: true,
|
|
220
244
|
},
|
|
245
|
+
[EVOLUTION_PRODUCT.EvolutionManagedBI]: {
|
|
246
|
+
id: EVOLUTION_PRODUCT.EvolutionManagedBI,
|
|
247
|
+
platform: PLATFORM.Evolution,
|
|
248
|
+
label: 'Evolution Managed BI',
|
|
249
|
+
caption: 'Управляемые инстансы Business Intelligence',
|
|
250
|
+
icon: EvolutionBiSVG,
|
|
251
|
+
formConfig: EVOLUTION_MANAGED_BI,
|
|
252
|
+
dataTestId: EVOLUTION_PRODUCT.EvolutionManagedBI,
|
|
253
|
+
enableChangeProductQuantity: false,
|
|
254
|
+
enableConnectToConsole: true,
|
|
255
|
+
},
|
|
221
256
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { VmwareSVG } from '@
|
|
2
|
+
import { VmwareSVG } from '@cloud-ru/uikit-product-icons';
|
|
3
3
|
import { PLATFORM } from '../../../constants';
|
|
4
4
|
export const VM_WARE_PLATFORM = {
|
|
5
5
|
id: PLATFORM.VmWare,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BackupSVG, VirtualDataCenterWithGpuSVG, VirtualDesktopInfrastructureSVG, VmBackupSVG, } from '@
|
|
1
|
+
import { BackupSVG, VirtualDataCenterWithGpuSVG, VirtualDesktopInfrastructureSVG, VmBackupSVG, } from '@cloud-ru/uikit-product-icons';
|
|
2
2
|
import { PLATFORM } from '../../../constants';
|
|
3
3
|
import { VM_WARE_PRODUCT } from './constants';
|
|
4
4
|
import { VIRTUAL_DATA_CENTER_FORM_CONFIG, VM_WARE_CLOUD_BACKUP_FORM_CONFIG, VM_WARE_VIRTUAL_MACHINES_BACKUP_FORM_CONFIG, VM_WARE_VIRTUAL_WORKSPACES_FORM_CONFIG, } from './product-config';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
|
-
import { LayoutType } from '@
|
|
2
|
+
import { LayoutType } from '@cloud-ru/uikit-product-utils';
|
|
3
3
|
import { CalculatorProps } from '../components';
|
|
4
4
|
import { CatalogConfig, FetcherFn, FormValues, PlatformType, PricePeriod, ProductState } from '../types';
|
|
5
5
|
import { CalculatorType } from '../types/CalculatorType';
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
import { createContext, useContext, useState } from 'react';
|
|
12
|
-
import { LAYOUT_TYPE } from '@
|
|
12
|
+
import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
|
|
13
13
|
import { getDefaultValues } from '../components/Controls/utils';
|
|
14
14
|
import { DEFAULT_CATEGORY, DEFAULT_PRICE, PLATFORM } from '../constants';
|
|
15
15
|
import { PRICE_PERIOD } from '../types';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloud-ru/uikit-product-calculator",
|
|
3
3
|
"title": "Calculator",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.34.0",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.css",
|
|
7
7
|
"*.woff",
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
"name": "Akhremenko Grigorii",
|
|
31
31
|
"url": "https://github.com/AGrigorii"
|
|
32
32
|
},
|
|
33
|
-
"contributors": [],
|
|
34
33
|
"license": "Apache-2.0",
|
|
35
34
|
"publishConfig": {
|
|
36
35
|
"access": "public"
|
|
@@ -38,12 +37,12 @@
|
|
|
38
37
|
"scripts": {},
|
|
39
38
|
"dependencies": {
|
|
40
39
|
"@cloud-ru/ft-copy-to-clipboard": "0.1.0",
|
|
41
|
-
"@cloud-ru/uikit-product-icons": "15.1.
|
|
42
|
-
"@cloud-ru/uikit-product-mobile-accordion": "0.4.
|
|
43
|
-
"@cloud-ru/uikit-product-mobile-dropdown": "0.9.
|
|
44
|
-
"@cloud-ru/uikit-product-mobile-fields": "0.11.
|
|
45
|
-
"@cloud-ru/uikit-product-mobile-modal": "0.9.
|
|
46
|
-
"@cloud-ru/uikit-product-utils": "7.0.
|
|
40
|
+
"@cloud-ru/uikit-product-icons": "15.1.4",
|
|
41
|
+
"@cloud-ru/uikit-product-mobile-accordion": "0.4.24",
|
|
42
|
+
"@cloud-ru/uikit-product-mobile-dropdown": "0.9.24",
|
|
43
|
+
"@cloud-ru/uikit-product-mobile-fields": "0.11.27",
|
|
44
|
+
"@cloud-ru/uikit-product-mobile-modal": "0.9.21",
|
|
45
|
+
"@cloud-ru/uikit-product-utils": "7.0.3",
|
|
47
46
|
"@snack-uikit/alert": "0.15.12",
|
|
48
47
|
"@snack-uikit/button": "0.19.7",
|
|
49
48
|
"@snack-uikit/card": "0.16.19",
|
|
@@ -72,5 +71,5 @@
|
|
|
72
71
|
"devDependencies": {
|
|
73
72
|
"@types/lodash": "4.17.13"
|
|
74
73
|
},
|
|
75
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "6380c68516813bbe2c59dbe0b4d7ed89093cc9c7"
|
|
76
75
|
}
|
|
@@ -65,7 +65,12 @@ export const EVOLUTION_CATALOG: CatalogConfig['catalog'] = {
|
|
|
65
65
|
id: CATEGORY.Network,
|
|
66
66
|
label: 'Сети',
|
|
67
67
|
dataTestId: 'network',
|
|
68
|
-
visibleProducts: [
|
|
68
|
+
visibleProducts: [
|
|
69
|
+
EVOLUTION_PRODUCT.EvolutionSnatGateway,
|
|
70
|
+
EVOLUTION_PRODUCT.EvolutionPublicIp,
|
|
71
|
+
EVOLUTION_PRODUCT.EvolutionLoadBalancer,
|
|
72
|
+
EVOLUTION_PRODUCT.EvolutionDNS,
|
|
73
|
+
],
|
|
69
74
|
},
|
|
70
75
|
{
|
|
71
76
|
id: CATEGORY.Storage,
|
|
@@ -95,6 +100,7 @@ export const EVOLUTION_CATALOG: CatalogConfig['catalog'] = {
|
|
|
95
100
|
EVOLUTION_PRODUCT.EvolutionManagedMetastore,
|
|
96
101
|
EVOLUTION_PRODUCT.EvolutionManagedRedis,
|
|
97
102
|
EVOLUTION_PRODUCT.EvolutionManagedSpark,
|
|
103
|
+
EVOLUTION_PRODUCT.EvolutionManagedBI,
|
|
98
104
|
],
|
|
99
105
|
},
|
|
100
106
|
{
|
|
@@ -14,10 +14,13 @@ export const EVOLUTION_PRODUCT = {
|
|
|
14
14
|
EvolutionSnatGateway: 'evolutionSnatGateway',
|
|
15
15
|
EvolutionManagedMetastore: 'evolutionManagedMetastore',
|
|
16
16
|
EvolutionPublicIp: 'evolutionPublicIp',
|
|
17
|
+
EvolutionDNS: 'evolutionDNS',
|
|
17
18
|
EvolutionArtifactRegistry: 'evolutionArtifactRegistry',
|
|
18
19
|
EvolutionManagedTrino: 'evolutionManagedTrino',
|
|
20
|
+
EvolutionManagedBI: 'evolutionManagedBI',
|
|
19
21
|
EvolutionManagedRedis: 'evolutionManagedRedis',
|
|
20
22
|
EvolutionManagedSpark: 'evolutionManagedSpark',
|
|
23
|
+
EvolutionLoadBalancer: 'evolutionLoadBalancer',
|
|
21
24
|
} as const;
|
|
22
25
|
|
|
23
26
|
const GuaranteedPartItem = {
|