From 5305748cfdb20a4da3879724fcab372e87283e81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Oct 2026 01:04:23 +0000 Subject: [PATCH 1/2] Chore(deps): Bump vue-material-design-icons from 5.3.1 to 5.3.2 Bumps [vue-material-design-icons](https://github.com/robcresswell/vue-material-design-icons) from 5.3.1 to 5.3.2. - [Release notes](https://github.com/robcresswell/vue-material-design-icons/releases) - [Commits](https://github.com/robcresswell/vue-material-design-icons/compare/5.3.1...5.3.2) --- updated-dependencies: - dependency-name: vue-material-design-icons dependency-version: 5.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 178 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 158 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0fe2d4ee1..acc8adf06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "qs": "^6.14.2", "url-parse": "^1.5.10", "vue": "^2.7.14", - "vue-material-design-icons": "^5.3.1", + "vue-material-design-icons": "^5.3.2", "vue-router": "^3.6.5", "vue-template-compiler": "^2.7.14", "vue-virtual-grid": "^2.5.0", @@ -2291,6 +2291,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2307,6 +2308,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2323,6 +2325,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2339,6 +2342,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2355,6 +2359,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2371,6 +2376,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2387,6 +2393,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2403,6 +2410,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2419,6 +2427,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2435,6 +2444,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2451,6 +2461,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2467,6 +2478,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2483,6 +2495,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2499,6 +2512,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2515,6 +2529,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2531,6 +2546,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2547,6 +2563,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2563,6 +2580,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2579,6 +2597,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2595,6 +2614,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2611,6 +2631,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2627,6 +2648,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2643,6 +2665,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2659,6 +2682,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2675,6 +2699,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2691,6 +2716,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3273,7 +3299,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -4198,6 +4224,33 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@nextcloud/dialogs/node_modules/pinia": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-4.1.0.tgz", + "integrity": "sha512-+5/HMuVjYQfKlCD5xQ7zfXn1xUzYFEa7pd0DQK5SaMfZCaFRTHlaH/c02N1FoGOdlzSiwf5EOPgJx//1QDw6gw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "nostics": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/devtools-api": "^8.2.1", + "typescript": ">=5.6.0", + "vue": "^3.5.11" + }, + "peerDependenciesMeta": { + "@vue/devtools-api": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, "node_modules/@nextcloud/dialogs/node_modules/readdirp": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", @@ -5110,6 +5163,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -5149,6 +5203,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5170,6 +5225,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5191,6 +5247,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5212,6 +5269,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5233,6 +5291,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5254,6 +5313,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5275,6 +5335,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5296,6 +5357,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5317,6 +5379,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5338,6 +5401,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5359,6 +5423,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5380,6 +5445,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5398,6 +5464,7 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -5661,6 +5728,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5674,6 +5742,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5687,6 +5756,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5700,6 +5770,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5713,6 +5784,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5726,6 +5798,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5739,6 +5812,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5752,6 +5826,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5765,6 +5840,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5778,6 +5854,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5791,6 +5868,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5804,6 +5882,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5817,6 +5896,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5830,6 +5910,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5843,6 +5924,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5856,6 +5938,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5869,6 +5952,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5882,6 +5966,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5895,6 +5980,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5908,6 +5994,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5921,6 +6008,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5934,6 +6022,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5947,6 +6036,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5960,6 +6050,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5973,6 +6064,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6404,7 +6496,7 @@ "version": "26.1.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~8.3.0" @@ -8939,7 +9031,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/buffer-image-size": { @@ -9658,7 +9750,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/comment-parser": { @@ -10555,6 +10647,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, "license": "Apache-2.0", "optional": true, "peer": true, @@ -11393,6 +11486,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -12645,6 +12739,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -12832,7 +12927,7 @@ "version": "4.10.0", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -13628,7 +13723,7 @@ "version": "5.1.9", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", - "devOptional": true, + "dev": true, "license": "MIT", "peer": true }, @@ -13987,7 +14082,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -14039,7 +14134,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -16590,6 +16685,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, "optional": true, "peer": true }, @@ -17939,7 +18035,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "devOptional": true, + "dev": true, "peer": true, "engines": { "node": ">= 14.18.0" @@ -18583,7 +18679,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "devOptional": true, + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" @@ -18768,6 +18864,21 @@ } } }, + "node_modules/rollup-plugin-license/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -18888,7 +18999,7 @@ "version": "1.85.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", - "devOptional": true, + "dev": true, "peer": true, "dependencies": { "chokidar": "^4.0.0", @@ -18936,7 +19047,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "devOptional": true, + "dev": true, "peer": true, "dependencies": { "readdirp": "^4.0.1" @@ -19419,7 +19530,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -19430,7 +19541,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -20772,7 +20883,7 @@ "version": "5.31.6", "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -21192,7 +21303,7 @@ "version": "4.19.3", "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz", "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "esbuild": "~0.25.0", @@ -21462,7 +21573,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -22276,6 +22387,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22292,6 +22404,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22308,6 +22421,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22324,6 +22438,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22340,6 +22455,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22356,6 +22472,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22372,6 +22489,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22388,6 +22506,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22404,6 +22523,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22420,6 +22540,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22436,6 +22557,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22452,6 +22574,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22468,6 +22591,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22484,6 +22608,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22500,6 +22625,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22516,6 +22642,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22532,6 +22659,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22548,6 +22676,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22564,6 +22693,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22580,6 +22710,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22596,6 +22727,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22612,6 +22744,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22628,6 +22761,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22644,6 +22778,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22660,6 +22795,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22991,9 +23127,9 @@ } }, "node_modules/vue-material-design-icons": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vue-material-design-icons/-/vue-material-design-icons-5.3.1.tgz", - "integrity": "sha512-6UNEyhlTzlCeT8ZeX5WbpUGFTTPSbOoTQeoASTv7X4Ylh0pe8vltj+36VMK56KM0gG8EQVoMK/Qw/6evalg8lA==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vue-material-design-icons/-/vue-material-design-icons-5.3.2.tgz", + "integrity": "sha512-zw/E86MnyxT9U17kCQpta1DUmcSVJwVI0KThqyp9opvSNlbhnih9eDpT1D58mTNHolbG7ASkGjM/BDgdI2t0hg==", "license": "MIT" }, "node_modules/vue-resize": { diff --git a/package.json b/package.json index 3da79d094..8fee64f48 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "qs": "^6.14.2", "url-parse": "^1.5.10", "vue": "^2.7.14", - "vue-material-design-icons": "^5.3.1", + "vue-material-design-icons": "^5.3.2", "vue-router": "^3.6.5", "vue-template-compiler": "^2.7.14", "vue-virtual-grid": "^2.5.0", From 808fa29b3db975723800b7e62cde7ac5e8704c81 Mon Sep 17 00:00:00 2001 From: nextcloud-command Date: Tue, 27 Oct 2026 12:50:46 +0000 Subject: [PATCH 2/2] chore(assets): Recompile assets Signed-off-by: nextcloud-command --- ...vCJO5o.chunk.mjs => ActionFavorite-BIri36lV.chunk.mjs} | 4 ++-- ....license => ActionFavorite-BIri36lV.chunk.mjs.license} | 0 ...hunk.mjs.map => ActionFavorite-BIri36lV.chunk.mjs.map} | 2 +- ...BiB6a0w2.chunk.mjs => AlbumContent-DdghloKe.chunk.mjs} | 4 ++-- ...js.license => AlbumContent-DdghloKe.chunk.mjs.license} | 0 ....chunk.mjs.map => AlbumContent-DdghloKe.chunk.mjs.map} | 2 +- ...rm-DoWypGG2.chunk.mjs => AlbumForm-BgUJaoaO.chunk.mjs} | 4 ++-- ...k.mjs.license => AlbumForm-BgUJaoaO.chunk.mjs.license} | 0 ...GG2.chunk.mjs.map => AlbumForm-BgUJaoaO.chunk.mjs.map} | 2 +- ...w-BUHTq9bU.chunk.mjs => AlbumsView-DJ3yiAWL.chunk.mjs} | 4 ++-- ....mjs.license => AlbumsView-DJ3yiAWL.chunk.mjs.license} | 0 ...bU.chunk.mjs.map => AlbumsView-DJ3yiAWL.chunk.mjs.map} | 2 +- ...EWH.chunk.mjs => CollectionContent-CqxKIviG.chunk.mjs} | 4 ++-- ...cense => CollectionContent-CqxKIviG.chunk.mjs.license} | 0 ...k.mjs.map => CollectionContent-CqxKIviG.chunk.mjs.map} | 2 +- ...L8IrY.chunk.mjs => CollectionsList-DAU5uskw.chunk.mjs} | 4 ++-- ...license => CollectionsList-DAU5uskw.chunk.mjs.license} | 0 ...unk.mjs.map => CollectionsList-DAU5uskw.chunk.mjs.map} | 2 +- ...unk.mjs => ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs} | 4 ++-- ...=> ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.license} | 0 ...map => ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.map} | 2 +- ...-BJijunbq.chunk.mjs => FaceContent-CIurv2o6.chunk.mjs} | 4 ++-- ...mjs.license => FaceContent-CIurv2o6.chunk.mjs.license} | 0 ...q.chunk.mjs.map => FaceContent-CIurv2o6.chunk.mjs.map} | 2 +- ...er-BZKfSTyN.chunk.mjs => FaceCover-aZGWm4v4.chunk.mjs} | 4 ++-- ...k.mjs.license => FaceCover-aZGWm4v4.chunk.mjs.license} | 0 ...TyN.chunk.mjs.map => FaceCover-aZGWm4v4.chunk.mjs.map} | 2 +- ...XfxVDPY.chunk.mjs => FaceMergeForm-BsPjp4ll.chunk.mjs} | 4 ++-- ...s.license => FaceMergeForm-BsPjp4ll.chunk.mjs.license} | 0 ...chunk.mjs.map => FaceMergeForm-BsPjp4ll.chunk.mjs.map} | 2 +- ...ew-Dt3mzO9A.chunk.mjs => FacesView-CREGwa7w.chunk.mjs} | 4 ++-- ...k.mjs.license => FacesView-CREGwa7w.chunk.mjs.license} | 0 ...O9A.chunk.mjs.map => FacesView-CREGwa7w.chunk.mjs.map} | 2 +- ...YcuW4fI.chunk.mjs => FileComponent-CIkKxlac.chunk.mjs} | 4 ++-- ...s.license => FileComponent-CIkKxlac.chunk.mjs.license} | 0 ...chunk.mjs.map => FileComponent-CIkKxlac.chunk.mjs.map} | 2 +- ...O.chunk.mjs => FilesSelectionMixin-QyiriVe4.chunk.mjs} | 4 ++-- ...nse => FilesSelectionMixin-QyiriVe4.chunk.mjs.license} | 0 ...mjs.map => FilesSelectionMixin-QyiriVe4.chunk.mjs.map} | 2 +- ...-BRFRCvSe.chunk.mjs => FoldersView-DhVFd5R9.chunk.mjs} | 4 ++-- ...mjs.license => FoldersView-DhVFd5R9.chunk.mjs.license} | 0 ...e.chunk.mjs.map => FoldersView-DhVFd5R9.chunk.mjs.map} | 2 +- ...9UVW.chunk.mjs => HeaderNavigation-NTIRuixF.chunk.mjs} | 4 ++-- ...icense => HeaderNavigation-NTIRuixF.chunk.mjs.license} | 0 ...nk.mjs.map => HeaderNavigation-NTIRuixF.chunk.mjs.map} | 2 +- ... => InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs} | 4 ++-- ...lidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.license} | 0 ...InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.map} | 2 +- ...zG.chunk.mjs => NcActions-C4f9MXug-BC_2VOkH.chunk.mjs} | 4 ++-- ...ense => NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.license} | 0 ....mjs.map => NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.map} | 2 +- ...CgL.chunk.mjs => NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs} | 8 ++++---- ...cense => NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs.license} | 0 ...k.mjs.map => NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs.map} | 2 +- ...Q.chunk.mjs => NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs} | 4 ++-- ...nse => NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs.license} | 0 ...mjs.map => NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs.map} | 2 +- ...rwJW.chunk.mjs => NcDateTimePicker-RSLBAkGn.chunk.mjs} | 4 ++-- ...icense => NcDateTimePicker-RSLBAkGn.chunk.mjs.license} | 0 ...nk.mjs.map => NcDateTimePicker-RSLBAkGn.chunk.mjs.map} | 2 +- ...ALj.chunk.mjs => NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs} | 4 ++-- ...cense => NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs.license} | 0 ...k.mjs.map => NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs.map} | 2 +- ...nk.mjs => NcFormBoxButton-DQYM40Lb-91L-5JKl.chunk.mjs} | 4 ++-- ...> NcFormBoxButton-DQYM40Lb-91L-5JKl.chunk.mjs.license} | 0 ...ap => NcFormBoxButton-DQYM40Lb-91L-5JKl.chunk.mjs.map} | 2 +- ...8.chunk.mjs => NcListItem-CSlWfWZ1-CBvWAfK6.chunk.mjs} | 4 ++-- ...nse => NcListItem-CSlWfWZ1-CBvWAfK6.chunk.mjs.license} | 0 ...mjs.map => NcListItem-CSlWfWZ1-CBvWAfK6.chunk.mjs.map} | 2 +- ...odal-BX64wQqg.chunk.mjs => NcModal-DnfAQoZ9.chunk.mjs} | 4 ++-- ...unk.mjs.license => NcModal-DnfAQoZ9.chunk.mjs.license} | 0 ...4wQqg.chunk.mjs.map => NcModal-DnfAQoZ9.chunk.mjs.map} | 2 +- ...mjs => NcProfileHoverCard-nmkKoCB1-Bi8nhhKx.chunk.mjs} | 8 ++++---- ...cProfileHoverCard-nmkKoCB1-Bi8nhhKx.chunk.mjs.license} | 0 ...=> NcProfileHoverCard-nmkKoCB1-Bi8nhhKx.chunk.mjs.map} | 2 +- ...xCD.chunk.mjs => NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs} | 4 ++-- ...cense => NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs.license} | 0 ...k.mjs.map => NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs.map} | 2 +- ...hunk.mjs => NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs} | 4 ++-- ... => NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs.license} | 0 ....map => NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs.map} | 2 +- ....chunk.mjs => NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs} | 4 ++-- ...se => NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs.license} | 0 ...js.map => NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs.map} | 2 +- ...chunk.mjs => NcUserBubble-1YlD_SE1-Bxtsf50L.chunk.mjs} | 4 ++-- ...e => NcUserBubble-1YlD_SE1-Bxtsf50L.chunk.mjs.license} | 0 ...s.map => NcUserBubble-1YlD_SE1-Bxtsf50L.chunk.mjs.map} | 2 +- ...pr.chunk.mjs => PhotosFiltersInput-COzekdNa.chunk.mjs} | 4 ++-- ...ense => PhotosFiltersInput-COzekdNa.chunk.mjs.license} | 0 ....mjs.map => PhotosFiltersInput-COzekdNa.chunk.mjs.map} | 2 +- ...PkjCFCEF.chunk.mjs => PhotosPicker-DM_dx10_.chunk.mjs} | 4 ++-- ...js.license => PhotosPicker-DM_dx10_.chunk.mjs.license} | 0 ....chunk.mjs.map => PhotosPicker-DM_dx10_.chunk.mjs.map} | 2 +- ...ab-DrUKF6tD.chunk.mjs => PhotosTab-CElZCAQv.chunk.mjs} | 4 ++-- ...k.mjs.license => PhotosTab-CElZCAQv.chunk.mjs.license} | 0 ...6tD.chunk.mjs.map => PhotosTab-CElZCAQv.chunk.mjs.map} | 2 +- ...CyvVnhoh.chunk.mjs => PlaceContent-BI1EoUyA.chunk.mjs} | 4 ++-- ...js.license => PlaceContent-BI1EoUyA.chunk.mjs.license} | 0 ....chunk.mjs.map => PlaceContent-BI1EoUyA.chunk.mjs.map} | 2 +- ...w-CC27Lfbk.chunk.mjs => PlacesView-BRYD_k_X.chunk.mjs} | 4 ++-- ....mjs.license => PlacesView-BRYD_k_X.chunk.mjs.license} | 0 ...bk.chunk.mjs.map => PlacesView-BRYD_k_X.chunk.mjs.map} | 2 +- ...fe.chunk.mjs => PublicAlbumContent-DRkOjgfk.chunk.mjs} | 6 +++--- ...ense => PublicAlbumContent-DRkOjgfk.chunk.mjs.license} | 0 ....mjs.map => PublicAlbumContent-DRkOjgfk.chunk.mjs.map} | 2 +- ...-4.chunk.mjs => SharedAlbumContent-DXvmVQga.chunk.mjs} | 4 ++-- ...ense => SharedAlbumContent-DXvmVQga.chunk.mjs.license} | 0 ....mjs.map => SharedAlbumContent-DXvmVQga.chunk.mjs.map} | 2 +- ...DTxKsPq_.chunk.mjs => SharedAlbums-BLlssgcg.chunk.mjs} | 4 ++-- ...js.license => SharedAlbums-BLlssgcg.chunk.mjs.license} | 0 ....chunk.mjs.map => SharedAlbums-BLlssgcg.chunk.mjs.map} | 2 +- ...t-BtufHiLf.chunk.mjs => TagContent-DnJZXxxV.chunk.mjs} | 4 ++-- ....mjs.license => TagContent-DnJZXxxV.chunk.mjs.license} | 0 ...Lf.chunk.mjs.map => TagContent-DnJZXxxV.chunk.mjs.map} | 2 +- ...iew-DCI5RMEz.chunk.mjs => TagsView-CzXD8E4U.chunk.mjs} | 4 ++-- ...nk.mjs.license => TagsView-CzXD8E4U.chunk.mjs.license} | 0 ...RMEz.chunk.mjs.map => TagsView-CzXD8E4U.chunk.mjs.map} | 2 +- ...BhepT99y.chunk.mjs => TimelineView-CNFqZYww.chunk.mjs} | 4 ++-- ...js.license => TimelineView-CNFqZYww.chunk.mjs.license} | 0 ....chunk.mjs.map => TimelineView-CNFqZYww.chunk.mjs.map} | 2 +- ...SzNPO.chunk.mjs => UnassignedFaces-D6Y6ECRz.chunk.mjs} | 4 ++-- ...license => UnassignedFaces-D6Y6ECRz.chunk.mjs.license} | 0 ...unk.mjs.map => UnassignedFaces-D6Y6ECRz.chunk.mjs.map} | 2 +- ...ters-D7TE18Fs.chunk.mjs => filters-BLRUH4B3.chunk.mjs} | 4 ++-- ...unk.mjs.license => filters-BLRUH4B3.chunk.mjs.license} | 0 ...E18Fs.chunk.mjs.map => filters-BLRUH4B3.chunk.mjs.map} | 2 +- js/icons-DCSM00Rh.chunk.mjs | 2 ++ ...chunk.mjs.license => icons-DCSM00Rh.chunk.mjs.license} | 2 +- js/icons-DCSM00Rh.chunk.mjs.map | 1 + js/icons-Du8Q1knx.chunk.mjs | 2 -- js/icons-Du8Q1knx.chunk.mjs.map | 1 - js/{index-CFgokVom.chunk.mjs => index-N1TdnZd5.chunk.mjs} | 4 ++-- ...chunk.mjs.license => index-N1TdnZd5.chunk.mjs.license} | 0 ...FgokVom.chunk.mjs.map => index-N1TdnZd5.chunk.mjs.map} | 2 +- ...nSNTht.chunk.mjs => index-SPoS3_zU-BiaeHne1.chunk.mjs} | 8 ++++---- ....license => index-SPoS3_zU-BiaeHne1.chunk.mjs.license} | 0 ...hunk.mjs.map => index-SPoS3_zU-BiaeHne1.chunk.mjs.map} | 2 +- js/photos-dashboard.mjs | 2 +- js/photos-main.mjs | 2 +- js/photos-public.mjs | 2 +- js/photos-sidebar.mjs | 4 ++-- ...I5p.chunk.mjs => useFormatDateTime-yGVH7_h2.chunk.mjs} | 4 ++-- ...cense => useFormatDateTime-yGVH7_h2.chunk.mjs.license} | 0 ...k.mjs.map => useFormatDateTime-yGVH7_h2.chunk.mjs.map} | 2 +- ...ey-oP-0fLfr.chunk.mjs => useHotKey-CZEtuasP.chunk.mjs} | 4 ++-- ...k.mjs.license => useHotKey-CZEtuasP.chunk.mjs.license} | 0 ...Lfr.chunk.mjs.map => useHotKey-CZEtuasP.chunk.mjs.map} | 2 +- js/{video-DVVFoi8e.chunk.mjs => video-B2A2Ed33.chunk.mjs} | 6 +++--- ...chunk.mjs.license => video-B2A2Ed33.chunk.mjs.license} | 0 ...VVFoi8e.chunk.mjs.map => video-B2A2Ed33.chunk.mjs.map} | 2 +- 150 files changed, 158 insertions(+), 158 deletions(-) rename js/{ActionFavorite-lfvCJO5o.chunk.mjs => ActionFavorite-BIri36lV.chunk.mjs} (87%) rename js/{ActionFavorite-lfvCJO5o.chunk.mjs.license => ActionFavorite-BIri36lV.chunk.mjs.license} (100%) rename js/{ActionFavorite-lfvCJO5o.chunk.mjs.map => ActionFavorite-BIri36lV.chunk.mjs.map} (97%) rename js/{AlbumContent-BiB6a0w2.chunk.mjs => AlbumContent-DdghloKe.chunk.mjs} (85%) rename js/{AlbumContent-BiB6a0w2.chunk.mjs.license => AlbumContent-DdghloKe.chunk.mjs.license} (100%) rename js/{AlbumContent-BiB6a0w2.chunk.mjs.map => AlbumContent-DdghloKe.chunk.mjs.map} (99%) rename js/{AlbumForm-DoWypGG2.chunk.mjs => AlbumForm-BgUJaoaO.chunk.mjs} (97%) rename js/{AlbumForm-DoWypGG2.chunk.mjs.license => AlbumForm-BgUJaoaO.chunk.mjs.license} (100%) rename js/{AlbumForm-DoWypGG2.chunk.mjs.map => AlbumForm-BgUJaoaO.chunk.mjs.map} (99%) rename js/{AlbumsView-BUHTq9bU.chunk.mjs => AlbumsView-DJ3yiAWL.chunk.mjs} (77%) rename js/{AlbumsView-BUHTq9bU.chunk.mjs.license => AlbumsView-DJ3yiAWL.chunk.mjs.license} (100%) rename js/{AlbumsView-BUHTq9bU.chunk.mjs.map => AlbumsView-DJ3yiAWL.chunk.mjs.map} (98%) rename js/{CollectionContent-x7GqGEWH.chunk.mjs => CollectionContent-CqxKIviG.chunk.mjs} (90%) rename js/{CollectionContent-x7GqGEWH.chunk.mjs.license => CollectionContent-CqxKIviG.chunk.mjs.license} (100%) rename js/{CollectionContent-x7GqGEWH.chunk.mjs.map => CollectionContent-CqxKIviG.chunk.mjs.map} (98%) rename js/{CollectionsList-CuML8IrY.chunk.mjs => CollectionsList-DAU5uskw.chunk.mjs} (91%) rename js/{CollectionsList-CuML8IrY.chunk.mjs.license => CollectionsList-DAU5uskw.chunk.mjs.license} (100%) rename js/{CollectionsList-CuML8IrY.chunk.mjs.map => CollectionsList-DAU5uskw.chunk.mjs.map} (98%) rename js/{ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs => ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs} (96%) rename js/{ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.license => ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.license} (100%) rename js/{ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.map => ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.map} (99%) rename js/{FaceContent-BJijunbq.chunk.mjs => FaceContent-CIurv2o6.chunk.mjs} (93%) rename js/{FaceContent-BJijunbq.chunk.mjs.license => FaceContent-CIurv2o6.chunk.mjs.license} (100%) rename js/{FaceContent-BJijunbq.chunk.mjs.map => FaceContent-CIurv2o6.chunk.mjs.map} (99%) rename js/{FaceCover-BZKfSTyN.chunk.mjs => FaceCover-aZGWm4v4.chunk.mjs} (97%) rename js/{FaceCover-BZKfSTyN.chunk.mjs.license => FaceCover-aZGWm4v4.chunk.mjs.license} (100%) rename js/{FaceCover-BZKfSTyN.chunk.mjs.map => FaceCover-aZGWm4v4.chunk.mjs.map} (99%) rename js/{FaceMergeForm-CXfxVDPY.chunk.mjs => FaceMergeForm-BsPjp4ll.chunk.mjs} (84%) rename js/{FaceMergeForm-CXfxVDPY.chunk.mjs.license => FaceMergeForm-BsPjp4ll.chunk.mjs.license} (100%) rename js/{FaceMergeForm-CXfxVDPY.chunk.mjs.map => FaceMergeForm-BsPjp4ll.chunk.mjs.map} (97%) rename js/{FacesView-Dt3mzO9A.chunk.mjs => FacesView-CREGwa7w.chunk.mjs} (92%) rename js/{FacesView-Dt3mzO9A.chunk.mjs.license => FacesView-CREGwa7w.chunk.mjs.license} (100%) rename js/{FacesView-Dt3mzO9A.chunk.mjs.map => FacesView-CREGwa7w.chunk.mjs.map} (99%) rename js/{FileComponent-CYcuW4fI.chunk.mjs => FileComponent-CIkKxlac.chunk.mjs} (98%) rename js/{FileComponent-CYcuW4fI.chunk.mjs.license => FileComponent-CIkKxlac.chunk.mjs.license} (100%) rename js/{FileComponent-CYcuW4fI.chunk.mjs.map => FileComponent-CIkKxlac.chunk.mjs.map} (99%) rename js/{FilesSelectionMixin-_WfmSvdO.chunk.mjs => FilesSelectionMixin-QyiriVe4.chunk.mjs} (98%) rename js/{FilesSelectionMixin-_WfmSvdO.chunk.mjs.license => FilesSelectionMixin-QyiriVe4.chunk.mjs.license} (100%) rename js/{FilesSelectionMixin-_WfmSvdO.chunk.mjs.map => FilesSelectionMixin-QyiriVe4.chunk.mjs.map} (99%) rename js/{FoldersView-BRFRCvSe.chunk.mjs => FoldersView-DhVFd5R9.chunk.mjs} (97%) rename js/{FoldersView-BRFRCvSe.chunk.mjs.license => FoldersView-DhVFd5R9.chunk.mjs.license} (100%) rename js/{FoldersView-BRFRCvSe.chunk.mjs.map => FoldersView-DhVFd5R9.chunk.mjs.map} (99%) rename js/{HeaderNavigation-Cs3s9UVW.chunk.mjs => HeaderNavigation-NTIRuixF.chunk.mjs} (93%) rename js/{HeaderNavigation-Cs3s9UVW.chunk.mjs.license => HeaderNavigation-NTIRuixF.chunk.mjs.license} (100%) rename js/{HeaderNavigation-Cs3s9UVW.chunk.mjs.map => HeaderNavigation-NTIRuixF.chunk.mjs.map} (98%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs => InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs} (83%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.license => InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.license} (100%) rename js/{InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.map => InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.map} (99%) rename js/{NcActions-C4f9MXug-FA3YIyzG.chunk.mjs => NcActions-C4f9MXug-BC_2VOkH.chunk.mjs} (99%) rename js/{NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.license => NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.license} (100%) rename js/{NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.map => NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.map} (99%) rename js/{NcAvatar-BbHwxwyd-B4FduCgL.chunk.mjs => NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs} (98%) rename js/{NcAvatar-BbHwxwyd-B4FduCgL.chunk.mjs.license => NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs.license} (100%) rename js/{NcAvatar-BbHwxwyd-B4FduCgL.chunk.mjs.map => NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs.map} (99%) rename js/{NcDateTime-enXYuwj8-CgQNgh_Q.chunk.mjs => NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs} (88%) rename js/{NcDateTime-enXYuwj8-CgQNgh_Q.chunk.mjs.license => NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs.license} (100%) rename js/{NcDateTime-enXYuwj8-CgQNgh_Q.chunk.mjs.map => NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs.map} (98%) rename js/{NcDateTimePicker-Bg7orwJW.chunk.mjs => NcDateTimePicker-RSLBAkGn.chunk.mjs} (99%) rename js/{NcDateTimePicker-Bg7orwJW.chunk.mjs.license => NcDateTimePicker-RSLBAkGn.chunk.mjs.license} (100%) rename js/{NcDateTimePicker-Bg7orwJW.chunk.mjs.map => NcDateTimePicker-RSLBAkGn.chunk.mjs.map} (99%) rename js/{NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs => NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs} (95%) rename js/{NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs.license => NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs.license} (100%) rename js/{NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs.map => NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs.map} (99%) rename js/{NcFormBoxButton-DQYM40Lb-DYhdxO-h.chunk.mjs => NcFormBoxButton-DQYM40Lb-91L-5JKl.chunk.mjs} (97%) rename js/{NcFormBoxButton-DQYM40Lb-DYhdxO-h.chunk.mjs.license => NcFormBoxButton-DQYM40Lb-91L-5JKl.chunk.mjs.license} (100%) rename js/{NcFormBoxButton-DQYM40Lb-DYhdxO-h.chunk.mjs.map => NcFormBoxButton-DQYM40Lb-91L-5JKl.chunk.mjs.map} (99%) rename js/{NcListItem-CSlWfWZ1-BazGR5C8.chunk.mjs => NcListItem-CSlWfWZ1-CBvWAfK6.chunk.mjs} (98%) rename js/{NcListItem-CSlWfWZ1-BazGR5C8.chunk.mjs.license => NcListItem-CSlWfWZ1-CBvWAfK6.chunk.mjs.license} (100%) rename js/{NcListItem-CSlWfWZ1-BazGR5C8.chunk.mjs.map => NcListItem-CSlWfWZ1-CBvWAfK6.chunk.mjs.map} (99%) rename js/{NcModal-BX64wQqg.chunk.mjs => NcModal-DnfAQoZ9.chunk.mjs} (98%) rename js/{NcModal-BX64wQqg.chunk.mjs.license => NcModal-DnfAQoZ9.chunk.mjs.license} (100%) rename js/{NcModal-BX64wQqg.chunk.mjs.map => NcModal-DnfAQoZ9.chunk.mjs.map} (99%) rename js/{NcProfileHoverCard-nmkKoCB1-CFFOOBIB.chunk.mjs => NcProfileHoverCard-nmkKoCB1-Bi8nhhKx.chunk.mjs} (99%) rename js/{NcProfileHoverCard-nmkKoCB1-CFFOOBIB.chunk.mjs.license => NcProfileHoverCard-nmkKoCB1-Bi8nhhKx.chunk.mjs.license} (100%) rename js/{NcProfileHoverCard-nmkKoCB1-CFFOOBIB.chunk.mjs.map => NcProfileHoverCard-nmkKoCB1-Bi8nhhKx.chunk.mjs.map} (99%) rename js/{NcSelect-COY5TV2U-Bx6XZxCD.chunk.mjs => NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs} (99%) rename js/{NcSelect-COY5TV2U-Bx6XZxCD.chunk.mjs.license => NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs.license} (100%) rename js/{NcSelect-COY5TV2U-Bx6XZxCD.chunk.mjs.map => NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs.map} (99%) rename js/{NcSelectUsers-BoPfmCbV-COskLcy3.chunk.mjs => NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs} (95%) rename js/{NcSelectUsers-BoPfmCbV-COskLcy3.chunk.mjs.license => NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs.license} (100%) rename js/{NcSelectUsers-BoPfmCbV-COskLcy3.chunk.mjs.map => NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs.map} (99%) rename js/{NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs => NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs} (98%) rename js/{NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs.license => NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs.license} (100%) rename js/{NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs.map => NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs.map} (99%) rename js/{NcUserBubble-1YlD_SE1-DKWD8OUj.chunk.mjs => NcUserBubble-1YlD_SE1-Bxtsf50L.chunk.mjs} (89%) rename js/{NcUserBubble-1YlD_SE1-DKWD8OUj.chunk.mjs.license => NcUserBubble-1YlD_SE1-Bxtsf50L.chunk.mjs.license} (100%) rename js/{NcUserBubble-1YlD_SE1-DKWD8OUj.chunk.mjs.map => NcUserBubble-1YlD_SE1-Bxtsf50L.chunk.mjs.map} (99%) rename js/{PhotosFiltersInput-CvPRrapr.chunk.mjs => PhotosFiltersInput-COzekdNa.chunk.mjs} (94%) rename js/{PhotosFiltersInput-CvPRrapr.chunk.mjs.license => PhotosFiltersInput-COzekdNa.chunk.mjs.license} (100%) rename js/{PhotosFiltersInput-CvPRrapr.chunk.mjs.map => PhotosFiltersInput-COzekdNa.chunk.mjs.map} (99%) rename js/{PhotosPicker-PkjCFCEF.chunk.mjs => PhotosPicker-DM_dx10_.chunk.mjs} (92%) rename js/{PhotosPicker-PkjCFCEF.chunk.mjs.license => PhotosPicker-DM_dx10_.chunk.mjs.license} (100%) rename js/{PhotosPicker-PkjCFCEF.chunk.mjs.map => PhotosPicker-DM_dx10_.chunk.mjs.map} (99%) rename js/{PhotosTab-DrUKF6tD.chunk.mjs => PhotosTab-CElZCAQv.chunk.mjs} (99%) rename js/{PhotosTab-DrUKF6tD.chunk.mjs.license => PhotosTab-CElZCAQv.chunk.mjs.license} (100%) rename js/{PhotosTab-DrUKF6tD.chunk.mjs.map => PhotosTab-CElZCAQv.chunk.mjs.map} (99%) rename js/{PlaceContent-CyvVnhoh.chunk.mjs => PlaceContent-BI1EoUyA.chunk.mjs} (87%) rename js/{PlaceContent-CyvVnhoh.chunk.mjs.license => PlaceContent-BI1EoUyA.chunk.mjs.license} (100%) rename js/{PlaceContent-CyvVnhoh.chunk.mjs.map => PlaceContent-BI1EoUyA.chunk.mjs.map} (98%) rename js/{PlacesView-CC27Lfbk.chunk.mjs => PlacesView-BRYD_k_X.chunk.mjs} (86%) rename js/{PlacesView-CC27Lfbk.chunk.mjs.license => PlacesView-BRYD_k_X.chunk.mjs.license} (100%) rename js/{PlacesView-CC27Lfbk.chunk.mjs.map => PlacesView-BRYD_k_X.chunk.mjs.map} (98%) rename js/{PublicAlbumContent-6Paiahfe.chunk.mjs => PublicAlbumContent-DRkOjgfk.chunk.mjs} (99%) rename js/{PublicAlbumContent-6Paiahfe.chunk.mjs.license => PublicAlbumContent-DRkOjgfk.chunk.mjs.license} (100%) rename js/{PublicAlbumContent-6Paiahfe.chunk.mjs.map => PublicAlbumContent-DRkOjgfk.chunk.mjs.map} (99%) rename js/{SharedAlbumContent-DUZuCW-4.chunk.mjs => SharedAlbumContent-DXvmVQga.chunk.mjs} (85%) rename js/{SharedAlbumContent-DUZuCW-4.chunk.mjs.license => SharedAlbumContent-DXvmVQga.chunk.mjs.license} (100%) rename js/{SharedAlbumContent-DUZuCW-4.chunk.mjs.map => SharedAlbumContent-DXvmVQga.chunk.mjs.map} (99%) rename js/{SharedAlbums-DTxKsPq_.chunk.mjs => SharedAlbums-BLlssgcg.chunk.mjs} (83%) rename js/{SharedAlbums-DTxKsPq_.chunk.mjs.license => SharedAlbums-BLlssgcg.chunk.mjs.license} (100%) rename js/{SharedAlbums-DTxKsPq_.chunk.mjs.map => SharedAlbums-BLlssgcg.chunk.mjs.map} (98%) rename js/{TagContent-BtufHiLf.chunk.mjs => TagContent-DnJZXxxV.chunk.mjs} (89%) rename js/{TagContent-BtufHiLf.chunk.mjs.license => TagContent-DnJZXxxV.chunk.mjs.license} (100%) rename js/{TagContent-BtufHiLf.chunk.mjs.map => TagContent-DnJZXxxV.chunk.mjs.map} (99%) rename js/{TagsView-DCI5RMEz.chunk.mjs => TagsView-CzXD8E4U.chunk.mjs} (95%) rename js/{TagsView-DCI5RMEz.chunk.mjs.license => TagsView-CzXD8E4U.chunk.mjs.license} (100%) rename js/{TagsView-DCI5RMEz.chunk.mjs.map => TagsView-CzXD8E4U.chunk.mjs.map} (99%) rename js/{TimelineView-BhepT99y.chunk.mjs => TimelineView-CNFqZYww.chunk.mjs} (89%) rename js/{TimelineView-BhepT99y.chunk.mjs.license => TimelineView-CNFqZYww.chunk.mjs.license} (100%) rename js/{TimelineView-BhepT99y.chunk.mjs.map => TimelineView-CNFqZYww.chunk.mjs.map} (99%) rename js/{UnassignedFaces-CN2SzNPO.chunk.mjs => UnassignedFaces-D6Y6ECRz.chunk.mjs} (89%) rename js/{UnassignedFaces-CN2SzNPO.chunk.mjs.license => UnassignedFaces-D6Y6ECRz.chunk.mjs.license} (100%) rename js/{UnassignedFaces-CN2SzNPO.chunk.mjs.map => UnassignedFaces-D6Y6ECRz.chunk.mjs.map} (99%) rename js/{filters-D7TE18Fs.chunk.mjs => filters-BLRUH4B3.chunk.mjs} (98%) rename js/{filters-D7TE18Fs.chunk.mjs.license => filters-BLRUH4B3.chunk.mjs.license} (100%) rename js/{filters-D7TE18Fs.chunk.mjs.map => filters-BLRUH4B3.chunk.mjs.map} (99%) create mode 100644 js/icons-DCSM00Rh.chunk.mjs rename js/{icons-Du8Q1knx.chunk.mjs.license => icons-DCSM00Rh.chunk.mjs.license} (94%) create mode 100644 js/icons-DCSM00Rh.chunk.mjs.map delete mode 100644 js/icons-Du8Q1knx.chunk.mjs delete mode 100644 js/icons-Du8Q1knx.chunk.mjs.map rename js/{index-CFgokVom.chunk.mjs => index-N1TdnZd5.chunk.mjs} (99%) rename js/{index-CFgokVom.chunk.mjs.license => index-N1TdnZd5.chunk.mjs.license} (100%) rename js/{index-CFgokVom.chunk.mjs.map => index-N1TdnZd5.chunk.mjs.map} (99%) rename js/{index-SPoS3_zU-NmnSNTht.chunk.mjs => index-SPoS3_zU-BiaeHne1.chunk.mjs} (99%) rename js/{index-SPoS3_zU-NmnSNTht.chunk.mjs.license => index-SPoS3_zU-BiaeHne1.chunk.mjs.license} (100%) rename js/{index-SPoS3_zU-NmnSNTht.chunk.mjs.map => index-SPoS3_zU-BiaeHne1.chunk.mjs.map} (99%) rename js/{useFormatDateTime-BO2tHI5p.chunk.mjs => useFormatDateTime-yGVH7_h2.chunk.mjs} (88%) rename js/{useFormatDateTime-BO2tHI5p.chunk.mjs.license => useFormatDateTime-yGVH7_h2.chunk.mjs.license} (100%) rename js/{useFormatDateTime-BO2tHI5p.chunk.mjs.map => useFormatDateTime-yGVH7_h2.chunk.mjs.map} (98%) rename js/{useHotKey-oP-0fLfr.chunk.mjs => useHotKey-CZEtuasP.chunk.mjs} (91%) rename js/{useHotKey-oP-0fLfr.chunk.mjs.license => useHotKey-CZEtuasP.chunk.mjs.license} (100%) rename js/{useHotKey-oP-0fLfr.chunk.mjs.map => useHotKey-CZEtuasP.chunk.mjs.map} (98%) rename js/{video-DVVFoi8e.chunk.mjs => video-B2A2Ed33.chunk.mjs} (95%) rename js/{video-DVVFoi8e.chunk.mjs.license => video-B2A2Ed33.chunk.mjs.license} (100%) rename js/{video-DVVFoi8e.chunk.mjs.map => video-B2A2Ed33.chunk.mjs.map} (99%) diff --git a/js/ActionFavorite-lfvCJO5o.chunk.mjs b/js/ActionFavorite-BIri36lV.chunk.mjs similarity index 87% rename from js/ActionFavorite-lfvCJO5o.chunk.mjs rename to js/ActionFavorite-BIri36lV.chunk.mjs index ec0524973..ec0497d76 100644 --- a/js/ActionFavorite-lfvCJO5o.chunk.mjs +++ b/js/ActionFavorite-BIri36lV.chunk.mjs @@ -1,2 +1,2 @@ -import{d as o,a as s}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as i}from"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import{S as a,a as r,n as l}from"./icons-Du8Q1knx.chunk.mjs";const c=o({name:"ActionFavorite",components:{Star:r,StarOutline:a,NcActionButton:i},props:{selectedFileIds:{type:Array,required:!0}},computed:{files(){return this.$store.state.files.files},shouldFavoriteSelection(){return this.selectedFileIds.some(t=>this.files[t].attributes.favorite===0)}},methods:{async favoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:1})},async unFavoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:0})},t:s}});var n=function(){var t=this,e=t._self._c;return t._self._setupProxy,t.shouldFavoriteSelection?e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Mark selection as favorite")},on:{click:t.favoriteSelection}},[t._v(" "+t._s(t.t("photos","Add selection to favorites"))+" "),e("StarOutline",{attrs:{slot:"icon"},slot:"icon"})],1):e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Remove selection from favorites")},on:{click:t.unFavoriteSelection}},[t._v(" "+t._s(t.t("photos","Remove selection from favorites"))+" "),e("Star",{attrs:{slot:"icon"},slot:"icon"})],1)},f=[],v=l(c,n,f,!1,null,null);const h=v.exports;export{h as A}; -//# sourceMappingURL=ActionFavorite-lfvCJO5o.chunk.mjs.map +import{d as o,a as s}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as i}from"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import{S as a,a as r,n as l}from"./icons-DCSM00Rh.chunk.mjs";const c=o({name:"ActionFavorite",components:{Star:r,StarOutline:a,NcActionButton:i},props:{selectedFileIds:{type:Array,required:!0}},computed:{files(){return this.$store.state.files.files},shouldFavoriteSelection(){return this.selectedFileIds.some(t=>this.files[t].attributes.favorite===0)}},methods:{async favoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:1})},async unFavoriteSelection(){await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:0})},t:s}});var n=function(){var t=this,e=t._self._c;return t._self._setupProxy,t.shouldFavoriteSelection?e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Mark selection as favorite")},on:{click:t.favoriteSelection}},[t._v(" "+t._s(t.t("photos","Add selection to favorites"))+" "),e("StarOutline",{attrs:{slot:"icon"},slot:"icon"})],1):e("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Remove selection from favorites")},on:{click:t.unFavoriteSelection}},[t._v(" "+t._s(t.t("photos","Remove selection from favorites"))+" "),e("Star",{attrs:{slot:"icon"},slot:"icon"})],1)},f=[],v=l(c,n,f,!1,null,null);const h=v.exports;export{h as A}; +//# sourceMappingURL=ActionFavorite-BIri36lV.chunk.mjs.map diff --git a/js/ActionFavorite-lfvCJO5o.chunk.mjs.license b/js/ActionFavorite-BIri36lV.chunk.mjs.license similarity index 100% rename from js/ActionFavorite-lfvCJO5o.chunk.mjs.license rename to js/ActionFavorite-BIri36lV.chunk.mjs.license diff --git a/js/ActionFavorite-lfvCJO5o.chunk.mjs.map b/js/ActionFavorite-BIri36lV.chunk.mjs.map similarity index 97% rename from js/ActionFavorite-lfvCJO5o.chunk.mjs.map rename to js/ActionFavorite-BIri36lV.chunk.mjs.map index d92fc7412..8c8d45865 100644 --- a/js/ActionFavorite-lfvCJO5o.chunk.mjs.map +++ b/js/ActionFavorite-BIri36lV.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ActionFavorite-lfvCJO5o.chunk.mjs","sources":["../src/components/Actions/ActionFavorite.vue"],"sourcesContent":["\n\n\n\n"],"names":["_sfc_main","defineComponent","Star","StarOutline","NcActionButton","fileId","t"],"mappings":"wLAgCA,MAAAA,EAAAC,EAAA,CACA,KAAA,iBACA,WAAA,CACA,KAAAC,EACA,YAAAC,EACA,eAAAC,CAAA,EAGA,MAAA,CACA,gBAAA,CACA,KAAA,MACA,SAAA,EAAA,CACA,EAGA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,yBAAA,CAEA,OAAA,KAAA,gBAAA,KAAAC,GAAA,KAAA,MAAAA,CAAA,EAAA,WAAA,WAAA,CAAA,CACA,CAAA,EAGA,QAAA,CACA,MAAA,mBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAEA,MAAA,qBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAAA,EAEAC,CAAA,CAEA,CAAA"} \ No newline at end of file +{"version":3,"file":"ActionFavorite-BIri36lV.chunk.mjs","sources":["../src/components/Actions/ActionFavorite.vue"],"sourcesContent":["\n\n\n\n"],"names":["_sfc_main","defineComponent","Star","StarOutline","NcActionButton","fileId","t"],"mappings":"wLAgCA,MAAAA,EAAAC,EAAA,CACA,KAAA,iBACA,WAAA,CACA,KAAAC,EACA,YAAAC,EACA,eAAAC,CAAA,EAGA,MAAA,CACA,gBAAA,CACA,KAAA,MACA,SAAA,EAAA,CACA,EAGA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,yBAAA,CAEA,OAAA,KAAA,gBAAA,KAAAC,GAAA,KAAA,MAAAA,CAAA,EAAA,WAAA,WAAA,CAAA,CACA,CAAA,EAGA,QAAA,CACA,MAAA,mBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAEA,MAAA,qBAAA,CACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,EAAA,CACA,EAAA,EAEAC,CAAA,CAEA,CAAA"} \ No newline at end of file diff --git a/js/AlbumContent-BiB6a0w2.chunk.mjs b/js/AlbumContent-DdghloKe.chunk.mjs similarity index 85% rename from js/AlbumContent-BiB6a0w2.chunk.mjs rename to js/AlbumContent-DdghloKe.chunk.mjs index 26695db62..28324756d 100644 --- a/js/AlbumContent-BiB6a0w2.chunk.mjs +++ b/js/AlbumContent-DdghloKe.chunk.mjs @@ -1,2 +1,2 @@ -import{a as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as s,l as r,q as n,o as m,v as c}from"./index-msNec4Xs.chunk.mjs";import{b as u,N as h}from"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import{N as d}from"./index-SPoS3_zU-NmnSNTht.chunk.mjs";import{N as b}from"./NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs";import{N as p}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as f}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{N as C}from"./NcModal-BX64wQqg.chunk.mjs";import{b as A,P as N,c as g,M as F,d as _,D as v,C as y,n as w}from"./icons-Du8Q1knx.chunk.mjs";import{A as k}from"./ActionFavorite-lfvCJO5o.chunk.mjs";import{C as S,A as M}from"./AlbumForm-DoWypGG2.chunk.mjs";import{C as P}from"./CollectionContent-x7GqGEWH.chunk.mjs";import{H as $}from"./HeaderNavigation-Cs3s9UVW.chunk.mjs";import{P as E}from"./PhotosPicker-PkjCFCEF.chunk.mjs";import{F as I}from"./FetchCollectionContentMixin-DvRwM9PF.chunk.mjs";import{F as O}from"./FetchFilesMixin-iD4CZ3rf.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./video-DVVFoi8e.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import"./useHotKey-oP-0fLfr.chunk.mjs";import"./NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./PhotosFiltersInput-CvPRrapr.chunk.mjs";import"./NcSelect-COY5TV2U-Bx6XZxCD.chunk.mjs";import"./floating-ui.utils.dom-Ddqhmmdk.chunk.mjs";import"./NcAvatar-BbHwxwyd-B4FduCgL.chunk.mjs";import"./NcDateTimePicker-Bg7orwJW.chunk.mjs";import"./NcDateTime-enXYuwj8-CgQNgh_Q.chunk.mjs";import"./useFormatDateTime-BO2tHI5p.chunk.mjs";import"./collectionFetcher-BXa4rOpP.chunk.mjs";import"./index-x9vhq81Z.chunk.mjs";import"./NcSelectUsers-BoPfmCbV-COskLcy3.chunk.mjs";import"./FileComponent-CYcuW4fI.chunk.mjs";import"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import"./NcIconToggleSwitch-CaDISrhm-8yJ7ws72.chunk.mjs";import"./FilesSelectionMixin-_WfmSvdO.chunk.mjs";import"./fileFetcher-CoIlTdaG.chunk.mjs";import"./FilesByMonthMixin-Bqc9j5Q3.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";import"./PhotoSearch-0kWeTDCB.chunk.mjs";import"./he-qSystlHf.chunk.mjs";const B={name:"AlbumContent",components:{ActionFavorite:k,AlbumForm:M,Close:y,CollaboratorsSelectionForm:S,CollectionContent:P,DeleteOutline:v,PhotosPicker:E,HeaderNavigation:$,ImagePlusOutline:_,MapMarkerOutline:F,NcActionButton:h,NcActions:u,NcActionSeparator:d,NcButton:s,NcDialog:b,NcEmptyContent:p,NcLoadingIcon:f,NcModal:C,PencilOutline:g,Plus:N,ShareVariantOutline:A},mixins:[I,O],props:{albumName:{type:String,default:"/"}},setup(){return{isMobile:c()}},data(){return{showAddPhotosModal:!1,showManageCollaboratorView:!1,showEditAlbumForm:!1,loadingAddCollaborators:!1}},computed:{album(){return this.$store.getters.getAlbum(this.albumName)},albumFileIds(){return this.$store.getters.getAlbumFiles(this.albumName)},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},removableSelectedFiles(){return(this.$refs.collectionContent?.selectedFileIds).map(t=>this.$store.state.files.files[t]).filter(t=>t.attributes["photos-album-file-origin"]!=="filters").map(t=>t.fileid.toString())}},async mounted(){this.fetchAlbum(),this.fetchAlbumContent()},methods:{async fetchAlbum(){await this.fetchCollection(this.albumFileName,m)},async fetchAlbumContent(){await this.fetchCollectionFiles(this.albumFileName,n)},async handleAlbumUpdate({album:t,changes:o}){this.showEditAlbumForm=!1,o.includes("name")&&await this.$router.push(`/albums/${t.basename}`),o.includes("filters")&&this.fetchAlbumContent()},async handleFilesPicked(t){this.showAddPhotosModal=!1,await this.$store.dispatch("addFilesToCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToAdd:t}),await this.fetchAlbumContent()},async handleRemoveFilesFromAlbum(t){this.$refs.collectionContent?.onUncheckFiles(t),await this.$store.dispatch("removeFilesFromCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToRemove:t})},async handleDeleteAlbum(){await this.$store.dispatch("deleteCollection",{collectionFileName:this.album?.root+this.album?.path})&&this.$router.push("/albums")},async handleSetCollaborators(t){try{this.loadingAddCollaborators=!0,this.showManageCollaboratorView=!1,await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{collaborators:t}})}catch(o){r.error("Error while setting album collaborators",{error:o})}finally{this.loadingAddCollaborators=!1}},async handleFiltersChange(t){await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{filters:t}}),this.fetchAlbumContent()},t:i}};var D=function(){var t=this,o=t._self._c;return o("div",{staticClass:"album-container"},[o("CollectionContent",{ref:"collectionContent",attrs:{collection:t.album,"collection-file-ids":t.albumFileIds,loading:t.loadingCollection||t.loadingCollectionFiles,error:t.errorFetchingCollection||t.errorFetchingCollectionFiles},scopedSlots:t._u([{key:"header",fn:function({selectedFileIds:e,resetSelection:l}){return o("HeaderNavigation",{key:"navigation",attrs:{loading:t.loadingCollectionFiles,params:{albumName:t.albumName},path:"/"+t.albumName,title:t.albumName},on:{refresh:t.fetchAlbumContent}},[t.album!==void 0&&t.album.attributes.location!==""?o("div",{staticClass:"album__location",attrs:{slot:"subtitle"},slot:"subtitle"},[o("MapMarkerOutline"),t._v(t._s(t.album.attributes.location)+" ")],1):t._e(),o("template",{slot:"default"},[e.length>0?o("NcButton",{attrs:{"aria-label":t.t("photos","Unselect all")},on:{click:l},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Close")]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Unselect all"))+" ")]):t._e()],1),t.album!==void 0?o("template",{slot:"right"},[o("NcButton",{on:{click:function(a){t.showAddPhotosModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Plus",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Add photos to this album"))+" ")]),t.sharingEnabled?o("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Manage collaborators for this album")},on:{click:function(a){t.showManageCollaboratorView=!0}}},[o("ShareVariantOutline",{attrs:{slot:"icon"},slot:"icon"})],1):t._e(),o("NcActions",{attrs:{"aria-label":t.t("photos","Open actions menu")}},[o("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Edit album details")},on:{click:function(a){t.showEditAlbumForm=!0}}},[t._v(" "+t._s(t.t("photos","Edit album details"))+" "),o("PencilOutline",{attrs:{slot:"icon"},slot:"icon"})],1),o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:t.handleDeleteAlbum}},[t._v(" "+t._s(t.t("photos","Delete album"))+" "),o("DeleteOutline",{attrs:{slot:"icon"},slot:"icon"})],1),e.length>0?[o("NcActionSeparator"),o("ActionFavorite",{attrs:{"selected-file-ids":e}}),t.removableSelectedFiles.length!==0?o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(a){return t.handleRemoveFilesFromAlbum(t.removableSelectedFiles)}}},[t._v(" "+t._s(t.t("photos","Remove selection from album"))+" "),o("Close",{attrs:{slot:"icon"},slot:"icon"})],1):t._e()]:t._e()],2)],1):t._e()],2)}}])},[t.album!==void 0&&t.album.attributes.nbItems===0&&!(t.loadingCollectionFiles||t.loadingCollection)?o("NcEmptyContent",{staticClass:"album__empty",attrs:{slot:"empty-content",name:t.t("photos","This album does not have any photos or videos yet!")},slot:"empty-content"},[o("ImagePlusOutline",{attrs:{slot:"icon"},slot:"icon"}),o("NcButton",{staticClass:"album__empty__button",attrs:{slot:"action",variant:"primary","aria-label":t.t("photos","Add photos to this album")},on:{click:function(e){t.showAddPhotosModal=!0}},slot:"action"},[o("Plus",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Add"))+" ")],1)],1):t._e()],1),t.album!==void 0?o("PhotosPicker",{attrs:{open:t.showAddPhotosModal,"blacklist-ids":t.albumFileIds,destination:t.album.basename,name:t.t("photos","Add photos to {albumName}",{albumName:t.albumName},void 0,{escape:!1,sanitize:!1})},on:{"update:open":function(e){t.showAddPhotosModal=e},"files-picked":t.handleFilesPicked}}):t._e(),t.showManageCollaboratorView&&t.album!==void 0?o("NcModal",{attrs:{name:t.t("photos","Manage collaborators")},on:{close:function(e){t.showManageCollaboratorView=!1}}},[o("CollaboratorsSelectionForm",{attrs:{"album-name":t.album.basename,collaborators:t.album.attributes.collaborators},scopedSlots:t._u([{key:"default",fn:function({collaborators:e}){return[o("NcButton",{attrs:{"aria-label":t.t("photos","Save collaborators for this album."),variant:"primary",disabled:t.loadingAddCollaborators},on:{click:function(l){return t.handleSetCollaborators(e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loadingAddCollaborators?o("NcLoadingIcon"):t._e()]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Save"))+" ")])]}}],null,!1,2061546483)})],1):t._e(),t.showEditAlbumForm?o("NcDialog",{attrs:{name:t.t("photos","Edit album details"),"close-on-click-outside":"",size:"normal"},on:{closing:function(e){t.showEditAlbumForm=!1}}},[o("AlbumForm",{attrs:{album:t.album},on:{done:e=>t.handleAlbumUpdate(e)}})],1):t._e()],1)},V=[],x=w(B,D,V,!1,null,"abfcb917");const Mt=x.exports;export{Mt as default}; -//# sourceMappingURL=AlbumContent-BiB6a0w2.chunk.mjs.map +import{a as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as s,l as r,q as n,o as m,v as c}from"./index-msNec4Xs.chunk.mjs";import{b as u,N as h}from"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import{N as d}from"./index-SPoS3_zU-BiaeHne1.chunk.mjs";import{N as b}from"./NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs";import{N as p}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as f}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{N as C}from"./NcModal-DnfAQoZ9.chunk.mjs";import{b as A,P as N,c as g,M as F,d as _,D as v,C as y,n as w}from"./icons-DCSM00Rh.chunk.mjs";import{A as k}from"./ActionFavorite-BIri36lV.chunk.mjs";import{C as S,A as M}from"./AlbumForm-BgUJaoaO.chunk.mjs";import{C as P}from"./CollectionContent-CqxKIviG.chunk.mjs";import{H as $}from"./HeaderNavigation-NTIRuixF.chunk.mjs";import{P as E}from"./PhotosPicker-DM_dx10_.chunk.mjs";import{F as I}from"./FetchCollectionContentMixin-DvRwM9PF.chunk.mjs";import{F as O}from"./FetchFilesMixin-iD4CZ3rf.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./video-B2A2Ed33.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import"./useHotKey-CZEtuasP.chunk.mjs";import"./NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./PhotosFiltersInput-COzekdNa.chunk.mjs";import"./NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs";import"./floating-ui.utils.dom-Ddqhmmdk.chunk.mjs";import"./NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs";import"./NcDateTimePicker-RSLBAkGn.chunk.mjs";import"./NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs";import"./useFormatDateTime-yGVH7_h2.chunk.mjs";import"./collectionFetcher-BXa4rOpP.chunk.mjs";import"./index-x9vhq81Z.chunk.mjs";import"./NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs";import"./FileComponent-CIkKxlac.chunk.mjs";import"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import"./NcIconToggleSwitch-CaDISrhm-8yJ7ws72.chunk.mjs";import"./FilesSelectionMixin-QyiriVe4.chunk.mjs";import"./fileFetcher-CoIlTdaG.chunk.mjs";import"./FilesByMonthMixin-Bqc9j5Q3.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";import"./PhotoSearch-0kWeTDCB.chunk.mjs";import"./he-qSystlHf.chunk.mjs";const B={name:"AlbumContent",components:{ActionFavorite:k,AlbumForm:M,Close:y,CollaboratorsSelectionForm:S,CollectionContent:P,DeleteOutline:v,PhotosPicker:E,HeaderNavigation:$,ImagePlusOutline:_,MapMarkerOutline:F,NcActionButton:h,NcActions:u,NcActionSeparator:d,NcButton:s,NcDialog:b,NcEmptyContent:p,NcLoadingIcon:f,NcModal:C,PencilOutline:g,Plus:N,ShareVariantOutline:A},mixins:[I,O],props:{albumName:{type:String,default:"/"}},setup(){return{isMobile:c()}},data(){return{showAddPhotosModal:!1,showManageCollaboratorView:!1,showEditAlbumForm:!1,loadingAddCollaborators:!1}},computed:{album(){return this.$store.getters.getAlbum(this.albumName)},albumFileIds(){return this.$store.getters.getAlbumFiles(this.albumName)},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},removableSelectedFiles(){return(this.$refs.collectionContent?.selectedFileIds).map(t=>this.$store.state.files.files[t]).filter(t=>t.attributes["photos-album-file-origin"]!=="filters").map(t=>t.fileid.toString())}},async mounted(){this.fetchAlbum(),this.fetchAlbumContent()},methods:{async fetchAlbum(){await this.fetchCollection(this.albumFileName,m)},async fetchAlbumContent(){await this.fetchCollectionFiles(this.albumFileName,n)},async handleAlbumUpdate({album:t,changes:o}){this.showEditAlbumForm=!1,o.includes("name")&&await this.$router.push(`/albums/${t.basename}`),o.includes("filters")&&this.fetchAlbumContent()},async handleFilesPicked(t){this.showAddPhotosModal=!1,await this.$store.dispatch("addFilesToCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToAdd:t}),await this.fetchAlbumContent()},async handleRemoveFilesFromAlbum(t){this.$refs.collectionContent?.onUncheckFiles(t),await this.$store.dispatch("removeFilesFromCollection",{collectionFileName:this.album?.root+this.album?.path,fileIdsToRemove:t})},async handleDeleteAlbum(){await this.$store.dispatch("deleteCollection",{collectionFileName:this.album?.root+this.album?.path})&&this.$router.push("/albums")},async handleSetCollaborators(t){try{this.loadingAddCollaborators=!0,this.showManageCollaboratorView=!1,await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{collaborators:t}})}catch(o){r.error("Error while setting album collaborators",{error:o})}finally{this.loadingAddCollaborators=!1}},async handleFiltersChange(t){await this.$store.dispatch("updateCollection",{collectionFileName:this.album?.root+this.album?.path,properties:{filters:t}}),this.fetchAlbumContent()},t:i}};var D=function(){var t=this,o=t._self._c;return o("div",{staticClass:"album-container"},[o("CollectionContent",{ref:"collectionContent",attrs:{collection:t.album,"collection-file-ids":t.albumFileIds,loading:t.loadingCollection||t.loadingCollectionFiles,error:t.errorFetchingCollection||t.errorFetchingCollectionFiles},scopedSlots:t._u([{key:"header",fn:function({selectedFileIds:e,resetSelection:l}){return o("HeaderNavigation",{key:"navigation",attrs:{loading:t.loadingCollectionFiles,params:{albumName:t.albumName},path:"/"+t.albumName,title:t.albumName},on:{refresh:t.fetchAlbumContent}},[t.album!==void 0&&t.album.attributes.location!==""?o("div",{staticClass:"album__location",attrs:{slot:"subtitle"},slot:"subtitle"},[o("MapMarkerOutline"),t._v(t._s(t.album.attributes.location)+" ")],1):t._e(),o("template",{slot:"default"},[e.length>0?o("NcButton",{attrs:{"aria-label":t.t("photos","Unselect all")},on:{click:l},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Close")]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Unselect all"))+" ")]):t._e()],1),t.album!==void 0?o("template",{slot:"right"},[o("NcButton",{on:{click:function(a){t.showAddPhotosModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Plus",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Add photos to this album"))+" ")]),t.sharingEnabled?o("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Manage collaborators for this album")},on:{click:function(a){t.showManageCollaboratorView=!0}}},[o("ShareVariantOutline",{attrs:{slot:"icon"},slot:"icon"})],1):t._e(),o("NcActions",{attrs:{"aria-label":t.t("photos","Open actions menu")}},[o("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":t.t("photos","Edit album details")},on:{click:function(a){t.showEditAlbumForm=!0}}},[t._v(" "+t._s(t.t("photos","Edit album details"))+" "),o("PencilOutline",{attrs:{slot:"icon"},slot:"icon"})],1),o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:t.handleDeleteAlbum}},[t._v(" "+t._s(t.t("photos","Delete album"))+" "),o("DeleteOutline",{attrs:{slot:"icon"},slot:"icon"})],1),e.length>0?[o("NcActionSeparator"),o("ActionFavorite",{attrs:{"selected-file-ids":e}}),t.removableSelectedFiles.length!==0?o("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(a){return t.handleRemoveFilesFromAlbum(t.removableSelectedFiles)}}},[t._v(" "+t._s(t.t("photos","Remove selection from album"))+" "),o("Close",{attrs:{slot:"icon"},slot:"icon"})],1):t._e()]:t._e()],2)],1):t._e()],2)}}])},[t.album!==void 0&&t.album.attributes.nbItems===0&&!(t.loadingCollectionFiles||t.loadingCollection)?o("NcEmptyContent",{staticClass:"album__empty",attrs:{slot:"empty-content",name:t.t("photos","This album does not have any photos or videos yet!")},slot:"empty-content"},[o("ImagePlusOutline",{attrs:{slot:"icon"},slot:"icon"}),o("NcButton",{staticClass:"album__empty__button",attrs:{slot:"action",variant:"primary","aria-label":t.t("photos","Add photos to this album")},on:{click:function(e){t.showAddPhotosModal=!0}},slot:"action"},[o("Plus",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Add"))+" ")],1)],1):t._e()],1),t.album!==void 0?o("PhotosPicker",{attrs:{open:t.showAddPhotosModal,"blacklist-ids":t.albumFileIds,destination:t.album.basename,name:t.t("photos","Add photos to {albumName}",{albumName:t.albumName},void 0,{escape:!1,sanitize:!1})},on:{"update:open":function(e){t.showAddPhotosModal=e},"files-picked":t.handleFilesPicked}}):t._e(),t.showManageCollaboratorView&&t.album!==void 0?o("NcModal",{attrs:{name:t.t("photos","Manage collaborators")},on:{close:function(e){t.showManageCollaboratorView=!1}}},[o("CollaboratorsSelectionForm",{attrs:{"album-name":t.album.basename,collaborators:t.album.attributes.collaborators},scopedSlots:t._u([{key:"default",fn:function({collaborators:e}){return[o("NcButton",{attrs:{"aria-label":t.t("photos","Save collaborators for this album."),variant:"primary",disabled:t.loadingAddCollaborators},on:{click:function(l){return t.handleSetCollaborators(e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loadingAddCollaborators?o("NcLoadingIcon"):t._e()]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.t("photos","Save"))+" ")])]}}],null,!1,2061546483)})],1):t._e(),t.showEditAlbumForm?o("NcDialog",{attrs:{name:t.t("photos","Edit album details"),"close-on-click-outside":"",size:"normal"},on:{closing:function(e){t.showEditAlbumForm=!1}}},[o("AlbumForm",{attrs:{album:t.album},on:{done:e=>t.handleAlbumUpdate(e)}})],1):t._e()],1)},V=[],x=w(B,D,V,!1,null,"abfcb917");const Mt=x.exports;export{Mt as default}; +//# sourceMappingURL=AlbumContent-DdghloKe.chunk.mjs.map diff --git a/js/AlbumContent-BiB6a0w2.chunk.mjs.license b/js/AlbumContent-DdghloKe.chunk.mjs.license similarity index 100% rename from js/AlbumContent-BiB6a0w2.chunk.mjs.license rename to js/AlbumContent-DdghloKe.chunk.mjs.license diff --git a/js/AlbumContent-BiB6a0w2.chunk.mjs.map b/js/AlbumContent-DdghloKe.chunk.mjs.map similarity index 99% rename from js/AlbumContent-BiB6a0w2.chunk.mjs.map rename to js/AlbumContent-DdghloKe.chunk.mjs.map index 06d69a0f4..1257ed375 100644 --- a/js/AlbumContent-BiB6a0w2.chunk.mjs.map +++ b/js/AlbumContent-DdghloKe.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AlbumContent-BiB6a0w2.chunk.mjs","sources":["../src/views/AlbumContent.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","ActionFavorite","AlbumForm","Close","CollaboratorsSelectionForm","CollectionContent","DeleteOutline","PhotosPicker","HeaderNavigation","ImagePlusOutline","MapMarkerOutline","NcActionButton","NcActions","NcActionSeparator","NcButton","NcDialog","NcEmptyContent","NcLoadingIcon","NcModal","PencilOutline","Plus","ShareVariantOutline","FetchCollectionContentMixin","FetchFilesMixin","useIsMobile","fileId","file","albumsExtraProps","albumFilesExtraProps","album","changes","fileIds","collaborators","error","logger","filters","translate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AlbumContent-DdghloKe.chunk.mjs","sources":["../src/views/AlbumContent.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","ActionFavorite","AlbumForm","Close","CollaboratorsSelectionForm","CollectionContent","DeleteOutline","PhotosPicker","HeaderNavigation","ImagePlusOutline","MapMarkerOutline","NcActionButton","NcActions","NcActionSeparator","NcButton","NcDialog","NcEmptyContent","NcLoadingIcon","NcModal","PencilOutline","Plus","ShareVariantOutline","FetchCollectionContentMixin","FetchFilesMixin","useIsMobile","fileId","file","albumsExtraProps","albumFilesExtraProps","album","changes","fileIds","collaborators","error","logger","filters","translate"],"mappings":"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"} \ No newline at end of file diff --git a/js/AlbumForm-DoWypGG2.chunk.mjs b/js/AlbumForm-BgUJaoaO.chunk.mjs similarity index 97% rename from js/AlbumForm-DoWypGG2.chunk.mjs rename to js/AlbumForm-BgUJaoaO.chunk.mjs index d1ad3de23..741536bc5 100644 --- a/js/AlbumForm-DoWypGG2.chunk.mjs +++ b/js/AlbumForm-BgUJaoaO.chunk.mjs @@ -1,2 +1,2 @@ -import{m,v as p,I as d,a as i}from"./index-CsCSS_KR.chunk.mjs";import{a as s,B as C,n as f,p as y,r as k,g}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as b,l as r,s as n,o as v,H as N,m as c}from"./index-msNec4Xs.chunk.mjs";import{N as L}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{N as F}from"./NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs";import{E as _,o as S,p as w,C as $,n as h,i as A,q as x,M}from"./icons-Du8Q1knx.chunk.mjs";import{P as B,a as P,f as V}from"./PhotosFiltersInput-CvPRrapr.chunk.mjs";import{S as l}from"./index-x9vhq81Z.chunk.mjs";import{N as E}from"./NcSelectUsers-BoPfmCbV-COskLcy3.chunk.mjs";import{F as O}from"./FetchCollectionContentMixin-DvRwM9PF.chunk.mjs";const u="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e",I={name:"CollaboratorsSelectionForm",components:{Close:$,ContentCopy:w,Check:S,Earth:_,NcButton:b,NcSelectUsers:E},mixins:[O],props:{albumName:{type:String,required:!0},collaborators:{type:Array,default:()=>[]},allowPublicLink:{type:Boolean,default:!0}},data(){return{availableCollaborators:{},selectedCollaboratorsKeys:[],currentSearchResults:[],loadingCollaborators:!1,randomId:Math.random().toString().substring(2,10),publicLinkCopied:!1,collaboratorTypes:l,config:{minSearchStringLength:parseInt(OC.config["sharing.minSearchStringLength"],10)||0}}},computed:{searchResults(){return this.currentSearchResults.filter(({id:t})=>t!==y()?.uid).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===l.User?"user":"group",iconSvg:t.type===l.Group?u:void 0})).filter(({key:t})=>!this.selectedCollaboratorsKeys.includes(t))},selectedCollaborators(){return this.selectedCollaboratorsKeys.map(t=>this.availableCollaborators[t])},selectedUsers:{get(){return this.selectedCollaborators.filter(({type:t})=>t!==l.Link).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===l.User?"user":"group",iconSvg:t.type===l.Group?u:void 0}))},set(t){this.selectedCollaboratorsKeys=t.map(({key:e})=>e)}},isPublicLinkSelected(){return this.selectedCollaboratorsKeys.includes(`${l.Link}`)},publicLink(){return this.availableCollaborators[l.Link]},publicLinkURL(){return`${window.location.protocol}//${window.location.host}${f(`apps/photos/public/${this.publicLink.id}`)}`},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)}},watch:{collaborators(t){this.populateCollaborators(t)}},mounted(){this.populateCollaborators(this.collaborators)},methods:{async searchCollaborators(t){if(t!==void 0&&(t=t.trim(),!(t.length{switch(a.source){case"users":return{id:a.id,label:a.label,type:l.User};case"groups":return{id:a.id,label:a.label,type:l.Group};default:throw new Error(`Invalid collaborator source ${a.source}`)}}),this.availableCollaborators={...this.availableCollaborators,...this.currentSearchResults.reduce(this.indexCollaborators,{})}}catch(e){this.errorFetchingCollaborators=e,r.error(this.t("photos","Failed to fetch collaborators list."),{error:e}),n(this.t("photos","Failed to fetch collaborators list."))}finally{this.loadingCollaborators=!1}},populateCollaborators(t){const e=t.reduce(this.indexCollaborators,{});this.selectedCollaboratorsKeys=Object.keys(e),this.availableCollaborators={3:{id:"",label:this.t("photos","Public link"),type:l.Link},...this.availableCollaborators,...e}},indexCollaborators(t,e){return{...t,[`${e.type}${e.type===l.Link?"":":"}${e.type===l.Link?"":e.id}`]:e}},async createPublicLinkForAlbum(){this.selectEntity(`${l.Link}`),await this.updateAlbumCollaborators(),await this.fetchCollection(this.albumFileName,v)},async deletePublicLink(){this.unselectEntity(`${l.Link}`),this.availableCollaborators[3]={id:"",label:this.t("photos","Public link"),type:l.Link},this.publicLinkCopied=!1,await this.updateAlbumCollaborators()},async updateAlbumCollaborators(){try{await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:{collaborators:this.selectedCollaborators}})}catch(t){r.error("[PublicAlbumContent] Error updating album",{error:t}),n(this.t("photos","Failed to update album."))}},async copyPublicLink(){await navigator.clipboard.writeText(this.publicLinkURL),this.publicLinkCopied=!0,setTimeout(()=>{this.publicLinkCopied=!1},1e4)},selectEntity(t){this.selectedCollaboratorsKeys.includes(t)||this.selectedCollaboratorsKeys.push(t)},unselectEntity(t){const e=this.selectedCollaboratorsKeys.indexOf(t);e!==-1&&this.selectedCollaboratorsKeys.splice(e,1)},t:s}};var U=function(){var t=this,e=t._self._c;return e("div",{staticClass:"manage-collaborators"},[e("h2",{staticClass:"manage-collaborators__title"},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]),e("form",{staticClass:"manage-collaborators__form",on:{submit:function(a){a.preventDefault()}}},[e("NcSelectUsers",{attrs:{"input-id":"sharing-search-input","input-label":t.t("photos","Add people or groups who can edit your album"),loading:t.loadingCollaborators,label:"label",filterable:!1,placeholder:t.t("photos","Search people or groups"),"clear-search-on-blur":()=>!1,multiple:!0,"append-to-body":!1,options:t.searchResults},on:{search:t.searchCollaborators,"option:selected":({key:a})=>t.selectEntity(a)},model:{value:t.selectedUsers,callback:function(a){t.selectedUsers=a},expression:"selectedUsers"}},[t._v(" "+t._s(t.t("photos","No recommendations. Start typing."))+" ")])],1),e("div",{staticClass:"actions"},[t.allowPublicLink?e("div",{staticClass:"actions__public-link"},[t.isPublicLinkSelected&&t.publicLink.id!==""?[e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{"aria-label":t.t("photos","Copy the public link"),title:t.publicLinkURL},on:{click:t.copyPublicLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.publicLinkCopied?e("Check"):e("ContentCopy")]},proxy:!0}],null,!1,845538853)},[t.publicLinkCopied?[t._v(" "+t._s(t.t("photos","Public link copied!"))+" ")]:[t._v(" "+t._s(t.t("photos","Copy public link"))+" ")]],2),e("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Delete the public link")},on:{click:t.deletePublicLink}},[e("Close",{attrs:{slot:"icon"},slot:"icon"})],1)]:e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{disabled:t.isPublicLinkSelected&&t.publicLink.id==="","aria-label":t.t("photos","Create public link share")},on:{click:t.createPublicLinkForAlbum}},[e("Earth",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Share via public link"))+" ")],1)],2):t._e(),e("div",{staticClass:"actions__slot"},[t._t("default",null,{collaborators:t.selectedCollaborators})],2)])])},T=[],K=h(I,U,T,!1,null,"e411f323");const R=K.exports,z={name:"AlbumForm",components:{MapMarkerOutline:M,AccountMultiplePlusOutline:x,SendOutline:A,NcButton:b,NcLoadingIcon:L,NcTextField:F,CollaboratorsSelectionForm:R,PhotosFiltersInput:P,PhotosFiltersDisplay:B},props:{album:{type:Object,default:null},filtersValue:{type:Object,default:()=>({})},displayBackButton:{type:Boolean,default:!1}},data(){return{showCollaboratorView:!1,albumName:"",albumLocation:"",albumFilters:V.reduce((t,e)=>({...t,[e.id]:[]}),{}),loading:!1}},computed:{editMode(){return this.album!==null},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},albumNameValidationError(){const t=this.$store.getters.albums[this.albumFileName];if(t!==void 0&&this.album!==t&&!this.loading)return s("files","This name is already in use.");try{p(this.albumName)}catch(e){if(!(e instanceof d))throw e;switch(e.reason){case i.Character:return s("files",'"{char}" is not allowed inside a filename.',{char:e.segment});case i.ReservedName:return;case i.Extension:return;default:return s("files","Invalid filename.")}}},canSubmit(){return this.albumName!==""&&this.albumNameValidationError===void 0&&!this.loading}},mounted(){this.editMode?(this.albumName=this.album?.basename,this.albumLocation=this.album?.attributes.location??"",this.albumFilters={...this.albumFilters,...structuredClone(this.album?.attributes.filters??{})}):this.albumFilters={...this.albumFilters,...structuredClone(this.filtersValue)},this.$nextTick(()=>{this.$refs.nameInput.$el.getElementsByTagName("input")[0].focus()})},methods:{submit(t=[]){this.canSubmit&&(this.editMode?this.handleUpdateAlbum():this.handleCreateAlbum(t))},async handleCreateAlbum(t=[]){try{this.loading=!0;const e=k({basename:this.albumName,filename:c+"/"+this.albumName,lastmod:"",size:0,type:"directory",etag:null,props:{displayname:this.albumName,resourcetype:{},nbItems:0,location:this.albumLocation,"last-photo":-1,date:m().format("MMMM YYYY"),collaborators:t,filters:this.filtersValue,source:g(`dav/${this.albumFileName}`)}},c);let a=await this.$store.dispatch("createCollection",{collection:e});if(a===void 0)return;const o={};this.albumLocation!==""&&(o.location=this.albumLocation),(this.albumLocation!==""||t.length!==0)&&(o.collaborators=t),Object.keys(this.filtersValue).length>0&&(o.filters=this.filtersValue),a=await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:o}),this.$emit("done",{album:a})}finally{this.loading=!1}},async handleUpdateAlbum(){try{this.loading=!0;let t=this.album?.clone();const e=[];if(this.album!==null&&this.album.basename!==this.albumName&&(e.push("name"),t=await this.$store.dispatch("renameCollection",{collectionFileName:this.album.root+this.album.path,newBaseName:this.albumName}),t===this.album))return;this.album!==null&&this.album.attributes.location!==this.albumLocation&&(e.push("location"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{location:this.albumLocation}})),this.album!==null&&JSON.stringify(this.album.attributes.filters)!==JSON.stringify(this.albumFilters)&&(e.push("filters"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{filters:this.albumFilters}})),this.$emit("done",{album:t,changes:e})}finally{this.loading=!1}},selectFilter(t){this.albumFilters[t.filterId].push(t.value)},deselectFilter(t){const e=this.albumFilters[t.filterId].indexOf(t.value);e!==-1&&this.albumFilters[t.filterId].splice(e,1)},back(){this.$emit("back")},t:s}};var D=function(){var t=this,e=t._self._c;return t.showCollaboratorView?e("CollaboratorsSelectionForm",{attrs:{"album-name":t.albumName,"allow-public-link":!1},scopedSlots:t._u([{key:"default",fn:function({collaborators:a}){return[e("span",{staticClass:"left-buttons"},[e("NcButton",{attrs:{variant:"tertiary"},on:{click:function(o){t.showCollaboratorView=!1}}},[t._v(" "+t._s(t.t("photos","Back"))+" ")])],1),e("span",{staticClass:"right-buttons"},[e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(o){return t.submit(a)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)]}}])}):e("form",{staticClass:"album-form",on:{submit:function(a){return a.preventDefault(),t.submit()}}},[e("div",{staticClass:"form-inputs"},[e("NcTextField",{ref:"nameInput",attrs:{type:"text",name:"name","helper-text":t.albumNameValidationError,error:t.albumNameValidationError!==void 0,required:!0,label:t.t("photos","Name of the album")},model:{value:t.albumName,callback:function(a){t.albumName=typeof a=="string"?a.trim():a},expression:"albumName"}}),e("NcTextField",{attrs:{name:"location",type:"text",label:t.t("photos","Location of the album")},scopedSlots:t._u([{key:"default",fn:function(){return[e("MapMarkerOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3863723734),model:{value:t.albumLocation,callback:function(a){t.albumLocation=a},expression:"albumLocation"}})],1),e("PhotosFiltersInput",{attrs:{"selected-filters":t.albumFilters},on:{"select-filter":t.selectFilter}}),e("PhotosFiltersDisplay",{attrs:{"selected-filters":t.albumFilters},on:{"deselect-filter":t.deselectFilter}}),e("div",{staticClass:"form-buttons"},[e("span",{staticClass:"left-buttons"},[t.displayBackButton?e("NcButton",{attrs:{variant:"tertiary"},on:{click:t.back}},[t._v(" "+t._s(t.t("photos","Back"))+" ")]):t._e()],1),e("span",{staticClass:"right-buttons"},[t.sharingEnabled&&!t.editMode?e("NcButton",{attrs:{variant:"secondary",disabled:!t.canSubmit},on:{click:function(a){t.showCollaboratorView=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountMultiplePlusOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1381680579)},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]):t._e(),e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(a){return t.submit()}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2348760288)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)])],1)},H=[],j=h(z,D,H,!1,null,"546e550b");const at=j.exports;export{at as A,R as C}; -//# sourceMappingURL=AlbumForm-DoWypGG2.chunk.mjs.map +import{m,v as p,I as d,a as i}from"./index-CsCSS_KR.chunk.mjs";import{a as s,B as C,n as f,p as y,r as k,g}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as b,l as r,s as n,o as v,H as N,m as c}from"./index-msNec4Xs.chunk.mjs";import{N as L}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{N as F}from"./NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs";import{E as _,o as S,p as w,C as $,n as h,i as A,q as x,M}from"./icons-DCSM00Rh.chunk.mjs";import{P as B,a as P,f as V}from"./PhotosFiltersInput-COzekdNa.chunk.mjs";import{S as l}from"./index-x9vhq81Z.chunk.mjs";import{N as E}from"./NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs";import{F as O}from"./FetchCollectionContentMixin-DvRwM9PF.chunk.mjs";const u="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e",I={name:"CollaboratorsSelectionForm",components:{Close:$,ContentCopy:w,Check:S,Earth:_,NcButton:b,NcSelectUsers:E},mixins:[O],props:{albumName:{type:String,required:!0},collaborators:{type:Array,default:()=>[]},allowPublicLink:{type:Boolean,default:!0}},data(){return{availableCollaborators:{},selectedCollaboratorsKeys:[],currentSearchResults:[],loadingCollaborators:!1,randomId:Math.random().toString().substring(2,10),publicLinkCopied:!1,collaboratorTypes:l,config:{minSearchStringLength:parseInt(OC.config["sharing.minSearchStringLength"],10)||0}}},computed:{searchResults(){return this.currentSearchResults.filter(({id:t})=>t!==y()?.uid).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===l.User?"user":"group",iconSvg:t.type===l.Group?u:void 0})).filter(({key:t})=>!this.selectedCollaboratorsKeys.includes(t))},selectedCollaborators(){return this.selectedCollaboratorsKeys.map(t=>this.availableCollaborators[t])},selectedUsers:{get(){return this.selectedCollaborators.filter(({type:t})=>t!==l.Link).map(t=>({key:`${t.type}:${t.id}`,id:t.id,user:t.id,displayName:t.label,type:t.type===l.User?"user":"group",iconSvg:t.type===l.Group?u:void 0}))},set(t){this.selectedCollaboratorsKeys=t.map(({key:e})=>e)}},isPublicLinkSelected(){return this.selectedCollaboratorsKeys.includes(`${l.Link}`)},publicLink(){return this.availableCollaborators[l.Link]},publicLinkURL(){return`${window.location.protocol}//${window.location.host}${f(`apps/photos/public/${this.publicLink.id}`)}`},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)}},watch:{collaborators(t){this.populateCollaborators(t)}},mounted(){this.populateCollaborators(this.collaborators)},methods:{async searchCollaborators(t){if(t!==void 0&&(t=t.trim(),!(t.length{switch(a.source){case"users":return{id:a.id,label:a.label,type:l.User};case"groups":return{id:a.id,label:a.label,type:l.Group};default:throw new Error(`Invalid collaborator source ${a.source}`)}}),this.availableCollaborators={...this.availableCollaborators,...this.currentSearchResults.reduce(this.indexCollaborators,{})}}catch(e){this.errorFetchingCollaborators=e,r.error(this.t("photos","Failed to fetch collaborators list."),{error:e}),n(this.t("photos","Failed to fetch collaborators list."))}finally{this.loadingCollaborators=!1}},populateCollaborators(t){const e=t.reduce(this.indexCollaborators,{});this.selectedCollaboratorsKeys=Object.keys(e),this.availableCollaborators={3:{id:"",label:this.t("photos","Public link"),type:l.Link},...this.availableCollaborators,...e}},indexCollaborators(t,e){return{...t,[`${e.type}${e.type===l.Link?"":":"}${e.type===l.Link?"":e.id}`]:e}},async createPublicLinkForAlbum(){this.selectEntity(`${l.Link}`),await this.updateAlbumCollaborators(),await this.fetchCollection(this.albumFileName,v)},async deletePublicLink(){this.unselectEntity(`${l.Link}`),this.availableCollaborators[3]={id:"",label:this.t("photos","Public link"),type:l.Link},this.publicLinkCopied=!1,await this.updateAlbumCollaborators()},async updateAlbumCollaborators(){try{await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:{collaborators:this.selectedCollaborators}})}catch(t){r.error("[PublicAlbumContent] Error updating album",{error:t}),n(this.t("photos","Failed to update album."))}},async copyPublicLink(){await navigator.clipboard.writeText(this.publicLinkURL),this.publicLinkCopied=!0,setTimeout(()=>{this.publicLinkCopied=!1},1e4)},selectEntity(t){this.selectedCollaboratorsKeys.includes(t)||this.selectedCollaboratorsKeys.push(t)},unselectEntity(t){const e=this.selectedCollaboratorsKeys.indexOf(t);e!==-1&&this.selectedCollaboratorsKeys.splice(e,1)},t:s}};var U=function(){var t=this,e=t._self._c;return e("div",{staticClass:"manage-collaborators"},[e("h2",{staticClass:"manage-collaborators__title"},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]),e("form",{staticClass:"manage-collaborators__form",on:{submit:function(a){a.preventDefault()}}},[e("NcSelectUsers",{attrs:{"input-id":"sharing-search-input","input-label":t.t("photos","Add people or groups who can edit your album"),loading:t.loadingCollaborators,label:"label",filterable:!1,placeholder:t.t("photos","Search people or groups"),"clear-search-on-blur":()=>!1,multiple:!0,"append-to-body":!1,options:t.searchResults},on:{search:t.searchCollaborators,"option:selected":({key:a})=>t.selectEntity(a)},model:{value:t.selectedUsers,callback:function(a){t.selectedUsers=a},expression:"selectedUsers"}},[t._v(" "+t._s(t.t("photos","No recommendations. Start typing."))+" ")])],1),e("div",{staticClass:"actions"},[t.allowPublicLink?e("div",{staticClass:"actions__public-link"},[t.isPublicLinkSelected&&t.publicLink.id!==""?[e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{"aria-label":t.t("photos","Copy the public link"),title:t.publicLinkURL},on:{click:t.copyPublicLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.publicLinkCopied?e("Check"):e("ContentCopy")]},proxy:!0}],null,!1,845538853)},[t.publicLinkCopied?[t._v(" "+t._s(t.t("photos","Public link copied!"))+" ")]:[t._v(" "+t._s(t.t("photos","Copy public link"))+" ")]],2),e("NcButton",{attrs:{variant:"tertiary","aria-label":t.t("photos","Delete the public link")},on:{click:t.deletePublicLink}},[e("Close",{attrs:{slot:"icon"},slot:"icon"})],1)]:e("NcButton",{staticClass:"manage-collaborators__public-link-button",attrs:{disabled:t.isPublicLinkSelected&&t.publicLink.id==="","aria-label":t.t("photos","Create public link share")},on:{click:t.createPublicLinkForAlbum}},[e("Earth",{attrs:{slot:"icon"},slot:"icon"}),t._v(" "+t._s(t.t("photos","Share via public link"))+" ")],1)],2):t._e(),e("div",{staticClass:"actions__slot"},[t._t("default",null,{collaborators:t.selectedCollaborators})],2)])])},T=[],K=h(I,U,T,!1,null,"e411f323");const R=K.exports,z={name:"AlbumForm",components:{MapMarkerOutline:M,AccountMultiplePlusOutline:x,SendOutline:A,NcButton:b,NcLoadingIcon:L,NcTextField:F,CollaboratorsSelectionForm:R,PhotosFiltersInput:P,PhotosFiltersDisplay:B},props:{album:{type:Object,default:null},filtersValue:{type:Object,default:()=>({})},displayBackButton:{type:Boolean,default:!1}},data(){return{showCollaboratorView:!1,albumName:"",albumLocation:"",albumFilters:V.reduce((t,e)=>({...t,[e.id]:[]}),{}),loading:!1}},computed:{editMode(){return this.album!==null},sharingEnabled(){return OC.Share!==void 0},albumFileName(){return this.$store.getters.getAlbumName(this.albumName)},albumNameValidationError(){const t=this.$store.getters.albums[this.albumFileName];if(t!==void 0&&this.album!==t&&!this.loading)return s("files","This name is already in use.");try{p(this.albumName)}catch(e){if(!(e instanceof d))throw e;switch(e.reason){case i.Character:return s("files",'"{char}" is not allowed inside a filename.',{char:e.segment});case i.ReservedName:return;case i.Extension:return;default:return s("files","Invalid filename.")}}},canSubmit(){return this.albumName!==""&&this.albumNameValidationError===void 0&&!this.loading}},mounted(){this.editMode?(this.albumName=this.album?.basename,this.albumLocation=this.album?.attributes.location??"",this.albumFilters={...this.albumFilters,...structuredClone(this.album?.attributes.filters??{})}):this.albumFilters={...this.albumFilters,...structuredClone(this.filtersValue)},this.$nextTick(()=>{this.$refs.nameInput.$el.getElementsByTagName("input")[0].focus()})},methods:{submit(t=[]){this.canSubmit&&(this.editMode?this.handleUpdateAlbum():this.handleCreateAlbum(t))},async handleCreateAlbum(t=[]){try{this.loading=!0;const e=k({basename:this.albumName,filename:c+"/"+this.albumName,lastmod:"",size:0,type:"directory",etag:null,props:{displayname:this.albumName,resourcetype:{},nbItems:0,location:this.albumLocation,"last-photo":-1,date:m().format("MMMM YYYY"),collaborators:t,filters:this.filtersValue,source:g(`dav/${this.albumFileName}`)}},c);let a=await this.$store.dispatch("createCollection",{collection:e});if(a===void 0)return;const o={};this.albumLocation!==""&&(o.location=this.albumLocation),(this.albumLocation!==""||t.length!==0)&&(o.collaborators=t),Object.keys(this.filtersValue).length>0&&(o.filters=this.filtersValue),a=await this.$store.dispatch("updateCollection",{collectionFileName:this.albumFileName,properties:o}),this.$emit("done",{album:a})}finally{this.loading=!1}},async handleUpdateAlbum(){try{this.loading=!0;let t=this.album?.clone();const e=[];if(this.album!==null&&this.album.basename!==this.albumName&&(e.push("name"),t=await this.$store.dispatch("renameCollection",{collectionFileName:this.album.root+this.album.path,newBaseName:this.albumName}),t===this.album))return;this.album!==null&&this.album.attributes.location!==this.albumLocation&&(e.push("location"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{location:this.albumLocation}})),this.album!==null&&JSON.stringify(this.album.attributes.filters)!==JSON.stringify(this.albumFilters)&&(e.push("filters"),t=await this.$store.dispatch("updateCollection",{collectionFileName:t.root+t.path,properties:{filters:this.albumFilters}})),this.$emit("done",{album:t,changes:e})}finally{this.loading=!1}},selectFilter(t){this.albumFilters[t.filterId].push(t.value)},deselectFilter(t){const e=this.albumFilters[t.filterId].indexOf(t.value);e!==-1&&this.albumFilters[t.filterId].splice(e,1)},back(){this.$emit("back")},t:s}};var D=function(){var t=this,e=t._self._c;return t.showCollaboratorView?e("CollaboratorsSelectionForm",{attrs:{"album-name":t.albumName,"allow-public-link":!1},scopedSlots:t._u([{key:"default",fn:function({collaborators:a}){return[e("span",{staticClass:"left-buttons"},[e("NcButton",{attrs:{variant:"tertiary"},on:{click:function(o){t.showCollaboratorView=!1}}},[t._v(" "+t._s(t.t("photos","Back"))+" ")])],1),e("span",{staticClass:"right-buttons"},[e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(o){return t.submit(a)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!0)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)]}}])}):e("form",{staticClass:"album-form",on:{submit:function(a){return a.preventDefault(),t.submit()}}},[e("div",{staticClass:"form-inputs"},[e("NcTextField",{ref:"nameInput",attrs:{type:"text",name:"name","helper-text":t.albumNameValidationError,error:t.albumNameValidationError!==void 0,required:!0,label:t.t("photos","Name of the album")},model:{value:t.albumName,callback:function(a){t.albumName=typeof a=="string"?a.trim():a},expression:"albumName"}}),e("NcTextField",{attrs:{name:"location",type:"text",label:t.t("photos","Location of the album")},scopedSlots:t._u([{key:"default",fn:function(){return[e("MapMarkerOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3863723734),model:{value:t.albumLocation,callback:function(a){t.albumLocation=a},expression:"albumLocation"}})],1),e("PhotosFiltersInput",{attrs:{"selected-filters":t.albumFilters},on:{"select-filter":t.selectFilter}}),e("PhotosFiltersDisplay",{attrs:{"selected-filters":t.albumFilters},on:{"deselect-filter":t.deselectFilter}}),e("div",{staticClass:"form-buttons"},[e("span",{staticClass:"left-buttons"},[t.displayBackButton?e("NcButton",{attrs:{variant:"tertiary"},on:{click:t.back}},[t._v(" "+t._s(t.t("photos","Back"))+" ")]):t._e()],1),e("span",{staticClass:"right-buttons"},[t.sharingEnabled&&!t.editMode?e("NcButton",{attrs:{variant:"secondary",disabled:!t.canSubmit},on:{click:function(a){t.showCollaboratorView=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountMultiplePlusOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1381680579)},[t._v(" "+t._s(t.t("photos","Add collaborators"))+" ")]):t._e(),e("NcButton",{attrs:{variant:"primary",disabled:!t.canSubmit},on:{click:function(a){return t.submit()}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon",{attrs:{size:20}}):e("SendOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,2348760288)},[t._v(" "+t._s(t.editMode?t.t("photos","Save"):t.t("photos","Create album"))+" ")])],1)])],1)},H=[],j=h(z,D,H,!1,null,"546e550b");const at=j.exports;export{at as A,R as C}; +//# sourceMappingURL=AlbumForm-BgUJaoaO.chunk.mjs.map diff --git a/js/AlbumForm-DoWypGG2.chunk.mjs.license b/js/AlbumForm-BgUJaoaO.chunk.mjs.license similarity index 100% rename from js/AlbumForm-DoWypGG2.chunk.mjs.license rename to js/AlbumForm-BgUJaoaO.chunk.mjs.license diff --git a/js/AlbumForm-DoWypGG2.chunk.mjs.map b/js/AlbumForm-BgUJaoaO.chunk.mjs.map similarity index 99% rename from js/AlbumForm-DoWypGG2.chunk.mjs.map rename to js/AlbumForm-BgUJaoaO.chunk.mjs.map index 7f781587f..75d97c402 100644 --- a/js/AlbumForm-DoWypGG2.chunk.mjs.map +++ b/js/AlbumForm-BgUJaoaO.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AlbumForm-DoWypGG2.chunk.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg","../src/components/Albums/CollaboratorsSelectionForm.vue","../src/components/Albums/AlbumForm.vue"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e\"","\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["AccountGroupOutlineSvg","_sfc_main$1","Close","ContentCopy","Check","Earth","NcButton","NcSelectUsers","FetchCollectionContentMixin","ShareType","id","getCurrentUser","collaborator","key","collaboratorKey","type","newValue","generateUrl","collaborators","query","response","axios","generateOcsUrl","error","logger","showError","initialCollaborators","albumsExtraProps","index","translate","_sfc_main","MapMarkerOutline","AccountMultiplePlusOutline","SendOutline","NcLoadingIcon","NcTextField","CollaboratorsSelectionForm","PhotosFiltersInput","PhotosFiltersDisplay","filters","acc","filter","existingAlbum","t","validateFilename","InvalidFilenameError","InvalidFilenameErrorReason","localAlbum","resultToNode","albumsPrefix","moment","generateRemoteUrl","album","propertiesToUpdate","changes","filterOption"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"AlbumForm-BgUJaoaO.chunk.mjs","sources":["../node_modules/@mdi/svg/svg/account-group-outline.svg","../src/components/Albums/CollaboratorsSelectionForm.vue","../src/components/Albums/AlbumForm.vue"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-account-group-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M12,5A3.5,3.5%200%200,0%208.5,8.5A3.5,3.5%200%200,0%2012,12A3.5,3.5%200%200,0%2015.5,8.5A3.5,3.5%200%200,0%2012,5M12,7A1.5,1.5%200%200,1%2013.5,8.5A1.5,1.5%200%200,1%2012,10A1.5,1.5%200%200,1%2010.5,8.5A1.5,1.5%200%200,1%2012,7M5.5,8A2.5,2.5%200%200,0%203,10.5C3,11.44%203.53,12.25%204.29,12.68C4.65,12.88%205.06,13%205.5,13C5.94,13%206.35,12.88%206.71,12.68C7.08,12.47%207.39,12.17%207.62,11.81C6.89,10.86%206.5,9.7%206.5,8.5C6.5,8.41%206.5,8.31%206.5,8.22C6.2,8.08%205.86,8%205.5,8M18.5,8C18.14,8%2017.8,8.08%2017.5,8.22C17.5,8.31%2017.5,8.41%2017.5,8.5C17.5,9.7%2017.11,10.86%2016.38,11.81C16.5,12%2016.63,12.15%2016.78,12.3C16.94,12.45%2017.1,12.58%2017.29,12.68C17.65,12.88%2018.06,13%2018.5,13C18.94,13%2019.35,12.88%2019.71,12.68C20.47,12.25%2021,11.44%2021,10.5A2.5,2.5%200%200,0%2018.5,8M12,14C9.66,14%205,15.17%205,17.5V19H19V17.5C19,15.17%2014.34,14%2012,14M4.71,14.55C2.78,14.78%200,15.76%200,17.5V19H3V17.07C3,16.06%203.69,15.22%204.71,14.55M19.29,14.55C20.31,15.22%2021,16.06%2021,17.07V19H24V17.5C24,15.76%2021.22,14.78%2019.29,14.55M12,16C13.53,16%2015.24,16.5%2016.23,17H7.77C8.76,16.5%2010.47,16%2012,16Z'%20/%3e%3c/svg%3e\"","\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["AccountGroupOutlineSvg","_sfc_main$1","Close","ContentCopy","Check","Earth","NcButton","NcSelectUsers","FetchCollectionContentMixin","ShareType","id","getCurrentUser","collaborator","key","collaboratorKey","type","newValue","generateUrl","collaborators","query","response","axios","generateOcsUrl","error","logger","showError","initialCollaborators","albumsExtraProps","index","translate","_sfc_main","MapMarkerOutline","AccountMultiplePlusOutline","SendOutline","NcLoadingIcon","NcTextField","CollaboratorsSelectionForm","PhotosFiltersInput","PhotosFiltersDisplay","filters","acc","filter","existingAlbum","t","validateFilename","InvalidFilenameError","InvalidFilenameErrorReason","localAlbum","resultToNode","albumsPrefix","moment","generateRemoteUrl","album","propertiesToUpdate","changes","filterOption"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/js/AlbumsView-BUHTq9bU.chunk.mjs b/js/AlbumsView-DJ3yiAWL.chunk.mjs similarity index 77% rename from js/AlbumsView-BUHTq9bU.chunk.mjs rename to js/AlbumsView-DJ3yiAWL.chunk.mjs index 5c4979581..658927e5c 100644 --- a/js/AlbumsView-BUHTq9bU.chunk.mjs +++ b/js/AlbumsView-DJ3yiAWL.chunk.mjs @@ -1,2 +1,2 @@ -import{d as s,k as r,a,n as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as n,m as l,o as m,u}from"./index-msNec4Xs.chunk.mjs";import{N as p}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as c}from"./NcModal-BX64wQqg.chunk.mjs";import{I as b,P as f,n as h}from"./icons-Du8Q1knx.chunk.mjs";import{A as d}from"./AlbumForm-DoWypGG2.chunk.mjs";import{C as _,a as y}from"./CollectionsList-CuML8IrY.chunk.mjs";import{H as C}from"./HeaderNavigation-Cs3s9UVW.chunk.mjs";import{F as v}from"./FetchCollectionsMixin-BB0Bzv-e.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./NcLoadingIcon-DM-94wwW.chunk.mjs";import"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import"./video-DVVFoi8e.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./PhotosFiltersInput-CvPRrapr.chunk.mjs";import"./NcSelect-COY5TV2U-Bx6XZxCD.chunk.mjs";import"./floating-ui.utils.dom-Ddqhmmdk.chunk.mjs";import"./NcAvatar-BbHwxwyd-B4FduCgL.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcDateTimePicker-Bg7orwJW.chunk.mjs";import"./NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs";import"./NcDateTime-enXYuwj8-CgQNgh_Q.chunk.mjs";import"./useFormatDateTime-BO2tHI5p.chunk.mjs";import"./collectionFetcher-BXa4rOpP.chunk.mjs";import"./index-x9vhq81Z.chunk.mjs";import"./NcSelectUsers-BoPfmCbV-COskLcy3.chunk.mjs";import"./FetchCollectionContentMixin-DvRwM9PF.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";const A=s({name:"AlbumsView",components:{Plus:f,ImageMultipleOutline:b,NcModal:c,NcButton:n,NcEmptyContent:p,CollectionsList:y,CollectionCover:_,HeaderNavigation:C,AlbumForm:d},filters:{coverUrl(t){return t===-1?"":i(`/apps/photos/api/v1/preview/${t}?x=512&y=512`)}},mixins:[v],setup(){return{isMobile:u()}},data(){return{showAlbumCreationForm:!1}},computed:{albums(){return this.$store.getters.albums}},async beforeMount(){this.fetchAlbums()},methods:{fetchAlbums(){this.fetchCollections(l,m)},handleAlbumCreated({album:t}){this.showAlbumCreationForm=!1,this.$router.push(`/albums/${t.basename}`)},t:a,n:r}});var N=function(){var t=this,o=t._self._c;return t._self._setupProxy,o("div",[o("CollectionsList",{staticClass:"albums-list",attrs:{collections:t.albums,loading:t.loadingCollections,error:t.errorFetchingCollections},scopedSlots:t._u([{key:"header",fn:function(){return[o("HeaderNavigation",{key:"navigation",attrs:{loading:t.loadingCollections,title:t.t("photos","Albums"),"root-title":t.t("photos","Albums")},on:{refresh:t.fetchAlbums}},[o("NcButton",{attrs:{"aria-label":t.isMobile?t.t("photos","New album"):void 0},on:{click:function(e){t.showAlbumCreationForm=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Plus",{attrs:{size:20}})]},proxy:!0},t.isMobile?null:{key:"default",fn:function(){return[t._v(" "+t._s(t.t("photos","New album"))+" ")]},proxy:!0}],null,!0)})],1)]},proxy:!0},{key:"default",fn:function({collection:e}){return[o("CollectionCover",{key:e.basename,attrs:{"parent-route":"/albums","collection-name":e.basename,"alt-img":t.t("photos","Cover photo for album {albumName}",{albumName:e.basename}),"cover-url":t._f("coverUrl")(e.attributes["last-photo"])},scopedSlots:t._u([{key:"default",fn:function(){return[o("span",{staticClass:"album__name"},[t._v(" "+t._s(e.basename)+" ")])]},proxy:!0},{key:"subtitle",fn:function(){return[o("div",{staticClass:"album__details"},[t._v(" "+t._s(e.attributes.date)+" ⸱ "+t._s(t.n("photos","%n item","%n photos and videos",e.attributes.nbItems))+" ")])]},proxy:!0}],null,!0)})]}},{key:"empty-collections-list",fn:function(){return[o("NcEmptyContent",{attrs:{name:t.t("photos","There is no album yet!")},scopedSlots:t._u([{key:"icon",fn:function(){return[o("ImageMultipleOutline")]},proxy:!0}])})]},proxy:!0}])}),t.showAlbumCreationForm?o("NcModal",{attrs:{"label-id":"new-album-form"},on:{close:function(e){t.showAlbumCreationForm=!1}}},[o("h2",{staticClass:"album-creation__heading"},[t._v(" "+t._s(t.t("photos","New album"))+" ")]),o("AlbumForm",{on:{done:t.handleAlbumCreated}})],1):t._e()],1)},g=[],k=h(A,N,g,!1,null,"5f230c1c");const ot=k.exports;export{ot as default}; -//# sourceMappingURL=AlbumsView-BUHTq9bU.chunk.mjs.map +import{d as s,k as r,a,n as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as n,m as l,o as m,u}from"./index-msNec4Xs.chunk.mjs";import{N as p}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as c}from"./NcModal-DnfAQoZ9.chunk.mjs";import{I as b,P as f,n as h}from"./icons-DCSM00Rh.chunk.mjs";import{A as d}from"./AlbumForm-BgUJaoaO.chunk.mjs";import{C as _,a as y}from"./CollectionsList-DAU5uskw.chunk.mjs";import{H as C}from"./HeaderNavigation-NTIRuixF.chunk.mjs";import{F as v}from"./FetchCollectionsMixin-BB0Bzv-e.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./NcLoadingIcon-DM-94wwW.chunk.mjs";import"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import"./video-B2A2Ed33.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./PhotosFiltersInput-COzekdNa.chunk.mjs";import"./NcSelect-COY5TV2U-BdSBqkqE.chunk.mjs";import"./floating-ui.utils.dom-Ddqhmmdk.chunk.mjs";import"./NcAvatar-BbHwxwyd-CJZWCZ0O.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcDateTimePicker-RSLBAkGn.chunk.mjs";import"./NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs";import"./NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs";import"./useFormatDateTime-yGVH7_h2.chunk.mjs";import"./collectionFetcher-BXa4rOpP.chunk.mjs";import"./index-x9vhq81Z.chunk.mjs";import"./NcSelectUsers-BoPfmCbV-DiYgESfa.chunk.mjs";import"./FetchCollectionContentMixin-DvRwM9PF.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";const A=s({name:"AlbumsView",components:{Plus:f,ImageMultipleOutline:b,NcModal:c,NcButton:n,NcEmptyContent:p,CollectionsList:y,CollectionCover:_,HeaderNavigation:C,AlbumForm:d},filters:{coverUrl(t){return t===-1?"":i(`/apps/photos/api/v1/preview/${t}?x=512&y=512`)}},mixins:[v],setup(){return{isMobile:u()}},data(){return{showAlbumCreationForm:!1}},computed:{albums(){return this.$store.getters.albums}},async beforeMount(){this.fetchAlbums()},methods:{fetchAlbums(){this.fetchCollections(l,m)},handleAlbumCreated({album:t}){this.showAlbumCreationForm=!1,this.$router.push(`/albums/${t.basename}`)},t:a,n:r}});var N=function(){var t=this,o=t._self._c;return t._self._setupProxy,o("div",[o("CollectionsList",{staticClass:"albums-list",attrs:{collections:t.albums,loading:t.loadingCollections,error:t.errorFetchingCollections},scopedSlots:t._u([{key:"header",fn:function(){return[o("HeaderNavigation",{key:"navigation",attrs:{loading:t.loadingCollections,title:t.t("photos","Albums"),"root-title":t.t("photos","Albums")},on:{refresh:t.fetchAlbums}},[o("NcButton",{attrs:{"aria-label":t.isMobile?t.t("photos","New album"):void 0},on:{click:function(e){t.showAlbumCreationForm=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[o("Plus",{attrs:{size:20}})]},proxy:!0},t.isMobile?null:{key:"default",fn:function(){return[t._v(" "+t._s(t.t("photos","New album"))+" ")]},proxy:!0}],null,!0)})],1)]},proxy:!0},{key:"default",fn:function({collection:e}){return[o("CollectionCover",{key:e.basename,attrs:{"parent-route":"/albums","collection-name":e.basename,"alt-img":t.t("photos","Cover photo for album {albumName}",{albumName:e.basename}),"cover-url":t._f("coverUrl")(e.attributes["last-photo"])},scopedSlots:t._u([{key:"default",fn:function(){return[o("span",{staticClass:"album__name"},[t._v(" "+t._s(e.basename)+" ")])]},proxy:!0},{key:"subtitle",fn:function(){return[o("div",{staticClass:"album__details"},[t._v(" "+t._s(e.attributes.date)+" ⸱ "+t._s(t.n("photos","%n item","%n photos and videos",e.attributes.nbItems))+" ")])]},proxy:!0}],null,!0)})]}},{key:"empty-collections-list",fn:function(){return[o("NcEmptyContent",{attrs:{name:t.t("photos","There is no album yet!")},scopedSlots:t._u([{key:"icon",fn:function(){return[o("ImageMultipleOutline")]},proxy:!0}])})]},proxy:!0}])}),t.showAlbumCreationForm?o("NcModal",{attrs:{"label-id":"new-album-form"},on:{close:function(e){t.showAlbumCreationForm=!1}}},[o("h2",{staticClass:"album-creation__heading"},[t._v(" "+t._s(t.t("photos","New album"))+" ")]),o("AlbumForm",{on:{done:t.handleAlbumCreated}})],1):t._e()],1)},g=[],k=h(A,N,g,!1,null,"5f230c1c");const ot=k.exports;export{ot as default}; +//# sourceMappingURL=AlbumsView-DJ3yiAWL.chunk.mjs.map diff --git a/js/AlbumsView-BUHTq9bU.chunk.mjs.license b/js/AlbumsView-DJ3yiAWL.chunk.mjs.license similarity index 100% rename from js/AlbumsView-BUHTq9bU.chunk.mjs.license rename to js/AlbumsView-DJ3yiAWL.chunk.mjs.license diff --git a/js/AlbumsView-BUHTq9bU.chunk.mjs.map b/js/AlbumsView-DJ3yiAWL.chunk.mjs.map similarity index 98% rename from js/AlbumsView-BUHTq9bU.chunk.mjs.map rename to js/AlbumsView-DJ3yiAWL.chunk.mjs.map index 245f2efe2..8f41ab553 100644 --- a/js/AlbumsView-BUHTq9bU.chunk.mjs.map +++ b/js/AlbumsView-DJ3yiAWL.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"AlbumsView-BUHTq9bU.chunk.mjs","sources":["../src/views/AlbumsView.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","defineComponent","Plus","ImageMultipleOutline","NcModal","NcButton","NcEmptyContent","CollectionsList","CollectionCover","HeaderNavigation","AlbumForm","lastPhoto","generateUrl","FetchCollectionsMixin","useIsSmallMobile","albumsPrefix","albumsExtraProps","album","translate","translatePlural"],"mappings":"y+CA0FA,MAAAA,EAAAC,EAAA,CACA,KAAA,aACA,WAAA,CACA,KAAAC,EACA,qBAAAC,EACA,QAAAC,EACA,SAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,UAAAC,CAAA,EAGA,QAAA,CACA,SAAAC,EAAA,CACA,OAAAA,IAAA,GACA,GAGAC,EAAA,+BAAAD,CAAA,cAAA,CACA,CAAA,EAGA,OAAA,CAAAE,CAAA,EAEA,OAAA,CAEA,MAAA,CACA,SAFAC,EAAA,CAEA,CAEA,EAEA,MAAA,CACA,MAAA,CACA,sBAAA,EAAA,CAEA,EAEA,SAAA,CACA,QAAA,CACA,OAAA,KAAA,OAAA,QAAA,MACA,CAAA,EAGA,MAAA,aAAA,CACA,KAAA,YAAA,CACA,EAEA,QAAA,CACA,aAAA,CACA,KAAA,iBACAC,EACAC,CAAA,CAEA,EAEA,mBAAA,CAAA,MAAAC,GAAA,CACA,KAAA,sBAAA,GACA,KAAA,QAAA,KAAA,WAAAA,EAAA,QAAA,EAAA,CACA,EAEA,EAAAC,EACA,EAAAC,CAAA,CAEA,CAAA"} \ No newline at end of file +{"version":3,"file":"AlbumsView-DJ3yiAWL.chunk.mjs","sources":["../src/views/AlbumsView.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","defineComponent","Plus","ImageMultipleOutline","NcModal","NcButton","NcEmptyContent","CollectionsList","CollectionCover","HeaderNavigation","AlbumForm","lastPhoto","generateUrl","FetchCollectionsMixin","useIsSmallMobile","albumsPrefix","albumsExtraProps","album","translate","translatePlural"],"mappings":"y+CA0FA,MAAAA,EAAAC,EAAA,CACA,KAAA,aACA,WAAA,CACA,KAAAC,EACA,qBAAAC,EACA,QAAAC,EACA,SAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,UAAAC,CAAA,EAGA,QAAA,CACA,SAAAC,EAAA,CACA,OAAAA,IAAA,GACA,GAGAC,EAAA,+BAAAD,CAAA,cAAA,CACA,CAAA,EAGA,OAAA,CAAAE,CAAA,EAEA,OAAA,CAEA,MAAA,CACA,SAFAC,EAAA,CAEA,CAEA,EAEA,MAAA,CACA,MAAA,CACA,sBAAA,EAAA,CAEA,EAEA,SAAA,CACA,QAAA,CACA,OAAA,KAAA,OAAA,QAAA,MACA,CAAA,EAGA,MAAA,aAAA,CACA,KAAA,YAAA,CACA,EAEA,QAAA,CACA,aAAA,CACA,KAAA,iBACAC,EACAC,CAAA,CAEA,EAEA,mBAAA,CAAA,MAAAC,GAAA,CACA,KAAA,sBAAA,GACA,KAAA,QAAA,KAAA,WAAAA,EAAA,QAAA,EAAA,CACA,EAEA,EAAAC,EACA,EAAAC,CAAA,CAEA,CAAA"} \ No newline at end of file diff --git a/js/CollectionContent-x7GqGEWH.chunk.mjs b/js/CollectionContent-CqxKIviG.chunk.mjs similarity index 90% rename from js/CollectionContent-x7GqGEWH.chunk.mjs rename to js/CollectionContent-CqxKIviG.chunk.mjs index a5d252739..2f6dd6893 100644 --- a/js/CollectionContent-x7GqGEWH.chunk.mjs +++ b/js/CollectionContent-CqxKIviG.chunk.mjs @@ -1,2 +1,2 @@ -import{d as i,a as s,s as n,v as r}from"./preload-helper-B1hyiFAx.chunk.mjs";import{x as l,v as c}from"./index-msNec4Xs.chunk.mjs";import{N as a}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{I as d,A as m,n as p}from"./icons-Du8Q1knx.chunk.mjs";import{F as u}from"./FileComponent-CYcuW4fI.chunk.mjs";import{F as f,a as h}from"./FilesSelectionMixin-_WfmSvdO.chunk.mjs";const C=i({name:"CollectionContent",components:{AlertCircleOutline:m,ImageMultipleOutline:d,NcEmptyContent:a,FilesListViewer:h,FileComponent:u},mixins:[f],props:{collection:{type:Object,default:()=>{}},collectionFileIds:{type:Array,required:!0},loading:{type:Boolean,default:!1},allowSelection:{type:Boolean,default:!0},error:{type:[Error,Number],default:null}},setup(){return{isMobile:c()}},data(){return{appContent:document.getElementById("app-content-vue")}},computed:{files(){return this.$store.getters.files},sortedCollectionFileIds(){return this.collectionFileIds.toSorted((e,t)=>this.files[e].attributes.timestampl(this.files[t]))})},handleFileDeleted({fileid:e}){this.$store.commit("removeFilesFromCollection",{collectionFileName:this.collection.root+this.collection.path,fileIdsToRemove:[e?.toString()]})},t:s}});var F=function(){var e=this,t=e._self._c;return e._self._setupProxy,e.collection===void 0&&!e.loading||e.error===404?t("NcEmptyContent",{staticClass:"empty-content-with-illustration",attrs:{name:e.t("photos","This collection does not exist")}},[t("ImageMultipleOutline",{attrs:{slot:"icon"},slot:"icon"})],1):e.error?t("NcEmptyContent",{attrs:{name:e.t("photos","An error occurred")}},[t("AlertCircleOutline",{attrs:{slot:"icon"},slot:"icon"})],1):t("div",{staticClass:"collection"},[e._t("header",null,{selectedFileIds:e.selectedFileIds,resetSelection:e.resetSelection}),e.sortedCollectionFileIds.length===0&&!e.loading?e._t("empty-content"):e._e(),e.collection!==void 0&&e.sortedCollectionFileIds.length>0?t("FilesListViewer",{staticClass:"collection__media",attrs:{"container-element":e.appContent,"file-ids":e.sortedCollectionFileIds,"base-height":e.isMobile?120:200,loading:e.loading},scopedSlots:e._u([{key:"default",fn:function({file:o}){return t("FileComponent",{attrs:{file:e.files[o.id],"allow-selection":e.allowSelection,selected:e.selection[o.id]===!0},on:{click:e.openViewer,"select-toggled":e.onFileSelectToggle}})}}],null,!1,2202403043)}):e._e()],2)},g=[],y=p(C,F,g,!1,null,"aecef337");const x=y.exports;export{x as C}; -//# sourceMappingURL=CollectionContent-x7GqGEWH.chunk.mjs.map +import{d as i,a as s,s as n,v as r}from"./preload-helper-B1hyiFAx.chunk.mjs";import{x as l,v as c}from"./index-msNec4Xs.chunk.mjs";import{N as a}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{I as d,A as m,n as p}from"./icons-DCSM00Rh.chunk.mjs";import{F as u}from"./FileComponent-CIkKxlac.chunk.mjs";import{F as f,a as h}from"./FilesSelectionMixin-QyiriVe4.chunk.mjs";const C=i({name:"CollectionContent",components:{AlertCircleOutline:m,ImageMultipleOutline:d,NcEmptyContent:a,FilesListViewer:h,FileComponent:u},mixins:[f],props:{collection:{type:Object,default:()=>{}},collectionFileIds:{type:Array,required:!0},loading:{type:Boolean,default:!1},allowSelection:{type:Boolean,default:!0},error:{type:[Error,Number],default:null}},setup(){return{isMobile:c()}},data(){return{appContent:document.getElementById("app-content-vue")}},computed:{files(){return this.$store.getters.files},sortedCollectionFileIds(){return this.collectionFileIds.toSorted((e,t)=>this.files[e].attributes.timestampl(this.files[t]))})},handleFileDeleted({fileid:e}){this.$store.commit("removeFilesFromCollection",{collectionFileName:this.collection.root+this.collection.path,fileIdsToRemove:[e?.toString()]})},t:s}});var F=function(){var e=this,t=e._self._c;return e._self._setupProxy,e.collection===void 0&&!e.loading||e.error===404?t("NcEmptyContent",{staticClass:"empty-content-with-illustration",attrs:{name:e.t("photos","This collection does not exist")}},[t("ImageMultipleOutline",{attrs:{slot:"icon"},slot:"icon"})],1):e.error?t("NcEmptyContent",{attrs:{name:e.t("photos","An error occurred")}},[t("AlertCircleOutline",{attrs:{slot:"icon"},slot:"icon"})],1):t("div",{staticClass:"collection"},[e._t("header",null,{selectedFileIds:e.selectedFileIds,resetSelection:e.resetSelection}),e.sortedCollectionFileIds.length===0&&!e.loading?e._t("empty-content"):e._e(),e.collection!==void 0&&e.sortedCollectionFileIds.length>0?t("FilesListViewer",{staticClass:"collection__media",attrs:{"container-element":e.appContent,"file-ids":e.sortedCollectionFileIds,"base-height":e.isMobile?120:200,loading:e.loading},scopedSlots:e._u([{key:"default",fn:function({file:o}){return t("FileComponent",{attrs:{file:e.files[o.id],"allow-selection":e.allowSelection,selected:e.selection[o.id]===!0},on:{click:e.openViewer,"select-toggled":e.onFileSelectToggle}})}}],null,!1,2202403043)}):e._e()],2)},g=[],y=p(C,F,g,!1,null,"aecef337");const x=y.exports;export{x as C}; +//# sourceMappingURL=CollectionContent-CqxKIviG.chunk.mjs.map diff --git a/js/CollectionContent-x7GqGEWH.chunk.mjs.license b/js/CollectionContent-CqxKIviG.chunk.mjs.license similarity index 100% rename from js/CollectionContent-x7GqGEWH.chunk.mjs.license rename to js/CollectionContent-CqxKIviG.chunk.mjs.license diff --git a/js/CollectionContent-x7GqGEWH.chunk.mjs.map b/js/CollectionContent-CqxKIviG.chunk.mjs.map similarity index 98% rename from js/CollectionContent-x7GqGEWH.chunk.mjs.map rename to js/CollectionContent-CqxKIviG.chunk.mjs.map index 6c6471783..2d29743b3 100644 --- a/js/CollectionContent-x7GqGEWH.chunk.mjs.map +++ b/js/CollectionContent-CqxKIviG.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"CollectionContent-x7GqGEWH.chunk.mjs","sources":["../src/components/Collection/CollectionContent.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","defineComponent","AlertCircleOutline","ImageMultipleOutline","NcEmptyContent","FilesListViewer","FileComponent","FilesSelectionMixin","useIsMobile","fileId1","fileId2","subscribe","unsubscribe","fileId","toViewerFileInfo","fileid","translate"],"mappings":"mXA+DA,MAAAA,EAAAC,EAAA,CACA,KAAA,oBAEA,WAAA,CACA,mBAAAC,EACA,qBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,cAAAC,CAAA,EAGA,OAAA,CAAAC,CAAA,EAEA,MAAA,CACA,WAAA,CACA,KAAA,OACA,QAAA,IAAA,CAAA,CAAA,EAGA,kBAAA,CACA,KAAA,MACA,SAAA,EAAA,EAGA,QAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,eAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,MAAA,CACA,KAAA,CAAA,MAAA,MAAA,EACA,QAAA,IAAA,CACA,EAGA,OAAA,CACA,MAAA,CACA,SAAAC,EAAA,CAAA,CAEA,EAEA,MAAA,CACA,MAAA,CACA,WAAA,SAAA,eAAA,iBAAA,CAAA,CAEA,EAEA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,QAAA,KACA,EAEA,yBAAA,CACA,OAAA,KAAA,kBAAA,SAAA,CAAAC,EAAAC,IAAA,KAAA,MAAAD,CAAA,EAAA,WAAA,UAAA,KAAA,MAAAC,CAAA,EAAA,WAAA,UAAA,GAAA,CAAA,CACA,CAAA,EAGA,SAAA,CACAC,EAAA,qBAAA,KAAA,iBAAA,CACA,EAEA,WAAA,CACAC,EAAA,qBAAA,KAAA,iBAAA,CACA,EAEA,QAAA,CACA,WAAAC,EAAA,CACA,OAAA,IAAA,OAAA,KAAA,CACA,SAAAC,EAAA,KAAA,MAAAD,CAAA,CAAA,EACA,KAAA,KAAA,wBAAA,IAAAA,GAAAC,EAAA,KAAA,MAAAD,CAAA,CAAA,CAAA,CAAA,CACA,CACA,EAEA,kBAAA,CAAA,OAAAE,GAAA,CACA,KAAA,OAAA,OAAA,4BAAA,CAAA,mBAAA,KAAA,WAAA,KAAA,KAAA,WAAA,KAAA,gBAAA,CAAAA,GAAA,SAAA,CAAA,EAAA,CACA,EAEA,EAAAC,CAAA,CAEA,CAAA"} \ No newline at end of file +{"version":3,"file":"CollectionContent-CqxKIviG.chunk.mjs","sources":["../src/components/Collection/CollectionContent.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","defineComponent","AlertCircleOutline","ImageMultipleOutline","NcEmptyContent","FilesListViewer","FileComponent","FilesSelectionMixin","useIsMobile","fileId1","fileId2","subscribe","unsubscribe","fileId","toViewerFileInfo","fileid","translate"],"mappings":"mXA+DA,MAAAA,EAAAC,EAAA,CACA,KAAA,oBAEA,WAAA,CACA,mBAAAC,EACA,qBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,cAAAC,CAAA,EAGA,OAAA,CAAAC,CAAA,EAEA,MAAA,CACA,WAAA,CACA,KAAA,OACA,QAAA,IAAA,CAAA,CAAA,EAGA,kBAAA,CACA,KAAA,MACA,SAAA,EAAA,EAGA,QAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,eAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,MAAA,CACA,KAAA,CAAA,MAAA,MAAA,EACA,QAAA,IAAA,CACA,EAGA,OAAA,CACA,MAAA,CACA,SAAAC,EAAA,CAAA,CAEA,EAEA,MAAA,CACA,MAAA,CACA,WAAA,SAAA,eAAA,iBAAA,CAAA,CAEA,EAEA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,QAAA,KACA,EAEA,yBAAA,CACA,OAAA,KAAA,kBAAA,SAAA,CAAAC,EAAAC,IAAA,KAAA,MAAAD,CAAA,EAAA,WAAA,UAAA,KAAA,MAAAC,CAAA,EAAA,WAAA,UAAA,GAAA,CAAA,CACA,CAAA,EAGA,SAAA,CACAC,EAAA,qBAAA,KAAA,iBAAA,CACA,EAEA,WAAA,CACAC,EAAA,qBAAA,KAAA,iBAAA,CACA,EAEA,QAAA,CACA,WAAAC,EAAA,CACA,OAAA,IAAA,OAAA,KAAA,CACA,SAAAC,EAAA,KAAA,MAAAD,CAAA,CAAA,EACA,KAAA,KAAA,wBAAA,IAAAA,GAAAC,EAAA,KAAA,MAAAD,CAAA,CAAA,CAAA,CAAA,CACA,CACA,EAEA,kBAAA,CAAA,OAAAE,GAAA,CACA,KAAA,OAAA,OAAA,4BAAA,CAAA,mBAAA,KAAA,WAAA,KAAA,KAAA,WAAA,KAAA,gBAAA,CAAAA,GAAA,SAAA,CAAA,EAAA,CACA,EAEA,EAAAC,CAAA,CAEA,CAAA"} \ No newline at end of file diff --git a/js/CollectionsList-CuML8IrY.chunk.mjs b/js/CollectionsList-DAU5uskw.chunk.mjs similarity index 91% rename from js/CollectionsList-CuML8IrY.chunk.mjs rename to js/CollectionsList-DAU5uskw.chunk.mjs index d9cfb16dc..6210df35f 100644 --- a/js/CollectionsList-CuML8IrY.chunk.mjs +++ b/js/CollectionsList-DAU5uskw.chunk.mjs @@ -1,2 +1,2 @@ -import{d as r,h as n,c as s,a as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{L as a}from"./video-DVVFoi8e.chunk.mjs";import{I as u,n as c,A as _}from"./icons-Du8Q1knx.chunk.mjs";import{N as p}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";const m=r({__name:"CollectionCover",props:{coverUrl:null,altImg:null,parentRoute:null,collectionName:null},setup(t){const o=t,e=n(!1),l=s(()=>`${o.parentRoute}/${encodeURIComponent(o.collectionName)}`);return{__sfc:!0,props:o,coverLoadingError:e,link:l,RouterLink:a,ImageMultipleOutline:u}}});var d=function(){var t=this,o=t._self._c,e=t._self._setupProxy;return o(e.RouterLink,{staticClass:"collection-cover",attrs:{to:e.link}},[t.coverUrl!==""&&e.coverLoadingError===!1?o("img",{staticClass:"collection-cover__image",attrs:{src:t.coverUrl,alt:t.altImg},on:{error:function(l){e.coverLoadingError=!0}}}):o("div",{staticClass:"collection-cover__image collection-cover__image--placeholder"},[o(e.ImageMultipleOutline,{attrs:{size:128}})],1),o("div",{staticClass:"collection-cover__details"},[o("div",{staticClass:"collection-cover__details__title"},[t._t("default")],2),o("div",{staticClass:"collection-cover__details__subtitle"},[t._t("subtitle")],2)])])},v=[],C=c(m,d,v,!1,null,"719cd191");const I=C.exports,f={name:"CollectionsList",components:{AlertCircleOutline:_,NcEmptyContent:p},props:{collections:{type:Object,required:!0},loading:{type:Boolean,default:!1},error:{type:Error,default:null}},computed:{noCollection(){return Object.keys(this.collections).length===0}},methods:{t:i}};var g=function(){var t=this,o=t._self._c;return t.error?o("NcEmptyContent",{attrs:{name:t.t("photos","An error occurred")}},[o("AlertCircleOutline",{attrs:{slot:"icon"},slot:"icon"})],1):o("div",{staticClass:"collections"},[t._t("header"),t.noCollection&&!t.loading?t._t("empty-collections-list"):t.noCollection?t._e():o("ul",{staticClass:"collections__list"},t._l(t.collections,function(e){return o("li",{key:e.basename,attrs:{"data-cy-collections-list-collection":e.basename}},[t._t("default",null,{collection:e})],2)}),0)],2)},h=[],y=c(f,g,h,!1,null,"b585220f");const O=y.exports;export{I as C,O as a}; -//# sourceMappingURL=CollectionsList-CuML8IrY.chunk.mjs.map +import{d as r,h as n,c as s,a as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{L as a}from"./video-B2A2Ed33.chunk.mjs";import{I as u,n as c,A as _}from"./icons-DCSM00Rh.chunk.mjs";import{N as p}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";const m=r({__name:"CollectionCover",props:{coverUrl:null,altImg:null,parentRoute:null,collectionName:null},setup(t){const o=t,e=n(!1),l=s(()=>`${o.parentRoute}/${encodeURIComponent(o.collectionName)}`);return{__sfc:!0,props:o,coverLoadingError:e,link:l,RouterLink:a,ImageMultipleOutline:u}}});var d=function(){var t=this,o=t._self._c,e=t._self._setupProxy;return o(e.RouterLink,{staticClass:"collection-cover",attrs:{to:e.link}},[t.coverUrl!==""&&e.coverLoadingError===!1?o("img",{staticClass:"collection-cover__image",attrs:{src:t.coverUrl,alt:t.altImg},on:{error:function(l){e.coverLoadingError=!0}}}):o("div",{staticClass:"collection-cover__image collection-cover__image--placeholder"},[o(e.ImageMultipleOutline,{attrs:{size:128}})],1),o("div",{staticClass:"collection-cover__details"},[o("div",{staticClass:"collection-cover__details__title"},[t._t("default")],2),o("div",{staticClass:"collection-cover__details__subtitle"},[t._t("subtitle")],2)])])},v=[],C=c(m,d,v,!1,null,"719cd191");const I=C.exports,f={name:"CollectionsList",components:{AlertCircleOutline:_,NcEmptyContent:p},props:{collections:{type:Object,required:!0},loading:{type:Boolean,default:!1},error:{type:Error,default:null}},computed:{noCollection(){return Object.keys(this.collections).length===0}},methods:{t:i}};var g=function(){var t=this,o=t._self._c;return t.error?o("NcEmptyContent",{attrs:{name:t.t("photos","An error occurred")}},[o("AlertCircleOutline",{attrs:{slot:"icon"},slot:"icon"})],1):o("div",{staticClass:"collections"},[t._t("header"),t.noCollection&&!t.loading?t._t("empty-collections-list"):t.noCollection?t._e():o("ul",{staticClass:"collections__list"},t._l(t.collections,function(e){return o("li",{key:e.basename,attrs:{"data-cy-collections-list-collection":e.basename}},[t._t("default",null,{collection:e})],2)}),0)],2)},h=[],y=c(f,g,h,!1,null,"b585220f");const O=y.exports;export{I as C,O as a}; +//# sourceMappingURL=CollectionsList-DAU5uskw.chunk.mjs.map diff --git a/js/CollectionsList-CuML8IrY.chunk.mjs.license b/js/CollectionsList-DAU5uskw.chunk.mjs.license similarity index 100% rename from js/CollectionsList-CuML8IrY.chunk.mjs.license rename to js/CollectionsList-DAU5uskw.chunk.mjs.license diff --git a/js/CollectionsList-CuML8IrY.chunk.mjs.map b/js/CollectionsList-DAU5uskw.chunk.mjs.map similarity index 98% rename from js/CollectionsList-CuML8IrY.chunk.mjs.map rename to js/CollectionsList-DAU5uskw.chunk.mjs.map index 681eef798..2d993e7e8 100644 --- a/js/CollectionsList-CuML8IrY.chunk.mjs.map +++ b/js/CollectionsList-DAU5uskw.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"CollectionsList-CuML8IrY.chunk.mjs","sources":["../src/components/Collection/CollectionCover.vue","../src/components/Collection/CollectionsList.vue"],"sourcesContent":["\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["coverLoadingError","ref","link","computed","props","_sfc_main","AlertCircleOutline","NcEmptyContent","translate"],"mappings":"+WAuCMA,EAAoBC,EAAI,EAAK,EAC7BC,EAAOC,EAAS,IAAM,GAAGC,EAAM,WAAW,IAAI,mBAAmBA,EAAM,cAAc,CAAC,EAAE,wyBCN9FC,EAAA,CACA,KAAA,kBAEA,WAAA,CACA,mBAAAC,EACA,eAAAC,CAAA,EAGA,MAAA,CACA,YAAA,CACA,KAAA,OACA,SAAA,EAAA,EAGA,QAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,MAAA,CACA,KAAA,MACA,QAAA,IAAA,CACA,EAGA,SAAA,CACA,cAAA,CACA,OAAA,OAAA,KAAA,KAAA,WAAA,EAAA,SAAA,CACA,CAAA,EAGA,QAAA,CACA,EAAAC,CAAA,CAEA"} \ No newline at end of file +{"version":3,"file":"CollectionsList-DAU5uskw.chunk.mjs","sources":["../src/components/Collection/CollectionCover.vue","../src/components/Collection/CollectionsList.vue"],"sourcesContent":["\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["coverLoadingError","ref","link","computed","props","_sfc_main","AlertCircleOutline","NcEmptyContent","translate"],"mappings":"+WAuCMA,EAAoBC,EAAI,EAAK,EAC7BC,EAAOC,EAAS,IAAM,GAAGC,EAAM,WAAW,IAAI,mBAAmBA,EAAM,cAAc,CAAC,EAAE,wyBCN9FC,EAAA,CACA,KAAA,kBAEA,WAAA,CACA,mBAAAC,EACA,eAAAC,CAAA,EAGA,MAAA,CACA,YAAA,CACA,KAAA,OACA,SAAA,EAAA,EAGA,QAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,MAAA,CACA,KAAA,MACA,QAAA,IAAA,CACA,EAGA,SAAA,CACA,cAAA,CACA,OAAA,OAAA,KAAA,KAAA,WAAA,EAAA,SAAA,CACA,CAAA,EAGA,QAAA,CACA,EAAAC,CAAA,CAEA"} \ No newline at end of file diff --git a/js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs b/js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs similarity index 96% rename from js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs rename to js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs index 38a7f8804..f04e585e9 100644 --- a/js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs +++ b/js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs @@ -1,2 +1,2 @@ -import{d as h,F as p,n as S}from"./preload-helper-B1hyiFAx.chunk.mjs";import{n as d,t as r,l as o,s as w,i as a,a as b,b as k,c as _}from"./index-SPoS3_zU-NmnSNTht.chunk.mjs";import{N as v}from"./NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs";import"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import{g as y,f as C}from"./index-CsCSS_KR.chunk.mjs";import{N as f}from"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import{N as x}from"./index-msNec4Xs.chunk.mjs";import{N}from"./NcDateTime-enXYuwj8-CgQNgh_Q.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcModal-BX64wQqg.chunk.mjs";import"./NcLoadingIcon-DM-94wwW.chunk.mjs";import"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import"./video-DVVFoi8e.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./useHotKey-oP-0fLfr.chunk.mjs";import"./NcIconToggleSwitch-CaDISrhm-8yJ7ws72.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./useFormatDateTime-BO2tHI5p.chunk.mjs";const z={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var F=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon arrow-right-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(i){return e.$emit("click",i)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},P=[],A=d(z,F,P,!1,null,null);const g=A.exports,B={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var L=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(i){return e.$emit("click",i)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},R=[],M=d(B,L,R,!1,null,null);const E=M.exports,O={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var I=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(i){return e.$emit("click",i)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},$=[],U=d(O,I,$,!1,null,null);const V=U.exports,q=h({name:"NodePickerCard",components:{FileSvg:E,FolderSvg:V,NcDateTime:N},props:{preview:{type:String,default:null},mtime:{type:Date,default:null},size:{type:Number,default:null},isFolder:{type:Boolean,default:!1},label:{type:String,required:!0},boldDate:{type:Boolean,default:!1},boldSize:{type:Boolean,default:!1}},data(){return{previewFailed:!1}},computed:{showPreview(){return!!this.preview&&!this.previewFailed},formattedSize(){return this.size?C(this.size,!0):r("Unknown size")}},watch:{preview(){this.previewFailed=!1}},methods:{t:r}});var D=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("span",{staticClass:"node-picker"},[e.showPreview?t("img",{staticClass:"node-picker__preview",attrs:{src:e.preview,alt:"",loading:"lazy"},on:{error:function(i){e.previewFailed=!0}}}):[e.isFolder?t("FolderSvg",{staticClass:"node-picker__icon",attrs:{size:48}}):t("FileSvg",{staticClass:"node-picker__icon",attrs:{size:48}})],t("span",{staticClass:"node-picker__desc"},[e.mtime?t("NcDateTime",{staticClass:"node-picker__mtime",class:{"node-picker__value--bold":e.boldDate},attrs:{timestamp:e.mtime,"relative-time":!1,format:{timeStyle:"short",dateStyle:"medium"}}}):t("span",{staticClass:"node-picker__mtime"},[e._v(" "+e._s(e.t("Last modified date unknown"))+" ")]),t("span",{staticClass:"node-picker__size",class:{"node-picker__value--bold":e.boldSize}},[e._v(" "+e._s(e.formattedSize)+" ")]),t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.label))])],1)],2)},T=[],H=d(q,D,T,!1,null,"7a2b1a1d");const j=H.exports,m=64,K=h({name:"NodesPicker",components:{ArrowRight:g,NcCheckboxRadioSwitch:f,NodePickerCard:j},props:{incoming:{type:[File,Object],required:!0},existing:{type:Object,required:!0},newSelected:{type:Array,required:!0},oldSelected:{type:Array,required:!0},isSingle:{type:Boolean,default:!1}},data(){return{asyncPreview:null,incomingFile:null}},computed:{isEnoughSelected(){return this.isChecked(this.incoming,this.newSelected)||this.isChecked(this.existing,this.oldSelected)},incomingPreview(){return this.incomingFile?this.previewUrl(this.incomingFile)??this.asyncPreview:null},incomingLastModified(){return this.incomingFile?this.lastModified(this.incomingFile):null},incomingSize(){return this.incomingFile?.size??null},existingPreview(){return this.previewUrl(this.existing)},existingLastModified(){return this.lastModified(this.existing)},existingSize(){return this.existing.size??null},incomingNewer(){return this.isBigger(this.incomingLastModified?.getTime(),this.existingLastModified?.getTime())},existingNewer(){return this.isBigger(this.existingLastModified?.getTime(),this.incomingLastModified?.getTime())},incomingLarger(){return this.isBigger(this.incomingSize,this.existingSize)},existingLarger(){return this.isBigger(this.existingSize,this.incomingSize)}},watch:{incoming:{immediate:!0,async handler(){this.incoming instanceof File?this.incomingFile=this.incoming:_(this.incoming)?this.incomingFile=await new Promise((e,t)=>this.incoming.file(e,t)):this.incomingFile=null}}},methods:{isBigger(e,t){return!e||!t?!1:e>t},lastModified(e){return(e instanceof File?new Date(e.lastModified):e.mtime)??null},previewUrl(e){if(e instanceof File)return this.previewImage(e).then(t=>{this.asyncPreview=t}),null;if(e.type===p.Folder)return null;try{const t=e.attributes.previewUrl||S("/core/preview?fileId={fileid}",{fileid:e.fileid}),i=new URL(window.location.origin+t);i.searchParams.set("x",m.toString()),i.searchParams.set("y",m.toString()),i.searchParams.set("mimeFallback","true");const l=e.attributes?.etag||"";return i.searchParams.set("v",l.slice(0,6)),i.href}catch{return null}},isFolder(e){return a(e)?e.isDirectory:(e=e,e.type===p.Folder||e.type==="httpd/unix-directory")},isChecked(e,t){return t.includes(e)},onUpdateIncomingChecked(e){e?this.$emit("update:newSelected",[this.incoming,...this.newSelected]):this.$emit("update:newSelected",this.newSelected.filter(t=>t!==this.incoming))},onUpdateExistingChecked(e){e?this.$emit("update:oldSelected",[this.existing,...this.oldSelected]):this.$emit("update:oldSelected",this.oldSelected.filter(t=>t!==this.existing))},async previewImage(e){return new Promise(t=>{if(e instanceof File&&e.type.startsWith("image/")){const i=new FileReader;i.onload=async l=>{const s=l?.target?.result;if(s instanceof ArrayBuffer){const n=new Blob([s],{type:e.type}),c=URL.createObjectURL(n);t(c);return}t(null)},i.readAsArrayBuffer(e)}else t(null)})},t:r}});var W=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("fieldset",{staticClass:"node-picker__wrapper",attrs:{"data-cy-conflict-picker-fieldset":e.existing.basename}},[t("legend",[e._v(e._s(e.existing.basename))]),e.isSingle?t("NodePickerCard",{attrs:{preview:e.existingPreview,mtime:e.existingLastModified,size:e.existingSize,"is-folder":e.isFolder(e.existing),label:e.t("Existing version"),"bold-date":e.existingNewer,"bold-size":e.existingLarger}}):t("NcCheckboxRadioSwitch",{attrs:{checked:e.isChecked(e.existing,e.oldSelected),required:!e.isEnoughSelected,"data-cy-conflict-picker-input-existing":e.existing.basename},on:{"update:checked":e.onUpdateExistingChecked}},[t("NodePickerCard",{attrs:{preview:e.existingPreview,mtime:e.existingLastModified,size:e.existingSize,"is-folder":e.isFolder(e.existing),label:e.t("Existing version"),"bold-date":e.existingNewer,"bold-size":e.existingLarger}})],1),t("ArrowRight",{staticClass:"node-picker__arrow",attrs:{size:20}}),e.isSingle?t("NodePickerCard",{attrs:{preview:e.incomingPreview,mtime:e.incomingLastModified,size:e.incomingSize,"is-folder":e.isFolder(e.incoming),label:e.t("New version"),"bold-date":e.incomingNewer,"bold-size":e.incomingLarger}}):t("NcCheckboxRadioSwitch",{attrs:{checked:e.isChecked(e.incoming,e.newSelected),required:!e.isEnoughSelected,"data-cy-conflict-picker-input-incoming":e.existing.basename},on:{"update:checked":e.onUpdateIncomingChecked}},[t("NodePickerCard",{attrs:{preview:e.incomingPreview,mtime:e.incomingLastModified,size:e.incomingSize,"is-folder":e.isFolder(e.incoming),label:e.t("New version"),"bold-date":e.incomingNewer,"bold-size":e.incomingLarger}})],1)],1)},Z=[],Y=d(K,W,Z,!1,null,"dcd77f87");const G=Y.exports,J=h({name:"ConflictPicker",components:{ArrowRight:g,NcButton:x,NcCheckboxRadioSwitch:f,NcDialog:v,NodesPicker:G},props:{dirname:{type:String,default:""},content:{type:Array,required:!0},conflicts:{type:Array,required:!0},recursiveUpload:{type:Boolean,default:!1}},emits:["cancel","submit"],setup(){return{blockedTitle:r("You need to select at least one version of each file to continue.")}},data(){return{files:[],opened:!0,newSelected:[],oldSelected:[]}},computed:{name(){return this.isSingle?r("Select file to keep"):r("Select files to keep")},isSingle(){return this.conflicts.length===1},folderName(){return k(this.dirname??"")||r("All files")},descriptionParts(){const e=this.isSingle?r("An item with the same name already exists in {dirname}."):r("Items with the same name already exist in {dirname}, select which to keep."),[t,i=""]=e.split("{dirname}");return{before:t,after:i}},skipButtonLabel(){return b("Skip {count} file","Skip {count} files",this.conflicts.length,{count:this.conflicts.length})},selectAllNewBind(){const e=this.isNoneNewSelected||this.isSomeNewSelected?this.t("Select all"):this.t("Unselect all");return{"aria-label":e,checked:this.isAllNewSelected,indeterminate:this.isSomeNewSelected,title:e}},isAllNewSelected(){return this.newSelected.length===this.conflicts.length},isNoneNewSelected(){return this.newSelected.length===0},isSomeNewSelected(){return!this.isAllNewSelected&&!this.isNoneNewSelected},selectAllOldBind(){const e=this.isNoneOldSelected||this.isSomeOldSelected?this.t("Select all"):this.t("Unselect all");return{"aria-label":e,checked:this.isAllOldSelected,indeterminate:this.isSomeOldSelected,title:e}},isAllOldSelected(){return this.oldSelected.length===this.files.length},isNoneOldSelected(){return this.oldSelected.length===0},isSomeOldSelected(){return!this.isAllOldSelected&&!this.isNoneOldSelected},isEnoughSelected(){return this.isAllOldSelected||this.isAllNewSelected?!0:this.$refs?.nodesPicker?.every?.(e=>e.isEnoughSelected)}},mounted(){if(this.files=this.conflicts.map(e=>{const t=e instanceof File||a(e)?e.name:e.basename;return this.content.find(i=>i.basename===t)}).filter(Boolean),this.conflicts.length===0||this.files.length===0){const e=new Error("ConflictPicker: files and conflicts must not be empty");throw this.onCancel(e),e}if(this.conflicts.length!==this.files.length){const e=new Error("ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.");throw this.onCancel(e),e}this.newSelected=this.conflicts,o.debug("ConflictPicker initialised",{files:this.files,conflicts:this.conflicts,content:this.content})},methods:{onCancel(e){this.opened=!1,this.$emit("cancel",e)},onSkip(){o.debug("Conflict skipped. Ignoring all conflicting files"),this.opened=!1,this.$emit("submit",{selected:[],renamed:[]})},onReplace(){this.newSelected=this.conflicts,this.oldSelected=[],this.onSubmit()},onKeepBoth(){this.newSelected=this.conflicts,this.oldSelected=this.files,this.onSubmit()},onSubmit(){if(!this.isEnoughSelected){this.scrollValidityInputIntoView(),this.$refs.form.reportValidity(),w(this.blockedTitle);return}const e=this.oldSelected.map(n=>n.basename),t=this.content.map(n=>n.basename),i=[],l=this.newSelected.filter(n=>{const c=n instanceof File||a(n)?n.name:n.basename;return e.includes(c)});l.length>0&&l.forEach(n=>{const c=n instanceof File||a(n)?n.name:n.basename,u=y(c,t);if(n instanceof File||a(n)){Object.defineProperty(n,"name",{value:u}),i.push(n);return}n.rename(u),i.push(n)});const s=this.newSelected.filter(n=>{const c=n instanceof File||a(n)?n.name:n.basename;return!e.includes(c)&&!l.includes(n)});o.debug("Conflict resolved",{selected:s,renamed:i}),this.opened=!1,this.$emit("submit",{selected:s,renamed:i})},scrollValidityInputIntoView(){const e='.checkbox-radio-switch input[type="checkbox"]';Array.from(this.$el.querySelectorAll(e)).forEach(i=>i?.setCustomValidity?.(""));const t=this.$el.querySelector(e+":invalid");t&&(t.setCustomValidity(this.blockedTitle),t.scrollIntoView({behavior:"instant",block:"center"}))},onSelectAllNew(e){e?(o.debug("Selected all new files"),this.newSelected=this.conflicts):(o.debug("Cleared new selection"),this.newSelected=[])},onSelectAllOld(e){e?(o.debug("Selected all existing files"),this.oldSelected=this.files):(o.debug("Cleared old selection"),this.oldSelected=[])},t:r}});var Q=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{staticClass:"conflict-picker",attrs:{"can-close":"","data-cy-conflict-picker":"","close-on-click-outside":!1,show:e.opened,name:e.name,size:"large"},on:{closing:e.onCancel},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{"aria-label":e.t("Cancel"),title:e.t("Cancel the entire operation"),"data-cy-conflict-picker-cancel":"",type:"tertiary"},on:{click:e.onCancel}},[e._v(" "+e._s(e.t("Cancel"))+" ")]),t("span",{staticClass:"dialog__actions-separator"}),e.isSingle?[t("NcButton",{attrs:{"aria-label":e.t("Keep both"),"data-cy-conflict-picker-keep-both":"",type:"secondary"},on:{click:e.onKeepBoth}},[e._v(" "+e._s(e.t("Keep both"))+" ")]),t("NcButton",{attrs:{"aria-label":e.t("Replace"),"data-cy-conflict-picker-submit":"",type:"primary"},on:{click:e.onReplace}},[e._v(" "+e._s(e.t("Replace"))+" ")])]:[t("NcButton",{attrs:{"aria-label":e.skipButtonLabel,"data-cy-conflict-picker-skip":""},on:{click:e.onSkip}},[e._v(" "+e._s(e.skipButtonLabel)+" ")]),t("NcButton",{class:{"button-vue--disabled":!e.isEnoughSelected},attrs:{"aria-label":e.t("Continue"),title:e.isEnoughSelected?"":e.blockedTitle,"data-cy-conflict-picker-submit":"","native-type":"submit",type:"primary"},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),e.onSubmit.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowRight",{attrs:{size:20}})]},proxy:!0}])},[e._v(" "+e._s(e.t("Continue"))+" ")])]]},proxy:!0}])},[t("div",{staticClass:"conflict-picker__header"},[t("p",{staticClass:"conflict-picker__description",attrs:{id:"conflict-picker-description"}},[e._v(" "+e._s(e.descriptionParts.before)),t("strong",[e._v(e._s(e.folderName))]),e._v(e._s(e.descriptionParts.after)),t("br"),e.isSingle?e._e():[e._v(" "+e._s(e.t("Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed."))),t("br")],e.recursiveUpload?[e._v(" "+e._s(e.t("When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."))+" ")]:[e._v(" "+e._s(e.t("When a new folder is selected, any conflicting files within it will also be overwritten."))+" ")]],2)]),t("form",{ref:"form",staticClass:"conflict-picker__form",attrs:{"aria-labelledby":"conflict-picker-description","data-cy-conflict-picker-form":""},on:{submit:function(i){return i.preventDefault(),i.stopPropagation(),e.onSubmit.apply(null,arguments)}}},[e.isSingle?e._e():t("fieldset",{staticClass:"conflict-picker__all",attrs:{"data-cy-conflict-picker-fieldset":"all"}},[t("legend",{staticClass:"hidden-visually"},[e._v(" "+e._s(e.t("Select all checkboxes"))+" ")]),t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-conflict-picker-input-existing":"all"},on:{"update:checked":e.onSelectAllOld}},"NcCheckboxRadioSwitch",e.selectAllOldBind,!1),[e._v(" "+e._s(e.t("Existing files"))+" ")]),t("span"),t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-conflict-picker-input-incoming":"all"},on:{"update:checked":e.onSelectAllNew}},"NcCheckboxRadioSwitch",e.selectAllNewBind,!1),[e._v(" "+e._s(e.t("New files"))+" ")])],1),e._l(e.files,function(i,l){return t("NodesPicker",{key:i.fileid,ref:"nodesPicker",refInFor:!0,attrs:{incoming:e.conflicts[l],existing:e.files[l],"is-single":e.isSingle,"new-selected":e.newSelected,"old-selected":e.oldSelected},on:{"update:newSelected":function(s){e.newSelected=s},"update:new-selected":function(s){e.newSelected=s},"update:oldSelected":function(s){e.oldSelected=s},"update:old-selected":function(s){e.oldSelected=s}}})})],2)])},X=[],ee=d(J,Q,X,!1,null,"4a4bdd42");const ke=ee.exports;export{ke as default}; -//# sourceMappingURL=ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.map +import{d as h,F as p,n as S}from"./preload-helper-B1hyiFAx.chunk.mjs";import{n as d,t as r,l as o,s as w,i as a,a as b,b as k,c as _}from"./index-SPoS3_zU-BiaeHne1.chunk.mjs";import{N as v}from"./NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs";import"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import{g as y,f as C}from"./index-CsCSS_KR.chunk.mjs";import{N as f}from"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import{N as x}from"./index-msNec4Xs.chunk.mjs";import{N}from"./NcDateTime-enXYuwj8-CEp4UIuf.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcModal-DnfAQoZ9.chunk.mjs";import"./NcLoadingIcon-DM-94wwW.chunk.mjs";import"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import"./video-B2A2Ed33.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./useHotKey-CZEtuasP.chunk.mjs";import"./NcIconToggleSwitch-CaDISrhm-8yJ7ws72.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./useFormatDateTime-yGVH7_h2.chunk.mjs";const z={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var F=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon arrow-right-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(i){return e.$emit("click",i)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},P=[],A=d(z,F,P,!1,null,null);const g=A.exports,B={name:"FileIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var L=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(i){return e.$emit("click",i)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},R=[],M=d(B,L,R,!1,null,null);const E=M.exports,O={name:"FolderIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var I=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(i){return e.$emit("click",i)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])},$=[],U=d(O,I,$,!1,null,null);const V=U.exports,q=h({name:"NodePickerCard",components:{FileSvg:E,FolderSvg:V,NcDateTime:N},props:{preview:{type:String,default:null},mtime:{type:Date,default:null},size:{type:Number,default:null},isFolder:{type:Boolean,default:!1},label:{type:String,required:!0},boldDate:{type:Boolean,default:!1},boldSize:{type:Boolean,default:!1}},data(){return{previewFailed:!1}},computed:{showPreview(){return!!this.preview&&!this.previewFailed},formattedSize(){return this.size?C(this.size,!0):r("Unknown size")}},watch:{preview(){this.previewFailed=!1}},methods:{t:r}});var D=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("span",{staticClass:"node-picker"},[e.showPreview?t("img",{staticClass:"node-picker__preview",attrs:{src:e.preview,alt:"",loading:"lazy"},on:{error:function(i){e.previewFailed=!0}}}):[e.isFolder?t("FolderSvg",{staticClass:"node-picker__icon",attrs:{size:48}}):t("FileSvg",{staticClass:"node-picker__icon",attrs:{size:48}})],t("span",{staticClass:"node-picker__desc"},[e.mtime?t("NcDateTime",{staticClass:"node-picker__mtime",class:{"node-picker__value--bold":e.boldDate},attrs:{timestamp:e.mtime,"relative-time":!1,format:{timeStyle:"short",dateStyle:"medium"}}}):t("span",{staticClass:"node-picker__mtime"},[e._v(" "+e._s(e.t("Last modified date unknown"))+" ")]),t("span",{staticClass:"node-picker__size",class:{"node-picker__value--bold":e.boldSize}},[e._v(" "+e._s(e.formattedSize)+" ")]),t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.label))])],1)],2)},T=[],H=d(q,D,T,!1,null,"7a2b1a1d");const j=H.exports,m=64,K=h({name:"NodesPicker",components:{ArrowRight:g,NcCheckboxRadioSwitch:f,NodePickerCard:j},props:{incoming:{type:[File,Object],required:!0},existing:{type:Object,required:!0},newSelected:{type:Array,required:!0},oldSelected:{type:Array,required:!0},isSingle:{type:Boolean,default:!1}},data(){return{asyncPreview:null,incomingFile:null}},computed:{isEnoughSelected(){return this.isChecked(this.incoming,this.newSelected)||this.isChecked(this.existing,this.oldSelected)},incomingPreview(){return this.incomingFile?this.previewUrl(this.incomingFile)??this.asyncPreview:null},incomingLastModified(){return this.incomingFile?this.lastModified(this.incomingFile):null},incomingSize(){return this.incomingFile?.size??null},existingPreview(){return this.previewUrl(this.existing)},existingLastModified(){return this.lastModified(this.existing)},existingSize(){return this.existing.size??null},incomingNewer(){return this.isBigger(this.incomingLastModified?.getTime(),this.existingLastModified?.getTime())},existingNewer(){return this.isBigger(this.existingLastModified?.getTime(),this.incomingLastModified?.getTime())},incomingLarger(){return this.isBigger(this.incomingSize,this.existingSize)},existingLarger(){return this.isBigger(this.existingSize,this.incomingSize)}},watch:{incoming:{immediate:!0,async handler(){this.incoming instanceof File?this.incomingFile=this.incoming:_(this.incoming)?this.incomingFile=await new Promise((e,t)=>this.incoming.file(e,t)):this.incomingFile=null}}},methods:{isBigger(e,t){return!e||!t?!1:e>t},lastModified(e){return(e instanceof File?new Date(e.lastModified):e.mtime)??null},previewUrl(e){if(e instanceof File)return this.previewImage(e).then(t=>{this.asyncPreview=t}),null;if(e.type===p.Folder)return null;try{const t=e.attributes.previewUrl||S("/core/preview?fileId={fileid}",{fileid:e.fileid}),i=new URL(window.location.origin+t);i.searchParams.set("x",m.toString()),i.searchParams.set("y",m.toString()),i.searchParams.set("mimeFallback","true");const l=e.attributes?.etag||"";return i.searchParams.set("v",l.slice(0,6)),i.href}catch{return null}},isFolder(e){return a(e)?e.isDirectory:(e=e,e.type===p.Folder||e.type==="httpd/unix-directory")},isChecked(e,t){return t.includes(e)},onUpdateIncomingChecked(e){e?this.$emit("update:newSelected",[this.incoming,...this.newSelected]):this.$emit("update:newSelected",this.newSelected.filter(t=>t!==this.incoming))},onUpdateExistingChecked(e){e?this.$emit("update:oldSelected",[this.existing,...this.oldSelected]):this.$emit("update:oldSelected",this.oldSelected.filter(t=>t!==this.existing))},async previewImage(e){return new Promise(t=>{if(e instanceof File&&e.type.startsWith("image/")){const i=new FileReader;i.onload=async l=>{const s=l?.target?.result;if(s instanceof ArrayBuffer){const n=new Blob([s],{type:e.type}),c=URL.createObjectURL(n);t(c);return}t(null)},i.readAsArrayBuffer(e)}else t(null)})},t:r}});var W=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("fieldset",{staticClass:"node-picker__wrapper",attrs:{"data-cy-conflict-picker-fieldset":e.existing.basename}},[t("legend",[e._v(e._s(e.existing.basename))]),e.isSingle?t("NodePickerCard",{attrs:{preview:e.existingPreview,mtime:e.existingLastModified,size:e.existingSize,"is-folder":e.isFolder(e.existing),label:e.t("Existing version"),"bold-date":e.existingNewer,"bold-size":e.existingLarger}}):t("NcCheckboxRadioSwitch",{attrs:{checked:e.isChecked(e.existing,e.oldSelected),required:!e.isEnoughSelected,"data-cy-conflict-picker-input-existing":e.existing.basename},on:{"update:checked":e.onUpdateExistingChecked}},[t("NodePickerCard",{attrs:{preview:e.existingPreview,mtime:e.existingLastModified,size:e.existingSize,"is-folder":e.isFolder(e.existing),label:e.t("Existing version"),"bold-date":e.existingNewer,"bold-size":e.existingLarger}})],1),t("ArrowRight",{staticClass:"node-picker__arrow",attrs:{size:20}}),e.isSingle?t("NodePickerCard",{attrs:{preview:e.incomingPreview,mtime:e.incomingLastModified,size:e.incomingSize,"is-folder":e.isFolder(e.incoming),label:e.t("New version"),"bold-date":e.incomingNewer,"bold-size":e.incomingLarger}}):t("NcCheckboxRadioSwitch",{attrs:{checked:e.isChecked(e.incoming,e.newSelected),required:!e.isEnoughSelected,"data-cy-conflict-picker-input-incoming":e.existing.basename},on:{"update:checked":e.onUpdateIncomingChecked}},[t("NodePickerCard",{attrs:{preview:e.incomingPreview,mtime:e.incomingLastModified,size:e.incomingSize,"is-folder":e.isFolder(e.incoming),label:e.t("New version"),"bold-date":e.incomingNewer,"bold-size":e.incomingLarger}})],1)],1)},Z=[],Y=d(K,W,Z,!1,null,"dcd77f87");const G=Y.exports,J=h({name:"ConflictPicker",components:{ArrowRight:g,NcButton:x,NcCheckboxRadioSwitch:f,NcDialog:v,NodesPicker:G},props:{dirname:{type:String,default:""},content:{type:Array,required:!0},conflicts:{type:Array,required:!0},recursiveUpload:{type:Boolean,default:!1}},emits:["cancel","submit"],setup(){return{blockedTitle:r("You need to select at least one version of each file to continue.")}},data(){return{files:[],opened:!0,newSelected:[],oldSelected:[]}},computed:{name(){return this.isSingle?r("Select file to keep"):r("Select files to keep")},isSingle(){return this.conflicts.length===1},folderName(){return k(this.dirname??"")||r("All files")},descriptionParts(){const e=this.isSingle?r("An item with the same name already exists in {dirname}."):r("Items with the same name already exist in {dirname}, select which to keep."),[t,i=""]=e.split("{dirname}");return{before:t,after:i}},skipButtonLabel(){return b("Skip {count} file","Skip {count} files",this.conflicts.length,{count:this.conflicts.length})},selectAllNewBind(){const e=this.isNoneNewSelected||this.isSomeNewSelected?this.t("Select all"):this.t("Unselect all");return{"aria-label":e,checked:this.isAllNewSelected,indeterminate:this.isSomeNewSelected,title:e}},isAllNewSelected(){return this.newSelected.length===this.conflicts.length},isNoneNewSelected(){return this.newSelected.length===0},isSomeNewSelected(){return!this.isAllNewSelected&&!this.isNoneNewSelected},selectAllOldBind(){const e=this.isNoneOldSelected||this.isSomeOldSelected?this.t("Select all"):this.t("Unselect all");return{"aria-label":e,checked:this.isAllOldSelected,indeterminate:this.isSomeOldSelected,title:e}},isAllOldSelected(){return this.oldSelected.length===this.files.length},isNoneOldSelected(){return this.oldSelected.length===0},isSomeOldSelected(){return!this.isAllOldSelected&&!this.isNoneOldSelected},isEnoughSelected(){return this.isAllOldSelected||this.isAllNewSelected?!0:this.$refs?.nodesPicker?.every?.(e=>e.isEnoughSelected)}},mounted(){if(this.files=this.conflicts.map(e=>{const t=e instanceof File||a(e)?e.name:e.basename;return this.content.find(i=>i.basename===t)}).filter(Boolean),this.conflicts.length===0||this.files.length===0){const e=new Error("ConflictPicker: files and conflicts must not be empty");throw this.onCancel(e),e}if(this.conflicts.length!==this.files.length){const e=new Error("ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.");throw this.onCancel(e),e}this.newSelected=this.conflicts,o.debug("ConflictPicker initialised",{files:this.files,conflicts:this.conflicts,content:this.content})},methods:{onCancel(e){this.opened=!1,this.$emit("cancel",e)},onSkip(){o.debug("Conflict skipped. Ignoring all conflicting files"),this.opened=!1,this.$emit("submit",{selected:[],renamed:[]})},onReplace(){this.newSelected=this.conflicts,this.oldSelected=[],this.onSubmit()},onKeepBoth(){this.newSelected=this.conflicts,this.oldSelected=this.files,this.onSubmit()},onSubmit(){if(!this.isEnoughSelected){this.scrollValidityInputIntoView(),this.$refs.form.reportValidity(),w(this.blockedTitle);return}const e=this.oldSelected.map(n=>n.basename),t=this.content.map(n=>n.basename),i=[],l=this.newSelected.filter(n=>{const c=n instanceof File||a(n)?n.name:n.basename;return e.includes(c)});l.length>0&&l.forEach(n=>{const c=n instanceof File||a(n)?n.name:n.basename,u=y(c,t);if(n instanceof File||a(n)){Object.defineProperty(n,"name",{value:u}),i.push(n);return}n.rename(u),i.push(n)});const s=this.newSelected.filter(n=>{const c=n instanceof File||a(n)?n.name:n.basename;return!e.includes(c)&&!l.includes(n)});o.debug("Conflict resolved",{selected:s,renamed:i}),this.opened=!1,this.$emit("submit",{selected:s,renamed:i})},scrollValidityInputIntoView(){const e='.checkbox-radio-switch input[type="checkbox"]';Array.from(this.$el.querySelectorAll(e)).forEach(i=>i?.setCustomValidity?.(""));const t=this.$el.querySelector(e+":invalid");t&&(t.setCustomValidity(this.blockedTitle),t.scrollIntoView({behavior:"instant",block:"center"}))},onSelectAllNew(e){e?(o.debug("Selected all new files"),this.newSelected=this.conflicts):(o.debug("Cleared new selection"),this.newSelected=[])},onSelectAllOld(e){e?(o.debug("Selected all existing files"),this.oldSelected=this.files):(o.debug("Cleared old selection"),this.oldSelected=[])},t:r}});var Q=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{staticClass:"conflict-picker",attrs:{"can-close":"","data-cy-conflict-picker":"","close-on-click-outside":!1,show:e.opened,name:e.name,size:"large"},on:{closing:e.onCancel},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{"aria-label":e.t("Cancel"),title:e.t("Cancel the entire operation"),"data-cy-conflict-picker-cancel":"",type:"tertiary"},on:{click:e.onCancel}},[e._v(" "+e._s(e.t("Cancel"))+" ")]),t("span",{staticClass:"dialog__actions-separator"}),e.isSingle?[t("NcButton",{attrs:{"aria-label":e.t("Keep both"),"data-cy-conflict-picker-keep-both":"",type:"secondary"},on:{click:e.onKeepBoth}},[e._v(" "+e._s(e.t("Keep both"))+" ")]),t("NcButton",{attrs:{"aria-label":e.t("Replace"),"data-cy-conflict-picker-submit":"",type:"primary"},on:{click:e.onReplace}},[e._v(" "+e._s(e.t("Replace"))+" ")])]:[t("NcButton",{attrs:{"aria-label":e.skipButtonLabel,"data-cy-conflict-picker-skip":""},on:{click:e.onSkip}},[e._v(" "+e._s(e.skipButtonLabel)+" ")]),t("NcButton",{class:{"button-vue--disabled":!e.isEnoughSelected},attrs:{"aria-label":e.t("Continue"),title:e.isEnoughSelected?"":e.blockedTitle,"data-cy-conflict-picker-submit":"","native-type":"submit",type:"primary"},on:{click:function(i){return i.stopPropagation(),i.preventDefault(),e.onSubmit.apply(null,arguments)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowRight",{attrs:{size:20}})]},proxy:!0}])},[e._v(" "+e._s(e.t("Continue"))+" ")])]]},proxy:!0}])},[t("div",{staticClass:"conflict-picker__header"},[t("p",{staticClass:"conflict-picker__description",attrs:{id:"conflict-picker-description"}},[e._v(" "+e._s(e.descriptionParts.before)),t("strong",[e._v(e._s(e.folderName))]),e._v(e._s(e.descriptionParts.after)),t("br"),e.isSingle?e._e():[e._v(" "+e._s(e.t("Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed."))),t("br")],e.recursiveUpload?[e._v(" "+e._s(e.t("When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."))+" ")]:[e._v(" "+e._s(e.t("When a new folder is selected, any conflicting files within it will also be overwritten."))+" ")]],2)]),t("form",{ref:"form",staticClass:"conflict-picker__form",attrs:{"aria-labelledby":"conflict-picker-description","data-cy-conflict-picker-form":""},on:{submit:function(i){return i.preventDefault(),i.stopPropagation(),e.onSubmit.apply(null,arguments)}}},[e.isSingle?e._e():t("fieldset",{staticClass:"conflict-picker__all",attrs:{"data-cy-conflict-picker-fieldset":"all"}},[t("legend",{staticClass:"hidden-visually"},[e._v(" "+e._s(e.t("Select all checkboxes"))+" ")]),t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-conflict-picker-input-existing":"all"},on:{"update:checked":e.onSelectAllOld}},"NcCheckboxRadioSwitch",e.selectAllOldBind,!1),[e._v(" "+e._s(e.t("Existing files"))+" ")]),t("span"),t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-conflict-picker-input-incoming":"all"},on:{"update:checked":e.onSelectAllNew}},"NcCheckboxRadioSwitch",e.selectAllNewBind,!1),[e._v(" "+e._s(e.t("New files"))+" ")])],1),e._l(e.files,function(i,l){return t("NodesPicker",{key:i.fileid,ref:"nodesPicker",refInFor:!0,attrs:{incoming:e.conflicts[l],existing:e.files[l],"is-single":e.isSingle,"new-selected":e.newSelected,"old-selected":e.oldSelected},on:{"update:newSelected":function(s){e.newSelected=s},"update:new-selected":function(s){e.newSelected=s},"update:oldSelected":function(s){e.oldSelected=s},"update:old-selected":function(s){e.oldSelected=s}}})})],2)])},X=[],ee=d(J,Q,X,!1,null,"4a4bdd42");const ke=ee.exports;export{ke as default}; +//# sourceMappingURL=ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.map diff --git a/js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.license b/js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.license similarity index 100% rename from js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.license rename to js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.license diff --git a/js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.map b/js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.map similarity index 99% rename from js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.map rename to js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.map index 583dc3d9b..4c4d06b9a 100644 --- a/js/ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs.map +++ b/js/ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"ConflictPicker-BRRUCIWm-i6d9nM8A.chunk.mjs","sources":["../node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-BRRUCIWm.mjs"],"sourcesContent":["import '../assets/ConflictPicker-Bf00u2Pe.css';\nimport { defineComponent } from \"vue\";\nimport { showError } from \"@nextcloud/dialogs\";\nimport { formatFileSize, FileType, getUniqueName } from \"@nextcloud/files\";\nimport { basename } from \"@nextcloud/paths\";\nimport { n as normalizeComponent, t, i as isFileSystemEntry, a as isFileSystemFileEntry, l as logger, b as n } from \"./index-SPoS3_zU.mjs\";\nimport NcCheckboxRadioSwitch from \"@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js\";\nimport NcDialog from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport NcDateTime from \"@nextcloud/vue/dist/Components/NcDateTime.js\";\nconst _sfc_main$5 = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$5 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon arrow-right-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n null\n);\nconst ArrowRight = __component__$5.exports;\nconst _sfc_main$4 = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$4 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst FileSvg = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$3 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst FolderSvg = __component__$3.exports;\nconst _sfc_main$2 = defineComponent({\n name: \"NodePickerCard\",\n components: {\n FileSvg,\n FolderSvg,\n NcDateTime\n },\n props: {\n /** Preview url, if any */\n preview: {\n type: String,\n default: null\n },\n /** Last modified date, if known */\n mtime: {\n type: Date,\n default: null\n },\n /** Size in bytes, if known */\n size: {\n type: Number,\n default: null\n },\n /** Use the folder icon as fallback */\n isFolder: {\n type: Boolean,\n default: false\n },\n /** Label for screen readers (\"Existing version\"/\"New version\") */\n label: {\n type: String,\n required: true\n },\n /** Highlight the date as it is the more recent one */\n boldDate: {\n type: Boolean,\n default: false\n },\n /** Highlight the size as it is the bigger one */\n boldSize: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n // Previews can 404, fall back to the icon instead of a broken image\n previewFailed: false\n };\n },\n computed: {\n showPreview() {\n return !!this.preview && !this.previewFailed;\n },\n formattedSize() {\n if (this.size) {\n return formatFileSize(this.size, true);\n }\n return t(\"Unknown size\");\n }\n },\n watch: {\n preview() {\n this.previewFailed = false;\n }\n },\n methods: {\n t\n }\n});\nvar _sfc_render$2 = function render4() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"span\", { staticClass: \"node-picker\" }, [!_vm.showPreview ? [_vm.isFolder ? _c(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { \"size\": 48 } }) : _c(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { \"size\": 48 } })] : _c(\"img\", { staticClass: \"node-picker__preview\", attrs: { \"src\": _vm.preview, \"alt\": \"\", \"loading\": \"lazy\" }, on: { \"error\": function($event) {\n _vm.previewFailed = true;\n } } }), _c(\"span\", { staticClass: \"node-picker__desc\" }, [_vm.mtime ? _c(\"NcDateTime\", { staticClass: \"node-picker__mtime\", class: { \"node-picker__value--bold\": _vm.boldDate }, attrs: { \"timestamp\": _vm.mtime, \"relative-time\": false, \"format\": { timeStyle: \"short\", dateStyle: \"medium\" } } }) : _c(\"span\", { staticClass: \"node-picker__mtime\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Last modified date unknown\")) + \" \")]), _c(\"span\", { staticClass: \"node-picker__size\", class: { \"node-picker__value--bold\": _vm.boldSize } }, [_vm._v(\" \" + _vm._s(_vm.formattedSize) + \" \")]), _c(\"span\", { staticClass: \"hidden-visually\" }, [_vm._v(_vm._s(_vm.label))])], 1)], 2);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"7a2b1a1d\"\n);\nconst NodePickerCard = __component__$2.exports;\nconst PREVIEW_SIZE = 64;\nconst _sfc_main$1 = defineComponent({\n name: \"NodesPicker\",\n components: {\n ArrowRight,\n NcCheckboxRadioSwitch,\n NodePickerCard\n },\n props: {\n incoming: {\n type: [File, Object],\n required: true\n },\n existing: {\n type: Object,\n required: true\n },\n newSelected: {\n type: Array,\n required: true\n },\n oldSelected: {\n type: Array,\n required: true\n },\n /**\n * Single file mode: show both versions without checkboxes.\n * The parent offers \"Keep both\" and \"Replace\" buttons instead.\n */\n isSingle: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n asyncPreview: null,\n incomingFile: null\n };\n },\n computed: {\n /**\n * Whether the incoming or existing file is selected.\n * This is used by the parent component to ensure\n * that the user has selected at least one of the two files.\n */\n isEnoughSelected() {\n return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected);\n },\n incomingPreview() {\n if (!this.incomingFile) {\n return null;\n }\n const preview = this.previewUrl(this.incomingFile);\n return preview ?? this.asyncPreview;\n },\n incomingLastModified() {\n if (!this.incomingFile) {\n return null;\n }\n return this.lastModified(this.incomingFile);\n },\n incomingSize() {\n return this.incomingFile?.size ?? null;\n },\n existingPreview() {\n return this.previewUrl(this.existing);\n },\n existingLastModified() {\n return this.lastModified(this.existing);\n },\n existingSize() {\n return this.existing.size ?? null;\n },\n // Highlight the more recent date and the bigger size to ease comparison\n incomingNewer() {\n return this.isBigger(this.incomingLastModified?.getTime(), this.existingLastModified?.getTime());\n },\n existingNewer() {\n return this.isBigger(this.existingLastModified?.getTime(), this.incomingLastModified?.getTime());\n },\n incomingLarger() {\n return this.isBigger(this.incomingSize, this.existingSize);\n },\n existingLarger() {\n return this.isBigger(this.existingSize, this.incomingSize);\n }\n },\n watch: {\n /**\n * Watch \"incoming\" to update \"incomingFile\"\n */\n incoming: {\n // Run the watcher also on mount with initial \"incoming\" value\n immediate: true,\n async handler() {\n if (this.incoming instanceof File) {\n this.incomingFile = this.incoming;\n } else if (isFileSystemFileEntry(this.incoming)) {\n this.incomingFile = await new Promise((resolve, reject) => this.incoming.file(resolve, reject));\n } else {\n this.incomingFile = null;\n }\n }\n }\n },\n methods: {\n /**\n * Both values need to be known, otherwise there is nothing to compare.\n * @param value the value to highlight if it is the bigger one\n * @param other the value to compare against\n */\n isBigger(value, other) {\n if (!value || !other) {\n return false;\n }\n return value > other;\n },\n lastModified(node) {\n const lastModified = node instanceof File ? new Date(node.lastModified) : node.mtime;\n return lastModified ?? null;\n },\n previewUrl(node) {\n if (node instanceof File) {\n this.previewImage(node).then((url) => {\n this.asyncPreview = url;\n });\n return null;\n }\n if (node.type === FileType.Folder) {\n return null;\n }\n try {\n const previewUrl = node.attributes.previewUrl || generateUrl(\"/core/preview?fileId={fileid}\", {\n fileid: node.fileid\n });\n const url = new URL(window.location.origin + previewUrl);\n url.searchParams.set(\"x\", PREVIEW_SIZE.toString());\n url.searchParams.set(\"y\", PREVIEW_SIZE.toString());\n url.searchParams.set(\"mimeFallback\", \"true\");\n const etag = node.attributes?.etag || \"\";\n url.searchParams.set(\"v\", etag.slice(0, 6));\n return url.href;\n } catch (e) {\n return null;\n }\n },\n isFolder(node) {\n if (isFileSystemEntry(node)) {\n return node.isDirectory;\n }\n node = node;\n return node.type === FileType.Folder || node.type === \"httpd/unix-directory\";\n },\n isChecked(node, selected) {\n return selected.includes(node);\n },\n onUpdateIncomingChecked(checked) {\n if (checked) {\n this.$emit(\"update:newSelected\", [this.incoming, ...this.newSelected]);\n } else {\n this.$emit(\"update:newSelected\", this.newSelected.filter((node) => node !== this.incoming));\n }\n },\n onUpdateExistingChecked(checked) {\n if (checked) {\n this.$emit(\"update:oldSelected\", [this.existing, ...this.oldSelected]);\n } else {\n this.$emit(\"update:oldSelected\", this.oldSelected.filter((node) => node !== this.existing));\n }\n },\n /**\n * Get the preview Image of a file\n * @param file the soon-to-be-uploaded File\n */\n async previewImage(file) {\n return new Promise((resolve) => {\n if (file instanceof File && file.type.startsWith(\"image/\")) {\n const reader = new FileReader();\n reader.onload = async (e) => {\n const result = e?.target?.result;\n if (result instanceof ArrayBuffer) {\n const blob = new Blob([result], { type: file.type });\n const url = URL.createObjectURL(blob);\n resolve(url);\n return;\n }\n resolve(null);\n };\n reader.readAsArrayBuffer(file);\n } else {\n resolve(null);\n }\n });\n },\n t\n }\n});\nvar _sfc_render$1 = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"fieldset\", { staticClass: \"node-picker__wrapper\", attrs: { \"data-cy-conflict-picker-fieldset\": _vm.existing.basename } }, [_c(\"legend\", [_vm._v(_vm._s(_vm.existing.basename))]), !_vm.isSingle ? _c(\"NcCheckboxRadioSwitch\", { attrs: { \"checked\": _vm.isChecked(_vm.existing, _vm.oldSelected), \"required\": !_vm.isEnoughSelected, \"data-cy-conflict-picker-input-existing\": _vm.existing.basename }, on: { \"update:checked\": _vm.onUpdateExistingChecked } }, [_c(\"NodePickerCard\", { attrs: { \"preview\": _vm.existingPreview, \"mtime\": _vm.existingLastModified, \"size\": _vm.existingSize, \"is-folder\": _vm.isFolder(_vm.existing), \"label\": _vm.t(\"Existing version\"), \"bold-date\": _vm.existingNewer, \"bold-size\": _vm.existingLarger } })], 1) : _c(\"NodePickerCard\", { attrs: { \"preview\": _vm.existingPreview, \"mtime\": _vm.existingLastModified, \"size\": _vm.existingSize, \"is-folder\": _vm.isFolder(_vm.existing), \"label\": _vm.t(\"Existing version\"), \"bold-date\": _vm.existingNewer, \"bold-size\": _vm.existingLarger } }), _c(\"ArrowRight\", { staticClass: \"node-picker__arrow\", attrs: { \"size\": 20 } }), !_vm.isSingle ? _c(\"NcCheckboxRadioSwitch\", { attrs: { \"checked\": _vm.isChecked(_vm.incoming, _vm.newSelected), \"required\": !_vm.isEnoughSelected, \"data-cy-conflict-picker-input-incoming\": _vm.existing.basename }, on: { \"update:checked\": _vm.onUpdateIncomingChecked } }, [_c(\"NodePickerCard\", { attrs: { \"preview\": _vm.incomingPreview, \"mtime\": _vm.incomingLastModified, \"size\": _vm.incomingSize, \"is-folder\": _vm.isFolder(_vm.incoming), \"label\": _vm.t(\"New version\"), \"bold-date\": _vm.incomingNewer, \"bold-size\": _vm.incomingLarger } })], 1) : _c(\"NodePickerCard\", { attrs: { \"preview\": _vm.incomingPreview, \"mtime\": _vm.incomingLastModified, \"size\": _vm.incomingSize, \"is-folder\": _vm.isFolder(_vm.incoming), \"label\": _vm.t(\"New version\"), \"bold-date\": _vm.incomingNewer, \"bold-size\": _vm.incomingLarger } })], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"dcd77f87\"\n);\nconst NodesPicker = __component__$1.exports;\nconst _sfc_main = defineComponent({\n name: \"ConflictPicker\",\n components: {\n ArrowRight,\n NcButton,\n NcCheckboxRadioSwitch,\n NcDialog,\n NodesPicker\n },\n props: {\n /** Directory with the conflicts, its name is shown in the description */\n dirname: {\n type: String,\n default: \"\"\n },\n /** All the existing files in the current directory */\n content: {\n type: Array,\n required: true\n },\n /** New files being moved/uploaded */\n conflicts: {\n type: Array,\n required: true\n },\n /**\n * If set to true no hint about overwriting directory content will be shown\n */\n recursiveUpload: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"cancel\", \"submit\"],\n setup() {\n return {\n blockedTitle: t(\"You need to select at least one version of each file to continue.\")\n };\n },\n data() {\n return {\n // computed list of conflicting files already present in the directory\n files: [],\n opened: true,\n newSelected: [],\n oldSelected: []\n };\n },\n computed: {\n name() {\n return this.isSingle ? t(\"Select file to keep\") : t(\"Select files to keep\");\n },\n /**\n * A single conflict does not need checkboxes,\n * \"Keep both\" and \"Replace\" cover both options.\n */\n isSingle() {\n return this.conflicts.length === 1;\n },\n // Only the folder name, the root folder is called \"All files\" in the Files app\n folderName() {\n return basename(this.dirname ?? \"\") || t(\"All files\");\n },\n // Split on the placeholder so the folder name can be shown in bold\n descriptionParts() {\n const message = this.isSingle ? t(\"An item with the same name already exists in {dirname}.\") : t(\"Items with the same name already exist in {dirname}, select which to keep.\");\n const [before, after = \"\"] = message.split(\"{dirname}\");\n return { before, after };\n },\n // Only shown for multiple conflicts, a single one is handled by \"Keep both\"/\"Replace\"\n skipButtonLabel() {\n return n(\"Skip {count} file\", \"Skip {count} files\", this.conflicts.length, { count: this.conflicts.length });\n },\n // Select all incoming files\n selectAllNewBind() {\n const label = this.isNoneNewSelected || this.isSomeNewSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": label,\n checked: this.isAllNewSelected,\n indeterminate: this.isSomeNewSelected,\n title: label\n };\n },\n isAllNewSelected() {\n return this.newSelected.length === this.conflicts.length;\n },\n isNoneNewSelected() {\n return this.newSelected.length === 0;\n },\n isSomeNewSelected() {\n return !this.isAllNewSelected && !this.isNoneNewSelected;\n },\n // Select all existing files\n selectAllOldBind() {\n const label = this.isNoneOldSelected || this.isSomeOldSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": label,\n checked: this.isAllOldSelected,\n indeterminate: this.isSomeOldSelected,\n title: label\n };\n },\n isAllOldSelected() {\n return this.oldSelected.length === this.files.length;\n },\n isNoneOldSelected() {\n return this.oldSelected.length === 0;\n },\n isSomeOldSelected() {\n return !this.isAllOldSelected && !this.isNoneOldSelected;\n },\n // Global handlings\n isEnoughSelected() {\n if (this.isAllOldSelected || this.isAllNewSelected) {\n return true;\n }\n return this.$refs?.nodesPicker?.every?.((picker) => picker.isEnoughSelected);\n }\n },\n mounted() {\n this.files = this.conflicts.map((conflict) => {\n const name = conflict instanceof File || isFileSystemEntry(conflict) ? conflict.name : conflict.basename;\n return this.content.find((node) => node.basename === name);\n }).filter(Boolean);\n if (this.conflicts.length === 0 || this.files.length === 0) {\n const error = new Error(\"ConflictPicker: files and conflicts must not be empty\");\n this.onCancel(error);\n throw error;\n }\n if (this.conflicts.length !== this.files.length) {\n const error = new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n this.onCancel(error);\n throw error;\n }\n this.newSelected = this.conflicts;\n logger.debug(\"ConflictPicker initialised\", { files: this.files, conflicts: this.conflicts, content: this.content });\n },\n methods: {\n onCancel(error) {\n this.opened = false;\n this.$emit(\"cancel\", error);\n },\n onSkip() {\n logger.debug(\"Conflict skipped. Ignoring all conflicting files\");\n this.opened = false;\n this.$emit(\"submit\", {\n selected: [],\n renamed: []\n });\n },\n /**\n * Single file: only keep the new file, the existing one is overwritten.\n */\n onReplace() {\n this.newSelected = this.conflicts;\n this.oldSelected = [];\n this.onSubmit();\n },\n /**\n * Single file: keep both, so the new file is uploaded under a new name.\n */\n onKeepBoth() {\n this.newSelected = this.conflicts;\n this.oldSelected = this.files;\n this.onSubmit();\n },\n onSubmit() {\n if (!this.isEnoughSelected) {\n this.scrollValidityInputIntoView();\n this.$refs.form.reportValidity();\n showError(this.blockedTitle);\n return;\n }\n const selectedOldNames = this.oldSelected.map((node) => node.basename);\n const directoryContent = this.content.map((node) => node.basename);\n const renamed = [];\n const toRename = this.newSelected.filter((node) => {\n const name = node instanceof File || isFileSystemEntry(node) ? node.name : node.basename;\n return selectedOldNames.includes(name);\n });\n if (toRename.length > 0) {\n toRename.forEach((file) => {\n const name = file instanceof File || isFileSystemEntry(file) ? file.name : file.basename;\n const newName = getUniqueName(name, directoryContent);\n if (file instanceof File || isFileSystemEntry(file)) {\n Object.defineProperty(file, \"name\", { value: newName });\n renamed.push(file);\n return;\n }\n file.rename(newName);\n renamed.push(file);\n });\n }\n const selected = this.newSelected.filter((node) => {\n const name = node instanceof File || isFileSystemEntry(node) ? node.name : node.basename;\n return !selectedOldNames.includes(name) && !toRename.includes(node);\n });\n logger.debug(\"Conflict resolved\", { selected, renamed });\n this.opened = false;\n this.$emit(\"submit\", {\n selected,\n renamed\n });\n },\n /**\n * Scroll the first invalid input into view.\n * This is needed because the browser uses behavior: \"nearest\" by default.\n */\n scrollValidityInputIntoView() {\n const selector = '.checkbox-radio-switch input[type=\"checkbox\"]';\n const checkboxes = Array.from(this.$el.querySelectorAll(selector));\n checkboxes.forEach((input) => input?.setCustomValidity?.(\"\"));\n const invalidInput = this.$el.querySelector(selector + \":invalid\");\n if (invalidInput) {\n invalidInput.setCustomValidity(this.blockedTitle);\n invalidInput.scrollIntoView({ behavior: \"instant\", block: \"center\" });\n }\n },\n onSelectAllNew(selected) {\n if (selected) {\n logger.debug(\"Selected all new files\");\n this.newSelected = this.conflicts;\n } else {\n logger.debug(\"Cleared new selection\");\n this.newSelected = [];\n }\n },\n onSelectAllOld(selected) {\n if (selected) {\n logger.debug(\"Selected all existing files\");\n this.oldSelected = this.files;\n } else {\n logger.debug(\"Cleared old selection\");\n this.oldSelected = [];\n }\n },\n t\n }\n});\nvar _sfc_render = function render6() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"NcDialog\", { staticClass: \"conflict-picker\", attrs: { \"can-close\": \"\", \"data-cy-conflict-picker\": \"\", \"close-on-click-outside\": false, \"show\": _vm.opened, \"name\": _vm.name, \"size\": \"large\" }, on: { \"closing\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"actions\", fn: function() {\n return [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Cancel\"), \"title\": _vm.t(\"Cancel the entire operation\"), \"data-cy-conflict-picker-cancel\": \"\", \"type\": \"tertiary\" }, on: { \"click\": _vm.onCancel } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Cancel\")) + \" \")]), _c(\"span\", { staticClass: \"dialog__actions-separator\" }), _vm.isSingle ? [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Keep both\"), \"data-cy-conflict-picker-keep-both\": \"\", \"type\": \"secondary\" }, on: { \"click\": _vm.onKeepBoth } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Keep both\")) + \" \")]), _c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Replace\"), \"data-cy-conflict-picker-submit\": \"\", \"type\": \"primary\" }, on: { \"click\": _vm.onReplace } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Replace\")) + \" \")])] : [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.skipButtonLabel, \"data-cy-conflict-picker-skip\": \"\" }, on: { \"click\": _vm.onSkip } }, [_vm._v(\" \" + _vm._s(_vm.skipButtonLabel) + \" \")]), _c(\"NcButton\", { class: { \"button-vue--disabled\": !_vm.isEnoughSelected }, attrs: { \"aria-label\": _vm.t(\"Continue\"), \"title\": _vm.isEnoughSelected ? \"\" : _vm.blockedTitle, \"data-cy-conflict-picker-submit\": \"\", \"native-type\": \"submit\", \"type\": \"primary\" }, on: { \"click\": function($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onSubmit.apply(null, arguments);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowRight\", { attrs: { \"size\": 20 } })];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Continue\")) + \" \")])]];\n }, proxy: true }]) }, [_c(\"div\", { staticClass: \"conflict-picker__header\" }, [_c(\"p\", { staticClass: \"conflict-picker__description\", attrs: { \"id\": \"conflict-picker-description\" } }, [_vm._v(\" \" + _vm._s(_vm.descriptionParts.before)), _c(\"strong\", [_vm._v(_vm._s(_vm.folderName))]), _vm._v(_vm._s(_vm.descriptionParts.after)), _c(\"br\"), !_vm.isSingle ? [_vm._v(\" \" + _vm._s(_vm.t(\"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.\"))), _c(\"br\")] : _vm._e(), _vm.recursiveUpload ? [_vm._v(\" \" + _vm._s(_vm.t(\"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\")) + \" \")] : [_vm._v(\" \" + _vm._s(_vm.t(\"When a new folder is selected, any conflicting files within it will also be overwritten.\")) + \" \")]], 2)]), _c(\"form\", { ref: \"form\", staticClass: \"conflict-picker__form\", attrs: { \"aria-labelledby\": \"conflict-picker-description\", \"data-cy-conflict-picker-form\": \"\" }, on: { \"submit\": function($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onSubmit.apply(null, arguments);\n } } }, [!_vm.isSingle ? _c(\"fieldset\", { staticClass: \"conflict-picker__all\", attrs: { \"data-cy-conflict-picker-fieldset\": \"all\" } }, [_c(\"legend\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Select all checkboxes\")) + \" \")]), _c(\"NcCheckboxRadioSwitch\", _vm._b({ attrs: { \"data-cy-conflict-picker-input-existing\": \"all\" }, on: { \"update:checked\": _vm.onSelectAllOld } }, \"NcCheckboxRadioSwitch\", _vm.selectAllOldBind, false), [_vm._v(\" \" + _vm._s(_vm.t(\"Existing files\")) + \" \")]), _c(\"span\"), _c(\"NcCheckboxRadioSwitch\", _vm._b({ attrs: { \"data-cy-conflict-picker-input-incoming\": \"all\" }, on: { \"update:checked\": _vm.onSelectAllNew } }, \"NcCheckboxRadioSwitch\", _vm.selectAllNewBind, false), [_vm._v(\" \" + _vm._s(_vm.t(\"New files\")) + \" \")])], 1) : _vm._e(), _vm._l(_vm.files, function(node, index) {\n return _c(\"NodesPicker\", { key: node.fileid, ref: \"nodesPicker\", refInFor: true, attrs: { \"incoming\": _vm.conflicts[index], \"existing\": _vm.files[index], \"is-single\": _vm.isSingle, \"new-selected\": _vm.newSelected, \"old-selected\": _vm.oldSelected }, on: { \"update:newSelected\": function($event) {\n _vm.newSelected = $event;\n }, \"update:new-selected\": function($event) {\n _vm.newSelected = $event;\n }, \"update:oldSelected\": function($event) {\n _vm.oldSelected = $event;\n }, \"update:old-selected\": function($event) {\n _vm.oldSelected = $event;\n } } });\n })], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"4a4bdd42\"\n);\nconst ConflictPicker = __component__.exports;\nexport {\n ConflictPicker as default\n};\n//# sourceMappingURL=ConflictPicker-BRRUCIWm.mjs.map\n"],"names":["_sfc_main$5","_sfc_render$5","_vm","_c","$event","_sfc_staticRenderFns$5","__component__$5","normalizeComponent","ArrowRight","_sfc_main$4","_sfc_render$4","_sfc_staticRenderFns$4","__component__$4","FileSvg","_sfc_main$3","_sfc_render$3","_sfc_staticRenderFns$3","__component__$3","FolderSvg","_sfc_main$2","defineComponent","NcDateTime","formatFileSize","t","_sfc_render$2","_sfc_staticRenderFns$2","__component__$2","NodePickerCard","PREVIEW_SIZE","_sfc_main$1","NcCheckboxRadioSwitch","isFileSystemFileEntry","resolve","reject","value","other","node","url","FileType","previewUrl","generateUrl","etag","isFileSystemEntry","selected","checked","file","reader","e","result","blob","_sfc_render$1","_sfc_staticRenderFns$1","__component__$1","NodesPicker","_sfc_main","NcButton","NcDialog","basename","message","before","after","n","label","picker","conflict","name","error","logger","showError","selectedOldNames","directoryContent","renamed","toRename","newName","getUniqueName","selector","input","invalidInput","_sfc_render","index","_sfc_staticRenderFns","__component__","ConflictPicker"],"mappings":"s+BAWA,MAAMA,EAAc,CAClB,KAAM,iBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACA,IAAIC,EAAgB,UAAkB,CACpC,IAAIC,EAAM,KAAMC,EAAKD,EAAI,MAAM,GAC/B,OAAOC,EAAG,OAAQD,EAAI,GAAG,CAAE,YAAa,wCAAyC,MAAO,CAAE,cAAeA,EAAI,MAAQ,KAAO,OAAQ,aAAcA,EAAI,MAAO,KAAQ,KAAK,EAAI,GAAI,CAAE,MAAS,SAASE,EAAQ,CAC5M,OAAOF,EAAI,MAAM,QAASE,CAAM,CAClC,EAAG,EAAI,OAAQF,EAAI,OAAQ,EAAK,EAAG,CAACC,EAAG,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAQD,EAAI,UAAW,MAASA,EAAI,KAAM,OAAUA,EAAI,KAAM,QAAW,WAAW,CAAE,EAAI,CAACC,EAAG,OAAQ,CAAE,MAAO,CAAE,EAAK,yEAAyE,GAAM,CAACD,EAAI,MAAQC,EAAG,QAAS,CAACD,EAAI,GAAGA,EAAI,GAAGA,EAAI,KAAK,CAAC,CAAC,CAAC,EAAIA,EAAI,GAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/W,EACIG,EAAyB,CAAA,EACzBC,EAAkCC,EACpCP,EACAC,EACAI,EACA,GACA,KACA,IACF,EACA,MAAMG,EAAaF,EAAgB,QAC7BG,EAAc,CAClB,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACA,IAAIC,EAAgB,UAAmB,CACrC,IAAIR,EAAM,KAAMC,EAAKD,EAAI,MAAM,GAC/B,OAAOC,EAAG,OAAQD,EAAI,GAAG,CAAE,YAAa,iCAAkC,MAAO,CAAE,cAAeA,EAAI,MAAQ,KAAO,OAAQ,aAAcA,EAAI,MAAO,KAAQ,KAAK,EAAI,GAAI,CAAE,MAAS,SAASE,EAAQ,CACrM,OAAOF,EAAI,MAAM,QAASE,CAAM,CAClC,EAAG,EAAI,OAAQF,EAAI,OAAQ,EAAK,EAAG,CAACC,EAAG,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAQD,EAAI,UAAW,MAASA,EAAI,KAAM,OAAUA,EAAI,KAAM,QAAW,WAAW,CAAE,EAAI,CAACC,EAAG,OAAQ,CAAE,MAAO,CAAE,EAAK,uFAAuF,GAAM,CAACD,EAAI,MAAQC,EAAG,QAAS,CAACD,EAAI,GAAGA,EAAI,GAAGA,EAAI,KAAK,CAAC,CAAC,CAAC,EAAIA,EAAI,GAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7X,EACIS,EAAyB,CAAA,EACzBC,EAAkCL,EACpCE,EACAC,EACAC,EACA,GACA,KACA,IACF,EACA,MAAME,EAAUD,EAAgB,QAC1BE,EAAc,CAClB,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACA,IAAIC,EAAgB,UAAmB,CACrC,IAAIb,EAAM,KAAMC,EAAKD,EAAI,MAAM,GAC/B,OAAOC,EAAG,OAAQD,EAAI,GAAG,CAAE,YAAa,mCAAoC,MAAO,CAAE,cAAeA,EAAI,MAAQ,KAAO,OAAQ,aAAcA,EAAI,MAAO,KAAQ,KAAK,EAAI,GAAI,CAAE,MAAS,SAASE,EAAQ,CACvM,OAAOF,EAAI,MAAM,QAASE,CAAM,CAClC,EAAG,EAAI,OAAQF,EAAI,OAAQ,EAAK,EAAG,CAACC,EAAG,MAAO,CAAE,YAAa,4BAA6B,MAAO,CAAE,KAAQD,EAAI,UAAW,MAASA,EAAI,KAAM,OAAUA,EAAI,KAAM,QAAW,WAAW,CAAE,EAAI,CAACC,EAAG,OAAQ,CAAE,MAAO,CAAE,EAAK,+FAA+F,GAAM,CAACD,EAAI,MAAQC,EAAG,QAAS,CAACD,EAAI,GAAGA,EAAI,GAAGA,EAAI,KAAK,CAAC,CAAC,CAAC,EAAIA,EAAI,GAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrY,EACIc,EAAyB,CAAA,EACzBC,EAAkCV,EACpCO,EACAC,EACAC,EACA,GACA,KACA,IACF,EACA,MAAME,EAAYD,EAAgB,QAC5BE,EAAcC,EAAgB,CAClC,KAAM,iBACN,WAAY,CACV,QAAAP,EACA,UAAAK,EACA,WAAAG,CACJ,EACE,MAAO,CAEL,QAAS,CACP,KAAM,OACN,QAAS,IACf,EAEI,MAAO,CACL,KAAM,KACN,QAAS,IACf,EAEI,KAAM,CACJ,KAAM,OACN,QAAS,IACf,EAEI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAEI,MAAO,CACL,KAAM,OACN,SAAU,EAChB,EAEI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAEI,SAAU,CACR,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,MAAO,CAEL,cAAe,EACrB,CACE,EACA,SAAU,CACR,aAAc,CACZ,MAAO,CAAC,CAAC,KAAK,SAAW,CAAC,KAAK,aACjC,EACA,eAAgB,CACd,OAAI,KAAK,KACAC,EAAe,KAAK,KAAM,EAAI,EAEhCC,EAAE,cAAc,CACzB,CACJ,EACE,MAAO,CACL,SAAU,CACR,KAAK,cAAgB,EACvB,CACJ,EACE,QAAS,CACP,EAAAA,CACJ,CACA,CAAC,EACD,IAAIC,EAAgB,UAAmB,CACrC,IAAItB,EAAM,KAAMC,EAAKD,EAAI,MAAM,GAC/B,OAAAA,EAAI,MAAM,YACHC,EAAG,OAAQ,CAAE,YAAa,aAAa,EAAI,CAAED,EAAI,YAA2LC,EAAG,MAAO,CAAE,YAAa,uBAAwB,MAAO,CAAE,IAAOD,EAAI,QAAS,IAAO,GAAI,QAAW,MAAM,EAAI,GAAI,CAAE,MAAS,SAASE,EAAQ,CAC/XF,EAAI,cAAgB,EACtB,CAAC,CAAE,CAAE,EAFiE,CAACA,EAAI,SAAWC,EAAG,YAAa,CAAE,YAAa,oBAAqB,MAAO,CAAE,KAAQ,GAAI,CAAE,EAAIA,EAAG,UAAW,CAAE,YAAa,oBAAqB,MAAO,CAAE,KAAQ,GAAI,CAAE,CAAC,EAEvOA,EAAG,OAAQ,CAAE,YAAa,mBAAmB,EAAI,CAACD,EAAI,MAAQC,EAAG,aAAc,CAAE,YAAa,qBAAsB,MAAO,CAAE,2BAA4BD,EAAI,QAAQ,EAAI,MAAO,CAAE,UAAaA,EAAI,MAAO,gBAAiB,GAAO,OAAU,CAAE,UAAW,QAAS,UAAW,QAAQ,CAAE,CAAE,CAAE,EAAIC,EAAG,OAAQ,CAAE,YAAa,sBAAwB,CAACD,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,4BAA4B,CAAC,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,OAAQ,CAAE,YAAa,oBAAqB,MAAO,CAAE,2BAA4BD,EAAI,QAAQ,CAAE,EAAI,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,aAAa,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,OAAQ,CAAE,YAAa,iBAAiB,EAAI,CAACD,EAAI,GAAGA,EAAI,GAAGA,EAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAG,CAAC,CAAC,EAAG,CAAC,CAC3oB,EACIuB,EAAyB,CAAA,EACzBC,EAAkCnB,EACpCY,EACAK,EACAC,EACA,GACA,KACA,UACF,EACA,MAAME,EAAiBD,EAAgB,QACjCE,EAAe,GACfC,EAAcT,EAAgB,CAClC,KAAM,cACN,WAAY,CACV,WAAAZ,EACA,sBAAAsB,EACA,eAAAH,CACJ,EACE,MAAO,CACL,SAAU,CACR,KAAM,CAAC,KAAM,MAAM,EACnB,SAAU,EAChB,EACI,SAAU,CACR,KAAM,OACN,SAAU,EAChB,EACI,YAAa,CACX,KAAM,MACN,SAAU,EAChB,EACI,YAAa,CACX,KAAM,MACN,SAAU,EAChB,EAKI,SAAU,CACR,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,MAAO,CACL,aAAc,KACd,aAAc,IACpB,CACE,EACA,SAAU,CAMR,kBAAmB,CACjB,OAAO,KAAK,UAAU,KAAK,SAAU,KAAK,WAAW,GAAK,KAAK,UAAU,KAAK,SAAU,KAAK,WAAW,CAC1G,EACA,iBAAkB,CAChB,OAAK,KAAK,aAGM,KAAK,WAAW,KAAK,YAAY,GAC/B,KAAK,aAHd,IAIX,EACA,sBAAuB,CACrB,OAAK,KAAK,aAGH,KAAK,aAAa,KAAK,YAAY,EAFjC,IAGX,EACA,cAAe,CACb,OAAO,KAAK,cAAc,MAAQ,IACpC,EACA,iBAAkB,CAChB,OAAO,KAAK,WAAW,KAAK,QAAQ,CACtC,EACA,sBAAuB,CACrB,OAAO,KAAK,aAAa,KAAK,QAAQ,CACxC,EACA,cAAe,CACb,OAAO,KAAK,SAAS,MAAQ,IAC/B,EAEA,eAAgB,CACd,OAAO,KAAK,SAAS,KAAK,sBAAsB,QAAO,EAAI,KAAK,sBAAsB,SAAS,CACjG,EACA,eAAgB,CACd,OAAO,KAAK,SAAS,KAAK,sBAAsB,QAAO,EAAI,KAAK,sBAAsB,SAAS,CACjG,EACA,gBAAiB,CACf,OAAO,KAAK,SAAS,KAAK,aAAc,KAAK,YAAY,CAC3D,EACA,gBAAiB,CACf,OAAO,KAAK,SAAS,KAAK,aAAc,KAAK,YAAY,CAC3D,CACJ,EACE,MAAO,CAIL,SAAU,CAER,UAAW,GACX,MAAM,SAAU,CACV,KAAK,oBAAoB,KAC3B,KAAK,aAAe,KAAK,SAChBI,EAAsB,KAAK,QAAQ,EAC5C,KAAK,aAAe,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAW,KAAK,SAAS,KAAKD,EAASC,CAAM,CAAC,EAE9F,KAAK,aAAe,IAExB,CACN,CACA,EACE,QAAS,CAMP,SAASC,EAAOC,EAAO,CACrB,MAAI,CAACD,GAAS,CAACC,EACN,GAEFD,EAAQC,CACjB,EACA,aAAaC,EAAM,CAEjB,OADqBA,aAAgB,KAAO,IAAI,KAAKA,EAAK,YAAY,EAAIA,EAAK,QACxD,IACzB,EACA,WAAWA,EAAM,CACf,GAAIA,aAAgB,KAClB,OAAA,KAAK,aAAaA,CAAI,EAAE,KAAMC,GAAQ,CACpC,KAAK,aAAeA,CACtB,CAAC,EACM,KAET,GAAID,EAAK,OAASE,EAAS,OACzB,OAAO,KAET,GAAI,CACF,MAAMC,EAAaH,EAAK,WAAW,YAAcI,EAAY,gCAAiC,CAC5F,OAAQJ,EAAK,MACvB,CAAS,EACKC,EAAM,IAAI,IAAI,OAAO,SAAS,OAASE,CAAU,EACvDF,EAAI,aAAa,IAAI,IAAKT,EAAa,SAAQ,CAAE,EACjDS,EAAI,aAAa,IAAI,IAAKT,EAAa,SAAQ,CAAE,EACjDS,EAAI,aAAa,IAAI,eAAgB,MAAM,EAC3C,MAAMI,EAAOL,EAAK,YAAY,MAAQ,GACtC,OAAAC,EAAI,aAAa,IAAI,IAAKI,EAAK,MAAM,EAAG,CAAC,CAAC,EACnCJ,EAAI,IACb,MAAY,CACV,OAAO,IACT,CACF,EACA,SAASD,EAAM,CACb,OAAIM,EAAkBN,CAAI,EACjBA,EAAK,aAEdA,EAAOA,EACAA,EAAK,OAASE,EAAS,QAAUF,EAAK,OAAS,uBACxD,EACA,UAAUA,EAAMO,EAAU,CACxB,OAAOA,EAAS,SAASP,CAAI,CAC/B,EACA,wBAAwBQ,EAAS,CAC3BA,EACF,KAAK,MAAM,qBAAsB,CAAC,KAAK,SAAU,GAAG,KAAK,WAAW,CAAC,EAErE,KAAK,MAAM,qBAAsB,KAAK,YAAY,OAAQR,GAASA,IAAS,KAAK,QAAQ,CAAC,CAE9F,EACA,wBAAwBQ,EAAS,CAC3BA,EACF,KAAK,MAAM,qBAAsB,CAAC,KAAK,SAAU,GAAG,KAAK,WAAW,CAAC,EAErE,KAAK,MAAM,qBAAsB,KAAK,YAAY,OAAQR,GAASA,IAAS,KAAK,QAAQ,CAAC,CAE9F,EAKA,MAAM,aAAaS,EAAM,CACvB,OAAO,IAAI,QAASb,GAAY,CAC9B,GAAIa,aAAgB,MAAQA,EAAK,KAAK,WAAW,QAAQ,EAAG,CAC1D,MAAMC,EAAS,IAAI,WACnBA,EAAO,OAAS,MAAOC,GAAM,CAC3B,MAAMC,EAASD,GAAG,QAAQ,OAC1B,GAAIC,aAAkB,YAAa,CACjC,MAAMC,EAAO,IAAI,KAAK,CAACD,CAAM,EAAG,CAAE,KAAMH,EAAK,KAAM,EAC7CR,EAAM,IAAI,gBAAgBY,CAAI,EACpCjB,EAAQK,CAAG,EACX,MACF,CACAL,EAAQ,IAAI,CACd,EACAc,EAAO,kBAAkBD,CAAI,CAC/B,MACEb,EAAQ,IAAI,CAEhB,CAAC,CACH,EACA,EAAAT,CACJ,CACA,CAAC,EACD,IAAI2B,EAAgB,UAAmB,CACrC,IAAIhD,EAAM,KAAMC,EAAKD,EAAI,MAAM,GAC/B,OAAAA,EAAI,MAAM,YACHC,EAAG,WAAY,CAAE,YAAa,uBAAwB,MAAO,CAAE,mCAAoCD,EAAI,SAAS,QAAQ,CAAE,EAAI,CAACC,EAAG,SAAU,CAACD,EAAI,GAAGA,EAAI,GAAGA,EAAI,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAIA,EAAI,SAAiiBC,EAAG,iBAAkB,CAAE,MAAO,CAAE,QAAWD,EAAI,gBAAiB,MAASA,EAAI,qBAAsB,KAAQA,EAAI,aAAc,YAAaA,EAAI,SAASA,EAAI,QAAQ,EAAG,MAASA,EAAI,EAAE,kBAAkB,EAAG,YAAaA,EAAI,cAAe,YAAaA,EAAI,cAAc,CAAE,CAAE,EAAnyBC,EAAG,wBAAyB,CAAE,MAAO,CAAE,QAAWD,EAAI,UAAUA,EAAI,SAAUA,EAAI,WAAW,EAAG,SAAY,CAACA,EAAI,iBAAkB,yCAA0CA,EAAI,SAAS,QAAQ,EAAI,GAAI,CAAE,iBAAkBA,EAAI,uBAAuB,GAAM,CAACC,EAAG,iBAAkB,CAAE,MAAO,CAAE,QAAWD,EAAI,gBAAiB,MAASA,EAAI,qBAAsB,KAAQA,EAAI,aAAc,YAAaA,EAAI,SAASA,EAAI,QAAQ,EAAG,MAASA,EAAI,EAAE,kBAAkB,EAAG,YAAaA,EAAI,cAAe,YAAaA,EAAI,cAAc,EAAI,CAAC,EAAG,CAAC,EAAoRC,EAAG,aAAc,CAAE,YAAa,qBAAsB,MAAO,CAAE,KAAQ,EAAE,CAAE,CAAE,EAAID,EAAI,SAA4hBC,EAAG,iBAAkB,CAAE,MAAO,CAAE,QAAWD,EAAI,gBAAiB,MAASA,EAAI,qBAAsB,KAAQA,EAAI,aAAc,YAAaA,EAAI,SAASA,EAAI,QAAQ,EAAG,MAASA,EAAI,EAAE,aAAa,EAAG,YAAaA,EAAI,cAAe,YAAaA,EAAI,cAAc,EAAI,EAAzxBC,EAAG,wBAAyB,CAAE,MAAO,CAAE,QAAWD,EAAI,UAAUA,EAAI,SAAUA,EAAI,WAAW,EAAG,SAAY,CAACA,EAAI,iBAAkB,yCAA0CA,EAAI,SAAS,UAAY,GAAI,CAAE,iBAAkBA,EAAI,uBAAuB,CAAE,EAAI,CAACC,EAAG,iBAAkB,CAAE,MAAO,CAAE,QAAWD,EAAI,gBAAiB,MAASA,EAAI,qBAAsB,KAAQA,EAAI,aAAc,YAAaA,EAAI,SAASA,EAAI,QAAQ,EAAG,MAASA,EAAI,EAAE,aAAa,EAAG,YAAaA,EAAI,cAAe,YAAaA,EAAI,cAAc,CAAE,CAAE,CAAC,EAAG,CAAC,CAA6Q,EAAG,CAAC,CACn3D,EACIiD,EAAyB,CAAA,EACzBC,EAAkC7C,EACpCsB,EACAqB,EACAC,EACA,GACA,KACA,UACF,EACA,MAAME,EAAcD,EAAgB,QAC9BE,EAAYlC,EAAgB,CAChC,KAAM,iBACN,WAAY,CACV,WAAAZ,EACA,SAAA+C,EACA,sBAAAzB,EACA,SAAA0B,EACA,YAAAH,CACJ,EACE,MAAO,CAEL,QAAS,CACP,KAAM,OACN,QAAS,EACf,EAEI,QAAS,CACP,KAAM,MACN,SAAU,EAChB,EAEI,UAAW,CACT,KAAM,MACN,SAAU,EAChB,EAII,gBAAiB,CACf,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CAAC,SAAU,QAAQ,EAC1B,OAAQ,CACN,MAAO,CACL,aAAc9B,EAAE,mEAAmE,CACzF,CACE,EACA,MAAO,CACL,MAAO,CAEL,MAAO,CAAA,EACP,OAAQ,GACR,YAAa,CAAA,EACb,YAAa,CAAA,CACnB,CACE,EACA,SAAU,CACR,MAAO,CACL,OAAO,KAAK,SAAWA,EAAE,qBAAqB,EAAIA,EAAE,sBAAsB,CAC5E,EAKA,UAAW,CACT,OAAO,KAAK,UAAU,SAAW,CACnC,EAEA,YAAa,CACX,OAAOkC,EAAS,KAAK,SAAW,EAAE,GAAKlC,EAAE,WAAW,CACtD,EAEA,kBAAmB,CACjB,MAAMmC,EAAU,KAAK,SAAWnC,EAAE,yDAAyD,EAAIA,EAAE,4EAA4E,EACvK,CAACoC,EAAQC,EAAQ,EAAE,EAAIF,EAAQ,MAAM,WAAW,EACtD,MAAO,CAAE,OAAAC,EAAQ,MAAAC,CAAK,CACxB,EAEA,iBAAkB,CAChB,OAAOC,EAAE,oBAAqB,qBAAsB,KAAK,UAAU,OAAQ,CAAE,MAAO,KAAK,UAAU,MAAM,CAAE,CAC7G,EAEA,kBAAmB,CACjB,MAAMC,EAAQ,KAAK,mBAAqB,KAAK,kBAAoB,KAAK,EAAE,YAAY,EAAI,KAAK,EAAE,cAAc,EAC7G,MAAO,CACL,aAAcA,EACd,QAAS,KAAK,iBACd,cAAe,KAAK,kBACpB,MAAOA,CACf,CACI,EACA,kBAAmB,CACjB,OAAO,KAAK,YAAY,SAAW,KAAK,UAAU,MACpD,EACA,mBAAoB,CAClB,OAAO,KAAK,YAAY,SAAW,CACrC,EACA,mBAAoB,CAClB,MAAO,CAAC,KAAK,kBAAoB,CAAC,KAAK,iBACzC,EAEA,kBAAmB,CACjB,MAAMA,EAAQ,KAAK,mBAAqB,KAAK,kBAAoB,KAAK,EAAE,YAAY,EAAI,KAAK,EAAE,cAAc,EAC7G,MAAO,CACL,aAAcA,EACd,QAAS,KAAK,iBACd,cAAe,KAAK,kBACpB,MAAOA,CACf,CACI,EACA,kBAAmB,CACjB,OAAO,KAAK,YAAY,SAAW,KAAK,MAAM,MAChD,EACA,mBAAoB,CAClB,OAAO,KAAK,YAAY,SAAW,CACrC,EACA,mBAAoB,CAClB,MAAO,CAAC,KAAK,kBAAoB,CAAC,KAAK,iBACzC,EAEA,kBAAmB,CACjB,OAAI,KAAK,kBAAoB,KAAK,iBACzB,GAEF,KAAK,OAAO,aAAa,QAASC,GAAWA,EAAO,gBAAgB,CAC7E,CACJ,EACE,SAAU,CAKR,GAJA,KAAK,MAAQ,KAAK,UAAU,IAAKC,GAAa,CAC5C,MAAMC,EAAOD,aAAoB,MAAQtB,EAAkBsB,CAAQ,EAAIA,EAAS,KAAOA,EAAS,SAChG,OAAO,KAAK,QAAQ,KAAM5B,GAASA,EAAK,WAAa6B,CAAI,CAC3D,CAAC,EAAE,OAAO,OAAO,EACb,KAAK,UAAU,SAAW,GAAK,KAAK,MAAM,SAAW,EAAG,CAC1D,MAAMC,EAAQ,IAAI,MAAM,uDAAuD,EAC/E,WAAK,SAASA,CAAK,EACbA,CACR,CACA,GAAI,KAAK,UAAU,SAAW,KAAK,MAAM,OAAQ,CAC/C,MAAMA,EAAQ,IAAI,MAAM,yIAAyI,EACjK,MAAA,KAAK,SAASA,CAAK,EACbA,CACR,CACA,KAAK,YAAc,KAAK,UACxBC,EAAO,MAAM,6BAA8B,CAAE,MAAO,KAAK,MAAO,UAAW,KAAK,UAAW,QAAS,KAAK,OAAO,CAAE,CACpH,EACA,QAAS,CACP,SAASD,EAAO,CACd,KAAK,OAAS,GACd,KAAK,MAAM,SAAUA,CAAK,CAC5B,EACA,QAAS,CACPC,EAAO,MAAM,kDAAkD,EAC/D,KAAK,OAAS,GACd,KAAK,MAAM,SAAU,CACnB,SAAU,CAAA,EACV,QAAS,CAAA,CACjB,CAAO,CACH,EAIA,WAAY,CACV,KAAK,YAAc,KAAK,UACxB,KAAK,YAAc,CAAA,EACnB,KAAK,SAAQ,CACf,EAIA,YAAa,CACX,KAAK,YAAc,KAAK,UACxB,KAAK,YAAc,KAAK,MACxB,KAAK,SAAQ,CACf,EACA,UAAW,CACT,GAAI,CAAC,KAAK,iBAAkB,CAC1B,KAAK,4BAA2B,EAChC,KAAK,MAAM,KAAK,eAAc,EAC9BC,EAAU,KAAK,YAAY,EAC3B,MACF,CACA,MAAMC,EAAmB,KAAK,YAAY,IAAKjC,GAASA,EAAK,QAAQ,EAC/DkC,EAAmB,KAAK,QAAQ,IAAKlC,GAASA,EAAK,QAAQ,EAC3DmC,EAAU,CAAA,EACVC,EAAW,KAAK,YAAY,OAAQpC,GAAS,CACjD,MAAM6B,EAAO7B,aAAgB,MAAQM,EAAkBN,CAAI,EAAIA,EAAK,KAAOA,EAAK,SAChF,OAAOiC,EAAiB,SAASJ,CAAI,CACvC,CAAC,EACGO,EAAS,OAAS,GACpBA,EAAS,QAAS3B,GAAS,CACzB,MAAMoB,EAAOpB,aAAgB,MAAQH,EAAkBG,CAAI,EAAIA,EAAK,KAAOA,EAAK,SAC1E4B,EAAUC,EAAcT,EAAMK,CAAgB,EACpD,GAAIzB,aAAgB,MAAQH,EAAkBG,CAAI,EAAG,CACnD,OAAO,eAAeA,EAAM,OAAQ,CAAE,MAAO4B,EAAS,EACtDF,EAAQ,KAAK1B,CAAI,EACjB,MACF,CACAA,EAAK,OAAO4B,CAAO,EACnBF,EAAQ,KAAK1B,CAAI,CACnB,CAAC,EAEH,MAAMF,EAAW,KAAK,YAAY,OAAQP,GAAS,CACjD,MAAM6B,EAAO7B,aAAgB,MAAQM,EAAkBN,CAAI,EAAIA,EAAK,KAAOA,EAAK,SAChF,MAAO,CAACiC,EAAiB,SAASJ,CAAI,GAAK,CAACO,EAAS,SAASpC,CAAI,CACpE,CAAC,EACD+B,EAAO,MAAM,oBAAqB,CAAE,SAAAxB,EAAU,QAAA4B,CAAO,CAAE,EACvD,KAAK,OAAS,GACd,KAAK,MAAM,SAAU,CACnB,SAAA5B,EACA,QAAA4B,CACR,CAAO,CACH,EAKA,6BAA8B,CAC5B,MAAMI,EAAW,gDACE,MAAM,KAAK,KAAK,IAAI,iBAAiBA,CAAQ,CAAC,EACtD,QAASC,GAAUA,GAAO,oBAAoB,EAAE,CAAC,EAC5D,MAAMC,EAAe,KAAK,IAAI,cAAcF,EAAW,UAAU,EAC7DE,IACFA,EAAa,kBAAkB,KAAK,YAAY,EAChDA,EAAa,eAAe,CAAE,SAAU,UAAW,MAAO,SAAU,EAExE,EACA,eAAelC,EAAU,CACnBA,GACFwB,EAAO,MAAM,wBAAwB,EACrC,KAAK,YAAc,KAAK,YAExBA,EAAO,MAAM,uBAAuB,EACpC,KAAK,YAAc,CAAA,EAEvB,EACA,eAAexB,EAAU,CACnBA,GACFwB,EAAO,MAAM,6BAA6B,EAC1C,KAAK,YAAc,KAAK,QAExBA,EAAO,MAAM,uBAAuB,EACpC,KAAK,YAAc,CAAA,EAEvB,EACA,EAAA5C,CACJ,CACA,CAAC,EACD,IAAIuD,EAAc,UAAmB,CACnC,IAAI5E,EAAM,KAAMC,EAAKD,EAAI,MAAM,GAC/B,OAAAA,EAAI,MAAM,YACHC,EAAG,WAAY,CAAE,YAAa,kBAAmB,MAAO,CAAE,YAAa,GAAI,0BAA2B,GAAI,yBAA0B,GAAO,KAAQD,EAAI,OAAQ,KAAQA,EAAI,KAAM,KAAQ,OAAO,EAAI,GAAI,CAAE,QAAWA,EAAI,QAAQ,EAAI,YAAaA,EAAI,GAAG,CAAC,CAAE,IAAK,UAAW,GAAI,UAAW,CAChS,MAAO,CAACC,EAAG,WAAY,CAAE,MAAO,CAAE,aAAcD,EAAI,EAAE,QAAQ,EAAG,MAASA,EAAI,EAAE,6BAA6B,EAAG,iCAAkC,GAAI,KAAQ,YAAc,GAAI,CAAE,MAASA,EAAI,SAAU,EAAI,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,QAAQ,CAAC,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,OAAQ,CAAE,YAAa,2BAA2B,CAAE,EAAGD,EAAI,SAAW,CAACC,EAAG,WAAY,CAAE,MAAO,CAAE,aAAcD,EAAI,EAAE,WAAW,EAAG,oCAAqC,GAAI,KAAQ,WAAW,EAAI,GAAI,CAAE,MAASA,EAAI,WAAY,EAAI,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,WAAW,CAAC,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,WAAY,CAAE,MAAO,CAAE,aAAcD,EAAI,EAAE,SAAS,EAAG,iCAAkC,GAAI,KAAQ,WAAa,GAAI,CAAE,MAASA,EAAI,UAAW,EAAI,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,SAAS,CAAC,EAAI,GAAG,CAAC,CAAC,CAAC,EAAI,CAACC,EAAG,WAAY,CAAE,MAAO,CAAE,aAAcD,EAAI,gBAAiB,+BAAgC,IAAM,GAAI,CAAE,MAASA,EAAI,MAAM,GAAM,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,eAAe,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,WAAY,CAAE,MAAO,CAAE,uBAAwB,CAACD,EAAI,gBAAgB,EAAI,MAAO,CAAE,aAAcA,EAAI,EAAE,UAAU,EAAG,MAASA,EAAI,iBAAmB,GAAKA,EAAI,aAAc,iCAAkC,GAAI,cAAe,SAAU,KAAQ,SAAS,EAAI,GAAI,CAAE,MAAS,SAASE,EAAQ,CACxrC,OAAAA,EAAO,gBAAe,EACtBA,EAAO,eAAc,EACdF,EAAI,SAAS,MAAM,KAAM,SAAS,CAC3C,CAAC,EAAI,YAAaA,EAAI,GAAG,CAAC,CAAE,IAAK,OAAQ,GAAI,UAAW,CACtD,MAAO,CAACC,EAAG,aAAc,CAAE,MAAO,CAAE,KAAQ,EAAE,CAAE,CAAE,CAAC,CACrD,EAAG,MAAO,EAAI,CAAE,CAAC,CAAC,EAAI,CAACD,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,UAAU,CAAC,EAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CACzE,EAAG,MAAO,GAAM,CAAC,CAAC,EAAI,CAACC,EAAG,MAAO,CAAE,YAAa,2BAA6B,CAACA,EAAG,IAAK,CAAE,YAAa,+BAAgC,MAAO,CAAE,GAAM,6BAA6B,CAAE,EAAI,CAACD,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,iBAAiB,MAAM,CAAC,EAAGC,EAAG,SAAU,CAACD,EAAI,GAAGA,EAAI,GAAGA,EAAI,UAAU,CAAC,CAAC,CAAC,EAAGA,EAAI,GAAGA,EAAI,GAAGA,EAAI,iBAAiB,KAAK,CAAC,EAAGC,EAAG,IAAI,EAAID,EAAI,SAA8JA,EAAI,GAAE,EAAzJ,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,uGAAuG,CAAC,CAAC,EAAGC,EAAG,IAAI,CAAC,EAAcD,EAAI,gBAAkB,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,kIAAkI,CAAC,EAAI,GAAG,CAAC,EAAI,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,0FAA0F,CAAC,EAAI,GAAG,CAAC,CAAC,EAAG,CAAC,CAAC,CAAC,EAAGC,EAAG,OAAQ,CAAE,IAAK,OAAQ,YAAa,wBAAyB,MAAO,CAAE,kBAAmB,8BAA+B,+BAAgC,EAAE,EAAI,GAAI,CAAE,OAAU,SAASC,EAAQ,CACtgC,OAAAA,EAAO,eAAc,EACrBA,EAAO,gBAAe,EACfF,EAAI,SAAS,MAAM,KAAM,SAAS,CAC3C,EAAG,EAAI,CAAEA,EAAI,SAAuvBA,EAAI,GAAE,EAAlvBC,EAAG,WAAY,CAAE,YAAa,uBAAwB,MAAO,CAAE,mCAAoC,KAAK,CAAE,EAAI,CAACA,EAAG,SAAU,CAAE,YAAa,mBAAqB,CAACD,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,uBAAuB,CAAC,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,wBAAyBD,EAAI,GAAG,CAAE,MAAO,CAAE,yCAA0C,OAAS,GAAI,CAAE,iBAAkBA,EAAI,cAAc,CAAE,EAAI,wBAAyBA,EAAI,iBAAkB,EAAK,EAAG,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,gBAAgB,CAAC,EAAI,GAAG,CAAC,CAAC,EAAGC,EAAG,MAAM,EAAGA,EAAG,wBAAyBD,EAAI,GAAG,CAAE,MAAO,CAAE,yCAA0C,KAAK,EAAI,GAAI,CAAE,iBAAkBA,EAAI,cAAc,CAAE,EAAI,wBAAyBA,EAAI,iBAAkB,EAAK,EAAG,CAACA,EAAI,GAAG,IAAMA,EAAI,GAAGA,EAAI,EAAE,WAAW,CAAC,EAAI,GAAG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAcA,EAAI,GAAGA,EAAI,MAAO,SAASkC,EAAM2C,EAAO,CACpzB,OAAO5E,EAAG,cAAe,CAAE,IAAKiC,EAAK,OAAQ,IAAK,cAAe,SAAU,GAAM,MAAO,CAAE,SAAYlC,EAAI,UAAU6E,CAAK,EAAG,SAAY7E,EAAI,MAAM6E,CAAK,EAAG,YAAa7E,EAAI,SAAU,eAAgBA,EAAI,YAAa,eAAgBA,EAAI,WAAW,EAAI,GAAI,CAAE,qBAAsB,SAASE,EAAQ,CACpSF,EAAI,YAAcE,CACpB,EAAG,sBAAuB,SAASA,EAAQ,CACzCF,EAAI,YAAcE,CACpB,EAAG,qBAAsB,SAASA,EAAQ,CACxCF,EAAI,YAAcE,CACpB,EAAG,sBAAuB,SAASA,EAAQ,CACzCF,EAAI,YAAcE,CACpB,CAAC,CAAE,CAAE,CACP,CAAC,CAAC,EAAG,CAAC,CAAC,CAAC,CACV,EACI4E,EAAuB,CAAA,EACvBC,GAAgC1E,EAClC+C,EACAwB,EACAE,EACA,GACA,KACA,UACF,EACK,MAACE,GAAiBD,GAAc","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"ConflictPicker-BRRUCIWm-BwqxbI7k.chunk.mjs","sources":["../node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-BRRUCIWm.mjs"],"sourcesContent":["import '../assets/ConflictPicker-Bf00u2Pe.css';\nimport { defineComponent } from \"vue\";\nimport { showError } from \"@nextcloud/dialogs\";\nimport { formatFileSize, FileType, getUniqueName } from \"@nextcloud/files\";\nimport { basename } from \"@nextcloud/paths\";\nimport { n as normalizeComponent, t, i as isFileSystemEntry, a as isFileSystemFileEntry, l as logger, b as n } from \"./index-SPoS3_zU.mjs\";\nimport NcCheckboxRadioSwitch from \"@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js\";\nimport NcDialog from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport NcDateTime from \"@nextcloud/vue/dist/Components/NcDateTime.js\";\nconst _sfc_main$5 = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$5 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon arrow-right-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n null\n);\nconst ArrowRight = __component__$5.exports;\nconst _sfc_main$4 = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$4 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst FileSvg = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$3 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst FolderSvg = __component__$3.exports;\nconst _sfc_main$2 = defineComponent({\n name: \"NodePickerCard\",\n components: {\n FileSvg,\n FolderSvg,\n NcDateTime\n },\n props: {\n /** Preview url, if any */\n preview: {\n type: String,\n default: null\n },\n /** Last modified date, if known */\n mtime: {\n type: Date,\n default: null\n },\n /** Size in bytes, if known */\n size: {\n type: Number,\n default: null\n },\n /** Use the folder icon as fallback */\n isFolder: {\n type: Boolean,\n default: false\n },\n /** Label for screen readers (\"Existing version\"/\"New version\") */\n label: {\n type: String,\n required: true\n },\n /** Highlight the date as it is the more recent one */\n boldDate: {\n type: Boolean,\n default: false\n },\n /** Highlight the size as it is the bigger one */\n boldSize: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n // Previews can 404, fall back to the icon instead of a broken image\n previewFailed: false\n };\n },\n computed: {\n showPreview() {\n return !!this.preview && !this.previewFailed;\n },\n formattedSize() {\n if (this.size) {\n return formatFileSize(this.size, true);\n }\n return t(\"Unknown size\");\n }\n },\n watch: {\n preview() {\n this.previewFailed = false;\n }\n },\n methods: {\n t\n }\n});\nvar _sfc_render$2 = function render4() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"span\", { staticClass: \"node-picker\" }, [!_vm.showPreview ? [_vm.isFolder ? _c(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { \"size\": 48 } }) : _c(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { \"size\": 48 } })] : _c(\"img\", { staticClass: \"node-picker__preview\", attrs: { \"src\": _vm.preview, \"alt\": \"\", \"loading\": \"lazy\" }, on: { \"error\": function($event) {\n _vm.previewFailed = true;\n } } }), _c(\"span\", { staticClass: \"node-picker__desc\" }, [_vm.mtime ? _c(\"NcDateTime\", { staticClass: \"node-picker__mtime\", class: { \"node-picker__value--bold\": _vm.boldDate }, attrs: { \"timestamp\": _vm.mtime, \"relative-time\": false, \"format\": { timeStyle: \"short\", dateStyle: \"medium\" } } }) : _c(\"span\", { staticClass: \"node-picker__mtime\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Last modified date unknown\")) + \" \")]), _c(\"span\", { staticClass: \"node-picker__size\", class: { \"node-picker__value--bold\": _vm.boldSize } }, [_vm._v(\" \" + _vm._s(_vm.formattedSize) + \" \")]), _c(\"span\", { staticClass: \"hidden-visually\" }, [_vm._v(_vm._s(_vm.label))])], 1)], 2);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"7a2b1a1d\"\n);\nconst NodePickerCard = __component__$2.exports;\nconst PREVIEW_SIZE = 64;\nconst _sfc_main$1 = defineComponent({\n name: \"NodesPicker\",\n components: {\n ArrowRight,\n NcCheckboxRadioSwitch,\n NodePickerCard\n },\n props: {\n incoming: {\n type: [File, Object],\n required: true\n },\n existing: {\n type: Object,\n required: true\n },\n newSelected: {\n type: Array,\n required: true\n },\n oldSelected: {\n type: Array,\n required: true\n },\n /**\n * Single file mode: show both versions without checkboxes.\n * The parent offers \"Keep both\" and \"Replace\" buttons instead.\n */\n isSingle: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n asyncPreview: null,\n incomingFile: null\n };\n },\n computed: {\n /**\n * Whether the incoming or existing file is selected.\n * This is used by the parent component to ensure\n * that the user has selected at least one of the two files.\n */\n isEnoughSelected() {\n return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected);\n },\n incomingPreview() {\n if (!this.incomingFile) {\n return null;\n }\n const preview = this.previewUrl(this.incomingFile);\n return preview ?? this.asyncPreview;\n },\n incomingLastModified() {\n if (!this.incomingFile) {\n return null;\n }\n return this.lastModified(this.incomingFile);\n },\n incomingSize() {\n return this.incomingFile?.size ?? null;\n },\n existingPreview() {\n return this.previewUrl(this.existing);\n },\n existingLastModified() {\n return this.lastModified(this.existing);\n },\n existingSize() {\n return this.existing.size ?? null;\n },\n // Highlight the more recent date and the bigger size to ease comparison\n incomingNewer() {\n return this.isBigger(this.incomingLastModified?.getTime(), this.existingLastModified?.getTime());\n },\n existingNewer() {\n return this.isBigger(this.existingLastModified?.getTime(), this.incomingLastModified?.getTime());\n },\n incomingLarger() {\n return this.isBigger(this.incomingSize, this.existingSize);\n },\n existingLarger() {\n return this.isBigger(this.existingSize, this.incomingSize);\n }\n },\n watch: {\n /**\n * Watch \"incoming\" to update \"incomingFile\"\n */\n incoming: {\n // Run the watcher also on mount with initial \"incoming\" value\n immediate: true,\n async handler() {\n if (this.incoming instanceof File) {\n this.incomingFile = this.incoming;\n } else if (isFileSystemFileEntry(this.incoming)) {\n this.incomingFile = await new Promise((resolve, reject) => this.incoming.file(resolve, reject));\n } else {\n this.incomingFile = null;\n }\n }\n }\n },\n methods: {\n /**\n * Both values need to be known, otherwise there is nothing to compare.\n * @param value the value to highlight if it is the bigger one\n * @param other the value to compare against\n */\n isBigger(value, other) {\n if (!value || !other) {\n return false;\n }\n return value > other;\n },\n lastModified(node) {\n const lastModified = node instanceof File ? new Date(node.lastModified) : node.mtime;\n return lastModified ?? null;\n },\n previewUrl(node) {\n if (node instanceof File) {\n this.previewImage(node).then((url) => {\n this.asyncPreview = url;\n });\n return null;\n }\n if (node.type === FileType.Folder) {\n return null;\n }\n try {\n const previewUrl = node.attributes.previewUrl || generateUrl(\"/core/preview?fileId={fileid}\", {\n fileid: node.fileid\n });\n const url = new URL(window.location.origin + previewUrl);\n url.searchParams.set(\"x\", PREVIEW_SIZE.toString());\n url.searchParams.set(\"y\", PREVIEW_SIZE.toString());\n url.searchParams.set(\"mimeFallback\", \"true\");\n const etag = node.attributes?.etag || \"\";\n url.searchParams.set(\"v\", etag.slice(0, 6));\n return url.href;\n } catch (e) {\n return null;\n }\n },\n isFolder(node) {\n if (isFileSystemEntry(node)) {\n return node.isDirectory;\n }\n node = node;\n return node.type === FileType.Folder || node.type === \"httpd/unix-directory\";\n },\n isChecked(node, selected) {\n return selected.includes(node);\n },\n onUpdateIncomingChecked(checked) {\n if (checked) {\n this.$emit(\"update:newSelected\", [this.incoming, ...this.newSelected]);\n } else {\n this.$emit(\"update:newSelected\", this.newSelected.filter((node) => node !== this.incoming));\n }\n },\n onUpdateExistingChecked(checked) {\n if (checked) {\n this.$emit(\"update:oldSelected\", [this.existing, ...this.oldSelected]);\n } else {\n this.$emit(\"update:oldSelected\", this.oldSelected.filter((node) => node !== this.existing));\n }\n },\n /**\n * Get the preview Image of a file\n * @param file the soon-to-be-uploaded File\n */\n async previewImage(file) {\n return new Promise((resolve) => {\n if (file instanceof File && file.type.startsWith(\"image/\")) {\n const reader = new FileReader();\n reader.onload = async (e) => {\n const result = e?.target?.result;\n if (result instanceof ArrayBuffer) {\n const blob = new Blob([result], { type: file.type });\n const url = URL.createObjectURL(blob);\n resolve(url);\n return;\n }\n resolve(null);\n };\n reader.readAsArrayBuffer(file);\n } else {\n resolve(null);\n }\n });\n },\n t\n }\n});\nvar _sfc_render$1 = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"fieldset\", { staticClass: \"node-picker__wrapper\", attrs: { \"data-cy-conflict-picker-fieldset\": _vm.existing.basename } }, [_c(\"legend\", [_vm._v(_vm._s(_vm.existing.basename))]), !_vm.isSingle ? _c(\"NcCheckboxRadioSwitch\", { attrs: { \"checked\": _vm.isChecked(_vm.existing, _vm.oldSelected), \"required\": !_vm.isEnoughSelected, \"data-cy-conflict-picker-input-existing\": _vm.existing.basename }, on: { \"update:checked\": _vm.onUpdateExistingChecked } }, [_c(\"NodePickerCard\", { attrs: { \"preview\": _vm.existingPreview, \"mtime\": _vm.existingLastModified, \"size\": _vm.existingSize, \"is-folder\": _vm.isFolder(_vm.existing), \"label\": _vm.t(\"Existing version\"), \"bold-date\": _vm.existingNewer, \"bold-size\": _vm.existingLarger } })], 1) : _c(\"NodePickerCard\", { attrs: { \"preview\": _vm.existingPreview, \"mtime\": _vm.existingLastModified, \"size\": _vm.existingSize, \"is-folder\": _vm.isFolder(_vm.existing), \"label\": _vm.t(\"Existing version\"), \"bold-date\": _vm.existingNewer, \"bold-size\": _vm.existingLarger } }), _c(\"ArrowRight\", { staticClass: \"node-picker__arrow\", attrs: { \"size\": 20 } }), !_vm.isSingle ? _c(\"NcCheckboxRadioSwitch\", { attrs: { \"checked\": _vm.isChecked(_vm.incoming, _vm.newSelected), \"required\": !_vm.isEnoughSelected, \"data-cy-conflict-picker-input-incoming\": _vm.existing.basename }, on: { \"update:checked\": _vm.onUpdateIncomingChecked } }, [_c(\"NodePickerCard\", { attrs: { \"preview\": _vm.incomingPreview, \"mtime\": _vm.incomingLastModified, \"size\": _vm.incomingSize, \"is-folder\": _vm.isFolder(_vm.incoming), \"label\": _vm.t(\"New version\"), \"bold-date\": _vm.incomingNewer, \"bold-size\": _vm.incomingLarger } })], 1) : _c(\"NodePickerCard\", { attrs: { \"preview\": _vm.incomingPreview, \"mtime\": _vm.incomingLastModified, \"size\": _vm.incomingSize, \"is-folder\": _vm.isFolder(_vm.incoming), \"label\": _vm.t(\"New version\"), \"bold-date\": _vm.incomingNewer, \"bold-size\": _vm.incomingLarger } })], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"dcd77f87\"\n);\nconst NodesPicker = __component__$1.exports;\nconst _sfc_main = defineComponent({\n name: \"ConflictPicker\",\n components: {\n ArrowRight,\n NcButton,\n NcCheckboxRadioSwitch,\n NcDialog,\n NodesPicker\n },\n props: {\n /** Directory with the conflicts, its name is shown in the description */\n dirname: {\n type: String,\n default: \"\"\n },\n /** All the existing files in the current directory */\n content: {\n type: Array,\n required: true\n },\n /** New files being moved/uploaded */\n conflicts: {\n type: Array,\n required: true\n },\n /**\n * If set to true no hint about overwriting directory content will be shown\n */\n recursiveUpload: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"cancel\", \"submit\"],\n setup() {\n return {\n blockedTitle: t(\"You need to select at least one version of each file to continue.\")\n };\n },\n data() {\n return {\n // computed list of conflicting files already present in the directory\n files: [],\n opened: true,\n newSelected: [],\n oldSelected: []\n };\n },\n computed: {\n name() {\n return this.isSingle ? t(\"Select file to keep\") : t(\"Select files to keep\");\n },\n /**\n * A single conflict does not need checkboxes,\n * \"Keep both\" and \"Replace\" cover both options.\n */\n isSingle() {\n return this.conflicts.length === 1;\n },\n // Only the folder name, the root folder is called \"All files\" in the Files app\n folderName() {\n return basename(this.dirname ?? \"\") || t(\"All files\");\n },\n // Split on the placeholder so the folder name can be shown in bold\n descriptionParts() {\n const message = this.isSingle ? t(\"An item with the same name already exists in {dirname}.\") : t(\"Items with the same name already exist in {dirname}, select which to keep.\");\n const [before, after = \"\"] = message.split(\"{dirname}\");\n return { before, after };\n },\n // Only shown for multiple conflicts, a single one is handled by \"Keep both\"/\"Replace\"\n skipButtonLabel() {\n return n(\"Skip {count} file\", \"Skip {count} files\", this.conflicts.length, { count: this.conflicts.length });\n },\n // Select all incoming files\n selectAllNewBind() {\n const label = this.isNoneNewSelected || this.isSomeNewSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": label,\n checked: this.isAllNewSelected,\n indeterminate: this.isSomeNewSelected,\n title: label\n };\n },\n isAllNewSelected() {\n return this.newSelected.length === this.conflicts.length;\n },\n isNoneNewSelected() {\n return this.newSelected.length === 0;\n },\n isSomeNewSelected() {\n return !this.isAllNewSelected && !this.isNoneNewSelected;\n },\n // Select all existing files\n selectAllOldBind() {\n const label = this.isNoneOldSelected || this.isSomeOldSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": label,\n checked: this.isAllOldSelected,\n indeterminate: this.isSomeOldSelected,\n title: label\n };\n },\n isAllOldSelected() {\n return this.oldSelected.length === this.files.length;\n },\n isNoneOldSelected() {\n return this.oldSelected.length === 0;\n },\n isSomeOldSelected() {\n return !this.isAllOldSelected && !this.isNoneOldSelected;\n },\n // Global handlings\n isEnoughSelected() {\n if (this.isAllOldSelected || this.isAllNewSelected) {\n return true;\n }\n return this.$refs?.nodesPicker?.every?.((picker) => picker.isEnoughSelected);\n }\n },\n mounted() {\n this.files = this.conflicts.map((conflict) => {\n const name = conflict instanceof File || isFileSystemEntry(conflict) ? conflict.name : conflict.basename;\n return this.content.find((node) => node.basename === name);\n }).filter(Boolean);\n if (this.conflicts.length === 0 || this.files.length === 0) {\n const error = new Error(\"ConflictPicker: files and conflicts must not be empty\");\n this.onCancel(error);\n throw error;\n }\n if (this.conflicts.length !== this.files.length) {\n const error = new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n this.onCancel(error);\n throw error;\n }\n this.newSelected = this.conflicts;\n logger.debug(\"ConflictPicker initialised\", { files: this.files, conflicts: this.conflicts, content: this.content });\n },\n methods: {\n onCancel(error) {\n this.opened = false;\n this.$emit(\"cancel\", error);\n },\n onSkip() {\n logger.debug(\"Conflict skipped. Ignoring all conflicting files\");\n this.opened = false;\n this.$emit(\"submit\", {\n selected: [],\n renamed: []\n });\n },\n /**\n * Single file: only keep the new file, the existing one is overwritten.\n */\n onReplace() {\n this.newSelected = this.conflicts;\n this.oldSelected = [];\n this.onSubmit();\n },\n /**\n * Single file: keep both, so the new file is uploaded under a new name.\n */\n onKeepBoth() {\n this.newSelected = this.conflicts;\n this.oldSelected = this.files;\n this.onSubmit();\n },\n onSubmit() {\n if (!this.isEnoughSelected) {\n this.scrollValidityInputIntoView();\n this.$refs.form.reportValidity();\n showError(this.blockedTitle);\n return;\n }\n const selectedOldNames = this.oldSelected.map((node) => node.basename);\n const directoryContent = this.content.map((node) => node.basename);\n const renamed = [];\n const toRename = this.newSelected.filter((node) => {\n const name = node instanceof File || isFileSystemEntry(node) ? node.name : node.basename;\n return selectedOldNames.includes(name);\n });\n if (toRename.length > 0) {\n toRename.forEach((file) => {\n const name = file instanceof File || isFileSystemEntry(file) ? file.name : file.basename;\n const newName = getUniqueName(name, directoryContent);\n if (file instanceof File || isFileSystemEntry(file)) {\n Object.defineProperty(file, \"name\", { value: newName });\n renamed.push(file);\n return;\n }\n file.rename(newName);\n renamed.push(file);\n });\n }\n const selected = this.newSelected.filter((node) => {\n const name = node instanceof File || isFileSystemEntry(node) ? node.name : node.basename;\n return !selectedOldNames.includes(name) && !toRename.includes(node);\n });\n logger.debug(\"Conflict resolved\", { selected, renamed });\n this.opened = false;\n this.$emit(\"submit\", {\n selected,\n renamed\n });\n },\n /**\n * Scroll the first invalid input into view.\n * This is needed because the browser uses behavior: \"nearest\" by default.\n */\n scrollValidityInputIntoView() {\n const selector = '.checkbox-radio-switch input[type=\"checkbox\"]';\n const checkboxes = Array.from(this.$el.querySelectorAll(selector));\n checkboxes.forEach((input) => input?.setCustomValidity?.(\"\"));\n const invalidInput = this.$el.querySelector(selector + \":invalid\");\n if (invalidInput) {\n invalidInput.setCustomValidity(this.blockedTitle);\n invalidInput.scrollIntoView({ behavior: \"instant\", block: \"center\" });\n }\n },\n onSelectAllNew(selected) {\n if (selected) {\n logger.debug(\"Selected all new files\");\n this.newSelected = this.conflicts;\n } else {\n logger.debug(\"Cleared new selection\");\n this.newSelected = [];\n }\n },\n onSelectAllOld(selected) {\n if (selected) {\n logger.debug(\"Selected all existing files\");\n this.oldSelected = this.files;\n } else {\n logger.debug(\"Cleared old selection\");\n this.oldSelected = [];\n }\n },\n t\n }\n});\nvar _sfc_render = function render6() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"NcDialog\", { staticClass: \"conflict-picker\", attrs: { \"can-close\": \"\", \"data-cy-conflict-picker\": \"\", \"close-on-click-outside\": false, \"show\": _vm.opened, \"name\": _vm.name, \"size\": \"large\" }, on: { \"closing\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"actions\", fn: function() {\n return [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Cancel\"), \"title\": _vm.t(\"Cancel the entire operation\"), \"data-cy-conflict-picker-cancel\": \"\", \"type\": \"tertiary\" }, on: { \"click\": _vm.onCancel } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Cancel\")) + \" \")]), _c(\"span\", { staticClass: \"dialog__actions-separator\" }), _vm.isSingle ? [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Keep both\"), \"data-cy-conflict-picker-keep-both\": \"\", \"type\": \"secondary\" }, on: { \"click\": _vm.onKeepBoth } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Keep both\")) + \" \")]), _c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"Replace\"), \"data-cy-conflict-picker-submit\": \"\", \"type\": \"primary\" }, on: { \"click\": _vm.onReplace } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Replace\")) + \" \")])] : [_c(\"NcButton\", { attrs: { \"aria-label\": _vm.skipButtonLabel, \"data-cy-conflict-picker-skip\": \"\" }, on: { \"click\": _vm.onSkip } }, [_vm._v(\" \" + _vm._s(_vm.skipButtonLabel) + \" \")]), _c(\"NcButton\", { class: { \"button-vue--disabled\": !_vm.isEnoughSelected }, attrs: { \"aria-label\": _vm.t(\"Continue\"), \"title\": _vm.isEnoughSelected ? \"\" : _vm.blockedTitle, \"data-cy-conflict-picker-submit\": \"\", \"native-type\": \"submit\", \"type\": \"primary\" }, on: { \"click\": function($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onSubmit.apply(null, arguments);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowRight\", { attrs: { \"size\": 20 } })];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Continue\")) + \" \")])]];\n }, proxy: true }]) }, [_c(\"div\", { staticClass: \"conflict-picker__header\" }, [_c(\"p\", { staticClass: \"conflict-picker__description\", attrs: { \"id\": \"conflict-picker-description\" } }, [_vm._v(\" \" + _vm._s(_vm.descriptionParts.before)), _c(\"strong\", [_vm._v(_vm._s(_vm.folderName))]), _vm._v(_vm._s(_vm.descriptionParts.after)), _c(\"br\"), !_vm.isSingle ? [_vm._v(\" \" + _vm._s(_vm.t(\"Existing files and folders will be deleted if not selected. If both are chosen, they will be renamed.\"))), _c(\"br\")] : _vm._e(), _vm.recursiveUpload ? [_vm._v(\" \" + _vm._s(_vm.t(\"When a new folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\")) + \" \")] : [_vm._v(\" \" + _vm._s(_vm.t(\"When a new folder is selected, any conflicting files within it will also be overwritten.\")) + \" \")]], 2)]), _c(\"form\", { ref: \"form\", staticClass: \"conflict-picker__form\", attrs: { \"aria-labelledby\": \"conflict-picker-description\", \"data-cy-conflict-picker-form\": \"\" }, on: { \"submit\": function($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onSubmit.apply(null, arguments);\n } } }, [!_vm.isSingle ? _c(\"fieldset\", { staticClass: \"conflict-picker__all\", attrs: { \"data-cy-conflict-picker-fieldset\": \"all\" } }, [_c(\"legend\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Select all checkboxes\")) + \" \")]), _c(\"NcCheckboxRadioSwitch\", _vm._b({ attrs: { \"data-cy-conflict-picker-input-existing\": \"all\" }, on: { \"update:checked\": _vm.onSelectAllOld } }, \"NcCheckboxRadioSwitch\", _vm.selectAllOldBind, false), [_vm._v(\" \" + _vm._s(_vm.t(\"Existing files\")) + \" \")]), _c(\"span\"), _c(\"NcCheckboxRadioSwitch\", _vm._b({ attrs: { \"data-cy-conflict-picker-input-incoming\": \"all\" }, on: { \"update:checked\": _vm.onSelectAllNew } }, \"NcCheckboxRadioSwitch\", _vm.selectAllNewBind, false), [_vm._v(\" \" + _vm._s(_vm.t(\"New files\")) + \" \")])], 1) : _vm._e(), _vm._l(_vm.files, function(node, index) {\n return _c(\"NodesPicker\", { key: node.fileid, ref: \"nodesPicker\", refInFor: true, attrs: { \"incoming\": _vm.conflicts[index], \"existing\": _vm.files[index], \"is-single\": _vm.isSingle, \"new-selected\": _vm.newSelected, \"old-selected\": _vm.oldSelected }, on: { \"update:newSelected\": function($event) {\n _vm.newSelected = $event;\n }, \"update:new-selected\": function($event) {\n _vm.newSelected = $event;\n }, \"update:oldSelected\": function($event) {\n _vm.oldSelected = $event;\n }, \"update:old-selected\": function($event) {\n _vm.oldSelected = $event;\n } } });\n })], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"4a4bdd42\"\n);\nconst ConflictPicker = __component__.exports;\nexport {\n ConflictPicker as default\n};\n//# sourceMappingURL=ConflictPicker-BRRUCIWm.mjs.map\n"],"names":["_sfc_main$5","_sfc_render$5","_vm","_c","$event","_sfc_staticRenderFns$5","__component__$5","normalizeComponent","ArrowRight","_sfc_main$4","_sfc_render$4","_sfc_staticRenderFns$4","__component__$4","FileSvg","_sfc_main$3","_sfc_render$3","_sfc_staticRenderFns$3","__component__$3","FolderSvg","_sfc_main$2","defineComponent","NcDateTime","formatFileSize","t","_sfc_render$2","_sfc_staticRenderFns$2","__component__$2","NodePickerCard","PREVIEW_SIZE","_sfc_main$1","NcCheckboxRadioSwitch","isFileSystemFileEntry","resolve","reject","value","other","node","url","FileType","previewUrl","generateUrl","etag","isFileSystemEntry","selected","checked","file","reader","e","result","blob","_sfc_render$1","_sfc_staticRenderFns$1","__component__$1","NodesPicker","_sfc_main","NcButton","NcDialog","basename","message","before","after","n","label","picker","conflict","name","error","logger","showError","selectedOldNames","directoryContent","renamed","toRename","newName","getUniqueName","selector","input","invalidInput","_sfc_render","index","_sfc_staticRenderFns","__component__","ConflictPicker"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/js/FaceContent-BJijunbq.chunk.mjs b/js/FaceContent-CIurv2o6.chunk.mjs similarity index 93% rename from js/FaceContent-BJijunbq.chunk.mjs rename to js/FaceContent-CIurv2o6.chunk.mjs index 71d155622..cb9f2b6ef 100644 --- a/js/FaceContent-BJijunbq.chunk.mjs +++ b/js/FaceContent-CIurv2o6.chunk.mjs @@ -1,2 +1,2 @@ -import{k as n,a as i,V as c}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as l,b as r}from"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import{N as f,l as s,x as a}from"./index-msNec4Xs.chunk.mjs";import{N as d}from"./NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs";import{N as h}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as u}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{f as m,g as p,e as F,h as v,i as g,A as _,C as y,j as N,S as w,a as C,c as M,n as k}from"./icons-Du8Q1knx.chunk.mjs";import{F as S}from"./FaceMergeForm-CXfxVDPY.chunk.mjs";import{F as I}from"./FileComponent-CYcuW4fI.chunk.mjs";import{F as A,a as $}from"./FilesSelectionMixin-_WfmSvdO.chunk.mjs";import{F as x}from"./FaceCover-BZKfSTyN.chunk.mjs";import{F as R}from"./FetchFilesMixin-iD4CZ3rf.chunk.mjs";import"./video-DVVFoi8e.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./NcModal-BX64wQqg.chunk.mjs";import"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import"./NcIconToggleSwitch-CaDISrhm-8yJ7ws72.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./fileFetcher-CoIlTdaG.chunk.mjs";import"./he-qSystlHf.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";import"./PhotoSearch-0kWeTDCB.chunk.mjs";const B={name:"FaceContent",components:{PencilOutline:M,Star:C,StarOutline:w,Download:N,Close:y,AlertCircleOutline:_,SendOutline:g,Merge:v,ArrowLeft:F,AccountBoxMultipleOutline:p,FaceMergeForm:S,FilesListViewer:$,FileComponent:I,NcLoadingIcon:u,NcEmptyContent:h,NcActions:r,NcActionButton:l,NcDialog:d,NcButton:f,AccountSwitchOutline:m},directives:{focus(e){c.nextTick(()=>e.focus())}},mixins:[x,R,A],props:{faceName:{type:String,default:"/"}},data(){return{showMoveModal:!1,showMergeModal:!1,showRenameModal:!1,loadingCount:0,appContent:document.getElementById("app-content-vue")}},computed:{files(){return this.$store.state.files.files},facesFiles(){return this.$store.state.faces.facesFiles},face(){return this.faces[this.faceName]},faceFileIds(){return this.facesFiles[this.faceName]||[]},shouldFavoriteSelection(){return this.selectedFileIds.some(e=>this.$store.state.files.files[e].attributes.favorite===0)}},watch:{face(){this.face&&this.fetchFaceContent(this.faceName)}},mounted(){this.fetchFaceContent(this.faceName)},methods:{openViewer(e){window.OCA.Viewer.open({fileInfo:a(this.files[e]),list:this.faceFileIds.map(t=>a(this.files[t]))})},async handleRemoveFilesFromFace(e){try{this.loadingCount++,await this.$store.dispatch("removeFilesFromFace",{faceName:this.faceName,fileIdsToRemove:e}),this.resetSelection()}catch(t){s.error(t)}finally{this.loadingCount--}},async handleDeleteFace(){try{this.loadingCount++,await this.$store.dispatch("deleteFace",{faceName:this.faceName}),this.$router.push("/faces")}catch(e){s.error(e)}finally{this.loadingCount--}},async handleRenameFace(e){try{this.loadingCount++,this.showRenameModal=!1;const t=this.faceName;await this.$store.dispatch("renameFace",{oldName:t,faceName:e}),this.$router.push({name:"facecontent",params:{faceName:e}})}catch(t){s.error(t)}finally{this.loadingCount--}},async handleMerge(e){try{this.loadingCount++,await this.$store.dispatch("moveFilesToFace",{oldFace:this.faceName,faceName:e,fileIdsToMove:this.facesFiles[this.faceName]}),await this.$store.dispatch("deleteFace",{faceName:this.faceName}),this.showMergeModal=!1,this.$router.push({name:"facecontent",params:{faceName:e}})}catch(t){s.error(t)}finally{this.loadingCount--}},async handleMove(e,t){try{this.loadingCount++,await this.$store.dispatch("moveFilesToFace",{oldFace:this.faceName,faceName:e,fileIdsToMove:t}),this.showMoveModal=!1}catch(o){s.error(o)}finally{this.loadingCount--}},async favoriteSelection(){try{this.loadingCount++,await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:!0})}catch(e){s.error(e)}finally{this.loadingCount--}},async unFavoriteSelection(){try{this.loadingCount++,await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:!1})}catch(e){s.error(e)}finally{this.loadingCount--}},async downloadSelection(){try{this.loadingCount++,await this.$store.dispatch("downloadFiles",this.selectedFileIds)}catch(e){s.error(e)}finally{this.loadingCount--}},t:i,n}};var O=function(){var e=this,t=e._self._c;return e.face===void 0&&!e.loadingFiles&&!e.loadingFaces?t("NcEmptyContent",{staticClass:"empty-content-with-illustration",scopedSlots:e._u([{key:"icon",fn:function(){return[t("AccountBoxMultipleOutline")]},proxy:!0}],null,!1,2861705255)},[e._v(" "+e._s(e.t("photos","This person could not be found"))+" ")]):e.errorFetchingFiles||e.errorFetchingFaces?t("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[t("AlertCircleOutline")]},proxy:!0}])},[e._v(" "+e._s(e.t("photos","An error occurred"))+" ")]):t("div",{staticClass:"face"},[t("div",{staticClass:"face__header"},[t("div",{staticClass:"face__header__left"},[t("NcActions",[t("NcActionButton",{on:{click:function(o){return e.$router.push("/faces/")}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeft")]},proxy:!0}])},[e._v(e._s(e.t("photos","Back"))+" ")])],1),t("div",{staticClass:"face__header__title"},[e.face!==void 0?t("h2",{staticClass:"face-name",class:{"hidden-visually":e.face.basename.match(/^[0-9]+$/)}},[e._v(" "+e._s(e.face.basename)+" ")]):e._e()]),e.loadingCount>0||e.loadingFaces?t("NcLoadingIcon"):e._e()],1),e.face!==void 0?t("div",{staticClass:"face__header__actions"},[t("NcActions",[t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Rename person")},on:{click:function(o){e.showRenameModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("PencilOutline")]},proxy:!0}],null,!1,347985790)},[e._v(" "+e._s(e.t("photos","Rename person"))+" ")])],1),t("NcActions",{attrs:{"force-menu":!0}},[Object.keys(e.faces).length>1?t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Merge with different person")},on:{click:function(o){e.showMergeModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Merge")]},proxy:!0}],null,!1,3117189691)},[e._v(" "+e._s(e.t("photos","Merge with different person"))+" ")]):e._e(),e.selectedFileIds.length?[t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Download selected files")},on:{click:e.downloadSelection}},[t("Download",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Download selected photos"))+" ")],1),e.shouldFavoriteSelection?t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Mark selection as favorite")},on:{click:e.favoriteSelection}},[t("StarOutline",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Favorite"))+" ")],1):t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Remove selection from favorites")},on:{click:e.unFavoriteSelection}},[t("Star",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Remove from favorites"))+" ")],1),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(o){e.showMoveModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("AccountSwitchOutline")]},proxy:!0}],null,!1,1476410576)},[e._v(" "+e._s(e.n("photos","Move photo to a different person","Move photos to a different person",e.selectedFileIds.length))+" ")]),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(o){return e.handleRemoveFilesFromFace(e.selectedFileIds)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Close")]},proxy:!0}],null,!1,1051939733)},[e._v(" "+e._s(e.n("photos","Remove photo from person","Remove photos from person",e.selectedFileIds.length))+" ")])]:e._e(),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:e.handleDeleteFace},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Close")]},proxy:!0}],null,!1,1051939733)},[e._v(" "+e._s(e.t("photos","Remove person"))+" ")])],2)],1):e._e()]),e.face!==void 0?t("FilesListViewer",{staticClass:"face__photos",attrs:{"container-element":e.appContent,"file-ids":e.faceFileIds,loading:e.loadingFiles||e.loadingFaces},scopedSlots:e._u([{key:"default",fn:function({file:o}){return t("FileComponent",{attrs:{file:e.files[o.id],"allow-selection":!0,selected:e.selection[o.id]===!0},on:{click:e.openViewer,"select-toggled":e.onFileSelectToggle}})}}],null,!1,3208665420)}):e._e(),e.showRenameModal?t("NcDialog",{attrs:{name:e.t("photos","Rename person"),"close-on-click-outside":"",size:"small"},on:{closing:function(o){e.showRenameModal=!1}},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{"aria-label":e.t("photos","Save."),variant:"primary",disabled:e.$refs.nameInput&&e.$refs.nameInput.value.trim()===""},on:{click:function(o){return e.handleRenameFace(e.$refs.nameInput.value)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingCount?t("NcLoadingIcon"):t("SendOutline")]},proxy:!0}],null,!1,4093389955)},[e._v(" "+e._s(e.t("photos","Save"))+" ")])]},proxy:!0}],null,!1,1503261394)},[t("div",{staticClass:"rename-form"},[t("input",{directives:[{name:"focus",rawName:"v-focus"}],ref:"nameInput",attrs:{type:"text",name:"name",required:"",placeholder:e.t("photos","Name of this person")},domProps:{value:e.faceName},on:{keydown:function(o){return!o.type.indexOf("key")&&e._k(o.keyCode,"enter",13,o.key,"Enter")?null:e.handleRenameFace(e.$refs.nameInput.value)}}})])]):e._e(),e.showMergeModal?t("NcDialog",{attrs:{name:e.t("photos","Merge person"),"close-on-click-outside":"",size:"normal"},on:{closing:function(o){e.showMergeModal=!1}}},[t("FaceMergeForm",{attrs:{"first-face":e.faceName},on:{select:function(o){return e.handleMerge(o)}}})],1):e._e(),e.showMoveModal?t("NcDialog",{attrs:{name:e.t("photos","Move to different person"),"close-on-click-outside":"",size:"normal"},on:{closing:function(o){e.showMoveModal=!1}}},[t("FaceMergeForm",{attrs:{"first-face":e.faceName},on:{select:function(o){return e.handleMove(o,e.selectedFileIds)}}})],1):e._e()],1)},b=[],D=k(B,O,b,!1,null,"e7556087");const ne=D.exports;export{ne as default}; -//# sourceMappingURL=FaceContent-BJijunbq.chunk.mjs.map +import{k as n,a as i,V as c}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as l,b as r}from"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import{N as f,l as s,x as a}from"./index-msNec4Xs.chunk.mjs";import{N as d}from"./NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs";import{N as h}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as u}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{f as m,g as p,e as F,h as v,i as g,A as _,C as y,j as N,S as w,a as C,c as M,n as k}from"./icons-DCSM00Rh.chunk.mjs";import{F as S}from"./FaceMergeForm-BsPjp4ll.chunk.mjs";import{F as I}from"./FileComponent-CIkKxlac.chunk.mjs";import{F as A,a as $}from"./FilesSelectionMixin-QyiriVe4.chunk.mjs";import{F as x}from"./FaceCover-aZGWm4v4.chunk.mjs";import{F as R}from"./FetchFilesMixin-iD4CZ3rf.chunk.mjs";import"./video-B2A2Ed33.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./NcModal-DnfAQoZ9.chunk.mjs";import"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import"./NcIconToggleSwitch-CaDISrhm-8yJ7ws72.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";import"./fileFetcher-CoIlTdaG.chunk.mjs";import"./he-qSystlHf.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";import"./PhotoSearch-0kWeTDCB.chunk.mjs";const B={name:"FaceContent",components:{PencilOutline:M,Star:C,StarOutline:w,Download:N,Close:y,AlertCircleOutline:_,SendOutline:g,Merge:v,ArrowLeft:F,AccountBoxMultipleOutline:p,FaceMergeForm:S,FilesListViewer:$,FileComponent:I,NcLoadingIcon:u,NcEmptyContent:h,NcActions:r,NcActionButton:l,NcDialog:d,NcButton:f,AccountSwitchOutline:m},directives:{focus(e){c.nextTick(()=>e.focus())}},mixins:[x,R,A],props:{faceName:{type:String,default:"/"}},data(){return{showMoveModal:!1,showMergeModal:!1,showRenameModal:!1,loadingCount:0,appContent:document.getElementById("app-content-vue")}},computed:{files(){return this.$store.state.files.files},facesFiles(){return this.$store.state.faces.facesFiles},face(){return this.faces[this.faceName]},faceFileIds(){return this.facesFiles[this.faceName]||[]},shouldFavoriteSelection(){return this.selectedFileIds.some(e=>this.$store.state.files.files[e].attributes.favorite===0)}},watch:{face(){this.face&&this.fetchFaceContent(this.faceName)}},mounted(){this.fetchFaceContent(this.faceName)},methods:{openViewer(e){window.OCA.Viewer.open({fileInfo:a(this.files[e]),list:this.faceFileIds.map(t=>a(this.files[t]))})},async handleRemoveFilesFromFace(e){try{this.loadingCount++,await this.$store.dispatch("removeFilesFromFace",{faceName:this.faceName,fileIdsToRemove:e}),this.resetSelection()}catch(t){s.error(t)}finally{this.loadingCount--}},async handleDeleteFace(){try{this.loadingCount++,await this.$store.dispatch("deleteFace",{faceName:this.faceName}),this.$router.push("/faces")}catch(e){s.error(e)}finally{this.loadingCount--}},async handleRenameFace(e){try{this.loadingCount++,this.showRenameModal=!1;const t=this.faceName;await this.$store.dispatch("renameFace",{oldName:t,faceName:e}),this.$router.push({name:"facecontent",params:{faceName:e}})}catch(t){s.error(t)}finally{this.loadingCount--}},async handleMerge(e){try{this.loadingCount++,await this.$store.dispatch("moveFilesToFace",{oldFace:this.faceName,faceName:e,fileIdsToMove:this.facesFiles[this.faceName]}),await this.$store.dispatch("deleteFace",{faceName:this.faceName}),this.showMergeModal=!1,this.$router.push({name:"facecontent",params:{faceName:e}})}catch(t){s.error(t)}finally{this.loadingCount--}},async handleMove(e,t){try{this.loadingCount++,await this.$store.dispatch("moveFilesToFace",{oldFace:this.faceName,faceName:e,fileIdsToMove:t}),this.showMoveModal=!1}catch(o){s.error(o)}finally{this.loadingCount--}},async favoriteSelection(){try{this.loadingCount++,await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:!0})}catch(e){s.error(e)}finally{this.loadingCount--}},async unFavoriteSelection(){try{this.loadingCount++,await this.$store.dispatch("toggleFavoriteForFiles",{fileIds:this.selectedFileIds,favoriteState:!1})}catch(e){s.error(e)}finally{this.loadingCount--}},async downloadSelection(){try{this.loadingCount++,await this.$store.dispatch("downloadFiles",this.selectedFileIds)}catch(e){s.error(e)}finally{this.loadingCount--}},t:i,n}};var O=function(){var e=this,t=e._self._c;return e.face===void 0&&!e.loadingFiles&&!e.loadingFaces?t("NcEmptyContent",{staticClass:"empty-content-with-illustration",scopedSlots:e._u([{key:"icon",fn:function(){return[t("AccountBoxMultipleOutline")]},proxy:!0}],null,!1,2861705255)},[e._v(" "+e._s(e.t("photos","This person could not be found"))+" ")]):e.errorFetchingFiles||e.errorFetchingFaces?t("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[t("AlertCircleOutline")]},proxy:!0}])},[e._v(" "+e._s(e.t("photos","An error occurred"))+" ")]):t("div",{staticClass:"face"},[t("div",{staticClass:"face__header"},[t("div",{staticClass:"face__header__left"},[t("NcActions",[t("NcActionButton",{on:{click:function(o){return e.$router.push("/faces/")}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeft")]},proxy:!0}])},[e._v(e._s(e.t("photos","Back"))+" ")])],1),t("div",{staticClass:"face__header__title"},[e.face!==void 0?t("h2",{staticClass:"face-name",class:{"hidden-visually":e.face.basename.match(/^[0-9]+$/)}},[e._v(" "+e._s(e.face.basename)+" ")]):e._e()]),e.loadingCount>0||e.loadingFaces?t("NcLoadingIcon"):e._e()],1),e.face!==void 0?t("div",{staticClass:"face__header__actions"},[t("NcActions",[t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Rename person")},on:{click:function(o){e.showRenameModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("PencilOutline")]},proxy:!0}],null,!1,347985790)},[e._v(" "+e._s(e.t("photos","Rename person"))+" ")])],1),t("NcActions",{attrs:{"force-menu":!0}},[Object.keys(e.faces).length>1?t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Merge with different person")},on:{click:function(o){e.showMergeModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Merge")]},proxy:!0}],null,!1,3117189691)},[e._v(" "+e._s(e.t("photos","Merge with different person"))+" ")]):e._e(),e.selectedFileIds.length?[t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Download selected files")},on:{click:e.downloadSelection}},[t("Download",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Download selected photos"))+" ")],1),e.shouldFavoriteSelection?t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Mark selection as favorite")},on:{click:e.favoriteSelection}},[t("StarOutline",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Favorite"))+" ")],1):t("NcActionButton",{attrs:{"close-after-click":!0,"aria-label":e.t("photos","Remove selection from favorites")},on:{click:e.unFavoriteSelection}},[t("Star",{attrs:{slot:"icon"},slot:"icon"}),e._v(" "+e._s(e.t("photos","Remove from favorites"))+" ")],1),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(o){e.showMoveModal=!0}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("AccountSwitchOutline")]},proxy:!0}],null,!1,1476410576)},[e._v(" "+e._s(e.n("photos","Move photo to a different person","Move photos to a different person",e.selectedFileIds.length))+" ")]),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(o){return e.handleRemoveFilesFromFace(e.selectedFileIds)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Close")]},proxy:!0}],null,!1,1051939733)},[e._v(" "+e._s(e.n("photos","Remove photo from person","Remove photos from person",e.selectedFileIds.length))+" ")])]:e._e(),t("NcActionButton",{attrs:{"close-after-click":!0},on:{click:e.handleDeleteFace},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Close")]},proxy:!0}],null,!1,1051939733)},[e._v(" "+e._s(e.t("photos","Remove person"))+" ")])],2)],1):e._e()]),e.face!==void 0?t("FilesListViewer",{staticClass:"face__photos",attrs:{"container-element":e.appContent,"file-ids":e.faceFileIds,loading:e.loadingFiles||e.loadingFaces},scopedSlots:e._u([{key:"default",fn:function({file:o}){return t("FileComponent",{attrs:{file:e.files[o.id],"allow-selection":!0,selected:e.selection[o.id]===!0},on:{click:e.openViewer,"select-toggled":e.onFileSelectToggle}})}}],null,!1,3208665420)}):e._e(),e.showRenameModal?t("NcDialog",{attrs:{name:e.t("photos","Rename person"),"close-on-click-outside":"",size:"small"},on:{closing:function(o){e.showRenameModal=!1}},scopedSlots:e._u([{key:"actions",fn:function(){return[t("NcButton",{attrs:{"aria-label":e.t("photos","Save."),variant:"primary",disabled:e.$refs.nameInput&&e.$refs.nameInput.value.trim()===""},on:{click:function(o){return e.handleRenameFace(e.$refs.nameInput.value)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingCount?t("NcLoadingIcon"):t("SendOutline")]},proxy:!0}],null,!1,4093389955)},[e._v(" "+e._s(e.t("photos","Save"))+" ")])]},proxy:!0}],null,!1,1503261394)},[t("div",{staticClass:"rename-form"},[t("input",{directives:[{name:"focus",rawName:"v-focus"}],ref:"nameInput",attrs:{type:"text",name:"name",required:"",placeholder:e.t("photos","Name of this person")},domProps:{value:e.faceName},on:{keydown:function(o){return!o.type.indexOf("key")&&e._k(o.keyCode,"enter",13,o.key,"Enter")?null:e.handleRenameFace(e.$refs.nameInput.value)}}})])]):e._e(),e.showMergeModal?t("NcDialog",{attrs:{name:e.t("photos","Merge person"),"close-on-click-outside":"",size:"normal"},on:{closing:function(o){e.showMergeModal=!1}}},[t("FaceMergeForm",{attrs:{"first-face":e.faceName},on:{select:function(o){return e.handleMerge(o)}}})],1):e._e(),e.showMoveModal?t("NcDialog",{attrs:{name:e.t("photos","Move to different person"),"close-on-click-outside":"",size:"normal"},on:{closing:function(o){e.showMoveModal=!1}}},[t("FaceMergeForm",{attrs:{"first-face":e.faceName},on:{select:function(o){return e.handleMove(o,e.selectedFileIds)}}})],1):e._e()],1)},b=[],D=k(B,O,b,!1,null,"e7556087");const ne=D.exports;export{ne as default}; +//# sourceMappingURL=FaceContent-CIurv2o6.chunk.mjs.map diff --git a/js/FaceContent-BJijunbq.chunk.mjs.license b/js/FaceContent-CIurv2o6.chunk.mjs.license similarity index 100% rename from js/FaceContent-BJijunbq.chunk.mjs.license rename to js/FaceContent-CIurv2o6.chunk.mjs.license diff --git a/js/FaceContent-BJijunbq.chunk.mjs.map b/js/FaceContent-CIurv2o6.chunk.mjs.map similarity index 99% rename from js/FaceContent-BJijunbq.chunk.mjs.map rename to js/FaceContent-CIurv2o6.chunk.mjs.map index 9ce3b13af..52c3e768a 100644 --- a/js/FaceContent-BJijunbq.chunk.mjs.map +++ b/js/FaceContent-CIurv2o6.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FaceContent-BJijunbq.chunk.mjs","sources":["../src/views/FaceContent.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","PencilOutline","Star","StarOutline","Download","Close","AlertCircleOutline","SendOutline","Merge","ArrowLeft","AccountBoxMultipleOutline","FaceMergeForm","FilesListViewer","FileComponent","NcLoadingIcon","NcEmptyContent","NcActions","NcActionButton","NcDialog","NcButton","AccountSwitchOutline","el","Vue","FetchFacesMixin","FetchFilesMixin","FilesSelectionMixin","fileId","toViewerFileInfo","fileIds","error","logger","faceName","oldName","t","i"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"FaceContent-CIurv2o6.chunk.mjs","sources":["../src/views/FaceContent.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","PencilOutline","Star","StarOutline","Download","Close","AlertCircleOutline","SendOutline","Merge","ArrowLeft","AccountBoxMultipleOutline","FaceMergeForm","FilesListViewer","FileComponent","NcLoadingIcon","NcEmptyContent","NcActions","NcActionButton","NcDialog","NcButton","AccountSwitchOutline","el","Vue","FetchFacesMixin","FetchFilesMixin","FilesSelectionMixin","fileId","toViewerFileInfo","fileIds","error","logger","faceName","oldName","t","i"],"mappings":"wvCAwNA,MAAAA,EAAA,CACA,KAAA,cACA,WAAA,CACA,cAAAC,EACA,KAAAC,EACA,YAAAC,EAAA,SACAC,EACA,MAAAC,EACA,mBAAAC,EACA,YAAAC,EACA,MAAAC,EACA,UAAAC,EACA,0BAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,cAAAC,EACA,eAAAC,EACA,UAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,qBAAAC,CAAA,EAGA,WAAA,CACA,MAAAC,EAAA,CACAC,EAAA,SAAA,IAAAD,EAAA,MAAA,CAAA,CACA,CAAA,EAGA,OAAA,CACAE,EACAC,EACAC,CAAA,EAGA,MAAA,CACA,SAAA,CACA,KAAA,OACA,QAAA,GAAA,CACA,EAGA,MAAA,CACA,MAAA,CACA,cAAA,GACA,eAAA,GACA,gBAAA,GACA,aAAA,EACA,WAAA,SAAA,eAAA,iBAAA,CAAA,CAEA,EAEA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,YAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,UACA,EAEA,MAAA,CACA,OAAA,KAAA,MAAA,KAAA,QAAA,CACA,EAEA,aAAA,CACA,OAAA,KAAA,WAAA,KAAA,QAAA,GAAA,CAAA,CACA,EAEA,yBAAA,CAEA,OAAA,KAAA,gBAAA,KAAAC,GAAA,KAAA,OAAA,MAAA,MAAA,MAAAA,CAAA,EAAA,WAAA,WAAA,CAAA,CACA,CAAA,EAGA,MAAA,CACA,MAAA,CACA,KAAA,MACA,KAAA,iBAAA,KAAA,QAAA,CAEA,CAAA,EAGA,SAAA,CACA,KAAA,iBAAA,KAAA,QAAA,CACA,EAEA,QAAA,CACA,WAAAA,EAAA,CACA,OAAA,IAAA,OAAA,KAAA,CACA,SAAAC,EAAA,KAAA,MAAAD,CAAA,CAAA,EACA,KAAA,KAAA,YAAA,IAAAA,GAAAC,EAAA,KAAA,MAAAD,CAAA,CAAA,CAAA,CAAA,CACA,CACA,EAEA,MAAA,0BAAAE,EAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,sBAAA,CAAA,SAAA,KAAA,SAAA,gBAAAA,EAAA,EACA,KAAA,eAAA,CACA,OAAAC,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,kBAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,aAAA,CAAA,SAAA,KAAA,SAAA,EACA,KAAA,QAAA,KAAA,QAAA,CACA,OAAAA,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,iBAAAE,EAAA,CACA,GAAA,CACA,KAAA,eACA,KAAA,gBAAA,GACA,MAAAC,EAAA,KAAA,SACA,MAAA,KAAA,OAAA,SAAA,aAAA,CAAA,QAAAA,EAAA,SAAAD,EAAA,EACA,KAAA,QAAA,KAAA,CAAA,KAAA,cAAA,OAAA,CAAA,SAAAA,CAAA,EAAA,CACA,OAAAF,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,YAAAE,EAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,kBAAA,CAAA,QAAA,KAAA,SAAA,SAAAA,EAAA,cAAA,KAAA,WAAA,KAAA,QAAA,EAAA,EACA,MAAA,KAAA,OAAA,SAAA,aAAA,CAAA,SAAA,KAAA,SAAA,EACA,KAAA,eAAA,GACA,KAAA,QAAA,KAAA,CAAA,KAAA,cAAA,OAAA,CAAA,SAAAA,CAAA,EAAA,CACA,OAAAF,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,WAAAE,EAAAH,EAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,kBAAA,CAAA,QAAA,KAAA,SAAA,SAAAG,EAAA,cAAAH,CAAA,CAAA,EACA,KAAA,cAAA,EACA,OAAAC,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,mBAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,GAAA,CACA,OAAAA,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,qBAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,yBAAA,CAAA,QAAA,KAAA,gBAAA,cAAA,GAAA,CACA,OAAAA,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAEA,MAAA,mBAAA,CACA,GAAA,CACA,KAAA,eACA,MAAA,KAAA,OAAA,SAAA,gBAAA,KAAA,eAAA,CACA,OAAAA,EAAA,CACAC,EAAA,MAAAD,CAAA,CACA,QAAA,CACA,KAAA,cACA,CACA,EAAA,EAEAI,EAAAC,CACA,CAEA"} \ No newline at end of file diff --git a/js/FaceCover-BZKfSTyN.chunk.mjs b/js/FaceCover-aZGWm4v4.chunk.mjs similarity index 97% rename from js/FaceCover-BZKfSTyN.chunk.mjs rename to js/FaceCover-aZGWm4v4.chunk.mjs index b2635d9dc..95f160bf4 100644 --- a/js/FaceCover-BZKfSTyN.chunk.mjs +++ b/js/FaceCover-aZGWm4v4.chunk.mjs @@ -1,2 +1,2 @@ -import{d as u,p as c,r as f,a as F,k as p,n as m}from"./preload-helper-B1hyiFAx.chunk.mjs";import{h as o}from"./he-qSystlHf.chunk.mjs";import{d as l,b as h,l as n,s as v}from"./index-msNec4Xs.chunk.mjs";import{A as $}from"./AbortControllerMixin-QihggCn5.chunk.mjs";import{n as b}from"./icons-Du8Q1knx.chunk.mjs";const _=u({name:"FaceCoverMixin",computed:{files(){return this.$store.state.files.files},faces(){return this.$store.state.faces.faces},facesFiles(){return this.$store.state.faces.facesFiles}},methods:{getFaceCover(e){return JSON.parse(o.decode(this.faces[e].attributes["face-preview-image"]||"{}"))},getCoverStyle(e){const s=this.getFaceCover(e);if(!s||!s.detection)return{};const t=s.detection,r=Math.max(1,1/t.width*.4),a=(t.x+t.width/2)*100,i=(t.y+t.height/2)*100;return{width:"100%",transform:`translate(calc( var(--photos-face-width)/2 - ${a}% ), calc( var(--photos-face-width)/2 - ${i}% )) scale(${r})`,transformOrigin:`${a}% ${i}%`}}}}),d=["","","",""],C=u({name:"FetchFacesMixin",data(){return{errorFetchingFaces:null,loadingFaces:!1,errorFetchingFiles:null,loadingFiles:!1}},mixins:[$],async beforeMount(){this.fetchFaces()},computed:{faces(){return this.$store.state.faces.faces}},methods:{async fetchFaces(){if(!this.loadingFaces&&!Object.keys(this.faces).length)try{this.loadingFaces=!0,this.errorFetchingFaces=null;const{data:e}=await l.getDirectoryContents(`/recognize/${c()?.uid}/faces/`,{data:h(d),details:!0,signal:this.abortController.signal}),s=e.map(t=>f(t,`/recognize/${c()?.uid}/faces/`));this.$store.dispatch("addFaces",{faces:s}),n.debug(`[FetchFacesMixin] Fetched ${s.length} new faces: `,{fetchedFace:s})}catch(e){e.response?.status===404?this.errorFetchingFaces=404:this.errorFetchingFaces=e,n.error(F("photos","Failed to fetch faces list."),{error:e}),v(F("photos","Failed to fetch faces list."))}finally{this.loadingFaces=!1}},async fetchFaceContent(e,s){if(!this.loadingFiles&&!(!s&&this.facesFiles[e]&&this.facesFiles[e].length))try{this.errorFetchingFiles=null,this.loadingFiles=!0;const{data:t}=await l.getDirectoryContents(`/recognize/${c()?.uid}/faces/${e}`,{data:h(d),details:!0,signal:this.abortController.signal}),r=t.map(i=>({...i,filename:o.decode(i.props?.realpath).replace(`/${c()?.uid}/files`,`/files/${c()?.uid}`)})).map(i=>{const g=f(i);return g.attributes["face-detections"]=JSON.parse(o.decode(i.props?.["face-detections"])),g}),a=r.map(i=>i.fileid?.toString());this.$store.dispatch("appendFiles",r),r.length>0&&await this.$store.commit("addFilesToFace",{faceName:e,fileIdsToAdd:a}),n.debug(`[FetchFacesMixin] Fetched ${a.length} new files: `,{fileIds:a})}catch(t){t.response?.status===404?this.errorFetchingFaces=404:this.errorFetchingFaces=t,n.error("Error fetching face files",{error:t})}finally{this.loadingFiles=!1}},async fetchUnassignedFaces(e){if(!this.loadingFiles&&!(!e&&this.unassignedFiles&&this.unassignedFiles.length))try{this.errorFetchingFiles=null,this.loadingFiles=!0;const{data:s}=await l.getDirectoryContents(`/recognize/${c()?.uid}/unassigned-faces`,{data:h(d),details:!0,signal:this.abortController.signal}),t=s.map(a=>({...a,filename:o.decode(a.props?.realpath).replace(`/${c()?.uid}/files`,`/files/${c()?.uid}`)})).map(a=>{const i=f(a);return i.attributes["face-detections"]=JSON.parse(o.decode(a.props?.["face-detections"])),i}),r=[...new Set(t.map(a=>""+a.fileid))];this.$store.dispatch("appendFiles",t),t.length>0&&await this.$store.commit("addUnassignedFiles",{fileIdsToAdd:r}),n.debug(`[FetchFacesMixin] Fetched ${r.length} new unassigned files: `,{fileIds:r})}catch(s){s.response?.status===404?this.errorFetchingFaces=404:this.errorFetchingFaces=s,n.error("Error fetching unassigned files",{error:s})}finally{this.loadingFiles=!1}},async fetchUnassignedFacesCount(){try{const{data:e}=await l.stat(`/recognize/${c()?.uid}/unassigned-faces`,{data:h(d),details:!0,signal:this.abortController.signal}),s=Number(e.props?.nbItems);await this.$store.commit("setUnassignedFilesCount",s),n.debug("[FetchFacesMixin] Fetched unassigned files count: ",{count:s})}catch(e){n.error("Error fetching unassigned files count",{error:e})}}}}),y={name:"FaceCover",mixins:[C,_],props:{baseName:{type:String,required:!0},small:{type:Boolean,default:!1}},data(){return{observer:null}},computed:{files(){return this.$store.state.files.files},faces(){return this.$store.state.faces.faces},facesFiles(){return this.$store.state.faces.facesFiles},face(){return this.faces[this.baseName]},coverUrl(){return this.cover?m(`/apps/photos/api/v1/preview/${this.cover.fileid}?x=512&y=512`):""},cover(){return this.getFaceCover(this.face.basename)},coverDimensions(){return this.cover?this.getCoverStyle(this.face.basename):{}}},methods:{n:p}};var w=function(){var e=this,s=e._self._c;return s("div",{staticClass:"face-cover",class:[e.small&&"face-cover--small"],on:{click:function(t){return e.$emit("click")}}},[s("div",{staticClass:"face-cover__crop-container"},[s("img",{ref:"image",staticClass:"face-cover__image",style:e.coverDimensions,attrs:{src:e.coverUrl}})]),s("div",{staticClass:"face-cover__details"},[e.baseName.match(/^[0-9]+$/)?e._e():s("div",{staticClass:"face-cover__details__first-line"},[s("span",{staticClass:"face-cover__details__name"},[e._v(" "+e._s(e.baseName)+" ")])]),e.small?e._e():s("div",{staticClass:"face-cover__details__second-line"},[e._v(" "+e._s(e.n("photos","%n photos","%n photos",e.face.attributes.nbItems))+" ")])])])},x=[],M=b(y,w,x,!1,null,"215ef5db");const D=M.exports;export{C as F,_ as a,D as b}; -//# sourceMappingURL=FaceCover-BZKfSTyN.chunk.mjs.map +import{d as u,p as c,r as f,a as F,k as p,n as m}from"./preload-helper-B1hyiFAx.chunk.mjs";import{h as o}from"./he-qSystlHf.chunk.mjs";import{d as l,b as h,l as n,s as v}from"./index-msNec4Xs.chunk.mjs";import{A as $}from"./AbortControllerMixin-QihggCn5.chunk.mjs";import{n as b}from"./icons-DCSM00Rh.chunk.mjs";const _=u({name:"FaceCoverMixin",computed:{files(){return this.$store.state.files.files},faces(){return this.$store.state.faces.faces},facesFiles(){return this.$store.state.faces.facesFiles}},methods:{getFaceCover(e){return JSON.parse(o.decode(this.faces[e].attributes["face-preview-image"]||"{}"))},getCoverStyle(e){const s=this.getFaceCover(e);if(!s||!s.detection)return{};const t=s.detection,r=Math.max(1,1/t.width*.4),a=(t.x+t.width/2)*100,i=(t.y+t.height/2)*100;return{width:"100%",transform:`translate(calc( var(--photos-face-width)/2 - ${a}% ), calc( var(--photos-face-width)/2 - ${i}% )) scale(${r})`,transformOrigin:`${a}% ${i}%`}}}}),d=["","","",""],C=u({name:"FetchFacesMixin",data(){return{errorFetchingFaces:null,loadingFaces:!1,errorFetchingFiles:null,loadingFiles:!1}},mixins:[$],async beforeMount(){this.fetchFaces()},computed:{faces(){return this.$store.state.faces.faces}},methods:{async fetchFaces(){if(!this.loadingFaces&&!Object.keys(this.faces).length)try{this.loadingFaces=!0,this.errorFetchingFaces=null;const{data:e}=await l.getDirectoryContents(`/recognize/${c()?.uid}/faces/`,{data:h(d),details:!0,signal:this.abortController.signal}),s=e.map(t=>f(t,`/recognize/${c()?.uid}/faces/`));this.$store.dispatch("addFaces",{faces:s}),n.debug(`[FetchFacesMixin] Fetched ${s.length} new faces: `,{fetchedFace:s})}catch(e){e.response?.status===404?this.errorFetchingFaces=404:this.errorFetchingFaces=e,n.error(F("photos","Failed to fetch faces list."),{error:e}),v(F("photos","Failed to fetch faces list."))}finally{this.loadingFaces=!1}},async fetchFaceContent(e,s){if(!this.loadingFiles&&!(!s&&this.facesFiles[e]&&this.facesFiles[e].length))try{this.errorFetchingFiles=null,this.loadingFiles=!0;const{data:t}=await l.getDirectoryContents(`/recognize/${c()?.uid}/faces/${e}`,{data:h(d),details:!0,signal:this.abortController.signal}),r=t.map(i=>({...i,filename:o.decode(i.props?.realpath).replace(`/${c()?.uid}/files`,`/files/${c()?.uid}`)})).map(i=>{const g=f(i);return g.attributes["face-detections"]=JSON.parse(o.decode(i.props?.["face-detections"])),g}),a=r.map(i=>i.fileid?.toString());this.$store.dispatch("appendFiles",r),r.length>0&&await this.$store.commit("addFilesToFace",{faceName:e,fileIdsToAdd:a}),n.debug(`[FetchFacesMixin] Fetched ${a.length} new files: `,{fileIds:a})}catch(t){t.response?.status===404?this.errorFetchingFaces=404:this.errorFetchingFaces=t,n.error("Error fetching face files",{error:t})}finally{this.loadingFiles=!1}},async fetchUnassignedFaces(e){if(!this.loadingFiles&&!(!e&&this.unassignedFiles&&this.unassignedFiles.length))try{this.errorFetchingFiles=null,this.loadingFiles=!0;const{data:s}=await l.getDirectoryContents(`/recognize/${c()?.uid}/unassigned-faces`,{data:h(d),details:!0,signal:this.abortController.signal}),t=s.map(a=>({...a,filename:o.decode(a.props?.realpath).replace(`/${c()?.uid}/files`,`/files/${c()?.uid}`)})).map(a=>{const i=f(a);return i.attributes["face-detections"]=JSON.parse(o.decode(a.props?.["face-detections"])),i}),r=[...new Set(t.map(a=>""+a.fileid))];this.$store.dispatch("appendFiles",t),t.length>0&&await this.$store.commit("addUnassignedFiles",{fileIdsToAdd:r}),n.debug(`[FetchFacesMixin] Fetched ${r.length} new unassigned files: `,{fileIds:r})}catch(s){s.response?.status===404?this.errorFetchingFaces=404:this.errorFetchingFaces=s,n.error("Error fetching unassigned files",{error:s})}finally{this.loadingFiles=!1}},async fetchUnassignedFacesCount(){try{const{data:e}=await l.stat(`/recognize/${c()?.uid}/unassigned-faces`,{data:h(d),details:!0,signal:this.abortController.signal}),s=Number(e.props?.nbItems);await this.$store.commit("setUnassignedFilesCount",s),n.debug("[FetchFacesMixin] Fetched unassigned files count: ",{count:s})}catch(e){n.error("Error fetching unassigned files count",{error:e})}}}}),y={name:"FaceCover",mixins:[C,_],props:{baseName:{type:String,required:!0},small:{type:Boolean,default:!1}},data(){return{observer:null}},computed:{files(){return this.$store.state.files.files},faces(){return this.$store.state.faces.faces},facesFiles(){return this.$store.state.faces.facesFiles},face(){return this.faces[this.baseName]},coverUrl(){return this.cover?m(`/apps/photos/api/v1/preview/${this.cover.fileid}?x=512&y=512`):""},cover(){return this.getFaceCover(this.face.basename)},coverDimensions(){return this.cover?this.getCoverStyle(this.face.basename):{}}},methods:{n:p}};var w=function(){var e=this,s=e._self._c;return s("div",{staticClass:"face-cover",class:[e.small&&"face-cover--small"],on:{click:function(t){return e.$emit("click")}}},[s("div",{staticClass:"face-cover__crop-container"},[s("img",{ref:"image",staticClass:"face-cover__image",style:e.coverDimensions,attrs:{src:e.coverUrl}})]),s("div",{staticClass:"face-cover__details"},[e.baseName.match(/^[0-9]+$/)?e._e():s("div",{staticClass:"face-cover__details__first-line"},[s("span",{staticClass:"face-cover__details__name"},[e._v(" "+e._s(e.baseName)+" ")])]),e.small?e._e():s("div",{staticClass:"face-cover__details__second-line"},[e._v(" "+e._s(e.n("photos","%n photos","%n photos",e.face.attributes.nbItems))+" ")])])])},x=[],M=b(y,w,x,!1,null,"215ef5db");const D=M.exports;export{C as F,_ as a,D as b}; +//# sourceMappingURL=FaceCover-aZGWm4v4.chunk.mjs.map diff --git a/js/FaceCover-BZKfSTyN.chunk.mjs.license b/js/FaceCover-aZGWm4v4.chunk.mjs.license similarity index 100% rename from js/FaceCover-BZKfSTyN.chunk.mjs.license rename to js/FaceCover-aZGWm4v4.chunk.mjs.license diff --git a/js/FaceCover-BZKfSTyN.chunk.mjs.map b/js/FaceCover-aZGWm4v4.chunk.mjs.map similarity index 99% rename from js/FaceCover-BZKfSTyN.chunk.mjs.map rename to js/FaceCover-aZGWm4v4.chunk.mjs.map index bd7899c7d..a00588758 100644 --- a/js/FaceCover-BZKfSTyN.chunk.mjs.map +++ b/js/FaceCover-aZGWm4v4.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FaceCover-BZKfSTyN.chunk.mjs","sources":["../src/mixins/FaceCoverMixin.ts","../src/mixins/FetchFacesMixin.ts","../src/components/Faces/FaceCover.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport he from 'he'\nimport { defineComponent } from 'vue'\n\ntype Cover = {\n\tdetection: {\n\t\tx: number\n\t\ty: number\n\t\twidth: number\n\t\theight: number\n\t}\n}\n\nexport default defineComponent({\n\tname: 'FaceCoverMixin',\n\n\tcomputed: {\n\t\tfiles() {\n\t\t\treturn this.$store.state.files.files\n\t\t},\n\n\t\tfaces() {\n\t\t\treturn this.$store.state.faces.faces\n\t\t},\n\n\t\tfacesFiles() {\n\t\t\treturn this.$store.state.faces.facesFiles\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetFaceCover(faceName): Cover {\n\t\t\treturn JSON.parse(he.decode(this.faces[faceName].attributes['face-preview-image'] || '{}'))\n\t\t},\n\n\t\t/**\n\t\t * This will produce an inline style to apply to images\n\t\t * to zoom toward the detected face\n\t\t *\n\t\t * @param faceName\n\t\t */\n\t\tgetCoverStyle(faceName: string): Record | { transform: string, width: string, transformOrigin: string } {\n\t\t\tconst cover = this.getFaceCover(faceName)\n\t\t\tif (!cover || !cover.detection) {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t\tconst detection = cover.detection\n\n\t\t\t// Zoom into the picture so that the face fills the --photos-face-width box nicely\n\t\t\t// if the face is larger than the image, we don't zoom out (reason for the Math.max)\n\t\t\tconst zoom = Math.max(1, (1 / detection.width) * 0.4)\n\n\t\t\tconst horizontalCenterOfFace = (detection.x + detection.width / 2) * 100\n\t\t\tconst verticalCenterOfFace = (detection.y + detection.height / 2) * 100\n\n\t\t\treturn {\n\t\t\t\t// We assume that the image is inside a div with width: var(--photos-face-width)\n\t\t\t\twidth: '100%',\n\t\t\t\t// we translate the image so that the center of the detected face is in the center of the --photos-face-width box\n\t\t\t\t// and add the zoom\n\t\t\t\ttransform: `translate(calc( var(--photos-face-width)/2 - ${horizontalCenterOfFace}% ), calc( var(--photos-face-width)/2 - ${verticalCenterOfFace}% )) scale(${zoom})`,\n\t\t\t\t// this is necessary for the zoom to zoom toward the center of the face\n\t\t\t\ttransformOrigin: `${horizontalCenterOfFace}% ${verticalCenterOfFace}%`,\n\t\t\t}\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { File } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError } from '@nextcloud/dialogs'\nimport { resultToNode } from '@nextcloud/files/dav'\nimport { t } from '@nextcloud/l10n'\nimport he from 'he'\nimport { defineComponent } from 'vue'\nimport { davClient } from '../services/DavClient.ts'\nimport { getPropFind } from '../services/DavRequest.ts'\nimport logger from '../services/logger.js'\nimport AbortControllerMixin from './AbortControllerMixin.js'\n\nconst recognizeDAVProps = [\n\t'',\n\t'',\n\t'',\n\t'',\n]\n\ntype FaceNode = File & {\n\tattributes: {\n\t\t'face-detections': string\n\t\t'face-preview-image': string\n\t\trealpath: string\n\t}\n}\n\nexport default defineComponent({\n\tname: 'FetchFacesMixin',\n\n\tdata() {\n\t\treturn {\n\t\t\terrorFetchingFaces: null as null | number | Error | unknown,\n\t\t\tloadingFaces: false,\n\t\t\terrorFetchingFiles: null as null | number | Error | unknown,\n\t\t\tloadingFiles: false,\n\t\t}\n\t},\n\n\tmixins: [AbortControllerMixin],\n\n\tasync beforeMount() {\n\t\tthis.fetchFaces()\n\t},\n\n\tcomputed: {\n\t\tfaces() {\n\t\t\treturn this.$store.state.faces.faces\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync fetchFaces() {\n\t\t\tif (this.loadingFaces) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (Object.keys(this.faces).length) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.loadingFaces = true\n\t\t\t\tthis.errorFetchingFaces = null\n\n\t\t\t\tconst { data: fetchedRawFaces } = await davClient.getDirectoryContents(`/recognize/${getCurrentUser()?.uid}/faces/`, {\n\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\tdetails: true,\n\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t}) as ResponseDataDetailed\n\n\t\t\t\tconst fetchedFace = fetchedRawFaces.map((file) => resultToNode(file, `/recognize/${getCurrentUser()?.uid}/faces/`) as FaceNode)\n\t\t\t\tthis.$store.dispatch('addFaces', { faces: fetchedFace })\n\t\t\t\tlogger.debug(`[FetchFacesMixin] Fetched ${fetchedFace.length} new faces: `, { fetchedFace })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFaces = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFaces = error\n\t\t\t\t}\n\t\t\t\tlogger.error(t('photos', 'Failed to fetch faces list.'), { error })\n\t\t\t\tshowError(t('photos', 'Failed to fetch faces list.'))\n\t\t\t} finally {\n\t\t\t\tthis.loadingFaces = false\n\t\t\t}\n\t\t},\n\n\t\tasync fetchFaceContent(faceName, force) {\n\t\t\tif (this.loadingFiles) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!force && this.facesFiles[faceName] && this.facesFiles[faceName].length) {\n\t\t\t\treturn\n\t\t\t}\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 { data: fetchedRawFiles } = await davClient.getDirectoryContents(\n\t\t\t\t\t`/recognize/${getCurrentUser()?.uid}/faces/${faceName}`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t\t},\n\t\t\t\t) as ResponseDataDetailed\n\n\t\t\t\tconst fetchedFiles = fetchedRawFiles\n\t\t\t\t\t.map((file) => ({\n\t\t\t\t\t\t...file,\n\t\t\t\t\t\tfilename: he.decode(file.props?.realpath).replace(`/${getCurrentUser()?.uid}/files`, `/files/${getCurrentUser()?.uid}`),\n\t\t\t\t\t}))\n\t\t\t\t\t.map((file) => {\n\t\t\t\t\t\tconst node = resultToNode(file) as FaceNode\n\t\t\t\t\t\t// Set the parsed detections after resultToNode: it builds attributes\n\t\t\t\t\t\t// as `{ ...node, ...props }`, so assigning before would be overwritten\n\t\t\t\t\t\t// by the raw JSON string still held in props.\n\t\t\t\t\t\tnode.attributes['face-detections'] = JSON.parse(he.decode(file.props?.['face-detections']))\n\t\t\t\t\t\treturn node\n\t\t\t\t\t})\n\n\t\t\t\tconst fileIds = fetchedFiles.map((file) => file.fileid?.toString() as string)\n\n\t\t\t\tthis.$store.dispatch('appendFiles', fetchedFiles)\n\n\t\t\t\tif (fetchedFiles.length > 0) {\n\t\t\t\t\tawait this.$store.commit('addFilesToFace', { faceName, fileIdsToAdd: fileIds })\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`[FetchFacesMixin] Fetched ${fileIds.length} new files: `, { fileIds })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFaces = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFaces = error\n\t\t\t\t}\n\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching face files', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loadingFiles = false\n\t\t\t}\n\t\t},\n\n\t\tasync fetchUnassignedFaces(force) {\n\t\t\tif (this.loadingFiles) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!force && this.unassignedFiles && this.unassignedFiles.length) {\n\t\t\t\treturn\n\t\t\t}\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 { data: fetchedRawFiles } = await davClient.getDirectoryContents(\n\t\t\t\t\t`/recognize/${getCurrentUser()?.uid}/unassigned-faces`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t\t},\n\t\t\t\t) as ResponseDataDetailed\n\n\t\t\t\tconst fetchedFiles = fetchedRawFiles\n\t\t\t\t\t.map((file) => ({\n\t\t\t\t\t\t...file,\n\t\t\t\t\t\tfilename: he.decode(file.props?.realpath).replace(`/${getCurrentUser()?.uid}/files`, `/files/${getCurrentUser()?.uid}`),\n\t\t\t\t\t}))\n\t\t\t\t\t.map((file) => {\n\t\t\t\t\t\tconst node = resultToNode(file) as FaceNode\n\t\t\t\t\t\t// Set the parsed detections after resultToNode: it builds attributes\n\t\t\t\t\t\t// as `{ ...node, ...props }`, so assigning before would be overwritten\n\t\t\t\t\t\t// by the raw JSON string still held in props.\n\t\t\t\t\t\tnode.attributes['face-detections'] = JSON.parse(he.decode(file.props?.['face-detections']))\n\t\t\t\t\t\treturn node\n\t\t\t\t\t})\n\n\t\t\t\tconst fileIds = [...new Set(fetchedFiles.map((file) => '' + file.fileid))]\n\t\t\t\tthis.$store.dispatch('appendFiles', fetchedFiles)\n\n\t\t\t\tif (fetchedFiles.length > 0) {\n\t\t\t\t\tawait this.$store.commit('addUnassignedFiles', { fileIdsToAdd: fileIds })\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`[FetchFacesMixin] Fetched ${fileIds.length} new unassigned files: `, { fileIds })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFaces = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFaces = error\n\t\t\t\t}\n\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching unassigned files', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loadingFiles = false\n\t\t\t}\n\t\t},\n\n\t\tasync fetchUnassignedFacesCount() {\n\t\t\ttry {\n\t\t\t\tconst { data: unassignedFacesRoot } = await davClient.stat(\n\t\t\t\t\t`/recognize/${getCurrentUser()?.uid}/unassigned-faces`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t\t},\n\t\t\t\t) as ResponseDataDetailed\n\n\t\t\t\tconst count = Number(unassignedFacesRoot.props?.nbItems)\n\n\t\t\t\tawait this.$store.commit('setUnassignedFilesCount', count)\n\n\t\t\t\tlogger.debug('[FetchFacesMixin] Fetched unassigned files count: ', { count })\n\t\t\t} catch (error) {\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching unassigned files count', { error })\n\t\t\t}\n\t\t},\n\t},\n})\n","\n\n\n\n\n\n\n"],"names":["FaceCoverMixin","defineComponent","faceName","he","cover","detection","zoom","horizontalCenterOfFace","verticalCenterOfFace","recognizeDAVProps","FetchFacesMixin","AbortControllerMixin","fetchedRawFaces","davClient","getCurrentUser","getPropFind","fetchedFace","file","resultToNode","logger","error","t","showError","force","fetchedRawFiles","fetchedFiles","node","fileIds","unassignedFacesRoot","count","_sfc_main","generateUrl","n"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"FaceCover-aZGWm4v4.chunk.mjs","sources":["../src/mixins/FaceCoverMixin.ts","../src/mixins/FetchFacesMixin.ts","../src/components/Faces/FaceCover.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport he from 'he'\nimport { defineComponent } from 'vue'\n\ntype Cover = {\n\tdetection: {\n\t\tx: number\n\t\ty: number\n\t\twidth: number\n\t\theight: number\n\t}\n}\n\nexport default defineComponent({\n\tname: 'FaceCoverMixin',\n\n\tcomputed: {\n\t\tfiles() {\n\t\t\treturn this.$store.state.files.files\n\t\t},\n\n\t\tfaces() {\n\t\t\treturn this.$store.state.faces.faces\n\t\t},\n\n\t\tfacesFiles() {\n\t\t\treturn this.$store.state.faces.facesFiles\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetFaceCover(faceName): Cover {\n\t\t\treturn JSON.parse(he.decode(this.faces[faceName].attributes['face-preview-image'] || '{}'))\n\t\t},\n\n\t\t/**\n\t\t * This will produce an inline style to apply to images\n\t\t * to zoom toward the detected face\n\t\t *\n\t\t * @param faceName\n\t\t */\n\t\tgetCoverStyle(faceName: string): Record | { transform: string, width: string, transformOrigin: string } {\n\t\t\tconst cover = this.getFaceCover(faceName)\n\t\t\tif (!cover || !cover.detection) {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t\tconst detection = cover.detection\n\n\t\t\t// Zoom into the picture so that the face fills the --photos-face-width box nicely\n\t\t\t// if the face is larger than the image, we don't zoom out (reason for the Math.max)\n\t\t\tconst zoom = Math.max(1, (1 / detection.width) * 0.4)\n\n\t\t\tconst horizontalCenterOfFace = (detection.x + detection.width / 2) * 100\n\t\t\tconst verticalCenterOfFace = (detection.y + detection.height / 2) * 100\n\n\t\t\treturn {\n\t\t\t\t// We assume that the image is inside a div with width: var(--photos-face-width)\n\t\t\t\twidth: '100%',\n\t\t\t\t// we translate the image so that the center of the detected face is in the center of the --photos-face-width box\n\t\t\t\t// and add the zoom\n\t\t\t\ttransform: `translate(calc( var(--photos-face-width)/2 - ${horizontalCenterOfFace}% ), calc( var(--photos-face-width)/2 - ${verticalCenterOfFace}% )) scale(${zoom})`,\n\t\t\t\t// this is necessary for the zoom to zoom toward the center of the face\n\t\t\t\ttransformOrigin: `${horizontalCenterOfFace}% ${verticalCenterOfFace}%`,\n\t\t\t}\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { File } from '@nextcloud/files'\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError } from '@nextcloud/dialogs'\nimport { resultToNode } from '@nextcloud/files/dav'\nimport { t } from '@nextcloud/l10n'\nimport he from 'he'\nimport { defineComponent } from 'vue'\nimport { davClient } from '../services/DavClient.ts'\nimport { getPropFind } from '../services/DavRequest.ts'\nimport logger from '../services/logger.js'\nimport AbortControllerMixin from './AbortControllerMixin.js'\n\nconst recognizeDAVProps = [\n\t'',\n\t'',\n\t'',\n\t'',\n]\n\ntype FaceNode = File & {\n\tattributes: {\n\t\t'face-detections': string\n\t\t'face-preview-image': string\n\t\trealpath: string\n\t}\n}\n\nexport default defineComponent({\n\tname: 'FetchFacesMixin',\n\n\tdata() {\n\t\treturn {\n\t\t\terrorFetchingFaces: null as null | number | Error | unknown,\n\t\t\tloadingFaces: false,\n\t\t\terrorFetchingFiles: null as null | number | Error | unknown,\n\t\t\tloadingFiles: false,\n\t\t}\n\t},\n\n\tmixins: [AbortControllerMixin],\n\n\tasync beforeMount() {\n\t\tthis.fetchFaces()\n\t},\n\n\tcomputed: {\n\t\tfaces() {\n\t\t\treturn this.$store.state.faces.faces\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync fetchFaces() {\n\t\t\tif (this.loadingFaces) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (Object.keys(this.faces).length) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.loadingFaces = true\n\t\t\t\tthis.errorFetchingFaces = null\n\n\t\t\t\tconst { data: fetchedRawFaces } = await davClient.getDirectoryContents(`/recognize/${getCurrentUser()?.uid}/faces/`, {\n\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\tdetails: true,\n\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t}) as ResponseDataDetailed\n\n\t\t\t\tconst fetchedFace = fetchedRawFaces.map((file) => resultToNode(file, `/recognize/${getCurrentUser()?.uid}/faces/`) as FaceNode)\n\t\t\t\tthis.$store.dispatch('addFaces', { faces: fetchedFace })\n\t\t\t\tlogger.debug(`[FetchFacesMixin] Fetched ${fetchedFace.length} new faces: `, { fetchedFace })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFaces = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFaces = error\n\t\t\t\t}\n\t\t\t\tlogger.error(t('photos', 'Failed to fetch faces list.'), { error })\n\t\t\t\tshowError(t('photos', 'Failed to fetch faces list.'))\n\t\t\t} finally {\n\t\t\t\tthis.loadingFaces = false\n\t\t\t}\n\t\t},\n\n\t\tasync fetchFaceContent(faceName, force) {\n\t\t\tif (this.loadingFiles) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!force && this.facesFiles[faceName] && this.facesFiles[faceName].length) {\n\t\t\t\treturn\n\t\t\t}\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 { data: fetchedRawFiles } = await davClient.getDirectoryContents(\n\t\t\t\t\t`/recognize/${getCurrentUser()?.uid}/faces/${faceName}`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t\t},\n\t\t\t\t) as ResponseDataDetailed\n\n\t\t\t\tconst fetchedFiles = fetchedRawFiles\n\t\t\t\t\t.map((file) => ({\n\t\t\t\t\t\t...file,\n\t\t\t\t\t\tfilename: he.decode(file.props?.realpath).replace(`/${getCurrentUser()?.uid}/files`, `/files/${getCurrentUser()?.uid}`),\n\t\t\t\t\t}))\n\t\t\t\t\t.map((file) => {\n\t\t\t\t\t\tconst node = resultToNode(file) as FaceNode\n\t\t\t\t\t\t// Set the parsed detections after resultToNode: it builds attributes\n\t\t\t\t\t\t// as `{ ...node, ...props }`, so assigning before would be overwritten\n\t\t\t\t\t\t// by the raw JSON string still held in props.\n\t\t\t\t\t\tnode.attributes['face-detections'] = JSON.parse(he.decode(file.props?.['face-detections']))\n\t\t\t\t\t\treturn node\n\t\t\t\t\t})\n\n\t\t\t\tconst fileIds = fetchedFiles.map((file) => file.fileid?.toString() as string)\n\n\t\t\t\tthis.$store.dispatch('appendFiles', fetchedFiles)\n\n\t\t\t\tif (fetchedFiles.length > 0) {\n\t\t\t\t\tawait this.$store.commit('addFilesToFace', { faceName, fileIdsToAdd: fileIds })\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`[FetchFacesMixin] Fetched ${fileIds.length} new files: `, { fileIds })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFaces = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFaces = error\n\t\t\t\t}\n\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching face files', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loadingFiles = false\n\t\t\t}\n\t\t},\n\n\t\tasync fetchUnassignedFaces(force) {\n\t\t\tif (this.loadingFiles) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!force && this.unassignedFiles && this.unassignedFiles.length) {\n\t\t\t\treturn\n\t\t\t}\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 { data: fetchedRawFiles } = await davClient.getDirectoryContents(\n\t\t\t\t\t`/recognize/${getCurrentUser()?.uid}/unassigned-faces`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t\t},\n\t\t\t\t) as ResponseDataDetailed\n\n\t\t\t\tconst fetchedFiles = fetchedRawFiles\n\t\t\t\t\t.map((file) => ({\n\t\t\t\t\t\t...file,\n\t\t\t\t\t\tfilename: he.decode(file.props?.realpath).replace(`/${getCurrentUser()?.uid}/files`, `/files/${getCurrentUser()?.uid}`),\n\t\t\t\t\t}))\n\t\t\t\t\t.map((file) => {\n\t\t\t\t\t\tconst node = resultToNode(file) as FaceNode\n\t\t\t\t\t\t// Set the parsed detections after resultToNode: it builds attributes\n\t\t\t\t\t\t// as `{ ...node, ...props }`, so assigning before would be overwritten\n\t\t\t\t\t\t// by the raw JSON string still held in props.\n\t\t\t\t\t\tnode.attributes['face-detections'] = JSON.parse(he.decode(file.props?.['face-detections']))\n\t\t\t\t\t\treturn node\n\t\t\t\t\t})\n\n\t\t\t\tconst fileIds = [...new Set(fetchedFiles.map((file) => '' + file.fileid))]\n\t\t\t\tthis.$store.dispatch('appendFiles', fetchedFiles)\n\n\t\t\t\tif (fetchedFiles.length > 0) {\n\t\t\t\t\tawait this.$store.commit('addUnassignedFiles', { fileIdsToAdd: fileIds })\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`[FetchFacesMixin] Fetched ${fileIds.length} new unassigned files: `, { fileIds })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFaces = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFaces = error\n\t\t\t\t}\n\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching unassigned files', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loadingFiles = false\n\t\t\t}\n\t\t},\n\n\t\tasync fetchUnassignedFacesCount() {\n\t\t\ttry {\n\t\t\t\tconst { data: unassignedFacesRoot } = await davClient.stat(\n\t\t\t\t\t`/recognize/${getCurrentUser()?.uid}/unassigned-faces`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: getPropFind(recognizeDAVProps),\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t\t},\n\t\t\t\t) as ResponseDataDetailed\n\n\t\t\t\tconst count = Number(unassignedFacesRoot.props?.nbItems)\n\n\t\t\t\tawait this.$store.commit('setUnassignedFilesCount', count)\n\n\t\t\t\tlogger.debug('[FetchFacesMixin] Fetched unassigned files count: ', { count })\n\t\t\t} catch (error) {\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching unassigned files count', { error })\n\t\t\t}\n\t\t},\n\t},\n})\n","\n\n\n\n\n\n\n"],"names":["FaceCoverMixin","defineComponent","faceName","he","cover","detection","zoom","horizontalCenterOfFace","verticalCenterOfFace","recognizeDAVProps","FetchFacesMixin","AbortControllerMixin","fetchedRawFaces","davClient","getCurrentUser","getPropFind","fetchedFace","file","resultToNode","logger","error","t","showError","force","fetchedRawFiles","fetchedFiles","node","fileIds","unassignedFacesRoot","count","_sfc_main","generateUrl","n"],"mappings":"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"} \ No newline at end of file diff --git a/js/FaceMergeForm-CXfxVDPY.chunk.mjs b/js/FaceMergeForm-BsPjp4ll.chunk.mjs similarity index 84% rename from js/FaceMergeForm-CXfxVDPY.chunk.mjs rename to js/FaceMergeForm-BsPjp4ll.chunk.mjs index af591f6fe..e476908de 100644 --- a/js/FaceMergeForm-CXfxVDPY.chunk.mjs +++ b/js/FaceMergeForm-BsPjp4ll.chunk.mjs @@ -1,2 +1,2 @@ -import{a,F as r,b as i}from"./FaceCover-BZKfSTyN.chunk.mjs";import{n}from"./icons-Du8Q1knx.chunk.mjs";const c={name:"FaceMergeForm",components:{FaceCover:i},mixins:[a,r],props:{firstFace:{type:String,required:!0}},data(){return{loading:!1}},computed:{files(){return this.$store.state.files.files},faces(){return this.$store.state.faces.faces},facesFiles(){return this.$store.getters.facesFiles},filteredFaces(){return Object.values(this.faces).filter(e=>e.basename!==this.firstFace).sort((e,s)=>e.attributes.nbItems&&s.attributes.nbItems?s.attributes.nbItems-e.attributes.nbItems:!this.facesFiles[s.basename]||!this.facesFiles[e.basename]?0:this.facesFiles[s.basename].length-this.facesFiles[e.basename].length)}},methods:{handleSelect(e){this.$emit("select",e),this.loading=!0}}};var l=function(){var e=this,s=e._self._c;return s("div",{staticClass:"merge-form face-list"},e._l(e.filteredFaces,function(t){return s("FaceCover",{key:t.basename,attrs:{"base-name":t.basename,small:""},on:{click:function(m){return e.handleSelect(t.basename)}}})}),1)},o=[],f=n(c,l,o,!1,null,"b48e014f");const h=f.exports;export{h as F}; -//# sourceMappingURL=FaceMergeForm-CXfxVDPY.chunk.mjs.map +import{a,F as r,b as i}from"./FaceCover-aZGWm4v4.chunk.mjs";import{n}from"./icons-DCSM00Rh.chunk.mjs";const c={name:"FaceMergeForm",components:{FaceCover:i},mixins:[a,r],props:{firstFace:{type:String,required:!0}},data(){return{loading:!1}},computed:{files(){return this.$store.state.files.files},faces(){return this.$store.state.faces.faces},facesFiles(){return this.$store.getters.facesFiles},filteredFaces(){return Object.values(this.faces).filter(e=>e.basename!==this.firstFace).sort((e,s)=>e.attributes.nbItems&&s.attributes.nbItems?s.attributes.nbItems-e.attributes.nbItems:!this.facesFiles[s.basename]||!this.facesFiles[e.basename]?0:this.facesFiles[s.basename].length-this.facesFiles[e.basename].length)}},methods:{handleSelect(e){this.$emit("select",e),this.loading=!0}}};var l=function(){var e=this,s=e._self._c;return s("div",{staticClass:"merge-form face-list"},e._l(e.filteredFaces,function(t){return s("FaceCover",{key:t.basename,attrs:{"base-name":t.basename,small:""},on:{click:function(m){return e.handleSelect(t.basename)}}})}),1)},o=[],f=n(c,l,o,!1,null,"b48e014f");const h=f.exports;export{h as F}; +//# sourceMappingURL=FaceMergeForm-BsPjp4ll.chunk.mjs.map diff --git a/js/FaceMergeForm-CXfxVDPY.chunk.mjs.license b/js/FaceMergeForm-BsPjp4ll.chunk.mjs.license similarity index 100% rename from js/FaceMergeForm-CXfxVDPY.chunk.mjs.license rename to js/FaceMergeForm-BsPjp4ll.chunk.mjs.license diff --git a/js/FaceMergeForm-CXfxVDPY.chunk.mjs.map b/js/FaceMergeForm-BsPjp4ll.chunk.mjs.map similarity index 97% rename from js/FaceMergeForm-CXfxVDPY.chunk.mjs.map rename to js/FaceMergeForm-BsPjp4ll.chunk.mjs.map index e87826250..fa786b41c 100644 --- a/js/FaceMergeForm-CXfxVDPY.chunk.mjs.map +++ b/js/FaceMergeForm-BsPjp4ll.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FaceMergeForm-CXfxVDPY.chunk.mjs","sources":["../src/components/Faces/FaceMergeForm.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","FaceCover","FaceCoverMixin","FetchFacesMixin","face","a","b","faceName"],"mappings":"sGAoBA,MAAAA,EAAA,CACA,KAAA,gBACA,WAAA,CAAA,UAAAC,CAAA,EACA,OAAA,CACAC,EACAC,CAAA,EAGA,MAAA,CACA,UAAA,CACA,KAAA,OACA,SAAA,EAAA,CACA,EAGA,MAAA,CACA,MAAA,CACA,QAAA,EAAA,CAEA,EAEA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,YAAA,CACA,OAAA,KAAA,OAAA,QAAA,UACA,EAEA,eAAA,CACA,OAAA,OAAA,OAAA,KAAA,KAAA,EACA,OAAAC,GAAAA,EAAA,WAAA,KAAA,SAAA,EACA,KAAA,CAAAC,EAAAC,IACAD,EAAA,WAAA,SAAAC,EAAA,WAAA,QACAA,EAAA,WAAA,QAAAD,EAAA,WAAA,QAEA,CAAA,KAAA,WAAAC,EAAA,QAAA,GAAA,CAAA,KAAA,WAAAD,EAAA,QAAA,EACA,EAEA,KAAA,WAAAC,EAAA,QAAA,EAAA,OAAA,KAAA,WAAAD,EAAA,QAAA,EAAA,MACA,CACA,CAAA,EAGA,QAAA,CACA,aAAAE,EAAA,CACA,KAAA,MAAA,SAAAA,CAAA,EACA,KAAA,QAAA,EACA,CAAA,CAEA"} \ No newline at end of file +{"version":3,"file":"FaceMergeForm-BsPjp4ll.chunk.mjs","sources":["../src/components/Faces/FaceMergeForm.vue"],"sourcesContent":["\n\n\n\n\n\n"],"names":["_sfc_main","FaceCover","FaceCoverMixin","FetchFacesMixin","face","a","b","faceName"],"mappings":"sGAoBA,MAAAA,EAAA,CACA,KAAA,gBACA,WAAA,CAAA,UAAAC,CAAA,EACA,OAAA,CACAC,EACAC,CAAA,EAGA,MAAA,CACA,UAAA,CACA,KAAA,OACA,SAAA,EAAA,CACA,EAGA,MAAA,CACA,MAAA,CACA,QAAA,EAAA,CAEA,EAEA,SAAA,CACA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,OAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,KACA,EAEA,YAAA,CACA,OAAA,KAAA,OAAA,QAAA,UACA,EAEA,eAAA,CACA,OAAA,OAAA,OAAA,KAAA,KAAA,EACA,OAAAC,GAAAA,EAAA,WAAA,KAAA,SAAA,EACA,KAAA,CAAAC,EAAAC,IACAD,EAAA,WAAA,SAAAC,EAAA,WAAA,QACAA,EAAA,WAAA,QAAAD,EAAA,WAAA,QAEA,CAAA,KAAA,WAAAC,EAAA,QAAA,GAAA,CAAA,KAAA,WAAAD,EAAA,QAAA,EACA,EAEA,KAAA,WAAAC,EAAA,QAAA,EAAA,OAAA,KAAA,WAAAD,EAAA,QAAA,EAAA,MACA,CACA,CAAA,EAGA,QAAA,CACA,aAAAE,EAAA,CACA,KAAA,MAAA,SAAAA,CAAA,EACA,KAAA,QAAA,EACA,CAAA,CAEA"} \ No newline at end of file diff --git a/js/FacesView-Dt3mzO9A.chunk.mjs b/js/FacesView-CREGwa7w.chunk.mjs similarity index 92% rename from js/FacesView-Dt3mzO9A.chunk.mjs rename to js/FacesView-CREGwa7w.chunk.mjs index b760851cc..50e8481de 100644 --- a/js/FacesView-Dt3mzO9A.chunk.mjs +++ b/js/FacesView-CREGwa7w.chunk.mjs @@ -1,2 +1,2 @@ -import{k as a,a as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{L as c}from"./video-DVVFoi8e.chunk.mjs";import{N as r}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as l}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{l as u,n,g as m}from"./icons-Du8Q1knx.chunk.mjs";import{F as o,a as d,b as f}from"./FaceCover-BZKfSTyN.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./index-msNec4Xs.chunk.mjs";import"./he-qSystlHf.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";const p={name:"UnassignedFacesCover",components:{AccountOffOutlineIcon:u},mixins:[o,d],props:{small:{type:Boolean,default:!1}},computed:{unassignedFilesCount(){return this.$store.state.faces.unassignedFilesCount},colorMainBackground(){return getComputedStyle(document.documentElement).getPropertyValue("--color-main-background")}},async mounted(){await this.fetchUnassignedFacesCount()},methods:{n:a}};var h=function(){var e=this,s=e._self._c;return s("div",{staticClass:"face-cover",class:[e.small&&"face-cover--small"],on:{click:function(t){return e.$emit("click")}}},[s("div",{staticClass:"face-cover__crop-container"},[s("AccountOffOutlineIcon",{attrs:{size:128,"fill-color":e.colorMainBackground}})],1),s("div",{staticClass:"face-cover__details"},[e.small?e._e():s("div",{staticClass:"face-cover__details__second-line"},[e._v(" "+e._s(e.n("photos","%n unassigned photo","%n unassigned photos",e.unassignedFilesCount))+" ")])])])},g=[],_=n(p,h,g,!1,null,"80561ccf");const F=_.exports,v={name:"FacesView",components:{UnassignedFacesCover:F,FaceCover:f,NcEmptyContent:r,NcLoadingIcon:l,RouterLink:c,AccountBoxMultipleOutline:m},mixins:[o],computed:{facesFiles(){return this.$store.state.faces.facesFiles},unassignedFilesCount(){return this.$store.state.faces.unassignedFilesCount},noFaces(){return Object.keys(this.faces).length===0},orderedFaces(){return Object.values(this.faces).sort((e,s)=>e.attributes.nbItems&&s.attributes.nbItems?s.attributes.nbItems-e.attributes.nbItems:!this.facesFiles[s.basename]||!this.facesFiles[e.basename]?0:this.facesFiles[s.basename].length-this.facesFiles[e.basename].length)}},methods:{t:i}};var C=function(){var e=this,s=e._self._c;return e.errorFetchingFaces?s("NcEmptyContent",[e._v(" "+e._s(e.t("photos","An error occurred"))+" ")]):s("div",{staticClass:"faces"},[e.loadingFaces?s("NcLoadingIcon"):e._e(),e.noFaces&&!e.loadingFaces?s("div",{staticClass:"faces__empty"},[s("NcEmptyContent",{staticClass:"empty-content-with-illustration",scopedSlots:e._u([{key:"icon",fn:function(){return[s("AccountBoxMultipleOutline")]},proxy:!0},{key:"desc",fn:function(){return[e._v(" "+e._s(e.t("photos","This might take some time depending on the size of your photo library."))+" ")]},proxy:!0}],null,!1,149048332)},[e._v(" "+e._s(e.t("photos","Recognized people will show up here"))+" ")])],1):e.noFaces?e._e():s("div",{staticClass:"faces__list"},[e._l(e.orderedFaces,function(t){return s("RouterLink",{key:t.basename,attrs:{to:`/faces/${encodeURIComponent(t.basename)}`}},[s("FaceCover",{attrs:{"base-name":t.basename}})],1)}),s("RouterLink",{key:"unassigned",attrs:{to:"/faces/unassigned"}},[s("UnassignedFacesCover")],1)],2)],1)},b=[],y=n(v,C,b,!1,null,"d27b108f");const R=y.exports;export{R as default}; -//# sourceMappingURL=FacesView-Dt3mzO9A.chunk.mjs.map +import{k as a,a as i}from"./preload-helper-B1hyiFAx.chunk.mjs";import{L as c}from"./video-B2A2Ed33.chunk.mjs";import{N as r}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as l}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{l as u,n,g as m}from"./icons-DCSM00Rh.chunk.mjs";import{F as o,a as d,b as f}from"./FaceCover-aZGWm4v4.chunk.mjs";import"./index-CsCSS_KR.chunk.mjs";import"./index-msNec4Xs.chunk.mjs";import"./he-qSystlHf.chunk.mjs";import"./AbortControllerMixin-QihggCn5.chunk.mjs";const p={name:"UnassignedFacesCover",components:{AccountOffOutlineIcon:u},mixins:[o,d],props:{small:{type:Boolean,default:!1}},computed:{unassignedFilesCount(){return this.$store.state.faces.unassignedFilesCount},colorMainBackground(){return getComputedStyle(document.documentElement).getPropertyValue("--color-main-background")}},async mounted(){await this.fetchUnassignedFacesCount()},methods:{n:a}};var h=function(){var e=this,s=e._self._c;return s("div",{staticClass:"face-cover",class:[e.small&&"face-cover--small"],on:{click:function(t){return e.$emit("click")}}},[s("div",{staticClass:"face-cover__crop-container"},[s("AccountOffOutlineIcon",{attrs:{size:128,"fill-color":e.colorMainBackground}})],1),s("div",{staticClass:"face-cover__details"},[e.small?e._e():s("div",{staticClass:"face-cover__details__second-line"},[e._v(" "+e._s(e.n("photos","%n unassigned photo","%n unassigned photos",e.unassignedFilesCount))+" ")])])])},g=[],_=n(p,h,g,!1,null,"80561ccf");const F=_.exports,v={name:"FacesView",components:{UnassignedFacesCover:F,FaceCover:f,NcEmptyContent:r,NcLoadingIcon:l,RouterLink:c,AccountBoxMultipleOutline:m},mixins:[o],computed:{facesFiles(){return this.$store.state.faces.facesFiles},unassignedFilesCount(){return this.$store.state.faces.unassignedFilesCount},noFaces(){return Object.keys(this.faces).length===0},orderedFaces(){return Object.values(this.faces).sort((e,s)=>e.attributes.nbItems&&s.attributes.nbItems?s.attributes.nbItems-e.attributes.nbItems:!this.facesFiles[s.basename]||!this.facesFiles[e.basename]?0:this.facesFiles[s.basename].length-this.facesFiles[e.basename].length)}},methods:{t:i}};var C=function(){var e=this,s=e._self._c;return e.errorFetchingFaces?s("NcEmptyContent",[e._v(" "+e._s(e.t("photos","An error occurred"))+" ")]):s("div",{staticClass:"faces"},[e.loadingFaces?s("NcLoadingIcon"):e._e(),e.noFaces&&!e.loadingFaces?s("div",{staticClass:"faces__empty"},[s("NcEmptyContent",{staticClass:"empty-content-with-illustration",scopedSlots:e._u([{key:"icon",fn:function(){return[s("AccountBoxMultipleOutline")]},proxy:!0},{key:"desc",fn:function(){return[e._v(" "+e._s(e.t("photos","This might take some time depending on the size of your photo library."))+" ")]},proxy:!0}],null,!1,149048332)},[e._v(" "+e._s(e.t("photos","Recognized people will show up here"))+" ")])],1):e.noFaces?e._e():s("div",{staticClass:"faces__list"},[e._l(e.orderedFaces,function(t){return s("RouterLink",{key:t.basename,attrs:{to:`/faces/${encodeURIComponent(t.basename)}`}},[s("FaceCover",{attrs:{"base-name":t.basename}})],1)}),s("RouterLink",{key:"unassigned",attrs:{to:"/faces/unassigned"}},[s("UnassignedFacesCover")],1)],2)],1)},b=[],y=n(v,C,b,!1,null,"d27b108f");const R=y.exports;export{R as default}; +//# sourceMappingURL=FacesView-CREGwa7w.chunk.mjs.map diff --git a/js/FacesView-Dt3mzO9A.chunk.mjs.license b/js/FacesView-CREGwa7w.chunk.mjs.license similarity index 100% rename from js/FacesView-Dt3mzO9A.chunk.mjs.license rename to js/FacesView-CREGwa7w.chunk.mjs.license diff --git a/js/FacesView-Dt3mzO9A.chunk.mjs.map b/js/FacesView-CREGwa7w.chunk.mjs.map similarity index 99% rename from js/FacesView-Dt3mzO9A.chunk.mjs.map rename to js/FacesView-CREGwa7w.chunk.mjs.map index 64a7d4d23..fbe13471a 100644 --- a/js/FacesView-Dt3mzO9A.chunk.mjs.map +++ b/js/FacesView-CREGwa7w.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FacesView-Dt3mzO9A.chunk.mjs","sources":["../src/components/Faces/UnassignedFacesCover.vue","../src/views/FacesView.vue"],"sourcesContent":["\n\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["_sfc_main$1","AccountOffOutlineIcon","FetchFacesMixin","FaceCoverMixin","n","_sfc_main","UnassignedFacesCover","FaceCover","NcEmptyContent","NcLoadingIcon","RouterLink","AccountBoxMultipleOutline","a","b","t"],"mappings":"8eAwBA,MAAAA,EAAA,CACA,KAAA,uBAEA,WAAA,CAAA,sBAAAC,CAAA,EAEA,OAAA,CACAC,EACAC,CAAA,EAGA,MAAA,CACA,MAAA,CACA,KAAA,QACA,QAAA,EAAA,CACA,EAGA,SAAA,CACA,sBAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,oBACA,EAEA,qBAAA,CACA,OAAA,iBAAA,SAAA,eAAA,EAAA,iBAAA,yBAAA,CACA,CAAA,EAGA,MAAA,SAAA,CACA,MAAA,KAAA,0BAAA,CACA,EAEA,QAAA,CAAA,EACAC,CAAA,CAEA,4kBCHAC,EAAA,CACA,KAAA,YACA,WAAA,CACA,qBAAAC,EACA,UAAAC,EACA,eAAAC,EACA,cAAAC,EAAA,WACAC,EACA,0BAAAC,CAAA,EAGA,OAAA,CAAAT,CAAA,EAEA,SAAA,CACA,YAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,UACA,EAEA,sBAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,oBACA,EAEA,SAAA,CACA,OAAA,OAAA,KAAA,KAAA,KAAA,EAAA,SAAA,CACA,EAEA,cAAA,CACA,OAAA,OAAA,OAAA,KAAA,KAAA,EAAA,KAAA,CAAAU,EAAAC,IACAD,EAAA,WAAA,SAAAC,EAAA,WAAA,QACAA,EAAA,WAAA,QAAAD,EAAA,WAAA,QAEA,CAAA,KAAA,WAAAC,EAAA,QAAA,GAAA,CAAA,KAAA,WAAAD,EAAA,QAAA,EACA,EAEA,KAAA,WAAAC,EAAA,QAAA,EAAA,OAAA,KAAA,WAAAD,EAAA,QAAA,EAAA,MACA,CACA,CAAA,EAGA,QAAA,CAAA,EACAE,CAAA,CAEA"} \ No newline at end of file +{"version":3,"file":"FacesView-CREGwa7w.chunk.mjs","sources":["../src/components/Faces/UnassignedFacesCover.vue","../src/views/FacesView.vue"],"sourcesContent":["\n\n\n\n\n\n\n","\n\n\n\n\n\n"],"names":["_sfc_main$1","AccountOffOutlineIcon","FetchFacesMixin","FaceCoverMixin","n","_sfc_main","UnassignedFacesCover","FaceCover","NcEmptyContent","NcLoadingIcon","RouterLink","AccountBoxMultipleOutline","a","b","t"],"mappings":"8eAwBA,MAAAA,EAAA,CACA,KAAA,uBAEA,WAAA,CAAA,sBAAAC,CAAA,EAEA,OAAA,CACAC,EACAC,CAAA,EAGA,MAAA,CACA,MAAA,CACA,KAAA,QACA,QAAA,EAAA,CACA,EAGA,SAAA,CACA,sBAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,oBACA,EAEA,qBAAA,CACA,OAAA,iBAAA,SAAA,eAAA,EAAA,iBAAA,yBAAA,CACA,CAAA,EAGA,MAAA,SAAA,CACA,MAAA,KAAA,0BAAA,CACA,EAEA,QAAA,CAAA,EACAC,CAAA,CAEA,4kBCHAC,EAAA,CACA,KAAA,YACA,WAAA,CACA,qBAAAC,EACA,UAAAC,EACA,eAAAC,EACA,cAAAC,EAAA,WACAC,EACA,0BAAAC,CAAA,EAGA,OAAA,CAAAT,CAAA,EAEA,SAAA,CACA,YAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,UACA,EAEA,sBAAA,CACA,OAAA,KAAA,OAAA,MAAA,MAAA,oBACA,EAEA,SAAA,CACA,OAAA,OAAA,KAAA,KAAA,KAAA,EAAA,SAAA,CACA,EAEA,cAAA,CACA,OAAA,OAAA,OAAA,KAAA,KAAA,EAAA,KAAA,CAAAU,EAAAC,IACAD,EAAA,WAAA,SAAAC,EAAA,WAAA,QACAA,EAAA,WAAA,QAAAD,EAAA,WAAA,QAEA,CAAA,KAAA,WAAAC,EAAA,QAAA,GAAA,CAAA,KAAA,WAAAD,EAAA,QAAA,EACA,EAEA,KAAA,WAAAC,EAAA,QAAA,EAAA,OAAA,KAAA,WAAAD,EAAA,QAAA,EAAA,MACA,CACA,CAAA,EAGA,QAAA,CAAA,EACAE,CAAA,CAEA"} \ No newline at end of file diff --git a/js/FileComponent-CYcuW4fI.chunk.mjs b/js/FileComponent-CIkKxlac.chunk.mjs similarity index 98% rename from js/FileComponent-CYcuW4fI.chunk.mjs rename to js/FileComponent-CIkKxlac.chunk.mjs index 437f8009e..da48a1b60 100644 --- a/js/FileComponent-CYcuW4fI.chunk.mjs +++ b/js/FileComponent-CIkKxlac.chunk.mjs @@ -1,2 +1,2 @@ -import{d as P,a as g,n as M}from"./preload-helper-B1hyiFAx.chunk.mjs";import{k as F,v as N}from"./index-msNec4Xs.chunk.mjs";import{N as O}from"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import{n as k,r as R,V as T}from"./icons-Du8Q1knx.chunk.mjs";var U=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],h=e=>{let t=0;for(let a=0;a{let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},L=e=>{let t=Math.max(0,Math.min(1,e));return t<=.0031308?Math.trunc(t*12.92*255+.5):Math.trunc((1.055*Math.pow(t,.4166666666666667)-.055)*255+.5)},q=e=>e<0?-1:1,b=(e,t)=>q(e)*Math.pow(Math.abs(e),t),x=class extends Error{constructor(e){super(e),this.name="ValidationError",this.message=e}},A=e=>{if(!e||e.length<6)throw new x("The blurhash string must be at least 6 characters");let t=h(e[0]),a=Math.floor(t/9)+1,r=t%9+1;if(e.length!==4+2*r*a)throw new x(`blurhash length mismatch: length is ${e.length} but it should be ${4+2*r*a}`)},D=e=>{let t=e>>16,a=e>>8&255,r=e&255;return[v(t),v(a),v(r)]},V=(e,t)=>{let a=Math.floor(e/361),r=Math.floor(e/19)%19,l=e%19;return[b((a-9)/9,2)*t,b((r-9)/9,2)*t,b((l-9)/9,2)*t]},W=(e,t,a,r)=>{A(e),r=r|1;let l=h(e[0]),S=Math.floor(l/9)+1,f=l%9+1,I=(h(e[1])+1)/166,c=new Array(f*S);for(let i=0;i{this.$el.querySelector("svg")?.setAttribute?.("viewBox","-4 -4 30 30")})},methods:{t:g}});var H=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcIconSvgWrapper",{staticClass:"favorite-marker-icon",attrs:{name:e.t("photos","Favorite"),svg:e.StarSvg}})},J=[],K=k(G,H,J,!1,null,"38da3233");const Q=K.exports,X="images",w=[];async function C(e){try{if(!w[e]){const t=await(await window.caches?.open(X))?.match(e);w[e]=t!==void 0}return w[e]}catch{return!1}}const Y={name:"FileComponent",components:{FavoriteIcon:Q,NcCheckboxRadioSwitch:O,VideoOutline:T,PlayCircleOutlineIcon:R},inheritAttrs:!1,props:{file:{type:Object,required:!0},selected:{type:Boolean,default:!1},allowSelection:{type:Boolean,default:!0}},data(){return{initialized:!1,loadedSmall:!1,errorSmall:!1,loadedLarge:!1,errorLarge:!1,isMobile:N()}},computed:{ariaLabel(){return this.file.attributes.favorite?g("photos",'Favorite image, open the full size "{name}" image',{name:this.file.basename}):g("photos",'Open the full size "{name}" image',{name:this.file.basename})},isImage(){return this.file.mime?.startsWith("image")??!1},decodedEtag(){return this.file.attributes.etag.replace(""","").replace(""","")},srcLarge(){return this.isMobile?this.getItemURL(256):this.getItemURL(1024)},srcSmall(){return this.getItemURL(64)},hasBlurhash(){return this.file.attributes["metadata-blurhash"]!==void 0}},watch:{async file(){this.initialized=!1,this.loadedSmall=!1,this.errorSmall=!1,this.loadedLarge=!1,this.errorLarge=!1,await this.init()}},async mounted(){await this.init()},beforeDestroy(){this.$refs.imgSmall!==void 0&&(this.$refs.imgSmall.src=""),this.$refs.srcLarge!==void 0&&(this.$refs.srcLarge.src="")},methods:{async init(){[this.loadedSmall,this.loadedLarge]=await Promise.all([await C(this.srcSmall),await C(this.srcLarge)]),this.initialized=!0,await this.$nextTick(),this.drawBlurhash()},emitClick(){this.$emit("click",this.file.fileid)},onLoadSmall(){this.loadedSmall=!0},onLoadLarge(){this.loadedLarge=!0},onErrorSmall(){this.errorSmall=!0},onErrorLarge(){this.errorLarge=!0},onToggle(e){this.$emit("select-toggled",{id:this.file.fileid,value:e})},getItemURL(e){const t=this.$route?.params.token;return t?M(`/apps/photos/api/v1/publicPreview/${this.file.fileid}?etag=${this.decodedEtag}&x=${e}&y=${e}&token=${t}`):M(`/apps/photos/api/v1/preview/${this.file.fileid}?etag=${this.decodedEtag}&x=${e}&y=${e}`)},drawBlurhash(){if(!this.hasBlurhash||!this.$refs.canvas)return;const e=this.$refs.canvas.width,t=this.$refs.canvas.height,a=j(this.file.attributes["metadata-blurhash"],e,t),r=this.$refs.canvas.getContext("2d"),l=r.createImageData(e,t);l.data.set(a),r.putImageData(l,0,0)},t:g}};var ee=function(){var e=this,t=e._self._c;return t("div",{staticClass:"file-container",class:{selected:e.selected},attrs:{"data-test":"media"}},[t("a",{staticClass:"file",attrs:{href:e.file.source,"aria-label":e.ariaLabel},on:{click:function(a){return a.stopPropagation(),a.preventDefault(),e.emitClick.apply(null,arguments)}}},[t("div",{staticClass:"file__images"},[e.file.mime?.includes("video")?t("VideoOutline",{staticClass:"icon-overlay",attrs:{size:64}}):e.file.attributes["metadata-files-live-photo"]!==void 0?t("PlayCircleOutlineIcon",{staticClass:"icon-overlay",attrs:{size:64}}):e._e(),e.initialized?[e.hasBlurhash&&!e.loadedLarge?t("canvas",{ref:"canvas",staticClass:"file__blurhash",attrs:{"aria-hidden":"true"}}):e._e(),!e.hasBlurhash&&!e.loadedLarge&&(e.loadedSmall||!e.errorSmall)?t("img",{key:`${e.file.basename}-small`,ref:"imgSmall",attrs:{src:e.srcSmall,alt:e.file.basename,decoding:e.loadedSmall?"sync":"async",fetchpriority:e.loadedSmall?"high":"low",loading:e.loadedSmall?"eager":void 0},on:{load:e.onLoadSmall,error:e.onErrorSmall}}):e._e(),e.loadedLarge||(e.hasBlurhash||e.loadedSmall||e.errorSmall)&&!e.errorLarge?t("img",{key:`${e.file.basename}-large`,ref:"imgLarge",attrs:{src:e.srcLarge,alt:e.file.basename,decoding:e.loadedLarge?"sync":"async",fetchpriority:e.loadedLarge?"high":"low",loading:e.loadedLarge?void 0:"lazy"},on:{load:e.onLoadLarge,error:e.onErrorLarge}}):e._e()]:e._e()],2)]),e.allowSelection?t("NcCheckboxRadioSwitch",{staticClass:"selection-checkbox",attrs:{"aria-label":e.t("photos","Select image {imageName}",{imageName:e.file.basename}),"model-value":e.selected},on:{"update:checked":e.onToggle}}):e._e(),e.file.attributes.favorite===1?e._m(0):e._e()],1)},te=[function(){var e=this,t=e._self._c;return t("FavoriteIcon",{staticClass:"favorite-state"})}],ae=k(Y,ee,te,!1,null,"37f60bf9");const oe=ae.exports;export{oe as F}; -//# sourceMappingURL=FileComponent-CYcuW4fI.chunk.mjs.map +import{d as P,a as g,n as M}from"./preload-helper-B1hyiFAx.chunk.mjs";import{k as F,v as N}from"./index-msNec4Xs.chunk.mjs";import{N as O}from"./NcCheckboxRadioSwitch-flYu6ojL-w4Tr59WY.chunk.mjs";import{n as k,r as R,V as T}from"./icons-DCSM00Rh.chunk.mjs";var U=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],h=e=>{let t=0;for(let a=0;a{let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},L=e=>{let t=Math.max(0,Math.min(1,e));return t<=.0031308?Math.trunc(t*12.92*255+.5):Math.trunc((1.055*Math.pow(t,.4166666666666667)-.055)*255+.5)},q=e=>e<0?-1:1,b=(e,t)=>q(e)*Math.pow(Math.abs(e),t),x=class extends Error{constructor(e){super(e),this.name="ValidationError",this.message=e}},A=e=>{if(!e||e.length<6)throw new x("The blurhash string must be at least 6 characters");let t=h(e[0]),a=Math.floor(t/9)+1,r=t%9+1;if(e.length!==4+2*r*a)throw new x(`blurhash length mismatch: length is ${e.length} but it should be ${4+2*r*a}`)},D=e=>{let t=e>>16,a=e>>8&255,r=e&255;return[v(t),v(a),v(r)]},V=(e,t)=>{let a=Math.floor(e/361),r=Math.floor(e/19)%19,l=e%19;return[b((a-9)/9,2)*t,b((r-9)/9,2)*t,b((l-9)/9,2)*t]},W=(e,t,a,r)=>{A(e),r=r|1;let l=h(e[0]),S=Math.floor(l/9)+1,f=l%9+1,I=(h(e[1])+1)/166,c=new Array(f*S);for(let i=0;i{this.$el.querySelector("svg")?.setAttribute?.("viewBox","-4 -4 30 30")})},methods:{t:g}});var H=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcIconSvgWrapper",{staticClass:"favorite-marker-icon",attrs:{name:e.t("photos","Favorite"),svg:e.StarSvg}})},J=[],K=k(G,H,J,!1,null,"38da3233");const Q=K.exports,X="images",w=[];async function C(e){try{if(!w[e]){const t=await(await window.caches?.open(X))?.match(e);w[e]=t!==void 0}return w[e]}catch{return!1}}const Y={name:"FileComponent",components:{FavoriteIcon:Q,NcCheckboxRadioSwitch:O,VideoOutline:T,PlayCircleOutlineIcon:R},inheritAttrs:!1,props:{file:{type:Object,required:!0},selected:{type:Boolean,default:!1},allowSelection:{type:Boolean,default:!0}},data(){return{initialized:!1,loadedSmall:!1,errorSmall:!1,loadedLarge:!1,errorLarge:!1,isMobile:N()}},computed:{ariaLabel(){return this.file.attributes.favorite?g("photos",'Favorite image, open the full size "{name}" image',{name:this.file.basename}):g("photos",'Open the full size "{name}" image',{name:this.file.basename})},isImage(){return this.file.mime?.startsWith("image")??!1},decodedEtag(){return this.file.attributes.etag.replace(""","").replace(""","")},srcLarge(){return this.isMobile?this.getItemURL(256):this.getItemURL(1024)},srcSmall(){return this.getItemURL(64)},hasBlurhash(){return this.file.attributes["metadata-blurhash"]!==void 0}},watch:{async file(){this.initialized=!1,this.loadedSmall=!1,this.errorSmall=!1,this.loadedLarge=!1,this.errorLarge=!1,await this.init()}},async mounted(){await this.init()},beforeDestroy(){this.$refs.imgSmall!==void 0&&(this.$refs.imgSmall.src=""),this.$refs.srcLarge!==void 0&&(this.$refs.srcLarge.src="")},methods:{async init(){[this.loadedSmall,this.loadedLarge]=await Promise.all([await C(this.srcSmall),await C(this.srcLarge)]),this.initialized=!0,await this.$nextTick(),this.drawBlurhash()},emitClick(){this.$emit("click",this.file.fileid)},onLoadSmall(){this.loadedSmall=!0},onLoadLarge(){this.loadedLarge=!0},onErrorSmall(){this.errorSmall=!0},onErrorLarge(){this.errorLarge=!0},onToggle(e){this.$emit("select-toggled",{id:this.file.fileid,value:e})},getItemURL(e){const t=this.$route?.params.token;return t?M(`/apps/photos/api/v1/publicPreview/${this.file.fileid}?etag=${this.decodedEtag}&x=${e}&y=${e}&token=${t}`):M(`/apps/photos/api/v1/preview/${this.file.fileid}?etag=${this.decodedEtag}&x=${e}&y=${e}`)},drawBlurhash(){if(!this.hasBlurhash||!this.$refs.canvas)return;const e=this.$refs.canvas.width,t=this.$refs.canvas.height,a=j(this.file.attributes["metadata-blurhash"],e,t),r=this.$refs.canvas.getContext("2d"),l=r.createImageData(e,t);l.data.set(a),r.putImageData(l,0,0)},t:g}};var ee=function(){var e=this,t=e._self._c;return t("div",{staticClass:"file-container",class:{selected:e.selected},attrs:{"data-test":"media"}},[t("a",{staticClass:"file",attrs:{href:e.file.source,"aria-label":e.ariaLabel},on:{click:function(a){return a.stopPropagation(),a.preventDefault(),e.emitClick.apply(null,arguments)}}},[t("div",{staticClass:"file__images"},[e.file.mime?.includes("video")?t("VideoOutline",{staticClass:"icon-overlay",attrs:{size:64}}):e.file.attributes["metadata-files-live-photo"]!==void 0?t("PlayCircleOutlineIcon",{staticClass:"icon-overlay",attrs:{size:64}}):e._e(),e.initialized?[e.hasBlurhash&&!e.loadedLarge?t("canvas",{ref:"canvas",staticClass:"file__blurhash",attrs:{"aria-hidden":"true"}}):e._e(),!e.hasBlurhash&&!e.loadedLarge&&(e.loadedSmall||!e.errorSmall)?t("img",{key:`${e.file.basename}-small`,ref:"imgSmall",attrs:{src:e.srcSmall,alt:e.file.basename,decoding:e.loadedSmall?"sync":"async",fetchpriority:e.loadedSmall?"high":"low",loading:e.loadedSmall?"eager":void 0},on:{load:e.onLoadSmall,error:e.onErrorSmall}}):e._e(),e.loadedLarge||(e.hasBlurhash||e.loadedSmall||e.errorSmall)&&!e.errorLarge?t("img",{key:`${e.file.basename}-large`,ref:"imgLarge",attrs:{src:e.srcLarge,alt:e.file.basename,decoding:e.loadedLarge?"sync":"async",fetchpriority:e.loadedLarge?"high":"low",loading:e.loadedLarge?void 0:"lazy"},on:{load:e.onLoadLarge,error:e.onErrorLarge}}):e._e()]:e._e()],2)]),e.allowSelection?t("NcCheckboxRadioSwitch",{staticClass:"selection-checkbox",attrs:{"aria-label":e.t("photos","Select image {imageName}",{imageName:e.file.basename}),"model-value":e.selected},on:{"update:checked":e.onToggle}}):e._e(),e.file.attributes.favorite===1?e._m(0):e._e()],1)},te=[function(){var e=this,t=e._self._c;return t("FavoriteIcon",{staticClass:"favorite-state"})}],ae=k(Y,ee,te,!1,null,"37f60bf9");const oe=ae.exports;export{oe as F}; +//# sourceMappingURL=FileComponent-CIkKxlac.chunk.mjs.map diff --git a/js/FileComponent-CYcuW4fI.chunk.mjs.license b/js/FileComponent-CIkKxlac.chunk.mjs.license similarity index 100% rename from js/FileComponent-CYcuW4fI.chunk.mjs.license rename to js/FileComponent-CIkKxlac.chunk.mjs.license diff --git a/js/FileComponent-CYcuW4fI.chunk.mjs.map b/js/FileComponent-CIkKxlac.chunk.mjs.map similarity index 99% rename from js/FileComponent-CYcuW4fI.chunk.mjs.map rename to js/FileComponent-CIkKxlac.chunk.mjs.map index 88065b41e..460292cbb 100644 --- a/js/FileComponent-CYcuW4fI.chunk.mjs.map +++ b/js/FileComponent-CIkKxlac.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FileComponent-CYcuW4fI.chunk.mjs","sources":["../node_modules/blurhash/dist/esm/index.js","../node_modules/@mdi/svg/svg/star.svg?raw","../src/components/FavoriteIcon.vue","../src/services/PreviewService.ts","../src/components/FileComponent.vue"],"sourcesContent":["var q=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"#\",\"$\",\"%\",\"*\",\"+\",\",\",\"-\",\".\",\":\",\";\",\"=\",\"?\",\"@\",\"[\",\"]\",\"^\",\"_\",\"{\",\"|\",\"}\",\"~\"],x=t=>{let e=0;for(let r=0;r{var r=\"\";for(let n=1;n<=e;n++){let l=Math.floor(t)/Math.pow(83,e-n)%83;r+=q[Math.floor(l)]}return r};var f=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},h=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},F=t=>t<0?-1:1,M=(t,e)=>F(t)*Math.pow(Math.abs(t),e);var d=class extends Error{constructor(e){super(e),this.name=\"ValidationError\",this.message=e}};var C=t=>{if(!t||t.length<6)throw new d(\"The blurhash string must be at least 6 characters\");let e=x(t[0]),r=Math.floor(e/9)+1,n=e%9+1;if(t.length!==4+2*n*r)throw new d(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*n*r}`)},N=t=>{try{C(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}},z=t=>{let e=t>>16,r=t>>8&255,n=t&255;return[f(e),f(r),f(n)]},L=(t,e)=>{let r=Math.floor(t/361),n=Math.floor(t/19)%19,l=t%19;return[M((r-9)/9,2)*e,M((n-9)/9,2)*e,M((l-9)/9,2)*e]},U=(t,e,r,n)=>{C(t),n=n|1;let l=x(t[0]),m=Math.floor(l/9)+1,b=l%9+1,i=(x(t[1])+1)/166,u=new Array(b*m);for(let o=0;o{let l=0,m=0,b=0,g=e*A;for(let u=0;u{let e=h(t[0]),r=h(t[1]),n=h(t[2]);return(e<<16)+(r<<8)+n},H=(t,e)=>{let r=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[0]/e,.5)*9+9.5)))),n=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[1]/e,.5)*9+9.5)))),l=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[2]/e,.5)*9+9.5))));return r*19*19+n*19+l},O=(t,e,r,n,l)=>{if(n<1||n>9||l<1||l>9)throw new d(\"BlurHash must have between 1 and 9 components\");if(e*r*4!==t.length)throw new d(\"Width and height must match the pixels array\");let m=[];for(let s=0;sa*Math.cos(Math.PI*o*B/e)*Math.cos(Math.PI*s*R/r));m.push(y)}let b=m[0],g=m.slice(1),i=\"\",u=n-1+(l-1)*9;i+=p(u,1);let c;if(g.length>0){let s=Math.max(...g.map(a=>Math.max(...a))),o=Math.floor(Math.max(0,Math.min(82,Math.floor(s*166-.5))));c=(o+1)/166,i+=p(o,1)}else c=1,i+=p(0,1);return i+=p($(b),4),g.forEach(s=>{i+=p(H(s,c),2)}),i},S=O;export{d as ValidationError,j as decode,S as encode,N as isBlurhashValid};\n//# sourceMappingURL=index.js.map","export default \"\"","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n// The preview service worker cache name (see webpack config)\nconst SWCacheName = 'images'\nconst hotCache = []\n\n/**\n * Check if the preview is already cached by the service worker\n *\n * @param previewUrl\n */\nexport async function isCachedPreview(previewUrl: string): Promise {\n\ttry {\n\t\t// Browser's cache take ~100ms to check, hot cache ~10ms.\n\t\tif (!hotCache[previewUrl]) {\n\t\t\tconst cache = await window.caches?.open(SWCacheName)\n\t\t\tconst response = await cache?.match(previewUrl)\n\t\t\thotCache[previewUrl] = response !== undefined\n\t\t}\n\n\t\treturn hotCache[previewUrl]\n\t} catch {\n\t\treturn false\n\t}\n}\n","\n\n\n\n\n\n\n"],"names":["q","x","t","e","r","n","f","h","F","M","d","C","z","L","U","m","b","i","u","o","a","c","s","y","B","R","w","P","G","T","V","I","StarSvg","_sfc_main$1","defineComponent","NcIconSvgWrapper","SWCacheName","hotCache","isCachedPreview","previewUrl","response","_sfc_main","FavoriteIcon","NcCheckboxRadioSwitch","VideoOutline","PlayCircleOutlineIcon","useIsMobile","value","size","token","generateUrl","width","height","pixels","decode","ctx","imageData"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file +{"version":3,"file":"FileComponent-CIkKxlac.chunk.mjs","sources":["../node_modules/blurhash/dist/esm/index.js","../node_modules/@mdi/svg/svg/star.svg?raw","../src/components/FavoriteIcon.vue","../src/services/PreviewService.ts","../src/components/FileComponent.vue"],"sourcesContent":["var q=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"#\",\"$\",\"%\",\"*\",\"+\",\",\",\"-\",\".\",\":\",\";\",\"=\",\"?\",\"@\",\"[\",\"]\",\"^\",\"_\",\"{\",\"|\",\"}\",\"~\"],x=t=>{let e=0;for(let r=0;r{var r=\"\";for(let n=1;n<=e;n++){let l=Math.floor(t)/Math.pow(83,e-n)%83;r+=q[Math.floor(l)]}return r};var f=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},h=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},F=t=>t<0?-1:1,M=(t,e)=>F(t)*Math.pow(Math.abs(t),e);var d=class extends Error{constructor(e){super(e),this.name=\"ValidationError\",this.message=e}};var C=t=>{if(!t||t.length<6)throw new d(\"The blurhash string must be at least 6 characters\");let e=x(t[0]),r=Math.floor(e/9)+1,n=e%9+1;if(t.length!==4+2*n*r)throw new d(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*n*r}`)},N=t=>{try{C(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}},z=t=>{let e=t>>16,r=t>>8&255,n=t&255;return[f(e),f(r),f(n)]},L=(t,e)=>{let r=Math.floor(t/361),n=Math.floor(t/19)%19,l=t%19;return[M((r-9)/9,2)*e,M((n-9)/9,2)*e,M((l-9)/9,2)*e]},U=(t,e,r,n)=>{C(t),n=n|1;let l=x(t[0]),m=Math.floor(l/9)+1,b=l%9+1,i=(x(t[1])+1)/166,u=new Array(b*m);for(let o=0;o{let l=0,m=0,b=0,g=e*A;for(let u=0;u{let e=h(t[0]),r=h(t[1]),n=h(t[2]);return(e<<16)+(r<<8)+n},H=(t,e)=>{let r=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[0]/e,.5)*9+9.5)))),n=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[1]/e,.5)*9+9.5)))),l=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[2]/e,.5)*9+9.5))));return r*19*19+n*19+l},O=(t,e,r,n,l)=>{if(n<1||n>9||l<1||l>9)throw new d(\"BlurHash must have between 1 and 9 components\");if(e*r*4!==t.length)throw new d(\"Width and height must match the pixels array\");let m=[];for(let s=0;sa*Math.cos(Math.PI*o*B/e)*Math.cos(Math.PI*s*R/r));m.push(y)}let b=m[0],g=m.slice(1),i=\"\",u=n-1+(l-1)*9;i+=p(u,1);let c;if(g.length>0){let s=Math.max(...g.map(a=>Math.max(...a))),o=Math.floor(Math.max(0,Math.min(82,Math.floor(s*166-.5))));c=(o+1)/166,i+=p(o,1)}else c=1,i+=p(0,1);return i+=p($(b),4),g.forEach(s=>{i+=p(H(s,c),2)}),i},S=O;export{d as ValidationError,j as decode,S as encode,N as isBlurhashValid};\n//# sourceMappingURL=index.js.map","export default \"\"","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n// The preview service worker cache name (see webpack config)\nconst SWCacheName = 'images'\nconst hotCache = []\n\n/**\n * Check if the preview is already cached by the service worker\n *\n * @param previewUrl\n */\nexport async function isCachedPreview(previewUrl: string): Promise {\n\ttry {\n\t\t// Browser's cache take ~100ms to check, hot cache ~10ms.\n\t\tif (!hotCache[previewUrl]) {\n\t\t\tconst cache = await window.caches?.open(SWCacheName)\n\t\t\tconst response = await cache?.match(previewUrl)\n\t\t\thotCache[previewUrl] = response !== undefined\n\t\t}\n\n\t\treturn hotCache[previewUrl]\n\t} catch {\n\t\treturn false\n\t}\n}\n","\n\n\n\n\n\n\n"],"names":["q","x","t","e","r","n","f","h","F","M","d","C","z","L","U","m","b","i","u","o","a","c","s","y","B","R","w","P","G","T","V","I","StarSvg","_sfc_main$1","defineComponent","NcIconSvgWrapper","SWCacheName","hotCache","isCachedPreview","previewUrl","response","_sfc_main","FavoriteIcon","NcCheckboxRadioSwitch","VideoOutline","PlayCircleOutlineIcon","useIsMobile","value","size","token","generateUrl","width","height","pixels","decode","ctx","imageData"],"mappings":"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","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/js/FilesSelectionMixin-_WfmSvdO.chunk.mjs b/js/FilesSelectionMixin-QyiriVe4.chunk.mjs similarity index 98% rename from js/FilesSelectionMixin-_WfmSvdO.chunk.mjs rename to js/FilesSelectionMixin-QyiriVe4.chunk.mjs index 7f2be81da..2731ef0b0 100644 --- a/js/FilesSelectionMixin-_WfmSvdO.chunk.mjs +++ b/js/FilesSelectionMixin-QyiriVe4.chunk.mjs @@ -1,2 +1,2 @@ -import{s as m,v as g,d as y}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as w}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as v}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{n as f,u as b}from"./icons-Du8Q1knx.chunk.mjs";import{l as c}from"./index-msNec4Xs.chunk.mjs";import{f as S}from"./fileFetcher-CoIlTdaG.chunk.mjs";const H={};var C=function(e,t){return e("ul",t._l(t.props.rows,function(i){return e("div",{key:i.key,staticClass:"tiled-row",style:{height:`${i.height}px`}},t._l(i.items,function(o){return e("li",{key:o.id,style:{width:o.ratio?`${i.height*o.ratio}px`:"100%",height:`${i.height}px`}},[t._t("default",null,{row:i,item:o})],2)}),0)}),0)},_=[],T=f(H,C,_,!0,null,"c003b6e3");const k=T.exports;function $(e,t,i=200){if(t===0)return[];const o=[];let n=0,l=0;for(;l({...h,width:a*h.ratio,height:a})),height:a,key:r.map(h=>h.id).join("-")},n+=1}return o}function F(e,t){return e.map(i=>t*i.ratio).reduce((i,o)=>i+o)}function L(e,t,i,o){const n=e.map(r=>r.ratio).reduce((r,a)=>r+a);let l=t/n;return e.length===1&&e[0].width>t&&(l=t/e[0].ratio),i&&(l=Math.min(o+20,l)),l}const z={name:"TiledLayout",components:{TiledRows:k},props:{sections:{type:Array,required:!0},baseHeight:{type:Number,default:200}},data(){return{containerWidth:0,resizeObserver:null}},computed:{tiledSections(){return c.debug("[TiledLayout] Computing rows",{items:this.sections}),this.sections.map(e=>{const t=$(e.items,this.containerWidth,this.baseHeight);return{...e,key:e.id,rows:t.map(i=>({...i,sectionKey:e.id})),height:t.reduce((i,o)=>i+o.height,0)}})}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target.classList.contains("tiled-container")&&(this.containerWidth=i.width)}}),this.resizeObserver.observe(this.$refs.tiledLayoutContainer)},beforeDestroy(){this.resizeObserver?.disconnect()}};var E=function(){var e=this,t=e._self._c;return t("div",{ref:"tiledLayoutContainer",staticClass:"tiled-container"},[e._t("default",function(){return[t("TiledRows",{attrs:{rows:e.tiledSections}})]},{tiledSections:e.tiledSections})],2)},I=[],x=f(z,E,I,!1,null,"f2880905");const N=x.exports,P={name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){c.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let o=0,n=0;const l=this.sections.map(s=>(n+=this.headerHeight,{...s,rows:s.rows.reduce((d,u)=>{o=n,n+=u.height;let p=0;return ni&&(p=(o-i)/e),p>this.renderDistance?d:[...d,{...u,distance:p}]},[])})).filter(s=>s.rows.length>0),r=l.flatMap(({rows:s})=>s).flatMap(({items:s})=>s);r.forEach(s=>s.key=this.rowIdToKeyMap[s.id]);const a=r.map(({key:s})=>s).filter(s=>s!==void 0),h=Object.values(this.rowIdToKeyMap).filter(s=>!a.includes(s));return r.filter(({key:s})=>s===void 0).forEach(s=>s.key=h.pop()??Math.random().toString(36).substr(2)),this.rowIdToKeyMap=r.reduce((s,{id:d,key:u})=>({...s,[`${d}`]:u}),{}),l},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,t)=>e+t,0)+200},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const t of this.sections){if(t.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+t.height;continue}for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return c.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){c.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key!==e){t+=this.headerHeight+i.height;continue}break}c.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.$refs.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this.rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target===this.container&&(this.containerHeight=i.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container?.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeDestroy(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container?.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}};var M=function(){var e=this,t=e._self._c;return!e.useWindow&&e.containerElement===null?t("div",{ref:"container",staticClass:"vs-container"},[t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._t("loader")],2)]):t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._t("loader")],2)},B=[],O=f(P,M,B,!1,null,"cb2732da");const W=O.exports,V={name:"FilesListViewer",components:{PackageVariant:b,NcEmptyContent:w,NcLoadingIcon:v,TiledLayout:N,VirtualScrolling:W},props:{fileIds:{type:Array,default:void 0},fileIdsBySection:{type:Object,default:void 0},sections:{type:Array,default:void 0},loading:{type:Boolean,default:!1},emptyMessage:{type:String,default:""},baseHeight:{type:Number,default:200},sectionHeaderHeight:{type:Number,default:75},scrollToSection:{type:String,default:""},containerElement:{type:[HTMLElement,null],default:null},useWindow:{type:Boolean,default:!1}},data(){return{placeholderFiles:Array(20).fill(0).map((e,t)=>{const i=this.croppedLayout?200:200*(1+Math.random()*2);return{id:t.toString(),width:i,height:200,ratio:i/200}})}},computed:{files(){return this.$store.state.files.files},showPlaceholders(){return this.loading&&(this.fileIds?.length===0||this.sections?.length===0)},itemsBySections(){return this.fileIds!==void 0?this.showPlaceholders?[{id:"",items:this.placeholderFiles}]:[{id:"",items:this.fileIds.filter(e=>this.files[e]).map(this.mapFileToItem)}]:this.sections!==void 0?this.showPlaceholders?[{id:"placeholder",items:this.placeholderFiles}]:this.sections.map(e=>({id:e,items:this.fileIdsBySection[e].filter(t=>this.files[t]).map(this.mapFileToItem)})):[]},photosCount(){return this.itemsBySections.map(({items:e})=>e.length).reduce((e,t)=>e+t,0)},showLoader(){return this.loading&&(this.fileIds?.length!==0||this.sections?.length!==0)},croppedLayout(){return this.$store.state.userConfig.croppedLayout}},mounted(){g("files:node:updated",this.handleFileUpdated),g("files:node:deleted",this.handleFileDeleted)},destroyed(){m("files:node:updated",this.handleFileUpdated),m("files:node:deleted",this.handleFileDeleted)},methods:{needContent(){this.$emit("need-content")},mapFileToItem(e){const t=this.files[e];return{id:t.fileid?.toString(),width:t.attributes["metadata-photos-size"].width,height:t.attributes["metadata-photos-size"].height,ratio:this.croppedLayout?1:t.attributes["metadata-photos-size"].width/t.attributes["metadata-photos-size"].height}},async handleFileUpdated({fileid:e}){const t=await S(this.files[e].path);this.$store.dispatch("appendFiles",[t])},handleFileDeleted({fileid:e}){this.$store.commit("deleteFile",e)}}};var R=function(){var e=this,t=e._self._c;return t("div",{staticClass:"files-list-viewer"},[e.emptyMessage!==""&&e.photosCount===0&&!e.loading?t("NcEmptyContent",{key:"emptycontent",attrs:{name:e.emptyMessage}},[t("PackageVariant",{attrs:{slot:"icon"},slot:"icon"})],1):e._e(),t("TiledLayout",{attrs:{"base-height":e.baseHeight,sections:e.itemsBySections},scopedSlots:e._u([{key:"default",fn:function({tiledSections:i}){return t("VirtualScrolling",{attrs:{"use-window":e.useWindow,"container-element":e.containerElement,sections:i,"scroll-to-key":e.scrollToSection,"header-height":e.sectionHeaderHeight},on:{"need-content":e.needContent},scopedSlots:e._u([{key:"default",fn:function({visibleSections:o}){return e._l(o,function(n){return t("div",{key:n.id},[n.id!==""?[e.showPlaceholders?t("div",{staticClass:"files-list-viewer__placeholder",style:{"flex-basis":"100%",height:`${e.sectionHeaderHeight}px`}}):e._t("default",null,{file:{id:n.id},isHeader:!0})]:e._e(),t("ul",[e._l(n.rows,function(l,r){return e._l(l.items,function(a){return t("li",{key:a.key,class:{"last-tiled-rows":r===n.rows.length-1},style:{"flex-basis":`${a.width-1}px`,height:`${a.height}px`}},[e.showPlaceholders?t("div",{staticClass:"files-list-viewer__placeholder"}):e._t("default",null,{file:a})],2)})})],2)],2)})}}])},[e.loading&&!e.showPlaceholders?t("NcLoadingIcon",{staticClass:"files-list-viewer__loader",attrs:{slot:"loader"},slot:"loader"}):e._e()],1)}}])})],1)},D=[],K=f(V,R,D,!1,null,"2ca16ec8");const J=K.exports,Q=y({name:"FilesSelectionMixin",data(){return{selection:{}}},watch:{$route(){this.resetSelection()}},methods:{onFileSelectToggle({id:e,value:t}){this.$set(this.selection,e,t)},onUncheckFiles(e){e.forEach(t=>this.$set(this.selection,t,!1))},resetSelection(){this.selection={}}},computed:{selectedFileIds(){return Object.keys(this.selection).filter(e=>this.selection[e])}}});export{Q as F,J as a}; -//# sourceMappingURL=FilesSelectionMixin-_WfmSvdO.chunk.mjs.map +import{s as m,v as g,d as y}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as w}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as v}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{n as f,u as b}from"./icons-DCSM00Rh.chunk.mjs";import{l as c}from"./index-msNec4Xs.chunk.mjs";import{f as S}from"./fileFetcher-CoIlTdaG.chunk.mjs";const H={};var C=function(e,t){return e("ul",t._l(t.props.rows,function(i){return e("div",{key:i.key,staticClass:"tiled-row",style:{height:`${i.height}px`}},t._l(i.items,function(o){return e("li",{key:o.id,style:{width:o.ratio?`${i.height*o.ratio}px`:"100%",height:`${i.height}px`}},[t._t("default",null,{row:i,item:o})],2)}),0)}),0)},_=[],T=f(H,C,_,!0,null,"c003b6e3");const k=T.exports;function $(e,t,i=200){if(t===0)return[];const o=[];let n=0,l=0;for(;l({...h,width:a*h.ratio,height:a})),height:a,key:r.map(h=>h.id).join("-")},n+=1}return o}function F(e,t){return e.map(i=>t*i.ratio).reduce((i,o)=>i+o)}function L(e,t,i,o){const n=e.map(r=>r.ratio).reduce((r,a)=>r+a);let l=t/n;return e.length===1&&e[0].width>t&&(l=t/e[0].ratio),i&&(l=Math.min(o+20,l)),l}const z={name:"TiledLayout",components:{TiledRows:k},props:{sections:{type:Array,required:!0},baseHeight:{type:Number,default:200}},data(){return{containerWidth:0,resizeObserver:null}},computed:{tiledSections(){return c.debug("[TiledLayout] Computing rows",{items:this.sections}),this.sections.map(e=>{const t=$(e.items,this.containerWidth,this.baseHeight);return{...e,key:e.id,rows:t.map(i=>({...i,sectionKey:e.id})),height:t.reduce((i,o)=>i+o.height,0)}})}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target.classList.contains("tiled-container")&&(this.containerWidth=i.width)}}),this.resizeObserver.observe(this.$refs.tiledLayoutContainer)},beforeDestroy(){this.resizeObserver?.disconnect()}};var E=function(){var e=this,t=e._self._c;return t("div",{ref:"tiledLayoutContainer",staticClass:"tiled-container"},[e._t("default",function(){return[t("TiledRows",{attrs:{rows:e.tiledSections}})]},{tiledSections:e.tiledSections})],2)},I=[],x=f(z,E,I,!1,null,"f2880905");const N=x.exports,P={name:"VirtualScrolling",props:{sections:{type:Array,required:!0},containerElement:{type:HTMLElement,default:null},useWindow:{type:Boolean,default:!1},headerHeight:{type:Number,default:75},renderDistance:{type:Number,default:.5},bottomBufferRatio:{type:Number,default:2},scrollToKey:{type:String,default:""}},data(){return{scrollPosition:0,containerHeight:0,rowsContainerHeight:0,resizeObserver:null}},computed:{visibleSections(){c.debug("[VirtualScrolling] Computing visible section",{sections:this.sections});const e=this.containerHeight,t=this.scrollPosition,i=t+e;let o=0,n=0;const l=this.sections.map(s=>(n+=this.headerHeight,{...s,rows:s.rows.reduce((d,u)=>{o=n,n+=u.height;let p=0;return ni&&(p=(o-i)/e),p>this.renderDistance?d:[...d,{...u,distance:p}]},[])})).filter(s=>s.rows.length>0),r=l.flatMap(({rows:s})=>s).flatMap(({items:s})=>s);r.forEach(s=>s.key=this.rowIdToKeyMap[s.id]);const a=r.map(({key:s})=>s).filter(s=>s!==void 0),h=Object.values(this.rowIdToKeyMap).filter(s=>!a.includes(s));return r.filter(({key:s})=>s===void 0).forEach(s=>s.key=h.pop()??Math.random().toString(36).substr(2)),this.rowIdToKeyMap=r.reduce((s,{id:d,key:u})=>({...s,[`${d}`]:u}),{}),l},totalHeight(){return this.sections.map(e=>this.headerHeight+e.height).reduce((e,t)=>e+t,0)+200},paddingTop(){if(this.visibleSections.length===0)return 0;let e=0;for(const t of this.sections){if(t.key!==this.visibleSections[0].rows[0].sectionKey){e+=this.headerHeight+t.height;continue}for(const i of t.rows){if(i.key===this.visibleSections[0].rows[0].key)return e;e+=i.height}e+=this.headerHeight}return e},rowsContainerStyle(){return{height:`${this.totalHeight}px`,paddingTop:`${this.paddingTop}px`}},isNearBottom(){const e=this.containerHeight*this.bottomBufferRatio;return this.scrollPosition+this.containerHeight>=this.totalHeight-e},container(){return c.debug("[VirtualScrolling] Computing container"),this.containerElement!==null?this.containerElement:this.useWindow?window:this.$refs.container}},watch:{isNearBottom(e){c.debug("[VirtualScrolling] isNearBottom changed",{value:e}),e&&this.$emit("need-content")},visibleSections(){this.isNearBottom&&this.$emit("need-content")},scrollToKey(e){let t=0;for(const i of this.sections){if(i.key!==e){t+=this.headerHeight+i.height;continue}break}c.debug("[VirtualScrolling] Scrolling to",{currentRowTopDistanceFromTop:t}),this.$refs.container.scrollTo({top:t,behavior:"smooth"})}},beforeCreate(){this.rowIdToKeyMap={}},mounted(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e){const i=t.contentRect;t.target===this.container&&(this.containerHeight=i.height),t.target.classList.contains("vs-rows-container")&&(this.rowsContainerHeight=i.height)}}),this.useWindow?(window.addEventListener("resize",this.updateContainerSize,{passive:!0}),this.containerHeight=window.innerHeight):this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.$refs.rowsContainer),this.container?.addEventListener("scroll",this.updateScrollPosition,{passive:!0})},beforeDestroy(){this.useWindow&&window.removeEventListener("resize",this.updateContainerSize),this.resizeObserver?.disconnect(),this.container?.removeEventListener("scroll",this.updateScrollPosition)},methods:{updateScrollPosition(){this._onScrollHandle??=requestAnimationFrame(()=>{this._onScrollHandle=null,this.useWindow?this.scrollPosition=this.container.scrollY:this.scrollPosition=this.container.scrollTop})},updateContainerSize(){this.containerHeight=window.innerHeight}}};var M=function(){var e=this,t=e._self._c;return!e.useWindow&&e.containerElement===null?t("div",{ref:"container",staticClass:"vs-container"},[t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._t("loader")],2)]):t("div",{ref:"rowsContainer",staticClass:"vs-rows-container",style:e.rowsContainerStyle},[e._t("default",null,{visibleSections:e.visibleSections}),e._t("loader")],2)},B=[],O=f(P,M,B,!1,null,"cb2732da");const W=O.exports,V={name:"FilesListViewer",components:{PackageVariant:b,NcEmptyContent:w,NcLoadingIcon:v,TiledLayout:N,VirtualScrolling:W},props:{fileIds:{type:Array,default:void 0},fileIdsBySection:{type:Object,default:void 0},sections:{type:Array,default:void 0},loading:{type:Boolean,default:!1},emptyMessage:{type:String,default:""},baseHeight:{type:Number,default:200},sectionHeaderHeight:{type:Number,default:75},scrollToSection:{type:String,default:""},containerElement:{type:[HTMLElement,null],default:null},useWindow:{type:Boolean,default:!1}},data(){return{placeholderFiles:Array(20).fill(0).map((e,t)=>{const i=this.croppedLayout?200:200*(1+Math.random()*2);return{id:t.toString(),width:i,height:200,ratio:i/200}})}},computed:{files(){return this.$store.state.files.files},showPlaceholders(){return this.loading&&(this.fileIds?.length===0||this.sections?.length===0)},itemsBySections(){return this.fileIds!==void 0?this.showPlaceholders?[{id:"",items:this.placeholderFiles}]:[{id:"",items:this.fileIds.filter(e=>this.files[e]).map(this.mapFileToItem)}]:this.sections!==void 0?this.showPlaceholders?[{id:"placeholder",items:this.placeholderFiles}]:this.sections.map(e=>({id:e,items:this.fileIdsBySection[e].filter(t=>this.files[t]).map(this.mapFileToItem)})):[]},photosCount(){return this.itemsBySections.map(({items:e})=>e.length).reduce((e,t)=>e+t,0)},showLoader(){return this.loading&&(this.fileIds?.length!==0||this.sections?.length!==0)},croppedLayout(){return this.$store.state.userConfig.croppedLayout}},mounted(){g("files:node:updated",this.handleFileUpdated),g("files:node:deleted",this.handleFileDeleted)},destroyed(){m("files:node:updated",this.handleFileUpdated),m("files:node:deleted",this.handleFileDeleted)},methods:{needContent(){this.$emit("need-content")},mapFileToItem(e){const t=this.files[e];return{id:t.fileid?.toString(),width:t.attributes["metadata-photos-size"].width,height:t.attributes["metadata-photos-size"].height,ratio:this.croppedLayout?1:t.attributes["metadata-photos-size"].width/t.attributes["metadata-photos-size"].height}},async handleFileUpdated({fileid:e}){const t=await S(this.files[e].path);this.$store.dispatch("appendFiles",[t])},handleFileDeleted({fileid:e}){this.$store.commit("deleteFile",e)}}};var R=function(){var e=this,t=e._self._c;return t("div",{staticClass:"files-list-viewer"},[e.emptyMessage!==""&&e.photosCount===0&&!e.loading?t("NcEmptyContent",{key:"emptycontent",attrs:{name:e.emptyMessage}},[t("PackageVariant",{attrs:{slot:"icon"},slot:"icon"})],1):e._e(),t("TiledLayout",{attrs:{"base-height":e.baseHeight,sections:e.itemsBySections},scopedSlots:e._u([{key:"default",fn:function({tiledSections:i}){return t("VirtualScrolling",{attrs:{"use-window":e.useWindow,"container-element":e.containerElement,sections:i,"scroll-to-key":e.scrollToSection,"header-height":e.sectionHeaderHeight},on:{"need-content":e.needContent},scopedSlots:e._u([{key:"default",fn:function({visibleSections:o}){return e._l(o,function(n){return t("div",{key:n.id},[n.id!==""?[e.showPlaceholders?t("div",{staticClass:"files-list-viewer__placeholder",style:{"flex-basis":"100%",height:`${e.sectionHeaderHeight}px`}}):e._t("default",null,{file:{id:n.id},isHeader:!0})]:e._e(),t("ul",[e._l(n.rows,function(l,r){return e._l(l.items,function(a){return t("li",{key:a.key,class:{"last-tiled-rows":r===n.rows.length-1},style:{"flex-basis":`${a.width-1}px`,height:`${a.height}px`}},[e.showPlaceholders?t("div",{staticClass:"files-list-viewer__placeholder"}):e._t("default",null,{file:a})],2)})})],2)],2)})}}])},[e.loading&&!e.showPlaceholders?t("NcLoadingIcon",{staticClass:"files-list-viewer__loader",attrs:{slot:"loader"},slot:"loader"}):e._e()],1)}}])})],1)},D=[],K=f(V,R,D,!1,null,"2ca16ec8");const J=K.exports,Q=y({name:"FilesSelectionMixin",data(){return{selection:{}}},watch:{$route(){this.resetSelection()}},methods:{onFileSelectToggle({id:e,value:t}){this.$set(this.selection,e,t)},onUncheckFiles(e){e.forEach(t=>this.$set(this.selection,t,!1))},resetSelection(){this.selection={}}},computed:{selectedFileIds(){return Object.keys(this.selection).filter(e=>this.selection[e])}}});export{Q as F,J as a}; +//# sourceMappingURL=FilesSelectionMixin-QyiriVe4.chunk.mjs.map diff --git a/js/FilesSelectionMixin-_WfmSvdO.chunk.mjs.license b/js/FilesSelectionMixin-QyiriVe4.chunk.mjs.license similarity index 100% rename from js/FilesSelectionMixin-_WfmSvdO.chunk.mjs.license rename to js/FilesSelectionMixin-QyiriVe4.chunk.mjs.license diff --git a/js/FilesSelectionMixin-_WfmSvdO.chunk.mjs.map b/js/FilesSelectionMixin-QyiriVe4.chunk.mjs.map similarity index 99% rename from js/FilesSelectionMixin-_WfmSvdO.chunk.mjs.map rename to js/FilesSelectionMixin-QyiriVe4.chunk.mjs.map index a9609b438..235fc8e02 100644 --- a/js/FilesSelectionMixin-_WfmSvdO.chunk.mjs.map +++ b/js/FilesSelectionMixin-QyiriVe4.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FilesSelectionMixin-_WfmSvdO.chunk.mjs","sources":["../src/services/TiledLayout.ts","../src/components/TiledLayout/TiledLayout.vue","../src/components/VirtualScrolling.vue","../src/components/FilesListViewer.vue","../src/mixins/FilesSelectionMixin.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport type TiledItem = {\n\tid: string // Unique id for the item.\n\twidth: number // Real width of the item.\n\theight: number // Real height of the item.\n\tratio: number // The aspect ratio of the item.\n}\n\nexport type Section = {\n\tid: string // Unique id for the section.\n\titems: TiledItem[] // Real width of the item.\n}\n\nexport type TiledRow = {\n\titems: TiledItem[] // List of item in the row.\n\theight: number // Height of the row.\n\tkey: string // Unique key for the row.\n}\n\nexport type TiledSection = Section & {\n\tkey: string // Unique key for the section.\n\trows: TiledRow[] // Real width of the item.\n\theight: number // Height of the section.\n}\n\n/**\n * Split items in rows of equal width.\n * The last row will not be forced to match containerWidth.\n *\n * @param items\n * @param containerWidth\n * @param baseHeight\n */\nexport function splitItemsInRows(items: TiledItem[], containerWidth: number, baseHeight: number = 200): TiledRow[] {\n\tif (containerWidth === 0) {\n\t\treturn []\n\t}\n\n\tconst rows: TiledRow[] = []\n\tlet rowNumber = 0\n\tlet currentItem = 0\n\n\twhile (currentItem < items.length) {\n\t\tconst rowItems: TiledItem[] = []\n\n\t\t// Fill the row with new items as long as the width is less than containerWidth.\n\t\tdo {\n\t\t\trowItems.push(items[currentItem++])\n\t\t} while (\n\t\t\tcurrentItem < items.length\n\t\t\t&& computeRowWidth([...rowItems, items[currentItem]], baseHeight) <= containerWidth\n\t\t)\n\n\t\tconst rowHeight = computeRowHeight(\n\t\t\trowItems,\n\t\t\tcontainerWidth,\n\t\t\titems.length === currentItem,\n\t\t\tbaseHeight,\n\t\t)\n\n\t\trows[rowNumber] = {\n\t\t\titems: rowItems.map((item) => ({ ...item, width: rowHeight * item.ratio, height: rowHeight })),\n\t\t\t// Key to help vue to keep track of the row in VirtualScrolling.\n\t\t\theight: rowHeight,\n\t\t\tkey: rowItems.map((item) => item.id).join('-'),\n\t\t}\n\n\t\trowNumber += 1\n\t}\n\n\treturn rows\n}\n\n/**\n *\n * @param items\n * @param baseHeight\n */\nfunction computeRowWidth(items: TiledItem[], baseHeight: number): number {\n\treturn items\n\t\t.map((item) => baseHeight * item.ratio)\n\t\t.reduce((sum, itemWidth) => sum + itemWidth)\n}\n\n/**\n * Compute the row height based on its items and on the container's width.\n *\n * Math time !\n * With Rn the aspect ratio of item n\n * Wn the width of item n\n * Hn the height of item n\n * Wc the width of the container\n * Hr the height of the row\n * For n items we want: Wc = W1 + W2 + ... + Wn\n * We know Rn = Wn / Hn\n * So Wn = Rn * Hn\n * So Wc = (R1 * H1) + (R2 * H2) + ... + (Rn * Hn)\n * But we also want Hr === H1 === H2 === ... === Hn\n * So Wc = (R1 * Hr) + (R2 * Hr) + ... + (Rn * Hr)\n * So Wc = Hr * (R1 + R2 + ... + Rn)\n * So Hr = Wc / (R1 + R2 + ... + Rn)\n *\n * @param items\n * @param containerWidth\n * @param isLastRow\n * @param baseHeight\n */\nfunction computeRowHeight(items: TiledItem[], containerWidth: number, isLastRow: boolean, baseHeight: number): number {\n\tconst sumOfItemsRatio = items\n\t\t.map((item) => item.ratio)\n\t\t.reduce((sum, itemRatio) => sum + itemRatio)\n\n\tlet rowHeight = containerWidth / sumOfItemsRatio\n\n\t// Exception 1: there is only one item which is larger than containerWidth.\n\t// Limit its height so that itemWidth === containerWidth\n\tif (items.length === 1 && items[0].width > containerWidth) {\n\t\trowHeight = containerWidth / items[0].ratio\n\t}\n\n\t// Exception 2: we reached the last row.\n\t// Force the items width to match containerWidth, and limit their height to baseHeight + 20.\n\tif (isLastRow) {\n\t\trowHeight = Math.min(baseHeight + 20, rowHeight)\n\t}\n\n\treturn rowHeight\n}\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n\tname: 'FilesSelectionMixin',\n\n\tdata() {\n\t\treturn {\n\t\t\tselection: {} as Record,\n\t\t}\n\t},\n\n\twatch: {\n\t\t$route() {\n\t\t\tthis.resetSelection()\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonFileSelectToggle({ id, value }): void {\n\t\t\tthis.$set(this.selection, id, value)\n\t\t},\n\n\t\tonUncheckFiles(filesIds: string[]): void {\n\t\t\tfilesIds.forEach((filesId: string) => this.$set(this.selection, filesId, false))\n\t\t},\n\n\t\tresetSelection(): void {\n\t\t\tthis.selection = {}\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tselectedFileIds(): string[] {\n\t\t\treturn Object.keys(this.selection).filter((fileId) => this.selection[fileId])\n\t\t},\n\t},\n})\n"],"names":["splitItemsInRows","items","containerWidth","baseHeight","rows","rowNumber","currentItem","rowItems","computeRowWidth","rowHeight","computeRowHeight","item","sum","itemWidth","isLastRow","sumOfItemsRatio","itemRatio","_sfc_main$2","TiledRows","logger","section","row","totalHeight","entries","entry","cr","_sfc_main$1","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","visibleRows","distance","visibleItems","usedTokens","key","unusedTokens","finalMapping","id","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","_sfc_main","PackageVariant","NcEmptyContent","NcLoadingIcon","TiledLayout","VirtualScrolling","_","index","width","fileId","sectionId","total","length","subscribe","unsubscribe","file","fileid","fetchedFile","fetchFile","FilesSelectionMixin","defineComponent","filesIds","filesId"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"FilesSelectionMixin-QyiriVe4.chunk.mjs","sources":["../src/services/TiledLayout.ts","../src/components/TiledLayout/TiledLayout.vue","../src/components/VirtualScrolling.vue","../src/components/FilesListViewer.vue","../src/mixins/FilesSelectionMixin.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport type TiledItem = {\n\tid: string // Unique id for the item.\n\twidth: number // Real width of the item.\n\theight: number // Real height of the item.\n\tratio: number // The aspect ratio of the item.\n}\n\nexport type Section = {\n\tid: string // Unique id for the section.\n\titems: TiledItem[] // Real width of the item.\n}\n\nexport type TiledRow = {\n\titems: TiledItem[] // List of item in the row.\n\theight: number // Height of the row.\n\tkey: string // Unique key for the row.\n}\n\nexport type TiledSection = Section & {\n\tkey: string // Unique key for the section.\n\trows: TiledRow[] // Real width of the item.\n\theight: number // Height of the section.\n}\n\n/**\n * Split items in rows of equal width.\n * The last row will not be forced to match containerWidth.\n *\n * @param items\n * @param containerWidth\n * @param baseHeight\n */\nexport function splitItemsInRows(items: TiledItem[], containerWidth: number, baseHeight: number = 200): TiledRow[] {\n\tif (containerWidth === 0) {\n\t\treturn []\n\t}\n\n\tconst rows: TiledRow[] = []\n\tlet rowNumber = 0\n\tlet currentItem = 0\n\n\twhile (currentItem < items.length) {\n\t\tconst rowItems: TiledItem[] = []\n\n\t\t// Fill the row with new items as long as the width is less than containerWidth.\n\t\tdo {\n\t\t\trowItems.push(items[currentItem++])\n\t\t} while (\n\t\t\tcurrentItem < items.length\n\t\t\t&& computeRowWidth([...rowItems, items[currentItem]], baseHeight) <= containerWidth\n\t\t)\n\n\t\tconst rowHeight = computeRowHeight(\n\t\t\trowItems,\n\t\t\tcontainerWidth,\n\t\t\titems.length === currentItem,\n\t\t\tbaseHeight,\n\t\t)\n\n\t\trows[rowNumber] = {\n\t\t\titems: rowItems.map((item) => ({ ...item, width: rowHeight * item.ratio, height: rowHeight })),\n\t\t\t// Key to help vue to keep track of the row in VirtualScrolling.\n\t\t\theight: rowHeight,\n\t\t\tkey: rowItems.map((item) => item.id).join('-'),\n\t\t}\n\n\t\trowNumber += 1\n\t}\n\n\treturn rows\n}\n\n/**\n *\n * @param items\n * @param baseHeight\n */\nfunction computeRowWidth(items: TiledItem[], baseHeight: number): number {\n\treturn items\n\t\t.map((item) => baseHeight * item.ratio)\n\t\t.reduce((sum, itemWidth) => sum + itemWidth)\n}\n\n/**\n * Compute the row height based on its items and on the container's width.\n *\n * Math time !\n * With Rn the aspect ratio of item n\n * Wn the width of item n\n * Hn the height of item n\n * Wc the width of the container\n * Hr the height of the row\n * For n items we want: Wc = W1 + W2 + ... + Wn\n * We know Rn = Wn / Hn\n * So Wn = Rn * Hn\n * So Wc = (R1 * H1) + (R2 * H2) + ... + (Rn * Hn)\n * But we also want Hr === H1 === H2 === ... === Hn\n * So Wc = (R1 * Hr) + (R2 * Hr) + ... + (Rn * Hr)\n * So Wc = Hr * (R1 + R2 + ... + Rn)\n * So Hr = Wc / (R1 + R2 + ... + Rn)\n *\n * @param items\n * @param containerWidth\n * @param isLastRow\n * @param baseHeight\n */\nfunction computeRowHeight(items: TiledItem[], containerWidth: number, isLastRow: boolean, baseHeight: number): number {\n\tconst sumOfItemsRatio = items\n\t\t.map((item) => item.ratio)\n\t\t.reduce((sum, itemRatio) => sum + itemRatio)\n\n\tlet rowHeight = containerWidth / sumOfItemsRatio\n\n\t// Exception 1: there is only one item which is larger than containerWidth.\n\t// Limit its height so that itemWidth === containerWidth\n\tif (items.length === 1 && items[0].width > containerWidth) {\n\t\trowHeight = containerWidth / items[0].ratio\n\t}\n\n\t// Exception 2: we reached the last row.\n\t// Force the items width to match containerWidth, and limit their height to baseHeight + 20.\n\tif (isLastRow) {\n\t\trowHeight = Math.min(baseHeight + 20, rowHeight)\n\t}\n\n\treturn rowHeight\n}\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n\tname: 'FilesSelectionMixin',\n\n\tdata() {\n\t\treturn {\n\t\t\tselection: {} as Record,\n\t\t}\n\t},\n\n\twatch: {\n\t\t$route() {\n\t\t\tthis.resetSelection()\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonFileSelectToggle({ id, value }): void {\n\t\t\tthis.$set(this.selection, id, value)\n\t\t},\n\n\t\tonUncheckFiles(filesIds: string[]): void {\n\t\t\tfilesIds.forEach((filesId: string) => this.$set(this.selection, filesId, false))\n\t\t},\n\n\t\tresetSelection(): void {\n\t\t\tthis.selection = {}\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tselectedFileIds(): string[] {\n\t\t\treturn Object.keys(this.selection).filter((fileId) => this.selection[fileId])\n\t\t},\n\t},\n})\n"],"names":["splitItemsInRows","items","containerWidth","baseHeight","rows","rowNumber","currentItem","rowItems","computeRowWidth","rowHeight","computeRowHeight","item","sum","itemWidth","isLastRow","sumOfItemsRatio","itemRatio","_sfc_main$2","TiledRows","logger","section","row","totalHeight","entries","entry","cr","_sfc_main$1","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","visibleRows","distance","visibleItems","usedTokens","key","unusedTokens","finalMapping","id","sectionHeight","paddingTop","buffer","value","currentRowTopDistanceFromTop","_sfc_main","PackageVariant","NcEmptyContent","NcLoadingIcon","TiledLayout","VirtualScrolling","_","index","width","fileId","sectionId","total","length","subscribe","unsubscribe","file","fileid","fetchedFile","fetchFile","FilesSelectionMixin","defineComponent","filesIds","filesId"],"mappings":"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"} \ No newline at end of file diff --git a/js/FoldersView-BRFRCvSe.chunk.mjs b/js/FoldersView-DhVFd5R9.chunk.mjs similarity index 97% rename from js/FoldersView-BRFRCvSe.chunk.mjs rename to js/FoldersView-DhVFd5R9.chunk.mjs index a5b2529f6..c34aa8666 100644 --- a/js/FoldersView-BRFRCvSe.chunk.mjs +++ b/js/FoldersView-DhVFd5R9.chunk.mjs @@ -1,2 +1,2 @@ -import"./index-CsCSS_KR.chunk.mjs";import{V as F,a as v,n as x,p as H,b as w,O as Z,d as V,P as ee,Q as te}from"./preload-helper-B1hyiFAx.chunk.mjs";import{U as re,g as ie}from"./index-SPoS3_zU-NmnSNTht.chunk.mjs";import{N as oe}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as ne}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{n as R,s as q}from"./icons-Du8Q1knx.chunk.mjs";import{ai as W,H as ae,a as B,l as j}from"./index-msNec4Xs.chunk.mjs";import{L as se}from"./video-DVVFoi8e.chunk.mjs";import{A as K}from"./AbortControllerMixin-QihggCn5.chunk.mjs";import{H as le}from"./HeaderNavigation-Cs3s9UVW.chunk.mjs";import{f as de}from"./fileFetcher-CoIlTdaG.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcModal-BX64wQqg.chunk.mjs";import"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import"./useHotKey-oP-0fLfr.chunk.mjs";var ce=Object.defineProperty,ue=Object.defineProperties,fe=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,T=(e,t,r)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,I=(e,t)=>{for(var r in t||(t={}))he.call(t,r)&&T(e,r,t[r]);if(N)for(var r of N(t))pe.call(t,r)&&T(e,r,t[r]);return e},k=(e,t)=>ue(e,fe(t));function _(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_=function(t){return typeof t}:_=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_(e)}function me(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ge(e){return we(e)||ye(e)||ve()}function we(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1&&arguments[1]!==void 0?arguments[1]:{};t.name=t.name||e._componentTag||e.name;var r=e.prototype;Object.getOwnPropertyNames(r).forEach(function(n){if(n!=="constructor"){if($.indexOf(n)>-1){t[n]=r[n];return}var a=Object.getOwnPropertyDescriptor(r,n);a.value!==void 0?typeof a.value=="function"?(t.methods||(t.methods={}))[n]=a.value:(t.mixins||(t.mixins=[])).push({data:function(){return me({},n,a.value)}}):(a.get||a.set)&&((t.computed||(t.computed={}))[n]={get:a.get,set:a.set})}}),(t.mixins||(t.mixins=[])).push({data:function(){return je(this,e)}});var i=e.__decorators__;i&&(i.forEach(function(n){return n(t)}),delete e.__decorators__);var o=Object.getPrototypeOf(e.prototype),s=o instanceof F?o.constructor:F,l=s.extend(t);return Se(l,e,s),be()&&Ce(l,e),l}var Re={prototype:!0,arguments:!0,callee:!0,caller:!0};function Se(e,t,r){Object.getOwnPropertyNames(t).forEach(function(i){if(!Re[i]){var o=Object.getOwnPropertyDescriptor(e,i);if(!(o&&!o.configurable)){var s=Object.getOwnPropertyDescriptor(t,i);if(!_e){if(i==="cid")return;var l=Object.getOwnPropertyDescriptor(r,i);if(!Fe(s.value)&&l&&l.value===s.value)return}Object.defineProperty(e,i,s)}}})}function Y(e){return typeof e=="function"?A(e):function(t){return A(t,e)}}Y.registerHooks=function(e){$.push.apply($,ge(e))};function De(e){return typeof e!="function"||!e.managed&&!e.managedReactive}function Le(e){var t=function(){var r=this,i=typeof e=="function"?e.call(this):e;i=Object.create(i||null),i[y]=Object.create(this[y]||{});for(var o in t.managed)i[t.managed[o]]=this[o];var s=function(n){i[t.managedReactive[n]]=l[n],Object.defineProperty(i[y],t.managedReactive[n],{enumerable:!0,configurable:!0,get:function(){return r[n]}})},l=this;for(var o in t.managedReactive)s(o);return i};return t.managed={},t.managedReactive={},t}var y="__reactiveInject__";function $e(e){Array.isArray(e.inject)||(e.inject=e.inject||{},e.inject[y]={from:y,default:{}})}var xe=typeof Reflect<"u"&&typeof Reflect.getMetadata<"u";function Ee(e,t,r){if(xe&&!Array.isArray(e)&&typeof e!="function"&&!e.hasOwnProperty("type")&&typeof e.type>"u"){var i=Reflect.getMetadata("design:type",t,r);i!==Object&&(e.type=i)}}function h(e){return e===void 0&&(e={}),function(t,r){Ee(e,t,r),E(function(i,o){(i.props||(i.props={}))[o]=e})(t,r)}}function b(e){return E(function(t,r){var i=t.provide;$e(t),De(i)&&(i=t.provide=Le(i)),i.managedReactive[r]=r})}function Pe(e,t){t===void 0&&(t={});var r=t.deep,i=r===void 0?!1:r,o=t.immediate,s=o===void 0?!1:o;return E(function(l,n){typeof l.watch!="object"&&(l.watch=Object.create(null));var a=l.watch;typeof a[e]=="object"&&!Array.isArray(a[e])?a[e]=[a[e]]:typeof a[e]>"u"&&(a[e]=[]),a[e].push({handler:n,deep:i,immediate:s})})}const ze=(e,t)=>e>720&&t>480?10:5,Me=e=>Math.floor(e/250),We=e=>Math.round(e*1.5),Ne=(e,t,r)=>{const i=e/t;return Math.round(r*i)},G=(e,...t)=>{e&&console.debug(...t)};var Te=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,u=(e,t,r,i)=>{for(var o=i>1?void 0:i?Ie(t,r):t,s=e.length-1,l;s>=0;s--)(l=e[s])&&(o=(i?l(t,r,o):l(o))||o);return i&&o&&Te(t,r,o),o};let c=class extends F{constructor(){super(...arguments),this.updateLock=!1,this.bottomReached=!1,this.ref=null,this.containerData={windowSize:{height:0,width:0},windowScroll:{x:0,y:0},elementWindowOffset:0,elementSize:{height:0,width:0}}}get loadingBatch(){return this.loader&&this.updateLock}get configData(){return this.computeConfigData(this.containerData,this.items)}get layoutData(){return this.computeLayoutData(this.configData)}get renderData(){return this.computeRenderData(this.configData,this.containerData,this.layoutData)}mounted(){var e;this.ref=this.$refs.virtualGrid,this.initiliazeGrid(),window.addEventListener("resize",this.resize),((e=this.scrollElement)!=null?e:window).addEventListener("scroll",this.scroll)}beforeDestroy(){var e;window.removeEventListener("resize",this.resize),((e=this.scrollElement)!=null?e:window).removeEventListener("scroll",this.scroll)}onScrollElementChanged(e,t){(t??window).removeEventListener("scroll",this.scroll),(e??window).addEventListener("scroll",this.scroll)}resize(){this.loadMoreData()}scroll(){this.loadMoreData()}initiliazeGrid(){this.computeContainerData(),this.$nextTick(async()=>{this.loadMoreData()})}loadMoreData(){this.loadMoreDataAsync().catch(e=>{e&&console.error("Fail to load next data batch",e)}).then()}async loadMoreDataAsync(){this.computeContainerData();const e=this.containerData.windowScroll.y+this.containerData.windowSize.height,t=Math.max(0,this.containerData.elementWindowOffset+this.containerData.elementSize.height-this.updateTriggerMargin);!this.bottomReached&&e>=t&&!this.updateLock&&(this.updateLock=!0,G(this.debug,"Loading next batch"),await this.updateFunction()&&(G(this.debug,"Bottom reached"),this.bottomReached=!0),this.updateLock=!1,await this.loadMoreDataAsync())}computeContainerData(){if(this.ref===null)return;const e=this.getWindowSize(),t=this.getWindowScroll(),r=this.getElementOffset(this.ref),i=this.getElementSize(this.ref);this.containerData={windowSize:e,windowScroll:t,elementWindowOffset:r,elementSize:i}}computeConfigData(e,t){if(e===null||t===null)return{windowMargin:0,gridGap:0,columnCount:1,entries:[]};const r=e.elementSize?e.elementSize.width:0,i=this.getWindowMargin(e.windowSize.height),o=this.getGridGap(r,e.windowSize.height),s=this.getColumnCount(r),l=this.getColumnWidth(s,o,r),n=t.map(a=>{if(!a.width)return a;const d=l*a.columnSpan+o*(a.columnSpan-1);return k(I({},a),{height:this.getItemRatioHeight(a.height,a.width,d),width:d})});return{windowMargin:i,gridGap:o,columnCount:s,entries:n}}computeLayoutData(e){if(e===null)return{cells:[],totalHeight:0};let t=1,r=0,i=0,o=0;const s=e.entries.map((n,a)=>{const{columnCount:d,gridGap:g}=e;let f=n.columnSpan,p=n.height;f<1&&(f=d);const m=(a+o)%d;n.newRow&&m!==0&&(o+=d-m);const P=a+o,S=P%d+1,D=Math.floor(P/d)+1;if(S+f>d+1){const M=S+f-d-1,J=M/f;p=p*(1-J),f-=M}f>1&&(o+=f-1),D!==t&&(t=D,r+=i+g,i=0);const X=r,z=Math.round(p);return i=Math.max(i,z),k(I({},n),{columnNumber:S,rowNumber:D,offset:X,height:z,columnSpan:f})}),l=r+i;return{cells:s,totalHeight:l}}computeRenderData(e,t,r){if(r===null||e===null)return{cellsToRender:[],firstRenderedRowNumber:0,firstRenderedRowOffset:0};const i=[];let o=null,s=null;if(t.elementWindowOffset!==null){const l=t.elementWindowOffset;for(const n of r.cells){const a=l+n.offset,d=a+n.height,g=t.windowScroll.y,f=g+t.windowSize.height,p=g-e.windowMargin,m=f+e.windowMargin;a>m||d()=>!0})],c.prototype,"updateFunction",2),u([h({default:()=>ze})],c.prototype,"getGridGap",2),u([h({default:()=>Me})],c.prototype,"getColumnCount",2),u([h({default:()=>We})],c.prototype,"getWindowMargin",2),u([h({default:()=>Ne})],c.prototype,"getItemRatioHeight",2),u([h({default:null})],c.prototype,"scrollElement",2),u([h({default:500})],c.prototype,"updateTriggerMargin",2),u([h({default:null})],c.prototype,"loader",2),u([h({default:!1})],c.prototype,"debug",2),u([b()],c.prototype,"updateLock",2),u([b()],c.prototype,"bottomReached",2),u([b()],c.prototype,"ref",2),u([b()],c.prototype,"containerData",2),u([Pe("scrollElement")],c.prototype,"onScrollElementChanged",1),c=u([Y({name:"VirtualGrid"})],c);var ke=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{ref:"virtualGrid",style:{boxSizing:"border-box",height:e.layoutData.totalHeight+"px",paddingTop:e.renderData!==null&&e.renderData.firstRenderedRowOffset!==null?e.renderData.firstRenderedRowOffset+"px":"0px"}},[r("div",{staticClass:"grid",style:{display:"-ms-grid",display:"grid","align-items":"center","grid-template-columns":"repeat("+e.configData.columnCount+", 1fr)",gap:e.configData.gridGap+"px"}},e._l(e.renderData.cellsToRender,function(i){return r("div",{key:i.id,staticClass:"grid-item-wrapper",style:{height:i.height+"px","grid-column-start":i.columnNumber,"grid-column-end":i.columnNumber+i.columnSpan,"grid-row-start":e.getGridRowStart(i,e.renderData)}},[r(i.renderComponent,e._g({tag:"component",attrs:{item:i}},e.$listeners))],1)}),0),r(e.loadingBatch&&e.loader,{tag:"component"})],1)},Ae=[];function Ge(e,t,r,i,o,s,l,n){var a=typeof e=="function"?e.options:e;t&&(a.render=t,a.staticRenderFns=r,a._compiled=!0);var d;if(o&&(d=o),d)if(a.functional){a._injectStyles=d;var g=a.render;a.render=function(p,m){return d.call(m),g(p,m)}}else{var f=a.beforeCreate;a.beforeCreate=f?[].concat(f,d):[d]}return{exports:e,options:a}}const U={};var Ue=Ge(c,ke,Ae,!1,He);function He(e){for(let t in U)this[t]=U[t]}var Ve=(function(){return Ue.exports})();const qe={name:"FileLegacy",inheritAttrs:!1,props:{item:{type:Object,required:!0}},data(){return{loaded:!1,error:!1}},computed:{ariaUuid(){return`image-${this.item.injected.fileid}`},ariaLabel(){return v("photos",'Open the full size "{name}" image',{name:this.item.injected.basename})},isImage(){return this.item.injected.mime.startsWith("image")},decodedEtag(){return this.item.injected.etag.replace(""","").replace(""","")},src(){return x(`/core/preview?fileId=${this.item.injected.fileid}&c=${this.decodedEtag}&x=250&y=250&forceIcon=0&a=${this.croppedLayout?"0":"1"}`)},croppedLayout(){return this.$store.state.userConfig.croppedLayout}},beforeDestroy(){this.$refs.src=""},methods:{openViewer(){window.OCA.Viewer.open({fileInfo:W(this.item.injected),list:this.item.injected.list.map(e=>W(e))})},onLoad(){this.loaded=!0},onError(){this.error=!0},t:v}};var Be=function(){var e=this,t=e._self._c;return t("a",{staticClass:"file",class:{"file--cropped":e.croppedLayout},attrs:{href:e.item.injected.source,"aria-label":e.ariaLabel},on:{click:function(r){return r.preventDefault(),e.openViewer.apply(null,arguments)}}},[e.item.injected.mime.includes("video")&&e.item.injected.hasPreview?t("div",{staticClass:"icon-video-white"}):e._e(),t("transition-group",{staticClass:"transition-group",attrs:{name:"fade"}},[e.error?e._e():t("img",{key:`${e.item.injected.basename}-img`,ref:"img",attrs:{src:e.src,alt:e.item.injected.basename,"aria-describedby":e.ariaUuid},on:{load:e.onLoad,error:e.onError}}),!e.loaded||e.error?t("svg",{key:`${e.item.injected.basename}-svg`,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"url(#placeholder__gradient)"}},[e.isImage?t("use",{attrs:{href:"#placeholder--img"}}):t("use",{attrs:{href:"#placeholder--video"}})]):e._e()]),t("p",{staticClass:"hidden-visually",attrs:{id:e.ariaUuid}},[e._v(e._s(e.item.injected.basename))]),t("div",{staticClass:"cover",attrs:{role:"none"}})],1)},Ke=[],Ye=R(qe,Be,Ke,!1,null,"6f079611");const Qe=Ye.exports,Xe={name:"FolderTagPreview",components:{FolderOutline:q,RouterLink:se},props:{name:{type:String,required:!0},path:{type:String,default:""},fileList:{type:Array,default:()=>[]}},data(){return{failed:[]}},computed:{isEmpty(){return this.previewList.length===0},ariaLabel(){return v("photos",'Open the "{name}" folder',{name:this.name})},previewList(){return this.fileList.filter(e=>this.failed.indexOf(e.fileid)===-1)},previewUrl(){if(this.previewList.length===0)return null;const{fileid:e,etag:t}=this.previewList.at(-1);return x(`/core/preview?fileId=${e}&c=${t}&x=250&y=250&forceIcon=0&a=0`)},toLink(){const e=`/files/${H()?.uid}`;let t=this.path.replace(new RegExp(`^${e}`),"");return t=/^\/?(.+)/i.exec(t)[1],{...this.$route,params:{path:t.split("/")}}}},methods:{onPreviewFail({fileid:e}){this.failed.push(e)},t:v}};var Je=function(){var e=this,t=e._self._c;return t("RouterLink",{staticClass:"folder",attrs:{to:e.toLink,"aria-label":e.ariaLabel}},[e.previewUrl?t("img",{staticClass:"folder__image",attrs:{src:e.previewUrl,alt:""},on:{error:function(r){return e.onPreviewFail(e.file)}}}):t("span",{staticClass:"folder__image folder__image--placeholder"},[t("FolderOutline",{staticClass:"folder__icon",attrs:{size:96,"fill-color":"var(--color-primary-element)"}})],1),t("span",{staticClass:"folder__details"},[t("FolderOutline"),t("span",{staticClass:"folder__title"},[e._v(e._s(e.name))])],1)])},Ze=[],et=R(Xe,Je,Ze,!1,null,"0660a5ac");const tt=et.exports;async function Q(e="/",t={}){const r=x(`/apps/photos/api/v1/${t.shared?"shared":"albums"}`),i=(await ae.get(r+e,t)).data.map(n=>({...n,filename:`${w}${n.filename}`,source:decodeURI(Z+`${w}${n.filename}`)}));let o;const s=[],l=[];for(const n of i)n.filename===`${w}${e}`?o=n:n.type!=="file"?s.push(n):B.indexOf(n.mime)>-1&&l.push(n);return{folder:o,folders:s,files:l}}const rt=V({name:"FolderComponent",components:{FolderTagPreview:tt},mixins:[K],inheritAttrs:!1,props:{item:{type:Object,required:!0}},data(){return{previewFolder:this.item.injected.fileid}},computed:{files(){return this.$store.state.folders.files},subFolders(){return this.$store.state.folders.subFolders},folders(){return this.$store.state.folders.folders},folderContent(){return this.folders[this.item.injected.fileid]},previewFiles(){const e=this.folders[this.previewFolder],t=e?e.map(r=>this.files[r]).slice(0,4):[];if(t.length===0&&this.subFolders[this.previewFolder]&&this.previewFolder===this.item.injected.fileid){const r=this.subFolders[this.previewFolder][0];this.updatePreviewFolder(r),this.folders[this.previewFolder]||this.getFolderData(this.files[this.previewFolder].filename)}return t}},async created(){this.folderContent||await this.getFolderData(this.item.injected.filename)},methods:{async getFolderData(e){try{const t=`/files/${H()?.uid}`,r=e.replace(new RegExp(`^${t}`),""),{folder:i,folders:o,files:s}=await Q(r,{shared:this.item.injected.showShared,signal:this.abortController.signal});this.$store.dispatch("updateFolders",{fileid:i?.fileid,files:s,folders:o}),this.$store.dispatch("updateFoldersFiles",{folder:i,files:s,folders:o})}catch(t){j.error("Failed to get folder content",{error:t,filename:e})}},updatePreviewFolder(e){this.previewFolder=e}}});var it=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("FolderTagPreview",{attrs:{id:e.item.injected.fileid,name:e.item.injected.basename.toString(),path:e.item.injected.filename,"file-list":e.previewFiles}})},ot=[],nt=R(rt,it,ot,!1,null,"5b1b48c0");const at=nt.exports,C={400:{marginTop:66,marginW:8,count:3,folderCount:1},700:{marginTop:66,marginW:8,count:4,folderCount:1},1024:{marginTop:66,marginW:44,count:5,folderCount:2},1280:{marginTop:66,marginW:44,count:4,folderCount:2},1440:{marginTop:88,marginW:66,count:5,folderCount:3},1600:{marginTop:88,marginW:66,count:6,folderCount:4},2048:{marginTop:88,marginW:66,count:7,folderCount:4},2560:{marginTop:88,marginW:88,count:8,folderCount:6},3440:{marginTop:88,marginW:88,count:9,folderCount:8},max:{marginTop:88,marginW:88,count:10,folderCount:10}},O=new F({data(){return{gridConfig:C.max}},watch:{gridConfig(e){this.$emit("changed",e)}},created(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize)},methods:{handleWindowResize(){const e=Object.keys(C).map(t=>Number.parseInt(t)).find(t=>t>document.documentElement.clientWidth);this.gridConfig=C[e]||C.max}}}),st=V({data(){return{gridConfig:{}}},created(){O.$on("changed",this.handleGridConfigChange),j.debug("Grid config",{gridConfig:O.gridConfig}),this.gridConfig=O.gridConfig},beforeDestroy(){O.$off("changed",this.handleGridConfigChange)},methods:{handleGridConfigChange(e){this.gridConfig=e}}}),lt={name:"FoldersView",components:{FolderOutline:q,HeaderNavigation:le,NcEmptyContent:oe,NcLoadingIcon:ne,UploadPicker:re,VirtualGrid:Ve},mixins:[K,st],props:{rootTitle:{type:String,required:!0},path:{type:String,default:"/"},showShared:{type:Boolean,default:!1}},data(){return{error:null,allowedMimes:B,initializing:!0,loading:!1,appContent:document.getElementById("app-content-vue"),uploader:ie()}},computed:{files(){return this.$store.state.folders.files},folders(){return this.$store.state.folders.folders},folderId(){return this.$store.state.folders.paths[this.path]},folder(){return this.files[this.folderId]},folderAsFolder(){if(this.folder)return new ee({...this.folder,permissions:te(this.folder.permissions),owner:null})},folderContent(){return this.folders[this.folderId]||[]},fileList(){return this.folderContent&&this.folderContent.map(e=>this.files[e]).filter(e=>!!e)},subFolders(){return this.folderId&&this.files[this.folderId]&&this.$store.state.folders.subFolders[this.folderId]},folderList(){return this.subFolders&&this.subFolders.map(e=>this.files[e]).filter(e=>!!e)},contentList(){const e=this.folderList&&this.folderList.map(r=>({id:`folder-${r.fileid}`,injected:{...r,showShared:this.showShared},width:232,height:280,columnSpan:1,renderComponent:at})),t=this.fileList?.map(r=>({id:`file-${r.fileid}`,injected:{...r,list:this.fileList},width:256,height:256,columnSpan:1,renderComponent:Qe}));return[...e||[],...t||[]]},isEmpty(){return!this.haveFiles&&!this.haveFolders},haveFiles(){return!!this.fileList&&this.fileList.length!==0},haveFolders(){return!!this.folderList&&this.folderList.length!==0}},watch:{path(){this.fetchFolderContent()},showShared(){this.fetchFolderContent()}},beforeMount(){this.fetchFolderContent()},methods:{onRefresh(){this.fetchFolderContent()},async fetchFolderContent(){this.error=null,this.loading=!0,window.OCA?.Viewer?.close?.(),window.OCA?.Files?.Sidebar?.close?.(),(!this.files[this.folderId]||!this.folders[this.folderId])&&(this.initializing=!0);try{const{folder:e,folders:t,files:r}=await Q(this.path,{shared:this.showShared,signal:this.abortController.signal});this.$store.dispatch("addPath",{path:this.path,fileid:e?.fileid}),this.$store.dispatch("updateFolders",{fileid:e?.fileid,files:r,folders:t}),this.$store.dispatch("updateFoldersFiles",{folder:e,files:r,folders:t})}catch(e){e?.response&&e.response.status&&(e.response.status===404?(this.error=404,setTimeout(()=>{this.$router.push({name:this.$route.name??void 0})},3e3)):this.error=e),j.error("Error fetching album data",{error:e})}finally{this.loading=!1,this.initializing=!1}},async onUpload(e){const t=e.source.split(w).pop(),r=await de(w+t);if(r===null){j.error("Failed to fetch file",{relPath:t});return}const i={fileid:r.fileid,basename:r.basename,etag:r.attributes.etag,filename:r.root+r.path,source:r.source,lastmod:r.mtime?.getTime(),mime:r.mime,size:r.size,type:"file",permissions:"",hasPreview:r.attributes.hasPreview};this.$store.dispatch("appendFoldersFiles",[i]),this.$store.dispatch("addFilesToFolder",{fileid:this.folderId,files:[i]})},t:v}};var dt=function(){var e=this,t=e._self._c;return e.error===404?t("NcEmptyContent",{attrs:{name:e.t("photos","This folder does not exist")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FolderOutline")]},proxy:!0}],null,!1,610611029)}):e.error?t("NcEmptyContent",{attrs:{name:e.t("photos","An error occurred")}}):e.initializing?t("NcEmptyContent",{attrs:{name:e.t("photos","Loading folders…")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcLoadingIcon")]},proxy:!0}])}):e.initializing?e._e():t("div",[t("HeaderNavigation",{key:"navigation",class:{"photos-navigation--uploading":e.uploader.queue?.length>0},attrs:{loading:e.loading,path:e.path,title:e.folder?.basename?.toString?.()||e.rootTitle,"root-title":e.rootTitle},on:{refresh:e.onRefresh}},[t("UploadPicker",{attrs:{accept:e.allowedMimes,destination:e.folderAsFolder,multiple:!0},on:{uploaded:e.onUpload}})],1),e.isEmpty?t("NcEmptyContent",{key:"emptycontent",attrs:{name:e.t("photos","No photos in here")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FolderOutline")]},proxy:!0}],null,!1,610611029)}):t("div",{staticClass:"grid-container",class:{"grid-container--folders":e.haveFolders}},[t("VirtualGrid",{ref:"virtualgrid",attrs:{items:e.contentList,"scroll-element":e.appContent,"get-column-count":()=>e.haveFolders?e.gridConfig.folderCount:e.gridConfig.count,"get-grid-gap":()=>e.haveFolders?16:8}})],1)],1)},ct=[],ut=R(lt,dt,ct,!1,null,"61f0d4f9");const $t=ut.exports;export{$t as default}; -//# sourceMappingURL=FoldersView-BRFRCvSe.chunk.mjs.map +import"./index-CsCSS_KR.chunk.mjs";import{V as F,a as v,n as x,p as H,b as w,O as Z,d as V,P as ee,Q as te}from"./preload-helper-B1hyiFAx.chunk.mjs";import{U as re,g as ie}from"./index-SPoS3_zU-BiaeHne1.chunk.mjs";import{N as oe}from"./NcEmptyContent-DBJ9WEjx.chunk.mjs";import{N as ne}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{n as R,s as q}from"./icons-DCSM00Rh.chunk.mjs";import{ai as W,H as ae,a as B,l as j}from"./index-msNec4Xs.chunk.mjs";import{L as se}from"./video-B2A2Ed33.chunk.mjs";import{A as K}from"./AbortControllerMixin-QihggCn5.chunk.mjs";import{H as le}from"./HeaderNavigation-NTIRuixF.chunk.mjs";import{f as de}from"./fileFetcher-CoIlTdaG.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcModal-DnfAQoZ9.chunk.mjs";import"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import"./useHotKey-CZEtuasP.chunk.mjs";var ce=Object.defineProperty,ue=Object.defineProperties,fe=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,T=(e,t,r)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,I=(e,t)=>{for(var r in t||(t={}))he.call(t,r)&&T(e,r,t[r]);if(N)for(var r of N(t))pe.call(t,r)&&T(e,r,t[r]);return e},k=(e,t)=>ue(e,fe(t));function _(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_=function(t){return typeof t}:_=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_(e)}function me(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ge(e){return we(e)||ye(e)||ve()}function we(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1&&arguments[1]!==void 0?arguments[1]:{};t.name=t.name||e._componentTag||e.name;var r=e.prototype;Object.getOwnPropertyNames(r).forEach(function(n){if(n!=="constructor"){if($.indexOf(n)>-1){t[n]=r[n];return}var a=Object.getOwnPropertyDescriptor(r,n);a.value!==void 0?typeof a.value=="function"?(t.methods||(t.methods={}))[n]=a.value:(t.mixins||(t.mixins=[])).push({data:function(){return me({},n,a.value)}}):(a.get||a.set)&&((t.computed||(t.computed={}))[n]={get:a.get,set:a.set})}}),(t.mixins||(t.mixins=[])).push({data:function(){return je(this,e)}});var i=e.__decorators__;i&&(i.forEach(function(n){return n(t)}),delete e.__decorators__);var o=Object.getPrototypeOf(e.prototype),s=o instanceof F?o.constructor:F,l=s.extend(t);return Se(l,e,s),be()&&Ce(l,e),l}var Re={prototype:!0,arguments:!0,callee:!0,caller:!0};function Se(e,t,r){Object.getOwnPropertyNames(t).forEach(function(i){if(!Re[i]){var o=Object.getOwnPropertyDescriptor(e,i);if(!(o&&!o.configurable)){var s=Object.getOwnPropertyDescriptor(t,i);if(!_e){if(i==="cid")return;var l=Object.getOwnPropertyDescriptor(r,i);if(!Fe(s.value)&&l&&l.value===s.value)return}Object.defineProperty(e,i,s)}}})}function Y(e){return typeof e=="function"?A(e):function(t){return A(t,e)}}Y.registerHooks=function(e){$.push.apply($,ge(e))};function De(e){return typeof e!="function"||!e.managed&&!e.managedReactive}function Le(e){var t=function(){var r=this,i=typeof e=="function"?e.call(this):e;i=Object.create(i||null),i[y]=Object.create(this[y]||{});for(var o in t.managed)i[t.managed[o]]=this[o];var s=function(n){i[t.managedReactive[n]]=l[n],Object.defineProperty(i[y],t.managedReactive[n],{enumerable:!0,configurable:!0,get:function(){return r[n]}})},l=this;for(var o in t.managedReactive)s(o);return i};return t.managed={},t.managedReactive={},t}var y="__reactiveInject__";function $e(e){Array.isArray(e.inject)||(e.inject=e.inject||{},e.inject[y]={from:y,default:{}})}var xe=typeof Reflect<"u"&&typeof Reflect.getMetadata<"u";function Ee(e,t,r){if(xe&&!Array.isArray(e)&&typeof e!="function"&&!e.hasOwnProperty("type")&&typeof e.type>"u"){var i=Reflect.getMetadata("design:type",t,r);i!==Object&&(e.type=i)}}function h(e){return e===void 0&&(e={}),function(t,r){Ee(e,t,r),E(function(i,o){(i.props||(i.props={}))[o]=e})(t,r)}}function b(e){return E(function(t,r){var i=t.provide;$e(t),De(i)&&(i=t.provide=Le(i)),i.managedReactive[r]=r})}function Pe(e,t){t===void 0&&(t={});var r=t.deep,i=r===void 0?!1:r,o=t.immediate,s=o===void 0?!1:o;return E(function(l,n){typeof l.watch!="object"&&(l.watch=Object.create(null));var a=l.watch;typeof a[e]=="object"&&!Array.isArray(a[e])?a[e]=[a[e]]:typeof a[e]>"u"&&(a[e]=[]),a[e].push({handler:n,deep:i,immediate:s})})}const ze=(e,t)=>e>720&&t>480?10:5,Me=e=>Math.floor(e/250),We=e=>Math.round(e*1.5),Ne=(e,t,r)=>{const i=e/t;return Math.round(r*i)},G=(e,...t)=>{e&&console.debug(...t)};var Te=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,u=(e,t,r,i)=>{for(var o=i>1?void 0:i?Ie(t,r):t,s=e.length-1,l;s>=0;s--)(l=e[s])&&(o=(i?l(t,r,o):l(o))||o);return i&&o&&Te(t,r,o),o};let c=class extends F{constructor(){super(...arguments),this.updateLock=!1,this.bottomReached=!1,this.ref=null,this.containerData={windowSize:{height:0,width:0},windowScroll:{x:0,y:0},elementWindowOffset:0,elementSize:{height:0,width:0}}}get loadingBatch(){return this.loader&&this.updateLock}get configData(){return this.computeConfigData(this.containerData,this.items)}get layoutData(){return this.computeLayoutData(this.configData)}get renderData(){return this.computeRenderData(this.configData,this.containerData,this.layoutData)}mounted(){var e;this.ref=this.$refs.virtualGrid,this.initiliazeGrid(),window.addEventListener("resize",this.resize),((e=this.scrollElement)!=null?e:window).addEventListener("scroll",this.scroll)}beforeDestroy(){var e;window.removeEventListener("resize",this.resize),((e=this.scrollElement)!=null?e:window).removeEventListener("scroll",this.scroll)}onScrollElementChanged(e,t){(t??window).removeEventListener("scroll",this.scroll),(e??window).addEventListener("scroll",this.scroll)}resize(){this.loadMoreData()}scroll(){this.loadMoreData()}initiliazeGrid(){this.computeContainerData(),this.$nextTick(async()=>{this.loadMoreData()})}loadMoreData(){this.loadMoreDataAsync().catch(e=>{e&&console.error("Fail to load next data batch",e)}).then()}async loadMoreDataAsync(){this.computeContainerData();const e=this.containerData.windowScroll.y+this.containerData.windowSize.height,t=Math.max(0,this.containerData.elementWindowOffset+this.containerData.elementSize.height-this.updateTriggerMargin);!this.bottomReached&&e>=t&&!this.updateLock&&(this.updateLock=!0,G(this.debug,"Loading next batch"),await this.updateFunction()&&(G(this.debug,"Bottom reached"),this.bottomReached=!0),this.updateLock=!1,await this.loadMoreDataAsync())}computeContainerData(){if(this.ref===null)return;const e=this.getWindowSize(),t=this.getWindowScroll(),r=this.getElementOffset(this.ref),i=this.getElementSize(this.ref);this.containerData={windowSize:e,windowScroll:t,elementWindowOffset:r,elementSize:i}}computeConfigData(e,t){if(e===null||t===null)return{windowMargin:0,gridGap:0,columnCount:1,entries:[]};const r=e.elementSize?e.elementSize.width:0,i=this.getWindowMargin(e.windowSize.height),o=this.getGridGap(r,e.windowSize.height),s=this.getColumnCount(r),l=this.getColumnWidth(s,o,r),n=t.map(a=>{if(!a.width)return a;const d=l*a.columnSpan+o*(a.columnSpan-1);return k(I({},a),{height:this.getItemRatioHeight(a.height,a.width,d),width:d})});return{windowMargin:i,gridGap:o,columnCount:s,entries:n}}computeLayoutData(e){if(e===null)return{cells:[],totalHeight:0};let t=1,r=0,i=0,o=0;const s=e.entries.map((n,a)=>{const{columnCount:d,gridGap:g}=e;let f=n.columnSpan,p=n.height;f<1&&(f=d);const m=(a+o)%d;n.newRow&&m!==0&&(o+=d-m);const P=a+o,S=P%d+1,D=Math.floor(P/d)+1;if(S+f>d+1){const M=S+f-d-1,J=M/f;p=p*(1-J),f-=M}f>1&&(o+=f-1),D!==t&&(t=D,r+=i+g,i=0);const X=r,z=Math.round(p);return i=Math.max(i,z),k(I({},n),{columnNumber:S,rowNumber:D,offset:X,height:z,columnSpan:f})}),l=r+i;return{cells:s,totalHeight:l}}computeRenderData(e,t,r){if(r===null||e===null)return{cellsToRender:[],firstRenderedRowNumber:0,firstRenderedRowOffset:0};const i=[];let o=null,s=null;if(t.elementWindowOffset!==null){const l=t.elementWindowOffset;for(const n of r.cells){const a=l+n.offset,d=a+n.height,g=t.windowScroll.y,f=g+t.windowSize.height,p=g-e.windowMargin,m=f+e.windowMargin;a>m||d()=>!0})],c.prototype,"updateFunction",2),u([h({default:()=>ze})],c.prototype,"getGridGap",2),u([h({default:()=>Me})],c.prototype,"getColumnCount",2),u([h({default:()=>We})],c.prototype,"getWindowMargin",2),u([h({default:()=>Ne})],c.prototype,"getItemRatioHeight",2),u([h({default:null})],c.prototype,"scrollElement",2),u([h({default:500})],c.prototype,"updateTriggerMargin",2),u([h({default:null})],c.prototype,"loader",2),u([h({default:!1})],c.prototype,"debug",2),u([b()],c.prototype,"updateLock",2),u([b()],c.prototype,"bottomReached",2),u([b()],c.prototype,"ref",2),u([b()],c.prototype,"containerData",2),u([Pe("scrollElement")],c.prototype,"onScrollElementChanged",1),c=u([Y({name:"VirtualGrid"})],c);var ke=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{ref:"virtualGrid",style:{boxSizing:"border-box",height:e.layoutData.totalHeight+"px",paddingTop:e.renderData!==null&&e.renderData.firstRenderedRowOffset!==null?e.renderData.firstRenderedRowOffset+"px":"0px"}},[r("div",{staticClass:"grid",style:{display:"-ms-grid",display:"grid","align-items":"center","grid-template-columns":"repeat("+e.configData.columnCount+", 1fr)",gap:e.configData.gridGap+"px"}},e._l(e.renderData.cellsToRender,function(i){return r("div",{key:i.id,staticClass:"grid-item-wrapper",style:{height:i.height+"px","grid-column-start":i.columnNumber,"grid-column-end":i.columnNumber+i.columnSpan,"grid-row-start":e.getGridRowStart(i,e.renderData)}},[r(i.renderComponent,e._g({tag:"component",attrs:{item:i}},e.$listeners))],1)}),0),r(e.loadingBatch&&e.loader,{tag:"component"})],1)},Ae=[];function Ge(e,t,r,i,o,s,l,n){var a=typeof e=="function"?e.options:e;t&&(a.render=t,a.staticRenderFns=r,a._compiled=!0);var d;if(o&&(d=o),d)if(a.functional){a._injectStyles=d;var g=a.render;a.render=function(p,m){return d.call(m),g(p,m)}}else{var f=a.beforeCreate;a.beforeCreate=f?[].concat(f,d):[d]}return{exports:e,options:a}}const U={};var Ue=Ge(c,ke,Ae,!1,He);function He(e){for(let t in U)this[t]=U[t]}var Ve=(function(){return Ue.exports})();const qe={name:"FileLegacy",inheritAttrs:!1,props:{item:{type:Object,required:!0}},data(){return{loaded:!1,error:!1}},computed:{ariaUuid(){return`image-${this.item.injected.fileid}`},ariaLabel(){return v("photos",'Open the full size "{name}" image',{name:this.item.injected.basename})},isImage(){return this.item.injected.mime.startsWith("image")},decodedEtag(){return this.item.injected.etag.replace(""","").replace(""","")},src(){return x(`/core/preview?fileId=${this.item.injected.fileid}&c=${this.decodedEtag}&x=250&y=250&forceIcon=0&a=${this.croppedLayout?"0":"1"}`)},croppedLayout(){return this.$store.state.userConfig.croppedLayout}},beforeDestroy(){this.$refs.src=""},methods:{openViewer(){window.OCA.Viewer.open({fileInfo:W(this.item.injected),list:this.item.injected.list.map(e=>W(e))})},onLoad(){this.loaded=!0},onError(){this.error=!0},t:v}};var Be=function(){var e=this,t=e._self._c;return t("a",{staticClass:"file",class:{"file--cropped":e.croppedLayout},attrs:{href:e.item.injected.source,"aria-label":e.ariaLabel},on:{click:function(r){return r.preventDefault(),e.openViewer.apply(null,arguments)}}},[e.item.injected.mime.includes("video")&&e.item.injected.hasPreview?t("div",{staticClass:"icon-video-white"}):e._e(),t("transition-group",{staticClass:"transition-group",attrs:{name:"fade"}},[e.error?e._e():t("img",{key:`${e.item.injected.basename}-img`,ref:"img",attrs:{src:e.src,alt:e.item.injected.basename,"aria-describedby":e.ariaUuid},on:{load:e.onLoad,error:e.onError}}),!e.loaded||e.error?t("svg",{key:`${e.item.injected.basename}-svg`,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"url(#placeholder__gradient)"}},[e.isImage?t("use",{attrs:{href:"#placeholder--img"}}):t("use",{attrs:{href:"#placeholder--video"}})]):e._e()]),t("p",{staticClass:"hidden-visually",attrs:{id:e.ariaUuid}},[e._v(e._s(e.item.injected.basename))]),t("div",{staticClass:"cover",attrs:{role:"none"}})],1)},Ke=[],Ye=R(qe,Be,Ke,!1,null,"6f079611");const Qe=Ye.exports,Xe={name:"FolderTagPreview",components:{FolderOutline:q,RouterLink:se},props:{name:{type:String,required:!0},path:{type:String,default:""},fileList:{type:Array,default:()=>[]}},data(){return{failed:[]}},computed:{isEmpty(){return this.previewList.length===0},ariaLabel(){return v("photos",'Open the "{name}" folder',{name:this.name})},previewList(){return this.fileList.filter(e=>this.failed.indexOf(e.fileid)===-1)},previewUrl(){if(this.previewList.length===0)return null;const{fileid:e,etag:t}=this.previewList.at(-1);return x(`/core/preview?fileId=${e}&c=${t}&x=250&y=250&forceIcon=0&a=0`)},toLink(){const e=`/files/${H()?.uid}`;let t=this.path.replace(new RegExp(`^${e}`),"");return t=/^\/?(.+)/i.exec(t)[1],{...this.$route,params:{path:t.split("/")}}}},methods:{onPreviewFail({fileid:e}){this.failed.push(e)},t:v}};var Je=function(){var e=this,t=e._self._c;return t("RouterLink",{staticClass:"folder",attrs:{to:e.toLink,"aria-label":e.ariaLabel}},[e.previewUrl?t("img",{staticClass:"folder__image",attrs:{src:e.previewUrl,alt:""},on:{error:function(r){return e.onPreviewFail(e.file)}}}):t("span",{staticClass:"folder__image folder__image--placeholder"},[t("FolderOutline",{staticClass:"folder__icon",attrs:{size:96,"fill-color":"var(--color-primary-element)"}})],1),t("span",{staticClass:"folder__details"},[t("FolderOutline"),t("span",{staticClass:"folder__title"},[e._v(e._s(e.name))])],1)])},Ze=[],et=R(Xe,Je,Ze,!1,null,"0660a5ac");const tt=et.exports;async function Q(e="/",t={}){const r=x(`/apps/photos/api/v1/${t.shared?"shared":"albums"}`),i=(await ae.get(r+e,t)).data.map(n=>({...n,filename:`${w}${n.filename}`,source:decodeURI(Z+`${w}${n.filename}`)}));let o;const s=[],l=[];for(const n of i)n.filename===`${w}${e}`?o=n:n.type!=="file"?s.push(n):B.indexOf(n.mime)>-1&&l.push(n);return{folder:o,folders:s,files:l}}const rt=V({name:"FolderComponent",components:{FolderTagPreview:tt},mixins:[K],inheritAttrs:!1,props:{item:{type:Object,required:!0}},data(){return{previewFolder:this.item.injected.fileid}},computed:{files(){return this.$store.state.folders.files},subFolders(){return this.$store.state.folders.subFolders},folders(){return this.$store.state.folders.folders},folderContent(){return this.folders[this.item.injected.fileid]},previewFiles(){const e=this.folders[this.previewFolder],t=e?e.map(r=>this.files[r]).slice(0,4):[];if(t.length===0&&this.subFolders[this.previewFolder]&&this.previewFolder===this.item.injected.fileid){const r=this.subFolders[this.previewFolder][0];this.updatePreviewFolder(r),this.folders[this.previewFolder]||this.getFolderData(this.files[this.previewFolder].filename)}return t}},async created(){this.folderContent||await this.getFolderData(this.item.injected.filename)},methods:{async getFolderData(e){try{const t=`/files/${H()?.uid}`,r=e.replace(new RegExp(`^${t}`),""),{folder:i,folders:o,files:s}=await Q(r,{shared:this.item.injected.showShared,signal:this.abortController.signal});this.$store.dispatch("updateFolders",{fileid:i?.fileid,files:s,folders:o}),this.$store.dispatch("updateFoldersFiles",{folder:i,files:s,folders:o})}catch(t){j.error("Failed to get folder content",{error:t,filename:e})}},updatePreviewFolder(e){this.previewFolder=e}}});var it=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("FolderTagPreview",{attrs:{id:e.item.injected.fileid,name:e.item.injected.basename.toString(),path:e.item.injected.filename,"file-list":e.previewFiles}})},ot=[],nt=R(rt,it,ot,!1,null,"5b1b48c0");const at=nt.exports,C={400:{marginTop:66,marginW:8,count:3,folderCount:1},700:{marginTop:66,marginW:8,count:4,folderCount:1},1024:{marginTop:66,marginW:44,count:5,folderCount:2},1280:{marginTop:66,marginW:44,count:4,folderCount:2},1440:{marginTop:88,marginW:66,count:5,folderCount:3},1600:{marginTop:88,marginW:66,count:6,folderCount:4},2048:{marginTop:88,marginW:66,count:7,folderCount:4},2560:{marginTop:88,marginW:88,count:8,folderCount:6},3440:{marginTop:88,marginW:88,count:9,folderCount:8},max:{marginTop:88,marginW:88,count:10,folderCount:10}},O=new F({data(){return{gridConfig:C.max}},watch:{gridConfig(e){this.$emit("changed",e)}},created(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy(){window.removeEventListener("resize",this.handleWindowResize)},methods:{handleWindowResize(){const e=Object.keys(C).map(t=>Number.parseInt(t)).find(t=>t>document.documentElement.clientWidth);this.gridConfig=C[e]||C.max}}}),st=V({data(){return{gridConfig:{}}},created(){O.$on("changed",this.handleGridConfigChange),j.debug("Grid config",{gridConfig:O.gridConfig}),this.gridConfig=O.gridConfig},beforeDestroy(){O.$off("changed",this.handleGridConfigChange)},methods:{handleGridConfigChange(e){this.gridConfig=e}}}),lt={name:"FoldersView",components:{FolderOutline:q,HeaderNavigation:le,NcEmptyContent:oe,NcLoadingIcon:ne,UploadPicker:re,VirtualGrid:Ve},mixins:[K,st],props:{rootTitle:{type:String,required:!0},path:{type:String,default:"/"},showShared:{type:Boolean,default:!1}},data(){return{error:null,allowedMimes:B,initializing:!0,loading:!1,appContent:document.getElementById("app-content-vue"),uploader:ie()}},computed:{files(){return this.$store.state.folders.files},folders(){return this.$store.state.folders.folders},folderId(){return this.$store.state.folders.paths[this.path]},folder(){return this.files[this.folderId]},folderAsFolder(){if(this.folder)return new ee({...this.folder,permissions:te(this.folder.permissions),owner:null})},folderContent(){return this.folders[this.folderId]||[]},fileList(){return this.folderContent&&this.folderContent.map(e=>this.files[e]).filter(e=>!!e)},subFolders(){return this.folderId&&this.files[this.folderId]&&this.$store.state.folders.subFolders[this.folderId]},folderList(){return this.subFolders&&this.subFolders.map(e=>this.files[e]).filter(e=>!!e)},contentList(){const e=this.folderList&&this.folderList.map(r=>({id:`folder-${r.fileid}`,injected:{...r,showShared:this.showShared},width:232,height:280,columnSpan:1,renderComponent:at})),t=this.fileList?.map(r=>({id:`file-${r.fileid}`,injected:{...r,list:this.fileList},width:256,height:256,columnSpan:1,renderComponent:Qe}));return[...e||[],...t||[]]},isEmpty(){return!this.haveFiles&&!this.haveFolders},haveFiles(){return!!this.fileList&&this.fileList.length!==0},haveFolders(){return!!this.folderList&&this.folderList.length!==0}},watch:{path(){this.fetchFolderContent()},showShared(){this.fetchFolderContent()}},beforeMount(){this.fetchFolderContent()},methods:{onRefresh(){this.fetchFolderContent()},async fetchFolderContent(){this.error=null,this.loading=!0,window.OCA?.Viewer?.close?.(),window.OCA?.Files?.Sidebar?.close?.(),(!this.files[this.folderId]||!this.folders[this.folderId])&&(this.initializing=!0);try{const{folder:e,folders:t,files:r}=await Q(this.path,{shared:this.showShared,signal:this.abortController.signal});this.$store.dispatch("addPath",{path:this.path,fileid:e?.fileid}),this.$store.dispatch("updateFolders",{fileid:e?.fileid,files:r,folders:t}),this.$store.dispatch("updateFoldersFiles",{folder:e,files:r,folders:t})}catch(e){e?.response&&e.response.status&&(e.response.status===404?(this.error=404,setTimeout(()=>{this.$router.push({name:this.$route.name??void 0})},3e3)):this.error=e),j.error("Error fetching album data",{error:e})}finally{this.loading=!1,this.initializing=!1}},async onUpload(e){const t=e.source.split(w).pop(),r=await de(w+t);if(r===null){j.error("Failed to fetch file",{relPath:t});return}const i={fileid:r.fileid,basename:r.basename,etag:r.attributes.etag,filename:r.root+r.path,source:r.source,lastmod:r.mtime?.getTime(),mime:r.mime,size:r.size,type:"file",permissions:"",hasPreview:r.attributes.hasPreview};this.$store.dispatch("appendFoldersFiles",[i]),this.$store.dispatch("addFilesToFolder",{fileid:this.folderId,files:[i]})},t:v}};var dt=function(){var e=this,t=e._self._c;return e.error===404?t("NcEmptyContent",{attrs:{name:e.t("photos","This folder does not exist")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FolderOutline")]},proxy:!0}],null,!1,610611029)}):e.error?t("NcEmptyContent",{attrs:{name:e.t("photos","An error occurred")}}):e.initializing?t("NcEmptyContent",{attrs:{name:e.t("photos","Loading folders…")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("NcLoadingIcon")]},proxy:!0}])}):e.initializing?e._e():t("div",[t("HeaderNavigation",{key:"navigation",class:{"photos-navigation--uploading":e.uploader.queue?.length>0},attrs:{loading:e.loading,path:e.path,title:e.folder?.basename?.toString?.()||e.rootTitle,"root-title":e.rootTitle},on:{refresh:e.onRefresh}},[t("UploadPicker",{attrs:{accept:e.allowedMimes,destination:e.folderAsFolder,multiple:!0},on:{uploaded:e.onUpload}})],1),e.isEmpty?t("NcEmptyContent",{key:"emptycontent",attrs:{name:e.t("photos","No photos in here")},scopedSlots:e._u([{key:"icon",fn:function(){return[t("FolderOutline")]},proxy:!0}],null,!1,610611029)}):t("div",{staticClass:"grid-container",class:{"grid-container--folders":e.haveFolders}},[t("VirtualGrid",{ref:"virtualgrid",attrs:{items:e.contentList,"scroll-element":e.appContent,"get-column-count":()=>e.haveFolders?e.gridConfig.folderCount:e.gridConfig.count,"get-grid-gap":()=>e.haveFolders?16:8}})],1)],1)},ct=[],ut=R(lt,dt,ct,!1,null,"61f0d4f9");const $t=ut.exports;export{$t as default}; +//# sourceMappingURL=FoldersView-DhVFd5R9.chunk.mjs.map diff --git a/js/FoldersView-BRFRCvSe.chunk.mjs.license b/js/FoldersView-DhVFd5R9.chunk.mjs.license similarity index 100% rename from js/FoldersView-BRFRCvSe.chunk.mjs.license rename to js/FoldersView-DhVFd5R9.chunk.mjs.license diff --git a/js/FoldersView-BRFRCvSe.chunk.mjs.map b/js/FoldersView-DhVFd5R9.chunk.mjs.map similarity index 99% rename from js/FoldersView-BRFRCvSe.chunk.mjs.map rename to js/FoldersView-DhVFd5R9.chunk.mjs.map index ceb6b58ec..c5de1f37f 100644 --- a/js/FoldersView-BRFRCvSe.chunk.mjs.map +++ b/js/FoldersView-DhVFd5R9.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"FoldersView-BRFRCvSe.chunk.mjs","sources":["../node_modules/vue-virtual-grid/dist/vue-virtual-grid.es.js","../src/components/FileLegacy.vue","../src/components/FolderTagPreview.vue","../src/services/FolderContent.ts","../src/components/FolderComponent.vue","../src/assets/grid-sizes.ts","../src/services/GridConfig.ts","../src/mixins/GridConfig.ts","../src/views/FoldersView.vue"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport Vue from \"vue\";\n/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++)\n arr2[i] = arr[i];\n return arr2;\n }\n}\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\")\n return Array.from(iter);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\nfunction reflectionIsSupported() {\n return typeof Reflect !== \"undefined\" && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function(key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function(key) {\n forwardMetadata(to, from, key);\n });\n}\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function(metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function(target, key, index) {\n var Ctor = typeof target === \"function\" ? target : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== \"number\") {\n index = void 0;\n }\n Ctor.__decorators__.push(function(options) {\n return factory(options, key, index);\n });\n };\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n return value == null || type !== \"object\" && type !== \"function\";\n}\nfunction collectDataFromConstructor(vm, Component2) {\n var originalInit = Component2.prototype._init;\n Component2.prototype._init = function() {\n var _this = this;\n var keys = Object.getOwnPropertyNames(vm);\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function(key2) {\n Object.defineProperty(_this, key2, {\n get: function get() {\n return vm[key2];\n },\n set: function set(value) {\n vm[key2] = value;\n },\n configurable: true\n });\n });\n };\n var data = new Component2();\n Component2.prototype._init = originalInit;\n var plainData = {};\n Object.keys(data).forEach(function(key) {\n if (data[key] !== void 0) {\n plainData[key] = data[key];\n }\n });\n return plainData;\n}\nvar $internalHooks = [\n \"data\",\n \"beforeCreate\",\n \"created\",\n \"beforeMount\",\n \"mounted\",\n \"beforeDestroy\",\n \"destroyed\",\n \"beforeUpdate\",\n \"updated\",\n \"activated\",\n \"deactivated\",\n \"render\",\n \"errorCaptured\",\n \"serverPrefetch\"\n];\nfunction componentFactory(Component2) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n options.name = options.name || Component2._componentTag || Component2.name;\n var proto = Component2.prototype;\n Object.getOwnPropertyNames(proto).forEach(function(key) {\n if (key === \"constructor\") {\n return;\n }\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (descriptor.value !== void 0) {\n if (typeof descriptor.value === \"function\") {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component2);\n }\n });\n var decorators = Component2.__decorators__;\n if (decorators) {\n decorators.forEach(function(fn) {\n return fn(options);\n });\n delete Component2.__decorators__;\n }\n var superProto = Object.getPrototypeOf(Component2.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component2, Super);\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component2);\n }\n return Extended;\n}\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\nfunction forwardStaticMembers(Extended, Original, Super) {\n Object.getOwnPropertyNames(Original).forEach(function(key) {\n if (shouldIgnore[key]) {\n return;\n }\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (!hasProto) {\n if (key === \"cid\") {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\nfunction Component(options) {\n if (typeof options === \"function\") {\n return componentFactory(options);\n }\n return function(Component2) {\n return componentFactory(Component2, options);\n };\n}\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\nglobalThis && globalThis.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nfunction needToProduceProvide(original) {\n return typeof original !== \"function\" || !original.managed && !original.managedReactive;\n}\nfunction produceProvide(original) {\n var provide = function() {\n var _this = this;\n var rv = typeof original === \"function\" ? original.call(this) : original;\n rv = Object.create(rv || null);\n rv[reactiveInjectKey] = Object.create(this[reactiveInjectKey] || {});\n for (var i in provide.managed) {\n rv[provide.managed[i]] = this[i];\n }\n var _loop_1 = function(i2) {\n rv[provide.managedReactive[i2]] = this_1[i2];\n Object.defineProperty(rv[reactiveInjectKey], provide.managedReactive[i2], {\n enumerable: true,\n configurable: true,\n get: function() {\n return _this[i2];\n }\n });\n };\n var this_1 = this;\n for (var i in provide.managedReactive) {\n _loop_1(i);\n }\n return rv;\n };\n provide.managed = {};\n provide.managedReactive = {};\n return provide;\n}\nvar reactiveInjectKey = \"__reactiveInject__\";\nfunction inheritInjected(componentOptions) {\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject = componentOptions.inject || {};\n componentOptions.inject[reactiveInjectKey] = {\n from: reactiveInjectKey,\n default: {}\n };\n }\n}\nvar reflectMetadataIsSupported = typeof Reflect !== \"undefined\" && typeof Reflect.getMetadata !== \"undefined\";\nfunction applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) && typeof options !== \"function\" && !options.hasOwnProperty(\"type\") && typeof options.type === \"undefined\") {\n var type = Reflect.getMetadata(\"design:type\", target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\nfunction Prop(options) {\n if (options === void 0) {\n options = {};\n }\n return function(target, key) {\n applyMetadata(options, target, key);\n createDecorator(function(componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\nfunction ProvideReactive(key) {\n return createDecorator(function(componentOptions, k) {\n var provide = componentOptions.provide;\n inheritInjected(componentOptions);\n if (needToProduceProvide(provide)) {\n provide = componentOptions.provide = produceProvide(provide);\n }\n provide.managedReactive[k] = key || k;\n });\n}\nfunction Watch(path, options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function(componentOptions, handler) {\n if (typeof componentOptions.watch !== \"object\") {\n componentOptions.watch = /* @__PURE__ */ Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === \"object\" && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n } else if (typeof watch[path] === \"undefined\") {\n watch[path] = [];\n }\n watch[path].push({ handler, deep, immediate });\n });\n}\nconst getGridGapDefault = (elementWidth, windowHeight) => {\n if (elementWidth > 720 && windowHeight > 480) {\n return 10;\n } else {\n return 5;\n }\n};\nconst getColumnCountDefault = (elementWidth) => {\n return Math.floor(elementWidth / 250);\n};\nconst getWindowMarginDefault = (windowHeight) => {\n return Math.round(windowHeight * 1.5);\n};\nconst getItemRatioHeightDefault = (height, width, columnWidth) => {\n const imageRatio = height / width;\n return Math.round(columnWidth * imageRatio);\n};\nconst debugLog = (condition, ...args) => {\n if (condition) {\n console.debug(...args);\n }\n};\nvar __defProp2 = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp2(target, key, result);\n return result;\n};\nlet VirtualGrid$1 = class extends Vue {\n constructor() {\n super(...arguments);\n this.updateLock = false;\n this.bottomReached = false;\n this.ref = null;\n this.containerData = {\n windowSize: { height: 0, width: 0 },\n windowScroll: { x: 0, y: 0 },\n elementWindowOffset: 0,\n elementSize: { height: 0, width: 0 }\n };\n }\n get loadingBatch() {\n return this.loader && this.updateLock;\n }\n get configData() {\n return this.computeConfigData(this.containerData, this.items);\n }\n get layoutData() {\n return this.computeLayoutData(this.configData);\n }\n get renderData() {\n return this.computeRenderData(this.configData, this.containerData, this.layoutData);\n }\n mounted() {\n var _a;\n this.ref = this.$refs.virtualGrid;\n this.initiliazeGrid();\n window.addEventListener(\"resize\", this.resize);\n ((_a = this.scrollElement) != null ? _a : window).addEventListener(\"scroll\", this.scroll);\n }\n beforeDestroy() {\n var _a;\n window.removeEventListener(\"resize\", this.resize);\n ((_a = this.scrollElement) != null ? _a : window).removeEventListener(\"scroll\", this.scroll);\n }\n onScrollElementChanged(scrollElement, oldScrollElement) {\n (oldScrollElement != null ? oldScrollElement : window).removeEventListener(\"scroll\", this.scroll);\n (scrollElement != null ? scrollElement : window).addEventListener(\"scroll\", this.scroll);\n }\n resize() {\n this.loadMoreData();\n }\n scroll() {\n this.loadMoreData();\n }\n initiliazeGrid() {\n this.computeContainerData();\n this.$nextTick(async () => {\n this.loadMoreData();\n });\n }\n loadMoreData() {\n this.loadMoreDataAsync().catch((error) => {\n if (error) {\n console.error(\"Fail to load next data batch\", error);\n }\n }).then();\n }\n async loadMoreDataAsync() {\n this.computeContainerData();\n const windowTop = this.containerData.windowScroll.y;\n const windowBottom = windowTop + this.containerData.windowSize.height;\n const bottomTrigger = Math.max(0, this.containerData.elementWindowOffset + this.containerData.elementSize.height - this.updateTriggerMargin);\n if (!this.bottomReached && windowBottom >= bottomTrigger && !this.updateLock) {\n this.updateLock = true;\n debugLog(this.debug, \"Loading next batch\");\n const isLastBatch = await this.updateFunction();\n if (isLastBatch) {\n debugLog(this.debug, \"Bottom reached\");\n this.bottomReached = true;\n }\n this.updateLock = false;\n await this.loadMoreDataAsync();\n }\n return;\n }\n computeContainerData() {\n if (this.ref === null) {\n return;\n }\n const windowSize = this.getWindowSize();\n const windowScroll = this.getWindowScroll();\n const elementWindowOffset = this.getElementOffset(this.ref);\n const elementSize = this.getElementSize(this.ref);\n this.containerData = { windowSize, windowScroll, elementWindowOffset, elementSize };\n }\n computeConfigData(containerData, items) {\n if (containerData === null || items === null) {\n return {\n windowMargin: 0,\n gridGap: 0,\n columnCount: 1,\n entries: []\n };\n }\n const elementWidth = containerData.elementSize ? containerData.elementSize.width : 0;\n const windowMargin = this.getWindowMargin(containerData.windowSize.height);\n const gridGap = this.getGridGap(elementWidth, containerData.windowSize.height);\n const columnCount = this.getColumnCount(elementWidth);\n const columnWidth = this.getColumnWidth(columnCount, gridGap, elementWidth);\n const entries = items.map((item) => {\n if (!item.width) {\n return item;\n }\n const imageWidth = columnWidth * item.columnSpan + gridGap * (item.columnSpan - 1);\n return __spreadProps(__spreadValues({}, item), {\n height: this.getItemRatioHeight(item.height, item.width, imageWidth),\n width: imageWidth\n });\n });\n return {\n windowMargin,\n gridGap,\n columnCount,\n entries\n };\n }\n computeLayoutData(configData) {\n if (configData === null) {\n return { cells: [], totalHeight: 0 };\n }\n let currentRowNumber = 1;\n let prevRowsTotalHeight = 0;\n let currentRowMaxHeight = 0;\n let columnShift = 0;\n const cells = configData.entries.map((entry, index) => {\n const { columnCount, gridGap } = configData;\n let columnSpanRecompute = entry.columnSpan;\n let heightRecompute = entry.height;\n if (columnSpanRecompute < 1) {\n columnSpanRecompute = columnCount;\n }\n const distanceToRowStart = (index + columnShift) % columnCount;\n if (entry.newRow && distanceToRowStart !== 0) {\n columnShift += columnCount - distanceToRowStart;\n }\n const shiftedIndex = index + columnShift;\n const columnNumber = shiftedIndex % columnCount + 1;\n const rowNumber = Math.floor(shiftedIndex / columnCount) + 1;\n if (columnNumber + columnSpanRecompute > columnCount + 1) {\n const overlapNumber = columnNumber + columnSpanRecompute - columnCount - 1;\n const overlapRatio = overlapNumber / columnSpanRecompute;\n heightRecompute = heightRecompute * (1 - overlapRatio);\n columnSpanRecompute -= overlapNumber;\n }\n if (columnSpanRecompute > 1) {\n columnShift += columnSpanRecompute - 1;\n }\n if (rowNumber !== currentRowNumber) {\n currentRowNumber = rowNumber;\n prevRowsTotalHeight += currentRowMaxHeight + gridGap;\n currentRowMaxHeight = 0;\n }\n const offset = prevRowsTotalHeight;\n const height = Math.round(heightRecompute);\n currentRowMaxHeight = Math.max(currentRowMaxHeight, height);\n return __spreadProps(__spreadValues({}, entry), { columnNumber, rowNumber, offset, height, columnSpan: columnSpanRecompute });\n });\n const totalHeight = prevRowsTotalHeight + currentRowMaxHeight;\n return { cells, totalHeight };\n }\n computeRenderData(configData, containerData, layoutData) {\n if (layoutData === null || configData === null) {\n return { cellsToRender: [], firstRenderedRowNumber: 0, firstRenderedRowOffset: 0 };\n }\n const cellsToRender = [];\n let firstRenderedRowNumber = null;\n let firstRenderedRowOffset = null;\n if (containerData.elementWindowOffset !== null) {\n const elementWindowOffset = containerData.elementWindowOffset;\n for (const cell of layoutData.cells) {\n const cellTop = elementWindowOffset + cell.offset;\n const cellBottom = cellTop + cell.height;\n const windowTop = containerData.windowScroll.y;\n const windowBottom = windowTop + containerData.windowSize.height;\n const renderTop = windowTop - configData.windowMargin;\n const renderBottom = windowBottom + configData.windowMargin;\n if (cellTop > renderBottom) {\n continue;\n }\n if (cellBottom < renderTop) {\n continue;\n }\n if (firstRenderedRowNumber === null) {\n firstRenderedRowNumber = cell.rowNumber;\n }\n if (cell.rowNumber === firstRenderedRowNumber) {\n firstRenderedRowOffset = firstRenderedRowOffset ? Math.min(firstRenderedRowOffset, cell.offset) : cell.offset;\n }\n cellsToRender.push(cell);\n }\n }\n return { cellsToRender, firstRenderedRowNumber, firstRenderedRowOffset };\n }\n getColumnWidth(columnCount, gridGap, elementWidth) {\n if (columnCount === null || gridGap === null || elementWidth === null) {\n return 0;\n }\n const totalGapSpace = (columnCount - 1) * gridGap;\n const columnWidth = Math.round((elementWidth - totalGapSpace) / columnCount);\n return columnWidth;\n }\n getGridRowStart(cell, renderData) {\n if (renderData === null) {\n return void 0;\n }\n const offset = renderData.firstRenderedRowNumber !== null ? renderData.firstRenderedRowNumber - 1 : 0;\n const gridRowStart = cell.rowNumber - offset;\n return `${gridRowStart}`;\n }\n resetGrid() {\n this.bottomReached = false;\n this.loadMoreData();\n }\n isSameElementSize(a, b) {\n return a.width === b.width && a.height === b.height;\n }\n getWindowSize() {\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n getElementSize(element) {\n const rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n isSameElementScroll(a, b) {\n return a.x === b.x && a.y === b.y;\n }\n getWindowScroll() {\n return {\n x: window.scrollX,\n y: window.scrollY\n };\n }\n getElementOffset(element) {\n return window.scrollY + element.getBoundingClientRect().top;\n }\n};\n__decorateClass([\n Prop({ required: true })\n], VirtualGrid$1.prototype, \"items\", 2);\n__decorateClass([\n Prop({ default: () => () => true })\n], VirtualGrid$1.prototype, \"updateFunction\", 2);\n__decorateClass([\n Prop({ default: () => getGridGapDefault })\n], VirtualGrid$1.prototype, \"getGridGap\", 2);\n__decorateClass([\n Prop({ default: () => getColumnCountDefault })\n], VirtualGrid$1.prototype, \"getColumnCount\", 2);\n__decorateClass([\n Prop({ default: () => getWindowMarginDefault })\n], VirtualGrid$1.prototype, \"getWindowMargin\", 2);\n__decorateClass([\n Prop({ default: () => getItemRatioHeightDefault })\n], VirtualGrid$1.prototype, \"getItemRatioHeight\", 2);\n__decorateClass([\n Prop({ default: null })\n], VirtualGrid$1.prototype, \"scrollElement\", 2);\n__decorateClass([\n Prop({ default: 500 })\n], VirtualGrid$1.prototype, \"updateTriggerMargin\", 2);\n__decorateClass([\n Prop({ default: null })\n], VirtualGrid$1.prototype, \"loader\", 2);\n__decorateClass([\n Prop({ default: false })\n], VirtualGrid$1.prototype, \"debug\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"updateLock\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"bottomReached\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"ref\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"containerData\", 2);\n__decorateClass([\n Watch(\"scrollElement\")\n], VirtualGrid$1.prototype, \"onScrollElementChanged\", 1);\nVirtualGrid$1 = __decorateClass([\n Component({\n name: \"VirtualGrid\"\n })\n], VirtualGrid$1);\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { ref: \"virtualGrid\", style: {\n boxSizing: \"border-box\",\n height: _vm.layoutData.totalHeight + \"px\",\n paddingTop: _vm.renderData !== null && _vm.renderData.firstRenderedRowOffset !== null ? _vm.renderData.firstRenderedRowOffset + \"px\" : \"0px\"\n } }, [_c(\"div\", { staticClass: \"grid\", style: {\n \"display\": \"-ms-grid\",\n \"display\": \"grid\",\n \"align-items\": \"center\",\n \"grid-template-columns\": \"repeat(\" + _vm.configData.columnCount + \", 1fr)\",\n \"gap\": _vm.configData.gridGap + \"px\"\n } }, _vm._l(_vm.renderData.cellsToRender, function(item) {\n return _c(\"div\", { key: item.id, staticClass: \"grid-item-wrapper\", style: {\n \"height\": item.height + \"px\",\n \"grid-column-start\": item.columnNumber,\n \"grid-column-end\": item.columnNumber + item.columnSpan,\n \"grid-row-start\": _vm.getGridRowStart(item, _vm.renderData)\n } }, [_c(item.renderComponent, _vm._g({ tag: \"component\", attrs: { \"item\": item } }, _vm.$listeners))], 1);\n }), 0), _c(_vm.loadingBatch && _vm.loader, { tag: \"component\" })], 1);\n};\nvar staticRenderFns = [];\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(VirtualGrid$1, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar VirtualGrid = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { VirtualGrid as default };\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosRequestConfig } from '@nextcloud/axios'\n\nimport axios from '@nextcloud/axios'\nimport { defaultRemoteURL, defaultRootPath } from '@nextcloud/files/dav'\nimport { generateUrl } from '@nextcloud/router'\nimport allowedMimes from './AllowedMimes.js'\n\nexport type FoldersNode = {\n\tbasename: string\n\tetag: string\n\tfileid: number\n\tfilename: string\n\tsource: string\n\tlastmod: number\n\tmime: string\n\tsize: number\n\ttype: string\n\tpermissions: string\n\thasPreview: boolean\n}\n\n/**\n * List files from a folder and filter out unwanted mimes\n *\n * @param path\n * @param options\n */\nexport default async function(path: string = '/', options: AxiosRequestConfig & { shared?: boolean } = {}) {\n\tconst endpoint = generateUrl(`/apps/photos/api/v1/${options.shared ? 'shared' : 'albums'}`)\n\n\t// fetch listing\n\tconst response = await axios.get(endpoint + path, options)\n\tconst list: FoldersNode[] = response.data\n\t\t.map((data) => ({\n\t\t\t...data,\n\t\t\tfilename: `${defaultRootPath}${data.filename}`,\n\t\t\tsource: decodeURI(defaultRemoteURL + `${defaultRootPath}${data.filename}`),\n\t\t}))\n\n\t// filter all the files and folders\n\tlet folder: FoldersNode | undefined\n\tconst folders: FoldersNode[] = []\n\tconst files: FoldersNode[] = []\n\n\tfor (const entry of list) {\n\t\t// is this the current provided path ?\n\t\tif (entry.filename === `${defaultRootPath}${path}`) {\n\t\t\tfolder = entry\n\t\t} else if (entry.type !== 'file') {\n\t\t\tfolders.push(entry)\n\t\t} else if (allowedMimes.indexOf(entry.mime) > -1) {\n\t\t\tfiles.push(entry)\n\t\t}\n\t}\n\n\t// return current folder, subfolders and files\n\treturn { folder, folders, files }\n}\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Define the max width proportions\n * The number (key) indicate the MAX size\n *\n * needs to be compatible with webpack config\n * so no export default {}\n */\nexport default {\n\t400: {\n\t\tmarginTop: 66,\n\t\tmarginW: 8,\n\t\tcount: 3,\n\t\tfolderCount: 1,\n\t},\n\t700: {\n\t\tmarginTop: 66,\n\t\tmarginW: 8,\n\t\tcount: 4,\n\t\tfolderCount: 1,\n\t},\n\t1024: {\n\t\tmarginTop: 66,\n\t\tmarginW: 44,\n\t\tcount: 5,\n\t\tfolderCount: 2,\n\t},\n\t1280: {\n\t\tmarginTop: 66,\n\t\tmarginW: 44,\n\t\tcount: 4,\n\t\tfolderCount: 2,\n\t},\n\t1440: {\n\t\tmarginTop: 88,\n\t\tmarginW: 66,\n\t\tcount: 5,\n\t\tfolderCount: 3,\n\t},\n\t1600: {\n\t\tmarginTop: 88,\n\t\tmarginW: 66,\n\t\tcount: 6,\n\t\tfolderCount: 4,\n\t},\n\t2048: {\n\t\tmarginTop: 88,\n\t\tmarginW: 66,\n\t\tcount: 7,\n\t\tfolderCount: 4,\n\t},\n\t2560: {\n\t\tmarginTop: 88,\n\t\tmarginW: 88,\n\t\tcount: 8,\n\t\tfolderCount: 6,\n\t},\n\t3440: {\n\t\tmarginTop: 88,\n\t\tmarginW: 88,\n\t\tcount: 9,\n\t\tfolderCount: 8,\n\t},\n\tmax: {\n\t\tmarginTop: 88,\n\t\tmarginW: 88,\n\t\tcount: 10,\n\t\tfolderCount: 10,\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport sizes from '../assets/grid-sizes.js'\n\nexport default new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: sizes.max,\n\t\t}\n\t},\n\twatch: {\n\t\tgridConfig(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\t// find the first grid size that fit the current window width\n\t\t\tconst currentSize = Object.keys(sizes).map((size) => Number.parseInt(size)).find((size) => size > document.documentElement.clientWidth)\n\t\t\tthis.gridConfig = sizes[currentSize as number] || sizes.max\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineComponent } from 'vue'\nimport getGridConfig from '../services/GridConfig.js'\nimport logger from '../services/logger.js'\n\n/**\n * Get the current used grid config\n */\nexport default defineComponent({\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: {} as typeof getGridConfig.gridConfig,\n\t\t}\n\t},\n\n\tcreated() {\n\t\tgetGridConfig.$on('changed', this.handleGridConfigChange)\n\t\tlogger.debug('Grid config', { gridConfig: getGridConfig.gridConfig })\n\t\tthis.gridConfig = getGridConfig.gridConfig\n\t},\n\n\tbeforeDestroy() {\n\t\tgetGridConfig.$off('changed', this.handleGridConfigChange)\n\t},\n\n\tmethods: {\n\t\thandleGridConfigChange(val: typeof getGridConfig.gridConfig) {\n\t\t\tthis.gridConfig = val\n\t\t},\n\t},\n})\n","\n\n\n\n\n\n\n"],"names":["__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","_typeof","obj2","_defineProperty","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","i","arr2","iter","reflectionIsSupported","copyReflectionMetadata","to","from","forwardMetadata","propertyKey","metaKeys","metaKey","metadata","fakeArray","hasProto","createDecorator","factory","target","index","Ctor","options","isPrimitive","type","collectDataFromConstructor","vm","Component2","originalInit","_this","keys","key2","data","plainData","$internalHooks","componentFactory","proto","descriptor","decorators","fn","superProto","Super","Vue","Extended","forwardStaticMembers","shouldIgnore","Original","extendedDescriptor","superDescriptor","Component","needToProduceProvide","original","produceProvide","provide","rv","reactiveInjectKey","_loop_1","i2","this_1","inheritInjected","componentOptions","reflectMetadataIsSupported","applyMetadata","Prop","k","ProvideReactive","Watch","path","_a","deep","_b","immediate","handler","watch","getGridGapDefault","elementWidth","windowHeight","getColumnCountDefault","getWindowMarginDefault","getItemRatioHeightDefault","height","width","columnWidth","imageRatio","debugLog","condition","args","__defProp2","__getOwnPropDesc","__decorateClass","kind","result","decorator","VirtualGrid$1","scrollElement","oldScrollElement","error","windowBottom","bottomTrigger","windowSize","windowScroll","elementWindowOffset","elementSize","containerData","items","windowMargin","gridGap","columnCount","entries","item","imageWidth","configData","currentRowNumber","prevRowsTotalHeight","currentRowMaxHeight","columnShift","cells","entry","columnSpanRecompute","heightRecompute","distanceToRowStart","shiftedIndex","columnNumber","rowNumber","overlapNumber","overlapRatio","offset","totalHeight","layoutData","cellsToRender","firstRenderedRowNumber","firstRenderedRowOffset","cell","cellTop","cellBottom","windowTop","renderTop","renderBottom","totalGapSpace","renderData","element","rect","render","_vm","_h","_c","staticRenderFns","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","originalRender","h","context","existing","__cssModules","__component__","__vue2_injectStyles","o","VirtualGrid","_sfc_main$3","t","generateUrl","legacyToViewerFileInfo","file","_sfc_main$2","FolderOutline","RouterLink","fileid","etag","prefix","getCurrentUser","getFolderContent","endpoint","list","axios","defaultRootPath","defaultRemoteURL","folder","folders","files","allowedMimes","_sfc_main$1","defineComponent","FolderTagPreview","AbortControllerMixin","previewFolderContent","previewFiles","id","firstChildFolder","filename","unPrefixedFileName","logger","sizes","getGridConfig","val","currentSize","size","GridConfigMixin","_sfc_main","HeaderNavigation","NcEmptyContent","NcLoadingIcon","UploadPicker","getUploader","Folder","parsePermissions","FolderComponent","FileLegacy","upload","relPath","node","fetchFile"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"FoldersView-DhVFd5R9.chunk.mjs","sources":["../node_modules/vue-virtual-grid/dist/vue-virtual-grid.es.js","../src/components/FileLegacy.vue","../src/components/FolderTagPreview.vue","../src/services/FolderContent.ts","../src/components/FolderComponent.vue","../src/assets/grid-sizes.ts","../src/services/GridConfig.ts","../src/mixins/GridConfig.ts","../src/views/FoldersView.vue"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport Vue from \"vue\";\n/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++)\n arr2[i] = arr[i];\n return arr2;\n }\n}\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\")\n return Array.from(iter);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\nfunction reflectionIsSupported() {\n return typeof Reflect !== \"undefined\" && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function(key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function(key) {\n forwardMetadata(to, from, key);\n });\n}\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function(metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function(target, key, index) {\n var Ctor = typeof target === \"function\" ? target : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== \"number\") {\n index = void 0;\n }\n Ctor.__decorators__.push(function(options) {\n return factory(options, key, index);\n });\n };\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n return value == null || type !== \"object\" && type !== \"function\";\n}\nfunction collectDataFromConstructor(vm, Component2) {\n var originalInit = Component2.prototype._init;\n Component2.prototype._init = function() {\n var _this = this;\n var keys = Object.getOwnPropertyNames(vm);\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function(key2) {\n Object.defineProperty(_this, key2, {\n get: function get() {\n return vm[key2];\n },\n set: function set(value) {\n vm[key2] = value;\n },\n configurable: true\n });\n });\n };\n var data = new Component2();\n Component2.prototype._init = originalInit;\n var plainData = {};\n Object.keys(data).forEach(function(key) {\n if (data[key] !== void 0) {\n plainData[key] = data[key];\n }\n });\n return plainData;\n}\nvar $internalHooks = [\n \"data\",\n \"beforeCreate\",\n \"created\",\n \"beforeMount\",\n \"mounted\",\n \"beforeDestroy\",\n \"destroyed\",\n \"beforeUpdate\",\n \"updated\",\n \"activated\",\n \"deactivated\",\n \"render\",\n \"errorCaptured\",\n \"serverPrefetch\"\n];\nfunction componentFactory(Component2) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n options.name = options.name || Component2._componentTag || Component2.name;\n var proto = Component2.prototype;\n Object.getOwnPropertyNames(proto).forEach(function(key) {\n if (key === \"constructor\") {\n return;\n }\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (descriptor.value !== void 0) {\n if (typeof descriptor.value === \"function\") {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component2);\n }\n });\n var decorators = Component2.__decorators__;\n if (decorators) {\n decorators.forEach(function(fn) {\n return fn(options);\n });\n delete Component2.__decorators__;\n }\n var superProto = Object.getPrototypeOf(Component2.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component2, Super);\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component2);\n }\n return Extended;\n}\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\nfunction forwardStaticMembers(Extended, Original, Super) {\n Object.getOwnPropertyNames(Original).forEach(function(key) {\n if (shouldIgnore[key]) {\n return;\n }\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n if (!hasProto) {\n if (key === \"cid\") {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\nfunction Component(options) {\n if (typeof options === \"function\") {\n return componentFactory(options);\n }\n return function(Component2) {\n return componentFactory(Component2, options);\n };\n}\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\nglobalThis && globalThis.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nfunction needToProduceProvide(original) {\n return typeof original !== \"function\" || !original.managed && !original.managedReactive;\n}\nfunction produceProvide(original) {\n var provide = function() {\n var _this = this;\n var rv = typeof original === \"function\" ? original.call(this) : original;\n rv = Object.create(rv || null);\n rv[reactiveInjectKey] = Object.create(this[reactiveInjectKey] || {});\n for (var i in provide.managed) {\n rv[provide.managed[i]] = this[i];\n }\n var _loop_1 = function(i2) {\n rv[provide.managedReactive[i2]] = this_1[i2];\n Object.defineProperty(rv[reactiveInjectKey], provide.managedReactive[i2], {\n enumerable: true,\n configurable: true,\n get: function() {\n return _this[i2];\n }\n });\n };\n var this_1 = this;\n for (var i in provide.managedReactive) {\n _loop_1(i);\n }\n return rv;\n };\n provide.managed = {};\n provide.managedReactive = {};\n return provide;\n}\nvar reactiveInjectKey = \"__reactiveInject__\";\nfunction inheritInjected(componentOptions) {\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject = componentOptions.inject || {};\n componentOptions.inject[reactiveInjectKey] = {\n from: reactiveInjectKey,\n default: {}\n };\n }\n}\nvar reflectMetadataIsSupported = typeof Reflect !== \"undefined\" && typeof Reflect.getMetadata !== \"undefined\";\nfunction applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) && typeof options !== \"function\" && !options.hasOwnProperty(\"type\") && typeof options.type === \"undefined\") {\n var type = Reflect.getMetadata(\"design:type\", target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\nfunction Prop(options) {\n if (options === void 0) {\n options = {};\n }\n return function(target, key) {\n applyMetadata(options, target, key);\n createDecorator(function(componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\nfunction ProvideReactive(key) {\n return createDecorator(function(componentOptions, k) {\n var provide = componentOptions.provide;\n inheritInjected(componentOptions);\n if (needToProduceProvide(provide)) {\n provide = componentOptions.provide = produceProvide(provide);\n }\n provide.managedReactive[k] = key || k;\n });\n}\nfunction Watch(path, options) {\n if (options === void 0) {\n options = {};\n }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function(componentOptions, handler) {\n if (typeof componentOptions.watch !== \"object\") {\n componentOptions.watch = /* @__PURE__ */ Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === \"object\" && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n } else if (typeof watch[path] === \"undefined\") {\n watch[path] = [];\n }\n watch[path].push({ handler, deep, immediate });\n });\n}\nconst getGridGapDefault = (elementWidth, windowHeight) => {\n if (elementWidth > 720 && windowHeight > 480) {\n return 10;\n } else {\n return 5;\n }\n};\nconst getColumnCountDefault = (elementWidth) => {\n return Math.floor(elementWidth / 250);\n};\nconst getWindowMarginDefault = (windowHeight) => {\n return Math.round(windowHeight * 1.5);\n};\nconst getItemRatioHeightDefault = (height, width, columnWidth) => {\n const imageRatio = height / width;\n return Math.round(columnWidth * imageRatio);\n};\nconst debugLog = (condition, ...args) => {\n if (condition) {\n console.debug(...args);\n }\n};\nvar __defProp2 = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp2(target, key, result);\n return result;\n};\nlet VirtualGrid$1 = class extends Vue {\n constructor() {\n super(...arguments);\n this.updateLock = false;\n this.bottomReached = false;\n this.ref = null;\n this.containerData = {\n windowSize: { height: 0, width: 0 },\n windowScroll: { x: 0, y: 0 },\n elementWindowOffset: 0,\n elementSize: { height: 0, width: 0 }\n };\n }\n get loadingBatch() {\n return this.loader && this.updateLock;\n }\n get configData() {\n return this.computeConfigData(this.containerData, this.items);\n }\n get layoutData() {\n return this.computeLayoutData(this.configData);\n }\n get renderData() {\n return this.computeRenderData(this.configData, this.containerData, this.layoutData);\n }\n mounted() {\n var _a;\n this.ref = this.$refs.virtualGrid;\n this.initiliazeGrid();\n window.addEventListener(\"resize\", this.resize);\n ((_a = this.scrollElement) != null ? _a : window).addEventListener(\"scroll\", this.scroll);\n }\n beforeDestroy() {\n var _a;\n window.removeEventListener(\"resize\", this.resize);\n ((_a = this.scrollElement) != null ? _a : window).removeEventListener(\"scroll\", this.scroll);\n }\n onScrollElementChanged(scrollElement, oldScrollElement) {\n (oldScrollElement != null ? oldScrollElement : window).removeEventListener(\"scroll\", this.scroll);\n (scrollElement != null ? scrollElement : window).addEventListener(\"scroll\", this.scroll);\n }\n resize() {\n this.loadMoreData();\n }\n scroll() {\n this.loadMoreData();\n }\n initiliazeGrid() {\n this.computeContainerData();\n this.$nextTick(async () => {\n this.loadMoreData();\n });\n }\n loadMoreData() {\n this.loadMoreDataAsync().catch((error) => {\n if (error) {\n console.error(\"Fail to load next data batch\", error);\n }\n }).then();\n }\n async loadMoreDataAsync() {\n this.computeContainerData();\n const windowTop = this.containerData.windowScroll.y;\n const windowBottom = windowTop + this.containerData.windowSize.height;\n const bottomTrigger = Math.max(0, this.containerData.elementWindowOffset + this.containerData.elementSize.height - this.updateTriggerMargin);\n if (!this.bottomReached && windowBottom >= bottomTrigger && !this.updateLock) {\n this.updateLock = true;\n debugLog(this.debug, \"Loading next batch\");\n const isLastBatch = await this.updateFunction();\n if (isLastBatch) {\n debugLog(this.debug, \"Bottom reached\");\n this.bottomReached = true;\n }\n this.updateLock = false;\n await this.loadMoreDataAsync();\n }\n return;\n }\n computeContainerData() {\n if (this.ref === null) {\n return;\n }\n const windowSize = this.getWindowSize();\n const windowScroll = this.getWindowScroll();\n const elementWindowOffset = this.getElementOffset(this.ref);\n const elementSize = this.getElementSize(this.ref);\n this.containerData = { windowSize, windowScroll, elementWindowOffset, elementSize };\n }\n computeConfigData(containerData, items) {\n if (containerData === null || items === null) {\n return {\n windowMargin: 0,\n gridGap: 0,\n columnCount: 1,\n entries: []\n };\n }\n const elementWidth = containerData.elementSize ? containerData.elementSize.width : 0;\n const windowMargin = this.getWindowMargin(containerData.windowSize.height);\n const gridGap = this.getGridGap(elementWidth, containerData.windowSize.height);\n const columnCount = this.getColumnCount(elementWidth);\n const columnWidth = this.getColumnWidth(columnCount, gridGap, elementWidth);\n const entries = items.map((item) => {\n if (!item.width) {\n return item;\n }\n const imageWidth = columnWidth * item.columnSpan + gridGap * (item.columnSpan - 1);\n return __spreadProps(__spreadValues({}, item), {\n height: this.getItemRatioHeight(item.height, item.width, imageWidth),\n width: imageWidth\n });\n });\n return {\n windowMargin,\n gridGap,\n columnCount,\n entries\n };\n }\n computeLayoutData(configData) {\n if (configData === null) {\n return { cells: [], totalHeight: 0 };\n }\n let currentRowNumber = 1;\n let prevRowsTotalHeight = 0;\n let currentRowMaxHeight = 0;\n let columnShift = 0;\n const cells = configData.entries.map((entry, index) => {\n const { columnCount, gridGap } = configData;\n let columnSpanRecompute = entry.columnSpan;\n let heightRecompute = entry.height;\n if (columnSpanRecompute < 1) {\n columnSpanRecompute = columnCount;\n }\n const distanceToRowStart = (index + columnShift) % columnCount;\n if (entry.newRow && distanceToRowStart !== 0) {\n columnShift += columnCount - distanceToRowStart;\n }\n const shiftedIndex = index + columnShift;\n const columnNumber = shiftedIndex % columnCount + 1;\n const rowNumber = Math.floor(shiftedIndex / columnCount) + 1;\n if (columnNumber + columnSpanRecompute > columnCount + 1) {\n const overlapNumber = columnNumber + columnSpanRecompute - columnCount - 1;\n const overlapRatio = overlapNumber / columnSpanRecompute;\n heightRecompute = heightRecompute * (1 - overlapRatio);\n columnSpanRecompute -= overlapNumber;\n }\n if (columnSpanRecompute > 1) {\n columnShift += columnSpanRecompute - 1;\n }\n if (rowNumber !== currentRowNumber) {\n currentRowNumber = rowNumber;\n prevRowsTotalHeight += currentRowMaxHeight + gridGap;\n currentRowMaxHeight = 0;\n }\n const offset = prevRowsTotalHeight;\n const height = Math.round(heightRecompute);\n currentRowMaxHeight = Math.max(currentRowMaxHeight, height);\n return __spreadProps(__spreadValues({}, entry), { columnNumber, rowNumber, offset, height, columnSpan: columnSpanRecompute });\n });\n const totalHeight = prevRowsTotalHeight + currentRowMaxHeight;\n return { cells, totalHeight };\n }\n computeRenderData(configData, containerData, layoutData) {\n if (layoutData === null || configData === null) {\n return { cellsToRender: [], firstRenderedRowNumber: 0, firstRenderedRowOffset: 0 };\n }\n const cellsToRender = [];\n let firstRenderedRowNumber = null;\n let firstRenderedRowOffset = null;\n if (containerData.elementWindowOffset !== null) {\n const elementWindowOffset = containerData.elementWindowOffset;\n for (const cell of layoutData.cells) {\n const cellTop = elementWindowOffset + cell.offset;\n const cellBottom = cellTop + cell.height;\n const windowTop = containerData.windowScroll.y;\n const windowBottom = windowTop + containerData.windowSize.height;\n const renderTop = windowTop - configData.windowMargin;\n const renderBottom = windowBottom + configData.windowMargin;\n if (cellTop > renderBottom) {\n continue;\n }\n if (cellBottom < renderTop) {\n continue;\n }\n if (firstRenderedRowNumber === null) {\n firstRenderedRowNumber = cell.rowNumber;\n }\n if (cell.rowNumber === firstRenderedRowNumber) {\n firstRenderedRowOffset = firstRenderedRowOffset ? Math.min(firstRenderedRowOffset, cell.offset) : cell.offset;\n }\n cellsToRender.push(cell);\n }\n }\n return { cellsToRender, firstRenderedRowNumber, firstRenderedRowOffset };\n }\n getColumnWidth(columnCount, gridGap, elementWidth) {\n if (columnCount === null || gridGap === null || elementWidth === null) {\n return 0;\n }\n const totalGapSpace = (columnCount - 1) * gridGap;\n const columnWidth = Math.round((elementWidth - totalGapSpace) / columnCount);\n return columnWidth;\n }\n getGridRowStart(cell, renderData) {\n if (renderData === null) {\n return void 0;\n }\n const offset = renderData.firstRenderedRowNumber !== null ? renderData.firstRenderedRowNumber - 1 : 0;\n const gridRowStart = cell.rowNumber - offset;\n return `${gridRowStart}`;\n }\n resetGrid() {\n this.bottomReached = false;\n this.loadMoreData();\n }\n isSameElementSize(a, b) {\n return a.width === b.width && a.height === b.height;\n }\n getWindowSize() {\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n getElementSize(element) {\n const rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n isSameElementScroll(a, b) {\n return a.x === b.x && a.y === b.y;\n }\n getWindowScroll() {\n return {\n x: window.scrollX,\n y: window.scrollY\n };\n }\n getElementOffset(element) {\n return window.scrollY + element.getBoundingClientRect().top;\n }\n};\n__decorateClass([\n Prop({ required: true })\n], VirtualGrid$1.prototype, \"items\", 2);\n__decorateClass([\n Prop({ default: () => () => true })\n], VirtualGrid$1.prototype, \"updateFunction\", 2);\n__decorateClass([\n Prop({ default: () => getGridGapDefault })\n], VirtualGrid$1.prototype, \"getGridGap\", 2);\n__decorateClass([\n Prop({ default: () => getColumnCountDefault })\n], VirtualGrid$1.prototype, \"getColumnCount\", 2);\n__decorateClass([\n Prop({ default: () => getWindowMarginDefault })\n], VirtualGrid$1.prototype, \"getWindowMargin\", 2);\n__decorateClass([\n Prop({ default: () => getItemRatioHeightDefault })\n], VirtualGrid$1.prototype, \"getItemRatioHeight\", 2);\n__decorateClass([\n Prop({ default: null })\n], VirtualGrid$1.prototype, \"scrollElement\", 2);\n__decorateClass([\n Prop({ default: 500 })\n], VirtualGrid$1.prototype, \"updateTriggerMargin\", 2);\n__decorateClass([\n Prop({ default: null })\n], VirtualGrid$1.prototype, \"loader\", 2);\n__decorateClass([\n Prop({ default: false })\n], VirtualGrid$1.prototype, \"debug\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"updateLock\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"bottomReached\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"ref\", 2);\n__decorateClass([\n ProvideReactive()\n], VirtualGrid$1.prototype, \"containerData\", 2);\n__decorateClass([\n Watch(\"scrollElement\")\n], VirtualGrid$1.prototype, \"onScrollElementChanged\", 1);\nVirtualGrid$1 = __decorateClass([\n Component({\n name: \"VirtualGrid\"\n })\n], VirtualGrid$1);\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { ref: \"virtualGrid\", style: {\n boxSizing: \"border-box\",\n height: _vm.layoutData.totalHeight + \"px\",\n paddingTop: _vm.renderData !== null && _vm.renderData.firstRenderedRowOffset !== null ? _vm.renderData.firstRenderedRowOffset + \"px\" : \"0px\"\n } }, [_c(\"div\", { staticClass: \"grid\", style: {\n \"display\": \"-ms-grid\",\n \"display\": \"grid\",\n \"align-items\": \"center\",\n \"grid-template-columns\": \"repeat(\" + _vm.configData.columnCount + \", 1fr)\",\n \"gap\": _vm.configData.gridGap + \"px\"\n } }, _vm._l(_vm.renderData.cellsToRender, function(item) {\n return _c(\"div\", { key: item.id, staticClass: \"grid-item-wrapper\", style: {\n \"height\": item.height + \"px\",\n \"grid-column-start\": item.columnNumber,\n \"grid-column-end\": item.columnNumber + item.columnSpan,\n \"grid-row-start\": _vm.getGridRowStart(item, _vm.renderData)\n } }, [_c(item.renderComponent, _vm._g({ tag: \"component\", attrs: { \"item\": item } }, _vm.$listeners))], 1);\n }), 0), _c(_vm.loadingBatch && _vm.loader, { tag: \"component\" })], 1);\n};\nvar staticRenderFns = [];\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(VirtualGrid$1, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar VirtualGrid = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { VirtualGrid as default };\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { AxiosRequestConfig } from '@nextcloud/axios'\n\nimport axios from '@nextcloud/axios'\nimport { defaultRemoteURL, defaultRootPath } from '@nextcloud/files/dav'\nimport { generateUrl } from '@nextcloud/router'\nimport allowedMimes from './AllowedMimes.js'\n\nexport type FoldersNode = {\n\tbasename: string\n\tetag: string\n\tfileid: number\n\tfilename: string\n\tsource: string\n\tlastmod: number\n\tmime: string\n\tsize: number\n\ttype: string\n\tpermissions: string\n\thasPreview: boolean\n}\n\n/**\n * List files from a folder and filter out unwanted mimes\n *\n * @param path\n * @param options\n */\nexport default async function(path: string = '/', options: AxiosRequestConfig & { shared?: boolean } = {}) {\n\tconst endpoint = generateUrl(`/apps/photos/api/v1/${options.shared ? 'shared' : 'albums'}`)\n\n\t// fetch listing\n\tconst response = await axios.get(endpoint + path, options)\n\tconst list: FoldersNode[] = response.data\n\t\t.map((data) => ({\n\t\t\t...data,\n\t\t\tfilename: `${defaultRootPath}${data.filename}`,\n\t\t\tsource: decodeURI(defaultRemoteURL + `${defaultRootPath}${data.filename}`),\n\t\t}))\n\n\t// filter all the files and folders\n\tlet folder: FoldersNode | undefined\n\tconst folders: FoldersNode[] = []\n\tconst files: FoldersNode[] = []\n\n\tfor (const entry of list) {\n\t\t// is this the current provided path ?\n\t\tif (entry.filename === `${defaultRootPath}${path}`) {\n\t\t\tfolder = entry\n\t\t} else if (entry.type !== 'file') {\n\t\t\tfolders.push(entry)\n\t\t} else if (allowedMimes.indexOf(entry.mime) > -1) {\n\t\t\tfiles.push(entry)\n\t\t}\n\t}\n\n\t// return current folder, subfolders and files\n\treturn { folder, folders, files }\n}\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Define the max width proportions\n * The number (key) indicate the MAX size\n *\n * needs to be compatible with webpack config\n * so no export default {}\n */\nexport default {\n\t400: {\n\t\tmarginTop: 66,\n\t\tmarginW: 8,\n\t\tcount: 3,\n\t\tfolderCount: 1,\n\t},\n\t700: {\n\t\tmarginTop: 66,\n\t\tmarginW: 8,\n\t\tcount: 4,\n\t\tfolderCount: 1,\n\t},\n\t1024: {\n\t\tmarginTop: 66,\n\t\tmarginW: 44,\n\t\tcount: 5,\n\t\tfolderCount: 2,\n\t},\n\t1280: {\n\t\tmarginTop: 66,\n\t\tmarginW: 44,\n\t\tcount: 4,\n\t\tfolderCount: 2,\n\t},\n\t1440: {\n\t\tmarginTop: 88,\n\t\tmarginW: 66,\n\t\tcount: 5,\n\t\tfolderCount: 3,\n\t},\n\t1600: {\n\t\tmarginTop: 88,\n\t\tmarginW: 66,\n\t\tcount: 6,\n\t\tfolderCount: 4,\n\t},\n\t2048: {\n\t\tmarginTop: 88,\n\t\tmarginW: 66,\n\t\tcount: 7,\n\t\tfolderCount: 4,\n\t},\n\t2560: {\n\t\tmarginTop: 88,\n\t\tmarginW: 88,\n\t\tcount: 8,\n\t\tfolderCount: 6,\n\t},\n\t3440: {\n\t\tmarginTop: 88,\n\t\tmarginW: 88,\n\t\tcount: 9,\n\t\tfolderCount: 8,\n\t},\n\tmax: {\n\t\tmarginTop: 88,\n\t\tmarginW: 88,\n\t\tcount: 10,\n\t\tfolderCount: 10,\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport sizes from '../assets/grid-sizes.js'\n\nexport default new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: sizes.max,\n\t\t}\n\t},\n\twatch: {\n\t\tgridConfig(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\t// find the first grid size that fit the current window width\n\t\t\tconst currentSize = Object.keys(sizes).map((size) => Number.parseInt(size)).find((size) => size > document.documentElement.clientWidth)\n\t\t\tthis.gridConfig = sizes[currentSize as number] || sizes.max\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineComponent } from 'vue'\nimport getGridConfig from '../services/GridConfig.js'\nimport logger from '../services/logger.js'\n\n/**\n * Get the current used grid config\n */\nexport default defineComponent({\n\tdata() {\n\t\treturn {\n\t\t\tgridConfig: {} as typeof getGridConfig.gridConfig,\n\t\t}\n\t},\n\n\tcreated() {\n\t\tgetGridConfig.$on('changed', this.handleGridConfigChange)\n\t\tlogger.debug('Grid config', { gridConfig: getGridConfig.gridConfig })\n\t\tthis.gridConfig = getGridConfig.gridConfig\n\t},\n\n\tbeforeDestroy() {\n\t\tgetGridConfig.$off('changed', this.handleGridConfigChange)\n\t},\n\n\tmethods: {\n\t\thandleGridConfigChange(val: typeof getGridConfig.gridConfig) {\n\t\t\tthis.gridConfig = val\n\t\t},\n\t},\n})\n","\n\n\n\n\n\n\n"],"names":["__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","_typeof","obj2","_defineProperty","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","i","arr2","iter","reflectionIsSupported","copyReflectionMetadata","to","from","forwardMetadata","propertyKey","metaKeys","metaKey","metadata","fakeArray","hasProto","createDecorator","factory","target","index","Ctor","options","isPrimitive","type","collectDataFromConstructor","vm","Component2","originalInit","_this","keys","key2","data","plainData","$internalHooks","componentFactory","proto","descriptor","decorators","fn","superProto","Super","Vue","Extended","forwardStaticMembers","shouldIgnore","Original","extendedDescriptor","superDescriptor","Component","needToProduceProvide","original","produceProvide","provide","rv","reactiveInjectKey","_loop_1","i2","this_1","inheritInjected","componentOptions","reflectMetadataIsSupported","applyMetadata","Prop","k","ProvideReactive","Watch","path","_a","deep","_b","immediate","handler","watch","getGridGapDefault","elementWidth","windowHeight","getColumnCountDefault","getWindowMarginDefault","getItemRatioHeightDefault","height","width","columnWidth","imageRatio","debugLog","condition","args","__defProp2","__getOwnPropDesc","__decorateClass","kind","result","decorator","VirtualGrid$1","scrollElement","oldScrollElement","error","windowBottom","bottomTrigger","windowSize","windowScroll","elementWindowOffset","elementSize","containerData","items","windowMargin","gridGap","columnCount","entries","item","imageWidth","configData","currentRowNumber","prevRowsTotalHeight","currentRowMaxHeight","columnShift","cells","entry","columnSpanRecompute","heightRecompute","distanceToRowStart","shiftedIndex","columnNumber","rowNumber","overlapNumber","overlapRatio","offset","totalHeight","layoutData","cellsToRender","firstRenderedRowNumber","firstRenderedRowOffset","cell","cellTop","cellBottom","windowTop","renderTop","renderBottom","totalGapSpace","renderData","element","rect","render","_vm","_h","_c","staticRenderFns","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","originalRender","h","context","existing","__cssModules","__component__","__vue2_injectStyles","o","VirtualGrid","_sfc_main$3","t","generateUrl","legacyToViewerFileInfo","file","_sfc_main$2","FolderOutline","RouterLink","fileid","etag","prefix","getCurrentUser","getFolderContent","endpoint","list","axios","defaultRootPath","defaultRemoteURL","folder","folders","files","allowedMimes","_sfc_main$1","defineComponent","FolderTagPreview","AbortControllerMixin","previewFolderContent","previewFiles","id","firstChildFolder","filename","unPrefixedFileName","logger","sizes","getGridConfig","val","currentSize","size","GridConfigMixin","_sfc_main","HeaderNavigation","NcEmptyContent","NcLoadingIcon","UploadPicker","getUploader","Folder","parsePermissions","FolderComponent","FileLegacy","upload","relPath","node","fetchFile"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/js/HeaderNavigation-Cs3s9UVW.chunk.mjs b/js/HeaderNavigation-NTIRuixF.chunk.mjs similarity index 93% rename from js/HeaderNavigation-Cs3s9UVW.chunk.mjs rename to js/HeaderNavigation-NTIRuixF.chunk.mjs index adf334c04..03fba8dc4 100644 --- a/js/HeaderNavigation-Cs3s9UVW.chunk.mjs +++ b/js/HeaderNavigation-NTIRuixF.chunk.mjs @@ -1,2 +1,2 @@ -import{a as s}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as i}from"./index-msNec4Xs.chunk.mjs";import{N as a}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{e,n}from"./icons-Du8Q1knx.chunk.mjs";const r={name:"HeaderNavigation",components:{ArrowLeft:e,NcButton:i,NcLoadingIcon:a},inheritAttrs:!1,props:{loading:{type:Boolean,default:!1},path:{type:String,default:"/"},title:{type:String,required:!0},rootTitle:{type:String,default:s("photos","Photos")}},computed:{isRoot(){return this.path==="/"},name(){return this.isRoot?this.rootTitle:this.title}},methods:{folderUp(){this.$router.push(this.$route.path.split("/").slice(0,-1).join("/"))},refresh(){this.$emit("refresh")},t:s}};var l=function(){var t=this,o=t._self._c;return o("div",{staticClass:"photos-navigation",class:{"photos-navigation--root":t.isRoot},attrs:{role:"toolbar"}},[t.isRoot?t._e():o("NcButton",{staticClass:"photos-navigation__back",attrs:{"aria-label":t.t("photos","Go back"),variant:"tertiary"},on:{click:t.folderUp},scopedSlots:t._u([{key:"icon",fn:function(){return[o("ArrowLeft",{attrs:{size:20}})]},proxy:!0}],null,!1,1821202730)}),o("div",{staticClass:"photos-navigation__title"},[o("h1",{staticClass:"photos-navigation__title__main",on:{click:t.refresh}},[t._v(" "+t._s(t.name)+" ")]),o("div",{staticClass:"photos-navigation__title__sub"}),t._t("subtitle")],2),o("div",{staticClass:"photos-navigation__content"},[t.$slots.default?o("div",{staticClass:"photos-navigation__content__left"},[t._t("default")],2):t._e(),o("NcLoadingIcon",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}],staticClass:"photos-navigation__loader"}),o("div",{staticClass:"photos-navigation__content__right"},[t._t("right")],2)],1)],1)},c=[],p=n(r,l,c,!1,null,"dee91203");const v=p.exports;export{v as H}; -//# sourceMappingURL=HeaderNavigation-Cs3s9UVW.chunk.mjs.map +import{a as s}from"./preload-helper-B1hyiFAx.chunk.mjs";import{N as i}from"./index-msNec4Xs.chunk.mjs";import{N as a}from"./NcLoadingIcon-DM-94wwW.chunk.mjs";import{e,n}from"./icons-DCSM00Rh.chunk.mjs";const r={name:"HeaderNavigation",components:{ArrowLeft:e,NcButton:i,NcLoadingIcon:a},inheritAttrs:!1,props:{loading:{type:Boolean,default:!1},path:{type:String,default:"/"},title:{type:String,required:!0},rootTitle:{type:String,default:s("photos","Photos")}},computed:{isRoot(){return this.path==="/"},name(){return this.isRoot?this.rootTitle:this.title}},methods:{folderUp(){this.$router.push(this.$route.path.split("/").slice(0,-1).join("/"))},refresh(){this.$emit("refresh")},t:s}};var l=function(){var t=this,o=t._self._c;return o("div",{staticClass:"photos-navigation",class:{"photos-navigation--root":t.isRoot},attrs:{role:"toolbar"}},[t.isRoot?t._e():o("NcButton",{staticClass:"photos-navigation__back",attrs:{"aria-label":t.t("photos","Go back"),variant:"tertiary"},on:{click:t.folderUp},scopedSlots:t._u([{key:"icon",fn:function(){return[o("ArrowLeft",{attrs:{size:20}})]},proxy:!0}],null,!1,1821202730)}),o("div",{staticClass:"photos-navigation__title"},[o("h1",{staticClass:"photos-navigation__title__main",on:{click:t.refresh}},[t._v(" "+t._s(t.name)+" ")]),o("div",{staticClass:"photos-navigation__title__sub"}),t._t("subtitle")],2),o("div",{staticClass:"photos-navigation__content"},[t.$slots.default?o("div",{staticClass:"photos-navigation__content__left"},[t._t("default")],2):t._e(),o("NcLoadingIcon",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}],staticClass:"photos-navigation__loader"}),o("div",{staticClass:"photos-navigation__content__right"},[t._t("right")],2)],1)],1)},c=[],p=n(r,l,c,!1,null,"dee91203");const v=p.exports;export{v as H}; +//# sourceMappingURL=HeaderNavigation-NTIRuixF.chunk.mjs.map diff --git a/js/HeaderNavigation-Cs3s9UVW.chunk.mjs.license b/js/HeaderNavigation-NTIRuixF.chunk.mjs.license similarity index 100% rename from js/HeaderNavigation-Cs3s9UVW.chunk.mjs.license rename to js/HeaderNavigation-NTIRuixF.chunk.mjs.license diff --git a/js/HeaderNavigation-Cs3s9UVW.chunk.mjs.map b/js/HeaderNavigation-NTIRuixF.chunk.mjs.map similarity index 98% rename from js/HeaderNavigation-Cs3s9UVW.chunk.mjs.map rename to js/HeaderNavigation-NTIRuixF.chunk.mjs.map index e1cdfb6a7..9caaf7cf3 100644 --- a/js/HeaderNavigation-Cs3s9UVW.chunk.mjs.map +++ b/js/HeaderNavigation-NTIRuixF.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"HeaderNavigation-Cs3s9UVW.chunk.mjs","sources":["../src/components/HeaderNavigation.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","ArrowLeft","NcButton","NcLoadingIcon","t"],"mappings":"0MAiDA,MAAAA,EAAA,CACA,KAAA,mBAEA,WAAA,CACA,UAAAC,EACA,SAAAC,EACA,cAAAC,CAAA,EAGA,aAAA,GAEA,MAAA,CACA,QAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,KAAA,CACA,KAAA,OACA,QAAA,GAAA,EAGA,MAAA,CACA,KAAA,OACA,SAAA,EAAA,EAGA,UAAA,CACA,KAAA,OACA,QAAAC,EAAA,SAAA,QAAA,CAAA,CACA,EAGA,SAAA,CACA,QAAA,CAEA,OADA,KAAA,OAAA,GAEA,EAEA,MAAA,CACA,OAAA,KAAA,OACA,KAAA,UAEA,KAAA,KACA,CAAA,EAGA,QAAA,CACA,UAAA,CACA,KAAA,QAAA,KAAA,KAAA,OAAA,KAAA,MAAA,GAAA,EAAA,MAAA,EAAA,EAAA,EAAA,KAAA,GAAA,CAAA,CACA,EAEA,SAAA,CACA,KAAA,MAAA,SAAA,CACA,EAAA,EAEAA,CAAA,CAEA"} \ No newline at end of file +{"version":3,"file":"HeaderNavigation-NTIRuixF.chunk.mjs","sources":["../src/components/HeaderNavigation.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"names":["_sfc_main","ArrowLeft","NcButton","NcLoadingIcon","t"],"mappings":"0MAiDA,MAAAA,EAAA,CACA,KAAA,mBAEA,WAAA,CACA,UAAAC,EACA,SAAAC,EACA,cAAAC,CAAA,EAGA,aAAA,GAEA,MAAA,CACA,QAAA,CACA,KAAA,QACA,QAAA,EAAA,EAGA,KAAA,CACA,KAAA,OACA,QAAA,GAAA,EAGA,MAAA,CACA,KAAA,OACA,SAAA,EAAA,EAGA,UAAA,CACA,KAAA,OACA,QAAAC,EAAA,SAAA,QAAA,CAAA,CACA,EAGA,SAAA,CACA,QAAA,CAEA,OADA,KAAA,OAAA,GAEA,EAEA,MAAA,CACA,OAAA,KAAA,OACA,KAAA,UAEA,KAAA,KACA,CAAA,EAGA,QAAA,CACA,UAAA,CACA,KAAA,QAAA,KAAA,KAAA,OAAA,KAAA,MAAA,GAAA,EAAA,MAAA,EAAA,EAAA,EAAA,KAAA,GAAA,CAAA,CACA,EAEA,SAAA,CACA,KAAA,MAAA,SAAA,CACA,EAAA,EAEAA,CAAA,CAEA"} \ No newline at end of file diff --git a/js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs b/js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs similarity index 83% rename from js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs rename to js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs index 8c54692b3..4458fb7da 100644 --- a/js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs +++ b/js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs @@ -1,2 +1,2 @@ -import{I as n,a as i}from"./index-CsCSS_KR.chunk.mjs";import{d as o}from"./preload-helper-B1hyiFAx.chunk.mjs";import{n as s,t}from"./index-SPoS3_zU-NmnSNTht.chunk.mjs";import{N as l}from"./NcDialog-Di3PCaC2-BKnn9ALj.chunk.mjs";import{N as m}from"./NcTextField-Doo3Q45d-MzM9MGlJ.chunk.mjs";import{N as c}from"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import"./index-msNec4Xs.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcModal-BX64wQqg.chunk.mjs";import"./NcLoadingIcon-DM-94wwW.chunk.mjs";import"./NcActions-C4f9MXug-FA3YIyzG.chunk.mjs";import"./video-DVVFoi8e.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./useHotKey-oP-0fLfr.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";const d=o({components:{NcDialog:l,NcNoteCard:c,NcTextField:m},props:{error:{type:n,required:!0},validateFilename:{type:Function,required:!0}},setup(){return{t}},data(){return{newName:"",validationError:""}},computed:{isValidName(){return this.validationError===""},isInvalidFileType(){return this.error.reason===i.Extension&&this.error.segment.match(/^\.\w/)!==null},canRename(){return!this.isInvalidFileType},dialogButtons(){const e=[{label:t("Cancel"),type:"error",callback:()=>{this.$emit("close",{cancel:!0})}},{label:t("Skip"),callback:()=>{this.$emit("close",{skip:!0})}}];return this.canRename&&e.push({label:t("Rename"),type:"primary",disabled:!this.isValidName,callback:()=>{this.$emit("close",{rename:this.newName.trimEnd()})}}),e}},watch:{error:{handler(){this.validationError=this.getErrorText(this.error),this.newName=this.error.filename},immediate:!0},newName(){try{this.validateFilename(this.newName.trimEnd()),this.validationError=""}catch(e){this.validationError=this.getErrorText(e)}finally{const e=this.$refs.textfield?.$el.querySelector("input");e&&(e.setCustomValidity(this.validationError),e.reportValidity())}}},methods:{getErrorText(e){switch(e.reason){case i.Character:return t('"{segment}" is not allowed inside a file or folder name.',{segment:e.segment});case i.ReservedName:return t('"{segment}" is a forbidden file or folder name.',{segment:e.segment});case i.Extension:return e.segment.match(/\.\w/)?t('"{segment}" is a forbidden file type.',{segment:e.segment}):t('Filenames must not end with "{segment}".',{segment:e.segment})}}}});var p=function(){var e=this,a=e._self._c;return e._self._setupProxy,a("NcDialog",{attrs:{buttons:e.dialogButtons,name:e.t("Invalid filename")},on:{close:function(r){return e.$emit("close",{cancel:!0})}}},[a("NcNoteCard",{attrs:{severity:"error"}},[e._v(" "+e._s(e.getErrorText(e.error))+" "+e._s(e.t("You can either rename the file, skip this file or cancel the whole operation."))+" ")]),e.canRename?a("NcTextField",{ref:"textfield",staticClass:"invalid-filename-dialog__input",attrs:{error:!e.isValidName,"helper-text":e.validationError,label:e.t("New filename"),value:e.newName},on:{"update:value":function(r){e.newName=r},input:function(r){e.newName=r.target.value}}}):e._e()],1)},h=[],u=s(d,p,h,!1,null,"05c6fe08");const V=u.exports;export{V as default}; -//# sourceMappingURL=InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.map +import{I as n,a as i}from"./index-CsCSS_KR.chunk.mjs";import{d as o}from"./preload-helper-B1hyiFAx.chunk.mjs";import{n as s,t}from"./index-SPoS3_zU-BiaeHne1.chunk.mjs";import{N as l}from"./NcDialog-Di3PCaC2-BbWxOohO.chunk.mjs";import{N as m}from"./NcTextField-Doo3Q45d-BClSKUyw.chunk.mjs";import{N as c}from"./NcProgressBar-D7zYeXBH-Cnz6LtnO.chunk.mjs";import"./index-msNec4Xs.chunk.mjs";import"./index-BHk_XWCz.chunk.mjs";import"./dialog-lSyFLMgl.chunk.mjs";import"./NcModal-DnfAQoZ9.chunk.mjs";import"./NcLoadingIcon-DM-94wwW.chunk.mjs";import"./NcActions-C4f9MXug-BC_2VOkH.chunk.mjs";import"./video-B2A2Ed33.chunk.mjs";import"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";import"./useHotKey-CZEtuasP.chunk.mjs";import"./useModelMigration-EhAWvqDD-ClbwSWZP.chunk.mjs";const d=o({components:{NcDialog:l,NcNoteCard:c,NcTextField:m},props:{error:{type:n,required:!0},validateFilename:{type:Function,required:!0}},setup(){return{t}},data(){return{newName:"",validationError:""}},computed:{isValidName(){return this.validationError===""},isInvalidFileType(){return this.error.reason===i.Extension&&this.error.segment.match(/^\.\w/)!==null},canRename(){return!this.isInvalidFileType},dialogButtons(){const e=[{label:t("Cancel"),type:"error",callback:()=>{this.$emit("close",{cancel:!0})}},{label:t("Skip"),callback:()=>{this.$emit("close",{skip:!0})}}];return this.canRename&&e.push({label:t("Rename"),type:"primary",disabled:!this.isValidName,callback:()=>{this.$emit("close",{rename:this.newName.trimEnd()})}}),e}},watch:{error:{handler(){this.validationError=this.getErrorText(this.error),this.newName=this.error.filename},immediate:!0},newName(){try{this.validateFilename(this.newName.trimEnd()),this.validationError=""}catch(e){this.validationError=this.getErrorText(e)}finally{const e=this.$refs.textfield?.$el.querySelector("input");e&&(e.setCustomValidity(this.validationError),e.reportValidity())}}},methods:{getErrorText(e){switch(e.reason){case i.Character:return t('"{segment}" is not allowed inside a file or folder name.',{segment:e.segment});case i.ReservedName:return t('"{segment}" is a forbidden file or folder name.',{segment:e.segment});case i.Extension:return e.segment.match(/\.\w/)?t('"{segment}" is a forbidden file type.',{segment:e.segment}):t('Filenames must not end with "{segment}".',{segment:e.segment})}}}});var p=function(){var e=this,a=e._self._c;return e._self._setupProxy,a("NcDialog",{attrs:{buttons:e.dialogButtons,name:e.t("Invalid filename")},on:{close:function(r){return e.$emit("close",{cancel:!0})}}},[a("NcNoteCard",{attrs:{severity:"error"}},[e._v(" "+e._s(e.getErrorText(e.error))+" "+e._s(e.t("You can either rename the file, skip this file or cancel the whole operation."))+" ")]),e.canRename?a("NcTextField",{ref:"textfield",staticClass:"invalid-filename-dialog__input",attrs:{error:!e.isValidName,"helper-text":e.validationError,label:e.t("New filename"),value:e.newName},on:{"update:value":function(r){e.newName=r},input:function(r){e.newName=r.target.value}}}):e._e()],1)},h=[],u=s(d,p,h,!1,null,"05c6fe08");const V=u.exports;export{V as default}; +//# sourceMappingURL=InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.map diff --git a/js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.license b/js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.license similarity index 100% rename from js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.license rename to js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.license diff --git a/js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.map b/js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.map similarity index 99% rename from js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.map rename to js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.map index 5f4b82770..f8c0af34a 100644 --- a/js/InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs.map +++ b/js/InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"InvalidFilenameDialog-C-Tc0bjw-CP1MULfA.chunk.mjs","sources":["../node_modules/@nextcloud/upload/dist/chunks/InvalidFilenameDialog-C-Tc0bjw.mjs"],"sourcesContent":["import '../assets/InvalidFilenameDialog-Cint9TUL.css';\nimport { InvalidFilenameError, InvalidFilenameErrorReason } from \"@nextcloud/files\";\nimport { defineComponent } from \"vue\";\nimport { t, n as normalizeComponent } from \"./index-SPoS3_zU.mjs\";\nimport NcDialog from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport NcTextField from \"@nextcloud/vue/dist/Components/NcTextField.js\";\nimport NcNoteCard from \"@nextcloud/vue/dist/Components/NcNoteCard.js\";\nconst _sfc_main = defineComponent({\n components: {\n NcDialog,\n NcNoteCard,\n NcTextField\n },\n props: {\n error: {\n type: InvalidFilenameError,\n required: true\n },\n /**\n * @deprecated just for legacy reasons, replace with function from @nextcloud/files in future\n */\n validateFilename: {\n type: Function,\n required: true\n }\n },\n setup() {\n return {\n t\n };\n },\n data() {\n return {\n newName: \"\",\n validationError: \"\"\n };\n },\n computed: {\n isValidName() {\n return this.validationError === \"\";\n },\n isInvalidFileType() {\n return this.error.reason === InvalidFilenameErrorReason.Extension && this.error.segment.match(/^\\.\\w/) !== null;\n },\n canRename() {\n return !this.isInvalidFileType;\n },\n dialogButtons() {\n const buttons = [\n {\n label: t(\"Cancel\"),\n type: \"error\",\n callback: () => {\n this.$emit(\"close\", { cancel: true });\n }\n },\n {\n label: t(\"Skip\"),\n callback: () => {\n this.$emit(\"close\", { skip: true });\n }\n }\n ];\n if (this.canRename) {\n buttons.push({\n label: t(\"Rename\"),\n type: \"primary\",\n disabled: !this.isValidName,\n callback: () => {\n this.$emit(\"close\", { rename: this.newName.trimEnd() });\n }\n });\n }\n return buttons;\n }\n },\n watch: {\n error: {\n handler() {\n this.validationError = this.getErrorText(this.error);\n this.newName = this.error.filename;\n },\n immediate: true\n },\n newName() {\n try {\n this.validateFilename(this.newName.trimEnd());\n this.validationError = \"\";\n } catch (error) {\n this.validationError = this.getErrorText(error);\n } finally {\n const textfield = this.$refs.textfield?.$el.querySelector(\"input\");\n if (textfield) {\n textfield.setCustomValidity(this.validationError);\n textfield.reportValidity();\n }\n }\n }\n },\n methods: {\n getErrorText(error) {\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('\"{segment}\" is not allowed inside a file or folder name.', { segment: error.segment });\n case InvalidFilenameErrorReason.ReservedName:\n return t('\"{segment}\" is a forbidden file or folder name.', { segment: error.segment });\n case InvalidFilenameErrorReason.Extension:\n return error.segment.match(/\\.\\w/) ? t('\"{segment}\" is a forbidden file type.', { segment: error.segment }) : t('Filenames must not end with \"{segment}\".', { segment: error.segment });\n }\n }\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"NcDialog\", { attrs: { \"buttons\": _vm.dialogButtons, \"name\": _vm.t(\"Invalid filename\") }, on: { \"close\": function($event) {\n return _vm.$emit(\"close\", { cancel: true });\n } } }, [_c(\"NcNoteCard\", { attrs: { \"severity\": \"error\" } }, [_vm._v(\" \" + _vm._s(_vm.getErrorText(_vm.error)) + \" \" + _vm._s(_vm.t(\"You can either rename the file, skip this file or cancel the whole operation.\")) + \" \")]), _vm.canRename ? _c(\"NcTextField\", { ref: \"textfield\", staticClass: \"invalid-filename-dialog__input\", attrs: { \"error\": !_vm.isValidName, \"helper-text\": _vm.validationError, \"label\": _vm.t(\"New filename\"), \"value\": _vm.newName }, on: { \"update:value\": function($event) {\n _vm.newName = $event;\n }, \"input\": function($event) {\n _vm.newName = $event.target.value;\n } } }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"05c6fe08\"\n);\nconst InvalidFilenameDialog = __component__.exports;\nexport {\n InvalidFilenameDialog as default\n};\n//# sourceMappingURL=InvalidFilenameDialog-C-Tc0bjw.mjs.map\n"],"names":["_sfc_main","defineComponent","NcDialog","NcNoteCard","NcTextField","InvalidFilenameError","r","InvalidFilenameErrorReason","buttons","t","error","textfield","_sfc_render","_vm","_c","$event","_sfc_staticRenderFns","__component__","normalizeComponent","InvalidFilenameDialog"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"InvalidFilenameDialog-C-Tc0bjw-BiQf0n_n.chunk.mjs","sources":["../node_modules/@nextcloud/upload/dist/chunks/InvalidFilenameDialog-C-Tc0bjw.mjs"],"sourcesContent":["import '../assets/InvalidFilenameDialog-Cint9TUL.css';\nimport { InvalidFilenameError, InvalidFilenameErrorReason } from \"@nextcloud/files\";\nimport { defineComponent } from \"vue\";\nimport { t, n as normalizeComponent } from \"./index-SPoS3_zU.mjs\";\nimport NcDialog from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport NcTextField from \"@nextcloud/vue/dist/Components/NcTextField.js\";\nimport NcNoteCard from \"@nextcloud/vue/dist/Components/NcNoteCard.js\";\nconst _sfc_main = defineComponent({\n components: {\n NcDialog,\n NcNoteCard,\n NcTextField\n },\n props: {\n error: {\n type: InvalidFilenameError,\n required: true\n },\n /**\n * @deprecated just for legacy reasons, replace with function from @nextcloud/files in future\n */\n validateFilename: {\n type: Function,\n required: true\n }\n },\n setup() {\n return {\n t\n };\n },\n data() {\n return {\n newName: \"\",\n validationError: \"\"\n };\n },\n computed: {\n isValidName() {\n return this.validationError === \"\";\n },\n isInvalidFileType() {\n return this.error.reason === InvalidFilenameErrorReason.Extension && this.error.segment.match(/^\\.\\w/) !== null;\n },\n canRename() {\n return !this.isInvalidFileType;\n },\n dialogButtons() {\n const buttons = [\n {\n label: t(\"Cancel\"),\n type: \"error\",\n callback: () => {\n this.$emit(\"close\", { cancel: true });\n }\n },\n {\n label: t(\"Skip\"),\n callback: () => {\n this.$emit(\"close\", { skip: true });\n }\n }\n ];\n if (this.canRename) {\n buttons.push({\n label: t(\"Rename\"),\n type: \"primary\",\n disabled: !this.isValidName,\n callback: () => {\n this.$emit(\"close\", { rename: this.newName.trimEnd() });\n }\n });\n }\n return buttons;\n }\n },\n watch: {\n error: {\n handler() {\n this.validationError = this.getErrorText(this.error);\n this.newName = this.error.filename;\n },\n immediate: true\n },\n newName() {\n try {\n this.validateFilename(this.newName.trimEnd());\n this.validationError = \"\";\n } catch (error) {\n this.validationError = this.getErrorText(error);\n } finally {\n const textfield = this.$refs.textfield?.$el.querySelector(\"input\");\n if (textfield) {\n textfield.setCustomValidity(this.validationError);\n textfield.reportValidity();\n }\n }\n }\n },\n methods: {\n getErrorText(error) {\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('\"{segment}\" is not allowed inside a file or folder name.', { segment: error.segment });\n case InvalidFilenameErrorReason.ReservedName:\n return t('\"{segment}\" is a forbidden file or folder name.', { segment: error.segment });\n case InvalidFilenameErrorReason.Extension:\n return error.segment.match(/\\.\\w/) ? t('\"{segment}\" is a forbidden file type.', { segment: error.segment }) : t('Filenames must not end with \"{segment}\".', { segment: error.segment });\n }\n }\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"NcDialog\", { attrs: { \"buttons\": _vm.dialogButtons, \"name\": _vm.t(\"Invalid filename\") }, on: { \"close\": function($event) {\n return _vm.$emit(\"close\", { cancel: true });\n } } }, [_c(\"NcNoteCard\", { attrs: { \"severity\": \"error\" } }, [_vm._v(\" \" + _vm._s(_vm.getErrorText(_vm.error)) + \" \" + _vm._s(_vm.t(\"You can either rename the file, skip this file or cancel the whole operation.\")) + \" \")]), _vm.canRename ? _c(\"NcTextField\", { ref: \"textfield\", staticClass: \"invalid-filename-dialog__input\", attrs: { \"error\": !_vm.isValidName, \"helper-text\": _vm.validationError, \"label\": _vm.t(\"New filename\"), \"value\": _vm.newName }, on: { \"update:value\": function($event) {\n _vm.newName = $event;\n }, \"input\": function($event) {\n _vm.newName = $event.target.value;\n } } }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"05c6fe08\"\n);\nconst InvalidFilenameDialog = __component__.exports;\nexport {\n InvalidFilenameDialog as default\n};\n//# sourceMappingURL=InvalidFilenameDialog-C-Tc0bjw.mjs.map\n"],"names":["_sfc_main","defineComponent","NcDialog","NcNoteCard","NcTextField","InvalidFilenameError","r","InvalidFilenameErrorReason","buttons","t","error","textfield","_sfc_render","_vm","_c","$event","_sfc_staticRenderFns","__component__","normalizeComponent","InvalidFilenameDialog"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs b/js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs similarity index 99% rename from js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs rename to js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs index 69728ae02..82435ce05 100644 --- a/js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs +++ b/js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs @@ -1,4 +1,4 @@ -import{ac as Lt,ad as on,ae as ne,af as ae,ag as Fe,n as he,k as rn,A as sn,r as an,ah as ln,e as cn,N as un}from"./index-msNec4Xs.chunk.mjs";import{m as pn,o as dn,A as we,V as Ke,d as hn,c as fn}from"./preload-helper-B1hyiFAx.chunk.mjs";import{t as Qe}from"./video-DVVFoi8e.chunk.mjs";import{G as mn}from"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";function Re(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(u){throw u},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +import{ac as Lt,ad as on,ae as ne,af as ae,ag as Fe,n as he,k as rn,A as sn,r as an,ah as ln,e as cn,N as un}from"./index-msNec4Xs.chunk.mjs";import{m as pn,o as dn,A as we,V as Ke,d as hn,c as fn}from"./preload-helper-B1hyiFAx.chunk.mjs";import{t as Qe}from"./video-B2A2Ed33.chunk.mjs";import{G as mn}from"./GenRandomId-F5ebeBB_-ChRgegHZ.chunk.mjs";function Re(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(u){throw u},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return a=u.done,u},e:function(u){s=!0,i=u},f:function(){try{a||n.return==null||n.return()}finally{if(s)throw i}}}}function vn(e,t,n){return(t=$n(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yn(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function bn(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,o)}return n}function nt(e){for(var t=1;t0?e[e.length-1]:null},activateTrap:function(e,t){var n=j.getActiveTrap(e);t!==n&&j.pauseTrap(e);var o=e.indexOf(t);o===-1||e.splice(o,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),j.unpauseTrap(e)},pauseTrap:function(e){var t=j.getActiveTrap(e);t?._setPausedState(!0)},unpauseTrap:function(e){var t=j.getActiveTrap(e);t&&!t._isManuallyPaused()&&t._setPausedState(!1)}},An=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Tn=function(e){return e?.key==="Escape"||e?.key==="Esc"||e?.keyCode===27},ce=function(e){return e?.key==="Tab"||e?.keyCode===9},xn=function(e){return ce(e)&&!e.shiftKey},Sn=function(e){return ce(e)&&e.shiftKey},ot=function(e){return setTimeout(e,0)},le=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o1&&arguments[1]!==void 0?arguments[1]:{},d=c.hasFallback,A=d===void 0?!1:d,y=c.params,S=y===void 0?[]:y,v=r[l];if(typeof v=="function"&&(v=v.apply(void 0,wn(S))),v===!0&&(v=void 0),!v){if(v===void 0||v===!1)return v;throw new Error("`".concat(l,"` was specified but was not a node, or did not return a node"))}var T=v;if(typeof v=="string"){try{T=n.querySelector(v)}catch(_){throw new Error("`".concat(l,'` appears to be an invalid selector; error="').concat(_.message,'"'))}if(!T&&!A)throw new Error("`".concat(l,"` as selector refers to no known node"))}return T},h=function(){var l=p("initialFocus",{hasFallback:!0});if(l===!1)return!1;if(l===void 0||l&&!Fe(l,r.tabbableOptions))if(u(n.activeElement)>=0)l=n.activeElement;else{var c=i.tabbableGroups[0],d=c&&c.firstTabbableNode;l=d||p("fallbackFocus")}else l===null&&(l=p("fallbackFocus"));if(!l)throw new Error("Your focus-trap needs to have at least one focusable element");return l},g=function(){if(i.containerGroups=i.containers.map(function(l){var c=Lt(l,r.tabbableOptions),d=on(l,r.tabbableOptions),A=c.length>0?c[0]:void 0,y=c.length>0?c[c.length-1]:void 0,S=d.find(function(_){return ne(_)}),v=d.slice().reverse().find(function(_){return ne(_)}),T=!!c.find(function(_){return ae(_)>0});return{container:l,tabbableNodes:c,focusableNodes:d,posTabIndexesFound:T,firstTabbableNode:A,lastTabbableNode:y,firstDomTabbableNode:S,lastDomTabbableNode:v,nextTabbableNode:function(_){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,H=c.indexOf(_);return H<0?M?d.slice(d.indexOf(_)+1).find(function(O){return ne(O)}):d.slice(0,d.indexOf(_)).reverse().find(function(O){return ne(O)}):c[H+(M?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(l){return l.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!p("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(l){return l.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},m=function(l){var c=l.activeElement;if(c)return c.shadowRoot&&c.shadowRoot.activeElement!==null?m(c.shadowRoot):c},f=function(l){if(l!==!1&&l!==m(document)){if(!l||!l.focus){f(h());return}l.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=l,An(l)&&l.select()}},$=function(l){var c=p("setReturnFocus",{params:[l]});return c||(c===!1?!1:l)},P=function(l){var c=l.target,d=l.event,A=l.isBackward,y=A===void 0?!1:A;c=c||me(d),g();var S=null;if(i.tabbableGroups.length>0){var v=u(c,d),T=v>=0?i.containerGroups[v]:void 0;if(v<0)y?S=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:S=i.tabbableGroups[0].firstTabbableNode;else if(y){var _=i.tabbableGroups.findIndex(function(Me){var Oe=Me.firstTabbableNode;return c===Oe});if(_<0&&(T.container===c||Fe(c,r.tabbableOptions)&&!ne(c,r.tabbableOptions)&&!T.nextTabbableNode(c,!1))&&(_=v),_>=0){var M=_===0?i.tabbableGroups.length-1:_-1,H=i.tabbableGroups[M];S=ae(c)>=0?H.lastTabbableNode:H.lastDomTabbableNode}else ce(d)||(S=T.nextTabbableNode(c,!1))}else{var O=i.tabbableGroups.findIndex(function(Me){var Oe=Me.lastTabbableNode;return c===Oe});if(O<0&&(T.container===c||Fe(c,r.tabbableOptions)&&!ne(c,r.tabbableOptions)&&!T.nextTabbableNode(c))&&(O=v),O>=0){var Ee=O===i.tabbableGroups.length-1?0:O+1,U=i.tabbableGroups[Ee];S=ae(c)>=0?U.firstTabbableNode:U.firstDomTabbableNode}else ce(d)||(S=T.nextTabbableNode(c))}}else S=p("fallbackFocus");return S},w=function(l){var c=me(l);if(!(u(c,l)>=0)){if(le(r.clickOutsideDeactivates,l)){a.deactivate({returnFocus:r.returnFocusOnDeactivate});return}le(r.allowOutsideClick,l)||l.preventDefault()}},C=function(l){var c=me(l),d=u(c,l)>=0;if(d||c instanceof Document)d&&(i.mostRecentlyFocusedNode=c);else{l.stopImmediatePropagation();var A,y=!0;if(i.mostRecentlyFocusedNode)if(ae(i.mostRecentlyFocusedNode)>0){var S=u(i.mostRecentlyFocusedNode),v=i.containerGroups[S].tabbableNodes;if(v.length>0){var T=v.findIndex(function(_){return _===i.mostRecentlyFocusedNode});T>=0&&(r.isKeyForward(i.recentNavEvent)?T+1=0&&(A=v[T-1],y=!1))}}else i.containerGroups.some(function(_){return _.tabbableNodes.some(function(M){return ae(M)>0})})||(y=!1);else y=!1;y&&(A=P({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),f(A||i.mostRecentlyFocusedNode||h())}i.recentNavEvent=void 0},x=function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=l;var d=P({event:l,isBackward:c});d&&(ce(l)&&l.preventDefault(),f(d))},k=function(l){(r.isKeyForward(l)||r.isKeyBackward(l))&&x(l,r.isKeyBackward(l))},N=function(l){Tn(l)&&le(r.escapeDeactivates,l)!==!1&&(l.preventDefault(),a.deactivate())},B=function(l){var c=me(l);u(c,l)>=0||le(r.clickOutsideDeactivates,l)||le(r.allowOutsideClick,l)||(l.preventDefault(),l.stopImmediatePropagation())},D=function(){if(i.active)return j.activateTrap(o,a),i.delayInitialFocusTimer=r.delayInitialFocus?ot(function(){f(h())}):f(h()),n.addEventListener("focusin",C,!0),n.addEventListener("mousedown",w,{capture:!0,passive:!1}),n.addEventListener("touchstart",w,{capture:!0,passive:!1}),n.addEventListener("click",B,{capture:!0,passive:!1}),n.addEventListener("keydown",k,{capture:!0,passive:!1}),n.addEventListener("keydown",N),a},E=function(l){i.active&&!i.paused&&a._setSubtreeIsolation(!1),i.adjacentElements.clear(),i.alreadySilent.clear();var c=new Set,d=new Set,A=et(l),y;try{for(A.s();!(y=A.n()).done;){var S=y.value;c.add(S);for(var v=typeof ShadowRoot<"u"&&S.getRootNode()instanceof ShadowRoot,T=S;T;){c.add(T);var _=T.parentElement,M=[];_?M=_.children:!_&&v&&(M=T.getRootNode().children,_=T.getRootNode().host,v=typeof ShadowRoot<"u"&&_.getRootNode()instanceof ShadowRoot);var H=et(M),O;try{for(H.s();!(O=H.n()).done;){var Ee=O.value;d.add(Ee)}}catch(U){H.e(U)}finally{H.f()}T=_}}}catch(U){A.e(U)}finally{A.f()}c.forEach(function(U){d.delete(U)}),i.adjacentElements=d},L=function(){if(i.active)return n.removeEventListener("focusin",C,!0),n.removeEventListener("mousedown",w,!0),n.removeEventListener("touchstart",w,!0),n.removeEventListener("click",B,!0),n.removeEventListener("keydown",k,!0),n.removeEventListener("keydown",N),a},F=function(l){var c=l.some(function(d){var A=Array.from(d.removedNodes);return A.some(function(y){return y===i.mostRecentlyFocusedNode})});c&&f(h())},z=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(F):void 0,V=function(){z&&(z.disconnect(),i.active&&!i.paused&&i.containers.map(function(l){z.observe(l,{subtree:!0,childList:!0})}))};return a={get active(){return i.active},get paused(){return i.paused},activate:function(l){if(i.active)return this;var c=s(l,"onActivate"),d=s(l,"onPostActivate"),A=s(l,"checkCanFocusTrap"),y=j.getActiveTrap(o),S=!1;if(y&&!y.paused){var v;(v=y._setSubtreeIsolation)===null||v===void 0||v.call(y,!1),S=!0}try{A||g(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=m(n),c?.();var T=function(){A&&g(),D(),V(),r.isolateSubtrees&&a._setSubtreeIsolation(!0),d?.()};if(A)return A(i.containers.concat()).then(T,T),this;T()}catch(M){if(y===j.getActiveTrap(o)&&S){var _;(_=y._setSubtreeIsolation)===null||_===void 0||_.call(y,!0)}throw M}return this},deactivate:function(l){if(!i.active)return this;var c=nt({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},l);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,i.paused||a._setSubtreeIsolation(!1),i.alreadySilent.clear(),L(),i.active=!1,i.paused=!1,V(),j.deactivateTrap(o,a);var d=s(c,"onDeactivate"),A=s(c,"onPostDeactivate"),y=s(c,"checkCanReturnFocus"),S=s(c,"returnFocus","returnFocusOnDeactivate");d?.();var v=function(){ot(function(){S&&f($(i.nodeFocusedBeforeActivation)),A?.()})};return S&&y?(y($(i.nodeFocusedBeforeActivation)).then(v,v),this):(v(),this)},pause:function(l){return i.active?(i.manuallyPaused=!0,this._setPausedState(!0,l)):this},unpause:function(l){return i.active?(i.manuallyPaused=!1,o[o.length-1]!==this?this:this._setPausedState(!1,l)):this},updateContainerElements:function(l){var c=[].concat(l).filter(Boolean);return i.containers=c.map(function(d){return typeof d=="string"?n.querySelector(d):d}),r.isolateSubtrees&&E(i.containers),i.active&&(g(),r.isolateSubtrees&&!i.paused&&a._setSubtreeIsolation(!0)),V(),this}},Object.defineProperties(a,{_isManuallyPaused:{value:function(){return i.manuallyPaused}},_setPausedState:{value:function(l,c){if(i.paused===l)return this;if(i.paused=l,l){var d=s(c,"onPause"),A=s(c,"onPostPause");d?.(),L(),V(),a._setSubtreeIsolation(!1),A?.()}else{var y=s(c,"onUnpause"),S=s(c,"onPostUnpause");y?.(),a._setSubtreeIsolation(!0),g(),D(),V(),S?.()}return this}},_setSubtreeIsolation:{value:function(l){r.isolateSubtrees&&i.adjacentElements.forEach(function(c){var d;l?r.isolateSubtrees==="aria-hidden"?((c.ariaHidden==="true"||((d=c.getAttribute("aria-hidden"))===null||d===void 0?void 0:d.toLowerCase())==="true")&&i.alreadySilent.add(c),c.setAttribute("aria-hidden","true")):((c.inert||c.hasAttribute("inert"))&&i.alreadySilent.add(c),c.setAttribute("inert",!0)):i.alreadySilent.has(c)||(r.isolateSubtrees==="aria-hidden"?c.removeAttribute("aria-hidden"):c.removeAttribute("inert"))})}}}),a.updateContainerElements(e),a};function Be(){return window._nc_focus_trap??=[],window._nc_focus_trap}function kn(){let e=[];return{pause(){e=[...Be()];for(const t of e)t.pause()},unpause(){if(e.length===Be().length)for(const t of e)t.unpause();e=[]}}}var Ki="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",Zi="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",Yi="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",Xi="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z",Nn="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",Ji="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",Ln="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Qi="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",er="M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z",tr="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",nr="M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z",or="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z",ir="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z";const En={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?this.$slots.default[0].text.trim():""}}};function Mn(e,t){let n=e.$parent;for(;n;){if(n.$options.name===t)return n;n=n.$parent}}const On={mixins:[En],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},ariaHidden:{type:Boolean,default:null}},emits:["click"],computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(e){if(this.$emit("click",e),this.closeAfterClick){const t=Mn(this,"NcActions");t&&t.closeMenu&&t.closeMenu(!1)}}}},Fn={name:"NcActionButton",components:{NcIconSvgWrapper:rn},mixins:[On],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{ariaHidden:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:e=>["button","checkbox","radio","reset","submit"].includes(e)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},setup(){return{mdiCheck:Nn,mdiChevronRight:Ln}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const e={};return this.isInSemanticMenu?(e.role="menuitem",this.type==="radio"?(e.role="menuitemradio",e["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(e.role="menuitemcheckbox",e["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(e["aria-pressed"]=this.modelValue?"true":"false"),e}},methods:{handleClick(e){this.onClick(e),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}};var In=function(){var e=this,t=e._self._c;return t("li",{staticClass:"action",class:{"action--disabled":e.disabled},attrs:{role:e.isInSemanticMenu&&"presentation"}},[t("button",e._b({staticClass:"action-button button-vue",class:{"action-button--active":e.isChecked,focusable:e.isFocusable},attrs:{"aria-label":e.ariaLabel,disabled:e.disabled,title:e.title,type:e.nativeType},on:{click:e.handleClick}},"button",e.buttonAttributes,!1),[e._t("icon",function(){return[t("span",{staticClass:"action-button__icon",class:[e.isIconUrl?"action-button__icon--url":e.icon],style:{backgroundImage:e.isIconUrl?`url(${e.icon})`:null},attrs:{"aria-hidden":"true"}})]}),t("span",{staticClass:"action-button__longtext-wrapper"},[e.name?t("strong",{staticClass:"action-button__name"},[e._v(" "+e._s(e.name)+" ")]):e._e(),e.isLongText?t("span",{staticClass:"action-button__longtext",domProps:{textContent:e._s(e.text)}}):t("span",{staticClass:"action-button__text"},[e._v(" "+e._s(e.text)+" ")]),e.description?t("span",{staticClass:"action-button__description",domProps:{textContent:e._s(e.description)}}):e._e()]),e.isMenu?t("NcIconSvgWrapper",{staticClass:"action-button__menu-icon",attrs:{directional:"",path:e.mdiChevronRight}}):e.isChecked?t("NcIconSvgWrapper",{staticClass:"action-button__pressed-icon",attrs:{path:e.mdiCheck}}):e.isChecked===!1?t("span",{staticClass:"action-button__pressed-icon material-design-icon"}):e._e(),e._e()],2)])},Hn=[],Rn=he(Fn,In,Hn,!1,null,"ab2ff78b");const rr=Rn.exports;function Bn(e,t={}){const n=kn();pn(e,()=>{Qe(t.disabled)||(Qe(e)?n.pause():n.unpause())}),dn(()=>{n.unpause()})}function q(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function fe(e){return["top","bottom"].includes(q(e))?"x":"y"}function Ze(e){return e==="y"?"height":"width"}function it(e){let{reference:t,floating:n,placement:o}=e;const r=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2;let a;switch(q(o)){case"top":a={x:r,y:t.y-n.height};break;case"bottom":a={x:r,y:t.y+t.height};break;case"right":a={x:t.x+t.width,y:i};break;case"left":a={x:t.x-n.width,y:i};break;default:a={x:t.x,y:t.y}}const s=fe(o),u=Ze(s);switch(oe(o)){case"start":a[s]=a[s]-(t[u]/2-n[u]/2);break;case"end":a[s]=a[s]+(t[u]/2-n[u]/2);break}return a}const Dn=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:a}=n;let s=await a.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:p}=it({...s,placement:o}),h=o,g={};for(let m=0;m({name:"arrow",options:e,async fn(t){const{element:n,padding:o=0}=e??{},{x:r,y:i,placement:a,rects:s,platform:u}=t;if(n==null)return{};const p=Mt(o),h={x:r,y:i},g=q(a),m=fe(g),f=Ze(m),$=await u.getDimensions({element:n}),P=m==="y"?"top":"left",w=m==="y"?"bottom":"right",C=s.reference[f]+s.reference[m]-h[m]-s.floating[f],x=h[m]-s.reference[m],k=await u.getOffsetParent({element:n}),N=k?m==="y"?k.clientHeight||0:k.clientWidth||0:0,B=C/2-x/2,D=p[P],E=N-$[f]-p[w],L=N/2-$[f]/2+B,F=ze(D,L,E);return{data:{[m]:F,centerOffset:L-F}}}}),Wn={left:"right",right:"left",bottom:"top",top:"bottom"};function _e(e){return e.replace(/left|right|bottom|top/g,t=>Wn[t])}function Ot(e,t){const n=oe(e)==="start",o=fe(e),r=Ze(o);let i=o==="x"?n?"right":"left":n?"bottom":"top";return t.reference[r]>t.floating[r]&&(i=_e(i)),{main:i,cross:_e(i)}}const Gn={start:"end",end:"start"};function Ve(e){return e.replace(/start|end/g,t=>Gn[t])}const qn=["top","right","bottom","left"],Un=qn.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);function Kn(e,t,n){return(e?[...n.filter(o=>oe(o)===e),...n.filter(o=>oe(o)!==e)]:n.filter(o=>q(o)===o)).filter(o=>e?oe(o)===e||(t?Ve(o)!==o:!1):!0)}const Zn=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,o,r,i,a,s;const{x:u,y:p,rects:h,middlewareData:g,placement:m}=t,{alignment:f=null,allowedPlacements:$=Un,autoAlignment:P=!0,...w}=e;if((n=g.autoPlacement)!=null&&n.skip)return{};const C=Kn(f,P,$),x=await Se(t,w),k=(o=(r=g.autoPlacement)==null?void 0:r.index)!=null?o:0,N=C[k],{main:B,cross:D}=Ot(N,h);if(m!==N)return{x:u,y:p,reset:{placement:C[0]}};const E=[x[q(N)],x[B],x[D]],L=[...(i=(a=g.autoPlacement)==null?void 0:a.overflows)!=null?i:[],{placement:N,overflows:E}],F=C[k+1];if(F)return{data:{index:k+1,overflows:L},reset:{placement:F}};const z=L.slice().sort((l,c)=>l.overflows[0]-c.overflows[0]),V=(s=z.find(l=>{let{overflows:c}=l;return c.every(d=>d<=0)}))==null?void 0:s.placement;return{data:{skip:!0},reset:{placement:V??z[0].placement}}}}};function Yn(e){const t=_e(e);return[Ve(e),t,Ve(t)]}const Xn=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:i,rects:a,initialPlacement:s}=t;if((n=i.flip)!=null&&n.skip)return{};const{mainAxis:u=!0,crossAxis:p=!0,fallbackPlacements:h,fallbackStrategy:g="bestFit",flipAlignment:m=!0,...f}=e,$=q(r),P=h||($===s||!m?[_e(s)]:Yn(s)),w=[s,...P],C=await Se(t,f),x=[];let k=((o=i.flip)==null?void 0:o.overflows)||[];if(u&&x.push(C[$]),p){const{main:E,cross:L}=Ot(r,a);x.push(C[E],C[L])}if(k=[...k,{placement:r,overflows:x}],!x.every(E=>E<=0)){var N,B;const E=((N=(B=i.flip)==null?void 0:B.index)!=null?N:0)+1,L=w[E];if(L)return{data:{index:E,overflows:k},reset:{placement:L}};let F="bottom";switch(g){case"bestFit":{var D;const z=(D=k.slice().sort((V,l)=>V.overflows.filter(c=>c>0).reduce((c,d)=>c+d,0)-l.overflows.filter(c=>c>0).reduce((c,d)=>c+d,0))[0])==null?void 0:D.placement;z&&(F=z);break}case"initialPlacement":F=s;break}return{data:{skip:!0},reset:{placement:F}}}return{}}}};function Jn(e){let{placement:t,rects:n,value:o}=e;const r=q(t),i=["left","top"].includes(r)?-1:1,a=typeof o=="function"?o({...n,placement:t}):o,{mainAxis:s,crossAxis:u}=typeof a=="number"?{mainAxis:a,crossAxis:0}:{mainAxis:0,crossAxis:0,...a};return fe(r)==="x"?{x:u,y:s*i}:{x:s*i,y:u}}const Qn=function(e){return e===void 0&&(e=0),{name:"offset",options:e,fn(t){const{x:n,y:o,placement:r,rects:i}=t,a=Jn({placement:r,rects:i,value:e});return{x:n+a.x,y:o+a.y,data:a}}}};function eo(e){return e==="x"?"y":"x"}const to=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:s={fn:w=>{let{x:C,y:x}=w;return{x:C,y:x}}},...u}=e,p={x:n,y:o},h=await Se(t,u),g=fe(q(r)),m=eo(g);let f=p[g],$=p[m];if(i){const w=g==="y"?"top":"left",C=g==="y"?"bottom":"right",x=f+h[w],k=f-h[C];f=ze(x,f,k)}if(a){const w=m==="y"?"top":"left",C=m==="y"?"bottom":"right",x=$+h[w],k=$-h[C];$=ze(x,$,k)}const P=s.fn({...t,[g]:f,[m]:$});return{...P,data:{x:P.x-n,y:P.y-o}}}}},no=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n;const{placement:o,rects:r,middlewareData:i}=t,{apply:a,...s}=e;if((n=i.size)!=null&&n.skip)return{};const u=await Se(t,s),p=q(o),h=oe(o)==="end";let g,m;p==="top"||p==="bottom"?(g=p,m=h?"left":"right"):(m=p,g=h?"top":"bottom");const f=ee(u.left,0),$=ee(u.right,0),P=ee(u.top,0),w=ee(u.bottom,0),C={height:r.floating.height-(["left","right"].includes(o)?2*(P!==0||w!==0?P+w:ee(u.top,u.bottom)):u[g]),width:r.floating.width-(["top","bottom"].includes(o)?2*(f!==0||$!==0?f+$:ee(u.left,u.right)):u[m])};return a?.({...C,...r}),{data:{skip:!0},reset:{rects:!0}}}}};function Ye(e){return e?.toString()==="[object Window]"}function X(e){if(e==null)return window;if(!Ye(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function Pe(e){return X(e).getComputedStyle(e)}function W(e){return Ye(e)?"":e?(e.nodeName||"").toLowerCase():""}function G(e){return e instanceof X(e).HTMLElement}function $e(e){return e instanceof X(e).Element}function oo(e){return e instanceof X(e).Node}function Ft(e){const t=X(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function Ce(e){const{overflow:t,overflowX:n,overflowY:o}=Pe(e);return/auto|scroll|overlay|hidden/.test(t+o+n)}function io(e){return["table","td","th"].includes(W(e))}function It(e){const t=navigator.userAgent.toLowerCase().includes("firefox"),n=Pe(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&(n.filter?n.filter!=="none":!1)}const rt=Math.min,ue=Math.max,Ae=Math.round;function ie(e,t){t===void 0&&(t=!1);const n=e.getBoundingClientRect();let o=1,r=1;return t&&G(e)&&(o=e.offsetWidth>0&&Ae(n.width)/e.offsetWidth||1,r=e.offsetHeight>0&&Ae(n.height)/e.offsetHeight||1),{width:n.width/o,height:n.height/r,top:n.top/r,right:n.right/o,bottom:n.bottom/r,left:n.left/o,x:n.left/o,y:n.top/r}}function J(e){return((oo(e)?e.ownerDocument:e.document)||window.document).documentElement}function ke(e){return Ye(e)?{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}:{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Ht(e){return ie(J(e)).left+ke(e).scrollLeft}function ro(e){const t=ie(e);return Ae(t.width)!==e.offsetWidth||Ae(t.height)!==e.offsetHeight}function so(e,t,n){const o=G(t),r=J(t),i=ie(e,o&&ro(t));let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(o||!o&&n!=="fixed")if((W(t)!=="body"||Ce(r))&&(a=ke(t)),G(t)){const u=ie(t,!0);s.x=u.x+t.clientLeft,s.y=u.y+t.clientTop}else r&&(s.x=Ht(r));return{x:i.left+a.scrollLeft-s.x,y:i.top+a.scrollTop-s.y,width:i.width,height:i.height}}function Ne(e){return W(e)==="html"?e:e.assignedSlot||e.parentNode||(Ft(e)?e.host:null)||J(e)}function st(e){return!G(e)||getComputedStyle(e).position==="fixed"?null:e.offsetParent}function ao(e){let t=Ne(e);for(;G(t)&&!["html","body"].includes(W(t));){if(It(t))return t;t=t.parentNode}return null}function je(e){const t=X(e);let n=st(e);for(;n&&io(n)&&getComputedStyle(n).position==="static";)n=st(n);return n&&(W(n)==="html"||W(n)==="body"&&getComputedStyle(n).position==="static"&&!It(n))?t:n||ao(e)||t}function at(e){return{width:e.offsetWidth,height:e.offsetHeight}}function lo(e){let{rect:t,offsetParent:n,strategy:o}=e;const r=G(n),i=J(n);if(n===i)return t;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((r||!r&&o!=="fixed")&&((W(n)!=="body"||Ce(i))&&(a=ke(n)),G(n))){const u=ie(n,!0);s.x=u.x+n.clientLeft,s.y=u.y+n.clientTop}return{...t,x:t.x-a.scrollLeft+s.x,y:t.y-a.scrollTop+s.y}}function co(e){const t=X(e),n=J(e),o=t.visualViewport;let r=n.clientWidth,i=n.clientHeight,a=0,s=0;return o&&(r=o.width,i=o.height,Math.abs(t.innerWidth/o.scale-o.width)<.01&&(a=o.offsetLeft,s=o.offsetTop)),{width:r,height:i,x:a,y:s}}function uo(e){var t;const n=J(e),o=ke(e),r=(t=e.ownerDocument)==null?void 0:t.body,i=ue(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=ue(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let s=-o.scrollLeft+Ht(e);const u=-o.scrollTop;return Pe(r||n).direction==="rtl"&&(s+=ue(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:s,y:u}}function Rt(e){return["html","body","#document"].includes(W(e))?e.ownerDocument.body:G(e)&&Ce(e)?e:Rt(Ne(e))}function Te(e,t){var n;t===void 0&&(t=[]);const o=Rt(e),r=o===((n=e.ownerDocument)==null?void 0:n.body),i=X(o),a=r?[i].concat(i.visualViewport||[],Ce(o)?o:[]):o,s=t.concat(a);return r?s:s.concat(Te(Ne(a)))}function po(e,t){const n=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&Ft(n)){let o=t;do{if(o&&e===o)return!0;o=o.parentNode||o.host}while(o)}return!1}function ho(e){const t=ie(e),n=t.top+e.clientTop,o=t.left+e.clientLeft;return{top:n,left:o,x:o,y:n,right:o+e.clientWidth,bottom:n+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}function lt(e,t){return t==="viewport"?De(co(e)):$e(t)?ho(t):De(uo(J(e)))}function fo(e){const t=Te(Ne(e)),n=["absolute","fixed"].includes(Pe(e).position)&&G(e)?je(e):e;return $e(n)?t.filter(o=>$e(o)&&po(o,n)&&W(o)!=="body"):[]}function mo(e){let{element:t,boundary:n,rootBoundary:o}=e;const r=[...n==="clippingParents"?fo(t):[].concat(n),o],i=r[0],a=r.reduce((s,u)=>{const p=lt(t,u);return s.top=ue(p.top,s.top),s.right=rt(p.right,s.right),s.bottom=rt(p.bottom,s.bottom),s.left=ue(p.left,s.left),s},lt(t,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}const go={getElementRects:e=>{let{reference:t,floating:n,strategy:o}=e;return{reference:so(t,je(n),o),floating:{...at(n),x:0,y:0}}},convertOffsetParentRelativeRectToViewportRelativeRect:e=>lo(e),getOffsetParent:e=>{let{element:t}=e;return je(t)},isElement:e=>$e(e),getDocumentElement:e=>{let{element:t}=e;return J(t)},getClippingClientRect:e=>mo(e),getDimensions:e=>{let{element:t}=e;return at(t)},getClientRects:e=>{let{element:t}=e;return t.getClientRects()}},vo=(e,t,n)=>Dn(e,t,{platform:go,...n});var yo=Object.defineProperty,bo=Object.defineProperties,wo=Object.getOwnPropertyDescriptors,xe=Object.getOwnPropertySymbols,Bt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable,ct=(e,t,n)=>t in e?yo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t)=>{for(var n in t||(t={}))Bt.call(t,n)&&ct(e,n,t[n]);if(xe)for(var n of xe(t))Dt.call(t,n)&&ct(e,n,t[n]);return e},Le=(e,t)=>bo(e,wo(t)),_o=(e,t)=>{var n={};for(var o in e)Bt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&xe)for(var o of xe(e))t.indexOf(o)<0&&Dt.call(e,o)&&(n[o]=e[o]);return n};function zt(e,t){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(typeof t[n]=="object"&&e[n]?zt(e[n],t[n]):e[n]=t[n])}const R={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function re(e,t){let n=R.themes[e]||{},o;do o=n[t],typeof o>"u"?n.$extend?n=R.themes[n.$extend]||{}:(n=null,o=R[t]):n=null;while(n);return o}function $o(e){const t=[e];let n=R.themes[e]||{};do n.$extend&&!n.$resetCss?(t.push(n.$extend),n=R.themes[n.$extend]||{}):n=null;while(n);return t.map(o=>`v-popper--theme-${o}`)}function ut(e){const t=[e];let n=R.themes[e]||{};do n.$extend?(t.push(n.$extend),n=R.themes[n.$extend]||{}):n=null;while(n);return t}let te=!1;if(typeof window<"u"){te=!1;try{const e=Object.defineProperty({},"passive",{get(){te=!0}});window.addEventListener("test",null,e)}catch{}}let Vt=!1;typeof window<"u"&&typeof navigator<"u"&&(Vt=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const jt=["auto","top","bottom","left","right"].reduce((e,t)=>e.concat([t,`${t}-start`,`${t}-end`]),[]),pt={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart"},dt={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend"};function ht(e,t){const n=e.indexOf(t);n!==-1&&e.splice(n,1)}function Ie(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const I=[];let Q=null;const ft={};function mt(e){let t=ft[e];return t||(t=ft[e]=[]),t}let We=function(){};typeof window<"u"&&(We=window.Element);function b(e){return function(){const t=this.$props;return re(t.theme,e)}}const He="__floating-vue__popper";var Wt=()=>({name:"VPopper",props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,required:!0},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:b("disabled")},positioningDisabled:{type:Boolean,default:b("positioningDisabled")},placement:{type:String,default:b("placement"),validator:e=>jt.includes(e)},delay:{type:[String,Number,Object],default:b("delay")},distance:{type:[Number,String],default:b("distance")},skidding:{type:[Number,String],default:b("skidding")},triggers:{type:Array,default:b("triggers")},showTriggers:{type:[Array,Function],default:b("showTriggers")},hideTriggers:{type:[Array,Function],default:b("hideTriggers")},popperTriggers:{type:Array,default:b("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:b("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:b("popperHideTriggers")},container:{type:[String,Object,We,Boolean],default:b("container")},boundary:{type:[String,We],default:b("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:b("strategy")},autoHide:{type:[Boolean,Function],default:b("autoHide")},handleResize:{type:Boolean,default:b("handleResize")},instantMove:{type:Boolean,default:b("instantMove")},eagerMount:{type:Boolean,default:b("eagerMount")},popperClass:{type:[String,Array,Object],default:b("popperClass")},computeTransformOrigin:{type:Boolean,default:b("computeTransformOrigin")},autoMinSize:{type:Boolean,default:b("autoMinSize")},autoSize:{type:[Boolean,String],default:b("autoSize")},autoMaxSize:{type:Boolean,default:b("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:b("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:b("preventOverflow")},overflowPadding:{type:[Number,String],default:b("overflowPadding")},arrowPadding:{type:[Number,String],default:b("arrowPadding")},arrowOverflow:{type:Boolean,default:b("arrowOverflow")},flip:{type:Boolean,default:b("flip")},shift:{type:Boolean,default:b("shift")},shiftCrossAxis:{type:Boolean,default:b("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:b("noAutoFocus")}},provide(){return{[He]:{parentPopper:this}}},inject:{[He]:{default:null}},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},shownChildren:new Set,lastAutoHide:!0}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:Le(Y({},this.classes),{popperClass:this.popperClass}),result:this.positioningDisabled?null:this.result}},parentPopper(){var e;return(e=this[He])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((t=this.popperShowTriggers)==null?void 0:t.includes("hover"))}},watch:Y(Y({shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())}},["triggers","positioningDisabled"].reduce((e,t)=>(e[t]="$_refreshListeners",e),{})),["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,t)=>(e[t]="$_computePosition",e),{})),created(){this.$_isDisposed=!0,this.randomId=`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeDestroy(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var o,r;(o=this.parentPopper)!=null&&o.lockedChild&&this.parentPopper.lockedChild!==this||(this.$_pendingHide=!1,(n||!this.disabled)&&(((r=this.parentPopper)==null?void 0:r.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1,skipAiming:n=!1}={}){var o;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}if(!n&&this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)},1e3));return}((o=this.parentPopper)==null?void 0:o.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){this.$_isDisposed&&(this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=this.referenceNode(),this.$_targetNodes=this.targetNodes().filter(e=>e.nodeType===e.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.$_isDisposed||(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){var e;if(this.$_isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(Qn({mainAxis:this.distance,crossAxis:this.skidding}));const n=this.placement.startsWith("auto");if(n?t.middleware.push(Zn({alignment:(e=this.placement.split("-")[1])!=null?e:""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(to({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!n&&this.flip&&t.middleware.push(Xn({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(jn({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:r,rects:i,middlewareData:a})=>{let s;const{centerOffset:u}=a.arrow;return r.startsWith("top")||r.startsWith("bottom")?s=Math.abs(u)>i.reference.width/2:s=Math.abs(u)>i.reference.height/2,{data:{overflow:s}}}}),this.autoMinSize||this.autoSize){const r=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:i,placement:a,middlewareData:s})=>{var u;if((u=s.autoSize)!=null&&u.skip)return{};let p,h;return a.startsWith("top")||a.startsWith("bottom")?p=i.reference.width:h=i.reference.height,this.$_innerNode.style[r==="min"?"minWidth":r==="max"?"maxWidth":"width"]=p!=null?`${p}px`:null,this.$_innerNode.style[r==="min"?"minHeight":r==="max"?"maxHeight":"height"]=h!=null?`${h}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push(no({boundary:this.boundary,padding:this.overflowPadding,apply:({width:r,height:i})=>{this.$_innerNode.style.maxWidth=r!=null?`${r}px`:null,this.$_innerNode.style.maxHeight=i!=null?`${i}px`:null}})));const o=await vo(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:o.x,y:o.y,placement:o.placement,strategy:o.strategy,arrow:Y(Y({},o.middlewareData.arrow),o.middlewareData.arrowOverflow)})},$_scheduleShow(e=null,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Q&&this.instantMove&&Q.instantMove&&Q!==this.parentPopper){Q.$_applyHide(!0),this.$_applyShow(!0);return}t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e=null,t=!1){if(this.shownChildren.size>0){this.$_pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Q=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await Ie(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Te(this.$_referenceNode),...Te(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const t=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),o=n.parentNode.getBoundingClientRect(),r=t.x+t.width/2-(o.left+n.offsetLeft),i=t.y+t.height/2-(o.top+n.offsetTop);this.result.transformOrigin=`${r}px ${i}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n0){this.$_pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,ht(I,this),I.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of ut(this.theme)){const o=mt(n);ht(o,this),o.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}Q===this&&(Q=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=re(this.theme,"disposeTimeout");t!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await Ie(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.$_isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,pt,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],pt,this.popperTriggers,this.popperShowTriggers,e);const t=n=>o=>{o.usedByTooltip||this.hide({event:o,skipAiming:n})};this.$_registerTriggerListeners(this.$_targetNodes,dt,this.triggers,this.hideTriggers,t(!1)),this.$_registerTriggerListeners([this.$_popperNode],dt,this.popperTriggers,this.popperHideTriggers,t(!0))},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach(o=>o.addEventListener(t,n,te?{passive:!0}:void 0))},$_registerTriggerListeners(e,t,n,o,r){let i=n;o!=null&&(i=typeof o=="function"?o(i):o),i.forEach(a=>{const s=t[a];s&&this.$_registerEventListeners(e,s,r)})},$_removeEventListeners(e){const t=[];this.$_events.forEach(n=>{const{targetNodes:o,eventType:r,handler:i}=n;!e||e===r?o.forEach(a=>a.removeEventListener(r,i)):t.push(n)}),this.$_events=t},$_refreshListeners(){this.$_isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const o=n.getAttribute(e);o&&(n.removeAttribute(e),n.setAttribute(t,o))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const o=e[n];o==null?t.removeAttribute(n):t.setAttribute(n,o)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.$_pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$el.getBoundingClientRect();if(pe>=e.left&&pe<=e.right&&de>=e.top&&de<=e.bottom){const t=this.$_popperNode.getBoundingClientRect(),n=pe-K,o=de-Z,r=t.left+t.width/2-K+(t.top+t.height/2)-Z+t.width+t.height,i=K+n*r,a=Z+o*r;return ge(K,Z,i,a,t.left,t.top,t.left,t.bottom)||ge(K,Z,i,a,t.left,t.top,t.right,t.top)||ge(K,Z,i,a,t.right,t.top,t.right,t.bottom)||ge(K,Z,i,a,t.left,t.bottom,t.right,t.bottom)}return!1}},render(){return this.$scopedSlots.default(this.slotData)[0]}});typeof document<"u"&&typeof window<"u"&&(Vt?(document.addEventListener("touchstart",gt,te?{passive:!0,capture:!0}:!0),document.addEventListener("touchend",To,te?{passive:!0,capture:!0}:!0)):(window.addEventListener("mousedown",gt,!0),window.addEventListener("click",Ao,!0)),window.addEventListener("resize",Po));function gt(e){for(let t=0;t=0;o--){const r=I[o];try{const i=r.$_containsGlobalTarget=xo(r,e);r.$_pendingHide=!1,requestAnimationFrame(()=>{if(r.$_pendingHide=!1,!n[r.randomId]&&vt(r,i,e)){if(r.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&i){let s=r.parentPopper;for(;s;)n[s.randomId]=!0,s=s.parentPopper;return}let a=r.parentPopper;for(;a&&vt(a,a.$_containsGlobalTarget,e);)a.$_handleGlobalClose(e,t),a=a.parentPopper}})}catch{}}}function xo(e,t){const n=e.popperNode();return e.$_mouseDownContains||n.contains(t.target)}function vt(e,t,n){return n.closeAllPopover||n.closePopover&&t||So(e,n)&&!t}function So(e,t){if(typeof e.autoHide=="function"){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}function Po(e){for(let t=0;t{K=pe,Z=de,pe=e.clientX,de=e.clientY},te?{passive:!0}:void 0);function ge(e,t,n,o,r,i,a,s){const u=((a-r)*(t-i)-(s-i)*(e-r))/((s-i)*(n-e)-(a-r)*(o-t)),p=((n-e)*(t-i)-(o-t)*(e-r))/((s-i)*(n-e)-(a-r)*(o-t));return u>=0&&u<=1&&p>=0&&p<=1}function Co(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);var n=e.indexOf("Trident/");if(n>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var r=e.indexOf("Edge/");return r>0?parseInt(e.substring(r+5,e.indexOf(".",r)),10):-1}var be;function Ge(){Ge.init||(Ge.init=!0,be=Co()!==-1)}var ko={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;Ge(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",be&&this.$el.appendChild(t),t.data="about:blank",be||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!be&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};function No(e,t,n,o,r,i,a,s,u,p){var h=typeof n=="function"?n.options:n;return e&&e.render&&(h.render=e.render,h.staticRenderFns=e.staticRenderFns,h._compiled=!0),h._scopeId=o,n}var Lo=ko,qt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},Eo=[];qt._withStripped=!0;var Mo=void 0,Oo="data-v-8859cc6c",qe=No({render:qt,staticRenderFns:Eo},Mo,Lo,Oo);function Fo(e){e.component("resize-observer",qe),e.component("ResizeObserver",qe)}var Io={version:"1.0.1",install:Fo},ve=null;typeof window<"u"?ve=window.Vue:typeof we<"u"&&(ve=we.Vue),ve&&ve.use(Io);var Ut={computed:{themeClass(){return $o(this.theme)}}},Ho={name:"VPopperContent",components:{ResizeObserver:qe},mixins:[Ut],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}},Ro=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"popover",staticClass:"v-popper__popper",class:[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}],style:e.result?{position:e.result.strategy,transform:"translate3d("+Math.round(e.result.x)+"px,"+Math.round(e.result.y)+"px,0)"}:void 0,attrs:{id:e.popperId,"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0},on:{keyup:function(o){if(!o.type.indexOf("key")&&e._k(o.keyCode,"esc",27,o.key,["Esc","Escape"]))return null;e.autoHide&&e.$emit("hide")}}},[n("div",{staticClass:"v-popper__backdrop",on:{click:function(o){e.autoHide&&e.$emit("hide")}}}),n("div",{staticClass:"v-popper__wrapper",style:e.result?{transformOrigin:e.result.transformOrigin}:void 0},[n("div",{ref:"inner",staticClass:"v-popper__inner"},[e.mounted?[n("div",[e._t("default")],2),e.handleResize?n("ResizeObserver",{on:{notify:function(o){return e.$emit("resize",o)}}}):e._e()]:e._e()],2),n("div",{ref:"arrow",staticClass:"v-popper__arrow-container",style:e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0},[n("div",{staticClass:"v-popper__arrow-outer"}),n("div",{staticClass:"v-popper__arrow-inner"})])])])},Bo=[];function se(e,t,n,o,r,i,a,s){var u=typeof e=="function"?e.options:e;t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0);var p;if(r&&(p=r),p)if(u.functional){u._injectStyles=p;var h=u.render;u.render=function(m,f){return p.call(f),h(m,f)}}else{var g=u.beforeCreate;u.beforeCreate=g?[].concat(g,p):[p]}return{exports:e,options:u}}const yt={};var Do=se(Ho,Ro,Bo,!1,zo);function zo(e){for(let t in yt)this[t]=yt[t]}var Kt=(function(){return Do.exports})(),Xe={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}},Vo={name:"VPopperWrapper",components:{Popper:Wt(),PopperContent:Kt},mixins:[Xe,Ut],inheritAttrs:!1,props:{theme:{type:String,default(){return this.$options.vPopperTheme}}},methods:{getTargetNodes(){return Array.from(this.$refs.reference.children).filter(e=>e!==this.$refs.popperContent.$el)}}},jo=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Popper",e._g(e._b({ref:"popper",attrs:{theme:e.theme,"target-nodes":e.getTargetNodes,"reference-node":function(){return e.$refs.reference},"popper-node":function(){return e.$refs.popperContent.$el}},scopedSlots:e._u([{key:"default",fn:function(o){var r=o.popperId,i=o.isShown,a=o.shouldMountContent,s=o.skipTransition,u=o.autoHide,p=o.show,h=o.hide,g=o.handleResize,m=o.onResize,f=o.classes,$=o.result;return[n("div",{ref:"reference",staticClass:"v-popper",class:[e.themeClass,{"v-popper--shown":i}]},[e._t("default",null,{shown:i,show:p,hide:h}),n("PopperContent",{ref:"popperContent",attrs:{"popper-id":r,theme:e.theme,shown:i,mounted:a,"skip-transition":s,"auto-hide":u,"handle-resize":g,classes:f,result:$},on:{hide:h,resize:m}},[e._t("popper",null,{shown:i,hide:h})],2)],2)]}}],null,!0)},"Popper",e.$attrs,!1),e.$listeners))},Wo=[];const bt={};var Go=se(Vo,jo,Wo,!1,qo);function qo(e){for(let t in bt)this[t]=bt[t]}var Je=(function(){return Go.exports})(),Uo=Le(Y({},Je),{name:"VDropdown",vPopperTheme:"dropdown"});let Ko,Zo;const wt={};var Yo=se(Uo,Ko,Zo,!1,Xo);function Xo(e){for(let t in wt)this[t]=wt[t]}var Ue=(function(){return Yo.exports})(),Jo=Le(Y({},Je),{name:"VMenu",vPopperTheme:"menu"});let Qo,ei;const _t={};var ti=se(Jo,Qo,ei,!1,ni);function ni(e){for(let t in _t)this[t]=_t[t]}var $t=(function(){return ti.exports})(),oi=Le(Y({},Je),{name:"VTooltip",vPopperTheme:"tooltip"});let ii,ri;const At={};var si=se(oi,ii,ri,!1,ai);function ai(e){for(let t in At)this[t]=At[t]}var Tt=(function(){return si.exports})(),li={name:"VTooltipDirective",components:{Popper:Wt(),PopperContent:Kt},mixins:[Xe],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default(){return re(this.theme,"html")}},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default(){return re(this.theme,"loadingContent")}}},data(){return{asyncContent:null}},computed:{isContentAsync(){return typeof this.content=="function"},loading(){return this.isContentAsync&&this.asyncContent==null},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(e){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if(typeof this.content=="function"&&this.$_isShown&&(e||!this.$_loading&&this.asyncContent==null)){this.asyncContent=null,this.$_loading=!0;const t=++this.$_fetchId,n=this.content(this);n.then?n.then(o=>this.onResult(t,o)):this.onResult(t,n)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}},ci=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Popper",e._g(e._b({ref:"popper",attrs:{theme:e.theme,"popper-node":function(){return e.$refs.popperContent.$el}},on:{"apply-show":e.onShow,"apply-hide":e.onHide},scopedSlots:e._u([{key:"default",fn:function(o){var r=o.popperId,i=o.isShown,a=o.shouldMountContent,s=o.skipTransition,u=o.autoHide,p=o.hide,h=o.handleResize,g=o.onResize,m=o.classes,f=o.result;return[n("PopperContent",{ref:"popperContent",class:{"v-popper--tooltip-loading":e.loading},attrs:{"popper-id":r,theme:e.theme,shown:i,mounted:a,"skip-transition":s,"auto-hide":u,"handle-resize":h,classes:m,result:f},on:{hide:p,resize:g}},[e.html?n("div",{domProps:{innerHTML:e._s(e.finalContent)}}):n("div",{domProps:{textContent:e._s(e.finalContent)}})])]}}])},"Popper",e.$attrs,!1),e.$listeners))},ui=[];const xt={};var pi=se(li,ci,ui,!1,di);function di(e){for(let t in xt)this[t]=xt[t]}var hi=(function(){return pi.exports})();const Zt="v-popper--has-tooltip";function fi(e,t){let n=e.placement;if(!n&&t)for(const o of jt)t[o]&&(n=o);return n||(n=re(e.theme||"tooltip","placement")),n}function Yt(e,t,n){let o;const r=typeof t;return r==="string"?o={content:t}:t&&r==="object"?o=t:o={content:!1},o.placement=fi(o,n),o.targetNodes=()=>[e],o.referenceNode=()=>e,o}function mi(e,t,n){const o=Yt(e,t,n),r=e.$_popper=new Ke({mixins:[Xe],data(){return{options:o}},render(a){const s=this.options,{theme:u,html:p,content:h,loadingContent:g}=s,m=_o(s,["theme","html","content","loadingContent"]);return a(hi,{props:{theme:u,html:p,content:h,loadingContent:g},attrs:m,ref:"popper"})},devtools:{hide:!0}}),i=document.createElement("div");return document.body.appendChild(i),r.$mount(i),e.classList&&e.classList.add(Zt),r}function Xt(e){e.$_popper&&(e.$_popper.$destroy(),delete e.$_popper,delete e.$_popperOldShown),e.classList&&e.classList.remove(Zt)}function St(e,{value:t,oldValue:n,modifiers:o}){const r=Yt(e,t,o);if(!r.content||re(r.theme||"tooltip","disabled"))Xt(e);else{let i;e.$_popper?(i=e.$_popper,i.options=r):i=mi(e,t,o),typeof t.shown<"u"&&t.shown!==e.$_popperOldShown&&(e.$_popperOldShown=t.shown,t.shown?i.show():i.hide())}}var gi={bind:St,update:St,unbind(e){Xt(e)}};function Pt(e){e.addEventListener("click",Jt),e.addEventListener("touchstart",Qt,te?{passive:!0}:!1)}function Ct(e){e.removeEventListener("click",Jt),e.removeEventListener("touchstart",Qt),e.removeEventListener("touchend",en),e.removeEventListener("touchcancel",tn)}function Jt(e){const t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Qt(e){if(e.changedTouches.length===1){const t=e.currentTarget;t.$_vclosepopover_touch=!0;const n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",en),t.addEventListener("touchcancel",tn)}}function en(e){const t=e.currentTarget;if(t.$_vclosepopover_touch=!1,e.changedTouches.length===1){const n=e.changedTouches[0],o=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-o.screenY)<20&&Math.abs(n.screenX-o.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function tn(e){const t=e.currentTarget;t.$_vclosepopover_touch=!1}var vi={bind(e,{value:t,modifiers:n}){e.$_closePopoverModifiers=n,(typeof t>"u"||t)&&Pt(e)},update(e,{value:t,oldValue:n,modifiers:o}){e.$_closePopoverModifiers=o,t!==n&&(typeof t>"u"||t?Pt(e):Ct(e))},unbind(e){Ct(e)}};const kt=R,yi=Ue;function bi(e,t={}){e.$_vTooltipInstalled||(e.$_vTooltipInstalled=!0,zt(R,t),e.directive("tooltip",gi),e.directive("close-popper",vi),e.component("v-tooltip",Tt),e.component("VTooltip",Tt),e.component("v-dropdown",Ue),e.component("VDropdown",Ue),e.component("v-menu",$t),e.component("VMenu",$t))}const wi={version:"1.0.0-beta.19",install:bi,options:R};let ye=null;typeof window<"u"?ye=window.Vue:typeof we<"u"&&(ye=we.Vue),ye&&ye.use(wi);const _i=hn({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$scopedSlots.default?.({attrs:this.triggerAttrs})}}),$i=null,Ai=null;var Ti=he(_i,$i,Ai,!1,null,null);const xi=Ti.exports,Si="_ncPopover_6PjkA",Pi={"material-design-icon":"_material-design-icon_AAwhR",ncPopover:Si},nn="nc-popover-8";kt.themes[nn]=structuredClone(kt.themes.dropdown);const Ci={name:"NcPopover",components:{Dropdown:yi,NcPopoverTriggerProvider:xi},inheritAttrs:!1,props:{shown:{type:Boolean,default:!1},popupRole:{type:String,default:void 0,validator:e=>["menu","listbox","tree","grid","dialog","true"].includes(e)},popoverBaseClass:{type:String,default:""},focusTrap:{type:Boolean,default:!0},noFocusTrap:{type:Boolean,default:!1},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},noAutoReturnFocus:{type:Boolean,default:!1}},emits:["after-show","after-hide","update:shown"],setup(){return{THEME:nn}},data(){return{internalShown:this.shown}},watch:{shown(e){this.internalShown=e,this.internalShown&&this.checkTriggerA11y()},internalShown(e){this.$emit("update:shown",e)}},beforeDestroy(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){if(window.OC?.debug){const e=this.getPopoverTriggerButtonElement();(!e||!e.hasAttributes("aria-expanded","aria-haspopup"))&&Ke.util.warn("It looks like you are using a custom button as a or other popover #trigger. If you are not using as a trigger, you need to bind attrs from the #trigger slot props to your custom button. See docs for an example.")}},removeFloatingVueAriaDescribedBy(){const e=this.getPopoverTriggerElement().querySelectorAll("[data-popper-shown]");for(const t of e)t.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerElement(){return this.$refs.popover.$refs.reference},getPopoverTriggerButtonElement(){const e=this.getPopoverTriggerElement();return e&&Lt(e)[0]},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap||!this.focusTrap)return;const e=this.getPopoverContentElement();e.tabIndex=-1,e&&(this.$focusTrap=Cn(e,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus||!this.noAutoReturnFocus&&this.getPopoverTriggerButtonElement(),trapStack:Be(),fallbackFocus:e}),this.$focusTrap.activate())},clearFocusTrap(e={}){try{this.$focusTrap?.deactivate(e),this.$focusTrap=null}catch(t){sn.warn("Could not clear focus trap",{error:t})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(e){e.type==="keydown"&&e.key==="Escape"&&e.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("after-show")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("after-hide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};var ki=function(){var e=this,t=e._self._c;return t("Dropdown",e._g(e._b({ref:"popover",attrs:{distance:10,"arrow-padding":10,"no-auto-focus":!0,"popper-class":[e.$style.ncPopover,e.popoverBaseClass],theme:e.THEME,shown:e.internalShown},on:{"update:shown":function(n){e.internalShown=n},"apply-show":e.afterShow,"apply-hide":e.afterHide},scopedSlots:e._u([{key:"popper",fn:function(n){return[e._t("default",null,null,n)]}}],null,!0)},"Dropdown",e.$attrs,!1),e.$listeners),[t("NcPopoverTriggerProvider",{attrs:{shown:e.internalShown,"popup-role":e.popupRole},scopedSlots:e._u([{key:"default",fn:function(n){return[e._t("trigger",null,null,n)]}}],null,!0)})],1)},Ni=[];const Nt={$style:Pi};function Li(e){for(var t in Nt)this[t]=Nt[t]}var Ei=he(Ci,ki,Ni,!1,Li,null);const Mi=Ei.exports,Oi={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var Fi=function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon dots-horizontal-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(n){return e.$emit("click",n)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e(),t("path",{attrs:{d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"}})])])},Ii=[],Hi=he(Oi,Fi,Ii,!1,null,null);const Ri=Hi.exports;an(ln);const Bi=".focusable",Di={name:"NcActions",components:{NcButton:un,NcPopover:Mi},provide(){return{"NcActions:isSemanticMenu":fn(()=>this.actionsMenuSemanticType==="menu")}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},forceSemanticType:{type:String,default:null,validator(e){return["dialog","menu","expanded","tooltip"].includes(e)}},primary:{type:Boolean,default:!1},type:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(e)},default:null},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:cn("Actions")},ariaHidden:{type:Boolean,default:null},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.querySelector("#content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(e)},default:null},size:{type:String,default:"normal",validator(e){return["small","normal","large"].includes(e)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){const e=`menu-${mn()}`,t=`trigger-${e}`;return{randomId:e,triggerRandomId:t}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return(this.type??this.variant)||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1,triggerA11yAttr:{"aria-controls":this.opened?this.randomId:null},popoverContainerA11yAttrs:{},popoverUlA11yAttrs:{"aria-labelledby":this.triggerRandomId,id:this.randomId,role:"menu"}},expanded:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1,triggerA11yAttr:{},popoverContainerA11yAttrs:{},popoverUlA11yAttrs:{}},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0,triggerA11yAttr:{"aria-controls":this.opened?this.randomId:null},popoverContainerA11yAttrs:{id:this.randomId,role:"dialog","aria-labelledby":this.triggerRandomId,"aria-modal":"true"},popoverUlA11yAttrs:{}},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1,triggerA11yAttr:{},popoverContainerA11yAttrs:{},popoverUlA11yAttrs:{}},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0,triggerA11yAttr:{},popoverContainerA11yAttrs:{},popoverUlA11yAttrs:{"aria-labelledby":this.triggerRandomId}}}[this.actionsMenuSemanticType]}},watch:{open(e){e!==this.opened&&(this.opened=e)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){Bn(()=>this.opened,{disabled:()=>this.config.withFocusTrap})},methods:{getActionName(e){return e?.componentOptions?.Ctor?.extendOptions?.name??e?.componentOptions?.tag},isValidSingleAction(e){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(e))},isIconUrl(e){try{return!!new URL(e,e.startsWith("/")?window.location.origin:void 0)}catch{return!1}},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(e=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,e&&this.$refs.triggerButton?.$el.focus())},onClosed(){this.$emit("closed")},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.resizePopover(),this.$emit("opened")})},resizePopover(){const e=this.$refs.menu.closest(".v-popper__inner"),t=this.$refs.menu.clientHeight,n=this.getMaxMenuHeight();if(t>n){let o=0,r=0;for(const i of this.$refs.menuList.children){if(o+i.clientHeight/2>n){e.style.height=`${o-r/2}px`;break}r=i.clientHeight,o+=r}}else e.style.height="fit-content"},getMaxMenuHeight(){const{top:e,bottom:t}=this.$refs.triggerButton?.$el.getBoundingClientRect()??{top:0,bottom:0},{top:n,bottom:o}=this.boundariesElement?.getBoundingClientRect()??{top:0,bottom:window.innerHeight};return Math.max(Math.min(e-84,e-n),Math.min(window.innerHeight-t-34,o-t))},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(Bi)},onKeydown(e){if(e.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}e.preventDefault();const t=this.getFocusableMenuItemElements(),n=[...t].indexOf(document.activeElement);if(n===-1)return;const o=e.shiftKey?n-1:n+1;(o<0||o===t.length)&&this.closeMenu(!0),this.focusIndex=o,this.focusAction();return}this.config.withArrowNavigation&&(e.key==="ArrowUp"&&this.focusPreviousAction(e),e.key==="ArrowDown"&&this.focusNextAction(e),e.key==="PageUp"&&this.focusFirstAction(e),e.key==="PageDown"&&this.focusLastAction(e)),this.handleEscapePressed(e)},onTriggerKeydown(e){e.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(e){e.key==="Escape"&&(this.closeMenu(),e.preventDefault())},removeCurrentActive(){const e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction(){const e=this.getFocusableMenuItemElements()[this.focusIndex];if(e){this.removeCurrentActive();const t=e.closest("li.action");e.focus(),t&&t.classList.add("active")}},focusPreviousAction(e){this.opened&&(this.focusIndex===0?this.focusLastAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(e){if(this.opened){const t=this.getFocusableMenuItemElements().length-1;this.focusIndex===t?this.focusFirstAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(e){if(this.opened){this.preventIfEvent(e);const t=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=t>-1?t:0,this.focusAction()}},focusLastAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(e){this.$emit("click",e)}},render(e){const t=(this.$slots.default||[]).filter(s=>this.getActionName(s));if(t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(Ke.util.warn("Specifying forceMenu will ignore any inline actions rendering."),n=[]);const o=n.slice(0,this.inline),r=t.filter(s=>!o.includes(s));if(this.forceSemanticType)this.actionsMenuSemanticType=this.forceSemanticType;else{const s=["NcActionInput","NcActionTextEditable"],u=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],p=["NcActionLink","NcActionRouter"],h=r.some(f=>s.includes(this.getActionName(f))),g=r.some(f=>u.includes(this.getActionName(f))),m=r.some(f=>p.includes(this.getActionName(f)));h?this.actionsMenuSemanticType="dialog":g?this.actionsMenuSemanticType="menu":m?this.actionsMenuSemanticType="expanded":t.filter(f=>this.getActionName(f).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown"}const i=s=>{const u=s?.componentOptions?.propsData?.icon,p=s?.data?.scopedSlots?.icon()?.[0]??(this.isIconUrl(u)?e("img",{class:"action-item__menutoggle__icon",attrs:{src:u,alt:""}}):e("span",{class:["icon",u]})),h=s?.data?.attrs||{},g=s?.componentOptions?.listeners?.click,m=s?.componentOptions?.children?.[0]?.text?.trim?.(),f=s?.componentOptions?.propsData?.ariaLabel||m,$=this.forceName?m:"";let P=s?.componentOptions?.propsData?.title;this.forceName||P||(P=m);const w={...s?.componentOptions?.propsData??{}},C=["submit","reset"].includes(w.type)?w.modelValue:"button";return delete w.modelValue,delete w.type,e("NcButton",{class:["action-item action-item--single",s?.data?.staticClass,s?.data?.class],attrs:{...h,"aria-label":f,title:P},ref:s?.data?.ref,props:{...w,disabled:this.disabled||s?.componentOptions?.propsData?.disabled,pressed:s?.componentOptions?.propsData?.modelValue,size:this.size,type:C,variant:(this.type??this.variant)||($?"secondary":"tertiary")},on:{focus:this.onFocus,blur:this.onBlur,"update:pressed":s?.componentOptions?.listeners?.["update:modelValue"]??(()=>{}),...!!g&&{click:x=>{g&&g(x)}}}},[e("template",{slot:"icon"},[p]),$])},a=s=>{const u=this.$slots.icon?.[0]||(this.defaultIcon?e("span",{class:["icon",this.defaultIcon]}):e(Ri,{props:{size:20}}));return e("NcPopover",{ref:"popover",props:{delay:0,handleResize:!0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,container:this.container,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,noAutoReturnFocus:!this.withFocusTrap,focusTrap:this.config.withFocusTrap},attrs:{delay:0,handleResize:!0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,container:this.container,...this.manualOpen&&{triggers:[]}},on:{show:this.openMenu,"after-show":this.onOpened,hide:this.closeMenu,"after-hide":this.onClosed}},[e("NcButton",{class:"action-item__menutoggle",props:{size:this.size,variant:this.triggerButtonVariant,disabled:this.disabled},slot:"trigger",ref:"triggerButton",attrs:{id:this.triggerRandomId,"aria-label":this.menuName?null:this.ariaLabel,...this.config.triggerA11yAttr},on:{focus:this.onFocus,blur:this.onBlur,click:this.onClick,keydown:this.onTriggerKeydown}},[e("template",{slot:"icon"},[u]),this.menuName]),e("div",{class:{open:this.opened},attrs:{tabindex:"-1",...this.config.popoverContainerA11yAttrs},on:{keydown:this.onKeydown},ref:"menu"},[e("ul",{attrs:{tabindex:"-1",...this.config.popoverUlA11yAttrs},ref:"menuList"},[s])])])};return t.length===1&&n.length===1&&!this.forceMenu?i(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.resizePopover(),(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction())}),o.length>0&&this.inline>0?e("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...o.map(i),r.length>0?e("div",{class:["action-item",{"action-item--open":this.opened}]},[a(r)]):null]):e("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened}]},[a(t)]))}},zi=null,Vi=null;var ji=he(Di,zi,Vi,!1,null,"38a26e61");const sr=ji.exports;export{On as A,Ri as D,rr as N,Mi as a,sr as b,Qi as c,Yi as d,Cn as e,Ln as f,Be as g,Ji as h,Nn as i,Ki as j,or as k,Xi as l,ir as m,tr as n,nr as o,er as p,Zi as q,kt as r}; -//# sourceMappingURL=NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.map +//# sourceMappingURL=NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.map diff --git a/js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.license b/js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.license similarity index 100% rename from js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.license rename to js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.license diff --git a/js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.map b/js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.map similarity index 99% rename from js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.map rename to js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.map index dcb795323..24b363540 100644 --- a/js/NcActions-C4f9MXug-FA3YIyzG.chunk.mjs.map +++ b/js/NcActions-C4f9MXug-BC_2VOkH.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"NcActions-C4f9MXug-FA3YIyzG.chunk.mjs","sources":["../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi-DtJ8HsM-.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-DqVa7c7G.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BMig9Egt.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-DJ-fERS3.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-BnLfCgGU.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","../node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","../node_modules/floating-vue/dist/floating-vue.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-BCDLqFHH.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-C4f9MXug.mjs"],"sourcesContent":["/*!\n* focus-trap 7.8.0\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, getTabIndex, isFocusable } from 'tabbable';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = true,\n u = false;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = true, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar activeFocusTraps = {\n // Returns the trap from the top of the stack.\n getActiveTrap: function getActiveTrap(trapStack) {\n if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) {\n return trapStack[trapStack.length - 1];\n }\n return null;\n },\n // Pauses the currently active trap, then adds a new trap to the stack.\n activateTrap: function activateTrap(trapStack, trap) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (trap !== activeTrap) {\n activeFocusTraps.pauseTrap(trapStack);\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n // Removes the trap from the top of the stack, then unpauses the next trap down.\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n activeFocusTraps.unpauseTrap(trapStack);\n },\n // Pauses the trap at the top of the stack.\n pauseTrap: function pauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true);\n },\n // Unpauses the trap at the top of the stack.\n unpauseTrap: function unpauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (activeTrap && !activeTrap._isManuallyPaused()) {\n activeTrap._setPausedState(false);\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isolateSubtrees: false,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n /** @type {Array} */\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n /** @type {Array<{\n * container: HTMLElement,\n * tabbableNodes: Array, // empty if none\n * focusableNodes: Array, // empty if none\n * posTabIndexesFound: boolean,\n * firstTabbableNode: HTMLElement|undefined,\n * lastTabbableNode: HTMLElement|undefined,\n * firstDomTabbableNode: HTMLElement|undefined,\n * lastDomTabbableNode: HTMLElement|undefined,\n * nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n * }>}\n */\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n // references to nodes that are siblings to the ancestors of this trap's containers.\n /** @type {Set} */\n adjacentElements: new Set(),\n // references to nodes that were inert or aria-hidden before the trap was activated.\n /** @type {Set} */\n alreadySilent: new Set(),\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @param {Object} options\n * @param {boolean} [options.hasFallback] True if the option could be a selector string\n * and the option allows for a fallback scenario in the case where the selector is\n * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).\n * @param {Array} [options.params] Params to pass to the option if it's a function.\n * @returns {undefined | null | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `null` if the option didn't resolve\n * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`\n * (node explicitly not given); otherwise, the resolved DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$hasFallback = _ref2.hasFallback,\n hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback,\n _ref2$params = _ref2.params,\n params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n try {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n } catch (err) {\n throw new Error(\"`\".concat(optionName, \"` appears to be an invalid selector; error=\\\"\").concat(err.message, \"\\\"\"));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n // else, `node` MUST be `null` because that's what `Document.querySelector()` returns\n // if the selector is valid but doesn't match anything\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus', {\n hasFallback: true\n });\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n } else if (node === null) {\n // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`\n // option instead of the default behavior when the option isn't specified at all\n node = getNodeForOption('fallbackFocus');\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : undefined;\n var firstDomTabbableNode = focusableNodes.find(function (node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function (node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function (node) {\n return getTabIndex(node) > 0;\n });\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound: posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode: firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode: lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode: firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode: lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function (el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function (el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (state.containerGroups.find(function (g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n\n /**\n * Gets the current activeElement. If it's a web-component and has open shadow-root\n * it will recursively search inside shadow roots for the \"true\" activeElement.\n *\n * @param {Document | ShadowRoot} el\n *\n * @returns {HTMLElement} The element that currently has the focus\n **/\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n var findNextNavNode = function findNextNavNode(_ref3) {\n var target = _ref3.target,\n event = _ref3.event,\n _ref3$isBackward = _ref3.isBackward,\n isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n var checkFocusIn = function checkFocusIn(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n var nextNode; // next node to focus, if we find one\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n var mruTabIdx = tabbableNodes.findIndex(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (!state.containerGroups.some(function (g) {\n return g.tabbableNodes.some(function (n) {\n return getTabIndex(n) > 0;\n });\n })) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event: event,\n isBackward: isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n var checkTabKey = function checkTabKey(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates\n var checkEscapeKey = function checkEscapeKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n _tryFocus(getInitialFocusNode());\n }) : _tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n /**\n * Traverses up the DOM from each of `containers`, collecting references to\n * the elements that are siblings to `container` or an ancestor of `container`.\n * @param {Array} containers\n */\n var collectAdjacentElements = function collectAdjacentElements(containers) {\n // Re-activate all adjacent elements & clear previous collection.\n if (state.active && !state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.adjacentElements.clear();\n state.alreadySilent.clear();\n\n // Collect all ancestors of all containers to avoid redundant processing.\n var containerAncestors = new Set();\n var adjacentElements = new Set();\n\n // Compile all elements adjacent to the focus trap containers & lineage.\n var _iterator = _createForOfIteratorHelper(containers),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var container = _step.value;\n containerAncestors.add(container);\n var insideShadowRoot = typeof ShadowRoot !== 'undefined' && container.getRootNode() instanceof ShadowRoot;\n var current = container;\n while (current) {\n containerAncestors.add(current);\n var parent = current.parentElement;\n var siblings = [];\n if (parent) {\n siblings = parent.children;\n } else if (!parent && insideShadowRoot) {\n siblings = current.getRootNode().children;\n parent = current.getRootNode().host;\n insideShadowRoot = typeof ShadowRoot !== 'undefined' && parent.getRootNode() instanceof ShadowRoot;\n }\n\n // Add all the children, we'll remove container lineage later.\n var _iterator2 = _createForOfIteratorHelper(siblings),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var child = _step2.value;\n adjacentElements.add(child);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n current = parent;\n }\n }\n\n // Multi-container traps may overlap.\n // Remove elements within container lineages.\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n containerAncestors.forEach(function (el) {\n adjacentElements[\"delete\"](el);\n });\n state.adjacentElements = adjacentElements;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkTabKey, true);\n doc.removeEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n // If a currently-active trap is isolating its subtree, we need to remove\n // that isolation to allow the new trap to find tabbable nodes.\n var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack);\n var revertState = false;\n if (preexistingTrap && !preexistingTrap.paused) {\n var _preexistingTrap$_set;\n // [#1729] method MAY not exist if using `trapStack` option to share stack with older\n // versions of Focus-trap in the same DOM so use optional chaining here just in case\n // since this is a trap we may not have created from this instance of the library\n (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false);\n revertState = true;\n }\n try {\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n if (config.isolateSubtrees) {\n trap._setSubtreeIsolation(true);\n }\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n } catch (error) {\n // If our activation throws an exception and the stack hasn't changed,\n // we need to re-enable the prior trap's subtree isolation.\n if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) {\n var _preexistingTrap$_set2;\n // [#1729] method MAY not exist if using `trapStack` option to share stack with older\n // versions of Focus-trap in the same DOM so use optional chaining here just in case\n // since this is a trap we may not have created from this instance of the library\n (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true);\n }\n throw error;\n }\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n\n // Prior to removing this trap from the trapStack, we need to remove any applications of `inert`.\n // This allows the next trap down to update its tabbable nodes properly.\n //\n // If this trap is not top of the stack, don't change any current isolation.\n if (!state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.alreadySilent.clear();\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (config.isolateSubtrees) {\n collectAdjacentElements(state.containers);\n }\n if (state.active) {\n updateTabbableNodes();\n if (config.isolateSubtrees && !state.paused) {\n trap._setSubtreeIsolation(true);\n }\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, 'onPause');\n var onPostPause = getOption(options, 'onPostPause');\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n updateObservedNodes();\n trap._setSubtreeIsolation(false);\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, 'onUnpause');\n var onPostUnpause = getOption(options, 'onPostUnpause');\n onUnpause === null || onUnpause === void 0 || onUnpause();\n trap._setSubtreeIsolation(true);\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n }\n return this;\n }\n },\n _setSubtreeIsolation: {\n value: function value(isEnabled) {\n if (config.isolateSubtrees) {\n state.adjacentElements.forEach(function (el) {\n var _el$getAttribute;\n if (isEnabled) {\n switch (config.isolateSubtrees) {\n case 'aria-hidden':\n // check both attribute and property to ensure initial state is captured\n // correctly across different browsers and test environments (like JSDOM)\n if (el.ariaHidden === 'true' || ((_el$getAttribute = el.getAttribute('aria-hidden')) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === 'true') {\n state.alreadySilent.add(el);\n }\n el.setAttribute('aria-hidden', 'true');\n break;\n default:\n // check both attribute and property to ensure initial state is captured\n // correctly across different browsers and test environments (like JSDOM)\n if (el.inert || el.hasAttribute('inert')) {\n state.alreadySilent.add(el);\n }\n el.setAttribute('inert', true);\n break;\n }\n } else {\n if (state.alreadySilent.has(el)) ; else {\n switch (config.isolateSubtrees) {\n case 'aria-hidden':\n el.removeAttribute('aria-hidden');\n break;\n default:\n el.removeAttribute('inert');\n break;\n }\n }\n }\n });\n }\n }\n }\n });\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","function getTrapStack() {\n window._nc_focus_trap ??= [];\n return window._nc_focus_trap;\n}\nfunction createTrapStackController() {\n let pausedStack = [];\n return {\n /**\n * Pause the current focus-trap stack\n */\n pause() {\n pausedStack = [...getTrapStack()];\n for (const trap of pausedStack) {\n trap.pause();\n }\n },\n /**\n * Unpause the paused focus trap stack\n * If the actual stack is different from the paused one, ignore unpause.\n */\n unpause() {\n if (pausedStack.length === getTrapStack().length) {\n for (const trap of pausedStack) {\n trap.unpause();\n }\n }\n pausedStack = [];\n }\n };\n}\nexport {\n createTrapStackController as c,\n getTrapStack as g\n};\n//# sourceMappingURL=focusTrap-HJQ4pqHV.mjs.map\n","var mdiAlertCircleOutline = \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nvar mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiCheck as a,\n mdiUndo as b,\n mdiClose as c,\n mdiArrowRight as d,\n mdiContentCopy as e,\n mdiCreation as f,\n mdiRadioboxMarked as g,\n mdiRadioboxBlank as h,\n mdiCheckboxMarked as i,\n mdiCheckboxBlankOutline as j,\n mdiAlertCircleOutline as k,\n mdiCogOutline as l,\n mdiChevronRight as m,\n mdiCog as n,\n mdiOpenInNew as o,\n mdiArrowTopRight as p,\n mdiDotsHorizontal as q,\n mdiCloseCircleOutline as r,\n mdiArrowLeft as s,\n mdiChevronLeft as t\n};\n//# sourceMappingURL=mdi-DtJ8HsM-.mjs.map\n","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default ? this.$slots.default[0].text.trim() : \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-DqVa7c7G.mjs.map\n","import { A as ActionGlobalMixin } from \"./actionGlobal-DqVa7c7G.mjs\";\nfunction GetParent(context, name) {\n let parent = context.$parent;\n while (parent) {\n if (parent.$options.name === name) {\n return parent;\n }\n parent = parent.$parent;\n }\n}\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n },\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n default: null\n }\n },\n emits: [\n \"click\"\n ],\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n const parent = GetParent(this, \"NcActions\");\n if (parent && parent.closeMenu) {\n parent.closeMenu(false);\n }\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-BMig9Egt.mjs.map\n","import '../assets/NcActionButton-cjcF16FC.css';\nimport { m as mdiChevronRight, a as mdiCheck } from \"./mdi-DtJ8HsM-.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BMig9Egt.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n props: {\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: null\n },\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ``\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the