summaryrefslogtreecommitdiffstats
path: root/js/photos-src_views_FaceContent_vue.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'js/photos-src_views_FaceContent_vue.js.map')
-rw-r--r--js/photos-src_views_FaceContent_vue.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/js/photos-src_views_FaceContent_vue.js.map b/js/photos-src_views_FaceContent_vue.js.map
index 2268cb7f..4c5ee0d9 100644
--- a/js/photos-src_views_FaceContent_vue.js.map
+++ b/js/photos-src_views_FaceContent_vue.js.map
@@ -1 +1 @@
-{"version":3,"file":"photos-src_views_FaceContent_vue.js?v=f42a2b3be4ffc0deb1ea","mappings":"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","sources":["webpack:///photos/src/mixins/FetchFilesMixin.js","webpack:///photos/src/services/PhotoSearch.js","webpack:///photos/src/components/Faces/FaceMergeForm.vue?vue&type=style&index=0&id=33326436&prod&scoped=true&lang=scss","webpack:///photos/src/views/FaceContent.vue?vue&type=style&index=0&id=35997606&prod&lang=scss&scoped=true","webpack://photos/./src/components/Faces/FaceMergeForm.vue?d2e1","webpack:///photos/src/components/Faces/FaceMergeForm.vue","webpack:///photos/src/components/Faces/FaceMergeForm.vue?vue&type=script&lang=js","webpack://photos/./src/components/Faces/FaceMergeForm.vue?241f","webpack://photos/./src/components/Faces/FaceMergeForm.vue?2513","webpack://photos/./src/views/FaceContent.vue?42ef","webpack:///photos/src/views/FaceContent.vue","webpack:///photos/src/views/FaceContent.vue?vue&type=script&lang=js","webpack://photos/./src/views/FaceContent.vue?dd82","webpack://photos/./src/views/FaceContent.vue?fd9f"],"sourcesContent":["/**\n * @copyright Copyright (c) 2022 Louis Chemineau <louis@chmn.me>\n *\n * @author Louis Chemineau <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport logger from '../services/logger.js'\nimport getPhotos from '../services/PhotoSearch.js'\nimport SemaphoreWithPriority from '../utils/semaphoreWithPriority.js'\nimport AbortControllerMixin from './AbortControllerMixin.js'\n\nexport default {\n\tname: 'FetchFilesMixin',\n\n\tmixins: [\n\t\tAbortControllerMixin,\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\terrorFetchingFiles: null,\n\t\t\tloadingFiles: false,\n\t\t\tdoneFetchingFiles: false,\n\t\t\tfetchSemaphore: new SemaphoreWithPriority(1),\n\t\t\tfetchedFileIds: [],\n\t\t}\n\t},\n\n\twatch: {\n\t\t'$route.path'() {\n\t\t\tthis.resetFetchFilesState()\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * @param {string} path - Path to pass to getPhotos.\n\t\t * @param {object} options - Options to pass to getPhotos.\n\t\t * @param {string[]} [blacklist=[]] - Array of ids to filter out.\n\t\t * @param {boolean} [force=false] - Force fetching even if doneFetchingFiles is true\n\t\t * @return {Promise<string[]>} - The next batch of data depending on global offset.\n\t\t */\n\t\tasync fetchFiles(path = '', options = {}, blacklist = [], force = false) {\n\t\t\tif ((this.doneFetchingFiles && !force) || this.loadingFiles) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst fetchSemaphoreSymbol = await this.fetchSemaphore.acquire()\n\n\t\t\ttry {\n\t\t\t\tthis.errorFetchingFiles = null\n\t\t\t\tthis.loadingFiles = true\n\n\t\t\t\tconst numberOfImagesPerBatch = 200\n\n\t\t\t\t// Load next batch of images\n\t\t\t\tconst fetchedFiles = await getPhotos(path, {\n\t\t\t\t\tfirstResult: this.fetchedFileIds.length,\n\t\t\t\t\tnbResults: numberOfImagesPerBatch,\n\t\t\t\t\t...options,\n\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t})\n\n\t\t\t\t// If we get less files than requested that means we got to the end\n\t\t\t\tif (fetchedFiles.length !== numberOfImagesPerBatch) {\n\t\t\t\t\tthis.doneFetchingFiles = true\n\t\t\t\t}\n\n\t\t\t\tconst fileIds = fetchedFiles\n\t\t\t\t\t.map(file => file.fileid)\n\t\t\t\t\t.filter(fileId => !this.fetchedFileIds.includes(fileId.toString())) // Filter to prevent duplicate fileIds.\n\n\t\t\t\tthis.fetchedFileIds.push(\n\t\t\t\t\t...fileIds\n\t\t\t\t\t\t.map((fileId) => fileId.toString())\n\t\t\t\t\t\t.filter((fileId) => !blacklist.includes(fileId))\n\t\t\t\t)\n\n\t\t\t\tthis.$store.dispatch('appendFiles', fetchedFiles)\n\n\t\t\t\tlogger.debug(`[FetchFilesMixin] Fetched ${fileIds.length} new files: `, fileIds)\n\n\t\t\t\treturn fileIds\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFiles = 404\n\t\t\t\t} else if (error.code === 'ERR_CANCELED') {\n\t\t\t\t\treturn []\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFiles = error\n\t\t\t\t}\n\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching files', { error })\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingFiles = false\n\t\t\t\tthis.fetchSemaphore.release(fetchSemaphoreSymbol)\n\t\t\t}\n\n\t\t\treturn []\n\t\t},\n\n\t\tresetFetchFilesState() {\n\t\t\tthis.doneFetchingFiles = false\n\t\t\tthis.errorFetchingFiles = null\n\t\t\tthis.loadingFiles = false\n\t\t\tthis.fetchedFileIds = []\n\t\t},\n\t},\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { genFileInfo } from '../utils/fileUtils.js'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { allMimes } from './AllowedMimes.js'\nimport client from './DavClient.js'\nimport { props } from './DavRequest.js'\nimport moment from '@nextcloud/moment'\n\n/**\n * List files from a folder and filter out unwanted mimes\n *\n * @param {object} path the lookup path\n * @param {object} [options] used for the cancellable requests\n * @param {number} [options.firstResult=0] Index of the first result that we want (starts at 0)\n * @param {number} [options.nbResults=200] The number of file to fetch\n * @param {string[]} [options.mimesType=allMimes] Mime type of the files\n * @param {boolean} [options.full=false] get full data of the files\n * @param {boolean} [options.onThisDay=false] get only items from this day of year\n * @param {boolean} [options.onlyFavorites=false] get only favorite items\n * @return {Promise<object[]>} the file list\n */\nexport default async function(path = '', options = {}) {\n\t// default function options\n\toptions = {\n\t\tfirstResult: 0,\n\t\tnbResults: 200,\n\t\tmimesType: allMimes,\n\t\tonThisDay: false,\n\t\tonlyFavorites: false,\n\t\t...options,\n\t}\n\n\tconst prefixPath = `/files/${getCurrentUser().uid}`\n\n\t// generating the search or condition\n\t// based on the allowed mimetypes\n\tconst orMime = options.mimesType.reduce((str, mime) => `${str}\n\t\t<d:eq>\n\t\t\t<d:prop>\n\t\t\t\t<d:getcontenttype/>\n\t\t\t</d:prop>\n\t\t\t<d:literal>${mime}</d:literal>\n\t\t</d:eq>\n\t`, '')\n\n\tconst eqFavorites = options.onlyFavorites\n\t\t? `<d:eq>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<oc:favorite/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:literal>1</d:literal>\n\t\t\t</d:eq>`\n\t\t: ''\n\n\tconst onThisDay = options.onThisDay\n\t\t? `<d:or>${Array(20).fill(1)\n\t\t\t.map((_, years) => {\n\t\t\t\tconst start = moment(Date.now()).startOf('day').subtract(3, 'd').subtract(years + 1, 'y')\n\t\t\t\tconst end = moment(Date.now()).endOf('day').add(3, 'd').subtract(years + 1, 'y')\n\t\t\t\treturn `<d:and>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified />\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${start.format(moment.defaultFormatUtc)}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t\t<d:lt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified />\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${end.format(moment.defaultFormatUtc)}</d:literal>\n\t\t\t\t</d:lt>\n\t\t\t</d:and>`\n\t\t\t}).join('\\n')}</d:or>`\n\t\t: ''\n\n\toptions = Object.assign({\n\t\tmethod: 'SEARCH',\n\t\theaders: {\n\t\t\t'content-Type': 'text/xml',\n\t\t},\n\t\tdata: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\t\t\t<d:searchrequest xmlns:d=\"DAV:\"\n\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\"\n\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t\t<d:basicsearch>\n\t\t\t\t\t<d:select>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t${props}\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t</d:select>\n\t\t\t\t\t<d:from>\n\t\t\t\t\t\t<d:scope>\n\t\t\t\t\t\t\t<d:href>${prefixPath}/${path}</d:href>\n\t\t\t\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t\t\t\t</d:scope>\n\t\t\t\t\t</d:from>\n\t\t\t\t\t<d:where>\n\t\t\t\t\t\t<d:and>\n\t\t\t\t\t\t\t<d:or>\n\t\t\t\t\t\t\t\t${orMime}\n\t\t\t\t\t\t\t</d:or>\n\t\t\t\t\t\t\t${eqFavorites}\n\t\t\t\t\t\t\t${onThisDay}\n\t\t\t\t\t\t</d:and>\n\t\t\t\t\t</d:where>\n\t\t\t\t\t<d:orderby>\n\t\t\t\t\t\t<d:order>\n\t\t\t\t\t\t\t<d:prop><nc:metadata-photos-original_date_time/></d:prop>\n\t\t\t\t\t\t\t<d:descending/>\n\t\t\t\t\t\t</d:order>\n\t\t\t\t\t\t<d:order>\n\t\t\t\t\t\t\t<d:prop><d:getlastmodified/></d:prop>\n\t\t\t\t\t\t\t<d:descending/>\n\t\t\t\t\t\t</d:order>\n\t\t\t\t\t</d:orderby>\n\t\t\t\t\t<d:limit>\n\t\t\t\t\t\t<d:nresults>${options.nbResults}</d:nresults>\n\t\t\t\t\t\t<ns:firstresult>${options.firstResult}</ns:firstresult>\n\t\t\t\t\t</d:limit>\n\t\t\t\t</d:basicsearch>\n\t\t\t</d:searchrequest>`,\n\t\tdeep: true,\n\t\tdetails: true,\n\t}, options)\n\n\tconst response = await client.getDirectoryContents('', options)\n\n\treturn response.data.map(data => genFileInfo(data))\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".face-list[data-v-33326436]{display:flex;flex-direction:row;height:350px;flex-wrap:wrap;padding:12px}.loader[data-v-33326436]{margin:25% auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/Faces/FaceMergeForm.vue\"],\"names\":[],\"mappings\":\"AAEA,4BACC,YAAA,CACA,kBAAA,CACA,YAAA,CACA,cAAA,CACA,YAAA,CAGD,yBACC,eAAA\",\"sourcesContent\":[\"$sizes: (\\\"400\\\": (\\\"count\\\": 3, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"700\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"1024\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1280\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1440\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"1600\\\": (\\\"count\\\": 6, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2048\\\": (\\\"count\\\": 7, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2560\\\": (\\\"count\\\": 8, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"3440\\\": (\\\"count\\\": 9, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"max\\\": (\\\"count\\\": 10, \\\"marginTop\\\": 88, \\\"marginW\\\": 88));\\n\\n.face-list {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\theight: 350px;\\n\\tflex-wrap: wrap;\\n\\tpadding: 12px;\\n}\\n\\n.loader {\\n\\tmargin: 25% auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".face[data-v-35997606]{display:flex;flex-direction:column}.face__empty[data-v-35997606]{display:flex;flex-direction:column;align-items:center}.face__empty__button[data-v-35997606]{margin-top:32px}.face__header[data-v-35997606]{display:flex;min-height:60px;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;z-index:3;background:var(--color-main-background);padding:0 64px}@media only screen and (max-width: 1020px){.face__header[data-v-35997606]{padding:0;padding-left:64px}}.face__header__left[data-v-35997606]{height:100%;display:flex;align-items:center}.face__header__title[data-v-35997606]{margin-left:10px}.face__header__title h2[data-v-35997606]{margin-bottom:0}.face__header__loader[data-v-35997606]{margin-left:32px}.face__header__actions[data-v-35997606]{display:flex;align-items:center}.face__header__actions button[data-v-35997606]{margin-left:16px}.face__photos[data-v-35997606]{margin-top:16px;height:100%;min-height:0;padding:0 64px}@media only screen and (max-width: 1020px){.face__photos[data-v-35997606]{padding:0}}.empty-content-with-illustration[data-v-35997606] .empty-content__icon{width:200px;height:200px}.empty-content-with-illustration[data-v-35997606] .empty-content__icon svg{width:200px;height:200px}.rename-form[data-v-35997606]{display:flex;flex-direction:row;align-items:center;height:70px;padding:16px}.rename-form input[data-v-35997606]{width:80%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/mixins/FaceContent.scss\"],\"names\":[],\"mappings\":\"AAqBA,uBACC,YAAA,CACA,qBAAA,CAEA,8BACC,YAAA,CACA,qBAAA,CACA,kBAAA,CAEA,sCACC,eAAA,CAKF,+BACC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,6BAAA,CACA,uBAAA,CAAA,eAAA,CACA,SAAA,CACA,uCAAA,CACA,cAAA,CAEA,2CAVD,+BAWE,SAAA,CACA,iBAAA,CAAA,CAGD,qCACC,WAAA,CACA,YAAA,CACA,kBAAA,CAGD,sCACC,gBAAA,CACA,yCACC,eAAA,CAIF,uCACC,gBAAA,CAGD,wCACC,YAAA,CACA,kBAAA,CAEA,+CACC,gBAAA,CAKH,+BACC,eAAA,CACA,WAAA,CACA,YAAA,CACA,cAAA,CAEA,2CAND,+BAOE,SAAA,CAAA,CAKH,uEACC,WAAA,CACA,YAAA,CAEA,2EACC,WAAA,CACA,YAAA,CAIF,8BACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CAEA,oCACC,SAAA\",\"sourcesContent\":[\"/**\\n * @copyright Copyright (c) 2023 Marcel Klehr <mklehr@gmx.net>\\n *\\n * @author Marcel Klehr <mklehr@gmx.net>\\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.face {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__button {\\n\\t\\t\\tmargin-top: 32px;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\tmin-height: 60px;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-between;\\n\\t\\tposition: sticky;\\n\\t\\tz-index: 3;\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tpadding: 0 64px;\\n\\n\\t\\t@media only screen and (max-width: 1020px) {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tpadding-left: 64px;\\n\\t\\t}\\n\\n\\t\\t&__left {\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tmargin-left: 10px;\\n\\t\\t\\th2 {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__loader {\\n\\t\\t\\tmargin-left: 32px;\\n\\t\\t}\\n\\n\\t\\t&__actions {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-left: 16px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__photos {\\n\\t\\tmargin-top: 16px;\\n\\t\\theight: 100%;\\n\\t\\tmin-height: 0; // Prevent it from overflowing in a flex context.\\n\\t\\tpadding: 0 64px;\\n\\n\\t\\t@media only screen and (max-width: 1020px) {\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n.empty-content-with-illustration :deep .empty-content__icon {\\n\\twidth: 200px;\\n\\theight: 200px;\\n\\n\\tsvg {\\n\\t\\twidth: 200px;\\n\\t\\theight: 200px;\\n\\t}\\n}\\n\\n.rename-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\theight: 70px;\\n\\tpadding: 16px;\\n\\n\\tinput {\\n\\t\\twidth: 80%;\\n\\t}\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"merge-form face-list\"},_vm._l((_vm.filteredFaces),function(face){return _c('FaceCover',{key:face.basename,attrs:{\"base-name\":face.basename,\"small\":\"\"},on:{\"click\":function($event){return _vm.handleSelect(face.basename)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2022 Marcel Klehr <mklehr@gmx.net>\n -\n - @author Marcel Klehr <mklehr@gmx.net>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div class=\"merge-form face-list\">\n\t\t<FaceCover v-for=\"face in filteredFaces\"\n\t\t\t:key=\"face.basename\"\n\t\t\t:base-name=\"face.basename\"\n\t\t\tsmall\n\t\t\t@click=\"handleSelect(face.basename)\" />\n\t</div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\n\nimport FaceCoverMixin from '../../mixins/FaceCoverMixin.js'\nimport FetchFacesMixin from '../../mixins/FetchFacesMixin.js'\nimport FaceCover from './FaceCover.vue'\n\nexport default {\n\tname: 'FaceMergeForm',\n\tcomponents: { FaceCover },\n\tmixins: [\n\t\tFaceCoverMixin,\n\t\tFetchFacesMixin,\n\t],\n\tprops: {\n\t\tfirstFace: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapGetters([\n\t\t\t'files',\n\t\t\t'faces',\n\t\t\t'facesFiles',\n\t\t]),\n\n\t\tfilteredFaces() {\n\t\t\treturn Object.values(this.faces)\n\t\t\t\t.filter(face => face.basename !== this.firstFace)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\tif (a.props.nbItems && b.props.nbItems) {\n\t\t\t\t\t\treturn b.props.nbItems - a.props.nbItems\n\t\t\t\t\t}\n\t\t\t\t\tif (!this.facesFiles[b.basename] || !this.facesFiles[a.basename]) {\n\t\t\t\t\t\treturn 0\n\t\t\t\t\t}\n\t\t\t\t\treturn this.facesFiles[b.basename].length - this.facesFiles[a.basename].length\n\t\t\t\t})\n\t\t},\n\t},\n\tmethods: {\n\t\thandleSelect(faceName) {\n\t\t\tthis.$emit('select', faceName)\n\t\t\tthis.loading = true\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.face-list {\n\tdisplay: flex;\n\tflex-direction: row;\n\theight: 350px;\n\tflex-wrap: wrap;\n\tpadding: 12px;\n}\n\n.loader {\n\tmargin: 25% auto;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaceMergeForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaceMergeForm.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2.use[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaceMergeForm.vue?vue&type=style&index=0&id=33326436&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2.use[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaceMergeForm.vue?vue&type=style&index=0&id=33326436&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FaceMergeForm.vue?vue&type=template&id=33326436&scoped=true\"\nimport script from \"./FaceMergeForm.vue?vue&type=script&lang=js\"\nexport * from \"./FaceMergeForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./FaceMergeForm.vue?vue&type=style&index=0&id=33326436&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33326436\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.face === undefined && !_vm.loadingFiles && !_vm.loadingFaces)?_c('NcEmptyContent',{staticClass:\"empty-content-with-illustration\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountBoxMultipleOutline')]},proxy:true}],null,false,2861705255)},[_vm._v(\"\\n\\t\"+_vm._s(_vm.t('photos', 'This person could not be found'))+\"\\n\")]):(_vm.errorFetchingFiles || _vm.errorFetchingFaces)?_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AlertCircle')]},proxy:true}])},[_vm._v(\"\\n\\t\"+_vm._s(_vm.t('photos', 'An error occurred'))+\"\\n\")]):_c('div',{staticClass:\"face\"},[_c('div',{staticClass:\"face__header\"},[_c('div',{staticClass:\"face__header__left\"},[_c('NcActions',[_c('NcActionButton',{on:{\"click\":function($event){return _vm.$router.push('/faces/')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeft')]},proxy:true}])},[_vm._v(_vm._s(_vm.t('photos', 'Back'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"face__header__title\"},[(_vm.face !== undefined)?_c('h2',{class:{'face-name': true, 'hidden-visually': _vm.face.basename.match(/^[0-9]+$/)}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.face.basename)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.loadingCount > 0 || _vm.loadingFaces)?_c('NcLoadingIcon'):_vm._e()],1),_vm._v(\" \"),(_vm.face !== undefined)?_c('div',{staticClass:\"face__header__actions\"},[_c('NcActions',[_c('NcActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Rename person')},on:{\"click\":function($event){_vm.showRenameModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil')]},proxy:true}],null,false,514409694)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Rename person'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('NcActions',{attrs:{\"force-menu\":true}},[(Object.keys(_vm.faces).length > 1)?_c('NcActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Merge with different person')},on:{\"click\":function($event){_vm.showMergeModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Merge')]},proxy:true}],null,false,3117189691)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Merge with different person'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.selectedFileIds.length)?[_c('NcActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Download selected files')},on:{\"click\":_vm.downloadSelection}},[_c('Download',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Download selected photos'))+\"\\n\\t\\t\\t\\t\\t\")],1),_vm._v(\" \"),(_vm.shouldFavoriteSelection)?_c('NcActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Mark selection as favorite')},on:{\"click\":_vm.favoriteSelection}},[_c('Star',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Favorite'))+\"\\n\\t\\t\\t\\t\\t\")],1):_c('NcActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Remove selection from favorites')},on:{\"click\":_vm.unFavoriteSelection}},[_c('Star',{attrs:{\"slot\":\"icon\"},slot:\"icon\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Remove from favorites'))+\"\\n\\t\\t\\t\\t\\t\")],1),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){_vm.showMoveModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountSwitch')]},proxy:true}],null,false,2937983280)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('photos', 'Move photo to a different person', 'Move photos to a different person', _vm.selectedFileIds.length))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.handleRemoveFilesFromFace(_vm.selectedFileIds)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close')]},proxy:true}],null,false,1051939733)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('photos', 'Remove photo from person', 'Remove photos from person', _vm.selectedFileIds.length))+\"\\n\\t\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":_vm.handleDeleteFace},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close')]},proxy:true}],null,false,1051939733)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Remove person'))+\"\\n\\t\\t\\t\\t\")])],2)],1):_vm._e()]),_vm._v(\" \"),(_vm.face !== undefined)?_c('FilesListViewer',{staticClass:\"face__photos\",attrs:{\"container-element\":_vm.appContent,\"file-ids\":_vm.faceFileIds,\"loading\":_vm.loadingFiles || _vm.loadingFaces},scopedSlots:_vm._u([{key:\"default\",fn:function({file, distance}){return _c('File',{attrs:{\"file\":_vm.files[file.id],\"allow-selection\":true,\"selected\":_vm.selection[file.id] === true,\"distance\":distance},on:{\"click\":_vm.openViewer,\"select-toggled\":_vm.onFileSelectToggle}})}}],null,false,2716306842)}):_vm._e(),_vm._v(\" \"),(_vm.showRenameModal)?_c('NcModal',{attrs:{\"name\":_vm.t('photos', 'Rename person')},on:{\"close\":function($event){_vm.showRenameModal = false}}},[_c('div',{staticClass:\"rename-form\"},[_c('input',{directives:[{name:\"focus\",rawName:\"v-focus\"}],ref:\"nameInput\",attrs:{\"type\":\"text\",\"name\":\"name\",\"required\":\"\",\"placeholder\":_vm.t('photos', 'Name of this person')},domProps:{\"value\":_vm.faceName},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.handleRenameFace(_vm.$refs.nameInput.value)}}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('photos', 'Save.'),\"type\":\"primary\",\"disabled\":_vm.$refs.nameInput && _vm.$refs.nameInput.value.trim() === ''},on:{\"click\":function($event){return _vm.handleRenameFace(_vm.$refs.nameInput.value)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingCount)?_c('NcLoadingIcon'):_c('Send')]},proxy:true}],null,false,564208483)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Save'))+\"\\n\\t\\t\\t\")])],1)]):_vm._e(),_vm._v(\" \"),(_vm.showMergeModal)?_c('NcModal',{attrs:{\"name\":_vm.t('photos', 'Merge person')},on:{\"close\":function($event){_vm.showMergeModal = false}}},[_c('FaceMergeForm',{attrs:{\"first-face\":_vm.faceName},on:{\"select\":function($event){return _vm.handleMerge($event)}}})],1):_vm._e(),_vm._v(\" \"),(_vm.showMoveModal)?_c('NcModal',{attrs:{\"name\":_vm.t('photos', 'Move to different person')},on:{\"close\":function($event){_vm.showMoveModal = false}}},[_c('FaceMergeForm',{attrs:{\"first-face\":_vm.faceName},on:{\"select\":function($event){return _vm.handleMove($event, _vm.selectedFileIds)}}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2022 Louis Chemineau <louis@chmn.me>\n - @copyright Copyright (c) 2022 Marcel Klehr <mklehr@gmx.net>\n -\n - @author Louis Chemineau <louis@chmn.me>\n - @author Marcel Klehr <mklehr@gmx.net>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<!-- Errors handlers-->\n\t<NcEmptyContent v-if=\"face === undefined && !loadingFiles && !loadingFaces\" class=\"empty-content-with-illustration\">\n\t\t<template #icon>\n\t\t\t<AccountBoxMultipleOutline />\n\t\t</template>\n\t\t{{ t('photos', 'This person could not be found') }}\n\t</NcEmptyContent>\n\t<NcEmptyContent v-else-if=\"errorFetchingFiles || errorFetchingFaces\">\n\t\t<template #icon>\n\t\t\t<AlertCircle />\n\t\t</template>\n\t\t{{ t('photos', 'An error occurred') }}\n\t</NcEmptyContent>\n\n\t<div v-else class=\"face\">\n\t\t<div class=\"face__header\">\n\t\t\t<div class=\"face__header__left\">\n\t\t\t\t<NcActions>\n\t\t\t\t\t<NcActionButton @click=\"$router.push('/faces/')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ArrowLeft />\n\t\t\t\t\t\t</template>{{ t('photos', 'Back') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t\t<div class=\"face__header__title\">\n\t\t\t\t\t<h2 v-if=\"face !== undefined\" :class=\"{'face-name': true, 'hidden-visually': face.basename.match(/^[0-9]+$/)}\">\n\t\t\t\t\t\t{{ face.basename }}\n\t\t\t\t\t</h2>\n\t\t\t\t</div>\n\n\t\t\t\t<NcLoadingIcon v-if=\"loadingCount > 0 || loadingFaces\" />\n\t\t\t</div>\n\t\t\t<div v-if=\"face !== undefined\" class=\"face__header__actions\">\n\t\t\t\t<NcActions>\n\t\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t:aria-label=\"t('photos', 'Rename person')\"\n\t\t\t\t\t\t@click=\"showRenameModal = true\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Pencil />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('photos', 'Rename person') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t\t<NcActions :force-menu=\"true\">\n\t\t\t\t\t<NcActionButton v-if=\"Object.keys(faces).length > 1\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:aria-label=\"t('photos', 'Merge with different person')\"\n\t\t\t\t\t\t@click=\"showMergeModal = true\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Merge />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('photos', 'Merge with different person') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<template v-if=\"selectedFileIds.length\">\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t\t:aria-label=\"t('photos', 'Download selected files')\"\n\t\t\t\t\t\t\t@click=\"downloadSelection\">\n\t\t\t\t\t\t\t<Download slot=\"icon\" />\n\t\t\t\t\t\t\t{{ t('photos', 'Download selected photos') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton v-if=\"shouldFavoriteSelection\"\n\t\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t\t:aria-label=\"t('photos', 'Mark selection as favorite')\"\n\t\t\t\t\t\t\t@click=\"favoriteSelection\">\n\t\t\t\t\t\t\t<Star slot=\"icon\" />\n\t\t\t\t\t\t\t{{ t('photos', 'Favorite') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton v-else\n\t\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t\t:aria-label=\"t('photos', 'Remove selection from favorites')\"\n\t\t\t\t\t\t\t@click=\"unFavoriteSelection\">\n\t\t\t\t\t\t\t<Star slot=\"icon\" />\n\t\t\t\t\t\t\t{{ t('photos', 'Remove from favorites') }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t\t@click=\"showMoveModal = true\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<AccountSwitch />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ n('photos', 'Move photo to a different person', 'Move photos to a different person', selectedFileIds.length) }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t\t@click=\"handleRemoveFilesFromFace(selectedFileIds)\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ n('photos', 'Remove photo from person', 'Remove photos from person', selectedFileIds.length) }}\n\t\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t@click=\"handleDeleteFace\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('photos', 'Remove person') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<FilesListViewer v-if=\"face !== undefined\"\n\t\t\tclass=\"face__photos\"\n\t\t\t:container-element=\"appContent\"\n\t\t\t:file-ids=\"faceFileIds\"\n\t\t\t:loading=\"loadingFiles || loadingFaces\">\n\t\t\t<File sl