@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.
Files changed (78) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/components/Calculator/Calculator.d.ts +1 -1
  3. package/dist/cjs/components/Catalog/Catalog.d.ts +1 -1
  4. package/dist/cjs/components/Catalog/Catalog.js +5 -5
  5. package/dist/cjs/components/Controls/ArrayControl/ArrayControl.js +1 -1
  6. package/dist/cjs/components/Controls/CarouselControl/CarouselControl.js +1 -1
  7. package/dist/cjs/components/Controls/SelectControl/SelectControl.js +1 -1
  8. package/dist/cjs/components/Controls/TableControl/helperComponents/StepperWithAllowedValues.js +1 -1
  9. package/dist/cjs/components/Controls/ToggleControl/components/SwitchRow.js +1 -1
  10. package/dist/cjs/components/Controls/ToggleObjectControl/ToggleObjectControl.js +1 -1
  11. package/dist/cjs/components/HeaderContainer/index.js +1 -1
  12. package/dist/cjs/components/PriceSummary/PriceSummary.js +2 -2
  13. package/dist/cjs/components/PriceSummary/components/PricePeriodSelect/PricePeriodSelect.js +2 -2
  14. package/dist/cjs/components/PriceSummary/components/ProductCard/ProductCard.js +2 -2
  15. package/dist/cjs/components/PriceSummary/components/ProductListActions/ProductListActions.js +1 -1
  16. package/dist/cjs/components/ProductHeadline/ProductPageHeadline.js +1 -1
  17. package/dist/cjs/components/Welcome/Welcome.js +2 -2
  18. package/dist/cjs/config/platforms/advanced/platform.js +1 -1
  19. package/dist/cjs/config/platforms/advanced/products.js +1 -1
  20. package/dist/cjs/config/platforms/evolution/catalog.js +7 -1
  21. package/dist/cjs/config/platforms/evolution/constants.d.ts +3 -0
  22. package/dist/cjs/config/platforms/evolution/constants.js +3 -0
  23. package/dist/cjs/config/platforms/evolution/platform.js +1 -1
  24. package/dist/cjs/config/platforms/evolution/product-config/EvolutionDNS.d.ts +2 -0
  25. package/dist/cjs/config/platforms/evolution/product-config/EvolutionDNS.js +99 -0
  26. package/dist/cjs/config/platforms/evolution/product-config/EvolutionLoadBalancer.d.ts +2 -0
  27. package/dist/cjs/config/platforms/evolution/product-config/EvolutionLoadBalancer.js +62 -0
  28. package/dist/cjs/config/platforms/evolution/product-config/EvolutionManagedBI.d.ts +2 -0
  29. package/dist/cjs/config/platforms/evolution/product-config/EvolutionManagedBI.js +35 -0
  30. package/dist/cjs/config/platforms/evolution/products.js +36 -1
  31. package/dist/cjs/config/platforms/vmware/platform.js +1 -1
  32. package/dist/cjs/config/platforms/vmware/products.js +1 -1
  33. package/dist/cjs/contexts/CalculatorContext.d.ts +1 -1
  34. package/dist/cjs/contexts/CalculatorContext.js +1 -1
  35. package/dist/cjs/hooks/useAdaptive.d.ts +1 -1
  36. package/dist/cjs/hooks/useAdaptive.js +1 -1
  37. package/dist/esm/components/Calculator/Calculator.d.ts +1 -1
  38. package/dist/esm/components/Catalog/Catalog.d.ts +1 -1
  39. package/dist/esm/components/Catalog/Catalog.js +5 -5
  40. package/dist/esm/components/Controls/ArrayControl/ArrayControl.js +1 -1
  41. package/dist/esm/components/Controls/CarouselControl/CarouselControl.js +1 -1
  42. package/dist/esm/components/Controls/SelectControl/SelectControl.js +1 -1
  43. package/dist/esm/components/Controls/TableControl/helperComponents/StepperWithAllowedValues.js +1 -1
  44. package/dist/esm/components/Controls/ToggleControl/components/SwitchRow.js +1 -1
  45. package/dist/esm/components/Controls/ToggleObjectControl/ToggleObjectControl.js +1 -1
  46. package/dist/esm/components/HeaderContainer/index.js +1 -1
  47. package/dist/esm/components/PriceSummary/PriceSummary.js +2 -2
  48. package/dist/esm/components/PriceSummary/components/PricePeriodSelect/PricePeriodSelect.js +2 -2
  49. package/dist/esm/components/PriceSummary/components/ProductCard/ProductCard.js +2 -2
  50. package/dist/esm/components/PriceSummary/components/ProductListActions/ProductListActions.js +1 -1
  51. package/dist/esm/components/ProductHeadline/ProductPageHeadline.js +1 -1
  52. package/dist/esm/components/Welcome/Welcome.js +2 -2
  53. package/dist/esm/config/platforms/advanced/platform.js +1 -1
  54. package/dist/esm/config/platforms/advanced/products.js +1 -1
  55. package/dist/esm/config/platforms/evolution/catalog.js +7 -1
  56. package/dist/esm/config/platforms/evolution/constants.d.ts +3 -0
  57. package/dist/esm/config/platforms/evolution/constants.js +3 -0
  58. package/dist/esm/config/platforms/evolution/platform.js +1 -1
  59. package/dist/esm/config/platforms/evolution/product-config/EvolutionDNS.d.ts +2 -0
  60. package/dist/esm/config/platforms/evolution/product-config/EvolutionDNS.js +96 -0
  61. package/dist/esm/config/platforms/evolution/product-config/EvolutionLoadBalancer.d.ts +2 -0
  62. package/dist/esm/config/platforms/evolution/product-config/EvolutionLoadBalancer.js +59 -0
  63. package/dist/esm/config/platforms/evolution/product-config/EvolutionManagedBI.d.ts +2 -0
  64. package/dist/esm/config/platforms/evolution/product-config/EvolutionManagedBI.js +32 -0
  65. package/dist/esm/config/platforms/evolution/products.js +36 -1
  66. package/dist/esm/config/platforms/vmware/platform.js +1 -1
  67. package/dist/esm/config/platforms/vmware/products.js +1 -1
  68. package/dist/esm/contexts/CalculatorContext.d.ts +1 -1
  69. package/dist/esm/contexts/CalculatorContext.js +1 -1
  70. package/dist/esm/hooks/useAdaptive.d.ts +1 -1
  71. package/dist/esm/hooks/useAdaptive.js +1 -1
  72. package/package.json +8 -9
  73. package/src/config/platforms/evolution/catalog.tsx +7 -1
  74. package/src/config/platforms/evolution/constants.ts +3 -0
  75. package/src/config/platforms/evolution/product-config/EvolutionDNS.ts +103 -0
  76. package/src/config/platforms/evolution/product-config/EvolutionLoadBalancer.tsx +60 -0
  77. package/src/config/platforms/evolution/product-config/EvolutionManagedBI.ts +34 -0
  78. 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 '@sbercloud/uikit-product-icons';
5
- import { MobileDroplist } from '@sbercloud/uikit-product-mobile-dropdown';
6
- import { AdaptiveFieldSelect } from '@sbercloud/uikit-product-mobile-fields';
7
- import { MobileModalCustom } from '@sbercloud/uikit-product-mobile-modal';
8
- import { LAYOUT_TYPE } from '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-mobile-fields';
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';
@@ -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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-mobile-accordion';
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 '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-icons';
5
- import { LAYOUT_TYPE } from '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-icons';
4
- import { AdaptiveDroplist } from '@sbercloud/uikit-product-mobile-dropdown';
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 '@sbercloud/uikit-product-icons';
4
- import { AdaptiveDroplist } from '@sbercloud/uikit-product-mobile-dropdown';
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';
@@ -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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-icons';
3
- import { LAYOUT_TYPE } from '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-icons';
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: [EVOLUTION_PRODUCT.EvolutionSnatGateway, EVOLUTION_PRODUCT.EvolutionPublicIp],
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 '@sbercloud/uikit-product-icons';
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,2 @@
1
+ import { FormConfig } from '../../../../components';
2
+ export declare const EVOLUTION_DNS_CONFIG: FormConfig;
@@ -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,2 @@
1
+ import { FormConfig } from '../../../../components';
2
+ export declare const EVOLUTION_LOAD_BALANCER_CONFIG: FormConfig;
@@ -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,2 @@
1
+ import { FormConfig } from '../../../../components';
2
+ export declare const EVOLUTION_MANAGED_BI: FormConfig;
@@ -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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-icons';
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 '@sbercloud/uikit-product-utils';
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 '@sbercloud/uikit-product-utils';
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';
@@ -1,5 +1,5 @@
1
1
  export declare function useAdaptive(): {
2
- layoutType: import("@sbercloud/uikit-product-utils").LayoutType;
2
+ layoutType: import("@cloud-ru/uikit-product-utils").LayoutType;
3
3
  isMobile: boolean;
4
4
  isTablet: boolean;
5
5
  isDesktopSmall: boolean;
@@ -1,4 +1,4 @@
1
- import { LAYOUT_TYPE } from '@sbercloud/uikit-product-utils';
1
+ import { LAYOUT_TYPE } from '@cloud-ru/uikit-product-utils';
2
2
  import { useCalculatorContext } from '../contexts';
3
3
  export function useAdaptive() {
4
4
  const { layoutType } = useCalculatorContext();
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.33.5",
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.3",
42
- "@cloud-ru/uikit-product-mobile-accordion": "0.4.23",
43
- "@cloud-ru/uikit-product-mobile-dropdown": "0.9.23",
44
- "@cloud-ru/uikit-product-mobile-fields": "0.11.26",
45
- "@cloud-ru/uikit-product-mobile-modal": "0.9.20",
46
- "@cloud-ru/uikit-product-utils": "7.0.2",
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": "bf479ecf7238ef20b78f20acaef439efa535d1a1"
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: [EVOLUTION_PRODUCT.EvolutionSnatGateway, EVOLUTION_PRODUCT.EvolutionPublicIp],
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 = {