@cloud-ru/uikit-product-calculator 0.36.1 → 0.38.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 (32) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/components/CalculatorContent/styles.module.css +1 -1
  4. package/dist/cjs/components/Welcome/styles.module.css +1 -1
  5. package/dist/cjs/config/platforms/evolution/catalog.js +1 -1
  6. package/dist/cjs/config/platforms/evolution/constants.d.ts +0 -1
  7. package/dist/cjs/config/platforms/evolution/constants.js +0 -1
  8. package/dist/cjs/config/platforms/evolution/product-config/index.d.ts +5 -1
  9. package/dist/cjs/config/platforms/evolution/product-config/index.js +5 -1
  10. package/dist/cjs/config/platforms/evolution/products.js +6 -21
  11. package/dist/cjs/hooks/useAdaptive.d.ts +1 -1
  12. package/dist/esm/components/CalculatorContent/styles.module.css +1 -1
  13. package/dist/esm/components/Welcome/styles.module.css +1 -1
  14. package/dist/esm/config/platforms/evolution/catalog.js +1 -1
  15. package/dist/esm/config/platforms/evolution/constants.d.ts +0 -1
  16. package/dist/esm/config/platforms/evolution/constants.js +0 -1
  17. package/dist/esm/config/platforms/evolution/product-config/index.d.ts +5 -1
  18. package/dist/esm/config/platforms/evolution/product-config/index.js +5 -1
  19. package/dist/esm/config/platforms/evolution/products.js +3 -18
  20. package/dist/esm/hooks/useAdaptive.d.ts +1 -1
  21. package/package.json +2 -2
  22. package/src/components/CalculatorContent/styles.module.scss +1 -1
  23. package/src/components/Welcome/styles.module.scss +1 -1
  24. package/src/config/platforms/evolution/catalog.tsx +1 -1
  25. package/src/config/platforms/evolution/constants.ts +0 -1
  26. package/src/config/platforms/evolution/product-config/index.ts +5 -1
  27. package/src/config/platforms/evolution/products.ts +6 -18
  28. package/dist/cjs/config/platforms/evolution/product-config/EvolutionCloudServerGpu.d.ts +0 -2
  29. package/dist/cjs/config/platforms/evolution/product-config/EvolutionCloudServerGpu.js +0 -273
  30. package/dist/esm/config/platforms/evolution/product-config/EvolutionCloudServerGpu.d.ts +0 -2
  31. package/dist/esm/config/platforms/evolution/product-config/EvolutionCloudServerGpu.js +0 -270
  32. package/src/config/platforms/evolution/product-config/EvolutionCloudServerGpu.tsx +0 -301
@@ -1,273 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EVOLUTION_CLOUD_SERVER_GPU_FORM_CONFIG = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const components_1 = require("../../../../components");
6
- const utils_1 = require("../../../utils");
7
- var GpuType;
8
- (function (GpuType) {
9
- GpuType["Tesla"] = "GPU NVIDIA\u00AE Tesla\u00AE V100";
10
- GpuType["H100"] = "GPU NVIDIA\u00AE H100";
11
- })(GpuType || (GpuType = {}));
12
- const gpuTypeItems = [GpuType.Tesla, GpuType.H100];
13
- const MinAdditionalDiskSize = 15;
14
- var OsType;
15
- (function (OsType) {
16
- OsType["Ubuntu18_04"] = "Ubuntu_18.04";
17
- OsType["Fedora38"] = "Fedora_38";
18
- OsType["Debian10"] = "Debian_10";
19
- OsType["Ubuntu22_04_4"] = "Ubuntu_22.04.4";
20
- OsType["Ubuntu22_04"] = "Ubuntu_22.04";
21
- OsType["Ubuntu20_04"] = "Ubuntu_20.04";
22
- OsType["OpenSUSE15_2"] = "openSUSE_15.2";
23
- OsType["Debian12"] = "Debian_12";
24
- OsType["CentOS9"] = "CentOS_9";
25
- OsType["CentOS8"] = "CentOS_8";
26
- OsType["CentOS7Kernel5_4"] = "CentOS_7_kernel_5.4";
27
- OsType["CentOS7"] = "CentOS_7";
28
- OsType["Ubuntu24_04"] = "Ubuntu_24.04";
29
- })(OsType || (OsType = {}));
30
- const osItems = [
31
- OsType.CentOS7,
32
- OsType.CentOS7Kernel5_4,
33
- OsType.CentOS8,
34
- OsType.CentOS9,
35
- OsType.Debian10,
36
- OsType.Debian12,
37
- OsType.Fedora38,
38
- OsType.Ubuntu22_04,
39
- OsType.Ubuntu22_04_4,
40
- OsType.Ubuntu20_04,
41
- OsType.Ubuntu18_04,
42
- OsType.Ubuntu24_04,
43
- OsType.OpenSUSE15_2,
44
- ];
45
- const CardValuesTesla = {
46
- GPU1_vCPU4_RAM64: `1 4 64`,
47
- GPU2_vCPU8_RAM128: `2 8 128`,
48
- GPU4_vCPU16_RAM256: `4 16 256`,
49
- GPU8_vCPU32_RAM512: `8 32 512`,
50
- GPU16_vCPU64_RAM1024: `16 64 1024`,
51
- };
52
- const CardValuesH100 = {
53
- GPU1_vCPU20_RAM185: `1 20 186`,
54
- GPU2_vCPU40_RAM372: `2 40 372`,
55
- GPU3_vCPU60_RAM558: `3 60 558`,
56
- GPU4_vCPU80_RAM744: `4 80 744`,
57
- GPU5_vCPU100_RAM930: `5 100 930`,
58
- GPU6_vCPU120_RAM1116: `6 120 1116`,
59
- GPU7_vCPU140_RAM1302: `7 140 1302`,
60
- GPU8_vCPU160_RAM1488: `8 160 1488`,
61
- };
62
- const getParamsByConfigTypeCard = (value) => {
63
- const { 0: gpuCount, 1: vCpuCoreCount, 2: ramAmount } = value.split(' ');
64
- return { gpuCount, vCpuCoreCount, ramAmount };
65
- };
66
- const generateCards = (cardsData, gpuType) => Object.keys(cardsData).map(cardDataKey => {
67
- const { gpuCount, vCpuCoreCount, ramAmount } = getParamsByConfigTypeCard(cardsData[cardDataKey]);
68
- return {
69
- value: cardsData[cardDataKey],
70
- label: gpuType,
71
- description: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [gpuCount, " GPU ", (0, jsx_runtime_1.jsx)("br", {}), vCpuCoreCount, " vCPU ", (0, jsx_runtime_1.jsx)("br", {}), ramAmount, " \u0413\u0411 RAM"] })),
72
- };
73
- });
74
- const getMinOsDiskSpace = (os) => {
75
- const minSize5GbOs = [OsType.Fedora38, OsType.Ubuntu18_04, OsType.Debian10];
76
- const minSize15GbOs = [OsType.Ubuntu24_04];
77
- const minSizeByOsMap = {
78
- 5: minSize5GbOs,
79
- 15: minSize15GbOs,
80
- };
81
- const osMinDiskSizeEntry = Object.entries(minSizeByOsMap).find(osMinDiskSizeEntries => {
82
- const { 1: osMap } = osMinDiskSizeEntries;
83
- if (osMap.includes(os)) {
84
- return true;
85
- }
86
- });
87
- if (!osMinDiskSizeEntry)
88
- return 10;
89
- return Number(osMinDiskSizeEntry[0]);
90
- };
91
- exports.EVOLUTION_CLOUD_SERVER_GPU_FORM_CONFIG = {
92
- ui: [['osType'], ['gpuType'], 'configTypeCard', ['systemDisk'], 'additionalOptions', 'networkIsNeeded'],
93
- controls: {
94
- osType: {
95
- type: components_1.CONTROL.SelectSingle,
96
- accessorKey: 'os',
97
- defaultValue: OsType.Ubuntu22_04,
98
- items: (0, utils_1.generateBaseItems)(osItems, value => value.replace(/_/g, ' ')),
99
- decoratorProps: {
100
- label: 'Операционная система',
101
- },
102
- onChangeFn: (value, setValue) => {
103
- const arr = [
104
- ['os', value],
105
- ['evs.systemDisk.diskSpace', getMinOsDiskSpace(value)],
106
- ];
107
- setValue(arr);
108
- },
109
- },
110
- gpuType: {
111
- type: components_1.CONTROL.SelectSingle,
112
- accessorKey: 'gpuType',
113
- defaultValue: GpuType.Tesla,
114
- items: (0, utils_1.generateBaseItems)(gpuTypeItems),
115
- decoratorProps: {
116
- label: 'Тип графического процессора',
117
- },
118
- uiProps: {
119
- visible: false,
120
- },
121
- },
122
- // значение не учитывается при подсчете data
123
- configTypeCard: {
124
- type: components_1.CONTROL.ToggleCards,
125
- accessorKey: 'configTypeCard',
126
- defaultValue: CardValuesTesla.GPU1_vCPU4_RAM64,
127
- items: generateCards(CardValuesTesla, GpuType.Tesla),
128
- decoratorProps: {
129
- label: 'Конфигурация',
130
- },
131
- watchedControls: { gpuType: 'gpuType' },
132
- onChangeFn: (value, setValue) => {
133
- const { gpuCount, vCpuCoreCount, ramAmount } = getParamsByConfigTypeCard(value);
134
- const valuesToSet = [
135
- ['configTypeCard', value],
136
- ['gpuCount', gpuCount],
137
- ['vCpuCoreCount', vCpuCoreCount],
138
- ['ramAmount', ramAmount],
139
- ];
140
- setValue(valuesToSet);
141
- },
142
- relateFn: ({ gpuType }) => ({
143
- items: gpuType === GpuType.H100
144
- ? generateCards(CardValuesH100, GpuType.H100)
145
- : generateCards(CardValuesTesla, GpuType.Tesla),
146
- }),
147
- },
148
- gpuCount: {
149
- type: components_1.CONTROL.Segmented,
150
- accessorKey: 'gpuCount',
151
- defaultValue: '1',
152
- items: [],
153
- decoratorProps: {
154
- label: '',
155
- },
156
- uiProps: {
157
- visible: false,
158
- },
159
- },
160
- vCpuCoreCount: {
161
- type: components_1.CONTROL.Segmented,
162
- accessorKey: 'vCpuCoreCount',
163
- defaultValue: '4',
164
- items: [],
165
- decoratorProps: {
166
- label: '',
167
- },
168
- uiProps: {
169
- visible: false,
170
- },
171
- },
172
- ramAmount: {
173
- type: components_1.CONTROL.Segmented,
174
- accessorKey: 'ramAmount',
175
- defaultValue: '64',
176
- items: [],
177
- decoratorProps: {
178
- label: '',
179
- },
180
- uiProps: {
181
- visible: false,
182
- },
183
- },
184
- systemDisk: (0, utils_1.getDisk)({
185
- space: {
186
- label: 'Диск',
187
- accessorKey: 'evs.systemDisk.diskSpace',
188
- defaultValue: 10,
189
- uiProps: {
190
- min: 10,
191
- max: 4096,
192
- },
193
- watchedControls: { os: 'os' },
194
- relateFn: ({ os }) => ({
195
- uiProps: {
196
- min: getMinOsDiskSpace(os),
197
- },
198
- }),
199
- },
200
- specification: {
201
- accessorKey: 'evs.systemDisk.specification',
202
- defaultValue: 'SSD',
203
- uiProps: {
204
- disabled: true,
205
- },
206
- },
207
- }),
208
- additionalOptions: {
209
- type: components_1.CONTROL.Object,
210
- ui: ['alertAdditional', ['additionalDisks']],
211
- controls: {
212
- alertAdditional: {
213
- type: 'alert',
214
- uiProps: {
215
- appearance: 'info',
216
- outline: true,
217
- description: 'Можно добавить до 7 дополнительных дисков',
218
- },
219
- accessorKey: 'addDisk',
220
- },
221
- additionalDisks: {
222
- type: components_1.CONTROL.Array,
223
- max: 7,
224
- accessorKey: 'evs.additionalDisks',
225
- addText: 'Добавить диск',
226
- ui: ['disk'],
227
- defaultValue: [],
228
- controls: {
229
- disk: (0, utils_1.getDisk)({
230
- space: {
231
- label: 'Дополнительный диск',
232
- accessorKey: 'diskSpace',
233
- defaultValue: MinAdditionalDiskSize,
234
- // TODO в текущем исполнении watchedControls и relateFn работают не корректно, поэтому в дальнейшем будут внесены правки, чтобы правильно отображать минимальные значения дисков
235
- uiProps: {
236
- min: MinAdditionalDiskSize,
237
- max: 4096,
238
- },
239
- },
240
- specification: {
241
- accessorKey: 'specification',
242
- defaultValue: 'SSD',
243
- uiProps: {
244
- disabled: true,
245
- },
246
- },
247
- }),
248
- },
249
- },
250
- },
251
- },
252
- networkIsNeeded: {
253
- type: components_1.CONTROL.Toggle,
254
- defaultValue: false,
255
- accessorKey: 'networkIsNeeded',
256
- decoratorProps: {
257
- label: 'Аренда публичного IP',
258
- },
259
- },
260
- network: {
261
- type: components_1.CONTROL.Object,
262
- defaultValue: {
263
- ipQuantity: 1,
264
- bindingIpAddressesQuantity: 0,
265
- publicGatewayQuantity: 0,
266
- privateGatewayQuantity: 0,
267
- },
268
- ui: [],
269
- controls: {},
270
- visible: false,
271
- },
272
- },
273
- };
@@ -1,2 +0,0 @@
1
- import { FormConfig } from '../../../../components';
2
- export declare const EVOLUTION_CLOUD_SERVER_GPU_FORM_CONFIG: FormConfig;
@@ -1,270 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CONTROL } from '../../../../components';
3
- import { generateBaseItems, getDisk } from '../../../utils';
4
- var GpuType;
5
- (function (GpuType) {
6
- GpuType["Tesla"] = "GPU NVIDIA\u00AE Tesla\u00AE V100";
7
- GpuType["H100"] = "GPU NVIDIA\u00AE H100";
8
- })(GpuType || (GpuType = {}));
9
- const gpuTypeItems = [GpuType.Tesla, GpuType.H100];
10
- const MinAdditionalDiskSize = 15;
11
- var OsType;
12
- (function (OsType) {
13
- OsType["Ubuntu18_04"] = "Ubuntu_18.04";
14
- OsType["Fedora38"] = "Fedora_38";
15
- OsType["Debian10"] = "Debian_10";
16
- OsType["Ubuntu22_04_4"] = "Ubuntu_22.04.4";
17
- OsType["Ubuntu22_04"] = "Ubuntu_22.04";
18
- OsType["Ubuntu20_04"] = "Ubuntu_20.04";
19
- OsType["OpenSUSE15_2"] = "openSUSE_15.2";
20
- OsType["Debian12"] = "Debian_12";
21
- OsType["CentOS9"] = "CentOS_9";
22
- OsType["CentOS8"] = "CentOS_8";
23
- OsType["CentOS7Kernel5_4"] = "CentOS_7_kernel_5.4";
24
- OsType["CentOS7"] = "CentOS_7";
25
- OsType["Ubuntu24_04"] = "Ubuntu_24.04";
26
- })(OsType || (OsType = {}));
27
- const osItems = [
28
- OsType.CentOS7,
29
- OsType.CentOS7Kernel5_4,
30
- OsType.CentOS8,
31
- OsType.CentOS9,
32
- OsType.Debian10,
33
- OsType.Debian12,
34
- OsType.Fedora38,
35
- OsType.Ubuntu22_04,
36
- OsType.Ubuntu22_04_4,
37
- OsType.Ubuntu20_04,
38
- OsType.Ubuntu18_04,
39
- OsType.Ubuntu24_04,
40
- OsType.OpenSUSE15_2,
41
- ];
42
- const CardValuesTesla = {
43
- GPU1_vCPU4_RAM64: `1 4 64`,
44
- GPU2_vCPU8_RAM128: `2 8 128`,
45
- GPU4_vCPU16_RAM256: `4 16 256`,
46
- GPU8_vCPU32_RAM512: `8 32 512`,
47
- GPU16_vCPU64_RAM1024: `16 64 1024`,
48
- };
49
- const CardValuesH100 = {
50
- GPU1_vCPU20_RAM185: `1 20 186`,
51
- GPU2_vCPU40_RAM372: `2 40 372`,
52
- GPU3_vCPU60_RAM558: `3 60 558`,
53
- GPU4_vCPU80_RAM744: `4 80 744`,
54
- GPU5_vCPU100_RAM930: `5 100 930`,
55
- GPU6_vCPU120_RAM1116: `6 120 1116`,
56
- GPU7_vCPU140_RAM1302: `7 140 1302`,
57
- GPU8_vCPU160_RAM1488: `8 160 1488`,
58
- };
59
- const getParamsByConfigTypeCard = (value) => {
60
- const { 0: gpuCount, 1: vCpuCoreCount, 2: ramAmount } = value.split(' ');
61
- return { gpuCount, vCpuCoreCount, ramAmount };
62
- };
63
- const generateCards = (cardsData, gpuType) => Object.keys(cardsData).map(cardDataKey => {
64
- const { gpuCount, vCpuCoreCount, ramAmount } = getParamsByConfigTypeCard(cardsData[cardDataKey]);
65
- return {
66
- value: cardsData[cardDataKey],
67
- label: gpuType,
68
- description: (_jsxs(_Fragment, { children: [gpuCount, " GPU ", _jsx("br", {}), vCpuCoreCount, " vCPU ", _jsx("br", {}), ramAmount, " \u0413\u0411 RAM"] })),
69
- };
70
- });
71
- const getMinOsDiskSpace = (os) => {
72
- const minSize5GbOs = [OsType.Fedora38, OsType.Ubuntu18_04, OsType.Debian10];
73
- const minSize15GbOs = [OsType.Ubuntu24_04];
74
- const minSizeByOsMap = {
75
- 5: minSize5GbOs,
76
- 15: minSize15GbOs,
77
- };
78
- const osMinDiskSizeEntry = Object.entries(minSizeByOsMap).find(osMinDiskSizeEntries => {
79
- const { 1: osMap } = osMinDiskSizeEntries;
80
- if (osMap.includes(os)) {
81
- return true;
82
- }
83
- });
84
- if (!osMinDiskSizeEntry)
85
- return 10;
86
- return Number(osMinDiskSizeEntry[0]);
87
- };
88
- export const EVOLUTION_CLOUD_SERVER_GPU_FORM_CONFIG = {
89
- ui: [['osType'], ['gpuType'], 'configTypeCard', ['systemDisk'], 'additionalOptions', 'networkIsNeeded'],
90
- controls: {
91
- osType: {
92
- type: CONTROL.SelectSingle,
93
- accessorKey: 'os',
94
- defaultValue: OsType.Ubuntu22_04,
95
- items: generateBaseItems(osItems, value => value.replace(/_/g, ' ')),
96
- decoratorProps: {
97
- label: 'Операционная система',
98
- },
99
- onChangeFn: (value, setValue) => {
100
- const arr = [
101
- ['os', value],
102
- ['evs.systemDisk.diskSpace', getMinOsDiskSpace(value)],
103
- ];
104
- setValue(arr);
105
- },
106
- },
107
- gpuType: {
108
- type: CONTROL.SelectSingle,
109
- accessorKey: 'gpuType',
110
- defaultValue: GpuType.Tesla,
111
- items: generateBaseItems(gpuTypeItems),
112
- decoratorProps: {
113
- label: 'Тип графического процессора',
114
- },
115
- uiProps: {
116
- visible: false,
117
- },
118
- },
119
- // значение не учитывается при подсчете data
120
- configTypeCard: {
121
- type: CONTROL.ToggleCards,
122
- accessorKey: 'configTypeCard',
123
- defaultValue: CardValuesTesla.GPU1_vCPU4_RAM64,
124
- items: generateCards(CardValuesTesla, GpuType.Tesla),
125
- decoratorProps: {
126
- label: 'Конфигурация',
127
- },
128
- watchedControls: { gpuType: 'gpuType' },
129
- onChangeFn: (value, setValue) => {
130
- const { gpuCount, vCpuCoreCount, ramAmount } = getParamsByConfigTypeCard(value);
131
- const valuesToSet = [
132
- ['configTypeCard', value],
133
- ['gpuCount', gpuCount],
134
- ['vCpuCoreCount', vCpuCoreCount],
135
- ['ramAmount', ramAmount],
136
- ];
137
- setValue(valuesToSet);
138
- },
139
- relateFn: ({ gpuType }) => ({
140
- items: gpuType === GpuType.H100
141
- ? generateCards(CardValuesH100, GpuType.H100)
142
- : generateCards(CardValuesTesla, GpuType.Tesla),
143
- }),
144
- },
145
- gpuCount: {
146
- type: CONTROL.Segmented,
147
- accessorKey: 'gpuCount',
148
- defaultValue: '1',
149
- items: [],
150
- decoratorProps: {
151
- label: '',
152
- },
153
- uiProps: {
154
- visible: false,
155
- },
156
- },
157
- vCpuCoreCount: {
158
- type: CONTROL.Segmented,
159
- accessorKey: 'vCpuCoreCount',
160
- defaultValue: '4',
161
- items: [],
162
- decoratorProps: {
163
- label: '',
164
- },
165
- uiProps: {
166
- visible: false,
167
- },
168
- },
169
- ramAmount: {
170
- type: CONTROL.Segmented,
171
- accessorKey: 'ramAmount',
172
- defaultValue: '64',
173
- items: [],
174
- decoratorProps: {
175
- label: '',
176
- },
177
- uiProps: {
178
- visible: false,
179
- },
180
- },
181
- systemDisk: getDisk({
182
- space: {
183
- label: 'Диск',
184
- accessorKey: 'evs.systemDisk.diskSpace',
185
- defaultValue: 10,
186
- uiProps: {
187
- min: 10,
188
- max: 4096,
189
- },
190
- watchedControls: { os: 'os' },
191
- relateFn: ({ os }) => ({
192
- uiProps: {
193
- min: getMinOsDiskSpace(os),
194
- },
195
- }),
196
- },
197
- specification: {
198
- accessorKey: 'evs.systemDisk.specification',
199
- defaultValue: 'SSD',
200
- uiProps: {
201
- disabled: true,
202
- },
203
- },
204
- }),
205
- additionalOptions: {
206
- type: CONTROL.Object,
207
- ui: ['alertAdditional', ['additionalDisks']],
208
- controls: {
209
- alertAdditional: {
210
- type: 'alert',
211
- uiProps: {
212
- appearance: 'info',
213
- outline: true,
214
- description: 'Можно добавить до 7 дополнительных дисков',
215
- },
216
- accessorKey: 'addDisk',
217
- },
218
- additionalDisks: {
219
- type: CONTROL.Array,
220
- max: 7,
221
- accessorKey: 'evs.additionalDisks',
222
- addText: 'Добавить диск',
223
- ui: ['disk'],
224
- defaultValue: [],
225
- controls: {
226
- disk: getDisk({
227
- space: {
228
- label: 'Дополнительный диск',
229
- accessorKey: 'diskSpace',
230
- defaultValue: MinAdditionalDiskSize,
231
- // TODO в текущем исполнении watchedControls и relateFn работают не корректно, поэтому в дальнейшем будут внесены правки, чтобы правильно отображать минимальные значения дисков
232
- uiProps: {
233
- min: MinAdditionalDiskSize,
234
- max: 4096,
235
- },
236
- },
237
- specification: {
238
- accessorKey: 'specification',
239
- defaultValue: 'SSD',
240
- uiProps: {
241
- disabled: true,
242
- },
243
- },
244
- }),
245
- },
246
- },
247
- },
248
- },
249
- networkIsNeeded: {
250
- type: CONTROL.Toggle,
251
- defaultValue: false,
252
- accessorKey: 'networkIsNeeded',
253
- decoratorProps: {
254
- label: 'Аренда публичного IP',
255
- },
256
- },
257
- network: {
258
- type: CONTROL.Object,
259
- defaultValue: {
260
- ipQuantity: 1,
261
- bindingIpAddressesQuantity: 0,
262
- publicGatewayQuantity: 0,
263
- privateGatewayQuantity: 0,
264
- },
265
- ui: [],
266
- controls: {},
267
- visible: false,
268
- },
269
- },
270
- };