kui-crm_actions 0.0.1

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/index.js ADDED
@@ -0,0 +1,611 @@
1
+ import { addToArrayByCondition, clearNotValidFields, getPhoneNumberFromPhoneParams, resHandler, callPromises } from 'kui-utils';
2
+ import * as yup from 'yup';
3
+ import { requests, uploadImages, uploadFiles, CountryAutocomplete, RegionAutocomplete, CityAutocomplete, RenovationTypeValues, RenovationStyleValues, RoomTypeValues, RoomTypesValues, BooleanValues, CompanyAutocomplete, TaxTypeValues, defaultRequiredMessage, ParkingTypesValues, phoneWithConditionSchema, positiveNumberSchema, getNumbersValues, TVTypesValues, phoneNonRequiredSchema } from 'kui-crm';
4
+ import to from 'await-to-js';
5
+ import { DateTime } from 'luxon';
6
+ import { InputWithAddressAutocomplete, DependentInput, CheckboxWithController, InputPhoneWithForm } from 'kui-complex';
7
+
8
+ /******************************************************************************
9
+ Copyright (c) Microsoft Corporation.
10
+
11
+ Permission to use, copy, modify, and/or distribute this software for any
12
+ purpose with or without fee is hereby granted.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
15
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
16
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
17
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
18
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
+ PERFORMANCE OF THIS SOFTWARE.
21
+ ***************************************************************************** */
22
+
23
+ var __assign = function() {
24
+ __assign = Object.assign || function __assign(t) {
25
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
26
+ s = arguments[i];
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
28
+ }
29
+ return t;
30
+ };
31
+ return __assign.apply(this, arguments);
32
+ };
33
+
34
+ function __awaiter(thisArg, _arguments, P, generator) {
35
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
36
+ return new (P || (P = Promise))(function (resolve, reject) {
37
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
38
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
39
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
40
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
41
+ });
42
+ }
43
+
44
+ function __generator(thisArg, body) {
45
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
46
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
+ function verb(n) { return function (v) { return step([n, v]); }; }
48
+ function step(op) {
49
+ if (f) throw new TypeError("Generator is already executing.");
50
+ while (_) try {
51
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
+ if (y = 0, t) op = [op[0] & 2, t.value];
53
+ switch (op[0]) {
54
+ case 0: case 1: t = op; break;
55
+ case 4: _.label++; return { value: op[1], done: false };
56
+ case 5: _.label++; y = op[1]; op = [0]; continue;
57
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
+ default:
59
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
+ if (t[2]) _.ops.pop();
64
+ _.trys.pop(); continue;
65
+ }
66
+ op = body.call(thisArg, _);
67
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
+ }
70
+ }
71
+
72
+ function __spreadArray(to, from, pack) {
73
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
74
+ if (ar || !(i in from)) {
75
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
76
+ ar[i] = from[i];
77
+ }
78
+ }
79
+ return to.concat(ar || Array.prototype.slice.call(from));
80
+ }
81
+
82
+ var getPartialMeterInfoFields = function (resource, type) {
83
+ if (resource === "electricity") {
84
+ return __spreadArray(__spreadArray([
85
+ { label: "Number", name: "number" },
86
+ { label: "T1 value", name: "T1", type: "number" }
87
+ ], addToArrayByCondition(type !== "T1", {
88
+ label: "T2 value",
89
+ name: "T2",
90
+ type: "number",
91
+ }), true), addToArrayByCondition(type === "T3", {
92
+ label: "T3 value",
93
+ name: "T3",
94
+ type: "number",
95
+ }), true);
96
+ }
97
+ return [
98
+ { label: "Number", name: "number" },
99
+ { label: "Value", name: "value", type: "number" },
100
+ ];
101
+ };
102
+
103
+ var getPartialMeterInfoSchema = function (valuesFields) {
104
+ var valuesSchema = valuesFields.map(function (field) {
105
+ var _a;
106
+ return (_a = {},
107
+ _a[field] = yup
108
+ .number()
109
+ .min(0)
110
+ .required("This field is required")
111
+ .transform(function (value) { return (Number.isNaN(value) ? undefined : value); }),
112
+ _a);
113
+ });
114
+ return yup.object().shape(__assign({ number: yup.string().trim().required("This field is required") }, Object.assign.apply(Object, __spreadArray([{}], valuesSchema, false))));
115
+ };
116
+
117
+ var inspectionsRequestBody = {
118
+ getPostBodyInitialInspection: function (inspection, roomsImages) {
119
+ return {
120
+ based_on: null,
121
+ date: DateTime.now().toISODate(),
122
+ inspection_type: "initial",
123
+ rooms_with_photos: roomsImages,
124
+ initial: this.getInitialInspectionFields(inspection),
125
+ };
126
+ },
127
+ getInitialInspectionFields: function (inspection) {
128
+ var _a, _b, _c;
129
+ return {
130
+ city: inspection.city.id,
131
+ address: inspection.apartment.address,
132
+ apartment_number: inspection.apartmentNumber || "",
133
+ post_index: inspection.zipCode,
134
+ floor: inspection.floor,
135
+ floor_count: inspection.floorCount,
136
+ room_type: inspection.typeOfRoom,
137
+ num_entrance: inspection.entrance,
138
+ has_intercom: inspection.hasIntercom,
139
+ intercom_code: inspection.intercomCode,
140
+ has_gate: inspection.hasGate,
141
+ gate_code: inspection.gateCode,
142
+ area: inspection.area,
143
+ living_area: inspection.livingArea,
144
+ kitchen_area: inspection.kitchenArea,
145
+ rooms_number: inspection.roomsNumber,
146
+ bedrooms_number: inspection.bedroomsNumber,
147
+ bathrooms_number: inspection.bathroomsNumber,
148
+ restrooms_number: inspection.restroomsNumber,
149
+ combined_bathrooms_number: inspection.combinedBathroomsNumber,
150
+ ceiling_height: inspection.ceilingHeight,
151
+ number_of_windows: inspection.numberOfWindows,
152
+ renovation_year: (_a = inspection.renovation) === null || _a === void 0 ? void 0 : _a.year,
153
+ renovation_type: (_b = inspection.renovation) === null || _b === void 0 ? void 0 : _b.type,
154
+ renovation_style: (_c = inspection.renovation) === null || _c === void 0 ? void 0 : _c.style,
155
+ rooms: inspection.rooms.map(function (room) { return ({
156
+ area: room.area,
157
+ room_type: room.type,
158
+ }); }),
159
+ };
160
+ },
161
+ getPostBodyQuarterlyInspection: function (inspection, roomsImages) {
162
+ return {
163
+ date: DateTime.now().toISODate(),
164
+ inspection_type: "quarterly",
165
+ based_on: null,
166
+ rooms_with_photos: roomsImages,
167
+ quarterly: this.getPartialInspectionMeters(inspection.meters),
168
+ };
169
+ },
170
+ getPostBodyTransferInspection: function (inspection, roomsImages) {
171
+ return {
172
+ date: DateTime.now().toISODate(),
173
+ inspection_type: "transfer",
174
+ based_on: null,
175
+ rooms_with_photos: roomsImages,
176
+ transfer: __assign({ transfer_type: inspection.transferType }, this.getPartialInspectionMeters(inspection.meters)),
177
+ };
178
+ },
179
+ getPartialInspectionMeters: function (meters) {
180
+ return {
181
+ meters: meters.map(function (meter, index) { return ({
182
+ id: meter.id,
183
+ resource_type: meter.resource,
184
+ meter_type: meter.type,
185
+ passport_number: meter.number,
186
+ values: clearNotValidFields({
187
+ value: meter.value,
188
+ T1: meter.T1,
189
+ T2: meter.T2,
190
+ T3: meter.T3,
191
+ }),
192
+ }); }),
193
+ };
194
+ },
195
+ getPostBodyInventoryInspection: function (inspection, roomsImages, fillingFiles, metersFiles, fillingImages) {
196
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
197
+ return {
198
+ date: DateTime.now().toISODate(),
199
+ inspection_type: "inventory",
200
+ based_on: null,
201
+ rooms_with_photos: roomsImages,
202
+ inventory: __assign({ not_allowed_children: !inspection.withChildren, not_allowed_pets: !inspection.withPets, additional_terms: inspection.additionalTerms, country_of_residence: ((_a = inspection.countryOfResidence) === null || _a === void 0 ? void 0 : _a.id) || null, administrative_company: ((_b = inspection.company) === null || _b === void 0 ? void 0 : _b.id) || null, tax_type: inspection.taxesType, financial_personal_account: inspection.communalServicesAccount, max_electricity_counters: (_c = inspection.maxMeters) === null || _c === void 0 ? void 0 : _c.electricity, max_gas_counters: (_d = inspection.maxMeters) === null || _d === void 0 ? void 0 : _d.gas, max_heating_counters: (_e = inspection.maxMeters) === null || _e === void 0 ? void 0 : _e.heating, max_water_counters: (_f = inspection.maxMeters) === null || _f === void 0 ? void 0 : _f.water, has_barrier: inspection.hasBarrier, has_concierge: inspection.hasConcierge, has_security: inspection.hasSecurity, has_video_surveillance: inspection.hasVideoControl, barrier_phone: inspection.barrierPhone
203
+ ? getPhoneNumberFromPhoneParams(inspection.barrierPhone)
204
+ : null, concierge_phone: inspection.conciergePhone
205
+ ? getPhoneNumberFromPhoneParams(inspection.conciergePhone)
206
+ : null, security_phone: inspection.securityPhone
207
+ ? getPhoneNumberFromPhoneParams(inspection.securityPhone)
208
+ : null, video_surveillance_phone: inspection.videoControlPhone
209
+ ? getPhoneNumberFromPhoneParams(inspection.videoControlPhone)
210
+ : null, home_phone: inspection.homePhone
211
+ ? getPhoneNumberFromPhoneParams(inspection.homePhone)
212
+ : null, wifi_name: (_g = inspection.wifi) === null || _g === void 0 ? void 0 : _g.name, wifi_password: (_h = inspection.wifi) === null || _h === void 0 ? void 0 : _h.password, internet_provider_link: (_j = inspection.internetProvider) === null || _j === void 0 ? void 0 : _j.link, internet_provider_login: (_k = inspection.internetProvider) === null || _k === void 0 ? void 0 : _k.login, internet_provider_password: (_l = inspection.internetProvider) === null || _l === void 0 ? void 0 : _l.password, parking_type: inspection.parkingType, parking_number: inspection.parkingNumber, passenger_elevators_number: inspection.passengerElevatorsCount, service_elevators_number: inspection.serviceElevatorsCount, payer_code: inspection.payerCode, filling: inspection.fillingList.map(function (filling, index) { return ({
213
+ feature: filling.tag.id,
214
+ description: filling.name,
215
+ serial_code: filling.serialNumber,
216
+ amount: filling.numberOfSubjects,
217
+ photos: fillingImages[index],
218
+ instruction: fillingFiles[index],
219
+ }); }) }, this.getInventoryInspectionMeters(inspection.meters, metersFiles)),
220
+ };
221
+ },
222
+ getInventoryInspectionMeters: function (meters, metersFiles) {
223
+ var _this = this;
224
+ return {
225
+ meters: (meters === null || meters === void 0 ? void 0 : meters.map(function (meter, index) { return (__assign(__assign({}, _this.getMeterCommonFields(meter)), { passport: metersFiles[index], values: clearNotValidFields({
226
+ value: meter.initialValue,
227
+ T1: meter.initialValueT1,
228
+ T2: meter.initialValueT2,
229
+ T3: meter.initialValueT3,
230
+ }) })); })) || [],
231
+ };
232
+ },
233
+ getMeterCommonFields: function (meter) {
234
+ var _a, _b;
235
+ return {
236
+ id: meter.id,
237
+ meter_type: meter.type,
238
+ passport_number: meter.number,
239
+ resource_type: meter.resource,
240
+ activation_date: meter.startDate.toISODate(),
241
+ operating_account: meter.operationalAccountNumber,
242
+ company: (_a = meter.company) === null || _a === void 0 ? void 0 : _a.id,
243
+ tariff: (_b = meter.tariff) === null || _b === void 0 ? void 0 : _b.id,
244
+ };
245
+ },
246
+ getMeterValues: function (initialValue, lastValue) {
247
+ return clearNotValidFields({
248
+ initial_value: initialValue,
249
+ last_value: lastValue,
250
+ });
251
+ },
252
+ };
253
+
254
+ var inspectionsRequests = {
255
+ createInspection: function (apartmentId, body, loader) {
256
+ var _a;
257
+ return __awaiter(this, void 0, void 0, function () {
258
+ var response;
259
+ return __generator(this, function (_b) {
260
+ switch (_b.label) {
261
+ case 0: return [4 /*yield*/, to(requests.post("/apartments/".concat(apartmentId, "/inspections"), body))];
262
+ case 1:
263
+ response = _b.sent();
264
+ resHandler(response, loader);
265
+ return [2 /*return*/, (_a = response[1]) === null || _a === void 0 ? void 0 : _a.id];
266
+ }
267
+ });
268
+ });
269
+ },
270
+ loadInspectionImages: function (loader, roomsImages) {
271
+ return __awaiter(this, void 0, void 0, function () {
272
+ var promises, images;
273
+ return __generator(this, function (_a) {
274
+ switch (_a.label) {
275
+ case 0:
276
+ promises = [];
277
+ roomsImages.forEach(function (room) {
278
+ promises.push(uploadImages(loader, room.files));
279
+ });
280
+ return [4 /*yield*/, callPromises(promises)];
281
+ case 1:
282
+ images = _a.sent();
283
+ return [2 /*return*/, roomsImages.map(function (room, index) { return ({
284
+ room_purpose: room.type,
285
+ comment: room.comment,
286
+ photos: images[index] || [],
287
+ }); })];
288
+ }
289
+ });
290
+ });
291
+ },
292
+ createInitialInspection: function (data, apartmentId, loader) {
293
+ return __awaiter(this, void 0, void 0, function () {
294
+ var roomsImages, body;
295
+ return __generator(this, function (_a) {
296
+ switch (_a.label) {
297
+ case 0:
298
+ if (!apartmentId) return [3 /*break*/, 2];
299
+ loader.startLoading("inspection creation");
300
+ return [4 /*yield*/, this.loadInspectionImages(loader, data.roomsImages)];
301
+ case 1:
302
+ roomsImages = _a.sent();
303
+ body = inspectionsRequestBody.getPostBodyInitialInspection(data, roomsImages);
304
+ return [2 /*return*/, this.createInspection(apartmentId, body, loader)];
305
+ case 2: return [2 /*return*/, null];
306
+ }
307
+ });
308
+ });
309
+ },
310
+ createQuarterlyInspection: function (data, apartmentId, loader) {
311
+ return __awaiter(this, void 0, void 0, function () {
312
+ var roomsImages, body;
313
+ return __generator(this, function (_a) {
314
+ switch (_a.label) {
315
+ case 0:
316
+ if (!apartmentId) return [3 /*break*/, 2];
317
+ loader.startLoading("inspection creation");
318
+ return [4 /*yield*/, this.loadInspectionImages(loader, data.roomsImages)];
319
+ case 1:
320
+ roomsImages = _a.sent();
321
+ body = inspectionsRequestBody.getPostBodyQuarterlyInspection(data, roomsImages);
322
+ return [2 /*return*/, this.createInspection(apartmentId, body, loader)];
323
+ case 2: return [2 /*return*/, null];
324
+ }
325
+ });
326
+ });
327
+ },
328
+ createTransferInspection: function (data, apartmentId, loader) {
329
+ return __awaiter(this, void 0, void 0, function () {
330
+ var images, body;
331
+ return __generator(this, function (_a) {
332
+ switch (_a.label) {
333
+ case 0:
334
+ if (!apartmentId) return [3 /*break*/, 2];
335
+ loader.startLoading("inspection creation");
336
+ return [4 /*yield*/, this.loadInspectionImages(loader, data.roomsImages)];
337
+ case 1:
338
+ images = _a.sent();
339
+ body = inspectionsRequestBody.getPostBodyTransferInspection(data, images);
340
+ return [2 /*return*/, this.createInspection(apartmentId, body, loader)];
341
+ case 2: return [2 /*return*/, null];
342
+ }
343
+ });
344
+ });
345
+ },
346
+ createInventoryInspection: function (data, apartmentId, loader) {
347
+ var _a;
348
+ return __awaiter(this, void 0, void 0, function () {
349
+ var fillingFiles, metersFiles, fillingImages, files, body;
350
+ return __generator(this, function (_b) {
351
+ switch (_b.label) {
352
+ case 0:
353
+ if (!apartmentId) return [3 /*break*/, 2];
354
+ loader.startLoading("inspection creation");
355
+ fillingFiles = data.fillingList.map(function (filling) { return filling.instruction; });
356
+ metersFiles = ((_a = data.meters) === null || _a === void 0 ? void 0 : _a.map(function (meter) { return meter.passportFile; })) || [];
357
+ fillingImages = data.fillingList.map(function (filling) {
358
+ return uploadImages(loader, filling.images);
359
+ });
360
+ return [4 /*yield*/, callPromises(__spreadArray([
361
+ this.loadInspectionImages(loader, data.roomsImages),
362
+ uploadFiles(loader, fillingFiles),
363
+ uploadFiles(loader, metersFiles)
364
+ ], fillingImages, true))];
365
+ case 1:
366
+ files = _b.sent();
367
+ body = inspectionsRequestBody.getPostBodyInventoryInspection(data, files[0], files[1], files[2], files.slice(3));
368
+ return [2 /*return*/, this.createInspection(apartmentId, body, loader)];
369
+ case 2: return [2 /*return*/, null];
370
+ }
371
+ });
372
+ });
373
+ },
374
+ };
375
+
376
+ var getBasicApartmentInfoFields = function (settings, handlePlaceSelect) { return [
377
+ __assign({ name: "country", label: "Country", variant: "custom", CustomInput: CountryAutocomplete, size: 12 }, settings.country),
378
+ __assign({ name: "region", label: "Region", variant: "custom", CustomInput: RegionAutocomplete }, settings.region),
379
+ __assign({ name: "city", label: "City", variant: "custom", CustomInput: CityAutocomplete }, settings.city),
380
+ __assign({ name: "apartment", variant: "custom", CustomInput: InputWithAddressAutocomplete, handlePlaceSelect: handlePlaceSelect, size: 12 }, settings.apartment),
381
+ __assign({ label: "Apartment", name: "apartmentNumber", "data-testid": "apartment_number" }, settings.apartmentNumber),
382
+ __assign({ label: "Zip code", name: "zipCode" }, settings.zipCode),
383
+ ]; };
384
+
385
+ var BasicApartmentInfoFieldsSchema = {
386
+ apartment: yup.object({
387
+ address: yup.string().trim().required("This field is required"),
388
+ }),
389
+ apartmentNumber: yup.string().required("This field is required"),
390
+ city: yup.object({
391
+ name: yup.string().required("This field is required"),
392
+ }),
393
+ zipCode: yup.string().required("This field is required"),
394
+ };
395
+ var BasicApartmentInfoStepSchema = yup.object(BasicApartmentInfoFieldsSchema);
396
+
397
+ var inputProps = {
398
+ step: 0.1,
399
+ };
400
+ var getDetailApartmentInfoFields = function (settings, roomsCount) {
401
+ var _a, _b;
402
+ return __spreadArray(__spreadArray([
403
+ __assign(__assign({ label: "Total area", name: "area", type: "number" }, inputProps), settings.area),
404
+ __assign(__assign({ label: "Living area", name: "livingArea", type: "number" }, inputProps), settings.livingArea),
405
+ __assign(__assign({ label: "Kitchen area", name: "kitchenArea", type: "number" }, inputProps), settings.kitchenArea)
406
+ ], (roomsCount
407
+ ? new Array(Number(roomsCount))
408
+ .fill(0)
409
+ .map(function (_, key) {
410
+ var _a, _b;
411
+ return [
412
+ __assign(__assign({ name: "rooms.".concat(key, ".area"), label: "Room ".concat(key + 1, " area"), type: "number" }, inputProps), (settings.rooms ? (_a = settings.rooms(key)) === null || _a === void 0 ? void 0 : _a.area : {})),
413
+ __assign({ name: "rooms.".concat(key, ".type"), label: "Room ".concat(key + 1, " type"), variant: "select", options: RoomTypeValues }, (settings.rooms ? (_b = settings.rooms(key)) === null || _b === void 0 ? void 0 : _b.type : {})),
414
+ ];
415
+ })
416
+ .flat()
417
+ : []), true), [
418
+ __assign(__assign({ name: "ceilingHeight", label: "Ceiling height", type: "number" }, inputProps), settings.ceilingHeight),
419
+ __assign({ name: "numberOfWindows", label: "Windows", type: "number" }, settings.numberOfWindows),
420
+ __assign({ name: "renovation.year", label: "Year of last renovation", type: "number" }, settings.renovation.year),
421
+ __assign({ name: "renovation.type", label: "Type of renovation", variant: "select", options: RenovationTypeValues }, (_a = settings.renovation) === null || _a === void 0 ? void 0 : _a.type),
422
+ __assign({ name: "renovation.style", label: "Renovation style", variant: "select", options: RenovationStyleValues }, (_b = settings.renovation) === null || _b === void 0 ? void 0 : _b.style),
423
+ ], false);
424
+ };
425
+
426
+ var DetailApartmentInfoFieldsSchema = {
427
+ area: yup.number().positive().required("This field is required"),
428
+ livingArea: yup.number().positive().required("This field is required"),
429
+ kitchenArea: yup.number().positive().required("This field is required"),
430
+ rooms: yup.array().of(yup.object({
431
+ area: yup.number().positive().required("This field is required"),
432
+ type: yup.string().required("This field is required"),
433
+ })),
434
+ ceilingHeight: yup.number().positive().required("This field is required"),
435
+ numberOfWindows: yup.number().min(0).required("This field is required"),
436
+ renovation: yup.object({
437
+ year: yup.number().positive().required("This field is required"),
438
+ type: yup.string().required("This field is required"),
439
+ style: yup.string().required("This field is required"),
440
+ }),
441
+ };
442
+ var DetailApartmentInfoStepSchema = yup.object(DetailApartmentInfoFieldsSchema);
443
+
444
+ var getRoomsApartmentInfoFields = function (settings) { return [
445
+ __assign({ label: "Floor", name: "floor", type: "number" }, settings.floor),
446
+ __assign({ label: "Floors", name: "floorCount", type: "number" }, settings.floorCount),
447
+ __assign({ label: "Rooms", name: "roomsNumber", type: "number" }, settings.roomsNumber),
448
+ __assign({ label: "Bedrooms", name: "bedroomsNumber", type: "number" }, settings.bedroomsNumber),
449
+ __assign({ label: "Bathrooms", name: "bathroomsNumber", type: "number" }, settings.bathroomsNumber),
450
+ __assign({ label: "Restrooms", name: "restroomsNumber", type: "number" }, settings.restroomsNumber),
451
+ __assign({ label: "Combined bathroom", name: "combinedBathroomsNumber", type: "number" }, settings.combinedBathroomsNumber),
452
+ ]; };
453
+
454
+ var RoomsApartmentInfoFieldsSchema = {
455
+ floor: yup
456
+ .number()
457
+ .integer()
458
+ .min(0)
459
+ .test("is less than floorCount", "Too much", function (value) {
460
+ return value <= this.parent.floorCount;
461
+ }),
462
+ floorCount: yup
463
+ .number()
464
+ .integer()
465
+ .positive()
466
+ .required("This field is required"),
467
+ roomsNumber: yup.number().integer().min(0).required("This field is required"),
468
+ bedroomsNumber: yup
469
+ .number()
470
+ .integer()
471
+ .min(0)
472
+ .required("This field is required"),
473
+ bathroomsNumber: yup
474
+ .number()
475
+ .integer()
476
+ .min(0)
477
+ .required("This field is required"),
478
+ restroomsNumber: yup
479
+ .number()
480
+ .integer()
481
+ .min(0)
482
+ .required("This field is required"),
483
+ combinedBathroomsNumber: yup
484
+ .number()
485
+ .integer()
486
+ .min(0)
487
+ .required("This field is required"),
488
+ };
489
+ var RoomsApartmentInfoStepSchema = yup.object(RoomsApartmentInfoFieldsSchema);
490
+
491
+ var getSecurityApartmentInfoFields = function (settings) { return [
492
+ __assign({ label: "Object type", name: "typeOfRoom", variant: "select", options: RoomTypesValues }, settings.typeOfRoom),
493
+ __assign({ label: "Entrance", name: "entrance" }, settings.entrance),
494
+ __assign({ name: "hasIntercom", label: "Intercom", variant: "select", options: BooleanValues }, settings.hasIntercom),
495
+ __assign({ name: "intercomCode", label: "Intercom code", variant: "custom", CustomInput: DependentInput, dependentInputName: "hasIntercom" }, settings.intercomCode),
496
+ __assign({ name: "hasGate", label: "Gate", variant: "select", options: BooleanValues }, settings.hasGate),
497
+ __assign({ name: "gateCode", label: "Gate code", variant: "custom", CustomInput: DependentInput, dependentInputName: "hasGate" }, settings.gateCode),
498
+ ]; };
499
+
500
+ var SecurityApartmentInfoFieldsSchema = {
501
+ typeOfRoom: yup.string().required("This field is required"),
502
+ entrance: yup.string().required("This field is required"),
503
+ hasIntercom: yup.string().required("This field is required"),
504
+ intercomCode: yup.string().required("This field is required"),
505
+ hasGate: yup.string().required("This field is required"),
506
+ gateCode: yup.string().required("This field is required"),
507
+ };
508
+ var SecurityApartmentInfoStepSchema = yup.object(SecurityApartmentInfoFieldsSchema);
509
+
510
+ var checkboxLabelProps = {
511
+ size: "s",
512
+ };
513
+ var getApartmentPaymentFields = function (settings) { return [
514
+ __assign({ name: "payerCode", label: "Payer code" }, settings.payerCode),
515
+ __assign({ name: "communalServicesAccount", label: "Operational account number" }, settings.communalServicesAccount),
516
+ __assign({ name: "company", label: "Administrative company", variant: "custom", CustomInput: CompanyAutocomplete }, settings.company),
517
+ __assign({ name: "countryOfResidence", label: "Country of Residence", variant: "custom", CustomInput: CountryAutocomplete }, settings.countryOfResidence),
518
+ __assign({ label: "Tax type", name: "taxesType", variant: "select", options: TaxTypeValues }, settings.taxesType),
519
+ ]; };
520
+ var getAdditionalInfoStepFields = function (settings) { return __spreadArray([
521
+ __assign({ label: "Pets", name: "withPets", variant: "custom", CustomInput: CheckboxWithController, labelProps: checkboxLabelProps }, settings.withPets),
522
+ __assign({ label: "Children", name: "withChildren", variant: "custom", CustomInput: CheckboxWithController, labelProps: checkboxLabelProps }, settings.withChildren),
523
+ __assign({ isTextArea: true, placeholder: "other terms", name: "additionalTerms" }, settings.additionalTerms)
524
+ ], getApartmentPaymentFields(settings), true); };
525
+
526
+ var AdditionalInfoFieldsSchema = {
527
+ taxesType: yup.string().required(defaultRequiredMessage),
528
+ };
529
+ var AdditionalInfoStepSchema = yup.object(AdditionalInfoFieldsSchema);
530
+
531
+ var getHouseServicesInfoStep = function (settings) { return [
532
+ __assign({ name: "hasBarrier", label: "Barrier", variant: "select", options: BooleanValues }, settings.hasBarrier),
533
+ __assign({ name: "barrierPhone", label: "Barrier code", variant: "custom", CustomInput: DependentInput, dependentInputName: "hasBarrier", Input: InputPhoneWithForm }, settings.barrierPhone),
534
+ __assign({ name: "hasConcierge", label: "Concierge", variant: "select", options: BooleanValues }, settings.hasConcierge),
535
+ __assign({ name: "conciergePhone", label: "Concierge", variant: "custom", CustomInput: DependentInput, dependentInputName: "hasConcierge", Input: InputPhoneWithForm }, settings.conciergePhone),
536
+ __assign({ name: "hasSecurity", label: "Security", variant: "select", options: BooleanValues }, settings.hasSecurity),
537
+ __assign({ name: "securityPhone", label: "Security", variant: "custom", CustomInput: DependentInput, dependentInputName: "hasSecurity", Input: InputPhoneWithForm }, settings.securityPhone),
538
+ __assign({ name: "hasVideoControl", label: "Video surveillance", variant: "select", options: BooleanValues }, settings.hasVideoControl),
539
+ __assign({ name: "videoControlPhone", label: "Video surveillance", variant: "custom", CustomInput: DependentInput, dependentInputName: "hasVideoControl", Input: InputPhoneWithForm }, settings.videoControlPhone),
540
+ __assign({ name: "parkingType", label: "Parking", variant: "select", options: ParkingTypesValues }, settings.parkingType),
541
+ __assign({ name: "parkingNumber", label: "Parking number", variant: "custom", CustomInput: DependentInput, dependentInputName: "parkingType" }, settings.parkingNumber),
542
+ __assign({ name: "passengerElevatorsCount", label: "Passenger elevators", type: "number" }, settings.passengerElevatorsCount),
543
+ __assign({ name: "serviceElevatorsCount", label: "Service elevators", type: "number" }, settings.serviceElevatorsCount),
544
+ ]; };
545
+
546
+ var HouseServicesInfoFieldsSchema = {
547
+ hasBarrier: yup.string().required(defaultRequiredMessage),
548
+ barrierPhone: phoneWithConditionSchema("hasBarrier"),
549
+ hasConcierge: yup.string().required(defaultRequiredMessage),
550
+ conciergePhone: phoneWithConditionSchema("hasConcierge"),
551
+ hasSecurity: yup.string().required(defaultRequiredMessage),
552
+ securityPhone: phoneWithConditionSchema("hasSecurity"),
553
+ hasVideoControl: yup.string().required(defaultRequiredMessage),
554
+ videoControlPhone: phoneWithConditionSchema("hasVideoControl"),
555
+ parkingType: yup.string().nullable(),
556
+ parkingNumber: yup
557
+ .string()
558
+ .when("parkingType", {
559
+ is: function (value) { return !!value; },
560
+ then: function (rule) { return rule.required(defaultRequiredMessage); },
561
+ })
562
+ .nullable(),
563
+ passengerElevatorsCount: positiveNumberSchema,
564
+ serviceElevatorsCount: positiveNumberSchema,
565
+ };
566
+ var HouseServicesInfoStepSchema = yup.object(HouseServicesInfoFieldsSchema);
567
+
568
+ var metersOptions = getNumbersValues(7);
569
+ var getMetersInfoStepFields = function (settings) {
570
+ var _a, _b, _c, _d;
571
+ return [
572
+ __assign({ name: "maxMeters.water", label: "Water", variant: "select", options: metersOptions }, (_a = settings.maxMeters) === null || _a === void 0 ? void 0 : _a.water),
573
+ __assign({ name: "maxMeters.electricity", label: "Electricity", variant: "select", options: metersOptions }, (_b = settings.maxMeters) === null || _b === void 0 ? void 0 : _b.electricity),
574
+ __assign({ name: "maxMeters.gas", label: "Gas", variant: "select", options: metersOptions }, (_c = settings.maxMeters) === null || _c === void 0 ? void 0 : _c.gas),
575
+ __assign({ name: "maxMeters.heating", label: "Heating", variant: "select", options: metersOptions }, (_d = settings.maxMeters) === null || _d === void 0 ? void 0 : _d.heating),
576
+ ];
577
+ };
578
+
579
+ var MetersInfoFieldsSchema = {
580
+ maxMeters: yup.object({
581
+ water: positiveNumberSchema,
582
+ electricity: positiveNumberSchema,
583
+ gas: positiveNumberSchema,
584
+ heating: positiveNumberSchema,
585
+ }),
586
+ };
587
+ var MetersInfoStepSchema = yup.object(MetersInfoFieldsSchema);
588
+
589
+ var getTelecommunicationsInfoStepFields = function (settings) {
590
+ var _a, _b, _c, _d, _e;
591
+ return [
592
+ __assign({ name: "wifi.name", label: "Name of network" }, (_a = settings.wifi) === null || _a === void 0 ? void 0 : _a.name),
593
+ __assign({ name: "wifi.password", label: "WiFi password" }, (_b = settings.wifi) === null || _b === void 0 ? void 0 : _b.password),
594
+ __assign({ name: "internetProvider.link", label: "Link to provider", size: 12 }, (_c = settings.internetProvider) === null || _c === void 0 ? void 0 : _c.link),
595
+ __assign({ name: "internetProvider.login", label: "Login" }, (_d = settings.internetProvider) === null || _d === void 0 ? void 0 : _d.login),
596
+ __assign({ name: "internetProvider.password", label: "Password" }, (_e = settings.internetProvider) === null || _e === void 0 ? void 0 : _e.password),
597
+ __assign({ name: "tvType", label: "Television", variant: "select", options: TVTypesValues }, settings.tvType),
598
+ __assign({ name: "homePhone", label: "Home phone", variant: "phone" }, settings.homePhone),
599
+ ];
600
+ };
601
+
602
+ var TelecommunicationsInfoFieldsSchema = {
603
+ tvType: yup.string().required(defaultRequiredMessage),
604
+ homePhone: phoneNonRequiredSchema("homePhone"),
605
+ };
606
+ var TelecommunicationsInfoStepSchema = yup
607
+ .object()
608
+ .shape(TelecommunicationsInfoFieldsSchema, [["homePhone", "homePhone"]]);
609
+
610
+ export { AdditionalInfoStepSchema, BasicApartmentInfoStepSchema as BasicApartmentInfoFieldsSchema, DetailApartmentInfoStepSchema, HouseServicesInfoStepSchema, MetersInfoStepSchema, RoomsApartmentInfoStepSchema as RoomsApartmentInfoFieldsSchema, SecurityApartmentInfoStepSchema, TelecommunicationsInfoStepSchema, getAdditionalInfoStepFields, getApartmentPaymentFields, getBasicApartmentInfoFields, getDetailApartmentInfoFields, getHouseServicesInfoStep, getMetersInfoStepFields, getPartialMeterInfoFields, getPartialMeterInfoSchema, getRoomsApartmentInfoFields, getSecurityApartmentInfoFields, getTelecommunicationsInfoStepFields, inspectionsRequests };
611
+ //# sourceMappingURL=index.js.map