"use strict"; /* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (self["webpackChunkcomplexes"] = self["webpackChunkcomplexes"] || []).push([["src_pages_ImportHomes_vue-src_shared_UI_modalLayout_vue-src_shared_assets_images_complexes_dr-ca0643"],{ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableEditeble.vue?vue&type=script&setup=true&lang=js": /*!********************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableEditeble.vue?vue&type=script&setup=true&lang=js ***! \********************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/widgets/importSteps/fieldStep.vue */ \"./src/widgets/importSteps/fieldStep.vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'tableEditeble',\n props: {\n data: _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_0__.ITableData\n },\n emits: [\"onDrop\", \"onRemoveDropped\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const props = __props;\n const bodyRef = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n const emits = __emit;\n const dragOverHandler = e => {\n e.target.closest('tr').style.backgroundColor = \"#FFFBE3\";\n };\n const dragEndHandler = (e, index) => {\n e.target.closest('tr').style.backgroundColor = \"#ffffff\";\n emits('onDrop', e, index);\n };\n const dragLeaveHandler = e => {\n e.target.closest('tr').style.backgroundColor = \"#ffffff\";\n };\n const __returned__ = {\n props,\n bodyRef,\n emits,\n dragOverHandler,\n dragEndHandler,\n dragLeaveHandler,\n ITableData: _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_0__.ITableData,\n ref: vue__WEBPACK_IMPORTED_MODULE_1__.ref\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/entities/tableEditeble.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableFromFile.vue?vue&type=script&setup=true&lang=js": /*!********************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableFromFile.vue?vue&type=script&setup=true&lang=js ***! \********************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/widgets/importSteps/fieldStep.vue */ \"./src/widgets/importSteps/fieldStep.vue\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'tableFromFile',\n props: {\n data: _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_0__.ITableData\n },\n emits: [\"onDrop\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const props = __props;\n const emits = __emit;\n const onDragStart = (event, index) => {\n if (event.dataTransfer) event.dataTransfer.setData(\"col_id\", index.toString());\n };\n const dragEndHandler = event => {\n // \n };\n const __returned__ = {\n props,\n emits,\n onDragStart,\n dragEndHandler,\n ITableData: _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_0__.ITableData\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/entities/tableFromFile.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/pages/ImportHomes.vue?vue&type=script&setup=true&lang=js": /*!***************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/pages/ImportHomes.vue?vue&type=script&setup=true&lang=js ***! \***************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.set.difference.v2.js */ \"./node_modules/core-js/modules/es.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.set.intersection.v2.js */ \"./node_modules/core-js/modules/es.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.set.union.v2.js */ \"./node_modules/core-js/modules/es.set.union.v2.js\");\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _widgets_importSteps_uploadStep_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/widgets/importSteps/uploadStep.vue */ \"./src/widgets/importSteps/uploadStep.vue\");\n/* harmony import */ var _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/widgets/importSteps/fieldStep.vue */ \"./src/widgets/importSteps/fieldStep.vue\");\n/* harmony import */ var _widgets_importSteps_objectStep_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/widgets/importSteps/objectStep.vue */ \"./src/widgets/importSteps/objectStep.vue\");\n/* harmony import */ var _widgets_importSteps_statusStep_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/widgets/importSteps/statusStep.vue */ \"./src/widgets/importSteps/statusStep.vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _widgets_forms_formAddHome_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/widgets/forms/formAddHome.vue */ \"./src/widgets/forms/formAddHome.vue\");\n/* harmony import */ var _shared_api__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/shared/api */ \"./src/shared/api.js\");\n/* harmony import */ var _shared_utils_util__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/shared/utils/util */ \"./src/shared/utils/util.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.mjs\");\n/* harmony import */ var _components_Loader_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/Loader.vue */ \"./src/components/Loader.vue\");\n/* harmony import */ var _widgets_steps_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/widgets/steps.vue */ \"./src/widgets/steps.vue\");\n/* harmony import */ var primevue_usetoast__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! primevue/usetoast */ \"./node_modules/primevue/usetoast/usetoast.esm.js\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! xlsx */ \"./node_modules/xlsx/xlsx.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'ImportHomes',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const expectedHeaders = [\"Номер квартиры*\", \"Полная стоимость, руб*\", \"Название ЖК*\", \"Дом*\", \"Подъезд*\", \"Этаж*\", \"Статус помещения*\", \"Цена в рассрочку, руб\", \"Ипотека\", \"Номер на площадке\", \"Код планировки\", \"Тип помещения*\", \"Особенности планировки\", \"Кол-во комнат*\", \"Общая площадь, м2*\", \"Жилая площадь, м2\", \"Площадь кухни, м2\", \"Расчетная площадь, м2\", \"Описание\", \"Куда выходят окна\", \"Высота потолков\", \"Кол-во лоджий\", \"Кол-во балконов\", \"Кол-во совмещенных санузлов\", \"Кол-во раздельных санузлов\", \"Отделка\", \"Номер помещения для БТИ\", \"Общая площадь по БТИ\", \"Площадь без балкона\", \"Площадь прихожей, м2\", \"Общая площадь без жилой, м2\", \"Общая площадь санузлов, м2\", \"Общая площадь лоджий/балконов, м2\", \"Площадь комнаты, м2\", \"Площадь санузла, м2\", \"Площадь лоджии/балкона, м2\", \"Примечание\"];\n function checkHeaders(headers, expectedHeaders) {\n if (headers.length !== expectedHeaders.length) {\n return {\n valid: false,\n error: `Ожидалось ${expectedHeaders.length} колонок, получено ${headers.length}`\n };\n }\n for (let i = 0; i < expectedHeaders.length; i++) {\n if (headers[i] !== expectedHeaders[i]) {\n return {\n valid: false,\n error: `Ошибка в колонке ${i + 1}: ожидалось \"${expectedHeaders[i]}\", получено \"${headers[i]}\"`\n };\n }\n }\n return {\n valid: true\n };\n }\n const uploadedFileInfo = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({\n body: null,\n head: null\n });\n const keyToUseWhileAddingHouse = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)();\n const isRequesting = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)();\n const router = (0,vue_router__WEBPACK_IMPORTED_MODULE_19__.useRouter)();\n const route = (0,vue_router__WEBPACK_IMPORTED_MODULE_19__.useRoute)();\n const toast = (0,primevue_usetoast__WEBPACK_IMPORTED_MODULE_18__.useToast)();\n const NoErrors = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)();\n const createData = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(\"\");\n const cancelReq = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)();\n const requiredErrors = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]);\n const rekShow = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)();\n const errorVisible = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)();\n const optionalErrors = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]);\n const cancelReqWarn = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(true); // boolean\n\n const fileAllItemsFiltering = filteringFiles => {\n requiredErrors.value = [];\n optionalErrors.value = [];\n rekShow.value = true;\n let apartmentsData = {};\n apartmentsData = {\n apartmentNumbers: [],\n fullPrices: [],\n complexes: [],\n houses: [],\n entrances: [],\n floors: [],\n statuses: [],\n installmentPrices: [],\n mortgages: [],\n floorNumbers: [],\n planCodes: [],\n roomTypes: [],\n planningFeatures: [],\n roomsCount: [],\n totalAreas: [],\n livingAreas: [],\n kitchenAreas: [],\n calculatedAreas: [],\n descriptions: [],\n windowViews: [],\n ceilingHeights: [],\n loggiasCount: [],\n balconiesCount: [],\n combinedBathrooms: [],\n separateBathrooms: [],\n finishing: [],\n btiNumbers: [],\n btiAreas: [],\n noBalconyAreas: [],\n hallAreas: [],\n nonLivingAreas: [],\n bathroomAreas: [],\n balconyAreas: [],\n roomAreas: [],\n singleBathroomAreas: [],\n singleBalconyAreas: [],\n notes: []\n };\n // 2. Функции проверки\n const isNumber = val => Number(val);\n const isInteger = val => Number.isInteger(Number(val));\n const isString = val => typeof val === \"string\" && val.trim() !== \"\";\n const allowedRoomTypes = ['Квартира', 'Апартаменты', 'Машиноместо', 'Офис', 'Кладовка', 'Склад', 'Торговое Помещение', 'Помещение свободного назначения', 'Таунхаус', 'Вилла', 'Пентхаус', 'Дуплекс', 'Коттедж'];\n const allowedPlanningFeatures = ['Студия', 'Европланировка', 'Свободная планировка'];\n const allowedWindowViews = ['Во двор', 'На улицу', 'В парк', 'На 2 стороны', 'На 3 стороны', 'На залив', 'На лес', 'На набережную', 'На реку', 'На озеро', 'На море', 'На горы', 'На площадь'];\n const allowedFinishing = ['Без отделки', 'Индивидуальная', 'Нет данных', 'Подчистовая', 'Предчистовая', 'С мебелью', 'С мебелью (частично)', 'Черновая', 'Чистовая'];\n\n // 1. Сначала собираем все данные\n filteringFiles.forEach(item => {\n apartmentsData.apartmentNumbers.push(item[\"Номер квартиры*\"]);\n apartmentsData.fullPrices.push(item[\"Полная стоимость, руб*\"]);\n apartmentsData.complexes.push(item[\"Название ЖК*\"]);\n apartmentsData.houses.push(item[\"Дом*\"]);\n apartmentsData.entrances.push(item[\"Подъезд*\"]);\n apartmentsData.floors.push(item[\"Этаж*\"]);\n apartmentsData.statuses.push(item[\"Статус помещения*\"]);\n apartmentsData.installmentPrices.push(item[\"Цена в рассрочку, руб\"]);\n apartmentsData.mortgages.push(item[\"Ипотека\"]);\n apartmentsData.floorNumbers.push(item[\"Номер на площадке\"]);\n apartmentsData.planCodes.push(item[\"Код планировки\"]);\n apartmentsData.roomTypes.push(item[\"Тип помещения*\"]);\n apartmentsData.planningFeatures.push(item[\"Особенности планировки\"]);\n apartmentsData.roomsCount.push(item[\"Кол-во комнат*\"]);\n apartmentsData.totalAreas.push(item[\"Общая площадь, м2*\"]);\n apartmentsData.livingAreas.push(item[\"Жилая площадь, м2\"]);\n apartmentsData.kitchenAreas.push(item[\"Площадь кухни, м2\"]);\n apartmentsData.calculatedAreas.push(item[\"Расчетная площадь, м2\"]);\n apartmentsData.descriptions.push(item[\"Описание\"]);\n apartmentsData.windowViews.push(item[\"Куда выходят окна\"]);\n apartmentsData.ceilingHeights.push(item[\"Высота потолков\"]);\n apartmentsData.loggiasCount.push(item[\"Кол-во лоджий\"]);\n apartmentsData.balconiesCount.push(item[\"Кол-во балконов\"]);\n apartmentsData.combinedBathrooms.push(item[\"Кол-во совмещенных санузлов\"]);\n apartmentsData.separateBathrooms.push(item[\"Кол-во раздельных санузлов\"]);\n apartmentsData.finishing.push(item[\"Отделка\"]);\n apartmentsData.btiNumbers.push(item[\"Номер помещения для БТИ\"]);\n apartmentsData.btiAreas.push(item[\"Общая площадь по БТИ\"]);\n apartmentsData.noBalconyAreas.push(item[\"Площадь без балкона\"]);\n apartmentsData.hallAreas.push(item[\"Площадь прихожей, м2\"]);\n apartmentsData.nonLivingAreas.push(item[\"Общая площадь без жилой, м2\"]);\n apartmentsData.bathroomAreas.push(item[\"Общая площадь санузлов, м2\"]);\n apartmentsData.balconyAreas.push(item[\"Общая площадь лоджий/балконов, м2\"]);\n apartmentsData.roomAreas.push(item[\"Площадь комнаты, м2\"]);\n apartmentsData.singleBathroomAreas.push(item[\"Площадь санузла, м2\"]);\n apartmentsData.singleBalconyAreas.push(item[\"Площадь лоджии/балкона, м2\"]);\n apartmentsData.notes.push(item[\"Примечание\"]);\n });\n // ===== ПРОВЕРКИ ОБЯЗАТЕЛЬНЫХ (*) =====\n const uniqueApartmentNumbers = new Set();\n apartmentsData.apartmentNumbers.forEach((val, i) => {\n if (!val || !isString(val)) {\n requiredErrors.value.push(`Строка ${i + 1}: Номер квартиры* не указан или имеет неверный формат`);\n } else {\n // Проверка уникальности\n if (uniqueApartmentNumbers.has(val)) {\n requiredErrors.value.push(`Строка ${i + 1}: Номер квартиры* \"${val}\" повторяется`);\n } else {\n uniqueApartmentNumbers.add(val);\n }\n }\n });\n apartmentsData.fullPrices.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Полная стоимость, руб* не указана`);\n } else if (isNaN(Number(val)) || Number(val) < 0) {\n requiredErrors.value.push(`Строка ${i + 1}: Полная стоимость, руб* должна быть числом >= 0`);\n }\n });\n apartmentsData.complexes.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Название ЖК* не указан`);\n }\n });\n apartmentsData.houses.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Дом* не указан`);\n }\n });\n apartmentsData.statuses.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Статус* не указан`);\n }\n });\n apartmentsData.entrances.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Подъезд* не указан`);\n } else if (!isInteger(val) || val <= 0) {\n requiredErrors.value.push(`Строка ${i + 1}: Подъезд* должен быть положительным целым числом`);\n }\n });\n apartmentsData.floors.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Этаж* не указан`);\n } else if (!isInteger(val) || val <= 0) {\n requiredErrors.value.push(`Строка ${i + 1}: Этаж* должен быть положительным целым числом`);\n }\n });\n apartmentsData.roomTypes.forEach((val, i) => {\n if (!val || !allowedRoomTypes.includes(val)) {\n requiredErrors.value.push(`Строка ${i + 1}: Тип помещения* имеет недопустимое значение`);\n }\n });\n apartmentsData.roomsCount.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Кол-во комнат* не указано`);\n } else if (!isInteger(val) || val <= 0) {\n requiredErrors.value.push(`Строка ${i + 1}: Кол-во комнат* должно быть положительным целым числом`);\n }\n });\n apartmentsData.totalAreas.forEach((val, i) => {\n if (val === \"\" || val === undefined) {\n requiredErrors.value.push(`Строка ${i + 1}: Общая площадь, м2* не указана`);\n } else if (isNaN(Number(val)) || Number(val) < 0) {\n requiredErrors.value.push(`Строка ${i + 1}: Общая площадь, м2* должна быть числом >= 0`);\n }\n });\n\n // ===== ПРОВЕРКИ НЕОБЯЗАТЕЛЬНЫХ =====\n apartmentsData.installmentPrices.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Цена в рассрочку, руб должна быть >=0`);\n });\n apartmentsData.mortgages.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && val !== \"Да\") optionalErrors.value.push(`Строка ${i + 1}: Ипотека должна быть \"Да\" или пусто`);\n });\n apartmentsData.floorNumbers.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isInteger(val) || val <= 0)) optionalErrors.value.push(`Строка ${i + 1}: Номер на площадке должен быть положительным целым числом`);\n });\n apartmentsData.planCodes.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isString(val) || val.length > 30)) optionalErrors.value.push(`Строка ${i + 1}: Код планировки должен быть строкой до 30 символов`);\n });\n apartmentsData.planningFeatures.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && !allowedPlanningFeatures.includes(val)) optionalErrors.value.push(`Строка ${i + 1}: Особенности планировки недопустимое значение`);\n });\n apartmentsData.livingAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Жилая площадь, м2 должна быть >=0`);\n });\n apartmentsData.kitchenAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Площадь кухни, м2 должна быть >=0`);\n });\n apartmentsData.calculatedAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Расчетная площадь, м2 должна быть >=0`);\n });\n apartmentsData.descriptions.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && !isString(val)) optionalErrors.value.push(`Строка ${i + 1}: Описание должно быть строкой`);\n });\n apartmentsData.windowViews.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && !allowedWindowViews.includes(val)) optionalErrors.value.push(`Строка ${i + 1}: Куда выходят окна недопустимое значение`);\n });\n apartmentsData.ceilingHeights.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Высота потолков должна быть >=0`);\n });\n apartmentsData.loggiasCount.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isInteger(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Кол-во лоджий должно быть >=0`);\n });\n apartmentsData.balconiesCount.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isInteger(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Кол-во балконов должно быть >=0`);\n });\n apartmentsData.combinedBathrooms.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isInteger(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Кол-во совмещенных санузлов должно быть >=0`);\n });\n apartmentsData.separateBathrooms.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isInteger(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Кол-во раздельных санузлов должно быть >=0`);\n });\n apartmentsData.finishing.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && !allowedFinishing.includes(val)) optionalErrors.value.push(`Строка ${i + 1}: Отделка недопустимое значение`);\n });\n apartmentsData.btiNumbers.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isString(val) || val.length > 20)) optionalErrors.value.push(`Строка ${i + 1}: Номер помещения для БТИ должен быть строкой до 20 символов`);\n });\n apartmentsData.btiAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Общая площадь по БТИ должна быть >=0`);\n });\n apartmentsData.noBalconyAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Площадь без балкона должна быть >=0`);\n });\n apartmentsData.hallAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Площадь прихожей должна быть >=0`);\n });\n apartmentsData.nonLivingAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Общая площадь без жилой должна быть >=0`);\n });\n apartmentsData.bathroomAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Общая площадь санузлов должна быть >=0`);\n });\n apartmentsData.balconyAreas.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && (!isNumber(val) || val < 0)) optionalErrors.value.push(`Строка ${i + 1}: Общая площадь лоджий/балконов должна быть >=0`);\n });\n\n // Проверка площадей комнат\n apartmentsData.roomAreas.forEach((val, i) => {\n if (val && val.trim() !== \"\") {\n const nums = val.split(\";\").map(x => x.trim()).filter(x => x !== \"\");\n nums.forEach(num => {\n if (!isNumber(num) || Number(num) < 0) {\n optionalErrors.value.push(`Строка ${i + 1}: Площадь комнаты \"${num}\" недопустима`);\n }\n });\n }\n });\n\n // Проверка площадей санузлов\n apartmentsData.singleBathroomAreas.forEach((val, i) => {\n if (val && val.trim() !== \"\") {\n const nums = val.split(\";\").map(x => x.trim()).filter(x => x !== \"\");\n nums.forEach(num => {\n if (!isNumber(num) || Number(num) < 0) {\n optionalErrors.value.push(`Строка ${i + 1}: Площадь санузла \"${num}\" недопустима`);\n }\n });\n }\n });\n\n // Проверка лоджий и балконов\n apartmentsData.singleBalconyAreas.forEach((val, i) => {\n if (val && val.trim() !== \"\") {\n const parts = val.split(\";\").map(x => x.trim()).filter(x => x !== \"\");\n parts.forEach(part => {\n const [type, area] = part.split(\":\").map(x => x.trim());\n if (!type || !area) {\n optionalErrors.value.push(`Строка ${i + 1}: Площадь лоджии/балкона, м2 можно вводить только в формате: \"Лоджия:12;Балкон:23.3;Лоджия:12;Балкон:23.3;\"`);\n return;\n }\n if (![\"Лоджия\", \"Балкон\"].includes(type)) {\n optionalErrors.value.push(`Строка ${i + 1}: Тип \"${type}\" должен быть \"Лоджия\" или \"Балкон\"`);\n }\n if (isNaN(Number(area)) || Number(area) < 0) {\n optionalErrors.value.push(`Строка ${i + 1}: Площадь \"${area}\" недопустима`);\n }\n });\n\n // Проверяем, чтобы формат был строго \"Лоджия:число;Балкон:число;...\"\n const rebuilt = parts.map(p => {\n const [t, a] = p.split(\":\").map(x => x.trim());\n return `${t}:${a}`;\n }).join(\";\");\n\n // if (rebuilt !== val.replace(/\\s/g, \"\")) {\n // optionalErrors.value.push(`Строка ${i + 1}: Неправильный формат площадей лоджий/балконов`);\n // }\n }\n });\n apartmentsData.notes.forEach((val, i) => {\n if (val !== \"\" && val !== undefined && val.length > 1000) optionalErrors.value.push(`Строка ${i + 1}: Примечание слишком длинное (>1000 символов)`);\n });\n console.log(\"Данные:\", apartmentsData);\n console.log(\"Ошибки обязательных:\", requiredErrors.value);\n console.log(\"Ошибки необязательных:\", optionalErrors.value);\n\n // return { requiredErrors.value, optionalErrors.value, apartmentsData };\n };\n const reloadFile = () => {\n const {\n import_id,\n ...restQuery\n } = route.query;\n router.replace({\n query: restQuery\n });\n setTimeout(() => {\n window.location.reload();\n }, 100);\n };\n const handlePrepared = inputData => {\n if (!inputData) return;\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getHouseImport(inputData.id).then(response => {\n uploadedFileInfo.value.body = response.data.document_preview.body.map((data, index) => ({\n items: data,\n initialIndex: index\n }));\n const headers = response.data.document_preview.head;\n const result = checkHeaders(headers, expectedHeaders);\n if (!result.valid) {\n return cancelReq.value = true;\n } else {\n cancelReq.value = false;\n }\n cancelReqWarn.value = false;\n if (requiredErrors.value.length > 0) {\n errorVisible.value = true;\n isRequesting.value = true;\n }\n if (optionalErrors.value.length > 0) {\n errorVisible.value = true;\n }\n if (optionalErrors.value.length === 0 && requiredErrors.value.length === 0) {\n NoErrors.value = true;\n }\n createData.value = response.data.created_at;\n uploadedFileInfo.value.head = (0,_shared_utils_util__WEBPACK_IMPORTED_MODULE_15__.generateAlphabetSequence)(response.data.document_preview.head.length);\n uploadedFileInfo.value.import_id = response.data.id;\n uploadedFileInfo.value.created_at = response.data.created_at;\n uploadedFileInfo.value.is_processing = response.data.status.includes('in_progress');\n uploadedFileInfo.value.house_name_to_id = response.data.house_name_to_id;\n uploadedFileInfo.value.dynamic_fields = response.data.dynamic_fields;\n router.replace({\n query: {\n import_id: inputData.id\n }\n });\n activeItem.value = inputData.step;\n });\n };\n async function loadExcelFromUrl(url) {\n const response = await fetch(url);\n const arrayBuffer = await response.arrayBuffer();\n const workbook = xlsx__WEBPACK_IMPORTED_MODULE_20__.read(arrayBuffer, {\n type: \"array\"\n });\n const sheet = workbook.Sheets[workbook.SheetNames[0]];\n let json = xlsx__WEBPACK_IMPORTED_MODULE_20__.utils.sheet_to_json(sheet, {\n defval: \"\"\n });\n\n // Преобразуем все числа в строки\n json = json.map(row => {\n const newRow = {};\n for (const key in row) {\n newRow[key] = typeof row[key] === \"number\" ? row[key].toString() : row[key];\n }\n return newRow;\n });\n return json;\n }\n const add_house = house_id => {\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getAllHouses().then(response => {\n if (keyToUseWhileAddingHouse.value) {\n uploadedFileInfo.value.house_name_to_id[keyToUseWhileAddingHouse.value] = house_id;\n } else {\n uploadedFileInfo.value.house_name_to_id = house_id;\n }\n housesList.value = response.data;\n isCreateHomeOpen.value = false;\n });\n };\n const isCreateHomeOpen = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(false);\n const formAddHome = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(null);\n const activeItem = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(1);\n const housesList = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]);\n const stepItems = [{\n id: 1,\n text: \"Загрузка файла\"\n }, {\n id: 2,\n text: \"Сопоставление полей\"\n }, {\n id: 3,\n text: \"Объекты\"\n }, {\n id: 4,\n text: \"Статусы и типы\"\n }, {\n id: 5,\n text: \"Завершение\"\n }];\n (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => {\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getAllHouses().then(response => {\n housesList.value = response.data;\n });\n if (route.query.import_id) {\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getHouseImport(route.query.import_id).then(importData => {\n if (!importData.data.id) {\n router.replace({\n query: {}\n });\n } else {\n if (importData.data.step = 2) {\n const url = importData.data.document;\n loadExcelFromUrl(url).then(jsonData => {\n fileAllItemsFiltering(jsonData);\n if (requiredErrors.value.length > 0) {\n errorVisible.value = true;\n isRequesting.value = true;\n }\n if (optionalErrors.value.length > 0) {\n errorVisible.value = true;\n }\n if (!optionalErrors.value.length > 0 && !requiredErrors.value.length > 0) {\n NoErrors.value = true;\n }\n });\n } else {\n rekShow.value = true;\n NoErrors.value = false;\n }\n createData.value = importData.data.created_at;\n uploadedFileInfo.value.body = importData.data.document_preview.body.map((data, index) => ({\n items: data,\n initialIndex: index\n }));\n uploadedFileInfo.value.head = importData.data.document_preview.head;\n uploadedFileInfo.value.import_id = importData.data.id;\n uploadedFileInfo.value.step = importData.data.step;\n uploadedFileInfo.value.created_at = importData.data.created_at;\n uploadedFileInfo.value.mapping_fields = importData.data.mapping_fields;\n uploadedFileInfo.value.is_processing = importData.data.status.includes('in_progress');\n uploadedFileInfo.value.house_name_to_id = importData.data.house_name_to_id;\n uploadedFileInfo.value.dynamic_fields = importData.data.dynamic_fields;\n activeItem.value = importData.data.step;\n }\n if (importData.data.status == 'done' && importData.data.step == 5) {\n router.push('/my-objects');\n }\n });\n }\n });\n (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)(() => uploadedFileInfo.value.is_processing, () => {\n if (route.query.import_id && uploadedFileInfo.value.is_processing) {\n const interval = setInterval(() => {\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getHouseImportStatus(route.query.import_id).then(response => {\n if (response.data.step != 2) {\n errorVisible.value = false;\n rekShow.value = true;\n NoErrors.value = false;\n }\n if (response.data.status.includes('done')) {\n clearInterval(interval);\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getHouseImport(route.query.import_id).then(importData => {\n uploadedFileInfo.value.import_id = importData.data.id;\n uploadedFileInfo.value.step = importData.data.step;\n uploadedFileInfo.value.created_at = importData.data.created_at;\n uploadedFileInfo.value.mapping_fields = importData.data.mapping_fields;\n uploadedFileInfo.value.is_processing = importData.data.status.includes('in_progress');\n uploadedFileInfo.value.house_name_to_id = importData.data.house_name_to_id;\n uploadedFileInfo.value.dynamic_fields = importData.data.dynamic_fields;\n activeItem.value = importData.data.step;\n if (importData.data.status == 'done' && importData.data.step == 5) {\n toast.add({\n severity: 'success',\n summary: 'Импорт заверщен',\n detail: 'Импорт помещений успешно завершен',\n life: 3000\n });\n router.push('/my-objects');\n }\n });\n } else {\n uploadedFileInfo.value.is_processing = !response.data.status || response.data.status.includes('in_progress');\n }\n });\n }, 2000);\n }\n });\n const updateImport = fields => {\n isRequesting.value = true;\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].updateHouseImport(route.query.import_id, fields).then(() => {\n _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"].getHouseImportStatus(route.query.import_id).then(response => {\n if (response.data.step != 2) {\n errorVisible.value = false;\n }\n uploadedFileInfo.value.is_processing = response.data.status.includes('in_progress');\n activeItem.value = response.data.step;\n });\n }).finally(() => isRequesting.value = false);\n };\n const __returned__ = {\n expectedHeaders,\n checkHeaders,\n uploadedFileInfo,\n keyToUseWhileAddingHouse,\n isRequesting,\n router,\n route,\n toast,\n NoErrors,\n createData,\n cancelReq,\n requiredErrors,\n rekShow,\n errorVisible,\n optionalErrors,\n cancelReqWarn,\n fileAllItemsFiltering,\n reloadFile,\n handlePrepared,\n loadExcelFromUrl,\n add_house,\n isCreateHomeOpen,\n formAddHome,\n activeItem,\n housesList,\n stepItems,\n updateImport,\n UploadStep: _widgets_importSteps_uploadStep_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n FieldStep: _widgets_importSteps_fieldStep_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ObjectStep: _widgets_importSteps_objectStep_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n StatusStep: _widgets_importSteps_statusStep_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n onMounted: vue__WEBPACK_IMPORTED_MODULE_12__.onMounted,\n ref: vue__WEBPACK_IMPORTED_MODULE_12__.ref,\n watch: vue__WEBPACK_IMPORTED_MODULE_12__.watch,\n FormAddHome: _widgets_forms_formAddHome_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n get api() {\n return _shared_api__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\n },\n get formatDate() {\n return _shared_utils_util__WEBPACK_IMPORTED_MODULE_15__.formatDate;\n },\n get generateAlphabetSequence() {\n return _shared_utils_util__WEBPACK_IMPORTED_MODULE_15__.generateAlphabetSequence;\n },\n get useRoute() {\n return vue_router__WEBPACK_IMPORTED_MODULE_19__.useRoute;\n },\n get useRouter() {\n return vue_router__WEBPACK_IMPORTED_MODULE_19__.useRouter;\n },\n Loader: _components_Loader_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n Steps: _widgets_steps_vue__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n get useToast() {\n return primevue_usetoast__WEBPACK_IMPORTED_MODULE_18__.useToast;\n },\n get XLSX() {\n return xlsx__WEBPACK_IMPORTED_MODULE_20__;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/pages/ImportHomes.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/fileUpload.vue?vue&type=script&setup=true&lang=js": /*!******************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/fileUpload.vue?vue&type=script&setup=true&lang=js ***! \******************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'fileUpload',\n emits: [\"updateModel\", \"fileinfo\", \"done:comparison-prepared\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const emits = __emit;\n const isDragging = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(false);\n const file = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(File | null);\n const fileInput = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(HTMLInputElement);\n const json = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)();\n function csvToJson(csvString) {\n const rows = csvString.split(\"\\n\");\n const headers = rows[0].split(\",\");\n const jsonData = [];\n for (let i = 1; i < rows.length; i++) {\n const values = rows[i].split(\",\");\n const obj = {};\n for (let j = 0; j < headers.length; j++) {\n const key = headers[j].trim();\n const value = values[j] ? values[j].trim() : values[j];\n obj[key] = value;\n }\n jsonData.push(obj);\n }\n return jsonData;\n }\n function XLSXToJson(xlsxString) {\n var workbook = XLSX.read(xlsxString, {\n type: 'binary'\n });\n return XLSX.utils.sheet_to_row_object_array(workbook.Sheets[workbook.SheetNames[0]]);\n }\n function getFileNameWithExt(file) {\n if (!file) {\n return;\n }\n const name = file.name;\n const lastDot = name.lastIndexOf('.');\n const fileName = name.substring(0, lastDot);\n const ext = name.substring(lastDot + 1);\n return {\n fileName,\n extension: ext\n };\n }\n const onChange = async () => {\n if (fileInput.value?.files?.length) {\n file.value = fileInput.value.files[0];\n if (file.value.size < 2097152) {\n const fileNameInfo = getFileNameWithExt(file.value);\n if ([\"xls\", \"xlsx\", \"csv\"].includes(fileNameInfo.extension)) {\n emits(\"updateModel\", file.value);\n\n // читаем содержимое файла\n const reader = new FileReader();\n reader.onload = e => {\n const content = e.target.result;\n if (fileNameInfo.extension === \"csv\") {\n json.value = csvToJson(content);\n // console.log(\"CSV → JSON:\", json);\n emits(\"fileinfo\", json);\n json.value = null;\n }\n if (fileNameInfo.extension === \"xls\" || fileNameInfo.extension === \"xlsx\") {\n const workbook = XLSX.read(content, {\n type: \"binary\"\n });\n json.value = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);\n // console.log(\"Excel → JSON:\", json);\n emits(\"fileinfo\", json.value);\n json.value = null;\n }\n };\n if (fileNameInfo.extension === \"csv\") {\n reader.readAsText(file.value);\n } else {\n reader.readAsBinaryString(file.value);\n }\n }\n }\n }\n };\n const dragover = e => {\n e.preventDefault();\n isDragging.value = true;\n };\n const dragleave = () => {\n isDragging.value = false;\n };\n const drop = e => {\n e.preventDefault();\n if (fileInput.value && e.dataTransfer) {\n fileInput.value.files = e.dataTransfer.files;\n onChange();\n isDragging.value = false;\n }\n };\n const deleteFile = () => {\n file.value = null;\n json.value = null;\n emits(\"updateModel\", null);\n };\n const __returned__ = {\n emits,\n isDragging,\n file,\n fileInput,\n json,\n csvToJson,\n XLSXToJson,\n getFileNameWithExt,\n onChange,\n dragover,\n dragleave,\n drop,\n deleteFile,\n ref: vue__WEBPACK_IMPORTED_MODULE_1__.ref\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/shared/UI/fileUpload.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/modalLayout.vue?vue&type=script&setup=true&lang=js": /*!*******************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/modalLayout.vue?vue&type=script&setup=true&lang=js ***! \*******************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'modalLayout',\n props: {\n title: String,\n wrapperClass: {\n type: String,\n default: ''\n }\n },\n emits: [\"closeModel\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const emits = __emit;\n const props = __props;\n const has_restricted_access = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(!!Number(document.getElementById('has_restricted_access')?.value));\n const hasDeveloper = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(!!Number(document.getElementById('has_developer')?.value));\n const modalWindowEl = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(HTMLElement);\n document.addEventListener(\"click\", e => {\n if (e.target === modalWindowEl.value) {\n emits(\"closeModel\");\n }\n });\n const __returned__ = {\n emits,\n props,\n has_restricted_access,\n hasDeveloper,\n modalWindowEl,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/shared/UI/modalLayout.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/fieldStep.vue?vue&type=script&setup=true&lang=js": /*!***************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/fieldStep.vue?vue&type=script&setup=true&lang=js ***! \***************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.set.difference.v2.js */ \"./node_modules/core-js/modules/es.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.set.intersection.v2.js */ \"./node_modules/core-js/modules/es.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/es.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.set.union.v2.js */ \"./node_modules/core-js/modules/es.set.union.v2.js\");\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _entities_tableEditeble_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/entities/tableEditeble.vue */ \"./src/entities/tableEditeble.vue\");\n/* harmony import */ var _entities_tableFromFile_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/entities/tableFromFile.vue */ \"./src/entities/tableFromFile.vue\");\n/* harmony import */ var _shared_utils_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/shared/utils/util */ \"./src/shared/utils/util.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'fieldStep',\n props: {\n isRequesting: Boolean,\n data: Object\n },\n emits: [\"update:activeItem\", \"reloadFile\", \"updateImport\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const emits = __emit;\n const props = __props;\n const {\n data: tableDataFromFile\n } = (0,vue__WEBPACK_IMPORTED_MODULE_11__.toRefs)(props);\n const selectedColumns = (0,vue__WEBPACK_IMPORTED_MODULE_11__.ref)([]);\n const additionalColumns = (0,vue__WEBPACK_IMPORTED_MODULE_11__.ref)([{\n label: \"Цена в рассрочку, руб\",\n value: \"installment_price\",\n id: 8\n }, {\n label: \"Ипотека\",\n value: \"mortgage\",\n id: 9\n }, {\n label: \"Номер на площадке\",\n value: \"on_site_number\",\n id: 10\n }, {\n label: \"Код планировки\",\n value: \"layout_code\",\n id: 11\n }, {\n label: \"Особенности планировки\",\n value: \"layout_feature\",\n id: 13\n }, {\n label: \"Жилая площадь, м2\",\n value: \"living_area\",\n id: 16\n }, {\n label: \"Площадь кухни, м2\",\n value: \"kitchen_area\",\n id: 17\n }, {\n label: \"Расчетная площадь, м2\",\n value: \"estimated_area\",\n id: 18\n }, {\n label: \"Описание\",\n value: \"description\",\n id: 19\n }, {\n label: \"Куда выходят окна\",\n value: \"windows_placement_id\",\n id: 20\n }, {\n label: \"Высота потолков\",\n value: \"ceiling_height\",\n id: 21\n }, {\n label: \"Кол-во лоджий\",\n value: \"loggias_count\",\n id: 22\n }, {\n label: \"Кол-во балконов\",\n value: \"balconies_count\",\n id: 23\n }, {\n label: \"Кол-во совмещенных санузлов\",\n value: \"combined_bathrooms_count\",\n id: 24\n }, {\n label: \"Кол-во раздельных санузлов\",\n value: \"seperated_bathrooms_count\",\n id: 25\n }, {\n label: \"Отделка\",\n value: \"decoration_id\",\n id: 26\n }, {\n label: \"Номер помещения для БТИ\",\n value: \"bti_room_number\",\n id: 27\n }, {\n label: \"Общая площадь по БТИ\",\n value: \"bti_total_area\",\n id: 28\n }, {\n label: \"Площадь без балкона\",\n value: \"area_without_balcony\",\n id: 29\n }, {\n label: \"Площадь прихожей, м2\",\n value: \"hallway_area\",\n id: 30\n }, {\n label: \"Общая площадь без жилой, м2\",\n value: \"total_area_excl_living\",\n id: 31\n }, {\n label: \"Общая площадь санузлов, м2\",\n value: \"total_bathroom_area\",\n id: 32\n }, {\n label: \"Общая площадь лоджий/балконов, м2\",\n value: \"total_balcony_loggia_area\",\n id: 33\n }, {\n label: \"Площадь комнаты, м2\",\n value: \"rooms_areas\",\n id: 34\n }, {\n label: \"Площадь санузла, м2\",\n value: \"bathrooms_areas\",\n id: 35\n }, {\n label: \"Площадь лоджии/балкона, м2\",\n value: \"loggias_balconys_areas\",\n id: 36\n }, {\n label: \"Примечание\",\n value: \"rooms_note\",\n id: 37\n }]);\n const previewShowData = (0,vue__WEBPACK_IMPORTED_MODULE_11__.ref)({});\n const previewEditData = (0,vue__WEBPACK_IMPORTED_MODULE_11__.ref)({\n body: [{\n items: [],\n initialIndex: 0\n }],\n head: [{\n label: \"Номер квартиры*\",\n value: \"number\",\n id: 1\n }, {\n label: \"Полная стоимость, руб*\",\n value: \"total_amount\",\n id: 2\n }, {\n label: \"Название ЖК*\",\n value: \"complex_name\",\n id: 3\n }, {\n label: \"Дом*\",\n value: \"house_name\",\n id: 4\n }, {\n label: \"Подъезд*\",\n value: \"entrance_id\",\n id: 5\n }, {\n label: \"Этаж*\",\n value: \"floor_id\",\n id: 6\n }, {\n label: \"Статус помещения*\",\n value: \"complex_status_id\",\n id: 7\n }, {\n label: \"Тип помещения*\",\n value: \"type\",\n id: 12\n }, {\n label: \"Кол-во комнат*\",\n value: \"rooms_count\",\n id: 14\n }, {\n label: \"Общая площадь, м2*\",\n value: \"area\",\n id: 15\n }]\n });\n\n // const additionalColumnsChanged = (e) => {\n // const clickedLabel = e.originalEvent.target.closest(\"li\")?.getAttribute(\"aria-label\");\n //\n // if (!clickedLabel) {\n // const checkBox = e.originalEvent.target.closest('.p-checkbox-box')\n //\n // if (checkBox) {\n // const isRemoved = checkBox.classList.contains('p-highlight');\n //\n // if (!isRemoved) {\n // previewEditData.value.head = [\n // ...previewEditData.value.head.filter((item) => !additionalColumns.value.find(column => column.value == item.value)),\n // ...additionalColumns.value\n // ]\n // previewEditData.value.body = [\n // ...previewEditData.value.body.filter((item) => !item.additionalLabel),\n // ...additionalColumns.value.map((column, index) => ({\n // initialIndex: previewEditData.value.body.length + index,\n // items: new Array(10).fill(null),\n // additionalLabel: column.label\n // }))\n // ]\n // } else {\n // previewEditData.value.head = previewEditData.value.head.filter((item) => !additionalColumns.value.find(column => column.value == item.value))\n // previewEditData.value.body = previewEditData.value.body.filter((item) => !item.additionalLabel)\n //\n // }\n // }\n //\n // } else {\n // const option = additionalColumns.value.find((column) => column.label == clickedLabel);\n //\n // const isRemoved = !e.value.includes(option.value);\n //\n // if (!isRemoved) {\n // previewEditData.value.head.push(option);\n // previewEditData.value.body.push({\n // initialIndex: previewEditData.value.body.length,\n // items: new Array(10).fill(null),\n // additionalLabel: clickedLabel,\n // });\n // } else {\n // const bodyItem = previewEditData.value.body.find(\n // (item) => item.additionalLabel == clickedLabel\n // );\n // previewShowData.value.body[bodyItem.initialIndex] = bodyItem;\n //\n // previewEditData.value.body = previewEditData.value.body.filter(\n // (item) => item.additionalLabel != clickedLabel\n // );\n // previewEditData.value.head = previewEditData.value.head.filter(\n // (item) => item.label != clickedLabel\n // );\n // }\n // }\n //\n\n // };\n\n function onDrop(event, index) {\n event.preventDefault();\n if (event.dataTransfer) {\n const sourceIndex = parseInt(event.dataTransfer.getData(\"col_id\"));\n if (!previewEditData.value.body[index]) previewEditData.value.body[index] = {\n items: []\n };\n if (!previewEditData.value.body[index].items[0]) {\n previewEditData.value.body[index].items = previewShowData.value.body[sourceIndex].items;\n previewEditData.value.body[index].initialIndex = previewShowData.value.body[sourceIndex].initialIndex;\n previewShowData.value.body[sourceIndex].items = new Array(10).fill(null);\n }\n }\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_11__.onBeforeMount)(() => {\n if (!tableDataFromFile.value?.body?.length) return;\n const normalize = (s = \"\") => String(s || \"\").trim().toLowerCase().replace(/\\*/g, \"\").replace(/,?\\s*руб(ли)?/g, \"\").replace(/\\s+/g, \" \");\n const fileBody = tableDataFromFile.value.body || [];\n const fileHead = tableDataFromFile.value.head || [];\n\n // Build a lookup from normalized first-cell -> row\n const fileBodyByFirst = new Map();\n fileBody.forEach(row => {\n const key = normalize(row.items?.[0] ?? \"\");\n if (!fileBodyByFirst.has(key)) fileBodyByFirst.set(key, []);\n fileBodyByFirst.get(key).push(row);\n });\n\n // Create previewEditData.body in the same *logical* order as previewEditData.head\n const notFound = [];\n const newBody = previewEditData.value.head.map(headItem => {\n const headKey = normalize(headItem.label);\n // try to find by label first\n const matchedRows = fileBodyByFirst.get(headKey) || [];\n if (matchedRows.length) {\n // take first match (you can refine if duplicates expected)\n const match = matchedRows.shift(); // remove from pool so duplicates won't be reused\n return {\n initialIndex: match.initialIndex,\n items: [...match.items],\n headerLabel: headItem.label,\n columnValue: headItem.value\n };\n } else {\n // not found — create empty placeholder\n notFound.push(headItem.label);\n return {\n initialIndex: 0,\n items: new Array(10).fill(null),\n headerLabel: headItem.label,\n columnValue: headItem.value\n };\n }\n });\n previewEditData.value.body = newBody;\n\n // Build previewShowData: mark rows that were consumed and leave others as-is\n previewShowData.value.body = fileBody.filter(row => normalize(row.items?.[0]) !== normalize(\"Номер квартиры*\")).map(row => ({\n initialIndex: row.initialIndex,\n items: new Array(10).fill(null)\n }));\n previewShowData.value.head = fileHead;\n\n // Ensure head sorted by id (and keep body in the same order)\n previewEditData.value.head.sort((a, b) => a.id - b.id);\n // Reorder body according to head order (match by normalized label)\n previewEditData.value.body = previewEditData.value.head.map(h => previewEditData.value.body.find(b => normalize(b.headerLabel) === normalize(h.label)) || {\n initialIndex: 0,\n items: new Array(10).fill(null),\n headerLabel: h.label,\n columnValue: h.value\n });\n selectedColumns.value = additionalColumns.value.map(col => col.value);\n if (notFound.length) {\n console.warn(\"No matching body rows for headers:\", notFound);\n }\n console.log(\"previewEditData.body after init:\", previewEditData.value.body);\n });\n const onRemove = (e, index, colInfo) => {\n previewShowData.value.body[colInfo.initialIndex].items = colInfo.items;\n previewEditData.value.body[index].items = new Array(10).fill(null);\n };\n const handleSendMapping = () => {\n const map = {};\n previewEditData.value.head.forEach((headItem, index) => {\n if (previewEditData.value.body[index]?.items[0]) {\n map[headItem.value] = previewEditData.value.body[index]?.items[0];\n }\n previewEditData.value.head.sort((a, b) => a.id - b.id);\n });\n emits(\"updateImport\", {\n mapping_fields: JSON.stringify(map),\n step: 3\n });\n };\n (0,vue__WEBPACK_IMPORTED_MODULE_11__.watch)(selectedColumns, async (newVal, oldVal) => {\n const normalize = (s = \"\") => String(s || \"\").trim().toLowerCase().replace(/\\*/g, \"\").replace(/,?\\s*руб(ли)?/g, \"\").replace(/\\s+/g, \" \");\n const addedValues = newVal.filter(v => !oldVal.includes(v));\n const removedValues = oldVal.filter(v => !newVal.includes(v));\n await (0,vue__WEBPACK_IMPORTED_MODULE_11__.nextTick)();\n\n // build quick lookup of file body rows by normalized first-cell\n const fileBody = tableDataFromFile.value?.body || [];\n const fileByFirst = new Map();\n fileBody.forEach(row => {\n const key = normalize(row.items?.[0] ?? \"\");\n if (!fileByFirst.has(key)) fileByFirst.set(key, []);\n fileByFirst.get(key).push(row);\n });\n\n // helper to rebuild previewEditData.body in head order\n const rebuildBody = () => {\n previewEditData.value.head.sort((a, b) => a.id - b.id);\n previewEditData.value.body = previewEditData.value.head.map(h => {\n // try find existing body by columnValue or by headerLabel\n const existing = previewEditData.value.body.find(b => b.columnValue && b.columnValue === h.value || normalize(b.headerLabel) === normalize(h.label));\n if (existing) return existing;\n // else try to find in original file by header label\n const matchPool = fileByFirst.get(normalize(h.label)) || [];\n if (matchPool.length) {\n const m = matchPool.shift();\n return {\n initialIndex: m.initialIndex,\n items: [...m.items],\n headerLabel: h.label,\n columnValue: h.value\n };\n }\n // fallback empty\n return {\n initialIndex: 0,\n items: new Array(10).fill(null),\n headerLabel: h.label,\n columnValue: h.value\n };\n });\n };\n\n // --- Add new columns ---\n addedValues.forEach(val => {\n const column = additionalColumns.value.find(c => c.value === val);\n if (!column) return;\n // add to head only if not present\n if (!previewEditData.value.head.some(h => h.value === column.value)) {\n previewEditData.value.head.push(column);\n }\n });\n\n // --- Remove columns ---\n removedValues.forEach(val => {\n // remove from head\n previewEditData.value.head = previewEditData.value.head.filter(h => h.value !== val);\n // remove corresponding body entries but move non-empty back to previewShowData by initialIndex\n const removedBodies = previewEditData.value.body.filter(b => b.columnValue === val || normalize(b.headerLabel) === normalize(additionalColumns.value.find(c => c.value === val)?.label || \"\"));\n removedBodies.forEach(rb => {\n if (rb.items && rb.items.some(it => it !== null)) {\n const idx = previewShowData.value.body.findIndex(pb => pb.initialIndex === rb.initialIndex);\n if (idx !== -1) {\n previewShowData.value.body[idx] = {\n ...rb\n };\n }\n }\n });\n previewEditData.value.body = previewEditData.value.body.filter(b => !(b.columnValue === val || b.headerLabel && normalize(b.headerLabel) === normalize(additionalColumns.value.find(c => c.value === val)?.label || \"\")));\n });\n\n // --- Rebuild mapping in correct order and try to auto-fill from file remaining rows ---\n rebuildBody();\n\n // Update previewShowData to blank-out rows that were consumed\n const usedInitials = new Set(previewEditData.value.body.map(b => b.initialIndex));\n previewShowData.value.body = (tableDataFromFile.value?.body || []).map(row => ({\n initialIndex: row.initialIndex,\n items: usedInitials.has(row.initialIndex) ? new Array(10).fill(null) : [...row.items]\n }));\n\n // log any headers that still have empty placeholders\n const emptyHeaders = previewEditData.value.body.filter(b => !b.items || b.items.every(it => it === null)).map(b => b.headerLabel);\n if (emptyHeaders.length) {\n console.warn(\"Headers with no matching body rows after change:\", emptyHeaders);\n }\n });\n const __returned__ = {\n emits,\n props,\n tableDataFromFile,\n selectedColumns,\n additionalColumns,\n previewShowData,\n previewEditData,\n onDrop,\n onRemove,\n handleSendMapping,\n TableEditeble: _entities_tableEditeble_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n TableFromFile: _entities_tableFromFile_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n get formatDate() {\n return _shared_utils_util__WEBPACK_IMPORTED_MODULE_10__.formatDate;\n },\n get multiSelectStyle() {\n return _shared_utils_util__WEBPACK_IMPORTED_MODULE_10__.multiSelectStyle;\n },\n toRefs: vue__WEBPACK_IMPORTED_MODULE_11__.toRefs,\n watch: vue__WEBPACK_IMPORTED_MODULE_11__.watch,\n onBeforeMount: vue__WEBPACK_IMPORTED_MODULE_11__.onBeforeMount,\n ref: vue__WEBPACK_IMPORTED_MODULE_11__.ref,\n nextTick: vue__WEBPACK_IMPORTED_MODULE_11__.nextTick\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/widgets/importSteps/fieldStep.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/houseMapping.vue?vue&type=script&setup=true&lang=js": /*!******************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/houseMapping.vue?vue&type=script&setup=true&lang=js ***! \******************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'houseMapping',\n props: {\n fileHouseName: String,\n houseId: String | Number,\n housesList: Array\n },\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const props = __props;\n const homeFromFile = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(\"\");\n const isImport = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => props.housesList, () => {\n homeFromFile.value = props.housesList.find(house => house.id == props.houseId);\n }, {\n immediate: true\n });\n const __returned__ = {\n props,\n homeFromFile,\n isImport,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/widgets/importSteps/houseMapping.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/objectStep.vue?vue&type=script&setup=true&lang=js": /*!****************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/objectStep.vue?vue&type=script&setup=true&lang=js ***! \****************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var primevue_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primevue/button */ \"./node_modules/primevue/button/button.esm.js\");\n/* harmony import */ var primevue_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primevue/message */ \"./node_modules/primevue/message/message.esm.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _houseMapping_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./houseMapping.vue */ \"./src/widgets/importSteps/houseMapping.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'objectStep',\n props: {\n houses: Array,\n title: String,\n fileHousesMapping: Array,\n isRequesting: Boolean\n },\n emits: [\"update:activeItem\", \"open:create-home\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const emits = __emit;\n const props = __props;\n const handleSubmitHouses = () => {\n emits(\"updateImport\", {\n house_name_to_id: JSON.stringify(props.fileHousesMapping),\n step: 4\n });\n };\n const {\n houses\n } = (0,vue__WEBPACK_IMPORTED_MODULE_2__.toRefs)(props);\n const __returned__ = {\n emits,\n props,\n handleSubmitHouses,\n houses,\n get Button() {\n return primevue_button__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n },\n get Message() {\n return primevue_message__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n },\n toRefs: vue__WEBPACK_IMPORTED_MODULE_2__.toRefs,\n HouseMapping: _houseMapping_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/widgets/importSteps/objectStep.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/statusStep.vue?vue&type=script&setup=true&lang=js": /*!****************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/statusStep.vue?vue&type=script&setup=true&lang=js ***! \****************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _shared_utils_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/shared/utils/util */ \"./src/shared/utils/util.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _app_store_fields__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/store/fields */ \"./src/app/store/fields.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'statusStep',\n props: {\n isRequesting: Boolean,\n statusesFromFile: Object,\n typesFromFile: Object\n },\n emits: [\"update:activeItem\", \"submit-statuses\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const props = __props;\n const fieldsStore = (0,_app_store_fields__WEBPACK_IMPORTED_MODULE_2__.useFieldsStore)();\n const emits = __emit;\n const typesOptions = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(Object.keys(_shared_utils_util__WEBPACK_IMPORTED_MODULE_0__.room_types).map(type => ({\n label: _shared_utils_util__WEBPACK_IMPORTED_MODULE_0__.room_types[type],\n value: type\n })));\n const statusOptions = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(fieldsStore.complex_status.map(status => ({\n label: status.name,\n value: status.id\n })));\n const handleSubmitStatuses = () => {\n const dynamic_fields = {};\n if (props.statusesFromFile) {\n dynamic_fields.complex_status_id = props.statusesFromFile;\n }\n if (props.typesFromFile) {\n dynamic_fields.type = props.typesFromFile;\n }\n emits(\"updateImport\", {\n step: 5,\n dynamic_fields: JSON.stringify(dynamic_fields)\n });\n };\n const findStatus = id => {\n const status = fieldsStore.complex_status.find(status => status.id == id);\n return status.name;\n };\n const __returned__ = {\n props,\n fieldsStore,\n emits,\n typesOptions,\n statusOptions,\n handleSubmitStatuses,\n findStatus,\n get room_types() {\n return _shared_utils_util__WEBPACK_IMPORTED_MODULE_0__.room_types;\n },\n ref: vue__WEBPACK_IMPORTED_MODULE_1__.ref,\n get useFieldsStore() {\n return _app_store_fields__WEBPACK_IMPORTED_MODULE_2__.useFieldsStore;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/widgets/importSteps/statusStep.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/uploadStep.vue?vue&type=script&setup=true&lang=js": /*!****************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/uploadStep.vue?vue&type=script&setup=true&lang=js ***! \****************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var primevue_tabview__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primevue/tabview */ \"./node_modules/primevue/tabview/tabview.esm.js\");\n/* harmony import */ var primevue_tabpanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primevue/tabpanel */ \"./node_modules/primevue/tabpanel/tabpanel.esm.js\");\n/* harmony import */ var _shared_UI_MyButton_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/shared/UI/MyButton.vue */ \"./src/shared/UI/MyButton.vue\");\n/* harmony import */ var _shared_UI_fileUpload_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/shared/UI/fileUpload.vue */ \"./src/shared/UI/fileUpload.vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _shared_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/shared/api */ \"./src/shared/api.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'uploadStep',\n emits: [\"update:activeItem\", \"fileAllItems\", \"done:comparison-prepared\"],\n setup(__props, {\n expose: __expose,\n emit: __emit\n }) {\n __expose();\n const file = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);\n const link = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(\"\");\n const emits = __emit;\n const fileFilter = fileAllItems => {\n emits(\"fileAllItems\", fileAllItems);\n };\n const handleUploadFile = () => {\n const bodyFormData = new FormData();\n bodyFormData.append(\"document\", file.value);\n _shared_api__WEBPACK_IMPORTED_MODULE_5__[\"default\"].createImport(bodyFormData).then(response => {\n emits('done:comparison-prepared', response.data);\n });\n };\n const nestStep = () => {\n const bodyFormData = new FormData();\n bodyFormData.append(\"import_url\", link.value);\n _shared_api__WEBPACK_IMPORTED_MODULE_5__[\"default\"].createImport(bodyFormData).then(response => {\n emits('done:comparison-prepared', response.data);\n });\n // emits(\"update:activeItem\", 1);\n };\n const __returned__ = {\n file,\n link,\n emits,\n fileFilter,\n handleUploadFile,\n nestStep,\n get TabView() {\n return primevue_tabview__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n },\n get TabPanel() {\n return primevue_tabpanel__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n },\n MyButton: _shared_UI_MyButton_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n FileUpload: _shared_UI_fileUpload_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ref: vue__WEBPACK_IMPORTED_MODULE_4__.ref,\n get api() {\n return _shared_api__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/widgets/importSteps/uploadStep.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/steps.vue?vue&type=script&setup=true&lang=js": /*!***********************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/steps.vue?vue&type=script&setup=true&lang=js ***! \***********************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'steps',\n props: {\n activeItem: Number,\n items: []\n },\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const props = __props;\n const __returned__ = {\n props\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://complexes/./src/widgets/steps.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/Loader.vue?vue&type=template&id=04a0d67a&scoped=true": /*!********************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/Loader.vue?vue&type=template&id=04a0d67a&scoped=true ***! \********************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"linear-loader-container\"\n};\nfunction render(_ctx, _cache) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, _cache[0] || (_cache[0] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"linear-loader\"\n }, null, -1 /* HOISTED */)]));\n}\n\n//# sourceURL=webpack://complexes/./src/components/Loader.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableEditeble.vue?vue&type=template&id=9783e9ce&scoped=true": /*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableEditeble.vue?vue&type=template&id=9783e9ce&scoped=true ***! \*************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _shared_assets_images_complexes_close_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/shared/assets/images/complexes/close.svg */ \"./src/shared/assets/images/complexes/close.svg\");\n\n\nconst _hoisted_1 = {\n class: \"min-w-[250px] max-w-[250px]\"\n};\nconst _hoisted_2 = [\"onDrop\"];\nconst _hoisted_3 = [\"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"table\", {\n class: \"tableEditeble flex flex-col overflow-x-scroll\",\n onDragover: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)(() => {}, [\"prevent\"]))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" @drop.prevent=\\\"(e) => emits('onDrop', e)\\\" \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"thead\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['w-max grid text-center bg-[#F2F3F3]', `grid-cols-[30px_repeat(9,_1fr)]`]),\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)(`grid-template-columns: 30px repeat(${$setup.props.data.head.length}, 1fr);`)\n }, [_cache[3] || (_cache[3] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tr\", {\n class: \"flex justify-center border border-b-0 border-grey-400\"\n }, null, -1 /* HOISTED */)), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.head, (row, indexRow) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"tr\", {\n key: indexRow,\n class: \"flex justify-center border border-b-0 border-grey-400 w-max\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"td\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(row.label), 1 /* TEXT */)]);\n }), 128 /* KEYED_FRAGMENT */))], 4 /* STYLE */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tbody\", {\n ref: \"bodyRef\",\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['min-h-[200px] min-w-full w-max grid text-center border-t border-x border-grey-400', `grid-cols-[30px_repeat(9,_1fr)]`]),\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)(`grid-template-columns: 30px repeat(${$setup.props.data.head.length}, 1fr);`)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tr\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"grid grid-cols-1 border-r border-grey-400\", [`grid-rows-[repeat(${$setup.props.data.body[0].items.length},_1fr)]`]])\n }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.body[0].items, (cell, indexCell) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"td\", {\n key: indexCell,\n class: \"border border-grey-400 flex items-center justify-center px-2\"\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(indexCell), 1 /* TEXT */);\n }), 128 /* KEYED_FRAGMENT */))], 2 /* CLASS */), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.head, (col, indexCol) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"tr\", {\n key: indexCol,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"grid grid-cols-1 min-w-[251px] w-max border-x border-grey-400\", [`grid-rows-[repeat(${col.length},_1fr)]`, $setup.props.data.body[indexCol].items[0] == null ? '' : 'edit-table-tr']]),\n style: {\n \"display\": \"flex\",\n \"position\": \"relative\",\n \"flex-direction\": \"column\",\n \"justify-content\": \"space-between\"\n },\n onDragover: _cache[0] || (_cache[0] = e => $setup.dragOverHandler(e)),\n onDrop: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)(e => $setup.dragEndHandler(e, indexCol), [\"prevent\"]),\n onDragleave: _cache[1] || (_cache[1] = e => $setup.dragLeaveHandler(e))\n }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.body[indexCol].items, (cell, indexCell) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"td\", {\n key: indexCell,\n class: \"border border-x-0 border-grey-400 flex items-center justify-center min-w-[250px] max-w-[250px] py-3\",\n style: {\n \"flex\": \"1\",\n \"overflow\": \"hidden\"\n }\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(cell) + \" \", 1 /* TEXT */), indexCell == 0 && cell ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"img\", {\n key: 0,\n onClick: $event => _ctx.$emit('onRemoveDropped', $event, indexCol, $setup.props.data.body[indexCol]),\n style: {\n \"position\": \"absolute\",\n \"right\": \"0\",\n \"top\": \"0\",\n \"cursor\": \"pointer\"\n },\n src: _shared_assets_images_complexes_close_svg__WEBPACK_IMPORTED_MODULE_1__,\n alt: \"\"\n }, null, 8 /* PROPS */, _hoisted_3)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]);\n }), 128 /* KEYED_FRAGMENT */))], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_2);\n }), 128 /* KEYED_FRAGMENT */))], 4 /* STYLE */)], 32 /* NEED_HYDRATION */);\n}\n\n//# sourceURL=webpack://complexes/./src/entities/tableEditeble.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableFromFile.vue?vue&type=template&id=6a52447f&scoped=true": /*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/entities/tableFromFile.vue?vue&type=template&id=6a52447f&scoped=true ***! \*************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"min-w-[250px] max-w-[250px]\"\n};\nconst _hoisted_2 = [\"onDragstart\", \"onDrop\"];\nconst _hoisted_3 = {\n key: 0,\n style: {\n \"position\": \"absolute\",\n \"right\": \"0\",\n \"top\": \"0\"\n },\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#acacac\",\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 1024 1024\",\n class: \"icon\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"table\", {\n class: \"tableFromFile flex flex-col overflow-x-scroll\",\n onDragover: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)(() => {}, [\"prevent\"]))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"thead\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['w-max grid text-center bg-[#F2F3F3]', `grid-cols-[30px_repeat(9,_1fr)]`]),\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)(`grid-template-columns: 30px repeat(${$setup.props.data.head.length}, 1fr);`)\n }, [_cache[3] || (_cache[3] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tr\", {\n class: \"flex justify-center border border-b-0 border-grey-400\"\n }, null, -1 /* HOISTED */)), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.head, (row, indexRow) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"tr\", {\n key: indexRow,\n class: \"flex justify-center border border-b-0 border-grey-400 w-max\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"td\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(row), 1 /* TEXT */)]);\n }), 128 /* KEYED_FRAGMENT */))], 4 /* STYLE */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tbody\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['w-max grid text-center', `grid-cols-[30px_repeat(9,_1fr)]`]),\n style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)(`grid-template-columns: 30px repeat(${$setup.props.data.head.length}, 1fr);`)\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tr\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"grid grid-cols-1\", [`grid-rows-[repeat(${$setup.props.data.body[0].items.length},_1fr)]`]])\n }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.body[0].items, (cell, indexCell) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"td\", {\n key: indexCell,\n class: \"border border-grey-400 flex items-center justify-center px-2 main-tds\"\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(indexCell), 1 /* TEXT */);\n }), 128 /* KEYED_FRAGMENT */))], 2 /* CLASS */), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.props.data.body, (col, indexCol) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"tr\", {\n key: indexCol,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"grid grid-cols-1 w-max border-x border-grey-400\", [`grid-rows-[repeat(${col.items.length},_1fr)]`, $setup.props.data.body[indexCol].items[0] == null ? '' : 'edit-table-tr']]),\n onDragstart: e => $setup.onDragStart(e, indexCol),\n onDragover: _cache[0] || (_cache[0] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)(() => {}, [\"stop\"])),\n onDragend: _cache[1] || (_cache[1] = e => $setup.dragEndHandler(e)),\n onDrop: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)(e => $setup.emits('onDrop', e, indexCol), [\"prevent\"]),\n draggable: \"true\",\n style: {\n \"display\": \"flex\",\n \"position\": \"relative\",\n \"flex-direction\": \"column\",\n \"justify-content\": \"space-between\"\n }\n }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(col.items, (cell, indexCell) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"td\", {\n key: indexCell,\n class: \"border border-x-0 border-grey-400 flex items-center justify-center min-w-[250px] max-w-[250px]\",\n style: {\n \"flex\": \"1\",\n \"overflow\": \"hidden\"\n }\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(cell) + \" \", 1 /* TEXT */), indexCell == 0 && cell ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"svg\", _hoisted_3, [...(_cache[4] || (_cache[4] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M909.3 506.3L781.7 405.6a7.23 7.23 0 0 0-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 0 0-11.3 0L405.6 242.3a7.23 7.23 0 0 0 5.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 0 0 .1-11.4z\"\n }, null, -1 /* HOISTED */)]))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]);\n }), 128 /* KEYED_FRAGMENT */))], 42 /* CLASS, PROPS, NEED_HYDRATION */, _hoisted_2);\n }), 128 /* KEYED_FRAGMENT */))], 4 /* STYLE */)], 32 /* NEED_HYDRATION */);\n}\n\n//# sourceURL=webpack://complexes/./src/entities/tableFromFile.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/pages/ImportHomes.vue?vue&type=template&id=0a71774a&scoped=true": /*!********************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/pages/ImportHomes.vue?vue&type=template&id=0a71774a&scoped=true ***! \********************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"importHome bg-white\"\n};\nconst _hoisted_2 = {\n class: \"tabContent w-full mt-7.5\"\n};\nconst _hoisted_3 = {\n class: \"typeFiles flex flex-row gap-4 items-center mt-3\"\n};\nconst _hoisted_4 = [\"href\"];\nconst _hoisted_5 = {\n style: {\n \"max-height\": \"200px\",\n \"overflow-y\": \"auto\",\n \"width\": \"100%\",\n \"padding-right\": \"8px\"\n }\n};\nconst _hoisted_6 = {\n style: {\n \"margin\": \"0\",\n \"padding-left\": \"5px\"\n }\n};\nconst _hoisted_7 = {\n style: {\n \"max-height\": \"200px\",\n \"overflow-y\": \"auto\",\n \"width\": \"100%\",\n \"padding-right\": \"8px\"\n }\n};\nconst _hoisted_8 = {\n style: {\n \"margin\": \"0\",\n \"padding-left\": \"20px\"\n }\n};\nconst _hoisted_9 = {\n class: \"typeFiles flex flex-row gap-4 items-center mt-3\"\n};\nconst _hoisted_10 = [\"href\"];\nconst _hoisted_11 = {\n key: 1,\n class: \"loadingScreen\"\n};\nconst _hoisted_12 = {\n class: \"loadingScreen__content\"\n};\nconst _hoisted_13 = {\n style: {\n \"width\": \"320px\",\n \"margin-top\": \"10px\"\n }\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Message = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Message\");\n const _component_MyButton = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"MyButton\");\n const _component_Toast = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Toast\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[24] || (_cache[24] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"importHome__title\"\n }, \"Импорт помещений\", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"Steps\"], {\n \"active-item\": $setup.activeItem,\n items: $setup.stepItems\n }, null, 8 /* PROPS */, [\"active-item\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [!$setup.uploadedFileInfo.is_processing ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, [$setup.cancelReq ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Message, {\n key: 0,\n closable: false,\n severity: \"error\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [_cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"strong\", null, \" Ваш файл не соответствует нашему шаблону \", -1 /* HOISTED */)), _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"max-w-[600px] text-sm text-black\"\n }, \" Пожалуйста, пользуйтесь нашим шаблоном \", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"a\", {\n href: `${$setup.api.URL}/complexes/files/Пример_страницы_для_загрузки_Объектов_в_Дом.xlsx`,\n download: \"\",\n class: \"typeFile flex flex-row items-center gap-1 text-blue\"\n }, _cache[8] || (_cache[8] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M15 6.705C14.9922 6.6361 14.9771 6.56822 14.955 6.5025V6.435C14.9189 6.35788 14.8708 6.287 14.8125 6.225L10.3125 1.725C10.2505 1.66666 10.1796 1.61856 10.1025 1.5825H10.0275C9.95457 1.5435 9.8762 1.51569 9.795 1.5H5.25C4.65326 1.5 4.08097 1.73705 3.65901 2.15901C3.23705 2.58097 3 3.15326 3 3.75V14.25C3 14.8467 3.23705 15.419 3.65901 15.841C4.08097 16.2629 4.65326 16.5 5.25 16.5H12.75C13.3467 16.5 13.919 16.2629 14.341 15.841C14.7629 15.419 15 14.8467 15 14.25V6.75C15 6.75 15 6.75 15 6.705ZM10.5 4.0575L12.4425 6H11.25C11.0511 6 10.8603 5.92098 10.7197 5.78033C10.579 5.63968 10.5 5.44891 10.5 5.25V4.0575ZM13.5 14.25C13.5 14.4489 13.421 14.6397 13.2803 14.7803C13.1397 14.921 12.9489 15 12.75 15H5.25C5.05109 15 4.86032 14.921 4.71967 14.7803C4.57902 14.6397 4.5 14.4489 4.5 14.25V3.75C4.5 3.55109 4.57902 3.36032 4.71967 3.21967C4.86032 3.07902 5.05109 3 5.25 3H9V5.25C9 5.84674 9.23705 6.41903 9.65901 6.84099C10.081 7.26295 10.6533 7.5 11.25 7.5H13.5V14.25ZM9.9675 10.7175L9.75 10.9425V9C9.75 8.80109 9.67098 8.61032 9.53033 8.46967C9.38968 8.32902 9.19891 8.25 9 8.25C8.80109 8.25 8.61032 8.32902 8.46967 8.46967C8.32902 8.61032 8.25 8.80109 8.25 9V10.9425L8.0325 10.7175C7.89127 10.5763 7.69973 10.4969 7.5 10.4969C7.30027 10.4969 7.10873 10.5763 6.9675 10.7175C6.82627 10.8587 6.74693 11.0503 6.74693 11.25C6.74693 11.4497 6.82627 11.6413 6.9675 11.7825L8.4675 13.2825C8.53883 13.3508 8.62294 13.4043 8.715 13.44C8.80478 13.4797 8.90185 13.5002 9 13.5002C9.09815 13.5002 9.19522 13.4797 9.285 13.44C9.37706 13.4043 9.46117 13.3508 9.5325 13.2825L11.0325 11.7825C11.1737 11.6413 11.2531 11.4497 11.2531 11.25C11.2531 11.0503 11.1737 10.8587 11.0325 10.7175C10.8913 10.5763 10.6997 10.4969 10.5 10.4969C10.3003 10.4969 10.1087 10.5763 9.9675 10.7175Z\",\n fill: \"#3A8EFA\"\n })], -1 /* HOISTED */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" EXCEL \")]), 8 /* PROPS */, _hoisted_4)])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.requiredErrors.length && $setup.errorVisible && $setup.createData ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Message, {\n key: 1,\n closable: false,\n severity: \"error\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Обнаружены ошибки в файле \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.formatDate($setup.createData)) + \" Обязательные поля заполнены неверно. Список ошибок: \", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"ul\", _hoisted_6, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.requiredErrors, (error, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n key: index\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(error) + \". \", 1 /* TEXT */);\n }), 128 /* KEYED_FRAGMENT */))]), _cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Пожалуйста, исправьте файл и перезагрузите. \"))])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$setup.requiredErrors.length && $setup.optionalErrors.length && $setup.errorVisible && $setup.createData ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Message, {\n key: 2,\n closable: false,\n severity: \"warn\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"ul\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ваш файл был обработан \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.formatDate($setup.createData)) + \". Обязательные поля заполнены корректно, но обнаружены проблемы с необязательными полями: \", 1 /* TEXT */), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.optionalErrors, (error, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n key: index\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(error) + \". \", 1 /* TEXT */);\n }), 128 /* KEYED_FRAGMENT */)), _cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Вы можете продолжить сопоставление полей, но рекомендуется исправить файл. \"))])])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$setup.rekShow ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Message, {\n key: 3,\n severity: \"warn\",\n sticky: \"\",\n closable: false,\n class: \"w-full\"\n }, {\n messageicon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[13] || (_cache[13] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"mr-4\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M8.99966 8.25C8.80074 8.25 8.60998 8.32902 8.46933 8.46967C8.32867 8.61032 8.24966 8.80109 8.24966 9V11.25C8.24966 11.4489 8.32867 11.6397 8.46933 11.7803C8.60998 11.921 8.80074 12 8.99966 12C9.19857 12 9.38933 11.921 9.52999 11.7803C9.67064 11.6397 9.74965 11.4489 9.74965 11.25V9C9.74965 8.80109 9.67064 8.61032 9.52999 8.46967C9.38933 8.32902 9.19857 8.25 8.99966 8.25ZM8.99966 6C8.85132 6 8.70631 6.04399 8.58298 6.1264C8.45964 6.20881 8.36351 6.32594 8.30675 6.46299C8.24998 6.60003 8.23513 6.75083 8.26407 6.89632C8.293 7.0418 8.36444 7.17544 8.46933 7.28033C8.57421 7.38522 8.70785 7.45665 8.85334 7.48559C8.99882 7.51453 9.14962 7.49968 9.28667 7.44291C9.42371 7.38614 9.54085 7.29001 9.62326 7.16668C9.70567 7.04334 9.74965 6.89834 9.74965 6.75C9.74965 6.55109 9.67064 6.36032 9.52999 6.21967C9.38933 6.07902 9.19857 6 8.99966 6ZM8.99966 1.5C8.01474 1.5 7.03947 1.69399 6.12953 2.0709C5.21959 2.44781 4.39279 3.00026 3.69635 3.6967C2.28983 5.10322 1.49966 7.01088 1.49966 9C1.4931 10.7319 2.09275 12.4114 3.19466 13.7475L1.69466 15.2475C1.59059 15.353 1.52009 15.4869 1.49206 15.6324C1.46403 15.7779 1.47972 15.9284 1.53716 16.065C1.59945 16.1999 1.70043 16.3133 1.82729 16.3908C1.95415 16.4682 2.10116 16.5063 2.24966 16.5H8.99966C10.9888 16.5 12.8964 15.7098 14.303 14.3033C15.7095 12.8968 16.4997 10.9891 16.4997 9C16.4997 7.01088 15.7095 5.10322 14.303 3.6967C12.8964 2.29018 10.9888 1.5 8.99966 1.5ZM8.99966 15H4.05716L4.75466 14.3025C4.82552 14.233 4.8819 14.1502 4.92052 14.0588C4.95914 13.9674 4.97924 13.8692 4.97966 13.77C4.97684 13.5722 4.89597 13.3835 4.75466 13.245C3.77259 12.264 3.16104 10.9729 3.02417 9.59159C2.88731 8.21029 3.23361 6.82425 4.00408 5.66964C4.77454 4.51503 5.9215 3.66327 7.24954 3.25948C8.57758 2.85569 10.0045 2.92485 11.2873 3.45519C12.5701 3.98552 13.6293 4.94421 14.2845 6.16792C14.9397 7.39163 15.1503 8.80466 14.8805 10.1663C14.6107 11.5279 13.8771 12.7538 12.8048 13.6352C11.7325 14.5166 10.3877 14.9989 8.99966 15Z\",\n fill: \"#E3C26E\"\n })], -1 /* HOISTED */)])),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [_cache[15] || (_cache[15] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"max-w-[600px] text-sm text-black\"\n }, \" Загрузите информацию о ваших помещениях в формате таблицы или фида. Чтобы ускорить загрузку, скачайте шаблон и перенесите в него данные о помещениях: \", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"a\", {\n href: `${$setup.api.URL}/complexes/files/Пример_страницы_для_загрузки_Объектов_в_Дом.xlsx`,\n download: \"\",\n class: \"typeFile flex flex-row items-center gap-1 text-blue\"\n }, _cache[14] || (_cache[14] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M15 6.705C14.9922 6.6361 14.9771 6.56822 14.955 6.5025V6.435C14.9189 6.35788 14.8708 6.287 14.8125 6.225L10.3125 1.725C10.2505 1.66666 10.1796 1.61856 10.1025 1.5825H10.0275C9.95457 1.5435 9.8762 1.51569 9.795 1.5H5.25C4.65326 1.5 4.08097 1.73705 3.65901 2.15901C3.23705 2.58097 3 3.15326 3 3.75V14.25C3 14.8467 3.23705 15.419 3.65901 15.841C4.08097 16.2629 4.65326 16.5 5.25 16.5H12.75C13.3467 16.5 13.919 16.2629 14.341 15.841C14.7629 15.419 15 14.8467 15 14.25V6.75C15 6.75 15 6.75 15 6.705ZM10.5 4.0575L12.4425 6H11.25C11.0511 6 10.8603 5.92098 10.7197 5.78033C10.579 5.63968 10.5 5.44891 10.5 5.25V4.0575ZM13.5 14.25C13.5 14.4489 13.421 14.6397 13.2803 14.7803C13.1397 14.921 12.9489 15 12.75 15H5.25C5.05109 15 4.86032 14.921 4.71967 14.7803C4.57902 14.6397 4.5 14.4489 4.5 14.25V3.75C4.5 3.55109 4.57902 3.36032 4.71967 3.21967C4.86032 3.07902 5.05109 3 5.25 3H9V5.25C9 5.84674 9.23705 6.41903 9.65901 6.84099C10.081 7.26295 10.6533 7.5 11.25 7.5H13.5V14.25ZM9.9675 10.7175L9.75 10.9425V9C9.75 8.80109 9.67098 8.61032 9.53033 8.46967C9.38968 8.32902 9.19891 8.25 9 8.25C8.80109 8.25 8.61032 8.32902 8.46967 8.46967C8.32902 8.61032 8.25 8.80109 8.25 9V10.9425L8.0325 10.7175C7.89127 10.5763 7.69973 10.4969 7.5 10.4969C7.30027 10.4969 7.10873 10.5763 6.9675 10.7175C6.82627 10.8587 6.74693 11.0503 6.74693 11.25C6.74693 11.4497 6.82627 11.6413 6.9675 11.7825L8.4675 13.2825C8.53883 13.3508 8.62294 13.4043 8.715 13.44C8.80478 13.4797 8.90185 13.5002 9 13.5002C9.09815 13.5002 9.19522 13.4797 9.285 13.44C9.37706 13.4043 9.46117 13.3508 9.5325 13.2825L11.0325 11.7825C11.1737 11.6413 11.2531 11.4497 11.2531 11.25C11.2531 11.0503 11.1737 10.8587 11.0325 10.7175C10.8913 10.5763 10.6997 10.4969 10.5 10.4969C10.3003 10.4969 10.1087 10.5763 9.9675 10.7175Z\",\n fill: \"#3A8EFA\"\n })], -1 /* HOISTED */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" EXCEL \")]), 8 /* PROPS */, _hoisted_10)])]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.NoErrors && $setup.createData ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Message, {\n key: 4,\n closable: false,\n severity: \"success\"\n }, {\n messageicon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[16] || (_cache[16] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"11\",\n height: \"8\",\n viewBox: \"0 0 11 8\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"mr-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M10.2989 0.388749C10.2292 0.318453 10.1463 0.262657 10.0549 0.224581C9.96348 0.186504 9.86545 0.166901 9.76644 0.166901C9.66743 0.166901 9.5694 0.186504 9.47801 0.224581C9.38662 0.262657 9.30367 0.318453 9.23394 0.388749L3.64644 5.98375L1.29894 3.62875C1.22655 3.55882 1.14109 3.50384 1.04745 3.46693C0.953812 3.43003 0.853819 3.41193 0.753184 3.41367C0.652548 3.41541 0.553241 3.43696 0.460932 3.47708C0.368623 3.5172 0.285121 3.57511 0.215192 3.6475C0.145263 3.71989 0.0902774 3.80535 0.0533744 3.89899C0.0164714 3.99263 -0.00162641 4.09262 0.000114689 4.19326C0.00185579 4.29389 0.0234017 4.3932 0.0635218 4.48551C0.103642 4.57782 0.161551 4.66132 0.233942 4.73125L3.11394 7.61125C3.18366 7.68155 3.26662 7.73734 3.35801 7.77542C3.4494 7.8135 3.54743 7.8331 3.64644 7.8331C3.74545 7.8331 3.84348 7.8135 3.93488 7.77542C4.02627 7.73734 4.10922 7.68155 4.17894 7.61125L10.2989 1.49125C10.3751 1.42102 10.4358 1.33578 10.4774 1.2409C10.5189 1.14603 10.5404 1.04358 10.5404 0.94C10.5404 0.836423 10.5189 0.733969 10.4774 0.639095C10.4358 0.54422 10.3751 0.458981 10.2989 0.388749Z\",\n fill: \"#4CAF50\"\n })], -1 /* HOISTED */)])),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"strong\", null, \" Ваш файл был успешно обработан и распознан \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.formatDate($setup.createData)) + \". \", 1 /* TEXT */), _cache[17] || (_cache[17] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"br\", null, null, -1 /* HOISTED */)), _cache[18] || (_cache[18] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Все поля заполнены корректно. Перейдите к настройке полей таблицы. \"))]),\n _: 1 /* STABLE */\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.activeItem === 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"UploadStep\"], {\n key: 5,\n isRequesting: $setup.isRequesting,\n onFileAllItems: $setup.fileAllItemsFiltering,\n \"onUpdate:activeItem\": _cache[0] || (_cache[0] = $event => $setup.activeItem = $event),\n \"onDone:comparisonPrepared\": $setup.handlePrepared,\n onUpdateImport: $setup.updateImport\n }, null, 8 /* PROPS */, [\"isRequesting\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.activeItem === 2 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"FieldStep\"], {\n key: 6,\n isRequesting: $setup.isRequesting,\n \"onUpdate:activeItem\": _cache[1] || (_cache[1] = $event => $setup.activeItem = $event),\n onReloadFile: $setup.reloadFile,\n onUpdateImport: $setup.updateImport,\n data: $setup.uploadedFileInfo\n }, null, 8 /* PROPS */, [\"isRequesting\", \"data\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.activeItem === 3 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"ObjectStep\"], {\n key: 7,\n isRequesting: $setup.isRequesting,\n \"onUpdate:activeItem\": _cache[2] || (_cache[2] = $event => $setup.activeItem = $event),\n onUpdateImport: $setup.updateImport,\n \"onOpen:createHome\": _cache[3] || (_cache[3] = key => {\n $setup.isCreateHomeOpen = true;\n $setup.formAddHome.open();\n $setup.keyToUseWhileAddingHouse = key;\n }),\n houses: $setup.housesList,\n fileHousesMapping: $setup.uploadedFileInfo.house_name_to_id,\n onSetHouse: _cache[4] || (_cache[4] = $event => $setup.uploadedFileInfo.house_name_to_id = $event)\n }, null, 8 /* PROPS */, [\"isRequesting\", \"houses\", \"fileHousesMapping\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.activeItem === 4 && $setup.uploadedFileInfo.dynamic_fields ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"StatusStep\"], {\n key: 8,\n isRequesting: $setup.isRequesting,\n \"onUpdate:activeItem\": _cache[5] || (_cache[5] = $event => $setup.activeItem = $event),\n onUpdateImport: $setup.updateImport,\n statusesFromFile: $setup.uploadedFileInfo.dynamic_fields.complex_status_id,\n typesFromFile: $setup.uploadedFileInfo.dynamic_fields.type\n }, null, 8 /* PROPS */, [\"isRequesting\", \"statusesFromFile\", \"typesFromFile\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_12, [_cache[19] || (_cache[19] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"loadingScreen__title\"\n }, \" Вы загрузили файл. \", -1 /* HOISTED */)), _cache[20] || (_cache[20] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"loadingScreen__text max-w-[318px]\"\n }, \" Идет обработка и автоматическое распознавание файла. Процесс может занимать от 1 до 10 минут. \", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"Loader\"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Message, {\n closable: false,\n severity: \"info\",\n pt: {\n root: {\n class: ['!bg-blue-100 !border-blue-500']\n }\n }\n }, {\n messageicon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[21] || (_cache[21] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"mr-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M8.99966 8.25C8.80074 8.25 8.60998 8.32902 8.46933 8.46967C8.32867 8.61032 8.24966 8.80109 8.24966 9V11.25C8.24966 11.4489 8.32867 11.6397 8.46933 11.7803C8.60998 11.921 8.80074 12 8.99966 12C9.19857 12 9.38933 11.921 9.52999 11.7803C9.67064 11.6397 9.74965 11.4489 9.74965 11.25V9C9.74965 8.80109 9.67064 8.61032 9.52999 8.46967C9.38933 8.32902 9.19857 8.25 8.99966 8.25ZM8.99966 6C8.85132 6 8.70631 6.04399 8.58298 6.1264C8.45964 6.20881 8.36351 6.32594 8.30675 6.46299C8.24998 6.60003 8.23513 6.75083 8.26407 6.89632C8.293 7.0418 8.36444 7.17544 8.46933 7.28033C8.57421 7.38522 8.70785 7.45665 8.85334 7.48559C8.99882 7.51453 9.14962 7.49968 9.28667 7.44291C9.42371 7.38614 9.54085 7.29001 9.62326 7.16668C9.70567 7.04334 9.74965 6.89834 9.74965 6.75C9.74965 6.55109 9.67064 6.36032 9.52999 6.21967C9.38933 6.07902 9.19857 6 8.99966 6ZM8.99966 1.5C8.01474 1.5 7.03947 1.69399 6.12953 2.0709C5.21959 2.44781 4.39279 3.00026 3.69635 3.6967C2.28983 5.10322 1.49966 7.01088 1.49966 9C1.4931 10.7319 2.09275 12.4114 3.19466 13.7475L1.69466 15.2475C1.59059 15.353 1.52009 15.4869 1.49206 15.6324C1.46403 15.7779 1.47972 15.9284 1.53716 16.065C1.59945 16.1999 1.70043 16.3133 1.82729 16.3908C1.95415 16.4682 2.10116 16.5063 2.24966 16.5H8.99966C10.9888 16.5 12.8964 15.7098 14.303 14.3033C15.7095 12.8968 16.4997 10.9891 16.4997 9C16.4997 7.01088 15.7095 5.10322 14.303 3.6967C12.8964 2.29018 10.9888 1.5 8.99966 1.5ZM8.99966 15H4.05716L4.75466 14.3025C4.82552 14.233 4.8819 14.1502 4.92052 14.0588C4.95914 13.9674 4.97924 13.8692 4.97966 13.77C4.97684 13.5722 4.89597 13.3835 4.75466 13.245C3.77259 12.264 3.16104 10.9729 3.02417 9.59159C2.88731 8.21029 3.23361 6.82425 4.00408 5.66964C4.77454 4.51503 5.9215 3.66327 7.24954 3.25948C8.57758 2.85569 10.0045 2.92485 11.2873 3.45519C12.5701 3.98552 13.6293 4.94421 14.2845 6.16792C14.9397 7.39163 15.1503 8.80466 14.8805 10.1663C14.6107 11.5279 13.8771 12.7538 12.8048 13.6352C11.7325 14.5166 10.3877 14.9989 8.99966 15Z\",\n fill: \"#3A8EFA\"\n })], -1 /* HOISTED */)])),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[22] || (_cache[22] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Смотрите пошаговые инструкции по созданию шахматки в Базе знаний. Клиентская поддержка: 8 800 201 89 61 (бесплатно из России). \")])),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_MyButton, {\n theme: 'green',\n onClick: _cache[6] || (_cache[6] = $event => _ctx.emits('update:activeItem', 0))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[23] || (_cache[23] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Прервать и загрузить другой файл\")])),\n _: 1 /* STABLE */\n })]))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"FormAddHome\"], {\n isOpen: $setup.isCreateHomeOpen,\n ref: \"formAddHome\",\n onCloseModel: _cache[7] || (_cache[7] = $event => $setup.isCreateHomeOpen = !$setup.isCreateHomeOpen),\n onAdd_house: $setup.add_house\n }, null, 8 /* PROPS */, [\"isOpen\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Toast)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://complexes/./src/pages/ImportHomes.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/fileUpload.vue?vue&type=template&id=8be62db2&scoped=true": /*!***********************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/fileUpload.vue?vue&type=template&id=8be62db2&scoped=true ***! \***********************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = {\n key: 0,\n class: \"filePreview\"\n};\nconst _hoisted_2 = {\n class: \"file\"\n};\nconst _hoisted_3 = {\n class: \"file__name\"\n};\nconst _hoisted_4 = {\n key: 1,\n for: \"fileInput\",\n class: \"label\"\n};\nconst _hoisted_5 = {\n key: 0\n};\nconst _hoisted_6 = {\n key: 1,\n class: \"flex flex-col justify-center items-center text-grey-900 gap-2 text-sm\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n class: \"fileUpload\",\n onDragover: $setup.dragover,\n onDragleave: $setup.dragleave,\n onDrop: _cache[2] || (_cache[2] = e => $setup.drop(e))\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"hidden\",\n type: \"file\",\n id: \"fileInput\",\n name: \"file\",\n ref: \"fileInput\",\n onChange: _cache[0] || (_cache[0] = e => $setup.onChange()),\n accept: \".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\n }, null, 544 /* NEED_HYDRATION, NEED_PATCH */), $setup.file ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"file__delete\",\n onClick: _cache[1] || (_cache[1] = $event => $setup.deleteFile())\n }, _cache[3] || (_cache[3] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 10 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M6.05745 4.99999L9.28245 1.78249C9.42368 1.64126 9.50302 1.44971 9.50302 1.24999C9.50302 1.05026 9.42368 0.858714 9.28245 0.717487C9.14123 0.576259 8.94968 0.496918 8.74995 0.496918C8.55023 0.496918 8.35868 0.576259 8.21745 0.717487L4.99995 3.94249L1.78245 0.717487C1.64123 0.576259 1.44968 0.496918 1.24995 0.496918C1.05023 0.496918 0.858682 0.576259 0.717454 0.717487C0.576226 0.858714 0.496885 1.05026 0.496885 1.24999C0.496885 1.44971 0.576226 1.64126 0.717454 1.78249L3.94245 4.99999L0.717454 8.21749C0.647158 8.28721 0.591362 8.37016 0.553286 8.46155C0.515209 8.55295 0.495605 8.65098 0.495605 8.74999C0.495605 8.849 0.515209 8.94703 0.553286 9.03842C0.591362 9.12981 0.647158 9.21276 0.717454 9.28249C0.787176 9.35278 0.870127 9.40858 0.961522 9.44666C1.05292 9.48473 1.15095 9.50434 1.24995 9.50434C1.34896 9.50434 1.44699 9.48473 1.53839 9.44666C1.62978 9.40858 1.71273 9.35278 1.78245 9.28249L4.99995 6.05749L8.21745 9.28249C8.28718 9.35278 8.37013 9.40858 8.46152 9.44666C8.55292 9.48473 8.65095 9.50434 8.74995 9.50434C8.84896 9.50434 8.94699 9.48473 9.03839 9.44666C9.12978 9.40858 9.21273 9.35278 9.28245 9.28249C9.35275 9.21276 9.40855 9.12981 9.44662 9.03842C9.4847 8.94703 9.5043 8.849 9.5043 8.74999C9.5043 8.65098 9.4847 8.55295 9.44662 8.46155C9.40855 8.37016 9.35275 8.28721 9.28245 8.21749L6.05745 4.99999Z\",\n fill: \"#666666\"\n })], -1 /* HOISTED */)])), _cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"file__icon\"\n }, null, -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.file ? $setup.file.name : \"\"), 1 /* TEXT */)])])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"label\", _hoisted_4, [$setup.isDragging ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_5, \"Отпустите, чтобы удалить файлы.\")) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_6, _cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M8.71 7.71L11 5.41V15C11 15.2652 11.1054 15.5196 11.2929 15.7071C11.4804 15.8946 11.7348 16 12 16C12.2652 16 12.5196 15.8946 12.7071 15.7071C12.8946 15.5196 13 15.2652 13 15V5.41L15.29 7.71C15.383 7.80373 15.4936 7.87813 15.6154 7.92889C15.7373 7.97966 15.868 8.0058 16 8.0058C16.132 8.0058 16.2627 7.97966 16.3846 7.92889C16.5064 7.87813 16.617 7.80373 16.71 7.71C16.8037 7.61704 16.8781 7.50644 16.9289 7.38458C16.9797 7.26272 17.0058 7.13202 17.0058 7C17.0058 6.86799 16.9797 6.73729 16.9289 6.61543C16.8781 6.49357 16.8037 6.38297 16.71 6.29L12.71 2.29C12.6149 2.19896 12.5028 2.1276 12.38 2.08C12.1365 1.97999 11.8635 1.97999 11.62 2.08C11.4973 2.1276 11.3851 2.19896 11.29 2.29L7.29 6.29C7.19676 6.38324 7.1228 6.49393 7.07234 6.61575C7.02188 6.73758 6.99591 6.86814 6.99591 7C6.99591 7.13186 7.02188 7.26243 7.07234 7.38425C7.1228 7.50607 7.19676 7.61677 7.29 7.71C7.38324 7.80324 7.49393 7.8772 7.61575 7.92766C7.73757 7.97812 7.86814 8.00409 8 8.00409C8.13186 8.00409 8.26243 7.97812 8.38425 7.92766C8.50607 7.8772 8.61676 7.80324 8.71 7.71ZM21 12C20.7348 12 20.4804 12.1054 20.2929 12.2929C20.1054 12.4804 20 12.7348 20 13V19C20 19.2652 19.8946 19.5196 19.7071 19.7071C19.5196 19.8946 19.2652 20 19 20H5C4.73478 20 4.48043 19.8946 4.29289 19.7071C4.10536 19.5196 4 19.2652 4 19V13C4 12.7348 3.89464 12.4804 3.70711 12.2929C3.51957 12.1054 3.26522 12 3 12C2.73478 12 2.48043 12.1054 2.29289 12.2929C2.10536 12.4804 2 12.7348 2 13V19C2 19.7957 2.31607 20.5587 2.87868 21.1213C3.44129 21.6839 4.20435 22 5 22H19C19.7957 22 20.5587 21.6839 21.1213 21.1213C21.6839 20.5587 22 19.7957 22 19V13C22 12.7348 21.8946 12.4804 21.7071 12.2929C21.5196 12.1054 21.2652 12 21 12Z\",\n fill: \"#4CAF50\"\n })], -1 /* HOISTED */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"strong\", {\n class: \"text-black text-base\"\n }, \"Нажмите на эту область или перенесите в нее файл.\", -1 /* HOISTED */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Допустимые расширения файла: .xls, .xlsx, .csv, .xml \")])))]))], 32 /* NEED_HYDRATION */);\n}\n\n//# sourceURL=webpack://complexes/./src/shared/UI/fileUpload.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/modalLayout.vue?vue&type=template&id=704a8f1d&scoped=true": /*!************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/shared/UI/modalLayout.vue?vue&type=template&id=704a8f1d&scoped=true ***! \************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"modalWindow\",\n ref: \"modalWindowEl\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"warning_msg\"\n};\nconst _hoisted_3 = {\n class: \"modalWindow__title\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modalWindow__wrapper\", $props.wrapperClass])\n }, [$setup.has_restricted_access ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, \" Вы не сможете добавить комплекс, так как у вас не оплачен тариф \")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.props.title), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"modalWindow__close\",\n onClick: _cache[0] || (_cache[0] = $event => _ctx.$emit('closeModel'))\n }, _cache[1] || (_cache[1] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M0.93511 18C0.698006 18 0.460901 17.9099 0.280756 17.7284C-0.0808901 17.3667 -0.0808901 16.7804 0.280756 16.4187L16.4283 0.271235C16.7899 -0.0904116 17.3762 -0.0904116 17.7379 0.271235C18.0995 0.632881 18.0995 1.2192 17.7379 1.58107L1.59059 17.7284C1.40909 17.9087 1.17199 18 0.93511 18Z\",\n fill: \"#757579\"\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M17.0838 18C16.8466 18 16.6098 17.9099 16.4294 17.7284L0.280756 1.58107C-0.0808901 1.2192 -0.0808901 0.632881 0.280756 0.271235C0.642403 -0.0904116 1.22872 -0.0904116 1.59059 0.271235L17.7379 16.4187C18.0995 16.7804 18.0995 17.3667 17.7379 17.7284C17.5564 17.9087 17.3195 18 17.0838 18Z\",\n fill: \"#757579\"\n })], -1 /* HOISTED */)])), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\", {}, undefined, true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"formBtns\", {}, undefined, true)], 2 /* CLASS */)], 512 /* NEED_PATCH */);\n}\n\n//# sourceURL=webpack://complexes/./src/shared/UI/modalLayout.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D"); /***/ }), /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/fieldStep.vue?vue&type=template&id=31c386b0&scoped=true": /*!********************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/widgets/importSteps/fieldStep.vue?vue&type=template&id=31c386b0&scoped=true ***! \********************************************************************************************************************************************************************************************************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"fieldStep\"\n};\nconst _hoisted_2 = {\n class: \"fieldStep__content flex flex-col\"\n};\nconst _hoisted_3 = {\n class: \"fieldStep__tables my-7.5\"\n};\nconst _hoisted_4 = {\n class: \"table__title mb-7.5 text-lg flex justify-between\",\n style: {\n \"align-items\": \"center\"\n }\n};\nconst _hoisted_5 = {\n class: \"fieldStep__btns flex flex-row gap-x-3 mt-7.5\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Message = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Message\");\n const _component_MultiSelect = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"MultiSelect\");\n const _component_Button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Button\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [_cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"fieldStep__title text-xl my-7.5\"\n }, \"Сопоставление полей\", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Message, {\n closable: false,\n severity: \"info\",\n pt: {\n root: {\n class: ['!bg-blue-100 !border-blue-500']\n }\n }\n }, {\n messageicon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[4] || (_cache[4] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"mr-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M8.99966 8.25C8.80074 8.25 8.60998 8.32902 8.46933 8.46967C8.32867 8.61032 8.24966 8.80109 8.24966 9V11.25C8.24966 11.4489 8.32867 11.6397 8.46933 11.7803C8.60998 11.921 8.80074 12 8.99966 12C9.19857 12 9.38933 11.921 9.52999 11.7803C9.67064 11.6397 9.74965 11.4489 9.74965 11.25V9C9.74965 8.80109 9.67064 8.61032 9.52999 8.46967C9.38933 8.32902 9.19857 8.25 8.99966 8.25ZM8.99966 6C8.85132 6 8.70631 6.04399 8.58298 6.1264C8.45964 6.20881 8.36351 6.32594 8.30675 6.46299C8.24998 6.60003 8.23513 6.75083 8.26407 6.89632C8.293 7.0418 8.36444 7.17544 8.46933 7.28033C8.57421 7.38522 8.70785 7.45665 8.85334 7.48559C8.99882 7.51453 9.14962 7.49968 9.28667 7.44291C9.42371 7.38614 9.54085 7.29001 9.62326 7.16668C9.70567 7.04334 9.74965 6.89834 9.74965 6.75C9.74965 6.55109 9.67064 6.36032 9.52999 6.21967C9.38933 6.07902 9.19857 6 8.99966 6ZM8.99966 1.5C8.01474 1.5 7.03947 1.69399 6.12953 2.0709C5.21959 2.44781 4.39279 3.00026 3.69635 3.6967C2.28983 5.10322 1.49966 7.01088 1.49966 9C1.4931 10.7319 2.09275 12.4114 3.19466 13.7475L1.69466 15.2475C1.59059 15.353 1.52009 15.4869 1.49206 15.6324C1.46403 15.7779 1.47972 15.9284 1.53716 16.065C1.59945 16.1999 1.70043 16.3133 1.82729 16.3908C1.95415 16.4682 2.10116 16.5063 2.24966 16.5H8.99966C10.9888 16.5 12.8964 15.7098 14.303 14.3033C15.7095 12.8968 16.4997 10.9891 16.4997 9C16.4997 7.01088 15.7095 5.10322 14.303 3.6967C12.8964 2.29018 10.9888 1.5 8.99966 1.5ZM8.99966 15H4.05716L4.75466 14.3025C4.82552 14.233 4.8819 14.1502 4.92052 14.0588C4.95914 13.9674 4.97924 13.8692 4.97966 13.77C4.97684 13.5722 4.89597 13.3835 4.75466 13.245C3.77259 12.264 3.16104 10.9729 3.02417 9.59159C2.88731 8.21029 3.23361 6.82425 4.00408 5.66964C4.77454 4.51503 5.9215 3.66327 7.24954 3.25948C8.57758 2.85569 10.0045 2.92485 11.2873 3.45519C12.5701 3.98552 13.6293 4.94421 14.2845 6.16792C14.9397 7.39163 15.1503 8.80466 14.8805 10.1663C14.6107 11.5279 13.8771 12.7538 12.8048 13.6352C11.7325 14.5166 10.3877 14.9989 8.99966 15Z\",\n fill: \"#3A8EFA\"\n })], -1 /* HOISTED */)])),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Переместите колонки из верхней таблицы в соответствующие колонки шаблона, расположенного ниже. Желтым цветом отмечены колонки, обязательные для заполнения. \")])),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: \"table__title mb-7.5 text-lg\"\n }, \"Предпросмотр загруженного файла\", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"TableFromFile\"], {\n data: $setup.previewShowData,\n class: \"mb-10\",\n onOnDrop: _cache[0] || (_cache[0] = (e, index) => $setup.onDrop(e, index))\n }, null, 8 /* PROPS */, [\"data\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", null, \"Шаблон в системе JoyWork\", -1 /* HOISTED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_MultiSelect, {\n pt: $setup.multiSelectStyle,\n id: \"additional_columns\",\n modelValue: $setup.selectedColumns,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.selectedColumns = $event),\n options: $setup.additionalColumns,\n emptyFilterMessage: \"Ничего не найдено\",\n filter: \"\",\n optionLabel: \"label\",\n optionValue: \"value\",\n placeholder: \"Выбрано: 0\",\n selectedItemsLabel: \"Выбрано: {0}\",\n maxSelectedLabels: 0,\n class: \"md:w-20rem select-col\"\n }, null, 8 /* PROPS */, [\"pt\", \"modelValue\", \"options\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"TableEditeble\"], {\n data: $setup.previewEditData,\n onOnDrop: _cache[2] || (_cache[2] = (e, index) => $setup.onDrop(e, index)),\n onOnRemoveDropped: $setup.onRemove\n }, null, 8 /* PROPS */, [\"data\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Message, {\n closable: false,\n severity: \"info\",\n pt: {\n root: {\n class: ['!bg-blue-100 !border-blue-500']\n }\n }\n }, {\n messageicon: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[8] || (_cache[8] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"svg\", {\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"mr-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M8.99966 8.25C8.80074 8.25 8.60998 8.32902 8.46933 8.46967C8.32867 8.61032 8.24966 8.80109 8.24966 9V11.25C8.24966 11.4489 8.32867 11.6397 8.46933 11.7803C8.60998 11.921 8.80074 12 8.99966 12C9.19857 12 9.38933 11.921 9.52999 11.7803C9.67064 11.6397 9.74965 11.4489 9.74965 11.25V9C9.74965 8.80109 9.67064 8.61032 9.52999 8.46967C9.38933 8.32902 9.19857 8.25 8.99966 8.25ZM8.99966 6C8.85132 6 8.70631 6.04399 8.58298 6.1264C8.45964 6.20881 8.36351 6.32594 8.30675 6.46299C8.24998 6.60003 8.23513 6.75083 8.26407 6.89632C8.293 7.0418 8.36444 7.17544 8.46933 7.28033C8.57421 7.38522 8.70785 7.45665 8.85334 7.48559C8.99882 7.51453 9.14962 7.49968 9.28667 7.44291C9.42371 7.38614 9.54085 7.29001 9.62326 7.16668C9.70567 7.04334 9.74965 6.89834 9.74965 6.75C9.74965 6.55109 9.67064 6.36032 9.52999 6.21967C9.38933 6.07902 9.19857 6 8.99966 6ZM8.99966 1.5C8.01474 1.5 7.03947 1.69399 6.12953 2.0709C5.21959 2.44781 4.39279 3.00026 3.69635 3.6967C2.28983 5.10322 1.49966 7.01088 1.49966 9C1.4931 10.7319 2.09275 12.4114 3.19466 13.7475L1.69466 15.2475C1.59059 15.353 1.52009 15.4869 1.49206 15.6324C1.46403 15.7779 1.47972 15.9284 1.53716 16.065C1.59945 16.1999 1.70043 16.3133 1.82729 16.3908C1.95415 16.4682 2.10116 16.5063 2.24966 16.5H8.99966C10.9888 16.5 12.8964 15.7098 14.303 14.3033C15.7095 12.8968 16.4997 10.9891 16.4997 9C16.4997 7.01088 15.7095 5.10322 14.303 3.6967C12.8964 2.29018 10.9888 1.5 8.99966 1.5ZM8.99966 15H4.05716L4.75466 14.3025C4.82552 14.233 4.8819 14.1502 4.92052 14.0588C4.95914 13.9674 4.97924 13.8692 4.97966 13.77C4.97684 13.5722 4.89597 13.3835 4.75466 13.245C3.77259 12.264 3.16104 10.9729 3.02417 9.59159C2.88731 8.21029 3.23361 6.82425 4.00408 5.66964C4.77454 4.51503 5.9215 3.66327 7.24954 3.25948C8.57758 2.85569 10.0045 2.92485 11.2873 3.45519C12.5701 3.98552 13.6293 4.94421 14.2845 6.16792C14.9397 7.39163 15.1503 8.80466 14.8805 10.1663C14.6107 11.5279 13.8771 12.7538 12.8048 13.6352C11.7325 14.5166 10.3877 14.9989 8.99966 15Z\",\n fill: \"#3A8EFA\"\n })], -1 /* HOISTED */)])),\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => _cache[9] || (_cache[9] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Смотрите пошаговые инструкции по созданию шахматки в Базе знаний. Клиентская поддержка: 8 800 201 89 61 (бесплатно из России). \")])),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"