Joywork/complexes/js/22a2e0fe3fb04cec.js
2026-05-22 21:21:54 +03:00

32 lines
23 KiB
JavaScript

"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_app_store_house_js-src_app_store_media_js"],{
/***/ "./src/app/store/house.js":
/*!********************************!*\
!*** ./src/app/store/house.js ***!
\********************************/
/***/ (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 */ useHouseStore: function() { return /* binding */ useHouseStore; }\n/* harmony export */ });\n/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! pinia */ \"./node_modules/pinia/dist/pinia.mjs\");\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_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/shared/api */ \"./src/shared/api.js\");\n\n\n\nconst useHouseStore = (0,pinia__WEBPACK_IMPORTED_MODULE_2__.defineStore)(\"house\", () => {\n const house = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)({});\n const complex = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)({\n 'dop': {},\n 'metro': {}\n });\n const get_house = async (house_id, includes = []) => {\n return _shared_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getHouseOne(house_id, includes).then(response => {\n var res = response.data;\n if (res.house) house.value = res.house;\n if (res.complex) complex.value = res.complex;\n return response;\n }).catch(error => {\n console.log(error);\n });\n };\n return {\n house,\n complex,\n get_house\n };\n});\n\n//# sourceURL=webpack://complexes/./src/app/store/house.js?");
/***/ }),
/***/ "./src/app/store/media.js":
/*!********************************!*\
!*** ./src/app/store/media.js ***!
\********************************/
/***/ (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 */ useMediaStore: function() { return /* binding */ useMediaStore; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __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_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __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_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __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_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __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_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __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_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! pinia */ \"./node_modules/pinia/dist/pinia.mjs\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _shared_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/shared/api */ \"./src/shared/api.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.mjs\");\n\n\n\n\n\n\n\n\n\n\n\nconst formatSize = bytes => {\n const kb = bytes / 1024;\n const mb = kb / 1024;\n if (mb >= 1) {\n return mb.toFixed(1) + \" MB\";\n }\n return kb.toFixed(1) + \" KB\";\n};\nconst useMediaStore = (0,pinia__WEBPACK_IMPORTED_MODULE_9__.defineStore)(\"media\", () => {\n const entrances = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)({});\n const sets = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)([]);\n const files = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)([]);\n const uploadingFiles = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)([]);\n const filesSyncing = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(false);\n const roomsWithoutSet = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(0);\n const completedPercentage = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(0);\n const unauthorizedError = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(null);\n const setToEdit = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(null);\n const thumbnailsFetching = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)({});\n const thumbnailQueue = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)([]);\n const MAX_CONCURRENCY = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(5);\n const UPLOAD_CONCURRENCY = 5;\n const THUMBNAIL_CONCURRENCY = 5;\n const BATCH_SIZE = 10;\n const activeProcesses = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(0);\n const uploadingProcess = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(0);\n const pipelineRunning = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(false);\n const uploadQueue = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)([]);\n const uploadedCount = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(0);\n const pendingThumbnailIds = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(new Set());\n const isFetchingThumbnails = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(false);\n const route = (0,vue_router__WEBPACK_IMPORTED_MODULE_10__.useRoute)();\n const houseId = (0,vue__WEBPACK_IMPORTED_MODULE_7__.computed)(() => route.params.house_id);\n const handleMediaRequest = async requestFn => {\n try {\n const response = await requestFn();\n\n // Handle unauthorized globally\n if (response.status === 401) {\n unauthorizedError.value = response.data.error;\n uploadingFiles.value = [];\n return null;\n }\n\n // Handle business logic status\n if (response.data?.status) {\n return response.data.data || true;\n }\n return null;\n } catch (error) {\n // Network / unexpected errors\n console.error(error);\n if (error.response?.status === 401) {\n unauthorizedError.value = error.response.data.error;\n uploadingFiles.value = [];\n }\n return null;\n }\n };\n const getMediaEntrances = async (house_id, includes = []) => {\n return _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getMediaEntrances(house_id, includes).then(response => {\n var res = response.data;\n if (res) {\n entrances.value = res;\n syncRoomsWithoutSet();\n }\n return response;\n }).catch(error => {\n console.log(error);\n });\n };\n\n // const addMedia = (newFiles) => {\n // uploadQueue.value = [...newFiles]\n // newFiles.forEach(async (file) => {\n // const tempId = Date.now() + Math.random();\n\n // const tempFile = {\n // id: tempId,\n // name: file.name,\n // };\n\n // // Добавляем во временный список загрузки\n // uploadingFiles.value.unshift(tempFile);\n\n // // Создаём FormData и отправляем на сервер\n // const formData = new FormData();\n // // formData.append(\"house_id\", house.value.id);\n // formData.append(\"photos[]\", file);\n\n // const data = await handleMediaRequest(() => api.addMediaToHouse(houseId.value, formData))\n\n // if (data) {\n // const uploadedFile = data.find(f => f.original_name === file.name || f.name === file.name) || {};\n\n // if (!uploadedFile.has_error) {\n // uploadingFiles.value = uploadingFiles.value.filter(\n // (f) => f.id !== tempId\n // );\n\n // // Добавляем в основную таблицу\n // files.value.unshift({\n // id: uploadedFile.id || tempId, // если сервер вернёт id\n // file,\n // name: file.name,\n // size: formatSize(file.size),\n // url: uploadedFile.thumbnail_url || URL.createObjectURL(file),\n // rooms: uploadedFile.rooms || [],\n // ...(uploadedFile.has_error ? { has_error: true, error_message: uploadedFile.error_message, can_retry: uploadedFile.can_retry } : {})\n // });\n\n // thumbnailQueue.value.set(uploadedFile.id, {\n // retries: 0,\n // nextAttemptAt: Date.now()\n // })\n // } else {\n // const f = uploadingFiles.value.find((f) => f.id === tempId)\n // f.has_error = true\n // f.error_message = uploadedFile.error_message\n // f.can_retry = uploadedFile.can_retry\n // f.file = file\n // }\n // }\n // });\n // };\n\n const retryUpload = uploadedFile => {\n uploadingFiles.value = uploadingFiles.value.filter(f => f.id !== uploadedFile.id); // Убираем неудачный файл из списка\n addMedia([uploadedFile.file]);\n };\n const removeUploadingErroredItem = fileId => {\n uploadingFiles.value = uploadingFiles.value.filter(f => f.id !== fileId);\n };\n const addSet = async () => {\n const name = prompt('Название набора:', 'Новый набор');\n if (name === null) return;\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].createMediaSetForHouse(houseId.value, {\n name\n }));\n if (data) {\n sets.value.unshift(data);\n }\n };\n const changeSetName = async name => {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateMediaSet(houseId.value, setToEdit.value.id, {\n name\n }));\n if (data) {\n setToEdit.value.name = name;\n }\n };\n const addItemToMediaSet = async file => {\n if (filesSyncing.value) return;\n if (!setToEdit.value) return;\n filesSyncing.value = true;\n let newSort = 1;\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateMediaSet(houseId.value, setToEdit.value.id, {\n items: [{\n media_id: file.id,\n sort_order: newSort\n }, ...setToEdit.value.items.map(item => {\n newSort++;\n return {\n media_id: item.id,\n sort_order: newSort\n };\n })]\n }));\n if (data && !setToEdit.value.items.some(item => item.id === file.id)) {\n setToEdit.value.items.unshift(file);\n files.value.forEach(existingFile => {\n if (existingFile.id === file.id) {\n existingFile.visible = false;\n }\n });\n }\n filesSyncing.value = false;\n };\n const removeMediaFromSet = async file => {\n if (!setToEdit.value || filesSyncing.value) return;\n filesSyncing.value = true;\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateMediaSet(houseId.value, setToEdit.value.id, {\n items: setToEdit.value.items.filter(item => item.id !== file.id).map((item, index) => ({\n media_id: item.id,\n sort_order: item.sort_order || index + 1\n }))\n }));\n if (data) {\n setToEdit.value.items = setToEdit.value.items.filter(item => item.id !== file.id);\n files.value.forEach(existingFile => {\n if (existingFile.id === file.id) {\n existingFile.visible = true;\n }\n });\n }\n filesSyncing.value = false;\n };\n const updateMediaSetOrder = async updatedItems => {\n if (!setToEdit.value || filesSyncing.value) return;\n filesSyncing.value = true;\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateMediaSet(houseId.value, setToEdit.value.id, {\n items: updatedItems.map((item, index) => {\n return {\n media_id: item.id,\n sort_order: index + 1\n };\n })\n }));\n if (data) {\n setToEdit.value.items = updatedItems;\n }\n filesSyncing.value = false;\n };\n const getHouseMediaSets = async house_id => {\n if (!house_id) return;\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getHouseMediaSets(house_id));\n if (data) {\n sets.value = data;\n }\n };\n const getFilesForHouse = async house_id => {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getHouseMedia(house_id));\n if (data) {\n files.value = data.map(item => ({\n id: item.id,\n name: item.name,\n size: formatSize(item.size),\n url: item.url,\n thumbnail_url: item.thumbnail_url,\n rooms: item.rooms || []\n }));\n }\n\n // files.value.forEach(async (f) => {\n // await deleteMediaFromHouse(houseId.value, f.id)\n\n // await delay(200)\n // })\n };\n const connectSetToRooms = async (house_id, set_id, body) => {\n if (!set_id || !Array.isArray(body.room_ids)) return;\n\n // Call API to move rooms to the new set\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].connectSetToRooms(house_id, set_id, body));\n if (!data) return [];\n await getHouseMediaSets(house_id);\n syncRoomsWithoutSet();\n };\n const deleteMediaFromHouse = async (house_id, media_id) => {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].deleteMediaFromHouse(house_id, media_id));\n if (data) {\n files.value = files.value.filter(f => f.id !== media_id);\n }\n };\n const deleteMediaSetFromHouse = async (house_id, set_id) => {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].deleteMediaSetFromHouse(house_id, set_id));\n if (data) {\n sets.value = sets.value.filter(s => s.id !== set_id);\n }\n };\n const getMediaSetForRoom = async room_id => {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getMediaSetForRoom(houseId.value, room_id));\n if (data) {\n return data;\n }\n return null;\n };\n const getMediaCompletionPercentage = async houseId => {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getMediaCompletionPercentage(houseId));\n if (data) {\n completedPercentage.value = data.completion;\n return data;\n }\n return 0;\n };\n const syncRoomsWithoutSet = (room_ids = null) => {\n let count = 0;\n const roomToSetMap = new Map();\n sets.value.forEach(set => {\n set.rooms.forEach(r => {\n roomToSetMap.set(String(r.id), set); // normalize ID\n });\n });\n entrances.value.forEach(entrance => {\n entrance.floors.forEach(floor => {\n floor.rooms.forEach(room => {\n const shouldProcess = !room_ids || Array.isArray(room_ids) && room_ids.map(String).includes(String(room.id));\n if (!shouldProcess) return;\n room.set = roomToSetMap.get(String(room.id)) || null;\n });\n });\n });\n entrances.value.forEach(entrance => {\n entrance.floors.forEach(floor => {\n floor.rooms.forEach(room => {\n if (!room.set) count++;\n });\n });\n });\n roomsWithoutSet.value = count;\n };\n const getSetsCountForRoom = room_id => {\n if (!room_id) return 0;\n let count = 0;\n sets.value.forEach(set => {\n if (set.rooms.some(r => r.id === room_id)) {\n count++;\n }\n });\n return count;\n };\n const getSetsCountForFile = file_id => {\n if (!file_id) return 0;\n let count = 0;\n sets.value.forEach(set => {\n if (set.items.some(file => file.id === file_id)) {\n count++;\n }\n });\n return count;\n };\n const getOtherSetsRoomCount = set_id => {\n return sets.value.filter(set => set.id !== set_id).reduce((prev, cur) => prev + cur.rooms.length, 0);\n };\n const changeEditableSet = set => {\n setToEdit.value = set;\n };\n const addMedia = async newFiles => {\n uploadQueue.value = [...newFiles];\n for (const file of uploadQueue.value) {\n uploadFile(file); // wait for upload\n await delay(500); // wait 100ms\n }\n\n // flush remaining thumbnails after all uploads\n flushThumbnails();\n };\n const delay = ms => new Promise(resolve => setTimeout(resolve, ms));\n const applyThumbnail = (fileId, thumbnail) => {\n const index = files.value.findIndex(f => f.id === fileId);\n files.value[index].thumbnail_url = thumbnail;\n };\n (0,vue__WEBPACK_IMPORTED_MODULE_7__.watch)(setToEdit, () => {\n if (!setToEdit.value) return;\n files.value.forEach(f => {\n f.visible = !setToEdit.value.items.some(item => item.id === f.id);\n });\n });\n const uploadFile = async file => {\n const tempId = Date.now() + Math.random();\n const tempFile = {\n id: tempId,\n name: file.name\n };\n uploadingFiles.value.unshift(tempFile);\n const formData = new FormData();\n formData.append(\"photos[]\", file);\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].addMediaToHouse(houseId.value, formData));\n if (!data) return;\n const uploadedFile = data.find(f => f.original_name === file.name || f.name === file.name) || {};\n if (!uploadedFile.has_error) {\n // remove temp uploading\n uploadingFiles.value = uploadingFiles.value.filter(f => f.id !== tempId);\n const fileItem = {\n id: uploadedFile.id || tempId,\n file,\n name: file.name,\n size: formatSize(file.size),\n url: uploadedFile.thumbnail_url || null,\n rooms: uploadedFile.rooms || []\n };\n files.value.unshift(fileItem);\n if (!uploadedFile.thumbnail_url && uploadedFile.id) {\n pendingThumbnailIds.value.add(uploadedFile.id);\n }\n uploadedCount.value++;\n\n // Hard trigger every 7 uploads\n if (uploadedCount.value % 7 === 0) {\n fetchMissingThumbnails();\n } else {\n scheduleThumbnailFetch(); // fallback\n }\n return uploadedFile;\n } else {\n const f = uploadingFiles.value.find(f => f.id === tempId);\n if (f) {\n f.has_error = true;\n f.error_message = uploadedFile.error_message;\n f.can_retry = uploadedFile.can_retry;\n f.file = file;\n }\n }\n };\n const fetchMissingThumbnails = async () => {\n ;\n if (isFetchingThumbnails.value) return;\n const ids = Array.from(pendingThumbnailIds.value);\n if (!ids.length) return;\n isFetchingThumbnails.value = true;\n try {\n const data = await handleMediaRequest(() => _shared_api__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getMediaThumbnail(houseId.value, JSON.stringify(ids)));\n data.forEach(item => {\n if (item.thumbnail) {\n applyThumbnail(item.id, item.thumbnail);\n\n // remove from pending\n pendingThumbnailIds.value.delete(item.id);\n } else {\n scheduleThumbnailFetch();\n }\n });\n } catch (e) {\n console.error(\"Thumbnail fetch failed\", e);\n } finally {\n isFetchingThumbnails.value = false;\n }\n };\n const flushThumbnails = () => {\n if (pendingThumbnailIds.value.size) {\n fetchMissingThumbnails();\n }\n };\n const debounceTimer = (0,vue__WEBPACK_IMPORTED_MODULE_7__.ref)(null);\n const scheduleThumbnailFetch = () => {\n if (debounceTimer.value) return; // 👈 prevent infinite reset loop\n\n debounceTimer.value = setTimeout(() => {\n fetchMissingThumbnails();\n debounceTimer.value = null;\n }, 1000);\n };\n return {\n entrances,\n files,\n sets,\n roomsWithoutSet,\n completedPercentage,\n filesSyncing,\n uploadingFiles,\n setToEdit,\n unauthorizedError,\n delay,\n formatSize,\n getMediaEntrances,\n addMedia,\n retryUpload,\n removeUploadingErroredItem,\n addSet,\n changeSetName,\n addItemToMediaSet,\n removeMediaFromSet,\n updateMediaSetOrder,\n changeEditableSet,\n getHouseMediaSets,\n getFilesForHouse,\n connectSetToRooms,\n getSetsCountForRoom,\n getSetsCountForFile,\n deleteMediaFromHouse,\n deleteMediaSetFromHouse,\n getOtherSetsRoomCount,\n getMediaSetForRoom,\n getMediaCompletionPercentage\n };\n});\n\n//# sourceURL=webpack://complexes/./src/app/store/media.js?");
/***/ })
}]);