From b2ef3d0f80fd3944f544d72894e1bc3cb2bc595d Mon Sep 17 00:00:00 2001
From: Ewald <129623145+MajoorWaldi@users.noreply.github.com>
Date: Mon, 20 Apr 2026 23:10:42 +0200
Subject: [PATCH] fix(assets): improve grid reload and scroll behavior
- Adjusting the infinite scroll loading point to 4 card rows from the bottom
- Improving grid state restoration after reloads
- Enhancing the early fetch mechanism for faster initial loads
- Optimizing execution runtime to handle large numbers of assets efficiently
- Updating viewer and run button behavior for better integration with ComfyUI
- Fix various bugs and edge cases
---
CHANGELOG.md | 19 +
js/app/config.js | 7 +-
js/app/i18n.js | 18 +
js/entry.js | 10 +
.../panel/controllers/gridController.js | 18 +-
.../panel/controllers/scopeController.js | 7 +-
js/features/panel/messages/messageCenter.js | 30 +
js/features/panel/panelRuntime.js | 14 +-
js/features/runtime/entryUiRegistration.js | 36 +-
.../runtime/registerRealtimeListeners.js | 6 +-
.../stacks/executionRuntimeController.js | 33 +-
js/features/viewer/floatingViewerUi.js | 2 +-
.../workflowSidebar/sidebarRunButton.js | 33 +-
js/tests/assets_grid_host_state.vitest.mjs | 5 +-
.../execution_runtime_controller.vitest.mjs | 90 +
js/tests/infinite_scroll_upsert.vitest.mjs | 24 +-
js/vue/components/common/TagsEditor.vue | 3 +-
.../components/grid/VirtualAssetGridHost.vue | 34 +-
js/vue/components/grid/assetsGridHostState.js | 40 +-
js/vue/composables/useAssetsQuery.js | 12 +-
js/vue/composables/useGridLoader.js | 135 +-
js/vue/composables/useGridSelection.js | 5 +-
js/vue/composables/useVirtualGrid.js | 66 +-
.../assets/comfyui-majoor-assetsmanager.css | 2 +-
...DwUuqgW7.js => FloatingViewer-96M53tBE.js} | 407 +-
...YMJng.js => LiveStreamTracker-BR6kWxcl.js} | 2 +-
.../{entry-DyjnHjNW.js => entry-Cn6KiPQv.js} | 33569 ++++++++--------
...enInfo-L1PrRwDk.js => genInfo-DPaWrr2W.js} | 2 +-
...7QICZEL.js => model3dRenderer-CxixV6KF.js} | 2 +-
...{scopes-DzaL48jb.js => scopes-zVIngGZC.js} | 2 +-
...ide-D0NSgnSp.js => sideBySide-B--hMG3P.js} | 2 +-
js_dist/entry.js | 2 +-
.../features/geninfo/api_node_extractor.py | 6 +-
.../features/geninfo/prompt_tracer.py | 56 +
mjr_am_backend/features/index/searcher.py | 15 +
mjr_am_backend/features/index/watcher.py | 30 +
mjr_am_backend/routes/handlers/scan.py | 6 +-
nodes.py | 4 +-
tests/features/test_api_node_extractor.py | 355 +
.../features/test_geninfo_parser_impl_more.py | 113 +-
40 files changed, 18233 insertions(+), 16989 deletions(-)
create mode 100644 js/tests/execution_runtime_controller.vitest.mjs
rename js_dist/chunks/{FloatingViewer-DwUuqgW7.js => FloatingViewer-96M53tBE.js} (90%)
rename js_dist/chunks/{LiveStreamTracker-C2pYMJng.js => LiveStreamTracker-BR6kWxcl.js} (99%)
rename js_dist/chunks/{entry-DyjnHjNW.js => entry-Cn6KiPQv.js} (87%)
rename js_dist/chunks/{genInfo-L1PrRwDk.js => genInfo-DPaWrr2W.js} (99%)
rename js_dist/chunks/{model3dRenderer-B7QICZEL.js => model3dRenderer-CxixV6KF.js} (87%)
rename js_dist/chunks/{scopes-DzaL48jb.js => scopes-zVIngGZC.js} (99%)
rename js_dist/chunks/{sideBySide-D0NSgnSp.js => sideBySide-B--hMG3P.js} (99%)
create mode 100644 tests/features/test_api_node_extractor.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b4fe32e8..51c3844b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,25 @@
All notable changes to this project are documented in this file.
+## [Unreleased]
+
+### π Bug Fixes & Performance
+- **Bug Fixes**: Various bug fixes
+- **Performance and Fluidity**: Performance and fluidity improvements
+
+### β¨ Improved
+- **Concatenate Support**: Improved concatenate support for default and custom nodes β by Forsion07
+
+### π API & Integrations
+- **Api Node Helpers**: Add support helpers for Api Node
+- **Ernie Image Helper**: Add support helper for Ernie Image
+
+### βοΈ Settings & Defaults
+- **Live Stream disabled by default**: MFV Live Stream (green button) is now OFF by default; can be re-enabled permanently via Settings β Majoor Assets Manager βΊ Viewer
+- **Live Stream & KSampler Preview configurable by default**: Both toggles can be set as the default state via Settings β Viewer; when Live Stream is active, clicking a Load Image node or a generation end automatically opens the Floating Viewer
+
+---
+
## [2.4.5] - 2026-04-10
### π New Features β Floating Viewer
diff --git a/js/app/config.js b/js/app/config.js
index f5ae1ebf..790c24e9 100644
--- a/js/app/config.js
+++ b/js/app/config.js
@@ -58,12 +58,13 @@ export const APP_DEFAULTS = Object.freeze({
BADGE_DUPLICATE_ALERT_COLOR: "#FF1744",
// Pagination
- DEFAULT_PAGE_SIZE: 200,
+ DEFAULT_PAGE_SIZE: 80,
// Upper bound for a single list request. The backend allows more, but very large
// pages can create huge DOM batches; keep this as a safety cap.
MAX_PAGE_SIZE: 2000,
- // Prefetch next page immediately after initial load for faster scrolling
+ // Prefetch next page after the first paint so initial grid render stays responsive
PREFETCH_NEXT_PAGE: true,
+ PREFETCH_NEXT_PAGE_DELAY_MS: 700,
// Client-side default for search request limit (user-adjustable in settings)
SEARCH_DEFAULT_LIMIT: 500,
INFINITE_SCROLL_ENABLED: true,
@@ -83,7 +84,7 @@ export const APP_DEFAULTS = Object.freeze({
VIEWER_PAUSE_DURING_EXECUTION: true,
FLOATING_VIEWER_PAUSE_DURING_EXECUTION: false,
MFV_SIDEBAR_POSITION: "right",
- MFV_LIVE_DEFAULT: true,
+ MFV_LIVE_DEFAULT: false,
MFV_PREVIEW_DEFAULT: true,
MFV_PREVIEW_METHOD: "taesd",
diff --git a/js/app/i18n.js b/js/app/i18n.js
index 882b7e92..aaa25538 100644
--- a/js/app/i18n.js
+++ b/js/app/i18n.js
@@ -396,6 +396,7 @@ const DICTIONARY = {
"tags.title": "Tags: {tags}",
"tags.label": "Tags",
"tags.addLabel": "Add tag",
+ "tags.remove": "Remove tag",
"tags.suggestions": "Tag suggestions",
"label.messages": "Messages",
"label.readMe": "Read Me",
@@ -639,6 +640,14 @@ const DICTIONARY = {
"msg.shortcuts.section.mfv": "Floating Viewer",
"msg.shortcuts.section.video": "Video Playback",
"msg.category.release": "Release",
+ "msg.whatsNew.title.version246": "New Version 2.4.6",
+ "msg.whatsNew.body.version246":
+ "Version 2.4.6 released: Various bug fixes and performance & fluidity improvements. Improved concatenate support for default and custom nodes (by Forsion07). Added support helpers for Api Node and Ernie Image. Live Stream in Floating Viewer is now disabled by default. See CHANGELOG for details.",
+ "label.changelog": "Changelog",
+ "label.settingsGuide": "Settings Guide",
+ "msg.tip.title.mfvLivePreviewDefaults": "Tip β Floating Viewer Auto-Open",
+ "msg.tip.body.mfvLivePreviewDefaults":
+ "Live Stream (green button in the viewer) and KSampler Preview can be activated by default via Settings \u2192 Majoor Assets Manager \u203a Viewer. When Live Stream is on, clicking a Load Image node or when a generation ends will automatically open the Floating Viewer and display the result. KSampler Preview streams the denoising steps live. Both toggles can be set as the default state so the viewer is always ready.",
"msg.whatsNew.title.version243": "New Version 2.4.3",
"msg.whatsNew.body.version243":
"Version 2.4.3 released: Improved assets metadata parsing, Grid Compare capability in floating viewer up to 4 Assets, ping pong loop in main Viewer player, job id and stack id in DB for better assets management, stack assets generated from same workflow job with same job ID, generated feed feature, lite version of grid in bottom tab. Code refactor for maintainability and various bug fixes. See CHANGELOG for details.",
@@ -1154,6 +1163,7 @@ const DICTIONARY = {
"tags.title": "Tags : {tags}",
"tags.label": "Tags",
"tags.addLabel": "Ajouter un tag",
+ "tags.remove": "Supprimer le tag",
"tags.suggestions": "Suggestions de tags",
"label.thisFile": "ce fichier",
"label.messages": "Messages",
@@ -1180,6 +1190,14 @@ const DICTIONARY = {
"msg.shortcuts.section.mfv": "Floating Viewer",
"msg.shortcuts.section.video": "Lecture video",
"msg.category.release": "Version",
+ "msg.whatsNew.title.version246": "Nouvelle Version 2.4.6",
+ "msg.whatsNew.body.version246":
+ "Version 2.4.6 publiee : divers correctifs de bugs et ameliorations de performances et fluidite. Support concatenate ameliore pour les nodes par defaut et custom (par Forsion07). Ajout des helpers pour Api Node et Ernie Image. Le Live Stream du Floating Viewer est desormais desactive par defaut. Voir CHANGELOG pour details.",
+ "label.changelog": "Changelog",
+ "label.settingsGuide": "Guide des param\u00e8tres",
+ "msg.tip.title.mfvLivePreviewDefaults": "Conseil β Ouverture automatique du Viewer",
+ "msg.tip.body.mfvLivePreviewDefaults":
+ "Le Live Stream (bouton vert dans le viewer) et la pr\u00e9visualisation KSampler peuvent \u00eatre activ\u00e9s par d\u00e9faut via Param\u00e8tres \u2192 Majoor Assets Manager \u203a Viewer. Lorsque le Live Stream est actif, cliquer sur un node Load Image ou la fin d'une g\u00e9n\u00e9ration ouvrira automatiquement le Floating Viewer et affichera le r\u00e9sultat. La pr\u00e9visualisation KSampler diffuse les \u00e9tapes de d\u00e9bruitage en direct. Les deux options peuvent \u00eatre d\u00e9finies comme \u00e9tat par d\u00e9faut pour que le viewer soit toujours pr\u00eat.",
"msg.whatsNew.title.version243": "Nouvelle Version 2.4.3",
"msg.whatsNew.body.version243":
"Version 2.4.3 publiee : analyse des metadonnees des assets amelioree, capacite Grid Compare dans le floating viewer jusqu'a 4 Assets, boucle ping pong dans le Viewer principal, job id et stack id dans la BDD pour une meilleure gestion des assets, empilement des assets generes depuis le meme workflow avec le meme job ID, fonctionnalite de feed genere, version legere de la grille dans l'onglet bottom. Refactorisation du code pour la maintenabilite et divers correctifs de bugs. Voir CHANGELOG pour details.",
diff --git a/js/entry.js b/js/entry.js
index 63827bf5..5942dffb 100644
--- a/js/entry.js
+++ b/js/entry.js
@@ -59,6 +59,7 @@ import {
mountGlobalRuntime,
registerAssetsSidebar,
registerNativeCommands,
+ startEarlyFetch,
teardownTopBarMfvButton,
teardownGeneratedFeed,
teardownAssetsSidebar,
@@ -363,6 +364,15 @@ app.registerExtension({
void checkMajoorVersion();
}, 5000);
+ // 8b. Proactive early fetch β start the first assets page in the background
+ // so the data is ready (or already in-flight) when the user opens the
+ // sidebar. A 4-second delay lets ComfyUI finish its own startup work
+ // and the backend DB warm-up to settle before we hit /mjr/am/list.
+ // startEarlyFetch() is a no-op when ComfyUI is executing a prompt.
+ setTimeout(() => {
+ startEarlyFetch();
+ }, 4000);
+
// 9. WebSocket / realtime listeners.
void setupApiListeners(runtimeApp, executionRuntime).catch((e) =>
reportError(e, "entry.api_setup"),
diff --git a/js/features/panel/controllers/gridController.js b/js/features/panel/controllers/gridController.js
index 2bf25ca5..78e5cdf1 100644
--- a/js/features/panel/controllers/gridController.js
+++ b/js/features/panel/controllers/gridController.js
@@ -295,19 +295,14 @@ export function createGridController({
};
const runReloadOnce = async (reloadOptions = {}) => {
- // Expose the current query on the container so external listeners (ComfyUI executed events)
- // can decide whether to do incremental upserts or avoid disrupting an active search.
- try {
- gridContainer.dataset.mjrQuery = String(getQuery?.() ?? "*") || "*";
- } catch (e) {
- console.debug?.(e);
- }
const prevViewScope = String(gridContainer.dataset.mjrViewScope || "")
.trim()
.toLowerCase();
const nextViewScope = String(read("viewScope", state?.viewScope || "") || "")
.trim()
.toLowerCase();
+ // Write scope and filter state to the container dataset BEFORE reading
+ // the query so that fetchPage sees the finalized scope context.
gridContainer.dataset.mjrScope = read("scope", "output");
gridContainer.dataset.mjrViewScope = nextViewScope;
gridContainer.dataset.mjrCustomRootId = read("customRootId", "") || "";
@@ -328,6 +323,15 @@ export function createGridController({
gridContainer.dataset.mjrFilterDateExact = read("dateExactFilter", "") || "";
gridContainer.dataset.mjrSort = read("sort", "mtime_desc") || "mtime_desc";
gridContainer.dataset.mjrCollectionId = read("collectionId", "") || "";
+ gridContainer.dataset.mjrSemanticMode = _isSemanticMode() ? "1" : "0";
+ // Expose the current query on the container so external listeners (ComfyUI executed events)
+ // can decide whether to do incremental upserts or avoid disrupting an active search.
+ // Written after scope so that fetchPage sees the finalized context.
+ try {
+ gridContainer.dataset.mjrQuery = String(getQuery?.() ?? "*") || "*";
+ } catch (e) {
+ console.debug?.(e);
+ }
gridContainer.dataset.mjrGroupStacks =
APP_CONFIG.EXECUTION_GROUPING_ENABLED &&
(read("scope", "output") === "output" || read("scope", "output") === "all")
diff --git a/js/features/panel/controllers/scopeController.js b/js/features/panel/controllers/scopeController.js
index b990c54a..9465ca29 100644
--- a/js/features/panel/controllers/scopeController.js
+++ b/js/features/panel/controllers/scopeController.js
@@ -82,6 +82,9 @@ export function createScopeController({
const clearSimilarScope = async ({ reload = true } = {}) => {
const hadSimilar = hasSimilarResults();
resetSimilarScope();
+ // Clear stale search query when exiting similar view to avoid
+ // applying it to the scope the user returns to.
+ writeState("searchQuery", "");
setActiveTabStyles();
try {
onChanged?.();
@@ -124,9 +127,11 @@ export function createScopeController({
return;
}
- // Switching scope exits any active collection view.
+ // Switching scope exits any active collection view and clears
+ // the search query so the new scope starts with a clean browse.
writeState("collectionId", "");
writeState("collectionName", "");
+ writeState("searchQuery", "");
resetSimilarScope();
const nextScope =
diff --git a/js/features/panel/messages/messageCenter.js b/js/features/panel/messages/messageCenter.js
index e3f81e7f..478a2f4a 100644
--- a/js/features/panel/messages/messageCenter.js
+++ b/js/features/panel/messages/messageCenter.js
@@ -171,6 +171,36 @@ const BUILTIN_PANEL_MESSAGES = Object.freeze([
body: "A new Viewer button now appears in the ComfyUI top action bar. Click it to toggle the Majoor Floating Viewer on or off without opening the sidebar. The button highlights when the viewer is active and updates in real time.",
bodyKey: "msg.whatsNew.body.topbarMfvButton",
},
+ {
+ id: "whats-new-2026-04-20-version-2-4-6",
+ title: "New Version 2.4.6",
+ titleKey: "msg.whatsNew.title.version246",
+ emoji: "π",
+ category: "Release",
+ categoryKey: "msg.category.release",
+ level: "success",
+ createdAt: Date.parse("2026-04-20T09:00:00Z"),
+ body: "Version 2.4.6 released: Various bug fixes and performance & fluidity improvements. Improved concatenate support for default and custom nodes (by Forsion07). Added support helpers for Api Node and Ernie Image. Live Stream in Floating Viewer is now disabled by default. See CHANGELOG for details.",
+ bodyKey: "msg.whatsNew.body.version246",
+ actionLabel: "Changelog",
+ actionLabelKey: "label.changelog",
+ actionUrl: "CHANGELOG.md",
+ },
+ {
+ id: "tip-2026-04-20-mfv-live-stream-preview-defaults",
+ title: "Tip β Floating Viewer Auto-Open",
+ titleKey: "msg.tip.title.mfvLivePreviewDefaults",
+ emoji: "π‘",
+ category: "Information",
+ categoryKey: "msg.category.information",
+ level: "info",
+ createdAt: Date.parse("2026-04-20T10:00:00Z"),
+ body: "Live Stream (green button in the viewer) and KSampler Preview can be activated by default via Settings β Majoor Assets Manager βΊ Viewer. When Live Stream is on, clicking a Load Image node or when a generation ends will automatically open the Floating Viewer and display the result. KSampler Preview streams the denoising steps live. Both toggles can be set as the default state so the viewer is always ready.",
+ bodyKey: "msg.tip.body.mfvLivePreviewDefaults",
+ actionLabel: "Settings Guide",
+ actionLabelKey: "label.settingsGuide",
+ actionUrl: "docs/SETTINGS_CONFIGURATION.md",
+ },
]);
const BUILTIN_MESSAGE_IDS = new Set(
BUILTIN_PANEL_MESSAGES.map((msg) => String(msg?.id || "").trim()).filter(Boolean),
diff --git a/js/features/panel/panelRuntime.js b/js/features/panel/panelRuntime.js
index f115e645..62f0d6bd 100644
--- a/js/features/panel/panelRuntime.js
+++ b/js/features/panel/panelRuntime.js
@@ -800,18 +800,26 @@ async function _mountPanelRuntimeImpl(container, { useComfyThemeUI = true, exter
signal: panelLifecycleAC?.signal,
});
let raf = null;
+ let debounceTimer = null;
const schedule = () => {
- if (raf) cancelAnimationFrame(raf);
- raf = requestAnimationFrame(() => { raf = null; notifyContextChanged(); });
+ // Debounce MutationObserver callbacks during pagination bursts
+ // (many cards inserted rapidly). Coalesce to a single update.
+ if (debounceTimer) clearTimeout(debounceTimer);
+ debounceTimer = setTimeout(() => {
+ debounceTimer = null;
+ if (raf) cancelAnimationFrame(raf);
+ raf = requestAnimationFrame(() => { raf = null; notifyContextChanged(); });
+ }, 250);
};
const mo = new MutationObserver(() => schedule());
- mo.observe(gridContainer, { childList: true, subtree: true });
+ mo.observe(gridContainer, { childList: true });
gridContainer._mjrSummaryBarObserver = mo;
registerSummaryDispose(() => {
try { gridContainer.removeEventListener("mjr:grid-stats", onStats); }
catch (e) { console.debug?.(e); }
try { window.removeEventListener?.("mjr-settings-changed", onStats); }
catch (e) { console.debug?.(e); }
+ try { if (debounceTimer) clearTimeout(debounceTimer); } catch (e) { console.debug?.(e); }
try { mo.disconnect(); } catch (e) { console.debug?.(e); }
});
}
diff --git a/js/features/runtime/entryUiRegistration.js b/js/features/runtime/entryUiRegistration.js
index 4338cfad..b90163b8 100644
--- a/js/features/runtime/entryUiRegistration.js
+++ b/js/features/runtime/entryUiRegistration.js
@@ -45,8 +45,22 @@ const FEED_MOUNT_KEY = "_mjrFeedVueApp";
// This prefetched data is consumed by useGridLoader when it initializes.
let _earlyFetchPromise = null;
let _earlyFetchKey = null;
-const EARLY_FETCH_TTL_MS = 5000; // Prefetch valid for 5 seconds
+// 15 seconds β wide enough to cover slow ComfyUI startups and delayed sidebar
+// opens while still invalidating stale data before it becomes misleading.
+const EARLY_FETCH_TTL_MS = 15000;
let _earlyFetchTimestamp = 0;
+let _earlyFetchAC = null;
+
+// Abort the in-flight early fetch on page unload so it doesn't appear as an
+// epoch-1 cancelled request in the next session's network log.
+try {
+ window.addEventListener("pagehide", () => {
+ try { _earlyFetchAC?.abort?.(); } catch (e) { /* ignore */ }
+ _earlyFetchAC = null;
+ _earlyFetchPromise = null;
+ _earlyFetchKey = null;
+ }, { once: true });
+} catch (e) { /* ignore */ }
function isExecutionBusy() {
try {
@@ -72,21 +86,38 @@ function startEarlyFetch() {
_earlyFetchTimestamp = now;
try {
+ // Create a dedicated AbortController so we can cancel this request
+ // cleanly on page unload (pagehide) instead of letting the browser
+ // kill it mid-flight and produce epoch-1 entries in the next session.
+ try { _earlyFetchAC?.abort?.(); } catch (e) { /* ignore */ }
+ _earlyFetchAC = typeof AbortController !== "undefined" ? new AbortController() : null;
const url = buildListURL({
query: "*",
limit: APP_CONFIG.DEFAULT_PAGE_SIZE || 200,
offset: 0,
scope: "output",
sort: "mtime_desc",
+ // Include total so useGridLoader can set state.total correctly.
+ // Without it the fallback was earlyAssets.length (page size),
+ // which caused state.done=true after the first page and blocked
+ // all subsequent pagination / infinite scroll.
+ includeTotal: true,
});
- _earlyFetchPromise = get(url).catch(() => null);
+ _earlyFetchPromise = get(url, _earlyFetchAC ? { signal: _earlyFetchAC.signal } : {}).catch(() => null);
} catch {
_earlyFetchPromise = null;
+ _earlyFetchAC = null;
}
return _earlyFetchPromise;
}
+/**
+ * Start the early fetch from an external caller (e.g. entry.js setup).
+ * Safe to call multiple times β returns existing promise if still valid.
+ */
+export { startEarlyFetch };
+
/**
* Consume the early fetch result if available and matching.
* Called by useGridLoader on first load.
@@ -105,6 +136,7 @@ export function consumeEarlyFetch(key = "output:*:mtime_desc") {
// Clear after consumption to avoid stale reuse
_earlyFetchPromise = null;
_earlyFetchKey = null;
+ _earlyFetchAC = null;
return promise;
}
diff --git a/js/features/runtime/registerRealtimeListeners.js b/js/features/runtime/registerRealtimeListeners.js
index c5d68b2d..c30da126 100644
--- a/js/features/runtime/registerRealtimeListeners.js
+++ b/js/features/runtime/registerRealtimeListeners.js
@@ -400,7 +400,11 @@ export async function registerRealtimeListeners({
if (executionRuntime.isRenderableLiveAsset(detail)) {
pushGeneratedAsset(detail);
}
- upsertLiveAssetIntoGrid(grid, detail);
+ // Use immediate flush for updates to assets already visible in
+ // the grid (enrichment / vector indexing results). This avoids
+ // a 200 ms debounce window during which the card shows stale
+ // metadata or temporarily disappears then reappears.
+ upsertLiveAssetIntoGrid(grid, detail, { immediate: true });
}
} catch (error) {
reportError(error, "entry.asset_updated");
diff --git a/js/features/stacks/executionRuntimeController.js b/js/features/stacks/executionRuntimeController.js
index 180953ac..7b3f10fc 100644
--- a/js/features/stacks/executionRuntimeController.js
+++ b/js/features/stacks/executionRuntimeController.js
@@ -20,6 +20,7 @@ const EXECUTION_START_TTL_MS = 10 * 60 * 1000;
const EXECUTION_STARTS_MAX = 500;
const ORPHAN_GENERATION_RETRY_MAX_ATTEMPTS = 6;
const ORPHAN_GENERATION_ABSOLUTE_TIMEOUT_MS = 30_000;
+const POST_EXECUTION_BUFFER_FLUSH_FAST_MS = 500;
export function createExecutionRuntimeController({
post,
@@ -202,7 +203,7 @@ export function createExecutionRuntimeController({
}
function schedulePostExecutionWork(work, delayMs = executionIdleGraceMs) {
- const waitMs = Math.max(0, Number(delayMs) || 0, executionIdleGraceMs);
+ const waitMs = Math.max(0, Number(delayMs) || 0);
clearPostExecutionWorkTimer();
postExecutionWorkTimer = setTimeout(() => {
postExecutionWorkTimer = null;
@@ -420,6 +421,18 @@ export function createExecutionRuntimeController({
});
}
+ function hasBufferedGenerationFiles(jobId) {
+ const promptId = String(jobId || "").trim();
+ if (!promptId) return false;
+ try {
+ const bucket = executionAssetBuffer?._jobs?.get?.(promptId);
+ return !!bucket && typeof bucket.size === "number" && bucket.size > 0;
+ } catch (e) {
+ console.debug?.(e);
+ return false;
+ }
+ }
+
function prepareLiveAssetEvent(detail) {
if (!isExecutionGroupingEnabled()) {
return { detail, jobId: "", defer: false };
@@ -485,7 +498,18 @@ export function createExecutionRuntimeController({
} catch (e) {
console.debug?.(e);
}
- bufferGenerationIndex(files, { prompt_id: promptId });
+ const immediateFiles = files.length > 0 ? [files[0]] : [];
+ const bufferedFiles = files.length > 1 ? files.slice(1) : [];
+
+ // Prioritize the first renderable asset from each executed payload so the
+ // placeholder is replaced by a real card almost immediately, while the
+ // remaining outputs continue through the grouped post-execution flow.
+ if (immediateFiles.length > 0) {
+ scheduleGenerationIndex(immediateFiles, 1, { prompt_id: promptId });
+ }
+ if (bufferedFiles.length > 0) {
+ bufferGenerationIndex(bufferedFiles, { prompt_id: promptId });
+ }
}
function handleExecutionStart(event, { setCurrentJobId }) {
@@ -545,12 +569,15 @@ export function createExecutionRuntimeController({
if (policy.usePostExecutionScan) {
schedulePostExecutionScan(executionIdleGraceMs);
} else {
+ const flushDelayMs = hasBufferedGenerationFiles(promptId)
+ ? Math.min(executionIdleGraceMs, POST_EXECUTION_BUFFER_FLUSH_FAST_MS)
+ : executionIdleGraceMs;
schedulePostExecutionWork(() => {
if (promptId) {
flushOrphanGenerationEntries(promptId);
}
flushBufferedGenerationIndex(promptId);
- }, executionIdleGraceMs);
+ }, flushDelayMs);
}
}
}
diff --git a/js/features/viewer/floatingViewerUi.js b/js/features/viewer/floatingViewerUi.js
index f90f858c..e31b0088 100644
--- a/js/features/viewer/floatingViewerUi.js
+++ b/js/features/viewer/floatingViewerUi.js
@@ -75,7 +75,7 @@ export function buildFloatingViewerHeader(viewer) {
const title = document.createElement("span");
title.className = "mjr-mfv-header-title";
title.id = viewer._titleId;
- title.textContent = "Majoor Viewer Lite";
+ title.textContent = "γ½οΈ Majoor Viewer Lite";
const closeBtn = document.createElement("button");
viewer._closeBtn = closeBtn;
diff --git a/js/features/viewer/workflowSidebar/sidebarRunButton.js b/js/features/viewer/workflowSidebar/sidebarRunButton.js
index 570cda74..c5df82c2 100644
--- a/js/features/viewer/workflowSidebar/sidebarRunButton.js
+++ b/js/features/viewer/workflowSidebar/sidebarRunButton.js
@@ -150,7 +150,9 @@ export function createRunButton() {
async function stopCurrentGeneration() {
const app = getComfyApp();
- const api = getComfyApi(app);
+ // Prefer live app.api for the same auth-context reasons as queueCurrentPrompt.
+ const liveApi = (app?.api && typeof app.api.interrupt === "function") ? app.api : null;
+ const api = liveApi ?? getComfyApi(app);
if (api && typeof api.interrupt === "function") {
await api.interrupt();
@@ -163,7 +165,7 @@ export function createRunButton() {
return { tracked: true };
}
- const resp = await fetch("/interrupt", { method: "POST" });
+ const resp = await fetch("/interrupt", { method: "POST", credentials: "include" });
if (!resp.ok) throw new Error(`POST /interrupt failed (${resp.status})`);
return { tracked: false };
}
@@ -295,7 +297,15 @@ function resolveClientId(api, app) {
/**
* Queue the current workflow for execution.
- * Tries, in order: api.queuePrompt -> POST /prompt.
+ *
+ * Tries, in order:
+ * 1. app.api.queuePrompt β live reference on the app object (always has the
+ * current auth session, same source as the native ComfyUI Queue button).
+ * 2. api.queuePrompt β broader detection via getComfyApi() (window.api, β¦).
+ * 3. api.fetchApi β direct HTTP via ComfyUI's authenticated fetch helper.
+ * 4. app.queuePrompt(0) β native ComfyUI app-level path; handles auth tokens
+ * and CSRF checks natively; no preview-method enrichment on this path.
+ * 5. fetch (last resort) β raw fetch with credentials:'include' for cookie auth.
*/
async function queueCurrentPrompt() {
const app = getComfyApp();
@@ -306,7 +316,12 @@ async function queueCurrentPrompt() {
: null;
if (!promptData?.output) throw new Error("graphToPrompt returned empty output");
- const api = getComfyApi(app);
+ // Prefer the live app.api reference β this matches the native Queue button's
+ // auth context and avoids stale cached references when ComfyUI refreshes its
+ // auth state (e.g. after user logs in or session is renewed).
+ const liveApi = (app?.api && typeof app.api.queuePrompt === "function") ? app.api : null;
+ const api = liveApi ?? getComfyApi(app);
+
if (api && typeof api.queuePrompt === "function") {
await api.queuePrompt(0, enrichPromptDataForMfv(promptData));
return { tracked: true };
@@ -326,12 +341,20 @@ async function queueCurrentPrompt() {
return { tracked: true };
}
+ // Native app-level path: uses ComfyUI's own auth handling (same as the
+ // native Queue button). No preview-method enrichment on this fallback.
+ if (typeof app.queuePrompt === "function") {
+ await app.queuePrompt(0);
+ return { tracked: true };
+ }
+
const resp = await fetch("/prompt", {
method: "POST",
+ credentials: "include",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(
buildPromptRequestBody(promptData, {
- clientId: resolveClientId(api, app),
+ clientId: resolveClientId(null, app),
}),
),
});
diff --git a/js/tests/assets_grid_host_state.vitest.mjs b/js/tests/assets_grid_host_state.vitest.mjs
index 9eab1078..faef38d3 100644
--- a/js/tests/assets_grid_host_state.vitest.mjs
+++ b/js/tests/assets_grid_host_state.vitest.mjs
@@ -100,7 +100,10 @@ describe("assetsGridHostState", () => {
expect(gridWrapper.scrollTop).toBe(33);
expect(gridContainer._mjrSetSelection).toHaveBeenCalledWith(["asset-7"], "asset-7");
- expect(gridContainer._mjrScrollToAssetId).not.toHaveBeenCalled();
+ // scrollToAssetId is now always called so the selected card is scrolled into
+ // view even when a saved scrollTop was restored (align:"auto" keeps the view
+ // stable when the card is already visible).
+ expect(gridContainer._mjrScrollToAssetId).toHaveBeenCalledWith("asset-7");
expect(onRestoreSidebar).toHaveBeenCalledTimes(1);
});
});
diff --git a/js/tests/execution_runtime_controller.vitest.mjs b/js/tests/execution_runtime_controller.vitest.mjs
new file mode 100644
index 00000000..1f0d02e6
--- /dev/null
+++ b/js/tests/execution_runtime_controller.vitest.mjs
@@ -0,0 +1,90 @@
+import { describe, expect, it, vi, beforeEach, afterEach } from "vitest";
+
+import { createExecutionRuntimeController } from "../features/stacks/executionRuntimeController.js";
+
+describe("createExecutionRuntimeController", () => {
+ beforeEach(() => {
+ vi.useFakeTimers();
+ if (typeof globalThis.CustomEvent === "undefined") {
+ globalThis.CustomEvent = class CustomEvent {
+ constructor(type, init = {}) {
+ this.type = type;
+ this.detail = init.detail;
+ }
+ };
+ }
+ if (typeof globalThis.window === "undefined") {
+ globalThis.window = {
+ dispatchEvent: () => true,
+ };
+ }
+ });
+
+ afterEach(() => {
+ vi.useRealTimers();
+ });
+
+ it("indexes the first executed output immediately and buffers the rest until execution end", async () => {
+ const post = vi.fn(async () => ({ ok: true, data: {} }));
+ const controller = createExecutionRuntimeController({
+ post,
+ ENDPOINTS: {
+ INDEX_FILES: "/index-files",
+ STACKS_AUTO_STACK: "/stacks/auto-stack",
+ SCAN: "/scan",
+ },
+ reportError: () => {},
+ extractOutputFiles: (output) => output,
+ ensureExecutionRuntime: () => ({ active_prompt_id: "job-1" }),
+ emitRuntimeStatus: () => {},
+ refreshGeneratedFeedHosts: () => {},
+ getActiveGridContainer: () => null,
+ });
+
+ controller.handleExecutionStart({ detail: { prompt_id: "job-1", timestamp: Date.now() } }, {
+ setCurrentJobId: () => {},
+ });
+
+ controller.handleExecutedEvent(
+ {
+ detail: {
+ prompt_id: "job-1",
+ output: [
+ { filename: "first.png", subfolder: "out", type: "output" },
+ { filename: "second.png", subfolder: "out", type: "output" },
+ ],
+ },
+ },
+ { appRef: {} },
+ );
+
+ expect(post).toHaveBeenCalledTimes(1);
+ expect(post).toHaveBeenNthCalledWith(
+ 1,
+ "/index-files",
+ expect.objectContaining({
+ origin: "generation",
+ prompt_id: "job-1",
+ files: [expect.objectContaining({ filename: "first.png" })],
+ }),
+ );
+
+ controller.handleExecutionEnd(
+ { type: "execution_success", detail: { prompt_id: "job-1" } },
+ { setCurrentJobId: () => {} },
+ );
+
+ await vi.advanceTimersByTimeAsync(500);
+
+ expect(post).toHaveBeenCalledTimes(2);
+ expect(post).toHaveBeenNthCalledWith(
+ 2,
+ "/index-files",
+ expect.objectContaining({
+ origin: "generation",
+ prompt_id: "job-1",
+ files: [expect.objectContaining({ filename: "second.png" })],
+ }),
+ );
+ });
+});
diff --git a/js/tests/infinite_scroll_upsert.vitest.mjs b/js/tests/infinite_scroll_upsert.vitest.mjs
index d4fa80eb..058e875f 100644
--- a/js/tests/infinite_scroll_upsert.vitest.mjs
+++ b/js/tests/infinite_scroll_upsert.vitest.mjs
@@ -48,7 +48,7 @@ describe("InfiniteScroll upsert", () => {
).toBe(16);
});
- it("only skips total counts after the first page for output scope", async () => {
+ it("skips total counts for default output browse and later output pages only", async () => {
const buildListURL = vi.fn(() => "/mjr/am/list");
const deps = {
sanitizeQuery: (value) => value,
@@ -61,19 +61,25 @@ describe("InfiniteScroll upsert", () => {
};
const cases = [
- ["output", 0, true],
- ["output", 100, false],
- ["all", 100, true],
- ["input", 100, true],
- ["custom", 100, true],
+ [{ dataset: { mjrScope: "output", mjrSort: "mtime_desc" } }, "*", 0, false],
+ [{ dataset: { mjrScope: "output", mjrSort: "mtime_desc" } }, "*", 100, false],
+ [{ dataset: { mjrScope: "output", mjrSort: "mtime_desc" } }, "portrait", 0, true],
+ [{ dataset: { mjrScope: "output", mjrSort: "mtime_desc", mjrFilterMinRating: "3" } }, "*", 0, true],
+ [{ dataset: { mjrScope: "all", mjrSort: "mtime_desc" } }, "*", 100, true],
+ [{ dataset: { mjrScope: "input", mjrSort: "mtime_desc" } }, "*", 100, true],
+ [{ dataset: { mjrScope: "custom", mjrSort: "mtime_desc" } }, "*", 100, true],
];
- for (const [scope, offset, includeTotal] of cases) {
- await fetchPage({ dataset: { mjrScope: scope } }, "*", 100, offset, deps, {
+ for (const [gridContainer, query, offset, includeTotal] of cases) {
+ await fetchPage(gridContainer, query, 100, offset, deps, {
requestId: 1,
});
const lastCall = buildListURL.mock.calls[buildListURL.mock.calls.length - 1]?.[0];
- expect(lastCall).toMatchObject({ scope, offset, includeTotal });
+ expect(lastCall).toMatchObject({
+ scope: gridContainer.dataset.mjrScope,
+ offset,
+ includeTotal,
+ });
}
});
diff --git a/js/vue/components/common/TagsEditor.vue b/js/vue/components/common/TagsEditor.vue
index 048cbf20..bb28f349 100644
--- a/js/vue/components/common/TagsEditor.vue
+++ b/js/vue/components/common/TagsEditor.vue
@@ -123,6 +123,7 @@ let lastSaved = [...initialTags];
const retryDelay = (attemptIndex) => Math.min(100 * 2 ** Math.max(0, attemptIndex - 1), 2000);
const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
+const handleInputBlur = () => setTimeout(() => (showDropdown.value = false), 200);
const filteredSuggestions = computed(() => {
const query = inputValue.value.toLowerCase().trim();
@@ -420,7 +421,7 @@ watch(
@focus="showDropdown = inputValue.length > 0"
@input="showDropdown = inputValue.length > 0"
@keydown="handleInputKeydown"
- @blur="setTimeout(() => (showDropdown = false), 200)"
+ @blur="handleInputBlur"
/>
state.assets,
- async () => {
+ async (newAssets) => {
+ if (!Array.isArray(newAssets) || newAssets.length === 0) {
+ const gc = gridContainerRef.value;
+ if (gc?._mjrStackMembersCache) gc._mjrStackMembersCache.clear();
+ }
await nextTick();
syncAllRenderedDuplicateCards();
},
@@ -1025,8 +1029,29 @@ function handleCardDblclick(asset) {
let scrollCleanup = null;
+function _forceVirtualizerMeasure() {
+ updateHostWidth();
+ try {
+ rowVirtualizer.value?.measure?.();
+ } catch (e) {
+ console.debug?.(e);
+ }
+}
+
function handleKeepAliveAttached() {
- if (!isGridVisible()) return;
+ _forceVirtualizerMeasure();
+ if (!isGridVisible()) {
+ // Le layout du nouveau container n'est pas encore calculΓ© au moment
+ // oΓΉ keepalive-attached est dispatchΓ©. On reporte sur le prochain
+ // cycle de rendu pour que le navigateur ait fini la mise en page.
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ _forceVirtualizerMeasure();
+ void maybeFillViewport();
+ });
+ });
+ return;
+ }
void maybeFillViewport();
}
@@ -1037,7 +1062,10 @@ function bindInfiniteScroll(element) {
const remaining =
Number(element.scrollHeight || 0) -
(Number(element.scrollTop || 0) + Number(element.clientHeight || 0));
- if (remaining <= Math.max(120, estimateRowHeight.value * 2)) {
+ // Start loading the next page when the user is 4 card-rows from the bottom
+ // (was 2). This hides API latency and prevents the visible "waiting at
+ // the bottom" freeze.
+ if (remaining <= Math.max(600, estimateRowHeight.value * 4)) {
void loader.loadNextPage();
}
};
diff --git a/js/vue/components/grid/assetsGridHostState.js b/js/vue/components/grid/assetsGridHostState.js
index 741847ae..a2ca2b82 100644
--- a/js/vue/components/grid/assetsGridHostState.js
+++ b/js/vue/components/grid/assetsGridHostState.js
@@ -234,22 +234,32 @@ export async function restoreGridUiState({
console.debug?.(e);
}
- if (activeId && scrollTop === 0) {
- try {
- if (typeof gridContainer?._mjrScrollToAssetId === "function") {
- gridContainer._mjrScrollToAssetId(activeId);
- } else {
- const activeCard = gridContainer.querySelector?.(
- `.mjr-asset-card[data-mjr-asset-id="${safeEscapeAttr(activeId)}"]`,
- );
- activeCard?.scrollIntoView?.({
- block: "nearest",
- behavior: "instant",
- });
+ // Always scroll to the active card so the selection is visible regardless of
+ // the saved scroll position. Using align:"auto" (default) means the virtualizer
+ // will not move if the card is already in view, so this is side-effect-free
+ // when the saved scrollTop already shows the right area.
+ if (activeId) {
+ const scrollToSelection = () => {
+ try {
+ if (typeof gridContainer?._mjrScrollToAssetId === "function") {
+ gridContainer._mjrScrollToAssetId(activeId);
+ } else {
+ const activeCard = gridContainer.querySelector?.(
+ `.mjr-asset-card[data-mjr-asset-id="${safeEscapeAttr(activeId)}"]`,
+ );
+ activeCard?.scrollIntoView?.({
+ block: "nearest",
+ behavior: "instant",
+ });
+ }
+ } catch (e) {
+ console.debug?.(e);
}
- } catch (e) {
- console.debug?.(e);
- }
+ };
+ scrollToSelection();
+ // Second pass: handles fresh loads where Vue needs extra time to render items
+ // into the virtualizer before scrollToIndex can locate the correct row.
+ setTimeout(scrollToSelection, 160);
}
}
diff --git a/js/vue/composables/useAssetsQuery.js b/js/vue/composables/useAssetsQuery.js
index f5127eec..5d9df50a 100644
--- a/js/vue/composables/useAssetsQuery.js
+++ b/js/vue/composables/useAssetsQuery.js
@@ -122,8 +122,12 @@ export function createAssetsQueryController({
try {
const currentScrollTop = Number(readScrollTop() || 0) || 0;
const anchorScrollTop = Number(anchor?.scrollTop || 0) || 0;
- const userScrolledDuringReload = Math.abs(currentScrollTop - anchorScrollTop) > 8;
- if (userScrolledDuringReload) {
+ // Only skip restore if user actively scrolled DOWN past the original
+ // position during the reload. A drop in scrollTop (currentScrollTop <
+ // anchorScrollTop) means the reload itself reset the scroll β we must
+ // restore in that case to avoid losing the user's position.
+ const userScrolledPastAnchor = currentScrollTop > anchorScrollTop + 8;
+ if (userScrolledPastAnchor) {
continue;
}
await restoreAnchor(gridContainer, anchor);
@@ -291,7 +295,7 @@ export function createAssetsQueryController({
const needsFallbackReload =
hasNewIndexEnd && !hasNewScan && !hasNewTotal && !upsertHandledRecently;
- if (totalExplainedByRecentUpserts && !hasNewScan) {
+ if (totalExplainedByRecentUpserts) {
lastKnownScan = counters.last_scan_end;
lastKnownIndexEnd = counters.last_index_end;
try {
@@ -306,7 +310,7 @@ export function createAssetsQueryController({
lastKnownIndexEnd = counters.last_index_end;
return;
}
- if (upsertHandledRecently && !hasNewScan) return;
+ if (upsertHandledRecently) return;
if (!hasNewScan && !hasNewTotal && !needsFallbackReload) return;
if (!syncVisibilityState()) return;
diff --git a/js/vue/composables/useGridLoader.js b/js/vue/composables/useGridLoader.js
index 3e1b0532..8cb3eee7 100644
--- a/js/vue/composables/useGridLoader.js
+++ b/js/vue/composables/useGridLoader.js
@@ -98,6 +98,32 @@ function normalizeSnapshotPart(value, fallback = "") {
}
}
+function getStableRealtimeAssetKey(asset) {
+ if (!asset || typeof asset !== "object") return "";
+ if (asset.id != null && String(asset.id).trim()) {
+ return `id:${String(asset.id).trim()}`;
+ }
+ const type = String(asset?.type || asset?.source || "output")
+ .trim()
+ .toLowerCase();
+ const rootId = String(pickRootId(asset) || "")
+ .trim()
+ .toLowerCase();
+ const subfolder = String(asset?.subfolder || "")
+ .trim()
+ .toLowerCase();
+ const filename = String(asset?.filename || "")
+ .trim()
+ .toLowerCase();
+ if (filename) return `${type}|${rootId}|${subfolder}|${filename}`;
+ const filepath = String(
+ asset?.filepath || asset?.path || asset?.fullpath || asset?.full_path || "",
+ )
+ .trim()
+ .toLowerCase();
+ return filepath ? `${type}|${rootId}|path|${filepath}` : "";
+}
+
export function buildGridSnapshotKey(parts = {}) {
return JSON.stringify({
scope: normalizeSnapshotPart(parts.scope || "output", "output"),
@@ -120,6 +146,7 @@ export function buildGridSnapshotKey(parts = {}) {
dateRange: normalizeSnapshotPart(parts.dateRange || ""),
dateExact: normalizeSnapshotPart(parts.dateExact || ""),
sort: normalizeSnapshotPart(parts.sort || "mtime_desc", "mtime_desc"),
+ semanticMode: normalizeSnapshotPart(parts.semanticMode ? "1" : ""),
});
}
@@ -355,6 +382,7 @@ export function useGridLoader({
} = {}) {
let deferVisualResetUntilNextPage = false;
let deferredExecutionReload = null;
+ let prefetchTimer = null;
function getGridContainer() {
return resolveElement(gridContainerRef);
@@ -383,6 +411,7 @@ export function useGridLoader({
dateRange: gridContainer?.dataset?.mjrFilterDateRange || "",
dateExact: gridContainer?.dataset?.mjrFilterDateExact || "",
sort: gridContainer?.dataset?.mjrSort || "mtime_desc",
+ semanticMode: gridContainer?.dataset?.mjrSemanticMode === "1",
};
}
@@ -432,6 +461,34 @@ export function useGridLoader({
deferredExecutionReload = null;
}
+ function clearPrefetchTimer() {
+ try {
+ if (prefetchTimer) {
+ clearTimeout(prefetchTimer);
+ }
+ } catch (e) {
+ console.debug?.(e);
+ }
+ prefetchTimer = null;
+ }
+
+ function scheduleNextPagePrefetch(requestId, delayMs = APP_CONFIG.PREFETCH_NEXT_PAGE_DELAY_MS) {
+ if (!APP_CONFIG.PREFETCH_NEXT_PAGE) {
+ return;
+ }
+ clearPrefetchTimer();
+ const resolvedDelayMs = Math.max(0, Number(delayMs) || 0);
+ prefetchTimer = setTimeout(() => {
+ prefetchTimer = null;
+ if (state.requestId !== requestId || state.done || state.loading) {
+ return;
+ }
+ loadNextPage().catch((error) => {
+ console.debug?.("[AssetsManager][GridLoader] Delayed prefetch failed", error);
+ });
+ }, resolvedDelayMs);
+ }
+
function scheduleDeferredExecutionReload(query, options = {}) {
clearDeferredExecutionReload();
const retry = () => {
@@ -447,9 +504,15 @@ export function useGridLoader({
return;
}
clearDeferredExecutionReload();
+ // Re-read the current query from the grid container at retry time
+ // instead of using the stale captured value. The user may have
+ // changed the search query while execution was in progress.
+ const gridContainer = getGridContainer();
+ const freshQuery =
+ String(gridContainer?.dataset?.mjrQuery || "").trim() || query;
Promise.resolve()
.then(() =>
- loadAssets(query, {
+ loadAssets(freshQuery, {
...(options || {}),
reset: true,
preserveVisibleUntilReady: true,
@@ -592,14 +655,27 @@ export function useGridLoader({
if (earlyFetchPromise) {
try {
const earlyResult = await earlyFetchPromise;
+ // Discard early fetch if the request has been superseded
+ // (e.g. scope switch while the promise was pending).
+ if (Number(state.requestId) !== Number(requestId)) {
+ return { ok: false, stale: true, error: "Stale early fetch" };
+ }
+ if (signal?.aborted) {
+ return { ok: false, aborted: true, error: "Aborted" };
+ }
// API returns { ok, data: { assets: [...], total, ... } }
const earlyAssets = earlyResult?.data?.assets;
if (earlyResult?.ok && Array.isArray(earlyAssets)) {
mjrDbg("[Grid] Using early-fetched data:", earlyAssets.length, "assets");
+ // Use null when the backend did not return a total (includeTotal=false).
+ // Falling back to earlyAssets.length would incorrectly set state.total
+ // to the page size (e.g. 80), causing state.done=true after the first
+ // page and blocking all subsequent pagination / infinite scroll.
+ const rawTotal = earlyResult.data?.total ?? earlyResult.meta?.total ?? null;
return {
ok: true,
assets: earlyAssets,
- total: Number(earlyResult.data?.total ?? earlyResult.meta?.total ?? earlyAssets.length) || 0,
+ total: rawTotal != null ? Number(rawTotal) || 0 : null,
count: earlyAssets.length,
limit: limit,
offset: 0,
@@ -827,6 +903,7 @@ export function useGridLoader({
state.abortController = null;
}
state.requestId = (Number(state.requestId) || 0) + 1;
+ clearPrefetchTimer();
clearPendingUpserts();
clearStatusMessage();
if (deferVisualResetUntilNextPage) {
@@ -864,13 +941,11 @@ export function useGridLoader({
state.done = false;
state.loading = false;
clearLoadingMessage();
- queueMicrotask(() => {
- loadNextPage().then((bgResult) => {
- if (bgResult?.ok && !bgResult?.aborted) {
- finalizeLoad({ title: safeQuery });
- }
- }).catch(() => {});
- });
+ const bgRequestId = state.requestId;
+ scheduleNextPagePrefetch(
+ bgRequestId,
+ Math.min(APP_CONFIG.PREFETCH_NEXT_PAGE_DELAY_MS ?? 700, 250),
+ );
return {
ok: true,
count: Number(state.offset || 0) || 0,
@@ -886,7 +961,7 @@ export function useGridLoader({
const result = await loadNextPage();
- // Prefetch next page immediately for faster scrolling (non-blocking)
+ // Prefetch next page after the first render settles.
if (
APP_CONFIG.PREFETCH_NEXT_PAGE &&
result?.ok &&
@@ -894,12 +969,7 @@ export function useGridLoader({
!state.done &&
!result?.aborted
) {
- // Schedule prefetch after current microtask to not block initial render
- queueMicrotask(() => {
- if (!state.done && !state.loading) {
- loadNextPage().catch(() => {/* ignore prefetch errors */});
- }
- });
+ scheduleNextPagePrefetch(state.requestId);
}
if (reset) {
@@ -1031,6 +1101,7 @@ export function useGridLoader({
}
state.requestId = (Number(state.requestId) || 0) + 1;
state.loading = false;
+ clearPrefetchTimer();
clearPendingUpserts();
clearLoadingMessage();
clearStatusMessage();
@@ -1189,6 +1260,7 @@ export function useGridLoader({
state.abortController = null;
}
state.requestId = (Number(state.requestId) || 0) + 1;
+ clearPrefetchTimer();
clearPendingUpserts();
resetAssets({
query: snapshot.query || options.title || "Cached",
@@ -1218,7 +1290,7 @@ export function useGridLoader({
upsertState: UPSERT_BATCH_STATE,
maxBatchSize: UPSERT_BATCH_MAX_SIZE,
debounceMs: UPSERT_BATCH_DEBOUNCE_MS,
- assetKey: (asset) => assetKey(asset, gridContainer),
+ assetKey: (asset) => getStableRealtimeAssetKey(asset) || assetKey(asset, gridContainer),
loadMajoorSettings,
};
}
@@ -1230,22 +1302,35 @@ export function useGridLoader({
}
/**
- * Upsert an asset and immediately flush the batch to the virtual grid,
- * bypassing the debounce timer. Used for live generation events so the
- * card appears as soon as the WS event arrives rather than ~200 ms later.
+ * Upsert an asset and flush within the current microtask boundary.
+ *
+ * Multiple calls in the same event-loop tick are coalesced into a single
+ * flush via queueMicrotask. This avoids N separate flush+setItems calls
+ * when N WebSocket events arrive nearly simultaneously (e.g. 5 images
+ * generated in a batch), while still being much faster than the 200 ms
+ * debounce path.
*/
+ let _immediateFlushScheduled = false;
function upsertAssetNow(asset) {
const gridContainer = getGridContainer();
if (!gridContainer || !asset || !asset.id) return false;
const deps = _buildUpsertDeps(gridContainer);
const ok = queueUpsertAsset(gridContainer, asset, deps);
- if (ok) flushUpsertBatch(gridContainer, deps);
+ if (ok && !_immediateFlushScheduled) {
+ _immediateFlushScheduled = true;
+ queueMicrotask(() => {
+ _immediateFlushScheduled = false;
+ const gc = getGridContainer();
+ if (gc) flushUpsertBatch(gc, _buildUpsertDeps(gc));
+ });
+ }
return ok;
}
function dispose() {
rememberSnapshot(state.query || "Cached");
clearDeferredExecutionReload();
+ clearPrefetchTimer();
try {
state.abortController?.abort?.();
} catch (e) {
@@ -1266,6 +1351,14 @@ export function useGridLoader({
}
}
+ // Abort any in-flight requests before the page unloads so they don't
+ // appear as epoch-1 cancelled requests in the next session's network log.
+ try {
+ window.addEventListener("pagehide", dispose, { once: true });
+ } catch (e) {
+ console.debug?.(e);
+ }
+
return {
loadAssets,
loadAssetsFromList,
diff --git a/js/vue/composables/useGridSelection.js b/js/vue/composables/useGridSelection.js
index 75af3541..15ca995d 100644
--- a/js/vue/composables/useGridSelection.js
+++ b/js/vue/composables/useGridSelection.js
@@ -57,8 +57,11 @@ export function bindGridSelectionState({
console.debug?.(e);
}
- if (!activeId || Number(scrollTop || 0) > 0) return;
+ if (!activeId) return;
+ // Always scroll to the active card. align:"auto" (default) ensures the
+ // virtualizer won't move if the card is already in the viewport, so
+ // this is side-effect-free when the saved scroll position is still valid.
try {
if (typeof gridContainer?._mjrScrollToAssetId === "function") {
gridContainer._mjrScrollToAssetId(activeId);
diff --git a/js/vue/composables/useVirtualGrid.js b/js/vue/composables/useVirtualGrid.js
index 7761315d..a491fbf7 100644
--- a/js/vue/composables/useVirtualGrid.js
+++ b/js/vue/composables/useVirtualGrid.js
@@ -317,12 +317,15 @@ function _assetMatchesActiveFilters(gridContainer, asset) {
.trim()
.toLowerCase();
const assetDate = String(asset?.date_exact || asset?.date || "").trim();
- const hasWorkflow = Boolean(asset?.has_workflow ?? asset?.hasWorkflow);
+ const hasWorkflow = asset?.has_workflow ?? asset?.hasWorkflow ?? null;
if (scope && scope !== "all" && assetType && assetType !== scope) return false;
if (subfolder && assetSubfolder !== subfolder) return false;
if (kind && assetKind && assetKind !== kind) return false;
- if (workflowOnly && !hasWorkflow) return false;
+ // Treat null/undefined has_workflow as "pending" (enrichment in progress)
+ // so freshly generated assets are not rejected by the workflow-only filter.
+ // Only reject when has_workflow is explicitly false/0.
+ if (workflowOnly && hasWorkflow !== null && !hasWorkflow) return false;
if (minRating > 0 && (Number(asset?.rating || 0) || 0) < minRating) return false;
if (workflowType && assetWorkflowType !== workflowType) return false;
if (dateExact && assetDate && assetDate !== dateExact) return false;
@@ -379,9 +382,18 @@ export async function fetchPage(
: requestedQuery;
const safeQuery = deps.sanitizeQuery(normalizedRequestedQuery) || normalizedRequestedQuery;
try {
- const includeTotal = !(
- String(scope || "").toLowerCase() === "output" && Number(offset ?? 0) > 0
- );
+ const isOutputScope = String(scope || "").toLowerCase() === "output";
+ const hasActiveFilters =
+ !!(subfolder || customRootId || kind || workflowOnly || minRating > 0 || minSizeMB > 0 ||
+ maxSizeMB > 0 || minWidth > 0 || minHeight > 0 || maxWidth > 0 || maxHeight > 0 ||
+ workflowType || dateRange || dateExact || groupStacks);
+ const isDefaultOutputBrowse =
+ isOutputScope &&
+ Number(offset ?? 0) === 0 &&
+ safeQuery === "*" &&
+ !hasActiveFilters &&
+ String(sortKey || "mtime_desc").toLowerCase() === "mtime_desc";
+ const includeTotal = !(isOutputScope && (Number(offset ?? 0) > 0 || isDefaultOutputBrowse));
const url = deps.buildListURL({
q: safeQuery,
limit,
@@ -406,7 +418,7 @@ export async function fetchPage(
includeTotal,
groupStacks,
});
- const result = await deps.get(url, signal ? { signal } : undefined);
+ const result = await deps.get(url, { timeoutMs: 120_000, ...(signal ? { signal } : {}) });
try {
const state = deps.getGridState(gridContainer);
if (state && Number(state.requestId) !== Number(requestId)) {
@@ -642,6 +654,31 @@ function _findExistingAssetIndex(state, assetId, candidateAsset) {
return list.findIndex((asset) => _getAssetIdentityKey(asset) === identityKey);
}
+function _shouldKeepExistingAssetOnFilterMismatch(incomingAsset, existingAsset) {
+ if (!existingAsset || typeof existingAsset !== "object") return false;
+ if (!incomingAsset || typeof incomingAsset !== "object") return false;
+ if (_isLivePlaceholderAsset(existingAsset)) return true;
+ const protectedFields = [
+ "filename",
+ "filepath",
+ "path",
+ "fullpath",
+ "full_path",
+ "subfolder",
+ "type",
+ "source",
+ "root_id",
+ "custom_root_id",
+ "kind",
+ "rating",
+ "workflow_type",
+ "workflowType",
+ "date_exact",
+ "date",
+ ];
+ return !protectedFields.some((field) => Object.prototype.hasOwnProperty.call(incomingAsset, field));
+}
+
function dedupeAssetsByKey(state, deps) {
const seenIds = new Set();
const seenKeys = new Set();
@@ -761,6 +798,15 @@ export function flushUpsertBatch(gridContainer, deps) {
const matchesFilters = _assetMatchesActiveFilters(gridContainer, mergedCandidate);
if (!matchesFilters) {
if (resolvedExistingIndex > -1) {
+ if (_shouldKeepExistingAssetOnFilterMismatch(asset, resolvedExistingAsset)) {
+ Object.assign(resolvedExistingAsset, asset);
+ if (!incomingIsPlaceholder) {
+ _clearLivePlaceholderState(resolvedExistingAsset);
+ }
+ state.assets[resolvedExistingIndex] = { ...resolvedExistingAsset };
+ modified = true;
+ continue;
+ }
const [removedAsset] = state.assets.splice(resolvedExistingIndex, 1);
unregisterHiddenSibling(state, removedAsset, state);
modified = true;
@@ -811,12 +857,16 @@ export function flushUpsertBatch(gridContainer, deps) {
}
} finally {
batchState.flushing = false;
- // Items may have arrived during the flush Γ’β¬β reschedule if needed (BUG-01).
+ // Items may have arrived during the flush β reschedule if needed (BUG-01).
+ // Use a short delay (1 frame) instead of the full debounce so rapid
+ // generation events chain quickly instead of waiting 200 ms between
+ // each visible card insertion.
if (batchState.pending.size > 0 && !batchState.timer) {
+ const followUpDelay = Math.min(16, deps.debounceMs);
batchState.timer = setTimeout(() => {
batchState.timer = null;
flushUpsertBatch(gridContainer, deps);
- }, deps.debounceMs);
+ }, followUpDelay);
}
}
}
diff --git a/js_dist/assets/comfyui-majoor-assetsmanager.css b/js_dist/assets/comfyui-majoor-assetsmanager.css
index f548ba34..3c1ead51 100644
--- a/js_dist/assets/comfyui-majoor-assetsmanager.css
+++ b/js_dist/assets/comfyui-majoor-assetsmanager.css
@@ -1 +1 @@
-.mjr-rating-badge[data-v-821bf1b1]{position:absolute;top:6px;right:6px;background:#0000008c;border:1px solid rgba(255,255,255,.12);padding:2px 6px;border-radius:6px;font-size:13px;letter-spacing:1px;display:inline-flex;align-items:center;justify-content:center;pointer-events:none;z-index:10;text-shadow:0 2px 6px rgba(0,0,0,.6);box-shadow:0 6px 18px #00000040;animation:mjr-fade-in-821bf1b1 .2s ease-out}@keyframes mjr-fade-in-821bf1b1{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.mjr-tags-badge[data-v-15044260]{position:absolute;bottom:6px;left:6px;padding:3px 6px;border-radius:4px;background:#000c;font-size:9px;max-width:calc(100% - 56px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;z-index:10;box-shadow:0 2px 4px #0000004d;animation:mjr-fade-in-15044260 .2s ease-out}@keyframes mjr-fade-in-15044260{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mjr-gentime-badge[data-v-60fe3677]{position:absolute;bottom:6px;right:6px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.015em;line-height:1.1;background:#0000008c;border:1px solid rgba(255,255,255,.12);pointer-events:none;z-index:10;box-shadow:0 2px 4px #0000004d;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 10px color-mix(in srgb,currentColor 35%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.mjr-popover-row[data-v-d1ebebd4]{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;margin-bottom:8px}.mjr-popover-row--3col[data-v-d1ebebd4]{grid-template-columns:110px 1fr 1fr}.mjr-popover-label[data-v-d1ebebd4]{font-size:12px;color:var(--mjr-muted, var(--descrip-text, rgba(255, 255, 255, .65)));white-space:nowrap}.mjr-popover-toggle[data-v-d1ebebd4]{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--fg-color, #e6edf7)}.mjr-filter-group-toggle[data-v-d1ebebd4]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0;margin:0 0 10px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.mjr-filter-group-title[data-v-d1ebebd4]{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mjr-filter-group-chevron[data-v-d1ebebd4]{font-size:12px;line-height:1;color:var(--mjr-muted, var(--descrip-text, rgba(255, 255, 255, .65)))}.mjr-filter-group-body[data-v-d1ebebd4]{padding-top:2px}.mjr-filter-group[data-v-d1ebebd4]:not(.is-open){padding-bottom:8px}.mjr-filter-group:not(.is-open) .mjr-filter-group-toggle[data-v-d1ebebd4]{margin-bottom:0}.mjr-rating-star[data-v-6d012325]{outline:none}.mjr-rating-star[data-v-6d012325]:hover:not(:disabled){transform:scale(1.2)}.mjr-rating-star[data-v-6d012325]:focus-visible{outline:2px solid var(--focus-outline-color, #4dabf7);outline-offset:2px;border-radius:2px}.mjr-grid-skeleton-layout[data-v-41c1fc8a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}.mjr-grid-skeleton-card[data-v-41c1fc8a]{border-radius:12px;border:1px solid rgba(255,255,255,.22);background:#c0c6ce33;overflow:hidden;min-height:146px;box-shadow:0 6px 18px #0000003d}.mjr-grid-skeleton-thumb[data-v-41c1fc8a]{aspect-ratio:1 / 1;width:100%;background:linear-gradient(90deg,#9ca2ab85,#dce1e8b8 45%,#9ca2ab85);background-size:240% 100%;animation:mjr-grid-skeleton-shimmer-41c1fc8a 1.2s linear infinite}.mjr-grid-skeleton-line[data-v-41c1fc8a]{height:10px;margin:8px 10px;border-radius:8px;background:linear-gradient(90deg,#a4aab37a,#d6dbe2b3 45%,#a4aab37a);background-size:240% 100%;animation:mjr-grid-skeleton-shimmer-41c1fc8a 1.2s linear infinite}.mjr-grid-skeleton-line--title[data-v-41c1fc8a]{width:72%}.mjr-grid-skeleton-line--meta[data-v-41c1fc8a]{width:48%;margin-top:2px;margin-bottom:10px}@keyframes mjr-grid-skeleton-shimmer-41c1fc8a{0%{background-position:100% 0}to{background-position:-100% 0}}
+.mjr-rating-badge[data-v-821bf1b1]{position:absolute;top:6px;right:6px;background:#0000008c;border:1px solid rgba(255,255,255,.12);padding:2px 6px;border-radius:6px;font-size:13px;letter-spacing:1px;display:inline-flex;align-items:center;justify-content:center;pointer-events:none;z-index:10;text-shadow:0 2px 6px rgba(0,0,0,.6);box-shadow:0 6px 18px #00000040;animation:mjr-fade-in-821bf1b1 .2s ease-out}@keyframes mjr-fade-in-821bf1b1{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.mjr-tags-badge[data-v-15044260]{position:absolute;bottom:6px;left:6px;padding:3px 6px;border-radius:4px;background:#000c;font-size:9px;max-width:calc(100% - 56px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;z-index:10;box-shadow:0 2px 4px #0000004d;animation:mjr-fade-in-15044260 .2s ease-out}@keyframes mjr-fade-in-15044260{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mjr-gentime-badge[data-v-60fe3677]{position:absolute;bottom:6px;right:6px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.015em;line-height:1.1;background:#0000008c;border:1px solid rgba(255,255,255,.12);pointer-events:none;z-index:10;box-shadow:0 2px 4px #0000004d;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 10px color-mix(in srgb,currentColor 35%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.mjr-popover-row[data-v-d1ebebd4]{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;margin-bottom:8px}.mjr-popover-row--3col[data-v-d1ebebd4]{grid-template-columns:110px 1fr 1fr}.mjr-popover-label[data-v-d1ebebd4]{font-size:12px;color:var(--mjr-muted, var(--descrip-text, rgba(255, 255, 255, .65)));white-space:nowrap}.mjr-popover-toggle[data-v-d1ebebd4]{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--fg-color, #e6edf7)}.mjr-filter-group-toggle[data-v-d1ebebd4]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0;margin:0 0 10px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.mjr-filter-group-title[data-v-d1ebebd4]{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mjr-filter-group-chevron[data-v-d1ebebd4]{font-size:12px;line-height:1;color:var(--mjr-muted, var(--descrip-text, rgba(255, 255, 255, .65)))}.mjr-filter-group-body[data-v-d1ebebd4]{padding-top:2px}.mjr-filter-group[data-v-d1ebebd4]:not(.is-open){padding-bottom:8px}.mjr-filter-group:not(.is-open) .mjr-filter-group-toggle[data-v-d1ebebd4]{margin-bottom:0}.mjr-rating-star[data-v-6d012325]{outline:none}.mjr-rating-star[data-v-6d012325]:hover:not(:disabled){transform:scale(1.2)}.mjr-rating-star[data-v-6d012325]:focus-visible{outline:2px solid var(--focus-outline-color, #4dabf7);outline-offset:2px;border-radius:2px}.mjr-grid-skeleton-layout[data-v-d9ff3613]{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}.mjr-grid-skeleton-card[data-v-d9ff3613]{border-radius:12px;border:1px solid rgba(255,255,255,.22);background:#c0c6ce33;overflow:hidden;min-height:146px;box-shadow:0 6px 18px #0000003d}.mjr-grid-skeleton-thumb[data-v-d9ff3613]{aspect-ratio:1 / 1;width:100%;background:linear-gradient(90deg,#9ca2ab85,#dce1e8b8 45%,#9ca2ab85);background-size:240% 100%;animation:mjr-grid-skeleton-shimmer-d9ff3613 1.2s linear infinite}.mjr-grid-skeleton-line[data-v-d9ff3613]{height:10px;margin:8px 10px;border-radius:8px;background:linear-gradient(90deg,#a4aab37a,#d6dbe2b3 45%,#a4aab37a);background-size:240% 100%;animation:mjr-grid-skeleton-shimmer-d9ff3613 1.2s linear infinite}.mjr-grid-skeleton-line--title[data-v-d9ff3613]{width:72%}.mjr-grid-skeleton-line--meta[data-v-d9ff3613]{width:48%;margin-top:2px;margin-bottom:10px}@keyframes mjr-grid-skeleton-shimmer-d9ff3613{0%{background-position:100% 0}to{background-position:-100% 0}}
diff --git a/js_dist/chunks/FloatingViewer-DwUuqgW7.js b/js_dist/chunks/FloatingViewer-96M53tBE.js
similarity index 90%
rename from js_dist/chunks/FloatingViewer-DwUuqgW7.js
rename to js_dist/chunks/FloatingViewer-96M53tBE.js
index 9d61c1ca..78d1ef66 100644
--- a/js_dist/chunks/FloatingViewer-DwUuqgW7.js
+++ b/js_dist/chunks/FloatingViewer-96M53tBE.js
@@ -1,6 +1,6 @@
-import { p as Dt, M as Ut, c as zt, q as $t, t as Wt, A as q, u as w, v as I, x as Z, y as vt, z as Nt, B as Kt, C as Xt, D as Q, E as W, n as qt, s as st, F as dt, G as wt, H as ut, I as pt, d as it, J as Yt, K as Zt } from "./entry-DyjnHjNW.js";
-import { ensureViewerMetadataAsset as tt } from "./genInfo-L1PrRwDk.js";
-const A = Object.freeze({
+import { p as Dt, M as Ut, c as zt, q as $t, t as Wt, A as q, u as w, v as I, x as Z, y as vt, z as Nt, B as Kt, C as Xt, D as Q, E as W, n as qt, s as st, F as dt, G as wt, H as ut, I as pt, d as it, J as Yt, K as Zt } from "./entry-Cn6KiPQv.js";
+import { ensureViewerMetadataAsset as tt } from "./genInfo-DPaWrr2W.js";
+const E = Object.freeze({
SIMPLE: "simple",
AB: "ab",
SIDE: "side",
@@ -89,18 +89,18 @@ function ct(t, e = null, { kind: n = "" } = {}) {
h.type = "button", h.className = "mjr-icon-btn mjr-mfv-simple-player-btn", h.setAttribute("aria-label", "Step back");
const p = document.createElement("i");
p.className = "pi pi-step-backward", p.setAttribute("aria-hidden", "true"), h.appendChild(p);
- const _ = document.createElement("button");
- _.type = "button", _.className = "mjr-icon-btn mjr-mfv-simple-player-btn", _.setAttribute("aria-label", "Step forward");
+ const g = document.createElement("button");
+ g.type = "button", g.className = "mjr-icon-btn mjr-mfv-simple-player-btn", g.setAttribute("aria-label", "Step forward");
const y = document.createElement("i");
- y.className = "pi pi-step-forward", y.setAttribute("aria-hidden", "true"), _.appendChild(y);
+ y.className = "pi pi-step-forward", y.setAttribute("aria-hidden", "true"), g.appendChild(y);
const S = document.createElement("div");
S.className = "mjr-mfv-simple-player-time", S.textContent = "0:00 / 0:00";
- const g = document.createElement("div");
- g.className = "mjr-mfv-simple-player-frame", g.textContent = "F: 0", s || (g.style.display = "none");
+ const _ = document.createElement("div");
+ _.className = "mjr-mfv-simple-player-frame", _.textContent = "F: 0", s || (_.style.display = "none");
const C = document.createElement("button");
C.type = "button", C.className = "mjr-icon-btn mjr-mfv-simple-player-btn", C.setAttribute("aria-label", "Mute/Unmute");
- const E = document.createElement("i");
- if (E.className = "pi pi-volume-up", E.setAttribute("aria-hidden", "true"), C.appendChild(E), s || (h.disabled = !0, _.disabled = !0, h.classList.add("is-disabled"), _.classList.add("is-disabled")), u.appendChild(h), u.appendChild(f), u.appendChild(_), u.appendChild(S), u.appendChild(g), u.appendChild(C), r.appendChild(a), r.appendChild(u), d.appendChild(t), l) {
+ const A = document.createElement("i");
+ if (A.className = "pi pi-volume-up", A.setAttribute("aria-hidden", "true"), C.appendChild(A), s || (h.disabled = !0, g.disabled = !0, h.classList.add("is-disabled"), g.classList.add("is-disabled")), u.appendChild(h), u.appendChild(f), u.appendChild(g), u.appendChild(S), u.appendChild(_), u.appendChild(C), r.appendChild(a), r.appendChild(u), d.appendChild(t), l) {
const b = document.createElement("div");
b.className = "mjr-mfv-simple-player-audio-backdrop", b.textContent = String((e == null ? void 0 : e.filename) || "Audio"), d.appendChild(b);
}
@@ -110,28 +110,28 @@ function ct(t, e = null, { kind: n = "" } = {}) {
} catch (b) {
(ft = console.debug) == null || ft.call(console, b);
}
- const P = c ? String((t == null ? void 0 : t.src) || "") : "";
- let M = !1, T = "";
+ const M = c ? String((t == null ? void 0 : t.src) || "") : "";
+ let B = !1, T = "";
const k = () => {
if (i) {
m.className = t.paused ? "pi pi-play" : "pi pi-pause";
return;
}
if (c) {
- m.className = M ? "pi pi-play" : "pi pi-pause";
+ m.className = B ? "pi pi-play" : "pi pi-pause";
return;
}
m.className = "pi pi-play";
}, R = () => {
if (t instanceof HTMLMediaElement) {
- E.className = t.muted ? "pi pi-volume-off" : "pi pi-volume-up";
+ A.className = t.muted ? "pi pi-volume-off" : "pi pi-volume-up";
return;
}
- E.className = "pi pi-volume-off", C.disabled = !0, C.classList.add("is-disabled");
+ A.className = "pi pi-volume-off", C.disabled = !0, C.classList.add("is-disabled");
}, L = () => {
if (!s || !(t instanceof HTMLVideoElement)) return;
- const b = _t(t, o), B = Lt(t, o);
- g.textContent = B > 0 ? `F: ${b}/${B}` : `F: ${b}`;
+ const b = _t(t, o), P = Lt(t, o);
+ _.textContent = P > 0 ? `F: ${b}/${P}` : `F: ${b}`;
}, D = () => {
const b = Math.max(0, Math.min(100, Number(a.value) / 1e3 * 100));
a.style.setProperty("--mjr-seek-pct", `${b}%`);
@@ -140,39 +140,39 @@ function ct(t, e = null, { kind: n = "" } = {}) {
S.textContent = c ? "Animated" : "Preview", a.value = "0", D();
return;
}
- const b = Number(t.currentTime || 0), B = Number(t.duration || 0);
- if (Number.isFinite(B) && B > 0) {
- const x = Math.max(0, Math.min(1, b / B));
- a.value = String(Math.round(x * 1e3)), S.textContent = `${lt(b)} / ${lt(B)}`;
+ const b = Number(t.currentTime || 0), P = Number(t.duration || 0);
+ if (Number.isFinite(P) && P > 0) {
+ const x = Math.max(0, Math.min(1, b / P));
+ a.value = String(Math.round(x * 1e3)), S.textContent = `${lt(b)} / ${lt(P)}`;
} else
a.value = "0", S.textContent = `${lt(b)} / 0:00`;
D();
}, K = (b) => {
- var B;
+ var P;
try {
- (B = b == null ? void 0 : b.stopPropagation) == null || B.call(b);
+ (P = b == null ? void 0 : b.stopPropagation) == null || P.call(b);
} catch {
}
}, mt = (b) => {
- var B, x;
+ var P, x;
K(b);
try {
if (i)
- t.paused ? ht(t) : (B = t.pause) == null || B.call(t);
+ t.paused ? ht(t) : (P = t.pause) == null || P.call(t);
else if (c)
- if (!M)
- T || (T = le(t)), T && (t.src = T), M = !0;
+ if (!B)
+ T || (T = le(t)), T && (t.src = T), B = !0;
else {
- const j = P ? `${P}${P.includes("?") ? "&" : "?"}mjr_anim=${Date.now()}` : t.src;
- t.src = j, M = !1;
+ const j = M ? `${M}${M.includes("?") ? "&" : "?"}mjr_anim=${Date.now()}` : t.src;
+ t.src = j, B = !1;
}
} catch (j) {
(x = console.debug) == null || x.call(console, j);
}
k();
- }, Y = (b, B) => {
+ }, Y = (b, P) => {
var j, V;
- if (K(B), !s || !(t instanceof HTMLVideoElement)) return;
+ if (K(P), !s || !(t instanceof HTMLVideoElement)) return;
try {
(j = t.pause) == null || j.call(t);
} catch (ot) {
@@ -181,12 +181,12 @@ function ct(t, e = null, { kind: n = "" } = {}) {
const x = _t(t, o);
oe(t, x + b, o), k(), L(), G();
}, Gt = (b) => {
- var B;
+ var P;
if (K(b), t instanceof HTMLMediaElement) {
try {
t.muted = !t.muted;
} catch (x) {
- (B = console.debug) == null || B.call(console, x);
+ (P = console.debug) == null || P.call(console, x);
}
R();
}
@@ -194,43 +194,43 @@ function ct(t, e = null, { kind: n = "" } = {}) {
var j;
if (K(b), !i) return;
D();
- const B = Number(t.duration || 0);
- if (!Number.isFinite(B) || B <= 0) return;
+ const P = Number(t.duration || 0);
+ if (!Number.isFinite(P) || P <= 0) return;
const x = Math.max(0, Math.min(1, Number(a.value) / 1e3));
try {
- t.currentTime = B * x;
+ t.currentTime = P * x;
} catch (V) {
(j = console.debug) == null || j.call(console, V);
}
L(), G();
}, nt = (b) => K(b), Rt = (b) => {
- var B, x, j, V;
+ var P, x, j, V;
try {
- if ((x = (B = b == null ? void 0 : b.target) == null ? void 0 : B.closest) != null && x.call(B, "button, input, textarea, select")) return;
+ if ((x = (P = b == null ? void 0 : b.target) == null ? void 0 : P.closest) != null && x.call(P, "button, input, textarea, select")) return;
(j = d.focus) == null || j.call(d, { preventScroll: !0 });
} catch (ot) {
(V = console.debug) == null || V.call(console, ot);
}
}, Ht = (b) => {
var x, j, V;
- const B = String((b == null ? void 0 : b.key) || "");
- if (!(!B || b != null && b.altKey || b != null && b.ctrlKey || b != null && b.metaKey)) {
- if (B === " " || B === "Spacebar") {
+ const P = String((b == null ? void 0 : b.key) || "");
+ if (!(!P || b != null && b.altKey || b != null && b.ctrlKey || b != null && b.metaKey)) {
+ if (P === " " || P === "Spacebar") {
(x = b.preventDefault) == null || x.call(b), mt(b);
return;
}
- if (B === "ArrowLeft") {
+ if (P === "ArrowLeft") {
if (!s) return;
(j = b.preventDefault) == null || j.call(b), Y(-1, b);
return;
}
- if (B === "ArrowRight") {
+ if (P === "ArrowRight") {
if (!s) return;
(V = b.preventDefault) == null || V.call(b), Y(1, b);
}
}
};
- return f.addEventListener("click", mt), h.addEventListener("click", (b) => Y(-1, b)), _.addEventListener("click", (b) => Y(1, b)), C.addEventListener("click", Gt), a.addEventListener("input", Ot), r.addEventListener("pointerdown", nt), r.addEventListener("click", nt), r.addEventListener("dblclick", nt), d.addEventListener("pointerdown", Rt), d.addEventListener("keydown", Ht), t instanceof HTMLMediaElement && (t.addEventListener("play", k, { passive: !0 }), t.addEventListener("pause", k, { passive: !0 }), t.addEventListener(
+ return f.addEventListener("click", mt), h.addEventListener("click", (b) => Y(-1, b)), g.addEventListener("click", (b) => Y(1, b)), C.addEventListener("click", Gt), a.addEventListener("input", Ot), r.addEventListener("pointerdown", nt), r.addEventListener("click", nt), r.addEventListener("dblclick", nt), d.addEventListener("pointerdown", Rt), d.addEventListener("keydown", Ht), t instanceof HTMLMediaElement && (t.addEventListener("play", k, { passive: !0 }), t.addEventListener("pause", k, { passive: !0 }), t.addEventListener(
"timeupdate",
() => {
L(), G();
@@ -533,11 +533,11 @@ class Se {
h.className = m ? "mjr-ws-widget-row mjr-ws-widget-row--block" : "mjr-ws-widget-row";
const p = document.createElement("label");
p.className = "mjr-ws-widget-label", p.textContent = u.name || "";
- const _ = document.createElement("div");
- _.className = "mjr-ws-widget-input";
+ const g = document.createElement("div");
+ g.className = "mjr-ws-widget-input";
const y = fe(u, () => {
});
- _.appendChild(y), this._inputMap.set(u.name, y), h.appendChild(p), h.appendChild(_), c.appendChild(h);
+ g.appendChild(y), this._inputMap.set(u.name, y), h.appendChild(p), h.appendChild(g), c.appendChild(h);
}
if (!r) {
const u = document.createElement("div");
@@ -721,30 +721,30 @@ function Ne() {
function a() {
r != null && (clearTimeout(r), r = null);
}
- function u(g, { canStop: C = !1 } = {}) {
- l = g, e.classList.toggle("running", l === N.RUNNING), e.classList.toggle("stopping", l === N.STOPPING), e.classList.toggle("error", l === N.ERROR), e.disabled = l === N.RUNNING || l === N.STOPPING, i.disabled = !C || l === N.STOPPING, i.classList.toggle("active", C && l !== N.STOPPING), i.classList.toggle("stopping", l === N.STOPPING), l === N.RUNNING || l === N.STOPPING ? o.className = "pi pi-spin pi-spinner" : o.className = "pi pi-play";
+ function u(_, { canStop: C = !1 } = {}) {
+ l = _, e.classList.toggle("running", l === N.RUNNING), e.classList.toggle("stopping", l === N.STOPPING), e.classList.toggle("error", l === N.ERROR), e.disabled = l === N.RUNNING || l === N.STOPPING, i.disabled = !C || l === N.STOPPING, i.classList.toggle("active", C && l !== N.STOPPING), i.classList.toggle("stopping", l === N.STOPPING), l === N.RUNNING || l === N.STOPPING ? o.className = "pi pi-spin pi-spinner" : o.className = "pi pi-play";
}
function f() {
- const g = I("tooltip.queueStop", "Stop Generation");
- i.title = g, i.setAttribute("aria-label", g);
+ const _ = I("tooltip.queueStop", "Stop Generation");
+ i.title = _, i.setAttribute("aria-label", _);
}
- function m(g = Z.getSnapshot(), { authoritative: C = !1 } = {}) {
- const E = Math.max(0, Number(g == null ? void 0 : g.queue) || 0), P = (g == null ? void 0 : g.prompt) || null, M = !!(P != null && P.currentlyExecuting), T = !!(P && (P.currentlyExecuting || P.errorDetails)), k = E > 0 || T, R = !!(P != null && P.errorDetails);
- C && E === 0 && !P && (c = !1, d = !1);
- const L = c || d || M || E > 0;
- if ((M || k || E > 0) && (c = !1), R) {
+ function m(_ = Z.getSnapshot(), { authoritative: C = !1 } = {}) {
+ const A = Math.max(0, Number(_ == null ? void 0 : _.queue) || 0), M = (_ == null ? void 0 : _.prompt) || null, B = !!(M != null && M.currentlyExecuting), T = !!(M && (M.currentlyExecuting || M.errorDetails)), k = A > 0 || T, R = !!(M != null && M.errorDetails);
+ C && A === 0 && !M && (c = !1, d = !1);
+ const L = c || d || B || A > 0;
+ if ((B || k || A > 0) && (c = !1), R) {
d = !1, a(), u(N.ERROR, { canStop: !1 });
return;
}
if (d) {
if (!L) {
- d = !1, m(g);
+ d = !1, m(_);
return;
}
u(N.STOPPING, { canStop: !1 });
return;
}
- if (c || M || k || E > 0) {
+ if (c || B || k || A > 0) {
a(), u(N.RUNNING, { canStop: !0 });
return;
}
@@ -756,56 +756,56 @@ function Ne() {
}, 1500);
}
async function p() {
- const g = w(), C = Nt(g);
- if (C && typeof C.interrupt == "function")
- return await C.interrupt(), { tracked: !0 };
- if (C && typeof C.fetchApi == "function") {
- const P = await C.fetchApi("/interrupt", { method: "POST" });
- if (!(P != null && P.ok)) throw new Error(`POST /interrupt failed (${P == null ? void 0 : P.status})`);
+ const _ = w(), A = (_ != null && _.api && typeof _.api.interrupt == "function" ? _.api : null) ?? Nt(_);
+ if (A && typeof A.interrupt == "function")
+ return await A.interrupt(), { tracked: !0 };
+ if (A && typeof A.fetchApi == "function") {
+ const B = await A.fetchApi("/interrupt", { method: "POST" });
+ if (!(B != null && B.ok)) throw new Error(`POST /interrupt failed (${B == null ? void 0 : B.status})`);
return { tracked: !0 };
}
- const E = await fetch("/interrupt", { method: "POST" });
- if (!E.ok) throw new Error(`POST /interrupt failed (${E.status})`);
+ const M = await fetch("/interrupt", { method: "POST", credentials: "include" });
+ if (!M.ok) throw new Error(`POST /interrupt failed (${M.status})`);
return { tracked: !1 };
}
- async function _() {
- var g;
+ async function g() {
+ var _;
if (!(l === N.RUNNING || l === N.STOPPING)) {
c = !0, d = !1, m();
try {
const C = await Ie();
C != null && C.tracked || (c = !1), m();
} catch (C) {
- (g = console.error) == null || g.call(console, "[MFV Run]", C), h();
+ (_ = console.error) == null || _.call(console, "[MFV Run]", C), h();
}
}
}
async function y() {
- var g;
+ var _;
if (l === N.RUNNING) {
d = !0, m();
try {
const C = await p();
C != null && C.tracked || (d = !1, c = !1), m();
} catch (C) {
- (g = console.error) == null || g.call(console, "[MFV Stop]", C), d = !1, m();
+ (_ = console.error) == null || _.call(console, "[MFV Stop]", C), d = !1, m();
} finally {
}
}
}
- f(), i.disabled = !0, e.addEventListener("click", _), i.addEventListener("click", y);
- const S = (g) => {
- m((g == null ? void 0 : g.detail) || Z.getSnapshot(), {
+ f(), i.disabled = !0, e.addEventListener("click", g), i.addEventListener("click", y);
+ const S = (_) => {
+ m((_ == null ? void 0 : _.detail) || Z.getSnapshot(), {
authoritative: !0
});
};
- return Z.addEventListener(Ct, S), vt({ timeoutMs: 4e3 }).catch((g) => {
+ return Z.addEventListener(Ct, S), vt({ timeoutMs: 4e3 }).catch((_) => {
var C;
- (C = console.debug) == null || C.call(console, g);
+ (C = console.debug) == null || C.call(console, _);
}), m(), {
el: t,
dispose() {
- a(), e.removeEventListener("click", _), i.removeEventListener("click", y), Z.removeEventListener(
+ a(), e.removeEventListener("click", g), i.removeEventListener("click", y), Z.removeEventListener(
Ct,
S
);
@@ -856,32 +856,35 @@ async function Ie() {
if (!t) throw new Error("ComfyUI app not available");
const e = typeof t.graphToPrompt == "function" ? await t.graphToPrompt() : null;
if (!(e != null && e.output)) throw new Error("graphToPrompt returned empty output");
- const n = Nt(t);
- if (n && typeof n.queuePrompt == "function")
- return await n.queuePrompt(0, Tt(e)), { tracked: !0 };
- if (n && typeof n.fetchApi == "function") {
- const i = await n.fetchApi("/prompt", {
+ const o = (t != null && t.api && typeof t.api.queuePrompt == "function" ? t.api : null) ?? Nt(t);
+ if (o && typeof o.queuePrompt == "function")
+ return await o.queuePrompt(0, Tt(e)), { tracked: !0 };
+ if (o && typeof o.fetchApi == "function") {
+ const s = await o.fetchApi("/prompt", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(
St(e, {
- clientId: At(n, t)
+ clientId: At(o, t)
})
)
});
- if (!(i != null && i.ok)) throw new Error(`POST /prompt failed (${i == null ? void 0 : i.status})`);
+ if (!(s != null && s.ok)) throw new Error(`POST /prompt failed (${s == null ? void 0 : s.status})`);
return { tracked: !0 };
}
- const o = await fetch("/prompt", {
+ if (typeof t.queuePrompt == "function")
+ return await t.queuePrompt(0), { tracked: !0 };
+ const i = await fetch("/prompt", {
method: "POST",
+ credentials: "include",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(
St(e, {
- clientId: At(n, t)
+ clientId: At(null, t)
})
)
});
- if (!o.ok) throw new Error(`POST /prompt failed (${o.status})`);
+ if (!i.ok) throw new Error(`POST /prompt failed (${i.status})`);
return { tracked: !1 };
}
function Le(t) {
@@ -898,7 +901,7 @@ function ke(t) {
const e = document.createElement("div");
e.className = "mjr-mfv-header";
const n = document.createElement("span");
- n.className = "mjr-mfv-header-title", n.id = t._titleId, n.textContent = "Majoor Viewer Lite";
+ n.className = "mjr-mfv-header-title", n.id = t._titleId, n.textContent = "γ½οΈ Majoor Viewer Lite";
const o = document.createElement("button");
t._closeBtn = o, o.type = "button", o.className = "mjr-icon-btn mjr-mfv-close-btn", Q(o, I("tooltip.closeViewer", "Close viewer"), ee);
const i = document.createElement("i");
@@ -946,10 +949,10 @@ function xe(t) {
t._settingsBtn.title = r, t._settingsBtn.setAttribute("aria-label", r), t._settingsBtn.setAttribute("aria-pressed", "false");
const a = document.createElement("i");
return a.className = "pi pi-sliders-h", a.setAttribute("aria-hidden", "true"), t._settingsBtn.appendChild(a), e.appendChild(t._settingsBtn), t._runHandle = Ne(), e.appendChild(t._runHandle.el), t._handleDocClick = (m) => {
- var p, _;
+ var p, g;
if (!t._genDropdown) return;
const h = m == null ? void 0 : m.target;
- (_ = (p = t._genBtn) == null ? void 0 : p.contains) != null && _.call(p, h) || t._genDropdown.contains(h) || t._closeGenDropdown();
+ (g = (p = t._genBtn) == null ? void 0 : p.contains) != null && g.call(p, h) || t._genDropdown.contains(h) || t._closeGenDropdown();
}, t._bindDocumentUiHandlers(), e;
}
function je(t) {
@@ -973,8 +976,8 @@ function je(t) {
var y, S;
const p = (S = (y = h.target) == null ? void 0 : y.closest) == null ? void 0 : S.call(y, ".mjr-mfv-pin-btn");
if (!p) return;
- const _ = p.dataset.slot;
- _ && (t._pinnedSlots.has(_) ? t._pinnedSlots.delete(_) : t._pinnedSlots.add(_), t._pinnedSlots.has("C") || t._pinnedSlots.has("D") ? t._mode !== A.GRID && t.setMode(A.GRID) : t._pinnedSlots.size > 0 && t._mode === A.SIMPLE && t.setMode(A.AB), t._updatePinUI());
+ const g = p.dataset.slot;
+ g && (t._pinnedSlots.has(g) ? t._pinnedSlots.delete(g) : t._pinnedSlots.add(g), t._pinnedSlots.has("C") || t._pinnedSlots.has("D") ? t._mode !== E.GRID && t.setMode(E.GRID) : t._pinnedSlots.size > 0 && t._mode === E.SIMPLE && t.setMode(E.AB), t._updatePinUI());
},
{ signal: e }
), (c = t._liveBtn) == null || c.addEventListener(
@@ -998,8 +1001,8 @@ function je(t) {
), (a = t._genBtn) == null || a.addEventListener(
"click",
(h) => {
- var p, _;
- h.stopPropagation(), (_ = (p = t._genDropdown) == null ? void 0 : p.classList) != null && _.contains("is-visible") ? t._closeGenDropdown() : t._openGenDropdown();
+ var p, g;
+ h.stopPropagation(), (g = (p = t._genDropdown) == null ? void 0 : p.classList) != null && g.contains("is-visible") ? t._closeGenDropdown() : t._openGenDropdown();
},
{ signal: e }
), (u = t._popoutBtn) == null || u.addEventListener(
@@ -1207,11 +1210,11 @@ function Xe(t) {
}
}
function qe(t) {
- const e = [A.SIMPLE, A.AB, A.SIDE, A.GRID];
+ const e = [E.SIMPLE, E.AB, E.SIDE, E.GRID];
t._mode = e[(e.indexOf(t._mode) + 1) % e.length], t._updateModeBtnUI(), t._refresh(), t._notifyModeChanged();
}
function we(t, e) {
- Object.values(A).includes(e) && (t._mode = e, t._updateModeBtnUI(), t._refresh(), t._notifyModeChanged());
+ Object.values(E).includes(e) && (t._mode = e, t._updateModeBtnUI(), t._refresh(), t._notifyModeChanged());
}
function Ye(t) {
return t._pinnedSlots;
@@ -1228,10 +1231,10 @@ function Ze(t) {
function Je(t) {
if (!t._modeBtn) return;
const e = {
- [A.SIMPLE]: { icon: "pi-image", label: "Mode: Simple - click to switch" },
- [A.AB]: { icon: "pi-clone", label: "Mode: A/B Compare - click to switch" },
- [A.SIDE]: { icon: "pi-table", label: "Mode: Side-by-Side - click to switch" },
- [A.GRID]: {
+ [E.SIMPLE]: { icon: "pi-image", label: "Mode: Simple - click to switch" },
+ [E.AB]: { icon: "pi-clone", label: "Mode: A/B Compare - click to switch" },
+ [E.SIDE]: { icon: "pi-table", label: "Mode: Side-by-Side - click to switch" },
+ [E.GRID]: {
icon: "pi-th-large",
label: "Mode: Grid Compare (up to 4) - click to switch"
}
@@ -1270,14 +1273,14 @@ function en(t, e, n = {}) {
_isPreview: !0,
_sourceLabel: (n == null ? void 0 : n.sourceLabel) || null
};
- if (t._mode === A.AB || t._mode === A.SIDE || t._mode === A.GRID) {
+ if (t._mode === E.AB || t._mode === E.SIDE || t._mode === E.GRID) {
const l = t.getPinnedSlots();
- if (t._mode === A.GRID) {
+ if (t._mode === E.GRID) {
const c = ["A", "B", "C", "D"].find((d) => !l.has(d)) || "A";
t[`_media${c}`] = i;
} else l.has("B") ? t._mediaA = i : t._mediaB = i;
} else
- t._mediaA = i, t._resetMfvZoom(), t._mode !== A.SIMPLE && (t._mode = A.SIMPLE, t._updateModeBtnUI());
+ t._mediaA = i, t._resetMfvZoom(), t._mode !== E.SIMPLE && (t._mode = E.SIMPLE, t._updateModeBtnUI());
++t._refreshGen, t._refresh();
}
function nn(t) {
@@ -1495,7 +1498,7 @@ function un(t) {
if (!(n && (F("electron-popup-request", { width: s, height: l }), t._tryElectronPopupFallback(e, s, l, new Error("Desktop popup requested"))))) {
if (n && "documentPictureInPicture" in window) {
F("electron-pip-request", { width: s, height: l }), window.documentPictureInPicture.requestWindow({ width: s, height: l }).then((r) => {
- var h, p, _;
+ var h, p, g;
F("electron-pip-opened", {
hasDocument: !!(r != null && r.document)
}), t._popoutWindow = r, t._isPopped = !0, t._popoutRestoreGuard = !1;
@@ -1528,7 +1531,7 @@ function un(t) {
try {
r.close();
} catch (S) {
- (_ = console.debug) == null || _.call(console, S);
+ (g = console.debug) == null || g.call(console, S);
}
t._activateDesktopExpandedFallback(y);
return;
@@ -1536,8 +1539,8 @@ function un(t) {
e.classList.add("is-visible"), t.isVisible = !0, t._resetGenDropdownForCurrentDocument(), t._rebindControlHandlers(), t._bindDocumentUiHandlers(), t._updatePopoutBtnUI(), F("electron-pip-ready", { isPopped: t._isPopped }), r.addEventListener("pagehide", u, {
signal: a
}), t._startPopoutCloseWatch(), t._popoutKeydownHandler = (y) => {
- var g, C;
- const S = String(((g = y == null ? void 0 : y.target) == null ? void 0 : g.tagName) || "").toLowerCase();
+ var _, C;
+ const S = String(((_ = y == null ? void 0 : y.target) == null ? void 0 : _.tagName) || "").toLowerCase();
y != null && y.defaultPrevented || (C = y == null ? void 0 : y.target) != null && C.isContentEditable || S === "input" || S === "textarea" || S === "select" || t._forwardKeydownToController(y);
}, r.addEventListener("keydown", t._popoutKeydownHandler, {
signal: a
@@ -1586,10 +1589,10 @@ function pn(t, e, n, o) {
}
if (!p) return;
p.title = "Majoor Viewer", t._installPopoutStyles(p);
- const _ = Vt(p);
- if (_) {
+ const g = Vt(p);
+ if (g) {
try {
- _.appendChild(p.adoptNode(e));
+ g.appendChild(p.adoptNode(e));
} catch (y) {
console.warn("[MFV] adoptNode failed", y);
return;
@@ -1603,17 +1606,17 @@ function pn(t, e, n, o) {
(m = console.debug) == null || m.call(console, "[MFV] immediate mount failed, retrying on load", p);
try {
c.addEventListener("load", a, { signal: d });
- } catch (_) {
- (h = console.debug) == null || h.call(console, "[MFV] pop-out page load listener failed", _);
+ } catch (g) {
+ (h = console.debug) == null || h.call(console, "[MFV] pop-out page load listener failed", g);
}
}
c.addEventListener("beforeunload", r, { signal: d }), c.addEventListener("pagehide", r, { signal: d }), c.addEventListener("unload", r, { signal: d }), t._startPopoutCloseWatch(), t._popoutKeydownHandler = (p) => {
- var S, g, C, E;
- const _ = String(((S = p == null ? void 0 : p.target) == null ? void 0 : S.tagName) || "").toLowerCase();
- if (p != null && p.defaultPrevented || (g = p == null ? void 0 : p.target) != null && g.isContentEditable || _ === "input" || _ === "textarea" || _ === "select")
+ var S, _, C, A;
+ const g = String(((S = p == null ? void 0 : p.target) == null ? void 0 : S.tagName) || "").toLowerCase();
+ if (p != null && p.defaultPrevented || (_ = p == null ? void 0 : p.target) != null && _.isContentEditable || g === "input" || g === "textarea" || g === "select")
return;
if (String((p == null ? void 0 : p.key) || "").toLowerCase() === "v" && (p != null && p.ctrlKey || p != null && p.metaKey) && !(p != null && p.altKey) && !(p != null && p.shiftKey)) {
- p.preventDefault(), (C = p.stopPropagation) == null || C.call(p), (E = p.stopImmediatePropagation) == null || E.call(p), t._dispatchControllerAction("toggle", W.MFV_TOGGLE);
+ p.preventDefault(), (C = p.stopPropagation) == null || C.call(p), (A = p.stopImmediatePropagation) == null || A.call(p), t._dispatchControllerAction("toggle", W.MFV_TOGGLE);
return;
}
t._forwardKeydownToController(p);
@@ -1844,8 +1847,8 @@ function En(t, e) {
if (!t.element || t._isPopped) return;
const r = t._resizeState;
if (!r) {
- const _ = n(d);
- t.element.style.cursor = _ ? t._resizeCursorForDirection(_) : "";
+ const g = n(d);
+ t.element.style.cursor = g ? t._resizeCursorForDirection(g) : "";
return;
}
if (r.pointerId !== d.pointerId) return;
@@ -1888,11 +1891,11 @@ function Pn(t, e) {
const p = Math.min(
window.innerWidth - d.offsetWidth,
Math.max(0, h.clientX - a)
- ), _ = Math.min(
+ ), g = Math.min(
window.innerHeight - d.offsetHeight,
Math.max(0, h.clientY - u)
);
- d.style.left = `${p}px`, d.style.top = `${_}px`, d.style.right = "auto", d.style.bottom = "auto";
+ d.style.left = `${p}px`, d.style.top = `${g}px`, d.style.right = "auto", d.style.bottom = "auto";
}, m = () => {
try {
o == null || o.abort();
@@ -1905,7 +1908,7 @@ function Pn(t, e) {
);
}
async function Bn(t, e, n, o, i, s, l, c) {
- var m, h, p, _, y;
+ var m, h, p, g, y;
if (!n) return;
const d = H(n);
let r = null;
@@ -1914,14 +1917,14 @@ async function Bn(t, e, n, o, i, s, l, c) {
S && (r = ((p = (h = t._contentEl) == null ? void 0 : h.querySelector) == null ? void 0 : p.call(
h,
`.mjr-model3d-render-canvas[data-mjr-asset-id="${S}"]`
- )) || null), r || (r = ((y = (_ = t._contentEl) == null ? void 0 : _.querySelector) == null ? void 0 : y.call(_, ".mjr-model3d-render-canvas")) || null);
+ )) || null), r || (r = ((y = (g = t._contentEl) == null ? void 0 : g.querySelector) == null ? void 0 : y.call(g, ".mjr-model3d-render-canvas")) || null);
}
if (!r) {
const S = xt(n);
if (!S) return;
- r = await new Promise((g) => {
+ r = await new Promise((_) => {
const C = new Image();
- C.crossOrigin = "anonymous", C.onload = () => g(C), C.onerror = () => g(null), C.src = S;
+ C.crossOrigin = "anonymous", C.onload = () => _(C), C.onerror = () => _(null), C.src = S;
});
}
if (!r) return;
@@ -1960,11 +1963,11 @@ function Mn(t, e, n, o) {
e.font = `bold ${l}px system-ui, sans-serif`;
const p = e.measureText(h).width;
e.font = `${l}px system-ui, sans-serif`;
- const _ = Math.max(32, r - d * 2 - p);
+ const g = Math.max(32, r - d * 2 - p);
let y = 0, S = "";
- for (const g of f.split(" ")) {
- const C = S ? S + " " + g : g;
- e.measureText(C).width > _ && S ? (y += 1, S = g) : S = C;
+ for (const _ of f.split(" ")) {
+ const C = S ? S + " " + _ : _;
+ e.measureText(C).width > g && S ? (y += 1, S = _) : S = C;
}
S && (y += 1), a += y;
}
@@ -1993,39 +1996,39 @@ function Nn(t, e, n, o, i, s, l) {
"step",
"genTime"
], a = [];
- for (const E of r) {
- if (!t._genInfoSelections.has(E)) continue;
- const P = c[E] != null ? String(c[E]) : "";
- if (!P) continue;
- let M = E.charAt(0).toUpperCase() + E.slice(1);
- E === "lora" ? M = "LoRA" : E === "cfg" ? M = "CFG" : E === "genTime" && (M = "Gen Time"), a.push({
- label: `${M}: `,
- value: P,
- color: d[E] || "#ffffff"
+ for (const A of r) {
+ if (!t._genInfoSelections.has(A)) continue;
+ const M = c[A] != null ? String(c[A]) : "";
+ if (!M) continue;
+ let B = A.charAt(0).toUpperCase() + A.slice(1);
+ A === "lora" ? B = "LoRA" : A === "cfg" ? B = "CFG" : A === "genTime" && (B = "Gen Time"), a.push({
+ label: `${B}: `,
+ value: M,
+ color: d[A] || "#ffffff"
});
}
if (!a.length) return;
const u = 11, f = 16, m = 8, h = Math.max(100, s - m * 2);
e.save();
const p = [];
- for (const { label: E, value: P, color: M } of a) {
+ for (const { label: A, value: M, color: B } of a) {
e.font = `bold ${u}px system-ui, sans-serif`;
- const T = e.measureText(E).width;
+ const T = e.measureText(A).width;
e.font = `${u}px system-ui, sans-serif`;
const k = h - m * 2 - T, R = [];
let L = "";
- for (const D of P.split(" ")) {
+ for (const D of M.split(" ")) {
const G = L ? L + " " + D : D;
e.measureText(G).width > k && L ? (R.push(L), L = D) : L = G;
}
- L && R.push(L), p.push({ label: E, labelW: T, lines: R, color: M });
+ L && R.push(L), p.push({ label: A, labelW: T, lines: R, color: B });
}
- const y = p.reduce((E, P) => E + P.lines.length, 0) * f + m * 2, S = o + m, g = i + l - y - m;
- e.globalAlpha = 0.72, e.fillStyle = "#000", jt(e, S, g, h, y, 6), e.fill(), e.globalAlpha = 1;
- let C = g + m + u;
- for (const { label: E, labelW: P, lines: M, color: T } of p)
- for (let k = 0; k < M.length; k++)
- k === 0 ? (e.font = `bold ${u}px system-ui, sans-serif`, e.fillStyle = T, e.fillText(E, S + m, C), e.font = `${u}px system-ui, sans-serif`, e.fillStyle = "rgba(255,255,255,0.88)", e.fillText(M[k], S + m + P, C)) : (e.font = `${u}px system-ui, sans-serif`, e.fillStyle = "rgba(255,255,255,0.88)", e.fillText(M[k], S + m + P, C)), C += f;
+ const y = p.reduce((A, M) => A + M.lines.length, 0) * f + m * 2, S = o + m, _ = i + l - y - m;
+ e.globalAlpha = 0.72, e.fillStyle = "#000", jt(e, S, _, h, y, 6), e.fill(), e.globalAlpha = 1;
+ let C = _ + m + u;
+ for (const { label: A, labelW: M, lines: B, color: T } of p)
+ for (let k = 0; k < B.length; k++)
+ k === 0 ? (e.font = `bold ${u}px system-ui, sans-serif`, e.fillStyle = T, e.fillText(A, S + m, C), e.font = `${u}px system-ui, sans-serif`, e.fillStyle = "rgba(255,255,255,0.88)", e.fillText(B[k], S + m + M, C)) : (e.font = `${u}px system-ui, sans-serif`, e.fillStyle = "rgba(255,255,255,0.88)", e.fillText(B[k], S + m + M, C)), C += f;
e.restore();
}
async function Fn(t) {
@@ -2034,7 +2037,7 @@ async function Fn(t) {
t._captureBtn && (t._captureBtn.disabled = !0, t._captureBtn.setAttribute("aria-label", I("tooltip.capturingView", "Capturingβ¦")));
const e = t._contentEl.clientWidth || 480, n = t._contentEl.clientHeight || 360;
let o = n;
- if (t._mode === A.SIMPLE && t._mediaA && t._genInfoSelections.size) {
+ if (t._mode === E.SIMPLE && t._mediaA && t._genInfoSelections.size) {
const r = document.createElement("canvas");
r.width = e, r.height = n;
const a = r.getContext("2d"), u = t._estimateGenInfoOverlayHeight(a, t._mediaA, e);
@@ -2048,17 +2051,17 @@ async function Fn(t) {
const s = i.getContext("2d");
s.fillStyle = "#0d0d0d", s.fillRect(0, 0, e, o);
try {
- if (t._mode === A.SIMPLE)
+ if (t._mode === E.SIMPLE)
t._mediaA && (await t._drawMediaFit(s, t._mediaA, 0, 0, e, n), t._drawGenInfoOverlay(s, t._mediaA, 0, 0, e, o));
- else if (t._mode === A.AB) {
+ else if (t._mode === E.AB) {
const r = Math.round(t._abDividerX * e), a = t._contentEl.querySelector(
".mjr-mfv-ab-layer:not(.mjr-mfv-ab-layer--b) video"
), u = t._contentEl.querySelector(".mjr-mfv-ab-layer--b video");
t._mediaA && await t._drawMediaFit(s, t._mediaA, 0, 0, e, o, a), t._mediaB && (s.save(), s.beginPath(), s.rect(r, 0, e - r, o), s.clip(), await t._drawMediaFit(s, t._mediaB, 0, 0, e, o, u), s.restore()), s.save(), s.strokeStyle = "rgba(255,255,255,0.88)", s.lineWidth = 2, s.beginPath(), s.moveTo(r, 0), s.lineTo(r, o), s.stroke(), s.restore(), X(s, "A", 8, 8), X(s, "B", r + 8, 8), t._mediaA && t._drawGenInfoOverlay(s, t._mediaA, 0, 0, r, o), t._mediaB && t._drawGenInfoOverlay(s, t._mediaB, r, 0, e - r, o);
- } else if (t._mode === A.SIDE) {
+ } else if (t._mode === E.SIDE) {
const r = Math.floor(e / 2), a = t._contentEl.querySelector(".mjr-mfv-side-panel:first-child video"), u = t._contentEl.querySelector(".mjr-mfv-side-panel:last-child video");
t._mediaA && (await t._drawMediaFit(s, t._mediaA, 0, 0, r, o, a), t._drawGenInfoOverlay(s, t._mediaA, 0, 0, r, o)), s.fillStyle = "#111", s.fillRect(r, 0, 2, o), t._mediaB && (await t._drawMediaFit(s, t._mediaB, r, 0, r, o, u), t._drawGenInfoOverlay(s, t._mediaB, r, 0, r, o)), X(s, "A", 8, 8), X(s, "B", r + 8, 8);
- } else if (t._mode === A.GRID) {
+ } else if (t._mode === E.GRID) {
const r = Math.floor(e / 2), a = Math.floor(o / 2), u = 1, f = [
{ media: t._mediaA, label: "A", x: 0, y: 0, w: r - u, h: a - u },
{
@@ -2087,8 +2090,8 @@ async function Fn(t) {
}
], m = t._contentEl.querySelectorAll(".mjr-mfv-grid-cell");
for (let h = 0; h < f.length; h++) {
- const p = f[h], _ = ((d = m[h]) == null ? void 0 : d.querySelector("video")) || null;
- p.media && (await t._drawMediaFit(s, p.media, p.x, p.y, p.w, p.h, _), t._drawGenInfoOverlay(s, p.media, p.x, p.y, p.w, p.h)), X(s, p.label, p.x + 8, p.y + 8);
+ const p = f[h], g = ((d = m[h]) == null ? void 0 : d.querySelector("video")) || null;
+ p.media && (await t._drawMediaFit(s, p.media, p.x, p.y, p.w, p.h, g), t._drawGenInfoOverlay(s, p.media, p.x, p.y, p.w, p.h)), X(s, p.label, p.x + 8, p.y + 8);
}
s.save(), s.fillStyle = "#111", s.fillRect(r - u, 0, u * 2, o), s.fillRect(0, a - u, e, u * 2), s.restore();
}
@@ -2096,9 +2099,9 @@ async function Fn(t) {
console.debug("[MFV] capture error:", r);
}
const c = `${{
- [A.AB]: "mfv-ab",
- [A.SIDE]: "mfv-side",
- [A.GRID]: "mfv-grid"
+ [E.AB]: "mfv-ab",
+ [E.SIDE]: "mfv-side",
+ [E.GRID]: "mfv-grid"
}[t._mode] ?? "mfv"}-${Date.now()}.png`;
try {
const r = i.toDataURL("image/png"), a = document.createElement("a");
@@ -2110,7 +2113,7 @@ async function Fn(t) {
}
}
function In(t, e, { autoMode: n = !1 } = {}) {
- if (t._mediaA = e || null, t._resetMfvZoom(), n && t._mode !== A.SIMPLE && (t._mode = A.SIMPLE, t._updateModeBtnUI()), t._mediaA && typeof tt == "function") {
+ if (t._mediaA = e || null, t._resetMfvZoom(), n && t._mode !== E.SIMPLE && (t._mode = E.SIMPLE, t._updateModeBtnUI()), t._mediaA && typeof tt == "function") {
const o = ++t._refreshGen;
(async () => {
var i;
@@ -2129,7 +2132,7 @@ function In(t, e, { autoMode: n = !1 } = {}) {
t._refresh();
}
function Ln(t, e, n) {
- t._mediaA = e || null, t._mediaB = n || null, t._resetMfvZoom(), t._mode === A.SIMPLE && (t._mode = A.AB, t._updateModeBtnUI());
+ t._mediaA = e || null, t._mediaB = n || null, t._resetMfvZoom(), t._mode === E.SIMPLE && (t._mode = E.AB, t._updateModeBtnUI());
const o = ++t._refreshGen, i = async (s) => {
if (!s) return s;
try {
@@ -2147,7 +2150,7 @@ function Ln(t, e, n) {
})();
}
function kn(t, e, n, o, i) {
- t._mediaA = e || null, t._mediaB = n || null, t._mediaC = o || null, t._mediaD = i || null, t._resetMfvZoom(), t._mode !== A.GRID && (t._mode = A.GRID, t._updateModeBtnUI());
+ t._mediaA = e || null, t._mediaB = n || null, t._mediaC = o || null, t._mediaD = i || null, t._resetMfvZoom(), t._mode !== E.GRID && (t._mode = E.GRID, t._updateModeBtnUI());
const s = ++t._refreshGen, l = async (c) => {
if (!c) return c;
try {
@@ -2180,7 +2183,7 @@ function $(t) {
let xn = 0;
class Vn {
constructor({ controller: e = null } = {}) {
- this._instanceId = ++xn, this._controller = e && typeof e == "object" ? { ...e } : null, this.element = null, this.isVisible = !1, this._contentEl = null, this._closeBtn = null, this._modeBtn = null, this._pinGroup = null, this._pinBtns = null, this._liveBtn = null, this._genBtn = null, this._genDropdown = null, this._captureBtn = null, this._genInfoSelections = /* @__PURE__ */ new Set(["genTime"]), this._mode = A.SIMPLE, this._mediaA = null, this._mediaB = null, this._mediaC = null, this._mediaD = null, this._pinnedSlots = /* @__PURE__ */ new Set(), this._abDividerX = 0.5, this._zoom = 1, this._panX = 0, this._panY = 0, this._panzoomAC = null, this._dragging = !1, this._compareSyncAC = null, this._btnAC = null, this._refreshGen = 0, this._popoutWindow = null, this._popoutBtn = null, this._isPopped = !1, this._desktopExpanded = !1, this._desktopExpandRestore = null, this._desktopPopoutUnsupported = !1, this._popoutCloseHandler = null, this._popoutKeydownHandler = null, this._popoutCloseTimer = null, this._popoutRestoreGuard = !1, this._previewBtn = null, this._previewBlobUrl = null, this._previewActive = !1, this._nodeStreamBtn = null, this._nodeStreamActive = !1, this._docAC = new AbortController(), this._popoutAC = null, this._panelAC = new AbortController(), this._resizeState = null, this._titleId = `mjr-mfv-title-${this._instanceId}`, this._genDropdownId = `mjr-mfv-gen-dropdown-${this._instanceId}`, this._progressEl = null, this._progressNodesEl = null, this._progressStepsEl = null, this._progressTextEl = null, this._mediaProgressEl = null, this._mediaProgressTextEl = null, this._progressUpdateHandler = null, this._progressCurrentNodeId = null, this._docClickHost = null, this._handleDocClick = null;
+ this._instanceId = ++xn, this._controller = e && typeof e == "object" ? { ...e } : null, this.element = null, this.isVisible = !1, this._contentEl = null, this._closeBtn = null, this._modeBtn = null, this._pinGroup = null, this._pinBtns = null, this._liveBtn = null, this._genBtn = null, this._genDropdown = null, this._captureBtn = null, this._genInfoSelections = /* @__PURE__ */ new Set(["genTime"]), this._mode = E.SIMPLE, this._mediaA = null, this._mediaB = null, this._mediaC = null, this._mediaD = null, this._pinnedSlots = /* @__PURE__ */ new Set(), this._abDividerX = 0.5, this._zoom = 1, this._panX = 0, this._panY = 0, this._panzoomAC = null, this._dragging = !1, this._compareSyncAC = null, this._btnAC = null, this._refreshGen = 0, this._popoutWindow = null, this._popoutBtn = null, this._isPopped = !1, this._desktopExpanded = !1, this._desktopExpandRestore = null, this._desktopPopoutUnsupported = !1, this._popoutCloseHandler = null, this._popoutKeydownHandler = null, this._popoutCloseTimer = null, this._popoutRestoreGuard = !1, this._previewBtn = null, this._previewBlobUrl = null, this._previewActive = !1, this._nodeStreamBtn = null, this._nodeStreamActive = !1, this._docAC = new AbortController(), this._popoutAC = null, this._panelAC = new AbortController(), this._resizeState = null, this._titleId = `mjr-mfv-title-${this._instanceId}`, this._genDropdownId = `mjr-mfv-gen-dropdown-${this._instanceId}`, this._progressEl = null, this._progressNodesEl = null, this._progressStepsEl = null, this._progressTextEl = null, this._mediaProgressEl = null, this._mediaProgressTextEl = null, this._progressUpdateHandler = null, this._progressCurrentNodeId = null, this._docClickHost = null, this._handleDocClick = null;
}
_dispatchControllerAction(e, n) {
var o, i, s;
@@ -2364,8 +2367,8 @@ class Vn {
e.addEventListener(
"wheel",
(r) => {
- var m, h, p, _;
- if ((h = (m = r.target) == null ? void 0 : m.closest) != null && h.call(m, "audio") || (_ = (p = r.target) == null ? void 0 : p.closest) != null && _.call(p, ".mjr-mfv-simple-player-controls") || it(r.target)) return;
+ var m, h, p, g;
+ if ((h = (m = r.target) == null ? void 0 : m.closest) != null && h.call(m, "audio") || (g = (p = r.target) == null ? void 0 : p.closest) != null && g.call(p, ".mjr-mfv-simple-player-controls") || it(r.target)) return;
const a = ue(r.target, e);
if (a && pe(
a,
@@ -2383,13 +2386,13 @@ class Vn {
e.addEventListener(
"pointerdown",
(r) => {
- var a, u, f, m, h, p, _, y, S;
- if (!(r.button !== 0 && r.button !== 1) && !(this._zoom <= 1.01) && !((u = (a = r.target) == null ? void 0 : a.closest) != null && u.call(a, "video")) && !((m = (f = r.target) == null ? void 0 : f.closest) != null && m.call(f, "audio")) && !((p = (h = r.target) == null ? void 0 : h.closest) != null && p.call(h, ".mjr-mfv-simple-player-controls")) && !((y = (_ = r.target) == null ? void 0 : _.closest) != null && y.call(_, ".mjr-mfv-ab-divider")) && !it(r.target)) {
+ var a, u, f, m, h, p, g, y, S;
+ if (!(r.button !== 0 && r.button !== 1) && !(this._zoom <= 1.01) && !((u = (a = r.target) == null ? void 0 : a.closest) != null && u.call(a, "video")) && !((m = (f = r.target) == null ? void 0 : f.closest) != null && m.call(f, "audio")) && !((p = (h = r.target) == null ? void 0 : h.closest) != null && p.call(h, ".mjr-mfv-simple-player-controls")) && !((y = (g = r.target) == null ? void 0 : g.closest) != null && y.call(g, ".mjr-mfv-ab-divider")) && !it(r.target)) {
r.preventDefault(), o = !0, this._dragging = !0, i = r.clientX, s = r.clientY, l = this._panX, c = this._panY;
try {
e.setPointerCapture(r.pointerId);
- } catch (g) {
- (S = console.debug) == null || S.call(console, g);
+ } catch (_) {
+ (S = console.debug) == null || S.call(console, _);
}
this._applyTransform();
}
@@ -2417,8 +2420,8 @@ class Vn {
e.addEventListener("pointerup", d, n), e.addEventListener("pointercancel", d, n), e.addEventListener(
"dblclick",
(r) => {
- var u, f, m, h, p, _;
- if ((f = (u = r.target) == null ? void 0 : u.closest) != null && f.call(u, "video") || (h = (m = r.target) == null ? void 0 : m.closest) != null && h.call(m, "audio") || (_ = (p = r.target) == null ? void 0 : p.closest) != null && _.call(p, ".mjr-mfv-simple-player-controls") || it(r.target)) return;
+ var u, f, m, h, p, g;
+ if ((f = (u = r.target) == null ? void 0 : u.closest) != null && f.call(u, "video") || (h = (m = r.target) == null ? void 0 : m.closest) != null && h.call(m, "audio") || (g = (p = r.target) == null ? void 0 : p.closest) != null && g.call(p, ".mjr-mfv-simple-player-controls") || it(r.target)) return;
const a = Math.abs(this._zoom - 1) < 0.05;
this._setMfvZoom(a ? Math.min(4, this._zoom * 4) : 1, r.clientX, r.clientY);
},
@@ -2446,7 +2449,7 @@ class Vn {
}
_initCompareSync() {
var e;
- if (this._destroyCompareSync(), !!this._contentEl && this._mode !== A.SIMPLE)
+ if (this._destroyCompareSync(), !!this._contentEl && this._mode !== E.SIMPLE)
try {
const n = Array.from(this._contentEl.querySelectorAll("video, audio"));
if (n.length < 2) return;
@@ -2461,16 +2464,16 @@ class Vn {
_refresh() {
if (this._contentEl) {
switch (this._destroyPanZoom(), this._destroyCompareSync(), this._contentEl.replaceChildren(), this._contentEl.style.overflow = "hidden", this._mode) {
- case A.SIMPLE:
+ case E.SIMPLE:
this._renderSimple();
break;
- case A.AB:
+ case E.AB:
this._renderAB();
break;
- case A.SIDE:
+ case E.SIDE:
this._renderSide();
break;
- case A.GRID:
+ case E.GRID:
this._renderGrid();
break;
}
@@ -2531,25 +2534,25 @@ class Vn {
let h = null;
r.addEventListener(
"pointerdown",
- (_) => {
- _.preventDefault(), r.setPointerCapture(_.pointerId);
+ (g) => {
+ g.preventDefault(), r.setPointerCapture(g.pointerId);
try {
h == null || h.abort();
} catch {
}
h = new AbortController();
- const y = h.signal, S = s.getBoundingClientRect(), g = (E) => {
- const P = Math.max(0.02, Math.min(0.98, (E.clientX - S.left) / S.width));
- this._abDividerX = P;
- const M = Math.round(P * 100);
- c.style.clipPath = `inset(0 0 0 ${M}%)`, r.style.left = `${M}%`, u && (u.style.right = `calc(${100 - M}% + 8px)`), m && (m.style.left = `calc(${M}% + 8px)`);
+ const y = h.signal, S = s.getBoundingClientRect(), _ = (A) => {
+ const M = Math.max(0.02, Math.min(0.98, (A.clientX - S.left) / S.width));
+ this._abDividerX = M;
+ const B = Math.round(M * 100);
+ c.style.clipPath = `inset(0 0 0 ${B}%)`, r.style.left = `${B}%`, u && (u.style.right = `calc(${100 - B}% + 8px)`), m && (m.style.left = `calc(${B}% + 8px)`);
}, C = () => {
try {
h == null || h.abort();
} catch {
}
};
- r.addEventListener("pointermove", g, { signal: y }), r.addEventListener("pointerup", C, { signal: y });
+ r.addEventListener("pointermove", _, { signal: y }), r.addEventListener("pointerup", C, { signal: y });
},
(p = this._panelAC) != null && p.signal ? { signal: this._panelAC.signal } : void 0
), s.appendChild(l), s.appendChild(c), s.appendChild(r), u && s.appendChild(u), m && s.appendChild(m), s.appendChild(U("A", "left")), s.appendChild(U("B", "right")), this._contentEl.appendChild(s);
@@ -2687,59 +2690,59 @@ class Vn {
return Fn(this);
}
dispose() {
- var e, n, o, i, s, l, c, d, r, a, u, f, m, h, p, _, y, S;
+ var e, n, o, i, s, l, c, d, r, a, u, f, m, h, p, g, y, S;
Zt(this), this._destroyPanZoom(), this._destroyCompareSync(), this._stopEdgeResize(), this._clearPopoutCloseWatch();
try {
(e = this._panelAC) == null || e.abort(), this._panelAC = null;
- } catch (g) {
- (n = console.debug) == null || n.call(console, g);
+ } catch (_) {
+ (n = console.debug) == null || n.call(console, _);
}
try {
(o = this._btnAC) == null || o.abort(), this._btnAC = null;
- } catch (g) {
- (i = console.debug) == null || i.call(console, g);
+ } catch (_) {
+ (i = console.debug) == null || i.call(console, _);
}
try {
(s = this._docAC) == null || s.abort(), this._docAC = null;
- } catch (g) {
- (l = console.debug) == null || l.call(console, g);
+ } catch (_) {
+ (l = console.debug) == null || l.call(console, _);
}
try {
(c = this._popoutAC) == null || c.abort(), this._popoutAC = null;
- } catch (g) {
- (d = console.debug) == null || d.call(console, g);
+ } catch (_) {
+ (d = console.debug) == null || d.call(console, _);
}
try {
(r = this._panzoomAC) == null || r.abort(), this._panzoomAC = null;
- } catch (g) {
- (a = console.debug) == null || a.call(console, g);
+ } catch (_) {
+ (a = console.debug) == null || a.call(console, _);
}
try {
(f = (u = this._compareSyncAC) == null ? void 0 : u.abort) == null || f.call(u), this._compareSyncAC = null;
- } catch (g) {
- (m = console.debug) == null || m.call(console, g);
+ } catch (_) {
+ (m = console.debug) == null || m.call(console, _);
}
try {
this._isPopped && this.popIn();
- } catch (g) {
- (h = console.debug) == null || h.call(console, g);
+ } catch (_) {
+ (h = console.debug) == null || h.call(console, _);
}
this._revokePreviewBlob(), this._onSidebarPosChanged && (window.removeEventListener("mjr-settings-changed", this._onSidebarPosChanged), this._onSidebarPosChanged = null);
try {
(p = this.element) == null || p.remove();
- } catch (g) {
- (_ = console.debug) == null || _.call(console, g);
+ } catch (_) {
+ (g = console.debug) == null || g.call(console, _);
}
this.element = null, this._contentEl = null, this._closeBtn = null, this._modeBtn = null, this._pinGroup = null, this._pinBtns = null, this._liveBtn = null, this._nodeStreamBtn = null, this._popoutBtn = null, this._captureBtn = null, this._unbindDocumentUiHandlers();
try {
(y = this._genDropdown) == null || y.remove();
- } catch (g) {
- (S = console.debug) == null || S.call(console, g);
+ } catch (_) {
+ (S = console.debug) == null || S.call(console, _);
}
this._mediaA = null, this._mediaB = null, this._mediaC = null, this._mediaD = null, this.isVisible = !1;
}
}
export {
Vn as FloatingViewer,
- A as MFV_MODES
+ E as MFV_MODES
};
diff --git a/js_dist/chunks/LiveStreamTracker-C2pYMJng.js b/js_dist/chunks/LiveStreamTracker-BR6kWxcl.js
similarity index 99%
rename from js_dist/chunks/LiveStreamTracker-C2pYMJng.js
rename to js_dist/chunks/LiveStreamTracker-BR6kWxcl.js
index 28b39b72..d3472c62 100644
--- a/js_dist/chunks/LiveStreamTracker-C2pYMJng.js
+++ b/js_dist/chunks/LiveStreamTracker-BR6kWxcl.js
@@ -1,4 +1,4 @@
-import { E as S, w as L, e as s } from "./entry-DyjnHjNW.js";
+import { E as S, w as L, e as s } from "./entry-Cn6KiPQv.js";
let l = null, c = null, d = null, m = !1, u = null, g = null, h = 0, _ = 0, f = null;
const v = /* @__PURE__ */ new WeakMap();
function k() {
diff --git a/js_dist/chunks/entry-DyjnHjNW.js b/js_dist/chunks/entry-Cn6KiPQv.js
similarity index 87%
rename from js_dist/chunks/entry-DyjnHjNW.js
rename to js_dist/chunks/entry-Cn6KiPQv.js
index 378263b0..1358dad1 100644
--- a/js_dist/chunks/entry-DyjnHjNW.js
+++ b/js_dist/chunks/entry-Cn6KiPQv.js
@@ -1,15 +1,15 @@
-import { f as ig, r as Ae, e as Je, g as og, h as js, i as Op, j as zp, u as Ge, w as an, k as kd, l as Jp, s as vs, o as Ie, c as he, F as Xt, m as Cn, n as vt, a as yt, t as Ye, p as Tp, q as Dn, v as _n, x as Bp, b as ne, y as fn, z as Fn, A as Zn, B as Up, C as Mr, D as Kp, E as Bo, G as Dp, H as br, d as Ei, T as Ls, I as Ao, J as xl, K as Xd, L as jl, M as rg } from "./mjr-vue-vendor-DZo-ZbFS.js";
-import { app as xo } from "../../../scripts/app.js";
-const Fi = "mjrSettings", lg = 1, Nd = "mjrMinimapSettings";
-function ag(e) {
+import { f as og, r as Ae, e as ze, g as rg, h as Ls, i as Tp, j as Bp, u as xe, w as cn, k as Nd, l as Up, s as Vs, o as be, c as Ce, F as Nt, m as Cn, n as Lt, a as ft, t as Ye, p as Kp, q as Dn, v as _n, x as Dp, b as ie, y as fn, z as On, A as Zn, B as Ep, C as xr, D as Hp, E as Ko, G as qp, H as yr, d as Pi, T as Ys, I as wo, J as jl, K as Rd, L as vl, M as lg } from "./mjr-vue-vendor-DZo-ZbFS.js";
+import { app as vo } from "../../../scripts/app.js";
+const Oi = "mjrSettings", ag = 1, Fd = "mjrMinimapSettings";
+function cg(e) {
try {
return String(e ?? "").trim();
} catch {
return "";
}
}
-let Rd = 0;
-function cg(e) {
+let Od = 0;
+function sg(e) {
const t = Math.max(4, Number(e) || 0);
try {
const n = globalThis.crypto;
@@ -20,18 +20,18 @@ function cg(e) {
return "";
}
}
-function Ep(e = "", t = 16) {
- const n = cg(t);
+function Pp(e = "", t = 16) {
+ const n = sg(t);
if (!n)
throw new Error("Secure token generation requires crypto.getRandomValues().");
return `${String(e || "")}${n}`;
}
-function Ys(e = "", t = 8) {
- const n = cg(t);
- return n ? `${String(e || "")}${n}` : (Rd += 1, `${String(e || "")}${Date.now().toString(36)}_${Rd.toString(36)}`);
+function ks(e = "", t = 8) {
+ const n = sg(t);
+ return n ? `${String(e || "")}${n}` : (Od += 1, `${String(e || "")}${Date.now().toString(36)}_${Od.toString(36)}`);
}
-function Hp(e) {
- const t = ag(e);
+function Qp(e) {
+ const t = cg(e);
if (!t || !/^\d+$/.test(t)) return "";
try {
const n = Number(t);
@@ -40,24 +40,24 @@ function Hp(e) {
return "";
}
}
-function pi(e) {
- return Hp(e);
+function fi(e) {
+ return Qp(e);
}
-function vi(e) {
+function Mi(e) {
var t, n;
try {
- return e ? ag(
+ return e ? cg(
e.root_id ?? e.rootId ?? e.custom_root_id ?? e.customRootId ?? e.customRoot ?? ((t = e == null ? void 0 : e.file_info) == null ? void 0 : t.root_id) ?? ((n = e == null ? void 0 : e.file_info) == null ? void 0 : n.rootId) ?? ""
) : "";
} catch {
return "";
}
}
-function ba(e) {
+function pa(e) {
return String(e || "").replace(/\\/g, "/");
}
-function qp(e) {
- const t = ba(e).trim();
+function _p(e) {
+ const t = pa(e).trim();
if (!t) return { filename: "", subfolder: "" };
const n = t.lastIndexOf("/");
return n < 0 ? { filename: t, subfolder: "" } : {
@@ -65,10 +65,10 @@ function qp(e) {
subfolder: t.slice(0, n)
};
}
-function Pp(e) {
+function $p(e) {
return /^[a-zA-Z]:\//.test(String(e || ""));
}
-const Qp = 200, _p = 0, lt = {
+const ey = 200, ty = 0, ct = {
// Health & Config
HEALTH: "/mjr/am/health",
HEALTH_COUNTERS: "/mjr/am/health/counters",
@@ -164,10 +164,10 @@ const Qp = 200, _p = 0, lt = {
// Library audit
AUDIT: "/mjr/am/audit"
};
-function Ka(e, t = {}) {
+function Da(e, t = {}) {
let n = String(e || "");
- const i = () => n.includes("?") ? "&" : "?", o = (h) => {
- n += i() + h;
+ const i = () => n.includes("?") ? "&" : "?", o = (Z) => {
+ n += i() + Z;
}, {
subfolder: r = null,
kind: l = null,
@@ -178,24 +178,24 @@ function Ka(e, t = {}) {
minWidth: u = null,
minHeight: I = null,
maxWidth: p = null,
- maxHeight: M = null,
- workflowType: Z = null,
- dateRange: A = null,
+ maxHeight: S = null,
+ workflowType: A = null,
+ dateRange: C = null,
dateExact: g = null
} = t || {};
- return r && o(`subfolder=${encodeURIComponent(String(r))}`), l && o(`kind=${encodeURIComponent(l)}`), a != null && o(`has_workflow=${encodeURIComponent(a ? "true" : "false")}`), c != null && Number(c) > 0 && o(`min_rating=${encodeURIComponent(String(c))}`), s != null && Number(s) > 0 && o(`min_size_mb=${encodeURIComponent(String(s))}`), d != null && Number(d) > 0 && o(`max_size_mb=${encodeURIComponent(String(d))}`), u != null && Number(u) > 0 && o(`min_width=${encodeURIComponent(String(u))}`), I != null && Number(I) > 0 && o(`min_height=${encodeURIComponent(String(I))}`), p != null && Number(p) > 0 && o(`max_width=${encodeURIComponent(String(p))}`), M != null && Number(M) > 0 && o(`max_height=${encodeURIComponent(String(M))}`), Z && o(`workflow_type=${encodeURIComponent(String(Z))}`), A && o(`date_range=${encodeURIComponent(String(A))}`), g && o(`date_exact=${encodeURIComponent(String(g))}`), n;
+ return r && o(`subfolder=${encodeURIComponent(String(r))}`), l && o(`kind=${encodeURIComponent(l)}`), a != null && o(`has_workflow=${encodeURIComponent(a ? "true" : "false")}`), c != null && Number(c) > 0 && o(`min_rating=${encodeURIComponent(String(c))}`), s != null && Number(s) > 0 && o(`min_size_mb=${encodeURIComponent(String(s))}`), d != null && Number(d) > 0 && o(`max_size_mb=${encodeURIComponent(String(d))}`), u != null && Number(u) > 0 && o(`min_width=${encodeURIComponent(String(u))}`), I != null && Number(I) > 0 && o(`min_height=${encodeURIComponent(String(I))}`), p != null && Number(p) > 0 && o(`max_width=${encodeURIComponent(String(p))}`), S != null && Number(S) > 0 && o(`max_height=${encodeURIComponent(String(S))}`), A && o(`workflow_type=${encodeURIComponent(String(A))}`), C && o(`date_range=${encodeURIComponent(String(C))}`), g && o(`date_exact=${encodeURIComponent(String(g))}`), n;
}
-function dl(e, t = null, n = "output") {
+function ul(e, t = null, n = "output") {
const i = String(e || "").trim();
if (!i) return "";
- let o = `${lt.VIEW}?filename=${encodeURIComponent(i)}`;
+ let o = `${ct.VIEW}?filename=${encodeURIComponent(i)}`;
return t && (o += `&subfolder=${encodeURIComponent(t)}`), o += `&type=${encodeURIComponent(n)}`, o;
}
-function Vs(e = {}) {
+function Xs(e = {}) {
const {
q: t = "*",
- limit: n = Qp,
- offset: i = _p,
+ limit: n = ey,
+ offset: i = ty,
scope: o = "output",
subfolder: r = "",
customRootId: l = null,
@@ -206,56 +206,56 @@ function Vs(e = {}) {
maxSizeMB: u = null,
resolutionCompare: I = null,
minWidth: p = null,
- minHeight: M = null,
- maxWidth: Z = null,
- maxHeight: A = null,
+ minHeight: S = null,
+ maxWidth: A = null,
+ maxHeight: C = null,
workflowType: g = null,
- dateRange: h = null,
+ dateRange: Z = null,
dateExact: f = null,
sort: b = null,
- includeTotal: v = !0,
- groupStacks: C = !1
+ includeTotal: L = !0,
+ groupStacks: h = !1
} = e;
- let S = `${lt.LIST}?q=${encodeURIComponent(t)}&limit=${n}&offset=${i}&scope=${encodeURIComponent(o)}`;
- return r && (S += `&subfolder=${encodeURIComponent(r)}`), l ? S += `&custom_root_id=${encodeURIComponent(l)}` : String(o || "").toLowerCase() === "custom" && (S += "&browser_mode=1"), S = Ka(S, {
+ let G = `${ct.LIST}?q=${encodeURIComponent(t)}&limit=${n}&offset=${i}&scope=${encodeURIComponent(o)}`;
+ return r && (G += `&subfolder=${encodeURIComponent(r)}`), l ? G += `&custom_root_id=${encodeURIComponent(l)}` : String(o || "").toLowerCase() === "custom" && (G += "&browser_mode=1"), G = Da(G, {
kind: a,
hasWorkflow: c,
minRating: s,
minSizeMB: d,
maxSizeMB: u,
minWidth: p,
- minHeight: M,
- maxWidth: Z,
- maxHeight: A,
+ minHeight: S,
+ maxWidth: A,
+ maxHeight: C,
workflowType: g,
- dateRange: h,
+ dateRange: Z,
dateExact: f
- }), I && (S += `&resolution_compare=${encodeURIComponent(String(I))}`), b && (S += `&sort=${encodeURIComponent(String(b))}`), v === !1 && (S += "&include_total=0"), C && (S += "&group_stacks=1"), S;
+ }), I && (G += `&resolution_compare=${encodeURIComponent(String(I))}`), b && (G += `&sort=${encodeURIComponent(String(b))}`), L === !1 && (G += "&include_total=0"), h && (G += "&group_stacks=1"), G;
}
-function sg(e, t = "", n = "") {
+function dg(e, t = "", n = "") {
const i = String(e || "").trim(), o = String(n || "").trim();
if (!i || !o) return "";
- let r = `${lt.CUSTOM_VIEW}?root_id=${encodeURIComponent(o)}&filename=${encodeURIComponent(i)}`;
+ let r = `${ct.CUSTOM_VIEW}?root_id=${encodeURIComponent(o)}&filename=${encodeURIComponent(i)}`;
return t && (r += `&subfolder=${encodeURIComponent(t)}`), r;
}
-function $p(e) {
- return `${lt.BATCH_ZIP_CREATE}/${encodeURIComponent(String(e || ""))}`;
+function ny(e) {
+ return `${ct.BATCH_ZIP_CREATE}/${encodeURIComponent(String(e || ""))}`;
}
-function ey(e) {
- return `${lt.STACKS}/${encodeURIComponent(String(e || ""))}`;
+function iy(e) {
+ return `${ct.STACKS}/${encodeURIComponent(String(e || ""))}`;
}
-function ty(e) {
- return `${ey(e)}/members`;
+function oy(e) {
+ return `${iy(e)}/members`;
}
-function ny(e, t = "") {
- var u, I, p, M, Z;
+function ry(e, t = "") {
+ var u, I, p, S, A;
const n = e && typeof e == "object" ? e : {}, i = String(t || "").trim();
if (!i) return "";
- const o = pi((n == null ? void 0 : n.asset_id) ?? (n == null ? void 0 : n.id) ?? null);
- let r = `${lt.VIEWER_RESOURCE}?relpath=${encodeURIComponent(i)}`;
+ const o = fi((n == null ? void 0 : n.asset_id) ?? (n == null ? void 0 : n.id) ?? null);
+ let r = `${ct.VIEWER_RESOURCE}?relpath=${encodeURIComponent(i)}`;
if (o)
return `${r}&asset_id=${encodeURIComponent(o)}`;
- const l = ba(
+ const l = pa(
String(
(n == null ? void 0 : n.filepath) || (n == null ? void 0 : n.path) || (n == null ? void 0 : n.fullpath) || (n == null ? void 0 : n.full_path) || ((u = n == null ? void 0 : n.file_info) == null ? void 0 : u.filepath) || ((I = n == null ? void 0 : n.file_info) == null ? void 0 : I.path) || ""
).trim()
@@ -265,14 +265,14 @@ function ny(e, t = "") {
const a = String((n == null ? void 0 : n.filename) || (n == null ? void 0 : n.name) || ((p = n == null ? void 0 : n.file_info) == null ? void 0 : p.filename) || "").trim();
if (!a) return "";
r += `&filename=${encodeURIComponent(a)}`;
- const c = String((n == null ? void 0 : n.subfolder) || ((M = n == null ? void 0 : n.file_info) == null ? void 0 : M.subfolder) || "").trim();
+ const c = String((n == null ? void 0 : n.subfolder) || ((S = n == null ? void 0 : n.file_info) == null ? void 0 : S.subfolder) || "").trim();
c && (r += `&subfolder=${encodeURIComponent(c)}`);
- const s = String((n == null ? void 0 : n.type) || ((Z = n == null ? void 0 : n.file_info) == null ? void 0 : Z.type) || "").trim().toLowerCase();
+ const s = String((n == null ? void 0 : n.type) || ((A = n == null ? void 0 : n.file_info) == null ? void 0 : A.type) || "").trim().toLowerCase();
s && s !== "custom" && (r += `&type=${encodeURIComponent(s)}`);
- const d = String(vi(n) || (n == null ? void 0 : n.root_id) || (n == null ? void 0 : n.custom_root_id) || "").trim();
+ const d = String(Mi(n) || (n == null ? void 0 : n.root_id) || (n == null ? void 0 : n.custom_root_id) || "").trim();
return d && (r += `&root_id=${encodeURIComponent(d)}`), r;
}
-function iy(e = {}) {
+function ly(e = {}) {
const {
scope: t = "output",
customRootId: n = null,
@@ -281,8 +281,8 @@ function iy(e = {}) {
hasWorkflow: r = null,
minRating: l = null
} = e;
- let a = `${lt.DATE_HISTOGRAM}?scope=${encodeURIComponent(t)}&month=${encodeURIComponent(String(i || ""))}`;
- return n && (a += `&custom_root_id=${encodeURIComponent(n)}`), Ka(a, {
+ let a = `${ct.DATE_HISTOGRAM}?scope=${encodeURIComponent(t)}&month=${encodeURIComponent(String(i || ""))}`;
+ return n && (a += `&custom_root_id=${encodeURIComponent(n)}`), Da(a, {
subfolder: e.subfolder ?? null,
kind: o,
hasWorkflow: r,
@@ -298,69 +298,69 @@ function iy(e = {}) {
dateExact: e.dateExact ?? null
});
}
-function Bi(e) {
- var u, I, p, M, Z;
- const t = e == null ? void 0 : e.mtime, n = (A) => !A || !t ? A : `${A}${A.includes("?") ? "&" : "?"}v=${encodeURIComponent(t)}`, i = ba(
+function Ki(e) {
+ var u, I, p, S, A;
+ const t = e == null ? void 0 : e.mtime, n = (C) => !C || !t ? C : `${C}${C.includes("?") ? "&" : "?"}v=${encodeURIComponent(t)}`, i = pa(
String(
(e == null ? void 0 : e.filepath) || (e == null ? void 0 : e.path) || (e == null ? void 0 : e.fullpath) || (e == null ? void 0 : e.full_path) || ((u = e == null ? void 0 : e.file_info) == null ? void 0 : u.filepath) || ((I = e == null ? void 0 : e.file_info) == null ? void 0 : I.path) || ""
).trim()
);
let o = String(
(e == null ? void 0 : e.filename) || (e == null ? void 0 : e.name) || ((p = e == null ? void 0 : e.file_info) == null ? void 0 : p.filename) || ""
- ).trim(), r = String((e == null ? void 0 : e.subfolder) || ((M = e == null ? void 0 : e.file_info) == null ? void 0 : M.subfolder) || "").trim();
- const a = ((A) => {
- const g = { type: "", subfolder: "", filename: "" }, h = ba(A);
- if (!h) return g;
- const f = h.toLowerCase().indexOf("/output/"), b = h.toLowerCase().indexOf("/input/");
- let v = -1;
- if (f >= 0 ? (g.type = "output", v = f + 8) : b >= 0 && (g.type = "input", v = b + 7), v >= 0) {
- const C = h.slice(v), S = C.lastIndexOf("/");
- S >= 0 ? (g.subfolder = C.slice(0, S), g.filename = C.slice(S + 1)) : g.filename = C;
+ ).trim(), r = String((e == null ? void 0 : e.subfolder) || ((S = e == null ? void 0 : e.file_info) == null ? void 0 : S.subfolder) || "").trim();
+ const a = ((C) => {
+ const g = { type: "", subfolder: "", filename: "" }, Z = pa(C);
+ if (!Z) return g;
+ const f = Z.toLowerCase().indexOf("/output/"), b = Z.toLowerCase().indexOf("/input/");
+ let L = -1;
+ if (f >= 0 ? (g.type = "output", L = f + 8) : b >= 0 && (g.type = "input", L = b + 7), L >= 0) {
+ const h = Z.slice(L), G = h.lastIndexOf("/");
+ G >= 0 ? (g.subfolder = h.slice(0, G), g.filename = h.slice(G + 1)) : g.filename = h;
} else {
- const C = qp(h);
- g.filename = C.filename;
+ const h = _p(Z);
+ g.filename = h.filename;
}
return g;
})(i);
if (!r && o.includes("/")) {
- const A = o.lastIndexOf("/");
- A > 0 && (r = o.slice(0, A), o = o.slice(A + 1));
+ const C = o.lastIndexOf("/");
+ C > 0 && (r = o.slice(0, C), o = o.slice(C + 1));
}
if (!o && a.filename && (o = a.filename), !r && a.subfolder && (r = a.subfolder), !o) return "";
- let c = String((e == null ? void 0 : e.type) || ((Z = e == null ? void 0 : e.file_info) == null ? void 0 : Z.type) || "").toLowerCase().trim();
+ let c = String((e == null ? void 0 : e.type) || ((A = e == null ? void 0 : e.file_info) == null ? void 0 : A.type) || "").toLowerCase().trim();
c !== "input" && c !== "output" && c !== "custom" && (c = ""), !c && a.type && (c = a.type), !c && i && (i.includes("/input/") ? c = "input" : i.includes("/output/") && (c = "output")), c || (c = "output");
- const s = i.includes("/output/") || i.includes("/input/"), d = Pp(r) || r.startsWith("/");
+ const s = i.includes("/output/") || i.includes("/input/"), d = $p(r) || r.startsWith("/");
if (i && c !== "custom" && (d || !s))
- return n(Da(i, { inline: !0 }));
+ return n(Ea(i, { inline: !0 }));
if (c === "custom") {
- const A = String(vi(e) || "").trim();
- if (A) return n(sg(o, r, A));
+ const C = String(Mi(e) || "").trim();
+ if (C) return n(dg(o, r, C));
if (i)
return n(
- `${lt.CUSTOM_VIEW}?filepath=${encodeURIComponent(i)}&browser_mode=1`
+ `${ct.CUSTOM_VIEW}?filepath=${encodeURIComponent(i)}&browser_mode=1`
);
const g = a.type || "output";
- return n(dl(o, r, g));
+ return n(ul(o, r, g));
}
- return i.includes("/output/") && (c = "output"), i.includes("/input/") && (c = "input"), n(dl(o, r, c));
+ return i.includes("/output/") && (c = "output"), i.includes("/input/") && (c = "input"), n(ul(o, r, c));
}
-function Da(e, t = {}) {
+function Ea(e, t = {}) {
if (!e) return "";
const n = !!(t != null && t.inline);
- let i = `${lt.DOWNLOAD}?filepath=${encodeURIComponent(e)}`;
+ let i = `${ct.DOWNLOAD}?filepath=${encodeURIComponent(e)}`;
return n && (i += "&preview=1"), i;
}
-function oy(e) {
- return e ? `${lt.DOWNLOAD_CLEAN}?filepath=${encodeURIComponent(e)}` : "";
+function ay(e) {
+ return e ? `${ct.DOWNLOAD_CLEAN}?filepath=${encodeURIComponent(e)}` : "";
}
-const ry = /* @__PURE__ */ new Set(["POST", "PUT", "DELETE", "PATCH"]), Fd = 2e4, ly = 3e5, ay = 3, cy = 400, sy = "/mjr/am/settings/security/bootstrap-token", dy = "/mjr/am/", vl = /* @__PURE__ */ new Map();
-function dg(e) {
+const cy = /* @__PURE__ */ new Set(["POST", "PUT", "DELETE", "PATCH"]), zd = 2e4, sy = 3e5, dy = 3, uy = 400, my = "/mjr/am/settings/security/bootstrap-token", gy = "/mjr/am/", Ll = /* @__PURE__ */ new Map();
+function ug(e) {
return new Promise((t) => setTimeout(t, e));
}
-function Qr(e) {
- return ry.has(String(e || "").trim().toUpperCase());
+function $r(e) {
+ return cy.has(String(e || "").trim().toUpperCase());
}
-function ug(e) {
+function mg(e) {
var t;
try {
const n = String(e || "").trim();
@@ -374,13 +374,13 @@ function ug(e) {
return "";
}
}
-function Fc(e) {
- return ug(e).startsWith(dy);
+function zc(e) {
+ return mg(e).startsWith(gy);
}
-function _l(e) {
- return ug(e) === sy;
+function $l(e) {
+ return mg(e) === my;
}
-function uy(e) {
+function Iy(e) {
try {
if (!e) return !1;
const t = String(e.name || "");
@@ -391,25 +391,25 @@ function uy(e) {
return !1;
}
}
-function Oc(e = {}) {
+function Jc(e = {}) {
try {
const t = Number(e == null ? void 0 : e.timeoutMs);
- return Number.isFinite(t) ? Math.max(1e3, Math.min(ly, Math.floor(t))) : Fd;
+ return Number.isFinite(t) ? Math.max(1e3, Math.min(sy, Math.floor(t))) : zd;
} catch {
- return Fd;
+ return zd;
}
}
-function my(e = {}) {
+function by(e = {}) {
var l, a;
const t = (e == null ? void 0 : e.signal) || null;
if (typeof AbortController > "u")
return {
signal: t || void 0,
- timeoutMs: Oc(e),
+ timeoutMs: Jc(e),
cleanup: () => {
}
};
- const n = Oc(e), i = new AbortController();
+ const n = Jc(e), i = new AbortController();
let o = null;
const r = () => {
var c, s;
@@ -459,30 +459,30 @@ function my(e = {}) {
}
};
}
-function gy(e, t, n = {}) {
+function py(e, t, n = {}) {
const i = String(e).trim().toUpperCase(), o = String(t || "").trim();
if (!i || !o) return "";
- const r = Oc(n);
+ const r = Jc(n);
return `${i}:${o}:timeout=${r}`;
}
-function Iy(e, t) {
+function yy(e, t) {
const n = String(e || "").trim();
if (!n) return t();
- if (vl.has(n))
- return vl.get(n);
+ if (Ll.has(n))
+ return Ll.get(n);
const i = Promise.resolve().then(() => t()).finally(() => {
var o;
try {
- vl.delete(n);
+ Ll.delete(n);
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
});
- return vl.set(n, i), i;
+ return Ll.set(n, i), i;
}
-function by(e, t, n) {
+function fy(e, t, n) {
var i, o;
- if (Qr(t))
+ if ($r(t))
try {
e instanceof Headers ? e.has("X-Requested-With") || e.set("X-Requested-With", "XMLHttpRequest") : e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest");
} catch (r) {
@@ -494,7 +494,7 @@ function by(e, t, n) {
(o = console.debug) == null || o.call(console, r);
}
}
-function py(e, t) {
+function hy(e, t) {
var n;
if (t)
try {
@@ -503,11 +503,11 @@ function py(e, t) {
(n = console.debug) == null || n.call(console, i);
}
}
-async function yy(e, t, n, i, { ensureWriteAuthToken: o, normalizeWriteAuthFailure: r, fetchAPI: l, options: a, retryCount: c }) {
+async function Cy(e, t, n, i, { ensureWriteAuthToken: o, normalizeWriteAuthFailure: r, fetchAPI: l, options: a, retryCount: c }) {
var I;
const s = e.headers.get("content-type") || "";
if (!s.includes("application/json"))
- return !i && Qr(n) && Fc(t) && !_l(t) && Number(e.status || 0) === 401 && await o({ force: !0, allowCookieRefresh: !0 }) ? await l(t, { ...a, _authRetryDone: !0 }, c) : {
+ return !i && $r(n) && zc(t) && !$l(t) && Number(e.status || 0) === 401 && await o({ force: !0, allowCookieRefresh: !0 }) ? await l(t, { ...a, _authRetryDone: !0 }, c) : {
ok: !1,
error: `Server returned non-JSON response (${e.status})`,
code: "INVALID_RESPONSE",
@@ -516,8 +516,8 @@ async function yy(e, t, n, i, { ensureWriteAuthToken: o, normalizeWriteAuthFailu
data: null
};
let d = await e.json().catch((p) => {
- var M;
- return (M = console.debug) == null || M.call(console, "[MJR API] JSON parse error:", p), null;
+ var S;
+ return (S = console.debug) == null || S.call(console, "[MJR API] JSON parse error:", p), null;
});
if (typeof d != "object" || d === null)
return {
@@ -533,9 +533,9 @@ async function yy(e, t, n, i, { ensureWriteAuthToken: o, normalizeWriteAuthFailu
} catch (p) {
(I = console.debug) == null || I.call(console, p);
}
- return !i && Qr(n) && !_l(t) && !(d != null && d.ok) && (String((d == null ? void 0 : d.code) || "").toUpperCase() === "AUTH_REQUIRED" || Number((d == null ? void 0 : d.status) || 0) === 401) && await o({ force: !0, allowCookieRefresh: !0 }) ? await l(t, { ...a, _authRetryDone: !0 }, c) : (Qr(n) && Fc(t) && !_l(t) && (d = r(d)), d);
+ return !i && $r(n) && !$l(t) && !(d != null && d.ok) && (String((d == null ? void 0 : d.code) || "").toUpperCase() === "AUTH_REQUIRED" || Number((d == null ? void 0 : d.status) || 0) === 401) && await o({ force: !0, allowCookieRefresh: !0 }) ? await l(t, { ...a, _authRetryDone: !0 }, c) : ($r(n) && zc(t) && !$l(t) && (d = r(d)), d);
}
-function fy({
+function Zy({
readObsEnabled: e = () => !1,
readAuthToken: t = () => "",
ensureWriteAuthToken: n = async () => "",
@@ -543,39 +543,39 @@ function fy({
trackApiCall: o = null
} = {}) {
async function r(c, s = {}, d = 0) {
- var M, Z, A, g, h, f, b;
- const u = typeof performance < "u" ? performance.now() : Date.now(), I = my(s);
+ var S, A, C, g, Z, f, b;
+ const u = typeof performance < "u" ? performance.now() : Date.now(), I = by(s);
let p = null;
try {
- const v = (s.method || "GET").toUpperCase(), C = !!(s != null && s._authRetryDone), S = typeof Headers < "u" ? new Headers(s.headers || {}) : { ...s.headers };
- by(S, v, !!e());
+ const L = (s.method || "GET").toUpperCase(), h = !!(s != null && s._authRetryDone), G = typeof Headers < "u" ? new Headers(s.headers || {}) : { ...s.headers };
+ fy(G, L, !!e());
let W = t();
- if (!W && Qr(v) && Fc(c) && !_l(c)) {
+ if (!W && $r(L) && zc(c) && !$l(c)) {
try {
await n();
- } catch (G) {
- (M = console.debug) == null || M.call(console, G);
+ } catch (x) {
+ (S = console.debug) == null || S.call(console, x);
}
W = t();
}
- py(S, W);
- const y = { ...s, headers: S, signal: I.signal };
+ hy(G, W);
+ const y = { ...s, headers: G, signal: I.signal };
try {
delete y._authRetryDone, delete y.timeoutMs;
- } catch (G) {
- (Z = console.debug) == null || Z.call(console, G);
+ } catch (x) {
+ (A = console.debug) == null || A.call(console, x);
}
- const k = await fetch(c, y);
- return p = await yy(k, c, v, C, {
+ const X = await fetch(c, y);
+ return p = await Cy(X, c, L, h, {
ensureWriteAuthToken: n,
normalizeWriteAuthFailure: i,
fetchAPI: r,
options: s,
retryCount: d
}), p;
- } catch (v) {
+ } catch (L) {
try {
- if (String((v == null ? void 0 : v.name) || "") === "AbortError")
+ if (String((L == null ? void 0 : L.name) || "") === "AbortError")
return s != null && s.signal && s.signal.aborted ? { ok: !1, error: "Aborted", code: "ABORTED", data: null } : {
ok: !1,
error: `Request timed out after ${I.timeoutMs}ms`,
@@ -583,41 +583,41 @@ function fy({
data: null,
timeout_ms: I.timeoutMs
};
- } catch (C) {
- (A = console.debug) == null || A.call(console, C);
+ } catch (h) {
+ (C = console.debug) == null || C.call(console, h);
}
- if (d < ay && uy(v)) {
+ if (d < dy && Iy(L)) {
try {
- await dg(cy * (d + 1));
- } catch (C) {
- (g = console.debug) == null || g.call(console, C);
+ await ug(uy * (d + 1));
+ } catch (h) {
+ (g = console.debug) == null || g.call(console, h);
}
return await r(c, s, d + 1);
}
return {
ok: !1,
- error: (v == null ? void 0 : v.message) || String(v || "Network error"),
+ error: (L == null ? void 0 : L.message) || String(L || "Network error"),
code: "NETWORK_ERROR",
data: null,
retries: d
};
} finally {
try {
- const C = (typeof performance < "u" ? performance.now() : Date.now()) - u;
- typeof o == "function" ? o(C, !(p != null && p.ok)) : typeof window < "u" && window.MajoorMetrics && window.MajoorMetrics.trackApiCall(C, !(p != null && p.ok));
- } catch (v) {
- (h = console.debug) == null || h.call(console, v);
+ const h = (typeof performance < "u" ? performance.now() : Date.now()) - u;
+ typeof o == "function" ? o(h, !(p != null && p.ok)) : typeof window < "u" && window.MajoorMetrics && window.MajoorMetrics.trackApiCall(h, !(p != null && p.ok));
+ } catch (L) {
+ (Z = console.debug) == null || Z.call(console, L);
}
try {
(f = I.cleanup) == null || f.call(I);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
}
}
async function l(c, s = {}) {
- const d = (s == null ? void 0 : s.dedupe) === !1 ? "" : String((s == null ? void 0 : s.dedupeKey) || "").trim() || gy("GET", c, s);
- return Iy(d, () => r(c, { ...s, method: "GET" }));
+ const d = (s == null ? void 0 : s.dedupe) === !1 ? "" : String((s == null ? void 0 : s.dedupeKey) || "").trim() || py("GET", c, s);
+ return yy(d, () => r(c, { ...s, method: "GET" }));
}
async function a(c, s, d = {}) {
return r(c, {
@@ -629,7 +629,7 @@ function fy({
}
return { fetchAPI: r, get: l, post: a };
}
-function Cr({ ttlMs: e = 0, maxSize: t = 100, now: n = () => Date.now() } = {}) {
+function Wr({ ttlMs: e = 0, maxSize: t = 100, now: n = () => Date.now() } = {}) {
const i = /* @__PURE__ */ new Map();
function o() {
try {
@@ -660,8 +660,8 @@ function Cr({ ttlMs: e = 0, maxSize: t = 100, now: n = () => Date.now() } = {})
}
function c(u = o(), I = r()) {
if (I > 0)
- for (const [p, M] of i.entries())
- a(M, u, I) && i.delete(p);
+ for (const [p, S] of i.entries())
+ a(S, u, I) && i.delete(p);
}
function s() {
const u = l();
@@ -678,21 +678,21 @@ function Cr({ ttlMs: e = 0, maxSize: t = 100, now: n = () => Date.now() } = {})
get(u) {
const I = o(), p = r();
c(I, p);
- const M = i.get(u);
- if (M) {
- if (a(M, I, p)) {
+ const S = i.get(u);
+ if (S) {
+ if (a(S, I, p)) {
i.delete(u);
return;
}
- return M.value;
+ return S.value;
}
},
has(u) {
return this.get(u) !== void 0;
},
set(u, I, p = {}) {
- const M = Number(p == null ? void 0 : p.at), Z = Number.isFinite(M) ? M : o(), A = { value: I, at: Z };
- return i.has(u) ? d(u, A) : i.set(u, A), c(o(), r()), s(), I;
+ const S = Number(p == null ? void 0 : p.at), A = Number.isFinite(S) ? S : o(), C = { value: I, at: A };
+ return i.has(u) ? d(u, C) : i.set(u, C), c(o(), r()), s(), I;
},
delete(u) {
return i.delete(u);
@@ -714,12 +714,12 @@ function Cr({ ttlMs: e = 0, maxSize: t = 100, now: n = () => Date.now() } = {})
}
};
}
-let pa = null, ya = null;
-const mg = 50;
-function xi(e) {
+let ya = null, fa = null;
+const gg = 50;
+function Li(e) {
return !!e && typeof e == "object";
}
-function fa(e, t) {
+function ha(e, t) {
try {
if (!e || typeof e != "object" && typeof e != "function") return null;
const n = Object.getOwnPropertyDescriptor(e, t);
@@ -728,32 +728,32 @@ function fa(e, t) {
return null;
}
}
-function ar(e) {
- return xi(e) ? typeof e.fetchApi == "function" || typeof e.apiURL == "function" || xi(e.settings) : !1;
+function sr(e) {
+ return Li(e) ? typeof e.fetchApi == "function" || typeof e.apiURL == "function" || Li(e.settings) : !1;
}
-function $l(e) {
- return xi(e) ? xi(e.ui) || xi(e.canvas) || xi(e.graph) || typeof e.loadGraphData == "function" || ar(e.api) : !1;
+function ea(e) {
+ return Li(e) ? Li(e.ui) || Li(e.canvas) || Li(e.graph) || typeof e.loadGraphData == "function" || sr(e.api) : !1;
}
-function Od(e) {
- return $l(e) && (pa = e), pa;
+function Jd(e) {
+ return ea(e) && (ya = e), ya;
}
-function hy(e) {
- return ar(e) && (ya = e), ya;
+function Ay(e) {
+ return sr(e) && (fa = e), fa;
}
-function ha(e) {
+function Ca(e) {
var i, o, r, l, a;
- if (ar(ya)) return ya;
- const t = xi(e) ? e : Qn(), n = (t == null ? void 0 : t.api) || ((i = t == null ? void 0 : t.ui) == null ? void 0 : i.api) || ((r = (o = t == null ? void 0 : t.ui) == null ? void 0 : o.app) == null ? void 0 : r.api) || null;
- if (ar(n)) return n;
+ if (sr(fa)) return fa;
+ const t = Li(e) ? e : Qn(), n = (t == null ? void 0 : t.api) || ((i = t == null ? void 0 : t.ui) == null ? void 0 : i.api) || ((r = (o = t == null ? void 0 : t.ui) == null ? void 0 : o.app) == null ? void 0 : r.api) || null;
+ if (sr(n)) return n;
try {
- const c = typeof window < "u" ? fa(window, "api") : null;
- if (ar(c)) return c;
+ const c = typeof window < "u" ? ha(window, "api") : null;
+ if (sr(c)) return c;
} catch (c) {
(l = console.debug) == null || l.call(console, c);
}
try {
- const c = typeof globalThis < "u" ? fa(globalThis, "api") : null;
- if (ar(c)) return c;
+ const c = typeof globalThis < "u" ? ha(globalThis, "api") : null;
+ if (sr(c)) return c;
} catch (c) {
(a = console.debug) == null || a.call(console, c);
}
@@ -761,28 +761,28 @@ function ha(e) {
}
function Qn() {
var e, t;
- if ($l(pa)) return pa;
+ if (ea(ya)) return ya;
try {
- const n = typeof globalThis < "u" ? fa(globalThis, "app") : null;
- if ($l(n)) return n;
+ const n = typeof globalThis < "u" ? ha(globalThis, "app") : null;
+ if (ea(n)) return n;
} catch (n) {
(e = console.debug) == null || e.call(console, n);
}
try {
- const n = typeof window < "u" ? fa(window, "app") : null;
- if ($l(n)) return n;
+ const n = typeof window < "u" ? ha(window, "app") : null;
+ if (ea(n)) return n;
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
return null;
}
-function Cy(e) {
+function Wy(e) {
var n, i, o, r;
- const t = xi(e) ? e : Qn();
+ const t = Li(e) ? e : Qn();
return !t || typeof t != "object" ? null : ((n = t == null ? void 0 : t.ui) == null ? void 0 : n.settings) || (t == null ? void 0 : t.settings) || ((o = (i = t == null ? void 0 : t.ui) == null ? void 0 : i.api) == null ? void 0 : o.settings) || ((r = t == null ? void 0 : t.api) == null ? void 0 : r.settings) || null;
}
-function Zy(e, t) {
- const n = Cy(e);
+function wy(e, t) {
+ const n = Wy(e);
if (!n || typeof (n == null ? void 0 : n.getSettingValue) != "function") return null;
try {
return n.getSettingValue(t);
@@ -790,25 +790,25 @@ function Zy(e, t) {
return null;
}
}
-function Ea(e) {
+function Ha(e) {
var n;
- const t = xi(e) ? e : Qn();
+ const t = Li(e) ? e : Qn();
return (t == null ? void 0 : t.extensionManager) || ((n = t == null ? void 0 : t.ui) == null ? void 0 : n.extensionManager) || null;
}
-function gg(e) {
- return xi(e) && ((e == null ? void 0 : e.sidebarTab) || (e == null ? void 0 : e.sidebarTabStore)) || null;
+function Ig(e) {
+ return Li(e) && ((e == null ? void 0 : e.sidebarTab) || (e == null ? void 0 : e.sidebarTabStore)) || null;
}
-function Ay(e) {
- const t = Ea(e), n = (t == null ? void 0 : t.toast) || null;
+function My(e) {
+ const t = Ha(e), n = (t == null ? void 0 : t.toast) || null;
return n && typeof n.add == "function" ? n : null;
}
-function Wy(e) {
- const t = Ea(e), n = (t == null ? void 0 : t.dialog) || null;
+function Sy(e) {
+ const t = Ha(e), n = (t == null ? void 0 : t.dialog) || null;
return n && (typeof n.confirm == "function" || typeof n.prompt == "function") ? n : null;
}
-function wy(e, t) {
+function Gy(e, t) {
var a, c, s, d;
- const n = xi(e) ? e : Qn(), i = Ea(n), o = gg(i), r = String(t).trim();
+ const n = Li(e) ? e : Qn(), i = Ha(n), o = Ig(i), r = String(t).trim();
if (!i || !r) return !1;
const l = [
"activateSidebarTab",
@@ -837,9 +837,9 @@ function wy(e, t) {
}
return !1;
}
-function My(e, t) {
+function xy(e, t) {
var r;
- const n = Ea(e), i = t && typeof t == "object" ? { ...t } : null;
+ const n = Ha(e), i = t && typeof t == "object" ? { ...t } : null;
if (!n || !i) return !1;
const o = ["registerCommand", "addCommand"];
for (const l of o)
@@ -851,10 +851,10 @@ function My(e, t) {
}
return !1;
}
-function Sy(e, t) {
+function jy(e, t) {
var n, i;
try {
- const o = xi(e) ? e : Qn(), r = (o == null ? void 0 : o.extensionManager) || ((n = o == null ? void 0 : o.ui) == null ? void 0 : n.extensionManager) || null, l = gg(r);
+ const o = Li(e) ? e : Qn(), r = (o == null ? void 0 : o.extensionManager) || ((n = o == null ? void 0 : o.ui) == null ? void 0 : n.extensionManager) || null, l = Ig(r);
for (const a of [r, l])
if (a && typeof a.registerSidebarTab == "function")
return a.registerSidebarTab(t), !0;
@@ -863,10 +863,10 @@ function Sy(e, t) {
}
return !1;
}
-function Ig(e) {
+function bg(e) {
return new Promise((t) => setTimeout(t, Math.max(0, Number(e) || 0)));
}
-function bg(e, t) {
+function pg(e, t) {
var n;
try {
console.warn(`[Majoor] ${e} timed out after ${Math.max(0, Number(t) || 0)}ms`);
@@ -874,9 +874,9 @@ function bg(e, t) {
(n = console.debug) == null || n.call(console, i);
}
}
-async function Gy({
+async function vy({
timeoutMs: e = 4e3,
- intervalMs: t = mg,
+ intervalMs: t = gg,
warnOnTimeout: n = !0,
rejectOnTimeout: i = !1
} = {}) {
@@ -884,36 +884,36 @@ async function Gy({
for (; Date.now() - o < r; ) {
const a = Qn();
if (a && typeof a == "object") return a;
- await Ig(t);
+ await bg(t);
}
const l = Qn();
if (l && typeof l == "object") return l;
- if (n && bg("waitForComfyApp", r), i)
+ if (n && pg("waitForComfyApp", r), i)
throw new Error(`waitForComfyApp timeout after ${r}ms`);
return null;
}
-async function pg({
+async function yg({
app: e = null,
timeoutMs: t = 4e3,
- intervalMs: n = mg,
+ intervalMs: n = gg,
warnOnTimeout: i = !0,
rejectOnTimeout: o = !1
} = {}) {
const r = Date.now(), l = Math.max(0, Number(t) || 0);
for (; Date.now() - r < l; ) {
- const c = e || Qn(), s = ha(c);
+ const c = e || Qn(), s = Ca(c);
if (s) return s;
- await Ig(n);
+ await bg(n);
}
- const a = ha(e || Qn());
+ const a = Ca(e || Qn());
if (a) return a;
- if (i && bg("waitForComfyApi", l), o)
+ if (i && pg("waitForComfyApi", l), o)
throw new Error(`waitForComfyApi timeout after ${l}ms`);
return null;
}
-const or = /* @__PURE__ */ new Map();
-let Ca = !1, _r = null;
-function lc() {
+const lr = /* @__PURE__ */ new Map();
+let Za = !1, el = null;
+function ac() {
try {
if (typeof window > "u") return null;
const e = window.localStorage;
@@ -922,9 +922,9 @@ function lc() {
return null;
}
}
-function zc(e, t, n) {
+function Tc(e, t, n) {
var o;
- const i = or.get(String(e || ""));
+ const i = lr.get(String(e || ""));
if (!(!i || !i.size))
for (const r of Array.from(i))
try {
@@ -933,21 +933,21 @@ function zc(e, t, n) {
(o = console.debug) == null || o.call(console, l);
}
}
-function xy() {
+function Ly() {
var e;
- if (!Ca)
+ if (!Za)
try {
- _r = (t) => {
+ el = (t) => {
const n = String((t == null ? void 0 : t.key) || "");
- n && zc(n, (t == null ? void 0 : t.newValue) ?? null, (t == null ? void 0 : t.oldValue) ?? null);
- }, window.addEventListener("storage", _r), Ca = !0;
+ n && Tc(n, (t == null ? void 0 : t.newValue) ?? null, (t == null ? void 0 : t.oldValue) ?? null);
+ }, window.addEventListener("storage", el), Za = !0;
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
}
const ni = {
get(e) {
- const t = lc();
+ const t = ac();
if (!t) return null;
try {
return t.getItem(String(e || ""));
@@ -958,14 +958,14 @@ const ni = {
set(e, t) {
const n = String(e || "");
if (!n) return !1;
- const i = lc();
+ const i = ac();
if (!i) return !1;
const o = ni.get(n);
try {
if (t == null)
- return i.removeItem(n), zc(n, null, o), !0;
+ return i.removeItem(n), Tc(n, null, o), !0;
const r = String(t);
- return i.setItem(n, r), zc(n, r, o), !0;
+ return i.setItem(n, r), Tc(n, r, o), !0;
} catch {
return !1;
}
@@ -974,13 +974,13 @@ const ni = {
const n = String(e || "");
if (!n || typeof t != "function") return () => {
};
- xy();
- let i = or.get(n);
- return i || (i = /* @__PURE__ */ new Set(), or.set(n, i)), i.add(t), () => {
+ Ly();
+ let i = lr.get(n);
+ return i || (i = /* @__PURE__ */ new Set(), lr.set(n, i)), i.add(t), () => {
var o;
try {
- const r = or.get(n);
- r == null || r.delete(t), r && !r.size && or.delete(n);
+ const r = lr.get(n);
+ r == null || r.delete(t), r && !r.size && lr.delete(n);
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
@@ -988,7 +988,7 @@ const ni = {
},
getAll() {
var n;
- const e = {}, t = lc();
+ const e = {}, t = ac();
if (!t) return e;
try {
const i = Number(t.length || 0) || 0;
@@ -1004,17 +1004,17 @@ const ni = {
dispose() {
var e;
try {
- Ca && _r && typeof window < "u" && window.removeEventListener("storage", _r);
+ Za && el && typeof window < "u" && window.removeEventListener("storage", el);
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
- Ca = !1, _r = null, or.clear();
+ Za = !1, el = null, lr.clear();
}
-}, Ni = "en-US";
-let Ui = Ni;
-const zd = /* @__PURE__ */ new Set(), Jc = ["mjr_lang", "majoor.lang"], yg = "mjr_lang_follow_comfy", Jd = 500, kr = /* @__PURE__ */ new Set();
-let Xr = null;
-const jy = /* @__PURE__ */ new Set(["ar-SA", "fa-IR", "he-IL"]), Td = {
+}, Ri = "en-US";
+let Ei = Ri;
+const Td = /* @__PURE__ */ new Set(), Bc = ["mjr_lang", "majoor.lang"], fg = "mjr_lang_follow_comfy", Bd = 500, Nr = /* @__PURE__ */ new Set();
+let Rr = null;
+const Vy = /* @__PURE__ */ new Set(["ar-SA", "fa-IR", "he-IL"]), Ud = {
// French
fr: "fr-FR",
"fr-fr": "fr-FR",
@@ -1345,6 +1345,7 @@ Manager`,
"tags.title": "Tags: {tags}",
"tags.label": "Tags",
"tags.addLabel": "Add tag",
+ "tags.remove": "Remove tag",
"tags.suggestions": "Tag suggestions",
"label.messages": "Messages",
"label.readMe": "Read Me",
@@ -1580,6 +1581,12 @@ Watcher pending files: {pending}`,
"msg.shortcuts.section.mfv": "Floating Viewer",
"msg.shortcuts.section.video": "Video Playback",
"msg.category.release": "Release",
+ "msg.whatsNew.title.version246": "New Version 2.4.6",
+ "msg.whatsNew.body.version246": "Version 2.4.6 released: Various bug fixes and performance & fluidity improvements. Improved concatenate support for default and custom nodes (by Forsion07). Added support helpers for Api Node and Ernie Image. Live Stream in Floating Viewer is now disabled by default. See CHANGELOG for details.",
+ "label.changelog": "Changelog",
+ "label.settingsGuide": "Settings Guide",
+ "msg.tip.title.mfvLivePreviewDefaults": "Tip β Floating Viewer Auto-Open",
+ "msg.tip.body.mfvLivePreviewDefaults": "Live Stream (green button in the viewer) and KSampler Preview can be activated by default via Settings β Majoor Assets Manager βΊ Viewer. When Live Stream is on, clicking a Load Image node or when a generation ends will automatically open the Floating Viewer and display the result. KSampler Preview streams the denoising steps live. Both toggles can be set as the default state so the viewer is always ready.",
"msg.whatsNew.title.version243": "New Version 2.4.3",
"msg.whatsNew.body.version243": "Version 2.4.3 released: Improved assets metadata parsing, Grid Compare capability in floating viewer up to 4 Assets, ping pong loop in main Viewer player, job id and stack id in DB for better assets management, stack assets generated from same workflow job with same job ID, generated feed feature, lite version of grid in bottom tab. Code refactor for maintainability and various bug fixes. See CHANGELOG for details.",
"msg.whatsNew.title.version241": "New Version 2.4.1",
@@ -2073,6 +2080,7 @@ Continuer ?`,
"tags.title": "Tags : {tags}",
"tags.label": "Tags",
"tags.addLabel": "Ajouter un tag",
+ "tags.remove": "Supprimer le tag",
"tags.suggestions": "Suggestions de tags",
"label.thisFile": "ce fichier",
"label.messages": "Messages",
@@ -2097,6 +2105,12 @@ Continuer ?`,
"msg.shortcuts.section.mfv": "Floating Viewer",
"msg.shortcuts.section.video": "Lecture video",
"msg.category.release": "Version",
+ "msg.whatsNew.title.version246": "Nouvelle Version 2.4.6",
+ "msg.whatsNew.body.version246": "Version 2.4.6 publiee : divers correctifs de bugs et ameliorations de performances et fluidite. Support concatenate ameliore pour les nodes par defaut et custom (par Forsion07). Ajout des helpers pour Api Node et Ernie Image. Le Live Stream du Floating Viewer est desormais desactive par defaut. Voir CHANGELOG pour details.",
+ "label.changelog": "Changelog",
+ "label.settingsGuide": "Guide des paramètres",
+ "msg.tip.title.mfvLivePreviewDefaults": "Conseil β Ouverture automatique du Viewer",
+ "msg.tip.body.mfvLivePreviewDefaults": "Le Live Stream (bouton vert dans le viewer) et la prΓ©visualisation KSampler peuvent Γͺtre activΓ©s par dΓ©faut via ParamΓ¨tres β Majoor Assets Manager βΊ Viewer. Lorsque le Live Stream est actif, cliquer sur un node Load Image ou la fin d'une gΓ©nΓ©ration ouvrira automatiquement le Floating Viewer et affichera le rΓ©sultat. La prΓ©visualisation KSampler diffuse les Γ©tapes de dΓ©bruitage en direct. Les deux options peuvent Γͺtre dΓ©finies comme Γ©tat par dΓ©faut pour que le viewer soit toujours prΓͺt.",
"msg.whatsNew.title.version243": "Nouvelle Version 2.4.3",
"msg.whatsNew.body.version243": "Version 2.4.3 publiee : analyse des metadonnees des assets amelioree, capacite Grid Compare dans le floating viewer jusqu'a 4 Assets, boucle ping pong dans le Viewer principal, job id et stack id dans la BDD pour une meilleure gestion des assets, empilement des assets generes depuis le meme workflow avec le meme job ID, fonctionnalite de feed genere, version legere de la grille dans l'onglet bottom. Refactorisation du code pour la maintenabilite et divers correctifs de bugs. Voir CHANGELOG pour details.",
"msg.whatsNew.title.version241": "Nouvelle Version 2.4.1",
@@ -2124,7 +2138,7 @@ Pour eviter les erreurs de base de donnees avec cette version, supprimez votre i
"msg.nightlyUpdateDetail": "Une build nightly plus recente est disponible : https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager/releases/tag/nightly",
"tooltip.starGithub": "Ouvrir GitHub et mettre une etoile"
}
-}, vy = Object.freeze({
+}, Yy = Object.freeze({
"en-US": "English",
"fr-FR": "FranΓ§ais",
"zh-CN": "Chinese (Simplified)",
@@ -2176,35 +2190,35 @@ Pour eviter les erreurs de base de donnees avec cette version, supprimez votre i
].forEach((e) => {
En[e] || (En[e] = {});
});
-let Za = !1, ac = null;
-function Ly(e) {
- Za || (Za = !0, Object.entries(e || {}).forEach(([t, n]) => {
+let Aa = !1, cc = null;
+function ky(e) {
+ Aa || (Aa = !0, Object.entries(e || {}).forEach(([t, n]) => {
En[t] = { ...En[t] || {}, ...n || {} };
- }), ks());
+ }), Ns());
}
-function ks() {
+function Ns() {
const e = En["en-US"] || {};
Object.keys(En).forEach((t) => {
t !== "en-US" && (En[t] = { ...e, ...En[t] || {} });
});
}
-function Yy() {
- return Za ? Promise.resolve() : (ac || (ac = import("./i18n.generated-CpvCqt87.js").then(({ GENERATED_TRANSLATIONS: e }) => {
- Ly(e);
+function Xy() {
+ return Aa ? Promise.resolve() : (cc || (cc = import("./i18n.generated-CpvCqt87.js").then(({ GENERATED_TRANSLATIONS: e }) => {
+ ky(e);
}).catch((e) => {
- console.warn("[Majoor i18n] Failed to load generated translations:", e), ks();
- })), ac);
+ console.warn("[Majoor i18n] Failed to load generated translations:", e), Ns();
+ })), cc);
}
-ks();
-function ea(e) {
- if (!e) return Ni;
+Ns();
+function ta(e) {
+ if (!e) return Ri;
const t = String(e || "").trim(), n = t.toLowerCase();
- return Td[n] ? Td[n] : En[t] ? t : Ni;
+ return Ud[n] ? Ud[n] : En[t] ? t : Ri;
}
-function Vy() {
+function Ny() {
var e;
try {
- for (const t of Jc) {
+ for (const t of Bc) {
const n = String(ni.get(t) || "").trim();
if (n) return n;
}
@@ -2213,33 +2227,33 @@ function Vy() {
}
return "";
}
-function ky(e) {
+function Ry(e) {
var t;
try {
- ni.set(Jc[0], e), ni.set(Jc[1], e);
+ ni.set(Bc[0], e), ni.set(Bc[1], e);
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
}
-function fg() {
+function hg() {
var e;
try {
- const t = String(ni.get(yg) || "").trim().toLowerCase();
+ const t = String(ni.get(fg) || "").trim().toLowerCase();
return t ? !["0", "false", "no", "off"].includes(t) : !0;
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
return !0;
}
-function Xy(e) {
+function Fy(e) {
var t;
try {
- ni.set(yg, e ? "1" : "0");
+ ni.set(fg, e ? "1" : "0");
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
}
-function hg(e) {
+function Cg(e) {
var o, r, l;
const t = [], n = (a) => {
if (typeof a != "string") return;
@@ -2253,10 +2267,10 @@ function hg(e) {
"ComfyUI.Frontend.Locale"
];
for (const a of i)
- n(Zy(e, a));
+ n(wy(e, a));
return n((o = e == null ? void 0 : e.ui) == null ? void 0 : o.locale), n(e == null ? void 0 : e.locale), n((l = (r = e == null ? void 0 : e.ui) == null ? void 0 : r.i18n) == null ? void 0 : l.locale), t;
}
-function Ny() {
+function Oy() {
var n, i, o;
const e = [], t = (r) => {
if (typeof r != "string") return;
@@ -2279,58 +2293,58 @@ function Ny() {
}
return e;
}
-function Ry() {
+function zy() {
var e;
try {
if (typeof document < "u" && document.documentElement) {
- const t = jy.has(Ui);
+ const t = Vy.has(Ei);
document.documentElement.dir = t ? "rtl" : "ltr";
}
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
}
-const Cg = (e) => {
+const Zg = (e) => {
try {
- const t = fg(), n = Vy(), i = ea(n), o = () => {
- const l = hg(e);
+ const t = hg(), n = Ny(), i = ta(n), o = () => {
+ const l = Cg(e);
for (const a of l) {
- const c = ea(a);
+ const c = ta(a);
if (En[c])
- return qi(c), !0;
+ return _i(c), !0;
}
return !1;
};
if (t) {
if (o()) return;
if (n && En[i]) {
- qi(i);
+ _i(i);
return;
}
- if (En[Ui]) return;
- qi(Ni);
+ if (En[Ei]) return;
+ _i(Ri);
return;
}
if (n && En[i]) {
- qi(i);
+ _i(i);
return;
}
if (o()) return;
- const r = Ny();
+ const r = Oy();
for (const l of r) {
- const a = ea(l);
+ const a = ta(l);
if (En[a]) {
- qi(a);
+ _i(a);
return;
}
}
- qi(Ni);
+ _i(Ri);
} catch (t) {
- console.warn("[Majoor i18n] Failed to detect language:", t), qi(Ni);
+ console.warn("[Majoor i18n] Failed to detect language:", t), _i(Ri);
}
-}, qi = (e) => {
- En[e] || (console.warn(`[Majoor i18n] Unknown language: ${e}, falling back to ${Ni}`), e = Ni), Ui !== e && (Ui = e, ky(e), Ry(), e !== Ni && !Za && Yy().then(() => {
- Array.from(zd).forEach((t) => {
+}, _i = (e) => {
+ En[e] || (console.warn(`[Majoor i18n] Unknown language: ${e}, falling back to ${Ri}`), e = Ri), Ei !== e && (Ei = e, Ry(e), zy(), e !== Ri && !Aa && Xy().then(() => {
+ Array.from(Td).forEach((t) => {
var n;
try {
t(e);
@@ -2338,7 +2352,7 @@ const Cg = (e) => {
(n = console.debug) == null || n.call(console, i);
}
});
- }), Array.from(zd).forEach((t) => {
+ }), Array.from(Td).forEach((t) => {
var n;
try {
t(e);
@@ -2346,24 +2360,24 @@ const Cg = (e) => {
(n = console.debug) == null || n.call(console, i);
}
}));
-}, Aa = (e) => {
- Xy(!!e);
-}, Fy = (e) => {
+}, Wa = (e) => {
+ Fy(!!e);
+}, Jy = (e) => {
var t, n;
try {
- Xr && (clearInterval(Xr), Xr = null), typeof window < "u" && window.__MJR_COMFY_LANG_SYNC_TIMER__ && (clearInterval(window.__MJR_COMFY_LANG_SYNC_TIMER__), window.__MJR_COMFY_LANG_SYNC_TIMER__ = null);
+ Rr && (clearInterval(Rr), Rr = null), typeof window < "u" && window.__MJR_COMFY_LANG_SYNC_TIMER__ && (clearInterval(window.__MJR_COMFY_LANG_SYNC_TIMER__), window.__MJR_COMFY_LANG_SYNC_TIMER__ = null);
} catch (i) {
(t = console.debug) == null || t.call(console, i);
}
- Xr = setInterval(() => {
+ Rr = setInterval(() => {
var i;
try {
- if (!fg()) return;
- const o = hg(e);
+ if (!hg()) return;
+ const o = Cg(e);
for (const r of o) {
- const l = ea(r);
- if (En[l] && l !== Ui) {
- qi(l);
+ const l = ta(r);
+ if (En[l] && l !== Ei) {
+ _i(l);
return;
}
}
@@ -2372,31 +2386,31 @@ const Cg = (e) => {
}
}, 2e3);
try {
- typeof window < "u" && (window.__MJR_COMFY_LANG_SYNC_TIMER__ = Xr);
+ typeof window < "u" && (window.__MJR_COMFY_LANG_SYNC_TIMER__ = Rr);
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
-}, Oy = () => Ui, zy = () => Object.keys(En).map((e) => ({
+}, Ty = () => Ei, By = () => Object.keys(En).map((e) => ({
code: e,
- name: vy[e] || e
+ name: Yy[e] || e
})), m = (e, t, n) => {
var a, c;
- const i = En[Ui] || En[Ni], o = En[Ni];
+ const i = En[Ei] || En[Ri], o = En[Ri];
let r = i[e] || o[e];
if (!r) {
- const s = `${Ui}:${String(e || "")}`;
- if (!kr.has(s)) {
- if (kr.size >= Jd) {
- const d = Math.floor(Jd * 0.2), u = kr.values();
+ const s = `${Ei}:${String(e || "")}`;
+ if (!Nr.has(s)) {
+ if (Nr.size >= Bd) {
+ const d = Math.floor(Bd * 0.2), u = Nr.values();
for (let I = 0; I < d; I++) {
const p = u.next().value;
- p && kr.delete(p);
+ p && Nr.delete(p);
}
}
- kr.add(s);
+ Nr.add(s);
try {
console.warn(
- `[Majoor i18n] Missing translation key "${e}" for locale "${Ui}"`
+ `[Majoor i18n] Missing translation key "${e}" for locale "${Ei}"`
);
} catch (d) {
(a = console.debug) == null || a.call(console, d);
@@ -2404,7 +2418,7 @@ const Cg = (e) => {
try {
typeof window < "u" && typeof window.dispatchEvent == "function" && window.dispatchEvent(
new CustomEvent("mjr-i18n-missing-key", {
- detail: { key: String(e || ""), locale: Ui }
+ detail: { key: String(e || ""), locale: Ei }
})
);
} catch (d) {
@@ -2417,22 +2431,22 @@ const Cg = (e) => {
return l && typeof l == "object" && Object.entries(l).forEach(([s, d]) => {
r = r.replaceAll(`{${s}}`, String(d));
}), r;
-}, Zg = "mjr_toast_history_v1", Ag = "mjr_toast_history_last_read_v1", Bd = 60, Wg = "mjr:toast-history-changed";
-let gi = null;
-function oi(e) {
+}, Ag = "mjr_toast_history_v1", Wg = "mjr_toast_history_last_read_v1", Kd = 60, wg = "mjr:toast-history-changed";
+let bi = null;
+function ri(e) {
return String(e || "").trim();
}
-function Jy(e) {
- const t = oi(e).toLowerCase();
+function Uy(e) {
+ const t = ri(e).toLowerCase();
return t === "warn" ? "warning" : t === "danger" ? "error" : t || "info";
}
-function Ty(e) {
+function Ky(e) {
const t = Number(e);
return Number.isFinite(t) ? t : null;
}
-function By(e) {
+function Dy(e) {
if (!e || typeof e != "object") return null;
- const t = Number(e.percent), n = Number.isFinite(t) ? Math.max(0, Math.min(100, Math.round(t))) : null, i = Number(e.current), o = Number(e.total), r = Number.isFinite(i) ? Math.max(0, Math.floor(i)) : null, l = Number.isFinite(o) ? Math.max(0, Math.floor(o)) : null, a = Number(e.indexed), c = Number(e.skipped), s = Number(e.errors), d = Number.isFinite(a) ? Math.max(0, Math.floor(a)) : null, u = Number.isFinite(c) ? Math.max(0, Math.floor(c)) : null, I = Number.isFinite(s) ? Math.max(0, Math.floor(s)) : null, p = oi(e.label);
+ const t = Number(e.percent), n = Number.isFinite(t) ? Math.max(0, Math.min(100, Math.round(t))) : null, i = Number(e.current), o = Number(e.total), r = Number.isFinite(i) ? Math.max(0, Math.floor(i)) : null, l = Number.isFinite(o) ? Math.max(0, Math.floor(o)) : null, a = Number(e.indexed), c = Number(e.skipped), s = Number(e.errors), d = Number.isFinite(a) ? Math.max(0, Math.floor(a)) : null, u = Number.isFinite(c) ? Math.max(0, Math.floor(c)) : null, I = Number.isFinite(s) ? Math.max(0, Math.floor(s)) : null, p = ri(e.label);
return n === null && r === null && l === null && d === null && u === null && I === null && !p ? null : {
percent: n,
current: r,
@@ -2443,77 +2457,77 @@ function By(e) {
label: p
};
}
-function Uy(e, t, n) {
+function Ey(e, t, n) {
return e && t ? `${e}: ${t}` : t || e || n || "";
}
-function Wa(e, t = "info", n = null) {
+function wa(e, t = "info", n = null) {
if (!e || typeof e != "object") return null;
- const i = oi(e.title || e.summary), o = oi(e.detail), r = oi(
- e.message || Uy(i, o, oi(e.fallbackMessage))
+ const i = ri(e.title || e.summary), o = ri(e.detail), r = ri(
+ e.message || Ey(i, o, ri(e.fallbackMessage))
);
if (!r) return null;
- const l = Ty(e.durationMs ?? e.duration ?? n), a = Number(e.createdAt), c = Number.isFinite(a) && a > 0 ? a : Date.now(), s = typeof e.persistent == "boolean" ? e.persistent : !(Number.isFinite(l) && l > 0);
+ const l = Ky(e.durationMs ?? e.duration ?? n), a = Number(e.createdAt), c = Number.isFinite(a) && a > 0 ? a : Date.now(), s = typeof e.persistent == "boolean" ? e.persistent : !(Number.isFinite(l) && l > 0);
return {
- id: oi(e.id) || Ys(`th-${c}-`, 4),
+ id: ri(e.id) || ks(`th-${c}-`, 4),
message: r,
title: i,
detail: o,
- type: Jy(e.type || t),
+ type: Uy(e.type || t),
createdAt: c,
durationMs: l,
persistent: s,
- source: oi(e.source),
- trackId: oi(e.trackId),
- status: oi(e.status),
- operation: oi(e.operation),
- progress: By(e.progress),
+ source: ri(e.source),
+ trackId: ri(e.trackId),
+ status: ri(e.status),
+ operation: ri(e.operation),
+ progress: Dy(e.progress),
forceStore: !!e.forceStore,
- actionLabel: oi(e.actionLabel),
- actionUrl: oi(e.actionUrl)
+ actionLabel: ri(e.actionLabel),
+ actionUrl: ri(e.actionUrl)
};
}
-function Ha() {
- if (gi === null)
+function qa() {
+ if (bi === null)
try {
- const e = localStorage.getItem(Zg), t = e ? JSON.parse(e) : [];
- gi = Array.isArray(t) ? t.map((n) => {
- if (n && typeof n == "object") return Wa(n);
- const i = oi(n);
- return i ? Wa({ message: i }) : null;
+ const e = localStorage.getItem(Ag), t = e ? JSON.parse(e) : [];
+ bi = Array.isArray(t) ? t.map((n) => {
+ if (n && typeof n == "object") return wa(n);
+ const i = ri(n);
+ return i ? wa({ message: i }) : null;
}).filter(Boolean) : [];
} catch {
- gi = [];
+ bi = [];
}
}
-function wg() {
+function Mg() {
try {
- localStorage.setItem(Zg, JSON.stringify(gi));
+ localStorage.setItem(Ag, JSON.stringify(bi));
} catch {
}
}
-function Xs() {
+function Rs() {
try {
- window.dispatchEvent(new CustomEvent(Wg));
+ window.dispatchEvent(new CustomEvent(wg));
} catch {
}
}
-function Ky() {
+function Hy() {
try {
- return Number(localStorage.getItem(Ag)) || 0;
+ return Number(localStorage.getItem(Wg)) || 0;
} catch {
return 0;
}
}
-function Mg(e) {
+function Sg(e) {
try {
- localStorage.setItem(Ag, String(Number(e) || 0));
+ localStorage.setItem(Wg, String(Number(e) || 0));
} catch {
}
}
-function Sg(e, t, n) {
- Ha();
- const i = Wa(e && typeof e == "object" ? e : {
- message: oi(e),
+function Gg(e, t, n) {
+ qa();
+ const i = wa(e && typeof e == "object" ? e : {
+ message: ri(e),
type: t,
durationMs: n
}, t, n);
@@ -2521,35 +2535,35 @@ function Sg(e, t, n) {
return;
const o = String(i.trackId || "").trim();
if (o) {
- const r = gi.findIndex(
+ const r = bi.findIndex(
(l) => String((l == null ? void 0 : l.trackId) || "").trim() === o
);
if (r >= 0) {
- const l = gi[r] || {};
- gi.splice(r, 1), i.id = String(l.id || i.id || "").trim() || i.id;
+ const l = bi[r] || {};
+ bi.splice(r, 1), i.id = String(l.id || i.id || "").trim() || i.id;
}
}
- gi.unshift(i), gi.length > Bd && (gi = gi.slice(0, Bd)), wg(), Xs();
-}
-function Dy() {
- return Ha(), gi.map((e) => ({ ...e }));
-}
-function Ey() {
- Ha();
- const e = Ky();
- return gi.filter((t) => t.createdAt > e).length;
-}
-function Hy() {
- Mg(Date.now()), Xs();
+ bi.unshift(i), bi.length > Kd && (bi = bi.slice(0, Kd)), Mg(), Rs();
}
function qy() {
- Ha(), gi = [], wg(), Mg(Date.now()), Xs();
+ return qa(), bi.map((e) => ({ ...e }));
}
-function Py(e) {
+function Py() {
+ qa();
+ const e = Hy();
+ return bi.filter((t) => t.createdAt > e).length;
+}
+function Qy() {
+ Sg(Date.now()), Rs();
+}
+function _y() {
+ qa(), bi = [], Mg(), Sg(Date.now()), Rs();
+}
+function $y(e) {
const t = String(e || "info").trim().toLowerCase();
return t === "warn" ? "warning" : t === "danger" ? "error" : t === "success" || t === "warning" || t === "error" ? t : "info";
}
-function Tc(e) {
+function Uc(e) {
if (typeof e == "string") return e;
if (e && typeof e == "object") {
const t = String(e.summary || "").trim(), n = String(e.detail || e.message || "").trim();
@@ -2563,7 +2577,7 @@ function Tc(e) {
return "Unknown message";
}
}
-function Gg(e, t, n, i) {
+function xg(e, t, n, i) {
const o = i != null && i.history && typeof i.history == "object" ? i.history : null, r = {
type: t,
durationMs: Number.isFinite(Number(n)) ? Number(n) : null,
@@ -2577,16 +2591,16 @@ function Gg(e, t, n, i) {
actionLabel: String((o == null ? void 0 : o.actionLabel) || "").trim(),
actionUrl: String((o == null ? void 0 : o.actionUrl) || "").trim()
};
- return e && typeof e == "object" ? (r.title = String((o == null ? void 0 : o.title) || e.summary || "").trim(), r.detail = String((o == null ? void 0 : o.detail) || e.detail || e.message || "").trim(), r.message = Tc(e), r) : (r.title = String((o == null ? void 0 : o.title) || "").trim(), r.detail = String((o == null ? void 0 : o.detail) || "").trim(), r.message = Tc(e), r);
+ return e && typeof e == "object" ? (r.title = String((o == null ? void 0 : o.title) || e.summary || "").trim(), r.detail = String((o == null ? void 0 : o.detail) || e.detail || e.message || "").trim(), r.message = Uc(e), r) : (r.title = String((o == null ? void 0 : o.title) || "").trim(), r.detail = String((o == null ? void 0 : o.detail) || "").trim(), r.message = Uc(e), r);
}
-function $r(e, t = "info", n, i) {
+function tl(e, t = "info", n, i) {
try {
- const o = Gg(e, t, n, i);
- o.forceStore = !0, Sg(o, t, n);
+ const o = xg(e, t, n, i);
+ o.forceStore = !0, Gg(o, t, n);
} catch {
}
}
-function Qy(e) {
+function ef(e) {
switch (e) {
case "success":
return 2e3;
@@ -2600,7 +2614,7 @@ function Qy(e) {
return 5e3;
}
}
-function _y(e) {
+function tf(e) {
if (typeof e != "string") return e;
const t = e.trim(), n = {
// Rating & Tags
@@ -2832,16 +2846,16 @@ function _y(e) {
}
return t;
}
-function Ce(e, t = "info", n, i) {
+function Ze(e, t = "info", n, i) {
var l, a;
- if (t = Py(t), e = _y(e), n == null && (n = Qy(t)), !(i != null && i.noHistory))
+ if (t = $y(t), e = tf(e), n == null && (n = ef(t)), !(i != null && i.noHistory))
try {
- Sg(Gg(e, t, n, i), t, n);
+ Gg(xg(e, t, n, i), t, n);
} catch {
}
const o = !(Number.isFinite(Number(n)) && Number(n) > 0), r = Qn();
try {
- const c = Ay(r);
+ const c = My(r);
if (c && typeof c.add == "function") {
let s = t;
s === "warning" && (s = "warn");
@@ -2869,63 +2883,63 @@ function Ce(e, t = "info", n, i) {
}
console.warn("[Majoor Toast] Native toast API unavailable", {
type: t,
- message: Tc(e),
+ message: Uc(e),
duration: o ? 0 : n
});
}
-const $y = 2e3, ef = 15e3, tf = 8e3, Bc = "__mjr_write_token", cr = "token";
-let Ll = null, ul = null, Ud = null;
-const No = Cr({ ttlMs: $y, maxSize: 1 });
-function nf() {
+const nf = 2e3, of = 15e3, rf = 8e3, Kc = "__mjr_write_token", dr = "token";
+let Vl = null, ml = null, Dd = null;
+const Fo = Wr({ ttlMs: nf, maxSize: 1 });
+function lf() {
var e;
try {
- return String(((e = sessionStorage == null ? void 0 : sessionStorage.getItem) == null ? void 0 : e.call(sessionStorage, Bc)) || "").trim();
+ return String(((e = sessionStorage == null ? void 0 : sessionStorage.getItem) == null ? void 0 : e.call(sessionStorage, Kc)) || "").trim();
} catch {
return "";
}
}
-function Ns(e) {
+function Fs(e) {
var n, i;
const t = String(e || "").trim();
try {
- return t ? (n = sessionStorage == null ? void 0 : sessionStorage.setItem) == null || n.call(sessionStorage, Bc, t) : (i = sessionStorage == null ? void 0 : sessionStorage.removeItem) == null || i.call(sessionStorage, Bc), !0;
+ return t ? (n = sessionStorage == null ? void 0 : sessionStorage.setItem) == null || n.call(sessionStorage, Kc, t) : (i = sessionStorage == null ? void 0 : sessionStorage.removeItem) == null || i.call(sessionStorage, Kc), !0;
} catch {
return !1;
}
}
-function xg() {
+function jg() {
var e, t, n;
try {
- const i = (e = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : e.call(localStorage, Fi), o = i ? JSON.parse(i) : {}, r = o && typeof o == "object" ? o : {}, l = r != null && r.data && typeof r.data == "object" ? r.data : r;
- l != null && l.security && typeof l.security == "object" && String(l.security.apiToken || "").trim() && (l.security.apiToken = "", (t = localStorage == null ? void 0 : localStorage.setItem) == null || t.call(localStorage, Fi, JSON.stringify(r)));
+ const i = (e = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : e.call(localStorage, Oi), o = i ? JSON.parse(i) : {}, r = o && typeof o == "object" ? o : {}, l = r != null && r.data && typeof r.data == "object" ? r.data : r;
+ l != null && l.security && typeof l.security == "object" && String(l.security.apiToken || "").trim() && (l.security.apiToken = "", (t = localStorage == null ? void 0 : localStorage.setItem) == null || t.call(localStorage, Oi, JSON.stringify(r)));
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
}
-function Kd() {
+function Ed() {
var e;
try {
- No.delete(cr);
+ Fo.delete(dr);
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
- Ns(""), xg();
+ Fs(""), jg();
}
-function Uc() {
+function Dc() {
var i, o, r, l, a;
- const e = No.get(cr);
+ const e = Fo.get(dr);
if (e !== void 0)
return e;
- const t = Date.now(), n = nf();
+ const t = Date.now(), n = lf();
if (n)
- return No.set(cr, n, { at: t }), n;
+ return Fo.set(dr, n, { at: t }), n;
try {
- const c = (i = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : i.call(localStorage, Fi), s = c ? JSON.parse(c) : null, d = s != null && s.data && typeof s.data == "object" ? s.data : s, u = String(((o = d == null ? void 0 : d.security) == null ? void 0 : o.apiToken) || "").trim();
+ const c = (i = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : i.call(localStorage, Oi), s = c ? JSON.parse(c) : null, d = s != null && s.data && typeof s.data == "object" ? s.data : s, u = String(((o = d == null ? void 0 : d.security) == null ? void 0 : o.apiToken) || "").trim();
if (u) {
- Ns(u);
+ Fs(u);
try {
const I = s && typeof s == "object" ? s : {}, p = I != null && I.data && typeof I.data == "object" ? I.data : I;
- p != null && p.security && typeof p.security == "object" && (p.security.apiToken = "", (r = localStorage == null ? void 0 : localStorage.setItem) == null || r.call(localStorage, Fi, JSON.stringify(I)), (l = window == null ? void 0 : window.dispatchEvent) == null || l.call(
+ p != null && p.security && typeof p.security == "object" && (p.security.apiToken = "", (r = localStorage == null ? void 0 : localStorage.setItem) == null || r.call(localStorage, Oi, JSON.stringify(I)), (l = window == null ? void 0 : window.dispatchEvent) == null || l.call(
window,
new CustomEvent("mjr-settings-changed", {
detail: { key: "security.apiToken" }
@@ -2935,17 +2949,17 @@ function Uc() {
(a = console.debug) == null || a.call(console, I);
}
}
- return No.set(cr, u, { at: t }), u;
+ return Fo.set(dr, u, { at: t }), u;
} catch {
- return No.set(cr, "", { at: t }), "";
+ return Fo.set(dr, "", { at: t }), "";
}
}
-function jg(e) {
+function vg(e) {
var n, i;
const t = String(e || "").trim();
if (!t) return !1;
try {
- No.set(cr, t), ul = null, Ns(t), xg();
+ Fo.set(dr, t), ml = null, Fs(t), jg();
try {
(n = window == null ? void 0 : window.dispatchEvent) == null || n.call(
window,
@@ -2959,29 +2973,29 @@ function jg(e) {
return !1;
}
}
-const of = /^[A-Za-z0-9._\-~+/]+=*$/;
-function Dd(e) {
+const af = /^[A-Za-z0-9._\-~+/]+=*$/;
+function Hd(e) {
var n;
const t = String(e || "").trim();
- return t ? of.test(t) ? jg(t) : ((n = console.debug) == null || n.call(console, "[MJR auth] Rejected malformed security token (invalid characters)"), !1) : !1;
+ return t ? af.test(t) ? vg(t) : ((n = console.debug) == null || n.call(console, "[MJR auth] Rejected malformed security token (invalid characters)"), !1) : !1;
}
function Yl(e = {}) {
const t = String((e == null ? void 0 : e.code) || "").trim().toUpperCase(), n = String((e == null ? void 0 : e.error) || "").trim(), i = Number((e == null ? void 0 : e.status) || 0) || 0;
- ul = {
+ ml = {
code: t,
error: n,
status: i,
at: Date.now()
};
}
-function vg() {
- const e = ul;
+function Lg() {
+ const e = ml;
if (!e) return null;
const t = Date.now() - (Number(e.at || 0) || 0);
- return t < 0 || t > ef ? (ul = null, null) : e;
+ return t < 0 || t > of ? (ml = null, null) : e;
}
-function rf(e) {
- const t = vg(), n = String((e == null ? void 0 : e.code) || "").trim().toUpperCase(), i = String((e == null ? void 0 : e.error) || "").trim(), o = String((t == null ? void 0 : t.code) || "").trim().toUpperCase(), r = String((t == null ? void 0 : t.error) || "").trim().toLowerCase(), l = i.toLowerCase();
+function cf(e) {
+ const t = Lg(), n = String((e == null ? void 0 : e.code) || "").trim().toUpperCase(), i = String((e == null ? void 0 : e.error) || "").trim(), o = String((t == null ? void 0 : t.code) || "").trim().toUpperCase(), r = String((t == null ? void 0 : t.error) || "").trim().toLowerCase(), l = i.toLowerCase();
return o === "FORBIDDEN" && (r.includes("already configured") || r.includes("rotate-token")) ? m(
"toast.writeAuthConfiguredTokenRequired",
"Write access requires the Majoor API token already configured on the server. Open Settings -> Security -> API Token and enter the matching token."
@@ -2993,15 +3007,15 @@ function rf(e) {
"Write access is blocked. Sign in to ComfyUI and retry so Majoor can bootstrap the remote session automatically, or set a Majoor API token in Settings -> Security."
) : "";
}
-function lf(e) {
+function sf(e) {
var o;
const t = String(e || "").trim();
if (!t) return;
- const n = Date.now(), i = Ud;
- if (!(i && i.message === t && n - (Number(i.at || 0) || 0) < tf)) {
- Ud = { message: t, at: n };
+ const n = Date.now(), i = Dd;
+ if (!(i && i.message === t && n - (Number(i.at || 0) || 0) < rf)) {
+ Dd = { message: t, at: n };
try {
- Ce(
+ Ze(
{
summary: m("toast.writeAuthTitle", "Majoor remote write access"),
detail: t
@@ -3015,14 +3029,14 @@ function lf(e) {
}
}
}
-function af(e) {
+function df(e) {
const t = String((e == null ? void 0 : e.code) || "").trim().toUpperCase(), n = String((e == null ? void 0 : e.error) || "").trim().toLowerCase(), i = t === "FORBIDDEN" && n.includes("write operation blocked");
if (t !== "AUTH_REQUIRED" && !i)
return e;
- const o = rf(e);
- return o ? (lf(o), { ...e, error: o }) : e;
+ const o = cf(e);
+ return o ? (sf(o), { ...e, error: o }) : e;
}
-async function cf() {
+async function uf() {
var e;
try {
const t = await fetch("/mjr/am/settings/security/bootstrap-token", {
@@ -3056,7 +3070,7 @@ async function cf() {
status: t.status
}), { ok: !1, token: !1 };
const o = String(((e = i == null ? void 0 : i.data) == null ? void 0 : e.token) || "").trim();
- return o ? { ok: jg(o), token: !0 } : (ul = null, { ok: !0, token: !1 });
+ return o ? { ok: vg(o), token: !0 } : (ml = null, { ok: !0, token: !1 });
} catch (t) {
return Yl({
code: "NETWORK_ERROR",
@@ -3065,107 +3079,107 @@ async function cf() {
}), { ok: !1, token: !1 };
}
}
-async function sf({ force: e = !1, allowCookieRefresh: t = !1 } = {}) {
+async function mf({ force: e = !1, allowCookieRefresh: t = !1 } = {}) {
var r;
- const n = Uc();
+ const n = Dc();
if (n && !e) return n;
let i = { ok: !1, token: !1 };
- Ll || (Ll = (async () => {
+ Vl || (Vl = (async () => {
try {
- return await cf();
+ return await uf();
} finally {
- Ll = null;
+ Vl = null;
}
})());
try {
- i = await Ll || i;
+ i = await Vl || i;
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
if (e && (i != null && i.ok) && !(i != null && i.token) && n)
- Kd();
+ Ed();
else if (e && !(i != null && i.ok)) {
- const l = vg(), a = String((l == null ? void 0 : l.code) || "").trim().toUpperCase();
- (!a || !["NETWORK_ERROR", "INVALID_RESPONSE"].includes(a)) && Kd();
+ const l = Lg(), a = String((l == null ? void 0 : l.code) || "").trim().toUpperCase();
+ (!a || !["NETWORK_ERROR", "INVALID_RESPONSE"].includes(a)) && Ed();
}
- const o = Uc();
+ const o = Dc();
return !o && t && (i != null && i.ok) ? !0 : o;
}
-function Ed() {
- No.clear();
+function qd() {
+ Fo.clear();
}
-async function df(e) {
+async function gf(e) {
return !e || typeof e != "string" ? { ok: !1, error: "Missing mode", code: "INVALID_INPUT" } : Et("/mjr/am/settings/probe-backend", { mode: e });
}
-async function uf() {
- return Rt(lt.SETTINGS_METADATA_FALLBACK);
-}
-async function Hd({ image: e, media: t } = {}) {
- return Et(lt.SETTINGS_METADATA_FALLBACK, { image: e, media: t });
-}
-async function mf() {
- return Rt(lt.SETTINGS_VECTOR_SEARCH);
-}
-async function gf(e = !0) {
- return Et(lt.SETTINGS_VECTOR_SEARCH, { enabled: !!e });
-}
async function If() {
- return Rt(lt.SETTINGS_EXECUTION_GROUPING);
+ return Ft(ct.SETTINGS_METADATA_FALLBACK);
}
-async function bf(e = !0) {
- return Et(lt.SETTINGS_EXECUTION_GROUPING, { enabled: !!e });
+async function Pd({ image: e, media: t } = {}) {
+ return Et(ct.SETTINGS_METADATA_FALLBACK, { image: e, media: t });
}
-async function pf() {
- return Rt(lt.SETTINGS_HUGGINGFACE);
+async function bf() {
+ return Ft(ct.SETTINGS_VECTOR_SEARCH);
}
-async function yf(e = "") {
- return Et(lt.SETTINGS_HUGGINGFACE, { token: String(e ?? "").trim() });
+async function pf(e = !0) {
+ return Et(ct.SETTINGS_VECTOR_SEARCH, { enabled: !!e });
}
-async function ff() {
- return Rt(lt.SETTINGS_AI_LOGGING);
+async function yf() {
+ return Ft(ct.SETTINGS_EXECUTION_GROUPING);
}
-async function hf(e = !1) {
- return Et(lt.SETTINGS_AI_LOGGING, { enabled: !!e });
+async function ff(e = !0) {
+ return Et(ct.SETTINGS_EXECUTION_GROUPING, { enabled: !!e });
}
-async function Cf() {
- return Rt(lt.SETTINGS_ROUTE_LOGGING);
+async function hf() {
+ return Ft(ct.SETTINGS_HUGGINGFACE);
}
-async function Zf(e = !1) {
- return Et(lt.SETTINGS_ROUTE_LOGGING, { enabled: !!e });
+async function Cf(e = "") {
+ return Et(ct.SETTINGS_HUGGINGFACE, { token: String(e ?? "").trim() });
}
-async function Af() {
- return Rt(lt.SETTINGS_STARTUP_LOGGING);
+async function Zf() {
+ return Ft(ct.SETTINGS_AI_LOGGING);
}
-async function Wf(e = !1) {
- return Et(lt.SETTINGS_STARTUP_LOGGING, { enabled: !!e });
+async function Af(e = !1) {
+ return Et(ct.SETTINGS_AI_LOGGING, { enabled: !!e });
}
-async function wf() {
- return Rt(lt.SETTINGS_LTXAV_RGB_FALLBACK);
+async function Wf() {
+ return Ft(ct.SETTINGS_ROUTE_LOGGING);
}
-async function Mf(e = !1) {
- return Et(lt.SETTINGS_LTXAV_RGB_FALLBACK, { enabled: !!e });
+async function wf(e = !1) {
+ return Et(ct.SETTINGS_ROUTE_LOGGING, { enabled: !!e });
}
-async function Sf() {
- return Rt(lt.SETTINGS_OUTPUT_DIRECTORY);
+async function Mf() {
+ return Ft(ct.SETTINGS_STARTUP_LOGGING);
}
-async function Gf(e, t = {}) {
+async function Sf(e = !1) {
+ return Et(ct.SETTINGS_STARTUP_LOGGING, { enabled: !!e });
+}
+async function Gf() {
+ return Ft(ct.SETTINGS_LTXAV_RGB_FALLBACK);
+}
+async function xf(e = !1) {
+ return Et(ct.SETTINGS_LTXAV_RGB_FALLBACK, { enabled: !!e });
+}
+async function jf() {
+ return Ft(ct.SETTINGS_OUTPUT_DIRECTORY);
+}
+async function vf(e, t = {}) {
const n = String(e ?? "").trim();
- return Et(lt.SETTINGS_OUTPUT_DIRECTORY, { output_directory: n }, t);
+ return Et(ct.SETTINGS_OUTPUT_DIRECTORY, { output_directory: n }, t);
}
-async function xf() {
- return Rt(lt.SETTINGS_INDEX_DIRECTORY);
+async function Lf() {
+ return Ft(ct.SETTINGS_INDEX_DIRECTORY);
}
-async function jf(e, t = {}) {
+async function Vf(e, t = {}) {
const n = String(e ?? "").trim();
- return Et(lt.SETTINGS_INDEX_DIRECTORY, { index_directory: n }, t);
+ return Et(ct.SETTINGS_INDEX_DIRECTORY, { index_directory: n }, t);
}
-async function Lg() {
- return Rt("/mjr/am/settings/security");
+async function Vg() {
+ return Ft("/mjr/am/settings/security");
}
async function Yg(e) {
return Et("/mjr/am/settings/security", e && typeof e == "object" ? e : {});
}
-async function vf() {
+async function Yf() {
var t, n;
const e = await Et("/mjr/am/settings/security/bootstrap-token", {});
if (e != null && e.ok)
@@ -3177,24 +3191,24 @@ async function vf() {
}
return e;
}
-async function Rs(e) {
+async function Os(e) {
var t;
if (e && typeof e == "object") {
const n = String(
e.filepath || e.path || ((t = e == null ? void 0 : e.file_info) == null ? void 0 : t.filepath) || ""
).trim();
- return e.id != null ? Et("/mjr/am/open-in-folder", { asset_id: pi(e.id) }) : Et("/mjr/am/open-in-folder", { filepath: n });
+ return e.id != null ? Et("/mjr/am/open-in-folder", { asset_id: fi(e.id) }) : Et("/mjr/am/open-in-folder", { filepath: n });
}
- return Et("/mjr/am/open-in-folder", { asset_id: pi(e) });
+ return Et("/mjr/am/open-in-folder", { asset_id: fi(e) });
}
-async function Dr({ op: e = "", path: t = "", name: n = "", destination: i = "", recursive: o = !0 } = {}, r = {}) {
+async function Hr({ op: e = "", path: t = "", name: n = "", destination: i = "", recursive: o = !0 } = {}, r = {}) {
const l = {
op: String(e || "").trim().toLowerCase(),
path: String(t || "").trim()
};
- return n != null && String(n).trim() && (l.name = String(n).trim()), i != null && String(i).trim() && (l.destination = String(i).trim()), l.op === "delete" && (l.recursive = !!o), Et(lt.BROWSER_FOLDER_OP, l, r);
+ return n != null && String(n).trim() && (l.name = String(n).trim()), i != null && String(i).trim() && (l.destination = String(i).trim()), l.op === "delete" && (l.recursive = !!o), Et(ct.BROWSER_FOLDER_OP, l, r);
}
-async function qd(e = {}) {
+async function Qd(e = {}) {
const t = (r, l) => r == null ? l : !!r, n = String(e.scope || "output").trim().toLowerCase() || "output", i = e.customRootId ?? e.custom_root_id ?? e.rootId ?? e.root_id ?? e.customRoot ?? null, o = {
scope: n,
reindex: t(e.reindex, !0),
@@ -3223,77 +3237,77 @@ async function qd(e = {}) {
background_metadata: t(e.backgroundMetadata ?? e.background_metadata, !0),
maintenance_force: t(e.maintenanceForce ?? e.maintenance_force, !1)
};
- return i && (o.custom_root_id = String(i)), Et(lt.INDEX_RESET, o);
+ return i && (o.custom_root_id = String(i)), Et(ct.INDEX_RESET, o);
}
-async function Lf({ scope: e = "output", customRootId: t = "" } = {}) {
+async function kf({ scope: e = "output", customRootId: t = "" } = {}) {
const n = String(e || "output").trim().toLowerCase() || "output", i = String(t || "").trim(), o = { scope: n };
- return i && (o.custom_root_id = i), Et(lt.WATCHER_SCOPE, o);
+ return i && (o.custom_root_id = i), Et(ct.WATCHER_SCOPE, o);
}
-async function Vg(e = {}) {
- return Rt(lt.WATCHER_STATUS, e);
+async function kg(e = {}) {
+ return Ft(ct.WATCHER_STATUS, e);
}
-async function wa(e = !0) {
- return Et(lt.WATCHER_TOGGLE, { enabled: !!e });
-}
-async function Yf() {
- return Rt(lt.WATCHER_SETTINGS);
-}
-async function Pd(e = {}) {
- return Et(lt.WATCHER_SETTINGS, e);
-}
-async function Vf(e = {}) {
- return Rt(lt.TOOLS_STATUS, e);
-}
-async function kf(e = {}) {
- return Rt(lt.STATUS, e);
+async function Ma(e = !0) {
+ return Et(ct.WATCHER_TOGGLE, { enabled: !!e });
}
async function Xf() {
- return Et("/mjr/am/db/force-delete", {});
+ return Ft(ct.WATCHER_SETTINGS);
+}
+async function _d(e = {}) {
+ return Et(ct.WATCHER_SETTINGS, e);
}
async function Nf(e = {}) {
- return Rt(lt.DB_BACKUPS, e);
+ return Ft(ct.TOOLS_STATUS, e);
}
-async function Rf() {
- return Et(lt.DB_BACKUP_SAVE, {});
+async function Rf(e = {}) {
+ return Ft(ct.STATUS, e);
}
-async function Ff({ name: e = "", useLatest: t = !1 } = {}) {
+async function Ff() {
+ return Et("/mjr/am/db/force-delete", {});
+}
+async function Of(e = {}) {
+ return Ft(ct.DB_BACKUPS, e);
+}
+async function zf() {
+ return Et(ct.DB_BACKUP_SAVE, {});
+}
+async function Jf({ name: e = "", useLatest: t = !1 } = {}) {
const n = {};
- return e && (n.name = String(e)), t && (n.use_latest = !0), Et(lt.DB_BACKUP_RESTORE, n);
+ return e && (n.name = String(e)), t && (n.use_latest = !0), Et(ct.DB_BACKUP_RESTORE, n);
}
-async function Of(e = 250) {
+async function Tf(e = 250) {
return Et("/mjr/am/duplicates/analyze", {
limit: Math.max(10, Math.min(5e3, Number(e) || 250))
});
}
-async function zf({ scope: e = "output", customRootId: t = "", maxGroups: n = 6, maxPairs: i = 10 } = {}, o = {}) {
+async function Bf({ scope: e = "output", customRootId: t = "", maxGroups: n = 6, maxPairs: i = 10 } = {}, o = {}) {
let r = `/mjr/am/duplicates/alerts?scope=${encodeURIComponent(String(e || "output"))}`;
- return t && (r += `&custom_root_id=${encodeURIComponent(String(t))}`), r += `&max_groups=${encodeURIComponent(String(Math.max(1, Number(n) || 6)))}`, r += `&max_pairs=${encodeURIComponent(String(Math.max(1, Number(i) || 10)))}`, Rt(r, o);
+ return t && (r += `&custom_root_id=${encodeURIComponent(String(t))}`), r += `&max_groups=${encodeURIComponent(String(Math.max(1, Number(n) || 6)))}`, r += `&max_pairs=${encodeURIComponent(String(Math.max(1, Number(i) || 10)))}`, Ft(r, o);
}
-async function Jf(e, t = []) {
+async function Uf(e, t = []) {
return Et("/mjr/am/duplicates/merge-tags", {
keep_asset_id: Number(e) || 0,
merge_asset_ids: Array.isArray(t) ? t.map((n) => Number(n) || 0).filter((n) => n > 0) : []
});
}
-async function Ma(e) {
+async function Sa(e) {
var o;
let t, n;
if (e && typeof e == "object") {
- t = pi(e.id);
+ t = fi(e.id);
const r = String(
e.filepath || e.path || ((o = e == null ? void 0 : e.file_info) == null ? void 0 : o.filepath) || ""
).trim();
n = t ? { asset_id: t } : { filepath: r };
} else
- t = pi(e), n = { asset_id: t };
+ t = fi(e), n = { asset_id: t };
const i = await Et("/mjr/am/asset/delete", n);
- return i != null && i.ok && t && kg([t]), i;
+ return i != null && i.ok && t && Xg([t]), i;
}
-async function Tf(e) {
- const t = Array.isArray(e) ? e.map((i) => pi(i)).filter(Boolean) : [], n = await Et("/mjr/am/assets/delete", { ids: t });
- return n != null && n.ok && kg(t), n;
+async function Kf(e) {
+ const t = Array.isArray(e) ? e.map((i) => fi(i)).filter(Boolean) : [], n = await Et("/mjr/am/assets/delete", { ids: t });
+ return n != null && n.ok && Xg(t), n;
}
-function kg(e) {
+function Xg(e) {
var t;
try {
const n = (Array.isArray(e) ? e : [e]).map((i) => String(i || "").trim()).filter(Boolean);
@@ -3305,11 +3319,11 @@ function kg(e) {
(t = console.debug) == null || t.call(console, n);
}
}
-async function Fs(e, t) {
+async function zs(e, t) {
var o, r, l;
let n;
if (e && typeof e == "object") {
- n = pi(e.id);
+ n = fi(e.id);
const a = String(
e.filepath || e.path || ((o = e == null ? void 0 : e.file_info) == null ? void 0 : o.filepath) || ""
).trim(), c = n ? await Et("/mjr/am/asset/rename", { asset_id: n, new_name: t }) : await Et("/mjr/am/asset/rename", { filepath: a, new_name: t });
@@ -3322,7 +3336,7 @@ async function Fs(e, t) {
}
return c;
}
- n = pi(e);
+ n = fi(e);
const i = await Et("/mjr/am/asset/rename", { asset_id: n, new_name: t });
if (i != null && i.ok && n)
try {
@@ -3333,40 +3347,40 @@ async function Fs(e, t) {
}
return i;
}
-async function Xg() {
+async function Ng() {
const e = typeof AbortController < "u" ? new AbortController() : null;
let t = null;
try {
- return e && (t = setTimeout(() => e.abort(), 1e4)), await Rt("/mjr/am/collections", e ? { signal: e.signal } : {});
+ return e && (t = setTimeout(() => e.abort(), 1e4)), await Ft("/mjr/am/collections", e ? { signal: e.signal } : {});
} finally {
t && clearTimeout(t);
}
}
-async function ta(e) {
+async function na(e) {
return Et("/mjr/am/collections", { name: String(e || "").trim() });
}
-async function Bf(e) {
+async function Df(e) {
const t = String(e || "").trim();
return Et(`/mjr/am/collections/${encodeURIComponent(t)}/delete`, {});
}
-async function Sa(e, t) {
+async function Ga(e, t) {
const n = String(e || "").trim(), i = Array.isArray(t) ? t : [];
return Et(`/mjr/am/collections/${encodeURIComponent(n)}/add`, { assets: i });
}
-async function Ng(e, t) {
+async function Rg(e, t) {
const n = String(e || "").trim(), i = Array.isArray(t) ? t : [];
return Et(`/mjr/am/collections/${encodeURIComponent(n)}/remove`, { filepaths: i });
}
-async function Uf(e) {
+async function Ef(e) {
const t = String(e || "").trim();
- return Rt(`/mjr/am/collections/${encodeURIComponent(t)}/assets`);
+ return Ft(`/mjr/am/collections/${encodeURIComponent(t)}/assets`);
}
-async function Rg(e, t = 20) {
+async function Fg(e, t = 20) {
const n = String(e || "").trim();
if (!n) return { ok: !1, error: "Empty query" };
const i = t && typeof t == "object" ? t : { topK: Number(t) }, o = Math.max(1, Math.min(200, Number((i == null ? void 0 : i.topK) ?? 20) || 20)), r = String((i == null ? void 0 : i.scope) || "").trim(), l = String((i == null ? void 0 : i.customRootId) || "").trim();
- let a = `${lt.VECTOR_SEARCH}?q=${encodeURIComponent(n)}&top_k=${o}`;
- return r && (a += `&scope=${encodeURIComponent(r)}`), l && (a += `&custom_root_id=${encodeURIComponent(l)}`), a = Ka(a, {
+ let a = `${ct.VECTOR_SEARCH}?q=${encodeURIComponent(n)}&top_k=${o}`;
+ return r && (a += `&scope=${encodeURIComponent(r)}`), l && (a += `&custom_root_id=${encodeURIComponent(l)}`), a = Da(a, {
subfolder: (i == null ? void 0 : i.subfolder) ?? null,
kind: (i == null ? void 0 : i.kind) ?? null,
hasWorkflow: (i == null ? void 0 : i.hasWorkflow) ?? null,
@@ -3380,64 +3394,64 @@ async function Rg(e, t = 20) {
workflowType: (i == null ? void 0 : i.workflowType) ?? null,
dateRange: (i == null ? void 0 : i.dateRange) ?? null,
dateExact: (i == null ? void 0 : i.dateExact) ?? null
- }), Rt(a, { timeoutMs: 12e4 });
+ }), Ft(a, { timeoutMs: 12e4 });
}
-async function Kf(e, t = 20) {
+async function Hf(e, t = 20) {
const n = String(e || "").trim();
if (!n) return { ok: !1, error: "Missing asset ID" };
const i = t && typeof t == "object" ? t : { topK: Number(t) }, o = Math.max(1, Math.min(200, Number((i == null ? void 0 : i.topK) ?? 20) || 20)), r = String((i == null ? void 0 : i.scope) || "").trim(), l = String((i == null ? void 0 : i.customRootId) || "").trim();
- let a = `${lt.VECTOR_SIMILAR}/${encodeURIComponent(n)}?top_k=${o}`;
- return r && (a += `&scope=${encodeURIComponent(r)}`), l && (a += `&custom_root_id=${encodeURIComponent(l)}`), Rt(a, {
+ let a = `${ct.VECTOR_SIMILAR}/${encodeURIComponent(n)}?top_k=${o}`;
+ return r && (a += `&scope=${encodeURIComponent(r)}`), l && (a += `&custom_root_id=${encodeURIComponent(l)}`), Ft(a, {
dedupeKey: `vec:${n}:${o}:${r}:${l}`
});
}
-async function Df(e) {
+async function qf(e) {
const t = String(e || "").trim();
- return t ? Rt(`${lt.VECTOR_ALIGNMENT}/${encodeURIComponent(t)}`) : { ok: !1, error: "Missing asset ID" };
+ return t ? Ft(`${ct.VECTOR_ALIGNMENT}/${encodeURIComponent(t)}`) : { ok: !1, error: "Missing asset ID" };
}
-async function Fg(e) {
+async function Og(e) {
const t = String(e || "").trim();
- return t ? Et(`${lt.VECTOR_INDEX}/${encodeURIComponent(t)}`, {}) : { ok: !1, error: "Missing asset ID" };
+ return t ? Et(`${ct.VECTOR_INDEX}/${encodeURIComponent(t)}`, {}) : { ok: !1, error: "Missing asset ID" };
}
-async function Ga() {
- return Rt(lt.VECTOR_STATS);
+async function xa() {
+ return Ft(ct.VECTOR_STATS);
}
-async function Og(e = 64, t = {}) {
- var b, v, C;
+async function zg(e = 64, t = {}) {
+ var b, L, h;
const n = Math.max(1, Math.min(200, e)), i = typeof (t == null ? void 0 : t.onProgress) == "function" ? t.onProgress : null, o = String((t == null ? void 0 : t.scope) || "").trim().toLowerCase(), r = String((t == null ? void 0 : t.customRootId) ?? (t == null ? void 0 : t.custom_root_id) ?? "").trim();
- let l = `${lt.VECTOR_BACKFILL}?batch_size=${n}&async=1`;
+ let l = `${ct.VECTOR_BACKFILL}?batch_size=${n}&async=1`;
o && (l += `&scope=${encodeURIComponent(o)}`), r && (l += `&custom_root_id=${encodeURIComponent(r)}`);
const a = await Et(l, {}, { timeoutMs: 3e4 });
if (!(a != null && a.ok)) return a;
const c = (a == null ? void 0 : a.data) || {}, s = String((c == null ? void 0 : c.status) || "").toLowerCase(), d = String((c == null ? void 0 : c.backfill_id) || "").trim();
try {
i == null || i(c);
- } catch (S) {
- (b = console.debug) == null || b.call(console, S);
+ } catch (G) {
+ (b = console.debug) == null || b.call(console, G);
}
if (!d || !["queued", "running", "pending"].includes(s))
return a;
- const u = Number(t == null ? void 0 : t.pollIntervalMs), I = Number(t == null ? void 0 : t.pollTimeoutMs), p = Number.isFinite(u) ? Math.max(500, Math.min(1e4, Math.floor(u))) : _f, M = Number.isFinite(I) ? Math.max(
+ const u = Number(t == null ? void 0 : t.pollIntervalMs), I = Number(t == null ? void 0 : t.pollTimeoutMs), p = Number.isFinite(u) ? Math.max(500, Math.min(1e4, Math.floor(u))) : th, S = Number.isFinite(I) ? Math.max(
1e4,
- Math.min(eh, Math.floor(I))
- ) : $f, Z = Date.now();
- let A = null;
- for (; Date.now() - Z < M; ) {
- await dg(p);
- const S = await Rt(
- `${lt.VECTOR_BACKFILL_STATUS}?backfill_id=${encodeURIComponent(d)}`,
+ Math.min(ih, Math.floor(I))
+ ) : nh, A = Date.now();
+ let C = null;
+ for (; Date.now() - A < S; ) {
+ await ug(p);
+ const G = await Ft(
+ `${ct.VECTOR_BACKFILL_STATUS}?backfill_id=${encodeURIComponent(d)}`,
{ timeoutMs: 3e4 }
);
- if (!(S != null && S.ok)) {
- A = S;
+ if (!(G != null && G.ok)) {
+ C = G;
continue;
}
- const W = (S == null ? void 0 : S.data) || {}, y = String((W == null ? void 0 : W.status) || "").toLowerCase();
- A = S;
+ const W = (G == null ? void 0 : G.data) || {}, y = String((W == null ? void 0 : W.status) || "").toLowerCase();
+ C = G;
try {
i == null || i(W);
- } catch (k) {
- (v = console.debug) == null || v.call(console, k);
+ } catch (X) {
+ (L = console.debug) == null || L.call(console, X);
}
if (y === "succeeded")
return {
@@ -3455,26 +3469,26 @@ async function Og(e = 64, t = {}) {
status: 500
};
}
- const g = await Rt(
- `${lt.VECTOR_BACKFILL_STATUS}?backfill_id=${encodeURIComponent(d)}`,
+ const g = await Ft(
+ `${ct.VECTOR_BACKFILL_STATUS}?backfill_id=${encodeURIComponent(d)}`,
{ timeoutMs: 3e4 }
- ), h = (g == null ? void 0 : g.data) || (A == null ? void 0 : A.data) || {}, f = String((h == null ? void 0 : h.status) || "").toLowerCase();
+ ), Z = (g == null ? void 0 : g.data) || (C == null ? void 0 : C.data) || {}, f = String((Z == null ? void 0 : Z.status) || "").toLowerCase();
if (g != null && g.ok && ["queued", "running", "pending"].includes(f)) {
try {
- i == null || i(h);
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ i == null || i(Z);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
return {
ok: !0,
code: "PENDING",
status: 202,
data: {
- ...h,
+ ...Z,
pending: !0,
timed_out: !0,
- poll_timeout_ms: M,
- backfill_id: String((h == null ? void 0 : h.backfill_id) || d),
+ poll_timeout_ms: S,
+ backfill_id: String((Z == null ? void 0 : Z.backfill_id) || d),
status: f || "running"
},
meta: { pending: !0 }
@@ -3482,23 +3496,23 @@ async function Og(e = 64, t = {}) {
}
return g != null && g.ok && f === "failed" ? {
ok: !1,
- error: String((h == null ? void 0 : h.error) || "Vector backfill failed"),
- code: String((h == null ? void 0 : h.code) || "DB_ERROR"),
- data: h,
+ error: String((Z == null ? void 0 : Z.error) || "Vector backfill failed"),
+ code: String((Z == null ? void 0 : Z.code) || "DB_ERROR"),
+ data: Z,
status: 500
} : {
ok: !1,
- error: `Vector backfill polling timed out after ${M}ms`,
+ error: `Vector backfill polling timed out after ${S}ms`,
code: "TIMEOUT",
- data: h || null,
+ data: Z || null,
status: 408
};
}
-async function Ef(e) {
+async function Pf(e) {
const t = String(e || "").trim();
- return t ? Et(`${lt.VECTOR_CAPTION}/${encodeURIComponent(t)}`, {}) : { ok: !1, error: "Missing asset ID" };
+ return t ? Et(`${ct.VECTOR_CAPTION}/${encodeURIComponent(t)}`, {}) : { ok: !1, error: "Missing asset ID" };
}
-async function Hf(e, {
+async function Qf(e, {
topK: t = 50,
scope: n = "output",
customRootId: i = "",
@@ -3512,14 +3526,14 @@ async function Hf(e, {
minHeight: u = null,
maxWidth: I = null,
maxHeight: p = null,
- workflowType: M = null,
- dateRange: Z = null,
- dateExact: A = null
+ workflowType: S = null,
+ dateRange: A = null,
+ dateExact: C = null
} = {}) {
const g = String(e || "").trim();
if (!g) return { ok: !1, error: "Empty query" };
- let h = `${lt.HYBRID_SEARCH}?q=${encodeURIComponent(g)}&top_k=${Math.max(1, Math.min(200, t))}&scope=${encodeURIComponent(n)}`;
- return i && (h += `&custom_root_id=${encodeURIComponent(i)}`), h = Ka(h, {
+ let Z = `${ct.HYBRID_SEARCH}?q=${encodeURIComponent(g)}&top_k=${Math.max(1, Math.min(200, t))}&scope=${encodeURIComponent(n)}`;
+ return i && (Z += `&custom_root_id=${encodeURIComponent(i)}`), Z = Da(Z, {
subfolder: o,
kind: r,
hasWorkflow: l,
@@ -3530,120 +3544,120 @@ async function Hf(e, {
minHeight: u,
maxWidth: I,
maxHeight: p,
- workflowType: M,
- dateRange: Z,
- dateExact: A
- }), Rt(h, { timeoutMs: 12e4 });
+ workflowType: S,
+ dateRange: A,
+ dateExact: C
+ }), Ft(Z, { timeoutMs: 12e4 });
}
-async function qf(e = 8) {
- return Et(lt.VECTOR_SUGGEST_COLLECTIONS, { k: Math.max(2, Math.min(20, e)) });
+async function _f(e = 8) {
+ return Et(ct.VECTOR_SUGGEST_COLLECTIONS, { k: Math.max(2, Math.min(20, e)) });
}
-const Pf = 3e4, Qd = Pf, _d = "__MJR_API_CLIENT__", zg = 2e3, Qf = 200, _f = 1e3, $f = 30 * 6e4, eh = 720 * 6e4, yo = "settings", $d = "available-tags", Er = Cr({ ttlMs: zg, maxSize: 1 }), Hr = Cr({ ttlMs: zg, maxSize: 1 }), Kc = Cr({ ttlMs: () => oh(), maxSize: 1 }), th = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]), nh = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
-function ih(e, t = !1) {
+const $f = 3e4, $d = $f, eu = "__MJR_API_CLIENT__", Jg = 2e3, eh = 200, th = 1e3, nh = 30 * 6e4, ih = 720 * 6e4, ho = "settings", tu = "available-tags", qr = Wr({ ttlMs: Jg, maxSize: 1 }), Pr = Wr({ ttlMs: Jg, maxSize: 1 }), Ec = Wr({ ttlMs: () => ah(), maxSize: 1 }), oh = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]), rh = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
+function lh(e, t = !1) {
if (typeof e == "boolean") return e;
if (typeof e == "number") return e !== 0;
if (typeof e == "string") {
const n = e.trim().toLowerCase();
- if (th.has(n)) return !0;
- if (nh.has(n)) return !1;
+ if (oh.has(n)) return !0;
+ if (rh.has(n)) return !1;
}
return !!t;
}
-function oh() {
+function ah() {
var e, t, n, i;
try {
- const o = ((e = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : e.call(localStorage, Fi)) || "{}", r = JSON.parse(o), l = ((t = r == null ? void 0 : r.cache) == null ? void 0 : t.tagsTTLms) ?? ((n = r == null ? void 0 : r.cache) == null ? void 0 : n.tagsTTL) ?? ((i = r == null ? void 0 : r.cache) == null ? void 0 : i.tags_ttl_ms) ?? null, a = Number(l);
- return Number.isFinite(a) ? Math.max(1e3, Math.min(10 * 6e4, Math.floor(a))) : Qd;
+ const o = ((e = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : e.call(localStorage, Oi)) || "{}", r = JSON.parse(o), l = ((t = r == null ? void 0 : r.cache) == null ? void 0 : t.tagsTTLms) ?? ((n = r == null ? void 0 : r.cache) == null ? void 0 : n.tagsTTL) ?? ((i = r == null ? void 0 : r.cache) == null ? void 0 : i.tags_ttl_ms) ?? null, a = Number(l);
+ return Number.isFinite(a) ? Math.max(1e3, Math.min(10 * 6e4, Math.floor(a))) : $d;
} catch {
- return Qd;
+ return $d;
}
}
-function eu() {
- Er.clear();
+function nu() {
+ qr.clear();
}
-function tu() {
- Hr.clear();
+function iu() {
+ Pr.clear();
}
-function Dc() {
- Kc.clear();
+function Hc() {
+ Ec.clear();
}
-function rh(e) {
+function ch(e) {
return String(e ?? "").trim().toLowerCase() || "";
}
-function lh(e) {
+function sh(e) {
const t = [], n = /* @__PURE__ */ new Set();
for (const i of Array.isArray(e) ? e : []) {
const o = String(i ?? "").trim();
if (!o) continue;
- const r = rh(o);
+ const r = ch(o);
!r || n.has(r) || (n.add(r), t.push(o));
}
return t;
}
-var $m, eg, tg;
+var eg, tg, ng;
try {
const e = typeof window < "u" ? window : null;
- e && !e[_d] && (e[_d] = { initialized: !0 }, ($m = e.addEventListener) == null || $m.call(e, "storage", (t) => {
+ e && !e[eu] && (e[eu] = { initialized: !0 }, (eg = e.addEventListener) == null || eg.call(e, "storage", (t) => {
var n;
try {
- (t == null ? void 0 : t.key) === Fi && (eu(), tu(), Dc(), Ed());
+ (t == null ? void 0 : t.key) === Oi && (nu(), iu(), Hc(), qd());
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
- }), (eg = e.addEventListener) == null || eg.call(e, "mjr-settings-changed", () => {
- eu(), tu(), Dc(), Ed();
+ }), (tg = e.addEventListener) == null || tg.call(e, "mjr-settings-changed", () => {
+ nu(), iu(), Hc(), qd();
}));
} catch (e) {
- (tg = console.debug) == null || tg.call(console, e);
+ (ng = console.debug) == null || ng.call(console, e);
}
-const ah = () => {
+const dh = () => {
var n, i;
- const e = Er.get(yo);
+ const e = qr.get(ho);
if (e !== void 0)
return e;
const t = Date.now();
try {
- const o = (n = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : n.call(localStorage, Fi);
+ const o = (n = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : n.call(localStorage, Oi);
if (!o)
- return Er.set(yo, !1, { at: t }), !1;
+ return qr.set(ho, !1, { at: t }), !1;
const r = JSON.parse(o), l = !!((i = r == null ? void 0 : r.observability) != null && i.enabled);
- return Er.set(yo, l, { at: t }), l;
+ return qr.set(ho, l, { at: t }), l;
} catch {
- return Er.set(yo, !1, { at: t }), !1;
+ return qr.set(ho, !1, { at: t }), !1;
}
-}, Jg = () => {
+}, Tg = () => {
var n, i;
- const e = Hr.get(yo);
+ const e = Pr.get(ho);
if (e !== void 0)
return e;
const t = Date.now();
try {
- const o = (n = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : n.call(localStorage, Fi);
+ const o = (n = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : n.call(localStorage, Oi);
if (!o)
- return Hr.set(yo, !0, { at: t }), !0;
- const r = JSON.parse(o), l = (i = r == null ? void 0 : r.ratingTagsSync) == null ? void 0 : i.enabled, a = l == null ? !0 : ih(l, !0);
- return Hr.set(yo, a, { at: t }), a;
+ return Pr.set(ho, !0, { at: t }), !0;
+ const r = JSON.parse(o), l = (i = r == null ? void 0 : r.ratingTagsSync) == null ? void 0 : i.enabled, a = l == null ? !0 : lh(l, !0);
+ return Pr.set(ho, a, { at: t }), a;
} catch {
- return Hr.set(yo, !0, { at: t }), !0;
+ return Pr.set(ho, !0, { at: t }), !0;
}
-}, Os = fy({
- readObsEnabled: ah,
- readAuthToken: Uc,
- ensureWriteAuthToken: sf,
- normalizeWriteAuthFailure: af
-}), Tg = Os.fetchAPI;
-async function Rt(e, t = {}) {
- return Os.get(e, t);
+}, Js = Zy({
+ readObsEnabled: dh,
+ readAuthToken: Dc,
+ ensureWriteAuthToken: mf,
+ normalizeWriteAuthFailure: df
+}), Bg = Js.fetchAPI;
+async function Ft(e, t = {}) {
+ return Js.get(e, t);
}
async function Et(e, t, n = {}) {
- return Os.post(e, t, n);
+ return Js.post(e, t, n);
}
-async function Do(e, t, n = {}) {
+async function Ho(e, t, n = {}) {
var c;
- const i = Jg(), o = e && typeof e == "object" ? e : null, r = o ? o.id : e, l = pi(r), a = {
+ const i = Tg(), o = e && typeof e == "object" ? e : null, r = o ? o.id : e, l = fi(r), a = {
rating: Math.max(0, Math.min(5, Number(t) || 0))
};
- return l ? a.asset_id = l : o && (a.filepath = o.filepath || o.path || ((c = o == null ? void 0 : o.file_info) == null ? void 0 : c.filepath) || "", a.type = o.type || "output", a.root_id = vi(o)), Tg("/mjr/am/asset/rating", {
+ return l ? a.asset_id = l : o && (a.filepath = o.filepath || o.path || ((c = o == null ? void 0 : o.file_info) == null ? void 0 : c.filepath) || "", a.type = o.type || "output", a.root_id = Mi(o)), Bg("/mjr/am/asset/rating", {
...n,
method: "POST",
headers: {
@@ -3653,13 +3667,13 @@ async function Do(e, t, n = {}) {
body: JSON.stringify(a)
});
}
-async function ch(e, t, n = {}) {
+async function uh(e, t, n = {}) {
var s;
- const i = Jg(), o = e && typeof e == "object" ? e : null, r = o ? o.id : e, l = pi(r), a = {
+ const i = Tg(), o = e && typeof e == "object" ? e : null, r = o ? o.id : e, l = fi(r), a = {
tags: Array.isArray(t) ? t : []
};
- l ? a.asset_id = l : o && (a.filepath = o.filepath || o.path || ((s = o == null ? void 0 : o.file_info) == null ? void 0 : s.filepath) || "", a.type = o.type || "output", a.root_id = vi(o));
- const c = await Tg("/mjr/am/asset/tags", {
+ l ? a.asset_id = l : o && (a.filepath = o.filepath || o.path || ((s = o == null ? void 0 : o.file_info) == null ? void 0 : s.filepath) || "", a.type = o.type || "output", a.root_id = Mi(o));
+ const c = await Bg("/mjr/am/asset/tags", {
...n,
method: "POST",
headers: {
@@ -3668,44 +3682,44 @@ async function ch(e, t, n = {}) {
},
body: JSON.stringify(a)
});
- return c != null && c.ok && Dc(), c;
+ return c != null && c.ok && Hc(), c;
}
-async function sh() {
- const e = Kc.get($d);
+async function mh() {
+ const e = Ec.get(tu);
if (Array.isArray(e))
return { ok: !0, data: e, error: null, code: "OK", meta: { cached: !0 } };
- const t = await Rt("/mjr/am/tags");
+ const t = await Ft("/mjr/am/tags");
if (t != null && t.ok && Array.isArray(t.data)) {
- const n = lh(t.data);
- return Kc.set($d, n), { ...t, data: n };
+ const n = sh(t.data);
+ return Ec.set(tu, n), { ...t, data: n };
}
return t;
}
-async function ml(e, t = {}) {
- const n = encodeURIComponent(pi(e));
- return Rt(`/mjr/am/asset/${n}`, {
+async function gl(e, t = {}) {
+ const n = encodeURIComponent(fi(e));
+ return Ft(`/mjr/am/asset/${n}`, {
...t,
dedupeKey: (t == null ? void 0 : t.dedupeKey) || `meta:${n}`
});
}
-async function Bg(e, t = {}) {
- const n = pi(e);
+async function Ug(e, t = {}) {
+ const n = fi(e);
if (!n) return { ok: !1, data: null, error: "Missing assetId", code: "INVALID_INPUT" };
let i = `/mjr/am/viewer/info?asset_id=${encodeURIComponent(n)}`;
t.refresh && (i += "&refresh=1");
const { refresh: o, ...r } = t;
- return Rt(i, r);
+ return Ft(i, r);
}
-async function zs(e, t = {}) {
+async function Ts(e, t = {}) {
const n = Array.isArray(e) ? e : [], i = [];
for (const o of n) {
const r = Number(o);
- if (Number.isFinite(r) && (i.push(Math.trunc(r)), i.length >= Qf))
+ if (Number.isFinite(r) && (i.push(Math.trunc(r)), i.length >= eh))
break;
}
return i.length ? Et("/mjr/am/assets/batch", { asset_ids: i }, t) : { ok: !0, data: [], error: null, code: "OK" };
}
-async function Ug({
+async function Kg({
type: e = "output",
filename: t = "",
subfolder: n = "",
@@ -3716,9 +3730,9 @@ async function Ug({
const a = String(e || "output").trim().toLowerCase() || "output", c = String(t || "").trim(), s = String(n || "").trim(), d = String(i || o || "").trim(), u = String(r || "").trim();
if (!c) return { ok: !1, data: null, error: "Missing filename", code: "INVALID_INPUT" };
let I = `/mjr/am/metadata?type=${encodeURIComponent(a)}&filename=${encodeURIComponent(c)}`;
- return u && (I += `&filepath=${encodeURIComponent(u)}`), s && (I += `&subfolder=${encodeURIComponent(s)}`), d && (I += `&root_id=${encodeURIComponent(d)}`), Rt(I, l);
+ return u && (I += `&filepath=${encodeURIComponent(u)}`), s && (I += `&subfolder=${encodeURIComponent(s)}`), d && (I += `&root_id=${encodeURIComponent(d)}`), Ft(I, l);
}
-async function dh({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {}, i = {}) {
+async function gh({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {}, i = {}) {
var d, u;
try {
if (globalThis.__mjrFolderInfoSupported === !1)
@@ -3729,10 +3743,10 @@ async function dh({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {},
code: "UNAVAILABLE"
};
if (globalThis.__mjrFolderInfoSupported == null) {
- const I = await Rt("/mjr/am/routes");
+ const I = await Ft("/mjr/am/routes");
if (I != null && I.ok && Array.isArray(I.data)) {
const p = I.data.some(
- (M) => String((M == null ? void 0 : M.path) || "").trim() === "/mjr/am/folder-info"
+ (S) => String((S == null ? void 0 : S.path) || "").trim() === "/mjr/am/folder-info"
);
if (globalThis.__mjrFolderInfoSupported = !!p, !p)
return {
@@ -3748,10 +3762,10 @@ async function dh({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {},
(d = console.debug) == null || d.call(console, I);
}
const o = String(e || "").trim(), r = String(t || "").trim(), l = String(n || "").trim();
- let a = lt.FOLDER_INFO;
+ let a = ct.FOLDER_INFO;
const c = [];
o ? (c.push(`filepath=${encodeURIComponent(o)}`), c.push("browser_mode=1")) : (r && c.push(`root_id=${encodeURIComponent(r)}`), l && c.push(`subfolder=${encodeURIComponent(l)}`)), c.length && (a += `?${c.join("&")}`);
- const s = await Rt(a, i);
+ const s = await Ft(a, i);
try {
!(s != null && s.ok) && Number((s == null ? void 0 : s.status) || 0) === 404 && (globalThis.__mjrFolderInfoSupported = !1);
} catch (I) {
@@ -3759,7 +3773,7 @@ async function dh({ filepath: e = "", root_id: t = "", subfolder: n = "" } = {},
}
return s;
}
-const Me = Object.freeze({
+const Ge = Object.freeze({
// Debug / diagnostics (opt-in)
DEBUG_SAFE_CALL: !1,
DEBUG_SAFE_LISTENERS: !1,
@@ -3811,12 +3825,13 @@ const Me = Object.freeze({
BADGE_MODEL3D_COLOR: "#4CAF50",
BADGE_DUPLICATE_ALERT_COLOR: "#FF1744",
// Pagination
- DEFAULT_PAGE_SIZE: 200,
+ DEFAULT_PAGE_SIZE: 80,
// Upper bound for a single list request. The backend allows more, but very large
// pages can create huge DOM batches; keep this as a safety cap.
MAX_PAGE_SIZE: 2e3,
- // Prefetch next page immediately after initial load for faster scrolling
+ // Prefetch next page after the first paint so initial grid render stays responsive
PREFETCH_NEXT_PAGE: !0,
+ PREFETCH_NEXT_PAGE_DELAY_MS: 700,
// Client-side default for search request limit (user-adjustable in settings)
SEARCH_DEFAULT_LIMIT: 500,
INFINITE_SCROLL_ENABLED: !0,
@@ -3835,7 +3850,7 @@ const Me = Object.freeze({
VIEWER_PAUSE_DURING_EXECUTION: !0,
FLOATING_VIEWER_PAUSE_DURING_EXECUTION: !1,
MFV_SIDEBAR_POSITION: "right",
- MFV_LIVE_DEFAULT: !0,
+ MFV_LIVE_DEFAULT: !1,
MFV_PREVIEW_DEFAULT: !0,
MFV_PREVIEW_METHOD: "taesd",
// Rating/tags hydration (grid)
@@ -3854,32 +3869,32 @@ const Me = Object.freeze({
// UI safety knobs
DELETE_CONFIRMATION: !0,
DEBUG_VERBOSE_ERRORS: !1
-}), ye = {
- ...Me
+}), fe = {
+ ...Ge
};
-function to(e, ...t) {
+function io(e, ...t) {
try {
- ye.DEBUG_VERBOSE_ERRORS && console.debug(e, ...t);
+ fe.DEBUG_VERBOSE_ERRORS && console.debug(e, ...t);
} catch {
}
}
-function li(e, t = "Majoor", { showToast: n = !1, toastType: i = "error" } = {}) {
+function ai(e, t = "Majoor", { showToast: n = !1, toastType: i = "error" } = {}) {
var r, l;
const o = (e == null ? void 0 : e.message) || String(e || "Unknown error");
try {
- ye.DEBUG_VERBOSE_ERRORS ? console.error(`[Majoor][${t}]`, o, e) : console.debug(`[Majoor][${t}]`, o);
+ fe.DEBUG_VERBOSE_ERRORS ? console.error(`[Majoor][${t}]`, o, e) : console.debug(`[Majoor][${t}]`, o);
} catch (a) {
(r = console.debug) == null || r.call(console, a);
}
- if (n && ye.DEBUG_VERBOSE_ERRORS)
+ if (n && fe.DEBUG_VERBOSE_ERRORS)
try {
- Ce(`${t}: ${o}`, i, 4e3);
+ Ze(`${t}: ${o}`, i, 4e3);
} catch (a) {
(l = console.debug) == null || l.call(console, a);
}
}
-let nu = !1, lo = null, iu = !1, cc = null;
-function uh() {
+let ou = !1, co = null, ru = !1, sc = null;
+function Ih() {
var e;
try {
const t = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__;
@@ -3888,25 +3903,25 @@ function uh() {
return (e = console.debug) == null || e.call(console, t), !0;
}
}
-async function gl(e = {}) {
- if (!ye || typeof ye != "object" || !ye.AUTO_SCAN_ON_STARTUP || nu) return;
+async function Il(e = {}) {
+ if (!fe || typeof fe != "object" || !fe.AUTO_SCAN_ON_STARTUP || ou) return;
const t = Math.max(0, Number(e == null ? void 0 : e.delayMs) || 0), n = (e == null ? void 0 : e.idleOnly) !== !1;
if (t > 0) {
- lo && clearTimeout(lo), lo = setTimeout(() => {
- lo = null, gl({ ...e, delayMs: 0 });
+ co && clearTimeout(co), co = setTimeout(() => {
+ co = null, Il({ ...e, delayMs: 0 });
}, t);
return;
}
- if (n && !uh()) {
- lo && clearTimeout(lo), lo = setTimeout(() => {
- lo = null, gl({ ...e, delayMs: 0 });
+ if (n && !Ih()) {
+ co && clearTimeout(co), co = setTimeout(() => {
+ co = null, Il({ ...e, delayMs: 0 });
}, 5e3);
return;
}
- nu = !0;
+ ou = !0;
try {
- to("[Majoor] Starting startup scan of output directory...");
- const i = await Et(lt.SCAN, {
+ io("[Majoor] Starting startup scan of output directory...");
+ const i = await Et(ct.SCAN, {
recursive: !0,
incremental: !0,
fast: !0,
@@ -3914,7 +3929,7 @@ async function gl(e = {}) {
});
if (i.ok) {
const o = i.data;
- to(
+ io(
`[Majoor] Startup scan complete β added: ${o.added}, updated: ${o.updated}, skipped: ${o.skipped}`
);
} else
@@ -3923,39 +3938,39 @@ async function gl(e = {}) {
console.error("π Majoor [β]: Startup scan error:", i);
}
}
-async function mh() {
+async function bh() {
var e;
try {
await Promise.allSettled([
- Rt(lt.HEALTH),
- Rt(`${lt.HEALTH_COUNTERS}?scope=output`),
- Rt(lt.HEALTH_DB)
+ Ft(ct.HEALTH),
+ Ft(`${ct.HEALTH_COUNTERS}?scope=output`),
+ Ft(ct.HEALTH_DB)
]);
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
}
-async function gh(e = {}) {
- return iu ? cc || Promise.resolve() : (iu = !0, cc = (async () => {
- await mh(), await gl(e);
- })(), cc);
+async function ph(e = {}) {
+ return ru ? sc || Promise.resolve() : (ru = !0, sc = (async () => {
+ await bh(), await Il(e);
+ })(), sc);
}
-async function Ih() {
+async function yh() {
try {
- to("[Majoor] Testing API connection...");
- const e = await Rt(lt.HEALTH);
- e != null && e.ok ? to("[Majoor] API connection successful, health:", e.data.overall) : console.error("π Majoor [β]: API health check failed:", e == null ? void 0 : e.error);
+ io("[Majoor] Testing API connection...");
+ const e = await Ft(ct.HEALTH);
+ e != null && e.ok ? io("[Majoor] API connection successful, health:", e.data.overall) : console.error("π Majoor [β]: API health check failed:", e == null ? void 0 : e.error);
} catch (e) {
console.error("π Majoor [β]: Failed to connect to API:", e);
}
}
-const bh = async (e, t = "Majoor", n = {}) => {
+const fh = async (e, t = "Majoor", n = {}) => {
var r, l, a;
if ((n == null ? void 0 : n.native) !== !1) {
- const c = Kg();
+ const c = Dg();
if (c)
try {
- c.show(Dg(e, t));
+ c.show(Eg(e, t));
try {
c.element.style.zIndex = "1100";
} catch (s) {
@@ -3966,7 +3981,7 @@ const bh = async (e, t = "Majoor", n = {}) => {
(l = console.debug) == null || l.call(console, s);
}
}
- const o = Sr();
+ const o = jr();
if (!o) {
try {
window.alert(e);
@@ -3978,13 +3993,13 @@ const bh = async (e, t = "Majoor", n = {}) => {
return new Promise((c) => {
var I;
const s = new o();
- Gr(s);
+ vr(s);
const d = () => {
var p;
try {
s.close();
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
c();
}, u = bn(
@@ -4052,7 +4067,7 @@ const bh = async (e, t = "Majoor", n = {}) => {
]
);
try {
- s.show(u), setTimeout(() => xr(s), 0);
+ s.show(u), setTimeout(() => Lr(s), 0);
} catch {
try {
window.alert(e);
@@ -4062,9 +4077,9 @@ const bh = async (e, t = "Majoor", n = {}) => {
c();
}
});
-}, bi = async (e, t = "Majoor") => {
+}, yi = async (e, t = "Majoor") => {
var o;
- const n = Js();
+ const n = Bs();
if (n)
try {
const r = {
@@ -4075,7 +4090,7 @@ const bh = async (e, t = "Majoor", n = {}) => {
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
- const i = Sr();
+ const i = jr();
if (!i)
try {
return window.confirm(e);
@@ -4084,7 +4099,7 @@ const bh = async (e, t = "Majoor", n = {}) => {
}
return new Promise((r) => {
const l = new i();
- Gr(l);
+ vr(l);
const a = (s) => {
var d;
try {
@@ -4171,7 +4186,7 @@ const bh = async (e, t = "Majoor", n = {}) => {
]
);
try {
- l.show(c), setTimeout(() => xr(l), 0);
+ l.show(c), setTimeout(() => Lr(l), 0);
} catch {
try {
r(!!window.confirm(e));
@@ -4180,8 +4195,8 @@ const bh = async (e, t = "Majoor", n = {}) => {
}
}
});
-}, ph = async (e, t = "Majoor", n = {}) => {
- const i = String((n == null ? void 0 : n.yes) || m("dialog.yes", "Yes")), o = String((n == null ? void 0 : n.no) || m("dialog.no", "No")), r = String((n == null ? void 0 : n.cancel) || m("dialog.cancel", "Cancel")), l = Sr();
+}, hh = async (e, t = "Majoor", n = {}) => {
+ const i = String((n == null ? void 0 : n.yes) || m("dialog.yes", "Yes")), o = String((n == null ? void 0 : n.no) || m("dialog.no", "No")), r = String((n == null ? void 0 : n.cancel) || m("dialog.cancel", "Cancel")), l = jr();
if (!l)
try {
const a = window.prompt(
@@ -4198,7 +4213,7 @@ ${i}=y, ${o}=n, ${r}=c`,
}
return new Promise((a) => {
const c = new l();
- Gr(c);
+ vr(c);
const s = (u) => {
var I;
try {
@@ -4306,19 +4321,19 @@ ${i}=y, ${o}=n, ${r}=c`,
]
);
try {
- c.show(d), setTimeout(() => xr(c), 0);
+ c.show(d), setTimeout(() => Lr(c), 0);
} catch {
a("cancel");
}
});
-}, yh = async (e, t = "Majoor", n = []) => {
+}, Ch = async (e, t = "Majoor", n = []) => {
const i = Array.isArray(n) ? n.filter((r) => r && typeof r == "object").map((r, l) => ({
id: String(r.id || `choice_${l}`),
label: String(r.label || r.id || `Choice ${l + 1}`),
variant: String(r.variant || "").toLowerCase()
})) : [];
if (!i.length) return null;
- const o = Sr();
+ const o = jr();
if (!o)
try {
const r = i.map((c, s) => `${s + 1}. ${c.label}`).join(`
@@ -4340,7 +4355,7 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
}
return new Promise((r) => {
const l = new o();
- Gr(l);
+ vr(l);
const a = (d) => {
var u;
try {
@@ -4423,14 +4438,14 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
]
);
try {
- l.show(s), setTimeout(() => xr(l), 0);
+ l.show(s), setTimeout(() => Lr(l), 0);
} catch {
r(null);
}
});
-}, ji = async (e, t = "", n = "Majoor") => {
+}, Vi = async (e, t = "", n = "Majoor") => {
var r;
- const i = Js();
+ const i = Bs();
if (i)
try {
const l = {
@@ -4442,7 +4457,7 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
- const o = Sr();
+ const o = jr();
if (!o)
try {
return window.prompt(e, t);
@@ -4451,7 +4466,7 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
}
return new Promise((l) => {
const a = new o();
- Gr(a);
+ vr(a);
const c = (u) => {
var I;
try {
@@ -4540,7 +4555,7 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
]
);
try {
- a.show(d), setTimeout(() => xr(a), 0), setTimeout(() => {
+ a.show(d), setTimeout(() => Lr(a), 0), setTimeout(() => {
var u;
try {
s.focus(), s.select();
@@ -4556,17 +4571,17 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
}
}
});
-}, qa = () => {
+}, Pa = () => {
try {
const e = Qn();
return (e == null ? void 0 : e.ui) || null;
} catch {
return null;
}
-}, Js = () => {
+}, Bs = () => {
var e, t, n;
try {
- const i = Qn(), o = Wy(i);
+ const i = Qn(), o = Sy(i);
if (o && typeof o.confirm == "function" && typeof o.prompt == "function")
return o;
} catch (i) {
@@ -4580,20 +4595,20 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
(n = console.debug) == null || n.call(console, i);
}
return null;
-}, Kg = () => {
+}, Dg = () => {
var e;
try {
- const t = qa();
+ const t = Pa();
if (t != null && t.dialog && typeof t.dialog.show == "function")
return t.dialog;
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
return null;
-}, Dg = (e, t = "Majoor") => {
+}, Eg = (e, t = "Majoor") => {
const n = String(e ?? ""), i = String(t ?? "").trim();
return !i || i.toLowerCase() === "majoor" ? n : `${i}
${n}`;
-}, fh = /* @__PURE__ */ new Set([
+}, Zh = /* @__PURE__ */ new Set([
"abort",
"blur",
"change",
@@ -4633,7 +4648,7 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
"transitionend",
"unload",
"wheel"
-]), hh = /* @__PURE__ */ new Set([
+]), Ah = /* @__PURE__ */ new Set([
"__proto__",
"constructor",
"prototype",
@@ -4644,7 +4659,7 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
"__defineSetter__",
"__lookupGetter__",
"__lookupSetter__"
-]), Ch = /* @__PURE__ */ new Set([
+]), Wh = /* @__PURE__ */ new Set([
"id",
"name",
"value",
@@ -4657,12 +4672,12 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
"htmlFor",
"role",
"tabIndex"
-]), Zh = (e, t = {}, n = []) => {
+]), wh = (e, t = {}, n = []) => {
const i = document.createElement(e);
return Object.entries(t || {}).forEach(([r, l]) => {
var c, s;
const a = String(r || "");
- if (!(!a || hh.has(a))) {
+ if (!(!a || Ah.has(a))) {
if (r === "style" && l && typeof l == "object") {
Object.assign(i.style, l);
return;
@@ -4674,11 +4689,11 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
if (a.startsWith("on")) {
if (typeof l == "function") {
const d = a.slice(2).toLowerCase();
- fh.has(d) && i.addEventListener(d, l);
+ Zh.has(d) && i.addEventListener(d, l);
}
return;
}
- if (Ch.has(a))
+ if (Wh.has(a))
try {
i[a] = l;
return;
@@ -4699,24 +4714,24 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
}
}), i;
}, bn = (e, t, n) => {
- const i = qa();
+ const i = Pa();
if (i != null && i.$el)
try {
return i.$el(e, t, n);
} catch {
}
- return Zh(e, t, n);
-}, Sr = () => {
- const e = qa();
+ return wh(e, t, n);
+}, jr = () => {
+ const e = Pa();
return (e == null ? void 0 : e.ComfyDialog) || null;
-}, Ah = 999999, Wh = 560, wh = 12, Gr = (e) => {
+}, Mh = 999999, Sh = 560, Gh = 12, vr = (e) => {
var t;
try {
- e.element.style.zIndex = String(Ah), e.element.style.width = `${Wh}px`, e.element.style.padding = "0", e.element.style.backgroundColor = "var(--comfy-menu-bg, #131722)", e.element.style.border = "1px solid rgba(255,255,255,0.14)", e.element.style.borderRadius = `${wh}px`, e.element.style.boxSizing = "border-box", e.element.style.overflow = "hidden", e.element.style.boxShadow = "0 18px 48px rgba(0,0,0,0.48)";
+ e.element.style.zIndex = String(Mh), e.element.style.width = `${Sh}px`, e.element.style.padding = "0", e.element.style.backgroundColor = "var(--comfy-menu-bg, #131722)", e.element.style.border = "1px solid rgba(255,255,255,0.14)", e.element.style.borderRadius = `${Gh}px`, e.element.style.boxSizing = "border-box", e.element.style.overflow = "hidden", e.element.style.boxShadow = "0 18px 48px rgba(0,0,0,0.48)";
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
-}, xr = (e) => {
+}, Lr = (e) => {
var t, n, i;
try {
const o = e == null ? void 0 : e.element;
@@ -4734,39 +4749,39 @@ ${m("dialog.choiceTypeNumber", "Type a number:")}`,
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
-}, Mh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+}, xh = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
$el: bn,
- comfyAlert: bh,
- comfyChoice: yh,
- comfyConfirm: bi,
- comfyPrompt: ji,
- comfyYesNoCancel: ph,
- getComfyDialogCtor: Sr,
- getComfyUi: qa,
- getExtensionManagerDialog: Js,
- getNativeDialog: Kg,
- hideDialogNativeClose: xr,
- styleDialog: Gr,
- toNativeDialogMessage: Dg
-}, Symbol.toStringTag, { value: "Module" })), Ec = "mjr:version-update-available", Sh = "__MJR_VERSION_UPDATE_STATE__", Gh = "https://api.github.com/repos/MajoorWaldi/ComfyUI-Majoor-AssetsManager/releases/latest", xh = "https://api.github.com/repos/MajoorWaldi/ComfyUI-Majoor-AssetsManager/releases/tags/nightly", sc = "majoor_last_update_check", ou = "majoor_version_toast_notice_version", ru = "majoor_nightly_release_marker", jh = 1440 * 60 * 1e3;
-let na = { available: !1, timestamp: Date.now() };
-function Eg(e) {
+ comfyAlert: fh,
+ comfyChoice: Ch,
+ comfyConfirm: yi,
+ comfyPrompt: Vi,
+ comfyYesNoCancel: hh,
+ getComfyDialogCtor: jr,
+ getComfyUi: Pa,
+ getExtensionManagerDialog: Bs,
+ getNativeDialog: Dg,
+ hideDialogNativeClose: Lr,
+ styleDialog: vr,
+ toNativeDialogMessage: Eg
+}, Symbol.toStringTag, { value: "Module" })), qc = "mjr:version-update-available", jh = "__MJR_VERSION_UPDATE_STATE__", vh = "https://api.github.com/repos/MajoorWaldi/ComfyUI-Majoor-AssetsManager/releases/latest", Lh = "https://api.github.com/repos/MajoorWaldi/ComfyUI-Majoor-AssetsManager/releases/tags/nightly", dc = "majoor_last_update_check", lu = "majoor_version_toast_notice_version", au = "majoor_nightly_release_marker", Vh = 1440 * 60 * 1e3;
+let ia = { available: !1, timestamp: Date.now() };
+function Hg(e) {
return e ? String(e).trim().replace(/^v/i, "") : "";
}
-function vh(e, t) {
+function Yh(e, t) {
const n = String(e || "").trim().toLowerCase(), i = String(t || "").trim().toLowerCase(), r = ["nightly", "dev", "alpha", "experimental"].some((a) => n.includes(a) || i.includes(a)), l = n.includes("+") || n.length > 10 && /^[a-f0-9]+$/i.test(n);
return r || l;
}
-function lu(e) {
+function cu(e) {
return String(e || "").split("-")[0].split(".").map((t) => {
const n = parseInt(t, 10);
return Number.isFinite(n) ? Math.max(0, n) : 0;
});
}
-function Lh(e, t) {
+function kh(e, t) {
if (!e || !t) return !1;
- const n = lu(e), i = lu(t), o = Math.max(n.length, i.length);
+ const n = cu(e), i = cu(t), o = Math.max(n.length, i.length);
for (let r = 0; r < o; r += 1) {
const l = Number.isFinite(n[r]) ? n[r] : 0, a = Number.isFinite(i[r]) ? i[r] : 0;
if (l > a) return !0;
@@ -4774,7 +4789,7 @@ function Lh(e, t) {
}
return !1;
}
-function Yh(e) {
+function Xh(e) {
var n, i;
const t = Math.max(1, Number(e) || 1e4);
try {
@@ -4812,8 +4827,8 @@ function Yh(e) {
return { signal: void 0, cleanup: () => {
} };
}
-async function Hg(e) {
- const { signal: t, cleanup: n } = Yh(1e4), i = await fetch(e, {
+async function qg(e) {
+ const { signal: t, cleanup: n } = Xh(1e4), i = await fetch(e, {
cache: "no-cache",
signal: t,
headers: {
@@ -4827,72 +4842,72 @@ async function Hg(e) {
throw new Error("GitHub release returned invalid payload");
return o;
}
-async function Vh() {
- const e = await Hg(Gh);
- return Eg(e.tag_name);
+async function Nh() {
+ const e = await qg(vh);
+ return Hg(e.tag_name);
}
-async function kh() {
- const e = await Hg(xh);
+async function Rh() {
+ const e = await qg(Lh);
return String(
e.published_at || e.created_at || e.updated_at || e.target_commitish || e.tag_name || ""
).trim();
}
-function ao(e) {
+function so(e) {
var n, i;
- na = { ...e, timestamp: Date.now() };
+ ia = { ...e, timestamp: Date.now() };
const t = typeof window < "u" ? window : null;
if (t) {
try {
- t[Sh] = na;
+ t[jh] = ia;
} catch (o) {
(n = console.debug) == null || n.call(console, o);
}
try {
- t.dispatchEvent(new CustomEvent(Ec, { detail: na }));
+ t.dispatchEvent(new CustomEvent(qc, { detail: ia }));
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
}
}
-function Xh() {
- return na;
+function Fh() {
+ return ia;
}
-async function Nh({ force: e = !1 } = {}) {
+async function Oh({ force: e = !1 } = {}) {
var r, l, a, c, s;
if (typeof window > "u")
return null;
let t, n;
try {
- const d = await Rt(lt.VERSION);
+ const d = await Ft(ct.VERSION);
if (!(d != null && d.ok))
- return ao({ available: !1 }), null;
- t = Eg((r = d.data) == null ? void 0 : r.version), n = String(((l = d.data) == null ? void 0 : l.branch) || "").trim().toLowerCase();
+ return so({ available: !1 }), null;
+ t = Hg((r = d.data) == null ? void 0 : r.version), n = String(((l = d.data) == null ? void 0 : l.branch) || "").trim().toLowerCase();
} catch {
- return ao({ available: !1 }), null;
+ return so({ available: !1 }), null;
}
let i = !1;
try {
if (!e) {
- const d = Number(ni.get(sc) || 0);
- Number.isFinite(d) && Date.now() - d < jh && (i = !0);
+ const d = Number(ni.get(dc) || 0);
+ Number.isFinite(d) && Date.now() - d < Vh && (i = !0);
}
} catch {
}
- if (!t || vh(t, n)) {
+ if (!t || Yh(t, n)) {
if (i)
- return ao({ available: !1 }), null;
+ return so({ available: !1 }), null;
let d;
try {
- d = await kh();
+ d = await Rh();
const u = String(
- ni.get(ru) || ""
+ ni.get(au) || ""
).trim(), I = !!(u && d && u !== d);
- if (ao({
+ if (so({
available: I,
current: t || "nightly",
latest: "nightly",
channel: "nightly"
- }), I && Ce(
+ }), I && Ze(
{
summary: m("msg.nightlyUpdateTitle", "Majoor Assets Manager"),
detail: m(
@@ -4904,15 +4919,15 @@ async function Nh({ force: e = !1 } = {}) {
0
), d)
try {
- ni.set(ru, d);
+ ni.set(au, d);
} catch (p) {
(a = console.debug) == null || a.call(console, p);
}
} catch (u) {
- console.warn("Unable to check Majoor nightly updates:", u), ao({ available: !1 });
+ console.warn("Unable to check Majoor nightly updates:", u), so({ available: !1 });
} finally {
try {
- ni.set(sc, String(Date.now()));
+ ni.set(dc, String(Date.now()));
} catch {
}
}
@@ -4922,27 +4937,27 @@ async function Nh({ force: e = !1 } = {}) {
return null;
let o;
try {
- o = await Vh();
+ o = await Nh();
} catch (d) {
- return console.warn("Unable to check Majoor updates:", d), ao({ available: !1 }), null;
+ return console.warn("Unable to check Majoor updates:", d), so({ available: !1 }), null;
} finally {
try {
- ni.set(sc, String(Date.now()));
+ ni.set(dc, String(Date.now()));
} catch {
}
}
- if (!o || !Lh(o, t))
- return ao({ available: !1 }), null;
- ao({
+ if (!o || !kh(o, t))
+ return so({ available: !1 }), null;
+ so({
available: !0,
current: t,
latest: o
});
try {
if (String(
- ni.get(ou) || ""
+ ni.get(lu) || ""
).trim() !== o) {
- Ce(
+ Ze(
{
summary: m("msg.newVersionTitle", "Majoor Assets Manager"),
detail: m(
@@ -4958,7 +4973,7 @@ async function Nh({ force: e = !1 } = {}) {
0
);
try {
- ni.set(ou, o);
+ ni.set(lu, o);
} catch (u) {
(c = console.debug) == null || c.call(console, u);
}
@@ -4968,7 +4983,7 @@ async function Nh({ force: e = !1 } = {}) {
}
return { current: t, latest: o };
}
-function Hc() {
+function Pc() {
const e = "mjr-feed-selection-override";
if (typeof document > "u" || document.getElementById(e)) return;
const t = document.createElement("style");
@@ -4984,11 +4999,11 @@ function Hc() {
}
`, document.head.appendChild(t);
}
-function Rh({ enabled: e = !0 } = {}) {
+function zh({ enabled: e = !0 } = {}) {
if (!e) return;
const t = "mjr-theme-comfy-css";
if (document.getElementById(t)) {
- Hc();
+ Pc();
return;
}
try {
@@ -5003,7 +5018,7 @@ function Rh({ enabled: e = !0 } = {}) {
}, document.head.appendChild(i), i.onload = () => {
var o;
try {
- document.documentElement.dataset.mjrThemeComfy = "1", Hc();
+ document.documentElement.dataset.mjrThemeComfy = "1", Pc();
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
@@ -5012,25 +5027,25 @@ function Rh({ enabled: e = !0 } = {}) {
console.warn("Majoor: failed to load Comfy theme CSS", n);
}
}
-Hc();
-const dc = "mjr-runtime-status-dashboard", Fh = "__mjr_write_token";
-function Oh() {
+Pc();
+const uc = "mjr-runtime-status-dashboard", Jh = "__mjr_write_token";
+function Th() {
var e;
try {
- return String(((e = sessionStorage == null ? void 0 : sessionStorage.getItem) == null ? void 0 : e.call(sessionStorage, Fh)) || "").trim();
+ return String(((e = sessionStorage == null ? void 0 : sessionStorage.getItem) == null ? void 0 : e.call(sessionStorage, Jh)) || "").trim();
} catch {
return "";
}
}
-function au(e, t) {
+function su(e, t) {
const n = t === "auth" ? "__mjrAuthLine" : "__mjrMetricsLine";
if (e != null && e[n])
return e[n];
const i = document.createElement("div");
return i.style.whiteSpace = "nowrap", i.style.lineHeight = "1.35", t === "auth" && (i.style.marginTop = "4px", i.style.fontWeight = "600"), e.appendChild(i), e[n] = i, i;
}
-function zh(e) {
- const t = Oh(), i = String((e == null ? void 0 : e.token_hint) || "").trim() || (t ? `...${t.slice(-4)}` : ""), o = (e == null ? void 0 : e.allow_write) !== !1, r = (e == null ? void 0 : e.require_auth) === !0, l = (e == null ? void 0 : e.token_configured) === !0;
+function Bh(e) {
+ const t = Th(), i = String((e == null ? void 0 : e.token_hint) || "").trim() || (t ? `...${t.slice(-4)}` : ""), o = (e == null ? void 0 : e.allow_write) !== !1, r = (e == null ? void 0 : e.require_auth) === !0, l = (e == null ? void 0 : e.token_configured) === !0;
return o ? t ? {
text: m("runtime.writeAuthActive", "Write auth: active {tokenHint}", {
tokenHint: i || "(session)"
@@ -5057,10 +5072,10 @@ function zh(e) {
color: "#ff9b9b"
};
}
-function Jh() {
+function Uh() {
var e, t, n;
try {
- const i = document.querySelector(".mjr-assets-manager.mjr-am-container"), o = document.getElementById(dc);
+ const i = document.querySelector(".mjr-assets-manager.mjr-am-container"), o = document.getElementById(uc);
if (!i) {
try {
(e = o == null ? void 0 : o.remove) == null || e.call(o);
@@ -5075,21 +5090,21 @@ function Jh() {
} catch (l) {
(n = console.debug) == null || n.call(console, l);
}
- let r = document.getElementById(dc);
- return r ? r.parentElement !== i && i.appendChild(r) : (r = document.createElement("div"), r.id = dc, r.style.position = "absolute", r.style.bottom = "10px", r.style.right = "10px", r.style.zIndex = "9999", r.style.padding = "6px 10px", r.style.borderRadius = "10px", r.style.border = "1px solid rgba(255,255,255,0.16)", r.style.background = "rgba(0,0,0,0.45)", r.style.backdropFilter = "blur(4px)", r.style.color = "var(--content-fg, #fff)", r.style.fontSize = "11px", r.style.pointerEvents = "none", r.style.display = "flex", r.style.flexDirection = "column", i.appendChild(r)), r;
+ let r = document.getElementById(uc);
+ return r ? r.parentElement !== i && i.appendChild(r) : (r = document.createElement("div"), r.id = uc, r.style.position = "absolute", r.style.bottom = "10px", r.style.right = "10px", r.style.zIndex = "9999", r.style.padding = "6px 10px", r.style.borderRadius = "10px", r.style.border = "1px solid rgba(255,255,255,0.16)", r.style.background = "rgba(0,0,0,0.45)", r.style.backdropFilter = "blur(4px)", r.style.color = "var(--content-fg, #fff)", r.style.fontSize = "11px", r.style.pointerEvents = "none", r.style.display = "flex", r.style.flexDirection = "column", i.appendChild(r)), r;
} catch {
return null;
}
}
-async function cu() {
+async function du() {
var i;
- const e = Jh();
+ const e = Uh();
if (!e) return !1;
- const t = au(e, "metrics"), n = au(e, "auth");
+ const t = su(e, "metrics"), n = su(e, "auth");
try {
const [o, r] = await Promise.all([
- kf(),
- Lg()
+ Rf(),
+ Vg()
]);
let l = m("runtime.unavailable", "Runtime: unavailable");
if (!(o != null && o.ok) || !(o != null && o.data))
@@ -5109,7 +5124,7 @@ Watcher pending files: {pending}`,
{ active: u, enrichQ: I, pending: p }
);
}
- const a = zh(((i = r == null ? void 0 : r.data) == null ? void 0 : i.prefs) || null);
+ const a = Bh(((i = r == null ? void 0 : r.data) == null ? void 0 : i.prefs) || null);
return n.textContent = a.text, n.style.color = a.color, e.title = `${l}
${a.text}`, !0;
} catch {
@@ -5117,12 +5132,12 @@ ${a.text}`, !0;
${n.textContent}`, !0;
}
}
-function Th() {
+function Kh() {
var e;
try {
- cu().catch(() => {
+ du().catch(() => {
}), window.__MJR_RUNTIME_STATUS_INFLIGHT__ == null && (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !1), window.__MJR_RUNTIME_STATUS_MISS_COUNT__ == null && (window.__MJR_RUNTIME_STATUS_MISS_COUNT__ = 0), window.__MJR_RUNTIME_STATUS_INTERVAL__ || (window.__MJR_RUNTIME_STATUS_INTERVAL__ = setInterval(() => {
- window.__MJR_RUNTIME_STATUS_INFLIGHT__ || (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !0, cu().then((t) => {
+ window.__MJR_RUNTIME_STATUS_INFLIGHT__ || (window.__MJR_RUNTIME_STATUS_INFLIGHT__ = !0, du().then((t) => {
if (t) {
window.__MJR_RUNTIME_STATUS_MISS_COUNT__ = 0;
return;
@@ -5137,7 +5152,7 @@ function Th() {
(e = console.debug) == null || e.call(console, t);
}
}
-function ii(e, t, { target: n = null, warnPrefix: i = "[Majoor]" } = {}) {
+function oi(e, t, { target: n = null, warnPrefix: i = "[Majoor]" } = {}) {
var r;
const o = n || (typeof window < "u" ? window : null);
if (!o || typeof o.dispatchEvent != "function") return !1;
@@ -5163,81 +5178,81 @@ const kn = (e, t) => {
}, Gn = (e, t) => {
const n = Number(e);
return Number.isFinite(n) ? n : Number(t);
-}, Ts = (e, t, n) => {
+}, Us = (e, t, n) => {
const i = typeof e == "string" ? e.trim() : String(e ?? "");
return t.includes(i) ? i : n;
-}, Bh = (e) => e === "__proto__" || e === "prototype" || e === "constructor", qg = (e, t) => {
+}, Dh = (e) => e === "__proto__" || e === "prototype" || e === "constructor", Pg = (e, t) => {
const n = { ...e };
return !t || typeof t != "object" || Object.keys(t).forEach((i) => {
- if (Bh(i)) return;
+ if (Dh(i)) return;
const o = t[i];
- o && typeof o == "object" && !Array.isArray(o) ? n[i] = qg(e[i] || {}, o) : o !== void 0 && (n[i] = o);
+ o && typeof o == "object" && !Array.isArray(o) ? n[i] = Pg(e[i] || {}, o) : o !== void 0 && (n[i] = o);
}), n;
-}, Pg = Object.freeze({
+}, Qg = Object.freeze({
small: 80,
medium: 120,
large: 180
-}), Qg = Object.freeze(["small", "medium", "large"]), qc = (e, t) => Math.max(60, Math.min(600, Math.round(Gn(e, t)))), Uh = (e = {}) => {
+}), _g = Object.freeze(["small", "medium", "large"]), Qc = (e, t) => Math.max(60, Math.min(600, Math.round(Gn(e, t)))), Eh = (e = {}) => {
const t = Number(e == null ? void 0 : e.minSize);
if (Number.isFinite(t))
- return qc(t, Me.GRID_MIN_SIZE);
- const n = Ts(
+ return Qc(t, Ge.GRID_MIN_SIZE);
+ const n = Us(
String((e == null ? void 0 : e.minSizePreset) || "").toLowerCase(),
- Qg,
+ _g,
""
);
- return n ? Pg[n] : qc(e == null ? void 0 : e.minSize, Me.GRID_MIN_SIZE);
-}, Kh = (e = {}) => qc(e == null ? void 0 : e.minSize, Me.FEED_GRID_MIN_SIZE), uc = (e) => {
- const t = Math.round(Gn(e, Me.GRID_MIN_SIZE));
+ return n ? Qg[n] : Qc(e == null ? void 0 : e.minSize, Ge.GRID_MIN_SIZE);
+}, Hh = (e = {}) => Qc(e == null ? void 0 : e.minSize, Ge.FEED_GRID_MIN_SIZE), mc = (e) => {
+ const t = Math.round(Gn(e, Ge.GRID_MIN_SIZE));
return t <= 100 ? "small" : t >= 150 ? "large" : "medium";
}, Un = {
debug: {
- safeCall: Me.DEBUG_SAFE_CALL,
- safeListeners: Me.DEBUG_SAFE_LISTENERS,
- viewer: Me.DEBUG_VIEWER
+ safeCall: Ge.DEBUG_SAFE_CALL,
+ safeListeners: Ge.DEBUG_SAFE_LISTENERS,
+ viewer: Ge.DEBUG_VIEWER
},
grid: {
- pageSize: Me.DEFAULT_PAGE_SIZE,
- minSize: Me.GRID_MIN_SIZE,
+ pageSize: Ge.DEFAULT_PAGE_SIZE,
+ minSize: Ge.GRID_MIN_SIZE,
minSizePreset: "medium",
- gap: Me.GRID_GAP,
- showExtBadge: Me.GRID_SHOW_BADGES_EXTENSION,
- showRatingBadge: Me.GRID_SHOW_BADGES_RATING,
- showTagsBadge: Me.GRID_SHOW_BADGES_TAGS,
- showDetails: Me.GRID_SHOW_DETAILS,
- showFilename: Me.GRID_SHOW_DETAILS_FILENAME,
- showDate: Me.GRID_SHOW_DETAILS_DATE,
- showDimensions: Me.GRID_SHOW_DETAILS_DIMENSIONS,
- showGenTime: Me.GRID_SHOW_DETAILS_GENTIME,
- showHoverInfo: Me.GRID_SHOW_HOVER_INFO,
- showWorkflowDot: Me.GRID_SHOW_WORKFLOW_DOT,
- videoAutoplayMode: Me.GRID_VIDEO_AUTOPLAY_MODE,
- starColor: Me.BADGE_STAR_COLOR,
- badgeImageColor: Me.BADGE_IMAGE_COLOR,
- badgeVideoColor: Me.BADGE_VIDEO_COLOR,
- badgeAudioColor: Me.BADGE_AUDIO_COLOR,
- badgeModel3dColor: Me.BADGE_MODEL3D_COLOR,
- badgeDuplicateAlertColor: Me.BADGE_DUPLICATE_ALERT_COLOR
+ gap: Ge.GRID_GAP,
+ showExtBadge: Ge.GRID_SHOW_BADGES_EXTENSION,
+ showRatingBadge: Ge.GRID_SHOW_BADGES_RATING,
+ showTagsBadge: Ge.GRID_SHOW_BADGES_TAGS,
+ showDetails: Ge.GRID_SHOW_DETAILS,
+ showFilename: Ge.GRID_SHOW_DETAILS_FILENAME,
+ showDate: Ge.GRID_SHOW_DETAILS_DATE,
+ showDimensions: Ge.GRID_SHOW_DETAILS_DIMENSIONS,
+ showGenTime: Ge.GRID_SHOW_DETAILS_GENTIME,
+ showHoverInfo: Ge.GRID_SHOW_HOVER_INFO,
+ showWorkflowDot: Ge.GRID_SHOW_WORKFLOW_DOT,
+ videoAutoplayMode: Ge.GRID_VIDEO_AUTOPLAY_MODE,
+ starColor: Ge.BADGE_STAR_COLOR,
+ badgeImageColor: Ge.BADGE_IMAGE_COLOR,
+ badgeVideoColor: Ge.BADGE_VIDEO_COLOR,
+ badgeAudioColor: Ge.BADGE_AUDIO_COLOR,
+ badgeModel3dColor: Ge.BADGE_MODEL3D_COLOR,
+ badgeDuplicateAlertColor: Ge.BADGE_DUPLICATE_ALERT_COLOR
},
infiniteScroll: {
- enabled: Me.INFINITE_SCROLL_ENABLED,
- rootMargin: Me.INFINITE_SCROLL_ROOT_MARGIN,
- threshold: Me.INFINITE_SCROLL_THRESHOLD,
- bottomGapPx: Me.BOTTOM_GAP_PX
+ enabled: Ge.INFINITE_SCROLL_ENABLED,
+ rootMargin: Ge.INFINITE_SCROLL_ROOT_MARGIN,
+ threshold: Ge.INFINITE_SCROLL_THRESHOLD,
+ bottomGapPx: Ge.BOTTOM_GAP_PX
},
siblings: {
hidePngSiblings: !0
},
autoScan: {
- onStartup: Me.AUTO_SCAN_ON_STARTUP
+ onStartup: Ge.AUTO_SCAN_ON_STARTUP
},
scan: {
fastMode: !0
},
watcher: {
enabled: !0,
- debounceMs: Me.WATCHER_DEBOUNCE_MS,
- dedupeTtlMs: Me.WATCHER_DEDUPE_TTL_MS,
+ debounceMs: Ge.WATCHER_DEBOUNCE_MS,
+ dedupeTtlMs: Ge.WATCHER_DEDUPE_TTL_MS,
maxPending: 500,
minSize: 100,
maxSize: 4294967296
@@ -5246,29 +5261,29 @@ const kn = (e, t) => {
confirmDeletion: !0
},
status: {
- pollInterval: Me.STATUS_POLL_INTERVAL
+ pollInterval: Ge.STATUS_POLL_INTERVAL
},
viewer: {
- allowPanAtZoom1: Me.VIEWER_ALLOW_PAN_AT_ZOOM_1,
- disableWebGL: Me.VIEWER_DISABLE_WEBGL_VIDEO,
- pauseDuringExecution: Me.VIEWER_PAUSE_DURING_EXECUTION,
- floatingPauseDuringExecution: Me.FLOATING_VIEWER_PAUSE_DURING_EXECUTION,
- mfvLiveDefault: Me.MFV_LIVE_DEFAULT,
- mfvPreviewDefault: Me.MFV_PREVIEW_DEFAULT,
- videoGradeThrottleFps: Me.VIEWER_VIDEO_GRADE_THROTTLE_FPS,
- scopesFps: Me.VIEWER_SCOPES_FPS,
- metaTtlMs: Me.VIEWER_META_TTL_MS,
- metaMaxEntries: Me.VIEWER_META_MAX_ENTRIES,
+ allowPanAtZoom1: Ge.VIEWER_ALLOW_PAN_AT_ZOOM_1,
+ disableWebGL: Ge.VIEWER_DISABLE_WEBGL_VIDEO,
+ pauseDuringExecution: Ge.VIEWER_PAUSE_DURING_EXECUTION,
+ floatingPauseDuringExecution: Ge.FLOATING_VIEWER_PAUSE_DURING_EXECUTION,
+ mfvLiveDefault: Ge.MFV_LIVE_DEFAULT,
+ mfvPreviewDefault: Ge.MFV_PREVIEW_DEFAULT,
+ videoGradeThrottleFps: Ge.VIEWER_VIDEO_GRADE_THROTTLE_FPS,
+ scopesFps: Ge.VIEWER_SCOPES_FPS,
+ metaTtlMs: Ge.VIEWER_META_TTL_MS,
+ metaMaxEntries: Ge.VIEWER_META_MAX_ENTRIES,
mfvSidebarPosition: "right",
- mfvPreviewMethod: Me.MFV_PREVIEW_METHOD,
+ mfvPreviewMethod: Ge.MFV_PREVIEW_METHOD,
ltxavRgbFallback: !1
},
rtHydrate: {
- concurrency: Me.RT_HYDRATE_CONCURRENCY,
- queueMax: Me.RT_HYDRATE_QUEUE_MAX,
- seenMax: Me.RT_HYDRATE_SEEN_MAX,
- pruneBudget: Me.RT_HYDRATE_PRUNE_BUDGET,
- seenTtlMs: Me.RT_HYDRATE_SEEN_TTL_MS
+ concurrency: Ge.RT_HYDRATE_CONCURRENCY,
+ queueMax: Ge.RT_HYDRATE_QUEUE_MAX,
+ seenMax: Ge.RT_HYDRATE_SEEN_MAX,
+ pruneBudget: Ge.RT_HYDRATE_PRUNE_BUDGET,
+ seenTtlMs: Ge.RT_HYDRATE_SEEN_TTL_MS
},
observability: {
enabled: !1,
@@ -5277,16 +5292,16 @@ const kn = (e, t) => {
verboseStartupLogs: !1
},
feed: {
- minSize: Me.FEED_GRID_MIN_SIZE,
- showInfo: Me.FEED_SHOW_INFO,
- showFilename: Me.FEED_SHOW_FILENAME,
- showDimensions: Me.FEED_SHOW_DIMENSIONS,
- showDate: Me.FEED_SHOW_DATE,
- showGenTime: Me.FEED_SHOW_GENTIME,
- showWorkflowDot: Me.FEED_SHOW_WORKFLOW_DOT,
- showExtBadge: Me.FEED_SHOW_BADGES_EXTENSION,
- showRatingBadge: Me.FEED_SHOW_BADGES_RATING,
- showTagsBadge: Me.FEED_SHOW_BADGES_TAGS
+ minSize: Ge.FEED_GRID_MIN_SIZE,
+ showInfo: Ge.FEED_SHOW_INFO,
+ showFilename: Ge.FEED_SHOW_FILENAME,
+ showDimensions: Ge.FEED_SHOW_DIMENSIONS,
+ showDate: Ge.FEED_SHOW_DATE,
+ showGenTime: Ge.FEED_SHOW_GENTIME,
+ showWorkflowDot: Ge.FEED_SHOW_WORKFLOW_DOT,
+ showExtBadge: Ge.FEED_SHOW_BADGES_EXTENSION,
+ showRatingBadge: Ge.FEED_SHOW_BADGES_RATING,
+ showTagsBadge: Ge.FEED_SHOW_BADGES_TAGS
},
sidebar: {
position: "right",
@@ -5319,14 +5334,14 @@ const kn = (e, t) => {
tagsTTLms: 3e4
},
search: {
- maxResults: Me.SEARCH_DEFAULT_LIMIT
+ maxResults: Ge.SEARCH_DEFAULT_LIMIT
},
ai: {
vectorSearchEnabled: !0,
verboseAiLogs: !1
},
executionGrouping: {
- enabled: Me.EXECUTION_GROUPING_ENABLED
+ enabled: Ge.EXECUTION_GROUPING_ENABLED
},
workflowMinimap: {
enabled: !1,
@@ -5340,10 +5355,10 @@ const kn = (e, t) => {
size: "comfortable"
},
ui: {
- cardHoverColor: Me.UI_CARD_HOVER_COLOR,
- cardSelectionColor: Me.UI_CARD_SELECTION_COLOR,
- ratingColor: Me.UI_RATING_COLOR,
- tagColor: Me.UI_TAG_COLOR
+ cardHoverColor: Ge.UI_CARD_HOVER_COLOR,
+ cardSelectionColor: Ge.UI_CARD_SELECTION_COLOR,
+ ratingColor: Ge.UI_RATING_COLOR,
+ tagColor: Ge.UI_TAG_COLOR
},
security: {
safeMode: !1,
@@ -5360,11 +5375,11 @@ const kn = (e, t) => {
}, Xn = () => {
var e;
try {
- const t = ni.get(Fi);
+ const t = ni.get(Oi);
if (!t) return { ...Un };
const n = JSON.parse(t), i = n && typeof n == "object" && Number.isInteger(n.version) && n.data && typeof n.data == "object", o = n && typeof n == "object" && !Array.isArray(n);
if (!i && !o) return { ...Un };
- if (i && Number(n.version) > Number(lg))
+ if (i && Number(n.version) > Number(ag))
return console.warn(
"[Majoor] settings schema version is newer than this build, using defaults"
), { ...Un };
@@ -5399,10 +5414,10 @@ const kn = (e, t) => {
if (r && typeof r == "object")
for (const [s, d] of Object.entries(r))
l.has(s) && (a[s] = d);
- const c = qg(Un, a);
+ const c = Pg(Un, a);
if (!i)
try {
- Te(c);
+ Be(c);
} catch (s) {
(e = console.debug) == null || e.call(console, s);
}
@@ -5410,21 +5425,21 @@ const kn = (e, t) => {
} catch (t) {
return console.warn("[Majoor] settings load failed, using defaults", t), { ...Un };
}
-}, Te = (e) => {
+}, Be = (e) => {
var t, n;
try {
const i = JSON.parse(JSON.stringify(e || {}));
i != null && i.security && typeof i.security == "object" && (i.security.apiToken = "");
const o = {
- version: lg,
+ version: ag,
data: i
};
- ni.set(Fi, JSON.stringify(o));
+ ni.set(Oi, JSON.stringify(o));
} catch (i) {
console.warn("[Majoor] settings save failed", i);
try {
const o = Date.now(), r = Number((window == null ? void 0 : window._mjrSettingsSaveFailAt) || 0) || 0;
- o - r > 3e4 && (window._mjrSettingsSaveFailAt = o, Promise.resolve().then(() => Mh).then(
+ o - r > 3e4 && (window._mjrSettingsSaveFailAt = o, Promise.resolve().then(() => xh).then(
({ comfyAlert: l }) => l(
m(
"dialog.settingsSaveFailed",
@@ -5437,7 +5452,7 @@ const kn = (e, t) => {
(t = console.debug) == null || t.call(console, o);
}
try {
- ii(
+ oi(
"mjr-settings-save-failed",
{ error: String((i == null ? void 0 : i.message) || i || "") },
{ warnPrefix: "[Majoor]" }
@@ -5447,188 +5462,188 @@ const kn = (e, t) => {
}
}
}, At = (e) => {
- var o, r, l, a, c, s, d, u, I, p, M, Z, A, g, h, f, b, v, C, S, W, y, k, G, z, x, w, X, V, R, j, L, N, q, O, B, J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $, _, le, se, de, Ze, Fe, xe, ze, We, De, Pe, Qe, Ue, Ee, Re, wt, Se, Ft, Gt;
- const t = Number(Me.MAX_PAGE_SIZE) || 2e3, n = Math.max(
+ var o, r, l, a, c, s, d, u, I, p, S, A, C, g, Z, f, b, L, h, G, W, y, X, x, T, v, w, R, Y, F, N, V, k, K, z, B, J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue, U, Q, _, le, de, se, ge, je, Se, ke, we, Je, $e, qe, Ue, Te, Oe, pt, Me, Xt, Mt;
+ const t = Number(Ge.MAX_PAGE_SIZE) || 2e3, n = Math.max(
50,
- Math.min(t, Number((o = e.grid) == null ? void 0 : o.pageSize) || Me.DEFAULT_PAGE_SIZE)
+ Math.min(t, Number((o = e.grid) == null ? void 0 : o.pageSize) || Ge.DEFAULT_PAGE_SIZE)
);
- ye.DEFAULT_PAGE_SIZE = n, ye.AUTO_SCAN_ON_STARTUP = !!((r = e.autoScan) != null && r.onStartup), ye.EXECUTION_GROUPING_ENABLED = !!(((l = e.executionGrouping) == null ? void 0 : l.enabled) ?? Me.EXECUTION_GROUPING_ENABLED), ye.STATUS_POLL_INTERVAL = Math.max(
+ fe.DEFAULT_PAGE_SIZE = n, fe.AUTO_SCAN_ON_STARTUP = !!((r = e.autoScan) != null && r.onStartup), fe.EXECUTION_GROUPING_ENABLED = !!(((l = e.executionGrouping) == null ? void 0 : l.enabled) ?? Ge.EXECUTION_GROUPING_ENABLED), fe.STATUS_POLL_INTERVAL = Math.max(
1e3,
- Number((a = e.status) == null ? void 0 : a.pollInterval) || Me.STATUS_POLL_INTERVAL
- ), ye.DEBUG_SAFE_CALL = !!((c = e.debug) != null && c.safeCall), ye.DEBUG_SAFE_LISTENERS = !!((s = e.debug) != null && s.safeListeners), ye.DEBUG_VIEWER = !!((d = e.debug) != null && d.viewer), ye.GRID_MIN_SIZE = Uh(e.grid), ye.FEED_GRID_MIN_SIZE = Kh(e.feed), ye.GRID_GAP = Math.max(
+ Number((a = e.status) == null ? void 0 : a.pollInterval) || Ge.STATUS_POLL_INTERVAL
+ ), fe.DEBUG_SAFE_CALL = !!((c = e.debug) != null && c.safeCall), fe.DEBUG_SAFE_LISTENERS = !!((s = e.debug) != null && s.safeListeners), fe.DEBUG_VIEWER = !!((d = e.debug) != null && d.viewer), fe.GRID_MIN_SIZE = Eh(e.grid), fe.FEED_GRID_MIN_SIZE = Hh(e.feed), fe.GRID_GAP = Math.max(
0,
- Math.min(40, Math.round(Gn((u = e.grid) == null ? void 0 : u.gap, Me.GRID_GAP)))
- ), ye.GRID_SHOW_BADGES_EXTENSION = !!(((I = e.grid) == null ? void 0 : I.showExtBadge) ?? Me.GRID_SHOW_BADGES_EXTENSION), ye.GRID_SHOW_BADGES_RATING = !!(((p = e.grid) == null ? void 0 : p.showRatingBadge) ?? Me.GRID_SHOW_BADGES_RATING), ye.GRID_SHOW_BADGES_TAGS = !!(((M = e.grid) == null ? void 0 : M.showTagsBadge) ?? Me.GRID_SHOW_BADGES_TAGS), ye.GRID_SHOW_DETAILS = !!(((Z = e.grid) == null ? void 0 : Z.showDetails) ?? Me.GRID_SHOW_DETAILS), ye.GRID_SHOW_DETAILS_FILENAME = !!(((A = e.grid) == null ? void 0 : A.showFilename) ?? Me.GRID_SHOW_DETAILS_FILENAME), ye.GRID_SHOW_DETAILS_DATE = !!(((g = e.grid) == null ? void 0 : g.showDate) ?? Me.GRID_SHOW_DETAILS_DATE), ye.GRID_SHOW_DETAILS_DIMENSIONS = !!(((h = e.grid) == null ? void 0 : h.showDimensions) ?? Me.GRID_SHOW_DETAILS_DIMENSIONS), ye.GRID_SHOW_DETAILS_GENTIME = !!(((f = e.grid) == null ? void 0 : f.showGenTime) ?? Me.GRID_SHOW_DETAILS_GENTIME), ye.GRID_SHOW_HOVER_INFO = !!(((b = e.grid) == null ? void 0 : b.showHoverInfo) ?? Me.GRID_SHOW_HOVER_INFO), ye.GRID_SHOW_WORKFLOW_DOT = !!(((v = e.grid) == null ? void 0 : v.showWorkflowDot) ?? Me.GRID_SHOW_WORKFLOW_DOT), ye.FEED_SHOW_INFO = !!(((C = e.feed) == null ? void 0 : C.showInfo) ?? Me.FEED_SHOW_INFO), ye.FEED_SHOW_FILENAME = !!(((S = e.feed) == null ? void 0 : S.showFilename) ?? Me.FEED_SHOW_FILENAME), ye.FEED_SHOW_DIMENSIONS = !!(((W = e.feed) == null ? void 0 : W.showDimensions) ?? Me.FEED_SHOW_DIMENSIONS), ye.FEED_SHOW_DATE = !!(((y = e.feed) == null ? void 0 : y.showDate) ?? Me.FEED_SHOW_DATE), ye.FEED_SHOW_GENTIME = !!(((k = e.feed) == null ? void 0 : k.showGenTime) ?? Me.FEED_SHOW_GENTIME), ye.FEED_SHOW_WORKFLOW_DOT = !!(((G = e.feed) == null ? void 0 : G.showWorkflowDot) ?? Me.FEED_SHOW_WORKFLOW_DOT), ye.FEED_SHOW_BADGES_EXTENSION = !!(((z = e.feed) == null ? void 0 : z.showExtBadge) ?? Me.FEED_SHOW_BADGES_EXTENSION), ye.FEED_SHOW_BADGES_RATING = !!(((x = e.feed) == null ? void 0 : x.showRatingBadge) ?? Me.FEED_SHOW_BADGES_RATING), ye.FEED_SHOW_BADGES_TAGS = !!(((w = e.feed) == null ? void 0 : w.showTagsBadge) ?? Me.FEED_SHOW_BADGES_TAGS);
+ Math.min(40, Math.round(Gn((u = e.grid) == null ? void 0 : u.gap, Ge.GRID_GAP)))
+ ), fe.GRID_SHOW_BADGES_EXTENSION = !!(((I = e.grid) == null ? void 0 : I.showExtBadge) ?? Ge.GRID_SHOW_BADGES_EXTENSION), fe.GRID_SHOW_BADGES_RATING = !!(((p = e.grid) == null ? void 0 : p.showRatingBadge) ?? Ge.GRID_SHOW_BADGES_RATING), fe.GRID_SHOW_BADGES_TAGS = !!(((S = e.grid) == null ? void 0 : S.showTagsBadge) ?? Ge.GRID_SHOW_BADGES_TAGS), fe.GRID_SHOW_DETAILS = !!(((A = e.grid) == null ? void 0 : A.showDetails) ?? Ge.GRID_SHOW_DETAILS), fe.GRID_SHOW_DETAILS_FILENAME = !!(((C = e.grid) == null ? void 0 : C.showFilename) ?? Ge.GRID_SHOW_DETAILS_FILENAME), fe.GRID_SHOW_DETAILS_DATE = !!(((g = e.grid) == null ? void 0 : g.showDate) ?? Ge.GRID_SHOW_DETAILS_DATE), fe.GRID_SHOW_DETAILS_DIMENSIONS = !!(((Z = e.grid) == null ? void 0 : Z.showDimensions) ?? Ge.GRID_SHOW_DETAILS_DIMENSIONS), fe.GRID_SHOW_DETAILS_GENTIME = !!(((f = e.grid) == null ? void 0 : f.showGenTime) ?? Ge.GRID_SHOW_DETAILS_GENTIME), fe.GRID_SHOW_HOVER_INFO = !!(((b = e.grid) == null ? void 0 : b.showHoverInfo) ?? Ge.GRID_SHOW_HOVER_INFO), fe.GRID_SHOW_WORKFLOW_DOT = !!(((L = e.grid) == null ? void 0 : L.showWorkflowDot) ?? Ge.GRID_SHOW_WORKFLOW_DOT), fe.FEED_SHOW_INFO = !!(((h = e.feed) == null ? void 0 : h.showInfo) ?? Ge.FEED_SHOW_INFO), fe.FEED_SHOW_FILENAME = !!(((G = e.feed) == null ? void 0 : G.showFilename) ?? Ge.FEED_SHOW_FILENAME), fe.FEED_SHOW_DIMENSIONS = !!(((W = e.feed) == null ? void 0 : W.showDimensions) ?? Ge.FEED_SHOW_DIMENSIONS), fe.FEED_SHOW_DATE = !!(((y = e.feed) == null ? void 0 : y.showDate) ?? Ge.FEED_SHOW_DATE), fe.FEED_SHOW_GENTIME = !!(((X = e.feed) == null ? void 0 : X.showGenTime) ?? Ge.FEED_SHOW_GENTIME), fe.FEED_SHOW_WORKFLOW_DOT = !!(((x = e.feed) == null ? void 0 : x.showWorkflowDot) ?? Ge.FEED_SHOW_WORKFLOW_DOT), fe.FEED_SHOW_BADGES_EXTENSION = !!(((T = e.feed) == null ? void 0 : T.showExtBadge) ?? Ge.FEED_SHOW_BADGES_EXTENSION), fe.FEED_SHOW_BADGES_RATING = !!(((v = e.feed) == null ? void 0 : v.showRatingBadge) ?? Ge.FEED_SHOW_BADGES_RATING), fe.FEED_SHOW_BADGES_TAGS = !!(((w = e.feed) == null ? void 0 : w.showTagsBadge) ?? Ge.FEED_SHOW_BADGES_TAGS);
{
- let ue = ((X = e.grid) == null ? void 0 : X.videoAutoplayMode) ?? Me.GRID_VIDEO_AUTOPLAY_MODE;
- ue == null && (ue = ((V = e.grid) == null ? void 0 : V.videoHoverAutoplay) === !1 ? "off" : "hover"), ue === !0 && (ue = "hover"), ue === !1 && (ue = "off"), ue !== "hover" && ue !== "always" && ue !== "off" && (ue = "hover"), ye.GRID_VIDEO_AUTOPLAY_MODE = ue;
+ let me = ((R = e.grid) == null ? void 0 : R.videoAutoplayMode) ?? Ge.GRID_VIDEO_AUTOPLAY_MODE;
+ me == null && (me = ((Y = e.grid) == null ? void 0 : Y.videoHoverAutoplay) === !1 ? "off" : "hover"), me === !0 && (me = "hover"), me === !1 && (me = "off"), me !== "hover" && me !== "always" && me !== "off" && (me = "hover"), fe.GRID_VIDEO_AUTOPLAY_MODE = me;
}
- const i = (ue, He) => {
- let ve = String(ue || "").trim();
- return /^[0-9a-fA-F]{6}$/.test(ve) && (ve = `#${ve}`), /^#[0-9a-fA-F]{3,8}$/.test(ve) ? ve : He;
+ const i = (me, Pe) => {
+ let Le = String(me || "").trim();
+ return /^[0-9a-fA-F]{6}$/.test(Le) && (Le = `#${Le}`), /^#[0-9a-fA-F]{3,8}$/.test(Le) ? Le : Pe;
};
- ye.BADGE_STAR_COLOR = i(
- (R = e.grid) == null ? void 0 : R.starColor,
- Me.BADGE_STAR_COLOR
- ), ye.BADGE_IMAGE_COLOR = i(
- (j = e.grid) == null ? void 0 : j.badgeImageColor,
- Me.BADGE_IMAGE_COLOR
- ), ye.BADGE_VIDEO_COLOR = i(
- (L = e.grid) == null ? void 0 : L.badgeVideoColor,
- Me.BADGE_VIDEO_COLOR
- ), ye.BADGE_AUDIO_COLOR = i(
- (N = e.grid) == null ? void 0 : N.badgeAudioColor,
- Me.BADGE_AUDIO_COLOR
- ), ye.BADGE_MODEL3D_COLOR = i(
- (q = e.grid) == null ? void 0 : q.badgeModel3dColor,
- Me.BADGE_MODEL3D_COLOR
- ), ye.BADGE_DUPLICATE_ALERT_COLOR = i(
- (O = e.grid) == null ? void 0 : O.badgeDuplicateAlertColor,
- Me.BADGE_DUPLICATE_ALERT_COLOR
- ), ye.UI_CARD_HOVER_COLOR = i(
+ fe.BADGE_STAR_COLOR = i(
+ (F = e.grid) == null ? void 0 : F.starColor,
+ Ge.BADGE_STAR_COLOR
+ ), fe.BADGE_IMAGE_COLOR = i(
+ (N = e.grid) == null ? void 0 : N.badgeImageColor,
+ Ge.BADGE_IMAGE_COLOR
+ ), fe.BADGE_VIDEO_COLOR = i(
+ (V = e.grid) == null ? void 0 : V.badgeVideoColor,
+ Ge.BADGE_VIDEO_COLOR
+ ), fe.BADGE_AUDIO_COLOR = i(
+ (k = e.grid) == null ? void 0 : k.badgeAudioColor,
+ Ge.BADGE_AUDIO_COLOR
+ ), fe.BADGE_MODEL3D_COLOR = i(
+ (K = e.grid) == null ? void 0 : K.badgeModel3dColor,
+ Ge.BADGE_MODEL3D_COLOR
+ ), fe.BADGE_DUPLICATE_ALERT_COLOR = i(
+ (z = e.grid) == null ? void 0 : z.badgeDuplicateAlertColor,
+ Ge.BADGE_DUPLICATE_ALERT_COLOR
+ ), fe.UI_CARD_HOVER_COLOR = i(
(B = e.ui) == null ? void 0 : B.cardHoverColor,
- Me.UI_CARD_HOVER_COLOR
- ), ye.UI_CARD_SELECTION_COLOR = i(
+ Ge.UI_CARD_HOVER_COLOR
+ ), fe.UI_CARD_SELECTION_COLOR = i(
(J = e.ui) == null ? void 0 : J.cardSelectionColor,
- Me.UI_CARD_SELECTION_COLOR
- ), ye.UI_RATING_COLOR = i((T = e.ui) == null ? void 0 : T.ratingColor, Me.UI_RATING_COLOR), ye.UI_TAG_COLOR = i((D = e.ui) == null ? void 0 : D.tagColor, Me.UI_TAG_COLOR);
+ Ge.UI_CARD_SELECTION_COLOR
+ ), fe.UI_RATING_COLOR = i((P = e.ui) == null ? void 0 : P.ratingColor, Ge.UI_RATING_COLOR), fe.UI_TAG_COLOR = i((H = e.ui) == null ? void 0 : H.tagColor, Ge.UI_TAG_COLOR);
try {
- const ue = Array.from(document.querySelectorAll(".mjr-assets-manager"));
- for (const He of ue)
- He.style.setProperty("--mjr-star-active", ye.BADGE_STAR_COLOR), He.style.setProperty("--mjr-badge-image", ye.BADGE_IMAGE_COLOR), He.style.setProperty("--mjr-badge-video", ye.BADGE_VIDEO_COLOR), He.style.setProperty("--mjr-badge-audio", ye.BADGE_AUDIO_COLOR), He.style.setProperty("--mjr-badge-model3d", ye.BADGE_MODEL3D_COLOR), He.style.setProperty(
+ const me = Array.from(document.querySelectorAll(".mjr-assets-manager"));
+ for (const Pe of me)
+ Pe.style.setProperty("--mjr-star-active", fe.BADGE_STAR_COLOR), Pe.style.setProperty("--mjr-badge-image", fe.BADGE_IMAGE_COLOR), Pe.style.setProperty("--mjr-badge-video", fe.BADGE_VIDEO_COLOR), Pe.style.setProperty("--mjr-badge-audio", fe.BADGE_AUDIO_COLOR), Pe.style.setProperty("--mjr-badge-model3d", fe.BADGE_MODEL3D_COLOR), Pe.style.setProperty(
"--mjr-badge-duplicate-alert",
- ye.BADGE_DUPLICATE_ALERT_COLOR
- ), He.style.setProperty("--mjr-card-hover-color", ye.UI_CARD_HOVER_COLOR), He.style.setProperty(
+ fe.BADGE_DUPLICATE_ALERT_COLOR
+ ), Pe.style.setProperty("--mjr-card-hover-color", fe.UI_CARD_HOVER_COLOR), Pe.style.setProperty(
"--mjr-card-selection-color",
- ye.UI_CARD_SELECTION_COLOR
- ), He.style.setProperty("--mjr-rating-color", ye.UI_RATING_COLOR), He.style.setProperty("--mjr-tag-color", ye.UI_TAG_COLOR);
- } catch (ue) {
- (Q = console.debug) == null || Q.call(console, ue);
+ fe.UI_CARD_SELECTION_COLOR
+ ), Pe.style.setProperty("--mjr-rating-color", fe.UI_RATING_COLOR), Pe.style.setProperty("--mjr-tag-color", fe.UI_TAG_COLOR);
+ } catch (me) {
+ ($ = console.debug) == null || $.call(console, me);
}
- ye.INFINITE_SCROLL_ENABLED = !!((E = e.infiniteScroll) != null && E.enabled), ye.INFINITE_SCROLL_ROOT_MARGIN = String(
- ((K = e.infiniteScroll) == null ? void 0 : K.rootMargin) || Me.INFINITE_SCROLL_ROOT_MARGIN
- ), ye.INFINITE_SCROLL_THRESHOLD = Math.max(
+ fe.INFINITE_SCROLL_ENABLED = !!((E = e.infiniteScroll) != null && E.enabled), fe.INFINITE_SCROLL_ROOT_MARGIN = String(
+ ((oe = e.infiniteScroll) == null ? void 0 : oe.rootMargin) || Ge.INFINITE_SCROLL_ROOT_MARGIN
+ ), fe.INFINITE_SCROLL_THRESHOLD = Math.max(
0,
Math.min(
1,
- Gn((F = e.infiniteScroll) == null ? void 0 : F.threshold, Me.INFINITE_SCROLL_THRESHOLD)
+ Gn((M = e.infiniteScroll) == null ? void 0 : M.threshold, Ge.INFINITE_SCROLL_THRESHOLD)
)
- ), ye.BOTTOM_GAP_PX = Math.max(
+ ), fe.BOTTOM_GAP_PX = Math.max(
0,
Math.min(
5e3,
- Math.round(Gn((Y = e.infiniteScroll) == null ? void 0 : Y.bottomGapPx, Me.BOTTOM_GAP_PX))
+ Math.round(Gn((j = e.infiniteScroll) == null ? void 0 : j.bottomGapPx, Ge.BOTTOM_GAP_PX))
)
- ), ye.VIEWER_ALLOW_PAN_AT_ZOOM_1 = !!((U = e.viewer) != null && U.allowPanAtZoom1), ye.VIEWER_DISABLE_WEBGL_VIDEO = !!((P = e.viewer) != null && P.disableWebGL), ye.VIEWER_PAUSE_DURING_EXECUTION = !!(((ee = e.viewer) == null ? void 0 : ee.pauseDuringExecution) ?? Me.VIEWER_PAUSE_DURING_EXECUTION), ye.FLOATING_VIEWER_PAUSE_DURING_EXECUTION = !!(((oe = e.viewer) == null ? void 0 : oe.floatingPauseDuringExecution) ?? Me.FLOATING_VIEWER_PAUSE_DURING_EXECUTION), ye.MFV_LIVE_DEFAULT = ((ce = e.viewer) == null ? void 0 : ce.mfvLiveDefault) ?? Me.MFV_LIVE_DEFAULT, ye.MFV_PREVIEW_DEFAULT = ((pe = e.viewer) == null ? void 0 : pe.mfvPreviewDefault) ?? Me.MFV_PREVIEW_DEFAULT;
+ ), fe.VIEWER_ALLOW_PAN_AT_ZOOM_1 = !!((O = e.viewer) != null && O.allowPanAtZoom1), fe.VIEWER_DISABLE_WEBGL_VIDEO = !!((D = e.viewer) != null && D.disableWebGL), fe.VIEWER_PAUSE_DURING_EXECUTION = !!(((q = e.viewer) == null ? void 0 : q.pauseDuringExecution) ?? Ge.VIEWER_PAUSE_DURING_EXECUTION), fe.FLOATING_VIEWER_PAUSE_DURING_EXECUTION = !!(((ee = e.viewer) == null ? void 0 : ee.floatingPauseDuringExecution) ?? Ge.FLOATING_VIEWER_PAUSE_DURING_EXECUTION), fe.MFV_LIVE_DEFAULT = ((ce = e.viewer) == null ? void 0 : ce.mfvLiveDefault) ?? Ge.MFV_LIVE_DEFAULT, fe.MFV_PREVIEW_DEFAULT = ((ue = e.viewer) == null ? void 0 : ue.mfvPreviewDefault) ?? Ge.MFV_PREVIEW_DEFAULT;
{
- const ue = String(
- ((H = e.viewer) == null ? void 0 : H.mfvPreviewMethod) || Me.MFV_PREVIEW_METHOD
+ const me = String(
+ ((U = e.viewer) == null ? void 0 : U.mfvPreviewMethod) || Ge.MFV_PREVIEW_METHOD
).toLowerCase();
- ye.MFV_PREVIEW_METHOD = ["default", "auto", "latent2rgb", "taesd", "none"].includes(
- ue
- ) ? ue : Me.MFV_PREVIEW_METHOD;
+ fe.MFV_PREVIEW_METHOD = ["default", "auto", "latent2rgb", "taesd", "none"].includes(
+ me
+ ) ? me : Ge.MFV_PREVIEW_METHOD;
}
{
- const ue = String((($ = e.viewer) == null ? void 0 : $.mfvSidebarPosition) || "right").toLowerCase();
- ye.MFV_SIDEBAR_POSITION = ["left", "right", "bottom"].includes(ue) ? ue : "right";
+ const me = String(((Q = e.viewer) == null ? void 0 : Q.mfvSidebarPosition) || "right").toLowerCase();
+ fe.MFV_SIDEBAR_POSITION = ["left", "right", "bottom"].includes(me) ? me : "right";
}
- ye.VIEWER_VIDEO_GRADE_THROTTLE_FPS = Math.max(
+ fe.VIEWER_VIDEO_GRADE_THROTTLE_FPS = Math.max(
1,
Math.min(
60,
Math.round(
Gn(
(_ = e.viewer) == null ? void 0 : _.videoGradeThrottleFps,
- Me.VIEWER_VIDEO_GRADE_THROTTLE_FPS
+ Ge.VIEWER_VIDEO_GRADE_THROTTLE_FPS
)
)
)
- ), ye.VIEWER_SCOPES_FPS = Math.max(
+ ), fe.VIEWER_SCOPES_FPS = Math.max(
1,
Math.min(
60,
- Math.round(Gn((le = e.viewer) == null ? void 0 : le.scopesFps, Me.VIEWER_SCOPES_FPS))
+ Math.round(Gn((le = e.viewer) == null ? void 0 : le.scopesFps, Ge.VIEWER_SCOPES_FPS))
)
- ), ye.VIEWER_META_TTL_MS = Math.max(
+ ), fe.VIEWER_META_TTL_MS = Math.max(
1e3,
Math.min(
10 * 6e4,
- Math.round(Gn((se = e.viewer) == null ? void 0 : se.metaTtlMs, Me.VIEWER_META_TTL_MS))
+ Math.round(Gn((de = e.viewer) == null ? void 0 : de.metaTtlMs, Ge.VIEWER_META_TTL_MS))
)
- ), ye.VIEWER_META_MAX_ENTRIES = Math.max(
+ ), fe.VIEWER_META_MAX_ENTRIES = Math.max(
50,
Math.min(
5e3,
Math.round(
- Gn((de = e.viewer) == null ? void 0 : de.metaMaxEntries, Me.VIEWER_META_MAX_ENTRIES)
+ Gn((se = e.viewer) == null ? void 0 : se.metaMaxEntries, Ge.VIEWER_META_MAX_ENTRIES)
)
)
- ), ye.WORKFLOW_MINIMAP_ENABLED = !!(((Ze = e.workflowMinimap) == null ? void 0 : Ze.enabled) ?? !1), ye.RT_HYDRATE_CONCURRENCY = Math.max(
+ ), fe.WORKFLOW_MINIMAP_ENABLED = !!(((ge = e.workflowMinimap) == null ? void 0 : ge.enabled) ?? !1), fe.RT_HYDRATE_CONCURRENCY = Math.max(
1,
Math.min(
16,
Math.round(
- Gn((Fe = e.rtHydrate) == null ? void 0 : Fe.concurrency, Me.RT_HYDRATE_CONCURRENCY)
+ Gn((je = e.rtHydrate) == null ? void 0 : je.concurrency, Ge.RT_HYDRATE_CONCURRENCY)
)
)
- ), ye.RT_HYDRATE_QUEUE_MAX = Math.max(
+ ), fe.RT_HYDRATE_QUEUE_MAX = Math.max(
10,
Math.min(
5e3,
- Math.round(Gn((xe = e.rtHydrate) == null ? void 0 : xe.queueMax, Me.RT_HYDRATE_QUEUE_MAX))
+ Math.round(Gn((Se = e.rtHydrate) == null ? void 0 : Se.queueMax, Ge.RT_HYDRATE_QUEUE_MAX))
)
- ), ye.RT_HYDRATE_SEEN_MAX = Math.max(
+ ), fe.RT_HYDRATE_SEEN_MAX = Math.max(
1e3,
Math.min(
2e5,
- Math.round(Gn((ze = e.rtHydrate) == null ? void 0 : ze.seenMax, Me.RT_HYDRATE_SEEN_MAX))
+ Math.round(Gn((ke = e.rtHydrate) == null ? void 0 : ke.seenMax, Ge.RT_HYDRATE_SEEN_MAX))
)
- ), ye.RT_HYDRATE_PRUNE_BUDGET = Math.max(
+ ), fe.RT_HYDRATE_PRUNE_BUDGET = Math.max(
10,
Math.min(
1e4,
Math.round(
- Gn((We = e.rtHydrate) == null ? void 0 : We.pruneBudget, Me.RT_HYDRATE_PRUNE_BUDGET)
+ Gn((we = e.rtHydrate) == null ? void 0 : we.pruneBudget, Ge.RT_HYDRATE_PRUNE_BUDGET)
)
)
- ), ye.RT_HYDRATE_SEEN_TTL_MS = Math.max(
+ ), fe.RT_HYDRATE_SEEN_TTL_MS = Math.max(
5e3,
Math.min(
360 * 6e4,
Math.round(
- Gn((De = e.rtHydrate) == null ? void 0 : De.seenTtlMs, Me.RT_HYDRATE_SEEN_TTL_MS)
+ Gn((Je = e.rtHydrate) == null ? void 0 : Je.seenTtlMs, Ge.RT_HYDRATE_SEEN_TTL_MS)
)
)
- ), ye.DELETE_CONFIRMATION = !!((Pe = e.safety) != null && Pe.confirmDeletion), ye.DEBUG_VERBOSE_ERRORS = !!((Qe = e.observability) != null && Qe.verboseErrors), ye.WATCHER_MAX_PENDING = Math.max(
+ ), fe.DELETE_CONFIRMATION = !!(($e = e.safety) != null && $e.confirmDeletion), fe.DEBUG_VERBOSE_ERRORS = !!((qe = e.observability) != null && qe.verboseErrors), fe.WATCHER_MAX_PENDING = Math.max(
10,
Math.min(5e3, Math.round(Gn((Ue = e.watcher) == null ? void 0 : Ue.maxPending, 500)))
- ), ye.WATCHER_MIN_SIZE = Math.max(
+ ), fe.WATCHER_MIN_SIZE = Math.max(
0,
- Math.min(1e6, Math.round(Gn((Ee = e.watcher) == null ? void 0 : Ee.minSize, 100)))
- ), ye.WATCHER_MAX_SIZE = Math.max(
+ Math.min(1e6, Math.round(Gn((Te = e.watcher) == null ? void 0 : Te.minSize, 100)))
+ ), fe.WATCHER_MAX_SIZE = Math.max(
1e5,
- Math.min(17179869184, Math.round(Gn((Re = e.watcher) == null ? void 0 : Re.maxSize, 4294967296)))
- ), ye.DB_TIMEOUT_MS = Math.max(
+ Math.min(17179869184, Math.round(Gn((Oe = e.watcher) == null ? void 0 : Oe.maxSize, 4294967296)))
+ ), fe.DB_TIMEOUT_MS = Math.max(
1e3,
- Math.min(3e4, Math.round(Gn((wt = e.db) == null ? void 0 : wt.timeoutMs, 5e3)))
- ), ye.DB_MAX_CONNECTIONS = Math.max(
+ Math.min(3e4, Math.round(Gn((pt = e.db) == null ? void 0 : pt.timeoutMs, 5e3)))
+ ), fe.DB_MAX_CONNECTIONS = Math.max(
1,
- Math.min(100, Math.round(Gn((Se = e.db) == null ? void 0 : Se.maxConnections, 10)))
- ), ye.DB_QUERY_TIMEOUT_MS = Math.max(
+ Math.min(100, Math.round(Gn((Me = e.db) == null ? void 0 : Me.maxConnections, 10)))
+ ), fe.DB_QUERY_TIMEOUT_MS = Math.max(
500,
- Math.min(1e4, Math.round(Gn((Ft = e.db) == null ? void 0 : Ft.queryTimeoutMs, 1e3)))
- ), ye.SEARCH_REQUEST_LIMIT = Math.max(
+ Math.min(1e4, Math.round(Gn((Xt = e.db) == null ? void 0 : Xt.queryTimeoutMs, 1e3)))
+ ), fe.SEARCH_REQUEST_LIMIT = Math.max(
10,
Math.min(
- Me.MAX_PAGE_SIZE || 2e3,
- Math.round(Gn((Gt = e.search) == null ? void 0 : Gt.maxResults, Me.SEARCH_DEFAULT_LIMIT))
+ Ge.MAX_PAGE_SIZE || 2e3,
+ Math.round(Gn((Mt = e.search) == null ? void 0 : Mt.maxResults, Ge.SEARCH_DEFAULT_LIMIT))
)
);
};
-async function ia() {
+async function oa() {
var e, t, n;
try {
- const i = await Lg();
+ const i = await Vg();
if (!(i != null && i.ok)) return;
const o = (e = i.data) == null ? void 0 : e.prefs;
if (!o || typeof o != "object") return;
@@ -5656,12 +5671,12 @@ async function ia() {
r.security.tokenConfigured
), r.security.tokenHint = String(o.token_hint || "").trim(), !String(r.security.apiToken || "").trim())
try {
- const l = await vf(), a = String(((t = l == null ? void 0 : l.data) == null ? void 0 : t.token) || "").trim();
+ const l = await Yf(), a = String(((t = l == null ? void 0 : l.data) == null ? void 0 : t.token) || "").trim();
l != null && l.ok && a && (r.security.apiToken = a);
} catch (l) {
(n = console.debug) == null || n.call(console, l);
}
- Te(r), At(r), ii(
+ Be(r), At(r), oi(
"mjr-settings-changed",
{ key: "security" },
{ warnPrefix: "[Majoor]" }
@@ -5670,10 +5685,10 @@ async function ia() {
console.warn("[Majoor] failed to sync backend security settings", i);
}
}
-async function Dh() {
+async function qh() {
var e;
try {
- const t = await mf();
+ const t = await bf();
if (!(t != null && t.ok)) return;
const n = (e = t.data) == null ? void 0 : e.prefs;
if (!n || typeof n != "object") return;
@@ -5681,7 +5696,7 @@ async function Dh() {
i.ai = i.ai || {}, i.ai.vectorSearchEnabled = kn(
n.enabled,
i.ai.vectorSearchEnabled ?? !0
- ), Te(i), At(i), ii(
+ ), Be(i), At(i), oi(
"mjr-settings-changed",
{ key: "ai.vectorSearchEnabled" },
{ warnPrefix: "[Majoor]" }
@@ -5690,18 +5705,18 @@ async function Dh() {
console.warn("[Majoor] failed to sync backend vector search settings", t);
}
}
-async function Eh() {
+async function Ph() {
var e;
try {
- const t = await If();
+ const t = await yf();
if (!(t != null && t.ok)) return;
const n = (e = t.data) == null ? void 0 : e.prefs;
if (!n || typeof n != "object") return;
const i = Xn();
i.executionGrouping = i.executionGrouping || {}, i.executionGrouping.enabled = kn(
n.enabled,
- i.executionGrouping.enabled ?? Me.EXECUTION_GROUPING_ENABLED
- ), Te(i), At(i), ii(
+ i.executionGrouping.enabled ?? Ge.EXECUTION_GROUPING_ENABLED
+ ), Be(i), At(i), oi(
"mjr-settings-changed",
{ key: "executionGrouping.enabled" },
{ warnPrefix: "[Majoor]" }
@@ -5710,8 +5725,8 @@ async function Eh() {
console.warn("[Majoor] failed to sync backend execution grouping settings", t);
}
}
-const Hh = 300;
-function Pc(e, t = Hh) {
+const Qh = 300;
+function _c(e, t = Qh) {
let n;
const i = (...o) => {
clearTimeout(n), n = setTimeout(() => e(...o), t);
@@ -5722,14 +5737,14 @@ function Pc(e, t = Hh) {
clearTimeout(n), e(...o);
}, i;
}
-const Sn = "Majoor", Vl = "Majoor Assets Manager";
-function qh(e, t, n) {
- var c, s, d, u, I, p, M, Z, A, g, h, f, b, v, C, S, W, y, k, G, z, x, w, X, V, R, j;
- const i = (L, N) => [Vl, L, N], o = (L) => [Vl, m("cat.cards", "Cards"), L], r = (L) => [Vl, m("cat.badges", "Badges"), L], l = (L) => [Vl, m("cat.badges", "Badges"), L], a = (L, N) => {
- let q = String(L || "").trim();
- return /^[0-9a-fA-F]{6}$/.test(q) && (q = `#${q}`), /^#[0-9a-fA-F]{6}$/.test(q) ? q.toUpperCase() : N;
+const Sn = "Majoor", kl = "Majoor Assets Manager";
+function _h(e, t, n) {
+ var c, s, d, u, I, p, S, A, C, g, Z, f, b, L, h, G, W, y, X, x, T, v, w, R, Y, F, N;
+ const i = (V, k) => [kl, V, k], o = (V) => [kl, m("cat.cards", "Cards"), V], r = (V) => [kl, m("cat.badges", "Badges"), V], l = (V) => [kl, m("cat.badges", "Badges"), V], a = (V, k) => {
+ let K = String(V || "").trim();
+ return /^[0-9a-fA-F]{6}$/.test(K) && (K = `#${K}`), /^#[0-9a-fA-F]{6}$/.test(K) ? K.toUpperCase() : k;
};
- (c = t.grid) != null && c.minSizePreset || (t.grid = t.grid || {}, t.grid.minSizePreset = uc(t.grid.minSize), Te(t)), e({
+ (c = t.grid) != null && c.minSizePreset || (t.grid = t.grid || {}, t.grid.minSizePreset = mc(t.grid.minSize), Be(t)), e({
id: `${Sn}.Cards.ThumbSize`,
category: o(m("setting.grid.cardSize.group", "Card size")),
name: m("setting.grid.cardSize.name", "Majoor: Card Size"),
@@ -5739,27 +5754,27 @@ function qh(e, t, n) {
),
type: "combo",
defaultValue: (() => {
- var q, O;
- const L = Ts(
- String(((q = t.grid) == null ? void 0 : q.minSizePreset) || "").toLowerCase(),
- Qg,
- uc((O = t.grid) == null ? void 0 : O.minSize)
- ), N = {
+ var K, z;
+ const V = Us(
+ String(((K = t.grid) == null ? void 0 : K.minSizePreset) || "").toLowerCase(),
+ _g,
+ mc((z = t.grid) == null ? void 0 : z.minSize)
+ ), k = {
small: m("setting.grid.cardSize.small", "Small"),
medium: m("setting.grid.cardSize.medium", "Medium"),
large: m("setting.grid.cardSize.large", "Large")
};
- return N[L] || N.medium;
+ return k[V] || k.medium;
})(),
options: [
m("setting.grid.cardSize.small", "Small"),
m("setting.grid.cardSize.medium", "Medium"),
m("setting.grid.cardSize.large", "Large")
],
- onChange: (L) => {
- const N = String(L || "").trim().toLowerCase(), q = m("setting.grid.cardSize.small", "Small").toLowerCase(), O = m("setting.grid.cardSize.medium", "Medium").toLowerCase(), B = m("setting.grid.cardSize.large", "Large").toLowerCase();
+ onChange: (V) => {
+ const k = String(V || "").trim().toLowerCase(), K = m("setting.grid.cardSize.small", "Small").toLowerCase(), z = m("setting.grid.cardSize.medium", "Medium").toLowerCase(), B = m("setting.grid.cardSize.large", "Large").toLowerCase();
let J = "medium";
- N === q || N === "small" || N === "petit" ? J = "small" : N === B || N === "large" || N === "grand" ? J = "large" : (N === O || N === "medium" || N === "moyen") && (J = "medium"), t.grid.minSizePreset = J, t.grid.minSize = Pg[J], Te(t), At(t), n("grid.minSizePreset");
+ k === K || k === "small" || k === "petit" ? J = "small" : k === B || k === "large" || k === "grand" ? J = "large" : (k === z || k === "medium" || k === "moyen") && (J = "medium"), t.grid.minSizePreset = J, t.grid.minSize = Qg[J], Be(t), At(t), n("grid.minSizePreset");
}
}), e({
id: `${Sn}.Cards.CustomThumbSize`,
@@ -5769,9 +5784,9 @@ function qh(e, t, n) {
type: "number",
defaultValue: Math.max(60, Math.min(600, Number((s = t.grid) == null ? void 0 : s.minSize) || 120)),
attrs: { min: 60, max: 600, step: 10 },
- onChange: (L) => {
- const N = Math.max(60, Math.min(600, Math.round(Number(L) || 120)));
- t.grid.minSize = N, t.grid.minSizePreset = uc(N), Te(t), At(t), n("grid.minSize");
+ onChange: (V) => {
+ const k = Math.max(60, Math.min(600, Math.round(Number(V) || 120)));
+ t.grid.minSize = k, t.grid.minSizePreset = mc(k), Be(t), At(t), n("grid.minSize");
}
}), e({
id: `${Sn}.Grid.ShowDetails`,
@@ -5780,8 +5795,8 @@ function qh(e, t, n) {
tooltip: "Show the bottom details panel on asset cards (filename, date, etc.)",
type: "boolean",
defaultValue: !!((d = t.grid) != null && d.showDetails),
- onChange: (L) => {
- t.grid.showDetails = !!L, Te(t), At(t), n("grid.showDetails");
+ onChange: (V) => {
+ t.grid.showDetails = !!V, Be(t), At(t), n("grid.showDetails");
}
}), e({
id: `${Sn}.Grid.ShowFilename`,
@@ -5790,8 +5805,8 @@ function qh(e, t, n) {
tooltip: "Display filename in details panel",
type: "boolean",
defaultValue: !!((u = t.grid) != null && u.showFilename),
- onChange: (L) => {
- t.grid.showFilename = !!L, Te(t), At(t), n("grid.showFilename");
+ onChange: (V) => {
+ t.grid.showFilename = !!V, Be(t), At(t), n("grid.showFilename");
}
}), e({
id: `${Sn}.Grid.ShowDate`,
@@ -5800,8 +5815,8 @@ function qh(e, t, n) {
tooltip: "Display date and time in details panel",
type: "boolean",
defaultValue: !!((I = t.grid) != null && I.showDate),
- onChange: (L) => {
- t.grid.showDate = !!L, Te(t), At(t), n("grid.showDate");
+ onChange: (V) => {
+ t.grid.showDate = !!V, Be(t), At(t), n("grid.showDate");
}
}), e({
id: `${Sn}.Grid.ShowDimensions`,
@@ -5810,8 +5825,8 @@ function qh(e, t, n) {
tooltip: "Display resolution (WxH) in details panel",
type: "boolean",
defaultValue: !!((p = t.grid) != null && p.showDimensions),
- onChange: (L) => {
- t.grid.showDimensions = !!L, Te(t), At(t), n("grid.showDimensions");
+ onChange: (V) => {
+ t.grid.showDimensions = !!V, Be(t), At(t), n("grid.showDimensions");
}
}), e({
id: `${Sn}.Grid.ShowGenTime`,
@@ -5819,9 +5834,9 @@ function qh(e, t, n) {
name: "Show generation time",
tooltip: "Display seconds taken to generate the asset (if available)",
type: "boolean",
- defaultValue: !!((M = t.grid) != null && M.showGenTime),
- onChange: (L) => {
- t.grid.showGenTime = !!L, Te(t), At(t), n("grid.showGenTime");
+ defaultValue: !!((S = t.grid) != null && S.showGenTime),
+ onChange: (V) => {
+ t.grid.showGenTime = !!V, Be(t), At(t), n("grid.showGenTime");
}
}), e({
id: `${Sn}.Grid.ShowHoverInfo`,
@@ -5829,9 +5844,9 @@ function qh(e, t, n) {
name: "Show prompt on hover",
tooltip: "Show positive prompt and generation time as a tooltip overlay when hovering over a card thumbnail. Does not block video play-on-hover.",
type: "boolean",
- defaultValue: !!(((Z = t.grid) == null ? void 0 : Z.showHoverInfo) ?? Me.GRID_SHOW_HOVER_INFO),
- onChange: (L) => {
- t.grid.showHoverInfo = !!L, Te(t), At(t), n("grid.showHoverInfo");
+ defaultValue: !!(((A = t.grid) == null ? void 0 : A.showHoverInfo) ?? Ge.GRID_SHOW_HOVER_INFO),
+ onChange: (V) => {
+ t.grid.showHoverInfo = !!V, Be(t), At(t), n("grid.showHoverInfo");
}
}), e({
id: `${Sn}.Grid.ShowWorkflowDot`,
@@ -5839,9 +5854,9 @@ function qh(e, t, n) {
name: "Show workflow indicator",
tooltip: "Display the green dot indicating workflow metadata availability (bottom right of card)",
type: "boolean",
- defaultValue: !!((A = t.grid) != null && A.showWorkflowDot),
- onChange: (L) => {
- t.grid.showWorkflowDot = !!L, Te(t), At(t), n("grid.showWorkflowDot");
+ defaultValue: !!((C = t.grid) != null && C.showWorkflowDot),
+ onChange: (V) => {
+ t.grid.showWorkflowDot = !!V, Be(t), At(t), n("grid.showWorkflowDot");
}
}), e({
id: `${Sn}.Grid.ShowExtBadge`,
@@ -5850,8 +5865,8 @@ function qh(e, t, n) {
tooltip: "Display format badges (e.g. JPG, MP4) on thumbnails",
type: "boolean",
defaultValue: !!((g = t.grid) != null && g.showExtBadge),
- onChange: (L) => {
- t.grid.showExtBadge = !!L, Te(t), At(t), n("grid.showExtBadge");
+ onChange: (V) => {
+ t.grid.showExtBadge = !!V, Be(t), At(t), n("grid.showExtBadge");
}
}), e({
id: `${Sn}.Grid.ShowRatingBadge`,
@@ -5859,9 +5874,9 @@ function qh(e, t, n) {
name: "Show ratings",
tooltip: "Display star ratings on thumbnails",
type: "boolean",
- defaultValue: !!((h = t.grid) != null && h.showRatingBadge),
- onChange: (L) => {
- t.grid.showRatingBadge = !!L, Te(t), At(t), n("grid.showRatingBadge");
+ defaultValue: !!((Z = t.grid) != null && Z.showRatingBadge),
+ onChange: (V) => {
+ t.grid.showRatingBadge = !!V, Be(t), At(t), n("grid.showRatingBadge");
}
}), e({
id: `${Sn}.Grid.ShowTagsBadge`,
@@ -5870,8 +5885,8 @@ function qh(e, t, n) {
tooltip: "Display a small indicator if an asset has tags",
type: "boolean",
defaultValue: !!((f = t.grid) != null && f.showTagsBadge),
- onChange: (L) => {
- t.grid.showTagsBadge = !!L, Te(t), At(t), n("grid.showTagsBadge");
+ onChange: (V) => {
+ t.grid.showTagsBadge = !!V, Be(t), At(t), n("grid.showTagsBadge");
}
}), e({
id: `${Sn}.Badges.StarColor`,
@@ -5882,9 +5897,9 @@ function qh(e, t, n) {
"Color of rating stars on thumbnails (hex, e.g. #FFD45A)"
),
type: "color",
- defaultValue: a((b = t.grid) == null ? void 0 : b.starColor, Me.BADGE_STAR_COLOR),
- onChange: (L) => {
- t.grid.starColor = a(L, Me.BADGE_STAR_COLOR), Te(t), At(t), n("grid.starColor");
+ defaultValue: a((b = t.grid) == null ? void 0 : b.starColor, Ge.BADGE_STAR_COLOR),
+ onChange: (V) => {
+ t.grid.starColor = a(V, Ge.BADGE_STAR_COLOR), Be(t), At(t), n("grid.starColor");
}
}), e({
id: `${Sn}.Badges.ImageColor`,
@@ -5896,14 +5911,14 @@ function qh(e, t, n) {
),
type: "color",
defaultValue: a(
- (v = t.grid) == null ? void 0 : v.badgeImageColor,
- Me.BADGE_IMAGE_COLOR
+ (L = t.grid) == null ? void 0 : L.badgeImageColor,
+ Ge.BADGE_IMAGE_COLOR
),
- onChange: (L) => {
+ onChange: (V) => {
t.grid.badgeImageColor = a(
- L,
- Me.BADGE_IMAGE_COLOR
- ), Te(t), At(t), n("grid.badgeImageColor");
+ V,
+ Ge.BADGE_IMAGE_COLOR
+ ), Be(t), At(t), n("grid.badgeImageColor");
}
}), e({
id: `${Sn}.Badges.VideoColor`,
@@ -5915,14 +5930,14 @@ function qh(e, t, n) {
),
type: "color",
defaultValue: a(
- (C = t.grid) == null ? void 0 : C.badgeVideoColor,
- Me.BADGE_VIDEO_COLOR
+ (h = t.grid) == null ? void 0 : h.badgeVideoColor,
+ Ge.BADGE_VIDEO_COLOR
),
- onChange: (L) => {
+ onChange: (V) => {
t.grid.badgeVideoColor = a(
- L,
- Me.BADGE_VIDEO_COLOR
- ), Te(t), At(t), n("grid.badgeVideoColor");
+ V,
+ Ge.BADGE_VIDEO_COLOR
+ ), Be(t), At(t), n("grid.badgeVideoColor");
}
}), e({
id: `${Sn}.Badges.AudioColor`,
@@ -5934,14 +5949,14 @@ function qh(e, t, n) {
),
type: "color",
defaultValue: a(
- (S = t.grid) == null ? void 0 : S.badgeAudioColor,
- Me.BADGE_AUDIO_COLOR
+ (G = t.grid) == null ? void 0 : G.badgeAudioColor,
+ Ge.BADGE_AUDIO_COLOR
),
- onChange: (L) => {
+ onChange: (V) => {
t.grid.badgeAudioColor = a(
- L,
- Me.BADGE_AUDIO_COLOR
- ), Te(t), At(t), n("grid.badgeAudioColor");
+ V,
+ Ge.BADGE_AUDIO_COLOR
+ ), Be(t), At(t), n("grid.badgeAudioColor");
}
}), e({
id: `${Sn}.Badges.Model3dColor`,
@@ -5954,13 +5969,13 @@ function qh(e, t, n) {
type: "color",
defaultValue: a(
(W = t.grid) == null ? void 0 : W.badgeModel3dColor,
- Me.BADGE_MODEL3D_COLOR
+ Ge.BADGE_MODEL3D_COLOR
),
- onChange: (L) => {
+ onChange: (V) => {
t.grid.badgeModel3dColor = a(
- L,
- Me.BADGE_MODEL3D_COLOR
- ), Te(t), At(t), n("grid.badgeModel3dColor");
+ V,
+ Ge.BADGE_MODEL3D_COLOR
+ ), Be(t), At(t), n("grid.badgeModel3dColor");
}
}), e({
id: `${Sn}.Badges.DuplicateAlertColor`,
@@ -5973,13 +5988,13 @@ function qh(e, t, n) {
type: "color",
defaultValue: a(
(y = t.grid) == null ? void 0 : y.badgeDuplicateAlertColor,
- Me.BADGE_DUPLICATE_ALERT_COLOR
+ Ge.BADGE_DUPLICATE_ALERT_COLOR
),
- onChange: (L) => {
+ onChange: (V) => {
t.grid.badgeDuplicateAlertColor = a(
- L,
- Me.BADGE_DUPLICATE_ALERT_COLOR
- ), Te(t), At(t), n("grid.badgeDuplicateAlertColor");
+ V,
+ Ge.BADGE_DUPLICATE_ALERT_COLOR
+ ), Be(t), At(t), n("grid.badgeDuplicateAlertColor");
}
}), e({
id: `${Sn}.Grid.PageSize`,
@@ -5988,13 +6003,13 @@ function qh(e, t, n) {
tooltip: m("setting.grid.pagesize.desc"),
type: "number",
defaultValue: t.grid.pageSize,
- attrs: { min: 50, max: Number(ye.MAX_PAGE_SIZE) || 2e3, step: 50 },
- onChange: (L) => {
- const N = Number(ye.MAX_PAGE_SIZE) || 2e3;
+ attrs: { min: 50, max: Number(fe.MAX_PAGE_SIZE) || 2e3, step: 50 },
+ onChange: (V) => {
+ const k = Number(fe.MAX_PAGE_SIZE) || 2e3;
t.grid.pageSize = Math.max(
50,
- Math.min(N, Number(L) || Me.DEFAULT_PAGE_SIZE)
- ), Te(t), At(t), n("grid.pageSize");
+ Math.min(k, Number(V) || Ge.DEFAULT_PAGE_SIZE)
+ ), Be(t), At(t), n("grid.pageSize");
}
}), e({
id: `${Sn}.InfiniteScroll.Enabled`,
@@ -6002,9 +6017,9 @@ function qh(e, t, n) {
name: m("setting.nav.infinite.name"),
tooltip: m("setting.nav.infinite.desc"),
type: "boolean",
- defaultValue: !!((k = t.infiniteScroll) != null && k.enabled),
- onChange: (L) => {
- t.infiniteScroll = t.infiniteScroll || {}, t.infiniteScroll.enabled = !!L, Te(t), At(t), n("infiniteScroll.enabled");
+ defaultValue: !!((X = t.infiniteScroll) != null && X.enabled),
+ onChange: (V) => {
+ t.infiniteScroll = t.infiniteScroll || {}, t.infiniteScroll.enabled = !!V, Be(t), At(t), n("infiniteScroll.enabled");
}
}), e({
id: `${Sn}.Sidebar.Position`,
@@ -6012,10 +6027,10 @@ function qh(e, t, n) {
name: m("setting.sidebar.pos.name"),
tooltip: m("setting.sidebar.pos.desc"),
type: "combo",
- defaultValue: ((G = t.sidebar) == null ? void 0 : G.position) || "right",
+ defaultValue: ((x = t.sidebar) == null ? void 0 : x.position) || "right",
options: ["left", "right"],
- onChange: (L) => {
- t.sidebar = t.sidebar || {}, t.sidebar.position = L === "left" ? "left" : "right", Te(t), n("sidebar.position");
+ onChange: (V) => {
+ t.sidebar = t.sidebar || {}, t.sidebar.position = V === "left" ? "left" : "right", Be(t), n("sidebar.position");
}
}), e({
id: `${Sn}.Sidebar.ShowPreviewThumb`,
@@ -6023,9 +6038,9 @@ function qh(e, t, n) {
name: "Show sidebar preview thumb",
tooltip: "Show/hide the large media preview at the top of the sidebar metadata panel.",
type: "boolean",
- defaultValue: !!(((z = t.sidebar) == null ? void 0 : z.showPreviewThumb) ?? !0),
- onChange: (L) => {
- t.sidebar = t.sidebar || {}, t.sidebar.showPreviewThumb = !!L, Te(t), n("sidebar.showPreviewThumb");
+ defaultValue: !!(((T = t.sidebar) == null ? void 0 : T.showPreviewThumb) ?? !0),
+ onChange: (V) => {
+ t.sidebar = t.sidebar || {}, t.sidebar.showPreviewThumb = !!V, Be(t), n("sidebar.showPreviewThumb");
}
}), e({
id: `${Sn}.Sidebar.WidthPx`,
@@ -6033,17 +6048,17 @@ function qh(e, t, n) {
name: "Sidebar width (px)",
tooltip: "Set the details sidebar width in pixels (240-640).",
type: "number",
- defaultValue: Math.max(240, Math.min(640, Number((x = t.sidebar) == null ? void 0 : x.widthPx) || 360)),
+ defaultValue: Math.max(240, Math.min(640, Number((v = t.sidebar) == null ? void 0 : v.widthPx) || 360)),
attrs: {
min: 240,
max: 640,
step: 10
},
- onChange: (L) => {
+ onChange: (V) => {
t.sidebar = t.sidebar || {}, t.sidebar.widthPx = Math.max(
240,
- Math.min(640, Math.round(Number(L) || 360))
- ), Te(t), n("sidebar.widthPx");
+ Math.min(640, Math.round(Number(V) || 360))
+ ), Be(t), n("sidebar.widthPx");
}
}), e({
id: `${Sn}.General.HideSiblings`,
@@ -6052,8 +6067,8 @@ function qh(e, t, n) {
tooltip: m("setting.siblings.hide.desc"),
type: "boolean",
defaultValue: !!((w = t.siblings) != null && w.hidePngSiblings),
- onChange: (L) => {
- t.siblings = t.siblings || {}, t.siblings.hidePngSiblings = !!L, Te(t), n("siblings.hidePngSiblings");
+ onChange: (V) => {
+ t.siblings = t.siblings || {}, t.siblings.hidePngSiblings = !!V, Be(t), n("siblings.hidePngSiblings");
}
}), e({
id: `${Sn}.Grid.VideoAutoplayMode`,
@@ -6068,28 +6083,28 @@ function qh(e, t, n) {
),
type: "combo",
defaultValue: (() => {
- var q, O;
- let L = (q = t.grid) == null ? void 0 : q.videoAutoplayMode;
- L == null && (L = ((O = t.grid) == null ? void 0 : O.videoHoverAutoplay) === !1 ? "off" : "hover"), L === !0 && (L = "hover"), L === !1 && (L = "off"), L !== "hover" && L !== "always" && L !== "off" && (L = "hover");
- const N = {
+ var K, z;
+ let V = (K = t.grid) == null ? void 0 : K.videoAutoplayMode;
+ V == null && (V = ((z = t.grid) == null ? void 0 : z.videoHoverAutoplay) === !1 ? "off" : "hover"), V === !0 && (V = "hover"), V === !1 && (V = "off"), V !== "hover" && V !== "always" && V !== "off" && (V = "hover");
+ const k = {
off: m("setting.grid.videoAutoplayMode.off", "Off"),
hover: m("setting.grid.videoAutoplayMode.hover", "Hover"),
always: m("setting.grid.videoAutoplayMode.always", "Always")
};
- return N[L] || N.off;
+ return k[V] || k.off;
})(),
options: [
m("setting.grid.videoAutoplayMode.off", "Off"),
m("setting.grid.videoAutoplayMode.hover", "Hover"),
m("setting.grid.videoAutoplayMode.always", "Always")
],
- onChange: (L) => {
- const q = {
+ onChange: (V) => {
+ const K = {
[m("setting.grid.videoAutoplayMode.off", "Off")]: "off",
[m("setting.grid.videoAutoplayMode.hover", "Hover")]: "hover",
[m("setting.grid.videoAutoplayMode.always", "Always")]: "always"
- }[L] || "off";
- t.grid = t.grid || {}, t.grid.videoAutoplayMode = q, delete t.grid.videoHoverAutoplay, Te(t), At(t), n("grid.videoAutoplayMode");
+ }[V] || "off";
+ t.grid = t.grid || {}, t.grid.videoAutoplayMode = K, delete t.grid.videoHoverAutoplay, Be(t), At(t), n("grid.videoAutoplayMode");
}
}), e({
id: `${Sn}.Cards.HoverColor`,
@@ -6098,11 +6113,11 @@ function qh(e, t, n) {
tooltip: "Background tint used when hovering a card (hex, e.g. #3D3D3D).",
type: "color",
defaultValue: a(
- (X = t.ui) == null ? void 0 : X.cardHoverColor,
- Me.UI_CARD_HOVER_COLOR
+ (R = t.ui) == null ? void 0 : R.cardHoverColor,
+ Ge.UI_CARD_HOVER_COLOR
),
- onChange: (L) => {
- t.ui = t.ui || {}, t.ui.cardHoverColor = a(L, Me.UI_CARD_HOVER_COLOR), Te(t), At(t), n("ui.cardHoverColor");
+ onChange: (V) => {
+ t.ui = t.ui || {}, t.ui.cardHoverColor = a(V, Ge.UI_CARD_HOVER_COLOR), Be(t), At(t), n("ui.cardHoverColor");
}
}), e({
id: `${Sn}.Cards.SelectionColor`,
@@ -6111,14 +6126,14 @@ function qh(e, t, n) {
tooltip: "Outline/accent color used for selected cards (hex, e.g. #4A90E2).",
type: "color",
defaultValue: a(
- (V = t.ui) == null ? void 0 : V.cardSelectionColor,
- Me.UI_CARD_SELECTION_COLOR
+ (Y = t.ui) == null ? void 0 : Y.cardSelectionColor,
+ Ge.UI_CARD_SELECTION_COLOR
),
- onChange: (L) => {
+ onChange: (V) => {
t.ui = t.ui || {}, t.ui.cardSelectionColor = a(
- L,
- Me.UI_CARD_SELECTION_COLOR
- ), Te(t), At(t), n("ui.cardSelectionColor");
+ V,
+ Ge.UI_CARD_SELECTION_COLOR
+ ), Be(t), At(t), n("ui.cardSelectionColor");
}
}), e({
id: `${Sn}.Badges.RatingColor`,
@@ -6126,9 +6141,9 @@ function qh(e, t, n) {
name: "Majoor: Rating badge color",
tooltip: "Color used for rating badge text/accent (hex, e.g. #FF9500).",
type: "color",
- defaultValue: a((R = t.ui) == null ? void 0 : R.ratingColor, Me.UI_RATING_COLOR),
- onChange: (L) => {
- t.ui = t.ui || {}, t.ui.ratingColor = a(L, Me.UI_RATING_COLOR), Te(t), At(t), n("ui.ratingColor");
+ defaultValue: a((F = t.ui) == null ? void 0 : F.ratingColor, Ge.UI_RATING_COLOR),
+ onChange: (V) => {
+ t.ui = t.ui || {}, t.ui.ratingColor = a(V, Ge.UI_RATING_COLOR), Be(t), At(t), n("ui.ratingColor");
}
}), e({
id: `${Sn}.Badges.TagColor`,
@@ -6136,48 +6151,48 @@ function qh(e, t, n) {
name: "Majoor: Tags badge color",
tooltip: "Color used for tags badge text/accent (hex, e.g. #4A90E2).",
type: "color",
- defaultValue: a((j = t.ui) == null ? void 0 : j.tagColor, Me.UI_TAG_COLOR),
- onChange: (L) => {
- t.ui = t.ui || {}, t.ui.tagColor = a(L, Me.UI_TAG_COLOR), Te(t), At(t), n("ui.tagColor");
+ defaultValue: a((N = t.ui) == null ? void 0 : N.tagColor, Ge.UI_TAG_COLOR),
+ onChange: (V) => {
+ t.ui = t.ui || {}, t.ui.tagColor = a(V, Ge.UI_TAG_COLOR), Be(t), At(t), n("ui.tagColor");
}
});
}
-const zi = "Majoor", Ph = "Majoor Assets Manager";
-function Qh(e, t, n) {
- var r, l, a, c, s, d, u, I, p, M;
- const i = (Z, A) => [Ph, Z, A];
+const Ti = "Majoor", $h = "Majoor Assets Manager";
+function eC(e, t, n) {
+ var r, l, a, c, s, d, u, I, p, S;
+ const i = (A, C) => [$h, A, C];
e({
- id: `${zi}.Viewer.AllowPanAtZoom1`,
+ id: `${Ti}.Viewer.AllowPanAtZoom1`,
category: i(m("cat.viewer"), m("setting.viewer.pan.name").replace("Majoor: ", "")),
name: m("setting.viewer.pan.name"),
tooltip: m("setting.viewer.pan.desc"),
type: "boolean",
defaultValue: !!((r = t.viewer) != null && r.allowPanAtZoom1),
- onChange: (Z) => {
- t.viewer = t.viewer || {}, t.viewer.allowPanAtZoom1 = !!Z, Te(t), At(t), n("viewer.allowPanAtZoom1");
+ onChange: (A) => {
+ t.viewer = t.viewer || {}, t.viewer.allowPanAtZoom1 = !!A, Be(t), At(t), n("viewer.allowPanAtZoom1");
}
}), e({
- id: `${zi}.Viewer.DisableWebGL`,
+ id: `${Ti}.Viewer.DisableWebGL`,
category: i(m("cat.viewer"), "Disable WebGL Video"),
name: "Disable WebGL Video",
tooltip: "Use CPU rendering (Canvas 2D) for video playback. Fixes 'black screen' issues on incompatible hardware/browsers.",
type: "boolean",
defaultValue: !!((l = t.viewer) != null && l.disableWebGL),
- onChange: (Z) => {
- t.viewer = t.viewer || {}, t.viewer.disableWebGL = !!Z, Te(t), At(t), n("viewer.disableWebGL");
+ onChange: (A) => {
+ t.viewer = t.viewer || {}, t.viewer.disableWebGL = !!A, Be(t), At(t), n("viewer.disableWebGL");
}
}), e({
- id: `${zi}.Viewer.PauseDuringExecution`,
+ id: `${Ti}.Viewer.PauseDuringExecution`,
category: i(m("cat.viewer"), m("setting.viewer.pauseExecution.name").replace("Majoor: ", "")),
name: m("setting.viewer.pauseExecution.name"),
tooltip: m("setting.viewer.pauseExecution.desc"),
type: "boolean",
defaultValue: !!((a = t.viewer) != null && a.pauseDuringExecution),
- onChange: (Z) => {
- t.viewer = t.viewer || {}, t.viewer.pauseDuringExecution = !!Z, Te(t), At(t), n("viewer.pauseDuringExecution");
+ onChange: (A) => {
+ t.viewer = t.viewer || {}, t.viewer.pauseDuringExecution = !!A, Be(t), At(t), n("viewer.pauseDuringExecution");
}
}), e({
- id: `${zi}.Viewer.FloatingPauseDuringExecution`,
+ id: `${Ti}.Viewer.FloatingPauseDuringExecution`,
category: i(
m("cat.viewer"),
m("setting.viewer.floatingPauseExecution.name").replace("Majoor: ", "")
@@ -6186,21 +6201,21 @@ function Qh(e, t, n) {
tooltip: m("setting.viewer.floatingPauseExecution.desc"),
type: "boolean",
defaultValue: !!((c = t.viewer) != null && c.floatingPauseDuringExecution),
- onChange: (Z) => {
- t.viewer = t.viewer || {}, t.viewer.floatingPauseDuringExecution = !!Z, Te(t), At(t), n("viewer.floatingPauseDuringExecution");
+ onChange: (A) => {
+ t.viewer = t.viewer || {}, t.viewer.floatingPauseDuringExecution = !!A, Be(t), At(t), n("viewer.floatingPauseDuringExecution");
}
}), e({
- id: `${zi}.Viewer.MfvLiveDefault`,
+ id: `${Ti}.Viewer.MfvLiveDefault`,
category: i(m("cat.viewer"), m("setting.viewer.mfvLiveDefault.name").replace("Majoor: ", "")),
name: m("setting.viewer.mfvLiveDefault.name"),
tooltip: m("setting.viewer.mfvLiveDefault.desc"),
type: "boolean",
- defaultValue: !!(((s = t.viewer) == null ? void 0 : s.mfvLiveDefault) ?? Me.MFV_LIVE_DEFAULT),
- onChange: (Z) => {
- t.viewer = t.viewer || {}, t.viewer.mfvLiveDefault = !!Z, Te(t), At(t), n("viewer.mfvLiveDefault");
+ defaultValue: !!(((s = t.viewer) == null ? void 0 : s.mfvLiveDefault) ?? Ge.MFV_LIVE_DEFAULT),
+ onChange: (A) => {
+ t.viewer = t.viewer || {}, t.viewer.mfvLiveDefault = !!A, Be(t), At(t), n("viewer.mfvLiveDefault");
}
}), e({
- id: `${zi}.Viewer.MfvPreviewDefault`,
+ id: `${Ti}.Viewer.MfvPreviewDefault`,
category: i(
m("cat.viewer"),
m("setting.viewer.mfvPreviewDefault.name").replace("Majoor: ", "")
@@ -6208,53 +6223,53 @@ function Qh(e, t, n) {
name: m("setting.viewer.mfvPreviewDefault.name"),
tooltip: m("setting.viewer.mfvPreviewDefault.desc"),
type: "boolean",
- defaultValue: !!(((d = t.viewer) == null ? void 0 : d.mfvPreviewDefault) ?? Me.MFV_PREVIEW_DEFAULT),
- onChange: (Z) => {
- t.viewer = t.viewer || {}, t.viewer.mfvPreviewDefault = !!Z, Te(t), At(t), n("viewer.mfvPreviewDefault");
+ defaultValue: !!(((d = t.viewer) == null ? void 0 : d.mfvPreviewDefault) ?? Ge.MFV_PREVIEW_DEFAULT),
+ onChange: (A) => {
+ t.viewer = t.viewer || {}, t.viewer.mfvPreviewDefault = !!A, Be(t), At(t), n("viewer.mfvPreviewDefault");
}
}), e({
- id: `${zi}.Viewer.MfvSidebarPosition`,
+ id: `${Ti}.Viewer.MfvSidebarPosition`,
category: i(m("cat.viewer"), "Node Parameters sidebar position"),
name: "Node Parameters sidebar position",
tooltip: "Position of the Node Parameters sidebar in the Floating Viewer (right, left, or bottom).",
type: "combo",
defaultValue: ((u = t.viewer) == null ? void 0 : u.mfvSidebarPosition) || "right",
options: ["right", "left", "bottom"],
- onChange: (Z) => {
- const A = ["left", "right", "bottom"].includes(Z) ? Z : "right";
- t.viewer = t.viewer || {}, t.viewer.mfvSidebarPosition = A, Te(t), At(t), n("viewer.mfvSidebarPosition");
+ onChange: (A) => {
+ const C = ["left", "right", "bottom"].includes(A) ? A : "right";
+ t.viewer = t.viewer || {}, t.viewer.mfvSidebarPosition = C, Be(t), At(t), n("viewer.mfvSidebarPosition");
}
}), e({
- id: `${zi}.Viewer.MfvPreviewMethod`,
+ id: `${Ti}.Viewer.MfvPreviewMethod`,
category: i(m("cat.viewer"), m("setting.viewer.mfvPreviewMethod.name").replace("Majoor: ", "")),
name: m("setting.viewer.mfvPreviewMethod.name"),
tooltip: m("setting.viewer.mfvPreviewMethod.desc"),
type: "combo",
defaultValue: ((I = t.viewer) == null ? void 0 : I.mfvPreviewMethod) || "taesd",
options: ["taesd", "latent2rgb", "auto", "default", "none"],
- onChange: (Z) => {
- const A = ["taesd", "latent2rgb", "auto", "default", "none"].includes(Z) ? Z : "taesd";
- t.viewer = t.viewer || {}, t.viewer.mfvPreviewMethod = A, Te(t), At(t), n("viewer.mfvPreviewMethod");
+ onChange: (A) => {
+ const C = ["taesd", "latent2rgb", "auto", "default", "none"].includes(A) ? A : "taesd";
+ t.viewer = t.viewer || {}, t.viewer.mfvPreviewMethod = C, Be(t), At(t), n("viewer.mfvPreviewMethod");
}
}), e({
- id: `${zi}.Viewer.LtxavRgbFallback`,
+ id: `${Ti}.Viewer.LtxavRgbFallback`,
category: i(m("cat.viewer"), "LTXAV preview fallback"),
name: "Majoor: LTXAV RGB Preview Fallback (experimental)",
tooltip: "Reuse LTXV RGB projection for LTXAV when native latent preview is unavailable. Experimental; quality may be approximate.",
type: "boolean",
defaultValue: !!((p = t.viewer) != null && p.ltxavRgbFallback),
- onChange: async (Z) => {
- var h;
- const A = !!Z, g = !!((h = t.viewer) != null && h.ltxavRgbFallback);
- t.viewer = t.viewer || {}, t.viewer.ltxavRgbFallback = A, Te(t), At(t), n("viewer.ltxavRgbFallback");
+ onChange: async (A) => {
+ var Z;
+ const C = !!A, g = !!((Z = t.viewer) != null && Z.ltxavRgbFallback);
+ t.viewer = t.viewer || {}, t.viewer.ltxavRgbFallback = C, Be(t), At(t), n("viewer.ltxavRgbFallback");
try {
- const f = await Mf(A);
+ const f = await xf(C);
if (!(f != null && f.ok))
throw new Error(
(f == null ? void 0 : f.error) || "Failed to update LTXAV RGB preview fallback setting"
);
} catch (f) {
- t.viewer.ltxavRgbFallback = g, Te(t), At(t), n("viewer.ltxavRgbFallback"), Ce(
+ t.viewer.ltxavRgbFallback = g, Be(t), At(t), n("viewer.ltxavRgbFallback"), Ze(
(f == null ? void 0 : f.message) || "Failed to update LTXAV RGB preview fallback setting",
"error"
);
@@ -6262,27 +6277,27 @@ function Qh(e, t, n) {
}
});
try {
- wf().then((Z) => {
- var g, h;
- if (!(Z != null && Z.ok)) return;
- const A = !!((h = (g = Z == null ? void 0 : Z.data) == null ? void 0 : g.prefs) != null && h.enabled);
- t.viewer = t.viewer || {}, !!t.viewer.ltxavRgbFallback !== A && (t.viewer.ltxavRgbFallback = A, Te(t), At(t), n("viewer.ltxavRgbFallback"));
+ Gf().then((A) => {
+ var g, Z;
+ if (!(A != null && A.ok)) return;
+ const C = !!((Z = (g = A == null ? void 0 : A.data) == null ? void 0 : g.prefs) != null && Z.enabled);
+ t.viewer = t.viewer || {}, !!t.viewer.ltxavRgbFallback !== C && (t.viewer.ltxavRgbFallback = C, Be(t), At(t), n("viewer.ltxavRgbFallback"));
}).catch(() => {
});
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
- ((Z, A, g, h) => {
+ ((A, C, g, Z) => {
var f;
e({
- id: `${zi}.WorkflowMinimap.${Z}`,
+ id: `${Ti}.WorkflowMinimap.${A}`,
category: i(m("cat.viewer"), m(g).replace("Majoor: ", "")),
name: m(g),
- tooltip: m(h),
+ tooltip: m(Z),
type: "boolean",
- defaultValue: !!((f = t.workflowMinimap) != null && f[A]),
+ defaultValue: !!((f = t.workflowMinimap) != null && f[C]),
onChange: (b) => {
- t.workflowMinimap = t.workflowMinimap || {}, t.workflowMinimap[A] = !!b, Te(t), n(`workflowMinimap.${A}`);
+ t.workflowMinimap = t.workflowMinimap || {}, t.workflowMinimap[C] = !!b, Be(t), n(`workflowMinimap.${C}`);
}
});
})(
@@ -6292,85 +6307,85 @@ function Qh(e, t, n) {
"setting.minimap.enabled.desc"
);
}
-const ki = "Majoor", _h = "Majoor Assets Manager";
-function $h(e, t, n) {
- var a, c, s, d, u, I, p, M, Z, A, g, h;
- const i = (f, b) => [_h, f, b];
+const Xi = "Majoor", tC = "Majoor Assets Manager";
+function nC(e, t, n) {
+ var a, c, s, d, u, I, p, S, A, C, g, Z;
+ const i = (f, b) => [tC, f, b];
e({
- id: `${ki}.ExecutionGrouping.Enabled`,
+ id: `${Xi}.ExecutionGrouping.Enabled`,
category: i(m("cat.scanning"), "Execution grouping"),
name: "Execution job/stack grouping",
tooltip: "Enable or disable all live job_id / stack_id tracking, grouping, and stack finalization logic.",
type: "boolean",
- defaultValue: !!(((a = t.executionGrouping) == null ? void 0 : a.enabled) ?? Me.EXECUTION_GROUPING_ENABLED),
+ defaultValue: !!(((a = t.executionGrouping) == null ? void 0 : a.enabled) ?? Ge.EXECUTION_GROUPING_ENABLED),
onChange: async (f) => {
- var C, S, W;
- const b = !!(((C = t.executionGrouping) == null ? void 0 : C.enabled) ?? Me.EXECUTION_GROUPING_ENABLED), v = !!f;
- t.executionGrouping = t.executionGrouping || {}, t.executionGrouping.enabled = v, Te(t), At(t), n("executionGrouping.enabled");
+ var h, G, W;
+ const b = !!(((h = t.executionGrouping) == null ? void 0 : h.enabled) ?? Ge.EXECUTION_GROUPING_ENABLED), L = !!f;
+ t.executionGrouping = t.executionGrouping || {}, t.executionGrouping.enabled = L, Be(t), At(t), n("executionGrouping.enabled");
try {
- const y = await bf(v);
+ const y = await ff(L);
if (!(y != null && y.ok))
throw new Error((y == null ? void 0 : y.error) || "Failed to update execution grouping setting");
- t.executionGrouping.enabled = !!((W = (S = y == null ? void 0 : y.data) == null ? void 0 : S.prefs) != null && W.enabled), Te(t), At(t), n("executionGrouping.enabled");
+ t.executionGrouping.enabled = !!((W = (G = y == null ? void 0 : y.data) == null ? void 0 : G.prefs) != null && W.enabled), Be(t), At(t), n("executionGrouping.enabled");
} catch (y) {
- t.executionGrouping.enabled = b, Te(t), At(t), n("executionGrouping.enabled"), Ce((y == null ? void 0 : y.message) || "Failed to update execution grouping setting", "error");
+ t.executionGrouping.enabled = b, Be(t), At(t), n("executionGrouping.enabled"), Ze((y == null ? void 0 : y.message) || "Failed to update execution grouping setting", "error");
}
}
}), e({
- id: `${ki}.AutoScan.OnStartup`,
+ id: `${Xi}.AutoScan.OnStartup`,
category: i(m("cat.scanning"), m("setting.scan.startup.name").replace("Majoor: ", "")),
name: m("setting.scan.startup.name"),
tooltip: m("setting.scan.startup.desc"),
type: "boolean",
defaultValue: !!((c = t.autoScan) != null && c.onStartup),
onChange: (f) => {
- t.autoScan = t.autoScan || {}, t.autoScan.onStartup = !!f, Te(t), At(t), n("autoScan.onStartup");
+ t.autoScan = t.autoScan || {}, t.autoScan.onStartup = !!f, Be(t), At(t), n("autoScan.onStartup");
}
}), e({
- id: `${ki}.Scan.FastMode`,
+ id: `${Xi}.Scan.FastMode`,
category: i(m("cat.scanning"), "Scan mode"),
name: "Fast scan mode",
tooltip: "Use fast scan mode for manual backfill scans (skip heavier metadata work during scan).",
type: "boolean",
defaultValue: !!(((s = t.scan) == null ? void 0 : s.fastMode) ?? !0),
onChange: (f) => {
- t.scan = t.scan || {}, t.scan.fastMode = !!f, Te(t), n("scan.fastMode");
+ t.scan = t.scan || {}, t.scan.fastMode = !!f, Be(t), n("scan.fastMode");
}
}), e({
- id: `${ki}.RtHydrate.Concurrency`,
+ id: `${Xi}.RtHydrate.Concurrency`,
category: i(m("cat.scanning"), "Hydration"),
name: "Hydrate Concurrency",
tooltip: "Maximum concurrent hydration requests for rating/tags.",
type: "number",
defaultValue: Number(
- ((d = t.rtHydrate) == null ? void 0 : d.concurrency) || Me.RT_HYDRATE_CONCURRENCY || 5
+ ((d = t.rtHydrate) == null ? void 0 : d.concurrency) || Ge.RT_HYDRATE_CONCURRENCY || 5
),
attrs: { min: 1, max: 20, step: 1 },
onChange: (f) => {
t.rtHydrate = t.rtHydrate || {}, t.rtHydrate.concurrency = Math.max(
1,
- Math.min(20, Math.round(Gn(f, Me.RT_HYDRATE_CONCURRENCY || 5)))
- ), Te(t), At(t), n("rtHydrate.concurrency");
+ Math.min(20, Math.round(Gn(f, Ge.RT_HYDRATE_CONCURRENCY || 5)))
+ ), Be(t), At(t), n("rtHydrate.concurrency");
}
});
- const o = (f, b, v, C) => {
- const S = Math.round(Gn(f, b));
- return Math.max(v, Math.min(C, S));
+ const o = (f, b, L, h) => {
+ const G = Math.round(Gn(f, b));
+ return Math.max(L, Math.min(h, G));
}, r = (f = {}) => {
const b = [];
if (t.watcher = t.watcher || {}, typeof f.debounce_ms == "number") {
- const v = Math.max(50, Math.min(5e3, Math.round(f.debounce_ms)));
- t.watcher.debounceMs !== v && (t.watcher.debounceMs = v, b.push("watcher.debounceMs"));
+ const L = Math.max(50, Math.min(5e3, Math.round(f.debounce_ms)));
+ t.watcher.debounceMs !== L && (t.watcher.debounceMs = L, b.push("watcher.debounceMs"));
}
if (typeof f.dedupe_ttl_ms == "number") {
- const v = Math.max(100, Math.min(3e4, Math.round(f.dedupe_ttl_ms)));
- t.watcher.dedupeTtlMs !== v && (t.watcher.dedupeTtlMs = v, b.push("watcher.dedupeTtlMs"));
+ const L = Math.max(100, Math.min(3e4, Math.round(f.dedupe_ttl_ms)));
+ t.watcher.dedupeTtlMs !== L && (t.watcher.dedupeTtlMs = L, b.push("watcher.dedupeTtlMs"));
}
- b.length && (Te(t), b.forEach((v) => n(v)));
+ b.length && (Be(t), b.forEach((L) => n(L)));
}, l = async () => {
var f;
try {
- const b = await Yf();
+ const b = await Xf();
if (!(b != null && b.ok))
return;
r(b.data || {});
@@ -6379,26 +6394,26 @@ function $h(e, t, n) {
}
};
e({
- id: `${ki}.Watcher.Enabled`,
+ id: `${Xi}.Watcher.Enabled`,
category: i(m("cat.scanning"), m("setting.watcher.enabled.label", "Enable watcher")),
name: m("setting.watcher.name"),
tooltip: m("setting.watcher.desc") + " (env: MJR_ENABLE_WATCHER)",
type: "boolean",
defaultValue: !!((u = t.watcher) != null && u.enabled),
onChange: async (f) => {
- t.watcher = t.watcher || {}, t.watcher.enabled = !!f, Te(t), n("watcher.enabled");
+ t.watcher = t.watcher || {}, t.watcher.enabled = !!f, Be(t), n("watcher.enabled");
try {
- const b = await wa(!!f);
- b != null && b.ok || (t.watcher.enabled = !f, Te(t), n("watcher.enabled"), Ce(
+ const b = await Ma(!!f);
+ b != null && b.ok || (t.watcher.enabled = !f, Be(t), n("watcher.enabled"), Ze(
(b == null ? void 0 : b.error) || m("toast.failedToggleWatcher", "Failed to toggle watcher"),
"error"
));
} catch {
- t.watcher.enabled = !f, Te(t), n("watcher.enabled");
+ t.watcher.enabled = !f, Be(t), n("watcher.enabled");
}
}
}), e({
- id: `${ki}.Watcher.DebounceDelay`,
+ id: `${Xi}.Watcher.DebounceDelay`,
category: i(
m("cat.scanning"),
m("setting.watcher.debounce.label", "Watcher debounce delay")
@@ -6406,26 +6421,26 @@ function $h(e, t, n) {
name: m("setting.watcher.debounce.name"),
tooltip: m("setting.watcher.debounce.desc") + " (env: MJR_WATCHER_DEBOUNCE_MS)",
type: "number",
- defaultValue: ((I = t.watcher) == null ? void 0 : I.debounceMs) ?? Me.WATCHER_DEBOUNCE_MS,
+ defaultValue: ((I = t.watcher) == null ? void 0 : I.debounceMs) ?? Ge.WATCHER_DEBOUNCE_MS,
attrs: { min: 50, max: 5e3, step: 50 },
onChange: async (f) => {
- var S, W;
- const b = Me.WATCHER_DEBOUNCE_MS, v = o(f, b, 50, 5e3), C = ((S = t.watcher) == null ? void 0 : S.debounceMs) ?? b;
- if (v !== C) {
- t.watcher = t.watcher || {}, t.watcher.debounceMs = v, Te(t);
+ var G, W;
+ const b = Ge.WATCHER_DEBOUNCE_MS, L = o(f, b, 50, 5e3), h = ((G = t.watcher) == null ? void 0 : G.debounceMs) ?? b;
+ if (L !== h) {
+ t.watcher = t.watcher || {}, t.watcher.debounceMs = L, Be(t);
try {
- const y = await Pd({ debounce_ms: v });
+ const y = await _d({ debounce_ms: L });
if (!(y != null && y.ok))
throw new Error((y == null ? void 0 : y.error) || m("setting.watcher.debounce.error"));
- const k = Math.round(Number(((W = y == null ? void 0 : y.data) == null ? void 0 : W.debounce_ms) ?? v));
- t.watcher.debounceMs = k, Te(t), n("watcher.debounceMs");
+ const X = Math.round(Number(((W = y == null ? void 0 : y.data) == null ? void 0 : W.debounce_ms) ?? L));
+ t.watcher.debounceMs = X, Be(t), n("watcher.debounceMs");
} catch (y) {
- t.watcher.debounceMs = C, Te(t), n("watcher.debounceMs"), Ce((y == null ? void 0 : y.message) || m("setting.watcher.debounce.error"), "error");
+ t.watcher.debounceMs = h, Be(t), n("watcher.debounceMs"), Ze((y == null ? void 0 : y.message) || m("setting.watcher.debounce.error"), "error");
}
}
}
}), e({
- id: `${ki}.Watcher.DedupeWindow`,
+ id: `${Xi}.Watcher.DedupeWindow`,
category: i(
m("cat.scanning"),
m("setting.watcher.dedupe.label", "Watcher dedupe window")
@@ -6433,65 +6448,65 @@ function $h(e, t, n) {
name: m("setting.watcher.dedupe.name"),
tooltip: m("setting.watcher.dedupe.desc") + " (env: MJR_WATCHER_DEDUPE_TTL_MS)",
type: "number",
- defaultValue: ((p = t.watcher) == null ? void 0 : p.dedupeTtlMs) ?? Me.WATCHER_DEDUPE_TTL_MS,
+ defaultValue: ((p = t.watcher) == null ? void 0 : p.dedupeTtlMs) ?? Ge.WATCHER_DEDUPE_TTL_MS,
attrs: { min: 100, max: 3e4, step: 100 },
onChange: async (f) => {
- var S, W;
- const b = Me.WATCHER_DEDUPE_TTL_MS, v = o(f, b, 100, 3e4), C = ((S = t.watcher) == null ? void 0 : S.dedupeTtlMs) ?? b;
- if (v !== C) {
- t.watcher = t.watcher || {}, t.watcher.dedupeTtlMs = v, Te(t);
+ var G, W;
+ const b = Ge.WATCHER_DEDUPE_TTL_MS, L = o(f, b, 100, 3e4), h = ((G = t.watcher) == null ? void 0 : G.dedupeTtlMs) ?? b;
+ if (L !== h) {
+ t.watcher = t.watcher || {}, t.watcher.dedupeTtlMs = L, Be(t);
try {
- const y = await Pd({ dedupe_ttl_ms: v });
+ const y = await _d({ dedupe_ttl_ms: L });
if (!(y != null && y.ok))
throw new Error((y == null ? void 0 : y.error) || m("setting.watcher.dedupe.error"));
- const k = Math.round(Number(((W = y == null ? void 0 : y.data) == null ? void 0 : W.dedupe_ttl_ms) ?? v));
- t.watcher.dedupeTtlMs = k, Te(t), n("watcher.dedupeTtlMs");
+ const X = Math.round(Number(((W = y == null ? void 0 : y.data) == null ? void 0 : W.dedupe_ttl_ms) ?? L));
+ t.watcher.dedupeTtlMs = X, Be(t), n("watcher.dedupeTtlMs");
} catch (y) {
- t.watcher.dedupeTtlMs = C, Te(t), n("watcher.dedupeTtlMs"), Ce((y == null ? void 0 : y.message) || m("setting.watcher.dedupe.error"), "error");
+ t.watcher.dedupeTtlMs = h, Be(t), n("watcher.dedupeTtlMs"), Ze((y == null ? void 0 : y.message) || m("setting.watcher.dedupe.error"), "error");
}
}
}
}), e({
- id: `${ki}.Watcher.MaxPending`,
+ id: `${Xi}.Watcher.MaxPending`,
category: i(m("cat.scanning"), "Watcher queue"),
name: "Watcher: max pending files",
tooltip: "Maximum number of pending watcher files kept in memory.",
type: "number",
- defaultValue: Number(((M = t.watcher) == null ? void 0 : M.maxPending) ?? 500),
+ defaultValue: Number(((S = t.watcher) == null ? void 0 : S.maxPending) ?? 500),
attrs: { min: 10, max: 5e3, step: 10 },
onChange: (f) => {
t.watcher = t.watcher || {}, t.watcher.maxPending = Math.max(
10,
Math.min(5e3, Math.round(Gn(f, 500)))
- ), Te(t), At(t), n("watcher.maxPending");
+ ), Be(t), At(t), n("watcher.maxPending");
}
}), e({
- id: `${ki}.Watcher.MinSize`,
+ id: `${Xi}.Watcher.MinSize`,
category: i(m("cat.scanning"), "Watcher file size"),
name: "Watcher: min size (bytes)",
tooltip: "Minimum file size indexed by watcher.",
type: "number",
- defaultValue: Number(((Z = t.watcher) == null ? void 0 : Z.minSize) ?? 100),
+ defaultValue: Number(((A = t.watcher) == null ? void 0 : A.minSize) ?? 100),
attrs: { min: 0, max: 1e6, step: 100 },
onChange: (f) => {
t.watcher = t.watcher || {}, t.watcher.minSize = Math.max(
0,
Math.min(1e6, Math.round(Gn(f, 100)))
- ), Te(t), At(t), n("watcher.minSize");
+ ), Be(t), At(t), n("watcher.minSize");
}
}), e({
- id: `${ki}.Watcher.MaxSize`,
+ id: `${Xi}.Watcher.MaxSize`,
category: i(m("cat.scanning"), "Watcher file size"),
name: "Watcher: max size (bytes)",
tooltip: "Maximum file size indexed by watcher.",
type: "number",
- defaultValue: Number(((A = t.watcher) == null ? void 0 : A.maxSize) ?? 4294967296),
+ defaultValue: Number(((C = t.watcher) == null ? void 0 : C.maxSize) ?? 4294967296),
attrs: { min: 1e5, max: 17179869184, step: 1e5 },
onChange: (f) => {
t.watcher = t.watcher || {}, t.watcher.maxSize = Math.max(
1e5,
Math.min(17179869184, Math.round(Gn(f, 4294967296)))
- ), Te(t), At(t), n("watcher.maxSize");
+ ), Be(t), At(t), n("watcher.maxSize");
}
});
try {
@@ -6501,177 +6516,177 @@ function $h(e, t, n) {
(g = console.debug) == null || g.call(console, f);
}
e({
- id: `${ki}.RatingTagsSync.Enabled`,
+ id: `${Xi}.RatingTagsSync.Enabled`,
category: i(m("cat.scanning"), m("setting.sync.rating.name").replace("Majoor: ", "")),
name: m("setting.sync.rating.name"),
tooltip: m("setting.sync.rating.desc"),
type: "boolean",
- defaultValue: !!((h = t.ratingTagsSync) != null && h.enabled),
+ defaultValue: !!((Z = t.ratingTagsSync) != null && Z.enabled),
onChange: (f) => {
- t.ratingTagsSync = t.ratingTagsSync || {}, t.ratingTagsSync.enabled = !!f, Te(t), n("ratingTagsSync.enabled");
+ t.ratingTagsSync = t.ratingTagsSync || {}, t.ratingTagsSync.enabled = !!f, Be(t), n("ratingTagsSync.enabled");
}
});
}
-const Ji = "Majoor", eC = "Majoor Assets Manager";
-function tC(e, t, n) {
- var r, l, a, c, s, d, u, I, p, M;
- const i = (Z) => [eC, m("cat.feed", "Generated Feed"), Z], o = () => {
+const Bi = "Majoor", iC = "Majoor Assets Manager";
+function oC(e, t, n) {
+ var r, l, a, c, s, d, u, I, p, S;
+ const i = (A) => [iC, m("cat.feed", "Generated Feed"), A], o = () => {
t.feed = t.feed || {};
};
e({
- id: `${Ji}.Feed.CardSize`,
+ id: `${Bi}.Feed.CardSize`,
category: i("Card size"),
name: "Feed card size (px)",
tooltip: "Set the minimum card width used by the Generated Feed layout (60-600 px).",
type: "number",
defaultValue: Math.max(60, Math.min(600, Number((r = t.feed) == null ? void 0 : r.minSize) || 120)),
attrs: { min: 60, max: 600, step: 10 },
- onChange: (Z) => {
- o(), t.feed.minSize = Math.max(60, Math.min(600, Math.round(Number(Z) || 120))), Te(t), At(t), n("feed.minSize");
+ onChange: (A) => {
+ o(), t.feed.minSize = Math.max(60, Math.min(600, Math.round(Number(A) || 120))), Be(t), At(t), n("feed.minSize");
}
}), e({
- id: `${Ji}.Feed.ShowInfo`,
+ id: `${Bi}.Feed.ShowInfo`,
category: i("Show info section"),
name: "Show card info section",
tooltip: "Show or hide the entire info section (filename, metadata, dots) below thumbnails in the Generated Feed.",
type: "boolean",
- defaultValue: !!(((l = t.feed) == null ? void 0 : l.showInfo) ?? Me.FEED_SHOW_INFO),
- onChange: (Z) => {
- o(), t.feed.showInfo = !!Z, Te(t), At(t), n("feed.showInfo");
+ defaultValue: !!(((l = t.feed) == null ? void 0 : l.showInfo) ?? Ge.FEED_SHOW_INFO),
+ onChange: (A) => {
+ o(), t.feed.showInfo = !!A, Be(t), At(t), n("feed.showInfo");
}
}), e({
- id: `${Ji}.Feed.ShowFilename`,
+ id: `${Bi}.Feed.ShowFilename`,
category: i("Show filename"),
name: "Show filename",
tooltip: "Display the filename on feed cards.",
type: "boolean",
- defaultValue: !!(((a = t.feed) == null ? void 0 : a.showFilename) ?? Me.FEED_SHOW_FILENAME),
- onChange: (Z) => {
- o(), t.feed.showFilename = !!Z, Te(t), At(t), n("feed.showFilename");
+ defaultValue: !!(((a = t.feed) == null ? void 0 : a.showFilename) ?? Ge.FEED_SHOW_FILENAME),
+ onChange: (A) => {
+ o(), t.feed.showFilename = !!A, Be(t), At(t), n("feed.showFilename");
}
}), e({
- id: `${Ji}.Feed.ShowDimensions`,
+ id: `${Bi}.Feed.ShowDimensions`,
category: i("Show dimensions"),
name: "Show dimensions",
tooltip: "Display resolution (WxH) and duration on feed cards.",
type: "boolean",
- defaultValue: !!(((c = t.feed) == null ? void 0 : c.showDimensions) ?? Me.FEED_SHOW_DIMENSIONS),
- onChange: (Z) => {
- o(), t.feed.showDimensions = !!Z, Te(t), At(t), n("feed.showDimensions");
+ defaultValue: !!(((c = t.feed) == null ? void 0 : c.showDimensions) ?? Ge.FEED_SHOW_DIMENSIONS),
+ onChange: (A) => {
+ o(), t.feed.showDimensions = !!A, Be(t), At(t), n("feed.showDimensions");
}
}), e({
- id: `${Ji}.Feed.ShowDate`,
+ id: `${Bi}.Feed.ShowDate`,
category: i("Show date/time"),
name: "Show date/time",
tooltip: "Display date and time on feed cards.",
type: "boolean",
- defaultValue: !!(((s = t.feed) == null ? void 0 : s.showDate) ?? Me.FEED_SHOW_DATE),
- onChange: (Z) => {
- o(), t.feed.showDate = !!Z, Te(t), At(t), n("feed.showDate");
+ defaultValue: !!(((s = t.feed) == null ? void 0 : s.showDate) ?? Ge.FEED_SHOW_DATE),
+ onChange: (A) => {
+ o(), t.feed.showDate = !!A, Be(t), At(t), n("feed.showDate");
}
}), e({
- id: `${Ji}.Feed.ShowGenTime`,
+ id: `${Bi}.Feed.ShowGenTime`,
category: i("Show generation time"),
name: "Show generation time",
tooltip: "Display the generation time badge on feed cards.",
type: "boolean",
- defaultValue: !!(((d = t.feed) == null ? void 0 : d.showGenTime) ?? Me.FEED_SHOW_GENTIME),
- onChange: (Z) => {
- o(), t.feed.showGenTime = !!Z, Te(t), At(t), n("feed.showGenTime");
+ defaultValue: !!(((d = t.feed) == null ? void 0 : d.showGenTime) ?? Ge.FEED_SHOW_GENTIME),
+ onChange: (A) => {
+ o(), t.feed.showGenTime = !!A, Be(t), At(t), n("feed.showGenTime");
}
}), e({
- id: `${Ji}.Feed.ShowWorkflowDot`,
+ id: `${Bi}.Feed.ShowWorkflowDot`,
category: i("Show workflow dot"),
name: "Show workflow indicator",
tooltip: "Display the workflow availability dot on feed cards.",
type: "boolean",
- defaultValue: !!(((u = t.feed) == null ? void 0 : u.showWorkflowDot) ?? Me.FEED_SHOW_WORKFLOW_DOT),
- onChange: (Z) => {
- o(), t.feed.showWorkflowDot = !!Z, Te(t), At(t), n("feed.showWorkflowDot");
+ defaultValue: !!(((u = t.feed) == null ? void 0 : u.showWorkflowDot) ?? Ge.FEED_SHOW_WORKFLOW_DOT),
+ onChange: (A) => {
+ o(), t.feed.showWorkflowDot = !!A, Be(t), At(t), n("feed.showWorkflowDot");
}
}), e({
- id: `${Ji}.Feed.ShowExtBadge`,
+ id: `${Bi}.Feed.ShowExtBadge`,
category: i("Show format badges"),
name: "Show format badges",
tooltip: "Display format badges (e.g. JPG, MP4) on feed card thumbnails.",
type: "boolean",
- defaultValue: !!(((I = t.feed) == null ? void 0 : I.showExtBadge) ?? Me.FEED_SHOW_BADGES_EXTENSION),
- onChange: (Z) => {
- o(), t.feed.showExtBadge = !!Z, Te(t), At(t), n("feed.showExtBadge");
+ defaultValue: !!(((I = t.feed) == null ? void 0 : I.showExtBadge) ?? Ge.FEED_SHOW_BADGES_EXTENSION),
+ onChange: (A) => {
+ o(), t.feed.showExtBadge = !!A, Be(t), At(t), n("feed.showExtBadge");
}
}), e({
- id: `${Ji}.Feed.ShowRatingBadge`,
+ id: `${Bi}.Feed.ShowRatingBadge`,
category: i("Show rating badges"),
name: "Show ratings",
tooltip: "Display star ratings on feed card thumbnails.",
type: "boolean",
- defaultValue: !!(((p = t.feed) == null ? void 0 : p.showRatingBadge) ?? Me.FEED_SHOW_BADGES_RATING),
- onChange: (Z) => {
- o(), t.feed.showRatingBadge = !!Z, Te(t), At(t), n("feed.showRatingBadge");
+ defaultValue: !!(((p = t.feed) == null ? void 0 : p.showRatingBadge) ?? Ge.FEED_SHOW_BADGES_RATING),
+ onChange: (A) => {
+ o(), t.feed.showRatingBadge = !!A, Be(t), At(t), n("feed.showRatingBadge");
}
}), e({
- id: `${Ji}.Feed.ShowTagsBadge`,
+ id: `${Bi}.Feed.ShowTagsBadge`,
category: i("Show tags badges"),
name: "Show tags",
tooltip: "Display tag indicators on feed card thumbnails.",
type: "boolean",
- defaultValue: !!(((M = t.feed) == null ? void 0 : M.showTagsBadge) ?? Me.FEED_SHOW_BADGES_TAGS),
- onChange: (Z) => {
- o(), t.feed.showTagsBadge = !!Z, Te(t), At(t), n("feed.showTagsBadge");
+ defaultValue: !!(((S = t.feed) == null ? void 0 : S.showTagsBadge) ?? Ge.FEED_SHOW_BADGES_TAGS),
+ onChange: (A) => {
+ o(), t.feed.showTagsBadge = !!A, Be(t), At(t), n("feed.showTagsBadge");
}
});
}
-const kl = "Majoor", nC = "Majoor Assets Manager", _g = 16;
-function su(e) {
+const Xl = "Majoor", rC = "Majoor Assets Manager", $g = 16;
+function uu(e) {
return !!e;
}
-function mc(e, t) {
- return su(e) === su(t);
+function gc(e, t) {
+ return uu(e) === uu(t);
}
-function du(e) {
+function mu(e) {
return typeof e == "string" ? e.trim() : "";
}
-function iC(e) {
+function lC(e) {
const t = String(e || "").trim().toLowerCase();
return t === "localhost" || t === "127.0.0.1" || t === "::1";
}
-function oC() {
+function aC() {
var e;
return globalThis.location || ((e = globalThis.window) == null ? void 0 : e.location) || null;
}
-function rC() {
- const e = oC();
+function cC() {
+ const e = aC();
if (!e) return !1;
const t = String(e.protocol || "").toLowerCase(), n = String(e.hostname || "").trim();
- return t === "http:" && !iC(n);
+ return t === "http:" && !lC(n);
}
-function lC(e) {
+function sC(e) {
const t = globalThis.crypto;
if (!(t != null && t.getRandomValues))
throw new Error("Secure token generation requires crypto.getRandomValues().");
return t.getRandomValues(e);
}
-function aC(e) {
- const t = Math.max(4, Number(e) || 0), n = new Uint8Array(t);
- return lC(n), Array.from(n, (i) => i.toString(16).padStart(2, "0")).join("");
-}
-function cC() {
- return `mjr_${aC(18)}`;
-}
-function sC(e) {
- return String((e == null ? void 0 : e.apiToken) || "").trim().length >= _g && kn(e == null ? void 0 : e.allowWrite, !0) && kn(e == null ? void 0 : e.requireAuth, !1) && !kn(e == null ? void 0 : e.allowRemoteWrite, !1);
-}
function dC(e) {
+ const t = Math.max(4, Number(e) || 0), n = new Uint8Array(t);
+ return sC(n), Array.from(n, (i) => i.toString(16).padStart(2, "0")).join("");
+}
+function uC() {
+ return `mjr_${dC(18)}`;
+}
+function mC(e) {
+ return String((e == null ? void 0 : e.apiToken) || "").trim().length >= $g && kn(e == null ? void 0 : e.allowWrite, !0) && kn(e == null ? void 0 : e.requireAuth, !1) && !kn(e == null ? void 0 : e.allowRemoteWrite, !1);
+}
+function gC(e) {
const n = String((e && typeof e == "object" ? e : {}).apiToken || "").trim();
return {
- apiToken: n.length >= _g ? n : cC(),
+ apiToken: n.length >= $g ? n : uC(),
allowWrite: !0,
requireAuth: !0,
allowRemoteWrite: !1,
- allowInsecureTokenTransport: rC()
+ allowInsecureTokenTransport: cC()
};
}
-function uC(e) {
+function IC(e) {
const t = e || {};
return {
safe_mode: kn(t.safeMode, !1),
@@ -6686,10 +6701,10 @@ function uC(e) {
...String(t.apiToken || "").trim() ? { api_token: String(t.apiToken || "").trim() } : {}
};
}
-function uu(e) {
- return Yg(uC(e));
+function gu(e) {
+ return Yg(IC(e));
}
-function mC(e) {
+function bC(e) {
var n, i;
const t = String(((n = e == null ? void 0 : e.security) == null ? void 0 : n.tokenHint) || "").trim();
return t ? m(
@@ -6701,11 +6716,11 @@ function mC(e) {
"Token configured on server. Leave blank to keep the current server token."
) : m("setting.sec.token.placeholder", "Auto-generated for this browser session.");
}
-function gC(e, t, n) {
+function pC(e, t, n) {
var r, l;
- const i = (a, c) => [nC, a, c];
+ const i = (a, c) => [rC, a, c];
e({
- id: `${kl}.Safety.ConfirmDeletion`,
+ id: `${Xl}.Safety.ConfirmDeletion`,
category: i(m("cat.security"), "Confirm before deleting"),
name: "Confirm before deleting",
tooltip: "Show a confirmation dialog before deleting files. Disabling this allows instant deletion.",
@@ -6713,40 +6728,40 @@ function gC(e, t, n) {
defaultValue: ((r = t.safety) == null ? void 0 : r.confirmDeletion) !== !1,
onChange: (a) => {
var c;
- mc(((c = t.safety) == null ? void 0 : c.confirmDeletion) !== !1, a) || (t.safety = t.safety || {}, t.safety.confirmDeletion = !!a, Te(t), At(t), n("safety.confirmDeletion"));
+ gc(((c = t.safety) == null ? void 0 : c.confirmDeletion) !== !1, a) || (t.safety = t.safety || {}, t.safety.confirmDeletion = !!a, Be(t), At(t), n("safety.confirmDeletion"));
}
});
const o = (a, c, s, d = "cat.security") => {
var u;
e({
- id: `${kl}.Security.${a}`,
+ id: `${Xl}.Security.${a}`,
category: i(m(d), m(c).replace("Majoor: ", "")),
name: m(c),
tooltip: m(s),
type: "boolean",
defaultValue: !!((u = t.security) != null && u[a]),
onChange: (I) => {
- var p, M;
- if (!mc((p = t.security) == null ? void 0 : p[a], I)) {
- t.security = t.security || {}, t.security[a] = !!I, Te(t), n(`security.${a}`);
+ var p, S;
+ if (!gc((p = t.security) == null ? void 0 : p[a], I)) {
+ t.security = t.security || {}, t.security[a] = !!I, Be(t), n(`security.${a}`);
try {
- uu(t.security).then((Z) => {
- var A;
- Z != null && Z.ok && ((A = Z.data) != null && A.prefs) ? ia() : Z && Z.ok === !1 && console.warn(
+ gu(t.security).then((A) => {
+ var C;
+ A != null && A.ok && ((C = A.data) != null && C.prefs) ? oa() : A && A.ok === !1 && console.warn(
"[Majoor] backend security settings update failed",
- Z.error || Z
+ A.error || A
);
}).catch(() => {
});
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
}
}
});
};
o("safeMode", "setting.sec.safe.name", "setting.sec.safe.desc"), o("allowWrite", "setting.sec.write.name", "setting.sec.write.desc"), o("allowDelete", "setting.sec.del.name", "setting.sec.del.desc"), o("allowRename", "setting.sec.ren.name", "setting.sec.ren.desc"), o("allowOpenInFolder", "setting.sec.open.name", "setting.sec.open.desc"), o("allowResetIndex", "setting.sec.reset.name", "setting.sec.reset.desc"), e({
- id: `${kl}.Security.RemoteLanPreset`,
+ id: `${Xl}.Security.RemoteLanPreset`,
category: i(
m("cat.remote"),
m("setting.sec.remoteLanPreset.name").replace("Majoor: ", "")
@@ -6754,20 +6769,20 @@ function gC(e, t, n) {
name: m("setting.sec.remoteLanPreset.name"),
tooltip: m("setting.sec.remoteLanPreset.desc"),
type: "boolean",
- defaultValue: sC(t.security),
+ defaultValue: mC(t.security),
onChange: (a) => {
var s;
- if (t.security = t.security || {}, mc(t.security.remoteLanPreset, a))
+ if (t.security = t.security || {}, gc(t.security.remoteLanPreset, a))
return;
if (t.security.remoteLanPreset = !!a, !a) {
- Te(t), n("security.remoteLanPreset");
+ Be(t), n("security.remoteLanPreset");
return;
}
let c;
try {
- c = dC(t.security);
+ c = gC(t.security);
} catch (d) {
- Ce(
+ Ze(
(d == null ? void 0 : d.message) || m(
"toast.remoteLanPresetFailed",
"Failed to apply the recommended remote LAN setup."
@@ -6776,17 +6791,17 @@ function gC(e, t, n) {
);
return;
}
- Object.assign(t.security, c), t.security.tokenConfigured = !0, t.security.tokenHint = String(c.apiToken || "").trim() ? `...${String(c.apiToken).trim().slice(-4)}` : "", c.apiToken && Dd(c.apiToken), Te(t), n("security.remoteLanPreset"), n("security.apiToken"), n("security.allowWrite"), n("security.requireAuth"), n("security.allowRemoteWrite"), n("security.allowInsecureTokenTransport");
+ Object.assign(t.security, c), t.security.tokenConfigured = !0, t.security.tokenHint = String(c.apiToken || "").trim() ? `...${String(c.apiToken).trim().slice(-4)}` : "", c.apiToken && Hd(c.apiToken), Be(t), n("security.remoteLanPreset"), n("security.apiToken"), n("security.allowWrite"), n("security.requireAuth"), n("security.allowRemoteWrite"), n("security.allowInsecureTokenTransport");
try {
- uu(t.security).then((d) => {
+ gu(t.security).then((d) => {
var u;
- d != null && d.ok && ((u = d.data) != null && u.prefs) ? (ia(), Ce(
+ d != null && d.ok && ((u = d.data) != null && u.prefs) ? (oa(), Ze(
m(
"toast.remoteLanPresetApplied",
"Recommended remote LAN setup applied. This browser session is now authorized for Majoor write operations."
),
"success"
- )) : d && d.ok === !1 && (Ce(
+ )) : d && d.ok === !1 && (Ze(
d.error || m(
"toast.remoteLanPresetFailed",
"Failed to apply the recommended remote LAN setup."
@@ -6797,7 +6812,7 @@ function gC(e, t, n) {
d.error || d
));
}).catch((d) => {
- Ce(
+ Ze(
(d == null ? void 0 : d.message) || m(
"toast.remoteLanPresetFailed",
"Failed to apply the recommended remote LAN setup."
@@ -6810,7 +6825,7 @@ function gC(e, t, n) {
}
}
}), e({
- id: `${kl}.Security.ApiToken`,
+ id: `${Xl}.Security.ApiToken`,
category: i(m("cat.remote"), m("setting.sec.token.name").replace("Majoor: ", "")),
name: m("setting.sec.token.name", "Majoor: API Token"),
tooltip: m(
@@ -6820,17 +6835,17 @@ function gC(e, t, n) {
type: "text",
defaultValue: ((l = t.security) == null ? void 0 : l.apiToken) || "",
attrs: {
- placeholder: mC(t)
+ placeholder: bC(t)
},
onChange: (a) => {
var s;
t.security = t.security || {};
- const c = du(a);
- if (du(t.security.apiToken) !== c && (t.security.apiToken = c, t.security.apiToken && (t.security.tokenConfigured = !0, t.security.tokenHint = `...${t.security.apiToken.slice(-4)}`, Dd(t.security.apiToken)), Te(t), n("security.apiToken"), !!t.security.apiToken))
+ const c = mu(a);
+ if (mu(t.security.apiToken) !== c && (t.security.apiToken = c, t.security.apiToken && (t.security.tokenConfigured = !0, t.security.tokenHint = `...${t.security.apiToken.slice(-4)}`, Hd(t.security.apiToken)), Be(t), n("security.apiToken"), !!t.security.apiToken))
try {
Yg({ api_token: t.security.apiToken }).then((d) => {
var u;
- d != null && d.ok && ((u = d.data) != null && u.prefs) ? ia() : d && d.ok === !1 && console.warn("[Majoor] backend token update failed", d.error || d);
+ d != null && d.ok && ((u = d.data) != null && u.prefs) ? oa() : d && d.ok === !1 && console.warn("[Majoor] backend token update failed", d.error || d);
}).catch(() => {
});
} catch (d) {
@@ -6854,11 +6869,11 @@ function gC(e, t, n) {
"cat.remote"
);
}
-const Pn = "Majoor", IC = "Majoor Assets Manager";
-function bC(e, t, n, i) {
- var A, g, h, f, b, v, C, S, W, y, k, G, z, x, w, X, V, R, j, L, N, q, O;
- const o = (B, J) => [IC, B, J];
- let r = String(((A = t.paths) == null ? void 0 : A.outputDirectory) || ""), l = null, a = 0, c = null;
+const Pn = "Majoor", yC = "Majoor Assets Manager";
+function fC(e, t, n, i) {
+ var C, g, Z, f, b, L, h, G, W, y, X, x, T, v, w, R, Y, F, N, V, k, K, z;
+ const o = (B, J) => [yC, B, J];
+ let r = String(((C = t.paths) == null ? void 0 : C.outputDirectory) || ""), l = null, a = 0, c = null;
e({
id: `${Pn}.Paths.OutputDirectory`,
category: o(m("cat.advanced"), "Paths / Output"),
@@ -6870,43 +6885,43 @@ function bC(e, t, n, i) {
placeholder: "D:\\\\____COMFY_OUTPUTS"
},
onChange: async (B) => {
- var T;
+ var P;
const J = String(B || "").trim();
- t.paths = t.paths || {}, t.paths.outputDirectory = J, Te(t);
+ t.paths = t.paths || {}, t.paths.outputDirectory = J, Be(t);
try {
l && (clearTimeout(l), l = null);
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
l = setTimeout(async () => {
- var Q, E, K;
+ var $, E, oe;
l = null;
- const D = ++a;
+ const H = ++a;
try {
- (Q = c == null ? void 0 : c.abort) == null || Q.call(c);
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ ($ = c == null ? void 0 : c.abort) == null || $.call(c);
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
c = typeof AbortController < "u" ? new AbortController() : null;
try {
- const F = await Gf(
+ const M = await vf(
J,
c ? { signal: c.signal } : {}
);
- if (D !== a) return;
- if (!(F != null && F.ok))
+ if (H !== a) return;
+ if (!(M != null && M.ok))
throw new Error(
- (F == null ? void 0 : F.error) || m(
+ (M == null ? void 0 : M.error) || m(
"toast.failedSetOutputDirectory",
"Failed to set output directory"
)
);
- const Y = String(((K = F == null ? void 0 : F.data) == null ? void 0 : K.output_directory) || J).trim();
- t.paths.outputDirectory = Y, r = Y, Te(t), n("paths.outputDirectory");
- } catch (F) {
- if (D !== a || String((F == null ? void 0 : F.name) || "") === "AbortError" || String((F == null ? void 0 : F.code) || "") === "ABORTED") return;
- t.paths.outputDirectory = r, Te(t), n("paths.outputDirectory"), Ce(
- (F == null ? void 0 : F.message) || m("toast.failedSetOutputDirectory", "Failed to set output directory"),
+ const j = String(((oe = M == null ? void 0 : M.data) == null ? void 0 : oe.output_directory) || J).trim();
+ t.paths.outputDirectory = j, r = j, Be(t), n("paths.outputDirectory");
+ } catch (M) {
+ if (H !== a || String((M == null ? void 0 : M.name) || "") === "AbortError" || String((M == null ? void 0 : M.code) || "") === "ABORTED") return;
+ t.paths.outputDirectory = r, Be(t), n("paths.outputDirectory"), Ze(
+ (M == null ? void 0 : M.message) || m("toast.failedSetOutputDirectory", "Failed to set output directory"),
"error"
);
}
@@ -6914,15 +6929,15 @@ function bC(e, t, n, i) {
}
});
try {
- Sf().then((B) => {
- var T;
+ jf().then((B) => {
+ var P;
if (!(B != null && B.ok)) return;
- const J = String(((T = B == null ? void 0 : B.data) == null ? void 0 : T.output_directory) || "").trim();
- t.paths = t.paths || {}, t.paths.outputDirectory !== J && (t.paths.outputDirectory = J, r = J, Te(t), n("paths.outputDirectory"));
+ const J = String(((P = B == null ? void 0 : B.data) == null ? void 0 : P.output_directory) || "").trim();
+ t.paths = t.paths || {}, t.paths.outputDirectory !== J && (t.paths.outputDirectory = J, r = J, Be(t), n("paths.outputDirectory"));
}).catch(() => {
});
} catch (B) {
- (h = console.debug) == null || h.call(console, B);
+ (Z = console.debug) == null || Z.call(console, B);
}
let s = String(((f = t.paths) == null ? void 0 : f.indexDirectory) || ""), d = null, u = 0, I = null;
e({
@@ -6936,36 +6951,36 @@ function bC(e, t, n, i) {
placeholder: "D:\\MajoorIndex"
},
onChange: async (B) => {
- var T;
+ var P;
const J = String(B || "").trim();
- t.paths = t.paths || {}, t.paths.indexDirectory = J, Te(t);
+ t.paths = t.paths || {}, t.paths.indexDirectory = J, Be(t);
try {
d && (clearTimeout(d), d = null);
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
d = setTimeout(async () => {
- var Q, E, K;
+ var $, E, oe;
d = null;
- const D = ++u;
+ const H = ++u;
try {
- (Q = I == null ? void 0 : I.abort) == null || Q.call(I);
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ ($ = I == null ? void 0 : I.abort) == null || $.call(I);
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
I = typeof AbortController < "u" ? new AbortController() : null;
try {
- const F = await jf(
+ const M = await Vf(
J,
I ? { signal: I.signal } : {}
);
- if (D !== u) return;
- if (!(F != null && F.ok))
+ if (H !== u) return;
+ if (!(M != null && M.ok))
throw new Error(
- (F == null ? void 0 : F.error) || m("toast.failedSetIndexDirectory", "Failed to set index directory")
+ (M == null ? void 0 : M.error) || m("toast.failedSetIndexDirectory", "Failed to set index directory")
);
- const Y = String(((K = F == null ? void 0 : F.data) == null ? void 0 : K.index_directory) || J).trim(), U = Y !== s;
- t.paths.indexDirectory = Y, s = Y, Te(t), n("paths.indexDirectory"), U && Ce(
+ const j = String(((oe = M == null ? void 0 : M.data) == null ? void 0 : oe.index_directory) || J).trim(), O = j !== s;
+ t.paths.indexDirectory = j, s = j, Be(t), n("paths.indexDirectory"), O && Ze(
m(
"toast.indexDirectorySavedRestart",
"Index directory saved. Restart ComfyUI to apply."
@@ -6978,10 +6993,10 @@ function bC(e, t, n, i) {
}
}
);
- } catch (F) {
- if (D !== u || String((F == null ? void 0 : F.name) || "") === "AbortError" || String((F == null ? void 0 : F.code) || "") === "ABORTED") return;
- t.paths.indexDirectory = s, Te(t), n("paths.indexDirectory"), Ce(
- (F == null ? void 0 : F.message) || m("toast.failedSetIndexDirectory", "Failed to set index directory"),
+ } catch (M) {
+ if (H !== u || String((M == null ? void 0 : M.name) || "") === "AbortError" || String((M == null ? void 0 : M.code) || "") === "ABORTED") return;
+ t.paths.indexDirectory = s, Be(t), n("paths.indexDirectory"), Ze(
+ (M == null ? void 0 : M.message) || m("toast.failedSetIndexDirectory", "Failed to set index directory"),
"error"
);
}
@@ -6989,31 +7004,31 @@ function bC(e, t, n, i) {
}
});
try {
- xf().then((B) => {
- var T;
+ Lf().then((B) => {
+ var P;
if (!(B != null && B.ok)) return;
- const J = String(((T = B == null ? void 0 : B.data) == null ? void 0 : T.index_directory) || "").trim();
- t.paths = t.paths || {}, t.paths.indexDirectory !== J && (t.paths.indexDirectory = J, s = J, Te(t), n("paths.indexDirectory"));
+ const J = String(((P = B == null ? void 0 : B.data) == null ? void 0 : P.index_directory) || "").trim();
+ t.paths = t.paths || {}, t.paths.indexDirectory !== J && (t.paths.indexDirectory = J, s = J, Be(t), n("paths.indexDirectory"));
}).catch(() => {
});
} catch (B) {
- (v = console.debug) == null || v.call(console, B);
+ (L = console.debug) == null || L.call(console, B);
}
- const M = zy().map((B) => B.code), Z = ["auto", ...M];
+ const S = By().map((B) => B.code), A = ["auto", ...S];
e({
id: `${Pn}.Language`,
category: o(m("cat.advanced"), m("setting.language.name", "Language")),
name: m("setting.language.name", "Majoor: Language"),
tooltip: "Use auto to detect and follow ComfyUI language. Or choose a fixed language for Majoor only.",
type: "combo",
- defaultValue: (C = t.i18n) != null && C.followComfyLanguage ? "auto" : Oy(),
- options: Z,
+ defaultValue: (h = t.i18n) != null && h.followComfyLanguage ? "auto" : Ty(),
+ options: A,
onChange: (B) => {
if (t.i18n = t.i18n || {}, B === "auto") {
- t.i18n.followComfyLanguage = !0, Aa(!0), Cg(i), Te(t), n("language");
+ t.i18n.followComfyLanguage = !0, Wa(!0), Zg(i), Be(t), n("language");
return;
}
- M.includes(B) && (t.i18n.followComfyLanguage = !1, Aa(!1), qi(B), Te(t), n("language"));
+ S.includes(B) && (t.i18n.followComfyLanguage = !1, Wa(!1), _i(B), Be(t), n("language"));
}
}), e({
id: `${Pn}.ProbeBackend.Mode`,
@@ -7021,15 +7036,15 @@ function bC(e, t, n, i) {
name: m("setting.probe.mode.name"),
tooltip: m("setting.probe.mode.desc") + " (env: MAJOOR_MEDIA_PROBE_BACKEND)",
type: "combo",
- defaultValue: ((S = t.probeBackend) == null ? void 0 : S.mode) || Un.probeBackend.mode,
+ defaultValue: ((G = t.probeBackend) == null ? void 0 : G.mode) || Un.probeBackend.mode,
options: ["auto", "exiftool", "ffprobe", "both"],
onChange: (B) => {
- const J = Ts(
+ const J = Us(
B,
["auto", "exiftool", "ffprobe", "both"],
Un.probeBackend.mode
);
- t.probeBackend = t.probeBackend || {}, t.probeBackend.mode = J, Te(t), At(t), n("probeBackend.mode"), df(J).catch(() => {
+ t.probeBackend = t.probeBackend || {}, t.probeBackend.mode = J, Be(t), At(t), n("probeBackend.mode"), gf(J).catch(() => {
});
}
}), e({
@@ -7040,13 +7055,13 @@ function bC(e, t, n, i) {
type: "boolean",
defaultValue: ((W = t.metadataFallback) == null ? void 0 : W.image) ?? Un.metadataFallback.image,
onChange: async (B) => {
- var D, Q;
- const J = !!B, T = !!(((D = t.metadataFallback) == null ? void 0 : D.image) ?? Un.metadataFallback.image);
- t.metadataFallback = t.metadataFallback || {}, t.metadataFallback.image = J, Te(t), n("metadataFallback.image");
+ var H, $;
+ const J = !!B, P = !!(((H = t.metadataFallback) == null ? void 0 : H.image) ?? Un.metadataFallback.image);
+ t.metadataFallback = t.metadataFallback || {}, t.metadataFallback.image = J, Be(t), n("metadataFallback.image");
try {
- const E = await Hd({
+ const E = await Pd({
image: J,
- media: ((Q = t.metadataFallback) == null ? void 0 : Q.media) ?? Un.metadataFallback.media
+ media: (($ = t.metadataFallback) == null ? void 0 : $.media) ?? Un.metadataFallback.media
});
if (!(E != null && E.ok))
throw new Error(
@@ -7056,7 +7071,7 @@ function bC(e, t, n, i) {
)
);
} catch (E) {
- t.metadataFallback.image = T, Te(t), n("metadataFallback.image"), Ce(
+ t.metadataFallback.image = P, Be(t), n("metadataFallback.image"), Ze(
(E == null ? void 0 : E.message) || m(
"toast.failedUpdateMetadataFallback",
"Failed to update metadata fallback settings"
@@ -7073,12 +7088,12 @@ function bC(e, t, n, i) {
type: "boolean",
defaultValue: ((y = t.metadataFallback) == null ? void 0 : y.media) ?? Un.metadataFallback.media,
onChange: async (B) => {
- var D, Q;
- const J = !!B, T = !!(((D = t.metadataFallback) == null ? void 0 : D.media) ?? Un.metadataFallback.media);
- t.metadataFallback = t.metadataFallback || {}, t.metadataFallback.media = J, Te(t), n("metadataFallback.media");
+ var H, $;
+ const J = !!B, P = !!(((H = t.metadataFallback) == null ? void 0 : H.media) ?? Un.metadataFallback.media);
+ t.metadataFallback = t.metadataFallback || {}, t.metadataFallback.media = J, Be(t), n("metadataFallback.media");
try {
- const E = await Hd({
- image: ((Q = t.metadataFallback) == null ? void 0 : Q.image) ?? Un.metadataFallback.image,
+ const E = await Pd({
+ image: (($ = t.metadataFallback) == null ? void 0 : $.image) ?? Un.metadataFallback.image,
media: J
});
if (!(E != null && E.ok))
@@ -7089,7 +7104,7 @@ function bC(e, t, n, i) {
)
);
} catch (E) {
- t.metadataFallback.media = T, Te(t), n("metadataFallback.media"), Ce(
+ t.metadataFallback.media = P, Be(t), n("metadataFallback.media"), Ze(
(E == null ? void 0 : E.message) || m(
"toast.failedUpdateMetadataFallback",
"Failed to update metadata fallback settings"
@@ -7100,17 +7115,17 @@ function bC(e, t, n, i) {
}
});
try {
- uf().then((B) => {
+ If().then((B) => {
var E;
if (!(B != null && B.ok) || !((E = B == null ? void 0 : B.data) != null && E.prefs)) return;
- const J = B.data.prefs || {}, T = !!(J.image ?? Un.metadataFallback.image), D = !!(J.media ?? Un.metadataFallback.media);
+ const J = B.data.prefs || {}, P = !!(J.image ?? Un.metadataFallback.image), H = !!(J.media ?? Un.metadataFallback.media);
t.metadataFallback = t.metadataFallback || {};
- let Q = !1;
- t.metadataFallback.image !== T && (t.metadataFallback.image = T, Q = !0), t.metadataFallback.media !== D && (t.metadataFallback.media = D, Q = !0), Q && (Te(t), n("metadataFallback"));
+ let $ = !1;
+ t.metadataFallback.image !== P && (t.metadataFallback.image = P, $ = !0), t.metadataFallback.media !== H && (t.metadataFallback.media = H, $ = !0), $ && (Be(t), n("metadataFallback"));
}).catch(() => {
});
} catch (B) {
- (k = console.debug) == null || k.call(console, B);
+ (X = console.debug) == null || X.call(console, B);
}
e({
id: `${Pn}.Db.Timeout`,
@@ -7118,13 +7133,13 @@ function bC(e, t, n, i) {
name: "DB Timeout (ms)",
tooltip: "Client-side DB timeout preference (stored locally).",
type: "number",
- defaultValue: Number(((G = t.db) == null ? void 0 : G.timeoutMs) || 5e3),
+ defaultValue: Number(((x = t.db) == null ? void 0 : x.timeoutMs) || 5e3),
attrs: { min: 1e3, max: 3e4, step: 1e3 },
onChange: (B) => {
t.db = t.db || {}, t.db.timeoutMs = Math.max(
1e3,
Math.min(3e4, Math.round(Gn(B, 5e3)))
- ), Te(t), At(t), n("db.timeoutMs");
+ ), Be(t), At(t), n("db.timeoutMs");
}
}), e({
id: `${Pn}.Db.MaxConnections`,
@@ -7132,13 +7147,13 @@ function bC(e, t, n, i) {
name: "DB Max Connections",
tooltip: "Client-side DB max connections preference (stored locally).",
type: "number",
- defaultValue: Number(((z = t.db) == null ? void 0 : z.maxConnections) || 10),
+ defaultValue: Number(((T = t.db) == null ? void 0 : T.maxConnections) || 10),
attrs: { min: 1, max: 100, step: 1 },
onChange: (B) => {
t.db = t.db || {}, t.db.maxConnections = Math.max(
1,
Math.min(100, Math.round(Gn(B, 10)))
- ), Te(t), At(t), n("db.maxConnections");
+ ), Be(t), At(t), n("db.maxConnections");
}
}), e({
id: `${Pn}.Db.QueryTimeout`,
@@ -7146,13 +7161,13 @@ function bC(e, t, n, i) {
name: "DB Query Timeout (ms)",
tooltip: "Client-side DB query timeout preference (stored locally).",
type: "number",
- defaultValue: Number(((x = t.db) == null ? void 0 : x.queryTimeoutMs) || 1e3),
+ defaultValue: Number(((v = t.db) == null ? void 0 : v.queryTimeoutMs) || 1e3),
attrs: { min: 500, max: 1e4, step: 500 },
onChange: (B) => {
t.db = t.db || {}, t.db.queryTimeoutMs = Math.max(
500,
Math.min(1e4, Math.round(Gn(B, 1e3)))
- ), Te(t), At(t), n("db.queryTimeoutMs");
+ ), Be(t), At(t), n("db.queryTimeoutMs");
}
}), e({
id: `${Pn}.Observability.Enabled`,
@@ -7162,7 +7177,7 @@ function bC(e, t, n, i) {
type: "boolean",
defaultValue: !!((w = t.observability) != null && w.enabled),
onChange: (B) => {
- t.observability = t.observability || {}, t.observability.enabled = !!B, Te(t), At(t), n("observability.enabled");
+ t.observability = t.observability || {}, t.observability.enabled = !!B, Be(t), At(t), n("observability.enabled");
}
}), e({
id: `${Pn}.Observability.VerboseErrors`,
@@ -7170,9 +7185,9 @@ function bC(e, t, n, i) {
name: "Verbose error logging",
tooltip: "Show detailed error messages in toasts and console. Useful for debugging.",
type: "boolean",
- defaultValue: !!((X = t.observability) != null && X.verboseErrors),
+ defaultValue: !!((R = t.observability) != null && R.verboseErrors),
onChange: (B) => {
- t.observability = t.observability || {}, t.observability.verboseErrors = !!B, Te(t), At(t), n("observability.verboseErrors");
+ t.observability = t.observability || {}, t.observability.verboseErrors = !!B, Be(t), At(t), n("observability.verboseErrors");
}
}), e({
id: `${Pn}.Observability.VerboseRouteRegistrationLogs`,
@@ -7180,26 +7195,26 @@ function bC(e, t, n, i) {
name: "Majoor: Verbose route registration logs",
tooltip: "When disabled, Majoor prints a compact startup summary instead of listing every registered API route. Takes effect on the next backend restart.",
type: "boolean",
- defaultValue: !!(((V = t.observability) == null ? void 0 : V.verboseRouteRegistrationLogs) ?? ((R = Un.observability) == null ? void 0 : R.verboseRouteRegistrationLogs) ?? !1),
+ defaultValue: !!(((Y = t.observability) == null ? void 0 : Y.verboseRouteRegistrationLogs) ?? ((F = Un.observability) == null ? void 0 : F.verboseRouteRegistrationLogs) ?? !1),
onChange: async (B) => {
- var D, Q;
- const J = !!B, T = !!(((D = t.observability) == null ? void 0 : D.verboseRouteRegistrationLogs) ?? ((Q = Un.observability) == null ? void 0 : Q.verboseRouteRegistrationLogs) ?? !1);
- t.observability = t.observability || {}, t.observability.verboseRouteRegistrationLogs = J, Te(t), n("observability.verboseRouteRegistrationLogs");
+ var H, $;
+ const J = !!B, P = !!(((H = t.observability) == null ? void 0 : H.verboseRouteRegistrationLogs) ?? (($ = Un.observability) == null ? void 0 : $.verboseRouteRegistrationLogs) ?? !1);
+ t.observability = t.observability || {}, t.observability.verboseRouteRegistrationLogs = J, Be(t), n("observability.verboseRouteRegistrationLogs");
try {
- const E = await Zf(J);
+ const E = await wf(J);
if (!(E != null && E.ok))
throw new Error((E == null ? void 0 : E.error) || "Failed to update route logging settings");
} catch (E) {
- t.observability.verboseRouteRegistrationLogs = T, Te(t), n("observability.verboseRouteRegistrationLogs"), Ce((E == null ? void 0 : E.message) || "Failed to update route logging settings", "error");
+ t.observability.verboseRouteRegistrationLogs = P, Be(t), n("observability.verboseRouteRegistrationLogs"), Ze((E == null ? void 0 : E.message) || "Failed to update route logging settings", "error");
}
}
}), (async () => {
- var B, J, T;
+ var B, J, P;
try {
- const D = await Cf(), Q = !!((J = (B = D == null ? void 0 : D.data) == null ? void 0 : B.prefs) != null && J.enabled);
- t.observability = t.observability || {}, t.observability.verboseRouteRegistrationLogs !== Q && (t.observability.verboseRouteRegistrationLogs = Q, Te(t), n("observability.verboseRouteRegistrationLogs"));
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ const H = await Wf(), $ = !!((J = (B = H == null ? void 0 : H.data) == null ? void 0 : B.prefs) != null && J.enabled);
+ t.observability = t.observability || {}, t.observability.verboseRouteRegistrationLogs !== $ && (t.observability.verboseRouteRegistrationLogs = $, Be(t), n("observability.verboseRouteRegistrationLogs"));
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
})(), e({
id: `${Pn}.Observability.VerboseStartupLogs`,
@@ -7207,62 +7222,62 @@ function bC(e, t, n, i) {
name: "Majoor: Verbose startup logs",
tooltip: "When disabled, Majoor suppresses most informational bootstrap logs during backend startup while keeping warnings and errors. Takes effect on the next backend restart.",
type: "boolean",
- defaultValue: !!(((j = t.observability) == null ? void 0 : j.verboseStartupLogs) ?? ((L = Un.observability) == null ? void 0 : L.verboseStartupLogs) ?? !1),
+ defaultValue: !!(((N = t.observability) == null ? void 0 : N.verboseStartupLogs) ?? ((V = Un.observability) == null ? void 0 : V.verboseStartupLogs) ?? !1),
onChange: async (B) => {
- var D, Q;
- const J = !!B, T = !!(((D = t.observability) == null ? void 0 : D.verboseStartupLogs) ?? ((Q = Un.observability) == null ? void 0 : Q.verboseStartupLogs) ?? !1);
- t.observability = t.observability || {}, t.observability.verboseStartupLogs = J, Te(t), n("observability.verboseStartupLogs");
+ var H, $;
+ const J = !!B, P = !!(((H = t.observability) == null ? void 0 : H.verboseStartupLogs) ?? (($ = Un.observability) == null ? void 0 : $.verboseStartupLogs) ?? !1);
+ t.observability = t.observability || {}, t.observability.verboseStartupLogs = J, Be(t), n("observability.verboseStartupLogs");
try {
- const E = await Wf(J);
+ const E = await Sf(J);
if (!(E != null && E.ok))
throw new Error((E == null ? void 0 : E.error) || "Failed to update startup logging settings");
} catch (E) {
- t.observability.verboseStartupLogs = T, Te(t), n("observability.verboseStartupLogs"), Ce((E == null ? void 0 : E.message) || "Failed to update startup logging settings", "error");
+ t.observability.verboseStartupLogs = P, Be(t), n("observability.verboseStartupLogs"), Ze((E == null ? void 0 : E.message) || "Failed to update startup logging settings", "error");
}
}
}), (async () => {
- var B, J, T;
+ var B, J, P;
try {
- const D = await Af(), Q = !!((J = (B = D == null ? void 0 : D.data) == null ? void 0 : B.prefs) != null && J.enabled);
- t.observability = t.observability || {}, t.observability.verboseStartupLogs !== Q && (t.observability.verboseStartupLogs = Q, Te(t), n("observability.verboseStartupLogs"));
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ const H = await Mf(), $ = !!((J = (B = H == null ? void 0 : H.data) == null ? void 0 : B.prefs) != null && J.enabled);
+ t.observability = t.observability || {}, t.observability.verboseStartupLogs !== $ && (t.observability.verboseStartupLogs = $, Be(t), n("observability.verboseStartupLogs"));
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
})();
{
const B = "HuggingFace Token";
- let J = "", T = null, D = 0, Q = !!((N = t.ai) != null && N.huggingFaceTokenVisible);
+ let J = "", P = null, H = 0, $ = !!((k = t.ai) != null && k.huggingFaceTokenVisible);
const E = () => {
- var F, Y;
+ var M, j;
try {
- const U = Array.from(
+ const O = Array.from(
document.querySelectorAll('input[data-mjr-hf-token="1"]')
);
- for (const P of U)
+ for (const D of O)
try {
- P.type = Q ? "text" : "password";
- } catch (ee) {
- (F = console.debug) == null || F.call(console, ee);
+ D.type = $ ? "text" : "password";
+ } catch (q) {
+ (M = console.debug) == null || M.call(console, q);
}
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
- }, K = (F) => {
- var Y, U;
+ }, oe = (M) => {
+ var j, O;
try {
- const P = String(F || "").trim();
- if (!P) return;
- const ee = Array.from(
+ const D = String(M || "").trim();
+ if (!D) return;
+ const q = Array.from(
document.querySelectorAll('input[data-mjr-hf-token="1"]')
);
- for (const oe of ee)
+ for (const ee of q)
try {
- oe.placeholder = P;
+ ee.placeholder = D;
} catch (ce) {
- (Y = console.debug) == null || Y.call(console, ce);
+ (j = console.debug) == null || j.call(console, ce);
}
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
};
e({
@@ -7271,10 +7286,10 @@ function bC(e, t, n, i) {
name: "Show HuggingFace token",
tooltip: "Show or hide the HuggingFace token while editing.",
type: "boolean",
- defaultValue: Q,
- onChange: (F) => {
- const Y = !!F;
- Q = Y, t.ai = t.ai || {}, t.ai.huggingFaceTokenVisible = Y, Te(t), n("ai.huggingFaceTokenVisible"), setTimeout(E, 0);
+ defaultValue: $,
+ onChange: (M) => {
+ const j = !!M;
+ $ = j, t.ai = t.ai || {}, t.ai.huggingFaceTokenVisible = j, Be(t), n("ai.huggingFaceTokenVisible"), setTimeout(E, 0);
}
}), e({
id: `${Pn}.AI.HuggingFaceToken`,
@@ -7290,45 +7305,45 @@ function bC(e, t, n, i) {
defaultValue: "",
attrs: {
placeholder: "Paste HuggingFace token (hf_...)",
- type: Q ? "text" : "password",
+ type: $ ? "text" : "password",
autocomplete: "new-password",
name: "mjr_huggingface_token",
"data-mjr-hf-token": "1"
},
- onChange: (F) => {
- var U;
- const Y = String(F || "").trim();
- if (Y !== J) {
+ onChange: (M) => {
+ var O;
+ const j = String(M || "").trim();
+ if (j !== J) {
try {
- T && (clearTimeout(T), T = null);
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ P && (clearTimeout(P), P = null);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
- T = setTimeout(async () => {
- T = null;
- const P = ++D;
+ P = setTimeout(async () => {
+ P = null;
+ const D = ++H;
try {
- const ee = await yf(Y);
- if (P !== D) return;
- if (!(ee != null && ee.ok))
- throw new Error((ee == null ? void 0 : ee.error) || "Failed to update HuggingFace token");
- J = Y, n("ai.huggingFaceToken"), Y ? Ce("HuggingFace token saved", "success") : Ce("HuggingFace token cleared", "success", void 0, {
+ const q = await Cf(j);
+ if (D !== H) return;
+ if (!(q != null && q.ok))
+ throw new Error((q == null ? void 0 : q.error) || "Failed to update HuggingFace token");
+ J = j, n("ai.huggingFaceToken"), j ? Ze("HuggingFace token saved", "success") : Ze("HuggingFace token cleared", "success", void 0, {
noHistory: !0
});
- } catch (ee) {
- if (P !== D) return;
- Ce((ee == null ? void 0 : ee.message) || "Failed to update HuggingFace token", "error");
+ } catch (q) {
+ if (D !== H) return;
+ Ze((q == null ? void 0 : q.message) || "Failed to update HuggingFace token", "error");
}
}, 900);
}
}
}), setTimeout(E, 0), (async () => {
- var F, Y;
+ var M, j;
try {
- const U = await pf(), P = ((F = U == null ? void 0 : U.data) == null ? void 0 : F.prefs) || {}, ee = !!(P != null && P.has_token), oe = String((P == null ? void 0 : P.token_hint) || "").trim(), ce = ee ? `Configured ${oe || "(saved)"}` : "Paste HuggingFace token (hf_...)";
- K(ce);
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ const O = await hf(), D = ((M = O == null ? void 0 : O.data) == null ? void 0 : M.prefs) || {}, q = !!(D != null && D.has_token), ee = String((D == null ? void 0 : D.token_hint) || "").trim(), ce = q ? `Configured ${ee || "(saved)"}` : "Paste HuggingFace token (hf_...)";
+ oe(ce);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
})(), e({
id: `${Pn}.AI.VerboseLogs`,
@@ -7336,26 +7351,26 @@ function bC(e, t, n, i) {
name: "Majoor: Verbose AI logs",
tooltip: "Enable detailed HuggingFace/SigLIP2/X-CLIP logs and progress bars during model download/loading.",
type: "boolean",
- defaultValue: !!(((q = t.ai) == null ? void 0 : q.verboseAiLogs) ?? ((O = Un.ai) == null ? void 0 : O.verboseAiLogs) ?? !1),
- onChange: async (F) => {
- var P, ee;
- const Y = !!F, U = !!(((P = t.ai) == null ? void 0 : P.verboseAiLogs) ?? ((ee = Un.ai) == null ? void 0 : ee.verboseAiLogs) ?? !1);
- t.ai = t.ai || {}, t.ai.verboseAiLogs = Y, Te(t), n("ai.verboseAiLogs");
+ defaultValue: !!(((K = t.ai) == null ? void 0 : K.verboseAiLogs) ?? ((z = Un.ai) == null ? void 0 : z.verboseAiLogs) ?? !1),
+ onChange: async (M) => {
+ var D, q;
+ const j = !!M, O = !!(((D = t.ai) == null ? void 0 : D.verboseAiLogs) ?? ((q = Un.ai) == null ? void 0 : q.verboseAiLogs) ?? !1);
+ t.ai = t.ai || {}, t.ai.verboseAiLogs = j, Be(t), n("ai.verboseAiLogs");
try {
- const oe = await hf(Y);
- if (!(oe != null && oe.ok))
- throw new Error((oe == null ? void 0 : oe.error) || "Failed to update AI logging settings");
- } catch (oe) {
- t.ai.verboseAiLogs = U, Te(t), n("ai.verboseAiLogs"), Ce((oe == null ? void 0 : oe.message) || "Failed to update AI logging settings", "error");
+ const ee = await Af(j);
+ if (!(ee != null && ee.ok))
+ throw new Error((ee == null ? void 0 : ee.error) || "Failed to update AI logging settings");
+ } catch (ee) {
+ t.ai.verboseAiLogs = O, Be(t), n("ai.verboseAiLogs"), Ze((ee == null ? void 0 : ee.message) || "Failed to update AI logging settings", "error");
}
}
}), (async () => {
- var F, Y, U;
+ var M, j, O;
try {
- const P = await ff(), ee = !!((Y = (F = P == null ? void 0 : P.data) == null ? void 0 : F.prefs) != null && Y.enabled);
- t.ai = t.ai || {}, t.ai.verboseAiLogs !== ee && (t.ai.verboseAiLogs = ee, Te(t), n("ai.verboseAiLogs"));
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ const D = await Zf(), q = !!((j = (M = D == null ? void 0 : D.data) == null ? void 0 : M.prefs) != null && j.enabled);
+ t.ai = t.ai || {}, t.ai.verboseAiLogs !== q && (t.ai.verboseAiLogs = q, Be(t), n("ai.verboseAiLogs"));
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
})();
}
@@ -7367,16 +7382,16 @@ function bC(e, t, n, i) {
type: "text",
defaultValue: "Loading vector status..."
}), (async () => {
- var B, J, T, D, Q;
+ var B, J, P, H, $;
try {
- const E = await Ga();
- E != null && E.ok ? (T = console.debug) == null || T.call(
+ const E = await xa();
+ E != null && E.ok ? (P = console.debug) == null || P.call(
console,
"[Majoor] Vector status:",
`${((B = E.data) == null ? void 0 : B.total) || 0} assets indexed | Model: ${((J = E.data) == null ? void 0 : J.model) || "N/A"}`
- ) : (D = console.debug) == null || D.call(console, "[Majoor] Vector status unavailable");
+ ) : (H = console.debug) == null || H.call(console, "[Majoor] Vector status unavailable");
} catch (E) {
- (Q = console.debug) == null || Q.call(console, "[Majoor] Vector status fetch failed", E);
+ ($ = console.debug) == null || $.call(console, "[Majoor] Vector status fetch failed", E);
}
})(), e({
id: `${Pn}.AI.VectorBackfillAction`,
@@ -7396,7 +7411,7 @@ function bC(e, t, n, i) {
defaultValue: "Idle",
options: ["Idle", "Run backfill now"],
onChange: async (B) => {
- var T, D;
+ var P, H;
if (String(B || "") !== "Run backfill now") return;
const J = {
history: {
@@ -7408,7 +7423,7 @@ function bC(e, t, n, i) {
}
};
try {
- Ce(
+ Ze(
m(
"toast.vectorBackfillStarting",
"Starting vector backfill... This may take a while."
@@ -7423,41 +7438,41 @@ function bC(e, t, n, i) {
}
}
);
- const Q = await Og(64, {
+ const $ = await zg(64, {
onProgress: (E) => {
- const K = String((E == null ? void 0 : E.status) || "running").toLowerCase() || "running", F = (E == null ? void 0 : E.progress) || (E == null ? void 0 : E.result) || {}, Y = Number((F == null ? void 0 : F.candidates) ?? (F == null ? void 0 : F.processed) ?? 0), U = Number((F == null ? void 0 : F.indexed) ?? 0), P = Number((F == null ? void 0 : F.skipped) ?? 0), ee = Number((F == null ? void 0 : F.errors) ?? 0), oe = Math.max(Y, U + P + ee), ce = oe > 0 ? Math.round((U + P + ee) / oe * 100) : null, pe = K === "queued" ? "Vector backfill queued" : `Candidates ${Y}, indexed ${U}, skipped ${P}, errors ${ee}`;
- $r(
- { summary: "Vector Backfill", detail: pe },
- K === "failed" ? "error" : K === "succeeded" ? "success" : "info",
+ const oe = String((E == null ? void 0 : E.status) || "running").toLowerCase() || "running", M = (E == null ? void 0 : E.progress) || (E == null ? void 0 : E.result) || {}, j = Number((M == null ? void 0 : M.candidates) ?? (M == null ? void 0 : M.processed) ?? 0), O = Number((M == null ? void 0 : M.indexed) ?? 0), D = Number((M == null ? void 0 : M.skipped) ?? 0), q = Number((M == null ? void 0 : M.errors) ?? 0), ee = Math.max(j, O + D + q), ce = ee > 0 ? Math.round((O + D + q) / ee * 100) : null, ue = oe === "queued" ? "Vector backfill queued" : `Candidates ${j}, indexed ${O}, skipped ${D}, errors ${q}`;
+ tl(
+ { summary: "Vector Backfill", detail: ue },
+ oe === "failed" ? "error" : oe === "succeeded" ? "success" : "info",
0,
{
history: {
...J.history,
- status: K,
- detail: pe,
+ status: oe,
+ detail: ue,
progress: {
- current: U + P + ee,
- total: oe,
+ current: O + D + q,
+ total: ee,
percent: ce,
- indexed: U,
- skipped: P,
- errors: ee,
- label: K
+ indexed: O,
+ skipped: D,
+ errors: q,
+ label: oe
}
}
}
);
}
});
- if (Q != null && Q.ok) {
- const E = Q.data || {}, K = String((E == null ? void 0 : E.status) || "").toLowerCase(), F = !!(E != null && E.pending) || ["queued", "running", "pending"].includes(K), Y = (E == null ? void 0 : E.progress) || {}, U = Number((E == null ? void 0 : E.processed) ?? (Y == null ? void 0 : Y.candidates) ?? 0), P = Number((E == null ? void 0 : E.indexed) ?? (Y == null ? void 0 : Y.indexed) ?? 0), ee = Number((E == null ? void 0 : E.skipped) ?? (Y == null ? void 0 : Y.skipped) ?? 0);
- if (F) {
- const oe = String((E == null ? void 0 : E.job_id) || "").trim();
- Ce(
+ if ($ != null && $.ok) {
+ const E = $.data || {}, oe = String((E == null ? void 0 : E.status) || "").toLowerCase(), M = !!(E != null && E.pending) || ["queued", "running", "pending"].includes(oe), j = (E == null ? void 0 : E.progress) || {}, O = Number((E == null ? void 0 : E.processed) ?? (j == null ? void 0 : j.candidates) ?? 0), D = Number((E == null ? void 0 : E.indexed) ?? (j == null ? void 0 : j.indexed) ?? 0), q = Number((E == null ? void 0 : E.skipped) ?? (j == null ? void 0 : j.skipped) ?? 0);
+ if (M) {
+ const ee = String((E == null ? void 0 : E.job_id) || "").trim();
+ Ze(
m(
"toast.vectorBackfillRunning",
"Vector backfill still running in background{job}.",
- { job: oe ? ` (job ${oe.slice(0, 8)})` : "" }
+ { job: ee ? ` (job ${ee.slice(0, 8)})` : "" }
),
"info",
void 0,
@@ -7465,53 +7480,53 @@ function bC(e, t, n, i) {
history: {
...J.history,
status: "running",
- detail: `Vector backfill still running in background${oe ? ` (${oe.slice(0, 8)})` : ""}.`,
+ detail: `Vector backfill still running in background${ee ? ` (${ee.slice(0, 8)})` : ""}.`,
progress: {
- current: P + ee,
- total: Math.max(U, P + ee),
- percent: Math.max(U, P + ee) > 0 ? Math.round((P + ee) / Math.max(U, P + ee) * 100) : null,
- indexed: P,
- skipped: ee,
+ current: D + q,
+ total: Math.max(O, D + q),
+ percent: Math.max(O, D + q) > 0 ? Math.round((D + q) / Math.max(O, D + q) * 100) : null,
+ indexed: D,
+ skipped: q,
label: "running"
}
}
}
);
} else {
- const oe = m(
+ const ee = m(
"toast.vectorBackfillComplete",
"Vector backfill complete! Processed: {processed}, Indexed: {indexed}, Skipped: {skipped}",
- { processed: U, indexed: P, skipped: ee }
+ { processed: O, indexed: D, skipped: q }
);
- Ce(oe, "success", void 0, {
+ Ze(ee, "success", void 0, {
history: {
...J.history,
status: "succeeded",
- detail: `Processed ${U}, indexed ${P}, skipped ${ee}`,
+ detail: `Processed ${O}, indexed ${D}, skipped ${q}`,
progress: {
- current: U,
- total: U,
- percent: U > 0 ? 100 : null,
- indexed: P,
- skipped: ee,
+ current: O,
+ total: O,
+ percent: O > 0 ? 100 : null,
+ indexed: D,
+ skipped: q,
label: "done"
}
}
});
}
try {
- const oe = await Ga();
- oe != null && oe.ok && ((T = console.debug) == null || T.call(console, "[Majoor] Vector stats after backfill:", oe.data));
- } catch (oe) {
- (D = console.debug) == null || D.call(console, "[Majoor] Failed to refresh vector stats:", oe);
+ const ee = await xa();
+ ee != null && ee.ok && ((P = console.debug) == null || P.call(console, "[Majoor] Vector stats after backfill:", ee.data));
+ } catch (ee) {
+ (H = console.debug) == null || H.call(console, "[Majoor] Failed to refresh vector stats:", ee);
}
} else
throw new Error(
- (Q == null ? void 0 : Q.error) || m("toast.vectorBackfillFailedGeneric", "Backfill failed")
+ ($ == null ? void 0 : $.error) || m("toast.vectorBackfillFailedGeneric", "Backfill failed")
);
- } catch (Q) {
- const E = (Q == null ? void 0 : Q.message) || String(Q || m("status.unknown", "unknown"));
- Ce(
+ } catch ($) {
+ const E = ($ == null ? void 0 : $.message) || String($ || m("status.unknown", "unknown"));
+ Ze(
m("toast.vectorBackfillFailedDetail", "Vector backfill failed: {error}", {
error: E
}),
@@ -7524,17 +7539,17 @@ function bC(e, t, n, i) {
detail: E
}
}
- ), console.error("[Majoor] Vector backfill error:", Q);
+ ), console.error("[Majoor] Vector backfill error:", $);
}
}
});
}
-const gc = "Majoor", pC = "Majoor Assets Manager";
-function yC(e, t, n) {
+const Ic = "Majoor", hC = "Majoor Assets Manager";
+function CC(e, t, n) {
var o, r;
- const i = (l, a) => [pC, l, a];
+ const i = (l, a) => [hC, l, a];
e({
- id: `${gc}.AI.VectorSearchEnabled`,
+ id: `${Ic}.AI.VectorSearchEnabled`,
category: i(m("cat.search", "Search"), "AI"),
name: m("setting.ai.vector.enabled.name", "Enable AI semantic search"),
tooltip: m(
@@ -7546,24 +7561,24 @@ function yC(e, t, n) {
onChange: async (l) => {
t.ai = t.ai || {};
const a = !!(t.ai.vectorSearchEnabled ?? !0), c = !!l;
- t.ai.vectorSearchEnabled = c, Te(t), At(t), n("ai.vectorSearchEnabled");
+ t.ai.vectorSearchEnabled = c, Be(t), At(t), n("ai.vectorSearchEnabled");
try {
- const s = await gf(c);
+ const s = await pf(c);
if (!(s != null && s.ok)) {
- t.ai.vectorSearchEnabled = a, Te(t), At(t), n("ai.vectorSearchEnabled"), Ce((s == null ? void 0 : s.error) || "Failed to update AI vector search setting", "error");
+ t.ai.vectorSearchEnabled = a, Be(t), At(t), n("ai.vectorSearchEnabled"), Ze((s == null ? void 0 : s.error) || "Failed to update AI vector search setting", "error");
return;
}
- Ce(
+ Ze(
c ? "AI semantic search enabled" : "AI semantic search disabled",
"info",
2200
);
} catch (s) {
- t.ai.vectorSearchEnabled = a, Te(t), At(t), n("ai.vectorSearchEnabled"), Ce((s == null ? void 0 : s.message) || "Failed to update AI vector search setting", "error");
+ t.ai.vectorSearchEnabled = a, Be(t), At(t), n("ai.vectorSearchEnabled"), Ze((s == null ? void 0 : s.message) || "Failed to update AI vector search setting", "error");
}
}
}), e({
- id: `${gc}.Search.MaxResults`,
+ id: `${Ic}.Search.MaxResults`,
category: i(m("cat.search", "Search")),
name: m("setting.search.maxResults.name", "Max search results (client)"),
tooltip: m(
@@ -7571,19 +7586,19 @@ function yC(e, t, n) {
"Maximum number of results requested per search. The backend still enforces MAJOOR_SEARCH_MAX_LIMIT; increase that env var if you need a higher hard cap."
),
type: "number",
- defaultValue: Number(((r = t.search) == null ? void 0 : r.maxResults) || Me.SEARCH_DEFAULT_LIMIT),
- attrs: { min: 10, max: Me.MAX_PAGE_SIZE || 2e3, step: 1 },
+ defaultValue: Number(((r = t.search) == null ? void 0 : r.maxResults) || Ge.SEARCH_DEFAULT_LIMIT),
+ attrs: { min: 10, max: Ge.MAX_PAGE_SIZE || 2e3, step: 1 },
onChange: (l) => {
t.search = t.search || {}, t.search.maxResults = Math.max(
10,
Math.min(
- Me.MAX_PAGE_SIZE || 2e3,
- Number(l) || Me.SEARCH_DEFAULT_LIMIT
+ Ge.MAX_PAGE_SIZE || 2e3,
+ Number(l) || Ge.SEARCH_DEFAULT_LIMIT
)
- ), Te(t), At(t), n("search.maxResults");
+ ), Be(t), At(t), n("search.maxResults");
}
}), e({
- id: `${gc}.EnvVars.Reference`,
+ id: `${Ic}.EnvVars.Reference`,
category: i(m("cat.advanced"), "Environment variables"),
name: "Environment variables reference",
tooltip: [
@@ -7614,7 +7629,7 @@ function yC(e, t, n) {
defaultValue: "Hover for full list of environment variables"
});
}
-const Ic = "Majoor Assets Manager", fC = /^\s*Majoor:\s*/i, hC = /* @__PURE__ */ new Set([
+const bc = "Majoor Assets Manager", ZC = /^\s*Majoor:\s*/i, AC = /* @__PURE__ */ new Set([
"grid.starColor",
"grid.badgeImageColor",
"grid.badgeVideoColor",
@@ -7626,110 +7641,110 @@ const Ic = "Majoor Assets Manager", fC = /^\s*Majoor:\s*/i, hC = /* @__PURE__ */
"ui.ratingColor",
"ui.tagColor"
]);
-let mu = !1, co = null, Nr = null, gu = !1;
-function CC(e) {
+let Iu = !1, uo = null, Fr = null, bu = !1;
+function WC(e) {
var n;
if (!e || typeof e != "object") return null;
const t = { ...e };
try {
- typeof t.name == "string" && (t.name = t.name.replace(fC, "").trim());
+ typeof t.name == "string" && (t.name = t.name.replace(ZC, "").trim());
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
try {
const i = t.category;
- (!Array.isArray(i) || String(i[0] || "") !== Ic) && (t.category = [Ic]);
+ (!Array.isArray(i) || String(i[0] || "") !== bc) && (t.category = [bc]);
} catch {
- t.category = [Ic];
+ t.category = [bc];
}
return t;
}
-function $g(e, t, { initRuntime: n = !1 } = {}) {
+function eI(e, t, { initRuntime: n = !1 } = {}) {
var i;
- if (co)
- typeof t == "function" && co.onAppliedListeners.add(t), e && !co.app && (co.app = e);
+ if (uo)
+ typeof t == "function" && uo.onAppliedListeners.add(t), e && !uo.app && (uo.app = e);
else {
const o = Xn();
- o.i18n = o.i18n || {}, typeof o.i18n.followComfyLanguage != "boolean" ? (o.i18n.followComfyLanguage = !0, Aa(!0), Te(o)) : Aa(!!o.i18n.followComfyLanguage);
+ o.i18n = o.i18n || {}, typeof o.i18n.followComfyLanguage != "boolean" ? (o.i18n.followComfyLanguage = !0, Wa(!0), Be(o)) : Wa(!!o.i18n.followComfyLanguage);
const r = /* @__PURE__ */ new Set();
typeof t == "function" && r.add(t);
const l = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), c = 450, s = () => {
if (!l.size) return;
- const h = Array.from(l);
+ const Z = Array.from(l);
l.clear();
- for (const f of h)
- ii(
+ for (const f of Z)
+ oi(
"mjr-settings-changed",
{ key: f },
{ warnPrefix: "[Majoor]" }
);
}, d = () => {
if (!a.size) return;
- const h = Array.from(a);
+ const Z = Array.from(a);
a.clear();
- for (const f of h)
- ii(
+ for (const f of Z)
+ oi(
"mjr-settings-changed",
{ key: f },
{ warnPrefix: "[Majoor]" }
);
- }, u = Pc(s, 120), I = Pc(d, c), p = (h) => {
- typeof h == "string" && l.add(h), u();
- }, M = (h) => {
- typeof h == "string" && a.add(h), I();
- }, Z = () => {
- const h = Xn();
- Object.assign(o, h), At(o), p("storage");
- }, A = (h) => {
- !h || h.key !== Fi || h.newValue !== h.oldValue && Z();
+ }, u = _c(s, 120), I = _c(d, c), p = (Z) => {
+ typeof Z == "string" && l.add(Z), u();
+ }, S = (Z) => {
+ typeof Z == "string" && a.add(Z), I();
+ }, A = () => {
+ const Z = Xn();
+ Object.assign(o, Z), At(o), p("storage");
+ }, C = (Z) => {
+ !Z || Z.key !== Oi || Z.newValue !== Z.oldValue && A();
};
- if (!mu)
+ if (!Iu)
try {
- window.addEventListener("storage", A), mu = !0;
- } catch (h) {
- (i = console.debug) == null || i.call(console, h);
+ window.addEventListener("storage", C), Iu = !0;
+ } catch (Z) {
+ (i = console.debug) == null || i.call(console, Z);
}
- co = {
+ uo = {
app: e,
- notifyApplied: (h) => {
+ notifyApplied: (Z) => {
var f;
for (const b of r)
try {
- b(o, h);
- } catch (v) {
- (f = console.debug) == null || f.call(console, v);
+ b(o, Z);
+ } catch (L) {
+ (f = console.debug) == null || f.call(console, L);
}
- hC.has(String(h || "")) ? M(h) : p(h);
+ AC.has(String(Z || "")) ? S(Z) : p(Z);
},
onAppliedListeners: r,
- refreshFromStorage: Z,
+ refreshFromStorage: A,
settings: o
};
}
- if (n && !gu) {
- const o = e || co.app, r = co.settings;
- Cg(o), At(r), Fy(o), ia(), Dh(), Eh(), r != null && r.watcher && typeof r.watcher.enabled == "boolean" && wa(!!r.watcher.enabled).catch(() => {
- }), Th(), gu = !0;
+ if (n && !bu) {
+ const o = e || uo.app, r = uo.settings;
+ Zg(o), At(r), Jy(o), oa(), qh(), Ph(), r != null && r.watcher && typeof r.watcher.enabled == "boolean" && Ma(!!r.watcher.enabled).catch(() => {
+ }), Kh(), bu = !0;
}
- return co;
+ return uo;
}
-const ZC = (e, t) => $g(e, t, { initRuntime: !0 }).settings, AC = (e, t) => {
- const n = $g(e, t, { initRuntime: !1 });
- if (Nr)
- return Nr;
+const wC = (e, t) => eI(e, t, { initRuntime: !0 }).settings, MC = (e, t) => {
+ const n = eI(e, t, { initRuntime: !1 });
+ if (Fr)
+ return Fr;
const i = (o) => {
- const r = CC(o);
- r && Nr.push(r);
+ const r = WC(o);
+ r && Fr.push(r);
};
- return Nr = [], qh(i, n.settings, n.notifyApplied), tC(i, n.settings, n.notifyApplied), Qh(i, n.settings, n.notifyApplied), $h(i, n.settings, n.notifyApplied), gC(i, n.settings, n.notifyApplied), bC(i, n.settings, n.notifyApplied, e), yC(i, n.settings, n.notifyApplied), Nr;
+ return Fr = [], _h(i, n.settings, n.notifyApplied), oC(i, n.settings, n.notifyApplied), eC(i, n.settings, n.notifyApplied), nC(i, n.settings, n.notifyApplied), pC(i, n.settings, n.notifyApplied), fC(i, n.settings, n.notifyApplied, e), CC(i, n.settings, n.notifyApplied), Fr;
};
-var ng;
+var ig;
try {
const e = Xn();
- e != null && e.watcher && typeof e.watcher.enabled == "boolean" && Vg().then((t) => {
+ e != null && e.watcher && typeof e.watcher.enabled == "boolean" && kg().then((t) => {
var i;
const n = !!(t != null && t.ok) && !!((i = t == null ? void 0 : t.data) != null && i.enabled);
- typeof n == "boolean" && n !== !!e.watcher.enabled && (e.watcher.enabled = n, Te(e), ii(
+ typeof n == "boolean" && n !== !!e.watcher.enabled && (e.watcher.enabled = n, Be(e), oi(
"mjr-settings-changed",
{ key: "watcher.enabled" },
{ warnPrefix: "[Majoor]" }
@@ -7737,12 +7752,12 @@ try {
}).catch(() => {
});
} catch (e) {
- (ng = console.debug) == null || ng.call(console, e);
+ (ig = console.debug) == null || ig.call(console, e);
}
-const Ri = "mjr:asset-rating-changed", Uo = "mjr:asset-tags-changed", eI = "mjr:viewer-info-refreshed", ft = Object.freeze({
- ASSET_RATING_CHANGED: Ri,
- ASSET_TAGS_CHANGED: Uo,
- VIEWER_INFO_REFRESHED: eI,
+const Fi = "mjr:asset-rating-changed", Do = "mjr:asset-tags-changed", tI = "mjr:viewer-info-refreshed", ht = Object.freeze({
+ ASSET_RATING_CHANGED: Fi,
+ ASSET_TAGS_CHANGED: Do,
+ VIEWER_INFO_REFRESHED: tI,
SCAN_COMPLETE: "mjr-scan-complete",
ENRICHMENT_STATUS: "mjr-enrichment-status",
DB_RESTORE_STATUS: "mjr-db-restore-status",
@@ -7779,30 +7794,30 @@ const Ri = "mjr:asset-rating-changed", Uo = "mjr:asset-tags-changed", eI = "mjr:
OPEN_STACK_GROUP: "mjr:open-stack-group",
OPEN_MESSAGE_HISTORY: "mjr:open-message-history"
});
-let Ko = null;
-function tI(e) {
+let Eo = null;
+function nI(e) {
return e ? typeof (e == null ? void 0 : e.isConnected) == "boolean" ? e.isConnected : !0 : !1;
}
-function WC() {
+function SC() {
var e;
try {
const t = document.getElementById("mjr-assets-grid") || document.querySelector(".mjr-grid");
- if (tI(t)) return t;
+ if (nI(t)) return t;
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
return null;
}
-function Bs(e) {
- return Ko = e || null, Ko;
+function Ks(e) {
+ return Eo = e || null, Eo;
}
-function xa(e = null) {
- (!e || Ko === e) && (Ko = null);
+function ja(e = null) {
+ (!e || Eo === e) && (Eo = null);
}
-function wo() {
- return tI(Ko) ? Ko : (Ko = null, WC());
+function So() {
+ return nI(Eo) ? Eo : (Eo = null, SC());
}
-function Pa(e) {
+function Qa(e) {
var n, i, o;
const t = /* @__PURE__ */ new Set();
if (!e) return t;
@@ -7826,7 +7841,7 @@ function Pa(e) {
}
return t;
}
-function nI(e, t, n = "") {
+function iI(e, t, n = "") {
var r;
const i = Array.from(t || []), o = n ? String(n) : i[0] ? String(i[0]) : "";
try {
@@ -7836,7 +7851,7 @@ function nI(e, t, n = "") {
}
return i;
}
-function wC(e, t, n) {
+function GC(e, t, n) {
var o, r;
if (!e) return;
const i = t instanceof Set ? t : new Set(Array.from(t || []).map(String));
@@ -7850,13 +7865,13 @@ function wC(e, t, n) {
(r = console.debug) == null || r.call(console, l);
}
}
-function MC(e, t, { activeId: n = "" } = {}, i) {
+function xC(e, t, { activeId: n = "" } = {}, i) {
var a, c, s;
if (!e) return [];
const o = new Set(
Array.from(t || []).map(String).filter(Boolean)
- ), r = nI(e, o, n);
- wC(e, o, i);
+ ), r = iI(e, o, n);
+ GC(e, o, i);
const l = { selectedIds: r, activeId: n || r[0] || "" };
try {
(a = e.dispatchEvent) == null || a.call(
@@ -7873,55 +7888,55 @@ function MC(e, t, { activeId: n = "" } = {}, i) {
}
return r;
}
-function SC(e) {
+function jC(e) {
try {
return CSS != null && CSS.escape ? CSS.escape(String(e)) : String(e).replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
} catch {
return String(e).replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
}
-const Us = {
+const Ds = {
suspended: !1,
scope: null,
ratingHotkeysActive: !1
};
-function Wo() {
- return Us;
+function Mo() {
+ return Ds;
}
-function Zr(e) {
- Us.scope = e == null ? null : String(e);
+function wr(e) {
+ Ds.scope = e == null ? null : String(e);
}
-function Iu(e) {
- Us.ratingHotkeysActive = !!e;
+function pu(e) {
+ Ds.ratingHotkeysActive = !!e;
}
-let Ar = null, Il = null;
-const iI = ".mjr-viewer-overlay", GC = ".mjr-mfv";
-function oI(e) {
+let Mr = null, bl = null;
+const oI = ".mjr-viewer-overlay", vC = ".mjr-mfv";
+function rI(e) {
return !!e && typeof e.appendChild == "function";
}
-function Ks() {
+function Es() {
return typeof document > "u" ? null : (document == null ? void 0 : document.body) || null;
}
-function xC() {
+function LC() {
return typeof document > "u" ? null : (document == null ? void 0 : document.body) || (document == null ? void 0 : document.documentElement) || null;
}
-function rI(e) {
- return oI(e) ? e === Ks() ? !0 : typeof (e == null ? void 0 : e.isConnected) == "boolean" ? e.isConnected : !0 : !1;
-}
function lI(e) {
- return oI(e) ? e : null;
-}
-function Qa(e) {
- return rI(e) ? e : Ks();
+ return rI(e) ? e === Es() ? !0 : typeof (e == null ? void 0 : e.isConnected) == "boolean" ? e.isConnected : !0 : !1;
}
function aI(e) {
- const t = xC();
- return rI(t) ? t : Qa(e);
+ return rI(e) ? e : null;
}
-function cI(e, t, n = Qa) {
+function _a(e) {
+ return lI(e) ? e : Es();
+}
+function cI(e) {
+ const t = LC();
+ return lI(t) ? t : _a(e);
+}
+function sI(e, t, n = _a) {
var r, l;
const i = [], o = /* @__PURE__ */ new Set();
- for (const a of [n(t), Ks(), t]) {
+ for (const a of [n(t), Es(), t]) {
if (!a || o.has(a)) continue;
o.add(a);
let c = [];
@@ -7935,11 +7950,11 @@ function cI(e, t, n = Qa) {
}
return i;
}
-function sI(e, t, n = Qa) {
+function dI(e, t, n = _a) {
var r;
const i = n(t);
if (!i) return;
- const o = cI(e, t, n);
+ const o = sI(e, t, n);
for (const l of o)
if (l && l.parentNode !== i)
try {
@@ -7948,21 +7963,21 @@ function sI(e, t, n = Qa) {
(r = console.debug) == null || r.call(console, a);
}
}
-function jC(e) {
- return Ar = lI(e), sI(iI, Ar), () => vC(e);
-}
-function vC(e) {
- (!e || Ar === e) && (Ar = null);
-}
-function LC(e) {
- return Il = lI(e), sI(GC, Il, aI), () => YC(e);
+function VC(e) {
+ return Mr = aI(e), dI(oI, Mr), () => YC(e);
}
function YC(e) {
- (!e || Il === e) && (Il = null);
+ (!e || Mr === e) && (Mr = null);
}
-function VC(e) {
+function kC(e) {
+ return bl = aI(e), dI(vC, bl, cI), () => XC(e);
+}
+function XC(e) {
+ (!e || bl === e) && (bl = null);
+}
+function NC(e) {
var n, i;
- const t = Qa(Ar);
+ const t = _a(Mr);
try {
(n = t == null ? void 0 : t.appendChild) == null || n.call(t, e);
} catch (o) {
@@ -7970,9 +7985,9 @@ function VC(e) {
}
return t;
}
-function bu(e) {
+function yu(e) {
var n, i;
- const t = aI(Il);
+ const t = cI(bl);
try {
(n = t == null ? void 0 : t.appendChild) == null || n.call(t, e);
} catch (o) {
@@ -7980,63 +7995,63 @@ function bu(e) {
}
return t;
}
-function kC() {
- return cI(iI, Ar);
-}
-let Xl = null, bc = null;
-async function XC() {
- return Xl || (bc || (bc = import("./FloatingViewer-DwUuqgW7.js").then((e) => (Xl = e.FloatingViewer, Xl))), bc);
-}
-let NC = null;
-const Hn = Object.freeze({ SIMPLE: "simple", AB: "ab", SIDE: "side", GRID: "grid" });
-let rt = null;
-function Ds() {
- return ye.MFV_LIVE_DEFAULT !== !1;
-}
-function Es() {
- return ye.MFV_PREVIEW_DEFAULT !== !1;
-}
-let fo = Ds(), Pi = Es(), Qc = !1, Ro = null, _c = 0;
function RC() {
- fo = Ds(), Pi = Es(), rt == null || rt.setLiveActive(fo), rt == null || rt.setPreviewActive(Pi);
+ return sI(oI, Mr);
}
-async function Rr() {
- var e;
- if (!rt) {
- const t = await XC();
- rt || (rt = new t({
- controller: {
- close: () => On.close(),
- toggle: () => On.toggle(),
- toggleLive: () => On.toggleLive(),
- togglePreview: () => On.togglePreview(),
- toggleNodeStream: () => On.toggleNodeStream(),
- popOut: () => On.popOut(),
- onModeChanged: (n) => {
- rt != null && rt.isVisible && n !== Hn.SIMPLE && oa();
- },
- handleForwardedKeydown: (n) => Ps(n)
- }
- }), bu(rt.render()));
- }
- try {
- const t = (rt == null ? void 0 : rt.element) || null;
- (t == null ? void 0 : t.isConnected) === !1 && bu(t);
- } catch (t) {
- (e = console.debug) == null || e.call(console, t);
- }
- return rt;
+let Nl = null, pc = null;
+async function FC() {
+ return Nl || (pc || (pc = import("./FloatingViewer-96M53tBE.js").then((e) => (Nl = e.FloatingViewer, Nl))), pc);
}
+let OC = null;
+const Hn = Object.freeze({ SIMPLE: "simple", AB: "ab", SIDE: "side", GRID: "grid" });
+let at = null;
function Hs() {
- var e;
- try {
- Ro == null || Ro.abort();
- } catch (t) {
- (e = console.debug) == null || e.call(console, t);
- }
- Ro = null;
+ return fe.MFV_LIVE_DEFAULT !== !1;
}
function qs() {
+ return fe.MFV_PREVIEW_DEFAULT !== !1;
+}
+let Co = Hs(), $i = qs(), $c = !1, Oo = null, es = 0;
+function zC() {
+ Co = Hs(), $i = qs(), at == null || at.setLiveActive(Co), at == null || at.setPreviewActive($i);
+}
+async function Or() {
+ var e;
+ if (!at) {
+ const t = await FC();
+ at || (at = new t({
+ controller: {
+ close: () => zn.close(),
+ toggle: () => zn.toggle(),
+ toggleLive: () => zn.toggleLive(),
+ togglePreview: () => zn.togglePreview(),
+ toggleNodeStream: () => zn.toggleNodeStream(),
+ popOut: () => zn.popOut(),
+ onModeChanged: (n) => {
+ at != null && at.isVisible && n !== Hn.SIMPLE && ra();
+ },
+ handleForwardedKeydown: (n) => _s(n)
+ }
+ }), yu(at.render()));
+ }
+ try {
+ const t = (at == null ? void 0 : at.element) || null;
+ (t == null ? void 0 : t.isConnected) === !1 && yu(t);
+ } catch (t) {
+ (e = console.debug) == null || e.call(console, t);
+ }
+ return at;
+}
+function Ps() {
+ var e;
+ try {
+ Oo == null || Oo.abort();
+ } catch (t) {
+ (e = console.debug) == null || e.call(console, t);
+ }
+ Oo = null;
+}
+function Qs() {
var e;
try {
const t = window.__MJR_LAST_SELECTION_GRID__;
@@ -8044,34 +8059,34 @@ function qs() {
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
- return wo();
+ return So();
}
-function FC() {
+function JC() {
var e, t;
- if (rt) {
+ if (at) {
try {
- (e = rt.dispose) == null || e.call(rt);
+ (e = at.dispose) == null || e.call(at);
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
- rt = null;
+ at = null;
}
}
-function rr(e) {
+function ar(e) {
window.dispatchEvent(
- new CustomEvent(ft.MFV_VISIBILITY_CHANGED, {
+ new CustomEvent(ht.MFV_VISIBILITY_CHANGED, {
detail: { visible: !!e }
})
);
}
-function Nl(e) {
+function Rl(e) {
var t;
- e && (e.setLiveActive(fo), e.setPreviewActive(Pi), (t = e.setNodeStreamActive) == null || t.call(e, !1));
+ e && (e.setLiveActive(Co), e.setPreviewActive($i), (t = e.setNodeStreamActive) == null || t.call(e, !1));
}
-function OC(e) {
+function TC(e) {
var t, n;
try {
- const i = qs();
+ const i = Qs();
if (!i) return null;
const o = Array.from(i.querySelectorAll("[data-mjr-asset-id]")), r = o.findIndex((c) => c.dataset.mjrAssetId === String(e));
if (r < 0) return null;
@@ -8081,173 +8096,173 @@ function OC(e) {
return (n = console.debug) == null || n.call(console, "[MFV] _findAdjacentGridId error", i), null;
}
}
-async function $c(e) {
- if (!e.length || !rt) return;
- Hs();
- const t = ++_c, n = typeof AbortController < "u" ? new AbortController() : null;
- Ro = n;
+async function ts(e) {
+ if (!e.length || !at) return;
+ Ps();
+ const t = ++es, n = typeof AbortController < "u" ? new AbortController() : null;
+ Oo = n;
try {
- const i = rt.getPinnedSlots(), o = i.size > 0, r = rt._mode, l = r === Hn.GRID, a = r === Hn.AB || r === Hn.SIDE, c = l ? 4 : 2;
+ const i = at.getPinnedSlots(), o = i.size > 0, r = at._mode, l = r === Hn.GRID, a = r === Hn.AB || r === Hn.SIDE, c = l ? 4 : 2;
let s = e.slice(0, c);
if (o && (a || l)) {
const I = c - i.size;
s = s.slice(0, Math.max(1, I));
} else if (s.length === 1 && a) {
- const I = OC(s[0]);
+ const I = TC(s[0]);
I && (s = [s[0], I]);
}
- const d = await zs(s, n ? { signal: n.signal } : {});
- if (n != null && n.signal.aborted || _c !== t || !(d != null && d.ok) || !Array.isArray(d.data) || !d.data.length || !rt) return;
+ const d = await Ts(s, n ? { signal: n.signal } : {});
+ if (n != null && n.signal.aborted || es !== t || !(d != null && d.ok) || !Array.isArray(d.data) || !d.data.length || !at) return;
const u = d.data;
if (l) {
if (o) {
const I = {
- A: rt._mediaA,
- B: rt._mediaB,
- C: rt._mediaC,
- D: rt._mediaD
- }, p = ["A", "B", "C", "D"].filter((Z) => !i.has(Z));
- let M = 0;
- for (const Z of p)
- M < u.length && (I[Z] = u[M++]);
- rt.loadMediaQuad(I.A, I.B, I.C, I.D);
- } else u.length >= 3 ? rt.loadMediaQuad(u[0], u[1], u[2], u[3] || null) : u.length >= 2 ? rt.loadMediaPair(u[0], u[1]) : rt.loadMediaA(u[0], { autoMode: !0 });
+ A: at._mediaA,
+ B: at._mediaB,
+ C: at._mediaC,
+ D: at._mediaD
+ }, p = ["A", "B", "C", "D"].filter((A) => !i.has(A));
+ let S = 0;
+ for (const A of p)
+ S < u.length && (I[A] = u[S++]);
+ at.loadMediaQuad(I.A, I.B, I.C, I.D);
+ } else u.length >= 3 ? at.loadMediaQuad(u[0], u[1], u[2], u[3] || null) : u.length >= 2 ? at.loadMediaPair(u[0], u[1]) : at.loadMediaA(u[0], { autoMode: !0 });
return;
}
- if (i.has("A") && i.has("B") && rt._mediaA && rt._mediaB)
+ if (i.has("A") && i.has("B") && at._mediaA && at._mediaB)
return;
- i.has("A") && rt._mediaA ? rt.loadMediaPair(rt._mediaA, u[0]) : i.has("B") && rt._mediaB ? rt.loadMediaPair(u[0], rt._mediaB) : s.length >= 2 && u.length >= 2 ? rt.loadMediaPair(u[0], u[1]) : rt.loadMediaA(u[0], { autoMode: !0 });
+ i.has("A") && at._mediaA ? at.loadMediaPair(at._mediaA, u[0]) : i.has("B") && at._mediaB ? at.loadMediaPair(u[0], at._mediaB) : s.length >= 2 && u.length >= 2 ? at.loadMediaPair(u[0], u[1]) : at.loadMediaA(u[0], { autoMode: !0 });
} catch (i) {
- (i == null ? void 0 : i.name) !== "AbortError" && li(i, "floatingViewerManager._loadFromIds");
+ (i == null ? void 0 : i.name) !== "AbortError" && ai(i, "floatingViewerManager._loadFromIds");
} finally {
- Ro === n && (Ro = null);
+ Oo === n && (Oo = null);
}
}
-function oa() {
+function ra() {
var e;
try {
- const t = qs();
+ const t = Qs();
if (!t) return;
- const n = Pa(t);
+ const n = Qa(t);
if (!n.size) return;
- $c(Array.from(n));
+ ts(Array.from(n));
} catch (t) {
(e = console.debug) == null || e.call(console, "[MFV] Error reading current grid selection", t);
}
}
-function dI(e) {
+function uI(e) {
var n, i;
- if (!(rt != null && rt.isVisible)) return;
+ if (!(at != null && at.isVisible)) return;
const t = Array.isArray((n = e == null ? void 0 : e.detail) == null ? void 0 : n.selectedIds) ? e.detail.selectedIds.map(String).filter(Boolean) : [];
if (t.length) {
- $c(t);
+ ts(t);
return;
}
try {
- const o = qs();
+ const o = Qs();
if (!o) return;
- const r = Array.from(Pa(o)).map(String).filter(Boolean);
+ const r = Array.from(Qa(o)).map(String).filter(Boolean);
if (!r.length) return;
- $c(r);
+ ts(r);
} catch (o) {
(i = console.debug) == null || i.call(console, "[MFV] selection fallback failed", o);
}
}
-function pc() {
- Qc || (window.addEventListener(ft.SELECTION_CHANGED, dI), Qc = !0);
+function yc() {
+ $c || (window.addEventListener(ht.SELECTION_CHANGED, uI), $c = !0);
}
-function uI() {
- window.removeEventListener(ft.SELECTION_CHANGED, dI), Qc = !1, Hs();
+function mI() {
+ window.removeEventListener(ht.SELECTION_CHANGED, uI), $c = !1, Ps();
}
-let bl = !1, Fo = null, Oo = null, zo = null, el = null, ho = null, sr = "";
-function tl() {
+let pl = !1, zo = null, Jo = null, To = null, nl = null, Zo = null, ur = "";
+function il() {
var e;
- rt != null && rt.isVisible && ((e = rt.refreshSidebar) == null || e.call(rt));
+ at != null && at.isVisible && ((e = at.refreshSidebar) == null || e.call(at));
}
-function zC() {
- mI();
+function BC() {
+ gI();
const e = typeof window < "u" ? window : globalThis;
if (typeof e.requestAnimationFrame == "function") {
- sr = "raf", ho = e.requestAnimationFrame(() => {
- ho = null, sr = "", tl();
+ ur = "raf", Zo = e.requestAnimationFrame(() => {
+ Zo = null, ur = "", il();
});
return;
}
- sr = "timeout", ho = e.setTimeout(() => {
- ho = null, sr = "", tl();
+ ur = "timeout", Zo = e.setTimeout(() => {
+ Zo = null, ur = "", il();
}, 16);
}
-function mI() {
+function gI() {
var t;
- if (ho == null) return;
+ if (Zo == null) return;
const e = typeof window < "u" ? window : globalThis;
try {
- sr === "raf" && typeof e.cancelAnimationFrame == "function" ? e.cancelAnimationFrame(ho) : typeof e.clearTimeout == "function" && e.clearTimeout(ho);
+ ur === "raf" && typeof e.cancelAnimationFrame == "function" ? e.cancelAnimationFrame(Zo) : typeof e.clearTimeout == "function" && e.clearTimeout(Zo);
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
- ho = null, sr = "";
+ Zo = null, ur = "";
}
-function pu() {
+function fu() {
var e;
- if (!bl)
+ if (!pl)
try {
const t = Qn(), n = t == null ? void 0 : t.canvas;
if (!n) return;
- Fo = n.onNodeSelected ?? null, Oo = n.onSelectionChange ?? null, zo = n.onNodeDeselected ?? null, n.onNodeSelected = function(o) {
- Fo == null || Fo.call(this, o), tl();
+ zo = n.onNodeSelected ?? null, Jo = n.onSelectionChange ?? null, To = n.onNodeDeselected ?? null, n.onNodeSelected = function(o) {
+ zo == null || zo.call(this, o), il();
}, n.onSelectionChange = function(o) {
- Oo == null || Oo.call(this, o), tl();
+ Jo == null || Jo.call(this, o), il();
}, n.onNodeDeselected = function(o) {
- zo == null || zo.call(this, o), tl();
+ To == null || To.call(this, o), il();
};
const i = n.canvas;
- i != null && i.addEventListener && (el = zC, i.addEventListener("pointerup", el)), bl = !0;
+ i != null && i.addEventListener && (nl = BC, i.addEventListener("pointerup", nl)), pl = !0;
} catch (t) {
(e = console.debug) == null || e.call(console, "[MFV] _bindNodeSelectionListener error", t);
}
}
-function JC() {
+function UC() {
var e, t;
- if (bl) {
- mI();
+ if (pl) {
+ gI();
try {
const n = Qn(), i = n == null ? void 0 : n.canvas;
- i && (Fo !== null && (i.onNodeSelected = Fo), Oo !== null && (i.onSelectionChange = Oo), zo !== null && (i.onNodeDeselected = zo), el && ((e = i.canvas) != null && e.removeEventListener) && i.canvas.removeEventListener("pointerup", el));
+ i && (zo !== null && (i.onNodeSelected = zo), Jo !== null && (i.onSelectionChange = Jo), To !== null && (i.onNodeDeselected = To), nl && ((e = i.canvas) != null && e.removeEventListener) && i.canvas.removeEventListener("pointerup", nl));
} catch (n) {
(t = console.debug) == null || t.call(console, "[MFV] _unbindNodeSelectionListener error", n);
}
- Fo = null, Oo = null, zo = null, el = null, bl = !1;
+ zo = null, Jo = null, To = null, nl = null, pl = !1;
}
}
-const On = {
+const zn = {
async open() {
- const e = await Rr();
- e.show(), Nl(e), pc(), pu(), bl || requestAnimationFrame(() => pu()), oa(), rr(!0);
+ const e = await Or();
+ e.show(), Rl(e), yc(), fu(), pl || requestAnimationFrame(() => fu()), ra(), ar(!0);
},
close() {
var e;
- if (rt)
+ if (at)
try {
- rt.isPopped && rt.popIn(), rt.hide();
+ at.isPopped && at.popIn(), at.hide();
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
- uI(), JC(), rr(!1);
+ mI(), UC(), ar(!1);
},
async toggle() {
- rt != null && rt.isVisible ? On.close() : await On.open();
+ at != null && at.isVisible ? zn.close() : await zn.open();
},
toggleLive() {
- On.setLiveActive(!fo);
+ zn.setLiveActive(!Co);
},
togglePreview() {
- On.setPreviewActive(!Pi);
+ zn.setPreviewActive(!$i);
},
async toggleCompareAB() {
- const e = await Rr();
+ const e = await Or();
if (!!!e.isVisible) {
- e.setMode(Hn.AB), e.show(), Nl(e), pc(), oa(), rr(!0);
+ e.setMode(Hn.AB), e.show(), Rl(e), yc(), ra(), ar(!0);
return;
}
const i = {
@@ -8256,7 +8271,7 @@ const On = {
[Hn.GRID]: Hn.SIMPLE,
[Hn.SIMPLE]: Hn.AB
}[e._mode] || Hn.AB;
- e.setMode(i), i !== Hn.SIMPLE && oa();
+ e.setMode(i), i !== Hn.SIMPLE && ra();
},
/**
* Open the MFV (if needed) and load a single file/asset.
@@ -8264,8 +8279,8 @@ const On = {
* @param {object} fileData Raw output { filename, subfolder, type } or full asset object.
*/
async upsertWithContent(e) {
- const t = await Rr(), n = !!t.isVisible;
- t.show(), Nl(t), pc();
+ const t = await Or(), n = !!t.isVisible;
+ t.show(), Rl(t), yc();
const i = t._mode;
if (i === Hn.AB || i === Hn.SIDE || i === Hn.GRID) {
const r = t.getPinnedSlots();
@@ -8280,28 +8295,28 @@ const On = {
} else r.has("B") ? t.loadMediaPair(e, t._mediaB) : t.loadMediaPair(t._mediaA, e);
} else
t.loadMediaA(e, { autoMode: !0 });
- n || rr(!0);
+ n || ar(!0);
},
setLiveActive(e) {
- fo = !!e, rt == null || rt.setLiveActive(fo);
+ Co = !!e, at == null || at.setLiveActive(Co);
},
getLiveActive() {
- return fo;
+ return Co;
},
/**
* Toggle the viewer between the expanded dialog overlay and the floating panel.
* If the viewer isn't open yet, it is opened first so there's something to see.
*/
async popOut() {
- const e = await Rr();
- e.isPopped ? e.popIn() : (e.isVisible || await On.open(), e.popOut());
+ const e = await Or();
+ e.isPopped ? e.popIn() : (e.isVisible || await zn.open(), e.popOut());
},
// ββ Preview stream (KSampler denoising steps) βββββββββββββββββββββββββ
setPreviewActive(e) {
- Pi = !!e, rt == null || rt.setPreviewActive(Pi);
+ $i = !!e, at == null || at.setPreviewActive($i);
},
getPreviewActive() {
- return Pi;
+ return $i;
},
/**
* Feed a preview blob from the KSampler WebSocket into the viewer.
@@ -8309,9 +8324,9 @@ const On = {
* @param {Blob} blob JPEG/PNG Blob from the ComfyUI `b_preview` event.
*/
async feedPreviewBlob(e, t = {}) {
- if (!Pi) return;
- const n = await Rr(), i = !!n.isVisible;
- n.isVisible || n.show(), Nl(n), n.loadPreviewBlob(e, ...Object.keys(t).length ? [t] : []), i || rr(!0);
+ if (!$i) return;
+ const n = await Or(), i = !!n.isVisible;
+ n.isVisible || n.show(), Rl(n), n.loadPreviewBlob(e, ...Object.keys(t).length ? [t] : []), i || ar(!0);
},
// ββ Node Stream (intermediate node outputs) βββββββββββββββββββββββββββ
toggleNodeStream() {
@@ -8319,7 +8334,7 @@ const On = {
setNodeStreamActive(e) {
var t;
{
- (t = rt == null ? void 0 : rt.setNodeStreamActive) == null || t.call(rt, !1);
+ (t = at == null ? void 0 : at.setNodeStreamActive) == null || t.call(at, !1);
return;
}
},
@@ -8334,19 +8349,19 @@ const On = {
async feedNodeStream(e) {
}
};
-let ja = !1;
-const gI = () => On.open(), II = () => On.close(), bI = () => On.toggle(), pI = () => On.toggleLive(), yI = () => On.togglePreview(), fI = () => On.popOut(), hI = () => {
+let va = !1;
+const II = () => zn.open(), bI = () => zn.close(), pI = () => zn.toggle(), yI = () => zn.toggleLive(), fI = () => zn.togglePreview(), hI = () => zn.popOut(), CI = () => {
try {
- rt != null && rt.isPopped && rt.popIn();
+ at != null && at.isPopped && at.popIn();
} catch {
}
-}, CI = (e) => {
+}, ZI = (e) => {
var n;
const t = String(((n = e == null ? void 0 : e.detail) == null ? void 0 : n.key) || "");
- (!t || t === "viewer" || t === "viewer.mfvLiveDefault" || t === "viewer.mfvPreviewDefault") && RC();
-}, Ps = (e) => {
+ (!t || t === "viewer" || t === "viewer.mfvLiveDefault" || t === "viewer.mfvPreviewDefault") && zC();
+}, _s = (e) => {
var o, r, l, a, c;
- if (!(rt != null && rt.isVisible) || Wo().scope === "viewer") return;
+ if (!(at != null && at.isVisible) || Mo().scope === "viewer") return;
const t = ((r = (o = e == null ? void 0 : e.key) == null ? void 0 : o.toLowerCase) == null ? void 0 : r.call(o)) || "";
if (((l = e == null ? void 0 : e.target) == null ? void 0 : l.isContentEditable) || ((c = (a = e == null ? void 0 : e.target) == null ? void 0 : a.closest) == null ? void 0 : c.call(a, "input, textarea, select, [contenteditable='true']"))) return;
const i = () => {
@@ -8355,52 +8370,52 @@ const gI = () => On.open(), II = () => On.close(), bI = () => On.toggle(), pI =
};
if (!(e != null && e.ctrlKey) && !(e != null && e.metaKey) && !(e != null && e.altKey) && !(e != null && e.shiftKey)) {
if (t === "v") {
- i(), On.toggle();
+ i(), zn.toggle();
return;
}
if (t === "k") {
- i(), On.togglePreview();
+ i(), zn.togglePreview();
return;
}
if (t === "l") {
- i(), On.toggleLive();
+ i(), zn.toggleLive();
return;
}
- t === "c" && (i(), On.toggleCompareAB());
+ t === "c" && (i(), zn.toggleCompareAB());
return;
}
};
-function ZI() {
- ja || typeof window > "u" || !(window != null && window.addEventListener) || (window.addEventListener(ft.MFV_OPEN, gI), window.addEventListener(ft.MFV_CLOSE, II), window.addEventListener(ft.MFV_TOGGLE, bI), window.addEventListener(ft.MFV_LIVE_TOGGLE, pI), window.addEventListener(ft.MFV_PREVIEW_TOGGLE, yI), window.addEventListener(ft.MFV_POPOUT, fI), window.addEventListener(ft.SETTINGS_CHANGED, CI), window.addEventListener("keydown", Ps, !0), window.addEventListener("beforeunload", hI), ja = !0);
+function AI() {
+ va || typeof window > "u" || !(window != null && window.addEventListener) || (window.addEventListener(ht.MFV_OPEN, II), window.addEventListener(ht.MFV_CLOSE, bI), window.addEventListener(ht.MFV_TOGGLE, pI), window.addEventListener(ht.MFV_LIVE_TOGGLE, yI), window.addEventListener(ht.MFV_PREVIEW_TOGGLE, fI), window.addEventListener(ht.MFV_POPOUT, hI), window.addEventListener(ht.SETTINGS_CHANGED, ZI), window.addEventListener("keydown", _s, !0), window.addEventListener("beforeunload", CI), va = !0);
}
-function TC() {
+function KC() {
if (typeof window > "u" || !(window != null && window.removeEventListener)) {
- ja = !1;
+ va = !1;
return;
}
- window.removeEventListener(ft.MFV_OPEN, gI), window.removeEventListener(ft.MFV_CLOSE, II), window.removeEventListener(ft.MFV_TOGGLE, bI), window.removeEventListener(ft.MFV_LIVE_TOGGLE, pI), window.removeEventListener(ft.MFV_PREVIEW_TOGGLE, yI), window.removeEventListener(ft.MFV_POPOUT, fI), window.removeEventListener(ft.SETTINGS_CHANGED, CI), window.removeEventListener("keydown", Ps, !0), window.removeEventListener("beforeunload", hI), ja = !1;
+ window.removeEventListener(ht.MFV_OPEN, II), window.removeEventListener(ht.MFV_CLOSE, bI), window.removeEventListener(ht.MFV_TOGGLE, pI), window.removeEventListener(ht.MFV_LIVE_TOGGLE, yI), window.removeEventListener(ht.MFV_PREVIEW_TOGGLE, fI), window.removeEventListener(ht.MFV_POPOUT, hI), window.removeEventListener(ht.SETTINGS_CHANGED, ZI), window.removeEventListener("keydown", _s, !0), window.removeEventListener("beforeunload", CI), va = !1;
}
-function AI({ reinstallGlobalHandlers: e = !1 } = {}) {
+function WI({ reinstallGlobalHandlers: e = !1 } = {}) {
var n;
- const t = !!(rt != null && rt.isVisible);
+ const t = !!(at != null && at.isVisible);
try {
- rt != null && rt.isPopped && rt.popIn();
+ at != null && at.isPopped && at.popIn();
} catch (o) {
(n = console.debug) == null || n.call(console, o);
}
- TC(), uI(), Hs(), _c += 1, fo = Ds(), Pi = Es(), FC(), t && rr(!1), e && ZI();
+ KC(), mI(), Ps(), es += 1, Co = Hs(), $i = qs(), JC(), t && ar(!1), e && AI();
}
-const va = "progress-update", Rl = Symbol.for("mjr.mfv.progress.queuePromptPatch"), es = "__MJR_MFV_PROGRESS_SERVICE__";
-function BC() {
+const La = "progress-update", Fl = Symbol.for("mjr.mfv.progress.queuePromptPatch"), ns = "__MJR_MFV_PROGRESS_SERVICE__";
+function DC() {
return typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : {};
}
-function yu(e, t) {
+function hu(e, t) {
if (typeof CustomEvent == "function")
return new CustomEvent(e, { detail: t });
const n = typeof Event == "function" ? new Event(e) : { type: e };
return n.detail = t, n;
}
-class UC {
+class EC {
constructor(t, n = () => Qn()) {
this.id = String(t || ""), this.promptApi = null, this.executedNodeIds = [], this.totalNodes = 0, this.currentlyExecuting = null, this.errorDetails = null, this._getApp = typeof n == "function" ? n : () => null;
}
@@ -8450,11 +8465,11 @@ class UC {
this.errorDetails = t || null;
}
}
-class KC extends EventTarget {
+class HC extends EventTarget {
constructor({
- getApi: t = (o) => ha(o),
+ getApi: t = (o) => Ca(o),
getApp: n = () => Qn(),
- waitForApi: i = (o) => pg(o)
+ waitForApi: i = (o) => yg(o)
} = {}) {
super(), this._getApi = t, this._getApp = n, this._waitForApi = i, this.promptsMap = /* @__PURE__ */ new Map(), this.currentExecution = null, this.lastQueueRemaining = 0, this._api = null, this._listenerEntries = [], this._initPromise = null;
}
@@ -8474,7 +8489,7 @@ class KC extends EventTarget {
getOrMakePrompt(t) {
const n = String(t || "").trim() || "unknown";
let i = this.promptsMap.get(n);
- return i || (i = new UC(n, this._getApp), this.promptsMap.set(n, i)), i;
+ return i || (i = new EC(n, this._getApp), this.promptsMap.set(n, i)), i;
}
async ensureInitialized({ api: t = null, app: n = null, timeoutMs: i = 0 } = {}) {
return t && this._api === t ? t : !t && this._api ? this._api : this._initPromise ? this._initPromise : (this._initPromise = this._ensureInitializedInternal({ api: t, app: n, timeoutMs: i }).finally(() => {
@@ -8498,7 +8513,7 @@ class KC extends EventTarget {
_patchQueuePrompt(t) {
var l;
if (!t || typeof t.queuePrompt != "function") return;
- const n = (l = t.queuePrompt) == null ? void 0 : l[Rl];
+ const n = (l = t.queuePrompt) == null ? void 0 : l[Fl];
if ((n == null ? void 0 : n.service) === this || n != null && n.service && n.service !== this) return;
const i = t.queuePrompt, o = this, r = async function(a, c, ...s) {
let d;
@@ -8512,14 +8527,14 @@ class KC extends EventTarget {
if (u) {
const I = o.getOrMakePrompt(u);
I.setPrompt(c), o.currentExecution || (o.currentExecution = I), o.dispatchEvent(
- yu("queue-prompt", {
+ hu("queue-prompt", {
prompt: I
})
), o.dispatchProgressUpdate();
}
return d;
};
- Object.defineProperty(r, Rl, {
+ Object.defineProperty(r, Fl, {
configurable: !0,
value: {
service: o,
@@ -8566,7 +8581,7 @@ class KC extends EventTarget {
t.addEventListener(n, i), this._listenerEntries.push({ api: t, type: n, handler: i });
}
dispatchProgressUpdate() {
- this.dispatchEvent(yu(va, this.getSnapshot()));
+ this.dispatchEvent(hu(La, this.getSnapshot()));
}
dispose({ resetPatchedQueuePrompt: t = !1, keepState: n = !1 } = {}) {
var i, o, r, l, a, c, s;
@@ -8576,9 +8591,9 @@ class KC extends EventTarget {
} catch (p) {
(o = console.debug) == null || o.call(console, p);
}
- if (t && ((a = (l = (r = this._api) == null ? void 0 : r.queuePrompt) == null ? void 0 : l[Rl]) == null ? void 0 : a.service) === this)
+ if (t && ((a = (l = (r = this._api) == null ? void 0 : r.queuePrompt) == null ? void 0 : l[Fl]) == null ? void 0 : a.service) === this)
try {
- const d = ((c = this._api.queuePrompt[Rl]) == null ? void 0 : c.originalQueuePrompt) || null;
+ const d = ((c = this._api.queuePrompt[Fl]) == null ? void 0 : c.originalQueuePrompt) || null;
typeof d == "function" && (this._api.queuePrompt = d);
} catch (d) {
(s = console.debug) == null || s.call(console, d);
@@ -8586,12 +8601,12 @@ class KC extends EventTarget {
this._api = null, n || (this.promptsMap.clear(), this.currentExecution = null, this.lastQueueRemaining = 0);
}
}
-const ts = BC(), Co = ts[es] || new KC();
-ts[es] || (ts[es] = Co);
-function WI(e = {}) {
- return Co.ensureInitialized(e);
+const is = DC(), Ao = is[ns] || new HC();
+is[ns] || (is[ns] = Ao);
+function wI(e = {}) {
+ return Ao.ensureInitialized(e);
}
-function DC(e) {
+function qC(e) {
var i, o, r;
const t = Math.max(0, Number(e == null ? void 0 : e.queue) || 0), n = (e == null ? void 0 : e.prompt) || null;
if (n != null && n.errorDetails) {
@@ -8617,7 +8632,7 @@ function DC(e) {
}
return t > 0 ? `(${t}) Running... in another tab` : "Idle";
}
-function EC(e) {
+function PC(e) {
var l;
const t = (e == null ? void 0 : e.prompt) || null;
if (t != null && t.errorDetails) {
@@ -8631,7 +8646,7 @@ function EC(e) {
const i = String(n.nodeLabel || n.nodeId || "Node").trim(), o = Number(n.step), r = Number(n.maxSteps);
return Number.isFinite(o) && Number.isFinite(r) && r > 0 ? n.pass > 1 ? `${i} #${n.pass} - ${o}/${r}` : `${i} - ${o}/${r}` : i;
}
-function ns(e, t) {
+function os(e, t) {
var a, c, s, d;
if (!(e != null && e._progressEl) && !(e != null && e._mediaProgressEl)) return;
const n = (t == null ? void 0 : t.prompt) || null, i = String(
@@ -8647,12 +8662,12 @@ function ns(e, t) {
const u = Number((s = n.currentlyExecuting) == null ? void 0 : s.step), I = Number((d = n.currentlyExecuting) == null ? void 0 : d.maxSteps);
Number.isFinite(u) && Number.isFinite(I) && I > 0 && (r = `${Math.max(0, Math.min(100, u / I * 100))}%`);
} else l && (o = "100%", r = "100%");
- if (e._progressCurrentNodeId = i || null, e._progressEl && (e._progressNodesEl.style.width = o, e._progressStepsEl.style.width = r, e._progressTextEl.textContent = DC(t), e._progressEl.classList.toggle("is-error", l), e._progressEl.classList.toggle("is-clickable", !!i), e._progressEl.title = i ? "Execution progress - click to center active node" : "Execution progress"), e._mediaProgressEl) {
- const u = EC(t);
+ if (e._progressCurrentNodeId = i || null, e._progressEl && (e._progressNodesEl.style.width = o, e._progressStepsEl.style.width = r, e._progressTextEl.textContent = qC(t), e._progressEl.classList.toggle("is-error", l), e._progressEl.classList.toggle("is-clickable", !!i), e._progressEl.title = i ? "Execution progress - click to center active node" : "Execution progress"), e._mediaProgressEl) {
+ const u = PC(t);
e._mediaProgressTextEl.textContent = u, e._mediaProgressEl.title = u || "", e._mediaProgressEl.classList.toggle("is-error", l), e._mediaProgressEl.classList.toggle("is-visible", !!u);
}
}
-function HC(e, t) {
+function QC(e, t) {
var i, o;
const n = String(t || "").trim();
if (!n) return !1;
@@ -8663,7 +8678,7 @@ function HC(e, t) {
return (o = console.debug) == null || o.call(console, r), !1;
}
}
-function IV(e) {
+function fY(e) {
const t = document.createElement("div");
t.className = "mjr-mfv-progress", t.setAttribute("role", "status"), t.setAttribute("aria-live", "polite");
const n = document.createElement("div");
@@ -8674,32 +8689,32 @@ function IV(e) {
o.className = "mjr-mfv-progress-overlay", o.setAttribute("aria-hidden", "true");
const r = document.createElement("span");
return r.className = "mjr-mfv-progress-text", r.textContent = "Idle", t.appendChild(n), t.appendChild(i), t.appendChild(o), t.appendChild(r), t.addEventListener("pointerdown", (l) => {
- l.button === 0 && HC(e, e._progressCurrentNodeId) && (l.preventDefault(), l.stopPropagation());
- }), e._progressEl = t, e._progressNodesEl = n, e._progressStepsEl = i, e._progressTextEl = r, e._progressUpdateHandler && Co.removeEventListener(
- va,
+ l.button === 0 && QC(e, e._progressCurrentNodeId) && (l.preventDefault(), l.stopPropagation());
+ }), e._progressEl = t, e._progressNodesEl = n, e._progressStepsEl = i, e._progressTextEl = r, e._progressUpdateHandler && Ao.removeEventListener(
+ La,
e._progressUpdateHandler
), e._progressUpdateHandler = (l) => {
- ns(e, (l == null ? void 0 : l.detail) || Co.getSnapshot());
- }, Co.addEventListener(
- va,
+ os(e, (l == null ? void 0 : l.detail) || Ao.getSnapshot());
+ }, Ao.addEventListener(
+ La,
e._progressUpdateHandler
- ), WI({ timeoutMs: 4e3 }).catch((l) => {
+ ), wI({ timeoutMs: 4e3 }).catch((l) => {
var a;
(a = console.debug) == null || a.call(console, l);
- }), ns(e, Co.getSnapshot()), t;
+ }), os(e, Ao.getSnapshot()), t;
}
-function bV(e) {
+function hY(e) {
const t = document.createElement("div");
t.className = "mjr-mfv-media-progress", t.setAttribute("aria-hidden", "true");
const n = document.createElement("span");
- return n.className = "mjr-mfv-media-progress-text", t.appendChild(n), e._mediaProgressEl = t, e._mediaProgressTextEl = n, ns(e, Co.getSnapshot()), t;
+ return n.className = "mjr-mfv-media-progress-text", t.appendChild(n), e._mediaProgressEl = t, e._mediaProgressTextEl = n, os(e, Ao.getSnapshot()), t;
}
-function pV(e) {
+function CY(e) {
var t;
if (e != null && e._progressUpdateHandler)
try {
- Co.removeEventListener(
- va,
+ Ao.removeEventListener(
+ La,
e._progressUpdateHandler
);
} catch (n) {
@@ -8707,7 +8722,7 @@ function pV(e) {
}
e._progressUpdateHandler = null, e._progressCurrentNodeId = null, e._progressEl = null, e._progressNodesEl = null, e._progressStepsEl = null, e._progressTextEl = null, e._mediaProgressEl = null, e._mediaProgressTextEl = null;
}
-function qC() {
+function _C() {
const e = "mjr-grid-settings-styles";
if (document.getElementById(e)) return;
const t = document.createElement("style");
@@ -8790,28 +8805,28 @@ function qC() {
}
`, document.head.appendChild(t);
}
-function nl(e) {
+function ol(e) {
if (!e) return;
- qC();
+ _C();
const t = (n, i) => {
i ? e.classList.add(n) : e.classList.remove(n);
};
- t("mjr-show-filename", ye.GRID_SHOW_DETAILS_FILENAME), t("mjr-show-dimensions", ye.GRID_SHOW_DETAILS_DIMENSIONS), t("mjr-show-date", ye.GRID_SHOW_DETAILS_DATE), t("mjr-show-gentime", ye.GRID_SHOW_DETAILS_GENTIME), t("mjr-show-hover-info", ye.GRID_SHOW_HOVER_INFO), t("mjr-show-dot", ye.GRID_SHOW_WORKFLOW_DOT), t("mjr-show-badges-ext", ye.GRID_SHOW_BADGES_EXTENSION), t("mjr-show-badges-rating", ye.GRID_SHOW_BADGES_RATING), t("mjr-show-badges-tags", ye.GRID_SHOW_BADGES_TAGS), t("mjr-show-details", ye.GRID_SHOW_DETAILS), e.style.setProperty("--mjr-grid-min-size", `${ye.GRID_MIN_SIZE}px`), e.style.setProperty("--mjr-grid-gap", `${ye.GRID_GAP}px`), e.style.setProperty("--mjr-star-active", ye.BADGE_STAR_COLOR), e.style.setProperty("--mjr-badge-image", ye.BADGE_IMAGE_COLOR), e.style.setProperty("--mjr-badge-video", ye.BADGE_VIDEO_COLOR), e.style.setProperty("--mjr-badge-audio", ye.BADGE_AUDIO_COLOR), e.style.setProperty("--mjr-badge-model3d", ye.BADGE_MODEL3D_COLOR), e.style.setProperty(
+ t("mjr-show-filename", fe.GRID_SHOW_DETAILS_FILENAME), t("mjr-show-dimensions", fe.GRID_SHOW_DETAILS_DIMENSIONS), t("mjr-show-date", fe.GRID_SHOW_DETAILS_DATE), t("mjr-show-gentime", fe.GRID_SHOW_DETAILS_GENTIME), t("mjr-show-hover-info", fe.GRID_SHOW_HOVER_INFO), t("mjr-show-dot", fe.GRID_SHOW_WORKFLOW_DOT), t("mjr-show-badges-ext", fe.GRID_SHOW_BADGES_EXTENSION), t("mjr-show-badges-rating", fe.GRID_SHOW_BADGES_RATING), t("mjr-show-badges-tags", fe.GRID_SHOW_BADGES_TAGS), t("mjr-show-details", fe.GRID_SHOW_DETAILS), e.style.setProperty("--mjr-grid-min-size", `${fe.GRID_MIN_SIZE}px`), e.style.setProperty("--mjr-grid-gap", `${fe.GRID_GAP}px`), e.style.setProperty("--mjr-star-active", fe.BADGE_STAR_COLOR), e.style.setProperty("--mjr-badge-image", fe.BADGE_IMAGE_COLOR), e.style.setProperty("--mjr-badge-video", fe.BADGE_VIDEO_COLOR), e.style.setProperty("--mjr-badge-audio", fe.BADGE_AUDIO_COLOR), e.style.setProperty("--mjr-badge-model3d", fe.BADGE_MODEL3D_COLOR), e.style.setProperty(
"--mjr-badge-duplicate-alert",
- ye.BADGE_DUPLICATE_ALERT_COLOR
- ), e.style.setProperty("--mjr-card-hover-color", ye.UI_CARD_HOVER_COLOR), e.style.setProperty(
+ fe.BADGE_DUPLICATE_ALERT_COLOR
+ ), e.style.setProperty("--mjr-card-hover-color", fe.UI_CARD_HOVER_COLOR), e.style.setProperty(
"--mjr-card-selection-color",
- ye.UI_CARD_SELECTION_COLOR
- ), e.style.setProperty("--mjr-rating-color", ye.UI_RATING_COLOR), e.style.setProperty("--mjr-tag-color", ye.UI_TAG_COLOR);
+ fe.UI_CARD_SELECTION_COLOR
+ ), e.style.setProperty("--mjr-rating-color", fe.UI_RATING_COLOR), e.style.setProperty("--mjr-tag-color", fe.UI_TAG_COLOR);
}
-function PC(e, { applySettingsClasses: t = !0 } = {}) {
+function $C(e, { applySettingsClasses: t = !0 } = {}) {
var n, i;
if (!e) return null;
if (e.id = "mjr-assets-grid", e.classList.add("mjr-grid"), e.tabIndex = 0, e.setAttribute("role", "grid"), t) {
- nl(e);
+ ol(e);
const o = () => {
requestAnimationFrame(() => {
- nl(e);
+ ol(e);
});
};
try {
@@ -8830,7 +8845,7 @@ function PC(e, { applySettingsClasses: t = !0 } = {}) {
}
return e;
}
-function Oi(e, t, ...n) {
+function zi(e, t, ...n) {
var i;
try {
const o = e == null ? void 0 : e[t];
@@ -8840,92 +8855,92 @@ function Oi(e, t, ...n) {
(i = console.debug) == null || i.call(console, o);
}
}
-function QC(e, t = {}, n = {}) {
- return Oi(e, "_mjrHydrateFromSnapshot", t, n) ?? !1;
+function eZ(e, t = {}, n = {}) {
+ return zi(e, "_mjrHydrateFromSnapshot", t, n) ?? !1;
}
-function Qs(e, t = "*", n = {}) {
- return Oi(e, "_mjrLoadAssets", t, n) ?? Promise.resolve({ ok: !1, error: "Grid API unavailable" });
+function $s(e, t = "*", n = {}) {
+ return zi(e, "_mjrLoadAssets", t, n) ?? Promise.resolve({ ok: !1, error: "Grid API unavailable" });
}
-function _s(e, t, n = {}) {
- return Oi(e, "_mjrLoadAssetsFromList", t, n) ?? Promise.resolve({ ok: !1, error: "Grid API unavailable" });
+function ed(e, t, n = {}) {
+ return zi(e, "_mjrLoadAssetsFromList", t, n) ?? Promise.resolve({ ok: !1, error: "Grid API unavailable" });
}
-function _C(e) {
- return Oi(e, "_mjrPrepareForScopeSwitch");
+function tZ(e) {
+ return zi(e, "_mjrPrepareForScopeSwitch");
}
-function wI(e) {
+function MI(e) {
var t, n;
try {
(t = e == null ? void 0 : e._mjrSettingsChangedCleanup) == null || t.call(e);
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
- return Oi(e, "_mjrDispose");
+ return zi(e, "_mjrDispose");
}
-function $C(e) {
- return Oi(e, "_mjrRefreshGrid");
+function nZ(e) {
+ return zi(e, "_mjrRefreshGrid");
}
-function eZ(e) {
- return Oi(e, "_mjrCaptureAnchor") ?? null;
+function iZ(e) {
+ return zi(e, "_mjrCaptureAnchor") ?? null;
}
-function tZ(e, t) {
- return Oi(e, "_mjrRestoreAnchor", t);
+function oZ(e, t) {
+ return zi(e, "_mjrRestoreAnchor", t);
}
-function is(e, t, n = {}) {
- return Oi(e, "_mjrRemoveAssets", t, n) ?? {
+function rs(e, t, n = {}) {
+ return zi(e, "_mjrRemoveAssets", t, n) ?? {
ok: !1,
removed: 0,
selectedIds: []
};
}
-function nZ(e, t) {
- return !!Oi(e, "_mjrUpsertAsset", t);
+function rZ(e, t) {
+ return !!zi(e, "_mjrUpsertAsset", t);
}
-function iZ(e, t) {
- return !!Oi(e, "_mjrUpsertAssetNow", t);
+function lZ(e, t) {
+ return !!zi(e, "_mjrUpsertAssetNow", t);
}
-function ra(e) {
+function la(e) {
return String(e || "").trim().toLowerCase();
}
-function oZ({ dot: e = null, asset: t = null, scope: n = "" } = {}) {
+function aZ({ dot: e = null, asset: t = null, scope: n = "" } = {}) {
var r, l, a, c;
- const i = ra(n);
+ const i = la(n);
if (i) return i === "custom";
- const o = ra((t == null ? void 0 : t.type) || (t == null ? void 0 : t.scope));
+ const o = la((t == null ? void 0 : t.type) || (t == null ? void 0 : t.scope));
if (o) return o === "custom";
try {
- const s = ra((a = (l = (r = e == null ? void 0 : e.closest) == null ? void 0 : r.call(e, ".mjr-grid")) == null ? void 0 : l.dataset) == null ? void 0 : a.mjrScope);
+ const s = la((a = (l = (r = e == null ? void 0 : e.closest) == null ? void 0 : r.call(e, ".mjr-grid")) == null ? void 0 : l.dataset) == null ? void 0 : a.mjrScope);
if (s) return s === "custom";
} catch (s) {
(c = console.debug) == null || c.call(console, s);
}
return !1;
}
-function rZ(e, t = {}) {
- const n = ra(e);
- return oZ(t) ? n === "pending" || n === "info" ? "var(--mjr-browser-status-info, #4DB6AC)" : n === "success" ? "var(--mjr-browser-status-success, #2E7D32)" : n === "warning" ? "var(--mjr-browser-status-warning, #FFB74D)" : n === "error" ? "var(--mjr-browser-status-error, #EF5350)" : "var(--mjr-browser-status-neutral, #90A4AE)" : n === "pending" || n === "info" ? "var(--mjr-status-info, #64B5F6)" : n === "success" ? "var(--mjr-status-success, #4CAF50)" : n === "warning" ? "var(--mjr-status-warning, #FFA726)" : n === "error" ? "var(--mjr-status-error, #f44336)" : "var(--mjr-status-neutral, #666)";
+function cZ(e, t = {}) {
+ const n = la(e);
+ return aZ(t) ? n === "pending" || n === "info" ? "var(--mjr-browser-status-info, #4DB6AC)" : n === "success" ? "var(--mjr-browser-status-success, #2E7D32)" : n === "warning" ? "var(--mjr-browser-status-warning, #FFB74D)" : n === "error" ? "var(--mjr-browser-status-error, #EF5350)" : "var(--mjr-browser-status-neutral, #90A4AE)" : n === "pending" || n === "info" ? "var(--mjr-status-info, #64B5F6)" : n === "success" ? "var(--mjr-status-success, #4CAF50)" : n === "warning" ? "var(--mjr-status-warning, #FFA726)" : n === "error" ? "var(--mjr-status-error, #f44336)" : "var(--mjr-status-neutral, #666)";
}
-const lZ = ig("mjr-runtime", () => {
- const e = Ae(null), t = Ae(null), n = Ae(!1), i = Ae(0), o = Ae(null), r = Ae(null), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae([]), d = Je(() => !!o.value), u = Je(() => {
- const h = a.value, f = c.value;
- return !f || f <= 0 ? 0 : Math.round(h / f * 100);
+const sZ = og("mjr-runtime", () => {
+ const e = Ae(null), t = Ae(null), n = Ae(!1), i = Ae(0), o = Ae(null), r = Ae(null), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae([]), d = ze(() => !!o.value), u = ze(() => {
+ const Z = a.value, f = c.value;
+ return !f || f <= 0 ? 0 : Math.round(Z / f * 100);
});
- function I(h) {
- e.value = h;
+ function I(Z) {
+ e.value = Z;
}
- function p(h) {
- t.value = h;
+ function p(Z) {
+ t.value = Z;
}
- function M(h, f) {
- n.value = !!h, i.value = Math.max(0, Number(f || 0) || 0);
+ function S(Z, f) {
+ n.value = !!Z, i.value = Math.max(0, Number(f || 0) || 0);
}
- function Z() {
+ function A() {
return {
active: n.value,
queueLength: i.value
};
}
- function A(h = {}) {
- h.active_prompt_id !== void 0 && (o.value = h.active_prompt_id), h.queue_remaining !== void 0 && (r.value = h.queue_remaining), h.progress_node !== void 0 && (l.value = h.progress_node), h.progress_value !== void 0 && (a.value = h.progress_value), h.progress_max !== void 0 && (c.value = h.progress_max), h.cached_nodes !== void 0 && (s.value = h.cached_nodes ?? []);
+ function C(Z = {}) {
+ Z.active_prompt_id !== void 0 && (o.value = Z.active_prompt_id), Z.queue_remaining !== void 0 && (r.value = Z.queue_remaining), Z.progress_node !== void 0 && (l.value = Z.progress_node), Z.progress_value !== void 0 && (a.value = Z.progress_value), Z.progress_max !== void 0 && (c.value = Z.progress_max), Z.cached_nodes !== void 0 && (s.value = Z.cached_nodes ?? []);
}
function g() {
o.value = null, r.value = null, l.value = null, a.value = null, c.value = null, s.value = [];
@@ -8948,29 +8963,29 @@ const lZ = ig("mjr-runtime", () => {
// actions
setComfyApp: I,
setComfyApi: p,
- setEnrichmentState: M,
- getEnrichmentState: Z,
- applyExecutionStatus: A,
+ setEnrichmentState: S,
+ getEnrichmentState: A,
+ applyExecutionStatus: C,
resetExecution: g
};
});
-function MI() {
+function SI() {
try {
- return og() ? lZ() : null;
+ return rg() ? sZ() : null;
} catch {
return null;
}
}
-const Fl = Symbol.for("majoor.assets_manager.runtime_state");
-function SI() {
+const Ol = Symbol.for("majoor.assets_manager.runtime_state");
+function GI() {
try {
const e = typeof globalThis < "u" ? globalThis : {};
- return (!e[Fl] || typeof e[Fl] != "object") && (e[Fl] = {
+ return (!e[Ol] || typeof e[Ol] != "object") && (e[Ol] = {
api: null,
assetsDeletedHandler: null,
enrichmentActive: !1,
enrichmentQueueLength: 0
- }), e[Fl];
+ }), e[Ol];
} catch {
return {
api: null,
@@ -8980,40 +8995,40 @@ function SI() {
};
}
}
-function GI(e, t) {
- const n = MI();
+function xI(e, t) {
+ const n = SI();
if (n) {
n.setEnrichmentState(e, t);
return;
}
- const i = SI();
+ const i = GI();
i.enrichmentActive = !!e, i.enrichmentQueueLength = Math.max(0, Number(t || 0) || 0);
}
-function _a() {
- const e = MI();
+function $a() {
+ const e = SI();
if (e)
return e.getEnrichmentState();
- const t = SI();
+ const t = GI();
return {
active: !!t.enrichmentActive,
queueLength: Math.max(0, Number(t.enrichmentQueueLength || 0) || 0)
};
}
-function pr(e) {
+function fr(e) {
try {
return String(e || "").trim().toLowerCase();
} catch {
return "";
}
}
-function La(e) {
+function Va(e) {
try {
return (String(e || "").split(".").pop() || "").toUpperCase();
} catch {
return "";
}
}
-function xI(e) {
+function jI(e) {
try {
const t = String(e || ""), n = t.lastIndexOf("."), i = n > 0 ? t.slice(0, n) : t;
return String(i || "").trim().toLowerCase();
@@ -9021,7 +9036,7 @@ function xI(e) {
return "";
}
}
-function aZ(e) {
+function dZ(e) {
try {
if (String((e == null ? void 0 : e.kind) || "").toLowerCase() !== "video") return !1;
const n = String((e == null ? void 0 : e.filename) || "").toLowerCase();
@@ -9030,35 +9045,35 @@ function aZ(e) {
return !1;
}
}
-function fu(e) {
+function Cu(e) {
try {
const t = String((e == null ? void 0 : e.kind) || "").toLowerCase();
let n = 0;
- aZ(e) ? n = 2 : t === "video" && (n = 1);
+ dZ(e) ? n = 2 : t === "video" && (n = 1);
const i = Number((e == null ? void 0 : e.has_generation_data) || 0) > 0 ? 1 : 0, o = Number((e == null ? void 0 : e.size) || 0), r = Number((e == null ? void 0 : e.mtime) || 0);
return [n, r, i, o];
} catch {
return [0, 0, 0, 0];
}
}
-function cZ(e, t) {
+function uZ(e, t) {
for (let n = 0; n < Math.max(e.length, t.length); n++) {
const i = (e[n] || 0) - (t[n] || 0);
if (i !== 0) return i;
}
return 0;
}
-function jI(e) {
+function vI(e) {
if (!Array.isArray(e) || e.length === 0) return null;
if (e.length === 1) return e[0];
- let t = e[0], n = fu(t);
+ let t = e[0], n = Cu(t);
for (let i = 1; i < e.length; i++) {
- const o = e[i], r = fu(o);
- cZ(r, n) > 0 && (t = o, n = r);
+ const o = e[i], r = Cu(o);
+ uZ(r, n) > 0 && (t = o, n = r);
}
return t;
}
-function vI(e, t) {
+function LI(e, t) {
var r, l;
if (!e || !Array.isArray(t) || t.length === 0 || (Number((e == null ? void 0 : e.generation_time_ms) ?? ((r = e == null ? void 0 : e.metadata) == null ? void 0 : r.generation_time_ms) ?? 0) || 0) > 0) return e;
const i = t.find(
@@ -9071,13 +9086,13 @@ function vI(e, t) {
const o = Number((i == null ? void 0 : i.generation_time_ms) ?? ((l = i == null ? void 0 : i.metadata) == null ? void 0 : l.generation_time_ms) ?? 0) || 0;
return o <= 0 || (e.generation_time_ms = o, !e.has_generation_data && (i != null && i.has_generation_data) && (e.has_generation_data = i.has_generation_data)), e;
}
-function $s(e, t) {
+function td(e, t) {
const n = String((e == null ? void 0 : e.kind) || "").toLowerCase();
if (n) return n;
const i = /* @__PURE__ */ new Set(["PNG", "JPG", "JPEG", "WEBP", "GIF", "BMP", "TIF", "TIFF"]), o = /* @__PURE__ */ new Set(["MP4", "WEBM", "MOV", "AVI", "MKV"]), r = /* @__PURE__ */ new Set(["MP3", "WAV", "OGG", "FLAC"]), l = /* @__PURE__ */ new Set(["OBJ", "FBX", "GLB", "GLTF", "STL", "PLY", "SPLAT", "KSPLAT", "SPZ"]);
return i.has(t) ? "image" : o.has(t) ? "video" : r.has(t) ? "audio" : l.has(t) ? "model3d" : "unknown";
}
-function LI(e) {
+function VI(e) {
var t;
try {
const n = e();
@@ -9090,16 +9105,16 @@ function YI(e) {
const t = String((e == null ? void 0 : e.source) || (e == null ? void 0 : e.type) || "").trim().toLowerCase(), n = String((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || "").trim().toLowerCase(), i = String((e == null ? void 0 : e.subfolder) || "").trim().toLowerCase();
return `${t}|${n}|${i}`;
}
-function VI(e, t = La((e == null ? void 0 : e.filename) || "")) {
- const n = $s(e, t), i = String((e == null ? void 0 : e.filename) || "").trim();
+function kI(e, t = Va((e == null ? void 0 : e.filename) || "")) {
+ const n = td(e, t), i = String((e == null ? void 0 : e.filename) || "").trim();
if (!i) return "";
const o = YI(e);
if (n === "model3d")
return `${o}|model3d|${i.toLowerCase()}`;
- const r = xI(i);
+ const r = jI(i);
return r ? `${o}|media|${r}` : "";
}
-function kI(e) {
+function XI(e) {
const t = e.nonImageSiblingKeys || /* @__PURE__ */ new Set();
e.nonImageSiblingKeys = t;
const n = e.stemMap || /* @__PURE__ */ new Map();
@@ -9109,7 +9124,7 @@ function kI(e) {
const o = e.seenKeys || /* @__PURE__ */ new Set();
return e.seenKeys = o, e.hiddenPngSiblings == null && (e.hiddenPngSiblings = 0), { nonImageSiblingKeys: t, stemMap: n, assetIdSet: i, seenKeys: o };
}
-function os(e, t, n) {
+function ls(e, t, n) {
var i, o, r;
try {
(t == null ? void 0 : t.id) != null && n.assetIdSet.delete(String(t.id));
@@ -9123,7 +9138,7 @@ function os(e, t, n) {
(r = console.debug) == null || r.call(console, l);
}
}
-function sZ(e, t, n, i) {
+function mZ(e, t, n, i) {
const o = n.stemMap.get(t);
if (!(o != null && o.length)) return [];
const r = [];
@@ -9131,142 +9146,142 @@ function sZ(e, t, n, i) {
i(o[l]) && (r.push(o[l]), o.splice(l, 1));
return o.length || n.stemMap.delete(t), r;
}
-function XI(e, t, n) {
- if (!LI(n)) return { hidden: !1, hideEnabled: !1, removed: [] };
- const o = kI(t), r = String((e == null ? void 0 : e.filename) || ""), l = La(r), a = $s(e, l), c = VI(e, l);
+function NI(e, t, n) {
+ if (!VI(n)) return { hidden: !1, hideEnabled: !1, removed: [] };
+ const o = XI(t), r = String((e == null ? void 0 : e.filename) || ""), l = Va(r), a = td(e, l), c = kI(e, l);
if (!c) return { hidden: !1, hideEnabled: !0, removed: [] };
if (a === "video" || a === "audio" || a === "model3d")
- return o.nonImageSiblingKeys.add(c), { hidden: !1, hideEnabled: !0, removed: sZ(
+ return o.nonImageSiblingKeys.add(c), { hidden: !1, hideEnabled: !0, removed: mZ(
t,
c,
o,
- (d) => La((d == null ? void 0 : d.filename) || "") === "PNG"
+ (d) => Va((d == null ? void 0 : d.filename) || "") === "PNG"
) };
if (l === "PNG") {
- const s = `${YI(e)}|model3d|${xI(r)}`;
+ const s = `${YI(e)}|model3d|${jI(r)}`;
if (o.nonImageSiblingKeys.has(c) || o.nonImageSiblingKeys.has(s))
return { hidden: !0, hideEnabled: !0, removed: [] };
}
return { hidden: !1, hideEnabled: !0, removed: [] };
}
-function dZ(e, t, n, i) {
- var M, Z, A;
- const o = LI(i.loadMajoorSettings), r = n.filenameCounts || /* @__PURE__ */ new Map();
+function gZ(e, t, n, i) {
+ var S, A, C;
+ const o = VI(i.loadMajoorSettings), r = n.filenameCounts || /* @__PURE__ */ new Map();
n.filenameCounts = r, i.clearGridMessage(e);
const l = i.ensureVirtualGrid(e, n);
if (!l) return 0;
o || (n.hiddenPngSiblings = 0), n.assetKeyFn = i.assetKey;
- const a = kI(n), c = /* @__PURE__ */ new Map();
+ const a = XI(n), c = /* @__PURE__ */ new Map();
for (const g of n.assets || []) {
- const h = pr(g == null ? void 0 : g.filename);
- if (!h) continue;
- let f = c.get(h);
- f || (f = [], c.set(h, f)), f.push(g);
+ const Z = fr(g == null ? void 0 : g.filename);
+ if (!Z) continue;
+ let f = c.get(Z);
+ f || (f = [], c.set(Z, f)), f.push(g);
}
let s = 0, d = !1;
const u = [], I = /* @__PURE__ */ new Set(), p = () => {
- var g, h, f, b, v, C, S, W, y;
+ var g, Z, f, b, L, h, G, W, y;
try {
- const k = new Set(
- (Array.isArray(n.assets) ? n.assets : []).map((G) => String((G == null ? void 0 : G.id) || "")).filter(Boolean)
+ const X = new Set(
+ (Array.isArray(n.assets) ? n.assets : []).map((x) => String((x == null ? void 0 : x.id) || "")).filter(Boolean)
);
- for (const [G, z] of c.entries()) {
- const x = (Array.isArray(z) ? z : []).filter((O) => {
- const B = String((O == null ? void 0 : O.id) || "");
- return B ? k.has(B) : !1;
- }), w = x.length;
- if (r.set(G, w), w < 2) {
- for (const B of x)
+ for (const [x, T] of c.entries()) {
+ const v = (Array.isArray(T) ? T : []).filter((z) => {
+ const B = String((z == null ? void 0 : z.id) || "");
+ return B ? X.has(B) : !1;
+ }), w = v.length;
+ if (r.set(x, w), w < 2) {
+ for (const B of v)
B._mjrNameCollision = !1, delete B._mjrNameCollisionCount, delete B._mjrNameCollisionPaths, B._mjrDupStack && (B._mjrDupStack = !1, B._mjrDupMembers = null, B._mjrDupCount = 0);
- const O = (g = n.renderedFilenameMap) == null ? void 0 : g.get(G);
- if (O)
- for (const B of O) {
- const J = (h = B.querySelector) == null ? void 0 : h.call(B, ".mjr-file-badge");
+ const z = (g = n.renderedFilenameMap) == null ? void 0 : g.get(x);
+ if (z)
+ for (const B of z) {
+ const J = (Z = B.querySelector) == null ? void 0 : Z.call(B, ".mjr-file-badge");
i.setFileBadgeCollision(J, !1);
try {
(f = i.ensureDupStackCard) == null || f.call(i, e, B, B._mjrAsset);
- } catch (T) {
- (b = console.debug) == null || b.call(console, T);
+ } catch (P) {
+ (b = console.debug) == null || b.call(console, P);
}
}
continue;
}
- const X = vI(
- jI(x),
- x
- ), V = x.filter((O) => O !== X);
- for (const O of x)
- O._mjrNameCollision = !1, delete O._mjrNameCollisionCount, delete O._mjrNameCollisionPaths, O !== X && (O._mjrDupStack = !1, O._mjrDupMembers = null, O._mjrDupCount = 0);
- const R = Array.isArray(X._mjrDupMembers) ? X._mjrDupMembers : [], j = new Set(R.map((O) => String((O == null ? void 0 : O.id) || ""))), L = [
- ...R,
- ...x.filter((O) => !j.has(String((O == null ? void 0 : O.id) || "")))
+ const R = LI(
+ vI(v),
+ v
+ ), Y = v.filter((z) => z !== R);
+ for (const z of v)
+ z._mjrNameCollision = !1, delete z._mjrNameCollisionCount, delete z._mjrNameCollisionPaths, z !== R && (z._mjrDupStack = !1, z._mjrDupMembers = null, z._mjrDupCount = 0);
+ const F = Array.isArray(R._mjrDupMembers) ? R._mjrDupMembers : [], N = new Set(F.map((z) => String((z == null ? void 0 : z.id) || ""))), V = [
+ ...F,
+ ...v.filter((z) => !N.has(String((z == null ? void 0 : z.id) || "")))
];
- X._mjrDupStack = !0, X._mjrDupMembers = L, X._mjrDupCount = L.length, X._mjrNameCollision = !1;
- const N = new Set(V.map((O) => String((O == null ? void 0 : O.id) || "")));
- N.size > 0 && (n.assets = n.assets.filter((O) => !N.has(String((O == null ? void 0 : O.id) || ""))));
- const q = (v = n.renderedFilenameMap) == null ? void 0 : v.get(G);
- if (q)
- for (const O of q) {
- const B = O._mjrAsset, J = (C = O.querySelector) == null ? void 0 : C.call(O, ".mjr-file-badge");
- if (B === X || String((B == null ? void 0 : B.id) || "") === String((X == null ? void 0 : X.id) || "")) {
+ R._mjrDupStack = !0, R._mjrDupMembers = V, R._mjrDupCount = V.length, R._mjrNameCollision = !1;
+ const k = new Set(Y.map((z) => String((z == null ? void 0 : z.id) || "")));
+ k.size > 0 && (n.assets = n.assets.filter((z) => !k.has(String((z == null ? void 0 : z.id) || ""))));
+ const K = (L = n.renderedFilenameMap) == null ? void 0 : L.get(x);
+ if (K)
+ for (const z of K) {
+ const B = z._mjrAsset, J = (h = z.querySelector) == null ? void 0 : h.call(z, ".mjr-file-badge");
+ if (B === R || String((B == null ? void 0 : B.id) || "") === String((R == null ? void 0 : R.id) || "")) {
i.setFileBadgeCollision(J, !1);
try {
- (S = i.ensureDupStackCard) == null || S.call(i, e, O, X);
- } catch (T) {
- (W = console.debug) == null || W.call(console, T);
+ (G = i.ensureDupStackCard) == null || G.call(i, e, z, R);
+ } catch (P) {
+ (W = console.debug) == null || W.call(console, P);
}
}
}
}
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
};
for (const g of t || []) {
try {
if ((g == null ? void 0 : g.id) == null || String(g.id).trim() === "") {
- const W = String((g == null ? void 0 : g.kind) || "").toLowerCase(), y = String((g == null ? void 0 : g.filepath) || "").trim(), k = String((g == null ? void 0 : g.subfolder) || "").trim(), G = String((g == null ? void 0 : g.filename) || "").trim(), x = `${String((g == null ? void 0 : g.type) || "").trim().toLowerCase()}|${W}|${y}|${k}|${G}`;
- g.id = `asset:${x || "unknown"}`;
+ const W = String((g == null ? void 0 : g.kind) || "").toLowerCase(), y = String((g == null ? void 0 : g.filepath) || "").trim(), X = String((g == null ? void 0 : g.subfolder) || "").trim(), x = String((g == null ? void 0 : g.filename) || "").trim(), v = `${String((g == null ? void 0 : g.type) || "").trim().toLowerCase()}|${W}|${y}|${X}|${x}`;
+ g.id = `asset:${v || "unknown"}`;
}
} catch (W) {
- (M = console.debug) == null || M.call(console, W);
+ (S = console.debug) == null || S.call(console, W);
}
- const h = String((g == null ? void 0 : g.filename) || ""), f = La(h), b = XI(g, n, i.loadMajoorSettings);
+ const Z = String((g == null ? void 0 : g.filename) || ""), f = Va(Z), b = NI(g, n, i.loadMajoorSettings);
for (const W of b.removed || []) I.add(W);
if (b.hidden) {
n.hiddenPngSiblings += 1;
continue;
}
- const v = pr(h);
- if (v) {
- let W = c.get(v);
- W || (W = [], c.set(v, W)), W.push(g);
+ const L = fr(Z);
+ if (L) {
+ let W = c.get(L);
+ W || (W = [], c.set(L, W)), W.push(g);
}
- const C = i.assetKey(g);
- if (!C || a.seenKeys.has(C) || g.id != null && a.assetIdSet.has(String(g.id))) continue;
- a.seenKeys.add(C), g.id != null && a.assetIdSet.add(String(g.id)), u.push(g);
- const S = VI(g, f);
- if (S) {
- let W = a.stemMap.get(S);
- W || (W = [], a.stemMap.set(S, W)), W.push(g);
+ const h = i.assetKey(g);
+ if (!h || a.seenKeys.has(h) || g.id != null && a.assetIdSet.has(String(g.id))) continue;
+ a.seenKeys.add(h), g.id != null && a.assetIdSet.add(String(g.id)), u.push(g);
+ const G = kI(g, f);
+ if (G) {
+ let W = a.stemMap.get(G);
+ W || (W = [], a.stemMap.set(G, W)), W.push(g);
}
s++;
}
if (I.size > 0) {
n.hiddenPngSiblings += I.size, n.assets = n.assets.filter((g) => !I.has(g));
for (const g of I)
- os(n, g, a);
+ ls(n, g, a);
try {
for (const g of I) {
- const h = pr(g == null ? void 0 : g.filename);
- if (!h) continue;
- const f = c.get(h);
+ const Z = fr(g == null ? void 0 : g.filename);
+ if (!Z) continue;
+ const f = c.get(Z);
if (!f) continue;
const b = f.indexOf(g);
- b > -1 && f.splice(b, 1), f.length || c.delete(h);
+ b > -1 && f.splice(b, 1), f.length || c.delete(Z);
}
} catch (g) {
- (Z = console.debug) == null || Z.call(console, g);
+ (A = console.debug) == null || A.call(console, g);
}
d = !0;
}
@@ -9276,11 +9291,11 @@ function dZ(e, t, n, i) {
Number(n.hiddenPngSiblings || 0) || 0
);
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
return s;
}
-function NI({ ext: e = "", filename: t = "", count: n = 0, paths: i = [] } = {}) {
+function RI({ ext: e = "", filename: t = "", count: n = 0, paths: i = [] } = {}) {
const o = String(e || "").trim(), r = String(t || "").trim(), l = Math.max(0, Number(n) || 0), a = Array.isArray(i) ? i.map((s) => String(s || "").trim()).filter(Boolean) : [];
if (l < 2) return `${o} file`;
const c = [`${o}+ name collision in current view (${l})`];
@@ -9292,23 +9307,23 @@ function NI({ ext: e = "", filename: t = "", count: n = 0, paths: i = [] } = {})
return c.push("Click to select collisions in current view"), c.join(`
`);
}
-function uZ(e, t, n = !1, i = null) {
- var p, M, Z, A;
+function IZ(e, t, n = !1, i = null) {
+ var p, S, A, C;
const o = document.createElement("div");
o.className = "mjr-file-badge";
- const r = ((M = (p = String(e || "").split(".").pop()) == null ? void 0 : p.toUpperCase) == null ? void 0 : M.call(p)) || "";
+ const r = ((S = (p = String(e || "").split(".").pop()) == null ? void 0 : p.toUpperCase) == null ? void 0 : S.call(p)) || "";
try {
o.dataset.mjrExt = r;
} catch (g) {
- (Z = console.debug) == null || Z.call(console, g);
+ (A = console.debug) == null || A.call(console, g);
}
- const l = $s({ kind: t }, r), c = {
+ const l = td({ kind: t }, r), c = {
image: "--mjr-badge-image",
video: "--mjr-badge-video",
audio: "--mjr-badge-audio",
model3d: "--mjr-badge-model3d"
}[l], s = c ? `var(${c}, #607D8B)` : "#607D8B", d = "var(--mjr-badge-duplicate-alert, #ff1744)", u = s, I = n ? d : u;
- o.textContent = r + (n ? "+" : ""), o.title = n ? NI({
+ o.textContent = r + (n ? "+" : ""), o.title = n ? RI({
ext: r,
filename: e,
count: i == null ? void 0 : i.count,
@@ -9334,16 +9349,16 @@ function uZ(e, t, n = !1, i = null) {
try {
o.dataset.mjrBadgeBg = u;
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
return o;
}
-function mZ(e, t, n = null) {
+function bZ(e, t, n = null) {
var i, o, r;
if (e)
try {
const l = ((i = e.dataset) == null ? void 0 : i.mjrExt) || "", a = ((o = e.dataset) == null ? void 0 : o.mjrBadgeBg) || "var(--mjr-badge-image, #607D8B)", c = "var(--mjr-badge-duplicate-alert, #ff1744)";
- e.textContent = String(l || "") + (t ? "+" : ""), e.title = t ? NI({
+ e.textContent = String(l || "") + (t ? "+" : ""), e.title = t ? RI({
ext: l,
filename: (n == null ? void 0 : n.filename) || "",
count: n == null ? void 0 : n.count,
@@ -9353,19 +9368,19 @@ function mZ(e, t, n = null) {
(r = console.debug) == null || r.call(console, l);
}
}
-function dr(e) {
+function mr(e) {
return e === !0 ? !0 : e === !1 ? !1 : e === 1 || e === "1" ? !0 : e === 0 || e === "0" ? !1 : null;
}
-function Eo(e, t = []) {
+function qo(e, t = []) {
if (!e || typeof e != "object") return null;
for (const n of t)
if (e[n] != null) return e[n];
return null;
}
-function gZ(e) {
+function pZ(e) {
return typeof e == "string" && e.trim().length > 0;
}
-function IZ(e) {
+function yZ(e) {
var n;
if (Array.isArray(e)) return e.some((i) => String(i ?? "").trim().length > 0);
if (e && typeof e == "object") return Object.keys(e).length > 0;
@@ -9381,37 +9396,37 @@ function IZ(e) {
}
return !0;
}
-function bZ(e) {
- const t = Eo(e, [
+function fZ(e) {
+ const t = qo(e, [
"auto_tags",
"autoTags",
"ai_auto_tags",
"aiAutoTags",
"suggested_tags",
"suggestedTags"
- ]), n = Eo(e, [
+ ]), n = qo(e, [
"enhanced_caption",
"enhancedCaption",
"enhanced_prompt",
"enhancedPrompt",
"ai_enhanced_prompt",
"aiEnhancedPrompt"
- ]), i = dr(
- Eo(e, [
+ ]), i = mr(
+ qo(e, [
"has_ai_auto_tags",
"hasAiAutoTags",
"ai_has_auto_tags",
"aiHasAutoTags"
])
- ), o = dr(
- Eo(e, [
+ ), o = mr(
+ qo(e, [
"has_ai_enhanced_caption",
"hasAiEnhancedCaption",
"ai_has_enhanced_caption",
"aiHasEnhancedCaption"
])
- ), r = dr(
- Eo(e, [
+ ), r = mr(
+ qo(e, [
"has_ai_vector",
"hasAiVector",
"has_vector_embedding",
@@ -9419,50 +9434,50 @@ function bZ(e) {
"vector_indexed",
"vectorIndexed"
])
- ), l = dr(
- Eo(e, ["has_ai_info", "hasAiInfo", "ai_indexed", "aiIndexed"])
- ), a = i === !0 || i === null && IZ(t), c = o === !0 || o === null && gZ(n), s = r === !0 || l === !0;
+ ), l = mr(
+ qo(e, ["has_ai_info", "hasAiInfo", "ai_indexed", "aiIndexed"])
+ ), a = i === !0 || i === null && yZ(t), c = o === !0 || o === null && pZ(n), s = r === !0 || l === !0;
return { hasAiInfo: l === !0 || a || c || s, hasAutoTags: a, hasEnhancedPrompt: c, hasVectorIndexed: s };
}
-function $a(e) {
- var p, M;
+function ec(e) {
+ var p, S;
const t = document.createElement("span");
t.className = "mjr-workflow-dot mjr-asset-status-dot";
- const n = dr((e == null ? void 0 : e.has_workflow) ?? (e == null ? void 0 : e.hasWorkflow)), i = dr((e == null ? void 0 : e.has_generation_data) ?? (e == null ? void 0 : e.hasGenerationData)), o = _a(), r = o.queueLength, l = o.active || r > 0;
+ const n = mr((e == null ? void 0 : e.has_workflow) ?? (e == null ? void 0 : e.hasWorkflow)), i = mr((e == null ? void 0 : e.has_generation_data) ?? (e == null ? void 0 : e.hasGenerationData)), o = $a(), r = o.queueLength, l = o.active || r > 0;
let a = "Pending: parsing metadataβ¦";
const c = n === !0 || i === !0, s = n === !1 || i === !1, d = n === null || i === null;
n === !0 && i === !0 ? a = "Complete: workflow + generation data detected" : c ? a = n === !0 ? "Partial: workflow only (generation data missing)" : "Partial: generation data only (workflow missing)" : s && !c && !d ? a = "None: no workflow or generation data found" : d && (a = "Pending: metadata not parsed yet");
let u = d ? "pending" : n === !0 && i === !0 ? "success" : c ? "warning" : "error";
- l && u !== "success" && (u = "pending", a = r > 0 ? `Pending: database metadata enrichment in progress (${r} queued)` : "Pending: database metadata enrichment in progress"), la(t, u, a, { asset: e });
- const I = bZ(e);
+ l && u !== "success" && (u = "pending", a = r > 0 ? `Pending: database metadata enrichment in progress (${r} queued)` : "Pending: database metadata enrichment in progress"), aa(t, u, a, { asset: e });
+ const I = fZ(e);
if (I.hasAiInfo) {
- const Z = [];
- I.hasVectorIndexed && Z.push("vector indexed"), I.hasAutoTags && Z.push("AI tag suggestions"), I.hasEnhancedPrompt && Z.push("enhanced prompt"), t.textContent = "";
- const A = document.createElement("i");
- A.className = "pi pi-sparkles", A.setAttribute("aria-hidden", "true"), A.style.fontSize = "11px", A.style.lineHeight = "1", t.appendChild(A);
+ const A = [];
+ I.hasVectorIndexed && A.push("vector indexed"), I.hasAutoTags && A.push("AI tag suggestions"), I.hasEnhancedPrompt && A.push("enhanced prompt"), t.textContent = "";
+ const C = document.createElement("i");
+ C.className = "pi pi-sparkles", C.setAttribute("aria-hidden", "true"), C.style.fontSize = "11px", C.style.lineHeight = "1", t.appendChild(C);
try {
t.dataset.mjrAi = "1";
} catch (g) {
(p = console.debug) == null || p.call(console, g);
}
t.title = `${a}
-AI: ${Z.length ? Z.join(", ") : "indexed"}
+AI: ${A.length ? A.join(", ") : "indexed"}
Click to rescan this file`;
} else {
try {
t.dataset.mjrAi = "0";
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
t.textContent = "β", t.title = `${a}
Click to rescan this file`;
}
return t;
}
-function la(e, t, n = "", i = {}) {
+function aa(e, t, n = "", i = {}) {
var l, a;
if (!e) return;
- const o = String(t || "").toLowerCase(), r = rZ(o, { dot: e, ...i || {} });
+ const o = String(t || "").toLowerCase(), r = cZ(o, { dot: e, ...i || {} });
try {
e.dataset.mjrStatus = o || "neutral";
} catch (c) {
@@ -9513,7 +9528,7 @@ function Ya(e) {
}
return n;
}
-function pZ(e) {
+function hZ(e) {
if (Array.isArray(e))
return e.map((t) => String(t ?? "").trim()).filter(Boolean);
if (typeof e == "string") {
@@ -9529,11 +9544,11 @@ function pZ(e) {
}
return [];
}
-function ed(e) {
+function nd(e) {
const t = Number(e) / 1e3;
return t >= 60 ? "#FF9800" : t >= 30 ? "#FFC107" : t >= 10 ? "#8BC34A" : "#4CAF50";
}
-function RI(e) {
+function FI(e) {
const t = e / 1e3;
if (t >= 60) {
const i = (t / 60).toFixed(1);
@@ -9548,7 +9563,7 @@ function RI(e) {
title: `Generation time: ${n} seconds`
};
}
-function td(e, { maxMs: t = 864e5 } = {}) {
+function id(e, { maxMs: t = 864e5 } = {}) {
let n;
if (e == null) return 0;
if (typeof e == "string") {
@@ -9567,10 +9582,10 @@ function td(e, { maxMs: t = 864e5 } = {}) {
n = Number(e);
return !Number.isFinite(n) || n <= 0 || n >= Number(t) ? 0 : n;
}
-function FI(e) {
+function OI(e) {
const t = document.createElement("div");
t.className = "mjr-tags-badge";
- const n = pZ(e);
+ const n = hZ(e);
return n.length === 0 ? (t.style.display = "none", t) : (t.textContent = n.join(", "), t.title = `Tags: ${n.join(", ")}`, t.style.cssText = `
position: absolute;
bottom: 6px;
@@ -9589,13 +9604,13 @@ function FI(e) {
box-shadow: 0 2px 4px rgba(0,0,0,0.3);
`, t);
}
-const Tn = js({
+const Tn = Ls({
open: !1,
x: 0,
y: 0,
assets: []
});
-function yZ() {
+function CZ() {
var e;
try {
window.dispatchEvent(new CustomEvent("mjr-close-all-menus"));
@@ -9603,13 +9618,13 @@ function yZ() {
(e = console.debug) == null || e.call(console, t);
}
}
-function fZ({ x: e = 0, y: t = 0, assets: n = [] } = {}) {
- yZ(), Tn.open = Array.isArray(n) && n.length > 0, Tn.x = Number(e) || 0, Tn.y = Number(t) || 0, Tn.assets = Array.isArray(n) ? [...n] : [];
+function ZZ({ x: e = 0, y: t = 0, assets: n = [] } = {}) {
+ CZ(), Tn.open = Array.isArray(n) && n.length > 0, Tn.x = Number(e) || 0, Tn.y = Number(t) || 0, Tn.assets = Array.isArray(n) ? [...n] : [];
}
-function Ho() {
+function Po() {
Tn.open = !1, Tn.x = 0, Tn.y = 0, Tn.assets = [];
}
-function hZ(e) {
+function AZ(e) {
var n;
if (!e || typeof e != "object") return null;
const t = e.filepath || e.path || ((n = e == null ? void 0 : e.file_info) == null ? void 0 : n.filepath) || "";
@@ -9618,30 +9633,30 @@ function hZ(e) {
filename: e.filename || "",
subfolder: e.subfolder || "",
type: (e.type || "output").toLowerCase(),
- root_id: vi(e),
+ root_id: Mi(e),
kind: e.kind || ""
} : null;
}
-async function nd({ x: e, y: t, assets: n }) {
- const i = Array.isArray(n) ? n.map(hZ).filter(Boolean) : [];
+async function od({ x: e, y: t, assets: n }) {
+ const i = Array.isArray(n) ? n.map(AZ).filter(Boolean) : [];
if (!i.length) {
- Ce(m("toast.noValidAssetsSelected", "No valid assets selected."), "warning");
+ Ze(m("toast.noValidAssetsSelected", "No valid assets selected."), "warning");
return;
}
- fZ({
+ ZZ({
x: Number(e) || 0,
y: Number(t) || 0,
assets: i
});
}
-async function rs(e, t) {
- if (!ye.DELETE_CONFIRMATION) return !0;
+async function as(e, t) {
+ if (!fe.DELETE_CONFIRMATION) return !0;
const n = e > 1 ? m("dialog.deleteSelectedFiles", "Delete {count} selected files?", { count: e }) : m("dialog.deleteSingleFile", 'Delete "{label}"?', {
label: String(t || m("label.thisFile", "this file"))
});
- return bi(n, m("dialog.confirmDeleteTitle", "Majoor: Confirm delete"));
+ return yi(n, m("dialog.confirmDeleteTitle", "Majoor: Confirm delete"));
}
-const CZ = /* @__PURE__ */ new Set([
+const WZ = /* @__PURE__ */ new Set([
"CON",
"PRN",
"AUX",
@@ -9664,16 +9679,16 @@ const CZ = /* @__PURE__ */ new Set([
"LPT7",
"LPT8",
"LPT9"
-]), hu = 255;
-function id(e) {
+]), Zu = 255;
+function rd(e) {
try {
const t = String(e ?? "").trim();
if (!t)
return { valid: !1, reason: "Filename cannot be empty" };
- if (t.length > hu)
+ if (t.length > Zu)
return {
valid: !1,
- reason: `Filename is too long (max ${hu} characters)`
+ reason: `Filename is too long (max ${Zu} characters)`
};
if (t.includes("/") || t.includes("\\"))
return { valid: !1, reason: "Filename cannot contain path separators" };
@@ -9687,34 +9702,34 @@ function id(e) {
if (t.endsWith(".") || t.endsWith(" "))
return { valid: !1, reason: "Filename cannot end with a dot or space" };
const n = t.split(".")[0].toUpperCase();
- return CZ.has(n) ? { valid: !1, reason: "Filename uses a reserved Windows name" } : { valid: !0, reason: "" };
+ return WZ.has(n) ? { valid: !1, reason: "Filename uses a reserved Windows name" } : { valid: !0, reason: "" };
} catch (t) {
return { valid: !1, reason: String(t || "Invalid filename") };
}
}
-function OI(e) {
+function zI(e) {
try {
return String(e ?? "").trim();
} catch {
return "";
}
}
-function Cu(e) {
- const t = OI(e);
+function Au(e) {
+ const t = zI(e);
if (!t) return { stem: "", ext: "" };
const n = t.lastIndexOf(".");
return n <= 0 || n === t.length - 1 ? { stem: t, ext: "" } : { stem: t.slice(0, n), ext: t.slice(n) };
}
-function od(e, t) {
- const n = OI(e);
+function ld(e, t) {
+ const n = zI(e);
if (!n) return "";
- const i = Cu(t);
- return !Cu(n).ext && i.ext ? `${n}${i.ext}` : n;
+ const i = Au(t);
+ return !Au(n).ext && i.ext ? `${n}${i.ext}` : n;
}
-const ZZ = 350, pl = /* @__PURE__ */ new Map();
-function AZ(e) {
+const wZ = 350, yl = /* @__PURE__ */ new Map();
+function MZ(e) {
var n, i, o, r;
- const t = pl.get(e);
+ const t = yl.get(e);
if (t) {
try {
clearTimeout(t.timer);
@@ -9726,17 +9741,17 @@ function AZ(e) {
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
- pl.delete(e);
+ yl.delete(e);
}
}
-function zI(e) {
- e && AZ(String(e));
+function JI(e) {
+ e && MZ(String(e));
}
-function JI() {
- for (const e of Array.from(pl.keys()))
- zI(e);
+function TI() {
+ for (const e of Array.from(yl.keys()))
+ JI(e);
}
-function TI(e, t, {
+function BI(e, t, {
onSuccess: n,
onFailure: i,
successMessage: o = null,
@@ -9744,23 +9759,23 @@ function TI(e, t, {
warnPrefix: l = "[RatingUpdater]"
} = {}) {
if (!e) return;
- zI(e);
+ JI(e);
const a = new AbortController(), c = setTimeout(async () => {
- pl.delete(String(e));
+ yl.delete(String(e));
try {
- const s = await Do(e, t, { signal: a.signal });
+ const s = await Ho(e, t, { signal: a.signal });
if (!(s != null && s.ok)) {
- Ce((s == null ? void 0 : s.error) || r || "Failed to update rating", "error"), i == null || i(s);
+ Ze((s == null ? void 0 : s.error) || r || "Failed to update rating", "error"), i == null || i(s);
return;
}
- o && Ce(o, "success", 1500), n == null || n(s);
+ o && Ze(o, "success", 1500), n == null || n(s);
} catch (s) {
- li(s, l, { showToast: !0 }), i == null || i(s);
+ ai(s, l, { showToast: !0 }), i == null || i(s);
}
- }, ZZ);
- pl.set(String(e), { timer: c, controller: a });
+ }, wZ);
+ yl.set(String(e), { timer: c, controller: a });
}
-function Zu() {
+function Wu() {
return {
open: !1,
x: 0,
@@ -9769,11 +9784,11 @@ function Zu() {
title: ""
};
}
-const Kt = js({
+const Kt = Ls({
portalOwnerId: "",
mountedPortalIds: [],
- main: Zu(),
- submenu: Zu(),
+ main: Wu(),
+ submenu: Wu(),
tags: {
open: !1,
x: 0,
@@ -9782,11 +9797,11 @@ const Kt = js({
onChanged: null
}
});
-let WZ = 1;
-function BI(e) {
+let SZ = 1;
+function UI(e) {
e && (e.open = !1, e.x = 0, e.y = 0, e.items = [], e.title = "");
}
-function wZ(e = "") {
+function GZ(e = "") {
var t;
try {
window.dispatchEvent(
@@ -9796,11 +9811,11 @@ function wZ(e = "") {
(t = console.debug) == null || t.call(console, n);
}
}
-function MZ() {
- const e = `mjr-viewer-context-menu-portal-${WZ++}`;
+function xZ() {
+ const e = `mjr-viewer-context-menu-portal-${SZ++}`;
return Kt.mountedPortalIds.push(e), Kt.portalOwnerId || (Kt.portalOwnerId = e), e;
}
-function SZ(e) {
+function jZ(e) {
const t = Kt.mountedPortalIds.filter((n) => n !== e);
Kt.mountedPortalIds.splice(
0,
@@ -9808,31 +9823,31 @@ function SZ(e) {
...t
), Kt.portalOwnerId === e && (Kt.portalOwnerId = Kt.mountedPortalIds[0] || "");
}
-function GZ(e) {
+function vZ(e) {
return String(Kt.portalOwnerId || "") === String(e || "");
}
-function xZ({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
- wZ("viewer"), KI(), ur(), Kt.main.open = !0, Kt.main.x = Number(e) || 0, Kt.main.y = Number(t) || 0, Kt.main.items = Array.isArray(n) ? n.filter(Boolean) : [], Kt.main.title = String(i || "");
-}
-function UI() {
- BI(Kt.main), ur();
-}
-function jZ({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
- Kt.submenu.open = !0, Kt.submenu.x = Number(e) || 0, Kt.submenu.y = Number(t) || 0, Kt.submenu.items = Array.isArray(n) ? n.filter(Boolean) : [], Kt.submenu.title = String(i || "");
-}
-function ur() {
- BI(Kt.submenu);
-}
-function vZ({ x: e = 0, y: t = 0, asset: n = null, onChanged: i = null } = {}) {
- UI(), Kt.tags.open = !!n, Kt.tags.x = Number(e) || 0, Kt.tags.y = Number(t) || 0, Kt.tags.asset = n || null, Kt.tags.onChanged = typeof i == "function" ? i : null;
+function LZ({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
+ GZ("viewer"), DI(), gr(), Kt.main.open = !0, Kt.main.x = Number(e) || 0, Kt.main.y = Number(t) || 0, Kt.main.items = Array.isArray(n) ? n.filter(Boolean) : [], Kt.main.title = String(i || "");
}
function KI() {
+ UI(Kt.main), gr();
+}
+function VZ({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
+ Kt.submenu.open = !0, Kt.submenu.x = Number(e) || 0, Kt.submenu.y = Number(t) || 0, Kt.submenu.items = Array.isArray(n) ? n.filter(Boolean) : [], Kt.submenu.title = String(i || "");
+}
+function gr() {
+ UI(Kt.submenu);
+}
+function YZ({ x: e = 0, y: t = 0, asset: n = null, onChanged: i = null } = {}) {
+ KI(), Kt.tags.open = !!n, Kt.tags.x = Number(e) || 0, Kt.tags.y = Number(t) || 0, Kt.tags.asset = n || null, Kt.tags.onChanged = typeof i == "function" ? i : null;
+}
+function DI() {
Kt.tags.open = !1, Kt.tags.x = 0, Kt.tags.y = 0, Kt.tags.asset = null, Kt.tags.onChanged = null;
}
-function jo() {
- UI(), KI();
+function Lo() {
+ KI(), DI();
}
-const so = {
+const mo = {
COPY_PATH: "Ctrl+Shift+C",
DOWNLOAD: "Ctrl+S",
OPEN_IN_FOLDER: "Ctrl+Shift+E",
@@ -9841,14 +9856,14 @@ const so = {
RATING_SUBMENU: "1-5",
RENAME: "F2",
DELETE: "Del"
-}, Au = ["B", "KB", "MB", "GB", "TB"], aa = /* @__PURE__ */ new WeakMap();
-let LZ = 1;
-function DI(e = "viewer-menu-item") {
- return `${e}-${LZ++}`;
+}, wu = ["B", "KB", "MB", "GB", "TB"], ca = /* @__PURE__ */ new WeakMap();
+let kZ = 1;
+function EI(e = "viewer-menu-item") {
+ return `${e}-${kZ++}`;
}
-function Si(e, t, n, i, o = {}) {
+function ji(e, t, n, i, o = {}) {
return {
- id: DI(),
+ id: EI(),
type: "item",
label: String(e || ""),
iconClass: t ? String(t) : "",
@@ -9859,13 +9874,13 @@ function Si(e, t, n, i, o = {}) {
submenu: Array.isArray(o.submenu) ? o.submenu.filter(Boolean) : null
};
}
-function ca() {
+function sa() {
return {
- id: DI("viewer-menu-separator"),
+ id: EI("viewer-menu-separator"),
type: "separator"
};
}
-function YZ(e) {
+function XZ(e) {
const t = String(e || "").trim();
if (!t) return !1;
if (t.startsWith("/")) return !0;
@@ -9876,7 +9891,7 @@ function YZ(e) {
return !1;
}
}
-function Wu(e, t, n) {
+function Mu(e, t, n) {
var o, r;
const i = e == null ? void 0 : e.id;
try {
@@ -9890,100 +9905,100 @@ function Wu(e, t, n) {
(r = console.debug) == null || r.call(console, l);
}
if (i) {
- TI(String(i), t, {
+ BI(String(i), t, {
successMessage: t > 0 ? `Rating set to ${t} stars` : "Rating cleared",
errorMessage: "Failed to update rating",
warnPrefix: "[ViewerContextMenu]",
onSuccess: () => {
- ii(
- Ri,
+ oi(
+ Fi,
{ assetId: String(i), rating: t },
{ warnPrefix: "[ViewerContextMenu]" }
);
},
onFailure: (l) => {
- li(l, "[ViewerContextMenu] Rating update", { showToast: !0 });
+ ai(l, "[ViewerContextMenu] Rating update", { showToast: !0 });
}
});
return;
}
- Do(e, t).catch((l) => {
- li(l, "[ViewerContextMenu] Rating update", { showToast: !0 });
+ Ho(e, t).catch((l) => {
+ ai(l, "[ViewerContextMenu] Rating update", { showToast: !0 });
});
}
-function VZ(e) {
+function NZ(e) {
let t = Number(e);
if (!Number.isFinite(t) || t < 0) return "";
let n = 0;
- for (; t >= 1024 && n < Au.length - 1; )
+ for (; t >= 1024 && n < wu.length - 1; )
t /= 1024, n += 1;
- return `${n === 0 ? `${Math.round(t)}` : t.toFixed(2)} ${Au[n]}`;
+ return `${n === 0 ? `${Math.round(t)}` : t.toFixed(2)} ${wu[n]}`;
}
-function kZ(e, t, n) {
+function RZ(e, t, n) {
const i = [5, 4, 3, 2, 1].map(
- (o) => Si(
+ (o) => ji(
`${o} Stars`,
"pi pi-star",
null,
async () => {
- Wu(e, o, t);
+ Mu(e, o, t);
},
{ disabled: !n }
)
);
- return i.push(ca()), i.push(
- Si(
+ return i.push(sa()), i.push(
+ ji(
m("ctx.resetRating", "Reset rating"),
"pi pi-star",
"0",
async () => {
- Wu(e, 0, t);
+ Mu(e, 0, t);
},
{ disabled: !n }
)
), i;
}
-function XZ({
+function FZ({
asset: e,
event: t,
getCurrentViewUrl: n,
onAssetChanged: i
}) {
- const o = typeof n == "function" ? n(e) : Bi(e), r = !!(e != null && e.id || e != null && e.filepath);
+ const o = typeof n == "function" ? n(e) : Ki(e), r = !!(e != null && e.id || e != null && e.filepath);
return [
- Si(
+ ji(
m("ctx.openInNewTab", "Open in New Tab"),
"pi pi-external-link",
null,
async () => {
- YZ(o) && window.open(o, "_blank", "noopener,noreferrer");
+ XZ(o) && window.open(o, "_blank", "noopener,noreferrer");
}
),
- Si(
+ ji(
m("ctx.copyPath", "Copy path"),
"pi pi-copy",
- so.COPY_PATH,
+ mo.COPY_PATH,
async () => {
const a = e != null && e.filepath ? String(e.filepath) : "";
if (!a) {
- Ce(m("toast.noFilePath"), "error");
+ Ze(m("toast.noFilePath"), "error");
return;
}
try {
- await navigator.clipboard.writeText(a), Ce(m("toast.pathCopied"), "success", 2e3);
+ await navigator.clipboard.writeText(a), Ze(m("toast.pathCopied"), "success", 2e3);
} catch (c) {
- console.error("[ViewerContextMenu] Copy failed:", c), Ce(m("toast.pathCopyFailed"), "error");
+ console.error("[ViewerContextMenu] Copy failed:", c), Ze(m("toast.pathCopyFailed"), "error");
}
}
),
- Si(
+ ji(
m("ctx.downloadOriginal", "Download Original"),
"pi pi-download",
- so.DOWNLOAD,
+ mo.DOWNLOAD,
async () => {
if (!e || !e.filepath) return;
- const a = Da(e.filepath), c = document.createElement("a");
- c.href = a, c.download = e.filename, document.body.appendChild(c), c.click(), document.body.removeChild(c), Ce(
+ const a = Ea(e.filepath), c = document.createElement("a");
+ c.href = a, c.download = e.filename, document.body.appendChild(c), c.click(), document.body.removeChild(c), Ze(
m("toast.downloadingFile", "Downloading {filename}...", {
filename: e.filename
}),
@@ -9993,23 +10008,23 @@ function XZ({
},
{ disabled: !(e != null && e.filepath) }
),
- Si(
+ ji(
m("ctx.openInFolder", "Open in folder"),
"pi pi-folder-open",
- so.OPEN_IN_FOLDER,
+ mo.OPEN_IN_FOLDER,
async () => {
- const a = await Rs(e);
- a != null && a.ok ? Ce(m("toast.openedInFolder"), "info", 2e3) : Ce((a == null ? void 0 : a.error) || m("toast.openFolderFailed"), "error");
+ const a = await Os(e);
+ a != null && a.ok ? Ze(m("toast.openedInFolder"), "info", 2e3) : Ze((a == null ? void 0 : a.error) || m("toast.openFolderFailed"), "error");
},
{ disabled: !(e != null && e.id || e != null && e.filepath) }
),
- Si(
+ ji(
m("ctx.addToCollection", "Add to collection"),
"pi pi-bookmark",
- so.ADD_TO_COLLECTION,
+ mo.ADD_TO_COLLECTION,
async () => {
try {
- await nd({
+ await od({
x: t == null ? void 0 : t.clientX,
y: t == null ? void 0 : t.clientY,
assets: [e]
@@ -10019,20 +10034,20 @@ function XZ({
}
}
),
- ca(),
- Si(
+ sa(),
+ ji(
m("ctx.editTags", "Edit tags"),
"pi pi-tags",
- so.EDIT_TAGS,
+ mo.EDIT_TAGS,
async () => {
- vZ({
+ YZ({
x: (Number(t == null ? void 0 : t.clientX) || 0) + 6,
y: (Number(t == null ? void 0 : t.clientY) || 0) + 6,
asset: e,
onChanged: (a) => {
var c;
- e.tags = a, ii(
- Uo,
+ e.tags = a, oi(
+ Do,
{ assetId: String(e.id), tags: a },
{ warnPrefix: "[ViewerContextMenu]" }
);
@@ -10046,19 +10061,19 @@ function XZ({
},
{ closeOnSelect: !1 }
),
- ca(),
- Si(
+ sa(),
+ ji(
m("ctx.setRating", "Set rating"),
"pi pi-star",
- `${so.RATING_SUBMENU} >`,
+ `${mo.RATING_SUBMENU} >`,
null,
{
disabled: !r,
closeOnSelect: !1,
- submenu: kZ(e, i, r)
+ submenu: RZ(e, i, r)
}
),
- Si(
+ ji(
m("ctx.refreshMetadata", "Refresh metadata"),
"pi pi-sync",
"R",
@@ -10066,9 +10081,9 @@ function XZ({
var a;
if (e != null && e.id)
try {
- const c = await Bg(e.id, { refresh: !0 });
+ const c = await Ug(e.id, { refresh: !0 });
if (!(c != null && c.ok) || !(c != null && c.data)) {
- Ce(
+ Ze(
(c == null ? void 0 : c.error) || m("toast.metadataRefreshFailed", "Failed to refresh metadata."),
"error"
);
@@ -10076,72 +10091,72 @@ function XZ({
}
const s = c.data;
try {
- ii(
- eI,
+ oi(
+ tI,
{ assetId: String(e.id), info: s },
{ warnPrefix: "[ViewerContextMenu]" }
);
} catch (p) {
(a = console.debug) == null || a.call(console, p);
}
- const d = [], u = VZ(s == null ? void 0 : s.size_bytes);
+ const d = [], u = NZ(s == null ? void 0 : s.size_bytes);
u && d.push(u), s != null && s.mime && d.push(s.mime);
const I = d.length ? ` (${d.join(", ")})` : "";
- Ce(
+ Ze(
m("toast.metadataRefreshed", "Metadata refreshed{suffix}", { suffix: I }),
"success",
3e3
);
} catch (c) {
- li(c, "[ViewerContextMenu] Metadata refresh", {
+ ai(c, "[ViewerContextMenu] Metadata refresh", {
showToast: !0
});
}
},
{ disabled: !(e != null && e.id) }
),
- ca(),
- Si(
+ sa(),
+ ji(
m("ctx.rename", "Rename"),
"pi pi-pencil",
- so.RENAME,
+ mo.RENAME,
async () => {
var u, I;
if (!(e != null && e.id || e != null && e.filepath)) return;
- const a = e.filename || "", c = await ji(
+ const a = e.filename || "", c = await Vi(
m("dialog.rename.title", "Rename file"),
a
- ), s = od(c, a);
+ ), s = ld(c, a);
if (!s || s === a) return;
- const d = id(s);
+ const d = rd(s);
if (!d.valid) {
- Ce(d.reason, "error");
+ Ze(d.reason, "error");
return;
}
try {
- const p = await Fs(e, s);
+ const p = await zs(e, s);
if (p != null && p.ok) {
- const M = (u = p == null ? void 0 : p.data) == null ? void 0 : u.asset;
- M && typeof M == "object" ? Object.assign(e, M) : (e.filename = s, e.filepath = e.filepath.replace(/[^\\/]+$/, s), e.path && (e.path = String(e.path).replace(/[^\\/]+$/, s)), e.file_info && typeof e.file_info == "object" && (e.file_info.filename = s, e.file_info.filepath && (e.file_info.filepath = String(
+ const S = (u = p == null ? void 0 : p.data) == null ? void 0 : u.asset;
+ S && typeof S == "object" ? Object.assign(e, S) : (e.filename = s, e.filepath = e.filepath.replace(/[^\\/]+$/, s), e.path && (e.path = String(e.path).replace(/[^\\/]+$/, s)), e.file_info && typeof e.file_info == "object" && (e.file_info.filename = s, e.file_info.filepath && (e.file_info.filepath = String(
e.file_info.filepath
).replace(/[^\\/]+$/, s)), e.file_info.path && (e.file_info.path = String(e.file_info.path).replace(
/[^\\/]+$/,
s
- )))), Ce(m("toast.fileRenamedSuccess"), "success");
+ )))), Ze(m("toast.fileRenamedSuccess"), "success");
try {
window.dispatchEvent(
new CustomEvent("mjr:reload-grid", {
detail: { reason: "viewer-rename" }
})
);
- } catch (Z) {
- (I = console.debug) == null || I.call(console, Z);
+ } catch (A) {
+ (I = console.debug) == null || I.call(console, A);
}
i == null || i();
} else
- Ce((p == null ? void 0 : p.error) || m("toast.fileRenameFailed"), "error");
+ Ze((p == null ? void 0 : p.error) || m("toast.fileRenameFailed"), "error");
} catch (p) {
- Ce(
+ Ze(
m("toast.errorRenaming", "Error renaming file: {error}", {
error: (p == null ? void 0 : p.message) || String(p || "")
}),
@@ -10151,17 +10166,17 @@ function XZ({
},
{ disabled: !(e != null && e.id || e != null && e.filepath) }
),
- Si(
+ ji(
m("ctx.delete", "Delete"),
"pi pi-trash",
- so.DELETE,
+ mo.DELETE,
async () => {
- if (!(!(e != null && e.id || e != null && e.filepath) || !await rs(1, e == null ? void 0 : e.filename)))
+ if (!(!(e != null && e.id || e != null && e.filepath) || !await as(1, e == null ? void 0 : e.filename)))
try {
- const c = await Ma(e);
- c != null && c.ok ? (Ce(m("toast.fileDeletedSuccess"), "success"), i == null || i()) : Ce((c == null ? void 0 : c.error) || m("toast.fileDeleteFailed"), "error");
+ const c = await Sa(e);
+ c != null && c.ok ? (Ze(m("toast.fileDeletedSuccess"), "success"), i == null || i()) : Ze((c == null ? void 0 : c.error) || m("toast.fileDeleteFailed"), "error");
} catch (c) {
- Ce(
+ Ze(
m("toast.errorDeleting", "Error deleting file: {error}", {
error: (c == null ? void 0 : c.message) || String(c || "")
}),
@@ -10173,24 +10188,24 @@ function XZ({
)
];
}
-function NZ({
+function OZ({
overlayEl: e,
getCurrentAsset: t,
getCurrentViewUrl: n,
onAssetChanged: i
} = {}) {
if (!e || typeof t != "function") return;
- const o = aa.get(e);
+ const o = ca.get(e);
if (typeof (o == null ? void 0 : o.unbind) == "function")
return o.unbind;
const r = async (a) => {
if (!e.contains(a.target)) return;
a.preventDefault(), a.stopPropagation();
const c = t();
- c && xZ({
+ c && LZ({
x: a.clientX,
y: a.clientY,
- items: XZ({
+ items: FZ({
asset: c,
event: a,
getCurrentViewUrl: n,
@@ -10211,40 +10226,40 @@ function NZ({
(a = console.debug) == null || a.call(console, d);
}
try {
- JI();
+ TI();
const d = globalThis == null ? void 0 : globalThis._ratingDebounceTimers;
d && typeof d.clear == "function" && d.clear();
} catch (d) {
(c = console.debug) == null || c.call(console, d);
}
try {
- jo();
+ Lo();
} catch (d) {
(s = console.debug) == null || s.call(console, d);
}
- aa.delete(e);
+ ca.delete(e);
};
- return aa.set(e, { unbind: l }), l;
+ return ca.set(e, { unbind: l }), l;
}
-function RZ(e) {
+function zZ(e) {
var n, i;
- const t = e ? aa.get(e) : null;
+ const t = e ? ca.get(e) : null;
try {
(n = t == null ? void 0 : t.unbind) == null || n.call(t);
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
}
-const Qi = () => {
+const eo = () => {
};
-function ls(e) {
+function cs(e) {
try {
- return !!(ye != null && ye[e]);
+ return !!(fe != null && fe[e]);
} catch {
return !1;
}
}
-function as(e, t) {
+function ss(e, t) {
var n;
try {
console.warn(`[Majoor] ${e}`, t);
@@ -10252,15 +10267,15 @@ function as(e, t) {
(n = console.debug) == null || n.call(console, i);
}
}
-function pt(e, t = "safeCall") {
+function bt(e, t = "safeCall") {
try {
return e == null ? void 0 : e();
} catch (n) {
- ls("DEBUG_SAFE_CALL") && as(t, n);
+ cs("DEBUG_SAFE_CALL") && ss(t, n);
return;
}
}
-function _e(e, t, n, i, o = "safeAddListener") {
+function Qe(e, t, n, i, o = "safeAddListener") {
var r;
try {
return (r = e == null ? void 0 : e.addEventListener) == null || r.call(e, t, n, i), () => {
@@ -10268,22 +10283,22 @@ function _e(e, t, n, i, o = "safeAddListener") {
try {
(l = e == null ? void 0 : e.removeEventListener) == null || l.call(e, t, n, i);
} catch (a) {
- ls("DEBUG_SAFE_LISTENERS") && as(`${o}:remove:${String(t || "")}`, a);
+ cs("DEBUG_SAFE_LISTENERS") && ss(`${o}:remove:${String(t || "")}`, a);
}
};
} catch (l) {
- return ls("DEBUG_SAFE_LISTENERS") && as(`${o}:add:${String(t || "")}`, l), Qi;
+ return cs("DEBUG_SAFE_LISTENERS") && ss(`${o}:add:${String(t || "")}`, l), eo;
}
}
function In(e) {
const t = Number(e);
return Number.isFinite(t) ? Math.max(0, Math.min(1, t)) : 0;
}
-function uo(e, t, n) {
+function go(e, t, n) {
const i = Number(e);
return Number.isFinite(i) ? Math.max(Number(t), Math.min(Number(n), i)) : Number(t);
}
-function FZ() {
+function JZ() {
return {
assets: [],
currentIndex: 0,
@@ -10340,7 +10355,7 @@ function FZ() {
_scopesLastAt: 0
};
}
-function bo(e) {
+function yo(e) {
try {
const t = Number(e);
if (Number.isFinite(t) && t > 0) return t;
@@ -10359,15 +10374,15 @@ function bo(e) {
return null;
}
}
-function EI(e) {
+function HI(e) {
try {
const t = (e == null ? void 0 : e.metadata_raw) || {}, n = (t == null ? void 0 : t.raw_ffprobe) || {}, i = (n == null ? void 0 : n.video_stream) || {};
- return bo(e == null ? void 0 : e.fps) ?? bo(t == null ? void 0 : t.fps) ?? bo(t == null ? void 0 : t.frame_rate) ?? bo(i == null ? void 0 : i.avg_frame_rate) ?? bo(i == null ? void 0 : i.r_frame_rate);
+ return yo(e == null ? void 0 : e.fps) ?? yo(t == null ? void 0 : t.fps) ?? yo(t == null ? void 0 : t.frame_rate) ?? yo(i == null ? void 0 : i.avg_frame_rate) ?? yo(i == null ? void 0 : i.r_frame_rate);
} catch {
return null;
}
}
-function HI(e, t) {
+function qI(e, t) {
var n;
try {
const i = (e == null ? void 0 : e.metadata_raw) || {}, o = (i == null ? void 0 : i.raw_ffprobe) || {}, r = (o == null ? void 0 : o.video_stream) || {}, l = Number(e == null ? void 0 : e.frame_count) || Number(i == null ? void 0 : i.frame_count) || Number(i == null ? void 0 : i.frames) || Number(r == null ? void 0 : r.nb_frames) || Number(r == null ? void 0 : r.nb_read_frames) || 0;
@@ -10380,21 +10395,21 @@ function HI(e, t) {
}
return null;
}
-function OZ(e) {
+function TZ(e) {
const t = Number(e);
return !Number.isFinite(t) || t <= 0 ? "" : Math.abs(t - Math.round(t)) < 1e-3 ? `${Math.round(t)} fps` : `${t.toFixed(3).replace(/\.?0+$/, "")} fps`;
}
-function Hi(e, t = 30) {
- const n = bo(e);
+function Qi(e, t = 30) {
+ const n = yo(e);
if (n != null) return Math.max(1, Math.round(n * 1e3) / 1e3);
- const i = bo(t);
+ const i = yo(t);
return i != null ? Math.max(1, Math.round(i * 1e3) / 1e3) : 30;
}
-const zZ = 400, JZ = 1e3, TZ = 220;
-function BZ(e, t, n) {
+const BZ = 400, UZ = 1e3, KZ = 220;
+function DZ(e, t, n) {
var i, o;
try {
- if (e != null && e.aborted) return Qi;
+ if (e != null && e.aborted) return eo;
const r = setTimeout(
() => {
var a;
@@ -10433,20 +10448,20 @@ function BZ(e, t, n) {
}
};
} catch {
- return Qi;
+ return eo;
}
}
-function yc(e) {
+function fc(e) {
const t = Math.floor(Number(e) || 0);
return t < 10 ? `0${t}` : String(t);
}
-function wu(e) {
+function Su(e) {
const t = Number(e);
if (!Number.isFinite(t) || t < 0) return "0:00";
const n = Math.floor(t), i = Math.floor(n / 3600), o = Math.floor(n % 3600 / 60), r = n % 60;
- return i > 0 ? `${i}:${yc(o)}:${yc(r)}` : `${o}:${yc(r)}`;
+ return i > 0 ? `${i}:${fc(o)}:${fc(r)}` : `${o}:${fc(r)}`;
}
-function So(e, t, n) {
+function xo(e, t, n) {
var o;
const i = document.createElement("button");
i.type = "button", i.className = `mjr-video-btn ${e || ""}`.trim(), n && (i.title = n);
@@ -10457,7 +10472,7 @@ function So(e, t, n) {
}
return i.textContent = t, i;
}
-function Mu(e, t, n, i) {
+function Gu(e, t, n, i) {
var l;
const o = document.createElement("button");
o.type = "button", o.className = `mjr-video-btn ${e || ""}`.trim(), n && (o.title = n);
@@ -10469,18 +10484,18 @@ function Mu(e, t, n, i) {
const r = document.createElement("span");
return r.className = `pi ${t || ""}`.trim(), r.setAttribute("aria-hidden", "true"), o.appendChild(r), { btn: o, icon: r };
}
-function Ol(e, { min: t, max: n, step: i, value: o, title: r, ariaLabel: l, widthPx: a } = {}) {
+function zl(e, { min: t, max: n, step: i, value: o, title: r, ariaLabel: l, widthPx: a } = {}) {
const c = document.createElement("input");
return c.type = "number", c.className = `mjr-video-num ${e || ""}`.trim(), r && (c.title = r), l && c.setAttribute("aria-label", l), t != null && (c.min = String(t)), n != null && (c.max = String(n)), i != null && (c.step = String(i)), o != null && (c.value = String(o)), a != null && (c.style.width = `${a}px`), c;
}
-function UZ(e) {
+function EZ(e) {
try {
return (e == null ? void 0 : e.variant) === "preview" ? "preview" : (e == null ? void 0 : e.variant) === "viewerbar" ? "viewerbar" : "viewer";
} catch {
return "viewer";
}
}
-function KZ(e) {
+function HZ(e) {
try {
const t = Number(e == null ? void 0 : e.initialFps);
return Number.isFinite(t) && t > 0 ? t : null;
@@ -10488,246 +10503,246 @@ function KZ(e) {
return null;
}
}
-function DZ(e, t) {
- var s, d, u, I, p, M, Z;
+function qZ(e, t) {
+ var s, d, u, I, p, S, A;
const n = [];
try {
e.controls = !1, e.loop = !0, e.muted = !0, e.playsInline = !0, e.autoplay = !0;
- } catch (A) {
- (s = console.debug) == null || s.call(console, A);
+ } catch (C) {
+ (s = console.debug) == null || s.call(console, C);
}
const i = document.createElement("div");
i.className = "mjr-video-controls mjr-video-controls--preview";
try {
i.setAttribute("role", "group"), i.setAttribute("aria-label", m("video.previewControls", "Video preview controls"));
- } catch (A) {
- (d = console.debug) == null || d.call(console, A);
+ } catch (C) {
+ (d = console.debug) == null || d.call(console, C);
}
const o = document.createElement("button");
o.type = "button", o.className = "mjr-video-preview-btn", o.title = m("video.playPause", "Play/Pause");
try {
o.setAttribute("aria-label", m("video.playPause", "Play/Pause"));
- } catch (A) {
- (u = console.debug) == null || u.call(console, A);
+ } catch (C) {
+ (u = console.debug) == null || u.call(console, C);
}
const r = document.createElement("span");
r.className = "pi pi-play";
try {
r.setAttribute("aria-hidden", "true");
- } catch (A) {
- (I = console.debug) == null || I.call(console, A);
+ } catch (C) {
+ (I = console.debug) == null || I.call(console, C);
}
o.appendChild(r), i.appendChild(o);
const l = () => {
- var A;
+ var C;
try {
const g = !!(e != null && e.paused);
r.className = `pi ${g ? "pi-play" : "pi-pause"}`;
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
}, a = () => {
- var A, g;
+ var C, g;
try {
- const h = (A = e.play) == null ? void 0 : A.call(e);
- h && typeof h.catch == "function" && h.catch(() => {
+ const Z = (C = e.play) == null ? void 0 : C.call(e);
+ Z && typeof Z.catch == "function" && Z.catch(() => {
});
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
- }, c = (A) => {
- var g, h, f, b;
+ }, c = (C) => {
+ var g, Z, f, b;
try {
- (g = A == null ? void 0 : A.stopPropagation) == null || g.call(A);
- } catch (v) {
- (h = console.debug) == null || h.call(console, v);
+ (g = C == null ? void 0 : C.stopPropagation) == null || g.call(C);
+ } catch (L) {
+ (Z = console.debug) == null || Z.call(console, L);
}
try {
e.paused ? a() : (f = e.pause) == null || f.call(e);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
l();
};
try {
t.appendChild(i);
- } catch (A) {
- (p = console.debug) == null || p.call(console, A);
+ } catch (C) {
+ (p = console.debug) == null || p.call(console, C);
}
try {
a();
- } catch (A) {
- (M = console.debug) == null || M.call(console, A);
+ } catch (C) {
+ (S = console.debug) == null || S.call(console, C);
}
- n.push(_e(e, "loadedmetadata", () => a(), { passive: !0 })), n.push(_e(e, "canplay", () => a(), { passive: !0 })), n.push(_e(o, "click", c)), n.push(_e(e, "play", l, { passive: !0 })), n.push(_e(e, "pause", l, { passive: !0 })), n.push(_e(e, "ended", () => a(), { passive: !0 }));
+ n.push(Qe(e, "loadedmetadata", () => a(), { passive: !0 })), n.push(Qe(e, "canplay", () => a(), { passive: !0 })), n.push(Qe(o, "click", c)), n.push(Qe(e, "play", l, { passive: !0 })), n.push(Qe(e, "pause", l, { passive: !0 })), n.push(Qe(e, "ended", () => a(), { passive: !0 }));
try {
l();
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
return {
controlsEl: i,
destroy: () => {
- var A, g, h;
+ var C, g, Z;
try {
- for (const f of n) pt(() => f == null ? void 0 : f());
+ for (const f of n) bt(() => f == null ? void 0 : f());
} catch (f) {
- (A = console.debug) == null || A.call(console, f);
+ (C = console.debug) == null || C.call(console, f);
}
try {
(g = i.remove) == null || g.call(i);
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
}
};
}
-function qI(e, t = {}) {
+function PI(e, t = {}) {
var n, i, o, r, l, a, c;
try {
- const s = UZ(t), u = String((t == null ? void 0 : t.mediaKind) || "video").toLowerCase() === "audio", I = s === "viewerbar", p = s !== "preview" && !u, M = !0, Z = KZ(t), A = (t == null ? void 0 : t.hostEl) || (e == null ? void 0 : e.parentElement);
- if (!e || !A) return { controlsEl: null, destroy: Qi };
+ const s = EZ(t), u = String((t == null ? void 0 : t.mediaKind) || "video").toLowerCase() === "audio", I = s === "viewerbar", p = s !== "preview" && !u, S = !0, A = HZ(t), C = (t == null ? void 0 : t.hostEl) || (e == null ? void 0 : e.parentElement);
+ if (!e || !C) return { controlsEl: null, destroy: eo };
if (s === "preview")
- return DZ(e, A);
+ return qZ(e, C);
try {
e.loop = !1;
} catch (re) {
(n = console.debug) == null || n.call(console, re);
}
- pt(() => {
+ bt(() => {
var re;
- return (re = A.classList) == null ? void 0 : re.add("mjr-video-host");
- }), pt(() => {
+ return (re = C.classList) == null ? void 0 : re.add("mjr-video-host");
+ }), bt(() => {
var re;
return (re = e.classList) == null ? void 0 : re.add("mjr-video-el");
- }), pt(() => {
- var ie;
- const re = (ie = window.getComputedStyle) == null ? void 0 : ie.call(window, A);
- (re == null ? void 0 : re.position) === "static" && (A.style.position = "relative");
+ }), bt(() => {
+ var ne;
+ const re = (ne = window.getComputedStyle) == null ? void 0 : ne.call(window, C);
+ (re == null ? void 0 : re.position) === "static" && (C.style.position = "relative");
});
const g = document.createElement("div");
g.className = `mjr-video-controls mjr-video-controls--${s}`, I && g.classList.add("mjr-video-controls--modern"), g.setAttribute("role", "group"), g.setAttribute(
"aria-label",
u ? m("video.audioControls", "Audio controls") : m("video.controls", "Video controls")
);
- const h = document.createElement("div");
- h.className = "mjr-video-row mjr-video-row--top";
+ const Z = document.createElement("div");
+ Z.className = "mjr-video-row mjr-video-row--top";
const f = document.createElement("div");
- f.className = "mjr-video-row mjr-video-row--bottom", g.appendChild(h), g.appendChild(f);
+ f.className = "mjr-video-row mjr-video-row--bottom", g.appendChild(Z), g.appendChild(f);
const b = document.createElement("div");
b.className = "mjr-video-seek-wrap";
- const v = document.createElement("input");
- v.className = "mjr-video-range mjr-video-range--seek", v.type = "range", v.min = "0", v.max = String(JZ), v.step = "1", v.value = "0", v.setAttribute("aria-label", m("video.seek", "Seek")), v.title = u ? m("video.seekThroughAudio", "Seek through audio") : m("video.seekThrough", "Seek through video");
- const C = document.createElement("div");
- C.className = "mjr-video-seek-overlay";
- let S = null, W = null, y = null, k = null;
- p && (S = document.createElement("div"), S.className = "mjr-video-seek-zones", W = document.createElement("div"), W.className = "mjr-video-seek-zone mjr-video-seek-zone--leftTrim", y = document.createElement("div"), y.className = "mjr-video-seek-zone mjr-video-seek-zone--selected", k = document.createElement("div"), k.className = "mjr-video-seek-zone mjr-video-seek-zone--rightTrim", S.appendChild(W), S.appendChild(y), S.appendChild(k));
- const G = document.createElement("div");
- G.className = "mjr-video-seek-ticks";
- const z = document.createElement("div");
- z.className = "mjr-video-seek-labels";
+ const L = document.createElement("input");
+ L.className = "mjr-video-range mjr-video-range--seek", L.type = "range", L.min = "0", L.max = String(UZ), L.step = "1", L.value = "0", L.setAttribute("aria-label", m("video.seek", "Seek")), L.title = u ? m("video.seekThroughAudio", "Seek through audio") : m("video.seekThrough", "Seek through video");
+ const h = document.createElement("div");
+ h.className = "mjr-video-seek-overlay";
+ let G = null, W = null, y = null, X = null;
+ p && (G = document.createElement("div"), G.className = "mjr-video-seek-zones", W = document.createElement("div"), W.className = "mjr-video-seek-zone mjr-video-seek-zone--leftTrim", y = document.createElement("div"), y.className = "mjr-video-seek-zone mjr-video-seek-zone--selected", X = document.createElement("div"), X.className = "mjr-video-seek-zone mjr-video-seek-zone--rightTrim", G.appendChild(W), G.appendChild(y), G.appendChild(X));
const x = document.createElement("div");
- x.className = "mjr-video-seek-mark mjr-video-seek-mark--in";
+ x.className = "mjr-video-seek-ticks";
+ const T = document.createElement("div");
+ T.className = "mjr-video-seek-labels";
+ const v = document.createElement("div");
+ v.className = "mjr-video-seek-mark mjr-video-seek-mark--in";
const w = document.createElement("div");
w.className = "mjr-video-seek-mark mjr-video-seek-mark--out";
- const X = document.createElement("div");
- X.className = "mjr-video-seek-playhead";
- const V = document.createElement("div");
- V.className = "mjr-video-seek-playhead-label", C.appendChild(G), C.appendChild(z), C.appendChild(X), C.appendChild(V);
const R = document.createElement("div");
- R.className = "mjr-video-seek-handle mjr-video-seek-handle--in", R.title = m("video.dragSetIn", "Drag to set In"), R.setAttribute("aria-label", m("video.dragSetIn", "Drag to set In"));
- const j = document.createElement("div");
- j.className = "mjr-video-seek-handle mjr-video-seek-handle--out", j.title = m("video.dragSetOut", "Drag to set Out"), j.setAttribute("aria-label", m("video.dragSetOut", "Drag to set Out")), b.appendChild(v), S && b.appendChild(S), b.appendChild(C), b.appendChild(x), b.appendChild(w), b.appendChild(R), b.appendChild(j);
- const L = document.createElement("span");
- L.className = "mjr-video-time", L.textContent = "0:00 / 0:00", L.title = m("video.currentTimeTotal", "Current time / Total duration");
- const N = document.createElement("span");
- N.className = "mjr-video-range-count", N.textContent = "";
+ R.className = "mjr-video-seek-playhead";
+ const Y = document.createElement("div");
+ Y.className = "mjr-video-seek-playhead-label", h.appendChild(x), h.appendChild(T), h.appendChild(R), h.appendChild(Y);
+ const F = document.createElement("div");
+ F.className = "mjr-video-seek-handle mjr-video-seek-handle--in", F.title = m("video.dragSetIn", "Drag to set In"), F.setAttribute("aria-label", m("video.dragSetIn", "Drag to set In"));
+ const N = document.createElement("div");
+ N.className = "mjr-video-seek-handle mjr-video-seek-handle--out", N.title = m("video.dragSetOut", "Drag to set Out"), N.setAttribute("aria-label", m("video.dragSetOut", "Drag to set Out")), b.appendChild(L), G && b.appendChild(G), b.appendChild(h), b.appendChild(v), b.appendChild(w), b.appendChild(F), b.appendChild(N);
+ const V = document.createElement("span");
+ V.className = "mjr-video-time", V.textContent = "0:00 / 0:00", V.title = m("video.currentTimeTotal", "Current time / Total duration");
+ const k = document.createElement("span");
+ k.className = "mjr-video-range-count", k.textContent = "";
try {
- N.style.display = "none";
+ k.style.display = "none";
} catch (re) {
(i = console.debug) == null || i.call(console, re);
}
- const q = document.createElement("div");
- q.className = "mjr-video-timegroup", q.appendChild(L), p && q.appendChild(N);
- const O = document.createElement("span");
- O.className = "mjr-video-frame", O.textContent = "F: 0", O.title = m("video.currentFrame", "Current frame number");
- const B = So(
+ const K = document.createElement("div");
+ K.className = "mjr-video-timegroup", K.appendChild(V), p && K.appendChild(k);
+ const z = document.createElement("span");
+ z.className = "mjr-video-frame", z.textContent = "F: 0", z.title = m("video.currentFrame", "Current frame number");
+ const B = xo(
"mjr-video-btn--play",
m("btn.play", "Play"),
m("video.playPauseSpace", "Play/Pause (Space)")
- ), J = So(
+ ), J = xo(
"mjr-video-btn--step",
"<",
m("video.stepBack", "Step back")
- ), T = So(
+ ), P = xo(
"mjr-video-btn--step",
">",
m("video.stepForward", "Step forward")
- ), D = So(
+ ), H = xo(
"mjr-video-btn--jump mjr-video-btn--in",
"|<",
m("video.goToIn", "Go to In")
- ), Q = So(
+ ), $ = xo(
"mjr-video-btn--jump mjr-video-btn--out",
">|",
m("video.goToOut", "Go to Out")
- ), E = So(
+ ), E = xo(
"mjr-video-btn--mark mjr-video-btn--in",
"I",
m("video.setInFromCurrent", "Set In from current frame")
- ), K = So(
+ ), oe = xo(
"mjr-video-btn--mark mjr-video-btn--out",
"O",
m("video.setOutFromCurrent", "Set Out from current frame")
- ), F = Mu(
+ ), M = Gu(
"mjr-video-btn--toggle",
"pi-refresh",
m("video.loopPlaybackInRange", "Loop playback in range"),
m("video.loop", "Loop")
- ), Y = F.btn, U = Ol("mjr-video-num--in", {
+ ), j = M.btn, O = zl("mjr-video-num--in", {
min: 0,
step: 1,
value: 0,
title: m("video.inFrame", "In frame"),
ariaLabel: m("video.inFrame", "In frame"),
widthPx: 72
- }), P = Ol("mjr-video-num--out", {
+ }), D = zl("mjr-video-num--out", {
min: 0,
step: 1,
value: 0,
title: m("video.outFrame", "Out frame"),
ariaLabel: m("video.outFrame", "Out frame"),
widthPx: 72
- }), ee = Ol("mjr-video-num--step", {
+ }), q = zl("mjr-video-num--step", {
min: 1,
step: 1,
value: 1,
title: m("video.frameIncrement", "Frame increment"),
ariaLabel: m("video.frameIncrement", "Frame increment"),
widthPx: 56
- }), oe = Ol("mjr-video-num--fps", {
+ }), ee = zl("mjr-video-num--fps", {
min: 1,
step: 1e-3,
- value: Hi(Z || 30),
+ value: Qi(A || 30),
title: m("video.fpsStepping", "FPS (used for frame stepping)"),
ariaLabel: m("video.fps", "FPS"),
widthPx: 56
}), ce = document.createElement("select");
ce.className = "mjr-video-num mjr-video-num--speed", ce.title = m("video.playbackSpeed", "Playback speed"), ce.setAttribute("aria-label", m("video.playbackSpeed", "Playback speed")), ce.style.width = "74px";
- const pe = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2];
- for (const re of pe) {
- const ie = document.createElement("option");
- ie.value = String(re), ie.textContent = `${re}x`, ce.appendChild(ie);
+ const ue = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2];
+ for (const re of ue) {
+ const ne = document.createElement("option");
+ ne.value = String(re), ne.textContent = `${re}x`, ce.appendChild(ne);
}
- const H = Mu(
+ const U = Gu(
"mjr-video-btn--mute",
"pi-volume-up",
m("video.mute", "Mute"),
m("video.mute", "Mute")
- ), $ = H.btn, _ = document.createElement("div");
+ ), Q = U.btn, _ = document.createElement("div");
_.className = "mjr-video-volume-wrap", _.style.cssText = "display:none; align-items:center; position:relative;";
let le = null;
- if (M) {
+ if (S) {
le = document.createElement("input"), le.className = "mjr-video-range mjr-video-range--volume", le.type = "range", le.min = "0", le.max = "1", le.step = "0.02", le.value = String(In(Number(e.volume) || 0)), le.setAttribute("aria-label", m("video.volume", "Volume")), le.title = m("video.volume", "Volume");
try {
le.style.width = "120px";
@@ -10736,103 +10751,103 @@ function qI(e, t = {}) {
}
_.appendChild(le);
}
- const se = document.createElement("div");
- se.className = "mjr-video-group mjr-video-group--in";
- const de = document.createElement("span");
- de.textContent = "In", de.title = m("video.resetInToStart", "Reset In to start"), de.style.cssText = "cursor:pointer; user-select:none;", p && (se.appendChild(de), se.appendChild(U));
- const Ze = document.createElement("div");
- Ze.className = "mjr-video-group mjr-video-group--out";
- const Fe = document.createElement("span");
- Fe.textContent = "Out", Fe.title = m("video.resetOutToEnd", "Reset Out to end"), Fe.style.cssText = "cursor:pointer; user-select:none;", p && (Ze.appendChild(Fe), Ze.appendChild(P));
- const xe = document.createElement("div");
- xe.className = "mjr-video-group mjr-video-group--adjust-left", p && (xe.appendChild(E), xe.appendChild(document.createTextNode(m("video.step", "Step"))), xe.appendChild(ee), xe.appendChild(document.createTextNode(m("video.fps", "FPS"))), xe.appendChild(oe), xe.appendChild(O));
- const ze = document.createElement("div");
- ze.className = "mjr-video-group mjr-video-group--adjust-right", p && (ze.appendChild(q), ze.appendChild(Y));
- const We = document.createElement("div");
- We.className = "mjr-video-group mjr-video-group--speed", We.appendChild(document.createTextNode(m("video.speed", "Speed"))), We.appendChild(ce);
- const De = document.createElement("div");
- De.className = "mjr-video-bottom mjr-video-bottom--left";
- const Pe = document.createElement("div");
- Pe.className = "mjr-video-transport";
- const Qe = document.createElement("div");
- if (Qe.className = "mjr-video-bottom mjr-video-bottom--right", u || (Pe.appendChild(D), Pe.appendChild(J)), Pe.appendChild(B), u || (Pe.appendChild(T), Pe.appendChild(Q)), p && De.appendChild(xe), p && Qe.appendChild(ze), Qe.appendChild(We), Qe.appendChild($), p && Qe.appendChild(K), le && Qe.appendChild(_), I) {
+ const de = document.createElement("div");
+ de.className = "mjr-video-group mjr-video-group--in";
+ const se = document.createElement("span");
+ se.textContent = "In", se.title = m("video.resetInToStart", "Reset In to start"), se.style.cssText = "cursor:pointer; user-select:none;", p && (de.appendChild(se), de.appendChild(O));
+ const ge = document.createElement("div");
+ ge.className = "mjr-video-group mjr-video-group--out";
+ const je = document.createElement("span");
+ je.textContent = "Out", je.title = m("video.resetOutToEnd", "Reset Out to end"), je.style.cssText = "cursor:pointer; user-select:none;", p && (ge.appendChild(je), ge.appendChild(D));
+ const Se = document.createElement("div");
+ Se.className = "mjr-video-group mjr-video-group--adjust-left", p && (Se.appendChild(E), Se.appendChild(document.createTextNode(m("video.step", "Step"))), Se.appendChild(q), Se.appendChild(document.createTextNode(m("video.fps", "FPS"))), Se.appendChild(ee), Se.appendChild(z));
+ const ke = document.createElement("div");
+ ke.className = "mjr-video-group mjr-video-group--adjust-right", p && (ke.appendChild(K), ke.appendChild(j));
+ const we = document.createElement("div");
+ we.className = "mjr-video-group mjr-video-group--speed", we.appendChild(document.createTextNode(m("video.speed", "Speed"))), we.appendChild(ce);
+ const Je = document.createElement("div");
+ Je.className = "mjr-video-bottom mjr-video-bottom--left";
+ const $e = document.createElement("div");
+ $e.className = "mjr-video-transport";
+ const qe = document.createElement("div");
+ if (qe.className = "mjr-video-bottom mjr-video-bottom--right", u || ($e.appendChild(H), $e.appendChild(J)), $e.appendChild(B), u || ($e.appendChild(P), $e.appendChild($)), p && Je.appendChild(Se), p && qe.appendChild(ke), qe.appendChild(we), qe.appendChild(Q), p && qe.appendChild(oe), le && qe.appendChild(_), I) {
const re = document.createElement("div");
- re.className = "mjr-video-bar-timeline", p && re.appendChild(se), re.appendChild(b), p && re.appendChild(Ze);
- const ie = document.createElement("div");
- ie.className = "mjr-video-bar-actions";
- const me = document.createElement("div");
- me.className = "mjr-video-bar-side mjr-video-bar-side--left", p && me.appendChild(xe);
- const Xe = document.createElement("div");
- Xe.className = "mjr-video-bar-center", Xe.appendChild(Pe);
- const qe = document.createElement("div");
- qe.className = "mjr-video-bar-side mjr-video-bar-side--right", p && qe.appendChild(ze), qe.appendChild(We), qe.appendChild($), p && qe.appendChild(K), le && qe.appendChild(_), ie.appendChild(me), ie.appendChild(Xe), ie.appendChild(qe), g.replaceChildren(re, ie);
+ re.className = "mjr-video-bar-timeline", p && re.appendChild(de), re.appendChild(b), p && re.appendChild(ge);
+ const ne = document.createElement("div");
+ ne.className = "mjr-video-bar-actions";
+ const Ie = document.createElement("div");
+ Ie.className = "mjr-video-bar-side mjr-video-bar-side--left", p && Ie.appendChild(Se);
+ const Ne = document.createElement("div");
+ Ne.className = "mjr-video-bar-center", Ne.appendChild($e);
+ const He = document.createElement("div");
+ He.className = "mjr-video-bar-side mjr-video-bar-side--right", p && He.appendChild(ke), He.appendChild(we), He.appendChild(Q), p && He.appendChild(oe), le && He.appendChild(_), ne.appendChild(Ie), ne.appendChild(Ne), ne.appendChild(He), g.replaceChildren(re, ne);
} else
- p && h.appendChild(O), p && h.appendChild(se), h.appendChild(b), p && h.appendChild(Ze), h.appendChild(q), f.appendChild(De), f.appendChild(Pe), f.appendChild(Qe);
+ p && Z.appendChild(z), p && Z.appendChild(de), Z.appendChild(b), p && Z.appendChild(ge), Z.appendChild(K), f.appendChild(Je), f.appendChild($e), f.appendChild(qe);
const Ue = (re) => {
- var ie, me;
+ var ne, Ie;
try {
- (ie = re.stopPropagation) == null || ie.call(re);
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ (ne = re.stopPropagation) == null || ne.call(re);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
- }, Ee = (re) => {
- var ie, me;
+ }, Te = (re) => {
+ var ne, Ie;
try {
- (ie = re.preventDefault) == null || ie.call(re);
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ (ne = re.preventDefault) == null || ne.call(re);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
Ue(re);
- }, Re = [], wt = (() => {
+ }, Oe = [], pt = (() => {
try {
return new AbortController();
} catch {
return {
- signal: { aborted: !1, addEventListener: Qi, removeEventListener: Qi },
- abort: Qi
+ signal: { aborted: !1, addEventListener: eo, removeEventListener: eo },
+ abort: eo
};
}
})();
- Re.push(() => {
+ Oe.push(() => {
var re;
try {
- wt.abort();
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ pt.abort();
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }), Re.push(_e(g, "pointerdown", Ue)), Re.push(_e(g, "dblclick", Ee, { capture: !0 })), Re.push(
- _e(g, "wheel", Ee, { capture: !0, passive: !1 })
- ), Re.push(
- _e(
+ }), Oe.push(Qe(g, "pointerdown", Ue)), Oe.push(Qe(g, "dblclick", Te, { capture: !0 })), Oe.push(
+ Qe(g, "wheel", Te, { capture: !0, passive: !1 })
+ ), Oe.push(
+ Qe(
window,
"dblclick",
(re) => {
- var ie, me;
+ var ne, Ie;
try {
- (ie = g.contains) != null && ie.call(g, re == null ? void 0 : re.target) && Ee(re);
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ (ne = g.contains) != null && ne.call(g, re == null ? void 0 : re.target) && Te(re);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
},
{ capture: !0 }
)
- ), Re.push(
- _e(
+ ), Oe.push(
+ Qe(
window,
"wheel",
(re) => {
- var ie, me;
+ var ne, Ie;
try {
- (ie = g.contains) != null && ie.call(g, re == null ? void 0 : re.target) && Ee(re);
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ (ne = g.contains) != null && ne.call(g, re == null ? void 0 : re.target) && Te(re);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
},
{ capture: !0, passive: !1 }
)
);
- const Se = {
- fps: Hi(Z || 30),
+ const Me = {
+ fps: Qi(A || 30),
step: 1,
inFrame: null,
outFrame: null,
@@ -10845,904 +10860,904 @@ function qI(e, t = {}) {
_ppReverse: !1,
_ppRafId: null,
_userInteracted: !1
- }, Ft = () => {
+ }, Xt = () => {
var re;
- if (!Se._userInteracted) {
- Se._userInteracted = !0;
+ if (!Me._userInteracted) {
+ Me._userInteracted = !0;
try {
- e.muted && (e.muted = !1, te == null || te());
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ e.muted && (e.muted = !1, Tt == null || Tt());
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
}
};
- let Gt = null;
- const ue = () => {
- var re, ie;
+ let Mt = null;
+ const me = () => {
+ var re, ne;
if (p)
try {
- O.classList.add("is-step");
+ z.classList.add("is-step");
try {
- Gt == null || Gt();
- } catch (me) {
- (re = console.debug) == null || re.call(console, me);
+ Mt == null || Mt();
+ } catch (Ie) {
+ (re = console.debug) == null || re.call(console, Ie);
}
- Gt = BZ(wt.signal, TZ, () => {
- var me;
+ Mt = DZ(pt.signal, KZ, () => {
+ var Ie;
try {
- O.classList.remove("is-step");
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ z.classList.remove("is-step");
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
});
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
};
- Re.push(() => {
- var re, ie, me, Xe;
+ Oe.push(() => {
+ var re, ne, Ie, Ne;
try {
- Gt == null || Gt();
- } catch (qe) {
- (re = console.debug) == null || re.call(console, qe);
+ Mt == null || Mt();
+ } catch (He) {
+ (re = console.debug) == null || re.call(console, He);
}
- Gt = null;
+ Mt = null;
try {
- (me = (ie = O == null ? void 0 : O.classList) == null ? void 0 : ie.remove) == null || me.call(ie, "is-step");
- } catch (qe) {
- (Xe = console.debug) == null || Xe.call(console, qe);
+ (Ie = (ne = z == null ? void 0 : z.classList) == null ? void 0 : ne.remove) == null || Ie.call(ne, "is-step");
+ } catch (He) {
+ (Ne = console.debug) == null || Ne.call(console, He);
}
});
- const He = (re, ie) => {
- var me;
+ const Pe = (re, ne) => {
+ var Ie;
try {
if (!re) return;
- ie ? re.classList.add("is-on") : re.classList.remove("is-on");
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ ne ? re.classList.add("is-on") : re.classList.remove("is-on");
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
- }, ve = (re) => {
- var ie, me, Xe;
+ }, Le = (re) => {
+ var ne, Ie, Ne;
try {
- const qe = Number(re);
- if (!Number.isFinite(qe) || qe <= 0) return Se.playbackRate;
- const ut = Math.max(0.25, Math.min(2, Math.round(qe * 100) / 100));
- Se.playbackRate = ut;
+ const He = Number(re);
+ if (!Number.isFinite(He) || He <= 0) return Me.playbackRate;
+ const rt = Math.max(0.25, Math.min(2, Math.round(He * 100) / 100));
+ Me.playbackRate = rt;
try {
- e.playbackRate = ut;
- } catch (jt) {
- (ie = console.debug) == null || ie.call(console, jt);
+ e.playbackRate = rt;
+ } catch (St) {
+ (ne = console.debug) == null || ne.call(console, St);
}
try {
- (me = ce.matches) != null && me.call(ce, ":focus") || (ce.value = String(ut));
- } catch (jt) {
- (Xe = console.debug) == null || Xe.call(console, jt);
+ (Ie = ce.matches) != null && Ie.call(ce, ":focus") || (ce.value = String(rt));
+ } catch (St) {
+ (Ne = console.debug) == null || Ne.call(console, St);
}
- return ut;
+ return rt;
} catch {
- return Se.playbackRate;
+ return Me.playbackRate;
}
}, Ot = () => {
- var re, ie;
+ var re, ne;
try {
- He(Y, !!(Se.loop || Se.pingpong));
+ Pe(j, !!(Me.loop || Me.pingpong));
try {
- F != null && F.icon && (Se.pingpong ? (F.icon.className = "pi pi-sort-alt", Y.title = m(
+ M != null && M.icon && (Me.pingpong ? (M.icon.className = "pi pi-sort-alt", j.title = m(
"video.pingpongPlayback",
"Ping-pong playback (forward then reverse)"
- )) : (F.icon.className = "pi pi-refresh", Y.title = m(
+ )) : (M.icon.className = "pi pi-refresh", j.title = m(
"video.loopPlaybackInRange",
"Loop playback in range"
)));
- } catch (me) {
- (re = console.debug) == null || re.call(console, me);
+ } catch (Ie) {
+ (re = console.debug) == null || re.call(console, Ie);
}
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- }, Ve = () => {
+ }, Xe = () => {
try {
- const re = Number(Se.frameCount);
+ const re = Number(Me.frameCount);
if (Number.isFinite(re) && re > 0)
return Math.max(1, Math.floor(re));
- const ie = Number(e == null ? void 0 : e.duration), me = Hi(Se.fps, 30);
- return !Number.isFinite(ie) || ie <= 0 ? 0 : Math.max(0, Math.floor(ie * me));
+ const ne = Number(e == null ? void 0 : e.duration), Ie = Qi(Me.fps, 30);
+ return !Number.isFinite(ne) || ne <= 0 ? 0 : Math.max(0, Math.floor(ne * Ie));
} catch {
return 0;
}
- }, Ke = (re = null) => {
+ }, Ee = (re = null) => {
try {
- const ie = re ?? (e == null ? void 0 : e.currentTime), me = Number(ie), Xe = Hi(Se.fps, 30);
- return !Number.isFinite(me) || me < 0 ? 0 : Math.max(0, Math.floor(me * Xe + 1e-6));
+ const ne = re ?? (e == null ? void 0 : e.currentTime), Ie = Number(ne), Ne = Qi(Me.fps, 30);
+ return !Number.isFinite(Ie) || Ie < 0 ? 0 : Math.max(0, Math.floor(Ie * Ne + 1e-6));
} catch {
return 0;
}
- }, Be = (re) => {
- const ie = Hi(Se.fps, 30);
- return Math.max(0, Number(re) || 0) / ie;
+ }, Ke = (re) => {
+ const ne = Qi(Me.fps, 30);
+ return Math.max(0, Number(re) || 0) / ne;
}, nt = () => {
var re;
try {
- const ie = Ve();
- if (ie <= 0) return;
- const me = Se.inFrame == null ? 0 : uo(Se.inFrame, 0, ie), Xe = Se.outFrame == null ? ie : uo(Se.outFrame, 0, ie);
- Xe < me ? (Se.inFrame = Xe, Se.outFrame = me) : (Se.inFrame = me, Se.outFrame = Xe);
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ const ne = Xe();
+ if (ne <= 0) return;
+ const Ie = Me.inFrame == null ? 0 : go(Me.inFrame, 0, ne), Ne = Me.outFrame == null ? ne : go(Me.outFrame, 0, ne);
+ Ne < Ie ? (Me.inFrame = Ne, Me.outFrame = Ie) : (Me.inFrame = Ie, Me.outFrame = Ne);
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }, mt = () => {
+ }, ut = () => {
try {
- const re = Ve(), ie = Se.inFrame == null ? 0 : uo(Se.inFrame, 0, re), me = Se.outFrame == null ? re : uo(Se.outFrame, 0, re);
- return { inF: ie, outF: me, maxF: re };
+ const re = Xe(), ne = Me.inFrame == null ? 0 : go(Me.inFrame, 0, re), Ie = Me.outFrame == null ? re : go(Me.outFrame, 0, re);
+ return { inF: ne, outF: Ie, maxF: re };
} catch {
return { inF: 0, outF: 0, maxF: 0 };
}
- }, bt = () => {
+ }, It = () => {
var re;
try {
- const ie = !(e != null && e.paused) || Se._ppReverse;
- B.textContent = ie ? m("video.pause", "Pause") : m("video.play", "Play");
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ const ne = !(e != null && e.paused) || Me._ppReverse;
+ B.textContent = ne ? m("video.pause", "Pause") : m("video.play", "Play");
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }, st = () => {
- var re, ie;
+ }, dt = () => {
+ var re, ne;
try {
- const me = !!(e != null && e.muted) || (Number(e == null ? void 0 : e.volume) || 0) <= 1e-3;
+ const Ie = !!(e != null && e.muted) || (Number(e == null ? void 0 : e.volume) || 0) <= 1e-3;
try {
- H.icon.className = `pi ${me ? "pi-volume-off" : "pi-volume-up"}`;
- } catch (qe) {
- (re = console.debug) == null || re.call(console, qe);
+ U.icon.className = `pi ${Ie ? "pi-volume-off" : "pi-volume-up"}`;
+ } catch (He) {
+ (re = console.debug) == null || re.call(console, He);
}
- const Xe = me ? m("video.unmute", "Unmute") : m("video.mute", "Mute");
- $.title = Xe, $.setAttribute("aria-label", Xe);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const Ne = Ie ? m("video.unmute", "Unmute") : m("video.mute", "Mute");
+ Q.title = Ne, Q.setAttribute("aria-label", Ne);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- }, ke = (re = null) => {
- var ie, me, Xe, qe, ut, jt, Yt, St;
+ }, Re = (re = null) => {
+ var ne, Ie, Ne, He, rt, St, Yt, Gt;
try {
- const qt = Number(e == null ? void 0 : e.duration), Vn = re ?? (e == null ? void 0 : e.currentTime), wn = Number(Vn), xn = Number.isFinite(qt) && qt > 0;
- if (L.textContent = `${wu(wn)} / ${xn ? wu(qt) : "0:00"}`, v.disabled = !xn, xn) {
- const _t = In((wn || 0) / qt), Yn = Math.round(_t * 1e3);
- !Number.isNaN(Yn) && !((ie = v.matches) != null && ie.call(v, ":active")) && (v.value = String(Yn));
+ const Qt = Number(e == null ? void 0 : e.duration), Yn = re ?? (e == null ? void 0 : e.currentTime), wn = Number(Yn), xn = Number.isFinite(Qt) && Qt > 0;
+ if (V.textContent = `${Su(wn)} / ${xn ? Su(Qt) : "0:00"}`, L.disabled = !xn, xn) {
+ const en = In((wn || 0) / Qt), Vn = Math.round(en * 1e3);
+ !Number.isNaN(Vn) && !((ne = L.matches) != null && ne.call(L, ":active")) && (L.value = String(Vn));
try {
- X.style.left = `${_t * 100}%`;
+ R.style.left = `${en * 100}%`;
} catch (pn) {
- (me = console.debug) == null || me.call(console, pn);
+ (Ie = console.debug) == null || Ie.call(console, pn);
}
} else {
- v.value = "0";
+ L.value = "0";
try {
- X.style.left = "0%";
- } catch (_t) {
- (Xe = console.debug) == null || Xe.call(console, _t);
+ R.style.left = "0%";
+ } catch (en) {
+ (Ne = console.debug) == null || Ne.call(console, en);
}
}
if (p) {
- const _t = Ve(), Yn = Ke(wn);
- O.textContent = `F: ${Yn} / ${_t}`;
+ const en = Xe(), Vn = Ee(wn);
+ z.textContent = `F: ${Vn} / ${en}`;
try {
- if (Number.isFinite(qt) && qt > 0) {
- const Nn = In((wn || 0) / qt);
- V.style.left = `${Nn * 100}%`, V.textContent = String(Yn), V.style.display = "";
+ if (Number.isFinite(Qt) && Qt > 0) {
+ const Nn = In((wn || 0) / Qt);
+ Y.style.left = `${Nn * 100}%`, Y.textContent = String(Vn), Y.style.display = "";
} else
- V.style.display = "none";
+ Y.style.display = "none";
} catch (pn) {
- (qe = console.debug) == null || qe.call(console, pn);
+ (He = console.debug) == null || He.call(console, pn);
}
- (ut = U.matches) != null && ut.call(U, ":focus") || (U.value = String(Se.inFrame ?? 0)), (jt = P.matches) != null && jt.call(P, ":focus") || (P.value = String(Se.outFrame ?? _t));
+ (rt = O.matches) != null && rt.call(O, ":focus") || (O.value = String(Me.inFrame ?? 0)), (St = D.matches) != null && St.call(D, ":focus") || (D.value = String(Me.outFrame ?? en));
try {
- const { inF: pn, outF: Nn, maxF: ae } = mt(), fe = pn <= 0 && Nn >= ae, je = Math.max(0, Math.floor(Nn) - Math.floor(pn) + 1);
- !fe && ae > 0 ? (N.textContent = `R: ${je}f`, N.style.display = "") : N.style.display = "none";
+ const { inF: pn, outF: Nn, maxF: ae } = ut(), he = pn <= 0 && Nn >= ae, ve = Math.max(0, Math.floor(Nn) - Math.floor(pn) + 1);
+ !he && ae > 0 ? (k.textContent = `R: ${ve}f`, k.style.display = "") : k.style.display = "none";
} catch (pn) {
(Yt = console.debug) == null || Yt.call(console, pn);
}
}
- } catch (qt) {
- (St = console.debug) == null || St.call(console, qt);
+ } catch (Qt) {
+ (Gt = console.debug) == null || Gt.call(console, Qt);
}
- }, Ct = () => {
- var re, ie, me, Xe, qe, ut, jt;
+ }, Wt = () => {
+ var re, ne, Ie, Ne, He, rt, St;
if (p)
try {
- const { inF: Yt, outF: St, maxF: qt } = mt();
- if (!Number.isFinite(qt) || qt <= 0) return;
- const Vn = In(Yt / qt) * 100, wn = In(St / qt) * 100, xn = Yt <= 0 && St >= qt;
+ const { inF: Yt, outF: Gt, maxF: Qt } = ut();
+ if (!Number.isFinite(Qt) || Qt <= 0) return;
+ const Yn = In(Yt / Qt) * 100, wn = In(Gt / Qt) * 100, xn = Yt <= 0 && Gt >= Qt;
try {
- v.style.background = "";
- } catch (_t) {
- (re = console.debug) == null || re.call(console, _t);
+ L.style.background = "";
+ } catch (en) {
+ (re = console.debug) == null || re.call(console, en);
}
try {
- const _t = In(Vn / 100) * 100, Yn = In(wn / 100) * 100, pn = Math.min(_t, Yn), Nn = Math.max(_t, Yn);
- if (S && W && y && k) {
- W.style.left = "0%", W.style.width = `${pn}%`, y.style.left = `${pn}%`, y.style.width = `${Math.max(0, Nn - pn)}%`, k.style.left = `${Nn}%`, k.style.width = `${Math.max(0, 100 - Nn)}%`;
+ const en = In(Yn / 100) * 100, Vn = In(wn / 100) * 100, pn = Math.min(en, Vn), Nn = Math.max(en, Vn);
+ if (G && W && y && X) {
+ W.style.left = "0%", W.style.width = `${pn}%`, y.style.left = `${pn}%`, y.style.width = `${Math.max(0, Nn - pn)}%`, X.style.left = `${Nn}%`, X.style.width = `${Math.max(0, 100 - Nn)}%`;
try {
- S.classList.toggle("is-trimmed", !xn), S.classList.toggle("is-fullrange", xn);
+ G.classList.toggle("is-trimmed", !xn), G.classList.toggle("is-fullrange", xn);
} catch (ae) {
- (ie = console.debug) == null || ie.call(console, ae);
+ (ne = console.debug) == null || ne.call(console, ae);
}
}
- } catch (_t) {
- (me = console.debug) == null || me.call(console, _t);
+ } catch (en) {
+ (Ie = console.debug) == null || Ie.call(console, en);
}
try {
- x.style.left = `${Vn}%`, w.style.left = `${wn}%`;
- } catch (_t) {
- (Xe = console.debug) == null || Xe.call(console, _t);
+ v.style.left = `${Yn}%`, w.style.left = `${wn}%`;
+ } catch (en) {
+ (Ne = console.debug) == null || Ne.call(console, en);
}
try {
- R.style.left = `${Vn}%`, j.style.left = `${wn}%`;
- } catch (_t) {
- (qe = console.debug) == null || qe.call(console, _t);
+ F.style.left = `${Yn}%`, N.style.left = `${wn}%`;
+ } catch (en) {
+ (He = console.debug) == null || He.call(console, en);
}
try {
- const Yn = Math.max(1, Math.floor(qt / zZ)), pn = Math.max(
- Yn,
- Math.floor(Number(Se.step) || 1)
- ), Nn = pn / qt * 100, ae = Nn * 10;
+ const Vn = Math.max(1, Math.floor(Qt / BZ)), pn = Math.max(
+ Vn,
+ Math.floor(Number(Me.step) || 1)
+ ), Nn = pn / Qt * 100, ae = Nn * 10;
if (Number.isFinite(Nn) && Nn > 0.02) {
- const je = `repeating-linear-gradient(to right, rgba(255,255,255,0.16) 0, rgba(255,255,255,0.16) 1px, transparent 1px, transparent ${Nn}%)`, Ne = `repeating-linear-gradient(to right, rgba(255,255,255,0.28) 0, rgba(255,255,255,0.28) 1px, transparent 1px, transparent ${ae}%)`;
- G.style.backgroundImage = `${Ne}, ${je}`;
+ const ve = `repeating-linear-gradient(to right, rgba(255,255,255,0.16) 0, rgba(255,255,255,0.16) 1px, transparent 1px, transparent ${Nn}%)`, Fe = `repeating-linear-gradient(to right, rgba(255,255,255,0.28) 0, rgba(255,255,255,0.28) 1px, transparent 1px, transparent ${ae}%)`;
+ x.style.backgroundImage = `${Fe}, ${ve}`;
} else
- G.style.backgroundImage = "";
+ x.style.backgroundImage = "";
(() => {
- var et, tt, ct, Lt, Bt, Nt, ht;
+ var et, tt, st, Vt, Bt, Rt, Ct;
try {
- const Jt = `${qt}|${pn}`;
- if (((et = z == null ? void 0 : z.dataset) == null ? void 0 : et.mjrLabelKey) === Jt) return;
- z.dataset.mjrLabelKey = Jt;
- } catch (Jt) {
- (tt = console.debug) == null || tt.call(console, Jt);
+ const zt = `${Qt}|${pn}`;
+ if (((et = T == null ? void 0 : T.dataset) == null ? void 0 : et.mjrLabelKey) === zt) return;
+ T.dataset.mjrLabelKey = zt;
+ } catch (zt) {
+ (tt = console.debug) == null || tt.call(console, zt);
}
try {
- z.replaceChildren();
- } catch (Jt) {
- (ct = console.debug) == null || ct.call(console, Jt);
+ T.replaceChildren();
+ } catch (zt) {
+ (st = console.debug) == null || st.call(console, zt);
}
- const je = 22;
- let Ne = Math.max(1, pn * 10);
+ const ve = 22;
+ let Fe = Math.max(1, pn * 10);
try {
- for (; Ne > 0 && Math.ceil(qt / Ne) > je; )
- Ne *= 2;
- } catch (Jt) {
- (Lt = console.debug) == null || Lt.call(console, Jt);
+ for (; Fe > 0 && Math.ceil(Qt / Fe) > ve; )
+ Fe *= 2;
+ } catch (zt) {
+ (Vt = console.debug) == null || Vt.call(console, zt);
}
- const $e = (Jt) => {
- const It = document.createElement("span");
- It.className = "mjr-video-seek-label";
- const mn = In(Jt / qt) * 100;
- return It.style.left = `${mn}%`, It.textContent = String(Math.floor(Jt)), It;
+ const _e = (zt) => {
+ const gt = document.createElement("span");
+ gt.className = "mjr-video-seek-label";
+ const mn = In(zt / Qt) * 100;
+ return gt.style.left = `${mn}%`, gt.textContent = String(Math.floor(zt)), gt;
};
try {
- z.appendChild($e(0));
- } catch (Jt) {
- (Bt = console.debug) == null || Bt.call(console, Jt);
+ T.appendChild(_e(0));
+ } catch (zt) {
+ (Bt = console.debug) == null || Bt.call(console, zt);
}
- for (let Jt = Ne; Jt < qt; Jt += Ne)
+ for (let zt = Fe; zt < Qt; zt += Fe)
try {
- z.appendChild($e(Jt));
- } catch (It) {
- (Nt = console.debug) == null || Nt.call(console, It);
+ T.appendChild(_e(zt));
+ } catch (gt) {
+ (Rt = console.debug) == null || Rt.call(console, gt);
}
try {
- z.appendChild($e(qt));
- } catch (Jt) {
- (ht = console.debug) == null || ht.call(console, Jt);
+ T.appendChild(_e(Qt));
+ } catch (zt) {
+ (Ct = console.debug) == null || Ct.call(console, zt);
}
})();
- } catch (_t) {
- (ut = console.debug) == null || ut.call(console, _t);
+ } catch (en) {
+ (rt = console.debug) == null || rt.call(console, en);
}
} catch (Yt) {
- (jt = console.debug) == null || jt.call(console, Yt);
+ (St = console.debug) == null || St.call(console, Yt);
}
- }, at = ({ prefer: re = null } = {}) => {
- var ie;
+ }, lt = ({ prefer: re = null } = {}) => {
+ var ne;
if (p)
try {
nt();
- const { inF: me, outF: Xe } = mt(), qe = Ke();
- re === "in" ? ge(me) : re === "out" ? qe > Xe && ge(Xe) : qe < me ? ge(me) : qe > Xe && ge(Xe);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const { inF: Ie, outF: Ne } = ut(), He = Ee();
+ re === "in" ? te(Ie) : re === "out" ? He > Ne && te(Ne) : He < Ie ? te(Ie) : He > Ne && te(Ne);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- }, zt = () => {
+ }, qt = () => {
var re;
try {
- Se.inFrame = 0, nt(), ke(), Ct(), at({ prefer: "in" });
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ Me.inFrame = 0, nt(), Re(), Wt(), lt({ prefer: "in" });
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }, Zt = () => {
+ }, yt = () => {
var re;
try {
- const { maxF: ie } = mt();
- Se.outFrame = Math.max(0, Number(ie) || 0), nt(), ke(), Ct(), at({ prefer: "out" });
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ const { maxF: ne } = ut();
+ Me.outFrame = Math.max(0, Number(ne) || 0), nt(), Re(), Wt(), lt({ prefer: "out" });
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }, gt = () => {
+ }, mt = () => {
var re;
try {
- Se._ppRafId != null && (cancelAnimationFrame(Se._ppRafId), Se._ppRafId = null);
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ Me._ppRafId != null && (cancelAnimationFrame(Me._ppRafId), Me._ppRafId = null);
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
};
- Re.push(gt);
+ Oe.push(mt);
const kt = () => {
- var re, ie;
+ var re, ne;
try {
- gt(), Se._ppReverse = !0, (re = e.pause) == null || re.call(e), bt();
- const me = Hi(Se.fps, 30), Xe = Math.max(0.25, Number(Se.playbackRate) || 1), qe = 1e3 / (me * Xe);
- let ut = performance.now();
- const jt = (Yt) => {
- var St, qt;
+ mt(), Me._ppReverse = !0, (re = e.pause) == null || re.call(e), It();
+ const Ie = Qi(Me.fps, 30), Ne = Math.max(0.25, Number(Me.playbackRate) || 1), He = 1e3 / (Ie * Ne);
+ let rt = performance.now();
+ const St = (Yt) => {
+ var Gt, Qt;
try {
- if (!Se._ppReverse || !Se.pingpong) {
- Se._ppReverse = !1, bt();
+ if (!Me._ppReverse || !Me.pingpong) {
+ Me._ppReverse = !1, It();
return;
}
- const Vn = Yt - ut;
- if (Vn >= qe) {
- ut = Yt - Vn % qe;
- const { inF: wn } = mt(), xn = Ke();
+ const Yn = Yt - rt;
+ if (Yn >= He) {
+ rt = Yt - Yn % He;
+ const { inF: wn } = ut(), xn = Ee();
if (xn <= wn) {
- Se._ppReverse = !1, ge(wn);
- const Yn = (St = e.play) == null ? void 0 : St.call(e);
- Yn && typeof Yn.catch == "function" && Yn.catch(() => {
- }), bt(), ke();
+ Me._ppReverse = !1, te(wn);
+ const Vn = (Gt = e.play) == null ? void 0 : Gt.call(e);
+ Vn && typeof Vn.catch == "function" && Vn.catch(() => {
+ }), It(), Re();
return;
}
- const _t = Math.max(1, Math.floor(Number(Se.step) || 1));
- ge(xn - _t), ke();
+ const en = Math.max(1, Math.floor(Number(Me.step) || 1));
+ te(xn - en), Re();
}
- Se._ppRafId = requestAnimationFrame(jt);
- } catch (Vn) {
- (qt = console.debug) == null || qt.call(console, Vn), Se._ppReverse = !1, bt();
+ Me._ppRafId = requestAnimationFrame(St);
+ } catch (Yn) {
+ (Qt = console.debug) == null || Qt.call(console, Yn), Me._ppReverse = !1, It();
}
};
- Se._ppRafId = requestAnimationFrame(jt);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me), Se._ppReverse = !1;
+ Me._ppRafId = requestAnimationFrame(St);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie), Me._ppReverse = !1;
}
- }, Qt = () => {
- var re, ie, me, Xe;
+ }, $t = () => {
+ var re, ne, Ie, Ne;
try {
- const qe = Ve();
- Se.inFrame = 0, Se.outFrame = qe > 0 ? qe : null, Se.step = 1, Se.loop = !!p, Se.pingpong = !1, Se._ppReverse = !1, gt(), Se.once = !1, ve(1);
+ const He = Xe();
+ Me.inFrame = 0, Me.outFrame = He > 0 ? He : null, Me.step = 1, Me.loop = !!p, Me.pingpong = !1, Me._ppReverse = !1, mt(), Me.once = !1, Le(1);
try {
- ee.value = "1";
- } catch (ut) {
- (re = console.debug) == null || re.call(console, ut);
+ q.value = "1";
+ } catch (rt) {
+ (re = console.debug) == null || re.call(console, rt);
}
try {
- (ie = ce.matches) != null && ie.call(ce, ":focus") || (ce.value = "1");
- } catch (ut) {
- (me = console.debug) == null || me.call(console, ut);
+ (ne = ce.matches) != null && ne.call(ce, ":focus") || (ce.value = "1");
+ } catch (rt) {
+ (Ie = console.debug) == null || Ie.call(console, rt);
}
- nt(), Ot(), ke(), Ct(), at({ prefer: "in" });
- } catch (qe) {
- (Xe = console.debug) == null || Xe.call(console, qe);
+ nt(), Ot(), Re(), Wt(), lt({ prefer: "in" });
+ } catch (He) {
+ (Ne = console.debug) == null || Ne.call(console, He);
}
- }, te = () => {
- var re, ie, me;
+ }, Tt = () => {
+ var re, ne, Ie;
try {
- const Xe = In(Number(e == null ? void 0 : e.volume) || 0);
+ const Ne = In(Number(e == null ? void 0 : e.volume) || 0);
try {
- le && !((re = le.matches) != null && re.call(le, ":active")) && (le.value = String(Xe));
- } catch (qe) {
- (ie = console.debug) == null || ie.call(console, qe);
+ le && !((re = le.matches) != null && re.call(le, ":active")) && (le.value = String(Ne));
+ } catch (He) {
+ (ne = console.debug) == null || ne.call(console, He);
}
- st();
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ dt();
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
- }, ge = (re) => {
- var ie;
+ }, te = (re) => {
+ var ne;
try {
- const { maxF: me } = mt(), Xe = uo(re, 0, me > 0 ? me : 1 / 0);
- e.currentTime = Be(Xe);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const { maxF: Ie } = ut(), Ne = go(re, 0, Ie > 0 ? Ie : 1 / 0);
+ e.currentTime = Ke(Ne);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- ke();
- }, we = (re) => {
- var ie, me, Xe;
- Ft();
+ Re();
+ }, ye = (re) => {
+ var ne, Ie, Ne;
+ Xt();
try {
- const qe = Math.max(1, Math.floor(Number(Se.step) || 1)), { inF: ut, outF: jt } = mt();
- let St = Ke() + re * qe;
- Se.loop ? (St < ut && (St = jt), St > jt && (St = ut)) : St = uo(St, ut, jt);
+ const He = Math.max(1, Math.floor(Number(Me.step) || 1)), { inF: rt, outF: St } = ut();
+ let Gt = Ee() + re * He;
+ Me.loop ? (Gt < rt && (Gt = St), Gt > St && (Gt = rt)) : Gt = go(Gt, rt, St);
try {
- (ie = e.pause) == null || ie.call(e);
- } catch (qt) {
- (me = console.debug) == null || me.call(console, qt);
+ (ne = e.pause) == null || ne.call(e);
+ } catch (Qt) {
+ (Ie = console.debug) == null || Ie.call(console, Qt);
}
- ge(St), ue();
- } catch (qe) {
- (Xe = console.debug) == null || Xe.call(console, qe);
+ te(Gt), me();
+ } catch (He) {
+ (Ne = console.debug) == null || Ne.call(console, He);
}
- }, be = () => {
+ }, We = () => {
var re;
if (p)
try {
nt();
- const { inF: ie, outF: me } = mt(), Xe = Ke();
- (Xe < ie || Xe > me) && ge(ie);
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ const { inF: ne, outF: Ie } = ut(), Ne = Ee();
+ (Ne < ne || Ne > Ie) && te(ne);
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }, Oe = () => {
- var re, ie, me;
- Ft();
+ }, pe = () => {
+ var re, ne, Ie;
+ Xt();
try {
- if (Se._ppReverse) {
- Se._ppReverse = !1, gt(), bt();
+ if (Me._ppReverse) {
+ Me._ppReverse = !1, mt(), It();
return;
}
if (e.paused) {
- be();
- const Xe = (re = e.play) == null ? void 0 : re.call(e);
- Xe && typeof Xe.catch == "function" && Xe.catch(() => {
+ We();
+ const Ne = (re = e.play) == null ? void 0 : re.call(e);
+ Ne && typeof Ne.catch == "function" && Ne.catch(() => {
});
} else
- (ie = e.pause) == null || ie.call(e);
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ (ne = e.pause) == null || ne.call(e);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
- bt();
+ It();
};
- if (Re.push(
- _e(e, "click", (re) => {
- var ie;
+ if (Oe.push(
+ Qe(e, "click", (re) => {
+ var ne;
try {
if ((re == null ? void 0 : re.target) !== e) return;
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- Oe();
+ pe();
})
- ), Re.push(
- _e(B, "click", (re) => {
- Ue(re), Oe();
+ ), Oe.push(
+ Qe(B, "click", (re) => {
+ Ue(re), pe();
})
- ), Re.push(
- _e(J, "click", (re) => {
- Ue(re), we(-1);
+ ), Oe.push(
+ Qe(J, "click", (re) => {
+ Ue(re), ye(-1);
})
- ), Re.push(
- _e(T, "click", (re) => {
- Ue(re), we(1);
+ ), Oe.push(
+ Qe(P, "click", (re) => {
+ Ue(re), ye(1);
})
- ), Re.push(
- _e(D, "click", (re) => {
+ ), Oe.push(
+ Qe(H, "click", (re) => {
Ue(re);
- const { inF: ie } = mt();
- ge(ie), ue();
+ const { inF: ne } = ut();
+ te(ne), me();
})
- ), Re.push(
- _e(Q, "click", (re) => {
+ ), Oe.push(
+ Qe($, "click", (re) => {
Ue(re);
- const { outF: ie } = mt();
- ge(ie), ue();
+ const { outF: ne } = ut();
+ te(ne), me();
})
- ), Re.push(
- _e(v, "pointerdown", () => {
- Se._seeking = !0;
+ ), Oe.push(
+ Qe(L, "pointerdown", () => {
+ Me._seeking = !0;
})
- ), Re.push(
- _e(v, "pointerup", () => {
- Se._seeking = !1;
+ ), Oe.push(
+ Qe(L, "pointerup", () => {
+ Me._seeking = !1;
})
- ), Re.push(
- _e(v, "input", (re) => {
- var ie;
- Ue(re), Ft();
+ ), Oe.push(
+ Qe(L, "input", (re) => {
+ var ne;
+ Ue(re), Xt();
try {
- const me = Number(e == null ? void 0 : e.duration);
- if (!Number.isFinite(me) || me <= 0) return;
- const Xe = Number(v.value), qe = In((Number.isFinite(Xe) ? Xe : 0) / 1e3);
- e.currentTime = qe * me;
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const Ie = Number(e == null ? void 0 : e.duration);
+ if (!Number.isFinite(Ie) || Ie <= 0) return;
+ const Ne = Number(L.value), He = In((Number.isFinite(Ne) ? Ne : 0) / 1e3);
+ e.currentTime = He * Ie;
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- ke();
+ Re();
})
), p) {
- Re.push(
- _e(E, "click", (re) => {
- Ue(re), Se.inFrame = Ke(), nt(), ke(), Ct(), at({ prefer: "in" });
+ Oe.push(
+ Qe(E, "click", (re) => {
+ Ue(re), Me.inFrame = Ee(), nt(), Re(), Wt(), lt({ prefer: "in" });
})
- ), Re.push(
- _e(K, "click", (re) => {
- Ue(re), Se.outFrame = Ke(), nt(), ke(), Ct(), at({ prefer: "out" });
+ ), Oe.push(
+ Qe(oe, "click", (re) => {
+ Ue(re), Me.outFrame = Ee(), nt(), Re(), Wt(), lt({ prefer: "out" });
})
- ), Re.push(
- _e(U, "change", (re) => {
- var ie;
+ ), Oe.push(
+ Qe(O, "change", (re) => {
+ var ne;
Ue(re);
try {
- const me = Number(U.value);
- Se.inFrame = Number.isFinite(me) ? Math.max(0, Math.floor(me)) : null, nt();
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const Ie = Number(O.value);
+ Me.inFrame = Number.isFinite(Ie) ? Math.max(0, Math.floor(Ie)) : null, nt();
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- ke(), Ct(), at({ prefer: "in" });
+ Re(), Wt(), lt({ prefer: "in" });
})
- ), Re.push(
- _e(P, "change", (re) => {
- var ie;
+ ), Oe.push(
+ Qe(D, "change", (re) => {
+ var ne;
Ue(re);
try {
- const me = Number(P.value);
- Se.outFrame = Number.isFinite(me) ? Math.max(0, Math.floor(me)) : null, nt();
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const Ie = Number(D.value);
+ Me.outFrame = Number.isFinite(Ie) ? Math.max(0, Math.floor(Ie)) : null, nt();
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- ke(), Ct(), at({ prefer: "out" });
+ Re(), Wt(), lt({ prefer: "out" });
})
- ), Re.push(
- _e(ee, "change", (re) => {
- var ie;
+ ), Oe.push(
+ Qe(q, "change", (re) => {
+ var ne;
Ue(re);
try {
- Se.step = Math.max(1, Math.floor(Number(ee.value) || 1)), ee.value = String(Se.step);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ Me.step = Math.max(1, Math.floor(Number(q.value) || 1)), q.value = String(Me.step);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
})
- ), Re.push(
- _e(oe, "change", (re) => {
- var ie;
+ ), Oe.push(
+ Qe(ee, "change", (re) => {
+ var ne;
Ue(re);
try {
- Se.fps = Hi(oe.value, 30), oe.value = String(Se.fps), nt();
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ Me.fps = Qi(ee.value, 30), ee.value = String(Me.fps), nt();
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- ke(), Ct();
+ Re(), Wt();
})
- ), Re.push(
- _e(Y, "click", (re) => {
- Ue(re), !Se.loop && !Se.pingpong ? (Se.loop = !0, Se.pingpong = !1) : Se.loop && !Se.pingpong ? (Se.loop = !1, Se.pingpong = !0) : (Se.loop = !1, Se.pingpong = !1), (Se.loop || Se.pingpong) && (Se.once = !1), Se.pingpong || (Se._ppReverse = !1, gt()), Ot();
+ ), Oe.push(
+ Qe(j, "click", (re) => {
+ Ue(re), !Me.loop && !Me.pingpong ? (Me.loop = !0, Me.pingpong = !1) : Me.loop && !Me.pingpong ? (Me.loop = !1, Me.pingpong = !0) : (Me.loop = !1, Me.pingpong = !1), (Me.loop || Me.pingpong) && (Me.once = !1), Me.pingpong || (Me._ppReverse = !1, mt()), Ot();
})
- ), Re.push(
- _e(de, "click", (re) => {
- Ue(re), zt();
+ ), Oe.push(
+ Qe(se, "click", (re) => {
+ Ue(re), qt();
})
- ), Re.push(
- _e(Fe, "click", (re) => {
- Ue(re), Zt();
+ ), Oe.push(
+ Qe(je, "click", (re) => {
+ Ue(re), yt();
})
- ), Re.push(
- _e(N, "click", (re) => {
- Ue(re), Qt();
+ ), Oe.push(
+ Qe(k, "click", (re) => {
+ Ue(re), $t();
})
);
try {
- N.title = m("video.resetPlayerControls", "Reset player controls"), N.style.cursor = "pointer", N.style.userSelect = "none";
+ k.title = m("video.resetPlayerControls", "Reset player controls"), k.style.cursor = "pointer", k.style.userSelect = "none";
} catch (re) {
(r = console.debug) == null || r.call(console, re);
}
}
- Re.push(
- _e($, "click", (re) => {
- var ie;
+ Oe.push(
+ Qe(Q, "click", (re) => {
+ var ne;
Ue(re);
try {
e.muted = !e.muted, _ && (_.style.display = e.muted ? "none" : "inline-flex");
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- te();
+ Tt();
})
- ), Re.push(
- _e($, "contextmenu", (re) => {
- var ie;
- Ee(re);
+ ), Oe.push(
+ Qe(Q, "contextmenu", (re) => {
+ var ne;
+ Te(re);
try {
if (!_) return;
- const me = _.style.display !== "none";
- _.style.display = me ? "none" : "inline-flex";
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const Ie = _.style.display !== "none";
+ _.style.display = Ie ? "none" : "inline-flex";
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- te();
+ Tt();
})
- ), Re.push(
- _e(
+ ), Oe.push(
+ Qe(
window,
"pointerdown",
(re) => {
- var ie, me, Xe;
+ var ne, Ie, Ne;
try {
- if (!_ || _.style.display === "none" || (ie = $.contains) != null && ie.call($, re == null ? void 0 : re.target) || (me = _.contains) != null && me.call(_, re == null ? void 0 : re.target))
+ if (!_ || _.style.display === "none" || (ne = Q.contains) != null && ne.call(Q, re == null ? void 0 : re.target) || (Ie = _.contains) != null && Ie.call(_, re == null ? void 0 : re.target))
return;
_.style.display = "none";
- } catch (qe) {
- (Xe = console.debug) == null || Xe.call(console, qe);
+ } catch (He) {
+ (Ne = console.debug) == null || Ne.call(console, He);
}
},
{ capture: !0 }
)
- ), le && Re.push(
- _e(le, "input", (re) => {
- var ie;
+ ), le && Oe.push(
+ Qe(le, "input", (re) => {
+ var ne;
Ue(re);
try {
- const me = In(Number(le.value) || 0);
- e.volume = me, me > 1e-3 && (e.muted = !1);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ const Ie = In(Number(le.value) || 0);
+ e.volume = Ie, Ie > 1e-3 && (e.muted = !1);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- te();
+ Tt();
})
- ), Re.push(
- _e(ce, "change", (re) => {
- var ie;
+ ), Oe.push(
+ Qe(ce, "change", (re) => {
+ var ne;
Ue(re);
try {
- ve(Number(ce.value) || 1);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ Le(Number(ce.value) || 1);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
})
- ), Re.push(
- _e(e, "ratechange", () => {
+ ), Oe.push(
+ Qe(e, "ratechange", () => {
var re;
try {
- ve(Number(e.playbackRate) || Se.playbackRate || 1);
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ Le(Number(e.playbackRate) || Me.playbackRate || 1);
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
})
);
- const ot = () => {
- var re, ie, me, Xe, qe, ut, jt;
+ const De = () => {
+ var re, ne, Ie, Ne, He, rt, St;
if (p)
try {
- if (Se._seeking || e != null && e.paused) return;
- const { inF: Yt, outF: St, maxF: qt } = mt();
- if (qt <= 0 || Yt <= 0 && St >= qt && !Se.loop && !Se.pingpong && !Se.once || Se._ppReverse) return;
- const wn = Ke(), xn = Math.max(1, Math.floor(Number(Se.step) || 1));
- if (wn >= St - xn)
- if (Se.pingpong) {
+ if (Me._seeking || e != null && e.paused) return;
+ const { inF: Yt, outF: Gt, maxF: Qt } = ut();
+ if (Qt <= 0 || Yt <= 0 && Gt >= Qt && !Me.loop && !Me.pingpong && !Me.once || Me._ppReverse) return;
+ const wn = Ee(), xn = Math.max(1, Math.floor(Number(Me.step) || 1));
+ if (wn >= Gt - xn)
+ if (Me.pingpong) {
kt();
return;
- } else if (Se.loop) {
- ge(Yt);
+ } else if (Me.loop) {
+ te(Yt);
try {
- const _t = (re = e.play) == null ? void 0 : re.call(e);
- _t && typeof _t.catch == "function" && _t.catch(() => {
+ const en = (re = e.play) == null ? void 0 : re.call(e);
+ en && typeof en.catch == "function" && en.catch(() => {
});
- } catch (_t) {
- (ie = console.debug) == null || ie.call(console, _t);
+ } catch (en) {
+ (ne = console.debug) == null || ne.call(console, en);
}
- } else if (Se.once) {
+ } else if (Me.once) {
try {
- (me = e.pause) == null || me.call(e);
- } catch (_t) {
- (Xe = console.debug) == null || Xe.call(console, _t);
+ (Ie = e.pause) == null || Ie.call(e);
+ } catch (en) {
+ (Ne = console.debug) == null || Ne.call(console, en);
}
- ge(St);
+ te(Gt);
} else {
try {
- (qe = e.pause) == null || qe.call(e);
- } catch (_t) {
- (ut = console.debug) == null || ut.call(console, _t);
+ (He = e.pause) == null || He.call(e);
+ } catch (en) {
+ (rt = console.debug) == null || rt.call(console, en);
}
- ge(St);
+ te(Gt);
}
- else wn < Yt && ge(Yt);
+ else wn < Yt && te(Yt);
} catch (Yt) {
- (jt = console.debug) == null || jt.call(console, Yt);
+ (St = console.debug) == null || St.call(console, Yt);
}
- }, dt = {
+ }, ot = {
rafId: null,
rvfcId: null
- }, en = () => {
- var re, ie;
+ }, Zt = () => {
+ var re, ne;
try {
- dt.rvfcId != null && typeof (e == null ? void 0 : e.cancelVideoFrameCallback) == "function" && e.cancelVideoFrameCallback(dt.rvfcId);
- } catch (me) {
- (re = console.debug) == null || re.call(console, me);
+ ot.rvfcId != null && typeof (e == null ? void 0 : e.cancelVideoFrameCallback) == "function" && e.cancelVideoFrameCallback(ot.rvfcId);
+ } catch (Ie) {
+ (re = console.debug) == null || re.call(console, Ie);
}
- dt.rvfcId = null;
+ ot.rvfcId = null;
try {
- dt.rafId != null && typeof cancelAnimationFrame == "function" && cancelAnimationFrame(dt.rafId);
- } catch (me) {
- (ie = console.debug) == null || ie.call(console, me);
+ ot.rafId != null && typeof cancelAnimationFrame == "function" && cancelAnimationFrame(ot.rafId);
+ } catch (Ie) {
+ (ne = console.debug) == null || ne.call(console, Ie);
}
- dt.rafId = null;
- }, un = (re = 0, ie = null) => {
- var Xe, qe, ut, jt;
- dt.rafId = null, dt.rvfcId = null;
+ ot.rafId = null;
+ }, tn = (re = 0, ne = null) => {
+ var Ne, He, rt, St;
+ ot.rafId = null, ot.rvfcId = null;
try {
- pt(ke, ie == null ? void 0 : ie.mediaTime), pt(ot);
+ bt(Re, ne == null ? void 0 : ne.mediaTime), bt(De);
} catch (Yt) {
- (Xe = console.debug) == null || Xe.call(console, Yt);
+ (Ne = console.debug) == null || Ne.call(console, Yt);
}
- if (!(!(Se._ppReverse || !(e != null && e.paused)) || (qe = wt.signal) != null && qe.aborted)) {
+ if (!(!(Me._ppReverse || !(e != null && e.paused)) || (He = pt.signal) != null && He.aborted)) {
try {
- if (typeof (e == null ? void 0 : e.requestVideoFrameCallback) == "function" && !Se._ppReverse) {
- dt.rvfcId = e.requestVideoFrameCallback(un);
+ if (typeof (e == null ? void 0 : e.requestVideoFrameCallback) == "function" && !Me._ppReverse) {
+ ot.rvfcId = e.requestVideoFrameCallback(tn);
return;
}
} catch (Yt) {
- (ut = console.debug) == null || ut.call(console, Yt);
+ (rt = console.debug) == null || rt.call(console, Yt);
}
try {
- typeof requestAnimationFrame == "function" && (dt.rafId = requestAnimationFrame((Yt) => {
- un(Yt, { mediaTime: Number(e == null ? void 0 : e.currentTime) || 0 });
+ typeof requestAnimationFrame == "function" && (ot.rafId = requestAnimationFrame((Yt) => {
+ tn(Yt, { mediaTime: Number(e == null ? void 0 : e.currentTime) || 0 });
}));
} catch (Yt) {
- (jt = console.debug) == null || jt.call(console, Yt);
+ (St = console.debug) == null || St.call(console, Yt);
}
}
- }, Wt = () => {
- var ie;
- en(), !(!(Se._ppReverse || !(e != null && e.paused)) || (ie = wt.signal) != null && ie.aborted) && un(0, { mediaTime: Number(e == null ? void 0 : e.currentTime) || 0 });
+ }, Pt = () => {
+ var ne;
+ Zt(), !(!(Me._ppReverse || !(e != null && e.paused)) || (ne = pt.signal) != null && ne.aborted) && tn(0, { mediaTime: Number(e == null ? void 0 : e.currentTime) || 0 });
};
- Re.push(en), Re.push(
- _e(e, "play", () => {
- pt(bt), Wt();
+ Oe.push(Zt), Oe.push(
+ Qe(e, "play", () => {
+ bt(It), Pt();
})
);
for (const re of ["pause", "ended"])
- Re.push(
- _e(e, re, () => {
- en(), pt(bt), pt(ke);
+ Oe.push(
+ Qe(e, re, () => {
+ Zt(), bt(It), bt(Re);
})
);
for (const re of ["timeupdate", "loadedmetadata", "durationchange", "seeked"])
- Re.push(_e(e, re, () => pt(ke)));
- Re.push(_e(e, "timeupdate", ot)), Re.push(
- _e(
+ Oe.push(Qe(e, re, () => bt(Re)));
+ Oe.push(Qe(e, "timeupdate", De)), Oe.push(
+ Qe(
e,
"ended",
() => {
- var re, ie, me;
+ var re, ne, Ie;
if (p)
try {
- const { inF: Xe, outF: qe, maxF: ut } = mt(), jt = Xe <= 0 && qe >= ut;
- if (Se.pingpong && !Se._ppReverse) {
+ const { inF: Ne, outF: He, maxF: rt } = ut(), St = Ne <= 0 && He >= rt;
+ if (Me.pingpong && !Me._ppReverse) {
kt();
return;
}
- if (!Se.loop && !jt) return;
- ge(Xe);
+ if (!Me.loop && !St) return;
+ te(Ne);
try {
const Yt = (re = e.play) == null ? void 0 : re.call(e);
Yt && typeof Yt.catch == "function" && Yt.catch(() => {
});
} catch (Yt) {
- (ie = console.debug) == null || ie.call(console, Yt);
+ (ne = console.debug) == null || ne.call(console, Yt);
}
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
},
{ passive: !0 }
)
- ), p && Re.push(
- _e(e, "mjr:frameStep", () => {
- pt(ue);
+ ), p && Oe.push(
+ Qe(e, "mjr:frameStep", () => {
+ bt(me);
})
- ), p && (Re.push(
- _e(e, "loadedmetadata", () => {
+ ), p && (Oe.push(
+ Qe(e, "loadedmetadata", () => {
var re;
try {
- const ie = Ve();
- ie > 0 && Se.inFrame == null && Se.outFrame == null && (Se.inFrame = 0, Se.outFrame = ie, nt());
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ const ne = Xe();
+ ne > 0 && Me.inFrame == null && Me.outFrame == null && (Me.inFrame = 0, Me.outFrame = ne, nt());
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- Ct();
+ Wt();
})
- ), Re.push(
- _e(e, "durationchange", () => pt(Ct))
+ ), Oe.push(
+ Qe(e, "durationchange", () => bt(Wt))
));
for (const re of ["volumechange"])
- Re.push(_e(e, re, () => pt(te)));
+ Oe.push(Qe(e, re, () => bt(Tt)));
try {
- Se.fps = Hi(oe.value, 30), Se.step = Math.max(1, Math.floor(Number(ee.value) || 1)), nt(), Ot(), ve(Se.playbackRate);
+ Me.fps = Qi(ee.value, 30), Me.step = Math.max(1, Math.floor(Number(q.value) || 1)), nt(), Ot(), Le(Me.playbackRate);
} catch (re) {
(l = console.debug) == null || l.call(console, re);
}
- pt(bt), pt(ke), pt(Ct), pt(te);
+ bt(It), bt(Re), bt(Wt), bt(Tt);
try {
- (!(e != null && e.paused) || Se._ppReverse) && Wt();
+ (!(e != null && e.paused) || Me._ppReverse) && Pt();
} catch (re) {
(a = console.debug) == null || a.call(console, re);
}
- const tn = (re = {}) => {
- var Xe, qe, ut, jt, Yt;
- let ie = 0, me = !1;
+ const vt = (re = {}) => {
+ var Ne, He, rt, St, Yt;
+ let ne = 0, Ie = !1;
try {
- ie = Math.max(0, Ve()), me = ie > 0 && Se.outFrame != null && Se.outFrame >= ie - 1;
- } catch (St) {
- (Xe = console.debug) == null || Xe.call(console, St);
+ ne = Math.max(0, Xe()), Ie = ne > 0 && Me.outFrame != null && Me.outFrame >= ne - 1;
+ } catch (Gt) {
+ (Ne = console.debug) == null || Ne.call(console, Gt);
}
try {
- const St = Number(re == null ? void 0 : re.fps);
- if (Number.isFinite(St) && St > 0) {
- Se.fps = Hi(St, Se.fps || 30);
+ const Gt = Number(re == null ? void 0 : re.fps);
+ if (Number.isFinite(Gt) && Gt > 0) {
+ Me.fps = Qi(Gt, Me.fps || 30);
try {
- (qe = oe == null ? void 0 : oe.matches) != null && qe.call(oe, ":focus") || (oe.value = String(Se.fps));
- } catch (qt) {
- (ut = console.debug) == null || ut.call(console, qt);
+ (He = ee == null ? void 0 : ee.matches) != null && He.call(ee, ":focus") || (ee.value = String(Me.fps));
+ } catch (Qt) {
+ (rt = console.debug) == null || rt.call(console, Qt);
}
}
- } catch (St) {
- (jt = console.debug) == null || jt.call(console, St);
+ } catch (Gt) {
+ (St = console.debug) == null || St.call(console, Gt);
}
try {
- const St = Number(re == null ? void 0 : re.frameCount);
- Se.frameCount = Number.isFinite(St) && St > 0 ? Math.floor(St) : null;
+ const Gt = Number(re == null ? void 0 : re.frameCount);
+ Me.frameCount = Number.isFinite(Gt) && Gt > 0 ? Math.floor(Gt) : null;
} catch {
- Se.frameCount = null;
+ Me.frameCount = null;
}
try {
- const St = Math.max(0, Ve());
- me && St > ie + 0.5 && (Se.outFrame = null), nt(), Ot(), ke(), Ct();
- } catch (St) {
- (Yt = console.debug) == null || Yt.call(console, St);
+ const Gt = Math.max(0, Xe());
+ Ie && Gt > ne + 0.5 && (Me.outFrame = null), nt(), Ot(), Re(), Wt();
+ } catch (Gt) {
+ (Yt = console.debug) == null || Yt.call(console, Gt);
}
};
try {
if (p) {
- const re = Number(t == null ? void 0 : t.initialFps), ie = Number(t == null ? void 0 : t.initialFrameCount);
- (Number.isFinite(re) || Number.isFinite(ie)) && tn({ fps: re, frameCount: ie });
+ const re = Number(t == null ? void 0 : t.initialFps), ne = Number(t == null ? void 0 : t.initialFrameCount);
+ (Number.isFinite(re) || Number.isFinite(ne)) && vt({ fps: re, frameCount: ne });
}
} catch (re) {
(c = console.debug) == null || c.call(console, re);
}
if (p) {
- const re = { active: !1, which: null, pointerId: null, ac: null, captureEl: null }, ie = (ut) => {
+ const re = { active: !1, which: null, pointerId: null, ac: null, captureEl: null }, ne = (rt) => {
try {
- const jt = b.getBoundingClientRect(), Yt = uo((Number(ut) || 0) - jt.left, 0, jt.width || 1), St = jt.width > 0 ? Yt / jt.width : 0, { maxF: qt } = mt();
- return uo(Math.round(St * qt), 0, qt);
+ const St = b.getBoundingClientRect(), Yt = go((Number(rt) || 0) - St.left, 0, St.width || 1), Gt = St.width > 0 ? Yt / St.width : 0, { maxF: Qt } = ut();
+ return go(Math.round(Gt * Qt), 0, Qt);
} catch {
return 0;
}
- }, me = (ut, jt) => {
- var St, qt, Vn, wn, xn, _t, Yn, pn, Nn;
- Ee(ut);
+ }, Ie = (rt, St) => {
+ var Gt, Qt, Yn, wn, xn, en, Vn, pn, Nn;
+ Te(rt);
try {
- (qt = (St = re.ac) == null ? void 0 : St.abort) == null || qt.call(St);
+ (Qt = (Gt = re.ac) == null ? void 0 : Gt.abort) == null || Qt.call(Gt);
} catch (ae) {
- (Vn = console.debug) == null || Vn.call(console, ae);
+ (Yn = console.debug) == null || Yn.call(console, ae);
}
- re.ac = null, re.active = !0, re.which = jt, re.pointerId = ut.pointerId;
+ re.ac = null, re.active = !0, re.which = St, re.pointerId = rt.pointerId;
try {
- re.captureEl = ut.currentTarget || null;
+ re.captureEl = rt.currentTarget || null;
} catch {
re.captureEl = null;
}
try {
- (xn = (wn = re.captureEl) == null ? void 0 : wn.setPointerCapture) == null || xn.call(wn, ut.pointerId);
+ (xn = (wn = re.captureEl) == null ? void 0 : wn.setPointerCapture) == null || xn.call(wn, rt.pointerId);
} catch (ae) {
- (_t = console.debug) == null || _t.call(console, ae);
+ (en = console.debug) == null || en.call(console, ae);
}
try {
- (Yn = b.setPointerCapture) == null || Yn.call(b, ut.pointerId);
+ (Vn = b.setPointerCapture) == null || Vn.call(b, rt.pointerId);
} catch (ae) {
(pn = console.debug) == null || pn.call(console, ae);
}
try {
const ae = new AbortController();
- re.ac = ae, window.addEventListener("pointermove", Xe, {
+ re.ac = ae, window.addEventListener("pointermove", Ne, {
passive: !1,
capture: !0,
signal: ae.signal
- }), window.addEventListener("pointerup", qe, {
+ }), window.addEventListener("pointerup", He, {
passive: !1,
capture: !0,
signal: ae.signal
- }), window.addEventListener("pointercancel", qe, {
+ }), window.addEventListener("pointercancel", He, {
passive: !1,
capture: !0,
signal: ae.signal
@@ -11750,94 +11765,94 @@ function qI(e, t = {}) {
} catch (ae) {
(Nn = console.debug) == null || Nn.call(console, ae);
}
- const Yt = ie(ut.clientX);
- jt === "in" ? Se.inFrame = Yt : Se.outFrame = Yt, nt(), ke(), Ct(), at({ prefer: jt });
- }, Xe = (ut) => {
+ const Yt = ne(rt.clientX);
+ St === "in" ? Me.inFrame = Yt : Me.outFrame = Yt, nt(), Re(), Wt(), lt({ prefer: St });
+ }, Ne = (rt) => {
if (!re.active) return;
- Ee(ut);
- const jt = ie(ut.clientX);
- re.which === "in" ? Se.inFrame = jt : Se.outFrame = jt, nt(), ke(), Ct();
- }, qe = (ut) => {
- var jt, Yt, St, qt, Vn, wn, xn, _t, Yn;
+ Te(rt);
+ const St = ne(rt.clientX);
+ re.which === "in" ? Me.inFrame = St : Me.outFrame = St, nt(), Re(), Wt();
+ }, He = (rt) => {
+ var St, Yt, Gt, Qt, Yn, wn, xn, en, Vn;
if (re.active) {
- Ee(ut), re.active = !1;
+ Te(rt), re.active = !1;
try {
- (jt = b.releasePointerCapture) == null || jt.call(b, re.pointerId);
+ (St = b.releasePointerCapture) == null || St.call(b, re.pointerId);
} catch (pn) {
(Yt = console.debug) == null || Yt.call(console, pn);
}
try {
- (qt = (St = re.captureEl) == null ? void 0 : St.releasePointerCapture) == null || qt.call(St, re.pointerId);
+ (Qt = (Gt = re.captureEl) == null ? void 0 : Gt.releasePointerCapture) == null || Qt.call(Gt, re.pointerId);
} catch (pn) {
- (Vn = console.debug) == null || Vn.call(console, pn);
+ (Yn = console.debug) == null || Yn.call(console, pn);
}
re.captureEl = null, re.pointerId = null;
try {
- at({ prefer: re.which });
+ lt({ prefer: re.which });
} catch (pn) {
(wn = console.debug) == null || wn.call(console, pn);
}
try {
- (_t = (xn = re.ac) == null ? void 0 : xn.abort) == null || _t.call(xn);
+ (en = (xn = re.ac) == null ? void 0 : xn.abort) == null || en.call(xn);
} catch (pn) {
- (Yn = console.debug) == null || Yn.call(console, pn);
+ (Vn = console.debug) == null || Vn.call(console, pn);
}
re.ac = null;
}
};
- Re.push(
- _e(R, "pointerdown", (ut) => me(ut, "in"), {
+ Oe.push(
+ Qe(F, "pointerdown", (rt) => Ie(rt, "in"), {
passive: !1
})
- ), Re.push(
- _e(j, "pointerdown", (ut) => me(ut, "out"), {
+ ), Oe.push(
+ Qe(N, "pointerdown", (rt) => Ie(rt, "out"), {
passive: !1
})
- ), Re.push(
- _e(x, "pointerdown", (ut) => me(ut, "in"), {
+ ), Oe.push(
+ Qe(v, "pointerdown", (rt) => Ie(rt, "in"), {
passive: !1
})
- ), Re.push(
- _e(w, "pointerdown", (ut) => me(ut, "out"), {
+ ), Oe.push(
+ Qe(w, "pointerdown", (rt) => Ie(rt, "out"), {
passive: !1
})
- ), Re.push(_e(b, "pointermove", Xe, { passive: !1 })), Re.push(_e(b, "pointerup", qe, { passive: !1 })), Re.push(_e(b, "pointercancel", qe, { passive: !1 }));
+ ), Oe.push(Qe(b, "pointermove", Ne, { passive: !1 })), Oe.push(Qe(b, "pointerup", He, { passive: !1 })), Oe.push(Qe(b, "pointercancel", He, { passive: !1 }));
}
- return pt(() => A.appendChild(g)), {
+ return bt(() => C.appendChild(g)), {
controlsEl: g,
- setMediaInfo: tn,
+ setMediaInfo: vt,
setPlaybackRate: (re) => {
try {
- return ve(re);
+ return Le(re);
} catch {
- return Se.playbackRate || 1;
+ return Me.playbackRate || 1;
}
},
getPlaybackRate: () => {
try {
- return Number(Se.playbackRate) || 1;
+ return Number(Me.playbackRate) || 1;
} catch {
return 1;
}
},
adjustPlaybackRate: (re) => {
try {
- const ie = Number(re);
- return Number.isFinite(ie) ? ve((Number(Se.playbackRate) || 1) + ie) : Se.playbackRate || 1;
+ const ne = Number(re);
+ return Number.isFinite(ne) ? Le((Number(Me.playbackRate) || 1) + ne) : Me.playbackRate || 1;
} catch {
- return Se.playbackRate || 1;
+ return Me.playbackRate || 1;
}
},
togglePlay: () => {
try {
- return Oe(), !0;
+ return pe(), !0;
} catch {
return !1;
}
},
stepFrames: (re) => {
try {
- return we(re), !0;
+ return ye(re), !0;
} catch {
return !1;
}
@@ -11845,7 +11860,7 @@ function qI(e, t = {}) {
setInPoint: () => {
if (!p) return !1;
try {
- return Se.inFrame = Ke(), nt(), ke(), Ct(), at({ prefer: "in" }), !0;
+ return Me.inFrame = Ee(), nt(), Re(), Wt(), lt({ prefer: "in" }), !0;
} catch {
return !1;
}
@@ -11853,7 +11868,7 @@ function qI(e, t = {}) {
setOutPoint: () => {
if (!p) return !1;
try {
- return Se.outFrame = Ke(), nt(), ke(), Ct(), at({ prefer: "out" }), !0;
+ return Me.outFrame = Ee(), nt(), Re(), Wt(), lt({ prefer: "out" }), !0;
} catch {
return !1;
}
@@ -11861,8 +11876,8 @@ function qI(e, t = {}) {
goToIn: () => {
if (!p) return !1;
try {
- const { inF: re } = mt();
- return ge(re), ue(), !0;
+ const { inF: re } = ut();
+ return te(re), me(), !0;
} catch {
return !1;
}
@@ -11870,26 +11885,26 @@ function qI(e, t = {}) {
goToOut: () => {
if (!p) return !1;
try {
- const { outF: re } = mt();
- return ge(re), ue(), !0;
+ const { outF: re } = ut();
+ return te(re), me(), !0;
} catch {
return !1;
}
},
destroy: () => {
- for (const re of Re) pt(re);
- pt(() => g.remove());
+ for (const re of Oe) bt(re);
+ bt(() => g.remove());
}
};
} catch {
- return { controlsEl: null, destroy: Qi };
+ return { controlsEl: null, destroy: eo };
}
}
-function EZ(e) {
+function PZ(e) {
const t = String(e || "").toLowerCase();
return t === "video" || t === "audio";
}
-function HZ({
+function QZ({
mode: e,
VIEWER_MODES: t,
singleView: n,
@@ -11906,7 +11921,7 @@ function HZ({
return [];
}
}
-function qZ(e) {
+function _Z(e) {
try {
const t = Array.isArray(e) ? e : [];
return t.find((n) => {
@@ -11917,19 +11932,19 @@ function qZ(e) {
return null;
}
}
-function PZ(e, t = {}) {
+function $Z(e, t = {}) {
try {
if (!e) return null;
const n = String((t == null ? void 0 : t.mediaKind) || "").toLowerCase();
- return qI(e, { ...t, mediaKind: n });
+ return PI(e, { ...t, mediaKind: n });
} catch {
return null;
}
}
-const PI = "mjr_viewer_prefs_v1";
-function QZ() {
+const QI = "mjr_viewer_prefs_v1";
+function eA() {
try {
- const e = ni.get(PI);
+ const e = ni.get(QI);
if (!e) return {};
const t = JSON.parse(e);
return t && typeof t == "object" ? t : {};
@@ -11937,7 +11952,7 @@ function QZ() {
return {};
}
}
-function _Z(e) {
+function tA(e) {
var t;
try {
if (!e) return;
@@ -11950,13 +11965,13 @@ function _Z(e) {
audioVisualizerMode: String(e.audioVisualizerMode || "artistic"),
abWipePercent: Number.isFinite(Number(e._abWipePercent)) ? Number(e._abWipePercent) : 50
};
- ni.set(PI, JSON.stringify(n));
+ ni.set(QI, JSON.stringify(n));
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
}
-function ci(e) {
- var t, n, i, o, r, l, a, c, s, d, u, I, p, M, Z, A, g, h, f, b, v, C, S, W;
+function di(e) {
+ var t, n, i, o, r, l, a, c, s, d, u, I, p, S, A, C, g, Z, f, b, L, h, G, W;
if (e) {
try {
(n = (t = e._mjrSyncAbort) == null ? void 0 : t.abort) == null || n.call(t);
@@ -11971,59 +11986,59 @@ function ci(e) {
try {
const y = (r = e.querySelectorAll) == null ? void 0 : r.call(e, "video, audio");
if (y && y.length)
- for (const k of y) {
+ for (const X of y) {
try {
- (l = k.pause) == null || l.call(k);
- } catch (G) {
- (a = console.debug) == null || a.call(console, G);
+ (l = X.pause) == null || l.call(X);
+ } catch (x) {
+ (a = console.debug) == null || a.call(console, x);
}
try {
- (s = (c = k == null ? void 0 : k._mjrAudioViz) == null ? void 0 : c.destroy) == null || s.call(c);
- } catch (G) {
- (d = console.debug) == null || d.call(console, G);
+ (s = (c = X == null ? void 0 : X._mjrAudioViz) == null ? void 0 : c.destroy) == null || s.call(c);
+ } catch (x) {
+ (d = console.debug) == null || d.call(console, x);
}
try {
- k._mjrAudioViz = null;
- } catch (G) {
- (u = console.debug) == null || u.call(console, G);
+ X._mjrAudioViz = null;
+ } catch (x) {
+ (u = console.debug) == null || u.call(console, x);
}
try {
- k.currentTime = 0;
- } catch (G) {
- (I = console.debug) == null || I.call(console, G);
+ X.currentTime = 0;
+ } catch (x) {
+ (I = console.debug) == null || I.call(console, x);
}
try {
- (p = k.removeAttribute) == null || p.call(k, "src");
- } catch (G) {
- (M = console.debug) == null || M.call(console, G);
+ (p = X.removeAttribute) == null || p.call(X, "src");
+ } catch (x) {
+ (S = console.debug) == null || S.call(console, x);
}
try {
- (Z = k.load) == null || Z.call(k);
- } catch (G) {
- (A = console.debug) == null || A.call(console, G);
+ (A = X.load) == null || A.call(X);
+ } catch (x) {
+ (C = console.debug) == null || C.call(console, x);
}
}
} catch (y) {
(g = console.debug) == null || g.call(console, y);
}
try {
- const y = (h = e.querySelectorAll) == null ? void 0 : h.call(e, ".mjr-viewer-media, .mjr-viewer-audio-viz");
+ const y = (Z = e.querySelectorAll) == null ? void 0 : Z.call(e, ".mjr-viewer-media, .mjr-viewer-audio-viz");
if (y && y.length)
- for (const k of y) {
+ for (const X of y) {
try {
- (b = (f = k == null ? void 0 : k._mjrProc) == null ? void 0 : f.destroy) == null || b.call(f);
- } catch (G) {
- (v = console.debug) == null || v.call(console, G);
+ (b = (f = X == null ? void 0 : X._mjrProc) == null ? void 0 : f.destroy) == null || b.call(f);
+ } catch (x) {
+ (L = console.debug) == null || L.call(console, x);
}
try {
- k._mjrProc = null;
- } catch (G) {
- (C = console.debug) == null || C.call(console, G);
+ X._mjrProc = null;
+ } catch (x) {
+ (h = console.debug) == null || h.call(console, x);
}
try {
- k.width = 0, k.height = 0;
- } catch (G) {
- (S = console.debug) == null || S.call(console, G);
+ X.width = 0, X.height = 0;
+ } catch (x) {
+ (G = console.debug) == null || G.call(console, x);
}
}
} catch (y) {
@@ -12031,7 +12046,7 @@ function ci(e) {
}
}
}
-function $Z(e) {
+function nA(e) {
var i, o, r;
const t = [];
try {
@@ -12041,9 +12056,9 @@ function $Z(e) {
}
const n = {
unsubs: t,
- safeAddListener: _e,
- safeCall: pt,
- destroyMediaProcessorsIn: ci,
+ safeAddListener: Qe,
+ safeCall: bt,
+ destroyMediaProcessorsIn: di,
_observer: null,
disposeAll: () => {
var l, a, c, s, d;
@@ -12053,7 +12068,7 @@ function $Z(e) {
(c = console.debug) == null || c.call(console, u);
}
try {
- for (const u of t) pt(u);
+ for (const u of t) bt(u);
} catch (u) {
(s = console.debug) == null || s.call(console, u);
}
@@ -12075,7 +12090,7 @@ function $Z(e) {
} catch (d) {
(c = console.debug) == null || c.call(console, d);
}
- pt(() => {
+ bt(() => {
var d;
return (d = n.disposeAll) == null ? void 0 : d.call(n);
}, "lifecycle:autoDispose");
@@ -12096,7 +12111,7 @@ function $Z(e) {
}
return n;
}
-function yl(e, t) {
+function fl(e, t) {
var i;
const n = document.createElement("button");
n.textContent = e, n.title = t || "";
@@ -12123,7 +12138,7 @@ function yl(e, t) {
n.disabled || (n.style.background = "transparent");
}, n;
}
-function fc(e, t) {
+function hc(e, t) {
var i;
const n = document.createElement("button");
n.textContent = e, n.dataset.mode = t;
@@ -12143,7 +12158,7 @@ function fc(e, t) {
transition: all 0.16s;
`, n;
}
-function Wr(e, t) {
+function Sr(e, t) {
const n = String(e || "").trim(), i = String(t || "").trim();
if (!i) return n;
if (!n) return i;
@@ -12155,16 +12170,16 @@ function Wr(e, t) {
return n;
return `${n} (${i})`;
}
-function QI(e, t, n, { setAriaLabel: i = !0, ariaLabel: o = null } = {}) {
+function _I(e, t, n, { setAriaLabel: i = !0, ariaLabel: o = null } = {}) {
if (!e) return "";
- const r = Wr(t, n);
+ const r = Sr(t, n);
if (e.title = r, i) {
const l = o ?? t;
- e.setAttribute("aria-label", Wr(l, n));
+ e.setAttribute("aria-label", Sr(l, n));
}
return r;
}
-function eA({
+function iA({
VIEWER_MODES: e,
state: t,
onToolsChanged: n,
@@ -12174,7 +12189,7 @@ function eA({
onAudioVizModeChanged: l,
getCanAB: a
} = {}) {
- var Ee, Re, wt, Se, Ft, Gt, ue, He, ve, Ot, Ve, Ke, Be, nt, mt, bt, st;
+ var Te, Oe, pt, Me, Xt, Mt, me, Pe, Le, Ot, Xe, Ee, Ke, nt, ut, It, dt;
const c = {
channel: "rgb",
exposureEV: 0,
@@ -12201,33 +12216,33 @@ function eA({
`;
const d = document.createElement("div");
d.className = "mjr-viewer-tools-deck", d.style.cssText = "display:flex; flex-wrap:nowrap; gap:8px; align-items:center; min-width:0; overflow-x:auto; overflow-y:hidden;";
- const u = ({ key: ke, eyebrow: Ct, title: at } = {}) => {
- const zt = document.createElement("section");
- zt.className = "mjr-viewer-tools-panel", ke && (zt.dataset.panel = String(ke)), zt.style.cssText = "display:flex; flex-direction:column; gap:4px; min-width:0; padding:5px 6px; border-radius:10px; border:1px solid rgba(255,255,255,0.08); background:linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.02)); box-shadow:inset 0 1px 0 rgba(255,255,255,0.04); flex:0 0 auto;";
- const Zt = document.createElement("div");
- Zt.className = "mjr-viewer-tools-panel-head", Zt.style.cssText = "display:none; align-items:flex-start; justify-content:space-between; gap:6px; min-width:0;";
- const gt = document.createElement("div");
- gt.className = "mjr-viewer-tools-panel-heading", gt.style.cssText = "display:flex; flex-direction:column; gap:1px; min-width:0;";
+ const u = ({ key: Re, eyebrow: Wt, title: lt } = {}) => {
+ const qt = document.createElement("section");
+ qt.className = "mjr-viewer-tools-panel", Re && (qt.dataset.panel = String(Re)), qt.style.cssText = "display:flex; flex-direction:column; gap:4px; min-width:0; padding:5px 6px; border-radius:10px; border:1px solid rgba(255,255,255,0.08); background:linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.02)); box-shadow:inset 0 1px 0 rgba(255,255,255,0.04); flex:0 0 auto;";
+ const yt = document.createElement("div");
+ yt.className = "mjr-viewer-tools-panel-head", yt.style.cssText = "display:none; align-items:flex-start; justify-content:space-between; gap:6px; min-width:0;";
+ const mt = document.createElement("div");
+ mt.className = "mjr-viewer-tools-panel-heading", mt.style.cssText = "display:flex; flex-direction:column; gap:1px; min-width:0;";
const kt = document.createElement("span");
- kt.className = "mjr-viewer-tools-panel-eyebrow", kt.textContent = Ct || "";
- const Qt = document.createElement("span");
- Qt.className = "mjr-viewer-tools-panel-title", Qt.textContent = at || "";
- const te = document.createElement("div");
- return te.className = "mjr-viewer-tools-panel-body", te.style.cssText = "display:flex; align-items:center; flex-wrap:nowrap; gap:6px; min-width:0;", gt.appendChild(kt), gt.appendChild(Qt), Zt.appendChild(gt), zt.appendChild(Zt), zt.appendChild(te), { panel: zt, body: te, head: Zt, heading: gt, eyebrowEl: kt, titleEl: Qt };
- }, I = u({ key: "grade", eyebrow: "Image", title: "Adjustments" }), p = u({ key: "overlay", eyebrow: "Viewer", title: "Guides & Compare" }), M = u({ key: "inspect", eyebrow: "Inspect", title: "Probe" }), Z = u({ key: "actions", eyebrow: "Actions", title: "Reset & Export" }), A = u({ key: "info", eyebrow: "Infos", title: "Help" }), g = document.createElement("div");
+ kt.className = "mjr-viewer-tools-panel-eyebrow", kt.textContent = Wt || "";
+ const $t = document.createElement("span");
+ $t.className = "mjr-viewer-tools-panel-title", $t.textContent = lt || "";
+ const Tt = document.createElement("div");
+ return Tt.className = "mjr-viewer-tools-panel-body", Tt.style.cssText = "display:flex; align-items:center; flex-wrap:nowrap; gap:6px; min-width:0;", mt.appendChild(kt), mt.appendChild($t), yt.appendChild(mt), qt.appendChild(yt), qt.appendChild(Tt), { panel: qt, body: Tt, head: yt, heading: mt, eyebrowEl: kt, titleEl: $t };
+ }, I = u({ key: "grade", eyebrow: "Image", title: "Adjustments" }), p = u({ key: "overlay", eyebrow: "Viewer", title: "Guides & Compare" }), S = u({ key: "inspect", eyebrow: "Inspect", title: "Probe" }), A = u({ key: "actions", eyebrow: "Actions", title: "Reset & Export" }), C = u({ key: "info", eyebrow: "Infos", title: "Help" }), g = document.createElement("div");
g.className = "mjr-viewer-tools-actions", g.style.cssText = "display:flex; align-items:center; justify-content:flex-start; gap:6px; flex-wrap:wrap; min-width:0;";
- const h = document.createElement("div");
- h.className = "mjr-viewer-tools-meta", h.style.cssText = "display:flex; align-items:center; justify-content:flex-start; gap:6px; flex-wrap:nowrap; min-width:0;";
- const f = ({ key: ke, label: Ct, accentRgb: at } = {}) => {
- const zt = document.createElement("div");
- if (zt.className = "mjr-viewer-tools-group", ke && (zt.dataset.group = String(ke)), at && zt.style.setProperty("--mjr-group-accent", String(at)), zt.style.cssText = "display:flex; align-items:center; gap:6px; padding:2px 6px; border-radius:8px; border:1px solid rgba(196,202,210,0.14); background:rgba(10,12,16,0.22);", Ct) {
- const Zt = document.createElement("span");
- Zt.className = "mjr-viewer-tools-group-label", Zt.textContent = Ct, Zt.style.cssText = "font-size: 10px; color: rgba(255,255,255,0.7);", zt.appendChild(Zt);
+ const Z = document.createElement("div");
+ Z.className = "mjr-viewer-tools-meta", Z.style.cssText = "display:flex; align-items:center; justify-content:flex-start; gap:6px; flex-wrap:nowrap; min-width:0;";
+ const f = ({ key: Re, label: Wt, accentRgb: lt } = {}) => {
+ const qt = document.createElement("div");
+ if (qt.className = "mjr-viewer-tools-group", Re && (qt.dataset.group = String(Re)), lt && qt.style.setProperty("--mjr-group-accent", String(lt)), qt.style.cssText = "display:flex; align-items:center; gap:6px; padding:2px 6px; border-radius:8px; border:1px solid rgba(196,202,210,0.14); background:rgba(10,12,16,0.22);", Wt) {
+ const yt = document.createElement("span");
+ yt.className = "mjr-viewer-tools-group-label", yt.textContent = Wt, yt.style.cssText = "font-size: 10px; color: rgba(255,255,255,0.7);", qt.appendChild(yt);
}
- return zt;
- }, b = (ke, Ct) => {
- const at = document.createElement("select");
- at.title = ke || "", at.className = "mjr-viewer-tools-select", at.style.cssText = `
+ return qt;
+ }, b = (Re, Wt) => {
+ const lt = document.createElement("select");
+ lt.title = Re || "", lt.className = "mjr-viewer-tools-select", lt.style.cssText = `
height: 24px;
padding: 0 6px;
border-radius: 6px;
@@ -12237,38 +12252,38 @@ function eA({
font-size: 11px;
outline: none;
`;
- for (const zt of Ct || []) {
- const Zt = document.createElement("option");
- Zt.value = String(zt.value), Zt.textContent = String(zt.label), at.appendChild(Zt);
+ for (const qt of Wt || []) {
+ const yt = document.createElement("option");
+ yt.value = String(qt.value), yt.textContent = String(qt.label), lt.appendChild(yt);
}
- return at;
- }, v = (ke, { min: Ct, max: at, step: zt, value: Zt }) => {
- const gt = document.createElement("div");
- gt.className = "mjr-viewer-tools-range", gt.style.cssText = "display:flex; align-items:center; gap:6px;";
+ return lt;
+ }, L = (Re, { min: Wt, max: lt, step: qt, value: yt }) => {
+ const mt = document.createElement("div");
+ mt.className = "mjr-viewer-tools-range", mt.style.cssText = "display:flex; align-items:center; gap:6px;";
const kt = document.createElement("input");
- kt.type = "range", kt.className = "mjr-viewer-tools-range-input", kt.min = String(Ct), kt.max = String(at), kt.step = String(zt), kt.value = String(Zt), kt.title = ke || "", kt.style.cssText = `
+ kt.type = "range", kt.className = "mjr-viewer-tools-range-input", kt.min = String(Wt), kt.max = String(lt), kt.step = String(qt), kt.value = String(yt), kt.title = Re || "", kt.style.cssText = `
width: 92px;
accent-color: rgba(255,255,255,0.85);
`;
- const Qt = document.createElement("span");
- return Qt.style.cssText = "font-size: 11px; color: rgba(255,255,255,0.9); min-width: 38px; text-align: right;", Qt.textContent = String(Zt), gt.appendChild(kt), gt.appendChild(Qt), { wrap: gt, input: kt, out: Qt };
- }, C = (ke, Ct, { iconClass: at = null, accentRgb: zt = null } = {}) => {
+ const $t = document.createElement("span");
+ return $t.style.cssText = "font-size: 11px; color: rgba(255,255,255,0.9); min-width: 38px; text-align: right;", $t.textContent = String(yt), mt.appendChild(kt), mt.appendChild($t), { wrap: mt, input: kt, out: $t };
+ }, h = (Re, Wt, { iconClass: lt = null, accentRgb: qt = null } = {}) => {
var kt;
- const Zt = document.createElement("button");
- if (Zt.type = "button", Zt.className = "mjr-viewer-tool-btn", Zt.setAttribute("aria-label", Ct || ke || "Toggle"), Zt.setAttribute("aria-pressed", "false"), zt)
+ const yt = document.createElement("button");
+ if (yt.type = "button", yt.className = "mjr-viewer-tool-btn", yt.setAttribute("aria-label", Wt || Re || "Toggle"), yt.setAttribute("aria-pressed", "false"), qt)
try {
- Zt.dataset.accentRgb = String(zt);
- } catch (Qt) {
- (kt = console.debug) == null || kt.call(console, Qt);
+ yt.dataset.accentRgb = String(qt);
+ } catch ($t) {
+ (kt = console.debug) == null || kt.call(console, $t);
}
- if (at) {
- const Qt = document.createElement("span");
- Qt.className = `pi ${at}`.trim(), Qt.setAttribute("aria-hidden", "true"), Qt.style.fontSize = "14px", Zt.appendChild(Qt);
- const te = document.createElement("span");
- te.textContent = ke || "", te.style.cssText = "position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;", Zt.appendChild(te);
+ if (lt) {
+ const $t = document.createElement("span");
+ $t.className = `pi ${lt}`.trim(), $t.setAttribute("aria-hidden", "true"), $t.style.fontSize = "14px", yt.appendChild($t);
+ const Tt = document.createElement("span");
+ Tt.textContent = Re || "", Tt.style.cssText = "position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;", yt.appendChild(Tt);
} else
- Zt.textContent = ke;
- Zt.title = Ct || "", Zt.style.cssText = `
+ yt.textContent = Re;
+ yt.title = Wt || "", yt.style.cssText = `
height: 24px;
padding: 0 8px;
border-radius: 6px;
@@ -12283,21 +12298,21 @@ function eA({
justify-content: center;
gap: 6px;
position: relative;
- `, Zt.dataset.active = "0";
- const gt = (Qt) => {
- var we, be;
- const te = !!Qt;
- Zt.dataset.active = te ? "1" : "0";
+ `, yt.dataset.active = "0";
+ const mt = ($t) => {
+ var ye, We;
+ const Tt = !!$t;
+ yt.dataset.active = Tt ? "1" : "0";
try {
- Zt.setAttribute("aria-pressed", te ? "true" : "false");
- } catch (Oe) {
- (we = console.debug) == null || we.call(console, Oe);
+ yt.setAttribute("aria-pressed", Tt ? "true" : "false");
+ } catch (pe) {
+ (ye = console.debug) == null || ye.call(console, pe);
}
- const ge = String(((be = Zt.dataset) == null ? void 0 : be.accentRgb) || "").trim();
- te && ge ? (Zt.style.background = `rgba(${ge}, 0.12)`, Zt.style.borderColor = `rgba(${ge}, 0.38)`, Zt.style.boxShadow = `0 0 0 0.8px rgba(${ge}, 0.12) inset`) : (Zt.style.background = te ? "rgba(214,218,224,0.12)" : "rgba(210,214,220,0.06)", Zt.style.borderColor = te ? "rgba(214,218,224,0.38)" : "rgba(196,202,210,0.24)", Zt.style.boxShadow = "");
+ const te = String(((We = yt.dataset) == null ? void 0 : We.accentRgb) || "").trim();
+ Tt && te ? (yt.style.background = `rgba(${te}, 0.12)`, yt.style.borderColor = `rgba(${te}, 0.38)`, yt.style.boxShadow = `0 0 0 0.8px rgba(${te}, 0.12) inset`) : (yt.style.background = Tt ? "rgba(214,218,224,0.12)" : "rgba(210,214,220,0.06)", yt.style.borderColor = Tt ? "rgba(214,218,224,0.38)" : "rgba(196,202,210,0.24)", yt.style.boxShadow = "");
};
- return gt(!1), { b: Zt, setActive: gt };
- }, S = b("Channel View", [
+ return mt(!1), { b: yt, setActive: mt };
+ }, G = b("Channel View", [
{ value: "rgb", label: "RGB" },
{ value: "r", label: "R" },
{ value: "g", label: "G" },
@@ -12305,8 +12320,8 @@ function eA({
{ value: "a", label: "Alpha" },
{ value: "l", label: "Luma" }
]);
- S.title = m("tooltip.colorChannels", "View color channels or luminance");
- const W = v("Exposure (EV)", { min: -10, max: 10, step: 0.1, value: 0 }), y = v("Gamma", { min: 0.1, max: 3, step: 0.01, value: 1 }), k = Object.freeze({
+ G.title = m("tooltip.colorChannels", "View color channels or luminance");
+ const W = L("Exposure (EV)", { min: -10, max: 10, step: 0.1, value: 0 }), y = L("Gamma", { min: 0.1, max: 3, step: 0.01, value: 1 }), X = Object.freeze({
channel: "120, 180, 255",
exposure: "255, 200, 70",
gamma: "190, 150, 255",
@@ -12318,115 +12333,115 @@ function eA({
compare: "90, 220, 220",
geninfo: "200, 170, 255",
audioviz: "255, 150, 80"
- }), G = Object.freeze({
+ }), x = Object.freeze({
borderColor: "rgba(255,255,255,0.14)",
background: "rgba(255,255,255,0.08)",
boxShadow: ""
- }), z = (ke, { accentRgb: Ct, active: at, title: zt } = {}) => {
- var Zt;
+ }), T = (Re, { accentRgb: Wt, active: lt, title: qt } = {}) => {
+ var yt;
try {
- if (!ke) return;
- if (zt && (ke.title = String(zt)), !!!at) {
- ke.style.borderColor = G.borderColor, ke.style.background = G.background, ke.style.boxShadow = G.boxShadow;
+ if (!Re) return;
+ if (qt && (Re.title = String(qt)), !!!lt) {
+ Re.style.borderColor = x.borderColor, Re.style.background = x.background, Re.style.boxShadow = x.boxShadow;
return;
}
- const kt = String(Ct || "").trim();
+ const kt = String(Wt || "").trim();
if (!kt) return;
- ke.style.borderColor = `rgba(${kt},0.55)`, ke.style.background = `rgba(${kt},0.14)`, ke.style.boxShadow = `0 0 0 1px rgba(${kt},0.14) inset`;
- } catch (gt) {
- (Zt = console.debug) == null || Zt.call(console, gt);
+ Re.style.borderColor = `rgba(${kt},0.55)`, Re.style.background = `rgba(${kt},0.14)`, Re.style.boxShadow = `0 0 0 1px rgba(${kt},0.14) inset`;
+ } catch (mt) {
+ (yt = console.debug) == null || yt.call(console, mt);
}
- }, x = (ke) => {
- var Ct;
+ }, v = (Re) => {
+ var Wt;
try {
- const at = String(ke || "rgb"), zt = "rgba(255,255,255,0.14)", Zt = "rgba(255,255,255,0.08)";
- if (S.style.boxShadow = "", at === "r") {
- S.style.borderColor = "rgba(255,90,90,0.60)", S.style.background = "rgba(255,90,90,0.14)", S.style.boxShadow = "0 0 0 1px rgba(255,90,90,0.14) inset";
+ const lt = String(Re || "rgb"), qt = "rgba(255,255,255,0.14)", yt = "rgba(255,255,255,0.08)";
+ if (G.style.boxShadow = "", lt === "r") {
+ G.style.borderColor = "rgba(255,90,90,0.60)", G.style.background = "rgba(255,90,90,0.14)", G.style.boxShadow = "0 0 0 1px rgba(255,90,90,0.14) inset";
return;
}
- if (at === "g") {
- S.style.borderColor = "rgba(90,255,140,0.55)", S.style.background = "rgba(90,255,140,0.12)", S.style.boxShadow = "0 0 0 1px rgba(90,255,140,0.12) inset";
+ if (lt === "g") {
+ G.style.borderColor = "rgba(90,255,140,0.55)", G.style.background = "rgba(90,255,140,0.12)", G.style.boxShadow = "0 0 0 1px rgba(90,255,140,0.12) inset";
return;
}
- if (at === "b") {
- S.style.borderColor = "rgba(90,160,255,0.60)", S.style.background = "rgba(90,160,255,0.12)", S.style.boxShadow = "0 0 0 1px rgba(90,160,255,0.12) inset";
+ if (lt === "b") {
+ G.style.borderColor = "rgba(90,160,255,0.60)", G.style.background = "rgba(90,160,255,0.12)", G.style.boxShadow = "0 0 0 1px rgba(90,160,255,0.12) inset";
return;
}
- if (at === "l") {
- S.style.borderColor = "rgba(255,210,90,0.60)", S.style.background = "rgba(255,210,90,0.12)", S.style.boxShadow = "0 0 0 1px rgba(255,210,90,0.12) inset";
+ if (lt === "l") {
+ G.style.borderColor = "rgba(255,210,90,0.60)", G.style.background = "rgba(255,210,90,0.12)", G.style.boxShadow = "0 0 0 1px rgba(255,210,90,0.12) inset";
return;
}
- if (at === "a") {
- S.style.borderColor = "rgba(220,220,220,0.35)", S.style.background = "rgba(255,255,255,0.10)", S.style.boxShadow = "0 0 0 1px rgba(255,255,255,0.08) inset";
+ if (lt === "a") {
+ G.style.borderColor = "rgba(220,220,220,0.35)", G.style.background = "rgba(255,255,255,0.10)", G.style.boxShadow = "0 0 0 1px rgba(255,255,255,0.08) inset";
return;
}
- if (at === "rgb") {
- S.style.borderColor = "rgba(255,255,255,0.22)", S.style.background = "linear-gradient(90deg, rgba(255,90,90,0.16), rgba(90,255,140,0.14), rgba(90,160,255,0.16))", S.style.boxShadow = "0 0 0 1px rgba(255,255,255,0.10) inset";
+ if (lt === "rgb") {
+ G.style.borderColor = "rgba(255,255,255,0.22)", G.style.background = "linear-gradient(90deg, rgba(255,90,90,0.16), rgba(90,255,140,0.14), rgba(90,160,255,0.16))", G.style.boxShadow = "0 0 0 1px rgba(255,255,255,0.10) inset";
return;
}
- S.style.borderColor = zt, S.style.background = Zt;
- } catch (at) {
- (Ct = console.debug) == null || Ct.call(console, at);
+ G.style.borderColor = qt, G.style.background = yt;
+ } catch (lt) {
+ (Wt = console.debug) == null || Wt.call(console, lt);
}
- }, w = (ke, { accentRgb: Ct, active: at } = {}) => {
- var zt;
+ }, w = (Re, { accentRgb: Wt, active: lt } = {}) => {
+ var qt;
try {
- if (!ke) return;
- if (!!!at) {
- ke.style.color = "rgba(255,255,255,0.9)";
+ if (!Re) return;
+ if (!!!lt) {
+ Re.style.color = "rgba(255,255,255,0.9)";
return;
}
- const gt = String(Ct || "").trim();
- if (!gt) return;
- ke.style.color = `rgb(${gt})`;
- } catch (Zt) {
- (zt = console.debug) == null || zt.call(console, Zt);
+ const mt = String(Wt || "").trim();
+ if (!mt) return;
+ Re.style.color = `rgb(${mt})`;
+ } catch (yt) {
+ (qt = console.debug) == null || qt.call(console, yt);
}
- }, X = (ke, { accentRgb: Ct, active: at } = {}) => {
- var zt;
+ }, R = (Re, { accentRgb: Wt, active: lt } = {}) => {
+ var qt;
try {
- if (!ke) return;
- if (!!!at) {
- ke.style.background = "", ke.style.borderColor = "transparent", ke.style.boxShadow = "";
+ if (!Re) return;
+ if (!!!lt) {
+ Re.style.background = "", Re.style.borderColor = "transparent", Re.style.boxShadow = "";
return;
}
- const gt = String(Ct || "").trim();
- if (!gt) return;
- ke.style.background = `rgba(${gt},0.10)`, ke.style.borderColor = `rgba(${gt},0.38)`, ke.style.boxShadow = `0 0 0 1px rgba(${gt},0.12) inset`;
- } catch (Zt) {
- (zt = console.debug) == null || zt.call(console, Zt);
+ const mt = String(Wt || "").trim();
+ if (!mt) return;
+ Re.style.background = `rgba(${mt},0.10)`, Re.style.borderColor = `rgba(${mt},0.38)`, Re.style.boxShadow = `0 0 0 1px rgba(${mt},0.12) inset`;
+ } catch (yt) {
+ (qt = console.debug) == null || qt.call(console, yt);
}
- }, V = C("Zebra", "Zebra Highlights (Z)", {
+ }, Y = h("Zebra", "Zebra Highlights (Z)", {
iconClass: "pi-bars",
- accentRgb: k.zebra
- }), R = C("Scopes", "Scopes overlay", {
+ accentRgb: X.zebra
+ }), F = h("Scopes", "Scopes overlay", {
iconClass: "pi-chart-bar",
- accentRgb: k.analysis
- }), j = b("Scopes", [
+ accentRgb: X.analysis
+ }), N = b("Scopes", [
{ value: "off", label: "Off" },
{ value: "hist", label: "Histogram" },
{ value: "wave", label: "Waveform" },
{ value: "both", label: "Both" }
]);
- j.title = m("tooltip.scopesHistogram", "Show histogram/waveform scopes");
- const L = C("Grid", "Grid (G)", {
+ N.title = m("tooltip.scopesHistogram", "Show histogram/waveform scopes");
+ const V = h("Grid", "Grid (G)", {
iconClass: "pi-th-large",
- accentRgb: k.overlay
- }), N = b("Grid Overlay", [
+ accentRgb: X.overlay
+ }), k = b("Grid Overlay", [
{ value: 0, label: "Off" },
{ value: 1, label: "Thirds" },
{ value: 2, label: "Center" },
{ value: 3, label: "Safe" },
{ value: 4, label: "Golden" }
]);
- N.title = Wr(
+ k.title = Sr(
m("tooltip.gridOverlay", "Grid overlay (rule of thirds, center)"),
"G"
);
- const q = C("Mask", "Format mask (dim outside)", {
+ const K = h("Mask", "Format mask (dim outside)", {
iconClass: "pi-stop",
- accentRgb: k.overlay
- }), O = b("Format", [
+ accentRgb: X.overlay
+ }), z = b("Format", [
{ value: "image", label: "Image" },
{ value: "16:9", label: "16:9" },
{ value: "1:1", label: "1:1" },
@@ -12434,32 +12449,32 @@ function eA({
{ value: "2.39", label: "2.39" },
{ value: "9:16", label: "9:16" }
]);
- O.title = m("tooltip.aspectRatioMask", "Aspect ratio overlay mask");
- const B = v("Mask Opacity", {
+ z.title = m("tooltip.aspectRatioMask", "Aspect ratio overlay mask");
+ const B = L("Mask Opacity", {
min: 0,
max: 0.9,
step: 0.05,
value: 0.65
- }), J = C("Probe", "Pixel Probe (I)", {
+ }), J = h("Probe", "Pixel Probe (I)", {
iconClass: "pi-eye",
- accentRgb: k.probe
- }), T = C("Loupe", "Loupe (L)", {
+ accentRgb: X.probe
+ }), P = h("Loupe", "Loupe (L)", {
iconClass: "pi-search-plus",
- accentRgb: k.loupe
- }), D = C("HUD", "Viewer HUD", {
+ accentRgb: X.loupe
+ }), H = h("HUD", "Viewer HUD", {
iconClass: "pi-info-circle",
- accentRgb: k.overlay
- }), Q = C("Focus", "Distraction-free mode (X)", {
+ accentRgb: X.overlay
+ }), $ = h("Focus", "Distraction-free mode (X)", {
iconClass: "pi-window-maximize",
- accentRgb: k.overlay
- }), E = C(
+ accentRgb: X.overlay
+ }), E = h(
"Gen",
- Wr("Generation info (prompt/model)", "D"),
+ Sr("Generation info (prompt/model)", "D"),
{
iconClass: "pi-book",
- accentRgb: k.geninfo
+ accentRgb: X.geninfo
}
- ), K = b("A/B Compare Mode", [
+ ), oe = b("A/B Compare Mode", [
{ value: "wipe", label: "Wipe (H)" },
{ value: "wipeV", label: "Wipe (V)" },
{ value: "difference", label: "Difference" },
@@ -12469,124 +12484,124 @@ function eA({
{ value: "multiply", label: "Multiply" },
{ value: "screen", label: "Screen" }
]);
- K.title = m("tooltip.compareBlendMode", "Compare blend mode");
- const F = b("Audio Visualizer", [
+ oe.title = m("tooltip.compareBlendMode", "Compare blend mode");
+ const M = b("Audio Visualizer", [
{ value: "simple", label: "Simple" },
{ value: "artistic", label: "Artistic" }
]);
- F.title = m("tooltip.audioVisualizer", "Audio visualizer mode");
- const Y = yl(
+ M.title = m("tooltip.audioVisualizer", "Audio visualizer mode");
+ const j = fl(
"Reset",
m("tooltip.resetPlayerControls", "Reset all viewer controls")
);
- Y.style.height = "26px", Y.style.fontSize = "11px", Y.style.padding = "0 8px", (Re = (Ee = Y.classList) == null ? void 0 : Ee.add) == null || Re.call(Ee, "mjr-viewer-tool-btn", "mjr-viewer-tool-btn--reset"), (Se = (wt = Y.classList) == null ? void 0 : wt.add) == null || Se.call(wt, "mjr-viewer-tools-action", "mjr-viewer-tools-action--primary"), Y.style.marginLeft = "auto";
- const U = document.createElement("button");
- U.type = "button", U.title = m("tooltip.exportFrame", "Save current frame as PNG"), U.setAttribute("aria-label", m("tooltip.exportFrame", "Save frame as PNG")), U.className = "mjr-viewer-tool-btn mjr-viewer-tool-btn--reset", U.style.cssText = "height:24px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center;";
- const P = document.createElement("span");
- P.className = "pi pi-download", P.setAttribute("aria-hidden", "true"), P.style.fontSize = "14px", U.appendChild(P), (Gt = (Ft = U.classList) == null ? void 0 : Ft.add) == null || Gt.call(Ft, "mjr-viewer-tools-action");
+ j.style.height = "26px", j.style.fontSize = "11px", j.style.padding = "0 8px", (Oe = (Te = j.classList) == null ? void 0 : Te.add) == null || Oe.call(Te, "mjr-viewer-tool-btn", "mjr-viewer-tool-btn--reset"), (Me = (pt = j.classList) == null ? void 0 : pt.add) == null || Me.call(pt, "mjr-viewer-tools-action", "mjr-viewer-tools-action--primary"), j.style.marginLeft = "auto";
+ const O = document.createElement("button");
+ O.type = "button", O.title = m("tooltip.exportFrame", "Save current frame as PNG"), O.setAttribute("aria-label", m("tooltip.exportFrame", "Save frame as PNG")), O.className = "mjr-viewer-tool-btn mjr-viewer-tool-btn--reset", O.style.cssText = "height:24px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center;";
+ const D = document.createElement("span");
+ D.className = "pi pi-download", D.setAttribute("aria-hidden", "true"), D.style.fontSize = "14px", O.appendChild(D), (Mt = (Xt = O.classList) == null ? void 0 : Xt.add) == null || Mt.call(Xt, "mjr-viewer-tools-action");
try {
- U.style.display = "none";
- } catch (ke) {
- (ue = console.debug) == null || ue.call(console, ke);
+ O.style.display = "none";
+ } catch (Re) {
+ (me = console.debug) == null || me.call(console, Re);
}
- const ee = document.createElement("button");
- ee.type = "button", ee.title = m("tooltip.copyFrame", "Copy current frame to clipboard"), ee.setAttribute("aria-label", m("tooltip.copyFrame", "Copy frame to clipboard")), ee.className = "mjr-viewer-tool-btn mjr-viewer-tool-btn--reset", ee.style.cssText = "height:24px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center;";
- const oe = document.createElement("span");
- oe.className = "pi pi-copy", oe.setAttribute("aria-hidden", "true"), oe.style.fontSize = "14px", ee.appendChild(oe), (ve = (He = ee.classList) == null ? void 0 : He.add) == null || ve.call(He, "mjr-viewer-tools-action");
+ const q = document.createElement("button");
+ q.type = "button", q.title = m("tooltip.copyFrame", "Copy current frame to clipboard"), q.setAttribute("aria-label", m("tooltip.copyFrame", "Copy frame to clipboard")), q.className = "mjr-viewer-tool-btn mjr-viewer-tool-btn--reset", q.style.cssText = "height:24px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center;";
+ const ee = document.createElement("span");
+ ee.className = "pi pi-copy", ee.setAttribute("aria-hidden", "true"), ee.style.fontSize = "14px", q.appendChild(ee), (Le = (Pe = q.classList) == null ? void 0 : Pe.add) == null || Le.call(Pe, "mjr-viewer-tools-action");
try {
- ee.style.display = "none";
- } catch (ke) {
- (Ot = console.debug) == null || Ot.call(console, ke);
+ q.style.display = "none";
+ } catch (Re) {
+ (Ot = console.debug) == null || Ot.call(console, Re);
}
- const ce = f({ key: "channel", label: "Channel", accentRgb: k.channel });
- ce.appendChild(S), I.body.appendChild(ce);
- const pe = f({ key: "exposure", label: "EV", accentRgb: k.exposure });
- pe.appendChild(W.wrap), I.body.appendChild(pe);
- const H = f({ key: "gamma", label: "Gamma", accentRgb: k.gamma });
- H.appendChild(y.wrap), I.body.appendChild(H);
- const $ = () => {
- var ke, Ct;
+ const ce = f({ key: "channel", label: "Channel", accentRgb: X.channel });
+ ce.appendChild(G), I.body.appendChild(ce);
+ const ue = f({ key: "exposure", label: "EV", accentRgb: X.exposure });
+ ue.appendChild(W.wrap), I.body.appendChild(ue);
+ const U = f({ key: "gamma", label: "Gamma", accentRgb: X.gamma });
+ U.appendChild(y.wrap), I.body.appendChild(U);
+ const Q = () => {
+ var Re, Wt;
try {
t.exposureEV = 0;
- } catch (at) {
- (ke = console.debug) == null || ke.call(console, at);
+ } catch (lt) {
+ (Re = console.debug) == null || Re.call(console, lt);
}
try {
W.input.value = "0", W.out.textContent = "0.0EV";
- } catch (at) {
- (Ct = console.debug) == null || Ct.call(console, at);
+ } catch (lt) {
+ (Wt = console.debug) == null || Wt.call(console, lt);
}
- pt(n);
+ bt(n);
}, _ = () => {
- var ke, Ct;
+ var Re, Wt;
try {
t.gamma = 1;
- } catch (at) {
- (ke = console.debug) == null || ke.call(console, at);
+ } catch (lt) {
+ (Re = console.debug) == null || Re.call(console, lt);
}
try {
y.input.value = "1", y.out.textContent = "1.00";
- } catch (at) {
- (Ct = console.debug) == null || Ct.call(console, at);
+ } catch (lt) {
+ (Wt = console.debug) == null || Wt.call(console, lt);
}
- pt(n);
+ bt(n);
}, le = () => {
- var ke;
+ var Re;
try {
Object.assign(t, c);
- } catch (Ct) {
- (ke = console.debug) == null || ke.call(console, Ct);
+ } catch (Wt) {
+ (Re = console.debug) == null || Re.call(console, Wt);
}
- pt(i), pt(l), pt(n);
+ bt(i), bt(l), bt(n);
};
try {
- const ke = (Ve = pe.querySelector) == null ? void 0 : Ve.call(pe, ".mjr-viewer-tools-group-label");
- ke && (ke.title = m("tooltip.resetExposure", "Reset EV to 0"), ke.style.cursor = "pointer", ke.style.userSelect = "none");
- } catch (ke) {
- (Ke = console.debug) == null || Ke.call(console, ke);
+ const Re = (Xe = ue.querySelector) == null ? void 0 : Xe.call(ue, ".mjr-viewer-tools-group-label");
+ Re && (Re.title = m("tooltip.resetExposure", "Reset EV to 0"), Re.style.cursor = "pointer", Re.style.userSelect = "none");
+ } catch (Re) {
+ (Ee = console.debug) == null || Ee.call(console, Re);
}
try {
W.out.title = m("tooltip.resetExposure", "Reset EV to 0"), W.out.style.cursor = "pointer", W.out.style.userSelect = "none";
- } catch (ke) {
- (Be = console.debug) == null || Be.call(console, ke);
+ } catch (Re) {
+ (Ke = console.debug) == null || Ke.call(console, Re);
}
try {
- const ke = (nt = H.querySelector) == null ? void 0 : nt.call(H, ".mjr-viewer-tools-group-label");
- ke && (ke.title = m("tooltip.resetGamma", "Reset Gamma to 1.00"), ke.style.cursor = "pointer", ke.style.userSelect = "none");
- } catch (ke) {
- (mt = console.debug) == null || mt.call(console, ke);
+ const Re = (nt = U.querySelector) == null ? void 0 : nt.call(U, ".mjr-viewer-tools-group-label");
+ Re && (Re.title = m("tooltip.resetGamma", "Reset Gamma to 1.00"), Re.style.cursor = "pointer", Re.style.userSelect = "none");
+ } catch (Re) {
+ (ut = console.debug) == null || ut.call(console, Re);
}
try {
y.out.title = m("tooltip.resetGamma", "Reset Gamma to 1.00"), y.out.style.cursor = "pointer", y.out.style.userSelect = "none";
- } catch (ke) {
- (bt = console.debug) == null || bt.call(console, ke);
+ } catch (Re) {
+ (It = console.debug) == null || It.call(console, Re);
}
- const se = f({ key: "analysis", label: "Analysis", accentRgb: k.analysis });
- se.appendChild(V.b), se.appendChild(R.b), se.appendChild(j), I.body.appendChild(se);
- const de = f({
+ const de = f({ key: "analysis", label: "Analysis", accentRgb: X.analysis });
+ de.appendChild(Y.b), de.appendChild(F.b), de.appendChild(N), I.body.appendChild(de);
+ const se = f({
key: "overlay-guides",
label: "Guides",
- accentRgb: k.overlay
+ accentRgb: X.overlay
});
- de.appendChild(L.b), de.appendChild(N), de.appendChild(q.b), de.appendChild(O), de.appendChild(B.wrap), p.body.appendChild(de);
- const Ze = f({
+ se.appendChild(V.b), se.appendChild(k), se.appendChild(K.b), se.appendChild(z), se.appendChild(B.wrap), p.body.appendChild(se);
+ const ge = f({
key: "overlay-inspect",
label: "Inspect",
- accentRgb: k.overlay
+ accentRgb: X.overlay
});
- [J.b, T.b, D.b, Q.b, E.b].forEach((ke, Ct) => {
- Ct > 0 && (ke.style.marginLeft = "4px"), Ze.appendChild(ke);
- }), M.body.appendChild(Ze);
- const xe = f({ key: "compare", label: "Compare", accentRgb: k.compare });
- xe.style.borderRadius = "8px", xe.style.padding = "4px 6px", xe.style.border = "1px solid transparent", xe.style.transition = "background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease", xe.appendChild(K), p.body.appendChild(xe);
- const ze = f({
+ [J.b, P.b, H.b, $.b, E.b].forEach((Re, Wt) => {
+ Wt > 0 && (Re.style.marginLeft = "4px"), ge.appendChild(Re);
+ }), S.body.appendChild(ge);
+ const Se = f({ key: "compare", label: "Compare", accentRgb: X.compare });
+ Se.style.borderRadius = "8px", Se.style.padding = "4px 6px", Se.style.border = "1px solid transparent", Se.style.transition = "background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease", Se.appendChild(oe), p.body.appendChild(Se);
+ const ke = f({
key: "audio-viz",
label: "Audio Viz",
- accentRgb: k.audioviz
+ accentRgb: X.audioviz
});
- ze.appendChild(F), p.body.appendChild(ze), g.appendChild(Y), g.appendChild(U), g.appendChild(ee);
- const We = document.createElement("div");
- We.className = "mjr-viewer-tools-group mjr-viewer-tools-group--3d", We.textContent = "LMB rotate Β· RMB pan Β· Scroll zoom", We.style.cssText = [
+ ke.appendChild(M), p.body.appendChild(ke), g.appendChild(j), g.appendChild(O), g.appendChild(q);
+ const we = document.createElement("div");
+ we.className = "mjr-viewer-tools-group mjr-viewer-tools-group--3d", we.textContent = "LMB rotate Β· RMB pan Β· Scroll zoom", we.style.cssText = [
"display:none",
"align-items:center",
"padding:2px 8px",
@@ -12597,11 +12612,11 @@ function eA({
"font-size:10px",
"font-weight:400",
"letter-spacing:0.01em"
- ].join(";"), h.appendChild(We);
- const De = document.createElement("div");
- De.style.cssText = "position: relative; display:inline-flex; align-items:center;", De.className = "mjr-viewer-tools-action", De.style.marginLeft = "4px";
- const Pe = document.createElement("button");
- Pe.type = "button", Pe.title = m("tooltip.viewerShortcuts", "Viewer shortcuts"), Pe.setAttribute("aria-label", m("tooltip.viewerShortcuts", "Viewer shortcuts")), Pe.style.cssText = `
+ ].join(";"), Z.appendChild(we);
+ const Je = document.createElement("div");
+ Je.style.cssText = "position: relative; display:inline-flex; align-items:center;", Je.className = "mjr-viewer-tools-action", Je.style.marginLeft = "4px";
+ const $e = document.createElement("button");
+ $e.type = "button", $e.title = m("tooltip.viewerShortcuts", "Viewer shortcuts"), $e.setAttribute("aria-label", m("tooltip.viewerShortcuts", "Viewer shortcuts")), $e.style.cssText = `
height: 24px;
padding: 0 8px;
border-radius: 6px;
@@ -12613,8 +12628,8 @@ function eA({
align-items: center;
justify-content: center;
`;
- const Qe = document.createElement("span");
- Qe.className = "pi pi-question-circle", Qe.setAttribute("aria-hidden", "true"), Qe.style.fontSize = "14px", Pe.appendChild(Qe);
+ const qe = document.createElement("span");
+ qe.className = "pi pi-question-circle", qe.setAttribute("aria-hidden", "true"), qe.style.fontSize = "14px", $e.appendChild(qe);
const Ue = document.createElement("div");
Ue.className = "mjr-viewer-help", Ue.style.cssText = `
position: absolute;
@@ -12634,72 +12649,72 @@ function eA({
z-index: 10002;
`;
try {
- const ke = document.createElement("div");
- ke.textContent = "Shortcuts", ke.style.cssText = "font-weight:600; margin-bottom:6px;";
- const Ct = document.createElement("div");
- Ct.style.cssText = "display:grid; grid-template-columns: 1fr 1fr; gap: 4px 10px;";
- const at = (zt, Zt) => {
- const gt = document.createElement("div"), kt = document.createElement("span");
- kt.style.cssText = "opacity:.75;", kt.textContent = String(zt || ""), gt.appendChild(kt), gt.appendChild(document.createTextNode(` ${String(Zt || "")}`)), Ct.appendChild(gt);
+ const Re = document.createElement("div");
+ Re.textContent = "Shortcuts", Re.style.cssText = "font-weight:600; margin-bottom:6px;";
+ const Wt = document.createElement("div");
+ Wt.style.cssText = "display:grid; grid-template-columns: 1fr 1fr; gap: 4px 10px;";
+ const lt = (qt, yt) => {
+ const mt = document.createElement("div"), kt = document.createElement("span");
+ kt.style.cssText = "opacity:.75;", kt.textContent = String(qt || ""), mt.appendChild(kt), mt.appendChild(document.createTextNode(` ${String(yt || "")}`)), Wt.appendChild(mt);
};
- at("Esc", "Close"), at("Space", "Play/Pause"), at("+", "Zoom In"), at("-", "Zoom Out"), at("Alt+1", "1:1 Zoom"), at("G", "Grid"), at("D", "Gen Info"), at("Z", "Zebra"), at("I", "Probe"), at("L", "Loupe"), at("X", "Focus Mode"), at("C", "Copy Color"), at("[ / ]", "Speed -/+"), at("\\", "Speed 1x"), at("β/β", "Prev/Next"), at("0-5", "Rating"), Ue.appendChild(ke), Ue.appendChild(Ct);
- } catch (ke) {
- (st = console.debug) == null || st.call(console, ke);
+ lt("Esc", "Close"), lt("Space", "Play/Pause"), lt("+", "Zoom In"), lt("-", "Zoom Out"), lt("Alt+1", "1:1 Zoom"), lt("G", "Grid"), lt("D", "Gen Info"), lt("Z", "Zebra"), lt("I", "Probe"), lt("L", "Loupe"), lt("X", "Focus Mode"), lt("C", "Copy Color"), lt("[ / ]", "Speed -/+"), lt("\\", "Speed 1x"), lt("β/β", "Prev/Next"), lt("0-5", "Rating"), Ue.appendChild(Re), Ue.appendChild(Wt);
+ } catch (Re) {
+ (dt = console.debug) == null || dt.call(console, Re);
}
- return De.appendChild(Pe), De.appendChild(Ue), h.appendChild(De), Z.body.appendChild(g), A.body.appendChild(h), d.appendChild(I.panel), d.appendChild(p.panel), d.appendChild(M.panel), d.appendChild(Z.panel), d.appendChild(A.panel), s.appendChild(d), {
+ return Je.appendChild($e), Je.appendChild(Ue), Z.appendChild(Je), A.body.appendChild(g), C.body.appendChild(Z), d.appendChild(I.panel), d.appendChild(p.panel), d.appendChild(S.panel), d.appendChild(A.panel), d.appendChild(C.panel), s.appendChild(d), {
toolsRow: s,
gradePanel: I,
overlayPanel: p,
- inspectPanel: M,
- actionPanel: Z,
- infoPanel: A,
+ inspectPanel: S,
+ actionPanel: A,
+ infoPanel: C,
toolsActions: g,
- toolsMeta: h,
+ toolsMeta: Z,
chGroup: ce,
- expGroup: pe,
- gamGroup: H,
- anaGroup: se,
- ovGuidesGroup: de,
- ovInspectGroup: Ze,
- cmpGroup: xe,
- audGroup: ze,
- model3dHint: We,
- helpWrap: De,
- helpBtn: Pe,
+ expGroup: ue,
+ gamGroup: U,
+ anaGroup: de,
+ ovGuidesGroup: se,
+ ovInspectGroup: ge,
+ cmpGroup: Se,
+ audGroup: ke,
+ model3dHint: we,
+ helpWrap: Je,
+ helpBtn: $e,
helpPop: Ue,
- channelsSelect: S,
+ channelsSelect: G,
exposureCtl: W,
gammaCtl: y,
- zebraToggle: V,
- scopesToggle: R,
- scopesSelect: j,
- gridToggle: L,
- gridModeSelect: N,
- maskToggle: q,
- formatSelect: O,
+ zebraToggle: Y,
+ scopesToggle: F,
+ scopesSelect: N,
+ gridToggle: V,
+ gridModeSelect: k,
+ maskToggle: K,
+ formatSelect: z,
maskOpacityCtl: B,
probeToggle: J,
- loupeToggle: T,
- hudToggle: D,
- focusToggle: Q,
+ loupeToggle: P,
+ hudToggle: H,
+ focusToggle: $,
genInfoToggle: E,
- compareModeSelect: K,
- audioVizModeSelect: F,
- resetGradeBtn: Y,
- exportBtn: U,
- copyBtn: ee,
- resetExposure: $,
+ compareModeSelect: oe,
+ audioVizModeSelect: M,
+ resetGradeBtn: j,
+ exportBtn: O,
+ copyBtn: q,
+ resetExposure: Q,
resetGamma: _,
resetViewerTools: le,
- ACCENT: k,
- setSelectHighlighted: z,
- setChannelSelectStyle: x,
+ ACCENT: X,
+ setSelectHighlighted: T,
+ setChannelSelectStyle: v,
setValueHighlighted: w,
- setGroupHighlighted: X,
+ setGroupHighlighted: R,
DEFAULT_TOOL_STATE: c
};
}
-function tA({
+function oA({
unsubs: e,
state: t,
VIEWER_MODES: n,
@@ -12714,240 +12729,240 @@ function tA({
abBtn: u,
sideBtn: I,
closeBtn: p,
- channelsSelect: M,
- compareModeSelect: Z,
- audioVizModeSelect: A,
+ channelsSelect: S,
+ compareModeSelect: A,
+ audioVizModeSelect: C,
exposureCtl: g,
- gammaCtl: h,
+ gammaCtl: Z,
zebraToggle: f,
scopesToggle: b,
- scopesSelect: v,
- gridToggle: C,
- gridModeSelect: S,
+ scopesSelect: L,
+ gridToggle: h,
+ gridModeSelect: G,
maskToggle: W,
formatSelect: y,
- maskOpacityCtl: k,
- probeToggle: G,
- loupeToggle: z,
- hudToggle: x,
+ maskOpacityCtl: X,
+ probeToggle: x,
+ loupeToggle: T,
+ hudToggle: v,
focusToggle: w,
- genInfoToggle: X,
- resetGradeBtn: V,
- exportBtn: R,
- copyBtn: j,
- resetExposure: L,
- resetGamma: N,
- resetViewerTools: q,
- expGroup: O,
+ genInfoToggle: R,
+ resetGradeBtn: Y,
+ exportBtn: F,
+ copyBtn: N,
+ resetExposure: V,
+ resetGamma: k,
+ resetViewerTools: K,
+ expGroup: z,
gamGroup: B
}) {
- var J, T;
- e.push(_e(d, "click", () => i == null ? void 0 : i(n.SINGLE))), e.push(_e(u, "click", () => i == null ? void 0 : i(n.AB_COMPARE))), e.push(_e(I, "click", () => i == null ? void 0 : i(n.SIDE_BY_SIDE))), e.push(_e(p, "click", () => o == null ? void 0 : o())), e.push(
- _e(M, "change", () => {
- var D;
+ var J, P;
+ e.push(Qe(d, "click", () => i == null ? void 0 : i(n.SINGLE))), e.push(Qe(u, "click", () => i == null ? void 0 : i(n.AB_COMPARE))), e.push(Qe(I, "click", () => i == null ? void 0 : i(n.SIDE_BY_SIDE))), e.push(Qe(p, "click", () => o == null ? void 0 : o())), e.push(
+ Qe(S, "change", () => {
+ var H;
try {
- t.channel = String(M.value || "rgb");
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ t.channel = String(S.value || "rgb");
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(Z, "change", () => {
- var D;
+ Qe(A, "change", () => {
+ var H;
try {
- t.abCompareMode = String(Z.value || "wipe");
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ t.abCompareMode = String(A.value || "wipe");
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- pt(l), pt(r);
+ bt(l), bt(r);
})
), e.push(
- _e(A, "change", () => {
- var D;
+ Qe(C, "change", () => {
+ var H;
try {
- t.audioVisualizerMode = String(A.value || "artistic");
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ t.audioVisualizerMode = String(C.value || "artistic");
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- pt(a), pt(r);
+ bt(a), bt(r);
})
), e.push(
- _e(g.input, "input", () => {
- var Q;
- const D = Math.max(-10, Math.min(10, Number(g.input.value) || 0));
- t.exposureEV = Math.round(D * 10) / 10;
+ Qe(g.input, "input", () => {
+ var $;
+ const H = Math.max(-10, Math.min(10, Number(g.input.value) || 0));
+ t.exposureEV = Math.round(H * 10) / 10;
try {
g.out.textContent = `${t.exposureEV.toFixed(1)}EV`;
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
- pt(r);
+ bt(r);
})
- ), e.push(_e(g.input, "dblclick", L)), e.push(_e(g.out, "click", L)), e.push(
- _e(
- (J = O.querySelector) == null ? void 0 : J.call(O, ".mjr-viewer-tools-group-label"),
+ ), e.push(Qe(g.input, "dblclick", V)), e.push(Qe(g.out, "click", V)), e.push(
+ Qe(
+ (J = z.querySelector) == null ? void 0 : J.call(z, ".mjr-viewer-tools-group-label"),
"click",
- L
+ V
)
), e.push(
- _e(h.input, "input", () => {
- var Q;
- const D = Math.max(0.1, Math.min(3, Number(h.input.value) || 1));
- t.gamma = Math.round(D * 100) / 100;
+ Qe(Z.input, "input", () => {
+ var $;
+ const H = Math.max(0.1, Math.min(3, Number(Z.input.value) || 1));
+ t.gamma = Math.round(H * 100) / 100;
try {
- h.out.textContent = t.gamma.toFixed(2);
+ Z.out.textContent = t.gamma.toFixed(2);
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
- pt(r);
+ bt(r);
})
- ), e.push(_e(h.input, "dblclick", N)), e.push(_e(h.out, "click", N)), e.push(
- _e(
- (T = B.querySelector) == null ? void 0 : T.call(B, ".mjr-viewer-tools-group-label"),
+ ), e.push(Qe(Z.input, "dblclick", k)), e.push(Qe(Z.out, "click", k)), e.push(
+ Qe(
+ (P = B.querySelector) == null ? void 0 : P.call(B, ".mjr-viewer-tools-group-label"),
"click",
- N
+ k
)
), e.push(
- _e(f.b, "click", () => {
- t.analysisMode = t.analysisMode === "zebra" ? "none" : "zebra", pt(r);
+ Qe(f.b, "click", () => {
+ t.analysisMode = t.analysisMode === "zebra" ? "none" : "zebra", bt(r);
})
), e.push(
- _e(b.b, "click", () => {
- var D, Q;
+ Qe(b.b, "click", () => {
+ var H, $;
try {
- const K = String(t.scopesMode || "off") === "off" ? "both" : "off";
- t.scopesMode = K;
+ const oe = String(t.scopesMode || "off") === "off" ? "both" : "off";
+ t.scopesMode = oe;
try {
- v.value = String(K);
- } catch (F) {
- (D = console.debug) == null || D.call(console, F);
+ L.value = String(oe);
+ } catch (M) {
+ (H = console.debug) == null || H.call(console, M);
}
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(v, "change", () => {
- var D;
+ Qe(L, "change", () => {
+ var H;
try {
- const Q = String(v.value || "off");
- t.scopesMode = Q;
+ const $ = String(L.value || "off");
+ t.scopesMode = $;
} catch {
try {
t.scopesMode = "off";
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(C.b, "click", () => {
- t.gridMode = Number(t.gridMode) ? 0 : 1, pt(r);
+ Qe(h.b, "click", () => {
+ t.gridMode = Number(t.gridMode) ? 0 : 1, bt(r);
})
), e.push(
- _e(S, "change", () => {
- var D;
+ Qe(G, "change", () => {
+ var H;
try {
- const Q = Number(S.value);
- t.gridMode = Number.isFinite(Q) ? Q : 0;
+ const $ = Number(G.value);
+ t.gridMode = Number.isFinite($) ? $ : 0;
} catch {
try {
t.gridMode = 0;
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(W.b, "click", () => {
- var D;
+ Qe(W.b, "click", () => {
+ var H;
try {
t.overlayMaskEnabled = !t.overlayMaskEnabled;
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(y, "change", () => {
- var D;
+ Qe(y, "change", () => {
+ var H;
try {
t.overlayFormat = String(y.value || "image");
} catch {
try {
t.overlayFormat = "image";
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(k.input, "input", () => {
- var D;
+ Qe(X.input, "input", () => {
+ var H;
try {
- const Q = Number(k.input.value), E = Math.max(0, Math.min(0.9, Number.isFinite(Q) ? Q : 0.65));
- t.overlayMaskOpacity = Math.round(E * 100) / 100, k.out.textContent = t.overlayMaskOpacity.toFixed(2);
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ const $ = Number(X.input.value), E = Math.max(0, Math.min(0.9, Number.isFinite($) ? $ : 0.65));
+ t.overlayMaskOpacity = Math.round(E * 100) / 100, X.out.textContent = t.overlayMaskOpacity.toFixed(2);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(G.b, "click", () => {
- t.probeEnabled = !t.probeEnabled, pt(r);
+ Qe(x.b, "click", () => {
+ t.probeEnabled = !t.probeEnabled, bt(r);
})
), e.push(
- _e(z.b, "click", () => {
- t.loupeEnabled = !t.loupeEnabled, pt(r);
+ Qe(T.b, "click", () => {
+ t.loupeEnabled = !t.loupeEnabled, bt(r);
})
), e.push(
- _e(x.b, "click", () => {
- t.hudEnabled = !t.hudEnabled, pt(r);
+ Qe(v.b, "click", () => {
+ t.hudEnabled = !t.hudEnabled, bt(r);
})
), e.push(
- _e(w.b, "click", () => {
- t.distractionFree = !t.distractionFree, pt(r);
+ Qe(w.b, "click", () => {
+ t.distractionFree = !t.distractionFree, bt(r);
})
), e.push(
- _e(X.b, "click", () => {
- var D;
+ Qe(R.b, "click", () => {
+ var H;
try {
t.genInfoOpen = !t.genInfoOpen;
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- pt(r);
+ bt(r);
})
), e.push(
- _e(V, "click", () => {
- q();
+ Qe(Y, "click", () => {
+ K();
})
), e.push(
- _e(R, "click", () => {
- var D;
+ Qe(F, "click", () => {
+ var H;
try {
c == null || c();
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
})
), e.push(
- _e(j, "click", () => {
- var D;
+ Qe(N, "click", () => {
+ var H;
try {
s == null || s();
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
})
);
}
-function nA({
+function rA({
state: e,
VIEWER_MODES: t,
getCanAB: n,
@@ -12962,252 +12977,252 @@ function nA({
inspectPanel: u,
infoPanel: I,
actionPanel: p,
- ovGuidesGroup: M,
- ovInspectGroup: Z,
- model3dHint: A,
+ ovGuidesGroup: S,
+ ovInspectGroup: A,
+ model3dHint: C,
helpWrap: g,
- channelsSelect: h,
+ channelsSelect: Z,
compareModeSelect: f,
audioVizModeSelect: b,
- exposureCtl: v,
- gammaCtl: C,
- zebraToggle: S,
+ exposureCtl: L,
+ gammaCtl: h,
+ zebraToggle: G,
scopesToggle: W,
scopesSelect: y,
- gridToggle: k,
- gridModeSelect: G,
- maskToggle: z,
- formatSelect: x,
+ gridToggle: X,
+ gridModeSelect: x,
+ maskToggle: T,
+ formatSelect: v,
maskOpacityCtl: w,
- probeToggle: X,
- loupeToggle: V,
- hudToggle: R,
- focusToggle: j,
- genInfoToggle: L,
- exportBtn: N,
- copyBtn: q,
- resetGradeBtn: O,
+ probeToggle: R,
+ loupeToggle: Y,
+ hudToggle: F,
+ focusToggle: N,
+ genInfoToggle: V,
+ exportBtn: k,
+ copyBtn: K,
+ resetGradeBtn: z,
cmpGroup: B,
audGroup: J,
- ACCENT: T,
- setSelectHighlighted: D,
- setChannelSelectStyle: Q,
+ ACCENT: P,
+ setSelectHighlighted: H,
+ setChannelSelectStyle: $,
setValueHighlighted: E,
- setGroupHighlighted: K
+ setGroupHighlighted: oe
}) {
- var U, P, ee, oe, ce, pe, H, $, _, le, se, de, Ze, Fe, xe, ze, We, De, Pe, Qe, Ue, Ee, Re, wt, Se, Ft, Gt, ue, He;
- const F = ((U = e == null ? void 0 : e.assets) == null ? void 0 : U[e == null ? void 0 : e.currentIndex]) || null, Y = String((F == null ? void 0 : F.kind) || "").toLowerCase() === "model3d";
+ var O, D, q, ee, ce, ue, U, Q, _, le, de, se, ge, je, Se, ke, we, Je, $e, qe, Ue, Te, Oe, pt, Me, Xt, Mt, me, Pe;
+ const M = ((O = e == null ? void 0 : e.assets) == null ? void 0 : O[e == null ? void 0 : e.currentIndex]) || null, j = String((M == null ? void 0 : M.kind) || "").toLowerCase() === "model3d";
try {
- const ve = Y ? "none" : "";
- r.style.display = ve, l.style.display = ve, a.style.display = ve, c.style.display = ve, O.style.display = ve, A.style.display = Y ? "inline-flex" : "none", s.panel.style.display = Y ? "none" : "", d.panel.style.display = Y ? "none" : "", I.panel.style.display = "", p.panel.style.display = "";
- const Ot = (P = Z.querySelector) == null ? void 0 : P.call(Z, ".mjr-viewer-tools-group-label");
- if (Y) {
- M.style.display = "none", Z.style.display = "", Ot && (Ot.style.display = "none"), g.style.display = "none", i.style.padding = "10px 16px", i.style.gap = "6px", o.style.padding = "6px 8px 6px";
- for (const Ve of [
- k.b,
- G,
- z.b,
- x,
- w.wrap,
+ const Le = j ? "none" : "";
+ r.style.display = Le, l.style.display = Le, a.style.display = Le, c.style.display = Le, z.style.display = Le, C.style.display = j ? "inline-flex" : "none", s.panel.style.display = j ? "none" : "", d.panel.style.display = j ? "none" : "", I.panel.style.display = "", p.panel.style.display = "";
+ const Ot = (D = A.querySelector) == null ? void 0 : D.call(A, ".mjr-viewer-tools-group-label");
+ if (j) {
+ S.style.display = "none", A.style.display = "", Ot && (Ot.style.display = "none"), g.style.display = "none", i.style.padding = "10px 16px", i.style.gap = "6px", o.style.padding = "6px 8px 6px";
+ for (const Xe of [
X.b,
- V.b,
- R.b
+ x,
+ T.b,
+ v,
+ w.wrap,
+ R.b,
+ Y.b,
+ F.b
])
try {
- Ve.style.display = "none";
+ Xe.style.display = "none";
} catch {
}
} else {
- M.style.display = "", Z.style.display = "", Ot && (Ot.style.display = ""), g.style.display = "", s.panel.style.display = "", d.panel.style.display = "", I.panel.style.display = "", p.panel.style.display = "", i.style.padding = "8px 16px", i.style.gap = "6px", o.style.padding = "8px 8px 6px";
- for (const Ve of [
- k.b,
- G,
- z.b,
- x,
- w.wrap,
+ S.style.display = "", A.style.display = "", Ot && (Ot.style.display = ""), g.style.display = "", s.panel.style.display = "", d.panel.style.display = "", I.panel.style.display = "", p.panel.style.display = "", i.style.padding = "8px 16px", i.style.gap = "6px", o.style.padding = "8px 8px 6px";
+ for (const Xe of [
X.b,
- V.b,
- R.b
+ x,
+ T.b,
+ v,
+ w.wrap,
+ R.b,
+ Y.b,
+ F.b
])
try {
- Ve.style.display = "";
+ Xe.style.display = "";
} catch {
}
}
- } catch (ve) {
- (ee = console.debug) == null || ee.call(console, ve);
+ } catch (Le) {
+ (q = console.debug) == null || q.call(console, Le);
}
try {
- h.value = String(e.channel || "rgb");
- } catch (ve) {
- (oe = console.debug) == null || oe.call(console, ve);
+ Z.value = String(e.channel || "rgb");
+ } catch (Le) {
+ (ee = console.debug) == null || ee.call(console, Le);
}
try {
f.value = String(e.abCompareMode || "wipe");
- const ve = typeof n == "function" ? !!n() : !1, Ot = e.mode === t.AB_COMPARE && ve, Ve = e.mode === t.SIDE_BY_SIDE, Ke = Ot || Ve;
+ const Le = typeof n == "function" ? !!n() : !1, Ot = e.mode === t.AB_COMPARE && Le, Xe = e.mode === t.SIDE_BY_SIDE, Ee = Ot || Xe;
f.disabled = !Ot;
try {
- B.dataset.active = Ke ? "1" : "0", B.style.display = Ke ? "" : "none", K(B, { accentRgb: T.compare, active: Ke }), B.title = Ke ? "Compare tools (active)" : "Compare tools";
- } catch (Be) {
- (ce = console.debug) == null || ce.call(console, Be);
+ B.dataset.active = Ee ? "1" : "0", B.style.display = Ee ? "" : "none", oe(B, { accentRgb: P.compare, active: Ee }), B.title = Ee ? "Compare tools (active)" : "Compare tools";
+ } catch (Ke) {
+ (ce = console.debug) == null || ce.call(console, Ke);
}
- } catch (ve) {
- (pe = console.debug) == null || pe.call(console, ve);
+ } catch (Le) {
+ (ue = console.debug) == null || ue.call(console, Le);
}
try {
- const ve = String((F == null ? void 0 : F.kind) || "") === "audio";
- J.style.display = ve ? "" : "none", b.disabled = !ve, b.value = String(e.audioVisualizerMode || "artistic");
- } catch (ve) {
- (H = console.debug) == null || H.call(console, ve);
+ const Le = String((M == null ? void 0 : M.kind) || "") === "audio";
+ J.style.display = Le ? "" : "none", b.disabled = !Le, b.value = String(e.audioVisualizerMode || "artistic");
+ } catch (Le) {
+ (U = console.debug) == null || U.call(console, Le);
}
try {
- const ve = Math.round((Number(e.exposureEV) || 0) * 10) / 10;
- v.input.value = String(ve), v.out.textContent = `${ve.toFixed(1)}EV`;
- } catch (ve) {
- ($ = console.debug) == null || $.call(console, ve);
+ const Le = Math.round((Number(e.exposureEV) || 0) * 10) / 10;
+ L.input.value = String(Le), L.out.textContent = `${Le.toFixed(1)}EV`;
+ } catch (Le) {
+ (Q = console.debug) == null || Q.call(console, Le);
}
try {
- const ve = Math.max(0.1, Math.min(3, Number(e.gamma) || 1));
- C.input.value = String(ve), C.out.textContent = ve.toFixed(2);
- } catch (ve) {
- (_ = console.debug) == null || _.call(console, ve);
+ const Le = Math.max(0.1, Math.min(3, Number(e.gamma) || 1));
+ h.input.value = String(Le), h.out.textContent = Le.toFixed(2);
+ } catch (Le) {
+ (_ = console.debug) == null || _.call(console, Le);
}
try {
- S.setActive(e.analysisMode === "zebra");
- } catch (ve) {
- (le = console.debug) == null || le.call(console, ve);
+ G.setActive(e.analysisMode === "zebra");
+ } catch (Le) {
+ (le = console.debug) == null || le.call(console, Le);
}
try {
- const ve = String(e.scopesMode || "off");
- W.setActive(ve !== "off"), y.value = ve;
- } catch (ve) {
- (se = console.debug) == null || se.call(console, ve);
+ const Le = String(e.scopesMode || "off");
+ W.setActive(Le !== "off"), y.value = Le;
+ } catch (Le) {
+ (de = console.debug) == null || de.call(console, Le);
}
try {
- const ve = String((F == null ? void 0 : F.kind) || ""), Ot = ve === "video" || ve === "model3d";
- N.style.display = Ot ? "" : "none", q.style.display = Ot ? "" : "none";
- const Ve = !!(globalThis != null && globalThis.ClipboardItem && ((de = navigator == null ? void 0 : navigator.clipboard) != null && de.write));
- q.style.display = Ot && Ve ? "" : "none";
- } catch (ve) {
- (Ze = console.debug) == null || Ze.call(console, ve);
+ const Le = String((M == null ? void 0 : M.kind) || ""), Ot = Le === "video" || Le === "model3d";
+ k.style.display = Ot ? "" : "none", K.style.display = Ot ? "" : "none";
+ const Xe = !!(globalThis != null && globalThis.ClipboardItem && ((se = navigator == null ? void 0 : navigator.clipboard) != null && se.write));
+ K.style.display = Ot && Xe ? "" : "none";
+ } catch (Le) {
+ (ge = console.debug) == null || ge.call(console, Le);
}
try {
- k.setActive((Number(e.gridMode) || 0) !== 0);
- } catch (ve) {
- (Fe = console.debug) == null || Fe.call(console, ve);
+ X.setActive((Number(e.gridMode) || 0) !== 0);
+ } catch (Le) {
+ (je = console.debug) == null || je.call(console, Le);
}
try {
- G.value = String(Number(e.gridMode) || 0);
- } catch (ve) {
- (xe = console.debug) == null || xe.call(console, ve);
+ x.value = String(Number(e.gridMode) || 0);
+ } catch (Le) {
+ (Se = console.debug) == null || Se.call(console, Le);
}
try {
- z.setActive(!!e.overlayMaskEnabled), x.value = String(e.overlayFormat || "image"), w.input.value = String(Number(e.overlayMaskOpacity ?? 0.65)), w.out.textContent = Number(e.overlayMaskOpacity ?? 0.65).toFixed(2);
- } catch (ve) {
- (ze = console.debug) == null || ze.call(console, ve);
+ T.setActive(!!e.overlayMaskEnabled), v.value = String(e.overlayFormat || "image"), w.input.value = String(Number(e.overlayMaskOpacity ?? 0.65)), w.out.textContent = Number(e.overlayMaskOpacity ?? 0.65).toFixed(2);
+ } catch (Le) {
+ (ke = console.debug) == null || ke.call(console, Le);
}
try {
- X.setActive(!!e.probeEnabled), V.setActive(!!e.loupeEnabled);
- } catch (ve) {
- (We = console.debug) == null || We.call(console, ve);
+ R.setActive(!!e.probeEnabled), Y.setActive(!!e.loupeEnabled);
+ } catch (Le) {
+ (we = console.debug) == null || we.call(console, Le);
}
try {
- R.setActive(!!e.hudEnabled);
- } catch (ve) {
- (De = console.debug) == null || De.call(console, ve);
+ F.setActive(!!e.hudEnabled);
+ } catch (Le) {
+ (Je = console.debug) == null || Je.call(console, Le);
}
try {
- j.setActive(!!e.distractionFree);
- } catch (ve) {
- (Pe = console.debug) == null || Pe.call(console, ve);
+ N.setActive(!!e.distractionFree);
+ } catch (Le) {
+ ($e = console.debug) == null || $e.call(console, Le);
}
try {
- L.setActive(!!e.genInfoOpen);
- } catch (ve) {
- (Qe = console.debug) == null || Qe.call(console, ve);
+ V.setActive(!!e.genInfoOpen);
+ } catch (Le) {
+ (qe = console.debug) == null || qe.call(console, Le);
}
try {
- const ve = String(e.channel || "rgb");
- Q(ve);
- } catch (ve) {
- (Ue = console.debug) == null || Ue.call(console, ve);
+ const Le = String(e.channel || "rgb");
+ $(Le);
+ } catch (Le) {
+ (Ue = console.debug) == null || Ue.call(console, Le);
}
try {
- const ve = Math.round((Number(e.exposureEV) || 0) * 10) / 10;
- E(v.out, {
- accentRgb: T.exposure,
- active: Math.abs(ve) > 1e-4
+ const Le = Math.round((Number(e.exposureEV) || 0) * 10) / 10;
+ E(L.out, {
+ accentRgb: P.exposure,
+ active: Math.abs(Le) > 1e-4
});
- } catch (ve) {
- (Ee = console.debug) == null || Ee.call(console, ve);
+ } catch (Le) {
+ (Te = console.debug) == null || Te.call(console, Le);
}
try {
- const ve = Math.round((Number(e.gamma) || 1) * 100) / 100;
- E(C.out, {
- accentRgb: T.gamma,
- active: Math.abs(ve - 1) > 1e-4
+ const Le = Math.round((Number(e.gamma) || 1) * 100) / 100;
+ E(h.out, {
+ accentRgb: P.gamma,
+ active: Math.abs(Le - 1) > 1e-4
});
- } catch (ve) {
- (Re = console.debug) == null || Re.call(console, ve);
+ } catch (Le) {
+ (Oe = console.debug) == null || Oe.call(console, Le);
}
try {
- const ve = String(e.scopesMode || "off");
- D(y, {
- accentRgb: T.analysis,
- active: ve !== "off",
- title: ve !== "off" ? "Scopes (active)" : "Scopes"
+ const Le = String(e.scopesMode || "off");
+ H(y, {
+ accentRgb: P.analysis,
+ active: Le !== "off",
+ title: Le !== "off" ? "Scopes (active)" : "Scopes"
});
- } catch (ve) {
- (wt = console.debug) == null || wt.call(console, ve);
+ } catch (Le) {
+ (pt = console.debug) == null || pt.call(console, Le);
}
try {
- const ve = Number(e.gridMode) || 0;
- D(G, {
- accentRgb: T.overlay,
- active: ve !== 0,
- title: ve !== 0 ? "Grid Overlay (active)" : "Grid Overlay"
+ const Le = Number(e.gridMode) || 0;
+ H(x, {
+ accentRgb: P.overlay,
+ active: Le !== 0,
+ title: Le !== 0 ? "Grid Overlay (active)" : "Grid Overlay"
});
- } catch (ve) {
- (Se = console.debug) == null || Se.call(console, ve);
+ } catch (Le) {
+ (Me = console.debug) == null || Me.call(console, Le);
}
try {
- const ve = String(e.overlayFormat || "image");
- D(x, {
- accentRgb: T.overlay,
- active: ve !== "image",
- title: ve !== "image" ? "Format (active)" : "Format"
+ const Le = String(e.overlayFormat || "image");
+ H(v, {
+ accentRgb: P.overlay,
+ active: Le !== "image",
+ title: Le !== "image" ? "Format (active)" : "Format"
});
- } catch (ve) {
- (Ft = console.debug) == null || Ft.call(console, ve);
+ } catch (Le) {
+ (Xt = console.debug) == null || Xt.call(console, Le);
}
try {
- const ve = typeof n == "function" ? !!n() : !1, Ot = e.mode === t.AB_COMPARE && ve, Ve = String(e.abCompareMode || "wipe");
- D(f, {
- accentRgb: T.compare,
- active: Ot && Ve !== "wipe",
- title: Ot && Ve !== "wipe" ? "Compare Mode (modified)" : "A/B Compare Mode"
+ const Le = typeof n == "function" ? !!n() : !1, Ot = e.mode === t.AB_COMPARE && Le, Xe = String(e.abCompareMode || "wipe");
+ H(f, {
+ accentRgb: P.compare,
+ active: Ot && Xe !== "wipe",
+ title: Ot && Xe !== "wipe" ? "Compare Mode (modified)" : "A/B Compare Mode"
});
- } catch (ve) {
- (Gt = console.debug) == null || Gt.call(console, ve);
+ } catch (Le) {
+ (Mt = console.debug) == null || Mt.call(console, Le);
}
try {
- const ve = String((F == null ? void 0 : F.kind) || "") === "audio", Ot = String(e.audioVisualizerMode || "artistic");
- D(b, {
- accentRgb: T.audioviz,
- active: ve && Ot !== "simple",
+ const Le = String((M == null ? void 0 : M.kind) || "") === "audio", Ot = String(e.audioVisualizerMode || "artistic");
+ H(b, {
+ accentRgb: P.audioviz,
+ active: Le && Ot !== "simple",
title: "Audio visualizer mode"
});
- } catch (ve) {
- (ue = console.debug) == null || ue.call(console, ve);
+ } catch (Le) {
+ (me = console.debug) == null || me.call(console, Le);
}
try {
- const ve = !!e.genInfoOpen, Ot = L == null ? void 0 : L.b;
- Ot && ve && (Ot.style.borderColor = `rgba(${T.geninfo},0.55)`, Ot.style.background = `rgba(${T.geninfo},0.14)`);
- } catch (ve) {
- (He = console.debug) == null || He.call(console, ve);
+ const Le = !!e.genInfoOpen, Ot = V == null ? void 0 : V.b;
+ Ot && Le && (Ot.style.borderColor = `rgba(${P.geninfo},0.55)`, Ot.style.background = `rgba(${P.geninfo},0.14)`);
+ } catch (Le) {
+ (Pe = console.debug) == null || Pe.call(console, Le);
}
}
-function iA({
+function lA({
state: e,
VIEWER_MODES: t,
singleBtn: n,
@@ -13238,7 +13253,7 @@ function iA({
(c = console.debug) == null || c.call(console, s);
}
}
-function oA({
+function aA({
VIEWER_MODES: e,
state: t,
lifecycle: n,
@@ -13253,11 +13268,11 @@ function oA({
onExportFrame: u,
onCopyFrame: I,
onAudioVizModeChanged: p,
- onToggleFullscreen: M,
- getCanAB: Z
+ onToggleFullscreen: S,
+ getCanAB: A
} = {}) {
- var st, ke, Ct, at, zt, Zt;
- const A = (n == null ? void 0 : n.unsubs) || [], g = document.createElement("div");
+ var dt, Re, Wt, lt, qt, yt;
+ const C = (n == null ? void 0 : n.unsubs) || [], g = document.createElement("div");
g.className = "mjr-viewer-header", g.style.cssText = `
display: flex;
flex-direction: column;
@@ -13268,8 +13283,8 @@ function oA({
color: white;
box-sizing: border-box;
`;
- const h = document.createElement("div");
- h.className = "mjr-viewer-header-top", h.style.cssText = `
+ const Z = document.createElement("div");
+ Z.className = "mjr-viewer-header-top", Z.style.cssText = `
display: flex;
align-items: center;
justify-content: center;
@@ -13284,139 +13299,139 @@ function oA({
f.className = "mjr-viewer-header-meta mjr-viewer-header-meta--left", f.style.cssText = "display:flex; align-items:center; gap:10px; min-width:0; overflow:hidden;";
const b = document.createElement("div");
b.className = "mjr-viewer-title-line", b.style.cssText = "display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; flex-wrap:nowrap; overflow:hidden;";
- const v = document.createElement("div");
- v.className = "mjr-viewer-title-wrap", v.style.cssText = "display:flex; align-items:center; justify-content:center; gap:12px; min-width:0; max-width:min(100%, calc(100vw - 220px)); text-align:center;";
- const C = document.createElement("span");
- C.className = "mjr-viewer-filename", C.style.cssText = "font-size: 13px; font-weight: 600; min-width:0; max-width:min(60vw, 820px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center;";
- const S = document.createElement("div");
- S.className = "mjr-viewer-badges", S.style.cssText = "display:flex; gap:6px; align-items:center; flex-wrap:nowrap; min-width:0;";
+ const L = document.createElement("div");
+ L.className = "mjr-viewer-title-wrap", L.style.cssText = "display:flex; align-items:center; justify-content:center; gap:12px; min-width:0; max-width:min(100%, calc(100vw - 220px)); text-align:center;";
+ const h = document.createElement("span");
+ h.className = "mjr-viewer-filename", h.style.cssText = "font-size: 13px; font-weight: 600; min-width:0; max-width:min(60vw, 820px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center;";
+ const G = document.createElement("div");
+ G.className = "mjr-viewer-badges", G.style.cssText = "display:flex; gap:6px; align-items:center; flex-wrap:nowrap; min-width:0;";
const W = document.createElement("div");
W.className = "mjr-viewer-header-meta mjr-viewer-header-meta--right", W.style.cssText = "display:none; align-items:center; gap:10px; min-width:0; justify-content:flex-end; overflow:hidden;";
const y = document.createElement("span");
y.className = "mjr-viewer-filename mjr-viewer-filename--right", y.style.cssText = "font-size: 14px; font-weight: 500; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:right;";
- const k = document.createElement("div");
- k.className = "mjr-viewer-badges mjr-viewer-badges--right", k.style.cssText = "display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end;", b.appendChild(C), b.appendChild(S), v.appendChild(b), W.appendChild(k), W.appendChild(y);
- const G = document.createElement("div");
- G.className = "mjr-viewer-mode-buttons", G.style.cssText = "display: flex; gap: 4px;";
- const z = fc("Single", e.SINGLE);
- z.title = m("tooltip.singleViewMode", "Single view mode (one image)");
- const x = fc("A/B", e.AB_COMPARE);
- x.title = m("tooltip.compareOverlayMode", "A/B compare mode (overlay)");
- const w = fc("Side", e.SIDE_BY_SIDE);
- w.title = m("tooltip.compareSideBySide", "Side-by-side comparison mode"), G.appendChild(z), G.appendChild(x), G.appendChild(w);
- const X = yl("β", "Close (Esc)");
- X.style.fontSize = "18px";
+ const X = document.createElement("div");
+ X.className = "mjr-viewer-badges mjr-viewer-badges--right", X.style.cssText = "display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end;", b.appendChild(h), b.appendChild(G), L.appendChild(b), W.appendChild(X), W.appendChild(y);
+ const x = document.createElement("div");
+ x.className = "mjr-viewer-mode-buttons", x.style.cssText = "display: flex; gap: 4px;";
+ const T = hc("Single", e.SINGLE);
+ T.title = m("tooltip.singleViewMode", "Single view mode (one image)");
+ const v = hc("A/B", e.AB_COMPARE);
+ v.title = m("tooltip.compareOverlayMode", "A/B compare mode (overlay)");
+ const w = hc("Side", e.SIDE_BY_SIDE);
+ w.title = m("tooltip.compareSideBySide", "Side-by-side comparison mode"), x.appendChild(T), x.appendChild(v), x.appendChild(w);
+ const R = fl("β", "Close (Esc)");
+ R.style.fontSize = "18px";
try {
- X.classList.add("mjr-viewer-close"), X.textContent = "";
- const gt = document.createElement("span");
- gt.className = "pi pi-times", gt.setAttribute("aria-hidden", "true"), X.appendChild(gt);
- } catch (gt) {
- (st = console.debug) == null || st.call(console, gt);
+ R.classList.add("mjr-viewer-close"), R.textContent = "";
+ const mt = document.createElement("span");
+ mt.className = "pi pi-times", mt.setAttribute("aria-hidden", "true"), R.appendChild(mt);
+ } catch (mt) {
+ (dt = console.debug) == null || dt.call(console, mt);
}
- const V = yl("βΆ", "Toggle Fullscreen (F)");
+ const Y = fl("βΆ", "Toggle Fullscreen (F)");
try {
- V.classList.add("mjr-viewer-fs");
- } catch (gt) {
- (ke = console.debug) == null || ke.call(console, gt);
+ Y.classList.add("mjr-viewer-fs");
+ } catch (mt) {
+ (Re = console.debug) == null || Re.call(console, mt);
}
- V.style.fontSize = "16px";
+ Y.style.fontSize = "16px";
try {
- V.style.position = "absolute", V.style.top = "8px", V.style.left = "", V.style.right = "48px", V.style.zIndex = "10002", V.style.width = "34px", V.style.height = "34px", V.style.padding = "0", V.style.display = "inline-flex", V.style.alignItems = "center", V.style.justifyContent = "center", V.style.borderRadius = "8px";
- const gt = document.createElement("span");
- gt.className = "pi pi-window-maximize", gt.setAttribute("aria-hidden", "true"), V.textContent = "", V.appendChild(gt);
+ Y.style.position = "absolute", Y.style.top = "8px", Y.style.left = "", Y.style.right = "48px", Y.style.zIndex = "10002", Y.style.width = "34px", Y.style.height = "34px", Y.style.padding = "0", Y.style.display = "inline-flex", Y.style.alignItems = "center", Y.style.justifyContent = "center", Y.style.borderRadius = "8px";
+ const mt = document.createElement("span");
+ mt.className = "pi pi-window-maximize", mt.setAttribute("aria-hidden", "true"), Y.textContent = "", Y.appendChild(mt);
const kt = () => {
- var Qt;
+ var $t;
try {
- const te = document.fullscreenElement != null;
- gt.className = te ? "pi pi-window-minimize" : "pi pi-window-maximize", V.title = te ? "Exit Fullscreen (F)" : "Enter Fullscreen (F)";
- } catch (te) {
- (Qt = console.debug) == null || Qt.call(console, te);
+ const Tt = document.fullscreenElement != null;
+ mt.className = Tt ? "pi pi-window-minimize" : "pi pi-window-maximize", Y.title = Tt ? "Exit Fullscreen (F)" : "Enter Fullscreen (F)";
+ } catch (Tt) {
+ ($t = console.debug) == null || $t.call(console, Tt);
}
};
- if (V.onclick = (Qt) => {
- Qt.stopPropagation(), M == null || M();
+ if (Y.onclick = ($t) => {
+ $t.stopPropagation(), S == null || S();
}, n != null && n.safeAddListener)
n.safeAddListener(document, "fullscreenchange", kt);
else
try {
document.addEventListener("fullscreenchange", kt);
- const Qt = () => {
- var te;
+ const $t = () => {
+ var Tt;
try {
document.removeEventListener("fullscreenchange", kt);
- } catch (ge) {
- (te = console.debug) == null || te.call(console, ge);
+ } catch (te) {
+ (Tt = console.debug) == null || Tt.call(console, te);
}
};
- g._mjrCleanup ? g._mjrCleanup.push(Qt) : g._mjrCleanup = [Qt];
- } catch (Qt) {
- (Ct = console.debug) == null || Ct.call(console, Qt);
+ g._mjrCleanup ? g._mjrCleanup.push($t) : g._mjrCleanup = [$t];
+ } catch ($t) {
+ (Wt = console.debug) == null || Wt.call(console, $t);
}
kt();
- } catch (gt) {
- (at = console.debug) == null || at.call(console, gt);
+ } catch (mt) {
+ (lt = console.debug) == null || lt.call(console, mt);
}
- const R = document.createElement("div");
- R.className = "mjr-viewer-header-area mjr-viewer-header-area--left", R.style.cssText = "display:none; align-items:center; gap:12px; min-width:0; flex:1 1 0; overflow:hidden;", R.appendChild(f);
- const j = document.createElement("div");
- j.className = "mjr-viewer-header-area mjr-viewer-header-area--center", j.style.cssText = "display:flex; align-items:center; justify-content:center; gap:12px; flex:1 1 auto; min-width:0;", v.appendChild(G), j.appendChild(v);
- const L = document.createElement("div");
- L.className = "mjr-viewer-header-area mjr-viewer-header-area--right", L.style.cssText = "display:none; align-items:center; justify-content:flex-end; gap:12px; min-width:0; flex:1 1 0; overflow:hidden;", L.appendChild(W), h.appendChild(R), h.appendChild(j), h.appendChild(L);
+ const F = document.createElement("div");
+ F.className = "mjr-viewer-header-area mjr-viewer-header-area--left", F.style.cssText = "display:none; align-items:center; gap:12px; min-width:0; flex:1 1 0; overflow:hidden;", F.appendChild(f);
+ const N = document.createElement("div");
+ N.className = "mjr-viewer-header-area mjr-viewer-header-area--center", N.style.cssText = "display:flex; align-items:center; justify-content:center; gap:12px; flex:1 1 auto; min-width:0;", L.appendChild(x), N.appendChild(L);
+ const V = document.createElement("div");
+ V.className = "mjr-viewer-header-area mjr-viewer-header-area--right", V.style.cssText = "display:none; align-items:center; justify-content:flex-end; gap:12px; min-width:0; flex:1 1 0; overflow:hidden;", V.appendChild(W), Z.appendChild(F), Z.appendChild(N), Z.appendChild(V);
try {
- X.style.position = "absolute", X.style.top = "8px", X.style.left = "", X.style.right = "8px", X.style.transform = "", X.style.zIndex = "10002", X.style.width = "34px", X.style.height = "34px", X.style.padding = "0", X.style.display = "inline-flex", X.style.alignItems = "center", X.style.justifyContent = "center", X.style.borderRadius = "8px";
- } catch (gt) {
- (zt = console.debug) == null || zt.call(console, gt);
+ R.style.position = "absolute", R.style.top = "8px", R.style.left = "", R.style.right = "8px", R.style.transform = "", R.style.zIndex = "10002", R.style.width = "34px", R.style.height = "34px", R.style.padding = "0", R.style.display = "inline-flex", R.style.alignItems = "center", R.style.justifyContent = "center", R.style.borderRadius = "8px";
+ } catch (mt) {
+ (qt = console.debug) == null || qt.call(console, mt);
}
- g.appendChild(h), g.appendChild(V), g.appendChild(X);
+ g.appendChild(Z), g.appendChild(Y), g.appendChild(R);
const {
- toolsRow: N,
- gradePanel: q,
- overlayPanel: O,
+ toolsRow: k,
+ gradePanel: K,
+ overlayPanel: z,
inspectPanel: B,
actionPanel: J,
- infoPanel: T,
- chGroup: D,
- expGroup: Q,
+ infoPanel: P,
+ chGroup: H,
+ expGroup: $,
gamGroup: E,
- anaGroup: K,
- ovGuidesGroup: F,
- ovInspectGroup: Y,
- cmpGroup: U,
- audGroup: P,
- model3dHint: ee,
- helpWrap: oe,
+ anaGroup: oe,
+ ovGuidesGroup: M,
+ ovInspectGroup: j,
+ cmpGroup: O,
+ audGroup: D,
+ model3dHint: q,
+ helpWrap: ee,
helpBtn: ce,
- helpPop: pe,
- channelsSelect: H,
- exposureCtl: $,
+ helpPop: ue,
+ channelsSelect: U,
+ exposureCtl: Q,
gammaCtl: _,
zebraToggle: le,
- scopesToggle: se,
- scopesSelect: de,
- gridToggle: Ze,
- gridModeSelect: Fe,
- maskToggle: xe,
- formatSelect: ze,
- maskOpacityCtl: We,
- probeToggle: De,
- loupeToggle: Pe,
- hudToggle: Qe,
+ scopesToggle: de,
+ scopesSelect: se,
+ gridToggle: ge,
+ gridModeSelect: je,
+ maskToggle: Se,
+ formatSelect: ke,
+ maskOpacityCtl: we,
+ probeToggle: Je,
+ loupeToggle: $e,
+ hudToggle: qe,
focusToggle: Ue,
- genInfoToggle: Ee,
- compareModeSelect: Re,
- audioVizModeSelect: wt,
- resetGradeBtn: Se,
- exportBtn: Ft,
- copyBtn: Gt,
- resetExposure: ue,
- resetGamma: He,
- resetViewerTools: ve,
+ genInfoToggle: Te,
+ compareModeSelect: Oe,
+ audioVizModeSelect: pt,
+ resetGradeBtn: Me,
+ exportBtn: Xt,
+ copyBtn: Mt,
+ resetExposure: me,
+ resetGamma: Pe,
+ resetViewerTools: Le,
ACCENT: Ot,
- setSelectHighlighted: Ve,
- setChannelSelectStyle: Ke,
- setValueHighlighted: Be,
+ setSelectHighlighted: Xe,
+ setChannelSelectStyle: Ee,
+ setValueHighlighted: Ke,
setGroupHighlighted: nt
- } = eA({
+ } = iA({
VIEWER_MODES: e,
state: t,
onToolsChanged: s,
@@ -13424,10 +13439,10 @@ function oA({
onExportFrame: u,
onCopyFrame: I,
onAudioVizModeChanged: p,
- getCanAB: Z
+ getCanAB: A
});
- g.appendChild(N), tA({
- unsubs: A,
+ g.appendChild(k), oA({
+ unsubs: C,
state: t,
VIEWER_MODES: e,
onMode: c,
@@ -13437,166 +13452,166 @@ function oA({
onAudioVizModeChanged: p,
onExportFrame: u,
onCopyFrame: I,
- singleBtn: z,
- abBtn: x,
+ singleBtn: T,
+ abBtn: v,
sideBtn: w,
- closeBtn: X,
- channelsSelect: H,
- compareModeSelect: Re,
- audioVizModeSelect: wt,
- exposureCtl: $,
+ closeBtn: R,
+ channelsSelect: U,
+ compareModeSelect: Oe,
+ audioVizModeSelect: pt,
+ exposureCtl: Q,
gammaCtl: _,
zebraToggle: le,
- scopesToggle: se,
- scopesSelect: de,
- gridToggle: Ze,
- gridModeSelect: Fe,
- maskToggle: xe,
- formatSelect: ze,
- maskOpacityCtl: We,
- probeToggle: De,
- loupeToggle: Pe,
- hudToggle: Qe,
+ scopesToggle: de,
+ scopesSelect: se,
+ gridToggle: ge,
+ gridModeSelect: je,
+ maskToggle: Se,
+ formatSelect: ke,
+ maskOpacityCtl: we,
+ probeToggle: Je,
+ loupeToggle: $e,
+ hudToggle: qe,
focusToggle: Ue,
- genInfoToggle: Ee,
- resetGradeBtn: Se,
- exportBtn: Ft,
- copyBtn: Gt,
- resetExposure: ue,
- resetGamma: He,
- resetViewerTools: ve,
- expGroup: Q,
+ genInfoToggle: Te,
+ resetGradeBtn: Me,
+ exportBtn: Xt,
+ copyBtn: Mt,
+ resetExposure: me,
+ resetGamma: Pe,
+ resetViewerTools: Le,
+ expGroup: $,
gamGroup: E
});
- const mt = () => nA({
+ const ut = () => rA({
state: t,
VIEWER_MODES: e,
- getCanAB: Z,
+ getCanAB: A,
header: g,
- toolsRow: N,
- chGroup: D,
- expGroup: Q,
+ toolsRow: k,
+ chGroup: H,
+ expGroup: $,
gamGroup: E,
- anaGroup: K,
- gradePanel: q,
- overlayPanel: O,
+ anaGroup: oe,
+ gradePanel: K,
+ overlayPanel: z,
inspectPanel: B,
- infoPanel: T,
+ infoPanel: P,
actionPanel: J,
- ovGuidesGroup: F,
- ovInspectGroup: Y,
- model3dHint: ee,
- helpWrap: oe,
- channelsSelect: H,
- compareModeSelect: Re,
- audioVizModeSelect: wt,
- exposureCtl: $,
+ ovGuidesGroup: M,
+ ovInspectGroup: j,
+ model3dHint: q,
+ helpWrap: ee,
+ channelsSelect: U,
+ compareModeSelect: Oe,
+ audioVizModeSelect: pt,
+ exposureCtl: Q,
gammaCtl: _,
zebraToggle: le,
- scopesToggle: se,
- scopesSelect: de,
- gridToggle: Ze,
- gridModeSelect: Fe,
- maskToggle: xe,
- formatSelect: ze,
- maskOpacityCtl: We,
- probeToggle: De,
- loupeToggle: Pe,
- hudToggle: Qe,
+ scopesToggle: de,
+ scopesSelect: se,
+ gridToggle: ge,
+ gridModeSelect: je,
+ maskToggle: Se,
+ formatSelect: ke,
+ maskOpacityCtl: we,
+ probeToggle: Je,
+ loupeToggle: $e,
+ hudToggle: qe,
focusToggle: Ue,
- genInfoToggle: Ee,
- exportBtn: Ft,
- copyBtn: Gt,
- resetGradeBtn: Se,
- cmpGroup: U,
- audGroup: P,
+ genInfoToggle: Te,
+ exportBtn: Xt,
+ copyBtn: Mt,
+ resetGradeBtn: Me,
+ cmpGroup: O,
+ audGroup: D,
ACCENT: Ot,
- setSelectHighlighted: Ve,
- setChannelSelectStyle: Ke,
- setValueHighlighted: Be,
+ setSelectHighlighted: Xe,
+ setChannelSelectStyle: Ee,
+ setValueHighlighted: Ke,
setGroupHighlighted: nt
- }), bt = ({ canAB: gt, canSide: kt } = {}) => iA({
+ }), It = ({ canAB: mt, canSide: kt } = {}) => lA({
state: t,
VIEWER_MODES: e,
- singleBtn: z,
- abBtn: x,
+ singleBtn: T,
+ abBtn: v,
sideBtn: w,
- canAB: gt,
+ canAB: mt,
canSide: kt
});
try {
- let gt = null;
+ let mt = null;
const kt = () => {
- var te, ge, we;
+ var Tt, te, ye;
try {
- (te = gt == null ? void 0 : gt.abort) == null || te.call(gt);
- } catch (be) {
- (ge = console.debug) == null || ge.call(console, be);
+ (Tt = mt == null ? void 0 : mt.abort) == null || Tt.call(mt);
+ } catch (We) {
+ (te = console.debug) == null || te.call(console, We);
}
- gt = null;
+ mt = null;
try {
- pe.style.display = "none";
- } catch (be) {
- (we = console.debug) == null || we.call(console, be);
+ ue.style.display = "none";
+ } catch (We) {
+ (ye = console.debug) == null || ye.call(console, We);
}
- }, Qt = () => {
- var te, ge;
- kt(), gt = new AbortController();
+ }, $t = () => {
+ var Tt, te;
+ kt(), mt = new AbortController();
try {
- pe.style.display = "";
- } catch (we) {
- (te = console.debug) == null || te.call(console, we);
+ ue.style.display = "";
+ } catch (ye) {
+ (Tt = console.debug) == null || Tt.call(console, ye);
}
try {
document.addEventListener(
"mousedown",
- (we) => {
- oe.contains(we.target) || kt();
+ (ye) => {
+ ee.contains(ye.target) || kt();
},
- { capture: !0, signal: gt.signal }
+ { capture: !0, signal: mt.signal }
), document.addEventListener(
"keydown",
- (we) => {
- we.key === "Escape" && kt();
+ (ye) => {
+ ye.key === "Escape" && kt();
},
- { capture: !0, signal: gt.signal }
+ { capture: !0, signal: mt.signal }
), document.addEventListener("scroll", kt, {
capture: !0,
passive: !0,
- signal: gt.signal
+ signal: mt.signal
});
- } catch (we) {
- (ge = console.debug) == null || ge.call(console, we);
+ } catch (ye) {
+ (te = console.debug) == null || te.call(console, ye);
}
};
- A.push(() => kt()), A.push(
- _e(ce, "click", () => {
- pe.style.display !== "none" ? kt() : Qt();
+ C.push(() => kt()), C.push(
+ Qe(ce, "click", () => {
+ ue.style.display !== "none" ? kt() : $t();
})
);
- } catch (gt) {
- (Zt = console.debug) == null || Zt.call(console, gt);
+ } catch (mt) {
+ (yt = console.debug) == null || yt.call(console, mt);
}
return {
headerEl: g,
- headerTopEl: h,
- filenameEl: C,
- badgesBarEl: S,
+ headerTopEl: Z,
+ filenameEl: h,
+ badgesBarEl: G,
filenameRightEl: y,
- badgesBarRightEl: k,
- leftAreaEl: R,
+ badgesBarRightEl: X,
+ leftAreaEl: F,
leftMetaEl: f,
- centerAreaEl: j,
+ centerAreaEl: N,
rightMetaEl: W,
- rightAreaEl: L,
+ rightAreaEl: V,
titleLineEl: b,
- titleWrapEl: v,
- modeButtonsEl: G,
- syncToolsUIFromState: mt,
- syncModeButtons: bt
+ titleWrapEl: L,
+ modeButtonsEl: x,
+ syncToolsUIFromState: ut,
+ syncModeButtons: It
};
}
-function rA(e) {
+function cA(e) {
var t;
if (!e) return null;
try {
@@ -13633,7 +13648,7 @@ Negative prompt: ` + i.negative_prompt.trim()), o;
}
return null;
}
-function lA({
+function sA({
overlay: e,
_content: t,
singleView: n,
@@ -13648,153 +13663,153 @@ function lA({
navigateViewerAssets: u,
closeViewer: I,
renderBadges: p,
- updateAssetRating: M,
- safeDispatchCustomEvent: Z,
- ASSET_RATING_CHANGED_EVENT: A,
+ updateAssetRating: S,
+ safeDispatchCustomEvent: A,
+ ASSET_RATING_CHANGED_EVENT: C,
probeTooltip: g,
- loupeWrap: h,
+ loupeWrap: Z,
getVideoControls: f,
lifecycle: b,
- renderGenInfoPanel: v
+ renderGenInfoPanel: L
} = {}) {
- const C = (b == null ? void 0 : b.unsubs) || [];
- let S = null, W = null;
+ const h = (b == null ? void 0 : b.unsubs) || [];
+ let G = null, W = null;
const y = () => {
- var V;
+ var Y;
try {
- S && clearTimeout(S);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ G && clearTimeout(G);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
- S = null, W = null;
- }, k = (V, R) => {
- y(), W = { assetId: V, rating: R }, S = setTimeout(async () => {
- const j = W;
- if (S = null, W = null, !!(j != null && j.assetId))
+ G = null, W = null;
+ }, X = (Y, F) => {
+ y(), W = { assetId: Y, rating: F }, G = setTimeout(async () => {
+ const N = W;
+ if (G = null, W = null, !!(N != null && N.assetId))
try {
- const L = await (M == null ? void 0 : M(j.assetId, j.rating));
- if (!(L != null && L.ok)) {
- Ce((L == null ? void 0 : L.error) || m("toast.ratingUpdateFailed"), "error");
+ const V = await (S == null ? void 0 : S(N.assetId, N.rating));
+ if (!(V != null && V.ok)) {
+ Ze((V == null ? void 0 : V.error) || m("toast.ratingUpdateFailed"), "error");
return;
}
- Ce(m("toast.ratingSetN", { n: j.rating }), "success", 1500), Z == null || Z(
- A,
- { assetId: String(j.assetId), rating: j.rating },
+ Ze(m("toast.ratingSetN", { n: N.rating }), "success", 1500), A == null || A(
+ C,
+ { assetId: String(N.assetId), rating: N.rating },
{ warnPrefix: "[Viewer]" }
);
} catch {
- Ce(m("toast.ratingUpdateError"), "error");
+ Ze(m("toast.ratingUpdateError"), "error");
}
}, 300);
- }, G = () => {
- var V, R, j;
+ }, x = () => {
+ var Y, F, N;
try {
- document.fullscreenElement ? (R = document == null ? void 0 : document.exitFullscreen) == null || R.call(document) : (V = e == null ? void 0 : e.requestFullscreen) == null || V.call(e);
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ document.fullscreenElement ? (F = document == null ? void 0 : document.exitFullscreen) == null || F.call(document) : (Y = e == null ? void 0 : e.requestFullscreen) == null || Y.call(e);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
- }, z = (V) => {
- var J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $, _, le, se, de, Ze, Fe, xe, ze, We, De, Pe, Qe, Ue, Ee, Re, wt, Se, Ft, Gt;
- const R = () => {
- var ue, He;
+ }, T = (Y) => {
+ var J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue, U, Q, _, le, de, se, ge, je, Se, ke, we, Je, $e, qe, Ue, Te, Oe, pt, Me, Xt, Mt;
+ const F = () => {
+ var me, Pe;
try {
- V.preventDefault(), V.stopPropagation(), (ue = V.stopImmediatePropagation) == null || ue.call(V);
- } catch (ve) {
- (He = console.debug) == null || He.call(console, ve);
+ Y.preventDefault(), Y.stopPropagation(), (me = Y.stopImmediatePropagation) == null || me.call(Y);
+ } catch (Le) {
+ (Pe = console.debug) == null || Pe.call(console, Le);
}
};
try {
if (((J = e == null ? void 0 : e.style) == null ? void 0 : J.display) === "none") return;
- } catch (ue) {
- (T = console.debug) == null || T.call(console, ue);
+ } catch (me) {
+ (P = console.debug) == null || P.call(console, me);
}
try {
- const ue = V == null ? void 0 : V.target;
- if (ue && (ue.tagName === "INPUT" || ue.tagName === "TEXTAREA" || ue.isContentEditable)) {
- if (V.key === "f" || V.key === "F") {
- R(), G();
+ const me = Y == null ? void 0 : Y.target;
+ if (me && (me.tagName === "INPUT" || me.tagName === "TEXTAREA" || me.isContentEditable)) {
+ if (Y.key === "f" || Y.key === "F") {
+ F(), x();
return;
}
- V.key === "Escape" && (R(), pt(I));
+ Y.key === "Escape" && (F(), bt(I));
return;
}
- } catch (ue) {
- (D = console.debug) == null || D.call(console, ue);
+ } catch (me) {
+ (H = console.debug) == null || H.call(console, me);
}
- const j = (i == null ? void 0 : i.mode) === (o == null ? void 0 : o.SINGLE), L = (Q = i == null ? void 0 : i.assets) == null ? void 0 : Q[i == null ? void 0 : i.currentIndex], N = async (ue) => {
- if (!j || !(L != null && L.id) || ue !== "0" && ue !== "1" && ue !== "2" && ue !== "3" && ue !== "4" && ue !== "5")
+ const N = (i == null ? void 0 : i.mode) === (o == null ? void 0 : o.SINGLE), V = ($ = i == null ? void 0 : i.assets) == null ? void 0 : $[i == null ? void 0 : i.currentIndex], k = async (me) => {
+ if (!N || !(V != null && V.id) || me !== "0" && me !== "1" && me !== "2" && me !== "3" && me !== "4" && me !== "5")
return !1;
- const He = ue === "0" ? 0 : Number(ue);
- if (!Number.isFinite(He)) return !1;
+ const Pe = me === "0" ? 0 : Number(me);
+ if (!Number.isFinite(Pe)) return !1;
try {
- return L.rating = He, pt(p), k(L.id, He), !0;
+ return V.rating = Pe, bt(p), X(V.id, Pe), !0;
} catch {
return !0;
}
- }, q = () => {
+ }, K = () => {
try {
return (f == null ? void 0 : f()) || null;
} catch {
return null;
}
- }, O = async (ue) => {
- var Ke, Be, nt, mt, bt, st;
- if (!j || (L == null ? void 0 : L.kind) !== "video") return !1;
+ }, z = async (me) => {
+ var Ee, Ke, nt, ut, It, dt;
+ if (!N || (V == null ? void 0 : V.kind) !== "video") return !1;
try {
- const ke = q();
- if (ke != null && ke.stepFrames)
- return ke.stepFrames(ue), !0;
- } catch (ke) {
- (Ke = console.debug) == null || Ke.call(console, ke);
+ const Re = K();
+ if (Re != null && Re.stepFrames)
+ return Re.stepFrames(me), !0;
+ } catch (Re) {
+ (Ee = console.debug) == null || Ee.call(console, Re);
}
- const He = (Be = n == null ? void 0 : n.querySelector) == null ? void 0 : Be.call(n, "video");
- if (!He) return !1;
+ const Pe = (Ke = n == null ? void 0 : n.querySelector) == null ? void 0 : Ke.call(n, "video");
+ if (!Pe) return !1;
try {
- (nt = He.pause) == null || nt.call(He);
- } catch (ke) {
- (mt = console.debug) == null || mt.call(console, ke);
+ (nt = Pe.pause) == null || nt.call(Pe);
+ } catch (Re) {
+ (ut = console.debug) == null || ut.call(console, Re);
}
- const Ot = 1 / 30, Ve = ue * Ot;
+ const Ot = 1 / 30, Xe = me * Ot;
try {
- const ke = Number(He.duration), Ct = Math.max(
+ const Re = Number(Pe.duration), Wt = Math.max(
0,
Math.min(
- Number.isFinite(ke) ? ke : 1 / 0,
- (He.currentTime || 0) + Ve
+ Number.isFinite(Re) ? Re : 1 / 0,
+ (Pe.currentTime || 0) + Xe
)
);
- He.currentTime = Ct;
+ Pe.currentTime = Wt;
try {
- (bt = He.dispatchEvent) == null || bt.call(
- He,
- new CustomEvent("mjr:frameStep", { detail: { direction: ue, time: Ct } })
+ (It = Pe.dispatchEvent) == null || It.call(
+ Pe,
+ new CustomEvent("mjr:frameStep", { detail: { direction: me, time: Wt } })
);
- } catch (at) {
- (st = console.debug) == null || st.call(console, at);
+ } catch (lt) {
+ (dt = console.debug) == null || dt.call(console, lt);
}
return !0;
} catch {
return !0;
}
- }, B = (ue, { absolute: He = !1 } = {}) => {
- var ve, Ot;
+ }, B = (me, { absolute: Pe = !1 } = {}) => {
+ var Le, Ot;
try {
- const Ve = q();
- if (!Ve) return !1;
- if (He) {
- const Be = (ve = Ve.setPlaybackRate) == null ? void 0 : ve.call(Ve, ue);
- return Number.isFinite(Number(Be)) ? (i.playbackRate = Number(Be), Ce(
+ const Xe = K();
+ if (!Xe) return !1;
+ if (Pe) {
+ const Ke = (Le = Xe.setPlaybackRate) == null ? void 0 : Le.call(Xe, me);
+ return Number.isFinite(Number(Ke)) ? (i.playbackRate = Number(Ke), Ze(
m("toast.playbackRate", "Playback {rate}x", {
- rate: Number(Be).toFixed(2)
+ rate: Number(Ke).toFixed(2)
}),
"info",
1200
), !0) : !1;
}
- const Ke = (Ot = Ve.adjustPlaybackRate) == null ? void 0 : Ot.call(Ve, ue);
- return Number.isFinite(Number(Ke)) ? (i.playbackRate = Number(Ke), Ce(
+ const Ee = (Ot = Xe.adjustPlaybackRate) == null ? void 0 : Ot.call(Xe, me);
+ return Number.isFinite(Number(Ee)) ? (i.playbackRate = Number(Ee), Ze(
m("toast.playbackRate", "Playback {rate}x", {
- rate: Number(Ke).toFixed(2)
+ rate: Number(Ee).toFixed(2)
}),
"info",
1200
@@ -13803,124 +13818,124 @@ function lA({
return !1;
}
};
- if ((V.ctrlKey || V.metaKey) && (V.key === "c" || V.key === "C"))
+ if ((Y.ctrlKey || Y.metaKey) && (Y.key === "c" || Y.key === "C"))
try {
- const ue = rA(L);
- if (ue) {
- R(), (K = (E = navigator.clipboard) == null ? void 0 : E.writeText) == null || K.call(E, ue).then(() => Ce(m("toast.promptCopied", "Prompt copied to clipboard"), "success", 1500)).catch(() => Ce(m("toast.copyFailed", "Copy failed"), "error", 1500));
+ const me = cA(V);
+ if (me) {
+ F(), (oe = (E = navigator.clipboard) == null ? void 0 : E.writeText) == null || oe.call(E, me).then(() => Ze(m("toast.promptCopied", "Prompt copied to clipboard"), "success", 1500)).catch(() => Ze(m("toast.copyFailed", "Copy failed"), "error", 1500));
return;
}
- } catch (ue) {
- (F = console.debug) == null || F.call(console, ue);
+ } catch (me) {
+ (M = console.debug) == null || M.call(console, me);
}
- if (j && !V.altKey && !V.ctrlKey && !V.metaKey && (V.key === "0" || V.key === "1" || V.key === "2" || V.key === "3" || V.key === "4" || V.key === "5")) {
- R(), N(V.key);
+ if (N && !Y.altKey && !Y.ctrlKey && !Y.metaKey && (Y.key === "0" || Y.key === "1" || Y.key === "2" || Y.key === "3" || Y.key === "4" || Y.key === "5")) {
+ F(), k(Y.key);
return;
}
- switch (V.key) {
+ switch (Y.key) {
case "1": {
- if (!V.altKey) break;
- const ue = pt(r);
- if (ue == null) break;
- R();
+ if (!Y.altKey) break;
+ const me = bt(r);
+ if (me == null) break;
+ F();
try {
- const He = Math.abs((Number(i == null ? void 0 : i.zoom) || 1) - ue) < 0.01;
- l == null || l(He ? 1 : ue, {
+ const Pe = Math.abs((Number(i == null ? void 0 : i.zoom) || 1) - me) < 0.01;
+ l == null || l(Pe ? 1 : me, {
clientX: i == null ? void 0 : i._lastPointerX,
clientY: i == null ? void 0 : i._lastPointerY
});
- } catch (He) {
- (Y = console.debug) == null || Y.call(console, He);
+ } catch (Pe) {
+ (j = console.debug) == null || j.call(console, Pe);
}
break;
}
case "g":
case "G": {
- R();
+ F();
try {
i.gridMode = ((Number(i.gridMode) || 0) + 1) % 5;
- } catch (ue) {
- (U = console.debug) == null || U.call(console, ue);
+ } catch (me) {
+ (O = console.debug) == null || O.call(console, me);
}
- pt(a), pt(s);
+ bt(a), bt(s);
break;
}
case "f":
case "F": {
- R(), G();
+ F(), x();
break;
}
case "d":
case "D": {
- R();
+ F();
try {
i.genInfoOpen = !i.genInfoOpen;
- } catch (ue) {
- (P = console.debug) == null || P.call(console, ue);
+ } catch (me) {
+ (D = console.debug) == null || D.call(console, me);
}
- pt(s), pt(v);
+ bt(s), bt(L);
break;
}
case "z":
case "Z": {
- R();
+ F();
try {
i.analysisMode = i.analysisMode === "zebra" ? "none" : "zebra";
- } catch (ue) {
- (ee = console.debug) == null || ee.call(console, ue);
+ } catch (me) {
+ (q = console.debug) == null || q.call(console, me);
}
- pt(s), pt(c);
+ bt(s), bt(c);
break;
}
case "i":
case "I": {
- if (j && (L == null ? void 0 : L.kind) === "video") {
- const ue = q();
- if ((oe = ue == null ? void 0 : ue.setInPoint) != null && oe.call(ue)) {
- R(), Ce(m("toast.inPointSet", "In point set"), "info", 1200);
+ if (N && (V == null ? void 0 : V.kind) === "video") {
+ const me = K();
+ if ((ee = me == null ? void 0 : me.setInPoint) != null && ee.call(me)) {
+ F(), Ze(m("toast.inPointSet", "In point set"), "info", 1200);
break;
}
}
- R();
+ F();
try {
i.probeEnabled = !i.probeEnabled;
- } catch (ue) {
- (ce = console.debug) == null || ce.call(console, ue);
+ } catch (me) {
+ (ce = console.debug) == null || ce.call(console, me);
}
try {
i.probeEnabled || (g.style.display = "none");
- } catch (ue) {
- (pe = console.debug) == null || pe.call(console, ue);
+ } catch (me) {
+ (ue = console.debug) == null || ue.call(console, me);
}
- pt(s);
+ bt(s);
break;
}
case "o":
case "O": {
- if (j && (L == null ? void 0 : L.kind) === "video") {
- const ue = q();
- if ((H = ue == null ? void 0 : ue.setOutPoint) != null && H.call(ue)) {
- R(), Ce(m("toast.outPointSet", "Out point set"), "info", 1200);
+ if (N && (V == null ? void 0 : V.kind) === "video") {
+ const me = K();
+ if ((U = me == null ? void 0 : me.setOutPoint) != null && U.call(me)) {
+ F(), Ze(m("toast.outPointSet", "Out point set"), "info", 1200);
break;
}
}
break;
}
case "Home": {
- if (j && (L == null ? void 0 : L.kind) === "video") {
- const ue = q();
- if (($ = ue == null ? void 0 : ue.goToIn) != null && $.call(ue)) {
- R();
+ if (N && (V == null ? void 0 : V.kind) === "video") {
+ const me = K();
+ if ((Q = me == null ? void 0 : me.goToIn) != null && Q.call(me)) {
+ F();
break;
}
}
break;
}
case "End": {
- if (j && (L == null ? void 0 : L.kind) === "video") {
- const ue = q();
- if ((_ = ue == null ? void 0 : ue.goToOut) != null && _.call(ue)) {
- R();
+ if (N && (V == null ? void 0 : V.kind) === "video") {
+ const me = K();
+ if ((_ = me == null ? void 0 : me.goToOut) != null && _.call(me)) {
+ F();
break;
}
}
@@ -13928,69 +13943,69 @@ function lA({
}
case "l":
case "L": {
- R();
+ F();
try {
i.loupeEnabled = !i.loupeEnabled;
- } catch (ue) {
- (le = console.debug) == null || le.call(console, ue);
+ } catch (me) {
+ (le = console.debug) == null || le.call(console, me);
}
try {
- i.loupeEnabled || (h.style.display = "none");
- } catch (ue) {
- (se = console.debug) == null || se.call(console, ue);
+ i.loupeEnabled || (Z.style.display = "none");
+ } catch (me) {
+ (de = console.debug) == null || de.call(console, me);
}
- pt(s);
+ bt(s);
break;
}
case "x":
case "X": {
- R();
+ F();
try {
i.distractionFree = !i.distractionFree;
- } catch (ue) {
- (de = console.debug) == null || de.call(console, ue);
+ } catch (me) {
+ (se = console.debug) == null || se.call(console, me);
}
- pt(s), pt(d), pt(v);
+ bt(s), bt(d), bt(L);
break;
}
case "c":
case "C": {
- const ue = i == null ? void 0 : i._probe;
- if (!ue || ue.r == null || ue.g == null || ue.b == null) break;
- const He = `#${[ue.r, ue.g, ue.b].map((ve) => Math.max(0, Math.min(255, Number(ve) || 0)).toString(16).padStart(2, "0")).join("")}`;
+ const me = i == null ? void 0 : i._probe;
+ if (!me || me.r == null || me.g == null || me.b == null) break;
+ const Pe = `#${[me.r, me.g, me.b].map((Le) => Math.max(0, Math.min(255, Number(Le) || 0)).toString(16).padStart(2, "0")).join("")}`;
try {
- const ve = navigator == null ? void 0 : navigator.clipboard;
- ve != null && ve.writeText && (R(), ve.writeText(He).catch(() => {
+ const Le = navigator == null ? void 0 : navigator.clipboard;
+ Le != null && Le.writeText && (F(), Le.writeText(Pe).catch(() => {
}));
- } catch (ve) {
- (Ze = console.debug) == null || Ze.call(console, ve);
+ } catch (Le) {
+ (ge = console.debug) == null || ge.call(console, Le);
}
break;
}
case " ":
case "Spacebar": {
- if (j && (L == null ? void 0 : L.kind) === "video") {
- const ue = (Fe = n == null ? void 0 : n.querySelector) == null ? void 0 : Fe.call(n, "video");
- if (ue) {
- R();
+ if (N && (V == null ? void 0 : V.kind) === "video") {
+ const me = (je = n == null ? void 0 : n.querySelector) == null ? void 0 : je.call(n, "video");
+ if (me) {
+ F();
try {
- const He = q();
- if (He != null && He.togglePlay) {
- He.togglePlay();
+ const Pe = K();
+ if (Pe != null && Pe.togglePlay) {
+ Pe.togglePlay();
break;
}
- } catch (He) {
- (xe = console.debug) == null || xe.call(console, He);
+ } catch (Pe) {
+ (Se = console.debug) == null || Se.call(console, Pe);
}
try {
- if (ue.paused) {
- const He = (ze = ue.play) == null ? void 0 : ze.call(ue);
- He && typeof He.catch == "function" && He.catch(() => {
+ if (me.paused) {
+ const Pe = (ke = me.play) == null ? void 0 : ke.call(me);
+ Pe && typeof Pe.catch == "function" && Pe.catch(() => {
});
} else
- (We = ue.pause) == null || We.call(ue);
- } catch (He) {
- (De = console.debug) == null || De.call(console, He);
+ (we = me.pause) == null || we.call(me);
+ } catch (Pe) {
+ (Je = console.debug) == null || Je.call(console, Pe);
}
break;
}
@@ -13998,181 +14013,181 @@ function lA({
break;
}
case "Tab": {
- R();
+ F();
try {
- (Pe = e == null ? void 0 : e.contains) != null && Pe.call(e, document.activeElement) || (Qe = e == null ? void 0 : e.focus) == null || Qe.call(e);
- } catch (ue) {
- (Ue = console.debug) == null || Ue.call(console, ue);
+ ($e = e == null ? void 0 : e.contains) != null && $e.call(e, document.activeElement) || (qe = e == null ? void 0 : e.focus) == null || qe.call(e);
+ } catch (me) {
+ (Ue = console.debug) == null || Ue.call(console, me);
}
break;
}
case "Escape":
- R(), pt(I);
+ F(), bt(I);
break;
case "ArrowLeft":
- if (j && ((Re = (Ee = V.target) == null ? void 0 : Ee.closest) != null && Re.call(Ee, ".mjr-viewer-playerbar"))) {
- R(), O(-1);
+ if (N && ((Oe = (Te = Y.target) == null ? void 0 : Te.closest) != null && Oe.call(Te, ".mjr-viewer-playerbar"))) {
+ F(), z(-1);
break;
}
- R(), pt(() => u == null ? void 0 : u(-1));
+ F(), bt(() => u == null ? void 0 : u(-1));
break;
case "ArrowRight":
- if (j && ((Se = (wt = V.target) == null ? void 0 : wt.closest) != null && Se.call(wt, ".mjr-viewer-playerbar"))) {
- R(), O(1);
+ if (N && ((Me = (pt = Y.target) == null ? void 0 : pt.closest) != null && Me.call(pt, ".mjr-viewer-playerbar"))) {
+ F(), z(1);
break;
}
- R(), pt(() => u == null ? void 0 : u(1));
+ F(), bt(() => u == null ? void 0 : u(1));
break;
case "[":
case "{": {
- R(), B(-0.25) || Ce(m("toast.playbackVideoOnly"), "warning", 1400);
+ F(), B(-0.25) || Ze(m("toast.playbackVideoOnly"), "warning", 1400);
break;
}
case "]":
case "}": {
- R(), B(0.25) || Ce(m("toast.playbackVideoOnly"), "warning", 1400);
+ F(), B(0.25) || Ze(m("toast.playbackVideoOnly"), "warning", 1400);
break;
}
case "\\":
case "|": {
- R(), B(1, { absolute: !0 }) || Ce(m("toast.playbackVideoOnly"), "warning", 1400);
+ F(), B(1, { absolute: !0 }) || Ze(m("toast.playbackVideoOnly"), "warning", 1400);
break;
}
case "+":
case "=":
- R();
+ F();
try {
l == null || l((Number(i == null ? void 0 : i.zoom) || 1) + 0.25, {
clientX: i == null ? void 0 : i._lastPointerX,
clientY: i == null ? void 0 : i._lastPointerY
});
- } catch (ue) {
- (Ft = console.debug) == null || Ft.call(console, ue);
+ } catch (me) {
+ (Xt = console.debug) == null || Xt.call(console, me);
}
break;
case "-":
case "_":
- R();
+ F();
try {
l == null || l((Number(i == null ? void 0 : i.zoom) || 1) - 0.25, {
clientX: i == null ? void 0 : i._lastPointerX,
clientY: i == null ? void 0 : i._lastPointerY
});
- } catch (ue) {
- (Gt = console.debug) == null || Gt.call(console, ue);
+ } catch (me) {
+ (Mt = console.debug) == null || Mt.call(console, me);
}
break;
}
};
- let x = null;
+ let v = null;
const w = () => {
- var V;
+ var Y;
try {
- if (x) return;
- x = _e(window, "keydown", z, !0);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ if (v) return;
+ v = Qe(window, "keydown", T, !0);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
- }, X = () => {
- var V;
+ }, R = () => {
+ var Y;
try {
- pt(x);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ bt(v);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
- x = null;
+ v = null;
};
- return C.push(() => y()), C.push(() => X()), {
+ return h.push(() => y()), h.push(() => R()), {
bind: w,
- unbind: X,
+ unbind: R,
dispose: () => {
- y(), X();
+ y(), R();
}
};
}
-const aA = () => {
+const dA = () => {
try {
- return !!(ye != null && ye.DEBUG_VIEWER);
+ return !!(fe != null && fe.DEBUG_VIEWER);
} catch {
return !1;
}
};
-function cA(e, t, { threshold: n = 0.15 } = {}) {
+function uA(e, t, { threshold: n = 0.15 } = {}) {
var o, r, l, a, c, s, d, u, I;
const i = new AbortController();
try {
if (!e) return i;
const p = Array.isArray(t) ? t.filter((b) => b && b !== e) : [];
if (!p.length) return i;
- let M = !1;
- const Z = (b) => {
- var v, C;
+ let S = !1;
+ const A = (b) => {
+ var L, h;
try {
- const S = (v = b.play) == null ? void 0 : v.call(b);
- S && typeof S.catch == "function" && S.catch(() => {
+ const G = (L = b.play) == null ? void 0 : L.call(b);
+ G && typeof G.catch == "function" && G.catch(() => {
});
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
- }, A = () => {
- if (!M)
+ }, C = () => {
+ if (!S)
try {
const b = Number(e.currentTime) || 0;
- for (const v of p)
+ for (const L of p)
try {
- Math.abs((Number(v.currentTime) || 0) - b) > n && (M = !0, v.currentTime = b, M = !1);
+ Math.abs((Number(L.currentTime) || 0) - b) > n && (S = !0, L.currentTime = b, S = !1);
} catch {
- M = !1;
+ S = !1;
}
} catch {
- M = !1;
+ S = !1;
}
}, g = (b) => {
- var v, C;
- if (!M)
- for (const S of p)
+ var L, h;
+ if (!S)
+ for (const G of p)
try {
- b ? Z(S) : (v = S.pause) == null || v.call(S);
+ b ? A(G) : (L = G.pause) == null || L.call(G);
} catch (W) {
- (C = console.debug) == null || C.call(console, W);
+ (h = console.debug) == null || h.call(console, W);
}
- }, h = () => {
+ }, Z = () => {
var b;
- if (!M)
- for (const v of p)
+ if (!S)
+ for (const L of p)
try {
- v.muted = !!e.muted, v.volume = Number(e.volume) || 0;
- } catch (C) {
- (b = console.debug) == null || b.call(console, C);
+ L.muted = !!e.muted, L.volume = Number(e.volume) || 0;
+ } catch (h) {
+ (b = console.debug) == null || b.call(console, h);
}
}, f = () => {
var b;
- if (!M)
- for (const v of p)
+ if (!S)
+ for (const L of p)
try {
- v.playbackRate = Number(e.playbackRate) || 1;
- } catch (C) {
- (b = console.debug) == null || b.call(console, C);
+ L.playbackRate = Number(e.playbackRate) || 1;
+ } catch (h) {
+ (b = console.debug) == null || b.call(console, h);
}
};
try {
for (const b of p) {
try {
b.muted = !0;
- } catch (v) {
- (o = console.debug) == null || o.call(console, v);
+ } catch (L) {
+ (o = console.debug) == null || o.call(console, L);
}
try {
b.loop = !1;
- } catch (v) {
- (r = console.debug) == null || r.call(console, v);
+ } catch (L) {
+ (r = console.debug) == null || r.call(console, L);
}
}
} catch (b) {
(l = console.debug) == null || l.call(console, b);
}
try {
- h(), f(), A(), e.paused || g(!0);
+ Z(), f(), C(), e.paused || g(!0);
} catch (b) {
(a = console.debug) == null || a.call(console, b);
}
@@ -14182,36 +14197,36 @@ function cA(e, t, { threshold: n = 0.15 } = {}) {
}), e.addEventListener("pause", () => g(!1), {
signal: i.signal,
passive: !0
- }), e.addEventListener("timeupdate", A, {
+ }), e.addEventListener("timeupdate", C, {
signal: i.signal,
passive: !0
- }), e.addEventListener("seeking", A, { signal: i.signal, passive: !0 }), e.addEventListener("seeked", A, { signal: i.signal, passive: !0 }), e.addEventListener("ended", A, { signal: i.signal, passive: !0 }), e.addEventListener("volumechange", h, { signal: i.signal, passive: !0 }), e.addEventListener("ratechange", f, { signal: i.signal, passive: !0 });
+ }), e.addEventListener("seeking", C, { signal: i.signal, passive: !0 }), e.addEventListener("seeked", C, { signal: i.signal, passive: !0 }), e.addEventListener("ended", C, { signal: i.signal, passive: !0 }), e.addEventListener("volumechange", Z, { signal: i.signal, passive: !0 }), e.addEventListener("ratechange", f, { signal: i.signal, passive: !0 });
try {
for (const b of p)
try {
b.addEventListener(
"ended",
() => {
- var v, C;
- if (!M) {
+ var L, h;
+ if (!S) {
try {
- M = !0, b.currentTime = Number(e.currentTime) || 0;
- } catch (S) {
- (v = console.debug) == null || v.call(console, S);
+ S = !0, b.currentTime = Number(e.currentTime) || 0;
+ } catch (G) {
+ (L = console.debug) == null || L.call(console, G);
} finally {
- M = !1;
+ S = !1;
}
try {
- e.paused || Z(b);
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ e.paused || A(b);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
}
},
{ signal: i.signal, passive: !0 }
);
- } catch (v) {
- (c = console.debug) == null || c.call(console, v);
+ } catch (L) {
+ (c = console.debug) == null || c.call(console, L);
}
} catch (b) {
(s = console.debug) == null || s.call(console, b);
@@ -14219,28 +14234,28 @@ function cA(e, t, { threshold: n = 0.15 } = {}) {
try {
for (const b of p)
try {
- b.addEventListener("loadedmetadata", A, {
+ b.addEventListener("loadedmetadata", C, {
signal: i.signal,
passive: !0,
once: !0
});
- } catch (v) {
- (d = console.debug) == null || d.call(console, v);
+ } catch (L) {
+ (d = console.debug) == null || d.call(console, L);
}
} catch (b) {
(u = console.debug) == null || u.call(console, b);
}
} catch (p) {
- if (aA())
+ if (dA())
try {
console.warn("[Viewer] follower video sync setup failed", p);
- } catch (M) {
- (I = console.debug) == null || I.call(console, M);
+ } catch (S) {
+ (I = console.debug) == null || I.call(console, S);
}
}
return i;
}
-function sA({
+function mA({
gridCanvas: e,
content: t,
state: n,
@@ -14250,113 +14265,113 @@ function sA({
clearCanvas: l
} = {}) {
const a = () => {
- var b, v, C;
+ var b, L, h;
try {
- const S = n == null ? void 0 : n.mode;
- return S === (i == null ? void 0 : i.AB_COMPARE) ? ((b = t == null ? void 0 : t.querySelector) == null ? void 0 : b.call(t, ".mjr-viewer-ab")) || t || null : S === (i == null ? void 0 : i.SIDE_BY_SIDE) ? ((v = t == null ? void 0 : t.querySelector) == null ? void 0 : v.call(t, ".mjr-viewer-sidebyside")) || t || null : ((C = t == null ? void 0 : t.querySelector) == null ? void 0 : C.call(t, ".mjr-viewer-single")) || t || null;
+ const G = n == null ? void 0 : n.mode;
+ return G === (i == null ? void 0 : i.AB_COMPARE) ? ((b = t == null ? void 0 : t.querySelector) == null ? void 0 : b.call(t, ".mjr-viewer-ab")) || t || null : G === (i == null ? void 0 : i.SIDE_BY_SIDE) ? ((L = t == null ? void 0 : t.querySelector) == null ? void 0 : L.call(t, ".mjr-viewer-sidebyside")) || t || null : ((h = t == null ? void 0 : t.querySelector) == null ? void 0 : h.call(t, ".mjr-viewer-single")) || t || null;
} catch {
return t || null;
}
- }, c = (b, v) => {
+ }, c = (b, L) => {
try {
- if (!b) return v || null;
- const C = n == null ? void 0 : n.mode;
- if (C === (i == null ? void 0 : i.SIDE_BY_SIDE) || C === (i == null ? void 0 : i.AB_COMPARE)) {
- let S = b;
- for (; S && S !== v && S.parentElement; ) {
- if (S.parentElement === v) return S;
- S = S.parentElement;
+ if (!b) return L || null;
+ const h = n == null ? void 0 : n.mode;
+ if (h === (i == null ? void 0 : i.SIDE_BY_SIDE) || h === (i == null ? void 0 : i.AB_COMPARE)) {
+ let G = b;
+ for (; G && G !== L && G.parentElement; ) {
+ if (G.parentElement === L) return G;
+ G = G.parentElement;
}
- return v || null;
+ return L || null;
}
- return v || t || null;
+ return L || t || null;
} catch {
- return v || t || null;
+ return L || t || null;
}
}, s = (b) => {
- var v, C, S, W, y;
+ var L, h, G, W, y;
try {
- const k = (v = b == null ? void 0 : b.dataset) == null ? void 0 : v.mjrAssetId;
- if (k == null || k === "") return ((C = n == null ? void 0 : n.assets) == null ? void 0 : C[n == null ? void 0 : n.currentIndex]) || null;
- const G = Array.isArray(n == null ? void 0 : n.assets) ? n.assets : [];
- for (const z of G)
+ const X = (L = b == null ? void 0 : b.dataset) == null ? void 0 : L.mjrAssetId;
+ if (X == null || X === "") return ((h = n == null ? void 0 : n.assets) == null ? void 0 : h[n == null ? void 0 : n.currentIndex]) || null;
+ const x = Array.isArray(n == null ? void 0 : n.assets) ? n.assets : [];
+ for (const T of x)
try {
- if ((z == null ? void 0 : z.id) != null && String(z.id) === String(k)) return z;
- } catch (x) {
- (S = console.debug) == null || S.call(console, x);
+ if ((T == null ? void 0 : T.id) != null && String(T.id) === String(X)) return T;
+ } catch (v) {
+ (G = console.debug) == null || G.call(console, v);
}
return ((W = n == null ? void 0 : n.assets) == null ? void 0 : W[n == null ? void 0 : n.currentIndex]) || null;
} catch {
return ((y = n == null ? void 0 : n.assets) == null ? void 0 : y[n == null ? void 0 : n.currentIndex]) || null;
}
- }, d = (b, v = null) => {
- var C, S, W, y;
+ }, d = (b, L = null) => {
+ var h, G, W, y;
try {
if (!b) return { w: 0, h: 0 };
if (b instanceof HTMLCanvasElement) {
- const z = Number(b._mjrNaturalW) || Number(b.width) || 0, x = Number(b._mjrNaturalH) || Number(b.height) || 0;
- if (z > 0 && x > 0) return { w: z, h: x };
+ const T = Number(b._mjrNaturalW) || Number(b.width) || 0, v = Number(b._mjrNaturalH) || Number(b.height) || 0;
+ if (T > 0 && v > 0) return { w: T, h: v };
}
- const k = Number(b.videoWidth) || Number(b.naturalWidth) || 0, G = Number(b.videoHeight) || Number(b.naturalHeight) || 0;
- if (k > 0 && G > 0) return { w: k, h: G };
+ const X = Number(b.videoWidth) || Number(b.naturalWidth) || 0, x = Number(b.videoHeight) || Number(b.naturalHeight) || 0;
+ if (X > 0 && x > 0) return { w: X, h: x };
try {
- const z = Number(v == null ? void 0 : v.width) || 0, x = Number(v == null ? void 0 : v.height) || 0;
- if (z > 0 && x > 0) return { w: z, h: x };
- } catch (z) {
- (C = console.debug) == null || C.call(console, z);
+ const T = Number(L == null ? void 0 : L.width) || 0, v = Number(L == null ? void 0 : L.height) || 0;
+ if (T > 0 && v > 0) return { w: T, h: v };
+ } catch (T) {
+ (h = console.debug) == null || h.call(console, T);
}
try {
- const z = Number(n == null ? void 0 : n._mediaW) || 0, x = Number(n == null ? void 0 : n._mediaH) || 0;
- if (z > 0 && x > 0) return { w: z, h: x };
- } catch (z) {
- (S = console.debug) == null || S.call(console, z);
+ const T = Number(n == null ? void 0 : n._mediaW) || 0, v = Number(n == null ? void 0 : n._mediaH) || 0;
+ if (T > 0 && v > 0) return { w: T, h: v };
+ } catch (T) {
+ (G = console.debug) == null || G.call(console, T);
}
try {
- const z = ((W = n == null ? void 0 : n.assets) == null ? void 0 : W[n == null ? void 0 : n.currentIndex]) || null, x = Number(z == null ? void 0 : z.width) || 0, w = Number(z == null ? void 0 : z.height) || 0;
- if (x > 0 && w > 0) return { w: x, h: w };
- } catch (z) {
- (y = console.debug) == null || y.call(console, z);
+ const T = ((W = n == null ? void 0 : n.assets) == null ? void 0 : W[n == null ? void 0 : n.currentIndex]) || null, v = Number(T == null ? void 0 : T.width) || 0, w = Number(T == null ? void 0 : T.height) || 0;
+ if (v > 0 && w > 0) return { w: v, h: w };
+ } catch (T) {
+ (y = console.debug) == null || y.call(console, T);
}
return { w: 0, h: 0 };
} catch {
return { w: 0, h: 0 };
}
- }, u = (b, v, C, S) => {
+ }, u = (b, L, h, G) => {
try {
- const W = Number(b) || 0, y = Number(v) || 0, k = Number(C) || 0, G = Number(S) || 0;
- if (!(W > 0 && y > 0 && k > 0 && G > 0)) return { x: 0, y: 0, w: W, h: y };
- const z = k / G;
- if (!Number.isFinite(z) || z <= 0) return { x: 0, y: 0, w: W, h: y };
- const x = y, w = y * z;
- return { x: (W - w) / 2, y: 0, w, h: x };
+ const W = Number(b) || 0, y = Number(L) || 0, X = Number(h) || 0, x = Number(G) || 0;
+ if (!(W > 0 && y > 0 && X > 0 && x > 0)) return { x: 0, y: 0, w: W, h: y };
+ const T = X / x;
+ if (!Number.isFinite(T) || T <= 0) return { x: 0, y: 0, w: W, h: y };
+ const v = y, w = y * T;
+ return { x: (W - w) / 2, y: 0, w, h: v };
} catch {
- return { x: 0, y: 0, w: Number(b) || 0, h: Number(v) || 0 };
+ return { x: 0, y: 0, w: Number(b) || 0, h: Number(L) || 0 };
}
- }, I = (b, v, C, S, W) => {
+ }, I = (b, L, h, G, W) => {
try {
- const y = Math.max(0.1, Math.min(16, Number(C) || 1)), k = Number(v == null ? void 0 : v.x) || 0, G = Number(v == null ? void 0 : v.y) || 0, z = Number(b == null ? void 0 : b.x) || 0, x = Number(b == null ? void 0 : b.y) || 0, w = Number(b == null ? void 0 : b.w) || 0, X = Number(b == null ? void 0 : b.h) || 0, V = Number(S) || 0, R = Number(W) || 0;
+ const y = Math.max(0.1, Math.min(16, Number(h) || 1)), X = Number(L == null ? void 0 : L.x) || 0, x = Number(L == null ? void 0 : L.y) || 0, T = Number(b == null ? void 0 : b.x) || 0, v = Number(b == null ? void 0 : b.y) || 0, w = Number(b == null ? void 0 : b.w) || 0, R = Number(b == null ? void 0 : b.h) || 0, Y = Number(G) || 0, F = Number(W) || 0;
return {
- x: k + (z - k) * y + V,
- y: G + (x - G) * y + R,
+ x: X + (T - X) * y + Y,
+ y: x + (v - x) * y + F,
w: w * y,
- h: X * y
+ h: R * y
};
} catch {
return { x: 0, y: 0, w: 0, h: 0 };
}
- }, p = (b, v, C, S) => {
+ }, p = (b, L, h, G) => {
var W;
try {
- const y = v || {}, k = Number(y.x) || 0, G = Number(y.y) || 0, z = Number(y.w) || 0, x = Number(y.h) || 0;
- if (!(z > 8 && x > 8)) return;
- const w = String(C || "");
+ const y = L || {}, X = Number(y.x) || 0, x = Number(y.y) || 0, T = Number(y.w) || 0, v = Number(y.h) || 0;
+ if (!(T > 8 && v > 8)) return;
+ const w = String(h || "");
if (!w) return;
- const X = Math.max(6, Math.round(6 * S)), V = Math.max(3, Math.round(3 * S)), R = Math.max(11, Math.round(11 * S));
- b.save(), b.font = `${R}px var(--comfy-font, ui-sans-serif, system-ui)`, b.textAlign = "left", b.textBaseline = "top";
- const L = Math.ceil(b.measureText(w).width) + X * 2, N = R + V * 2, q = k + Math.max(2, Math.round(8 * S)), O = G + Math.max(2, Math.round(8 * S));
- b.fillStyle = "rgba(0,0,0,0.55)", b.strokeStyle = "rgba(255,255,255,0.18)", b.lineWidth = Math.max(1, Math.round(1 * S)), b.beginPath();
- const B = Math.max(6, Math.round(8 * S));
- b.moveTo(q + B, O), b.arcTo(q + L, O, q + L, O + N, B), b.arcTo(q + L, O + N, q, O + N, B), b.arcTo(q, O + N, q, O, B), b.arcTo(q, O, q + L, O, B), b.closePath(), b.fill(), b.stroke(), b.fillStyle = "rgba(255,255,255,0.92)", b.fillText(w, q + X, O + V), b.restore();
+ const R = Math.max(6, Math.round(6 * G)), Y = Math.max(3, Math.round(3 * G)), F = Math.max(11, Math.round(11 * G));
+ b.save(), b.font = `${F}px var(--comfy-font, ui-sans-serif, system-ui)`, b.textAlign = "left", b.textBaseline = "top";
+ const V = Math.ceil(b.measureText(w).width) + R * 2, k = F + Y * 2, K = X + Math.max(2, Math.round(8 * G)), z = x + Math.max(2, Math.round(8 * G));
+ b.fillStyle = "rgba(0,0,0,0.55)", b.strokeStyle = "rgba(255,255,255,0.18)", b.lineWidth = Math.max(1, Math.round(1 * G)), b.beginPath();
+ const B = Math.max(6, Math.round(8 * G));
+ b.moveTo(K + B, z), b.arcTo(K + V, z, K + V, z + k, B), b.arcTo(K + V, z + k, K, z + k, B), b.arcTo(K, z + k, K, z, B), b.arcTo(K, z, K + V, z, B), b.closePath(), b.fill(), b.stroke(), b.fillStyle = "rgba(255,255,255,0.92)", b.fillText(w, K + R, z + Y), b.restore();
} catch {
try {
b.restore();
@@ -14364,245 +14379,245 @@ function sA({
(W = console.debug) == null || W.call(console, y);
}
}
- }, M = () => {
+ }, S = () => {
var b;
try {
- const v = r == null ? void 0 : r();
- if (!v) return { w: 0, h: 0, dpr: 1 };
- const C = Math.max(1, Math.min(3, Number(window.devicePixelRatio) || 1)), S = Math.max(1, Math.floor(v.width * C)), W = Math.max(1, Math.floor(v.height * C));
+ const L = r == null ? void 0 : r();
+ if (!L) return { w: 0, h: 0, dpr: 1 };
+ const h = Math.max(1, Math.min(3, Number(window.devicePixelRatio) || 1)), G = Math.max(1, Math.floor(L.width * h)), W = Math.max(1, Math.floor(L.height * h));
try {
- (e == null ? void 0 : e.width) !== S && (e.width = S), (e == null ? void 0 : e.height) !== W && (e.height = W);
+ (e == null ? void 0 : e.width) !== G && (e.width = G), (e == null ? void 0 : e.height) !== W && (e.height = W);
} catch (y) {
(b = console.debug) == null || b.call(console, y);
}
- return { w: S, h: W, dpr: C };
+ return { w: G, h: W, dpr: h };
} catch {
return { w: 0, h: 0, dpr: 1 };
}
- }, Z = (b, v, C) => {
+ }, A = (b, L, h) => {
try {
- const S = String(b || "image");
- if (S === "image") {
- const W = d(v), y = (Number(W.w) || 0) / (Number(W.h) || 1);
+ const G = String(b || "image");
+ if (G === "image") {
+ const W = d(L), y = (Number(W.w) || 0) / (Number(W.h) || 1);
if (Number.isFinite(y) && y > 0) return y;
- const k = (Number(C == null ? void 0 : C.width) || 0) / (Number(C == null ? void 0 : C.height) || 1);
- return Number.isFinite(k) && k > 0 ? k : 1;
+ const X = (Number(h == null ? void 0 : h.width) || 0) / (Number(h == null ? void 0 : h.height) || 1);
+ return Number.isFinite(X) && X > 0 ? X : 1;
}
- return S === "16:9" ? 1.7777777777777777 : S === "9:16" ? 0.5625 : S === "1:1" ? 1 : S === "4:3" ? 1.3333333333333333 : S === "2.39" ? 2.39 : 1;
+ return G === "16:9" ? 1.7777777777777777 : G === "9:16" ? 0.5625 : G === "1:1" ? 1 : G === "4:3" ? 1.3333333333333333 : G === "2.39" ? 2.39 : 1;
} catch {
return 1;
}
- }, A = (b, v, C) => {
+ }, C = (b, L, h) => {
try {
- const S = Number(b) || 0, W = Number(v) || 0, y = Number(C) || 1;
- if (!(S > 0 && W > 0 && y > 0)) return { x: 0, y: 0, w: S, h: W };
- const k = S / W;
- let G = S, z = W;
- y >= k ? (G = S, z = S / y) : (z = W, G = W * y);
- const x = (S - G) / 2, w = (W - z) / 2;
- return { x, y: w, w: G, h: z };
+ const G = Number(b) || 0, W = Number(L) || 0, y = Number(h) || 1;
+ if (!(G > 0 && W > 0 && y > 0)) return { x: 0, y: 0, w: G, h: W };
+ const X = G / W;
+ let x = G, T = W;
+ y >= X ? (x = G, T = G / y) : (T = W, x = W * y);
+ const v = (G - x) / 2, w = (W - T) / 2;
+ return { x: v, y: w, w: x, h: T };
} catch {
- return { x: 0, y: 0, w: Number(b) || 0, h: Number(v) || 0 };
+ return { x: 0, y: 0, w: Number(b) || 0, h: Number(L) || 0 };
}
- }, g = (b, v, C) => {
- var S;
+ }, g = (b, L, h) => {
+ var G;
try {
- const W = Math.max(0, Math.min(0.92, Number(C)));
+ const W = Math.max(0, Math.min(0.92, Number(h)));
if (!(W > 0)) return;
b.save(), b.globalCompositeOperation = "source-over", b.fillStyle = `rgba(0,0,0,${W})`, b.fillRect(0, 0, e.width, e.height), b.globalCompositeOperation = "destination-out", b.fillStyle = "rgba(0,0,0,1)";
- const y = Array.isArray(v) ? v : [v];
- for (const k of y) {
- if (!k) continue;
- const G = Number(k.x) || 0, z = Number(k.y) || 0, x = Number(k.w) || 0, w = Number(k.h) || 0;
- x > 1 && w > 1 && b.fillRect(G, z, x, w);
+ const y = Array.isArray(L) ? L : [L];
+ for (const X of y) {
+ if (!X) continue;
+ const x = Number(X.x) || 0, T = Number(X.y) || 0, v = Number(X.w) || 0, w = Number(X.h) || 0;
+ v > 1 && w > 1 && b.fillRect(x, T, v, w);
}
b.restore();
} catch {
try {
b.restore();
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
}
- }, h = (b, v, C) => {
- var S, W, y;
+ }, Z = (b, L, h) => {
+ var G, W, y;
try {
b.save();
try {
- (S = b.setLineDash) == null || S.call(b, [Math.max(2, 4 * C), Math.max(2, 3 * C)]);
- } catch (k) {
- (W = console.debug) == null || W.call(console, k);
+ (G = b.setLineDash) == null || G.call(b, [Math.max(2, 4 * h), Math.max(2, 3 * h)]);
+ } catch (X) {
+ (W = console.debug) == null || W.call(console, X);
}
- b.strokeStyle = "rgba(255,255,255,0.22)", b.lineWidth = Math.max(1, Math.floor(1 * C)), b.strokeRect(v.x + 0.5, v.y + 0.5, v.w - 1, v.h - 1), b.restore();
+ b.strokeStyle = "rgba(255,255,255,0.22)", b.lineWidth = Math.max(1, Math.floor(1 * h)), b.strokeRect(L.x + 0.5, L.y + 0.5, L.w - 1, L.h - 1), b.restore();
} catch {
try {
b.restore();
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
}
};
- return { ensureCanvasSize: M, redrawGrid: ({ w: b, h: v, dpr: C } = {}) => {
- var S, W, y, k, G, z, x, w, X, V, R, j;
+ return { ensureCanvasSize: S, redrawGrid: ({ w: b, h: L, dpr: h } = {}) => {
+ var G, W, y, X, x, T, v, w, R, Y, F, N;
try {
- const L = (S = e == null ? void 0 : e.getContext) == null ? void 0 : S.call(e, "2d");
- if (!L) return;
+ const V = (G = e == null ? void 0 : e.getContext) == null ? void 0 : G.call(e, "2d");
+ if (!V) return;
try {
- l == null || l(L, b, v);
- } catch (F) {
- (W = console.debug) == null || W.call(console, F);
+ l == null || l(V, b, L);
+ } catch (M) {
+ (W = console.debug) == null || W.call(console, M);
}
- const N = r == null ? void 0 : r();
- if (!N) return;
- const q = Number(N.width) || 0, O = Number(N.height) || 0;
- if (!(q > 1 && O > 1)) return;
- const B = a(), J = n == null ? void 0 : n.mode, T = (() => {
- var F;
+ const k = r == null ? void 0 : r();
+ if (!k) return;
+ const K = Number(k.width) || 0, z = Number(k.height) || 0;
+ if (!(K > 1 && z > 1)) return;
+ const B = a(), J = n == null ? void 0 : n.mode, P = (() => {
+ var M;
try {
if (J === (i == null ? void 0 : i.SINGLE)) return [o == null ? void 0 : o()].filter(Boolean);
- const Y = ((F = B == null ? void 0 : B.querySelectorAll) == null ? void 0 : F.call(B, ".mjr-viewer-media")) || [];
- return Array.from(Y || []).filter(Boolean);
+ const j = ((M = B == null ? void 0 : B.querySelectorAll) == null ? void 0 : M.call(B, ".mjr-viewer-media")) || [];
+ return Array.from(j || []).filter(Boolean);
} catch {
return [o == null ? void 0 : o()].filter(Boolean);
}
})();
- if (!T.length) return;
- const D = [], Q = [];
- for (const F of T)
+ if (!P.length) return;
+ const H = [], $ = [];
+ for (const M of P)
try {
- const Y = c(F, B), U = ((y = Y == null ? void 0 : Y.getBoundingClientRect) == null ? void 0 : y.call(Y)) || null;
- if (!U) continue;
- const P = Number(U.width) || 0, ee = Number(U.height) || 0;
- if (!(P > 1 && ee > 1)) continue;
- const oe = s(F), ce = d(F, oe), pe = u(P, ee, ce.w, ce.h), H = Z(n == null ? void 0 : n.overlayFormat, F, {
- width: pe.w,
- height: pe.h
- }), $ = A(pe.w, pe.h, H), _ = (Number(U.left) || 0) - (Number(N.left) || 0), le = (Number(U.top) || 0) - (Number(N.top) || 0), se = {
- x: _ + (pe.x || 0),
- y: le + (pe.y || 0),
- w: pe.w || P,
- h: pe.h || ee
- }, de = {
- x: se.x + ($.x || 0),
- y: se.y + ($.y || 0),
- w: $.w || se.w,
- h: $.h || se.h
- }, Ze = { x: _ + P / 2, y: le + ee / 2 }, Fe = Number(n == null ? void 0 : n.zoom) || 1, xe = (Number(n == null ? void 0 : n.panX) || 0) / Fe, ze = (Number(n == null ? void 0 : n.panY) || 0) / Fe, We = I(
- se,
- Ze,
- Fe,
- xe,
- ze
- ), De = I(de, Ze, Fe, xe, ze), Pe = {
- x: We.x * C,
- y: We.y * C,
- w: We.w * C,
- h: We.h * C,
+ const j = c(M, B), O = ((y = j == null ? void 0 : j.getBoundingClientRect) == null ? void 0 : y.call(j)) || null;
+ if (!O) continue;
+ const D = Number(O.width) || 0, q = Number(O.height) || 0;
+ if (!(D > 1 && q > 1)) continue;
+ const ee = s(M), ce = d(M, ee), ue = u(D, q, ce.w, ce.h), U = A(n == null ? void 0 : n.overlayFormat, M, {
+ width: ue.w,
+ height: ue.h
+ }), Q = C(ue.w, ue.h, U), _ = (Number(O.left) || 0) - (Number(k.left) || 0), le = (Number(O.top) || 0) - (Number(k.top) || 0), de = {
+ x: _ + (ue.x || 0),
+ y: le + (ue.y || 0),
+ w: ue.w || D,
+ h: ue.h || q
+ }, se = {
+ x: de.x + (Q.x || 0),
+ y: de.y + (Q.y || 0),
+ w: Q.w || de.w,
+ h: Q.h || de.h
+ }, ge = { x: _ + D / 2, y: le + q / 2 }, je = Number(n == null ? void 0 : n.zoom) || 1, Se = (Number(n == null ? void 0 : n.panX) || 0) / je, ke = (Number(n == null ? void 0 : n.panY) || 0) / je, we = I(
+ de,
+ ge,
+ je,
+ Se,
+ ke
+ ), Je = I(se, ge, je, Se, ke), $e = {
+ x: we.x * h,
+ y: we.y * h,
+ w: we.w * h,
+ h: we.h * h,
_sizeLabel: (() => {
var Ue;
try {
- const Ee = Number(oe == null ? void 0 : oe.width) || Number(ce.w) || 0, Re = Number(oe == null ? void 0 : oe.height) || Number(ce.h) || 0;
- if (Ee > 0 && Re > 0) return `${Ee}x${Re}`;
- } catch (Ee) {
- (Ue = console.debug) == null || Ue.call(console, Ee);
+ const Te = Number(ee == null ? void 0 : ee.width) || Number(ce.w) || 0, Oe = Number(ee == null ? void 0 : ee.height) || Number(ce.h) || 0;
+ if (Te > 0 && Oe > 0) return `${Te}x${Oe}`;
+ } catch (Te) {
+ (Ue = console.debug) == null || Ue.call(console, Te);
}
return "";
})()
- }, Qe = {
- x: De.x * C,
- y: De.y * C,
- w: De.w * C,
- h: De.h * C
+ }, qe = {
+ x: Je.x * h,
+ y: Je.y * h,
+ w: Je.w * h,
+ h: Je.h * h
};
- Pe.w > 1 && Pe.h > 1 && Q.push(Pe), Qe.w > 1 && Qe.h > 1 && D.push(Qe);
- } catch (Y) {
- (k = console.debug) == null || k.call(console, Y);
+ $e.w > 1 && $e.h > 1 && $.push($e), qe.w > 1 && qe.h > 1 && H.push(qe);
+ } catch (j) {
+ (X = console.debug) == null || X.call(console, j);
}
- if (!D.length && !Q.length) return;
- const E = D.length ? D : Q, K = E[0] || null;
+ if (!H.length && !$.length) return;
+ const E = H.length ? H : $, oe = E[0] || null;
try {
if (n != null && n.overlayMaskEnabled) {
- g(L, E, (n == null ? void 0 : n.overlayMaskOpacity) ?? 0.65);
- for (const F of E)
+ g(V, E, (n == null ? void 0 : n.overlayMaskOpacity) ?? 0.65);
+ for (const M of E)
try {
- h(L, F, C);
- } catch (Y) {
- (G = console.debug) == null || G.call(console, Y);
+ Z(V, M, h);
+ } catch (j) {
+ (x = console.debug) == null || x.call(console, j);
}
}
- } catch (F) {
- (z = console.debug) == null || z.call(console, F);
+ } catch (M) {
+ (T = console.debug) == null || T.call(console, M);
}
try {
if (n != null && n.hudEnabled && (n == null ? void 0 : n.mode) === (i == null ? void 0 : i.SINGLE))
- for (const F of Q) {
+ for (const M of $) {
try {
- L.save(), L.strokeStyle = "rgba(255,255,255,0.22)", L.lineWidth = Math.max(1, Math.floor(1 * C)), L.strokeRect(F.x + 0.5, F.y + 0.5, F.w - 1, F.h - 1), L.restore();
+ V.save(), V.strokeStyle = "rgba(255,255,255,0.22)", V.lineWidth = Math.max(1, Math.floor(1 * h)), V.strokeRect(M.x + 0.5, M.y + 0.5, M.w - 1, M.h - 1), V.restore();
} catch {
try {
- L.restore();
- } catch (Y) {
- (x = console.debug) == null || x.call(console, Y);
+ V.restore();
+ } catch (j) {
+ (v = console.debug) == null || v.call(console, j);
}
}
try {
- p(L, F, F._sizeLabel || "", C);
- } catch (Y) {
- (w = console.debug) == null || w.call(console, Y);
+ p(V, M, M._sizeLabel || "", h);
+ } catch (j) {
+ (w = console.debug) == null || w.call(console, j);
}
}
- } catch (F) {
- (X = console.debug) == null || X.call(console, F);
+ } catch (M) {
+ (R = console.debug) == null || R.call(console, M);
}
- if ((n == null ? void 0 : n.mode) !== (i == null ? void 0 : i.SINGLE) || ((n == null ? void 0 : n.gridMode) || 0) === 0 || !K) return;
+ if ((n == null ? void 0 : n.mode) !== (i == null ? void 0 : i.SINGLE) || ((n == null ? void 0 : n.gridMode) || 0) === 0 || !oe) return;
try {
- L.save(), L.translate(K.x, K.y), L.strokeStyle = "rgba(255, 255, 255, 0.22)", L.lineWidth = Math.max(2, Math.round(1.25 * C));
- const F = (Y, U, P, ee) => {
- var oe;
+ V.save(), V.translate(oe.x, oe.y), V.strokeStyle = "rgba(255, 255, 255, 0.22)", V.lineWidth = Math.max(2, Math.round(1.25 * h));
+ const M = (j, O, D, q) => {
+ var ee;
try {
- L.beginPath(), L.moveTo(Math.round(Y) + 0.5, Math.round(U) + 0.5), L.lineTo(Math.round(P) + 0.5, Math.round(ee) + 0.5), L.stroke();
+ V.beginPath(), V.moveTo(Math.round(j) + 0.5, Math.round(O) + 0.5), V.lineTo(Math.round(D) + 0.5, Math.round(q) + 0.5), V.stroke();
} catch (ce) {
- (oe = console.debug) == null || oe.call(console, ce);
+ (ee = console.debug) == null || ee.call(console, ce);
}
};
if (n.gridMode === 1)
- F(K.w / 3, 0, K.w / 3, K.h), F(2 * K.w / 3, 0, 2 * K.w / 3, K.h), F(0, K.h / 3, K.w, K.h / 3), F(0, 2 * K.h / 3, K.w, 2 * K.h / 3);
+ M(oe.w / 3, 0, oe.w / 3, oe.h), M(2 * oe.w / 3, 0, 2 * oe.w / 3, oe.h), M(0, oe.h / 3, oe.w, oe.h / 3), M(0, 2 * oe.h / 3, oe.w, 2 * oe.h / 3);
else if (n.gridMode === 2)
- F(K.w / 2, 0, K.w / 2, K.h), F(0, K.h / 2, K.w, K.h / 2);
+ M(oe.w / 2, 0, oe.w / 2, oe.h), M(0, oe.h / 2, oe.w, oe.h / 2);
else if (n.gridMode === 3) {
- const Y = (U, P) => {
- var ee, oe;
+ const j = (O, D) => {
+ var q, ee;
try {
- L.save(), L.strokeStyle = `rgba(255,255,255,${P})`;
- const ce = Math.round(K.w * U), pe = Math.round(K.h * U), H = Math.round(K.w * (1 - U * 2)), $ = Math.round(K.h * (1 - U * 2));
- L.strokeRect(ce + 0.5, pe + 0.5, H, $);
+ V.save(), V.strokeStyle = `rgba(255,255,255,${D})`;
+ const ce = Math.round(oe.w * O), ue = Math.round(oe.h * O), U = Math.round(oe.w * (1 - O * 2)), Q = Math.round(oe.h * (1 - O * 2));
+ V.strokeRect(ce + 0.5, ue + 0.5, U, Q);
} catch (ce) {
- (ee = console.debug) == null || ee.call(console, ce);
+ (q = console.debug) == null || q.call(console, ce);
} finally {
try {
- L.restore();
+ V.restore();
} catch (ce) {
- (oe = console.debug) == null || oe.call(console, ce);
+ (ee = console.debug) == null || ee.call(console, ce);
}
}
};
- Y(0.05, 0.24), Y(0.1, 0.18);
- } else n.gridMode === 4 && (F(K.w * 0.382, 0, K.w * 0.382, K.h), F(K.w * 0.618, 0, K.w * 0.618, K.h), F(0, K.h * 0.382, K.w, K.h * 0.382), F(0, K.h * 0.618, K.w, K.h * 0.618));
- } catch (F) {
- (V = console.debug) == null || V.call(console, F);
+ j(0.05, 0.24), j(0.1, 0.18);
+ } else n.gridMode === 4 && (M(oe.w * 0.382, 0, oe.w * 0.382, oe.h), M(oe.w * 0.618, 0, oe.w * 0.618, oe.h), M(0, oe.h * 0.382, oe.w, oe.h * 0.382), M(0, oe.h * 0.618, oe.w, oe.h * 0.618));
+ } catch (M) {
+ (Y = console.debug) == null || Y.call(console, M);
} finally {
try {
- L.restore();
- } catch (F) {
- (R = console.debug) == null || R.call(console, F);
+ V.restore();
+ } catch (M) {
+ (F = console.debug) == null || F.call(console, M);
}
}
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
} };
}
-function dA({
+function gA({
overlay: e,
content: t,
state: n,
@@ -14616,107 +14631,107 @@ function dA({
onLoupeRedraw: d,
lifecycle: u
} = {}) {
- var S, W;
+ var G, W;
const I = (u == null ? void 0 : u.unsubs) || [], p = document.createElement("canvas");
p.width = 1, p.height = 1;
- let M = null;
+ let S = null;
try {
- M = p.getContext("2d", { willReadFrequently: !0 });
+ S = p.getContext("2d", { willReadFrequently: !0 });
} catch (y) {
- (S = console.debug) == null || S.call(console, y);
+ (G = console.debug) == null || G.call(console, y);
}
- let Z = null, A = null, g = null;
- const h = () => {
- var y, k, G;
+ let A = null, C = null, g = null;
+ const Z = () => {
+ var y, X, x;
try {
c.style.display = "none";
- } catch (z) {
- (y = console.debug) == null || y.call(console, z);
+ } catch (T) {
+ (y = console.debug) == null || y.call(console, T);
}
try {
s.style.display = "none";
- } catch (z) {
- (k = console.debug) == null || k.call(console, z);
+ } catch (T) {
+ (X = console.debug) == null || X.call(console, T);
}
try {
n._probe = null;
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
}, f = (y) => {
try {
- const k = y == null ? void 0 : y.x, G = y == null ? void 0 : y.y, z = y == null ? void 0 : y.r, x = y == null ? void 0 : y.g, w = y == null ? void 0 : y.b, X = y == null ? void 0 : y.a, V = Array.isArray(y == null ? void 0 : y.raw) ? y.raw : null, R = Array.isArray(y == null ? void 0 : y.lin) ? y.lin : null, j = Number(y == null ? void 0 : y.scale), L = (B) => {
+ const X = y == null ? void 0 : y.x, x = y == null ? void 0 : y.y, T = y == null ? void 0 : y.r, v = y == null ? void 0 : y.g, w = y == null ? void 0 : y.b, R = y == null ? void 0 : y.a, Y = Array.isArray(y == null ? void 0 : y.raw) ? y.raw : null, F = Array.isArray(y == null ? void 0 : y.lin) ? y.lin : null, N = Number(y == null ? void 0 : y.scale), V = (B) => {
const J = Number(B);
return Number.isFinite(J) ? J.toFixed(3) : "?";
- }, N = z != null && x != null && w != null ? `#${[z, x, w].map((B) => Math.max(0, Math.min(255, Number(B) || 0)).toString(16).padStart(2, "0")).join("")}` : "", q = Number.isFinite(j) && j > 0 && j < 0.999 ? ` (proc ${(j * 100).toFixed(0)}%)` : "", O = [];
- return O.push(`X: ${k ?? "?"} Y: ${G ?? "?"}${q}`), O.push(`RGBA8: ${z ?? "?"} ${x ?? "?"} ${w ?? "?"} ${X ?? "?"}`), V && V.length >= 3 && O.push(`RGB: ${L(V[0])} ${L(V[1])} ${L(V[2])}`), R && R.length >= 3 && O.push(`HDR: ${L(R[0])} ${L(R[1])} ${L(R[2])}`), N && O.push(N), O.join(`
+ }, k = T != null && v != null && w != null ? `#${[T, v, w].map((B) => Math.max(0, Math.min(255, Number(B) || 0)).toString(16).padStart(2, "0")).join("")}` : "", K = Number.isFinite(N) && N > 0 && N < 0.999 ? ` (proc ${(N * 100).toFixed(0)}%)` : "", z = [];
+ return z.push(`X: ${X ?? "?"} Y: ${x ?? "?"}${K}`), z.push(`RGBA8: ${T ?? "?"} ${v ?? "?"} ${w ?? "?"} ${R ?? "?"}`), Y && Y.length >= 3 && z.push(`RGB: ${V(Y[0])} ${V(Y[1])} ${V(Y[2])}`), F && F.length >= 3 && z.push(`HDR: ${V(F[0])} ${V(F[1])} ${V(F[2])}`), k && z.push(k), z.join(`
`);
} catch {
return "";
}
- }, b = (y, k, G) => {
- var z, x;
- if (!M) return null;
+ }, b = (y, X, x) => {
+ var T, v;
+ if (!S) return null;
try {
- M.clearRect(0, 0, 1, 1);
+ S.clearRect(0, 0, 1, 1);
} catch (w) {
- (z = console.debug) == null || z.call(console, w);
+ (T = console.debug) == null || T.call(console, w);
}
try {
- let w = Number(k) || 0, X = Number(G) || 0;
+ let w = Number(X) || 0, R = Number(x) || 0;
if ((y == null ? void 0 : y.tagName) === "CANVAS") {
- const R = Number(y._mjrPixelScale) || 1;
- w = Math.floor(w * R), X = Math.floor(X * R);
+ const F = Number(y._mjrPixelScale) || 1;
+ w = Math.floor(w * F), R = Math.floor(R * F);
}
- M.drawImage(y, w, X, 1, 1, 0, 0, 1, 1);
- const V = (x = M.getImageData(0, 0, 1, 1)) == null ? void 0 : x.data;
- return !V || V.length < 4 ? null : { r: V[0], g: V[1], b: V[2], a: V[3] };
+ S.drawImage(y, w, R, 1, 1, 0, 0, 1, 1);
+ const Y = (v = S.getImageData(0, 0, 1, 1)) == null ? void 0 : v.data;
+ return !Y || Y.length < 4 ? null : { r: Y[0], g: Y[1], b: Y[2], a: Y[3] };
} catch {
return null;
}
- }, v = (y, k) => {
- var G, z, x, w, X, V, R;
+ }, L = (y, X) => {
+ var x, T, v, w, R, Y, F;
try {
- if (((G = e == null ? void 0 : e.style) == null ? void 0 : G.display) === "none" || (n == null ? void 0 : n.mode) !== (i == null ? void 0 : i.SINGLE) || !(n != null && n.probeEnabled) && !(n != null && n.loupeEnabled)) return h();
- const j = o == null ? void 0 : o();
- if (!j) return h();
- const L = j.getBoundingClientRect();
- if (!L || !(L.width > 2 && L.height > 2)) return h();
- const N = (Number(y) || 0) - L.left, q = (Number(k) || 0) - L.top;
- if (N < 0 || q < 0 || N > L.width || q > L.height) return h();
- const { w: O, h: B } = (r == null ? void 0 : r(j)) || { w: 0, h: 0 };
- if (!(O > 0 && B > 0)) return h();
- const J = N / L.width, T = q / L.height, D = Math.max(0, Math.min(O - 1, Math.floor(J * O))), Q = Math.max(0, Math.min(B - 1, Math.floor(T * B)));
+ if (((x = e == null ? void 0 : e.style) == null ? void 0 : x.display) === "none" || (n == null ? void 0 : n.mode) !== (i == null ? void 0 : i.SINGLE) || !(n != null && n.probeEnabled) && !(n != null && n.loupeEnabled)) return Z();
+ const N = o == null ? void 0 : o();
+ if (!N) return Z();
+ const V = N.getBoundingClientRect();
+ if (!V || !(V.width > 2 && V.height > 2)) return Z();
+ const k = (Number(y) || 0) - V.left, K = (Number(X) || 0) - V.top;
+ if (k < 0 || K < 0 || k > V.width || K > V.height) return Z();
+ const { w: z, h: B } = (r == null ? void 0 : r(N)) || { w: 0, h: 0 };
+ if (!(z > 0 && B > 0)) return Z();
+ const J = k / V.width, P = K / V.height, H = Math.max(0, Math.min(z - 1, Math.floor(J * z))), $ = Math.max(0, Math.min(B - 1, Math.floor(P * B)));
let E = null;
if (n != null && n.probeEnabled) {
try {
- const K = j == null ? void 0 : j._mjrProc;
- if (K != null && K.sampleAtOriginal) {
- const F = K.sampleAtOriginal(D, Q);
- F && (E = { x: D, y: Q, ...F });
+ const oe = N == null ? void 0 : N._mjrProc;
+ if (oe != null && oe.sampleAtOriginal) {
+ const M = oe.sampleAtOriginal(H, $);
+ M && (E = { x: H, y: $, ...M });
}
- } catch (K) {
- (z = console.debug) == null || z.call(console, K);
+ } catch (oe) {
+ (T = console.debug) == null || T.call(console, oe);
}
if (!E) {
- const K = b(j, D, Q);
- K && (E = { x: D, y: Q, ...K });
+ const oe = b(N, H, $);
+ oe && (E = { x: H, y: $, ...oe });
}
}
- E || (E = { x: D, y: Q });
+ E || (E = { x: H, y: $ });
try {
n._probe = E;
- } catch (K) {
- (x = console.debug) == null || x.call(console, K);
+ } catch (oe) {
+ (v = console.debug) == null || v.call(console, oe);
}
if (n != null && n.probeEnabled) {
try {
c.textContent = f(E), c.style.display = "";
- } catch (K) {
- (w = console.debug) == null || w.call(console, K);
+ } catch (oe) {
+ (w = console.debug) == null || w.call(console, oe);
}
- pt(
- () => a == null ? void 0 : a(c, y, k, {
+ bt(
+ () => a == null ? void 0 : a(c, y, X, {
offsetX: 18,
offsetY: 18
})
@@ -14724,51 +14739,51 @@ function dA({
} else
try {
c.style.display = "none";
- } catch (K) {
- (X = console.debug) == null || X.call(console, K);
+ } catch (oe) {
+ (R = console.debug) == null || R.call(console, oe);
}
if (n != null && n.loupeEnabled)
- pt(() => d == null ? void 0 : d(j, D, Q, y, k));
+ bt(() => d == null ? void 0 : d(N, H, $, y, X));
else
try {
s.style.display = "none";
- } catch (K) {
- (V = console.debug) == null || V.call(console, K);
+ } catch (oe) {
+ (Y = console.debug) == null || Y.call(console, oe);
}
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
- }, C = (y, k) => {
- var G;
- A = y, g = k;
+ }, h = (y, X) => {
+ var x;
+ C = y, g = X;
try {
- if (Z != null) return;
- Z = requestAnimationFrame(() => {
- Z = null, v(A, g);
+ if (A != null) return;
+ A = requestAnimationFrame(() => {
+ A = null, L(C, g);
});
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
};
try {
if (t && !t._mjrProbeBound) {
- const y = (G) => {
- var z;
+ const y = (x) => {
+ var T;
try {
- C(G.clientX, G.clientY);
- } catch (x) {
- (z = console.debug) == null || z.call(console, x);
+ h(x.clientX, x.clientY);
+ } catch (v) {
+ (T = console.debug) == null || T.call(console, v);
}
- }, k = () => {
- h();
+ }, X = () => {
+ Z();
};
I.push(
- _e(t, "mousemove", y, {
+ Qe(t, "mousemove", y, {
passive: !0,
capture: !0
})
), I.push(
- _e(t, "mouseleave", k, {
+ Qe(t, "mouseleave", X, {
passive: !0,
capture: !0
})
@@ -14778,19 +14793,19 @@ function dA({
(W = console.debug) == null || W.call(console, y);
}
return {
- hide: h,
+ hide: Z,
dispose: () => {
var y;
try {
- Z != null && cancelAnimationFrame(Z);
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ A != null && cancelAnimationFrame(A);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
- Z = null, h();
+ A = null, Z();
}
};
}
-function uA({
+function IA({
state: e,
loupeCanvas: t,
loupeWrap: n,
@@ -14804,37 +14819,37 @@ function uA({
} catch (d) {
(s = console.debug) == null || s.call(console, d);
}
- return { redraw: (d, u, I, p, M) => {
- var Z, A, g, h;
+ return { redraw: (d, u, I, p, S) => {
+ var A, C, g, Z;
try {
if (!(e != null && e.loupeEnabled) || !r || !d) return;
const { w: f, h: b } = (i == null ? void 0 : i(d)) || { w: 0, h: 0 };
if (!(f > 0 && b > 0)) return;
- const v = Math.max(48, Math.min(240, Number(e.loupeSize) || 120)), C = Math.max(2, Math.min(20, Number(e.loupeMagnification) || 8));
+ const L = Math.max(48, Math.min(240, Number(e.loupeSize) || 120)), h = Math.max(2, Math.min(20, Number(e.loupeMagnification) || 8));
try {
- t.width !== v && (t.width = v), t.height !== v && (t.height = v);
- } catch (R) {
- (Z = console.debug) == null || Z.call(console, R);
+ t.width !== L && (t.width = L), t.height !== L && (t.height = L);
+ } catch (F) {
+ (A = console.debug) == null || A.call(console, F);
}
- const S = Math.max(3, Math.floor(v / C)), W = (d == null ? void 0 : d.tagName) === "CANVAS" && Number(d._mjrPixelScale) || 1, y = (d == null ? void 0 : d.tagName) === "CANVAS" ? Number(d.width) || 0 : f, k = (d == null ? void 0 : d.tagName) === "CANVAS" ? Number(d.height) || 0 : b;
- if (!(y > 0 && k > 0)) return;
- const G = Math.max(1, Math.floor(S * W)), z = Math.floor(G / 2), x = Math.floor((Number(u) || 0) * W), w = Math.floor((Number(I) || 0) * W), X = Math.max(0, Math.min(y - G, x - z)), V = Math.max(0, Math.min(k - G, w - z));
- r.imageSmoothingEnabled = !1, r.clearRect(0, 0, v, v), r.drawImage(d, X, V, G, G, 0, 0, v, v), r.strokeStyle = "rgba(255,255,255,0.75)", r.lineWidth = 1, r.beginPath(), r.moveTo(v / 2 + 0.5, 0), r.lineTo(v / 2 + 0.5, v), r.moveTo(0, v / 2 + 0.5), r.lineTo(v, v / 2 + 0.5), r.stroke();
+ const G = Math.max(3, Math.floor(L / h)), W = (d == null ? void 0 : d.tagName) === "CANVAS" && Number(d._mjrPixelScale) || 1, y = (d == null ? void 0 : d.tagName) === "CANVAS" ? Number(d.width) || 0 : f, X = (d == null ? void 0 : d.tagName) === "CANVAS" ? Number(d.height) || 0 : b;
+ if (!(y > 0 && X > 0)) return;
+ const x = Math.max(1, Math.floor(G * W)), T = Math.floor(x / 2), v = Math.floor((Number(u) || 0) * W), w = Math.floor((Number(I) || 0) * W), R = Math.max(0, Math.min(y - x, v - T)), Y = Math.max(0, Math.min(X - x, w - T));
+ r.imageSmoothingEnabled = !1, r.clearRect(0, 0, L, L), r.drawImage(d, R, Y, x, x, 0, 0, L, L), r.strokeStyle = "rgba(255,255,255,0.75)", r.lineWidth = 1, r.beginPath(), r.moveTo(L / 2 + 0.5, 0), r.lineTo(L / 2 + 0.5, L), r.moveTo(0, L / 2 + 0.5), r.lineTo(L, L / 2 + 0.5), r.stroke();
try {
- n.style.display = "", n.style.width = `${v}px`, n.style.height = `${v}px`;
- } catch (R) {
- (A = console.debug) == null || A.call(console, R);
+ n.style.display = "", n.style.width = `${L}px`, n.style.height = `${L}px`;
+ } catch (F) {
+ (C = console.debug) == null || C.call(console, F);
}
try {
- o == null || o(n, p, M, {
+ o == null || o(n, p, S, {
offsetX: 18,
- offsetY: -v - 18
+ offsetY: -L - 18
});
- } catch (R) {
- (g = console.debug) == null || g.call(console, R);
+ } catch (F) {
+ (g = console.debug) == null || g.call(console, F);
}
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
}, hide: () => {
var d;
@@ -14845,7 +14860,7 @@ function uA({
}
} };
}
-function mA({
+function bA({
state: e,
VIEWER_MODES: t,
APP_CONFIG: n,
@@ -14855,158 +14870,158 @@ function mA({
const r = /* @__PURE__ */ new Map(), l = (n == null ? void 0 : n.VIEWER_META_TTL_MS) ?? 3e4, a = (n == null ? void 0 : n.VIEWER_META_MAX_ENTRIES) ?? 500;
let c = 0, s = null;
const d = () => {
- var A, g, h;
+ var C, g, Z;
if (r.size <= a) return;
- const Z = Date.now();
+ const A = Date.now();
try {
for (const [f, b] of r.entries())
- b && Z - (b.at || 0) > l && r.delete(f);
+ b && A - (b.at || 0) > l && r.delete(f);
} catch (f) {
- (A = console.debug) == null || A.call(console, f);
+ (C = console.debug) == null || C.call(console, f);
}
if (!(r.size <= a))
try {
const f = Array.from(r.entries()).sort(
- (v, C) => {
- var S, W;
- return (((S = v == null ? void 0 : v[1]) == null ? void 0 : S.at) || 0) - (((W = C == null ? void 0 : C[1]) == null ? void 0 : W.at) || 0);
+ (L, h) => {
+ var G, W;
+ return (((G = L == null ? void 0 : L[1]) == null ? void 0 : G.at) || 0) - (((W = h == null ? void 0 : h[1]) == null ? void 0 : W.at) || 0);
}
), b = r.size - a;
- for (let v = 0; v < b; v++) {
- const C = (g = f[v]) == null ? void 0 : g[0];
- C != null && r.delete(C);
+ for (let L = 0; L < b; L++) {
+ const h = (g = f[L]) == null ? void 0 : g[0];
+ h != null && r.delete(h);
}
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
- }, u = (Z, A) => {
- var g, h;
- if (!(!Z || !A || typeof A != "object")) {
+ }, u = (A, C) => {
+ var g, Z;
+ if (!(!A || !C || typeof C != "object")) {
try {
- A.rating !== void 0 && (Z.rating = A.rating);
+ C.rating !== void 0 && (A.rating = C.rating);
} catch (f) {
(g = console.debug) == null || g.call(console, f);
}
try {
- A.tags !== void 0 && (Z.tags = A.tags);
+ C.tags !== void 0 && (A.tags = C.tags);
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
}
- }, I = async (Z, { signal: A } = {}) => {
+ }, I = async (A, { signal: C } = {}) => {
var b;
- const g = Array.isArray(Z) ? Z : [], h = Date.now(), f = [];
- for (const v of g) {
- const C = v == null ? void 0 : v.id;
- if (C == null) continue;
- const S = String(C), W = r.get(S);
- if (W && h - (W.at || 0) < l) {
- u(v, W.data);
+ const g = Array.isArray(A) ? A : [], Z = Date.now(), f = [];
+ for (const L of g) {
+ const h = L == null ? void 0 : L.id;
+ if (h == null) continue;
+ const G = String(h), W = r.get(G);
+ if (W && Z - (W.at || 0) < l) {
+ u(L, W.data);
continue;
}
- f.push(C);
+ f.push(h);
}
if (f.length)
try {
- const v = await (o == null ? void 0 : o(f, A ? { signal: A } : {})), C = Array.isArray(v == null ? void 0 : v.data) ? v.data : [];
- for (const S of C) {
- const W = S == null ? void 0 : S.id;
+ const L = await (o == null ? void 0 : o(f, C ? { signal: C } : {})), h = Array.isArray(L == null ? void 0 : L.data) ? L.data : [];
+ for (const G of h) {
+ const W = G == null ? void 0 : G.id;
if (W == null) continue;
const y = String(W);
- r.set(y, { at: h, data: S });
+ r.set(y, { at: Z, data: G });
}
d();
- for (const S of g) {
- const W = S == null ? void 0 : S.id;
+ for (const G of g) {
+ const W = G == null ? void 0 : G.id;
if (W == null) continue;
const y = r.get(String(W));
- y && y.data && u(S, y.data);
+ y && y.data && u(G, y.data);
}
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
};
return {
hydrateVisibleMetadata: async () => {
- var b, v, C, S;
- const Z = (b = e == null ? void 0 : e.assets) == null ? void 0 : b[e == null ? void 0 : e.currentIndex], A = e == null ? void 0 : e.compareAsset, g = e == null ? void 0 : e.mode, h = ++c;
+ var b, L, h, G;
+ const A = (b = e == null ? void 0 : e.assets) == null ? void 0 : b[e == null ? void 0 : e.currentIndex], C = e == null ? void 0 : e.compareAsset, g = e == null ? void 0 : e.mode, Z = ++c;
try {
- (v = s == null ? void 0 : s.abort) == null || v.call(s);
+ (L = s == null ? void 0 : s.abort) == null || L.call(s);
} catch (W) {
- (C = console.debug) == null || C.call(console, W);
+ (h = console.debug) == null || h.call(console, W);
}
s = new AbortController();
const f = s.signal;
try {
if (g === (t == null ? void 0 : t.SINGLE))
- return Z && await I([Z], { signal: f }), void 0;
+ return A && await I([A], { signal: f }), void 0;
const y = (Array.isArray(e == null ? void 0 : e.assets) ? e.assets.slice(0, 4) : []).slice();
- A && y.push(A), await I(y, { signal: f });
+ C && y.push(C), await I(y, { signal: f });
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
},
- hydrateAssetMetadata: async (Z, { signal: A } = {}) => {
- var v;
- const g = Z == null ? void 0 : Z.id;
+ hydrateAssetMetadata: async (A, { signal: C } = {}) => {
+ var L;
+ const g = A == null ? void 0 : A.id;
if (g == null) return;
- const h = String(g), f = Date.now(), b = r.get(h);
+ const Z = String(g), f = Date.now(), b = r.get(Z);
if (b && f - (b.at || 0) < l) {
- u(Z, b.data);
+ u(A, b.data);
return;
}
try {
- const C = await (i == null ? void 0 : i(g, A ? { signal: A } : {}));
- C != null && C.ok && C.data && (r.set(h, { at: f, data: C.data }), d(), u(Z, C.data));
- } catch (C) {
- (v = console.debug) == null || v.call(console, C);
+ const h = await (i == null ? void 0 : i(g, C ? { signal: C } : {}));
+ h != null && h.ok && h.data && (r.set(Z, { at: f, data: h.data }), d(), u(A, h.data));
+ } catch (h) {
+ (L = console.debug) == null || L.call(console, h);
}
},
hydrateAssetsMetadataBatch: I,
- getCached: (Z) => {
+ getCached: (A) => {
try {
- return r.get(String(Z));
+ return r.get(String(A));
} catch {
return null;
}
},
- setCached: (Z, A) => {
+ setCached: (A, C) => {
var g;
try {
- r.set(String(Z), { at: Date.now(), data: A }), d();
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ r.set(String(A), { at: Date.now(), data: C }), d();
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
},
- deleteCached: (Z) => {
- var A;
+ deleteCached: (A) => {
+ var C;
try {
- r.delete(String(Z));
+ r.delete(String(A));
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
},
abort: () => {
- pt(() => {
- var Z;
- return (Z = s == null ? void 0 : s.abort) == null ? void 0 : Z.call(s);
+ bt(() => {
+ var A;
+ return (A = s == null ? void 0 : s.abort) == null ? void 0 : A.call(s);
}), s = null;
},
dispose: () => {
- pt(() => {
- var Z;
- return (Z = s == null ? void 0 : s.abort) == null ? void 0 : Z.call(s);
- }), s = null, pt(() => r.clear());
+ bt(() => {
+ var A;
+ return (A = s == null ? void 0 : s.abort) == null ? void 0 : A.call(s);
+ }), s = null, bt(() => r.clear());
},
- cleanupCache: () => pt(d) || void 0,
- _noop: Qi
+ cleanupCache: () => bt(d) || void 0,
+ _noop: eo
};
}
-const ai = Object.freeze({
+const si = Object.freeze({
MIN: 0.1,
MAX: 16
});
-function _I(e, t) {
+function $I(e, t) {
var n, i;
if (!(!e || typeof t != "function"))
try {
@@ -15017,7 +15032,7 @@ function _I(e, t) {
(i = console.debug) == null || i.call(console, o);
}
}
-function gA(e) {
+function pA(e) {
var n, i;
let t = !1;
try {
@@ -15030,14 +15045,14 @@ function gA(e) {
}
return t;
}
-function IA(e) {
+function yA(e) {
const t = /* @__PURE__ */ new Map();
- return _I(e, (n) => {
+ return $I(e, (n) => {
t.set(n.uuid, n.material);
}), t;
}
-function bA(e, t, n, i, o) {
- _I(t, (r) => {
+function fA(e, t, n, i, o) {
+ $I(t, (r) => {
var l, a, c;
try {
if (n === "original") {
@@ -15066,7 +15081,7 @@ function bA(e, t, n, i, o) {
}
});
}
-function Su(e) {
+function xu(e) {
var t, n;
if (e) {
for (const i of e)
@@ -15078,7 +15093,7 @@ function Su(e) {
e.clear();
}
}
-function pA(e, t) {
+function hA(e, t) {
var n;
try {
if (t === "gltf" || t === "fbx")
@@ -15088,23 +15103,23 @@ function pA(e, t) {
}
return [];
}
-function Gu(e, t) {
+function ju(e, t) {
const n = new e.Box3().setFromObject(t);
if (n.isEmpty()) return null;
const i = n.getSize(new e.Vector3()), o = n.getCenter(new e.Vector3()), r = Math.max(i.x, i.y, i.z, 0.01);
return { box: n, size: i, center: o, maxDim: r, radius: Math.max(r * 0.72, 0.5) };
}
-function yA(e, t, n, i) {
+function CA(e, t, n, i) {
if (!i || !t || !n) return;
const o = t.fov * (Math.PI / 180), r = i.maxDim / (2 * Math.tan(o / 2)) * 1.55, l = new e.Vector3(1, 0.8, 1).normalize();
t.position.copy(i.center).addScaledVector(l, r), t.near = Math.max(0.01, r / 250), t.far = Math.max(1e3, r * 60), t.updateProjectionMatrix(), n.target.copy(i.center), n.minDistance = Math.max(0.01, r / 25), n.maxDistance = Math.max(10, r * 12), n.minZoom = 0.25, n.maxZoom = 12, n.update();
}
-function fA(e, t, n, i) {
+function ZA(e, t, n, i) {
if (!n || !e || !t) return null;
const o = Math.max(1e-4, Number(i) || 1), r = Math.max(n.maxDim * 1.9, 2), l = r * o;
return e.left = -l / 2, e.right = l / 2, e.top = r / 2, e.bottom = -r / 2, e.near = -Math.max(1e3, n.maxDim * 40), e.far = Math.max(1e3, n.maxDim * 40), e.zoom = 1, e.position.copy(n.center).add({ x: n.radius * 2.1, y: n.radius * 1.6, z: n.radius * 2.1 }), e.updateProjectionMatrix(), t.target.copy(n.center), t.minZoom = 0.25, t.maxZoom = 12, t.minDistance = 0, t.maxDistance = Math.max(10, n.maxDim * 12), t.update(), r;
}
-function hA(e, t, n) {
+function AA(e, t, n) {
var i, o, r;
if (!n) return null;
if (t === "gltf") return n.scene || null;
@@ -15138,9 +15153,9 @@ function hA(e, t, n) {
}
return null;
}
-const mo = "/mjr/am/vendor/three";
-let zl = null;
-function CA(e, t, n) {
+const Io = "/mjr/am/vendor/three";
+let Jl = null;
+function WA(e, t, n) {
switch (t) {
case "gltf":
return new e.GLTFLoader(n);
@@ -15156,7 +15171,7 @@ function CA(e, t, n) {
return null;
}
}
-function ZA(e, t, n) {
+function wA(e, t, n) {
return new Promise((i, o) => {
if (!e || !n) {
o(new Error("Missing loader or URL"));
@@ -15169,39 +15184,39 @@ function ZA(e, t, n) {
e.load(n, i, void 0, o);
});
}
-function AA() {
- return zl || (zl = Promise.all([
+function MA() {
+ return Jl || (Jl = Promise.all([
import(
/* @vite-ignore */
- `${mo}/three.module.js`
+ `${Io}/three.module.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/controls/OrbitControls.js`
+ `${Io}/addons/controls/OrbitControls.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/loaders/GLTFLoader.js`
+ `${Io}/addons/loaders/GLTFLoader.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/loaders/FBXLoader.js`
+ `${Io}/addons/loaders/FBXLoader.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/loaders/OBJLoader.js`
+ `${Io}/addons/loaders/OBJLoader.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/loaders/MTLLoader.js`
+ `${Io}/addons/loaders/MTLLoader.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/loaders/STLLoader.js`
+ `${Io}/addons/loaders/STLLoader.js`
),
import(
/* @vite-ignore */
- `${mo}/addons/loaders/PLYLoader.js`
+ `${Io}/addons/loaders/PLYLoader.js`
)
]).then(([e, t, n, i, o, r, l, a]) => ({
THREE: e,
@@ -15212,9 +15227,9 @@ function AA() {
MTLLoader: r.MTLLoader,
STLLoader: l.STLLoader,
PLYLoader: a.PLYLoader
- })), zl);
+ })), Jl);
}
-function $I(e, t, n) {
+function eb(e, t, n) {
try {
const i = Number(e) || 0, o = (Number(t) || 0) * (Number(n) || 0);
return !(o > 0) || !(i > 0) || o <= i ? 1 : Math.max(0.05, Math.min(1, Math.sqrt(i / o)));
@@ -15222,7 +15237,7 @@ function $I(e, t, n) {
return 1;
}
}
-function po(e, t, n) {
+function fo(e, t, n) {
var o, r, l, a, c;
if (!e) return;
try {
@@ -15265,7 +15280,7 @@ function po(e, t, n) {
}
}
}
-function xu({
+function vu({
canvas: e,
url: t,
getGradeParams: n,
@@ -15274,7 +15289,7 @@ function xu({
maxProcPixels: r,
onReady: l
} = {}) {
- var b, v, C, S;
+ var b, L, h, G;
const a = new Image();
try {
a.decoding = "async";
@@ -15284,7 +15299,7 @@ function xu({
try {
a.crossOrigin = "anonymous";
} catch (W) {
- (v = console.debug) == null || v.call(console, W);
+ (L = console.debug) == null || L.call(console, W);
}
const c = (() => {
try {
@@ -15339,7 +15354,7 @@ function xu({
}
}
}
- }, p = (W, y) => $I(r, W, y), M = () => {
+ }, p = (W, y) => eb(r, W, y), S = () => {
if (u.srcData) return u.srcData;
if (!d || !u.ready) return null;
try {
@@ -15348,123 +15363,123 @@ function xu({
} catch {
return null;
}
- }, Z = (W, y) => {
- var k;
+ }, A = (W, y) => {
+ var X;
try {
- const G = Number(W) || 0, z = Number(y) || 0;
+ const x = Number(W) || 0, T = Number(y) || 0;
if (!(u.naturalW > 0 && u.naturalH > 0)) return null;
- const x = Math.max(0, Math.min(s.width - 1, Math.floor(G * u.scale))), w = Math.max(0, Math.min(s.height - 1, Math.floor(z * u.scale))), X = M();
- if (!(X != null && X.data)) return null;
- const V = (w * s.width + x) * 4, R = X.data[V] ?? 0, j = X.data[V + 1] ?? 0, L = X.data[V + 2] ?? 0, N = X.data[V + 3] ?? 255, q = [R / 255, j / 255, L / 255, N / 255], O = Number((k = u.lastParams) == null ? void 0 : k.exposureEV) || 0, B = Math.pow(2, O), J = [
- q[0] * B,
- q[1] * B,
- q[2] * B,
- q[3]
+ const v = Math.max(0, Math.min(s.width - 1, Math.floor(x * u.scale))), w = Math.max(0, Math.min(s.height - 1, Math.floor(T * u.scale))), R = S();
+ if (!(R != null && R.data)) return null;
+ const Y = (w * s.width + v) * 4, F = R.data[Y] ?? 0, N = R.data[Y + 1] ?? 0, V = R.data[Y + 2] ?? 0, k = R.data[Y + 3] ?? 255, K = [F / 255, N / 255, V / 255, k / 255], z = Number((X = u.lastParams) == null ? void 0 : X.exposureEV) || 0, B = Math.pow(2, z), J = [
+ K[0] * B,
+ K[1] * B,
+ K[2] * B,
+ K[3]
];
- return { r: R, g: j, b: L, a: N, raw: q, lin: J, scale: u.scale };
+ return { r: F, g: N, b: V, a: k, raw: K, lin: J, scale: u.scale };
} catch {
return null;
}
- }, A = (W, y) => {
- var K, F, Y;
+ }, C = (W, y) => {
+ var oe, M, j;
if (!c || u._destroyed) return;
if (!(e != null && e.isConnected)) {
try {
u._pendingParams = y || u.lastParams || (n == null ? void 0 : n()) || null;
- } catch (U) {
- (K = console.debug) == null || K.call(console, U);
+ } catch (O) {
+ (oe = console.debug) == null || oe.call(console, O);
}
I();
return;
}
if (W !== u.jobId) return;
- const k = M();
- if (!(k != null && k.data)) return;
- const G = s.width, z = s.height;
- if (!(G > 0 && z > 0)) return;
+ const X = S();
+ if (!(X != null && X.data)) return;
+ const x = s.width, T = s.height;
+ if (!(x > 0 && T > 0)) return;
try {
- const U = y || (n == null ? void 0 : n()) || {};
- if (typeof i == "function" && i(U)) {
+ const O = y || (n == null ? void 0 : n()) || {};
+ if (typeof i == "function" && i(O)) {
c.clearRect(0, 0, e.width, e.height), c.drawImage(s, 0, 0);
return;
}
- } catch (U) {
- (F = console.debug) == null || F.call(console, U);
+ } catch (O) {
+ (M = console.debug) == null || M.call(console, O);
}
- let x = u._buffer;
- if (!x || x.width !== G || x.height !== z)
+ let v = u._buffer;
+ if (!v || v.width !== x || v.height !== T)
try {
- x = c.createImageData(G, z), u._buffer = x;
+ v = c.createImageData(x, T), u._buffer = v;
} catch {
try {
- x = new ImageData(G, z), u._buffer = x;
+ v = new ImageData(x, T), u._buffer = v;
} catch {
return;
}
}
- if (!x) return;
- const w = y || (n == null ? void 0 : n()) || {}, X = Number(w.exposureEV) || 0, R = 1 / Math.max(0.1, Math.min(3, Number(w.gamma) || 1)), j = String(w.channel || "rgb"), L = String(w.analysisMode || "none"), N = In(w.zebraThreshold ?? 0.95), q = Math.pow(2, X), O = new Float32Array(256);
- for (let U = 0; U < 256; U++)
- O[U] = Math.pow(U / 255, R);
- const B = x.data, J = k.data, T = G * z * 4, D = 55e3 * 4;
- let Q = 0;
+ if (!v) return;
+ const w = y || (n == null ? void 0 : n()) || {}, R = Number(w.exposureEV) || 0, F = 1 / Math.max(0.1, Math.min(3, Number(w.gamma) || 1)), N = String(w.channel || "rgb"), V = String(w.analysisMode || "none"), k = In(w.zebraThreshold ?? 0.95), K = Math.pow(2, R), z = new Float32Array(256);
+ for (let O = 0; O < 256; O++)
+ z[O] = Math.pow(O / 255, F);
+ const B = v.data, J = X.data, P = x * T * 4, H = 55e3 * 4;
+ let $ = 0;
const E = () => {
- var P, ee;
+ var D, q;
if (u._destroyed || !(e != null && e.isConnected) || W !== u.jobId) return;
- const U = Math.min(T, Q + D);
- for (; Q < U; Q += 4) {
- const oe = (J[Q] ?? 0) / 255, ce = (J[Q + 1] ?? 0) / 255, pe = (J[Q + 2] ?? 0) / 255, H = (J[Q + 3] ?? 255) / 255;
- let $ = oe * q, _ = ce * q, le = pe * q;
- const se = 0.2126 * $ + 0.7152 * _ + 0.0722 * le;
- if (L === "zebra")
- if (In(se) >= N) {
- const Ze = (Math.floor(Q / 4) % G + Math.floor(Q / 4 / G) & 7) < 3;
- $ = Ze ? 1 : 0, _ = Ze ? 1 : 0, le = Ze ? 1 : 0;
+ const O = Math.min(P, $ + H);
+ for (; $ < O; $ += 4) {
+ const ee = (J[$] ?? 0) / 255, ce = (J[$ + 1] ?? 0) / 255, ue = (J[$ + 2] ?? 0) / 255, U = (J[$ + 3] ?? 255) / 255;
+ let Q = ee * K, _ = ce * K, le = ue * K;
+ const de = 0.2126 * Q + 0.7152 * _ + 0.0722 * le;
+ if (V === "zebra")
+ if (In(de) >= k) {
+ const ge = (Math.floor($ / 4) % x + Math.floor($ / 4 / x) & 7) < 3;
+ Q = ge ? 1 : 0, _ = ge ? 1 : 0, le = ge ? 1 : 0;
} else
- $ = O[In($) * 255 + 0.5 | 0], _ = O[In(_) * 255 + 0.5 | 0], le = O[In(le) * 255 + 0.5 | 0];
+ Q = z[In(Q) * 255 + 0.5 | 0], _ = z[In(_) * 255 + 0.5 | 0], le = z[In(le) * 255 + 0.5 | 0];
else
- $ = O[In($) * 255 + 0.5 | 0], _ = O[In(_) * 255 + 0.5 | 0], le = O[In(le) * 255 + 0.5 | 0];
- if (j === "r")
- _ = $, le = $;
- else if (j === "g")
- $ = _, le = _;
- else if (j === "b")
- $ = le, _ = le;
- else if (j === "a")
- $ = H, _ = H, le = H;
- else if (j === "l") {
- const de = In(se), Ze = O[de * 255 + 0.5 | 0];
- $ = Ze, _ = Ze, le = Ze;
+ Q = z[In(Q) * 255 + 0.5 | 0], _ = z[In(_) * 255 + 0.5 | 0], le = z[In(le) * 255 + 0.5 | 0];
+ if (N === "r")
+ _ = Q, le = Q;
+ else if (N === "g")
+ Q = _, le = _;
+ else if (N === "b")
+ Q = le, _ = le;
+ else if (N === "a")
+ Q = U, _ = U, le = U;
+ else if (N === "l") {
+ const se = In(de), ge = z[se * 255 + 0.5 | 0];
+ Q = ge, _ = ge, le = ge;
}
- B[Q] = Math.round(In($) * 255), B[Q + 1] = Math.round(In(_) * 255), B[Q + 2] = Math.round(In(le) * 255), B[Q + 3] = 255;
+ B[$] = Math.round(In(Q) * 255), B[$ + 1] = Math.round(In(_) * 255), B[$ + 2] = Math.round(In(le) * 255), B[$ + 3] = 255;
}
- if (Q < T) {
+ if ($ < P) {
try {
u._rafId = requestAnimationFrame(E);
- } catch (oe) {
- (P = console.debug) == null || P.call(console, oe);
+ } catch (ee) {
+ (D = console.debug) == null || D.call(console, ee);
}
return;
}
try {
- c.putImageData(x, 0, 0);
- } catch (oe) {
- (ee = console.debug) == null || ee.call(console, oe);
+ c.putImageData(v, 0, 0);
+ } catch (ee) {
+ (q = console.debug) == null || q.call(console, ee);
}
};
try {
u._rafId = requestAnimationFrame(E);
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
}, g = (W) => {
- var k, G;
+ var X, x;
if (u._destroyed) return;
if (u.lastParams = W || u.lastParams || (n == null ? void 0 : n()) || null, !(e != null && e.isConnected)) {
try {
u._pendingParams = u.lastParams;
- } catch (z) {
- (k = console.debug) == null || k.call(console, z);
+ } catch (T) {
+ (X = console.debug) == null || X.call(console, T);
}
I();
return;
@@ -15472,24 +15487,24 @@ function xu({
u.jobId++;
const y = u.jobId;
try {
- A(y, u.lastParams);
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ C(y, u.lastParams);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- }, h = () => {
+ }, Z = () => {
var W, y;
if (!u._destroyed)
try {
if (u.naturalW = Number(a.naturalWidth) || 0, u.naturalH = Number(a.naturalHeight) || 0, !(u.naturalW > 0 && u.naturalH > 0)) return;
u.scale = p(u.naturalW, u.naturalH);
- const k = Math.max(1, Math.round(u.naturalW * u.scale)), G = Math.max(1, Math.round(u.naturalH * u.scale));
- s.width = k, s.height = G, e.width = k, e.height = G, e._mjrNaturalW = u.naturalW, e._mjrNaturalH = u.naturalH, e._mjrPixelScale = u.scale;
+ const X = Math.max(1, Math.round(u.naturalW * u.scale)), x = Math.max(1, Math.round(u.naturalH * u.scale));
+ s.width = X, s.height = x, e.width = X, e.height = x, e._mjrNaturalW = u.naturalW, e._mjrNaturalH = u.naturalH, e._mjrPixelScale = u.scale;
try {
- d == null || d.clearRect(0, 0, k, G), d == null || d.drawImage(a, 0, 0, k, G);
- } catch (z) {
- (W = console.debug) == null || W.call(console, z);
+ d == null || d.clearRect(0, 0, X, x), d == null || d.drawImage(a, 0, 0, X, x);
+ } catch (T) {
+ (W = console.debug) == null || W.call(console, T);
}
- u.ready = !0, u.srcData = null, M(), g(u.lastParams || (n == null ? void 0 : n()));
+ u.ready = !0, u.srcData = null, S(), g(u.lastParams || (n == null ? void 0 : n()));
} finally {
try {
l == null || l({
@@ -15497,78 +15512,78 @@ function xu({
naturalH: u.naturalH,
pixelScale: u.scale
});
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
}
}, f = () => {
var W;
u.ready = !1;
try {
- po(e, "Failed to load image");
+ fo(e, "Failed to load image");
} catch (y) {
(W = console.debug) == null || W.call(console, y);
}
};
try {
- a.onload = h, a.onerror = f;
+ a.onload = Z, a.onerror = f;
} catch (W) {
- (C = console.debug) == null || C.call(console, W);
+ (h = console.debug) == null || h.call(console, W);
}
try {
a.src = t;
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
return {
setParams: g,
- sampleAtOriginal: Z,
+ sampleAtOriginal: A,
getInfo: () => ({ ...u }),
destroy: () => {
- var W, y, k, G, z, x, w;
+ var W, y, X, x, T, v, w;
u._destroyed = !0;
try {
u.jobId++;
- } catch (X) {
- (W = console.debug) == null || W.call(console, X);
+ } catch (R) {
+ (W = console.debug) == null || W.call(console, R);
}
try {
u._rafId != null && cancelAnimationFrame(u._rafId);
- } catch (X) {
- (y = console.debug) == null || y.call(console, X);
+ } catch (R) {
+ (y = console.debug) == null || y.call(console, R);
}
try {
u._connectRAF != null && cancelAnimationFrame(u._connectRAF);
- } catch (X) {
- (k = console.debug) == null || k.call(console, X);
+ } catch (R) {
+ (X = console.debug) == null || X.call(console, R);
}
u._connectRAF = null, u._connectTries = 0, u._pendingParams = null;
try {
a.onload = null, a.onerror = null;
- } catch (X) {
- (G = console.debug) == null || G.call(console, X);
+ } catch (R) {
+ (x = console.debug) == null || x.call(console, R);
}
try {
a.src = "";
- } catch (X) {
- (z = console.debug) == null || z.call(console, X);
+ } catch (R) {
+ (T = console.debug) == null || T.call(console, R);
}
try {
s.width = 0, s.height = 0;
- } catch (X) {
- (x = console.debug) == null || x.call(console, X);
+ } catch (R) {
+ (v = console.debug) == null || v.call(console, R);
}
try {
e.width = 0, e.height = 0;
- } catch (X) {
- (w = console.debug) == null || w.call(console, X);
+ } catch (R) {
+ (w = console.debug) == null || w.call(console, R);
}
u.srcData = null, u._buffer = null;
}
};
}
-const WA = [0.25, 0.5, 1, 1.5, 2], wA = 44;
-function Ti(e, { preventDefault: t = !1, immediate: n = !1 } = {}) {
+const SA = [0.25, 0.5, 1, 1.5, 2], GA = 44;
+function Ui(e, { preventDefault: t = !1, immediate: n = !1 } = {}) {
var i, o, r, l, a;
if (e) {
try {
@@ -15583,11 +15598,11 @@ function Ti(e, { preventDefault: t = !1, immediate: n = !1 } = {}) {
}
}
}
-function Jl(e) {
+function Tl(e) {
const t = Math.max(0, Number(e) || 0), n = Math.floor(t / 60), i = Math.floor(t % 60);
return n > 0 ? `${n}:${String(i).padStart(2, "0")}` : `${Math.floor(t)}s`;
}
-function Tl(e, t) {
+function Bl(e, t) {
const n = document.createElement("button");
return n.type = "button", n.textContent = String(e || ""), n.title = String(t || e || ""), n.setAttribute("aria-label", String(t || e || "3D viewport action")), n.style.cssText = [
"height:28px",
@@ -15606,12 +15621,12 @@ function Tl(e, t) {
"box-shadow:0 4px 18px rgba(0,0,0,0.24)"
].join(";"), n;
}
-function hc(e, t) {
+function Cc(e, t) {
if (!e) return;
const n = !!t;
e.dataset.active = n ? "1" : "0", e.style.background = n ? "rgba(76,175,80,0.18)" : "rgba(13,15,20,0.78)", e.style.borderColor = n ? "rgba(76,175,80,0.42)" : "rgba(255,255,255,0.16)", e.style.color = n ? "rgba(230,255,235,0.96)" : "rgba(255,255,255,0.92)";
}
-function ju(e, t, n = "", i = "#4CAF50") {
+function Lu(e, t, n = "", i = "#4CAF50") {
var s, d, u;
if (!e) return;
try {
@@ -15635,13 +15650,13 @@ function ju(e, t, n = "", i = "#4CAF50") {
} catch (I) {
(d = console.debug) == null || d.call(console, I);
try {
- po(e, t, n || "3D viewer unavailable");
+ fo(e, t, n || "3D viewer unavailable");
} catch (p) {
(u = console.debug) == null || u.call(console, p);
}
}
}
-function vu({
+function Vu({
defaultBgColor: e,
defaultFov: t,
defaultLightIntensity: n,
@@ -15680,13 +15695,13 @@ function vu({
"dragstart",
"dragover",
"drop"
- ].forEach((A) => {
+ ].forEach((C) => {
o.addEventListener(
- A,
- (g) => Ti(g, { preventDefault: !1 })
+ C,
+ (g) => Ui(g, { preventDefault: !1 })
);
});
- const r = (A) => {
+ const r = (C) => {
const g = document.createElement("div");
g.style.cssText = [
"font:700 10px system-ui,sans-serif",
@@ -15694,17 +15709,17 @@ function vu({
"color:rgba(255,255,255,0.40)",
"text-transform:uppercase",
"margin:10px 0 6px 0"
- ].join(";"), g.textContent = A, o.appendChild(g);
- const h = document.createElement("div");
- h.style.cssText = "height:1px;background:rgba(255,255,255,0.07);margin-bottom:8px;", o.appendChild(h);
- }, l = (A, g) => {
- const h = document.createElement("div");
- h.style.cssText = "display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:6px;";
+ ].join(";"), g.textContent = C, o.appendChild(g);
+ const Z = document.createElement("div");
+ Z.style.cssText = "height:1px;background:rgba(255,255,255,0.07);margin-bottom:8px;", o.appendChild(Z);
+ }, l = (C, g) => {
+ const Z = document.createElement("div");
+ Z.style.cssText = "display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:6px;";
const f = document.createElement("span");
- return f.style.cssText = "font:500 11px system-ui,sans-serif;color:rgba(255,255,255,0.65);white-space:nowrap;flex-shrink:0;", f.textContent = A, h.appendChild(f), h.appendChild(g), o.appendChild(h), h;
- }, a = (A, g) => {
- const h = document.createElement("select");
- h.style.cssText = [
+ return f.style.cssText = "font:500 11px system-ui,sans-serif;color:rgba(255,255,255,0.65);white-space:nowrap;flex-shrink:0;", f.textContent = C, Z.appendChild(f), Z.appendChild(g), o.appendChild(Z), Z;
+ }, a = (C, g) => {
+ const Z = document.createElement("select");
+ Z.style.cssText = [
"background:rgba(25,30,42,0.95)",
"color:rgba(255,255,255,0.88)",
"border:1px solid rgba(255,255,255,0.14)",
@@ -15715,20 +15730,20 @@ function vu({
"flex:1",
"min-width:0"
].join(";");
- for (const [f, b] of A) {
- const v = document.createElement("option");
- v.value = f, v.textContent = b, f === g && (v.selected = !0), h.appendChild(v);
+ for (const [f, b] of C) {
+ const L = document.createElement("option");
+ L.value = f, L.textContent = b, f === g && (L.selected = !0), Z.appendChild(L);
}
- return h;
- }, c = (A, g, h, f) => {
+ return Z;
+ }, c = (C, g, Z, f) => {
const b = document.createElement("div");
b.style.cssText = "display:flex;align-items:center;gap:5px;flex:1;";
- const v = document.createElement("input");
- v.type = "range", v.min = String(A), v.max = String(g), v.step = String(h), v.value = String(f), v.style.cssText = "flex:1;cursor:pointer;accent-color:#4CAF50;height:3px;";
- const C = document.createElement("span");
- return C.style.cssText = "font:11px system-ui,sans-serif;color:rgba(255,255,255,0.45);min-width:26px;text-align:right;", C.textContent = String(f), v.addEventListener("input", () => {
- C.textContent = v.value;
- }), b.appendChild(v), b.appendChild(C), { wrap: b, slider: v, valLbl: C };
+ const L = document.createElement("input");
+ L.type = "range", L.min = String(C), L.max = String(g), L.step = String(Z), L.value = String(f), L.style.cssText = "flex:1;cursor:pointer;accent-color:#4CAF50;height:3px;";
+ const h = document.createElement("span");
+ return h.style.cssText = "font:11px system-ui,sans-serif;color:rgba(255,255,255,0.45);min-width:26px;text-align:right;", h.textContent = String(f), L.addEventListener("input", () => {
+ h.textContent = L.value;
+ }), b.appendChild(L), b.appendChild(h), { wrap: b, slider: L, valLbl: h };
};
r("Scene");
const s = document.createElement("input");
@@ -15759,30 +15774,30 @@ function vu({
l("Up", u);
let I = null, p = null;
i && (p = document.createElement("input"), p.type = "checkbox", p.checked = !1, p.style.cssText = "cursor:pointer;accent-color:#4CAF50;flex-shrink:0;", I = l("Skeleton", p)), r("Camera");
- const M = c(15, 120, 1, t ?? 75);
- l("FOV", M.wrap), r("Lights");
- const Z = c(0, 5, 0.1, n ?? 1);
- return l("Intensity", Z.wrap), {
+ const S = c(15, 120, 1, t ?? 75);
+ l("FOV", S.wrap), r("Lights");
+ const A = c(0, 5, 0.1, n ?? 1);
+ return l("Intensity", A.wrap), {
panel: o,
bgInput: s,
materialSel: d,
upSel: u,
skeletonToggle: p,
skeletonRow: I,
- fovSlider: M.slider,
- fovValLbl: M.valLbl,
- lightSlider: Z.slider,
- lightValLbl: Z.valLbl
+ fovSlider: S.slider,
+ fovValLbl: S.valLbl,
+ lightSlider: A.slider,
+ lightValLbl: A.valLbl
};
}
-function MA() {
+function xA() {
const e = document.createElement("div");
e.className = "mjr-model3d-anim-bar", e.style.cssText = [
"position:absolute",
"bottom:0",
"left:0",
"right:0",
- `height:${wA}px`,
+ `height:${GA}px`,
"display:none",
"align-items:center",
"gap:7px",
@@ -15803,7 +15818,7 @@ function MA() {
].forEach((l) => {
e.addEventListener(
l,
- (a) => Ti(a, { preventDefault: !1 })
+ (a) => Ui(a, { preventDefault: !1 })
);
});
const t = document.createElement("button");
@@ -15835,7 +15850,7 @@ function MA() {
"width:52px",
"flex-shrink:0"
].join(";");
- for (const l of WA) {
+ for (const l of SA) {
const a = document.createElement("option");
a.value = String(l), a.textContent = `${l}Γ`, l === 1 && (a.selected = !0), n.appendChild(a);
}
@@ -15862,7 +15877,7 @@ function MA() {
"flex-shrink:0"
].join(";"), r.textContent = "0s / 0s", e.appendChild(t), e.appendChild(n), e.appendChild(i), e.appendChild(o), e.appendChild(r), { bar: e, playBtn: t, speedSel: n, animSel: i, progressSlider: o, timeLbl: r };
}
-const eb = Object.freeze({
+const tb = Object.freeze({
".gltf": "gltf",
".glb": "gltf",
".obj": "obj",
@@ -15872,10 +15887,10 @@ const eb = Object.freeze({
".splat": "splat",
".ksplat": "splat",
".spz": "splat"
-}), SA = new Set(Object.keys(eb)), GA = /* @__PURE__ */ new Set(["gltf", "obj", "fbx", "stl", "ply"]), Cc = "#282828", tb = "Rotate: left drag Pan: right drag Zoom: wheel", Wi = Object.freeze({
+}), jA = new Set(Object.keys(tb)), vA = /* @__PURE__ */ new Set(["gltf", "obj", "fbx", "stl", "ply"]), Zc = "#282828", nb = "Rotate: left drag Pan: right drag Zoom: wheel", Si = Object.freeze({
PERSPECTIVE: "perspective",
ORTHOGRAPHIC: "orthographic"
-}), xA = Object.freeze({
+}), LA = Object.freeze({
original: [0, 0, 0],
"+y": [0, 0, 0],
"-y": [Math.PI, 0, 0],
@@ -15883,7 +15898,7 @@ const eb = Object.freeze({
"-z": [Math.PI / 2, 0, 0],
"+x": [0, 0, Math.PI / 2],
"-x": [0, 0, -Math.PI / 2]
-}), jA = 44, Fr = 75, Zc = 1, hi = Object.freeze({
+}), VA = 44, zr = 75, Ac = 1, Zi = Object.freeze({
ambient: 0.5,
main: 0.8,
fill: 0.3,
@@ -15891,7 +15906,7 @@ const eb = Object.freeze({
rim: 0.3,
bottom: 0.2
});
-function rd(e) {
+function ad(e) {
var t, n;
try {
const i = String((e == null ? void 0 : e.ext) || "").trim().toLowerCase();
@@ -15907,25 +15922,25 @@ function rd(e) {
}
return "";
}
-function vA(e) {
+function YA(e) {
const t = String(e || "").trim();
return t ? t.startsWith("/") || /^[a-z][\w+\-.]*:/i.test(t) : !1;
}
-function LA(e) {
+function kA(e) {
var n;
const t = String((e == null ? void 0 : e.loader) || ((n = e == null ? void 0 : e.viewer_info) == null ? void 0 : n.loader) || "").trim().toLowerCase();
- return t || eb[rd(e)] || "";
+ return t || tb[ad(e)] || "";
}
-function Lu(e) {
- return String((e == null ? void 0 : e.kind) || "").toLowerCase() === "model3d" ? !0 : SA.has(rd(e));
+function Yu(e) {
+ return String((e == null ? void 0 : e.kind) || "").toLowerCase() === "model3d" ? !0 : jA.has(ad(e));
}
-function YA(e) {
- return LA(e) || "gltf";
+function XA(e) {
+ return kA(e) || "gltf";
}
-function yV() {
- return tb;
+function ZY() {
+ return nb;
}
-function fV(e) {
+function AY(e) {
var t, n, i, o;
try {
if ((n = (t = e == null ? void 0 : e.classList) == null ? void 0 : t.contains) != null && n.call(t, "mjr-model3d-render-canvas")) return e;
@@ -15938,7 +15953,7 @@ function fV(e) {
return null;
}
}
-function Ac(e) {
+function Wc(e) {
var t;
try {
return !!((t = e == null ? void 0 : e.closest) != null && t.call(
@@ -15949,13 +15964,13 @@ function Ac(e) {
return !1;
}
}
-function VA(e, t) {
+function NA(e, t) {
const n = t || { ROTATE: 0, DOLLY: 1, PAN: 2 };
return { LEFT: n.ROTATE, MIDDLE: n.DOLLY, RIGHT: n.PAN };
}
-function Yu(e, t, n = {}) {
- var He, ve, Ot;
- const i = (n == null ? void 0 : n.pauseDuringExecution) == null ? !!(ye != null && ye.VIEWER_PAUSE_DURING_EXECUTION) : !!n.pauseDuringExecution, o = document.createElement("div");
+function ku(e, t, n = {}) {
+ var Pe, Le, Ot;
+ const i = (n == null ? void 0 : n.pauseDuringExecution) == null ? !!(fe != null && fe.VIEWER_PAUSE_DURING_EXECUTION) : !!n.pauseDuringExecution, o = document.createElement("div");
o.className = n.hostClassName || "mjr-model3d-host mjr-viewer-model3d-host", o.style.cssText = n.hostStyle || [
"width:100%",
"height:100%",
@@ -15980,8 +15995,8 @@ function Yu(e, t, n = {}) {
].join(";"), r.tabIndex = 0, r._mjrDisableViewerTransform = n.disableViewerTransform !== !1;
try {
(e == null ? void 0 : e.id) != null && (r.dataset.mjrAssetId = String(e.id));
- } catch (Ve) {
- (He = console.debug) == null || He.call(console, Ve);
+ } catch (Xe) {
+ (Pe = console.debug) == null || Pe.call(console, Xe);
}
o.appendChild(r);
const l = document.createElement("canvas");
@@ -15994,10 +16009,10 @@ function Yu(e, t, n = {}) {
"pointer-events:none",
"z-index:1"
].join(";"), o.appendChild(l);
- const a = rd(e).replace(".", "").toUpperCase();
+ const a = ad(e).replace(".", "").toUpperCase();
if (a) {
- const Ve = document.createElement("div");
- Ve.className = "mjr-model3d-badge", Ve.textContent = a, Ve.style.cssText = [
+ const Xe = document.createElement("div");
+ Xe.className = "mjr-model3d-badge", Xe.textContent = a, Xe.style.cssText = [
"position:absolute",
"top:10px",
"left:10px",
@@ -16009,7 +16024,7 @@ function Yu(e, t, n = {}) {
"background:rgba(76,175,80,0.9)",
"pointer-events:none",
"z-index:2"
- ].join(";"), o.appendChild(Ve);
+ ].join(";"), o.appendChild(Xe);
}
const c = document.createElement("div");
c.className = "mjr-model3d-toolbar", c.style.cssText = [
@@ -16025,10 +16040,10 @@ function Yu(e, t, n = {}) {
].join(";");
const s = document.createElement("div");
s.style.cssText = "display:flex;align-items:center;gap:6px;flex-wrap:wrap;pointer-events:auto;";
- const d = Tl("Reset", "Reset 3D view"), u = Tl("Grid", "Toggle grid"), I = Tl("Persp", "Switch perspective / orthographic"), p = Tl("β", "Settings");
+ const d = Bl("Reset", "Reset 3D view"), u = Bl("Grid", "Toggle grid"), I = Bl("Persp", "Switch perspective / orthographic"), p = Bl("β", "Settings");
s.append(d, u, I, p), c.appendChild(s), o.appendChild(c);
- const M = document.createElement("div");
- M.className = "mjr-model3d-hint", M.textContent = n.hintText || tb, M.style.cssText = [
+ const S = document.createElement("div");
+ S.className = "mjr-model3d-hint", S.textContent = n.hintText || nb, S.style.cssText = [
"position:absolute",
"right:10px",
"bottom:10px",
@@ -16041,263 +16056,263 @@ function Yu(e, t, n = {}) {
"pointer-events:none",
"z-index:2",
"transition:bottom 0.2s"
- ].join(";"), o.appendChild(M);
- const Z = vu({
- defaultBgColor: Cc,
- defaultFov: Fr,
- defaultLightIntensity: Zc,
+ ].join(";"), o.appendChild(S);
+ const A = Vu({
+ defaultBgColor: Zc,
+ defaultFov: zr,
+ defaultLightIntensity: Ac,
hasSkeleton: !1
// updated after load
});
- o.appendChild(Z.panel);
- const A = MA();
- o.appendChild(A.bar);
- let g = !1, h = null, f = null, b = null, v = null, C = null, S = null, W = null, y = null, k = null, G = null, z = !1, x = null, w = null, X = null, V = null, R = null, j = null, L = 0, N = Wi.PERSPECTIVE, q = /* @__PURE__ */ new Map();
- const O = /* @__PURE__ */ new Set();
- let B = null, J = !1, T = null, D = [], Q = Zc, E = null, K = null, F = [], Y = [], U = 0, P = 1, ee = !1, oe = !1, ce = !1;
- const pe = String((e == null ? void 0 : e.filename) || "3D model"), H = () => {
- var Ve, Ke;
+ o.appendChild(A.panel);
+ const C = xA();
+ o.appendChild(C.bar);
+ let g = !1, Z = null, f = null, b = null, L = null, h = null, G = null, W = null, y = null, X = null, x = null, T = !1, v = null, w = null, R = null, Y = null, F = null, N = null, V = 0, k = Si.PERSPECTIVE, K = /* @__PURE__ */ new Map();
+ const z = /* @__PURE__ */ new Set();
+ let B = null, J = !1, P = null, H = [], $ = Ac, E = null, oe = null, M = [], j = [], O = 0, D = 1, q = !1, ee = !1, ce = !1;
+ const ue = String((e == null ? void 0 : e.filename) || "3D model"), U = () => {
+ var Xe, Ee;
try {
- (Ve = n.scheduleOverlayRedraw) == null || Ve.call(n);
- } catch (Be) {
- (Ke = console.debug) == null || Ke.call(console, Be);
+ (Xe = n.scheduleOverlayRedraw) == null || Xe.call(n);
+ } catch (Ke) {
+ (Ee = console.debug) == null || Ee.call(console, Ke);
}
- }, $ = (Ve, Ke = "", Be = "#4CAF50") => {
- x = { title: Ve, hintText: Ke, accent: Be }, l.style.display = "block", ju(l, Ve, Ke, Be);
+ }, Q = (Xe, Ee = "", Ke = "#4CAF50") => {
+ v = { title: Xe, hintText: Ee, accent: Ke }, l.style.display = "block", Lu(l, Xe, Ee, Ke);
}, _ = () => {
- x = null, l.style.display = "none";
+ v = null, l.style.display = "none";
}, le = () => {
- var Ve, Ke;
+ var Xe, Ee;
try {
- const Be = o.getBoundingClientRect();
- r._mjrNaturalW = Math.max(1, Math.round(Be.width || r.width || 1)), r._mjrNaturalH = Math.max(1, Math.round(Be.height || r.height || 1));
- } catch (Be) {
- (Ve = console.debug) == null || Ve.call(console, Be);
+ const Ke = o.getBoundingClientRect();
+ r._mjrNaturalW = Math.max(1, Math.round(Ke.width || r.width || 1)), r._mjrNaturalH = Math.max(1, Math.round(Ke.height || r.height || 1));
+ } catch (Ke) {
+ (Xe = console.debug) == null || Xe.call(console, Ke);
}
try {
- x && ju(
+ v && Lu(
l,
- x.title,
- x.hintText,
- x.accent
+ v.title,
+ v.hintText,
+ v.accent
);
- } catch (Be) {
- (Ke = console.debug) == null || Ke.call(console, Be);
+ } catch (Ke) {
+ (Ee = console.debug) == null || Ee.call(console, Ke);
}
- }, se = (Ve, Ke) => {
- if (!W || !(L > 0)) return;
- const Be = Math.max(1e-4, (Number(Ve) || 1) / Math.max(1, Number(Ke) || 1)), nt = L * Be;
- W.left = -nt / 2, W.right = nt / 2, W.top = L / 2, W.bottom = -L / 2, W.updateProjectionMatrix();
- }, de = () => {
- var Ve;
- if (!(!V || !y || !j)) {
- if (N === Wi.ORTHOGRAPHIC) {
- const Ke = o.getBoundingClientRect();
- L = fA(
+ }, de = (Xe, Ee) => {
+ if (!W || !(V > 0)) return;
+ const Ke = Math.max(1e-4, (Number(Xe) || 1) / Math.max(1, Number(Ee) || 1)), nt = V * Ke;
+ W.left = -nt / 2, W.right = nt / 2, W.top = V / 2, W.bottom = -V / 2, W.updateProjectionMatrix();
+ }, se = () => {
+ var Xe;
+ if (!(!Y || !y || !N)) {
+ if (k === Si.ORTHOGRAPHIC) {
+ const Ee = o.getBoundingClientRect();
+ V = ZA(
W,
y,
- j,
- Math.max(1e-4, (Ke.width || 1) / Math.max(1, Ke.height || 1))
- ) || L, C = W;
+ N,
+ Math.max(1e-4, (Ee.width || 1) / Math.max(1, Ee.height || 1))
+ ) || V, h = W;
} else
- yA(f, S, y, j), C = S;
+ CA(f, G, y, N), h = G;
try {
- y.object = C, y.update();
- } catch (Ke) {
- (Ve = console.debug) == null || Ve.call(console, Ke);
+ y.object = h, y.update();
+ } catch (Ee) {
+ (Xe = console.debug) == null || Xe.call(console, Ee);
}
}
- }, Ze = (Ve, { refit: Ke = !0 } = {}) => {
- var Be, nt, mt, bt, st;
- N = Ve === Wi.ORTHOGRAPHIC ? Wi.ORTHOGRAPHIC : Wi.PERSPECTIVE, C = N === Wi.ORTHOGRAPHIC ? W : S;
+ }, ge = (Xe, { refit: Ee = !0 } = {}) => {
+ var Ke, nt, ut, It, dt;
+ k = Xe === Si.ORTHOGRAPHIC ? Si.ORTHOGRAPHIC : Si.PERSPECTIVE, h = k === Si.ORTHOGRAPHIC ? W : G;
try {
- y && (y.object = C);
- } catch (ke) {
- (Be = console.debug) == null || Be.call(console, ke);
+ y && (y.object = h);
+ } catch (Re) {
+ (Ke = console.debug) == null || Ke.call(console, Re);
}
- if (Ke)
- de();
+ if (Ee)
+ se();
else {
try {
- (nt = C == null ? void 0 : C.updateProjectionMatrix) == null || nt.call(C);
- } catch (ke) {
- (mt = console.debug) == null || mt.call(console, ke);
+ (nt = h == null ? void 0 : h.updateProjectionMatrix) == null || nt.call(h);
+ } catch (Re) {
+ (ut = console.debug) == null || ut.call(console, Re);
}
try {
- (bt = y == null ? void 0 : y.update) == null || bt.call(y);
- } catch (ke) {
- (st = console.debug) == null || st.call(console, ke);
+ (It = y == null ? void 0 : y.update) == null || It.call(y);
+ } catch (Re) {
+ (dt = console.debug) == null || dt.call(console, Re);
}
}
- Ee(), H();
- }, Fe = (Ve) => {
- var Be;
- Q = Math.max(0, Math.min(10, Number(Ve) || 0));
+ Te(), U();
+ }, je = (Xe) => {
+ var Ke;
+ $ = Math.max(0, Math.min(10, Number(Xe) || 0));
try {
- T && (T.intensity = hi.ambient * Q);
+ P && (P.intensity = Zi.ambient * $);
} catch (nt) {
- (Be = console.debug) == null || Be.call(console, nt);
+ (Ke = console.debug) == null || Ke.call(console, nt);
}
- const Ke = [
- hi.main,
- hi.back,
- hi.fill,
- hi.fill,
- hi.bottom
+ const Ee = [
+ Zi.main,
+ Zi.back,
+ Zi.fill,
+ Zi.fill,
+ Zi.bottom
];
- D.forEach((nt, mt) => {
- var bt;
+ H.forEach((nt, ut) => {
+ var It;
try {
- nt && (nt.intensity = (Ke[mt] ?? hi.fill) * Q);
- } catch (st) {
- (bt = console.debug) == null || bt.call(console, st);
+ nt && (nt.intensity = (Ee[ut] ?? Zi.fill) * $);
+ } catch (dt) {
+ (It = console.debug) == null || It.call(console, dt);
}
});
- }, xe = (Ve) => {
- !R || !f || (Su(O), bA(f, R, Ve, q, O), H());
- }, ze = (Ve) => {
- var Be;
- if (!V) return;
- const Ke = xA[Ve] || [0, 0, 0];
- try {
- V.rotation.set(Ke[0], Ke[1], Ke[2]), V.updateMatrixWorld(!0);
- } catch (nt) {
- (Be = console.debug) == null || Be.call(console, nt);
- }
- f && (j = Gu(f, V)), de();
- }, We = (Ve) => {
+ }, Se = (Xe) => {
+ !F || !f || (xu(z), fA(f, F, Xe, K, z), U());
+ }, ke = (Xe) => {
var Ke;
+ if (!Y) return;
+ const Ee = LA[Xe] || [0, 0, 0];
+ try {
+ Y.rotation.set(Ee[0], Ee[1], Ee[2]), Y.updateMatrixWorld(!0);
+ } catch (nt) {
+ (Ke = console.debug) == null || Ke.call(console, nt);
+ }
+ f && (N = ju(f, Y)), se();
+ }, we = (Xe) => {
+ var Ee;
if (B)
try {
- B.visible = !!Ve;
- } catch (Be) {
- (Ke = console.debug) == null || Ke.call(console, Be);
+ B.visible = !!Xe;
+ } catch (Ke) {
+ (Ee = console.debug) == null || Ee.call(console, Ke);
}
- }, De = () => {
- var mt, bt;
- if (!E || F.length === 0) return;
- const Ve = Y[U];
- if (!Ve) return;
- const Ke = F[U], Be = (Ke == null ? void 0 : Ke.duration) || 0, nt = Ve.time || 0;
+ }, Je = () => {
+ var ut, It;
+ if (!E || M.length === 0) return;
+ const Xe = j[O];
+ if (!Xe) return;
+ const Ee = M[O], Ke = (Ee == null ? void 0 : Ee.duration) || 0, nt = Xe.time || 0;
try {
- A.timeLbl.textContent = `${Jl(nt)} / ${Jl(Be)}`;
- } catch (st) {
- (mt = console.debug) == null || mt.call(console, st);
+ C.timeLbl.textContent = `${Tl(nt)} / ${Tl(Ke)}`;
+ } catch (dt) {
+ (ut = console.debug) == null || ut.call(console, dt);
}
- if (!oe && Be > 0)
+ if (!ee && Ke > 0)
try {
- const st = Number(A.progressSlider.max) || 1e3;
- A.progressSlider.value = String(Math.round(nt / Be * st));
- } catch (st) {
- (bt = console.debug) == null || bt.call(console, st);
+ const dt = Number(C.progressSlider.max) || 1e3;
+ C.progressSlider.value = String(Math.round(nt / Ke * dt));
+ } catch (dt) {
+ (It = console.debug) == null || It.call(console, dt);
}
- }, Pe = (Ve) => {
- if (!E || !F.length) return;
- const Ke = F[Ve];
- if (!Ke) return;
- Y.forEach((nt) => {
- var mt;
+ }, $e = (Xe) => {
+ if (!E || !M.length) return;
+ const Ee = M[Xe];
+ if (!Ee) return;
+ j.forEach((nt) => {
+ var ut;
try {
nt == null || nt.stop();
- } catch (bt) {
- (mt = console.debug) == null || mt.call(console, bt);
+ } catch (It) {
+ (ut = console.debug) == null || ut.call(console, It);
}
});
- const Be = E.clipAction(Ke);
- Be.timeScale = P, Be.clampWhenFinished = !1, Be.loop = (f == null ? void 0 : f.LoopRepeat) ?? 2201, Be.play(), Y[Ve] = Be, U = Ve, ee = !0, A.playBtn.textContent = "βΈ";
+ const Ke = E.clipAction(Ee);
+ Ke.timeScale = D, Ke.clampWhenFinished = !1, Ke.loop = (f == null ? void 0 : f.LoopRepeat) ?? 2201, Ke.play(), j[Xe] = Ke, O = Xe, q = !0, C.playBtn.textContent = "βΈ";
try {
- const nt = Math.max(100, Math.min(1e4, Math.round((Ke.duration || 1) * 100)));
- A.progressSlider.max = String(nt);
+ const nt = Math.max(100, Math.min(1e4, Math.round((Ee.duration || 1) * 100)));
+ C.progressSlider.max = String(nt);
} catch {
}
- }, Qe = () => {
- var Ve, Ke;
- !E || !F.length || (ee ? (E.timeScale = 0, ee = !1, A.playBtn.textContent = "βΆ") : (E.timeScale = P, (Ke = (Ve = Y[U]) == null ? void 0 : Ve.isRunning) != null && Ke.call(Ve) ? (ee = !0, A.playBtn.textContent = "βΈ") : Pe(U)));
- }, Ue = (Ve, Ke) => {
- !Ve || Ve.length === 0 || !f || (F = Ve, E = new f.AnimationMixer(Ke), K = new f.Clock(), Y = new Array(Ve.length).fill(null), A.animSel.innerHTML = "", Ve.forEach((Be, nt) => {
- const mt = document.createElement("option");
- mt.value = String(nt), mt.textContent = Be.name || `Animation ${nt + 1}`, A.animSel.appendChild(mt);
- }), A.animSel.style.display = Ve.length > 1 ? "" : "none", A.bar.style.display = "flex", M.style.bottom = `${jA + 10}px`, Pe(0), A.playBtn.addEventListener("click", (Be) => {
- Ti(Be), Qe();
- }), A.speedSel.addEventListener("change", () => {
- P = Number(A.speedSel.value) || 1, E.timeScale = ee ? P : 0;
- const Be = Y[U];
- Be && (Be.timeScale = P);
- }), A.animSel.addEventListener("change", () => {
- const Be = Number(A.animSel.value) || 0;
- Pe(Be);
- }), A.progressSlider.addEventListener("pointerdown", () => {
- oe = !0;
- }), A.progressSlider.addEventListener("pointerup", () => {
- oe = !1;
- const Be = Y[U], nt = F[U];
- if (Be && nt) {
- const mt = Number(A.progressSlider.max) || 1e3, bt = Number(A.progressSlider.value) / mt * nt.duration;
- Be.time = Math.max(0, Math.min(bt, nt.duration));
+ }, qe = () => {
+ var Xe, Ee;
+ !E || !M.length || (q ? (E.timeScale = 0, q = !1, C.playBtn.textContent = "βΆ") : (E.timeScale = D, (Ee = (Xe = j[O]) == null ? void 0 : Xe.isRunning) != null && Ee.call(Xe) ? (q = !0, C.playBtn.textContent = "βΈ") : $e(O)));
+ }, Ue = (Xe, Ee) => {
+ !Xe || Xe.length === 0 || !f || (M = Xe, E = new f.AnimationMixer(Ee), oe = new f.Clock(), j = new Array(Xe.length).fill(null), C.animSel.innerHTML = "", Xe.forEach((Ke, nt) => {
+ const ut = document.createElement("option");
+ ut.value = String(nt), ut.textContent = Ke.name || `Animation ${nt + 1}`, C.animSel.appendChild(ut);
+ }), C.animSel.style.display = Xe.length > 1 ? "" : "none", C.bar.style.display = "flex", S.style.bottom = `${VA + 10}px`, $e(0), C.playBtn.addEventListener("click", (Ke) => {
+ Ui(Ke), qe();
+ }), C.speedSel.addEventListener("change", () => {
+ D = Number(C.speedSel.value) || 1, E.timeScale = q ? D : 0;
+ const Ke = j[O];
+ Ke && (Ke.timeScale = D);
+ }), C.animSel.addEventListener("change", () => {
+ const Ke = Number(C.animSel.value) || 0;
+ $e(Ke);
+ }), C.progressSlider.addEventListener("pointerdown", () => {
+ ee = !0;
+ }), C.progressSlider.addEventListener("pointerup", () => {
+ ee = !1;
+ const Ke = j[O], nt = M[O];
+ if (Ke && nt) {
+ const ut = Number(C.progressSlider.max) || 1e3, It = Number(C.progressSlider.value) / ut * nt.duration;
+ Ke.time = Math.max(0, Math.min(It, nt.duration));
}
- }), A.progressSlider.addEventListener("input", () => {
- const Be = Y[U], nt = F[U];
- if (Be && nt && oe) {
- const mt = Number(A.progressSlider.max) || 1e3, bt = Number(A.progressSlider.value) / mt * nt.duration;
- Be.time = Math.max(0, Math.min(bt, nt.duration)), A.timeLbl.textContent = `${Jl(bt)} / ${Jl(nt.duration)}`;
+ }), C.progressSlider.addEventListener("input", () => {
+ const Ke = j[O], nt = M[O];
+ if (Ke && nt && ee) {
+ const ut = Number(C.progressSlider.max) || 1e3, It = Number(C.progressSlider.value) / ut * nt.duration;
+ Ke.time = Math.max(0, Math.min(It, nt.duration)), C.timeLbl.textContent = `${Tl(It)} / ${Tl(nt.duration)}`;
}
}));
- }, Ee = () => {
- hc(u, !!(X != null && X.visible)), hc(I, N === Wi.ORTHOGRAPHIC), I.textContent = N === Wi.ORTHOGRAPHIC ? "Ortho" : "Persp", hc(p, ce);
+ }, Te = () => {
+ Cc(u, !!(R != null && R.visible)), Cc(I, k === Si.ORTHOGRAPHIC), I.textContent = k === Si.ORTHOGRAPHIC ? "Ortho" : "Persp", Cc(p, ce);
};
- Z.bgInput.addEventListener("input", () => {
- var Ke;
- const Ve = Z.bgInput.value;
+ A.bgInput.addEventListener("input", () => {
+ var Ee;
+ const Xe = A.bgInput.value;
try {
- v && (v.background = new ((f == null ? void 0 : f.Color) || Object)(Ve));
- } catch (Be) {
- (Ke = console.debug) == null || Ke.call(console, Be);
+ L && (L.background = new ((f == null ? void 0 : f.Color) || Object)(Xe));
+ } catch (Ke) {
+ (Ee = console.debug) == null || Ee.call(console, Ke);
}
- }), Z.materialSel.addEventListener("change", () => {
- xe(Z.materialSel.value);
- }), Z.upSel.addEventListener("change", () => {
- ze(Z.upSel.value);
- }), Z.skeletonToggle && Z.skeletonToggle.addEventListener("change", () => {
- We(Z.skeletonToggle.checked);
- }), Z.fovSlider.addEventListener("input", () => {
- var Ke;
- const Ve = Math.max(
+ }), A.materialSel.addEventListener("change", () => {
+ Se(A.materialSel.value);
+ }), A.upSel.addEventListener("change", () => {
+ ke(A.upSel.value);
+ }), A.skeletonToggle && A.skeletonToggle.addEventListener("change", () => {
+ we(A.skeletonToggle.checked);
+ }), A.fovSlider.addEventListener("input", () => {
+ var Ee;
+ const Xe = Math.max(
1,
- Math.min(179, Number(Z.fovSlider.value) || Fr)
+ Math.min(179, Number(A.fovSlider.value) || zr)
);
try {
- S && (S.fov = Ve, S.updateProjectionMatrix());
- } catch (Be) {
- (Ke = console.debug) == null || Ke.call(console, Be);
+ G && (G.fov = Xe, G.updateProjectionMatrix());
+ } catch (Ke) {
+ (Ee = console.debug) == null || Ee.call(console, Ke);
}
- }), Z.lightSlider.addEventListener("input", () => {
- Fe(Number(Z.lightSlider.value));
+ }), A.lightSlider.addEventListener("input", () => {
+ je(Number(A.lightSlider.value));
});
- const Re = () => {
- const Ve = [], Ke = (Be, nt, mt, bt) => {
- Be.addEventListener(nt, mt, bt), Ve.push(() => Be.removeEventListener(nt, mt, bt));
+ const Oe = () => {
+ const Xe = [], Ee = (Ke, nt, ut, It) => {
+ Ke.addEventListener(nt, ut, It), Xe.push(() => Ke.removeEventListener(nt, ut, It));
};
- return Ke(o, "pointerdown", () => {
- var Be, nt;
+ return Ee(o, "pointerdown", () => {
+ var Ke, nt;
try {
- (Be = r.focus) == null || Be.call(r);
- } catch (mt) {
- (nt = console.debug) == null || nt.call(console, mt);
+ (Ke = r.focus) == null || Ke.call(r);
+ } catch (ut) {
+ (nt = console.debug) == null || nt.call(console, ut);
}
- }), Ke(o, "wheel", (Be) => Ti(Be)), Ke(o, "contextmenu", (Be) => Ti(Be, { preventDefault: !0 })), Ke(o, "dragstart", (Be) => Ti(Be, { preventDefault: !0 })), Ke(o, "dragover", (Be) => Ti(Be, { preventDefault: !0 })), Ke(o, "dragleave", (Be) => Ti(Be)), Ke(o, "drop", (Be) => Ti(Be, { preventDefault: !0 })), () => {
- var Be;
- for (const nt of Ve)
+ }), Ee(o, "wheel", (Ke) => Ui(Ke)), Ee(o, "contextmenu", (Ke) => Ui(Ke, { preventDefault: !0 })), Ee(o, "dragstart", (Ke) => Ui(Ke, { preventDefault: !0 })), Ee(o, "dragover", (Ke) => Ui(Ke, { preventDefault: !0 })), Ee(o, "dragleave", (Ke) => Ui(Ke)), Ee(o, "drop", (Ke) => Ui(Ke, { preventDefault: !0 })), () => {
+ var Ke;
+ for (const nt of Xe)
try {
nt();
- } catch (mt) {
- (Be = console.debug) == null || Be.call(console, mt);
+ } catch (ut) {
+ (Ke = console.debug) == null || Ke.call(console, ut);
}
};
- }, wt = () => {
- var Ve, Ke, Be, nt, mt, bt, st, ke, Ct, at, zt, Zt, gt, kt, Qt, te, ge, we, be, Oe, ot, dt, en, un, Wt, tn, re;
+ }, pt = () => {
+ var Xe, Ee, Ke, nt, ut, It, dt, Re, Wt, lt, qt, yt, mt, kt, $t, Tt, te, ye, We, pe, De, ot, Zt, tn, Pt, vt, re;
g = !0;
try {
- window.removeEventListener(ft.RUNTIME_STATUS, Gt);
+ window.removeEventListener(ht.RUNTIME_STATUS, Mt);
} catch {
}
try {
@@ -16305,164 +16320,164 @@ function Yu(e, t, n = {}) {
} catch {
}
try {
- k != null && cancelAnimationFrame(k);
- } catch (ie) {
- (Ve = console.debug) == null || Ve.call(console, ie);
+ X != null && cancelAnimationFrame(X);
+ } catch (ne) {
+ (Xe = console.debug) == null || Xe.call(console, ne);
}
- k = null;
+ X = null;
try {
w == null || w();
- } catch (ie) {
- (Ke = console.debug) == null || Ke.call(console, ie);
+ } catch (ne) {
+ (Ee = console.debug) == null || Ee.call(console, ne);
}
w = null;
try {
- (Be = h == null ? void 0 : h.disconnect) == null || Be.call(h);
- } catch (ie) {
- (nt = console.debug) == null || nt.call(console, ie);
+ (Ke = Z == null ? void 0 : Z.disconnect) == null || Ke.call(Z);
+ } catch (ne) {
+ (nt = console.debug) == null || nt.call(console, ne);
}
- h = null;
+ Z = null;
try {
- (mt = y == null ? void 0 : y.dispose) == null || mt.call(y);
- } catch (ie) {
- (bt = console.debug) == null || bt.call(console, ie);
+ (ut = y == null ? void 0 : y.dispose) == null || ut.call(y);
+ } catch (ne) {
+ (It = console.debug) == null || It.call(console, ne);
}
y = null;
try {
- (st = E == null ? void 0 : E.stopAllAction) == null || st.call(E), (Ct = E == null ? void 0 : E.uncacheRoot) == null || Ct.call(E, (ke = E.getRoot) == null ? void 0 : ke.call(E));
- } catch (ie) {
- (at = console.debug) == null || at.call(console, ie);
+ (dt = E == null ? void 0 : E.stopAllAction) == null || dt.call(E), (Wt = E == null ? void 0 : E.uncacheRoot) == null || Wt.call(E, (Re = E.getRoot) == null ? void 0 : Re.call(E));
+ } catch (ne) {
+ (lt = console.debug) == null || lt.call(console, ne);
}
try {
- for (const ie of Y)
+ for (const ne of j)
try {
- (zt = E == null ? void 0 : E.uncacheAction) == null || zt.call(E, ie);
+ (qt = E == null ? void 0 : E.uncacheAction) == null || qt.call(E, ne);
} catch {
}
- } catch (ie) {
- (Zt = console.debug) == null || Zt.call(console, ie);
+ } catch (ne) {
+ (yt = console.debug) == null || yt.call(console, ne);
}
try {
- for (const ie of F)
+ for (const ne of M)
try {
- (gt = ie == null ? void 0 : ie.dispose) == null || gt.call(ie);
+ (mt = ne == null ? void 0 : ne.dispose) == null || mt.call(ne);
} catch {
}
- } catch (ie) {
- (kt = console.debug) == null || kt.call(console, ie);
+ } catch (ne) {
+ (kt = console.debug) == null || kt.call(console, ne);
}
- E = null, Y = [], F = [], Su(O);
+ E = null, j = [], M = [], xu(z);
try {
- B && ((Qt = v == null ? void 0 : v.remove) == null || Qt.call(v, B), (te = B.dispose) == null || te.call(B));
- } catch (ie) {
- (ge = console.debug) == null || ge.call(console, ie);
+ B && (($t = L == null ? void 0 : L.remove) == null || $t.call(L, B), (Tt = B.dispose) == null || Tt.call(B));
+ } catch (ne) {
+ (te = console.debug) == null || te.call(console, ne);
}
B = null;
try {
- (we = v == null ? void 0 : v.traverse) == null || we.call(v, (ie) => {
- var me, Xe, qe;
+ (ye = L == null ? void 0 : L.traverse) == null || ye.call(L, (ne) => {
+ var Ie, Ne, He;
try {
- (Xe = (me = ie.geometry) == null ? void 0 : me.dispose) == null || Xe.call(me);
+ (Ne = (Ie = ne.geometry) == null ? void 0 : Ie.dispose) == null || Ne.call(Ie);
} catch {
}
try {
- const ut = Array.isArray(ie.material) ? ie.material : ie.material ? [ie.material] : [];
- for (const jt of ut)
+ const rt = Array.isArray(ne.material) ? ne.material : ne.material ? [ne.material] : [];
+ for (const St of rt)
try {
- if (jt) {
- for (const Yt of Object.keys(jt))
+ if (St) {
+ for (const Yt of Object.keys(St))
try {
- const St = jt[Yt];
- St && typeof St == "object" && typeof St.dispose == "function" && St.isTexture && St.dispose();
+ const Gt = St[Yt];
+ Gt && typeof Gt == "object" && typeof Gt.dispose == "function" && Gt.isTexture && Gt.dispose();
} catch {
}
- (qe = jt.dispose) == null || qe.call(jt);
+ (He = St.dispose) == null || He.call(St);
}
} catch {
}
} catch {
}
});
- } catch (ie) {
- (be = console.debug) == null || be.call(console, ie);
+ } catch (ne) {
+ (We = console.debug) == null || We.call(console, ne);
}
try {
- o._mjrAxisScene && ((ot = (Oe = o._mjrAxisScene).traverse) == null || ot.call(Oe, (ie) => {
- var me, Xe, qe, ut;
+ o._mjrAxisScene && ((De = (pe = o._mjrAxisScene).traverse) == null || De.call(pe, (ne) => {
+ var Ie, Ne, He, rt;
try {
- (Xe = (me = ie.geometry) == null ? void 0 : me.dispose) == null || Xe.call(me);
+ (Ne = (Ie = ne.geometry) == null ? void 0 : Ie.dispose) == null || Ne.call(Ie);
} catch {
}
try {
- (ut = (qe = ie.material) == null ? void 0 : qe.dispose) == null || ut.call(qe);
+ (rt = (He = ne.material) == null ? void 0 : He.dispose) == null || rt.call(He);
} catch {
}
}), o._mjrAxisScene = null);
- } catch (ie) {
- (dt = console.debug) == null || dt.call(console, ie);
+ } catch (ne) {
+ (ot = console.debug) == null || ot.call(console, ne);
}
try {
- (en = b == null ? void 0 : b.dispose) == null || en.call(b);
- } catch (ie) {
- (un = console.debug) == null || un.call(console, ie);
+ (Zt = b == null ? void 0 : b.dispose) == null || Zt.call(b);
+ } catch (ne) {
+ (tn = console.debug) == null || tn.call(console, ne);
}
- b = null, v = null, C = null, S = null, W = null, R = null, V = null, j = null, G = null;
+ b = null, L = null, h = null, G = null, W = null, F = null, Y = null, N = null, x = null;
try {
- const ie = r.getContext("webgl2") || r.getContext("webgl");
- ie && ((tn = (Wt = ie.getExtension("WEBGL_lose_context")) == null ? void 0 : Wt.loseContext) == null || tn.call(Wt));
- } catch (ie) {
- (re = console.debug) == null || re.call(console, ie);
+ const ne = r.getContext("webgl2") || r.getContext("webgl");
+ ne && ((vt = (Pt = ne.getExtension("WEBGL_lose_context")) == null ? void 0 : Pt.loseContext) == null || vt.call(Pt));
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }, Se = () => {
- var Ve;
- z = !0;
+ }, Me = () => {
+ var Xe;
+ T = !0;
try {
- k != null && cancelAnimationFrame(k);
- } catch (Ke) {
- (Ve = console.debug) == null || Ve.call(console, Ke);
+ X != null && cancelAnimationFrame(X);
+ } catch (Ee) {
+ (Xe = console.debug) == null || Xe.call(console, Ee);
}
- k = null;
- }, Ft = () => {
- var Ve;
- if (z = !1, !(g || k != null || typeof G != "function"))
+ X = null;
+ }, Xt = () => {
+ var Xe;
+ if (T = !1, !(g || X != null || typeof x != "function"))
try {
- k = requestAnimationFrame(G);
- } catch (Ke) {
- (Ve = console.debug) == null || Ve.call(console, Ke);
+ X = requestAnimationFrame(x);
+ } catch (Ee) {
+ (Xe = console.debug) == null || Xe.call(console, Ee);
}
- }, Gt = (Ve) => {
- var Be;
+ }, Mt = (Xe) => {
+ var Ke;
if (!i) return;
- if (String(((Be = Ve == null ? void 0 : Ve.detail) == null ? void 0 : Be.active_prompt_id) || "").trim()) {
- Se();
+ if (String(((Ke = Xe == null ? void 0 : Xe.detail) == null ? void 0 : Ke.active_prompt_id) || "").trim()) {
+ Me();
return;
}
- Ft();
- }, ue = {
+ Xt();
+ }, me = {
setParams: () => {
},
- destroy: wt,
+ destroy: pt,
captureCanvas: () => r,
- pause: Se,
- resume: Ft
+ pause: Me,
+ resume: Xt
};
- r._mjrProc = ue;
+ r._mjrProc = me;
try {
- i && (window.addEventListener(ft.RUNTIME_STATUS, Gt), String(((ve = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : ve.active_prompt_id) || "").trim() && (z = !0));
- } catch (Ve) {
- (Ot = console.debug) == null || Ot.call(console, Ve);
+ i && (window.addEventListener(ht.RUNTIME_STATUS, Mt), String(((Le = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : Le.active_prompt_id) || "").trim() && (T = !0));
+ } catch (Xe) {
+ (Ot = console.debug) == null || Ot.call(console, Xe);
}
- return $("Preparing 3D preview", pe), Promise.resolve().then(async () => {
- var Ke, Be, nt, mt;
- const Ve = YA(e);
- if (!GA.has(Ve)) {
- if ($(
+ return Q("Preparing 3D preview", ue), Promise.resolve().then(async () => {
+ var Ee, Ke, nt, ut;
+ const Xe = XA(e);
+ if (!vA.has(Xe)) {
+ if (Q(
"3D preview unavailable",
- `${Ve.toUpperCase()} is not supported in the embedded viewer.`
- ), M.style.display = "none", t)
+ `${Xe.toUpperCase()} is not supported in the embedded viewer.`
+ ), S.style.display = "none", t)
try {
- const bt = document.createElement("a");
- bt.href = t, bt.download = String((e == null ? void 0 : e.filename) || "model"), bt.textContent = `Download ${String((e == null ? void 0 : e.filename) || "file")}`, bt.style.cssText = [
+ const It = document.createElement("a");
+ It.href = t, It.download = String((e == null ? void 0 : e.filename) || "model"), It.textContent = `Download ${String((e == null ? void 0 : e.filename) || "file")}`, It.style.cssText = [
"position:absolute",
"bottom:18px",
"left:50%",
@@ -16475,248 +16490,248 @@ function Yu(e, t, n = {}) {
"text-decoration:none",
"pointer-events:auto",
"z-index:3"
- ].join(";"), o.appendChild(bt);
+ ].join(";"), o.appendChild(It);
} catch {
}
return;
}
try {
- const bt = await AA();
+ const It = await MA();
if (g) return;
- const st = bt.THREE;
- f = st;
- const ke = new st.LoadingManager();
- ke.setURLModifier((ie) => {
- if (!ie || vA(ie)) return ie;
- const me = ny(e, ie);
- if (me) return me;
+ const dt = It.THREE;
+ f = dt;
+ const Re = new dt.LoadingManager();
+ Re.setURLModifier((ne) => {
+ if (!ne || YA(ne)) return ne;
+ const Ie = ry(e, ne);
+ if (Ie) return Ie;
try {
- return new URL(ie, t).href;
+ return new URL(ne, t).href;
} catch {
- return ie;
+ return ne;
}
- }), b = new st.WebGLRenderer({
+ }), b = new dt.WebGLRenderer({
canvas: r,
antialias: !0,
alpha: !0,
preserveDrawingBuffer: !0
- }), b.outputColorSpace = st.SRGBColorSpace, b.setPixelRatio(Math.min(2, window.devicePixelRatio || 1)), v = new st.Scene(), v.background = new st.Color(Cc), S = new st.PerspectiveCamera(
- Fr,
+ }), b.outputColorSpace = dt.SRGBColorSpace, b.setPixelRatio(Math.min(2, window.devicePixelRatio || 1)), L = new dt.Scene(), L.background = new dt.Color(Zc), G = new dt.PerspectiveCamera(
+ zr,
16 / 9,
0.01,
1e4
- ), W = new st.OrthographicCamera(-1, 1, 1, -1, -1e4, 1e4), C = S, y = new bt.OrbitControls(C, r), y.enableDamping = !0, y.dampingFactor = 0.08, y.rotateSpeed = 0.82, y.zoomSpeed = 1, y.panSpeed = 0.9, y.screenSpacePanning = !0, y.mouseButtons = VA(null, st.MOUSE), w = Re(), T = new st.AmbientLight(
+ ), W = new dt.OrthographicCamera(-1, 1, 1, -1, -1e4, 1e4), h = G, y = new It.OrbitControls(h, r), y.enableDamping = !0, y.dampingFactor = 0.08, y.rotateSpeed = 0.82, y.zoomSpeed = 1, y.panSpeed = 0.9, y.screenSpacePanning = !0, y.mouseButtons = NA(null, dt.MOUSE), w = Oe(), P = new dt.AmbientLight(
16777215,
- hi.ambient * Q
- ), v.add(T);
- const Ct = new st.DirectionalLight(
+ Zi.ambient * $
+ ), L.add(P);
+ const Wt = new dt.DirectionalLight(
16777215,
- hi.main * Q
+ Zi.main * $
);
- Ct.position.set(0, 10, 10);
- const at = new st.DirectionalLight(
+ Wt.position.set(0, 10, 10);
+ const lt = new dt.DirectionalLight(
16777215,
- hi.back * Q
+ Zi.back * $
);
- at.position.set(-10, 0, -10);
- const zt = new st.DirectionalLight(
+ lt.position.set(-10, 0, -10);
+ const qt = new dt.DirectionalLight(
15266047,
- hi.fill * Q
+ Zi.fill * $
);
- zt.position.set(10, 5, -5);
- const Zt = new st.DirectionalLight(
+ qt.position.set(10, 5, -5);
+ const yt = new dt.DirectionalLight(
16773352,
- hi.fill * Q
+ Zi.fill * $
);
- Zt.position.set(-10, 5, 5);
- const gt = new st.DirectionalLight(
+ yt.position.set(-10, 5, 5);
+ const mt = new dt.DirectionalLight(
16777215,
- hi.bottom * Q
+ Zi.bottom * $
);
- gt.position.set(0, -10, 0), D = [Ct, at, zt, Zt, gt], D.forEach((ie) => v.add(ie)), X = new st.GridHelper(20, 20, 5068128, 3094338), v.add(X);
+ mt.position.set(0, -10, 0), H = [Wt, lt, qt, yt, mt], H.forEach((ne) => L.add(ne)), R = new dt.GridHelper(20, 20, 5068128, 3094338), L.add(R);
const kt = () => {
- if (g || !b || !C) return;
- const ie = o.getBoundingClientRect(), me = Math.max(1, Math.round(ie.width || r.clientWidth || 1)), Xe = Math.max(1, Math.round(ie.height || r.clientHeight || 1));
- b.setSize(me, Xe, !1), S && (S.aspect = me / Xe, S.updateProjectionMatrix()), se(me, Xe), le(), H();
+ if (g || !b || !h) return;
+ const ne = o.getBoundingClientRect(), Ie = Math.max(1, Math.round(ne.width || r.clientWidth || 1)), Ne = Math.max(1, Math.round(ne.height || r.clientHeight || 1));
+ b.setSize(Ie, Ne, !1), G && (G.aspect = Ie / Ne, G.updateProjectionMatrix()), de(Ie, Ne), le(), U();
};
- typeof ResizeObserver < "u" && (h = new ResizeObserver(() => kt()), h.observe(o));
- const Qt = CA(bt, Ve, ke);
- if (!Qt) {
- $(
+ typeof ResizeObserver < "u" && (Z = new ResizeObserver(() => kt()), Z.observe(o));
+ const $t = WA(It, Xe, Re);
+ if (!$t) {
+ Q(
"3D loader unavailable",
- `${Ve.toUpperCase()} loader could not be created.`
- ), M.style.display = "none";
+ `${Xe.toUpperCase()} loader could not be created.`
+ ), S.style.display = "none";
return;
}
- if (Ve === "obj" && bt.MTLLoader)
+ if (Xe === "obj" && It.MTLLoader)
try {
- const ie = t.replace(/\.obj(\?.*)?$/i, (qe, ut) => `.mtl${ut || ""}`), me = new bt.MTLLoader(ke), Xe = await new Promise((qe) => {
- me.load(ie, qe, void 0, () => qe(null));
+ const ne = t.replace(/\.obj(\?.*)?$/i, (He, rt) => `.mtl${rt || ""}`), Ie = new It.MTLLoader(Re), Ne = await new Promise((He) => {
+ Ie.load(ne, He, void 0, () => He(null));
});
- Xe && !g && (Xe.preload(), Qt.setMaterials(Xe));
- } catch (ie) {
- (Ke = console.debug) == null || Ke.call(console, "[MJR 3D] MTL load skipped:", ie == null ? void 0 : ie.message);
+ Ne && !g && (Ne.preload(), $t.setMaterials(Ne));
+ } catch (ne) {
+ (Ee = console.debug) == null || Ee.call(console, "[MJR 3D] MTL load skipped:", ne == null ? void 0 : ne.message);
}
- const te = await ZA(Qt, Ve, t);
+ const Tt = await wA($t, Xe, t);
if (g) return;
- const ge = hA(st, Ve, te);
- if (!ge) {
- $("Empty 3D scene", "The loader returned no renderable object."), M.style.display = "none";
+ const te = AA(dt, Xe, Tt);
+ if (!te) {
+ Q("Empty 3D scene", "The loader returned no renderable object."), S.style.display = "none";
return;
}
try {
- const ie = new st.Box3().setFromObject(ge);
- if (!ie.isEmpty()) {
- const me = ie.getSize(new st.Vector3()), Xe = ie.getCenter(new st.Vector3()), ut = 5 / Math.max(me.x, me.y, me.z, 1e-3);
- ge.scale.multiplyScalar(ut), ie.setFromObject(ge), ie.getCenter(Xe), ge.position.set(-Xe.x, -ie.min.y, -Xe.z);
+ const ne = new dt.Box3().setFromObject(te);
+ if (!ne.isEmpty()) {
+ const Ie = ne.getSize(new dt.Vector3()), Ne = ne.getCenter(new dt.Vector3()), rt = 5 / Math.max(Ie.x, Ie.y, Ie.z, 1e-3);
+ te.scale.multiplyScalar(rt), ne.setFromObject(te), ne.getCenter(Ne), te.position.set(-Ne.x, -ne.min.y, -Ne.z);
}
- } catch (ie) {
- (Be = console.debug) == null || Be.call(console, "[MJR 3D] normalize skipped:", ie);
+ } catch (ne) {
+ (Ke = console.debug) == null || Ke.call(console, "[MJR 3D] normalize skipped:", ne);
}
- if (R = ge, V = new st.Group(), V.add(ge), v.add(V), q = IA(ge), J = gA(ge), J) {
- B = new st.SkeletonHelper(ge), B.visible = !1, v.add(B);
- const ie = vu({
- defaultBgColor: Cc,
- defaultFov: Fr,
- defaultLightIntensity: Zc,
+ if (F = te, Y = new dt.Group(), Y.add(te), L.add(Y), K = yA(te), J = pA(te), J) {
+ B = new dt.SkeletonHelper(te), B.visible = !1, L.add(B);
+ const ne = Vu({
+ defaultBgColor: Zc,
+ defaultFov: zr,
+ defaultLightIntensity: Ac,
hasSkeleton: !0
});
- o.replaceChild(ie.panel, Z.panel), Object.assign(Z, ie), Z.bgInput.addEventListener("input", () => {
- var me;
+ o.replaceChild(ne.panel, A.panel), Object.assign(A, ne), A.bgInput.addEventListener("input", () => {
+ var Ie;
try {
- v && (v.background = new st.Color(Z.bgInput.value));
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ L && (L.background = new dt.Color(A.bgInput.value));
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
- }), Z.materialSel.addEventListener("change", () => {
- xe(Z.materialSel.value);
- }), Z.upSel.addEventListener("change", () => {
- ze(Z.upSel.value);
- }), Z.skeletonToggle && Z.skeletonToggle.addEventListener("change", () => {
- We(Z.skeletonToggle.checked);
- }), Z.fovSlider.addEventListener("input", () => {
- var Xe;
- const me = Math.max(
+ }), A.materialSel.addEventListener("change", () => {
+ Se(A.materialSel.value);
+ }), A.upSel.addEventListener("change", () => {
+ ke(A.upSel.value);
+ }), A.skeletonToggle && A.skeletonToggle.addEventListener("change", () => {
+ we(A.skeletonToggle.checked);
+ }), A.fovSlider.addEventListener("input", () => {
+ var Ne;
+ const Ie = Math.max(
1,
Math.min(
179,
- Number(Z.fovSlider.value) || Fr
+ Number(A.fovSlider.value) || zr
)
);
try {
- S && (S.fov = me, S.updateProjectionMatrix());
- } catch (qe) {
- (Xe = console.debug) == null || Xe.call(console, qe);
+ G && (G.fov = Ie, G.updateProjectionMatrix());
+ } catch (He) {
+ (Ne = console.debug) == null || Ne.call(console, He);
}
- }), Z.lightSlider.addEventListener("input", () => {
- Fe(Number(Z.lightSlider.value));
+ }), A.lightSlider.addEventListener("input", () => {
+ je(Number(A.lightSlider.value));
});
}
- j = Gu(st, V), j && (X.position.y = j.box.min.y), N = Wi.PERSPECTIVE, de(), kt(), _(), Ee();
- const we = pA(te, Ve);
- we.length > 0 && Ue(we, ge);
- const be = new st.Scene();
- o._mjrAxisScene = be;
- const Oe = new st.PerspectiveCamera(50, 1, 0.1, 100);
- Oe.position.set(0, 0, 3.2), Oe.lookAt(0, 0, 0);
- const ot = 96, dt = [
+ N = ju(dt, Y), N && (R.position.y = N.box.min.y), k = Si.PERSPECTIVE, se(), kt(), _(), Te();
+ const ye = hA(Tt, Xe);
+ ye.length > 0 && Ue(ye, te);
+ const We = new dt.Scene();
+ o._mjrAxisScene = We;
+ const pe = new dt.PerspectiveCamera(50, 1, 0.1, 100);
+ pe.position.set(0, 0, 3.2), pe.lookAt(0, 0, 0);
+ const De = 96, ot = [
{ dir: [1, 0, 0], color: 16724787 },
// X = red
{ dir: [0, 1, 0], color: 3407667 },
// Y = green
{ dir: [0, 0, 1], color: 5605631 }
// Z = blue
- ], en = new st.SphereGeometry(0.1, 12, 8), un = new st.SphereGeometry(0.08, 10, 6), Wt = new st.MeshBasicMaterial({ color: 13421772 });
- be.add(new st.Mesh(un, Wt));
- for (const { dir: ie, color: me } of dt) {
- const Xe = new st.LineBasicMaterial({ color: me }), qe = [
- new st.Vector3(0, 0, 0),
- new st.Vector3(ie[0], ie[1], ie[2])
- ], ut = new st.BufferGeometry().setFromPoints(qe);
- be.add(new st.Line(ut, Xe));
- const jt = new st.MeshBasicMaterial({ color: me }), Yt = new st.Mesh(en, jt);
- Yt.position.set(ie[0], ie[1], ie[2]), be.add(Yt);
+ ], Zt = new dt.SphereGeometry(0.1, 12, 8), tn = new dt.SphereGeometry(0.08, 10, 6), Pt = new dt.MeshBasicMaterial({ color: 13421772 });
+ We.add(new dt.Mesh(tn, Pt));
+ for (const { dir: ne, color: Ie } of ot) {
+ const Ne = new dt.LineBasicMaterial({ color: Ie }), He = [
+ new dt.Vector3(0, 0, 0),
+ new dt.Vector3(ne[0], ne[1], ne[2])
+ ], rt = new dt.BufferGeometry().setFromPoints(He);
+ We.add(new dt.Line(rt, Ne));
+ const St = new dt.MeshBasicMaterial({ color: Ie }), Yt = new dt.Mesh(Zt, St);
+ Yt.position.set(ne[0], ne[1], ne[2]), We.add(Yt);
}
o._mjr3D = {
controls: y,
get camera() {
- return C;
+ return h;
}
};
try {
(nt = n.onReady) == null || nt.call(n, {
canvas: r,
host: o,
- object: V,
+ object: Y,
renderer: b,
- camera: C,
+ camera: h,
controls: y
});
- } catch (ie) {
- (mt = console.debug) == null || mt.call(console, ie);
+ } catch (ne) {
+ (ut = console.debug) == null || ut.call(console, ne);
}
- H();
- const tn = () => {
- var ie, me;
- if (!(g || z || !b || !v || !C)) {
+ U();
+ const vt = () => {
+ var ne, Ie;
+ if (!(g || T || !b || !L || !h)) {
try {
- if ((ie = y == null ? void 0 : y.update) == null || ie.call(y), E && K) {
- const jt = K.getDelta();
- ee && E.update(jt), De();
+ if ((ne = y == null ? void 0 : y.update) == null || ne.call(y), E && oe) {
+ const St = oe.getDelta();
+ q && E.update(St), Je();
}
- b.setScissorTest(!1), b.setViewport(0, 0, r.width, r.height), b.render(v, C);
- const Xe = Math.min(2, window.devicePixelRatio || 1), qe = Math.round(ot * Xe);
- b.setScissorTest(!0), b.setScissor(0, 0, qe, qe), b.setViewport(0, 0, qe, qe), b.setClearColor(0, 0), b.clear(!0, !0, !1);
- const ut = C.quaternion;
- Oe.position.set(0, 0, 3.2).applyQuaternion(ut), Oe.quaternion.copy(ut), b.render(be, Oe), b.setScissorTest(!1);
+ b.setScissorTest(!1), b.setViewport(0, 0, r.width, r.height), b.render(L, h);
+ const Ne = Math.min(2, window.devicePixelRatio || 1), He = Math.round(De * Ne);
+ b.setScissorTest(!0), b.setScissor(0, 0, He, He), b.setViewport(0, 0, He, He), b.setClearColor(0, 0), b.clear(!0, !0, !1);
+ const rt = h.quaternion;
+ pe.position.set(0, 0, 3.2).applyQuaternion(rt), pe.quaternion.copy(rt), b.render(We, pe), b.setScissorTest(!1);
try {
- b.setClearColor(v.background || 0, 1);
+ b.setClearColor(L.background || 0, 1);
} catch {
}
le();
- } catch (Xe) {
- (me = console.debug) == null || me.call(console, Xe);
+ } catch (Ne) {
+ (Ie = console.debug) == null || Ie.call(console, Ne);
}
- z || (k = requestAnimationFrame(tn));
+ T || (X = requestAnimationFrame(vt));
}
};
- G = tn;
- const re = (ie) => Ti(ie, { preventDefault: !0 });
- d.addEventListener("click", (ie) => {
- re(ie), de(), Ee();
- }), u.addEventListener("click", (ie) => {
- re(ie), X && (X.visible = !X.visible), Ee(), H();
- }), I.addEventListener("click", (ie) => {
- re(ie), Ze(
- N === Wi.PERSPECTIVE ? Wi.ORTHOGRAPHIC : Wi.PERSPECTIVE
+ x = vt;
+ const re = (ne) => Ui(ne, { preventDefault: !0 });
+ d.addEventListener("click", (ne) => {
+ re(ne), se(), Te();
+ }), u.addEventListener("click", (ne) => {
+ re(ne), R && (R.visible = !R.visible), Te(), U();
+ }), I.addEventListener("click", (ne) => {
+ re(ne), ge(
+ k === Si.PERSPECTIVE ? Si.ORTHOGRAPHIC : Si.PERSPECTIVE
);
- }), p.addEventListener("click", (ie) => {
- re(ie), ce = !ce, Z.panel.style.display = ce ? "block" : "none", Ee();
- }), z || tn();
- } catch (bt) {
- console.warn("[MJR 3D] preview init failed", bt), $(
+ }), p.addEventListener("click", (ne) => {
+ re(ne), ce = !ce, A.panel.style.display = ce ? "block" : "none", Te();
+ }), T || vt();
+ } catch (It) {
+ console.warn("[MJR 3D] preview init failed", It), Q(
"Failed to load 3D preview",
- String((bt == null ? void 0 : bt.message) || "Three.js initialization failed.")
- ), M.style.display = "none";
+ String((It == null ? void 0 : It.message) || "Three.js initialization failed.")
+ ), S.style.display = "none";
}
- }).catch((Ve) => {
+ }).catch((Xe) => {
if (!g) {
- console.warn("[MJR 3D] preview init unhandled error", Ve);
+ console.warn("[MJR 3D] preview init unhandled error", Xe);
try {
- $(
+ Q(
"Failed to load 3D preview",
- String((Ve == null ? void 0 : Ve.message) || "Initialization failed.")
+ String((Xe == null ? void 0 : Xe.message) || "Initialization failed.")
);
} catch {
}
try {
- M.style.display = "none";
+ S.style.display = "none";
} catch {
}
}
}), o;
}
-function kA({
+function RA({
overlay: e,
content: t,
singleView: n,
@@ -16727,104 +16742,104 @@ function kA({
scheduleOverlayRedraw: a,
lifecycle: c
} = {}) {
- var V, R;
- const s = (c == null ? void 0 : c.safeCall) || pt, d = (c == null ? void 0 : c.safeAddListener) || _e, u = (c == null ? void 0 : c.unsubs) || [], I = () => {
- var j;
+ var Y, F;
+ const s = (c == null ? void 0 : c.safeCall) || bt, d = (c == null ? void 0 : c.safeAddListener) || Qe, u = (c == null ? void 0 : c.unsubs) || [], I = () => {
+ var N;
try {
- return (r == null ? void 0 : r.mode) !== (l == null ? void 0 : l.SINGLE) ? null : ((j = n == null ? void 0 : n.querySelector) == null ? void 0 : j.call(n, ".mjr-viewer-media")) || null;
+ return (r == null ? void 0 : r.mode) !== (l == null ? void 0 : l.SINGLE) ? null : ((N = n == null ? void 0 : n.querySelector) == null ? void 0 : N.call(n, ".mjr-viewer-media")) || null;
} catch {
return null;
}
- }, p = (j) => {
- var L;
+ }, p = (N) => {
+ var V;
try {
- if (!j) return { w: 0, h: 0 };
- const N = Number(j == null ? void 0 : j._mjrNaturalW) || 0, q = Number(j == null ? void 0 : j._mjrNaturalH) || 0;
- if (N > 0 && q > 0)
- return { w: N, h: q };
- if (j.tagName === "IMG")
+ if (!N) return { w: 0, h: 0 };
+ const k = Number(N == null ? void 0 : N._mjrNaturalW) || 0, K = Number(N == null ? void 0 : N._mjrNaturalH) || 0;
+ if (k > 0 && K > 0)
+ return { w: k, h: K };
+ if (N.tagName === "IMG")
return {
- w: Number(j.naturalWidth) || 0,
- h: Number(j.naturalHeight) || 0
+ w: Number(N.naturalWidth) || 0,
+ h: Number(N.naturalHeight) || 0
};
- if (j.tagName === "VIDEO")
- return { w: Number(j.videoWidth) || 0, h: Number(j.videoHeight) || 0 };
- if (j.tagName === "CANVAS") {
- const O = Number(j._mjrNaturalW) || Number(j.width) || 0, B = Number(j._mjrNaturalH) || Number(j.height) || 0;
- return { w: O, h: B };
+ if (N.tagName === "VIDEO")
+ return { w: Number(N.videoWidth) || 0, h: Number(N.videoHeight) || 0 };
+ if (N.tagName === "CANVAS") {
+ const z = Number(N._mjrNaturalW) || Number(N.width) || 0, B = Number(N._mjrNaturalH) || Number(N.height) || 0;
+ return { w: z, h: B };
}
- } catch (N) {
- (L = console.debug) == null || L.call(console, N);
+ } catch (k) {
+ (V = console.debug) == null || V.call(console, k);
}
return { w: 0, h: 0 };
- }, M = () => {
- var j;
+ }, S = () => {
+ var N;
try {
- const L = (j = t == null ? void 0 : t.getBoundingClientRect) == null ? void 0 : j.call(t);
- return L && L.width > 0 && L.height > 0 ? L : null;
+ const V = (N = t == null ? void 0 : t.getBoundingClientRect) == null ? void 0 : N.call(t);
+ return V && V.width > 0 && V.height > 0 ? V : null;
} catch {
return null;
}
- }, Z = () => {
- var j, L;
+ }, A = () => {
+ var N, V;
try {
- let N = n;
- (r == null ? void 0 : r.mode) === (l == null ? void 0 : l.AB_COMPARE) ? N = i : (r == null ? void 0 : r.mode) === (l == null ? void 0 : l.SIDE_BY_SIDE) && (N = o);
- const q = (j = N == null ? void 0 : N.querySelector) == null ? void 0 : j.call(N, ".mjr-viewer-media");
- if (!q) return;
- const { w: O, h: B } = p(q);
- O > 0 && B > 0 && (r._mediaW = O, r._mediaH = B);
- } catch (N) {
- (L = console.debug) == null || L.call(console, N);
+ let k = n;
+ (r == null ? void 0 : r.mode) === (l == null ? void 0 : l.AB_COMPARE) ? k = i : (r == null ? void 0 : r.mode) === (l == null ? void 0 : l.SIDE_BY_SIDE) && (k = o);
+ const K = (N = k == null ? void 0 : k.querySelector) == null ? void 0 : N.call(k, ".mjr-viewer-media");
+ if (!K) return;
+ const { w: z, h: B } = p(K);
+ z > 0 && B > 0 && (r._mediaW = z, r._mediaH = B);
+ } catch (k) {
+ (V = console.debug) == null || V.call(console, k);
}
- }, A = (j, { clampPanToBounds: L, applyTransform: N } = {}) => {
- var O;
- if (!j || j._mjrMediaSizeBound) return;
- j._mjrMediaSizeBound = !0;
- const q = () => {
+ }, C = (N, { clampPanToBounds: V, applyTransform: k } = {}) => {
+ var z;
+ if (!N || N._mjrMediaSizeBound) return;
+ N._mjrMediaSizeBound = !0;
+ const K = () => {
var B, J;
- Z();
+ A();
try {
- L == null || L();
- } catch (T) {
- (B = console.debug) == null || B.call(console, T);
+ V == null || V();
+ } catch (P) {
+ (B = console.debug) == null || B.call(console, P);
}
try {
- N == null || N();
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ k == null || k();
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
};
try {
- j.tagName === "IMG" ? j.addEventListener("load", () => requestAnimationFrame(q), { once: !0 }) : j.tagName === "VIDEO" && j.addEventListener("loadedmetadata", () => requestAnimationFrame(q), {
+ N.tagName === "IMG" ? N.addEventListener("load", () => requestAnimationFrame(K), { once: !0 }) : N.tagName === "VIDEO" && N.addEventListener("loadedmetadata", () => requestAnimationFrame(K), {
once: !0
});
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
}, g = () => {
- var j, L, N;
+ var N, V, k;
try {
if (!e || e.style.display === "none") return;
- const q = Math.max(
- ai.MIN,
- Math.min(ai.MAX, Number(r == null ? void 0 : r.zoom) || 1)
- ), O = (j = r == null ? void 0 : r.assets) == null ? void 0 : j[r == null ? void 0 : r.currentIndex];
- let B = Number(O == null ? void 0 : O.width) || 0, J = Number(O == null ? void 0 : O.height) || 0;
- if (B > 0 && J > 0 || (Z(), B = Number(r == null ? void 0 : r._mediaW) || 0, J = Number(r == null ? void 0 : r._mediaH) || 0), !(B > 0 && J > 0)) return;
- const T = B / J;
- if (!Number.isFinite(T) || T <= 0) return;
- const D = () => {
- var Ze, Fe;
- const $ = Date.now();
+ const K = Math.max(
+ si.MIN,
+ Math.min(si.MAX, Number(r == null ? void 0 : r.zoom) || 1)
+ ), z = (N = r == null ? void 0 : r.assets) == null ? void 0 : N[r == null ? void 0 : r.currentIndex];
+ let B = Number(z == null ? void 0 : z.width) || 0, J = Number(z == null ? void 0 : z.height) || 0;
+ if (B > 0 && J > 0 || (A(), B = Number(r == null ? void 0 : r._mediaW) || 0, J = Number(r == null ? void 0 : r._mediaH) || 0), !(B > 0 && J > 0)) return;
+ const P = B / J;
+ if (!Number.isFinite(P) || P <= 0) return;
+ const H = () => {
+ var ge, je;
+ const Q = Date.now();
try {
- const xe = r == null ? void 0 : r._viewportCache;
- if (xe && xe.mode === (r == null ? void 0 : r.mode) && $ - (xe.at || 0) < 250) {
- const ze = Number(xe.w) || 0, We = Number(xe.h) || 0;
- if (ze > 0 && We > 0) return { w: ze, h: We };
+ const Se = r == null ? void 0 : r._viewportCache;
+ if (Se && Se.mode === (r == null ? void 0 : r.mode) && Q - (Se.at || 0) < 250) {
+ const ke = Number(Se.w) || 0, we = Number(Se.h) || 0;
+ if (ke > 0 && we > 0) return { w: ke, h: we };
}
- } catch (xe) {
- (Ze = console.debug) == null || Ze.call(console, xe);
+ } catch (Se) {
+ (ge = console.debug) == null || ge.call(console, Se);
}
const _ = Math.max(
Number(t == null ? void 0 : t.clientWidth) || 0,
@@ -16832,357 +16847,357 @@ function kA({
), le = Math.max(
Number(t == null ? void 0 : t.clientHeight) || 0,
Number(e == null ? void 0 : e.clientHeight) || 0
- ), se = (xe, ze) => ({
- w: Math.max(Number(xe) || 0, _),
- h: Math.max(Number(ze) || 0, le)
+ ), de = (Se, ke) => ({
+ w: Math.max(Number(Se) || 0, _),
+ h: Math.max(Number(ke) || 0, le)
});
- let de = null;
+ let se = null;
if ((r == null ? void 0 : r.mode) === (l == null ? void 0 : l.SINGLE))
- de = se(n == null ? void 0 : n.clientWidth, n == null ? void 0 : n.clientHeight);
+ se = de(n == null ? void 0 : n.clientWidth, n == null ? void 0 : n.clientHeight);
else if ((r == null ? void 0 : r.mode) === (l == null ? void 0 : l.AB_COMPARE))
- de = se(i == null ? void 0 : i.clientWidth, i == null ? void 0 : i.clientHeight);
+ se = de(i == null ? void 0 : i.clientWidth, i == null ? void 0 : i.clientHeight);
else {
- const xe = Array.from((o == null ? void 0 : o.children) || []).filter(
- (ze) => ze && ze.nodeType === 1
+ const Se = Array.from((o == null ? void 0 : o.children) || []).filter(
+ (ke) => ke && ke.nodeType === 1
);
- if (xe.length) {
- let ze = 1 / 0, We = 1 / 0;
- for (const De of xe) {
- const Pe = Number(De.clientWidth) || 0, Qe = Number(De.clientHeight) || 0;
- Pe > 0 && (ze = Math.min(ze, Pe)), Qe > 0 && (We = Math.min(We, Qe));
+ if (Se.length) {
+ let ke = 1 / 0, we = 1 / 0;
+ for (const Je of Se) {
+ const $e = Number(Je.clientWidth) || 0, qe = Number(Je.clientHeight) || 0;
+ $e > 0 && (ke = Math.min(ke, $e)), qe > 0 && (we = Math.min(we, qe));
}
- Number.isFinite(ze) && Number.isFinite(We) && (de = se(ze, We));
+ Number.isFinite(ke) && Number.isFinite(we) && (se = de(ke, we));
}
- de || (de = se(o == null ? void 0 : o.clientWidth, o == null ? void 0 : o.clientHeight));
+ se || (se = de(o == null ? void 0 : o.clientWidth, o == null ? void 0 : o.clientHeight));
}
try {
- r._viewportCache = { mode: r == null ? void 0 : r.mode, w: de.w, h: de.h, at: $ };
- } catch (xe) {
- (Fe = console.debug) == null || Fe.call(console, xe);
+ r._viewportCache = { mode: r == null ? void 0 : r.mode, w: se.w, h: se.h, at: Q };
+ } catch (Se) {
+ (je = console.debug) == null || je.call(console, Se);
}
- return de;
- }, { w: Q, h: E } = D();
- if (!(Q > 0 && E > 0)) {
- ((L = e == null ? void 0 : e.style) == null ? void 0 : L.display) !== "none" && requestAnimationFrame(g);
+ return se;
+ }, { w: $, h: E } = H();
+ if (!($ > 0 && E > 0)) {
+ ((V = e == null ? void 0 : e.style) == null ? void 0 : V.display) !== "none" && requestAnimationFrame(g);
return;
}
- const K = Q / E;
- let F = 0, Y = 0;
- T > K ? (F = Q, Y = Q / T) : (Y = E, F = E * T);
- const U = F * q, P = Y * q, ee = U > Q + 1 || P > E + 1;
- if (!(q > 1.001) && !ee) {
+ const oe = $ / E;
+ let M = 0, j = 0;
+ P > oe ? (M = $, j = $ / P) : (j = E, M = E * P);
+ const O = M * K, D = j * K, q = O > $ + 1 || D > E + 1;
+ if (!(K > 1.001) && !q) {
r.panX = 0, r.panY = 0;
return;
}
- const oe = Math.max(0, U - Q), ce = Math.max(0, P - E), pe = oe / 2 * q, H = ce / 2 * q;
- r.panX = Math.max(-pe, Math.min(pe, Number(r == null ? void 0 : r.panX) || 0)), r.panY = Math.max(-H, Math.min(H, Number(r == null ? void 0 : r.panY) || 0));
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ const ee = Math.max(0, O - $), ce = Math.max(0, D - E), ue = ee / 2 * K, U = ce / 2 * K;
+ r.panX = Math.max(-ue, Math.min(ue, Number(r == null ? void 0 : r.panX) || 0)), r.panY = Math.max(-U, Math.min(U, Number(r == null ? void 0 : r.panY) || 0));
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
- }, h = () => {
- const j = Math.max(ai.MIN, Math.min(ai.MAX, Number(r == null ? void 0 : r.zoom) || 1)), L = Number(r == null ? void 0 : r.panX) || 0, N = Number(r == null ? void 0 : r.panY) || 0, q = L / j, O = N / j;
- return `translate3d(${q}px, ${O}px, 0) scale(${j})`;
+ }, Z = () => {
+ const N = Math.max(si.MIN, Math.min(si.MAX, Number(r == null ? void 0 : r.zoom) || 1)), V = Number(r == null ? void 0 : r.panX) || 0, k = Number(r == null ? void 0 : r.panY) || 0, K = V / N, z = k / N;
+ return `translate3d(${K}px, ${z}px, 0) scale(${N})`;
}, f = () => {
- var j;
+ var N;
try {
if (!t) return;
if (!e || e.style.display === "none") {
t.style.cursor = "";
return;
}
- const L = Number(r == null ? void 0 : r.zoom) || 1, N = I(), { w: q, h: O } = p(N) || { w: 0, h: 0 }, B = M(), J = B && q > 0 && O > 0 ? y(q, O, B.width, B.height, L) : !1;
- if (!(L > 1.01 || J)) {
+ const V = Number(r == null ? void 0 : r.zoom) || 1, k = I(), { w: K, h: z } = p(k) || { w: 0, h: 0 }, B = S(), J = B && K > 0 && z > 0 ? y(K, z, B.width, B.height, V) : !1;
+ if (!(V > 1.01 || J)) {
t.style.cursor = "";
return;
}
t.style.cursor = "grab";
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
}, b = () => {
- var j, L, N, q, O;
+ var N, V, k, K, z;
try {
g();
- const B = h(), J = S(), T = ((j = e == null ? void 0 : e.querySelectorAll) == null ? void 0 : j.call(e, ".mjr-viewer-media")) || [];
- for (const D of T)
+ const B = Z(), J = G(), P = ((N = e == null ? void 0 : e.querySelectorAll) == null ? void 0 : N.call(e, ".mjr-viewer-media")) || [];
+ for (const H of P)
try {
- if (D != null && D._mjrDisableViewerTransform) continue;
- const Q = W(D, J), E = ((L = Q == null ? void 0 : Q.getBoundingClientRect) == null ? void 0 : L.call(Q)) || null;
+ if (H != null && H._mjrDisableViewerTransform) continue;
+ const $ = W(H, J), E = ((V = $ == null ? void 0 : $.getBoundingClientRect) == null ? void 0 : V.call($)) || null;
if (E) {
- const K = Number(E.width) || 0, F = Number(E.height) || 0;
- if (K > 1 && F > 1) {
- const { w: Y, h: U } = p(D) || { w: 0, h: 0 };
- if (Y > 0 && U > 0) {
- const P = C(Y, U, K, F);
- P.w > 1 && P.h > 1 && (D.style.width = `${Math.round(P.w)}px`, D.style.height = `${Math.round(P.h)}px`);
+ const oe = Number(E.width) || 0, M = Number(E.height) || 0;
+ if (oe > 1 && M > 1) {
+ const { w: j, h: O } = p(H) || { w: 0, h: 0 };
+ if (j > 0 && O > 0) {
+ const D = h(j, O, oe, M);
+ D.w > 1 && D.h > 1 && (H.style.width = `${Math.round(D.w)}px`, H.style.height = `${Math.round(D.h)}px`);
}
}
}
- D.style.transform = B;
- } catch (Q) {
- (N = console.debug) == null || N.call(console, Q);
+ H.style.transform = B;
+ } catch ($) {
+ (k = console.debug) == null || k.call(console, $);
}
try {
a == null || a(!0);
- } catch (D) {
- (q = console.debug) == null || q.call(console, D);
+ } catch (H) {
+ (K = console.debug) == null || K.call(console, H);
}
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
- }, v = (j, { clientX: L = null, clientY: N = null } = {}) => {
- var q, O, B, J;
+ }, L = (N, { clientX: V = null, clientY: k = null } = {}) => {
+ var K, z, B, J;
try {
- const T = Math.max(
- ai.MIN,
- Math.min(ai.MAX, Number(r == null ? void 0 : r.zoom) || 1)
- ), D = Math.max(
- ai.MIN,
- Math.min(ai.MAX, Number(j) || T)
+ const P = Math.max(
+ si.MIN,
+ Math.min(si.MAX, Number(r == null ? void 0 : r.zoom) || 1)
+ ), H = Math.max(
+ si.MIN,
+ Math.min(si.MAX, Number(N) || P)
);
try {
r._userInteracted = !0;
- } catch (F) {
- (q = console.debug) == null || q.call(console, F);
+ } catch (M) {
+ (K = console.debug) == null || K.call(console, M);
}
- let Q = Number(r == null ? void 0 : r.panX) || 0, E = Number(r == null ? void 0 : r.panY) || 0;
- if (L != null && N != null && Number.isFinite(Number(L)) && Number.isFinite(Number(N)))
+ let $ = Number(r == null ? void 0 : r.panX) || 0, E = Number(r == null ? void 0 : r.panY) || 0;
+ if (V != null && k != null && Number.isFinite(Number(V)) && Number.isFinite(Number(k)))
try {
- const F = (O = t == null ? void 0 : t.getBoundingClientRect) == null ? void 0 : O.call(t);
- if (F && F.width > 0 && F.height > 0) {
- const Y = F.left + F.width / 2, U = F.top + F.height / 2, P = (Number(L) || 0) - Y, ee = (Number(N) || 0) - U, oe = D / T;
- Q = Math.round(((Number(r == null ? void 0 : r.panX) || 0) * oe + (1 - oe) * P) * 10) / 10, E = Math.round(((Number(r == null ? void 0 : r.panY) || 0) * oe + (1 - oe) * ee) * 10) / 10;
+ const M = (z = t == null ? void 0 : t.getBoundingClientRect) == null ? void 0 : z.call(t);
+ if (M && M.width > 0 && M.height > 0) {
+ const j = M.left + M.width / 2, O = M.top + M.height / 2, D = (Number(V) || 0) - j, q = (Number(k) || 0) - O, ee = H / P;
+ $ = Math.round(((Number(r == null ? void 0 : r.panX) || 0) * ee + (1 - ee) * D) * 10) / 10, E = Math.round(((Number(r == null ? void 0 : r.panY) || 0) * ee + (1 - ee) * q) * 10) / 10;
}
- } catch (F) {
- (B = console.debug) == null || B.call(console, F);
+ } catch (M) {
+ (B = console.debug) == null || B.call(console, M);
}
- else if (D !== T) {
- const F = D / T;
- Q = Math.round((Number(r == null ? void 0 : r.panX) || 0) * F * 10) / 10, E = Math.round((Number(r == null ? void 0 : r.panY) || 0) * F * 10) / 10;
+ else if (H !== P) {
+ const M = H / P;
+ $ = Math.round((Number(r == null ? void 0 : r.panX) || 0) * M * 10) / 10, E = Math.round((Number(r == null ? void 0 : r.panY) || 0) * M * 10) / 10;
}
- r.zoom = D, r.panX = Q, r.panY = E, Math.abs(r.zoom - 1) < 1e-3 && (r.zoom = 1, r.panX = 0, r.panY = 0), r.targetZoom = r.zoom, b(), f();
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ r.zoom = H, r.panX = $, r.panY = E, Math.abs(r.zoom - 1) < 1e-3 && (r.zoom = 1, r.panX = 0, r.panY = 0), r.targetZoom = r.zoom, b(), f();
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
- }, C = (j, L, N, q) => {
+ }, h = (N, V, k, K) => {
try {
- const O = Number(j) || 0, B = Number(L) || 0, J = Number(N) || 0, T = Number(q) || 0;
- if (!(O > 0 && B > 0 && J > 0 && T > 0)) return { w: 0, h: 0 };
- const D = O / B;
- return !Number.isFinite(D) || D <= 0 ? { w: 0, h: 0 } : { w: T * D, h: T };
+ const z = Number(N) || 0, B = Number(V) || 0, J = Number(k) || 0, P = Number(K) || 0;
+ if (!(z > 0 && B > 0 && J > 0 && P > 0)) return { w: 0, h: 0 };
+ const H = z / B;
+ return !Number.isFinite(H) || H <= 0 ? { w: 0, h: 0 } : { w: P * H, h: P };
} catch {
return { w: 0, h: 0 };
}
- }, S = () => {
+ }, G = () => {
try {
- const j = r == null ? void 0 : r.mode;
- return j === (l == null ? void 0 : l.AB_COMPARE) ? i || t || null : j === (l == null ? void 0 : l.SIDE_BY_SIDE) ? o || t || null : n || t || null;
+ const N = r == null ? void 0 : r.mode;
+ return N === (l == null ? void 0 : l.AB_COMPARE) ? i || t || null : N === (l == null ? void 0 : l.SIDE_BY_SIDE) ? o || t || null : n || t || null;
} catch {
return t || null;
}
- }, W = (j, L) => {
+ }, W = (N, V) => {
try {
- if (!j) return L || null;
- const N = r == null ? void 0 : r.mode;
- if (N === (l == null ? void 0 : l.SIDE_BY_SIDE) || N === (l == null ? void 0 : l.AB_COMPARE)) {
- let q = j;
- for (; q && q !== L && q.parentElement; ) {
- if (q.parentElement === L) return q;
- q = q.parentElement;
+ if (!N) return V || null;
+ const k = r == null ? void 0 : r.mode;
+ if (k === (l == null ? void 0 : l.SIDE_BY_SIDE) || k === (l == null ? void 0 : l.AB_COMPARE)) {
+ let K = N;
+ for (; K && K !== V && K.parentElement; ) {
+ if (K.parentElement === V) return K;
+ K = K.parentElement;
}
- return L || null;
+ return V || null;
}
- return L || t || null;
+ return V || t || null;
} catch {
- return L || t || null;
+ return V || t || null;
}
- }, y = (j, L, N, q, O) => {
+ }, y = (N, V, k, K, z) => {
try {
- const B = C(j, L, N, q);
+ const B = h(N, V, k, K);
if (!(B.w > 0 && B.h > 0)) return !1;
- const J = Math.max(ai.MIN, Math.min(ai.MAX, Number(O) || 1)), T = B.w * J, D = B.h * J;
- return T > (Number(N) || 0) + 1 || D > (Number(q) || 0) + 1;
+ const J = Math.max(si.MIN, Math.min(si.MAX, Number(z) || 1)), P = B.w * J, H = B.h * J;
+ return P > (Number(k) || 0) + 1 || H > (Number(K) || 0) + 1;
} catch {
return !1;
}
- }, k = () => {
+ }, X = () => {
try {
- const j = I();
- if (!j) return null;
- const { w: L, h: N } = p(j);
- if (!(L > 0 && N > 0)) return null;
- const q = M();
- if (!q) return null;
- const O = C(L, N, q.width, q.height);
- if (!(O.w > 0 && O.h > 0)) return null;
- const B = L / O.w;
- return !Number.isFinite(B) || B <= 0 ? null : Math.max(ai.MIN, Math.min(ai.MAX, B));
+ const N = I();
+ if (!N) return null;
+ const { w: V, h: k } = p(N);
+ if (!(V > 0 && k > 0)) return null;
+ const K = S();
+ if (!K) return null;
+ const z = h(V, k, K.width, K.height);
+ if (!(z.w > 0 && z.h > 0)) return null;
+ const B = V / z.w;
+ return !Number.isFinite(B) || B <= 0 ? null : Math.max(si.MIN, Math.min(si.MAX, B));
} catch {
return null;
}
- }, G = {
+ }, x = {
active: !1,
pointerId: null,
startX: 0,
startY: 0,
startPanX: 0,
startPanY: 0
- }, z = (j) => {
- var J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $, _, le, se;
- if (!e || e.style.display === "none" || Ac(j == null ? void 0 : j.target)) return;
- const L = Number(r == null ? void 0 : r.zoom) || 1, N = (() => {
+ }, T = (N) => {
+ var J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue, U, Q, _, le, de;
+ if (!e || e.style.display === "none" || Wc(N == null ? void 0 : N.target)) return;
+ const V = Number(r == null ? void 0 : r.zoom) || 1, k = (() => {
try {
- return !!(ye != null && ye.VIEWER_ALLOW_PAN_AT_ZOOM_1);
+ return !!(fe != null && fe.VIEWER_ALLOW_PAN_AT_ZOOM_1);
} catch {
return !1;
}
})();
if (!(() => {
try {
- if (N) return !0;
- const de = I(), { w: Ze, h: Fe } = p(de) || { w: 0, h: 0 }, xe = M();
- return !xe || !(Ze > 0 && Fe > 0) ? L > 1.01 : L > 1.01 || y(Ze, Fe, xe.width, xe.height, L);
+ if (k) return !0;
+ const se = I(), { w: ge, h: je } = p(se) || { w: 0, h: 0 }, Se = S();
+ return !Se || !(ge > 0 && je > 0) ? V > 1.01 : V > 1.01 || y(ge, je, Se.width, Se.height, V);
} catch {
- return L > 1.01;
+ return V > 1.01;
}
})()) {
try {
- r._panHintAt = Date.now(), r._panHintX = (j == null ? void 0 : j.clientX) ?? null, r._panHintY = (j == null ? void 0 : j.clientY) ?? null;
- } catch (de) {
- (J = console.debug) == null || J.call(console, de);
+ r._panHintAt = Date.now(), r._panHintX = (N == null ? void 0 : N.clientX) ?? null, r._panHintY = (N == null ? void 0 : N.clientY) ?? null;
+ } catch (se) {
+ (J = console.debug) == null || J.call(console, se);
}
try {
r._panHintTimer && clearTimeout(r._panHintTimer);
- } catch (de) {
- (T = console.debug) == null || T.call(console, de);
+ } catch (se) {
+ (P = console.debug) == null || P.call(console, se);
}
try {
r._panHintTimer = setTimeout(() => {
- var de;
+ var se;
try {
r._panHintAt = 0;
- } catch (Ze) {
- (de = console.debug) == null || de.call(console, Ze);
+ } catch (ge) {
+ (se = console.debug) == null || se.call(console, ge);
}
s(a);
}, 950);
- } catch (de) {
- (D = console.debug) == null || D.call(console, de);
+ } catch (se) {
+ (H = console.debug) == null || H.call(console, se);
}
s(a);
return;
}
- const O = j.button === 0, B = j.button === 1;
- if (!(!O && !B)) {
+ const z = N.button === 0, B = N.button === 1;
+ if (!(!z && !B)) {
try {
- const de = j.target;
- if (de && (de.tagName === "INPUT" || de.tagName === "TEXTAREA" || de.tagName === "SELECT" || de.isContentEditable))
+ const se = N.target;
+ if (se && (se.tagName === "INPUT" || se.tagName === "TEXTAREA" || se.tagName === "SELECT" || se.isContentEditable))
return;
- } catch (de) {
- (Q = console.debug) == null || Q.call(console, de);
+ } catch (se) {
+ ($ = console.debug) == null || $.call(console, se);
}
try {
- if ((K = (E = j == null ? void 0 : j.target) == null ? void 0 : E.closest) != null && K.call(E, ".mjr-video-controls") || (Y = (F = j == null ? void 0 : j.target) == null ? void 0 : F.closest) != null && Y.call(F, ".mjr-context-menu") || (P = (U = j == null ? void 0 : j.target) == null ? void 0 : U.closest) != null && P.call(U, ".mjr-ab-slider") || Ac(j == null ? void 0 : j.target)) return;
- } catch (de) {
- (ee = console.debug) == null || ee.call(console, de);
+ if ((oe = (E = N == null ? void 0 : N.target) == null ? void 0 : E.closest) != null && oe.call(E, ".mjr-video-controls") || (j = (M = N == null ? void 0 : N.target) == null ? void 0 : M.closest) != null && j.call(M, ".mjr-context-menu") || (D = (O = N == null ? void 0 : N.target) == null ? void 0 : O.closest) != null && D.call(O, ".mjr-ab-slider") || Wc(N == null ? void 0 : N.target)) return;
+ } catch (se) {
+ (q = console.debug) == null || q.call(console, se);
}
try {
- if (!((oe = t == null ? void 0 : t.contains) != null && oe.call(t, j.target))) return;
+ if (!((ee = t == null ? void 0 : t.contains) != null && ee.call(t, N.target))) return;
} catch {
return;
}
- G.active = !0;
+ x.active = !0;
try {
r._userInteracted = !0;
- } catch (de) {
- (ce = console.debug) == null || ce.call(console, de);
+ } catch (se) {
+ (ce = console.debug) == null || ce.call(console, se);
}
- G.pointerId = j.pointerId;
+ x.pointerId = N.pointerId;
try {
- r._lastPointerX = j.clientX, r._lastPointerY = j.clientY;
- } catch (de) {
- (pe = console.debug) == null || pe.call(console, de);
+ r._lastPointerX = N.clientX, r._lastPointerY = N.clientY;
+ } catch (se) {
+ (ue = console.debug) == null || ue.call(console, se);
}
- G.startX = j.clientX, G.startY = j.clientY, G.startPanX = Number(r == null ? void 0 : r.panX) || 0, G.startPanY = Number(r == null ? void 0 : r.panY) || 0;
+ x.startX = N.clientX, x.startY = N.clientY, x.startPanX = Number(r == null ? void 0 : r.panX) || 0, x.startPanY = Number(r == null ? void 0 : r.panY) || 0;
try {
- j.preventDefault(), j.stopPropagation(), (H = j.stopImmediatePropagation) == null || H.call(j);
- } catch (de) {
- ($ = console.debug) == null || $.call(console, de);
+ N.preventDefault(), N.stopPropagation(), (U = N.stopImmediatePropagation) == null || U.call(N);
+ } catch (se) {
+ (Q = console.debug) == null || Q.call(console, se);
}
try {
- (_ = t == null ? void 0 : t.setPointerCapture) == null || _.call(t, j.pointerId);
- } catch (de) {
- (le = console.debug) == null || le.call(console, de);
+ (_ = t == null ? void 0 : t.setPointerCapture) == null || _.call(t, N.pointerId);
+ } catch (se) {
+ (le = console.debug) == null || le.call(console, se);
}
try {
t && (t.style.cursor = "grabbing");
- } catch (de) {
- (se = console.debug) == null || se.call(console, de);
+ } catch (se) {
+ (de = console.debug) == null || de.call(console, se);
}
}
- }, x = (j) => {
- var B, J, T, D, Q, E;
- if (!G.active) return;
+ }, v = (N) => {
+ var B, J, P, H, $, E;
+ if (!x.active) return;
try {
- if ((J = (B = j == null ? void 0 : j.target) == null ? void 0 : B.closest) != null && J.call(B, ".mjr-video-controls")) return;
- } catch (K) {
- (T = console.debug) == null || T.call(console, K);
+ if ((J = (B = N == null ? void 0 : N.target) == null ? void 0 : B.closest) != null && J.call(B, ".mjr-video-controls")) return;
+ } catch (oe) {
+ (P = console.debug) == null || P.call(console, oe);
}
try {
- j.preventDefault(), j.stopPropagation(), (D = j.stopImmediatePropagation) == null || D.call(j);
- } catch (K) {
- (Q = console.debug) == null || Q.call(console, K);
+ N.preventDefault(), N.stopPropagation(), (H = N.stopImmediatePropagation) == null || H.call(N);
+ } catch (oe) {
+ ($ = console.debug) == null || $.call(console, oe);
}
- const L = (Number(j.clientX) || 0) - G.startX, N = (Number(j.clientY) || 0) - G.startY, q = Math.max(ai.MIN, Math.min(ai.MAX, Number(r == null ? void 0 : r.zoom) || 1)), O = Math.max(1, q);
- r.panX = G.startPanX + L * O, r.panY = G.startPanY + N * O;
+ const V = (Number(N.clientX) || 0) - x.startX, k = (Number(N.clientY) || 0) - x.startY, K = Math.max(si.MIN, Math.min(si.MAX, Number(r == null ? void 0 : r.zoom) || 1)), z = Math.max(1, K);
+ r.panX = x.startPanX + V * z, r.panY = x.startPanY + k * z;
try {
- r._lastPointerX = j.clientX, r._lastPointerY = j.clientY;
- } catch (K) {
- (E = console.debug) == null || E.call(console, K);
+ r._lastPointerX = N.clientX, r._lastPointerY = N.clientY;
+ } catch (oe) {
+ (E = console.debug) == null || E.call(console, oe);
}
b(), f();
- }, w = (j) => {
- var L, N;
- if (G.active) {
- G.active = !1, G.pointerId = null;
+ }, w = (N) => {
+ var V, k;
+ if (x.active) {
+ x.active = !1, x.pointerId = null;
try {
- (L = t == null ? void 0 : t.releasePointerCapture) == null || L.call(t, j.pointerId);
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ (V = t == null ? void 0 : t.releasePointerCapture) == null || V.call(t, N.pointerId);
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
f();
}
- }, X = (j) => {
- var N, q, O, B, J;
+ }, R = (N) => {
+ var k, K, z, B, J;
if (!e || e.style.display === "none") return;
try {
- if (!((N = t == null ? void 0 : t.contains) != null && N.call(t, j.target))) return;
- } catch (T) {
- (q = console.debug) == null || q.call(console, T);
+ if (!((k = t == null ? void 0 : t.contains) != null && k.call(t, N.target))) return;
+ } catch (P) {
+ (K = console.debug) == null || K.call(console, P);
}
try {
- if (Ac(j == null ? void 0 : j.target)) return;
- } catch (T) {
- (O = console.debug) == null || O.call(console, T);
+ if (Wc(N == null ? void 0 : N.target)) return;
+ } catch (P) {
+ (z = console.debug) == null || z.call(console, P);
}
try {
- j.preventDefault(), j.stopPropagation(), (B = j.stopImmediatePropagation) == null || B.call(j);
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ N.preventDefault(), N.stopPropagation(), (B = N.stopImmediatePropagation) == null || B.call(N);
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
- Math.abs((Number(r == null ? void 0 : r.targetZoom) || 1) - 1) < 0.01 ? v(Math.min(8, (Number(r == null ? void 0 : r.targetZoom) || 1) * 4), {
- clientX: j.clientX,
- clientY: j.clientY
- }) : v(1, { clientX: j.clientX, clientY: j.clientY });
+ Math.abs((Number(r == null ? void 0 : r.targetZoom) || 1) - 1) < 0.01 ? L(Math.min(8, (Number(r == null ? void 0 : r.targetZoom) || 1) * 4), {
+ clientX: N.clientX,
+ clientY: N.clientY
+ }) : L(1, { clientX: N.clientX, clientY: N.clientY });
};
try {
t && !t._mjrPanBound && (u.push(
- d(t, "pointerdown", z, {
+ d(t, "pointerdown", T, {
passive: !1,
capture: !0
})
), u.push(
- d(t, "pointermove", x, {
+ d(t, "pointermove", v, {
passive: !1,
capture: !0
})
@@ -17197,39 +17212,39 @@ function kA({
capture: !0
})
), t._mjrPanBound = !0);
- } catch (j) {
- (V = console.debug) == null || V.call(console, j);
+ } catch (N) {
+ (Y = console.debug) == null || Y.call(console, N);
}
try {
t && !t._mjrDblClickResetBound && (u.push(
- d(t, "dblclick", X, {
+ d(t, "dblclick", R, {
passive: !1,
capture: !0
})
), t._mjrDblClickResetBound = !0);
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
return {
getPrimaryMedia: I,
getMediaNaturalSize: p,
- getViewportRect: M,
- updateMediaNaturalSize: Z,
- attachMediaLoadHandlers: A,
+ getViewportRect: S,
+ updateMediaNaturalSize: A,
+ attachMediaLoadHandlers: C,
clampPanToBounds: g,
- mediaTransform: h,
+ mediaTransform: Z,
applyTransform: b,
- setZoom: v,
- computeOneToOneZoom: k,
+ setZoom: L,
+ computeOneToOneZoom: X,
updatePanCursor: f,
dispose: () => {
s(() => {
- G.active = !1, G.pointerId = null;
+ x.active = !1, x.pointerId = null;
});
}
};
}
-const XA = `
+const FA = `
attribute vec2 a_position;
varying vec2 v_uv;
void main() {
@@ -17239,9 +17254,9 @@ void main() {
v_uv = a_position * 0.5 + 0.5;
// In WebGL, textures are usually flipped relative to Image/Video elements if not handled.
// We'll flip Y in fragment shader or here.
- v_uv.y = 1.0 - v_uv.y;
+ v_uv.y = 1.0 - v_uv.y;
}
-`, NA = `
+`, OA = `
precision mediump float;
varying vec2 v_uv;
uniform sampler2D u_image;
@@ -17269,7 +17284,7 @@ void main() {
isZebra = true;
// Stripe pattern: (x + y) % 16 < 8
// gl_FragCoord is in window pixels
- float stripe = mod(gl_FragCoord.x + gl_FragCoord.y, 32.0);
+ float stripe = mod(gl_FragCoord.x + gl_FragCoord.y, 32.0);
if (stripe < 16.0) {
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); // Black
} else {
@@ -17292,11 +17307,11 @@ void main() {
}
}
`;
-function Vu(e, t, n) {
+function Xu(e, t, n) {
const i = e.createShader(t);
return e.shaderSource(i, n), e.compileShader(i), e.getShaderParameter(i, e.COMPILE_STATUS) ? i : (console.warn("WebGL Shader Error:", e.getShaderInfoLog(i)), e.deleteShader(i), null);
}
-function RA(e, t, n) {
+function zA(e, t, n) {
var o;
const i = e.createProgram();
if (e.attachShader(i, t), e.attachShader(i, n), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS)) {
@@ -17310,7 +17325,7 @@ function RA(e, t, n) {
}
return i;
}
-function FA() {
+function JA() {
try {
const e = document.createElement("canvas");
return !!(window.WebGLRenderingContext && (e.getContext("webgl") || e.getContext("experimental-webgl")));
@@ -17318,7 +17333,7 @@ function FA() {
return !1;
}
}
-function OA(e) {
+function TA(e) {
const { canvas: t, videoEl: n, getGradeParams: i } = e;
let o = null, r = null, l = 4096, a = !1;
const c = {
@@ -17327,73 +17342,73 @@ function OA(e) {
};
function s() {
var f, b;
- let h = null;
+ let Z = null;
try {
- h = t.getContext("webgl", { alpha: !1, preserveDrawingBuffer: !0 });
- } catch (v) {
- (f = console.debug) == null || f.call(console, v);
+ Z = t.getContext("webgl", { alpha: !1, preserveDrawingBuffer: !0 });
+ } catch (L) {
+ (f = console.debug) == null || f.call(console, L);
}
- if (!h)
+ if (!Z)
try {
- h = t.getContext("experimental-webgl", {
+ Z = t.getContext("experimental-webgl", {
alpha: !1,
preserveDrawingBuffer: !0
});
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
- return h && (l = h.getParameter(h.MAX_TEXTURE_SIZE) || 4096), h;
+ return Z && (l = Z.getParameter(Z.MAX_TEXTURE_SIZE) || 4096), Z;
}
- const d = (h = "") => {
+ const d = (Z = "") => {
if (!o) return;
const f = o.getError();
- f !== o.NO_ERROR && console.error(`WebGL Error [${h}]: ${f}`);
+ f !== o.NO_ERROR && console.error(`WebGL Error [${Z}]: ${f}`);
}, u = () => {
- var v, C, S, W, y, k;
+ var L, h, G, W, y, X;
if (!o || !r) return;
- const { positionBuffer: h, texture: f, program: b } = r;
+ const { positionBuffer: Z, texture: f, program: b } = r;
try {
o.bindTexture(o.TEXTURE_2D, null);
- } catch (G) {
- (v = console.debug) == null || v.call(console, G);
+ } catch (x) {
+ (L = console.debug) == null || L.call(console, x);
}
try {
o.bindBuffer(o.ARRAY_BUFFER, null);
- } catch (G) {
- (C = console.debug) == null || C.call(console, G);
+ } catch (x) {
+ (h = console.debug) == null || h.call(console, x);
}
try {
o.useProgram(null);
- } catch (G) {
- (S = console.debug) == null || S.call(console, G);
+ } catch (x) {
+ (G = console.debug) == null || G.call(console, x);
}
try {
o.deleteTexture(f);
- } catch (G) {
- (W = console.debug) == null || W.call(console, G);
+ } catch (x) {
+ (W = console.debug) == null || W.call(console, x);
}
try {
- o.deleteBuffer(h);
- } catch (G) {
- (y = console.debug) == null || y.call(console, G);
+ o.deleteBuffer(Z);
+ } catch (x) {
+ (y = console.debug) == null || y.call(console, x);
}
try {
o.deleteProgram(b);
- } catch (G) {
- (k = console.debug) == null || k.call(console, G);
+ } catch (x) {
+ (X = console.debug) == null || X.call(console, x);
}
r = null;
}, I = () => {
if (!o) return null;
u();
- const h = Vu(o, o.VERTEX_SHADER, XA), f = Vu(o, o.FRAGMENT_SHADER, NA);
- if (!h || !f)
- return h && o.deleteShader(h), f && o.deleteShader(f), null;
- const b = RA(o, h, f);
- if (o.deleteShader(h), o.deleteShader(f), !b)
+ const Z = Xu(o, o.VERTEX_SHADER, FA), f = Xu(o, o.FRAGMENT_SHADER, OA);
+ if (!Z || !f)
+ return Z && o.deleteShader(Z), f && o.deleteShader(f), null;
+ const b = zA(o, Z, f);
+ if (o.deleteShader(Z), o.deleteShader(f), !b)
return null;
d("setupResources:createProgram");
- const v = {
+ const L = {
position: o.getAttribLocation(b, "a_position"),
u_image: o.getUniformLocation(b, "u_image"),
u_exposure: o.getUniformLocation(b, "u_exposure_scale"),
@@ -17402,60 +17417,60 @@ function OA(e) {
u_analysis: o.getUniformLocation(b, "u_analysis"),
u_thresh: o.getUniformLocation(b, "u_zebra_threshold"),
u_res: o.getUniformLocation(b, "u_resolution")
- }, C = o.createBuffer();
- o.bindBuffer(o.ARRAY_BUFFER, C), o.bufferData(
+ }, h = o.createBuffer();
+ o.bindBuffer(o.ARRAY_BUFFER, h), o.bufferData(
o.ARRAY_BUFFER,
new Float32Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1]),
o.STATIC_DRAW
), d("setupResources:bufferData");
- const S = o.createTexture();
- return o.bindTexture(o.TEXTURE_2D, S), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_WRAP_S, o.CLAMP_TO_EDGE), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_WRAP_T, o.CLAMP_TO_EDGE), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, o.LINEAR), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, o.LINEAR), d("setupResources:texSetup"), { program: b, loc: v, positionBuffer: C, texture: S };
- }, p = () => a || c._destroyed || (o || (o = s()), !o) ? !1 : (r || (r = I()), !!r), M = () => {
+ const G = o.createTexture();
+ return o.bindTexture(o.TEXTURE_2D, G), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_WRAP_S, o.CLAMP_TO_EDGE), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_WRAP_T, o.CLAMP_TO_EDGE), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, o.LINEAR), o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, o.LINEAR), d("setupResources:texSetup"), { program: b, loc: L, positionBuffer: h, texture: G };
+ }, p = () => a || c._destroyed || (o || (o = s()), !o) ? !1 : (r || (r = I()), !!r), S = () => {
if (!a && o && (n != null && n.videoWidth)) {
- let h = n.videoWidth, f = n.videoHeight;
+ let Z = n.videoWidth, f = n.videoHeight;
const b = l || o.getParameter(o.MAX_TEXTURE_SIZE) || 4096;
- if (h > b || f > b) {
- const v = Math.min(b / h, b / f);
- h = Math.floor(h * v), f = Math.floor(f * v);
+ if (Z > b || f > b) {
+ const L = Math.min(b / Z, b / f);
+ Z = Math.floor(Z * L), f = Math.floor(f * L);
}
- return (t.width !== h || t.height !== f) && (t.width = h, t.height = f, o.viewport(0, 0, h, f)), !0;
+ return (t.width !== Z || t.height !== f) && (t.width = Z, t.height = f, o.viewport(0, 0, Z, f)), !0;
}
return !1;
- }, Z = (h) => {
- if (!a && p() && M()) {
- const { program: f, loc: b, positionBuffer: v, texture: C } = r;
- o.useProgram(f), o.activeTexture(o.TEXTURE0), o.bindTexture(o.TEXTURE_2D, C);
+ }, A = (Z) => {
+ if (!a && p() && S()) {
+ const { program: f, loc: b, positionBuffer: L, texture: h } = r;
+ o.useProgram(f), o.activeTexture(o.TEXTURE0), o.bindTexture(o.TEXTURE_2D, h);
try {
o.texImage2D(o.TEXTURE_2D, 0, o.RGBA, o.RGBA, o.UNSIGNED_BYTE, n);
- } catch (z) {
- console.warn("WebGL texImage2D failed", z), d("texImage2D");
+ } catch (T) {
+ console.warn("WebGL texImage2D failed", T), d("texImage2D");
return;
}
d("texImage2D"), o.uniform1i(b.u_image, 0);
- const S = h || (i ? i() : {}), W = Number(S.exposureEV) || 0, y = Math.max(0.1, Math.min(3, Number(S.gamma) || 1)), k = S.analysisMode === "zebra" ? 1 : 0;
- let G = 0;
- S.channel === "r" && (G = 1), S.channel === "g" && (G = 2), S.channel === "b" && (G = 3), o.uniform1f(b.u_exposure, Math.pow(2, W)), o.uniform1f(b.u_gamma, 1 / y), o.uniform1i(b.u_channel, G), o.uniform1i(b.u_analysis, k), o.uniform1f(b.u_thresh, S.zebraThreshold ?? 0.95), o.uniform2f(b.u_res, t.width, t.height), o.enableVertexAttribArray(b.position), o.bindBuffer(o.ARRAY_BUFFER, v), o.vertexAttribPointer(b.position, 2, o.FLOAT, !1, 0, 0), o.drawArrays(o.TRIANGLES, 0, 6), d("drawArrays");
+ const G = Z || (i ? i() : {}), W = Number(G.exposureEV) || 0, y = Math.max(0.1, Math.min(3, Number(G.gamma) || 1)), X = G.analysisMode === "zebra" ? 1 : 0;
+ let x = 0;
+ G.channel === "r" && (x = 1), G.channel === "g" && (x = 2), G.channel === "b" && (x = 3), o.uniform1f(b.u_exposure, Math.pow(2, W)), o.uniform1f(b.u_gamma, 1 / y), o.uniform1i(b.u_channel, x), o.uniform1i(b.u_analysis, X), o.uniform1f(b.u_thresh, G.zebraThreshold ?? 0.95), o.uniform2f(b.u_res, t.width, t.height), o.enableVertexAttribArray(b.position), o.bindBuffer(o.ARRAY_BUFFER, L), o.vertexAttribPointer(b.position, 2, o.FLOAT, !1, 0, 0), o.drawArrays(o.TRIANGLES, 0, 6), d("drawArrays");
}
- }, A = (h) => {
- h.preventDefault(), a = !0, u();
+ }, C = (Z) => {
+ Z.preventDefault(), a = !0, u();
}, g = () => {
o = s(), a = !1, r = null, p();
};
- return t.addEventListener("webglcontextlost", A), t.addEventListener("webglcontextrestored", g), {
- update: Z,
+ return t.addEventListener("webglcontextlost", C), t.addEventListener("webglcontextrestored", g), {
+ update: A,
destroy: () => {
- var h, f, b;
+ var Z, f, b;
if (c._destroyed = !0, c.ready = !1, u(), o)
try {
- (f = (h = o.getExtension("WEBGL_lose_context")) == null ? void 0 : h.loseContext) == null || f.call(h);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ (f = (Z = o.getExtension("WEBGL_lose_context")) == null ? void 0 : Z.loseContext) == null || f.call(Z);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
- t.removeEventListener("webglcontextlost", A), t.removeEventListener("webglcontextrestored", g);
+ t.removeEventListener("webglcontextlost", C), t.removeEventListener("webglcontextrestored", g);
}
};
}
-function ku({
+function Nu({
canvas: e,
videoEl: t,
disableWebGL: n,
@@ -17469,36 +17484,36 @@ function ku({
safeCall: d,
onReady: u
} = {}) {
- var N, q;
- const I = i == null ? !!(ye != null && ye.VIEWER_PAUSE_DURING_EXECUTION) : !!i;
+ var k, K;
+ const I = i == null ? !!(fe != null && fe.VIEWER_PAUSE_DURING_EXECUTION) : !!i;
let p = null;
- if (!n && FA())
+ if (!n && JA())
try {
- p = OA({
+ p = TA({
canvas: e,
videoEl: t,
getGradeParams: o,
isDefaultGrade: r,
maxProcPixelsVideo: a
});
- } catch (O) {
- console.warn("WebGL Init failed, falling back to 2D", O), p = null;
+ } catch (z) {
+ console.warn("WebGL Init failed, falling back to 2D", z), p = null;
}
- const M = p ? null : (() => {
+ const S = p ? null : (() => {
try {
return e.getContext("2d", { willReadFrequently: !0, alpha: !1 });
} catch {
return null;
}
- })(), Z = document.createElement("canvas"), A = (() => {
+ })(), A = document.createElement("canvas"), C = (() => {
try {
- return Z.getContext("2d", { willReadFrequently: !0, alpha: !1 });
+ return A.getContext("2d", { willReadFrequently: !0, alpha: !1 });
} catch {
return null;
}
})(), g = document.createElement("canvas");
g.width = 1, g.height = 1;
- const h = (() => {
+ const Z = (() => {
try {
return g.getContext("2d", { willReadFrequently: !0, alpha: !1 });
} catch {
@@ -17525,140 +17540,140 @@ function ku({
_lastFrameTime: -1,
_lastHeavySig: "",
_runtimePaused: !1
- }, b = [], v = (O, B) => $I(a, O, B), C = () => {
+ }, b = [], L = (z, B) => eb(a, z, B), h = () => {
try {
- const O = Number(t == null ? void 0 : t.videoWidth) || 0, B = Number(t == null ? void 0 : t.videoHeight) || 0;
- if (!(O > 0 && B > 0)) return !1;
- f.naturalW = O, f.naturalH = B, f.scale = v(O, B);
- const J = Math.max(1, Math.round(O * f.scale)), T = Math.max(1, Math.round(B * f.scale));
- return Z.width !== J && (Z.width = J), Z.height !== T && (Z.height = T), p || (e.width !== J && (e.width = J), e.height !== T && (e.height = T)), e._mjrNaturalW = O, e._mjrNaturalH = B, e._mjrPixelScale = f.scale, f.ready = !0, !0;
+ const z = Number(t == null ? void 0 : t.videoWidth) || 0, B = Number(t == null ? void 0 : t.videoHeight) || 0;
+ if (!(z > 0 && B > 0)) return !1;
+ f.naturalW = z, f.naturalH = B, f.scale = L(z, B);
+ const J = Math.max(1, Math.round(z * f.scale)), P = Math.max(1, Math.round(B * f.scale));
+ return A.width !== J && (A.width = J), A.height !== P && (A.height = P), p || (e.width !== J && (e.width = J), e.height !== P && (e.height = P)), e._mjrNaturalW = z, e._mjrNaturalH = B, e._mjrPixelScale = f.scale, f.ready = !0, !0;
} catch {
return !1;
}
- }, S = () => {
- if (!A || !f.ready) return !1;
+ }, G = () => {
+ if (!C || !f.ready) return !1;
try {
- return A.drawImage(t, 0, 0, Z.width, Z.height), !0;
+ return C.drawImage(t, 0, 0, A.width, A.height), !0;
} catch {
return !1;
}
}, W = () => {
- var H, $, _;
+ var U, Q, _;
if (!f.ready) return;
- const O = f.lastParams || (o == null ? void 0 : o()) || {};
+ const z = f.lastParams || (o == null ? void 0 : o()) || {};
if (p) {
- p.update(O);
+ p.update(z);
return;
}
- if (!M || !A) return;
- if (r != null && r(O)) {
+ if (!S || !C) return;
+ if (r != null && r(z)) {
try {
- M.clearRect(0, 0, e.width, e.height), M.drawImage(t, 0, 0, e.width, e.height);
+ S.clearRect(0, 0, e.width, e.height), S.drawImage(t, 0, 0, e.width, e.height);
} catch (le) {
- (H = console.debug) == null || H.call(console, le);
+ (U = console.debug) == null || U.call(console, le);
}
return;
}
- if (!S()) return;
+ if (!G()) return;
let B;
try {
- B = A.getImageData(0, 0, Z.width, Z.height);
+ B = C.getImageData(0, 0, A.width, A.height);
} catch {
try {
- M.clearRect(0, 0, e.width, e.height), M.drawImage(t, 0, 0, e.width, e.height);
+ S.clearRect(0, 0, e.width, e.height), S.drawImage(t, 0, 0, e.width, e.height);
} catch (le) {
- ($ = console.debug) == null || $.call(console, le);
+ (Q = console.debug) == null || Q.call(console, le);
}
return;
}
- const J = Z.width, T = Z.height;
- let D = f._buffer;
- if (!D || D.width !== J || D.height !== T)
+ const J = A.width, P = A.height;
+ let H = f._buffer;
+ if (!H || H.width !== J || H.height !== P)
try {
- D = M.createImageData(J, T), f._buffer = D;
+ H = S.createImageData(J, P), f._buffer = H;
} catch {
try {
- D = new ImageData(J, T), f._buffer = D;
+ H = new ImageData(J, P), f._buffer = H;
} catch {
return;
}
}
- if (!D) return;
- const Q = Number(O.exposureEV) || 0, K = 1 / Math.max(0.1, Math.min(3, Number(O.gamma) || 1)), F = String(O.channel || "rgb"), Y = String(O.analysisMode || "none"), U = In(O.zebraThreshold ?? 0.95), P = Math.pow(2, Q), ee = B.data, oe = D.data, ce = Y !== "zebra" && F === "rgb";
- let pe = null;
+ if (!H) return;
+ const $ = Number(z.exposureEV) || 0, oe = 1 / Math.max(0.1, Math.min(3, Number(z.gamma) || 1)), M = String(z.channel || "rgb"), j = String(z.analysisMode || "none"), O = In(z.zebraThreshold ?? 0.95), D = Math.pow(2, $), q = B.data, ee = H.data, ce = j !== "zebra" && M === "rgb";
+ let ue = null;
if (ce) {
- const le = `${P.toFixed(6)}|${K.toFixed(6)}`;
+ const le = `${D.toFixed(6)}|${oe.toFixed(6)}`;
if (!f._lut || f._lutKey !== le) {
- const se = new Uint8ClampedArray(256);
- for (let de = 0; de < 256; de += 1) {
- const Ze = de / 255;
- se[de] = Math.round(Math.pow(In(Ze * P), K) * 255);
+ const de = new Uint8ClampedArray(256);
+ for (let se = 0; se < 256; se += 1) {
+ const ge = se / 255;
+ de[se] = Math.round(Math.pow(In(ge * D), oe) * 255);
}
- f._lut = se, f._lutKey = le;
+ f._lut = de, f._lutKey = le;
}
- pe = f._lut;
+ ue = f._lut;
}
- if (pe)
- for (let le = 0; le < oe.length; le += 4)
- oe[le] = pe[ee[le] ?? 0], oe[le + 1] = pe[ee[le + 1] ?? 0], oe[le + 2] = pe[ee[le + 2] ?? 0], oe[le + 3] = 255;
+ if (ue)
+ for (let le = 0; le < ee.length; le += 4)
+ ee[le] = ue[q[le] ?? 0], ee[le + 1] = ue[q[le + 1] ?? 0], ee[le + 2] = ue[q[le + 2] ?? 0], ee[le + 3] = 255;
else
- for (let le = 0; le < oe.length; le += 4) {
- const se = (ee[le] ?? 0) / 255, de = (ee[le + 1] ?? 0) / 255, Ze = (ee[le + 2] ?? 0) / 255, Fe = (ee[le + 3] ?? 255) / 255;
- let xe = se * P, ze = de * P, We = Ze * P;
- const De = 0.2126 * xe + 0.7152 * ze + 0.0722 * We;
- if (Y === "zebra")
- if (In(De) >= U) {
- const Qe = (Math.floor(le / 4) % J + Math.floor(le / 4 / J) & 7) < 3;
- xe = Qe ? 1 : 0, ze = Qe ? 1 : 0, We = Qe ? 1 : 0;
+ for (let le = 0; le < ee.length; le += 4) {
+ const de = (q[le] ?? 0) / 255, se = (q[le + 1] ?? 0) / 255, ge = (q[le + 2] ?? 0) / 255, je = (q[le + 3] ?? 255) / 255;
+ let Se = de * D, ke = se * D, we = ge * D;
+ const Je = 0.2126 * Se + 0.7152 * ke + 0.0722 * we;
+ if (j === "zebra")
+ if (In(Je) >= O) {
+ const qe = (Math.floor(le / 4) % J + Math.floor(le / 4 / J) & 7) < 3;
+ Se = qe ? 1 : 0, ke = qe ? 1 : 0, we = qe ? 1 : 0;
} else
- xe = Math.pow(In(xe), K), ze = Math.pow(In(ze), K), We = Math.pow(In(We), K);
+ Se = Math.pow(In(Se), oe), ke = Math.pow(In(ke), oe), we = Math.pow(In(we), oe);
else
- xe = Math.pow(In(xe), K), ze = Math.pow(In(ze), K), We = Math.pow(In(We), K);
- if (F === "r")
- ze = xe, We = xe;
- else if (F === "g")
- xe = ze, We = ze;
- else if (F === "b")
- xe = We, ze = We;
- else if (F === "a")
- xe = Fe, ze = Fe, We = Fe;
- else if (F === "l") {
- const Pe = In(De), Qe = Math.pow(Pe, K);
- xe = Qe, ze = Qe, We = Qe;
+ Se = Math.pow(In(Se), oe), ke = Math.pow(In(ke), oe), we = Math.pow(In(we), oe);
+ if (M === "r")
+ ke = Se, we = Se;
+ else if (M === "g")
+ Se = ke, we = ke;
+ else if (M === "b")
+ Se = we, ke = we;
+ else if (M === "a")
+ Se = je, ke = je, we = je;
+ else if (M === "l") {
+ const $e = In(Je), qe = Math.pow($e, oe);
+ Se = qe, ke = qe, we = qe;
}
- oe[le] = Math.round(In(xe) * 255), oe[le + 1] = Math.round(In(ze) * 255), oe[le + 2] = Math.round(In(We) * 255), oe[le + 3] = 255;
+ ee[le] = Math.round(In(Se) * 255), ee[le + 1] = Math.round(In(ke) * 255), ee[le + 2] = Math.round(In(we) * 255), ee[le + 3] = 255;
}
try {
- M.putImageData(D, 0, 0);
+ S.putImageData(H, 0, 0);
} catch (le) {
(_ = console.debug) == null || _.call(console, le);
}
}, y = () => {
- var O;
- if (!f._destroyed && e != null && e.isConnected && (f.ready || C(), !!f.ready)) {
+ var z;
+ if (!f._destroyed && e != null && e.isConnected && (f.ready || h(), !!f.ready)) {
try {
const B = f.lastParams || (o == null ? void 0 : o()) || {};
if (!(r != null && r(B))) {
- const T = Number(t == null ? void 0 : t.currentTime) || 0, D = `${Number(B.exposureEV) || 0}|${Number(B.gamma) || 1}|${String(B.channel || "rgb")}|${String(B.analysisMode || "none")}|${Number(B.zebraThreshold ?? 0.95)}`;
- if (Math.abs(T - (Number(f._lastFrameTime) || 0)) < 1e-6 && D === String(f._lastHeavySig || ""))
+ const P = Number(t == null ? void 0 : t.currentTime) || 0, H = `${Number(B.exposureEV) || 0}|${Number(B.gamma) || 1}|${String(B.channel || "rgb")}|${String(B.analysisMode || "none")}|${Number(B.zebraThreshold ?? 0.95)}`;
+ if (Math.abs(P - (Number(f._lastFrameTime) || 0)) < 1e-6 && H === String(f._lastHeavySig || ""))
return;
- f._lastFrameTime = T, f._lastHeavySig = D;
+ f._lastFrameTime = P, f._lastHeavySig = H;
}
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
W();
}
- }, k = () => {
- var O;
+ }, X = () => {
+ var z;
if (!f._destroyed) {
try {
if (e != null && e.isConnected) {
- f._connectRAF = null, f._connectTries = 0, z();
+ f._connectRAF = null, f._connectTries = 0, T();
return;
}
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
if (f._connectRAF == null) {
if (f._connectTries = (Number(f._connectTries) || 0) + 1, f._connectTries > 20) {
@@ -17667,51 +17682,51 @@ function ku({
}
try {
f._connectRAF = requestAnimationFrame(() => {
- f._connectRAF = null, k();
+ f._connectRAF = null, X();
});
} catch {
f._connectRAF = null;
}
}
}
- }, G = () => {
+ }, x = () => {
try {
- const O = Number(c);
- return !Number.isFinite(O) || O <= 0 ? 0 : Math.max(0, Math.floor(1e3 / Math.max(1, O)));
+ const z = Number(c);
+ return !Number.isFinite(z) || z <= 0 ? 0 : Math.max(0, Math.floor(1e3 / Math.max(1, z)));
} catch {
return 0;
}
- }, z = () => {
- var T, D;
+ }, T = () => {
+ var P, H;
if (f._destroyed || f._runtimePaused || f._rendering) return;
if (!(e != null && e.isConnected)) {
- k();
+ X();
return;
}
- const O = f.lastParams || (o == null ? void 0 : o()) || {}, B = !(r != null && r(O)), J = B && !(t != null && t.paused) ? G() : 0;
+ const z = f.lastParams || (o == null ? void 0 : o()) || {}, B = !(r != null && r(z)), J = B && !(t != null && t.paused) ? x() : 0;
if (J > 0) {
- const Q = Date.now(), E = (Number(f._lastHeavyRenderAt) || 0) + J;
- if (Q < E) {
+ const $ = Date.now(), E = (Number(f._lastHeavyRenderAt) || 0) + J;
+ if ($ < E) {
try {
f._throttleTimer && clearTimeout(f._throttleTimer);
- } catch (K) {
- (T = console.debug) == null || T.call(console, K);
+ } catch (oe) {
+ (P = console.debug) == null || P.call(console, oe);
}
try {
f._throttleTimer = setTimeout(
() => {
- var K;
+ var oe;
try {
f._throttleTimer = null;
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
- z();
+ T();
},
- Math.min(250, Math.max(0, E - Q))
+ Math.min(250, Math.max(0, E - $))
);
- } catch (K) {
- (D = console.debug) == null || D.call(console, K);
+ } catch (oe) {
+ (H = console.debug) == null || H.call(console, oe);
}
return;
}
@@ -17719,19 +17734,19 @@ function ku({
f._rendering = !0;
try {
f._rafIdSchedule = requestAnimationFrame(() => {
- var Q;
+ var $;
f._rafIdSchedule = null, f._rendering = !1, y();
try {
B && (f._lastHeavyRenderAt = Date.now());
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
});
} catch {
f._rendering = !1;
}
- }, x = () => {
- var B, J, T, D, Q;
+ }, v = () => {
+ var B, J, P, H, $;
if (f._destroyed || f._runtimePaused) return;
try {
f._rvfc != null && typeof (t == null ? void 0 : t.cancelVideoFrameCallback) == "function" && (t.cancelVideoFrameCallback(f._rvfc), f._rvfc = null);
@@ -17746,217 +17761,217 @@ function ku({
try {
if (typeof (t == null ? void 0 : t.requestVideoFrameCallback) == "function") {
const E = () => {
- var K;
- if (!f._destroyed && e != null && e.isConnected && (z(), !t.paused))
+ var oe;
+ if (!f._destroyed && e != null && e.isConnected && (T(), !t.paused))
try {
f._rvfc = t.requestVideoFrameCallback(E);
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
};
try {
f._rvfc = t.requestVideoFrameCallback(E);
- } catch (K) {
- (T = console.debug) == null || T.call(console, K);
+ } catch (oe) {
+ (P = console.debug) == null || P.call(console, oe);
}
return;
}
} catch (E) {
- (D = console.debug) == null || D.call(console, E);
+ (H = console.debug) == null || H.call(console, E);
}
- const O = () => {
+ const z = () => {
var E;
- if (!f._destroyed && e != null && e.isConnected && (z(), !t.paused))
+ if (!f._destroyed && e != null && e.isConnected && (T(), !t.paused))
try {
- f._rafIdLoop = requestAnimationFrame(O);
- } catch (K) {
- (E = console.debug) == null || E.call(console, K);
+ f._rafIdLoop = requestAnimationFrame(z);
+ } catch (oe) {
+ (E = console.debug) == null || E.call(console, oe);
}
};
try {
- f._rafIdLoop = requestAnimationFrame(O);
+ f._rafIdLoop = requestAnimationFrame(z);
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
- }, w = (O) => {
- f.lastParams = O || f.lastParams || (o == null ? void 0 : o()), z();
- }, X = () => {
- var O, B, J, T;
+ }, w = (z) => {
+ f.lastParams = z || f.lastParams || (o == null ? void 0 : o()), T();
+ }, R = () => {
+ var z, B, J, P;
f._runtimePaused = !0;
try {
f._throttleTimer && clearTimeout(f._throttleTimer);
- } catch (D) {
- (O = console.debug) == null || O.call(console, D);
+ } catch (H) {
+ (z = console.debug) == null || z.call(console, H);
}
f._throttleTimer = null;
try {
f._rvfc != null && typeof (t == null ? void 0 : t.cancelVideoFrameCallback) == "function" && t.cancelVideoFrameCallback(f._rvfc);
- } catch (D) {
- (B = console.debug) == null || B.call(console, D);
+ } catch (H) {
+ (B = console.debug) == null || B.call(console, H);
}
f._rvfc = null;
try {
f._rafIdLoop != null && cancelAnimationFrame(f._rafIdLoop);
- } catch (D) {
- (J = console.debug) == null || J.call(console, D);
+ } catch (H) {
+ (J = console.debug) == null || J.call(console, H);
}
f._rafIdLoop = null;
try {
f._rafIdSchedule != null && cancelAnimationFrame(f._rafIdSchedule);
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
f._rafIdSchedule = null, f._rendering = !1;
- }, V = () => {
+ }, Y = () => {
if (f._runtimePaused = !1, t != null && t.paused) {
- z();
+ T();
return;
}
- x(), z();
- }, R = (O, B) => {
- var J, T;
+ v(), T();
+ }, F = (z, B) => {
+ var J, P;
try {
- if (f.ready || C(), !f.ready) return null;
- S();
- const D = f.scale || 1, Q = Math.max(
+ if (f.ready || h(), !f.ready) return null;
+ G();
+ const H = f.scale || 1, $ = Math.max(
0,
- Math.min(Z.width - 1, Math.floor((Number(O) || 0) * D))
+ Math.min(A.width - 1, Math.floor((Number(z) || 0) * H))
), E = Math.max(
0,
- Math.min(Z.height - 1, Math.floor((Number(B) || 0) * D))
+ Math.min(A.height - 1, Math.floor((Number(B) || 0) * H))
);
- if (!h) return null;
- h.clearRect(0, 0, 1, 1), h.drawImage(Z, Q, E, 1, 1, 0, 0, 1, 1);
- const K = (J = h.getImageData(0, 0, 1, 1)) == null ? void 0 : J.data;
- if (!K || K.length < 4) return null;
- const F = K[0] ?? 0, Y = K[1] ?? 0, U = K[2] ?? 0, P = K[3] ?? 255, ee = [F / 255, Y / 255, U / 255, P / 255], oe = Number((T = f.lastParams) == null ? void 0 : T.exposureEV) || 0, ce = Math.pow(2, oe), pe = [
- ee[0] * ce,
- ee[1] * ce,
- ee[2] * ce,
- ee[3]
+ if (!Z) return null;
+ Z.clearRect(0, 0, 1, 1), Z.drawImage(A, $, E, 1, 1, 0, 0, 1, 1);
+ const oe = (J = Z.getImageData(0, 0, 1, 1)) == null ? void 0 : J.data;
+ if (!oe || oe.length < 4) return null;
+ const M = oe[0] ?? 0, j = oe[1] ?? 0, O = oe[2] ?? 0, D = oe[3] ?? 255, q = [M / 255, j / 255, O / 255, D / 255], ee = Number((P = f.lastParams) == null ? void 0 : P.exposureEV) || 0, ce = Math.pow(2, ee), ue = [
+ q[0] * ce,
+ q[1] * ce,
+ q[2] * ce,
+ q[3]
];
- return { r: F, g: Y, b: U, a: P, raw: ee, lin: pe, scale: f.scale };
+ return { r: M, g: j, b: O, a: D, raw: q, lin: ue, scale: f.scale };
} catch {
return null;
}
- }, j = () => {
- var O;
- C(), z();
+ }, N = () => {
+ var z;
+ h(), T();
try {
u == null || u({ naturalW: f.naturalW, naturalH: f.naturalH, pixelScale: f.scale });
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
- }, L = (O) => {
+ }, V = (z) => {
var J;
if (!I) return;
- if (String(((J = O == null ? void 0 : O.detail) == null ? void 0 : J.active_prompt_id) || "").trim()) {
- X();
+ if (String(((J = z == null ? void 0 : z.detail) == null ? void 0 : J.active_prompt_id) || "").trim()) {
+ R();
return;
}
- V();
+ Y();
};
try {
- const O = () => {
- f._runtimePaused || x();
+ const z = () => {
+ f._runtimePaused || v();
}, B = () => {
- var J, T, D;
+ var J, P, H;
f.ready = !1;
try {
- const Q = (J = t == null ? void 0 : t.error) == null ? void 0 : J.code, E = ((T = t == null ? void 0 : t.error) == null ? void 0 : T.message) || "";
- let K, F;
- Q === 2 ? (K = "Failed to load video (network / path error)", F = "Check file permissions / path, or try re-indexing.") : Q === 3 ? (K = "Failed to load video (decode error β unsupported codec?)", F = "Browser may not support this codec (e.g. H.265/HEVC). Try converting to H.264/MP4.") : Q === 4 ? (K = "Failed to load video (unsupported format or codec)", F = "Browser cannot decode this file (e.g. H.265/HEVC). Try converting to H.264/MP4.") : (K = "Failed to load video", F = E || "Check file permissions / path, or try re-indexing."), console.warn("[MJR] Video load error", {
- code: Q,
+ const $ = (J = t == null ? void 0 : t.error) == null ? void 0 : J.code, E = ((P = t == null ? void 0 : t.error) == null ? void 0 : P.message) || "";
+ let oe, M;
+ $ === 2 ? (oe = "Failed to load video (network / path error)", M = "Check file permissions / path, or try re-indexing.") : $ === 3 ? (oe = "Failed to load video (decode error β unsupported codec?)", M = "Browser may not support this codec (e.g. H.265/HEVC). Try converting to H.264/MP4.") : $ === 4 ? (oe = "Failed to load video (unsupported format or codec)", M = "Browser cannot decode this file (e.g. H.265/HEVC). Try converting to H.264/MP4.") : (oe = "Failed to load video", M = E || "Check file permissions / path, or try re-indexing."), console.warn("[MJR] Video load error", {
+ code: $,
message: E,
src: t == null ? void 0 : t.src
- }), po(e, K, F);
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ }), fo(e, oe, M);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
};
b.push(
- (s == null ? void 0 : s(t, "loadedmetadata", j, { once: !0 })) || (() => {
+ (s == null ? void 0 : s(t, "loadedmetadata", N, { once: !0 })) || (() => {
})
), b.push(
- (s == null ? void 0 : s(t, "seeked", z, { passive: !0 })) || (() => {
+ (s == null ? void 0 : s(t, "seeked", T, { passive: !0 })) || (() => {
})
), b.push(
- (s == null ? void 0 : s(t, "pause", z, { passive: !0 })) || (() => {
+ (s == null ? void 0 : s(t, "pause", T, { passive: !0 })) || (() => {
})
- ), b.push((s == null ? void 0 : s(t, "play", O, { passive: !0 })) || (() => {
+ ), b.push((s == null ? void 0 : s(t, "play", z, { passive: !0 })) || (() => {
})), b.push(
- (s == null ? void 0 : s(t, "timeupdate", z, { passive: !0 })) || (() => {
+ (s == null ? void 0 : s(t, "timeupdate", T, { passive: !0 })) || (() => {
})
), b.push((s == null ? void 0 : s(t, "error", B, { passive: !0 })) || (() => {
- })), I && (window.addEventListener(ft.RUNTIME_STATUS, L), String(((N = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : N.active_prompt_id) || "").trim() && X());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ })), I && (window.addEventListener(ht.RUNTIME_STATUS, V), String(((k = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : k.active_prompt_id) || "").trim() && R());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
return {
setParams: w,
- sampleAtOriginal: R,
+ sampleAtOriginal: F,
getInfo: () => ({ ...f, renderer: p ? "webgl" : "2d" }),
- pause: X,
- resume: V,
+ pause: R,
+ resume: Y,
destroy: () => {
- var O, B, J, T, D, Q, E, K, F;
+ var z, B, J, P, H, $, E, oe, M;
p && p.destroy(), f._destroyed = !0;
try {
- window.removeEventListener(ft.RUNTIME_STATUS, L);
- } catch (Y) {
- (O = console.debug) == null || O.call(console, Y);
+ window.removeEventListener(ht.RUNTIME_STATUS, V);
+ } catch (j) {
+ (z = console.debug) == null || z.call(console, j);
}
try {
f._throttleTimer && clearTimeout(f._throttleTimer);
- } catch (Y) {
- (B = console.debug) == null || B.call(console, Y);
+ } catch (j) {
+ (B = console.debug) == null || B.call(console, j);
}
f._throttleTimer = null;
try {
f._connectRAF != null && cancelAnimationFrame(f._connectRAF);
- } catch (Y) {
- (J = console.debug) == null || J.call(console, Y);
+ } catch (j) {
+ (J = console.debug) == null || J.call(console, j);
}
f._connectRAF = null, f._connectTries = 0;
try {
f._rvfc != null && typeof (t == null ? void 0 : t.cancelVideoFrameCallback) == "function" && t.cancelVideoFrameCallback(f._rvfc);
- } catch (Y) {
- (T = console.debug) == null || T.call(console, Y);
+ } catch (j) {
+ (P = console.debug) == null || P.call(console, j);
}
try {
f._rafIdLoop != null && cancelAnimationFrame(f._rafIdLoop);
- } catch (Y) {
- (D = console.debug) == null || D.call(console, Y);
+ } catch (j) {
+ (H = console.debug) == null || H.call(console, j);
}
try {
f._rafIdSchedule != null && cancelAnimationFrame(f._rafIdSchedule);
- } catch (Y) {
- (Q = console.debug) == null || Q.call(console, Y);
+ } catch (j) {
+ ($ = console.debug) == null || $.call(console, j);
}
try {
- for (const Y of b) d == null || d(Y);
- } catch (Y) {
- (E = console.debug) == null || E.call(console, Y);
+ for (const j of b) d == null || d(j);
+ } catch (j) {
+ (E = console.debug) == null || E.call(console, j);
}
try {
- Z.width = 0, Z.height = 0;
- } catch (Y) {
- (K = console.debug) == null || K.call(console, Y);
+ A.width = 0, A.height = 0;
+ } catch (j) {
+ (oe = console.debug) == null || oe.call(console, j);
}
try {
e.width = 0, e.height = 0;
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y);
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
}
f._buffer = null;
}
};
}
-function Va(e, t, n) {
+function ka(e, t, n) {
const i = Number(e);
return Number.isFinite(i) ? Math.max(t, Math.min(n, i)) : t;
}
-function Xu(e) {
+function Ru(e) {
var t, n;
try {
const i = String(e || "").toLowerCase();
@@ -17966,7 +17981,7 @@ function Xu(e) {
(t = console.debug) == null || t.call(console, i);
}
try {
- const i = String((ye == null ? void 0 : ye.VIEWER_AUDIO_VISUALIZER_MODE) || "simple").toLowerCase();
+ const i = String((fe == null ? void 0 : fe.VIEWER_AUDIO_VISUALIZER_MODE) || "simple").toLowerCase();
if (i === "artistic") return "artistic";
if (i === "webgl3d" || i === "webgl") return "simple";
} catch (i) {
@@ -17974,7 +17989,7 @@ function Xu(e) {
}
return "simple";
}
-function zA(e) {
+function BA(e) {
const t = e.getContext("2d");
if (!t) return null;
const n = (l, a) => {
@@ -18005,24 +18020,24 @@ function zA(e) {
if (!(d > 1 && u > 1)) return;
const p = Number(c) * 1e-3 * 0.12 % 1;
t.clearRect(0, 0, d, u);
- const M = d * 0.5, Z = u * 0.52, A = Math.max(36, Math.min(140, Math.floor(d / 12))), g = Math.min(d * 0.56, A * 8), h = g / Math.max(1, A - 1), f = M - g * 0.5, b = Z - u * 0.08;
+ const S = d * 0.5, A = u * 0.52, C = Math.max(36, Math.min(140, Math.floor(d / 12))), g = Math.min(d * 0.56, C * 8), Z = g / Math.max(1, C - 1), f = S - g * 0.5, b = A - u * 0.08;
t.fillStyle = "rgba(255,255,255,0.95)";
- for (let C = 0; C < A; C++) {
- const S = f + C * h, y = (C / Math.max(1, A - 1) + p) % 1, k = i(l, y), G = b - k * u * 0.11, z = 1.2 + k * 1.2;
- t.beginPath(), t.arc(S, G, z, 0, Math.PI * 2), t.fill();
+ for (let h = 0; h < C; h++) {
+ const G = f + h * Z, y = (h / Math.max(1, C - 1) + p) % 1, X = i(l, y), x = b - X * u * 0.11, T = 1.2 + X * 1.2;
+ t.beginPath(), t.arc(G, x, T, 0, Math.PI * 2), t.fill();
}
t.fillStyle = "rgba(255,255,255,0.9)";
- for (let C = 0; C < A; C++) {
- const S = f + C * h, W = 1.6;
- t.beginPath(), t.arc(S, Z, W, 0, Math.PI * 2), t.fill();
+ for (let h = 0; h < C; h++) {
+ const G = f + h * Z, W = 1.6;
+ t.beginPath(), t.arc(G, A, W, 0, Math.PI * 2), t.fill();
}
- const v = Math.max(1.5, h * 0.45);
- for (let C = 0; C < A; C++) {
- const S = f + C * h, W = C / Math.max(1, A - 1), y = (W + p) % 1, k = o(l, y), G = r(l, y), z = 1 - Math.abs(W * 2 - 1), w = Math.pow(
- (k * 0.62 + G * 0.38) * 0.84 + z * 0.16,
+ const L = Math.max(1.5, Z * 0.45);
+ for (let h = 0; h < C; h++) {
+ const G = f + h * Z, W = h / Math.max(1, C - 1), y = (W + p) % 1, X = o(l, y), x = r(l, y), T = 1 - Math.abs(W * 2 - 1), w = Math.pow(
+ (X * 0.62 + x * 0.38) * 0.84 + T * 0.16,
1.1
) * u * 0.32;
- t.fillStyle = "rgba(255,255,255,0.96)", t.fillRect(S - v * 0.5, Z + 1, v, w);
+ t.fillStyle = "rgba(255,255,255,0.96)", t.fillRect(G - L * 0.5, A + 1, L, w);
}
} catch (d) {
(s = console.debug) == null || s.call(console, d);
@@ -18032,7 +18047,7 @@ function zA(e) {
}
};
}
-function JA(e, { pseudo3d: t = !1 } = {}) {
+function UA(e, { pseudo3d: t = !1 } = {}) {
let n = null;
try {
n = e.getContext("webgl", {
@@ -18055,9 +18070,9 @@ uniform vec4 uColor;
void main() {
gl_FragColor = uColor;
}
-`, r = (g, h) => {
+`, r = (g, Z) => {
const f = n.createShader(g);
- return f ? (n.shaderSource(f, h), n.compileShader(f), n.getShaderParameter(f, n.COMPILE_STATUS) ? f : (n.deleteShader(f), null)) : null;
+ return f ? (n.shaderSource(f, Z), n.compileShader(f), n.getShaderParameter(f, n.COMPILE_STATUS) ? f : (n.deleteShader(f), null)) : null;
}, l = r(n.VERTEX_SHADER, i), a = r(n.FRAGMENT_SHADER, o);
if (!l || !a) return null;
const c = n.createProgram();
@@ -18065,237 +18080,237 @@ void main() {
n.useProgram(c);
const s = n.getAttribLocation(c, "aPos"), d = n.getUniformLocation(c, "uColor"), u = n.createBuffer();
if (!u || s < 0 || !d) return null;
- const I = (g, h) => {
- n.bindBuffer(n.ARRAY_BUFFER, u), n.bufferData(n.ARRAY_BUFFER, g, n.DYNAMIC_DRAW), n.enableVertexAttribArray(s), n.vertexAttribPointer(s, 2, n.FLOAT, !1, 0, 0), n.uniform4f(d, h[0], h[1], h[2], h[3]), n.drawArrays(n.LINE_STRIP, 0, Math.floor(g.length / 2));
- }, p = (g, h) => {
+ const I = (g, Z) => {
+ n.bindBuffer(n.ARRAY_BUFFER, u), n.bufferData(n.ARRAY_BUFFER, g, n.DYNAMIC_DRAW), n.enableVertexAttribArray(s), n.vertexAttribPointer(s, 2, n.FLOAT, !1, 0, 0), n.uniform4f(d, Z[0], Z[1], Z[2], Z[3]), n.drawArrays(n.LINE_STRIP, 0, Math.floor(g.length / 2));
+ }, p = (g, Z) => {
try {
const f = Math.max(
0,
- Math.min(g.length - 1, Math.floor(h * (g.length - 1)))
+ Math.min(g.length - 1, Math.floor(Z * (g.length - 1)))
);
return (Number(g[f]) || 0) / 255;
} catch {
return 0;
}
- }, M = (g, h) => {
- const f = p(g, 0.18 + h * 0.18), b = p(g, 0.28 + h * 0.16), v = p(g, 0.4 + h * 0.06), C = p(g, 0.46 + h * 0.03);
- return f * 0.28 + b * 0.36 + v * 0.24 + C * 0.12;
- }, Z = (g, h) => {
- const f = p(g, 0.01 + h * 0.06), b = p(g, 0.04 + h * 0.07), v = p(g, 0.09 + h * 0.04);
- return f * 0.45 + b * 0.35 + v * 0.2;
- }, A = (g, h) => {
- const f = p(g, 0.64 + h * 0.18), b = p(g, 0.78 + h * 0.12), v = p(g, 0.92 + h * 0.06);
- return f * 0.34 + b * 0.38 + v * 0.28;
+ }, S = (g, Z) => {
+ const f = p(g, 0.18 + Z * 0.18), b = p(g, 0.28 + Z * 0.16), L = p(g, 0.4 + Z * 0.06), h = p(g, 0.46 + Z * 0.03);
+ return f * 0.28 + b * 0.36 + L * 0.24 + h * 0.12;
+ }, A = (g, Z) => {
+ const f = p(g, 0.01 + Z * 0.06), b = p(g, 0.04 + Z * 0.07), L = p(g, 0.09 + Z * 0.04);
+ return f * 0.45 + b * 0.35 + L * 0.2;
+ }, C = (g, Z) => {
+ const f = p(g, 0.64 + Z * 0.18), b = p(g, 0.78 + Z * 0.12), L = p(g, 0.92 + Z * 0.06);
+ return f * 0.34 + b * 0.38 + L * 0.28;
};
return {
- draw(g, h, f = 0) {
+ draw(g, Z, f = 0) {
var b;
try {
n.viewport(0, 0, e.width || 1, e.height || 1), n.clearColor(0, 0, 0, 0), n.clear(n.COLOR_BUFFER_BIT);
- const v = Math.max(48, Math.min(180, Math.floor((e.width || 640) / 7))), C = Number(f) * 1e-3, S = new Float32Array(v * 2);
- for (let y = 0; y < v; y++) {
- const k = y / Math.max(1, v - 1), G = k * 2 - 1, z = M(g, k), x = t ? Math.sin(k * Math.PI * 4 + C * 1.1) * 0.18 : 0, w = t ? 1 / (1 + Math.max(-0.7, x) * 0.8) : 1, V = Va((0.18 + z * 0.32) * w, -0.95, 0.95);
- S[y * 2] = G, S[y * 2 + 1] = V;
+ const L = Math.max(48, Math.min(180, Math.floor((e.width || 640) / 7))), h = Number(f) * 1e-3, G = new Float32Array(L * 2);
+ for (let y = 0; y < L; y++) {
+ const X = y / Math.max(1, L - 1), x = X * 2 - 1, T = S(g, X), v = t ? Math.sin(X * Math.PI * 4 + h * 1.1) * 0.18 : 0, w = t ? 1 / (1 + Math.max(-0.7, v) * 0.8) : 1, Y = ka((0.18 + T * 0.32) * w, -0.95, 0.95);
+ G[y * 2] = x, G[y * 2 + 1] = Y;
}
- I(S, [1, 1, 1, 0.95]);
- const W = new Float32Array(v * 2);
- for (let y = 0; y < v; y++) {
- const k = y / Math.max(1, v - 1), G = k * 2 - 1, z = Z(g, k), x = A(g, k), w = z * 0.62 + x * 0.38, X = t ? Math.sin(k * Math.PI * 3 + C * 1) * 0.14 : 0, V = t ? 1 / (1 + Math.max(-0.7, X) * 0.8) : 1, R = Va(-w * 0.62 * V, -0.95, 0);
- W[y * 2] = G, W[y * 2 + 1] = R;
+ I(G, [1, 1, 1, 0.95]);
+ const W = new Float32Array(L * 2);
+ for (let y = 0; y < L; y++) {
+ const X = y / Math.max(1, L - 1), x = X * 2 - 1, T = A(g, X), v = C(g, X), w = T * 0.62 + v * 0.38, R = t ? Math.sin(X * Math.PI * 3 + h * 1) * 0.14 : 0, Y = t ? 1 / (1 + Math.max(-0.7, R) * 0.8) : 1, F = ka(-w * 0.62 * Y, -0.95, 0);
+ W[y * 2] = x, W[y * 2 + 1] = F;
}
I(W, [1, 1, 1, 0.9]);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
},
destroy() {
- var g, h, f, b;
+ var g, Z, f, b;
try {
n.deleteBuffer(u);
- } catch (v) {
- (g = console.debug) == null || g.call(console, v);
+ } catch (L) {
+ (g = console.debug) == null || g.call(console, L);
}
try {
n.deleteProgram(c);
- } catch (v) {
- (h = console.debug) == null || h.call(console, v);
+ } catch (L) {
+ (Z = console.debug) == null || Z.call(console, L);
}
try {
n.deleteShader(l);
- } catch (v) {
- (f = console.debug) == null || f.call(console, v);
+ } catch (L) {
+ (f = console.debug) == null || f.call(console, L);
}
try {
n.deleteShader(a);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
}
};
}
-function TA({
+function KA({
canvas: e,
audioEl: t,
mode: n,
pauseDuringExecution: i = null
} = {}) {
- var x, w, X;
+ var v, w, R;
if (!e || !t) return { destroy() {
} };
- const o = i == null ? !!(ye != null && ye.VIEWER_PAUSE_DURING_EXECUTION) : !!i;
- let r = null, l = !1, a = null, c = null, s = null, d = null, u = null, I = null, p = 0, M = !1;
- const A = 1e3 / Va((ye == null ? void 0 : ye.VIEWER_AUDIO_VIS_FPS) ?? 24, 8, 60);
- let g = Xu(n);
- const h = () => {
- var V;
+ const o = i == null ? !!(fe != null && fe.VIEWER_PAUSE_DURING_EXECUTION) : !!i;
+ let r = null, l = !1, a = null, c = null, s = null, d = null, u = null, I = null, p = 0, S = !1;
+ const C = 1e3 / ka((fe == null ? void 0 : fe.VIEWER_AUDIO_VIS_FPS) ?? 24, 8, 60);
+ let g = Ru(n);
+ const Z = () => {
+ var Y;
try {
- const R = Va(window.devicePixelRatio || 1, 1, 2), j = Math.max(32, Math.floor((e.clientWidth || 640) * R)), L = Math.max(24, Math.floor((e.clientHeight || 140) * R));
- e.width !== j && (e.width = j), e.height !== L && (e.height = L);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ const F = ka(window.devicePixelRatio || 1, 1, 2), N = Math.max(32, Math.floor((e.clientWidth || 640) * F)), V = Math.max(24, Math.floor((e.clientHeight || 140) * F));
+ e.width !== N && (e.width = N), e.height !== V && (e.height = V);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
- }, f = (V = g) => {
- var R, j, L, N, q;
- g = Xu(V);
+ }, f = (Y = g) => {
+ var F, N, V, k, K;
+ g = Ru(Y);
try {
- (R = I == null ? void 0 : I.destroy) == null || R.call(I);
- } catch (O) {
- (j = console.debug) == null || j.call(console, O);
+ (F = I == null ? void 0 : I.destroy) == null || F.call(I);
+ } catch (z) {
+ (N = console.debug) == null || N.call(console, z);
}
I = null;
try {
- h();
- } catch (O) {
- (L = console.debug) == null || L.call(console, O);
+ Z();
+ } catch (z) {
+ (V = console.debug) == null || V.call(console, z);
}
try {
- g === "artistic" && !(ye != null && ye.VIEWER_DISABLE_WEBGL_AUDIO) && (I = JA(e, { pseudo3d: !0 }));
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ g === "artistic" && !(fe != null && fe.VIEWER_DISABLE_WEBGL_AUDIO) && (I = UA(e, { pseudo3d: !0 }));
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
if (!I)
try {
- I = zA(e);
- } catch (O) {
- (q = console.debug) == null || q.call(console, O), I = null;
+ I = BA(e);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z), I = null;
}
return p = 0, g;
}, b = () => {
if (!(l || s))
try {
- const V = window.AudioContext || window.webkitAudioContext;
- if (!V) return;
- a = new V(), c = a.createMediaElementSource(t), s = a.createAnalyser(), s.fftSize = 1024, s.smoothingTimeConstant = 0.8, c.connect(s), s.connect(a.destination), d = new Uint8Array(s.frequencyBinCount), u = new Uint8Array(s.fftSize), I || f(g);
+ const Y = window.AudioContext || window.webkitAudioContext;
+ if (!Y) return;
+ a = new Y(), c = a.createMediaElementSource(t), s = a.createAnalyser(), s.fftSize = 1024, s.smoothingTimeConstant = 0.8, c.connect(s), s.connect(a.destination), d = new Uint8Array(s.frequencyBinCount), u = new Uint8Array(s.fftSize), I || f(g);
} catch {
s = null;
}
- }, v = (V) => {
- var R;
+ }, L = (Y) => {
+ var F;
if (!l) {
try {
- r = requestAnimationFrame(v);
+ r = requestAnimationFrame(L);
} catch {
r = null;
return;
}
- if (!M && !(!s || !I) && !(V - p < A)) {
- p = V;
+ if (!S && !(!s || !I) && !(Y - p < C)) {
+ p = Y;
try {
- h(), s.getByteFrequencyData(d), s.getByteTimeDomainData(u), I.draw(d, u, V);
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ Z(), s.getByteFrequencyData(d), s.getByteTimeDomainData(u), I.draw(d, u, Y);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
}
}
- }, C = async () => {
- var V, R;
+ }, h = async () => {
+ var Y, F;
try {
- if (M || (b(), !a)) return;
+ if (S || (b(), !a)) return;
if (a.state === "suspended")
try {
await a.resume();
- } catch (j) {
- (V = console.debug) == null || V.call(console, j);
+ } catch (N) {
+ (Y = console.debug) == null || Y.call(console, N);
}
- r == null && (r = requestAnimationFrame(v));
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ r == null && (r = requestAnimationFrame(L));
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
- }, S = () => {
- var V;
+ }, G = () => {
+ var Y;
try {
r != null && cancelAnimationFrame(r);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
r = null;
}, W = () => {
- C();
- }, y = () => S(), k = () => S(), G = () => h(), z = (V) => {
- var j;
+ h();
+ }, y = () => G(), X = () => G(), x = () => Z(), T = (Y) => {
+ var N;
if (!o) return;
- if (M = !!String(((j = V == null ? void 0 : V.detail) == null ? void 0 : j.active_prompt_id) || "").trim(), M) {
- S();
+ if (S = !!String(((N = Y == null ? void 0 : Y.detail) == null ? void 0 : N.active_prompt_id) || "").trim(), S) {
+ G();
return;
}
- t != null && t.paused || C();
+ t != null && t.paused || h();
};
try {
- h(), f(g);
- } catch (V) {
- (x = console.debug) == null || x.call(console, V);
+ Z(), f(g);
+ } catch (Y) {
+ (v = console.debug) == null || v.call(console, Y);
}
try {
- t.addEventListener("play", W, { passive: !0 }), t.addEventListener("pause", y, { passive: !0 }), t.addEventListener("ended", k, { passive: !0 }), window.addEventListener("resize", G, { passive: !0 }), o && (window.addEventListener(ft.RUNTIME_STATUS, z), String(((w = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : w.active_prompt_id) || "").trim() && (M = !0));
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ t.addEventListener("play", W, { passive: !0 }), t.addEventListener("pause", y, { passive: !0 }), t.addEventListener("ended", X, { passive: !0 }), window.addEventListener("resize", x, { passive: !0 }), o && (window.addEventListener(ht.RUNTIME_STATUS, T), String(((w = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : w.active_prompt_id) || "").trim() && (S = !0));
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
return {
- setMode(V) {
- return l ? g : f(V);
+ setMode(Y) {
+ return l ? g : f(Y);
},
destroy() {
- var V, R, j, L, N, q, O, B, J;
+ var Y, F, N, V, k, K, z, B, J;
if (!l) {
- l = !0, S();
+ l = !0, G();
try {
- t.removeEventListener("play", W), t.removeEventListener("pause", y), t.removeEventListener("ended", k), window.removeEventListener("resize", G), window.removeEventListener(ft.RUNTIME_STATUS, z);
- } catch (T) {
- (V = console.debug) == null || V.call(console, T);
+ t.removeEventListener("play", W), t.removeEventListener("pause", y), t.removeEventListener("ended", X), window.removeEventListener("resize", x), window.removeEventListener(ht.RUNTIME_STATUS, T);
+ } catch (P) {
+ (Y = console.debug) == null || Y.call(console, P);
}
try {
- (R = I == null ? void 0 : I.destroy) == null || R.call(I);
- } catch (T) {
- (j = console.debug) == null || j.call(console, T);
+ (F = I == null ? void 0 : I.destroy) == null || F.call(I);
+ } catch (P) {
+ (N = console.debug) == null || N.call(console, P);
}
try {
- (L = c == null ? void 0 : c.disconnect) == null || L.call(c);
- } catch (T) {
- (N = console.debug) == null || N.call(console, T);
+ (V = c == null ? void 0 : c.disconnect) == null || V.call(c);
+ } catch (P) {
+ (k = console.debug) == null || k.call(console, P);
}
try {
- (q = s == null ? void 0 : s.disconnect) == null || q.call(s);
- } catch (T) {
- (O = console.debug) == null || O.call(console, T);
+ (K = s == null ? void 0 : s.disconnect) == null || K.call(s);
+ } catch (P) {
+ (z = console.debug) == null || z.call(console, P);
}
try {
(B = a == null ? void 0 : a.close) == null || B.call(a);
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
c = null, s = null, a = null, I = null;
}
}
};
}
-const BA = (() => {
+const DA = (() => {
try {
return new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAIf3RFWHRwcm9tcHQAeyI5IjogeyJpbnB1dHMiOiB7ImZpbGVuYW1lX3ByZWZpeCI6ICJQUk9KRUNUUy8yNjAxX1RFU1QvMDJfT1VUL0lNQUdFUy8yNjAyMDcvVGVzdC9aX0ltYWdlX1R1cmJvLzI2MDIwN19UZXN0XyIsICJpbWFnZXMiOiBbIjU3OjgiLCAwXX0sICJjbGFzc190eXBlIjogIlNhdmVJbWFnZSIsICJfbWV0YSI6IHsidGl0bGUiOiAiU2F2ZSBJbWFnZSJ9fSwgIjU4IjogeyJpbnB1dHMiOiB7InZhbHVlIjogIkJsdXJyeSBjdXRlIHNtYWxsIGRpbm9zYXVydXMgbGlrZSBjcmVhdHVyZSBzaWxob3VldHRlIHdpdGggaGVhZHBob25lIGluIGEgY2luZW1hdGljIHNsb3ctc2h1dHRlciBwYW4sIHdhcm0gYmFja2xpdCBzdW5zZXQgZ3JhZGllbnQgZnJvbSBkZWVwIHJlZCB0byBvcmFuZ2UgYW5kIGdvbGQsIGdsb3dpbmcgaGF6ZSBhbmQgYmxvb20sIHJpbS1saXQgaGFpciBoYWxvLCBnZW50bGUgbW90aW9uLWJsdXIgdHJhaWwsIHNvZnQtZm9jdXMgZmFjaWFsIGZlYXR1cmVzLCBzdWJ0bGUgZmlsbSBncmFpbiwgYXRtb3NwaGVyaWMgZm9nLCBzaGFsbG93IGRlcHRoIG9mIGZpZWxkLCBtaW5pbWFsIGNvbXBvc2l0aW9uLCBkcmVhbXkgbm9zdGFsZ2ljIG1vb2QsIHZpbnRhZ2UgbGVucyBzb2Z0bmVzcyBhbmQgc21vb3RoIGNvbG9yIHRyYW5zaXRpb25zLiJ9LCAiY2xhc3NfdHlwZSI6ICJQcmltaXRpdmVTdHJpbmdNdWx0aWxpbmUiLCAiX21ldGEiOiB7InRpdGxlIjogIlByb21wdCJ9fSwgIjU3OjMwIjogeyJpbnB1dHMiOiB7ImNsaXBfbmFtZSI6ICJxd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAidHlwZSI6ICJsdW1pbmEyIiwgImRldmljZSI6ICJkZWZhdWx0In0sICJjbGFzc190eXBlIjogIkNMSVBMb2FkZXIiLCAiX21ldGEiOiB7InRpdGxlIjogIkxvYWQgQ0xJUCJ9fSwgIjU3OjI5IjogeyJpbnB1dHMiOiB7InZhZV9uYW1lIjogImFlLnNhZmV0ZW5zb3JzIn0sICJjbGFzc190eXBlIjogIlZBRUxvYWRlciIsICJfbWV0YSI6IHsidGl0bGUiOiAiTG9hZCBWQUUifX0sICI1NzozMyI6IHsiaW5wdXRzIjogeyJjb25kaXRpb25pbmciOiBbIjU3OjI3IiwgMF19LCAiY2xhc3NfdHlwZSI6ICJDb25kaXRpb25pbmdaZXJvT3V0IiwgIl9tZXRhIjogeyJ0aXRsZSI6ICJDb25kaXRpb25pbmdaZXJvT3V0In19LCAiNTc6OCI6IHsiaW5wdXRzIjogeyJzYW1wbGVzIjogWyI1NzozIiwgMF0sICJ2YWUiOiBbIjU3OjI5IiwgMF19LCAiY2xhc3NfdHlwZSI6ICJWQUVEZWNvZGUiLCAiX21ldGEiOiB7InRpdGxlIjogIlZBRSBEZWNvZGUifX0sICI1NzoyOCI6IHsiaW5wdXRzIjogeyJ1bmV0X25hbWUiOiAiel9pbWFnZV90dXJib19iZjE2LnNhZmV0ZW5zb3JzIiwgIndlaWdodF9kdHlwZSI6ICJkZWZhdWx0In0sICJjbGFzc190eXBlIjogIlVORVRMb2FkZXIiLCAiX21ldGEiOiB7InRpdGxlIjogIkxvYWQgRGlmZnVzaW9uIE1vZGVsIn19LCAiNTc6MjciOiB7ImlucHV0cyI6IHsidGV4dCI6IFsiNTgiLCAwXSwgImNsaXAiOiBbIjU3OjMwIiwgMF19LCAiY2xhc3NfdHlwZSI6ICJDTElQVGV4dEVuY29kZSIsICJfbWV0YSI6IHsidGl0bGUiOiAiQ0xJUCBUZXh0IEVuY29kZSAoUHJvbXB0KSJ9fSwgIjU3OjEzIjogeyJpbnB1dHMiOiB7IndpZHRoIjogMTI4MCwgImhlaWdodCI6IDcyMCwgImJhdGNoX3NpemUiOiAxfSwgImNsYXNzX3R5cGUiOiAiRW1wdHlTRDNMYXRlbnRJbWFnZSIsICJfbWV0YSI6IHsidGl0bGUiOiAiRW1wdHlTRDNMYXRlbnRJbWFnZSJ9fSwgIjU3OjMiOiB7ImlucHV0cyI6IHsic2VlZCI6IDY0OTI5MjEyMjcxODY3MSwgInN0ZXBzIjogNCwgImNmZyI6IDEuMCwgInNhbXBsZXJfbmFtZSI6ICJyZXNfbXVsdGlzdGVwIiwgInNjaGVkdWxlciI6ICJzaW1wbGUiLCAiZGVub2lzZSI6IDEuMCwgIm1vZGVsIjogWyI1NzoxMSIsIDBdLCAicG9zaXRpdmUiOiBbIjU3OjI3IiwgMF0sICJuZWdhdGl2ZSI6IFsiNTc6MzMiLCAwXSwgImxhdGVudF9pbWFnZSI6IFsiNTc6MTMiLCAwXX0sICJjbGFzc190eXBlIjogIktTYW1wbGVyIiwgIl9tZXRhIjogeyJ0aXRsZSI6ICJLU2FtcGxlciJ9fSwgIjU3OjExIjogeyJpbnB1dHMiOiB7InNoaWZ0IjogMy4wLCAibW9kZWwiOiBbIjU3OjI4IiwgMF19LCAiY2xhc3NfdHlwZSI6ICJNb2RlbFNhbXBsaW5nQXVyYUZsb3ciLCAiX21ldGEiOiB7InRpdGxlIjogIk1vZGVsU2FtcGxpbmdBdXJhRmxvdyJ9fX2E/dbiAABnQnRFWHR3b3JrZmxvdwB7ImlkIjogIjlhZTYwODJiLWM3ZjQtNDMzYy05OTcxLTdhOGY2NWEzZWE2NSIsICJyZXZpc2lvbiI6IDAsICJsYXN0X25vZGVfaWQiOiA2MSwgImxhc3RfbGlua19pZCI6IDY4LCAibm9kZXMiOiBbeyJpZCI6IDYwLCAidHlwZSI6ICJTYXZlSW1hZ2UiLCAicG9zIjogWzExNzAsIDYzMF0sICJzaXplIjogWzc4MCwgNjYwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDYsICJtb2RlIjogNCwgImlucHV0cyI6IFt7Im5hbWUiOiAiaW1hZ2VzIiwgInR5cGUiOiAiSU1BR0UiLCAibGluayI6IDY1fV0sICJvdXRwdXRzIjogW10sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlNhdmVJbWFnZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIlBST0pFQ1RTLzI2MDFfVEVTVC8wMl9PVVQvSU1BR0VTLzI2MDIwNy9UZXN0L1pfSW1hZ2VfVHVyYm8vMjYwMjA3X1Rlc3RfIl19LCB7ImlkIjogMzUsICJ0eXBlIjogIk1hcmtkb3duTm90ZSIsICJwb3MiOiBbLTQ0MCwgMTkwXSwgInNpemUiOiBbNTEwLCA2MDBdLCAiZmxhZ3MiOiB7ImNvbGxhcHNlZCI6IGZhbHNlfSwgIm9yZGVyIjogMCwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW10sICJvdXRwdXRzIjogW10sICJ0aXRsZSI6ICJNb2RlbCBsaW5rIiwgInByb3BlcnRpZXMiOiB7fSwgIndpZGdldHNfdmFsdWVzIjogWyIjIyBSZXBvcnQgd29ya2Zsb3cgaXNzdWVcblxuSWYgeW91IGZvdW5kIGFueSBpc3N1ZXMgd2hlbiBydW5uaW5nIHRoaXMgd29ya2Zsb3csIFtyZXBvcnQgdGVtcGxhdGUgaXNzdWUgaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0NvbWZ5LU9yZy93b3JrZmxvd190ZW1wbGF0ZXMvaXNzdWVzKVxuXG5cbiMjIE1vZGVsIGxpbmtzXG5cbioqdGV4dF9lbmNvZGVycyoqXG5cbi0gW3F3ZW5fM180Yi5zYWZldGVuc29yc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvdGV4dF9lbmNvZGVycy9xd2VuXzNfNGIuc2FmZXRlbnNvcnMpXG5cbioqbG9yYXMqKlxuXG4tIFtwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29yc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby90YXJuNTkvcGl4ZWxfYXJ0X3N0eWxlX2xvcmFfel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vcGl4ZWxfYXJ0X3N0eWxlX3pfaW1hZ2VfdHVyYm8uc2FmZXRlbnNvcnMpXG5cbioqZGlmZnVzaW9uX21vZGVscyoqXG5cbi0gW3pfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29yc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvZGlmZnVzaW9uX21vZGVscy96X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnMpXG5cbioqdmFlKipcblxuLSBbYWUuc2FmZXRlbnNvcnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQ29tZnktT3JnL3pfaW1hZ2VfdHVyYm8vcmVzb2x2ZS9tYWluL3NwbGl0X2ZpbGVzL3ZhZS9hZS5zYWZldGVuc29ycylcblxuXG5Nb2RlbCBTdG9yYWdlIExvY2F0aW9uXG5cbmBgYFxuXHVkODNkXHVkY2MyIENvbWZ5VUkvXG5cdTI1MWNcdTI1MDBcdTI1MDAgXHVkODNkXHVkY2MyIG1vZGVscy9cblx1MjUwMiAgIFx1MjUxY1x1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgdGV4dF9lbmNvZGVycy9cblx1MjUwMiAgIFx1MjUwMiAgICAgIFx1MjUxNFx1MjUwMFx1MjUwMCBxd2VuXzNfNGIuc2FmZXRlbnNvcnNcblx1MjUwMiAgIFx1MjUxY1x1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgbG9yYXMvXG5cdTI1MDIgICBcdTI1MDIgICAgICBcdTI1MTRcdTI1MDBcdTI1MDAgcGl4ZWxfYXJ0X3N0eWxlX3pfaW1hZ2VfdHVyYm8uc2FmZXRlbnNvcnNcblx1MjUwMiAgIFx1MjUxY1x1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgZGlmZnVzaW9uX21vZGVscy9cblx1MjUwMiAgIFx1MjUwMiAgICAgIFx1MjUxNFx1MjUwMFx1MjUwMCB6X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnNcblx1MjUwMiAgIFx1MjUxNFx1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgdmFlL1xuXHUyNTAyICAgICAgICAgIFx1MjUxNFx1MjUwMFx1MjUwMCBhZS5zYWZldGVuc29yc1xuYGBgXG4iXSwgImNvbG9yIjogIiM0MzIiLCAiYmdjb2xvciI6ICIjMDAwIn0sIHsiaWQiOiA2MSwgInR5cGUiOiAiU3RyaW5nQ29uY2F0ZW5hdGUiLCAicG9zIjogWzE0MCwgNTAwXSwgInNpemUiOiBbNDAwLCAyMDBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMywgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibmFtZSI6ICJzdHJpbmdfYiIsICJ0eXBlIjogIlNUUklORyIsICJ3aWRnZXQiOiB7Im5hbWUiOiAic3RyaW5nX2IifSwgImxpbmsiOiA2N31dLCAib3V0cHV0cyI6IFt7Im5hbWUiOiAiU1RSSU5HIiwgInR5cGUiOiAiU1RSSU5HIiwgImxpbmtzIjogWzY2XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuNy4wIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlN0cmluZ0NvbmNhdGVuYXRlIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsiUGl4ZWwgYXJ0IHN0eWxlLCIsICIiLCAiIl19LCB7ImlkIjogNTksICJ0eXBlIjogImQwOTdiNjQ1LTRkM2EtNGJiNy04YjBlLTcwZTYwMWNmMDdjOSIsICJwb3MiOiBbNzIwLCA2MzBdLCAic2l6ZSI6IFs0MDAsIDQ3MF0sICJmbGFncyI6IHt9LCAib3JkZXIiOiA1LCAibW9kZSI6IDQsICJpbnB1dHMiOiBbeyJuYW1lIjogInRleHQiLCAidHlwZSI6ICJTVFJJTkciLCAid2lkZ2V0IjogeyJuYW1lIjogInRleHQifSwgImxpbmsiOiA2Nn0sIHsibGFiZWwiOiAibG9yYV9zdHJlbmd0aCIsICJuYW1lIjogInN0cmVuZ3RoX21vZGVsIiwgInR5cGUiOiAiRkxPQVQiLCAid2lkZ2V0IjogeyJuYW1lIjogInN0cmVuZ3RoX21vZGVsIn0sICJsaW5rIjogbnVsbH1dLCAib3V0cHV0cyI6IFt7Im5hbWUiOiAiSU1BR0UiLCAidHlwZSI6ICJJTUFHRSIsICJsaW5rcyI6IFs2NV19XSwgInByb3BlcnRpZXMiOiB7InByb3h5V2lkZ2V0cyI6IFtbIi0xIiwgInRleHQiXSwgWyItMSIsICJ3aWR0aCJdLCBbIi0xIiwgImhlaWdodCJdLCBbIi0xIiwgImxvcmFfbmFtZSJdLCBbIi0xIiwgInN0cmVuZ3RoX21vZGVsIl0sIFsiMyIsICJzZWVkIl0sIFsiMyIsICJjb250cm9sX2FmdGVyX2dlbmVyYXRlIl1dLCAiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIiIsIDEwMjQsIDEwMjQsICJwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29ycyIsIDFdfSwgeyJpZCI6IDksICJ0eXBlIjogIlNhdmVJbWFnZSIsICJwb3MiOiBbMTE2MCwgLTExMF0sICJzaXplIjogWzc4MCwgNjYwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDQsICJtb2RlIjogMCwgImlucHV0cyI6IFt7Im5hbWUiOiAiaW1hZ2VzIiwgInR5cGUiOiAiSU1BR0UiLCAibGluayI6IDYyfV0sICJvdXRwdXRzIjogW10sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlNhdmVJbWFnZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIlBST0pFQ1RTLzI2MDFfVEVTVC8wMl9PVVQvSU1BR0VTLzI2MDIwNy9UZXN0L1pfSW1hZ2VfVHVyYm8vMjYwMjA3X1Rlc3RfIl19LCB7ImlkIjogNTcsICJ0eXBlIjogImYyZmRlYmY2LWRmYWYtNDNiNi05ZWIyLTdmNzA2MTNjZmRjMSIsICJwb3MiOiBbNzIwLCAtMTEwXSwgInNpemUiOiBbNDAwLCA0NzBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMiwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibGFiZWwiOiAicHJvbXB0IiwgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogIlNUUklORyIsICJ3aWRnZXQiOiB7Im5hbWUiOiAidGV4dCJ9LCAibGluayI6IDYzfV0sICJvdXRwdXRzIjogW3sibmFtZSI6ICJJTUFHRSIsICJ0eXBlIjogIklNQUdFIiwgImxpbmtzIjogWzYyXX1dLCAicHJvcGVydGllcyI6IHsicHJveHlXaWRnZXRzIjogW1siLTEiLCAidGV4dCJdLCBbIi0xIiwgIndpZHRoIl0sIFsiLTEiLCAiaGVpZ2h0Il0sIFsiMyIsICJzZWVkIl0sIFsiMyIsICJjb250cm9sX2FmdGVyX2dlbmVyYXRlIl1dLCAiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIiIsIDEyODAsIDcyMF19LCB7ImlkIjogNTgsICJ0eXBlIjogIlByaW1pdGl2ZVN0cmluZ011bHRpbGluZSIsICJwb3MiOiBbMTUwLjI0MzUyNzQ4ODI2NTk1LCAtMzMuNTM5MjMyMTU0MTYxOTY1XSwgInNpemUiOiBbNDAwLCAyMDBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMSwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW10sICJvdXRwdXRzIjogW3sibmFtZSI6ICJTVFJJTkciLCAidHlwZSI6ICJTVFJJTkciLCAibGlua3MiOiBbNjMsIDY3XX1dLCAidGl0bGUiOiAiUHJvbXB0IiwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjcuMCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJQcmltaXRpdmVTdHJpbmdNdWx0aWxpbmUiLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJCbHVycnkgY3V0ZSBzbWFsbCBkaW5vc2F1cnVzIGxpa2UgY3JlYXR1cmUgc2lsaG91ZXR0ZSB3aXRoIGhlYWRwaG9uZSBpbiBhIGNpbmVtYXRpYyBzbG93LXNodXR0ZXIgcGFuLCB3YXJtIGJhY2tsaXQgc3Vuc2V0IGdyYWRpZW50IGZyb20gZGVlcCByZWQgdG8gb3JhbmdlIGFuZCBnb2xkLCBnbG93aW5nIGhhemUgYW5kIGJsb29tLCByaW0tbGl0IGhhaXIgaGFsbywgZ2VudGxlIG1vdGlvbi1ibHVyIHRyYWlsLCBzb2Z0LWZvY3VzIGZhY2lhbCBmZWF0dXJlcywgc3VidGxlIGZpbG0gZ3JhaW4sIGF0bW9zcGhlcmljIGZvZywgc2hhbGxvdyBkZXB0aCBvZiBmaWVsZCwgbWluaW1hbCBjb21wb3NpdGlvbiwgZHJlYW15IG5vc3RhbGdpYyBtb29kLCB2aW50YWdlIGxlbnMgc29mdG5lc3MgYW5kIHNtb290aCBjb2xvciB0cmFuc2l0aW9ucy4iXX1dLCAibGlua3MiOiBbWzYyLCA1NywgMCwgOSwgMCwgIklNQUdFIl0sIFs2MywgNTgsIDAsIDU3LCAwLCAiU1RSSU5HIl0sIFs2NSwgNTksIDAsIDYwLCAwLCAiSU1BR0UiXSwgWzY2LCA2MSwgMCwgNTksIDAsICJTVFJJTkciXSwgWzY3LCA1OCwgMCwgNjEsIDAsICJTVFJJTkciXV0sICJncm91cHMiOiBbXSwgImRlZmluaXRpb25zIjogeyJzdWJncmFwaHMiOiBbeyJpZCI6ICJmMmZkZWJmNi1kZmFmLTQzYjYtOWViMi03ZjcwNjEzY2ZkYzEiLCAidmVyc2lvbiI6IDEsICJzdGF0ZSI6IHsibGFzdEdyb3VwSWQiOiA0LCAibGFzdE5vZGVJZCI6IDM0LCAibGFzdExpbmtJZCI6IDM3LCAibGFzdFJlcm91dGVJZCI6IDB9LCAicmV2aXNpb24iOiAwLCAiY29uZmlnIjoge30sICJuYW1lIjogIlRleHQgdG8gSW1hZ2UgKFotSW1hZ2UtVHVyYm8pIiwgImlucHV0Tm9kZSI6IHsiaWQiOiAtMTAsICJib3VuZGluZyI6IFstODAsIDQyNSwgMTIwLCAxMDBdfSwgIm91dHB1dE5vZGUiOiB7ImlkIjogLTIwLCAiYm91bmRpbmciOiBbMTQ5MCwgNDE1LCAxMjAsIDYwXX0sICJpbnB1dHMiOiBbeyJpZCI6ICJmYjE3ODY2OS1lNzQyLTRhNTMtOGE2OS03ZGY1OTgzNGRmZDgiLCAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAiU1RSSU5HIiwgImxpbmtJZHMiOiBbMzRdLCAibGFiZWwiOiAicHJvbXB0IiwgInBvcyI6IFsyMCwgNDQ1XX0sIHsiaWQiOiAiZGQ3ODBiM2MtMjNlOS00NmZmLTg0NjktMTU2MDA4ZjQyZTVhIiwgIm5hbWUiOiAid2lkdGgiLCAidHlwZSI6ICJJTlQiLCAibGlua0lkcyI6IFszNV0sICJwb3MiOiBbMjAsIDQ2NV19LCB7ImlkIjogIjdiMDhkNTQ2LTZiYjAtNGVmOS04MmU5LWZmYWU1ZTFlZTZiYyIsICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIklOVCIsICJsaW5rSWRzIjogWzM2XSwgInBvcyI6IFsyMCwgNDg1XX1dLCAib3V0cHV0cyI6IFt7ImlkIjogIjFmYTcyYTIxLWNlMDAtNDk1Mi04MTRlLTFmMmZmYmU4N2QxZCIsICJuYW1lIjogIklNQUdFIiwgInR5cGUiOiAiSU1BR0UiLCAibGlua0lkcyI6IFsxNl0sICJsb2NhbGl6ZWRfbmFtZSI6ICJJTUFHRSIsICJwb3MiOiBbMTUxMCwgNDM1XX1dLCAid2lkZ2V0cyI6IFtdLCAibm9kZXMiOiBbeyJpZCI6IDMwLCAidHlwZSI6ICJDTElQTG9hZGVyIiwgInBvcyI6IFsxMTAsIDMzMF0sICJzaXplIjogWzI3MCwgMTA2XSwgImZsYWdzIjoge30sICJvcmRlciI6IDAsICJtb2RlIjogMCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkNMSVAiLCAibmFtZSI6ICJDTElQIiwgInR5cGUiOiAiQ0xJUCIsICJsaW5rcyI6IFsyOF19XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiQ0xJUExvYWRlciIsICJtb2RlbHMiOiBbeyJuYW1lIjogInF3ZW5fM180Yi5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvdGV4dF9lbmNvZGVycy9xd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogInRleHRfZW5jb2RlcnMifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbInF3ZW5fM180Yi5zYWZldGVuc29ycyIsICJsdW1pbmEyIiwgImRlZmF1bHQiXX0sIHsiaWQiOiAyOSwgInR5cGUiOiAiVkFFTG9hZGVyIiwgInBvcyI6IFsxMTAsIDQ4MF0sICJzaXplIjogWzI3MCwgNThdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMSwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW10sICJvdXRwdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiVkFFIiwgIm5hbWUiOiAiVkFFIiwgInR5cGUiOiAiVkFFIiwgImxpbmtzIjogWzI3XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJWQUVMb2FkZXIiLCAibW9kZWxzIjogW3sibmFtZSI6ICJhZS5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvdmFlL2FlLnNhZmV0ZW5zb3JzIiwgImRpcmVjdG9yeSI6ICJ2YWUifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbImFlLnNhZmV0ZW5zb3JzIl19LCB7ImlkIjogMzMsICJ0eXBlIjogIkNvbmRpdGlvbmluZ1plcm9PdXQiLCAicG9zIjogWzY0MCwgNjIwXSwgInNpemUiOiBbMjA0LjEzNDc2NTYyNSwgMjZdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogOCwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiY29uZGl0aW9uaW5nIiwgIm5hbWUiOiAiY29uZGl0aW9uaW5nIiwgInR5cGUiOiAiQ09ORElUSU9OSU5HIiwgImxpbmsiOiAzMn1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkNPTkRJVElPTklORyIsICJuYW1lIjogIkNPTkRJVElPTklORyIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rcyI6IFszM119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiQ29uZGl0aW9uaW5nWmVyb091dCIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbXX0sIHsiaWQiOiA4LCAidHlwZSI6ICJWQUVEZWNvZGUiLCAicG9zIjogWzEyMjAsIDE2MF0sICJzaXplIjogWzIxMCwgNDZdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNSwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAic2FtcGxlcyIsICJuYW1lIjogInNhbXBsZXMiLCAidHlwZSI6ICJMQVRFTlQiLCAibGluayI6IDE0fSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJ2YWUiLCAibmFtZSI6ICJ2YWUiLCAidHlwZSI6ICJWQUUiLCAibGluayI6IDI3fV0sICJvdXRwdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiSU1BR0UiLCAibmFtZSI6ICJJTUFHRSIsICJ0eXBlIjogIklNQUdFIiwgInNsb3RfaW5kZXgiOiAwLCAibGlua3MiOiBbMTZdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlZBRURlY29kZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbXX0sIHsiaWQiOiAyOCwgInR5cGUiOiAiVU5FVExvYWRlciIsICJwb3MiOiBbMTEwLCAyMDBdLCAic2l6ZSI6IFsyNzAsIDgyXSwgImZsYWdzIjoge30sICJvcmRlciI6IDIsICJtb2RlIjogMCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIk1PREVMIiwgIm5hbWUiOiAiTU9ERUwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rcyI6IFsyNl19XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiVU5FVExvYWRlciIsICJtb2RlbHMiOiBbeyJuYW1lIjogInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvZGlmZnVzaW9uX21vZGVscy96X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogImRpZmZ1c2lvbl9tb2RlbHMifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJkZWZhdWx0Il0sICJjb2xvciI6ICIjRkYwMDAwIn0sIHsiaWQiOiAyNywgInR5cGUiOiAiQ0xJUFRleHRFbmNvZGUiLCAicG9zIjogWzQzMCwgMjAwXSwgInNpemUiOiBbNDEwLCAzNzBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNywgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiY2xpcCIsICJuYW1lIjogImNsaXAiLCAidHlwZSI6ICJDTElQIiwgImxpbmsiOiAyOH0sIHsibG9jYWxpemVkX25hbWUiOiAidGV4dCIsICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJTVFJJTkciLCAid2lkZ2V0IjogeyJuYW1lIjogInRleHQifSwgImxpbmsiOiAzNH1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkNPTkRJVElPTklORyIsICJuYW1lIjogIkNPTkRJVElPTklORyIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rcyI6IFszMCwgMzJdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjczIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkNMSVBUZXh0RW5jb2RlIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsiIl19LCB7ImlkIjogMTMsICJ0eXBlIjogIkVtcHR5U0QzTGF0ZW50SW1hZ2UiLCAicG9zIjogWzExMCwgNjMwXSwgInNpemUiOiBbMjYwLCAxMTBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNiwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAid2lkdGgiLCAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogIklOVCIsICJ3aWRnZXQiOiB7Im5hbWUiOiAid2lkdGgifSwgImxpbmsiOiAzNX0sIHsibG9jYWxpemVkX25hbWUiOiAiaGVpZ2h0IiwgIm5hbWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiSU5UIiwgIndpZGdldCI6IHsibmFtZSI6ICJoZWlnaHQifSwgImxpbmsiOiAzNn1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkxBVEVOVCIsICJuYW1lIjogIkxBVEVOVCIsICJ0eXBlIjogIkxBVEVOVCIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzE3XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJFbXB0eVNEM0xhdGVudEltYWdlIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsxMjgwLCA3MjAsIDFdfSwgeyJpZCI6IDMsICJ0eXBlIjogIktTYW1wbGVyIiwgInBvcyI6IFs4ODAsIDI3MF0sICJzaXplIjogWzMxNSwgMjYyXSwgImZsYWdzIjoge30sICJvcmRlciI6IDQsICJtb2RlIjogMCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIm1vZGVsIiwgIm5hbWUiOiAibW9kZWwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rIjogMTN9LCB7ImxvY2FsaXplZF9uYW1lIjogInBvc2l0aXZlIiwgIm5hbWUiOiAicG9zaXRpdmUiLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGluayI6IDMwfSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJuZWdhdGl2ZSIsICJuYW1lIjogIm5lZ2F0aXZlIiwgInR5cGUiOiAiQ09ORElUSU9OSU5HIiwgImxpbmsiOiAzM30sIHsibG9jYWxpemVkX25hbWUiOiAibGF0ZW50X2ltYWdlIiwgIm5hbWUiOiAibGF0ZW50X2ltYWdlIiwgInR5cGUiOiAiTEFURU5UIiwgImxpbmsiOiAxN31dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkxBVEVOVCIsICJuYW1lIjogIkxBVEVOVCIsICJ0eXBlIjogIkxBVEVOVCIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzE0XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJLU2FtcGxlciIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbNjQ5MjkyMTIyNzE4NjcxLCAicmFuZG9taXplIiwgNCwgMSwgInJlc19tdWx0aXN0ZXAiLCAic2ltcGxlIiwgMV19LCB7ImlkIjogMTEsICJ0eXBlIjogIk1vZGVsU2FtcGxpbmdBdXJhRmxvdyIsICJwb3MiOiBbODgwLCAxNjBdLCAic2l6ZSI6IFszMTAsIDYwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDMsICJtb2RlIjogMCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIm1vZGVsIiwgIm5hbWUiOiAibW9kZWwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rIjogMjZ9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJNT0RFTCIsICJuYW1lIjogIk1PREVMIiwgInR5cGUiOiAiTU9ERUwiLCAic2xvdF9pbmRleCI6IDAsICJsaW5rcyI6IFsxM119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNjQiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiTW9kZWxTYW1wbGluZ0F1cmFGbG93IiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFszXX1dLCAiZ3JvdXBzIjogW3siaWQiOiAyLCAidGl0bGUiOiAiU3RlcDIgLSBJbWFnZSBzaXplIiwgImJvdW5kaW5nIjogWzEwMCwgNTYwLCAyOTAsIDIwMF0sICJjb2xvciI6ICIjM2Y3ODllIiwgImZvbnRfc2l6ZSI6IDI0LCAiZmxhZ3MiOiB7fX0sIHsiaWQiOiAzLCAidGl0bGUiOiAiU3RlcDMgLSBQcm9tcHQiLCAiYm91bmRpbmciOiBbNDEwLCAxMzAsIDQ1MCwgNTQwXSwgImNvbG9yIjogIiMzZjc4OWUiLCAiZm9udF9zaXplIjogMjQsICJmbGFncyI6IHt9fSwgeyJpZCI6IDQsICJ0aXRsZSI6ICJTdGVwMSAtIExvYWQgbW9kZWxzIiwgImJvdW5kaW5nIjogWzEwMCwgMTMwLCAyOTAsIDQxMy42XSwgImNvbG9yIjogIiMzZjc4OWUiLCAiZm9udF9zaXplIjogMjQsICJmbGFncyI6IHt9fV0sICJsaW5rcyI6IFt7ImlkIjogMzIsICJvcmlnaW5faWQiOiAyNywgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDMzLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJDT05ESVRJT05JTkcifSwgeyJpZCI6IDI2LCAib3JpZ2luX2lkIjogMjgsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAxMSwgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiTU9ERUwifSwgeyJpZCI6IDE0LCAib3JpZ2luX2lkIjogMywgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDgsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIkxBVEVOVCJ9LCB7ImlkIjogMjcsICJvcmlnaW5faWQiOiAyOSwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDgsICJ0YXJnZXRfc2xvdCI6IDEsICJ0eXBlIjogIlZBRSJ9LCB7ImlkIjogMTMsICJvcmlnaW5faWQiOiAxMSwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDMsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIk1PREVMIn0sIHsiaWQiOiAzMCwgIm9yaWdpbl9pZCI6IDI3LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiQ09ORElUSU9OSU5HIn0sIHsiaWQiOiAzMywgIm9yaWdpbl9pZCI6IDMzLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMiwgInR5cGUiOiAiQ09ORElUSU9OSU5HIn0sIHsiaWQiOiAxNywgIm9yaWdpbl9pZCI6IDEzLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMywgInR5cGUiOiAiTEFURU5UIn0sIHsiaWQiOiAyOCwgIm9yaWdpbl9pZCI6IDMwLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMjcsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIkNMSVAifSwgeyJpZCI6IDE2LCAib3JpZ2luX2lkIjogOCwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IC0yMCwgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiSU1BR0UifSwgeyJpZCI6IDM0LCAib3JpZ2luX2lkIjogLTEwLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMjcsICJ0YXJnZXRfc2xvdCI6IDEsICJ0eXBlIjogIlNUUklORyJ9LCB7ImlkIjogMzUsICJvcmlnaW5faWQiOiAtMTAsICJvcmlnaW5fc2xvdCI6IDEsICJ0YXJnZXRfaWQiOiAxMywgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiSU5UIn0sIHsiaWQiOiAzNiwgIm9yaWdpbl9pZCI6IC0xMCwgIm9yaWdpbl9zbG90IjogMiwgInRhcmdldF9pZCI6IDEzLCAidGFyZ2V0X3Nsb3QiOiAxLCAidHlwZSI6ICJJTlQifV0sICJleHRyYSI6IHsid29ya2Zsb3dSZW5kZXJlclZlcnNpb24iOiAiTEcifX0sIHsiaWQiOiAiZDA5N2I2NDUtNGQzYS00YmI3LThiMGUtNzBlNjAxY2YwN2M5IiwgInZlcnNpb24iOiAxLCAic3RhdGUiOiB7Imxhc3RHcm91cElkIjogNCwgImxhc3ROb2RlSWQiOiAzNiwgImxhc3RMaW5rSWQiOiA0MSwgImxhc3RSZXJvdXRlSWQiOiAwfSwgInJldmlzaW9uIjogMCwgImNvbmZpZyI6IHt9LCAibmFtZSI6ICJUZXh0IHRvIEltYWdlIChaLUltYWdlLVR1cmJvIHdpdGggTG9SQSkiLCAiaW5wdXROb2RlIjogeyJpZCI6IC0xMCwgImJvdW5kaW5nIjogWy04MCwgNDI1LCAxMjAsIDE0MF19LCAib3V0cHV0Tm9kZSI6IHsiaWQiOiAtMjAsICJib3VuZGluZyI6IFsxNDkwLCA0MTUsIDEyMCwgNjBdfSwgImlucHV0cyI6IFt7ImlkIjogImZiMTc4NjY5LWU3NDItNGE1My04YTY5LTdkZjU5ODM0ZGZkOCIsICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJTVFJJTkciLCAibGlua0lkcyI6IFszNF0sICJwb3MiOiBbMjAsIDQ0NV19LCB7ImlkIjogImRkNzgwYjNjLTIzZTktNDZmZi04NDY5LTE1NjAwOGY0MmU1YSIsICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAiSU5UIiwgImxpbmtJZHMiOiBbMzVdLCAicG9zIjogWzIwLCA0NjVdfSwgeyJpZCI6ICI3YjA4ZDU0Ni02YmIwLTRlZjktODJlOS1mZmFlNWUxZWU2YmMiLCAibmFtZSI6ICJoZWlnaHQiLCAidHlwZSI6ICJJTlQiLCAibGlua0lkcyI6IFszNl0sICJwb3MiOiBbMjAsIDQ4NV19LCB7ImlkIjogIjg0MGNkNTMxLWZmYzUtNDk0OS04OTg2LTM5YjIyNzI1ZDZlYSIsICJuYW1lIjogImxvcmFfbmFtZSIsICJ0eXBlIjogIkNPTUJPIiwgImxpbmtJZHMiOiBbNDBdLCAicG9zIjogWzIwLCA1MDVdfSwgeyJpZCI6ICIzOGM5ZWMwNy1jN2UzLTQyMGMtOGFkNS0zMWVmYmQxMmUyNTgiLCAibmFtZSI6ICJzdHJlbmd0aF9tb2RlbCIsICJ0eXBlIjogIkZMT0FUIiwgImxpbmtJZHMiOiBbNDFdLCAibGFiZWwiOiAibG9yYV9zdHJlbmd0aCIsICJwb3MiOiBbMjAsIDUyNV19XSwgIm91dHB1dHMiOiBbeyJpZCI6ICIxZmE3MmEyMS1jZTAwLTQ5NTItODE0ZS0xZjJmZmJlODdkMWQiLCAibmFtZSI6ICJJTUFHRSIsICJ0eXBlIjogIklNQUdFIiwgImxpbmtJZHMiOiBbMTZdLCAibG9jYWxpemVkX25hbWUiOiAiSU1BR0UiLCAicG9zIjogWzE1MTAsIDQzNV19XSwgIndpZGdldHMiOiBbXSwgIm5vZGVzIjogW3siaWQiOiAzMCwgInR5cGUiOiAiQ0xJUExvYWRlciIsICJwb3MiOiBbMTEwLCAzMzBdLCAic2l6ZSI6IFsyNzAsIDEwNl0sICJmbGFncyI6IHt9LCAib3JkZXIiOiAwLCAibW9kZSI6IDQsICJpbnB1dHMiOiBbXSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJDTElQIiwgIm5hbWUiOiAiQ0xJUCIsICJ0eXBlIjogIkNMSVAiLCAibGlua3MiOiBbMjhdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjczIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkNMSVBMb2FkZXIiLCAibW9kZWxzIjogW3sibmFtZSI6ICJxd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAidXJsIjogImh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQ29tZnktT3JnL3pfaW1hZ2VfdHVyYm8vcmVzb2x2ZS9tYWluL3NwbGl0X2ZpbGVzL3RleHRfZW5jb2RlcnMvcXdlbl8zXzRiLnNhZmV0ZW5zb3JzIiwgImRpcmVjdG9yeSI6ICJ0ZXh0X2VuY29kZXJzIn1dLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJxd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAibHVtaW5hMiIsICJkZWZhdWx0Il19LCB7ImlkIjogMjksICJ0eXBlIjogIlZBRUxvYWRlciIsICJwb3MiOiBbMTEwLCA0ODBdLCAic2l6ZSI6IFsyNzAsIDU4XSwgImZsYWdzIjoge30sICJvcmRlciI6IDEsICJtb2RlIjogNCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIlZBRSIsICJuYW1lIjogIlZBRSIsICJ0eXBlIjogIlZBRSIsICJsaW5rcyI6IFsyN119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiVkFFTG9hZGVyIiwgIm1vZGVscyI6IFt7Im5hbWUiOiAiYWUuc2FmZXRlbnNvcnMiLCAidXJsIjogImh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQ29tZnktT3JnL3pfaW1hZ2VfdHVyYm8vcmVzb2x2ZS9tYWluL3NwbGl0X2ZpbGVzL3ZhZS9hZS5zYWZldGVuc29ycyIsICJkaXJlY3RvcnkiOiAidmFlIn1dLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJhZS5zYWZldGVuc29ycyJdfSwgeyJpZCI6IDMzLCAidHlwZSI6ICJDb25kaXRpb25pbmdaZXJvT3V0IiwgInBvcyI6IFs2NDAsIDYyMF0sICJzaXplIjogWzIwNC4xMzQ3NjU2MjUsIDI2XSwgImZsYWdzIjoge30sICJvcmRlciI6IDksICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogImNvbmRpdGlvbmluZyIsICJuYW1lIjogImNvbmRpdGlvbmluZyIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rIjogMzJ9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJDT05ESVRJT05JTkciLCAibmFtZSI6ICJDT05ESVRJT05JTkciLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGlua3MiOiBbMzNdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjczIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkNvbmRpdGlvbmluZ1plcm9PdXQiLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogW119LCB7ImlkIjogOCwgInR5cGUiOiAiVkFFRGVjb2RlIiwgInBvcyI6IFsxMjIwLCAxNjBdLCAic2l6ZSI6IFsyMTAsIDQ2XSwgImZsYWdzIjoge30sICJvcmRlciI6IDUsICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogInNhbXBsZXMiLCAibmFtZSI6ICJzYW1wbGVzIiwgInR5cGUiOiAiTEFURU5UIiwgImxpbmsiOiAxNH0sIHsibG9jYWxpemVkX25hbWUiOiAidmFlIiwgIm5hbWUiOiAidmFlIiwgInR5cGUiOiAiVkFFIiwgImxpbmsiOiAyN31dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIklNQUdFIiwgIm5hbWUiOiAiSU1BR0UiLCAidHlwZSI6ICJJTUFHRSIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzE2XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJWQUVEZWNvZGUiLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogW119LCB7ImlkIjogMjcsICJ0eXBlIjogIkNMSVBUZXh0RW5jb2RlIiwgInBvcyI6IFs0MzAsIDIwMF0sICJzaXplIjogWzQxMCwgMzcwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDgsICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogImNsaXAiLCAibmFtZSI6ICJjbGlwIiwgInR5cGUiOiAiQ0xJUCIsICJsaW5rIjogMjh9LCB7ImxvY2FsaXplZF9uYW1lIjogInRleHQiLCAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAiU1RSSU5HIiwgIndpZGdldCI6IHsibmFtZSI6ICJ0ZXh0In0sICJsaW5rIjogMzR9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJDT05ESVRJT05JTkciLCAibmFtZSI6ICJDT05ESVRJT05JTkciLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGlua3MiOiBbMzAsIDMyXX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJDTElQVGV4dEVuY29kZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIiJdfSwgeyJpZCI6IDEzLCAidHlwZSI6ICJFbXB0eVNEM0xhdGVudEltYWdlIiwgInBvcyI6IFsxMTAsIDYzMF0sICJzaXplIjogWzI2MCwgMTEwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDcsICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIndpZHRoIiwgIm5hbWUiOiAid2lkdGgiLCAidHlwZSI6ICJJTlQiLCAid2lkZ2V0IjogeyJuYW1lIjogIndpZHRoIn0sICJsaW5rIjogMzV9LCB7ImxvY2FsaXplZF9uYW1lIjogImhlaWdodCIsICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIklOVCIsICJ3aWRnZXQiOiB7Im5hbWUiOiAiaGVpZ2h0In0sICJsaW5rIjogMzZ9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJMQVRFTlQiLCAibmFtZSI6ICJMQVRFTlQiLCAidHlwZSI6ICJMQVRFTlQiLCAic2xvdF9pbmRleCI6IDAsICJsaW5rcyI6IFsxN119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNjQiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiRW1wdHlTRDNMYXRlbnRJbWFnZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbMTAyNCwgMTAyNCwgMV19LCB7ImlkIjogMywgInR5cGUiOiAiS1NhbXBsZXIiLCAicG9zIjogWzg4MCwgMjcwXSwgInNpemUiOiBbMzE1LCAyNjJdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNCwgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAibW9kZWwiLCAibmFtZSI6ICJtb2RlbCIsICJ0eXBlIjogIk1PREVMIiwgImxpbmsiOiAxM30sIHsibG9jYWxpemVkX25hbWUiOiAicG9zaXRpdmUiLCAibmFtZSI6ICJwb3NpdGl2ZSIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rIjogMzB9LCB7ImxvY2FsaXplZF9uYW1lIjogIm5lZ2F0aXZlIiwgIm5hbWUiOiAibmVnYXRpdmUiLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGluayI6IDMzfSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJsYXRlbnRfaW1hZ2UiLCAibmFtZSI6ICJsYXRlbnRfaW1hZ2UiLCAidHlwZSI6ICJMQVRFTlQiLCAibGluayI6IDE3fV0sICJvdXRwdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiTEFURU5UIiwgIm5hbWUiOiAiTEFURU5UIiwgInR5cGUiOiAiTEFURU5UIiwgInNsb3RfaW5kZXgiOiAwLCAibGlua3MiOiBbMTRdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIktTYW1wbGVyIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsyNDEwNjI3OTQzNjk1OTUsICJyYW5kb21pemUiLCA0LCAxLCAicmVzX211bHRpc3RlcCIsICJzaW1wbGUiLCAxXX0sIHsiaWQiOiAyOCwgInR5cGUiOiAiVU5FVExvYWRlciIsICJwb3MiOiBbMTEwLCAyMDBdLCAic2l6ZSI6IFsyNzAsIDgyXSwgImZsYWdzIjoge30sICJvcmRlciI6IDIsICJtb2RlIjogNCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIk1PREVMIiwgIm5hbWUiOiAiTU9ERUwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rcyI6IFszOF19XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiVU5FVExvYWRlciIsICJtb2RlbHMiOiBbeyJuYW1lIjogInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvZGlmZnVzaW9uX21vZGVscy96X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogImRpZmZ1c2lvbl9tb2RlbHMifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJkZWZhdWx0Il0sICJjb2xvciI6ICIjRkYwMDAwIn0sIHsiaWQiOiAzNiwgInR5cGUiOiAiTm90ZSIsICJwb3MiOiBbNTEwLCAtMTMwXSwgInNpemUiOiBbMjEwLCA4OF0sICJmbGFncyI6IHt9LCAib3JkZXIiOiAzLCAibW9kZSI6IDQsICJpbnB1dHMiOiBbXSwgIm91dHB1dHMiOiBbXSwgInRpdGxlIjogIkxvUkEgdHJpZ2dlciB3b3JkIiwgInByb3BlcnRpZXMiOiB7fSwgIndpZGdldHNfdmFsdWVzIjogWyJQaXhlbCBhcnQgc3R5bGUiXSwgImNvbG9yIjogIiM0MzIiLCAiYmdjb2xvciI6ICIjMDAwIn0sIHsiaWQiOiAxMSwgInR5cGUiOiAiTW9kZWxTYW1wbGluZ0F1cmFGbG93IiwgInBvcyI6IFs4ODAsIDE2MF0sICJzaXplIjogWzMxMCwgNjBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNiwgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAibW9kZWwiLCAibmFtZSI6ICJtb2RlbCIsICJ0eXBlIjogIk1PREVMIiwgImxpbmsiOiAzOX1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIk1PREVMIiwgIm5hbWUiOiAiTU9ERUwiLCAidHlwZSI6ICJNT0RFTCIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzEzXX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJNb2RlbFNhbXBsaW5nQXVyYUZsb3ciLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWzNdfSwgeyJpZCI6IDM1LCAidHlwZSI6ICJMb3JhTG9hZGVyTW9kZWxPbmx5IiwgInBvcyI6IFs0NTAsIDEwXSwgInNpemUiOiBbMzcwLCA4Ml0sICJmbGFncyI6IHt9LCAib3JkZXIiOiAxMCwgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAibW9kZWwiLCAibmFtZSI6ICJtb2RlbCIsICJ0eXBlIjogIk1PREVMIiwgImxpbmsiOiAzOH0sIHsibG9jYWxpemVkX25hbWUiOiAibG9yYV9uYW1lIiwgIm5hbWUiOiAibG9yYV9uYW1lIiwgInR5cGUiOiAiQ09NQk8iLCAid2lkZ2V0IjogeyJuYW1lIjogImxvcmFfbmFtZSJ9LCAibGluayI6IDQwfSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJzdHJlbmd0aF9tb2RlbCIsICJuYW1lIjogInN0cmVuZ3RoX21vZGVsIiwgInR5cGUiOiAiRkxPQVQiLCAid2lkZ2V0IjogeyJuYW1lIjogInN0cmVuZ3RoX21vZGVsIn0sICJsaW5rIjogNDF9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJNT0RFTCIsICJuYW1lIjogIk1PREVMIiwgInR5cGUiOiAiTU9ERUwiLCAibGlua3MiOiBbMzldfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjc1IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkxvcmFMb2FkZXJNb2RlbE9ubHkiLCAibW9kZWxzIjogW3sibmFtZSI6ICJwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby90YXJuNTkvcGl4ZWxfYXJ0X3N0eWxlX2xvcmFfel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vcGl4ZWxfYXJ0X3N0eWxlX3pfaW1hZ2VfdHVyYm8uc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogImxvcmFzIn1dLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29ycyIsIDFdfV0sICJncm91cHMiOiBbeyJpZCI6IDIsICJ0aXRsZSI6ICJTdGVwMiAtIEltYWdlIHNpemUiLCAiYm91bmRpbmciOiBbMTAwLCA1NjAsIDI5MCwgMjAwXSwgImNvbG9yIjogIiMzZjc4OWUiLCAiZm9udF9zaXplIjogMjQsICJmbGFncyI6IHt9fSwgeyJpZCI6IDMsICJ0aXRsZSI6ICJTdGVwMyAtIFByb21wdCIsICJib3VuZGluZyI6IFs0MTAsIDEzMCwgNDUwLCA1NDBdLCAiY29sb3IiOiAiIzNmNzg5ZSIsICJmb250X3NpemUiOiAyNCwgImZsYWdzIjoge319LCB7ImlkIjogNCwgInRpdGxlIjogIlN0ZXAxIC0gTG9hZCBtb2RlbHMiLCAiYm91bmRpbmciOiBbMTAwLCAxMzAsIDI5MCwgNDEzLjZdLCAiY29sb3IiOiAiIzNmNzg5ZSIsICJmb250X3NpemUiOiAyNCwgImZsYWdzIjoge319XSwgImxpbmtzIjogW3siaWQiOiAzMiwgIm9yaWdpbl9pZCI6IDI3LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMzMsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIkNPTkRJVElPTklORyJ9LCB7ImlkIjogMTQsICJvcmlnaW5faWQiOiAzLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogOCwgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiTEFURU5UIn0sIHsiaWQiOiAyNywgIm9yaWdpbl9pZCI6IDI5LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogOCwgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiVkFFIn0sIHsiaWQiOiAxMywgIm9yaWdpbl9pZCI6IDExLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiTU9ERUwifSwgeyJpZCI6IDMwLCAib3JpZ2luX2lkIjogMjcsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAzLCAidGFyZ2V0X3Nsb3QiOiAxLCAidHlwZSI6ICJDT05ESVRJT05JTkcifSwgeyJpZCI6IDMzLCAib3JpZ2luX2lkIjogMzMsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAzLCAidGFyZ2V0X3Nsb3QiOiAyLCAidHlwZSI6ICJDT05ESVRJT05JTkcifSwgeyJpZCI6IDE3LCAib3JpZ2luX2lkIjogMTMsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAzLCAidGFyZ2V0X3Nsb3QiOiAzLCAidHlwZSI6ICJMQVRFTlQifSwgeyJpZCI6IDI4LCAib3JpZ2luX2lkIjogMzAsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAyNywgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiQ0xJUCJ9LCB7ImlkIjogMTYsICJvcmlnaW5faWQiOiA4LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogLTIwLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJJTUFHRSJ9LCB7ImlkIjogMzQsICJvcmlnaW5faWQiOiAtMTAsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAyNywgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiU1RSSU5HIn0sIHsiaWQiOiAzNSwgIm9yaWdpbl9pZCI6IC0xMCwgIm9yaWdpbl9zbG90IjogMSwgInRhcmdldF9pZCI6IDEzLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJJTlQifSwgeyJpZCI6IDM2LCAib3JpZ2luX2lkIjogLTEwLCAib3JpZ2luX3Nsb3QiOiAyLCAidGFyZ2V0X2lkIjogMTMsICJ0YXJnZXRfc2xvdCI6IDEsICJ0eXBlIjogIklOVCJ9LCB7ImlkIjogMzgsICJvcmlnaW5faWQiOiAyOCwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDM1LCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJNT0RFTCJ9LCB7ImlkIjogMzksICJvcmlnaW5faWQiOiAzNSwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDExLCAidGFyZ2V0X3Nsb3QiOiAw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", import.meta.url).href;
} catch {
return "";
}
})();
-function UA({
+function EA({
overlay: e,
state: t,
mediaTransform: n,
@@ -18310,220 +18325,220 @@ function UA({
maxProcPixelsVideo: u,
disableWebGL: I,
videoGradeThrottleFps: p,
- safeAddListener: M,
- safeCall: Z
+ safeAddListener: S,
+ safeCall: A
} = {}) {
- const A = Z || pt, g = M || _e, h = (w) => {
- var X, V;
+ const C = A || bt, g = S || Qe, Z = (w) => {
+ var R, Y;
try {
- const R = String((w == null ? void 0 : w.ext) || "").trim().toLowerCase();
- if (R) return R.startsWith(".") ? R : `.${R}`;
- } catch (R) {
- (X = console.debug) == null || X.call(console, R);
+ const F = String((w == null ? void 0 : w.ext) || "").trim().toLowerCase();
+ if (F) return F.startsWith(".") ? F : `.${F}`;
+ } catch (F) {
+ (R = console.debug) == null || R.call(console, F);
}
try {
- const R = String((w == null ? void 0 : w.filename) || (w == null ? void 0 : w.filepath) || "").trim(), j = R.lastIndexOf(".");
- if (j >= 0) return R.slice(j).toLowerCase();
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ const F = String((w == null ? void 0 : w.filename) || (w == null ? void 0 : w.filepath) || "").trim(), N = F.lastIndexOf(".");
+ if (N >= 0) return F.slice(N).toLowerCase();
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
return "";
}, f = (w) => {
- const X = h(w);
- return X === ".gif" || X === ".webp";
- }, b = (w, X) => {
- var L, N, q, O, B, J;
- const V = document.createElement("img");
- V.className = "mjr-viewer-media";
+ const R = Z(w);
+ return R === ".gif" || R === ".webp";
+ }, b = (w, R) => {
+ var V, k, K, z, B, J;
+ const Y = document.createElement("img");
+ Y.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (V != null && V.dataset) && (V.dataset.mjrAssetId = String(w.id));
- } catch (T) {
- (L = console.debug) == null || L.call(console, T);
+ (w == null ? void 0 : w.id) != null && (Y != null && Y.dataset) && (Y.dataset.mjrAssetId = String(w.id));
+ } catch (P) {
+ (V = console.debug) == null || V.call(console, P);
}
- V.alt = String((w == null ? void 0 : w.filename) || "") || "image";
+ Y.alt = String((w == null ? void 0 : w.filename) || "") || "image";
try {
- V.decoding = "async";
- } catch (T) {
- (N = console.debug) == null || N.call(console, T);
+ Y.decoding = "async";
+ } catch (P) {
+ (k = console.debug) == null || k.call(console, P);
}
try {
- V.loading = "eager";
- } catch (T) {
- (q = console.debug) == null || q.call(console, T);
+ Y.loading = "eager";
+ } catch (P) {
+ (K = console.debug) == null || K.call(console, P);
}
try {
- V.draggable = !1;
- } catch (T) {
- (O = console.debug) == null || O.call(console, T);
+ Y.draggable = !1;
+ } catch (P) {
+ (z = console.debug) == null || z.call(console, P);
}
- V.src = X, V.style.cssText = `
+ Y.src = R, Y.style.cssText = `
max-width: 100%;
max-height: 100%;
display: block;
transform: ${(n == null ? void 0 : n()) || ""};
transform-origin: center center;
`;
- const R = () => {
- var T, D;
+ const F = () => {
+ var P, H;
try {
requestAnimationFrame(() => {
- var Q;
+ var $;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
});
- } catch (Q) {
- (T = console.debug) == null || T.call(console, Q);
+ } catch ($) {
+ (P = console.debug) == null || P.call(console, $);
}
try {
l == null || l();
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
- }, j = () => {
- var T, D;
+ }, N = () => {
+ var P, H;
try {
- const Q = document.createElement("canvas");
- Q.className = "mjr-viewer-media";
+ const $ = document.createElement("canvas");
+ $.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (Q != null && Q.dataset) && (Q.dataset.mjrAssetId = String(w.id));
+ (w == null ? void 0 : w.id) != null && ($ != null && $.dataset) && ($.dataset.mjrAssetId = String(w.id));
} catch (E) {
- (T = console.debug) == null || T.call(console, E);
+ (P = console.debug) == null || P.call(console, E);
}
- v(Q, w), Q.style.cssText = `
+ L($, w), $.style.cssText = `
max-width: 100%;
max-height: 100%;
display: block;
transform: ${(n == null ? void 0 : n()) || ""};
transform-origin: center center;
- `, po(Q, "Failed to load image"), V.replaceWith(Q);
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ `, fo($, "Failed to load image"), Y.replaceWith($);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
};
try {
- V.addEventListener("load", R, { once: !0 });
- } catch (T) {
- (B = console.debug) == null || B.call(console, T);
+ Y.addEventListener("load", F, { once: !0 });
+ } catch (P) {
+ (B = console.debug) == null || B.call(console, P);
}
try {
- V.addEventListener("error", j, { once: !0 });
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ Y.addEventListener("error", N, { once: !0 });
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
- return V;
- }, v = (w, X) => {
- var V;
+ return Y;
+ }, L = (w, R) => {
+ var Y;
try {
if (!w || !(w instanceof HTMLCanvasElement)) return;
- const R = Number(X == null ? void 0 : X.width) || 0, j = Number(X == null ? void 0 : X.height) || 0;
- if (!(R > 0 && j > 0)) return;
- !Number(w._mjrNaturalW) && !Number(w._mjrNaturalH) && (w._mjrNaturalW = R, w._mjrNaturalH = j);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ const F = Number(R == null ? void 0 : R.width) || 0, N = Number(R == null ? void 0 : R.height) || 0;
+ if (!(F > 0 && N > 0)) return;
+ !Number(w._mjrNaturalW) && !Number(w._mjrNaturalH) && (w._mjrNaturalW = F, w._mjrNaturalH = N);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
- }, C = (w) => {
- var X;
+ }, h = (w) => {
+ var R;
try {
- const V = Number(w);
- if (Number.isFinite(V) && V > 0) return V;
- const R = String(w || "").trim();
- if (!R) return null;
- if (R.includes("/")) {
- const [L, N] = R.split("/"), q = Number(L), O = Number(N);
- if (Number.isFinite(q) && Number.isFinite(O) && O !== 0) return q / O;
+ const Y = Number(w);
+ if (Number.isFinite(Y) && Y > 0) return Y;
+ const F = String(w || "").trim();
+ if (!F) return null;
+ if (F.includes("/")) {
+ const [V, k] = F.split("/"), K = Number(V), z = Number(k);
+ if (Number.isFinite(K) && Number.isFinite(z) && z !== 0) return K / z;
}
- const j = Number.parseFloat(R);
- if (Number.isFinite(j) && j > 0) return j;
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ const N = Number.parseFloat(F);
+ if (Number.isFinite(N) && N > 0) return N;
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
return null;
- }, S = (w) => {
+ }, G = (w) => {
try {
- const X = w == null ? void 0 : w.metadata_raw, V = X && typeof X == "object" ? X : null, R = (V == null ? void 0 : V.raw_ffprobe) || {}, j = (R == null ? void 0 : R.video_stream) || {};
- return C(
- (V == null ? void 0 : V.fps) ?? (V == null ? void 0 : V.frame_rate) ?? (w == null ? void 0 : w.fps) ?? (j == null ? void 0 : j.avg_frame_rate) ?? (j == null ? void 0 : j.r_frame_rate)
+ const R = w == null ? void 0 : w.metadata_raw, Y = R && typeof R == "object" ? R : null, F = (Y == null ? void 0 : Y.raw_ffprobe) || {}, N = (F == null ? void 0 : F.video_stream) || {};
+ return h(
+ (Y == null ? void 0 : Y.fps) ?? (Y == null ? void 0 : Y.frame_rate) ?? (w == null ? void 0 : w.fps) ?? (N == null ? void 0 : N.avg_frame_rate) ?? (N == null ? void 0 : N.r_frame_rate)
);
} catch {
return null;
}
- }, W = (w, X, V, R = "metadata") => {
- var j;
+ }, W = (w, R, Y, F = "metadata") => {
+ var N;
try {
- const L = Number(V);
- if (!Number.isFinite(L) || L <= 0) return;
- const N = Math.round(L * 1e3) / 1e3, q = Number((w == null ? void 0 : w._mjrDetectedFps) || 0) || 0;
- if (q > 0 && Math.abs(q - N) < 0.01) return;
- w._mjrDetectedFps = N, window.dispatchEvent(
+ const V = Number(Y);
+ if (!Number.isFinite(V) || V <= 0) return;
+ const k = Math.round(V * 1e3) / 1e3, K = Number((w == null ? void 0 : w._mjrDetectedFps) || 0) || 0;
+ if (K > 0 && Math.abs(K - k) < 0.01) return;
+ w._mjrDetectedFps = k, window.dispatchEvent(
new CustomEvent("mjr:viewer-fps-detected", {
detail: {
- fps: N,
- source: String(R || "metadata"),
- assetId: (X == null ? void 0 : X.id) != null ? String(X.id) : ""
+ fps: k,
+ source: String(F || "metadata"),
+ assetId: (R == null ? void 0 : R.id) != null ? String(R.id) : ""
}
})
);
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
- }, y = (w, X) => {
- var V, R, j;
+ }, y = (w, R) => {
+ var Y, F, N;
try {
- const L = S(X);
- L && W(w, X, L, "asset-metadata");
- } catch (L) {
- (V = console.debug) == null || V.call(console, L);
+ const V = G(R);
+ V && W(w, R, V, "asset-metadata");
+ } catch (V) {
+ (Y = console.debug) == null || Y.call(console, V);
}
try {
w.addEventListener(
"loadedmetadata",
() => {
- var L;
+ var V;
try {
- const N = S(X);
- N && W(w, X, N, "loadedmetadata");
- } catch (N) {
- (L = console.debug) == null || L.call(console, N);
+ const k = G(R);
+ k && W(w, R, k, "loadedmetadata");
+ } catch (k) {
+ (V = console.debug) == null || V.call(console, k);
}
},
{ once: !0 }
);
- } catch (L) {
- (R = console.debug) == null || R.call(console, L);
+ } catch (V) {
+ (F = console.debug) == null || F.call(console, V);
}
try {
if (typeof (w == null ? void 0 : w.requestVideoFrameCallback) != "function") return;
- let L = null, N = 0, q = 0;
- const O = 10, B = (J, T) => {
- var D;
+ let V = null, k = 0, K = 0;
+ const z = 10, B = (J, P) => {
+ var H;
try {
- const Q = Number(T == null ? void 0 : T.mediaTime);
- if (Number.isFinite(Q) && Q >= 0) {
- if (L != null) {
- const E = Q - L;
- E > 0 && E < 1 && (q += E, N += 1);
+ const $ = Number(P == null ? void 0 : P.mediaTime);
+ if (Number.isFinite($) && $ >= 0) {
+ if (V != null) {
+ const E = $ - V;
+ E > 0 && E < 1 && (K += E, k += 1);
}
- L = Q;
+ V = $;
}
- if (N >= 3) {
- const E = q / Math.max(1, N), K = E > 0 ? 1 / E : 0;
- Number.isFinite(K) && K > 1 && W(w, X, K, "rvfc");
+ if (k >= 3) {
+ const E = K / Math.max(1, k), oe = E > 0 ? 1 / E : 0;
+ Number.isFinite(oe) && oe > 1 && W(w, R, oe, "rvfc");
}
- N < O && w.requestVideoFrameCallback(B);
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ k < z && w.requestVideoFrameCallback(B);
+ } catch ($) {
+ (H = console.debug) == null || H.call(console, $);
}
};
w.requestVideoFrameCallback(B);
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
- }, k = (w, X, { compare: V = !1 } = {}) => {
- const R = document.createElement("div");
- if (R.style.cssText = `
+ }, X = (w, R, { compare: Y = !1 } = {}) => {
+ const F = document.createElement("div");
+ if (F.style.cssText = `
width: 100%;
height: 100%;
display: flex;
@@ -18533,16 +18548,16 @@ function UA({
gap: 12px;
color: rgba(255,255,255,0.85);
padding: 14px;
- background-image: linear-gradient(rgba(0,0,0,0.42), rgba(0,0,0,0.42)), url('${BA}');
+ background-image: linear-gradient(rgba(0,0,0,0.42), rgba(0,0,0,0.42)), url('${DA}');
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
- `, !V) {
- const N = document.createElement("div");
- N.textContent = String((w == null ? void 0 : w.filename) || "Audio"), N.style.cssText = "font-size: 12px; opacity: 0.9; max-width: 90%; text-align: center; overflow: hidden; text-overflow: ellipsis;", R.appendChild(N);
+ `, !Y) {
+ const k = document.createElement("div");
+ k.textContent = String((w == null ? void 0 : w.filename) || "Audio"), k.style.cssText = "font-size: 12px; opacity: 0.9; max-width: 90%; text-align: center; overflow: hidden; text-overflow: ellipsis;", F.appendChild(k);
}
- const j = document.createElement("canvas");
- j.className = "mjr-viewer-audio-viz", j.style.cssText = `
+ const N = document.createElement("canvas");
+ N.className = "mjr-viewer-audio-viz", N.style.cssText = `
width: min(1920px, 96%);
aspect-ratio: 16 / 9;
height: auto;
@@ -18552,25 +18567,25 @@ function UA({
border-radius: 10px;
background: transparent;
`;
- const L = document.createElement("audio");
- L.className = "mjr-viewer-audio-src", L.src = X, L.controls = !1, L.autoplay = !0, L.preload = "metadata", L.style.cssText = "width: min(680px, 90%);";
+ const V = document.createElement("audio");
+ V.className = "mjr-viewer-audio-src", V.src = R, V.controls = !1, V.autoplay = !0, V.preload = "metadata", V.style.cssText = "width: min(680px, 90%);";
try {
- const N = TA({
- canvas: j,
- audioEl: L,
+ const k = KA({
+ canvas: N,
+ audioEl: V,
mode: t == null ? void 0 : t.audioVisualizerMode,
pauseDuringExecution: !0
});
- L._mjrAudioViz = N, j._mjrProc = N;
+ V._mjrAudioViz = k, N._mjrProc = k;
} catch {
- L._mjrAudioViz = null, j._mjrProc = null;
+ V._mjrAudioViz = null, N._mjrProc = null;
}
- return R.appendChild(j), R.appendChild(L), R;
+ return F.appendChild(N), F.appendChild(V), F;
};
- function G(w, X) {
- var L, N, q, O, B, J, T, D, Q, E, K;
- const V = document.createElement("div");
- V.className = "mjr-video-host", V.style.cssText = `
+ function x(w, R) {
+ var V, k, K, z, B, J, P, H, $, E, oe;
+ const Y = document.createElement("div");
+ Y.className = "mjr-video-host", Y.style.cssText = `
width: 100%;
height: 100%;
display: flex;
@@ -18578,43 +18593,43 @@ function UA({
justify-content: center;
position: relative;
`;
- const R = String((w == null ? void 0 : w.kind) || "").toLowerCase();
- if (Lu(w) || R === "model3d")
- return Yu(w, X, {
+ const F = String((w == null ? void 0 : w.kind) || "").toLowerCase();
+ if (Yu(w) || F === "model3d")
+ return ku(w, R, {
hostClassName: "mjr-model3d-host mjr-viewer-model3d-host",
canvasClassName: "mjr-viewer-media mjr-model3d-render-canvas",
pauseDuringExecution: !0,
scheduleOverlayRedraw: l,
onReady: () => {
- var F, Y;
+ var M, j;
try {
requestAnimationFrame(() => {
- var U;
+ var O;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
});
- } catch (U) {
- (F = console.debug) == null || F.call(console, U);
+ } catch (O) {
+ (M = console.debug) == null || M.call(console, O);
}
try {
l == null || l();
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
}
});
- if (R && R !== "image" && R !== "video" && R !== "audio") {
- const F = document.createElement("canvas");
- F.className = "mjr-viewer-media";
+ if (F && F !== "image" && F !== "video" && F !== "audio") {
+ const M = document.createElement("canvas");
+ M.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (F != null && F.dataset) && (F.dataset.mjrAssetId = String(w.id));
- } catch (Y) {
- (L = console.debug) == null || L.call(console, Y);
+ (w == null ? void 0 : w.id) != null && (M != null && M.dataset) && (M.dataset.mjrAssetId = String(w.id));
+ } catch (j) {
+ (V = console.debug) == null || V.call(console, j);
}
- v(F, w), F.style.cssText = `
+ L(M, w), M.style.cssText = `
max-width: 100%;
max-height: 100%;
display: block;
@@ -18622,22 +18637,22 @@ function UA({
transform-origin: center center;
`;
try {
- po(F, `Unsupported file type: ${R}`);
- } catch (Y) {
- (N = console.debug) == null || N.call(console, Y);
+ fo(M, `Unsupported file type: ${F}`);
+ } catch (j) {
+ (k = console.debug) == null || k.call(console, j);
}
- return F;
+ return M;
}
- if (R === "audio") return k(w, X, { compare: !1 });
- if (R === "video") {
- const F = document.createElement("canvas");
- F.className = "mjr-viewer-media";
+ if (F === "audio") return X(w, R, { compare: !1 });
+ if (F === "video") {
+ const M = document.createElement("canvas");
+ M.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (F != null && F.dataset) && (F.dataset.mjrAssetId = String(w.id));
- } catch (U) {
- (q = console.debug) == null || q.call(console, U);
+ (w == null ? void 0 : w.id) != null && (M != null && M.dataset) && (M.dataset.mjrAssetId = String(w.id));
+ } catch (O) {
+ (K = console.debug) == null || K.call(console, O);
}
- v(F, w), F.style.cssText = `
+ L(M, w), M.style.cssText = `
max-width: 100%;
max-height: 100%;
object-fit: contain;
@@ -18645,18 +18660,18 @@ function UA({
transform: ${(n == null ? void 0 : n()) || ""};
transform-origin: center center;
`;
- const Y = document.createElement("video");
- Y.className = "mjr-viewer-video-src", Y.src = X, Y.controls = !1, Y.loop = !0, Y.playsInline = !0, Y.muted = !0, Y.autoplay = !0, Y.preload = "auto";
+ const j = document.createElement("video");
+ j.className = "mjr-viewer-video-src", j.src = R, j.controls = !1, j.loop = !0, j.playsInline = !0, j.muted = !0, j.autoplay = !0, j.preload = "auto";
try {
- "decode" in HTMLVideoElement.prototype && (Y.decoding = "async");
+ "decode" in HTMLVideoElement.prototype && (j.decoding = "async");
} catch {
}
- Y.style.cssText = "position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;", y(Y, w);
+ j.style.cssText = "position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;", y(j, w);
try {
- F._mjrProc = ku({
- canvas: F,
- videoEl: Y,
- disableWebGL: I || !!ye.VIEWER_DISABLE_WEBGL_VIDEO,
+ M._mjrProc = Nu({
+ canvas: M,
+ videoEl: j,
+ disableWebGL: I || !!fe.VIEWER_DISABLE_WEBGL_VIDEO,
pauseDuringExecution: !0,
getGradeParams: a,
isDefaultGrade: c,
@@ -18664,74 +18679,74 @@ function UA({
maxProcPixelsVideo: u,
throttleFps: p,
safeAddListener: g,
- safeCall: A,
+ safeCall: C,
onReady: () => {
- var U, P;
+ var O, D;
try {
requestAnimationFrame(() => {
- var ee;
+ var q;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
- } catch (oe) {
- (ee = console.debug) == null || ee.call(console, oe);
+ } catch (ee) {
+ (q = console.debug) == null || q.call(console, ee);
}
});
- } catch (ee) {
- (U = console.debug) == null || U.call(console, ee);
+ } catch (q) {
+ (O = console.debug) == null || O.call(console, q);
}
try {
l == null || l();
- } catch (ee) {
- (P = console.debug) == null || P.call(console, ee);
+ } catch (q) {
+ (D = console.debug) == null || D.call(console, q);
}
}
- }), (B = (O = F._mjrProc) == null ? void 0 : O.setParams) == null || B.call(O, a == null ? void 0 : a());
- } catch (U) {
- (J = console.debug) == null || J.call(console, U);
+ }), (B = (z = M._mjrProc) == null ? void 0 : z.setParams) == null || B.call(z, a == null ? void 0 : a());
+ } catch (O) {
+ (J = console.debug) == null || J.call(console, O);
}
try {
- Y.addEventListener(
+ j.addEventListener(
"canplay",
() => {
- var U, P;
+ var O, D;
try {
- const ee = (U = Y.play) == null ? void 0 : U.call(Y);
- ee && typeof ee.catch == "function" && ee.catch(() => {
- var oe;
+ const q = (O = j.play) == null ? void 0 : O.call(j);
+ q && typeof q.catch == "function" && q.catch(() => {
+ var ee;
try {
- po(
- F,
+ fo(
+ M,
"Autoplay blocked (press Space / Play)"
);
} catch (ce) {
- (oe = console.debug) == null || oe.call(console, ce);
+ (ee = console.debug) == null || ee.call(console, ce);
}
});
} catch {
try {
- po(F, "Autoplay blocked (press Space / Play)");
- } catch (ee) {
- (P = console.debug) == null || P.call(console, ee);
+ fo(M, "Autoplay blocked (press Space / Play)");
+ } catch (q) {
+ (D = console.debug) == null || D.call(console, q);
}
}
},
{ once: !0 }
);
- } catch (U) {
- (T = console.debug) == null || T.call(console, U);
+ } catch (O) {
+ (P = console.debug) == null || P.call(console, O);
}
- return V.appendChild(F), V.appendChild(Y), V;
+ return Y.appendChild(M), Y.appendChild(j), Y;
}
if (f(w))
- return b(w, X);
- const j = document.createElement("canvas");
- j.className = "mjr-viewer-media";
+ return b(w, R);
+ const N = document.createElement("canvas");
+ N.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (j != null && j.dataset) && (j.dataset.mjrAssetId = String(w.id));
- } catch (F) {
- (D = console.debug) == null || D.call(console, F);
+ (w == null ? void 0 : w.id) != null && (N != null && N.dataset) && (N.dataset.mjrAssetId = String(w.id));
+ } catch (M) {
+ (H = console.debug) == null || H.call(console, M);
}
- v(j, w), j.style.cssText = `
+ L(N, w), N.style.cssText = `
max-width: 100%;
max-height: 100%;
object-fit: contain;
@@ -18740,78 +18755,78 @@ function UA({
transform-origin: center center;
`;
try {
- j._mjrProc = xu({
- canvas: j,
- url: X,
+ N._mjrProc = vu({
+ canvas: N,
+ url: R,
getGradeParams: a,
isDefaultGrade: c,
tonemap: s,
maxProcPixels: d,
onReady: () => {
- var F, Y;
+ var M, j;
try {
requestAnimationFrame(() => {
- var U;
+ var O;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
});
- } catch (U) {
- (F = console.debug) == null || F.call(console, U);
+ } catch (O) {
+ (M = console.debug) == null || M.call(console, O);
}
try {
l == null || l();
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
}
- }), (E = (Q = j._mjrProc) == null ? void 0 : Q.setParams) == null || E.call(Q, a == null ? void 0 : a());
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ }), (E = ($ = N._mjrProc) == null ? void 0 : $.setParams) == null || E.call($, a == null ? void 0 : a());
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
- return j;
+ return N;
}
- function z(w, X) {
- var j, L, N, q, O, B, J, T, D, Q;
- const V = String((w == null ? void 0 : w.kind) || "").toLowerCase();
- if (Lu(w) || V === "model3d")
- return Yu(w, X, {
+ function T(w, R) {
+ var N, V, k, K, z, B, J, P, H, $;
+ const Y = String((w == null ? void 0 : w.kind) || "").toLowerCase();
+ if (Yu(w) || Y === "model3d")
+ return ku(w, R, {
hostClassName: "mjr-model3d-host mjr-viewer-model3d-host",
canvasClassName: "mjr-viewer-media mjr-model3d-render-canvas",
pauseDuringExecution: !0,
scheduleOverlayRedraw: l,
onReady: () => {
- var E, K;
+ var E, oe;
try {
requestAnimationFrame(() => {
- var F;
+ var M;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y);
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
}
});
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
try {
l == null || l();
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
}
});
- if (V && V !== "image" && V !== "video" && V !== "audio") {
+ if (Y && Y !== "image" && Y !== "video" && Y !== "audio") {
const E = document.createElement("canvas");
E.className = "mjr-viewer-media";
try {
(w == null ? void 0 : w.id) != null && (E != null && E.dataset) && (E.dataset.mjrAssetId = String(w.id));
- } catch (K) {
- (j = console.debug) == null || j.call(console, K);
+ } catch (oe) {
+ (N = console.debug) == null || N.call(console, oe);
}
- v(E, w), E.style.cssText = `
+ L(E, w), E.style.cssText = `
max-width: 100%;
max-height: 100%;
display: block;
@@ -18819,24 +18834,24 @@ function UA({
transform-origin: center center;
`;
try {
- po(E, `Unsupported file type: ${V}`);
- } catch (K) {
- (L = console.debug) == null || L.call(console, K);
+ fo(E, `Unsupported file type: ${Y}`);
+ } catch (oe) {
+ (V = console.debug) == null || V.call(console, oe);
}
return E;
}
- if (V === "audio") return k(w, X, { compare: !0 });
- if (V === "video") {
+ if (Y === "audio") return X(w, R, { compare: !0 });
+ if (Y === "video") {
const E = document.createElement("div");
E.style.cssText = "width:100%; height:100%; position:relative; display:flex; align-items:center; justify-content:center;";
- const K = document.createElement("canvas");
- K.className = "mjr-viewer-media";
+ const oe = document.createElement("canvas");
+ oe.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (K != null && K.dataset) && (K.dataset.mjrAssetId = String(w.id));
- } catch (Y) {
- (N = console.debug) == null || N.call(console, Y);
+ (w == null ? void 0 : w.id) != null && (oe != null && oe.dataset) && (oe.dataset.mjrAssetId = String(w.id));
+ } catch (j) {
+ (k = console.debug) == null || k.call(console, j);
}
- v(K, w), K.style.cssText = `
+ L(oe, w), oe.style.cssText = `
max-width: 100%;
max-height: 100%;
object-fit: contain;
@@ -18844,17 +18859,17 @@ function UA({
transform: ${(n == null ? void 0 : n()) || ""};
transform-origin: center center;
`;
- const F = document.createElement("video");
- F.className = "mjr-viewer-video-src", F.src = X, F.controls = !1, F.loop = !0, F.muted = !0, F.playsInline = !0, F.autoplay = !0, F.preload = "auto";
+ const M = document.createElement("video");
+ M.className = "mjr-viewer-video-src", M.src = R, M.controls = !1, M.loop = !0, M.muted = !0, M.playsInline = !0, M.autoplay = !0, M.preload = "auto";
try {
- "decode" in HTMLVideoElement.prototype && (F.decoding = "async");
+ "decode" in HTMLVideoElement.prototype && (M.decoding = "async");
} catch {
}
- F.style.cssText = "position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;", y(F, w);
+ M.style.cssText = "position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;", y(M, w);
try {
- K._mjrProc = ku({
- canvas: K,
- videoEl: F,
+ oe._mjrProc = Nu({
+ canvas: oe,
+ videoEl: M,
pauseDuringExecution: !0,
getGradeParams: a,
isDefaultGrade: c,
@@ -18862,43 +18877,43 @@ function UA({
maxProcPixelsVideo: u,
throttleFps: p,
safeAddListener: g,
- safeCall: A,
+ safeCall: C,
onReady: () => {
- var Y, U;
+ var j, O;
try {
requestAnimationFrame(() => {
- var P;
+ var D;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
- } catch (ee) {
- (P = console.debug) == null || P.call(console, ee);
+ } catch (q) {
+ (D = console.debug) == null || D.call(console, q);
}
});
- } catch (P) {
- (Y = console.debug) == null || Y.call(console, P);
+ } catch (D) {
+ (j = console.debug) == null || j.call(console, D);
}
try {
l == null || l();
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
}
- }), (O = (q = K._mjrProc) == null ? void 0 : q.setParams) == null || O.call(q, a == null ? void 0 : a());
- } catch (Y) {
- (B = console.debug) == null || B.call(console, Y);
+ }), (z = (K = oe._mjrProc) == null ? void 0 : K.setParams) == null || z.call(K, a == null ? void 0 : a());
+ } catch (j) {
+ (B = console.debug) == null || B.call(console, j);
}
- return E.appendChild(K), E.appendChild(F), E;
+ return E.appendChild(oe), E.appendChild(M), E;
}
if (f(w))
- return b(w, X);
- const R = document.createElement("canvas");
- R.className = "mjr-viewer-media";
+ return b(w, R);
+ const F = document.createElement("canvas");
+ F.className = "mjr-viewer-media";
try {
- (w == null ? void 0 : w.id) != null && (R != null && R.dataset) && (R.dataset.mjrAssetId = String(w.id));
+ (w == null ? void 0 : w.id) != null && (F != null && F.dataset) && (F.dataset.mjrAssetId = String(w.id));
} catch (E) {
(J = console.debug) == null || J.call(console, E);
}
- v(R, w), R.style.cssText = `
+ L(F, w), F.style.cssText = `
max-width: 100%;
max-height: 100%;
display: block;
@@ -18906,60 +18921,60 @@ function UA({
transform-origin: center center;
`;
try {
- R._mjrProc = xu({
- canvas: R,
- url: X,
+ F._mjrProc = vu({
+ canvas: F,
+ url: R,
getGradeParams: a,
isDefaultGrade: c,
tonemap: s,
maxProcPixels: d,
onReady: () => {
- var E, K;
+ var E, oe;
try {
requestAnimationFrame(() => {
- var F;
+ var M;
try {
t != null && t._userInteracted || (i == null || i(), o == null || o(), r == null || r());
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y);
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
}
});
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
try {
l == null || l();
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
}
- }), (D = (T = R._mjrProc) == null ? void 0 : T.setParams) == null || D.call(T, a == null ? void 0 : a());
+ }), (H = (P = F._mjrProc) == null ? void 0 : P.setParams) == null || H.call(P, a == null ? void 0 : a());
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
- return R;
+ return F;
}
return {
- createMediaElement: G,
- createCompareMediaElement: z,
+ createMediaElement: x,
+ createCompareMediaElement: T,
applyTransformToVisibleMedia: () => {
- var w, X, V;
+ var w, R, Y;
try {
- const R = (n == null ? void 0 : n()) || "", j = ((w = e == null ? void 0 : e.querySelectorAll) == null ? void 0 : w.call(e, ".mjr-viewer-media")) || [];
- for (const L of j)
+ const F = (n == null ? void 0 : n()) || "", N = ((w = e == null ? void 0 : e.querySelectorAll) == null ? void 0 : w.call(e, ".mjr-viewer-media")) || [];
+ for (const V of N)
try {
- if (L != null && L._mjrDisableViewerTransform) continue;
- L.style.transform = R;
- } catch (N) {
- (X = console.debug) == null || X.call(console, N);
+ if (V != null && V._mjrDisableViewerTransform) continue;
+ V.style.transform = F;
+ } catch (k) {
+ (R = console.debug) == null || R.call(console, k);
}
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
}
};
}
-function KA({ buildAssetViewURL: e, IMAGE_PRELOAD_EXTENSIONS: t, state: n }) {
+function HA({ buildAssetViewURL: e, IMAGE_PRELOAD_EXTENSIONS: t, state: n }) {
function i(c) {
if (!c) return null;
if (c.id != null) return `id:${c.id}`;
@@ -18983,8 +18998,8 @@ function KA({ buildAssetViewURL: e, IMAGE_PRELOAD_EXTENSIONS: t, state: n }) {
var u, I, p;
try {
(I = (u = n._preloadRefs) == null ? void 0 : u.delete) == null || I.call(u, c);
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
};
c.addEventListener("load", d, { once: !0, passive: !0 }), c.addEventListener("error", d, { once: !0, passive: !0 });
@@ -19001,21 +19016,21 @@ function KA({ buildAssetViewURL: e, IMAGE_PRELOAD_EXTENSIONS: t, state: n }) {
if (n._preloadedAssetKeys.add(d), n._preloadedAssetKeys.size > 250)
try {
n._preloadedAssetKeys.clear();
- } catch (M) {
- (u = console.debug) == null || u.call(console, M);
+ } catch (S) {
+ (u = console.debug) == null || u.call(console, S);
}
}
try {
- const M = new Image();
- M.decoding = "async";
+ const S = new Image();
+ S.decoding = "async";
try {
- M.loading = "lazy";
- } catch (Z) {
- (I = console.debug) == null || I.call(console, Z);
+ S.loading = "lazy";
+ } catch (A) {
+ (I = console.debug) == null || I.call(console, A);
}
- M.alt = "", M.src = s, r(M);
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ S.alt = "", S.src = s, r(S);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
}
function a(c, s) {
@@ -19033,15 +19048,15 @@ function KA({ buildAssetViewURL: e, IMAGE_PRELOAD_EXTENSIONS: t, state: n }) {
if (I < 0 || I >= d.length) continue;
const p = d[I];
if (!p) continue;
- const M = e(p);
- l(p, M);
+ const S = e(p);
+ l(p, S);
}
}
return { preloadAdjacentAssets: a, preloadImageForAsset: l, trackPreloadRef: r };
}
-function DA(e) {
+function qA(e) {
var i, o, r, l, a, c, s;
- const t = kC();
+ const t = RC();
if (t.length) {
const d = t[t.length - 1];
for (const u of t)
@@ -19065,9 +19080,9 @@ function DA(e) {
}
}
const n = e();
- return VC(n), n._mjrViewerAPI;
+ return NC(n), n._mjrViewerAPI;
}
-function EA({
+function PA({
state: e,
APP_CONFIG: t,
VIEWER_MODES: n,
@@ -19082,71 +19097,71 @@ function EA({
collectPlayableMediaElements: u,
pickPrimaryPlayableMedia: I,
mountUnifiedMediaControls: p,
- installFollowerVideoSync: M,
- getViewerInfo: Z,
- scheduleOverlayRedraw: A,
+ installFollowerVideoSync: S,
+ getViewerInfo: A,
+ scheduleOverlayRedraw: C,
viewerInfoCacheGet: g,
- viewerInfoCacheSet: h
+ viewerInfoCacheSet: Z
}) {
function f() {
- var v, C, S, W, y, k, G, z, x, w, X, V, R, j, L, N;
+ var L, h, G, W, y, X, x, T, v, w, R, Y, F, N, V, k;
try {
e._videoControlsDestroy && e._videoControlsDestroy();
- } catch (q) {
- (v = console.debug) == null || v.call(console, q);
+ } catch (K) {
+ (L = console.debug) == null || L.call(console, K);
}
e._videoControlsDestroy = null, e._videoControlsMounted = null, e._activeVideoEl = null, e._activeVideoAssetId = null, e.nativeFps = null;
try {
- (S = (C = e._videoSyncAbort) == null ? void 0 : C.abort) == null || S.call(C);
- } catch (q) {
- (W = console.debug) == null || W.call(console, q);
+ (G = (h = e._videoSyncAbort) == null ? void 0 : h.abort) == null || G.call(h);
+ } catch (K) {
+ (W = console.debug) == null || W.call(console, K);
}
e._videoSyncAbort = null;
try {
- (k = (y = e._videoMetaAbort) == null ? void 0 : y.abort) == null || k.call(y);
- } catch (q) {
- (G = console.debug) == null || G.call(console, q);
+ (X = (y = e._videoMetaAbort) == null ? void 0 : y.abort) == null || X.call(y);
+ } catch (K) {
+ (x = console.debug) == null || x.call(console, K);
}
e._videoMetaAbort = null;
try {
- (x = (z = e._videoFpsEventAbort) == null ? void 0 : z.abort) == null || x.call(z);
- } catch (q) {
- (w = console.debug) == null || w.call(console, q);
+ (v = (T = e._videoFpsEventAbort) == null ? void 0 : T.abort) == null || v.call(T);
+ } catch (K) {
+ (w = console.debug) == null || w.call(console, K);
}
e._videoFpsEventAbort = null;
try {
- (V = (X = e._scopesVideoAbort) == null ? void 0 : X.abort) == null || V.call(X);
- } catch (q) {
- (R = console.debug) == null || R.call(console, q);
+ (Y = (R = e._scopesVideoAbort) == null ? void 0 : R.abort) == null || Y.call(R);
+ } catch (K) {
+ (F = console.debug) == null || F.call(console, K);
}
e._scopesVideoAbort = null;
try {
r.innerHTML = "";
- } catch (q) {
- (j = console.debug) == null || j.call(console, q);
+ } catch (K) {
+ (N = console.debug) == null || N.call(console, K);
}
try {
r.style.display = "none";
- } catch (q) {
- (L = console.debug) == null || L.call(console, q);
+ } catch (K) {
+ (V = console.debug) == null || V.call(console, K);
}
try {
o.style.display = "";
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
}
async function b() {
- var v, C, S, W, y, k, G, z, x, w, X, V, R, j, L, N, q, O, B, J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $;
+ var L, h, G, W, y, X, x, T, v, w, R, Y, F, N, V, k, K, z, B, J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue, U, Q;
try {
const _ = e.assets[e.currentIndex], le = (_ == null ? void 0 : _.id) ?? null;
if (!d(_ == null ? void 0 : _.kind)) {
f();
return;
}
- let se = null, de = [];
+ let de = null, se = [];
try {
- de = u({
+ se = u({
mode: e.mode,
VIEWER_MODES: n,
singleView: l,
@@ -19154,259 +19169,259 @@ function EA({
sideView: c
});
} catch {
- de = [];
+ se = [];
}
try {
- se = I(de);
+ de = I(se);
} catch {
- se = de[0] || null;
+ de = se[0] || null;
}
- if (!se) {
+ if (!de) {
f();
return;
}
- if (e._activeVideoEl && e._activeVideoEl === se && e._activeVideoAssetId === le && e._videoControlsDestroy) {
+ if (e._activeVideoEl && e._activeVideoEl === de && e._activeVideoAssetId === le && e._videoControlsDestroy) {
try {
o.style.display = "none", r.style.display = "";
- } catch (We) {
- (v = console.debug) == null || v.call(console, We);
+ } catch (we) {
+ (L = console.debug) == null || L.call(console, we);
}
return;
}
f();
try {
o.style.display = "none";
- } catch (We) {
- (C = console.debug) == null || C.call(console, We);
+ } catch (we) {
+ (h = console.debug) == null || h.call(console, we);
}
try {
r.style.display = "";
- } catch (We) {
- (S = console.debug) == null || S.call(console, We);
+ } catch (we) {
+ (G = console.debug) == null || G.call(console, we);
}
- let Ze, Fe;
+ let ge, je;
try {
- const We = (Pe) => {
+ const we = ($e) => {
try {
- const Qe = EI(Pe), Ue = HI(Pe, Qe);
- return { fps: Qe, frameCount: Ue };
+ const qe = HI($e), Ue = qI($e, qe);
+ return { fps: qe, frameCount: Ue };
} catch {
return { fps: null, frameCount: null };
}
- }, De = We(_);
- if (De.fps != null && (Ze = De.fps), De.frameCount != null && (Fe = De.frameCount), Ze == null || Fe == null) {
- const Pe = (W = s == null ? void 0 : s.getCached) == null ? void 0 : W.call(s, _ == null ? void 0 : _.id), Qe = Pe != null && Pe.data ? We(Pe.data) : { fps: null, frameCount: null };
- Ze == null && Qe.fps != null && (Ze = Qe.fps), Fe == null && Qe.frameCount != null && (Fe = Qe.frameCount);
+ }, Je = we(_);
+ if (Je.fps != null && (ge = Je.fps), Je.frameCount != null && (je = Je.frameCount), ge == null || je == null) {
+ const $e = (W = s == null ? void 0 : s.getCached) == null ? void 0 : W.call(s, _ == null ? void 0 : _.id), qe = $e != null && $e.data ? we($e.data) : { fps: null, frameCount: null };
+ ge == null && qe.fps != null && (ge = qe.fps), je == null && qe.frameCount != null && (je = qe.frameCount);
}
- } catch (We) {
- (y = console.debug) == null || y.call(console, We);
+ } catch (we) {
+ (y = console.debug) == null || y.call(console, we);
}
try {
- if (Ze == null) {
- const We = Number(se == null ? void 0 : se._mjrDetectedFps);
- Number.isFinite(We) && We > 0 && (Ze = We);
+ if (ge == null) {
+ const we = Number(de == null ? void 0 : de._mjrDetectedFps);
+ Number.isFinite(we) && we > 0 && (ge = we);
}
- } catch (We) {
- (k = console.debug) == null || k.call(console, We);
+ } catch (we) {
+ (X = console.debug) == null || X.call(console, we);
}
- const xe = String((_ == null ? void 0 : _.kind) || "").toLowerCase() === "audio" ? "audio" : "video", ze = p(se, {
+ const Se = String((_ == null ? void 0 : _.kind) || "").toLowerCase() === "audio" ? "audio" : "video", ke = p(de, {
variant: "viewerbar",
hostEl: r,
fullscreenEl: i,
- initialFps: Ze,
- initialFrameCount: Fe,
+ initialFps: ge,
+ initialFrameCount: je,
initialPlaybackRate: Number(e == null ? void 0 : e.playbackRate) || 1,
- mediaKind: xe
+ mediaKind: Se
});
- e._videoControlsMounted = ze || null, e._videoControlsDestroy = (ze == null ? void 0 : ze.destroy) || null, e._activeVideoEl = se, e._activeVideoAssetId = le;
+ e._videoControlsMounted = ke || null, e._videoControlsDestroy = (ke == null ? void 0 : ke.destroy) || null, e._activeVideoEl = de, e._activeVideoAssetId = le;
try {
- e.nativeFps = Number(Ze) > 0 ? Number(Ze) : null;
- } catch (We) {
- (G = console.debug) == null || G.call(console, We);
+ e.nativeFps = Number(ge) > 0 ? Number(ge) : null;
+ } catch (we) {
+ (x = console.debug) == null || x.call(console, we);
}
try {
- if (xe === "audio") {
- const We = (z = se.play) == null ? void 0 : z.call(se);
- We && typeof We.catch == "function" && We.catch(() => {
+ if (Se === "audio") {
+ const we = (T = de.play) == null ? void 0 : T.call(de);
+ we && typeof we.catch == "function" && we.catch(() => {
});
}
- } catch (We) {
- (x = console.debug) == null || x.call(console, We);
+ } catch (we) {
+ (v = console.debug) == null || v.call(console, we);
}
try {
- if (xe === "video" && e.mode === (n == null ? void 0 : n.SINGLE)) {
- se.muted = !1;
- const De = (w = se.play) == null ? void 0 : w.call(se);
- De && typeof De.catch == "function" && De.catch(() => {
+ if (Se === "video" && e.mode === (n == null ? void 0 : n.SINGLE)) {
+ de.muted = !1;
+ const Je = (w = de.play) == null ? void 0 : w.call(de);
+ Je && typeof Je.catch == "function" && Je.catch(() => {
});
}
- } catch (We) {
- (X = console.debug) == null || X.call(console, We);
+ } catch (we) {
+ (R = console.debug) == null || R.call(console, we);
}
try {
- (R = (V = e._scopesVideoAbort) == null ? void 0 : V.abort) == null || R.call(V);
- } catch (We) {
- (j = console.debug) == null || j.call(console, We);
+ (F = (Y = e._scopesVideoAbort) == null ? void 0 : Y.abort) == null || F.call(Y);
+ } catch (we) {
+ (N = console.debug) == null || N.call(console, we);
}
- if (xe === "video")
+ if (Se === "video")
try {
- const We = new AbortController();
- e._scopesVideoAbort = We;
- const De = () => {
- var Ee;
+ const we = new AbortController();
+ e._scopesVideoAbort = we;
+ const Je = () => {
+ var Te;
try {
if (String((e == null ? void 0 : e.scopesMode) || "off") === "off") return;
- } catch (Re) {
- (Ee = console.debug) == null || Ee.call(console, Re);
+ } catch (Oe) {
+ (Te = console.debug) == null || Te.call(console, Oe);
}
- A();
+ C();
};
- se.addEventListener("seeked", De, {
- signal: We.signal,
+ de.addEventListener("seeked", Je, {
+ signal: we.signal,
passive: !0
- }), se.addEventListener("loadeddata", De, {
- signal: We.signal,
+ }), de.addEventListener("loadeddata", Je, {
+ signal: we.signal,
passive: !0
- }), se.addEventListener("play", De, { signal: We.signal, passive: !0 }), se.addEventListener("pause", De, {
- signal: We.signal,
+ }), de.addEventListener("play", Je, { signal: we.signal, passive: !0 }), de.addEventListener("pause", Je, {
+ signal: we.signal,
passive: !0
});
- const Qe = 1e3 / Math.max(
+ const qe = 1e3 / Math.max(
1,
Math.min(30, Math.floor(Number(t.VIEWER_SCOPES_FPS) || 10))
), Ue = () => {
- var Ee, Re, wt, Se;
- if (!We.signal.aborted) {
+ var Te, Oe, pt, Me;
+ if (!we.signal.aborted) {
try {
if (document != null && document.hidden) return;
- } catch (Ft) {
- (Ee = console.debug) == null || Ee.call(console, Ft);
+ } catch (Xt) {
+ (Te = console.debug) == null || Te.call(console, Xt);
}
try {
if (i.style.display === "none") return;
- } catch (Ft) {
- (Re = console.debug) == null || Re.call(console, Ft);
+ } catch (Xt) {
+ (Oe = console.debug) == null || Oe.call(console, Xt);
}
try {
- if (String((e == null ? void 0 : e.scopesMode) || "off") !== "off" && !se.paused) {
- const Ft = performance.now(), Gt = Number(e == null ? void 0 : e._scopesLastAt) || 0;
- Ft - Gt >= Qe && (e._scopesLastAt = Ft, A());
+ if (String((e == null ? void 0 : e.scopesMode) || "off") !== "off" && !de.paused) {
+ const Xt = performance.now(), Mt = Number(e == null ? void 0 : e._scopesLastAt) || 0;
+ Xt - Mt >= qe && (e._scopesLastAt = Xt, C());
}
- } catch (Ft) {
- (wt = console.debug) == null || wt.call(console, Ft);
+ } catch (Xt) {
+ (pt = console.debug) == null || pt.call(console, Xt);
}
try {
requestAnimationFrame(Ue);
- } catch (Ft) {
- (Se = console.debug) == null || Se.call(console, Ft);
+ } catch (Xt) {
+ (Me = console.debug) == null || Me.call(console, Xt);
}
}
};
try {
requestAnimationFrame(Ue);
- } catch (Ee) {
- (L = console.debug) == null || L.call(console, Ee);
+ } catch (Te) {
+ (V = console.debug) == null || V.call(console, Te);
}
- } catch (We) {
- (N = console.debug) == null || N.call(console, We);
+ } catch (we) {
+ (k = console.debug) == null || k.call(console, we);
}
else
e._scopesVideoAbort = null;
try {
- (O = (q = e._videoSyncAbort) == null ? void 0 : q.abort) == null || O.call(q);
- } catch (We) {
- (B = console.debug) == null || B.call(console, We);
+ (z = (K = e._videoSyncAbort) == null ? void 0 : K.abort) == null || z.call(K);
+ } catch (we) {
+ (B = console.debug) == null || B.call(console, we);
}
try {
- if (e._videoSyncAbort = null, xe === "video" && de.length > 1) {
- const We = de.filter((De) => De && De !== se);
- e._videoSyncAbort = M(se, We);
+ if (e._videoSyncAbort = null, Se === "video" && se.length > 1) {
+ const we = se.filter((Je) => Je && Je !== de);
+ e._videoSyncAbort = S(de, we);
}
- } catch (We) {
- (J = console.debug) == null || J.call(console, We);
+ } catch (we) {
+ (J = console.debug) == null || J.call(console, we);
}
- if (xe === "video") {
+ if (Se === "video") {
try {
- const We = (Ue) => bo(Ue), De = (Ue) => {
- const Ee = Number(Ue);
- return !Number.isFinite(Ee) || Ee <= 0 ? null : Math.floor(Ee);
- }, Pe = (Ue) => {
- var Ee, Re;
+ const we = (Ue) => yo(Ue), Je = (Ue) => {
+ const Te = Number(Ue);
+ return !Number.isFinite(Te) || Te <= 0 ? null : Math.floor(Te);
+ }, $e = (Ue) => {
+ var Te, Oe;
try {
if (!Ue || typeof Ue != "object") return;
- const wt = We((Ue == null ? void 0 : Ue.fps) ?? (Ue == null ? void 0 : Ue.fps_raw) ?? (Ue == null ? void 0 : Ue.frame_rate)), Se = De(Ue == null ? void 0 : Ue.frame_count);
- (wt != null || Se != null) && ((Ee = ze == null ? void 0 : ze.setMediaInfo) == null || Ee.call(ze, { fps: wt, frameCount: Se }));
- } catch (wt) {
- (Re = console.debug) == null || Re.call(console, wt);
+ const pt = we((Ue == null ? void 0 : Ue.fps) ?? (Ue == null ? void 0 : Ue.fps_raw) ?? (Ue == null ? void 0 : Ue.frame_rate)), Me = Je(Ue == null ? void 0 : Ue.frame_count);
+ (pt != null || Me != null) && ((Te = ke == null ? void 0 : ke.setMediaInfo) == null || Te.call(ke, { fps: pt, frameCount: Me }));
+ } catch (pt) {
+ (Oe = console.debug) == null || Oe.call(console, pt);
}
};
try {
const Ue = g(_ == null ? void 0 : _.id);
- Ue && Pe(Ue);
+ Ue && $e(Ue);
} catch (Ue) {
- (T = console.debug) == null || T.call(console, Ue);
+ (P = console.debug) == null || P.call(console, Ue);
}
try {
- (Q = (D = e._videoMetaAbort) == null ? void 0 : D.abort) == null || Q.call(D);
+ ($ = (H = e._videoMetaAbort) == null ? void 0 : H.abort) == null || $.call(H);
} catch (Ue) {
(E = console.debug) == null || E.call(console, Ue);
}
- const Qe = new AbortController();
- e._videoMetaAbort = Qe, (async () => {
- var Ue, Ee;
+ const qe = new AbortController();
+ e._videoMetaAbort = qe, (async () => {
+ var Ue, Te;
try {
- const Re = await Z(_ == null ? void 0 : _.id, { signal: Qe.signal });
- if (!(Re != null && Re.ok) || !Re.data || e._activeVideoEl !== se) return;
+ const Oe = await A(_ == null ? void 0 : _.id, { signal: qe.signal });
+ if (!(Oe != null && Oe.ok) || !Oe.data || e._activeVideoEl !== de) return;
try {
- h(_ == null ? void 0 : _.id, Re.data);
- } catch (wt) {
- (Ue = console.debug) == null || Ue.call(console, wt);
+ Z(_ == null ? void 0 : _.id, Oe.data);
+ } catch (pt) {
+ (Ue = console.debug) == null || Ue.call(console, pt);
}
- Pe(Re.data);
- } catch (Re) {
- (Ee = console.debug) == null || Ee.call(console, Re);
+ $e(Oe.data);
+ } catch (Oe) {
+ (Te = console.debug) == null || Te.call(console, Oe);
}
})();
- } catch (We) {
- (K = console.debug) == null || K.call(console, We);
+ } catch (we) {
+ (oe = console.debug) == null || oe.call(console, we);
}
try {
- (Y = (F = e._videoFpsEventAbort) == null ? void 0 : F.abort) == null || Y.call(F);
- } catch (We) {
- (U = console.debug) == null || U.call(console, We);
+ (j = (M = e._videoFpsEventAbort) == null ? void 0 : M.abort) == null || j.call(M);
+ } catch (we) {
+ (O = console.debug) == null || O.call(console, we);
}
try {
- const We = new AbortController();
- e._videoFpsEventAbort = We, window.addEventListener(
+ const we = new AbortController();
+ e._videoFpsEventAbort = we, window.addEventListener(
"mjr:viewer-fps-detected",
- (De) => {
- var Pe, Qe;
+ (Je) => {
+ var $e, qe;
try {
- const Ue = (De == null ? void 0 : De.detail) || {}, Ee = String((Ue == null ? void 0 : Ue.assetId) || ""), Re = String((_ == null ? void 0 : _.id) ?? "");
- if (!Ee || !Re || Ee !== Re || e._activeVideoEl !== se) return;
- const wt = Number(Ue == null ? void 0 : Ue.fps);
- if (!Number.isFinite(wt) || wt <= 0) return;
- e.nativeFps = wt, (Pe = ze == null ? void 0 : ze.setMediaInfo) == null || Pe.call(ze, { fps: wt });
+ const Ue = (Je == null ? void 0 : Je.detail) || {}, Te = String((Ue == null ? void 0 : Ue.assetId) || ""), Oe = String((_ == null ? void 0 : _.id) ?? "");
+ if (!Te || !Oe || Te !== Oe || e._activeVideoEl !== de) return;
+ const pt = Number(Ue == null ? void 0 : Ue.fps);
+ if (!Number.isFinite(pt) || pt <= 0) return;
+ e.nativeFps = pt, ($e = ke == null ? void 0 : ke.setMediaInfo) == null || $e.call(ke, { fps: pt });
} catch (Ue) {
- (Qe = console.debug) == null || Qe.call(console, Ue);
+ (qe = console.debug) == null || qe.call(console, Ue);
}
},
- { signal: We.signal, passive: !0 }
+ { signal: we.signal, passive: !0 }
);
- } catch (We) {
- (P = console.debug) == null || P.call(console, We);
+ } catch (we) {
+ (D = console.debug) == null || D.call(console, we);
}
} else {
try {
- (oe = (ee = e._videoMetaAbort) == null ? void 0 : ee.abort) == null || oe.call(ee);
- } catch (We) {
- (ce = console.debug) == null || ce.call(console, We);
+ (ee = (q = e._videoMetaAbort) == null ? void 0 : q.abort) == null || ee.call(q);
+ } catch (we) {
+ (ce = console.debug) == null || ce.call(console, we);
}
e._videoMetaAbort = null;
try {
- (H = (pe = e._videoFpsEventAbort) == null ? void 0 : pe.abort) == null || H.call(pe);
- } catch (We) {
- ($ = console.debug) == null || $.call(console, We);
+ (U = (ue = e._videoFpsEventAbort) == null ? void 0 : ue.abort) == null || U.call(ue);
+ } catch (we) {
+ (Q = console.debug) == null || Q.call(console, we);
}
e._videoFpsEventAbort = null;
}
@@ -19416,13 +19431,13 @@ function EA({
}
return { destroyPlayerBar: f, syncPlayerBar: b };
}
-const ka = "min(400px, 42vw)", Nu = `calc(${ka} + 24px)`, Ru = "mjr-viewer-modern-theme";
-function HA() {
+const Xa = "min(400px, 42vw)", Fu = `calc(${Xa} + 24px)`, Ou = "mjr-viewer-modern-theme";
+function QA() {
var e;
try {
- if (document.getElementById(Ru)) return;
+ if (document.getElementById(Ou)) return;
const t = document.createElement("style");
- t.id = Ru, t.textContent = `
+ t.id = Ou, t.textContent = `
.mjr-viewer-overlay {
--mjr-viewer-surface: rgba(14, 18, 24, 0.78);
--mjr-viewer-surface-strong: rgba(10, 13, 18, 0.9);
@@ -19525,7 +19540,7 @@ function HA() {
}
.mjr-viewer-geninfo {
- width: ${ka} !important;
+ width: ${Xa} !important;
top: 16px !important;
bottom: 16px !important;
border-radius: 20px;
@@ -19622,14 +19637,14 @@ function HA() {
(e = console.debug) == null || e.call(console, t);
}
}
-const qA = 84, PA = 56, QA = 74, Fu = 0.45, _A = "0px 240px 0px 240px", $A = 3500, eW = (() => {
+const _A = 84, $A = 56, eW = 74, zu = 0.45, tW = "0px 240px 0px 240px", nW = 3500, iW = (() => {
try {
return new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAIf3RFWHRwcm9tcHQAeyI5IjogeyJpbnB1dHMiOiB7ImZpbGVuYW1lX3ByZWZpeCI6ICJQUk9KRUNUUy8yNjAxX1RFU1QvMDJfT1VUL0lNQUdFUy8yNjAyMDcvVGVzdC9aX0ltYWdlX1R1cmJvLzI2MDIwN19UZXN0XyIsICJpbWFnZXMiOiBbIjU3OjgiLCAwXX0sICJjbGFzc190eXBlIjogIlNhdmVJbWFnZSIsICJfbWV0YSI6IHsidGl0bGUiOiAiU2F2ZSBJbWFnZSJ9fSwgIjU4IjogeyJpbnB1dHMiOiB7InZhbHVlIjogIkJsdXJyeSBjdXRlIHNtYWxsIGRpbm9zYXVydXMgbGlrZSBjcmVhdHVyZSBzaWxob3VldHRlIHdpdGggaGVhZHBob25lIGluIGEgY2luZW1hdGljIHNsb3ctc2h1dHRlciBwYW4sIHdhcm0gYmFja2xpdCBzdW5zZXQgZ3JhZGllbnQgZnJvbSBkZWVwIHJlZCB0byBvcmFuZ2UgYW5kIGdvbGQsIGdsb3dpbmcgaGF6ZSBhbmQgYmxvb20sIHJpbS1saXQgaGFpciBoYWxvLCBnZW50bGUgbW90aW9uLWJsdXIgdHJhaWwsIHNvZnQtZm9jdXMgZmFjaWFsIGZlYXR1cmVzLCBzdWJ0bGUgZmlsbSBncmFpbiwgYXRtb3NwaGVyaWMgZm9nLCBzaGFsbG93IGRlcHRoIG9mIGZpZWxkLCBtaW5pbWFsIGNvbXBvc2l0aW9uLCBkcmVhbXkgbm9zdGFsZ2ljIG1vb2QsIHZpbnRhZ2UgbGVucyBzb2Z0bmVzcyBhbmQgc21vb3RoIGNvbG9yIHRyYW5zaXRpb25zLiJ9LCAiY2xhc3NfdHlwZSI6ICJQcmltaXRpdmVTdHJpbmdNdWx0aWxpbmUiLCAiX21ldGEiOiB7InRpdGxlIjogIlByb21wdCJ9fSwgIjU3OjMwIjogeyJpbnB1dHMiOiB7ImNsaXBfbmFtZSI6ICJxd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAidHlwZSI6ICJsdW1pbmEyIiwgImRldmljZSI6ICJkZWZhdWx0In0sICJjbGFzc190eXBlIjogIkNMSVBMb2FkZXIiLCAiX21ldGEiOiB7InRpdGxlIjogIkxvYWQgQ0xJUCJ9fSwgIjU3OjI5IjogeyJpbnB1dHMiOiB7InZhZV9uYW1lIjogImFlLnNhZmV0ZW5zb3JzIn0sICJjbGFzc190eXBlIjogIlZBRUxvYWRlciIsICJfbWV0YSI6IHsidGl0bGUiOiAiTG9hZCBWQUUifX0sICI1NzozMyI6IHsiaW5wdXRzIjogeyJjb25kaXRpb25pbmciOiBbIjU3OjI3IiwgMF19LCAiY2xhc3NfdHlwZSI6ICJDb25kaXRpb25pbmdaZXJvT3V0IiwgIl9tZXRhIjogeyJ0aXRsZSI6ICJDb25kaXRpb25pbmdaZXJvT3V0In19LCAiNTc6OCI6IHsiaW5wdXRzIjogeyJzYW1wbGVzIjogWyI1NzozIiwgMF0sICJ2YWUiOiBbIjU3OjI5IiwgMF19LCAiY2xhc3NfdHlwZSI6ICJWQUVEZWNvZGUiLCAiX21ldGEiOiB7InRpdGxlIjogIlZBRSBEZWNvZGUifX0sICI1NzoyOCI6IHsiaW5wdXRzIjogeyJ1bmV0X25hbWUiOiAiel9pbWFnZV90dXJib19iZjE2LnNhZmV0ZW5zb3JzIiwgIndlaWdodF9kdHlwZSI6ICJkZWZhdWx0In0sICJjbGFzc190eXBlIjogIlVORVRMb2FkZXIiLCAiX21ldGEiOiB7InRpdGxlIjogIkxvYWQgRGlmZnVzaW9uIE1vZGVsIn19LCAiNTc6MjciOiB7ImlucHV0cyI6IHsidGV4dCI6IFsiNTgiLCAwXSwgImNsaXAiOiBbIjU3OjMwIiwgMF19LCAiY2xhc3NfdHlwZSI6ICJDTElQVGV4dEVuY29kZSIsICJfbWV0YSI6IHsidGl0bGUiOiAiQ0xJUCBUZXh0IEVuY29kZSAoUHJvbXB0KSJ9fSwgIjU3OjEzIjogeyJpbnB1dHMiOiB7IndpZHRoIjogMTI4MCwgImhlaWdodCI6IDcyMCwgImJhdGNoX3NpemUiOiAxfSwgImNsYXNzX3R5cGUiOiAiRW1wdHlTRDNMYXRlbnRJbWFnZSIsICJfbWV0YSI6IHsidGl0bGUiOiAiRW1wdHlTRDNMYXRlbnRJbWFnZSJ9fSwgIjU3OjMiOiB7ImlucHV0cyI6IHsic2VlZCI6IDMyNzI2MzU0NDYxNzM5NywgInN0ZXBzIjogNCwgImNmZyI6IDEuMCwgInNhbXBsZXJfbmFtZSI6ICJyZXNfbXVsdGlzdGVwIiwgInNjaGVkdWxlciI6ICJzaW1wbGUiLCAiZGVub2lzZSI6IDEuMCwgIm1vZGVsIjogWyI1NzoxMSIsIDBdLCAicG9zaXRpdmUiOiBbIjU3OjI3IiwgMF0sICJuZWdhdGl2ZSI6IFsiNTc6MzMiLCAwXSwgImxhdGVudF9pbWFnZSI6IFsiNTc6MTMiLCAwXX0sICJjbGFzc190eXBlIjogIktTYW1wbGVyIiwgIl9tZXRhIjogeyJ0aXRsZSI6ICJLU2FtcGxlciJ9fSwgIjU3OjExIjogeyJpbnB1dHMiOiB7InNoaWZ0IjogMy4wLCAibW9kZWwiOiBbIjU3OjI4IiwgMF19LCAiY2xhc3NfdHlwZSI6ICJNb2RlbFNhbXBsaW5nQXVyYUZsb3ciLCAiX21ldGEiOiB7InRpdGxlIjogIk1vZGVsU2FtcGxpbmdBdXJhRmxvdyJ9fX1oR5EKAABnQnRFWHR3b3JrZmxvdwB7ImlkIjogIjlhZTYwODJiLWM3ZjQtNDMzYy05OTcxLTdhOGY2NWEzZWE2NSIsICJyZXZpc2lvbiI6IDAsICJsYXN0X25vZGVfaWQiOiA2MSwgImxhc3RfbGlua19pZCI6IDY4LCAibm9kZXMiOiBbeyJpZCI6IDYwLCAidHlwZSI6ICJTYXZlSW1hZ2UiLCAicG9zIjogWzExNzAsIDYzMF0sICJzaXplIjogWzc4MCwgNjYwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDYsICJtb2RlIjogNCwgImlucHV0cyI6IFt7Im5hbWUiOiAiaW1hZ2VzIiwgInR5cGUiOiAiSU1BR0UiLCAibGluayI6IDY1fV0sICJvdXRwdXRzIjogW10sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlNhdmVJbWFnZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIlBST0pFQ1RTLzI2MDFfVEVTVC8wMl9PVVQvSU1BR0VTLzI2MDIwNy9UZXN0L1pfSW1hZ2VfVHVyYm8vMjYwMjA3X1Rlc3RfIl19LCB7ImlkIjogMzUsICJ0eXBlIjogIk1hcmtkb3duTm90ZSIsICJwb3MiOiBbLTQ0MCwgMTkwXSwgInNpemUiOiBbNTEwLCA2MDBdLCAiZmxhZ3MiOiB7ImNvbGxhcHNlZCI6IGZhbHNlfSwgIm9yZGVyIjogMCwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW10sICJvdXRwdXRzIjogW10sICJ0aXRsZSI6ICJNb2RlbCBsaW5rIiwgInByb3BlcnRpZXMiOiB7fSwgIndpZGdldHNfdmFsdWVzIjogWyIjIyBSZXBvcnQgd29ya2Zsb3cgaXNzdWVcblxuSWYgeW91IGZvdW5kIGFueSBpc3N1ZXMgd2hlbiBydW5uaW5nIHRoaXMgd29ya2Zsb3csIFtyZXBvcnQgdGVtcGxhdGUgaXNzdWUgaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL0NvbWZ5LU9yZy93b3JrZmxvd190ZW1wbGF0ZXMvaXNzdWVzKVxuXG5cbiMjIE1vZGVsIGxpbmtzXG5cbioqdGV4dF9lbmNvZGVycyoqXG5cbi0gW3F3ZW5fM180Yi5zYWZldGVuc29yc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvdGV4dF9lbmNvZGVycy9xd2VuXzNfNGIuc2FmZXRlbnNvcnMpXG5cbioqbG9yYXMqKlxuXG4tIFtwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29yc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby90YXJuNTkvcGl4ZWxfYXJ0X3N0eWxlX2xvcmFfel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vcGl4ZWxfYXJ0X3N0eWxlX3pfaW1hZ2VfdHVyYm8uc2FmZXRlbnNvcnMpXG5cbioqZGlmZnVzaW9uX21vZGVscyoqXG5cbi0gW3pfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29yc10oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvZGlmZnVzaW9uX21vZGVscy96X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnMpXG5cbioqdmFlKipcblxuLSBbYWUuc2FmZXRlbnNvcnNdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQ29tZnktT3JnL3pfaW1hZ2VfdHVyYm8vcmVzb2x2ZS9tYWluL3NwbGl0X2ZpbGVzL3ZhZS9hZS5zYWZldGVuc29ycylcblxuXG5Nb2RlbCBTdG9yYWdlIExvY2F0aW9uXG5cbmBgYFxuXHVkODNkXHVkY2MyIENvbWZ5VUkvXG5cdTI1MWNcdTI1MDBcdTI1MDAgXHVkODNkXHVkY2MyIG1vZGVscy9cblx1MjUwMiAgIFx1MjUxY1x1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgdGV4dF9lbmNvZGVycy9cblx1MjUwMiAgIFx1MjUwMiAgICAgIFx1MjUxNFx1MjUwMFx1MjUwMCBxd2VuXzNfNGIuc2FmZXRlbnNvcnNcblx1MjUwMiAgIFx1MjUxY1x1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgbG9yYXMvXG5cdTI1MDIgICBcdTI1MDIgICAgICBcdTI1MTRcdTI1MDBcdTI1MDAgcGl4ZWxfYXJ0X3N0eWxlX3pfaW1hZ2VfdHVyYm8uc2FmZXRlbnNvcnNcblx1MjUwMiAgIFx1MjUxY1x1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgZGlmZnVzaW9uX21vZGVscy9cblx1MjUwMiAgIFx1MjUwMiAgICAgIFx1MjUxNFx1MjUwMFx1MjUwMCB6X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnNcblx1MjUwMiAgIFx1MjUxNFx1MjUwMFx1MjUwMCBcdWQ4M2RcdWRjYzIgdmFlL1xuXHUyNTAyICAgICAgICAgIFx1MjUxNFx1MjUwMFx1MjUwMCBhZS5zYWZldGVuc29yc1xuYGBgXG4iXSwgImNvbG9yIjogIiM0MzIiLCAiYmdjb2xvciI6ICIjMDAwIn0sIHsiaWQiOiA2MSwgInR5cGUiOiAiU3RyaW5nQ29uY2F0ZW5hdGUiLCAicG9zIjogWzE0MCwgNTAwXSwgInNpemUiOiBbNDAwLCAyMDBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMywgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibmFtZSI6ICJzdHJpbmdfYiIsICJ0eXBlIjogIlNUUklORyIsICJ3aWRnZXQiOiB7Im5hbWUiOiAic3RyaW5nX2IifSwgImxpbmsiOiA2N31dLCAib3V0cHV0cyI6IFt7Im5hbWUiOiAiU1RSSU5HIiwgInR5cGUiOiAiU1RSSU5HIiwgImxpbmtzIjogWzY2XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuNy4wIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlN0cmluZ0NvbmNhdGVuYXRlIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsiUGl4ZWwgYXJ0IHN0eWxlLCIsICIiLCAiIl19LCB7ImlkIjogNTksICJ0eXBlIjogImQwOTdiNjQ1LTRkM2EtNGJiNy04YjBlLTcwZTYwMWNmMDdjOSIsICJwb3MiOiBbNzIwLCA2MzBdLCAic2l6ZSI6IFs0MDAsIDQ3MF0sICJmbGFncyI6IHt9LCAib3JkZXIiOiA1LCAibW9kZSI6IDQsICJpbnB1dHMiOiBbeyJuYW1lIjogInRleHQiLCAidHlwZSI6ICJTVFJJTkciLCAid2lkZ2V0IjogeyJuYW1lIjogInRleHQifSwgImxpbmsiOiA2Nn0sIHsibGFiZWwiOiAibG9yYV9zdHJlbmd0aCIsICJuYW1lIjogInN0cmVuZ3RoX21vZGVsIiwgInR5cGUiOiAiRkxPQVQiLCAid2lkZ2V0IjogeyJuYW1lIjogInN0cmVuZ3RoX21vZGVsIn0sICJsaW5rIjogbnVsbH1dLCAib3V0cHV0cyI6IFt7Im5hbWUiOiAiSU1BR0UiLCAidHlwZSI6ICJJTUFHRSIsICJsaW5rcyI6IFs2NV19XSwgInByb3BlcnRpZXMiOiB7InByb3h5V2lkZ2V0cyI6IFtbIi0xIiwgInRleHQiXSwgWyItMSIsICJ3aWR0aCJdLCBbIi0xIiwgImhlaWdodCJdLCBbIi0xIiwgImxvcmFfbmFtZSJdLCBbIi0xIiwgInN0cmVuZ3RoX21vZGVsIl0sIFsiMyIsICJzZWVkIl0sIFsiMyIsICJjb250cm9sX2FmdGVyX2dlbmVyYXRlIl1dLCAiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIiIsIDEwMjQsIDEwMjQsICJwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29ycyIsIDFdfSwgeyJpZCI6IDksICJ0eXBlIjogIlNhdmVJbWFnZSIsICJwb3MiOiBbMTE2MCwgLTExMF0sICJzaXplIjogWzc4MCwgNjYwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDQsICJtb2RlIjogMCwgImlucHV0cyI6IFt7Im5hbWUiOiAiaW1hZ2VzIiwgInR5cGUiOiAiSU1BR0UiLCAibGluayI6IDYyfV0sICJvdXRwdXRzIjogW10sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlNhdmVJbWFnZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIlBST0pFQ1RTLzI2MDFfVEVTVC8wMl9PVVQvSU1BR0VTLzI2MDIwNy9UZXN0L1pfSW1hZ2VfVHVyYm8vMjYwMjA3X1Rlc3RfIl19LCB7ImlkIjogNTcsICJ0eXBlIjogImYyZmRlYmY2LWRmYWYtNDNiNi05ZWIyLTdmNzA2MTNjZmRjMSIsICJwb3MiOiBbNzIwLCAtMTEwXSwgInNpemUiOiBbNDAwLCA0NzBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMiwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibGFiZWwiOiAicHJvbXB0IiwgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogIlNUUklORyIsICJ3aWRnZXQiOiB7Im5hbWUiOiAidGV4dCJ9LCAibGluayI6IDYzfV0sICJvdXRwdXRzIjogW3sibmFtZSI6ICJJTUFHRSIsICJ0eXBlIjogIklNQUdFIiwgImxpbmtzIjogWzYyXX1dLCAicHJvcGVydGllcyI6IHsicHJveHlXaWRnZXRzIjogW1siLTEiLCAidGV4dCJdLCBbIi0xIiwgIndpZHRoIl0sIFsiLTEiLCAiaGVpZ2h0Il0sIFsiMyIsICJzZWVkIl0sIFsiMyIsICJjb250cm9sX2FmdGVyX2dlbmVyYXRlIl1dLCAiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIiIsIDEyODAsIDcyMF19LCB7ImlkIjogNTgsICJ0eXBlIjogIlByaW1pdGl2ZVN0cmluZ011bHRpbGluZSIsICJwb3MiOiBbMTUwLjI0MzUyNzQ4ODI2NTk1LCAtMzMuNTM5MjMyMTU0MTYxOTY1XSwgInNpemUiOiBbNDAwLCAyMDBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMSwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW10sICJvdXRwdXRzIjogW3sibmFtZSI6ICJTVFJJTkciLCAidHlwZSI6ICJTVFJJTkciLCAibGlua3MiOiBbNjMsIDY3XX1dLCAidGl0bGUiOiAiUHJvbXB0IiwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjcuMCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJQcmltaXRpdmVTdHJpbmdNdWx0aWxpbmUiLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJCbHVycnkgY3V0ZSBzbWFsbCBkaW5vc2F1cnVzIGxpa2UgY3JlYXR1cmUgc2lsaG91ZXR0ZSB3aXRoIGhlYWRwaG9uZSBpbiBhIGNpbmVtYXRpYyBzbG93LXNodXR0ZXIgcGFuLCB3YXJtIGJhY2tsaXQgc3Vuc2V0IGdyYWRpZW50IGZyb20gZGVlcCByZWQgdG8gb3JhbmdlIGFuZCBnb2xkLCBnbG93aW5nIGhhemUgYW5kIGJsb29tLCByaW0tbGl0IGhhaXIgaGFsbywgZ2VudGxlIG1vdGlvbi1ibHVyIHRyYWlsLCBzb2Z0LWZvY3VzIGZhY2lhbCBmZWF0dXJlcywgc3VidGxlIGZpbG0gZ3JhaW4sIGF0bW9zcGhlcmljIGZvZywgc2hhbGxvdyBkZXB0aCBvZiBmaWVsZCwgbWluaW1hbCBjb21wb3NpdGlvbiwgZHJlYW15IG5vc3RhbGdpYyBtb29kLCB2aW50YWdlIGxlbnMgc29mdG5lc3MgYW5kIHNtb290aCBjb2xvciB0cmFuc2l0aW9ucy4iXX1dLCAibGlua3MiOiBbWzYyLCA1NywgMCwgOSwgMCwgIklNQUdFIl0sIFs2MywgNTgsIDAsIDU3LCAwLCAiU1RSSU5HIl0sIFs2NSwgNTksIDAsIDYwLCAwLCAiSU1BR0UiXSwgWzY2LCA2MSwgMCwgNTksIDAsICJTVFJJTkciXSwgWzY3LCA1OCwgMCwgNjEsIDAsICJTVFJJTkciXV0sICJncm91cHMiOiBbXSwgImRlZmluaXRpb25zIjogeyJzdWJncmFwaHMiOiBbeyJpZCI6ICJmMmZkZWJmNi1kZmFmLTQzYjYtOWViMi03ZjcwNjEzY2ZkYzEiLCAidmVyc2lvbiI6IDEsICJzdGF0ZSI6IHsibGFzdEdyb3VwSWQiOiA0LCAibGFzdE5vZGVJZCI6IDM0LCAibGFzdExpbmtJZCI6IDM3LCAibGFzdFJlcm91dGVJZCI6IDB9LCAicmV2aXNpb24iOiAwLCAiY29uZmlnIjoge30sICJuYW1lIjogIlRleHQgdG8gSW1hZ2UgKFotSW1hZ2UtVHVyYm8pIiwgImlucHV0Tm9kZSI6IHsiaWQiOiAtMTAsICJib3VuZGluZyI6IFstODAsIDQyNSwgMTIwLCAxMDBdfSwgIm91dHB1dE5vZGUiOiB7ImlkIjogLTIwLCAiYm91bmRpbmciOiBbMTQ5MCwgNDE1LCAxMjAsIDYwXX0sICJpbnB1dHMiOiBbeyJpZCI6ICJmYjE3ODY2OS1lNzQyLTRhNTMtOGE2OS03ZGY1OTgzNGRmZDgiLCAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAiU1RSSU5HIiwgImxpbmtJZHMiOiBbMzRdLCAibGFiZWwiOiAicHJvbXB0IiwgInBvcyI6IFsyMCwgNDQ1XX0sIHsiaWQiOiAiZGQ3ODBiM2MtMjNlOS00NmZmLTg0NjktMTU2MDA4ZjQyZTVhIiwgIm5hbWUiOiAid2lkdGgiLCAidHlwZSI6ICJJTlQiLCAibGlua0lkcyI6IFszNV0sICJwb3MiOiBbMjAsIDQ2NV19LCB7ImlkIjogIjdiMDhkNTQ2LTZiYjAtNGVmOS04MmU5LWZmYWU1ZTFlZTZiYyIsICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIklOVCIsICJsaW5rSWRzIjogWzM2XSwgInBvcyI6IFsyMCwgNDg1XX1dLCAib3V0cHV0cyI6IFt7ImlkIjogIjFmYTcyYTIxLWNlMDAtNDk1Mi04MTRlLTFmMmZmYmU4N2QxZCIsICJuYW1lIjogIklNQUdFIiwgInR5cGUiOiAiSU1BR0UiLCAibGlua0lkcyI6IFsxNl0sICJsb2NhbGl6ZWRfbmFtZSI6ICJJTUFHRSIsICJwb3MiOiBbMTUxMCwgNDM1XX1dLCAid2lkZ2V0cyI6IFtdLCAibm9kZXMiOiBbeyJpZCI6IDMwLCAidHlwZSI6ICJDTElQTG9hZGVyIiwgInBvcyI6IFsxMTAsIDMzMF0sICJzaXplIjogWzI3MCwgMTA2XSwgImZsYWdzIjoge30sICJvcmRlciI6IDAsICJtb2RlIjogMCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkNMSVAiLCAibmFtZSI6ICJDTElQIiwgInR5cGUiOiAiQ0xJUCIsICJsaW5rcyI6IFsyOF19XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiQ0xJUExvYWRlciIsICJtb2RlbHMiOiBbeyJuYW1lIjogInF3ZW5fM180Yi5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvdGV4dF9lbmNvZGVycy9xd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogInRleHRfZW5jb2RlcnMifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbInF3ZW5fM180Yi5zYWZldGVuc29ycyIsICJsdW1pbmEyIiwgImRlZmF1bHQiXX0sIHsiaWQiOiAyOSwgInR5cGUiOiAiVkFFTG9hZGVyIiwgInBvcyI6IFsxMTAsIDQ4MF0sICJzaXplIjogWzI3MCwgNThdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogMSwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW10sICJvdXRwdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiVkFFIiwgIm5hbWUiOiAiVkFFIiwgInR5cGUiOiAiVkFFIiwgImxpbmtzIjogWzI3XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJWQUVMb2FkZXIiLCAibW9kZWxzIjogW3sibmFtZSI6ICJhZS5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvdmFlL2FlLnNhZmV0ZW5zb3JzIiwgImRpcmVjdG9yeSI6ICJ2YWUifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbImFlLnNhZmV0ZW5zb3JzIl19LCB7ImlkIjogMzMsICJ0eXBlIjogIkNvbmRpdGlvbmluZ1plcm9PdXQiLCAicG9zIjogWzY0MCwgNjIwXSwgInNpemUiOiBbMjA0LjEzNDc2NTYyNSwgMjZdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogOCwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiY29uZGl0aW9uaW5nIiwgIm5hbWUiOiAiY29uZGl0aW9uaW5nIiwgInR5cGUiOiAiQ09ORElUSU9OSU5HIiwgImxpbmsiOiAzMn1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkNPTkRJVElPTklORyIsICJuYW1lIjogIkNPTkRJVElPTklORyIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rcyI6IFszM119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiQ29uZGl0aW9uaW5nWmVyb091dCIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbXX0sIHsiaWQiOiA4LCAidHlwZSI6ICJWQUVEZWNvZGUiLCAicG9zIjogWzEyMjAsIDE2MF0sICJzaXplIjogWzIxMCwgNDZdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNSwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAic2FtcGxlcyIsICJuYW1lIjogInNhbXBsZXMiLCAidHlwZSI6ICJMQVRFTlQiLCAibGluayI6IDE0fSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJ2YWUiLCAibmFtZSI6ICJ2YWUiLCAidHlwZSI6ICJWQUUiLCAibGluayI6IDI3fV0sICJvdXRwdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiSU1BR0UiLCAibmFtZSI6ICJJTUFHRSIsICJ0eXBlIjogIklNQUdFIiwgInNsb3RfaW5kZXgiOiAwLCAibGlua3MiOiBbMTZdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIlZBRURlY29kZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbXX0sIHsiaWQiOiAyOCwgInR5cGUiOiAiVU5FVExvYWRlciIsICJwb3MiOiBbMTEwLCAyMDBdLCAic2l6ZSI6IFsyNzAsIDgyXSwgImZsYWdzIjoge30sICJvcmRlciI6IDIsICJtb2RlIjogMCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIk1PREVMIiwgIm5hbWUiOiAiTU9ERUwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rcyI6IFsyNl19XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiVU5FVExvYWRlciIsICJtb2RlbHMiOiBbeyJuYW1lIjogInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvZGlmZnVzaW9uX21vZGVscy96X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogImRpZmZ1c2lvbl9tb2RlbHMifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJkZWZhdWx0Il0sICJjb2xvciI6ICIjRkYwMDAwIn0sIHsiaWQiOiAyNywgInR5cGUiOiAiQ0xJUFRleHRFbmNvZGUiLCAicG9zIjogWzQzMCwgMjAwXSwgInNpemUiOiBbNDEwLCAzNzBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNywgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiY2xpcCIsICJuYW1lIjogImNsaXAiLCAidHlwZSI6ICJDTElQIiwgImxpbmsiOiAyOH0sIHsibG9jYWxpemVkX25hbWUiOiAidGV4dCIsICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJTVFJJTkciLCAid2lkZ2V0IjogeyJuYW1lIjogInRleHQifSwgImxpbmsiOiAzNH1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkNPTkRJVElPTklORyIsICJuYW1lIjogIkNPTkRJVElPTklORyIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rcyI6IFszMCwgMzJdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjczIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkNMSVBUZXh0RW5jb2RlIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsiIl19LCB7ImlkIjogMTMsICJ0eXBlIjogIkVtcHR5U0QzTGF0ZW50SW1hZ2UiLCAicG9zIjogWzExMCwgNjMwXSwgInNpemUiOiBbMjYwLCAxMTBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNiwgIm1vZGUiOiAwLCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAid2lkdGgiLCAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogIklOVCIsICJ3aWRnZXQiOiB7Im5hbWUiOiAid2lkdGgifSwgImxpbmsiOiAzNX0sIHsibG9jYWxpemVkX25hbWUiOiAiaGVpZ2h0IiwgIm5hbWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiSU5UIiwgIndpZGdldCI6IHsibmFtZSI6ICJoZWlnaHQifSwgImxpbmsiOiAzNn1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkxBVEVOVCIsICJuYW1lIjogIkxBVEVOVCIsICJ0eXBlIjogIkxBVEVOVCIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzE3XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJFbXB0eVNEM0xhdGVudEltYWdlIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFsxMjgwLCA3MjAsIDFdfSwgeyJpZCI6IDMsICJ0eXBlIjogIktTYW1wbGVyIiwgInBvcyI6IFs4ODAsIDI3MF0sICJzaXplIjogWzMxNSwgMjYyXSwgImZsYWdzIjoge30sICJvcmRlciI6IDQsICJtb2RlIjogMCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIm1vZGVsIiwgIm5hbWUiOiAibW9kZWwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rIjogMTN9LCB7ImxvY2FsaXplZF9uYW1lIjogInBvc2l0aXZlIiwgIm5hbWUiOiAicG9zaXRpdmUiLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGluayI6IDMwfSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJuZWdhdGl2ZSIsICJuYW1lIjogIm5lZ2F0aXZlIiwgInR5cGUiOiAiQ09ORElUSU9OSU5HIiwgImxpbmsiOiAzM30sIHsibG9jYWxpemVkX25hbWUiOiAibGF0ZW50X2ltYWdlIiwgIm5hbWUiOiAibGF0ZW50X2ltYWdlIiwgInR5cGUiOiAiTEFURU5UIiwgImxpbmsiOiAxN31dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIkxBVEVOVCIsICJuYW1lIjogIkxBVEVOVCIsICJ0eXBlIjogIkxBVEVOVCIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzE0XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJLU2FtcGxlciIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbMzI3MjYzNTQ0NjE3Mzk3LCAicmFuZG9taXplIiwgNCwgMSwgInJlc19tdWx0aXN0ZXAiLCAic2ltcGxlIiwgMV19LCB7ImlkIjogMTEsICJ0eXBlIjogIk1vZGVsU2FtcGxpbmdBdXJhRmxvdyIsICJwb3MiOiBbODgwLCAxNjBdLCAic2l6ZSI6IFszMTAsIDYwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDMsICJtb2RlIjogMCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIm1vZGVsIiwgIm5hbWUiOiAibW9kZWwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rIjogMjZ9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJNT0RFTCIsICJuYW1lIjogIk1PREVMIiwgInR5cGUiOiAiTU9ERUwiLCAic2xvdF9pbmRleCI6IDAsICJsaW5rcyI6IFsxM119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNjQiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiTW9kZWxTYW1wbGluZ0F1cmFGbG93IiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFszXX1dLCAiZ3JvdXBzIjogW3siaWQiOiAyLCAidGl0bGUiOiAiU3RlcDIgLSBJbWFnZSBzaXplIiwgImJvdW5kaW5nIjogWzEwMCwgNTYwLCAyOTAsIDIwMF0sICJjb2xvciI6ICIjM2Y3ODllIiwgImZvbnRfc2l6ZSI6IDI0LCAiZmxhZ3MiOiB7fX0sIHsiaWQiOiAzLCAidGl0bGUiOiAiU3RlcDMgLSBQcm9tcHQiLCAiYm91bmRpbmciOiBbNDEwLCAxMzAsIDQ1MCwgNTQwXSwgImNvbG9yIjogIiMzZjc4OWUiLCAiZm9udF9zaXplIjogMjQsICJmbGFncyI6IHt9fSwgeyJpZCI6IDQsICJ0aXRsZSI6ICJTdGVwMSAtIExvYWQgbW9kZWxzIiwgImJvdW5kaW5nIjogWzEwMCwgMTMwLCAyOTAsIDQxMy42XSwgImNvbG9yIjogIiMzZjc4OWUiLCAiZm9udF9zaXplIjogMjQsICJmbGFncyI6IHt9fV0sICJsaW5rcyI6IFt7ImlkIjogMzIsICJvcmlnaW5faWQiOiAyNywgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDMzLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJDT05ESVRJT05JTkcifSwgeyJpZCI6IDI2LCAib3JpZ2luX2lkIjogMjgsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAxMSwgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiTU9ERUwifSwgeyJpZCI6IDE0LCAib3JpZ2luX2lkIjogMywgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDgsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIkxBVEVOVCJ9LCB7ImlkIjogMjcsICJvcmlnaW5faWQiOiAyOSwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDgsICJ0YXJnZXRfc2xvdCI6IDEsICJ0eXBlIjogIlZBRSJ9LCB7ImlkIjogMTMsICJvcmlnaW5faWQiOiAxMSwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDMsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIk1PREVMIn0sIHsiaWQiOiAzMCwgIm9yaWdpbl9pZCI6IDI3LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiQ09ORElUSU9OSU5HIn0sIHsiaWQiOiAzMywgIm9yaWdpbl9pZCI6IDMzLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMiwgInR5cGUiOiAiQ09ORElUSU9OSU5HIn0sIHsiaWQiOiAxNywgIm9yaWdpbl9pZCI6IDEzLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMywgInR5cGUiOiAiTEFURU5UIn0sIHsiaWQiOiAyOCwgIm9yaWdpbl9pZCI6IDMwLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMjcsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIkNMSVAifSwgeyJpZCI6IDE2LCAib3JpZ2luX2lkIjogOCwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IC0yMCwgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiSU1BR0UifSwgeyJpZCI6IDM0LCAib3JpZ2luX2lkIjogLTEwLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMjcsICJ0YXJnZXRfc2xvdCI6IDEsICJ0eXBlIjogIlNUUklORyJ9LCB7ImlkIjogMzUsICJvcmlnaW5faWQiOiAtMTAsICJvcmlnaW5fc2xvdCI6IDEsICJ0YXJnZXRfaWQiOiAxMywgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiSU5UIn0sIHsiaWQiOiAzNiwgIm9yaWdpbl9pZCI6IC0xMCwgIm9yaWdpbl9zbG90IjogMiwgInRhcmdldF9pZCI6IDEzLCAidGFyZ2V0X3Nsb3QiOiAxLCAidHlwZSI6ICJJTlQifV0sICJleHRyYSI6IHsid29ya2Zsb3dSZW5kZXJlclZlcnNpb24iOiAiTEcifX0sIHsiaWQiOiAiZDA5N2I2NDUtNGQzYS00YmI3LThiMGUtNzBlNjAxY2YwN2M5IiwgInZlcnNpb24iOiAxLCAic3RhdGUiOiB7Imxhc3RHcm91cElkIjogNCwgImxhc3ROb2RlSWQiOiAzNiwgImxhc3RMaW5rSWQiOiA0MSwgImxhc3RSZXJvdXRlSWQiOiAwfSwgInJldmlzaW9uIjogMCwgImNvbmZpZyI6IHt9LCAibmFtZSI6ICJUZXh0IHRvIEltYWdlIChaLUltYWdlLVR1cmJvIHdpdGggTG9SQSkiLCAiaW5wdXROb2RlIjogeyJpZCI6IC0xMCwgImJvdW5kaW5nIjogWy04MCwgNDI1LCAxMjAsIDE0MF19LCAib3V0cHV0Tm9kZSI6IHsiaWQiOiAtMjAsICJib3VuZGluZyI6IFsxNDkwLCA0MTUsIDEyMCwgNjBdfSwgImlucHV0cyI6IFt7ImlkIjogImZiMTc4NjY5LWU3NDItNGE1My04YTY5LTdkZjU5ODM0ZGZkOCIsICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJTVFJJTkciLCAibGlua0lkcyI6IFszNF0sICJwb3MiOiBbMjAsIDQ0NV19LCB7ImlkIjogImRkNzgwYjNjLTIzZTktNDZmZi04NDY5LTE1NjAwOGY0MmU1YSIsICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAiSU5UIiwgImxpbmtJZHMiOiBbMzVdLCAicG9zIjogWzIwLCA0NjVdfSwgeyJpZCI6ICI3YjA4ZDU0Ni02YmIwLTRlZjktODJlOS1mZmFlNWUxZWU2YmMiLCAibmFtZSI6ICJoZWlnaHQiLCAidHlwZSI6ICJJTlQiLCAibGlua0lkcyI6IFszNl0sICJwb3MiOiBbMjAsIDQ4NV19LCB7ImlkIjogIjg0MGNkNTMxLWZmYzUtNDk0OS04OTg2LTM5YjIyNzI1ZDZlYSIsICJuYW1lIjogImxvcmFfbmFtZSIsICJ0eXBlIjogIkNPTUJPIiwgImxpbmtJZHMiOiBbNDBdLCAicG9zIjogWzIwLCA1MDVdfSwgeyJpZCI6ICIzOGM5ZWMwNy1jN2UzLTQyMGMtOGFkNS0zMWVmYmQxMmUyNTgiLCAibmFtZSI6ICJzdHJlbmd0aF9tb2RlbCIsICJ0eXBlIjogIkZMT0FUIiwgImxpbmtJZHMiOiBbNDFdLCAibGFiZWwiOiAibG9yYV9zdHJlbmd0aCIsICJwb3MiOiBbMjAsIDUyNV19XSwgIm91dHB1dHMiOiBbeyJpZCI6ICIxZmE3MmEyMS1jZTAwLTQ5NTItODE0ZS0xZjJmZmJlODdkMWQiLCAibmFtZSI6ICJJTUFHRSIsICJ0eXBlIjogIklNQUdFIiwgImxpbmtJZHMiOiBbMTZdLCAibG9jYWxpemVkX25hbWUiOiAiSU1BR0UiLCAicG9zIjogWzE1MTAsIDQzNV19XSwgIndpZGdldHMiOiBbXSwgIm5vZGVzIjogW3siaWQiOiAzMCwgInR5cGUiOiAiQ0xJUExvYWRlciIsICJwb3MiOiBbMTEwLCAzMzBdLCAic2l6ZSI6IFsyNzAsIDEwNl0sICJmbGFncyI6IHt9LCAib3JkZXIiOiAwLCAibW9kZSI6IDQsICJpbnB1dHMiOiBbXSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJDTElQIiwgIm5hbWUiOiAiQ0xJUCIsICJ0eXBlIjogIkNMSVAiLCAibGlua3MiOiBbMjhdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjczIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkNMSVBMb2FkZXIiLCAibW9kZWxzIjogW3sibmFtZSI6ICJxd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAidXJsIjogImh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQ29tZnktT3JnL3pfaW1hZ2VfdHVyYm8vcmVzb2x2ZS9tYWluL3NwbGl0X2ZpbGVzL3RleHRfZW5jb2RlcnMvcXdlbl8zXzRiLnNhZmV0ZW5zb3JzIiwgImRpcmVjdG9yeSI6ICJ0ZXh0X2VuY29kZXJzIn1dLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJxd2VuXzNfNGIuc2FmZXRlbnNvcnMiLCAibHVtaW5hMiIsICJkZWZhdWx0Il19LCB7ImlkIjogMjksICJ0eXBlIjogIlZBRUxvYWRlciIsICJwb3MiOiBbMTEwLCA0ODBdLCAic2l6ZSI6IFsyNzAsIDU4XSwgImZsYWdzIjoge30sICJvcmRlciI6IDEsICJtb2RlIjogNCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIlZBRSIsICJuYW1lIjogIlZBRSIsICJ0eXBlIjogIlZBRSIsICJsaW5rcyI6IFsyN119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiVkFFTG9hZGVyIiwgIm1vZGVscyI6IFt7Im5hbWUiOiAiYWUuc2FmZXRlbnNvcnMiLCAidXJsIjogImh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vQ29tZnktT3JnL3pfaW1hZ2VfdHVyYm8vcmVzb2x2ZS9tYWluL3NwbGl0X2ZpbGVzL3ZhZS9hZS5zYWZldGVuc29ycyIsICJkaXJlY3RvcnkiOiAidmFlIn1dLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJhZS5zYWZldGVuc29ycyJdfSwgeyJpZCI6IDMzLCAidHlwZSI6ICJDb25kaXRpb25pbmdaZXJvT3V0IiwgInBvcyI6IFs2NDAsIDYyMF0sICJzaXplIjogWzIwNC4xMzQ3NjU2MjUsIDI2XSwgImZsYWdzIjoge30sICJvcmRlciI6IDksICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogImNvbmRpdGlvbmluZyIsICJuYW1lIjogImNvbmRpdGlvbmluZyIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rIjogMzJ9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJDT05ESVRJT05JTkciLCAibmFtZSI6ICJDT05ESVRJT05JTkciLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGlua3MiOiBbMzNdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjczIiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkNvbmRpdGlvbmluZ1plcm9PdXQiLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogW119LCB7ImlkIjogOCwgInR5cGUiOiAiVkFFRGVjb2RlIiwgInBvcyI6IFsxMjIwLCAxNjBdLCAic2l6ZSI6IFsyMTAsIDQ2XSwgImZsYWdzIjoge30sICJvcmRlciI6IDUsICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogInNhbXBsZXMiLCAibmFtZSI6ICJzYW1wbGVzIiwgInR5cGUiOiAiTEFURU5UIiwgImxpbmsiOiAxNH0sIHsibG9jYWxpemVkX25hbWUiOiAidmFlIiwgIm5hbWUiOiAidmFlIiwgInR5cGUiOiAiVkFFIiwgImxpbmsiOiAyN31dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIklNQUdFIiwgIm5hbWUiOiAiSU1BR0UiLCAidHlwZSI6ICJJTUFHRSIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzE2XX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJWQUVEZWNvZGUiLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogW119LCB7ImlkIjogMjcsICJ0eXBlIjogIkNMSVBUZXh0RW5jb2RlIiwgInBvcyI6IFs0MzAsIDIwMF0sICJzaXplIjogWzQxMCwgMzcwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDgsICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogImNsaXAiLCAibmFtZSI6ICJjbGlwIiwgInR5cGUiOiAiQ0xJUCIsICJsaW5rIjogMjh9LCB7ImxvY2FsaXplZF9uYW1lIjogInRleHQiLCAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAiU1RSSU5HIiwgIndpZGdldCI6IHsibmFtZSI6ICJ0ZXh0In0sICJsaW5rIjogMzR9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJDT05ESVRJT05JTkciLCAibmFtZSI6ICJDT05ESVRJT05JTkciLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGlua3MiOiBbMzAsIDMyXX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy43MyIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJDTElQVGV4dEVuY29kZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbIiJdfSwgeyJpZCI6IDEzLCAidHlwZSI6ICJFbXB0eVNEM0xhdGVudEltYWdlIiwgInBvcyI6IFsxMTAsIDYzMF0sICJzaXplIjogWzI2MCwgMTEwXSwgImZsYWdzIjoge30sICJvcmRlciI6IDcsICJtb2RlIjogNCwgImlucHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIndpZHRoIiwgIm5hbWUiOiAid2lkdGgiLCAidHlwZSI6ICJJTlQiLCAid2lkZ2V0IjogeyJuYW1lIjogIndpZHRoIn0sICJsaW5rIjogMzV9LCB7ImxvY2FsaXplZF9uYW1lIjogImhlaWdodCIsICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIklOVCIsICJ3aWRnZXQiOiB7Im5hbWUiOiAiaGVpZ2h0In0sICJsaW5rIjogMzZ9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJMQVRFTlQiLCAibmFtZSI6ICJMQVRFTlQiLCAidHlwZSI6ICJMQVRFTlQiLCAic2xvdF9pbmRleCI6IDAsICJsaW5rcyI6IFsxN119XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNjQiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiRW1wdHlTRDNMYXRlbnRJbWFnZSIsICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbMTAyNCwgMTAyNCwgMV19LCB7ImlkIjogMywgInR5cGUiOiAiS1NhbXBsZXIiLCAicG9zIjogWzg4MCwgMjcwXSwgInNpemUiOiBbMzE1LCAyNjJdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNCwgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAibW9kZWwiLCAibmFtZSI6ICJtb2RlbCIsICJ0eXBlIjogIk1PREVMIiwgImxpbmsiOiAxM30sIHsibG9jYWxpemVkX25hbWUiOiAicG9zaXRpdmUiLCAibmFtZSI6ICJwb3NpdGl2ZSIsICJ0eXBlIjogIkNPTkRJVElPTklORyIsICJsaW5rIjogMzB9LCB7ImxvY2FsaXplZF9uYW1lIjogIm5lZ2F0aXZlIiwgIm5hbWUiOiAibmVnYXRpdmUiLCAidHlwZSI6ICJDT05ESVRJT05JTkciLCAibGluayI6IDMzfSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJsYXRlbnRfaW1hZ2UiLCAibmFtZSI6ICJsYXRlbnRfaW1hZ2UiLCAidHlwZSI6ICJMQVRFTlQiLCAibGluayI6IDE3fV0sICJvdXRwdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAiTEFURU5UIiwgIm5hbWUiOiAiTEFURU5UIiwgInR5cGUiOiAiTEFURU5UIiwgInNsb3RfaW5kZXgiOiAwLCAibGlua3MiOiBbMTRdfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjY0IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIktTYW1wbGVyIiwgImVuYWJsZVRhYnMiOiBmYWxzZSwgInRhYldpZHRoIjogNjUsICJ0YWJYT2Zmc2V0IjogMTAsICJoYXNTZWNvbmRUYWIiOiBmYWxzZSwgInNlY29uZFRhYlRleHQiOiAiU2VuZCBCYWNrIiwgInNlY29uZFRhYk9mZnNldCI6IDgwLCAic2Vjb25kVGFiV2lkdGgiOiA2NX0sICJ3aWRnZXRzX3ZhbHVlcyI6IFs5ODQwMzYxODQ2MDI3ODksICJyYW5kb21pemUiLCA0LCAxLCAicmVzX211bHRpc3RlcCIsICJzaW1wbGUiLCAxXX0sIHsiaWQiOiAyOCwgInR5cGUiOiAiVU5FVExvYWRlciIsICJwb3MiOiBbMTEwLCAyMDBdLCAic2l6ZSI6IFsyNzAsIDgyXSwgImZsYWdzIjoge30sICJvcmRlciI6IDIsICJtb2RlIjogNCwgImlucHV0cyI6IFtdLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIk1PREVMIiwgIm5hbWUiOiAiTU9ERUwiLCAidHlwZSI6ICJNT0RFTCIsICJsaW5rcyI6IFszOF19XSwgInByb3BlcnRpZXMiOiB7ImNucl9pZCI6ICJjb21meS1jb3JlIiwgInZlciI6ICIwLjMuNzMiLCAiTm9kZSBuYW1lIGZvciBTJlIiOiAiVU5FVExvYWRlciIsICJtb2RlbHMiOiBbeyJuYW1lIjogInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9Db21meS1Pcmcvel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vc3BsaXRfZmlsZXMvZGlmZnVzaW9uX21vZGVscy96X2ltYWdlX3R1cmJvX2JmMTYuc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogImRpZmZ1c2lvbl9tb2RlbHMifV0sICJlbmFibGVUYWJzIjogZmFsc2UsICJ0YWJXaWR0aCI6IDY1LCAidGFiWE9mZnNldCI6IDEwLCAiaGFzU2Vjb25kVGFiIjogZmFsc2UsICJzZWNvbmRUYWJUZXh0IjogIlNlbmQgQmFjayIsICJzZWNvbmRUYWJPZmZzZXQiOiA4MCwgInNlY29uZFRhYldpZHRoIjogNjV9LCAid2lkZ2V0c192YWx1ZXMiOiBbInpfaW1hZ2VfdHVyYm9fYmYxNi5zYWZldGVuc29ycyIsICJkZWZhdWx0Il0sICJjb2xvciI6ICIjRkYwMDAwIn0sIHsiaWQiOiAzNiwgInR5cGUiOiAiTm90ZSIsICJwb3MiOiBbNTEwLCAtMTMwXSwgInNpemUiOiBbMjEwLCA4OF0sICJmbGFncyI6IHt9LCAib3JkZXIiOiAzLCAibW9kZSI6IDQsICJpbnB1dHMiOiBbXSwgIm91dHB1dHMiOiBbXSwgInRpdGxlIjogIkxvUkEgdHJpZ2dlciB3b3JkIiwgInByb3BlcnRpZXMiOiB7fSwgIndpZGdldHNfdmFsdWVzIjogWyJQaXhlbCBhcnQgc3R5bGUiXSwgImNvbG9yIjogIiM0MzIiLCAiYmdjb2xvciI6ICIjMDAwIn0sIHsiaWQiOiAxMSwgInR5cGUiOiAiTW9kZWxTYW1wbGluZ0F1cmFGbG93IiwgInBvcyI6IFs4ODAsIDE2MF0sICJzaXplIjogWzMxMCwgNjBdLCAiZmxhZ3MiOiB7fSwgIm9yZGVyIjogNiwgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAibW9kZWwiLCAibmFtZSI6ICJtb2RlbCIsICJ0eXBlIjogIk1PREVMIiwgImxpbmsiOiAzOX1dLCAib3V0cHV0cyI6IFt7ImxvY2FsaXplZF9uYW1lIjogIk1PREVMIiwgIm5hbWUiOiAiTU9ERUwiLCAidHlwZSI6ICJNT0RFTCIsICJzbG90X2luZGV4IjogMCwgImxpbmtzIjogWzEzXX1dLCAicHJvcGVydGllcyI6IHsiY25yX2lkIjogImNvbWZ5LWNvcmUiLCAidmVyIjogIjAuMy42NCIsICJOb2RlIG5hbWUgZm9yIFMmUiI6ICJNb2RlbFNhbXBsaW5nQXVyYUZsb3ciLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWzNdfSwgeyJpZCI6IDM1LCAidHlwZSI6ICJMb3JhTG9hZGVyTW9kZWxPbmx5IiwgInBvcyI6IFs0NTAsIDEwXSwgInNpemUiOiBbMzcwLCA4Ml0sICJmbGFncyI6IHt9LCAib3JkZXIiOiAxMCwgIm1vZGUiOiA0LCAiaW5wdXRzIjogW3sibG9jYWxpemVkX25hbWUiOiAibW9kZWwiLCAibmFtZSI6ICJtb2RlbCIsICJ0eXBlIjogIk1PREVMIiwgImxpbmsiOiAzOH0sIHsibG9jYWxpemVkX25hbWUiOiAibG9yYV9uYW1lIiwgIm5hbWUiOiAibG9yYV9uYW1lIiwgInR5cGUiOiAiQ09NQk8iLCAid2lkZ2V0IjogeyJuYW1lIjogImxvcmFfbmFtZSJ9LCAibGluayI6IDQwfSwgeyJsb2NhbGl6ZWRfbmFtZSI6ICJzdHJlbmd0aF9tb2RlbCIsICJuYW1lIjogInN0cmVuZ3RoX21vZGVsIiwgInR5cGUiOiAiRkxPQVQiLCAid2lkZ2V0IjogeyJuYW1lIjogInN0cmVuZ3RoX21vZGVsIn0sICJsaW5rIjogNDF9XSwgIm91dHB1dHMiOiBbeyJsb2NhbGl6ZWRfbmFtZSI6ICJNT0RFTCIsICJuYW1lIjogIk1PREVMIiwgInR5cGUiOiAiTU9ERUwiLCAibGlua3MiOiBbMzldfV0sICJwcm9wZXJ0aWVzIjogeyJjbnJfaWQiOiAiY29tZnktY29yZSIsICJ2ZXIiOiAiMC4zLjc1IiwgIk5vZGUgbmFtZSBmb3IgUyZSIjogIkxvcmFMb2FkZXJNb2RlbE9ubHkiLCAibW9kZWxzIjogW3sibmFtZSI6ICJwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29ycyIsICJ1cmwiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby90YXJuNTkvcGl4ZWxfYXJ0X3N0eWxlX2xvcmFfel9pbWFnZV90dXJiby9yZXNvbHZlL21haW4vcGl4ZWxfYXJ0X3N0eWxlX3pfaW1hZ2VfdHVyYm8uc2FmZXRlbnNvcnMiLCAiZGlyZWN0b3J5IjogImxvcmFzIn1dLCAiZW5hYmxlVGFicyI6IGZhbHNlLCAidGFiV2lkdGgiOiA2NSwgInRhYlhPZmZzZXQiOiAxMCwgImhhc1NlY29uZFRhYiI6IGZhbHNlLCAic2Vjb25kVGFiVGV4dCI6ICJTZW5kIEJhY2siLCAic2Vjb25kVGFiT2Zmc2V0IjogODAsICJzZWNvbmRUYWJXaWR0aCI6IDY1fSwgIndpZGdldHNfdmFsdWVzIjogWyJwaXhlbF9hcnRfc3R5bGVfel9pbWFnZV90dXJiby5zYWZldGVuc29ycyIsIDFdfV0sICJncm91cHMiOiBbeyJpZCI6IDIsICJ0aXRsZSI6ICJTdGVwMiAtIEltYWdlIHNpemUiLCAiYm91bmRpbmciOiBbMTAwLCA1NjAsIDI5MCwgMjAwXSwgImNvbG9yIjogIiMzZjc4OWUiLCAiZm9udF9zaXplIjogMjQsICJmbGFncyI6IHt9fSwgeyJpZCI6IDMsICJ0aXRsZSI6ICJTdGVwMyAtIFByb21wdCIsICJib3VuZGluZyI6IFs0MTAsIDEzMCwgNDUwLCA1NDBdLCAiY29sb3IiOiAiIzNmNzg5ZSIsICJmb250X3NpemUiOiAyNCwgImZsYWdzIjoge319LCB7ImlkIjogNCwgInRpdGxlIjogIlN0ZXAxIC0gTG9hZCBtb2RlbHMiLCAiYm91bmRpbmciOiBbMTAwLCAxMzAsIDI5MCwgNDEzLjZdLCAiY29sb3IiOiAiIzNmNzg5ZSIsICJmb250X3NpemUiOiAyNCwgImZsYWdzIjoge319XSwgImxpbmtzIjogW3siaWQiOiAzMiwgIm9yaWdpbl9pZCI6IDI3LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMzMsICJ0YXJnZXRfc2xvdCI6IDAsICJ0eXBlIjogIkNPTkRJVElPTklORyJ9LCB7ImlkIjogMTQsICJvcmlnaW5faWQiOiAzLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogOCwgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiTEFURU5UIn0sIHsiaWQiOiAyNywgIm9yaWdpbl9pZCI6IDI5LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogOCwgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiVkFFIn0sIHsiaWQiOiAxMywgIm9yaWdpbl9pZCI6IDExLCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogMywgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiTU9ERUwifSwgeyJpZCI6IDMwLCAib3JpZ2luX2lkIjogMjcsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAzLCAidGFyZ2V0X3Nsb3QiOiAxLCAidHlwZSI6ICJDT05ESVRJT05JTkcifSwgeyJpZCI6IDMzLCAib3JpZ2luX2lkIjogMzMsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAzLCAidGFyZ2V0X3Nsb3QiOiAyLCAidHlwZSI6ICJDT05ESVRJT05JTkcifSwgeyJpZCI6IDE3LCAib3JpZ2luX2lkIjogMTMsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAzLCAidGFyZ2V0X3Nsb3QiOiAzLCAidHlwZSI6ICJMQVRFTlQifSwgeyJpZCI6IDI4LCAib3JpZ2luX2lkIjogMzAsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAyNywgInRhcmdldF9zbG90IjogMCwgInR5cGUiOiAiQ0xJUCJ9LCB7ImlkIjogMTYsICJvcmlnaW5faWQiOiA4LCAib3JpZ2luX3Nsb3QiOiAwLCAidGFyZ2V0X2lkIjogLTIwLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJJTUFHRSJ9LCB7ImlkIjogMzQsICJvcmlnaW5faWQiOiAtMTAsICJvcmlnaW5fc2xvdCI6IDAsICJ0YXJnZXRfaWQiOiAyNywgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiU1RSSU5HIn0sIHsiaWQiOiAzNSwgIm9yaWdpbl9pZCI6IC0xMCwgIm9yaWdpbl9zbG90IjogMSwgInRhcmdldF9pZCI6IDEzLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJJTlQifSwgeyJpZCI6IDM2LCAib3JpZ2luX2lkIjogLTEwLCAib3JpZ2luX3Nsb3QiOiAyLCAidGFyZ2V0X2lkIjogMTMsICJ0YXJnZXRfc2xvdCI6IDEsICJ0eXBlIjogIklOVCJ9LCB7ImlkIjogMzgsICJvcmlnaW5faWQiOiAyOCwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDM1LCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJNT0RFTCJ9LCB7ImlkIjogMzksICJvcmlnaW5faWQiOiAzNSwgIm9yaWdpbl9zbG90IjogMCwgInRhcmdldF9pZCI6IDExLCAidGFyZ2V0X3Nsb3QiOiAwLCAidHlwZSI6ICJNT0RFTCJ9LCB7ImlkIjogNDAsICJvcmlnaW5faWQiOiAtMTAsICJvcmlnaW5fc2xvdCI6IDMsICJ0YXJnZXRfaWQiOiAzNSwgInRhcmdldF9zbG90IjogMSwgInR5cGUiOiAiQ09NQk8ifSwgeyJpZCI6IDQxLCAib3JpZ2luX2lkIjogLTEwLCAib3JpZ2luX3Nsb3QiOiA0LCAidGFyZ2V0X2lkIjogMzUsICJ0YXJnZXRfc2xvdCI6IDIsICJ0eXBlIjogIkZMT0FUIn1dLCAiZXh0cmEiOiB7IndvcmtmbG93UmVuZGVyZXJWZXJzaW9uIjogIkxHIn19XX0sICJjb25maWciOiB7fSwgImV4dHJhIjogeyJkcyI6IHsic2NhbGUiOiAxLjU4ODA5NjA1MjM2NDg4MDgsICJvZmZzZXQiOiBbMi45Mjg3Mzg3Mzg5MjI0MDM4LCAxNzYuMjc3MTA3NTUzMzUyMDRdfSwgImZyb250ZW5kVmVyc2lvbiI6ICIxLjM4LjEzIiwgIndvcmtmbG93UmVuZGVyZXJWZXJzaW9uIjogIkxHIiwgIlZIU19sYXRlbnRwcmV2aWV3IjogZmFsc2UsICJWSFNfbGF0ZW50cHJldmlld3JhdGUiOiAwLCAiVkhTX01ldGFkYXRhSW1hZ2UiOiB0cnVlLCAiVkhTX0tlZXBJbnRlcm1lZGlhdGUiOiB0cnVlLCAibWpyX3Byb2plY3QiOiB7InByb2plY3RfaWQiOiAiMjYwMV90ZXN0IiwgInByb2plY3RfZm9sZGVyIjogIjI2MDFfVEVTVCIsICJ0ZW1wbGF0ZSI6ICJ7QkFTRX0ve01FRElBfS97REFURX0ve05BTUV9L3tNT0RFTH0iLCAidXBkYXRlZF9hdCI6ICIyMDI2LTAyLTA3VDIyOjAyOjAyLjgwOVoifX0sICJ2ZXJzaW9uIjogMC40LCAic2VlZF93aWRnZXRzIjoge319huYaFwABAABJREFUeF5c/QmWa0mONgnSSHp2r7c20EvpXf6nMpxDHYgI9DLKPPOFGXkHVSjwYVTo3/////d/Pb/v7+12u31vf7f7/f53+/vevvf7/fv5fr/f++N++86vf7e/29/ffPT9/s3PfP79fua3uev2/rxut9sf/89n98/3c/v7+3w+t+/3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", import.meta.url).href;
} catch {
return "";
}
})();
-function cs(e) {
+function ds(e) {
var t;
try {
e != null && e._mjrFilmstripReleaseTimer && (clearTimeout(e._mjrFilmstripReleaseTimer), e._mjrFilmstripReleaseTimer = null);
@@ -19637,7 +19652,7 @@ function cs(e) {
(t = console.debug) == null || t.call(console, n);
}
}
-function Ou(e) {
+function Ju(e) {
var n;
if (!e) return;
const t = String(e.dataset.lazySrc || "").trim();
@@ -19648,7 +19663,7 @@ function Ou(e) {
(n = console.debug) == null || n.call(console, i);
}
}
-function Wc(e) {
+function wc(e) {
var t, n;
if (e)
try {
@@ -19659,7 +19674,7 @@ function Wc(e) {
(n = console.debug) == null || n.call(console, i);
}
}
-function nb(e) {
+function ib(e) {
var t, n;
if (e)
try {
@@ -19668,10 +19683,10 @@ function nb(e) {
(n = console.debug) == null || n.call(console, i);
}
}
-function Bl(e, { releaseSrc: t = !0 } = {}) {
+function Ul(e, { releaseSrc: t = !0 } = {}) {
var n, i;
if (e) {
- cs(e), nb(e);
+ ds(e), ib(e);
try {
e._mjrFilmstripInView = !1;
} catch (o) {
@@ -19685,11 +19700,11 @@ function Bl(e, { releaseSrc: t = !0 } = {}) {
}
}
}
-function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
+function oW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
const o = document.createElement("div");
o.className = "mjr-filmstrip", o.style.cssText = `
width: 100%;
- height: ${QA}px;
+ height: ${eW}px;
overflow-x: auto;
overflow-y: hidden;
background: linear-gradient(180deg, rgba(16, 20, 27, 0.82), rgba(10, 13, 18, 0.92));
@@ -19717,105 +19732,105 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
const u = () => {
try {
return new IntersectionObserver(
- (x) => {
- var V, R;
- const w = o.style.display !== "none", X = !document.hidden;
- for (const j of x) {
- const L = j.target;
- if (!(L instanceof HTMLVideoElement)) continue;
- const N = j.isIntersecting || j.intersectionRatio > 0;
+ (v) => {
+ var Y, F;
+ const w = o.style.display !== "none", R = !document.hidden;
+ for (const N of v) {
+ const V = N.target;
+ if (!(V instanceof HTMLVideoElement)) continue;
+ const k = N.isIntersecting || N.intersectionRatio > 0;
try {
- L._mjrFilmstripInView = N;
- } catch (O) {
- (V = console.debug) == null || V.call(console, O);
+ V._mjrFilmstripInView = k;
+ } catch (z) {
+ (Y = console.debug) == null || Y.call(console, z);
}
- if (N && (cs(L), Ou(L)), N && j.intersectionRatio >= Fu && w && X ? Wc(L) : nb(L), !N) {
- cs(L);
+ if (k && (ds(V), Ju(V)), k && N.intersectionRatio >= zu && w && R ? wc(V) : ib(V), !k) {
+ ds(V);
try {
- L._mjrFilmstripReleaseTimer = setTimeout(() => {
- var O;
+ V._mjrFilmstripReleaseTimer = setTimeout(() => {
+ var z;
try {
- if (!L.isConnected) {
- Bl(L, { releaseSrc: !0 });
+ if (!V.isConnected) {
+ Ul(V, { releaseSrc: !0 });
return;
}
- L._mjrFilmstripInView || Bl(L, { releaseSrc: !0 });
+ V._mjrFilmstripInView || Ul(V, { releaseSrc: !0 });
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
- }, $A);
- } catch (O) {
- (R = console.debug) == null || R.call(console, O);
+ }, nW);
+ } catch (z) {
+ (F = console.debug) == null || F.call(console, z);
}
}
}
},
{
root: o,
- rootMargin: _A,
- threshold: [0, Fu]
+ rootMargin: tW,
+ threshold: [0, zu]
}
);
} catch {
return null;
}
- }, I = (x) => {
- var w, X, V;
- if (x) {
+ }, I = (v) => {
+ var w, R, Y;
+ if (v) {
try {
- x._mjrFilmstripInView = !1;
- } catch (R) {
- (w = console.debug) == null || w.call(console, R);
+ v._mjrFilmstripInView = !1;
+ } catch (F) {
+ (w = console.debug) == null || w.call(console, F);
}
- c.add(x);
+ c.add(v);
try {
- a || (a = u()), (X = a == null ? void 0 : a.observe) == null || X.call(a, x);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ a || (a = u()), (R = a == null ? void 0 : a.observe) == null || R.call(a, v);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
}
- }, p = ({ releaseSrc: x = !1 } = {}) => {
+ }, p = ({ releaseSrc: v = !1 } = {}) => {
for (const w of Array.from(c))
- Bl(w, { releaseSrc: x });
- }, M = () => {
- var x;
+ Ul(w, { releaseSrc: v });
+ }, S = () => {
+ var v;
for (const w of Array.from(c))
try {
if (!(w != null && w._mjrFilmstripInView) || !(w != null && w.isConnected)) continue;
- Ou(w), Wc(w);
- } catch (X) {
- (x = console.debug) == null || x.call(console, X);
+ Ju(w), wc(w);
+ } catch (R) {
+ (v = console.debug) == null || v.call(console, R);
}
- }, Z = ({ releaseSrc: x = !0 } = {}) => {
- var w, X;
+ }, A = ({ releaseSrc: v = !0 } = {}) => {
+ var w, R;
try {
(w = a == null ? void 0 : a.disconnect) == null || w.call(a);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
- a = null, p({ releaseSrc: x }), c.clear();
- }, A = () => {
- var x, w;
+ a = null, p({ releaseSrc: v }), c.clear();
+ }, C = () => {
+ var v, w;
try {
- return !!((w = (x = window == null ? void 0 : window.matchMedia) == null ? void 0 : x.call(window, "(prefers-reduced-motion: reduce)")) != null && w.matches);
+ return !!((w = (v = window == null ? void 0 : window.matchMedia) == null ? void 0 : v.call(window, "(prefers-reduced-motion: reduce)")) != null && w.matches);
} catch {
return !1;
}
- }, g = (x, w = 1.08) => {
- var X, V, R, j;
- if (!(!x || A())) {
+ }, g = (v, w = 1.08) => {
+ var R, Y, F, N;
+ if (!(!v || C())) {
try {
- (V = (X = x._mjrFilmstripBounce) == null ? void 0 : X.cancel) == null || V.call(X);
- } catch (L) {
- (R = console.debug) == null || R.call(console, L);
+ (Y = (R = v._mjrFilmstripBounce) == null ? void 0 : R.cancel) == null || Y.call(R);
+ } catch (V) {
+ (F = console.debug) == null || F.call(console, V);
}
try {
- if (typeof x.animate != "function") return;
- const L = Math.min(1.18, w + 0.07), N = Math.max(1, w - 0.03), q = x.animate(
+ if (typeof v.animate != "function") return;
+ const V = Math.min(1.18, w + 0.07), k = Math.max(1, w - 0.03), K = v.animate(
[
{ transform: `scale(${w})` },
- { transform: `scale(${L})` },
- { transform: `scale(${N})` },
+ { transform: `scale(${V})` },
+ { transform: `scale(${k})` },
{ transform: `scale(${w})` }
],
{
@@ -19823,25 +19838,25 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
easing: "cubic-bezier(0.22, 0.9, 0.32, 1.15)"
}
);
- x._mjrFilmstripBounce = q, q.onfinish = () => {
- var O;
+ v._mjrFilmstripBounce = K, K.onfinish = () => {
+ var z;
try {
- x._mjrFilmstripBounce === q && (x._mjrFilmstripBounce = null);
+ v._mjrFilmstripBounce === K && (v._mjrFilmstripBounce = null);
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
};
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
}
- }, h = (x, w) => {
- var j;
- const X = document.createElement("div");
- X.className = "mjr-filmstrip-item", X.dataset.fidx = String(w), X.style.cssText = `
+ }, Z = (v, w) => {
+ var N;
+ const R = document.createElement("div");
+ R.className = "mjr-filmstrip-item", R.dataset.fidx = String(w), R.style.cssText = `
position: relative;
- width: ${qA}px;
- height: ${PA}px;
+ width: ${_A}px;
+ height: ${$A}px;
border-radius: 14px;
overflow: hidden;
cursor: pointer;
@@ -19853,10 +19868,10 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
transform: scale(1);
transition: border-color 0.16s ease, opacity 0.16s ease, transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
`;
- const V = String((x == null ? void 0 : x.kind) || "").toLowerCase(), R = t(x);
- if (R && V === "video") {
- const L = document.createElement("video");
- L.className = "mjr-filmstrip-thumb", L.muted = !0, L.loop = !0, L.autoplay = !0, L.controls = !1, L.playsInline = !0, L.preload = "none", L.dataset.lazySrc = R, L.style.cssText = `
+ const Y = String((v == null ? void 0 : v.kind) || "").toLowerCase(), F = t(v);
+ if (F && Y === "video") {
+ const V = document.createElement("video");
+ V.className = "mjr-filmstrip-thumb", V.muted = !0, V.loop = !0, V.autoplay = !0, V.controls = !1, V.playsInline = !0, V.preload = "none", V.dataset.lazySrc = F, V.style.cssText = `
width: 100%;
height: 100%;
object-fit: cover;
@@ -19864,125 +19879,125 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
pointer-events: none;
`;
try {
- L.disablePictureInPicture = !0;
- } catch (N) {
- (j = console.debug) == null || j.call(console, N);
+ V.disablePictureInPicture = !0;
+ } catch (k) {
+ (N = console.debug) == null || N.call(console, k);
}
- return L.addEventListener(
+ return V.addEventListener(
"loadeddata",
() => {
- var N;
+ var k;
try {
- L._mjrFilmstripInView && o.style.display !== "none" && !document.hidden && Wc(L);
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ V._mjrFilmstripInView && o.style.display !== "none" && !document.hidden && wc(V);
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
},
{ passive: !0 }
- ), L.addEventListener(
+ ), V.addEventListener(
"error",
() => {
- var N;
+ var k;
try {
- L.style.display = "none";
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ V.style.display = "none";
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
- Bl(L, { releaseSrc: !0 }), f(X);
+ Ul(V, { releaseSrc: !0 }), f(R);
},
{ once: !0 }
- ), X.appendChild(L), C(X), I(L), X;
+ ), R.appendChild(V), h(R), I(V), R;
}
- if (V === "audio") {
- const L = String(
- (x == null ? void 0 : x.thumbnail_url) || (x == null ? void 0 : x.thumb_url) || eW || ""
+ if (Y === "audio") {
+ const V = String(
+ (v == null ? void 0 : v.thumbnail_url) || (v == null ? void 0 : v.thumb_url) || iW || ""
).trim();
- if (L) {
- const N = document.createElement("img");
- N.className = "mjr-filmstrip-thumb", N.loading = "lazy", N.decoding = "async", N.src = L, N.alt = String((x == null ? void 0 : x.filename) || "Audio"), N.draggable = !1, N.style.cssText = `
+ if (V) {
+ const k = document.createElement("img");
+ k.className = "mjr-filmstrip-thumb", k.loading = "lazy", k.decoding = "async", k.src = V, k.alt = String((v == null ? void 0 : v.filename) || "Audio"), k.draggable = !1, k.style.cssText = `
width: 100%;
height: 100%;
object-fit: cover;
display: block;
pointer-events: none;
- `, N.addEventListener(
+ `, k.addEventListener(
"error",
() => {
- var q;
+ var K;
try {
- N.style.display = "none";
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ k.style.display = "none";
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
- b(X);
+ b(R);
},
{ once: !0 }
- ), X.appendChild(N);
+ ), R.appendChild(k);
} else
- b(X);
- return y(X), X;
+ b(R);
+ return y(R), R;
}
- if (V === "model3d") {
- const L = (() => {
+ if (Y === "model3d") {
+ const V = (() => {
try {
- const N = String((x == null ? void 0 : x.filename) || "").trim();
- if (!N) return "";
- const q = N + ".png", O = String((x == null ? void 0 : x.subfolder) || "").trim(), B = String((x == null ? void 0 : x.type) || "output").trim();
- return x != null && x.root_id ? t({ ...x, filename: q, kind: "image" }) : dl(q, O || null, B);
+ const k = String((v == null ? void 0 : v.filename) || "").trim();
+ if (!k) return "";
+ const K = k + ".png", z = String((v == null ? void 0 : v.subfolder) || "").trim(), B = String((v == null ? void 0 : v.type) || "output").trim();
+ return v != null && v.root_id ? t({ ...v, filename: K, kind: "image" }) : ul(K, z || null, B);
} catch {
return "";
}
})();
- if (L) {
- const N = document.createElement("img");
- N.className = "mjr-filmstrip-thumb", N.loading = "lazy", N.decoding = "async", N.src = L, N.alt = String((x == null ? void 0 : x.filename) || "3D Model"), N.draggable = !1, N.style.cssText = `
+ if (V) {
+ const k = document.createElement("img");
+ k.className = "mjr-filmstrip-thumb", k.loading = "lazy", k.decoding = "async", k.src = V, k.alt = String((v == null ? void 0 : v.filename) || "3D Model"), k.draggable = !1, k.style.cssText = `
width: 100%;
height: 100%;
object-fit: cover;
display: block;
pointer-events: none;
- `, N.addEventListener(
+ `, k.addEventListener(
"error",
() => {
- var q;
+ var K;
try {
- N.style.display = "none";
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ k.style.display = "none";
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
- S(X);
+ G(R);
},
{ once: !0 }
- ), X.appendChild(N);
+ ), R.appendChild(k);
} else
- S(X);
- return W(X), X;
+ G(R);
+ return W(R), R;
}
- if (R) {
- const L = document.createElement("img");
- return L.className = "mjr-filmstrip-thumb", L.loading = "lazy", L.decoding = "async", L.src = R, L.style.cssText = `
+ if (F) {
+ const V = document.createElement("img");
+ return V.className = "mjr-filmstrip-thumb", V.loading = "lazy", V.decoding = "async", V.src = F, V.style.cssText = `
width: 100%;
height: 100%;
object-fit: cover;
display: block;
pointer-events: none;
- `, L.addEventListener(
+ `, V.addEventListener(
"error",
() => {
- var N;
+ var k;
try {
- L.style.display = "none";
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ V.style.display = "none";
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
},
{ once: !0 }
- ), X.appendChild(L), X;
+ ), R.appendChild(V), R;
}
- return v(X), X;
+ return L(R), R;
};
- function f(x) {
- var X;
+ function f(v) {
+ var R;
const w = document.createElement("div");
w.style.cssText = `
position: absolute; inset: 0;
@@ -19993,13 +20008,13 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
letter-spacing: 0.04em;
`, w.textContent = "VIDEO";
try {
- x.appendChild(w);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ v.appendChild(w);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
- function b(x) {
- var X;
+ function b(v) {
+ var R;
const w = document.createElement("div");
w.style.cssText = `
position: absolute; inset: 0;
@@ -20010,13 +20025,13 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
letter-spacing: 0.04em;
`, w.textContent = "AUDIO";
try {
- x.appendChild(w);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ v.appendChild(w);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
- function v(x) {
- var X;
+ function L(v) {
+ var R;
const w = document.createElement("div");
w.style.cssText = `
position: absolute; inset: 0;
@@ -20025,12 +20040,12 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
pointer-events: none;
`, w.textContent = "?";
try {
- x.appendChild(w);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ v.appendChild(w);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
- function C(x) {
+ function h(v) {
const w = document.createElement("div");
w.style.cssText = `
position: absolute; bottom: 2px; right: 2px;
@@ -20039,10 +20054,10 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
padding: 2px 3px; border-radius: 2px;
pointer-events: none;
letter-spacing: 0.02em;
- `, w.textContent = "VID", x.appendChild(w);
+ `, w.textContent = "VID", v.appendChild(w);
}
- function S(x) {
- var X;
+ function G(v) {
+ var R;
const w = document.createElement("div");
w.style.cssText = `
position: absolute; inset: 0;
@@ -20053,12 +20068,12 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
letter-spacing: 0.04em;
`, w.textContent = "3D";
try {
- x.appendChild(w);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ v.appendChild(w);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
- function W(x) {
+ function W(v) {
const w = document.createElement("div");
w.style.cssText = `
position: absolute; bottom: 2px; right: 2px;
@@ -20068,9 +20083,9 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
pointer-events: none;
letter-spacing: 0.02em;
font-weight: 700;
- `, w.textContent = "3D", x.appendChild(w);
+ `, w.textContent = "3D", v.appendChild(w);
}
- function y(x) {
+ function y(v) {
const w = document.createElement("div");
w.style.cssText = `
position: absolute; bottom: 2px; right: 2px;
@@ -20079,89 +20094,89 @@ function tW({ state: e, buildAssetViewURL: t, onNavigate: n, onCompare: i }) {
padding: 2px 3px; border-radius: 2px;
pointer-events: none;
letter-spacing: 0.02em;
- `, w.textContent = "AUD", x.appendChild(w);
+ `, w.textContent = "AUD", v.appendChild(w);
}
- const k = () => {
- Z({ releaseSrc: !0 }), r.innerHTML = "", l = [];
- const x = Array.isArray(e.assets) ? e.assets : [];
- if (x.length < 2) {
+ const X = () => {
+ A({ releaseSrc: !0 }), r.innerHTML = "", l = [];
+ const v = Array.isArray(e.assets) ? e.assets : [];
+ if (v.length < 2) {
o.style.display = "none";
return;
}
o.style.display = "";
- for (let w = 0; w < x.length; w++) {
- const X = h(x[w], w);
- r.appendChild(X), l.push(X);
+ for (let w = 0; w < v.length; w++) {
+ const R = Z(v[w], w);
+ r.appendChild(R), l.push(R);
}
- z(!1);
- }, G = (x = {}) => {
- const w = x.isSingle !== !1, X = i != null && e.compareAsset != null, V = Array.isArray(e.assets) ? e.assets : [];
- if (!w && !X || V.length < 2) {
+ T(!1);
+ }, x = (v = {}) => {
+ const w = v.isSingle !== !1, R = i != null && e.compareAsset != null, Y = Array.isArray(e.assets) ? e.assets : [];
+ if (!w && !R || Y.length < 2) {
o.style.display = "none", p({ releaseSrc: !1 });
return;
}
- o.style.display = "", M(), z(!0);
+ o.style.display = "", S(), T(!0);
};
- function z(x) {
- var R;
+ function T(v) {
+ var F;
const w = Number(e.currentIndex) || 0;
- let X = -1;
- i && e.compareAsset != null && (X = (Array.isArray(e.assets) ? e.assets : []).indexOf(e.compareAsset));
- for (let j = 0; j < l.length; j++)
- j === w ? (l[j].style.borderColor = "rgba(255, 255, 255, 0.98)", l[j].style.opacity = "1", l[j].style.transform = "scale(1.08)", l[j].style.filter = "saturate(1.12) brightness(1.08)", l[j].style.boxShadow = "0 0 0 1px rgba(255,255,255,0.45), 0 0 18px rgba(160,220,255,0.38), 0 8px 16px rgba(0,0,0,0.38)") : j === X ? (l[j].style.borderColor = "rgba(120, 186, 255, 0.98)", l[j].style.opacity = "0.96", l[j].style.transform = "scale(1.04)", l[j].style.filter = "saturate(1.07) brightness(1.03)", l[j].style.boxShadow = "0 0 0 1px rgba(120,186,255,0.38), 0 0 14px rgba(120,186,255,0.32), 0 6px 14px rgba(0,0,0,0.32)") : (l[j].style.borderColor = "transparent", l[j].style.opacity = "0.5", l[j].style.transform = "scale(1)", l[j].style.filter = "none", l[j].style.boxShadow = "none");
- w !== s && l[w] && g(l[w], 1.08), X >= 0 && X !== d && l[X] && g(l[X], 1.04), s = w, d = X;
- const V = l[w];
- if (V)
+ let R = -1;
+ i && e.compareAsset != null && (R = (Array.isArray(e.assets) ? e.assets : []).indexOf(e.compareAsset));
+ for (let N = 0; N < l.length; N++)
+ N === w ? (l[N].style.borderColor = "rgba(255, 255, 255, 0.98)", l[N].style.opacity = "1", l[N].style.transform = "scale(1.08)", l[N].style.filter = "saturate(1.12) brightness(1.08)", l[N].style.boxShadow = "0 0 0 1px rgba(255,255,255,0.45), 0 0 18px rgba(160,220,255,0.38), 0 8px 16px rgba(0,0,0,0.38)") : N === R ? (l[N].style.borderColor = "rgba(120, 186, 255, 0.98)", l[N].style.opacity = "0.96", l[N].style.transform = "scale(1.04)", l[N].style.filter = "saturate(1.07) brightness(1.03)", l[N].style.boxShadow = "0 0 0 1px rgba(120,186,255,0.38), 0 0 14px rgba(120,186,255,0.32), 0 6px 14px rgba(0,0,0,0.32)") : (l[N].style.borderColor = "transparent", l[N].style.opacity = "0.5", l[N].style.transform = "scale(1)", l[N].style.filter = "none", l[N].style.boxShadow = "none");
+ w !== s && l[w] && g(l[w], 1.08), R >= 0 && R !== d && l[R] && g(l[R], 1.04), s = w, d = R;
+ const Y = l[w];
+ if (Y)
try {
- V.scrollIntoView({
- behavior: x ? "smooth" : "instant",
+ Y.scrollIntoView({
+ behavior: v ? "smooth" : "instant",
block: "nearest",
inline: "center"
});
} catch {
try {
- const j = V.offsetLeft - o.clientWidth / 2 + V.offsetWidth / 2;
+ const N = Y.offsetLeft - o.clientWidth / 2 + Y.offsetWidth / 2;
o.scrollTo({
- left: Math.max(0, j),
- behavior: x ? "smooth" : "instant"
+ left: Math.max(0, N),
+ behavior: v ? "smooth" : "instant"
});
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
}
}
return o.addEventListener(
"click",
- (x) => {
+ (v) => {
var w;
try {
- x.stopPropagation();
- const X = x.target.closest("[data-fidx]");
- if (!X) return;
- const V = Number(X.dataset.fidx);
- if (!Number.isFinite(V) || V < 0) return;
- const R = Array.isArray(e.assets) ? e.assets : [];
- if (V >= R.length) return;
- i && (x.ctrlKey || x.metaKey) ? i(V) : n(V);
- } catch (X) {
- (w = console.debug) == null || w.call(console, X);
+ v.stopPropagation();
+ const R = v.target.closest("[data-fidx]");
+ if (!R) return;
+ const Y = Number(R.dataset.fidx);
+ if (!Number.isFinite(Y) || Y < 0) return;
+ const F = Array.isArray(e.assets) ? e.assets : [];
+ if (Y >= F.length) return;
+ i && (v.ctrlKey || v.metaKey) ? i(Y) : n(Y);
+ } catch (R) {
+ (w = console.debug) == null || w.call(console, R);
}
},
!0
), o.addEventListener(
"wheel",
- (x) => {
+ (v) => {
var w;
try {
- x.stopPropagation();
- } catch (X) {
- (w = console.debug) == null || w.call(console, X);
+ v.stopPropagation();
+ } catch (R) {
+ (w = console.debug) == null || w.call(console, R);
}
},
{ passive: !0, capture: !0 }
- ), { el: o, rebuild: k, sync: G };
+ ), { el: o, rebuild: X, sync: x };
}
-function nW() {
+function rW() {
const e = document.createElement("div");
return e.className = "mjr-viewer-overlay mjr-assets-manager", e.style.cssText = `
position: fixed;
@@ -20178,7 +20193,7 @@ function nW() {
overflow: hidden;
`, e.tabIndex = -1, e.setAttribute("role", "dialog"), e;
}
-function iW({
+function lW({
state: e,
buildAssetViewURL: t,
onNavigate: n,
@@ -20272,13 +20287,13 @@ function iW({
`;
const p = document.createElement("canvas");
p.width = 120, p.height = 120, p.style.cssText = "width:100%; height:100%; display:block; image-rendering: pixelated;", I.appendChild(p), s.appendChild(d), s.appendChild(u), s.appendChild(I), r.appendChild(s);
- const M = document.createElement("div");
- M.className = "mjr-viewer-geninfo mjr-viewer-geninfo--right", M.style.cssText = `
+ const S = document.createElement("div");
+ S.className = "mjr-viewer-geninfo mjr-viewer-geninfo--right", S.style.cssText = `
position: absolute;
top: 16px;
right: 16px;
bottom: 16px;
- width: ${ka};
+ width: ${Xa};
display: none;
flex-direction: column;
overflow: hidden;
@@ -20288,8 +20303,8 @@ function iW({
backdrop-filter: blur(10px);
z-index: 10001;
`;
- const Z = document.createElement("div");
- Z.style.cssText = `
+ const A = document.createElement("div");
+ A.style.cssText = `
display: flex;
align-items: center;
justify-content: space-between;
@@ -20298,22 +20313,22 @@ function iW({
border-bottom: 1px solid rgba(255,255,255,0.10);
color: rgba(255,255,255,0.92);
`;
- const A = document.createElement("div");
- A.textContent = "Generation Info", A.style.cssText = "font-size: 13px; font-weight: 600;", Z.appendChild(A);
+ const C = document.createElement("div");
+ C.textContent = "Generation Info", C.style.cssText = "font-size: 13px; font-weight: 600;", A.appendChild(C);
const g = document.createElement("div");
g.style.cssText = `
flex: 1;
overflow: auto;
padding: 14px;
color: rgba(255,255,255,0.92);
- `, M.appendChild(Z), M.appendChild(g);
- const h = document.createElement("div");
- h.className = "mjr-viewer-geninfo mjr-viewer-geninfo--left", h.style.cssText = `
+ `, S.appendChild(A), S.appendChild(g);
+ const Z = document.createElement("div");
+ Z.className = "mjr-viewer-geninfo mjr-viewer-geninfo--left", Z.style.cssText = `
position: absolute;
top: 16px;
left: 16px;
bottom: 16px;
- width: ${ka};
+ width: ${Xa};
display: none;
flex-direction: column;
overflow: hidden;
@@ -20323,19 +20338,19 @@ function iW({
backdrop-filter: blur(10px);
z-index: 10001;
`;
- const f = Z.cloneNode(!0);
+ const f = A.cloneNode(!0);
f.replaceChildren();
const b = document.createElement("div");
b.textContent = "Generation Info (A)", b.style.cssText = "font-size: 13px; font-weight: 600;", f.appendChild(b);
- const v = document.createElement("div");
- v.style.cssText = `
+ const L = document.createElement("div");
+ L.style.cssText = `
flex: 1;
overflow: auto;
padding: 14px;
color: rgba(255,255,255,0.92);
- `, h.appendChild(f), h.appendChild(v), o.appendChild(r);
- const C = document.createElement("div");
- C.className = "mjr-viewer-footer", C.style.cssText = `
+ `, Z.appendChild(f), Z.appendChild(L), o.appendChild(r);
+ const h = document.createElement("div");
+ h.className = "mjr-viewer-footer", h.style.cssText = `
display: flex;
justify-content: space-between;
align-items: center;
@@ -20346,17 +20361,17 @@ function iW({
gap: 14px 20px;
flex-wrap: wrap;
`;
- const S = yl("<", "Previous (Left Arrow)");
- S.classList.add("mjr-viewer-nav-btn", "mjr-viewer-nav-btn--prev"), S.style.fontSize = "24px";
+ const G = fl("<", "Previous (Left Arrow)");
+ G.classList.add("mjr-viewer-nav-btn", "mjr-viewer-nav-btn--prev"), G.style.fontSize = "24px";
const W = document.createElement("span");
W.className = "mjr-viewer-index", W.style.cssText = "font-size: 14px; font-weight: 500;";
- const y = yl(">", "Next (Right Arrow)");
+ const y = fl(">", "Next (Right Arrow)");
y.classList.add("mjr-viewer-nav-btn", "mjr-viewer-nav-btn--next"), y.style.fontSize = "24px";
- const k = document.createElement("div");
- k.className = "mjr-viewer-nav", k.style.cssText = "display:flex; align-items:center; gap:20px;", k.appendChild(S), k.appendChild(W), k.appendChild(y);
- const G = document.createElement("div");
- G.className = "mjr-viewer-playerbar", G.style.cssText = "display:none; width: 100%;", C.appendChild(k), C.appendChild(G);
- const z = tW({
+ const X = document.createElement("div");
+ X.className = "mjr-viewer-nav", X.style.cssText = "display:flex; align-items:center; gap:20px;", X.appendChild(G), X.appendChild(W), X.appendChild(y);
+ const x = document.createElement("div");
+ x.className = "mjr-viewer-playerbar", x.style.cssText = "display:none; width: 100%;", h.appendChild(X), h.appendChild(x);
+ const T = oW({
state: e,
buildAssetViewURL: t,
onNavigate: n,
@@ -20373,22 +20388,22 @@ function iW({
probeTooltip: u,
loupeWrap: I,
loupeCanvas: p,
- genInfoOverlay: M,
- genInfoTitle: A,
+ genInfoOverlay: S,
+ genInfoTitle: C,
genInfoBody: g,
- genInfoOverlayLeft: h,
+ genInfoOverlayLeft: Z,
genInfoTitleLeft: b,
- genInfoBodyLeft: v,
- footer: C,
- prevBtn: S,
+ genInfoBodyLeft: L,
+ footer: h,
+ prevBtn: G,
indexInfo: W,
nextBtn: y,
- navBar: k,
- playerBarHost: G,
- filmstrip: z
+ navBar: X,
+ playerBarHost: x,
+ filmstrip: T
};
}
-function ri(e, t) {
+function li(e, t) {
var n;
if (!t) return null;
try {
@@ -20403,7 +20418,7 @@ function ri(e, t) {
}
return null;
}
-function oW(e) {
+function aW(e) {
var n;
const t = String(e ?? "");
try {
@@ -20413,7 +20428,7 @@ function oW(e) {
}
return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
-function rW({ overlay: e, requestClose: t }) {
+function cW({ overlay: e, requestClose: t }) {
var n;
try {
let i = null;
@@ -20432,7 +20447,7 @@ function rW({ overlay: e, requestClose: t }) {
if (Math.hypot(a, c) > 6 || Date.now() - i.t > 600) return;
}
const l = o.target;
- if (ri(l, ".mjr-viewer-header") || ri(l, ".mjr-viewer-footer") || ri(l, ".mjr-viewer-geninfo") || ri(l, ".mjr-video-controls") || ri(l, ".mjr-context-menu") || ri(l, ".mjr-ab-slider") || ri(l, ".mjr-viewer-loupe") || ri(l, ".mjr-viewer-probe") || ri(l, ".mjr-viewer-media") || l && (l.tagName === "IMG" || l.tagName === "VIDEO" || l.tagName === "CANVAS"))
+ if (li(l, ".mjr-viewer-header") || li(l, ".mjr-viewer-footer") || li(l, ".mjr-viewer-geninfo") || li(l, ".mjr-video-controls") || li(l, ".mjr-context-menu") || li(l, ".mjr-ab-slider") || li(l, ".mjr-viewer-loupe") || li(l, ".mjr-viewer-probe") || li(l, ".mjr-viewer-media") || l && (l.tagName === "IMG" || l.tagName === "VIDEO" || l.tagName === "CANVAS"))
return;
t == null || t();
} catch (l) {
@@ -20443,37 +20458,37 @@ function rW({ overlay: e, requestClose: t }) {
(n = console.debug) == null || n.call(console, i);
}
}
-let Yo = null, Vo = null, ti = null, ko = null, Gi = null, Xa = null;
-function lW() {
- Yo || import("./abCompare-BmccB9jW.js").then((e) => {
- Yo = e;
- }), Vo || import("./sideBySide-D0NSgnSp.js").then((e) => {
- Vo = e;
- }), ti || import("./model3dRenderer-B7QICZEL.js").then((e) => {
- ti = e;
- }), ko || import("./scopes-DzaL48jb.js").then((e) => {
+let ko = null, Xo = null, ti = null, No = null, vi = null, Na = null;
+function sW() {
+ ko || import("./abCompare-BmccB9jW.js").then((e) => {
ko = e;
- }), Gi || import("./genInfo-L1PrRwDk.js").then((e) => {
- Gi = e;
- }), Xa || import("./frameExport-D5sexOhA.js").then((e) => {
- Xa = e;
+ }), Xo || import("./sideBySide-B--hMG3P.js").then((e) => {
+ Xo = e;
+ }), ti || import("./model3dRenderer-CxixV6KF.js").then((e) => {
+ ti = e;
+ }), No || import("./scopes-zVIngGZC.js").then((e) => {
+ No = e;
+ }), vi || import("./genInfo-DPaWrr2W.js").then((e) => {
+ vi = e;
+ }), Na || import("./frameExport-D5sexOhA.js").then((e) => {
+ Na = e;
});
}
-const xt = {
+const jt = {
SINGLE: "single",
AB_COMPARE: "ab",
SIDE_BY_SIDE: "sidebyside"
};
-function aW() {
- var jt, Yt, St, qt, Vn, wn, xn, _t, Yn, pn, Nn;
- lW(), HA();
- const e = nW(), t = $Z(e), n = t.unsubs || [], i = FZ();
- i.mode = xt.SINGLE;
+function dW() {
+ var St, Yt, Gt, Qt, Yn, wn, xn, en, Vn, pn, Nn;
+ sW(), QA();
+ const e = rW(), t = nA(e), n = t.unsubs || [], i = JZ();
+ i.mode = jt.SINGLE;
try {
- const ae = QZ();
+ const ae = eA();
ae && typeof ae == "object" && (typeof ae.analysisMode == "string" && (i.analysisMode = ae.analysisMode || "none"), typeof ae.loupeEnabled == "boolean" && (i.loupeEnabled = ae.loupeEnabled), typeof ae.probeEnabled == "boolean" && (i.probeEnabled = ae.probeEnabled), typeof ae.hudEnabled == "boolean" && (i.hudEnabled = ae.hudEnabled), typeof ae.genInfoOpen == "boolean" && (i.genInfoOpen = ae.genInfoOpen), typeof ae.audioVisualizerMode == "string" && (i.audioVisualizerMode = ae.audioVisualizerMode || "artistic"), typeof ae.abWipePercent == "number" && Number.isFinite(ae.abWipePercent) && ae.abWipePercent >= 0 && ae.abWipePercent <= 100 && (i._abWipePercent = ae.abWipePercent));
} catch (ae) {
- (jt = console.debug) == null || jt.call(console, ae);
+ (St = console.debug) == null || St.call(console, ae);
}
const o = /* @__PURE__ */ new Set([
"png",
@@ -20499,35 +20514,35 @@ function aW() {
}
}
function c() {
- var ae, fe;
+ var ae, he;
try {
(ae = r == null ? void 0 : r.clampPanToBounds) == null || ae.call(r);
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
}
function s() {
- var ae, fe;
+ var ae, he;
try {
(ae = r == null ? void 0 : r.applyTransform) == null || ae.call(r);
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
}
- function d(ae, fe) {
- var je, Ne;
+ function d(ae, he) {
+ var ve, Fe;
try {
- (je = r == null ? void 0 : r.setZoom) == null || je.call(r, ae, fe);
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ (ve = r == null ? void 0 : r.setZoom) == null || ve.call(r, ae, he);
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
}
function u() {
- var ae, fe;
+ var ae, he;
try {
(ae = r == null ? void 0 : r.updatePanCursor) == null || ae.call(r);
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
}
function I() {
@@ -20539,14 +20554,14 @@ function aW() {
}
}
function p(ae) {
- var fe;
+ var he;
try {
- return ((fe = r == null ? void 0 : r.getMediaNaturalSize) == null ? void 0 : fe.call(r, ae)) || { w: 0, h: 0 };
+ return ((he = r == null ? void 0 : r.getMediaNaturalSize) == null ? void 0 : he.call(r, ae)) || { w: 0, h: 0 };
} catch {
return { w: 0, h: 0 };
}
}
- function M() {
+ function S() {
var ae;
try {
return ((ae = r == null ? void 0 : r.getViewportRect) == null ? void 0 : ae.call(r)) || null;
@@ -20554,7 +20569,7 @@ function aW() {
return null;
}
}
- function Z() {
+ function A() {
var ae;
try {
return ((ae = r == null ? void 0 : r.computeOneToOneZoom) == null ? void 0 : ae.call(r)) ?? null;
@@ -20562,50 +20577,50 @@ function aW() {
return null;
}
}
- function A() {
- var ae, fe;
+ function C() {
+ var ae, he;
try {
(ae = r == null ? void 0 : r.updateMediaNaturalSize) == null || ae.call(r);
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
}
- function g(ae, fe) {
- var je;
+ function g(ae, he) {
+ var ve;
try {
- return ((je = l == null ? void 0 : l.createMediaElement) == null ? void 0 : je.call(l, ae, fe)) || document.createElement("div");
+ return ((ve = l == null ? void 0 : l.createMediaElement) == null ? void 0 : ve.call(l, ae, he)) || document.createElement("div");
} catch {
return document.createElement("div");
}
}
- function h(ae, fe) {
- var je;
+ function Z(ae, he) {
+ var ve;
try {
- return ((je = l == null ? void 0 : l.createCompareMediaElement) == null ? void 0 : je.call(l, ae, fe)) || document.createElement("div");
+ return ((ve = l == null ? void 0 : l.createCompareMediaElement) == null ? void 0 : ve.call(l, ae, he)) || document.createElement("div");
} catch {
return document.createElement("div");
}
}
function f() {
- var fe, je, Ne;
+ var he, ve, Fe;
let ae = !1;
try {
- const $e = i.mode === xt.AB_COMPARE ? B : i.mode === xt.SIDE_BY_SIDE ? J : O, et = Array.from(((fe = $e == null ? void 0 : $e.querySelectorAll) == null ? void 0 : fe.call($e, ".mjr-viewer-audio-viz")) || []);
+ const _e = i.mode === jt.AB_COMPARE ? B : i.mode === jt.SIDE_BY_SIDE ? J : z, et = Array.from(((he = _e == null ? void 0 : _e.querySelectorAll) == null ? void 0 : he.call(_e, ".mjr-viewer-audio-viz")) || []);
for (const tt of et)
try {
- const ct = (tt == null ? void 0 : tt._mjrProc) || null;
- if (!(ct != null && ct.setMode)) continue;
- ct.setMode(i.audioVisualizerMode), ae = !0;
- } catch (ct) {
- (je = console.debug) == null || je.call(console, ct);
+ const st = (tt == null ? void 0 : tt._mjrProc) || null;
+ if (!(st != null && st.setMode)) continue;
+ st.setMode(i.audioVisualizerMode), ae = !0;
+ } catch (st) {
+ (ve = console.debug) == null || ve.call(console, st);
}
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
return ae;
}
- let b = null, v = () => qe(), C = document.createElement("div");
- C.className = "mjr-viewer-header", C.style.cssText = `
+ let b = null, L = () => He(), h = document.createElement("div");
+ h.className = "mjr-viewer-header", h.style.cssText = `
display: flex;
flex-direction: column;
gap: 8px;
@@ -20615,55 +20630,55 @@ function aW() {
color: white;
box-sizing: border-box;
`;
- let S = document.createElement("span");
- S.className = "mjr-viewer-filename", S.style.cssText = "font-size: 14px; font-weight: 500; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;";
+ let G = document.createElement("span");
+ G.className = "mjr-viewer-filename", G.style.cssText = "font-size: 14px; font-weight: 500; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;";
let W = document.createElement("div");
W.className = "mjr-viewer-badges", W.style.cssText = "display:flex; gap:8px; align-items:center; flex-wrap:wrap;";
- let y = null, k = null, G = null, z = null, x = null, w = null, X = null, V = null, R = null, j = null, L = null;
+ let y = null, X = null, x = null, T = null, v = null, w = null, R = null, Y = null, F = null, N = null, V = null;
try {
- C.appendChild(S), C.appendChild(W);
+ h.appendChild(G), h.appendChild(W);
} catch (ae) {
(Yt = console.debug) == null || Yt.call(console, ae);
}
try {
- b = oA({
- VIEWER_MODES: xt,
+ b = aA({
+ VIEWER_MODES: jt,
state: i,
lifecycle: t,
getCanAB: () => nt(),
onToggleFullscreen: () => {
- var ae, fe, je;
+ var ae, he, ve;
try {
if (document.fullscreenElement)
try {
document.exitFullscreen();
- } catch (Ne) {
- (fe = console.debug) == null || fe.call(console, Ne);
+ } catch (Fe) {
+ (he = console.debug) == null || he.call(console, Fe);
}
else
try {
e.requestFullscreen();
- } catch (Ne) {
- (ae = console.debug) == null || ae.call(console, Ne);
+ } catch (Fe) {
+ (ae = console.debug) == null || ae.call(console, Fe);
}
- } catch (Ne) {
- (je = console.debug) == null || je.call(console, Ne);
+ } catch (Fe) {
+ (ve = console.debug) == null || ve.call(console, Fe);
}
},
// Close button should fully tear down the viewer (remove overlay + listeners) to avoid leaks/ghost UI.
- onClose: () => v == null ? void 0 : v(),
+ onClose: () => L == null ? void 0 : L(),
onMode: (ae) => {
- var fe, je, Ne;
+ var he, ve, Fe;
try {
- if (ae === xt.AB_COMPARE && !nt() || ae === xt.SIDE_BY_SIDE && !mt()) return;
- i.mode = ae, st();
+ if (ae === jt.AB_COMPARE && !nt() || ae === jt.SIDE_BY_SIDE && !ut()) return;
+ i.mode = ae, dt();
try {
- (fe = b == null ? void 0 : b.syncToolsUIFromState) == null || fe.call(b);
- } catch ($e) {
- (je = console.debug) == null || je.call(console, $e);
+ (he = b == null ? void 0 : b.syncToolsUIFromState) == null || he.call(b);
+ } catch (_e) {
+ (ve = console.debug) == null || ve.call(console, _e);
}
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
},
onZoomIn: () => {
@@ -20673,8 +20688,8 @@ function aW() {
clientX: i._lastPointerX,
clientY: i._lastPointerY
});
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onZoomOut: () => {
@@ -20684,555 +20699,555 @@ function aW() {
clientX: i._lastPointerX,
clientY: i._lastPointerY
});
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onZoomReset: () => {
var ae;
try {
d(1);
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onZoomOneToOne: () => {
- var ae, fe;
+ var ae, he;
try {
- const je = () => {
- const Ne = Z();
- if (Ne == null) return !1;
- const $e = Math.abs((Number(i.zoom) || 1) - Ne) < 0.01;
- return d($e ? 1 : Ne, {
+ const ve = () => {
+ const Fe = A();
+ if (Fe == null) return !1;
+ const _e = Math.abs((Number(i.zoom) || 1) - Fe) < 0.01;
+ return d(_e ? 1 : Fe, {
clientX: i._lastPointerX,
clientY: i._lastPointerY
}), !0;
};
- if (je()) return;
+ if (ve()) return;
try {
requestAnimationFrame(() => {
- var Ne, $e;
+ var Fe, _e;
try {
- A();
+ C();
} catch (et) {
- (Ne = console.debug) == null || Ne.call(console, et);
+ (Fe = console.debug) == null || Fe.call(console, et);
}
try {
- je();
+ ve();
} catch (et) {
- ($e = console.debug) == null || $e.call(console, et);
+ (_e = console.debug) == null || _e.call(console, et);
}
});
- } catch (Ne) {
- (ae = console.debug) == null || ae.call(console, Ne);
+ } catch (Fe) {
+ (ae = console.debug) == null || ae.call(console, Fe);
}
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
},
onCompareModeChanged: () => {
var ae;
try {
- i.mode === xt.AB_COMPARE && (ke(), Zt());
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ i.mode === jt.AB_COMPARE && (Re(), yt());
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onExportFrame: () => {
var ae;
try {
- Ke({ toClipboard: !1 });
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ Ee({ toClipboard: !1 });
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onCopyFrame: () => {
var ae;
try {
- Ke({ toClipboard: !0 });
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ Ee({ toClipboard: !0 });
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onAudioVizModeChanged: () => {
var ae;
try {
- const fe = i.assets[i.currentIndex];
- if (String((fe == null ? void 0 : fe.kind) || "") !== "audio") return;
- f() || (ke(), Zt());
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ const he = i.assets[i.currentIndex];
+ if (String((he == null ? void 0 : he.kind) || "") !== "audio") return;
+ f() || (Re(), yt());
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
},
onToolsChanged: () => {
- var ae, fe, je, Ne, $e, et, tt, ct, Lt, Bt, Nt;
+ var ae, he, ve, Fe, _e, et, tt, st, Vt, Bt, Rt;
try {
(ae = b == null ? void 0 : b.syncToolsUIFromState) == null || ae.call(b);
- } catch (ht) {
- (fe = console.debug) == null || fe.call(console, ht);
+ } catch (Ct) {
+ (he = console.debug) == null || he.call(console, Ct);
}
try {
- _Z(i);
- } catch (ht) {
- (je = console.debug) == null || je.call(console, ht);
+ tA(i);
+ } catch (Ct) {
+ (ve = console.debug) == null || ve.call(console, Ct);
}
try {
- bt();
- } catch (ht) {
- (Ne = console.debug) == null || Ne.call(console, ht);
+ It();
+ } catch (Ct) {
+ (Fe = console.debug) == null || Fe.call(console, Ct);
}
try {
- if (i.mode === xt.AB_COMPARE) {
- const ht = String(i.abCompareMode || "wipe");
- ht !== "wipe" && ht !== "wipeV" && (($e = B == null ? void 0 : B._mjrDiffRequest) == null || $e.call(B));
+ if (i.mode === jt.AB_COMPARE) {
+ const Ct = String(i.abCompareMode || "wipe");
+ Ct !== "wipe" && Ct !== "wipeV" && ((_e = B == null ? void 0 : B._mjrDiffRequest) == null || _e.call(B));
}
- } catch (ht) {
- (et = console.debug) == null || et.call(console, ht);
+ } catch (Ct) {
+ (et = console.debug) == null || et.call(console, Ct);
}
try {
- i.probeEnabled || (D.style.display = "none");
- } catch (ht) {
- (tt = console.debug) == null || tt.call(console, ht);
+ i.probeEnabled || (H.style.display = "none");
+ } catch (Ct) {
+ (tt = console.debug) == null || tt.call(console, Ct);
}
try {
- i.loupeEnabled || (Q.style.display = "none");
- } catch (ht) {
- (ct = console.debug) == null || ct.call(console, ht);
+ i.loupeEnabled || ($.style.display = "none");
+ } catch (Ct) {
+ (st = console.debug) == null || st.call(console, Ct);
}
try {
- Re();
- } catch (ht) {
- (Lt = console.debug) == null || Lt.call(console, ht);
+ Oe();
+ } catch (Ct) {
+ (Vt = console.debug) == null || Vt.call(console, Ct);
}
try {
- Oe == null || Oe();
- } catch (ht) {
- (Bt = console.debug) == null || Bt.call(console, ht);
+ pe == null || pe();
+ } catch (Ct) {
+ (Bt = console.debug) == null || Bt.call(console, Ct);
}
try {
Ot();
- } catch (ht) {
- (Nt = console.debug) == null || Nt.call(console, ht);
+ } catch (Ct) {
+ (Rt = console.debug) == null || Rt.call(console, Ct);
}
}
- }), b != null && b.headerEl && (C = b.headerEl), b != null && b.headerTopEl && (L = b.headerTopEl), b != null && b.filenameEl && (S = b.filenameEl), b != null && b.badgesBarEl && (W = b.badgesBarEl), b != null && b.filenameRightEl && (y = b.filenameRightEl), b != null && b.badgesBarRightEl && (k = b.badgesBarRightEl), b != null && b.leftAreaEl && (x = b.leftAreaEl), b != null && b.leftMetaEl && (w = b.leftMetaEl), b != null && b.centerAreaEl && (X = b.centerAreaEl), b != null && b.rightMetaEl && (G = b.rightMetaEl), b != null && b.rightAreaEl && (z = b.rightAreaEl), b != null && b.titleLineEl && (V = b.titleLineEl), b != null && b.titleWrapEl && (R = b.titleWrapEl), b != null && b.modeButtonsEl && (j = b.modeButtonsEl);
+ }), b != null && b.headerEl && (h = b.headerEl), b != null && b.headerTopEl && (V = b.headerTopEl), b != null && b.filenameEl && (G = b.filenameEl), b != null && b.badgesBarEl && (W = b.badgesBarEl), b != null && b.filenameRightEl && (y = b.filenameRightEl), b != null && b.badgesBarRightEl && (X = b.badgesBarRightEl), b != null && b.leftAreaEl && (v = b.leftAreaEl), b != null && b.leftMetaEl && (w = b.leftMetaEl), b != null && b.centerAreaEl && (R = b.centerAreaEl), b != null && b.rightMetaEl && (x = b.rightMetaEl), b != null && b.rightAreaEl && (T = b.rightAreaEl), b != null && b.titleLineEl && (Y = b.titleLineEl), b != null && b.titleWrapEl && (F = b.titleWrapEl), b != null && b.modeButtonsEl && (N = b.modeButtonsEl);
} catch (ae) {
- (St = console.debug) == null || St.call(console, ae);
+ (Gt = console.debug) == null || Gt.call(console, ae);
}
const {
- contentRow: N,
- content: q,
- singleView: O,
+ contentRow: k,
+ content: K,
+ singleView: z,
abView: B,
sideView: J,
- gridCanvas: T,
- probeTooltip: D,
- loupeWrap: Q,
+ gridCanvas: P,
+ probeTooltip: H,
+ loupeWrap: $,
loupeCanvas: E,
- genInfoOverlay: K,
- genInfoTitle: F,
- genInfoBody: Y,
- genInfoOverlayLeft: U,
- genInfoTitleLeft: P,
- genInfoBodyLeft: ee,
- footer: oe,
+ genInfoOverlay: oe,
+ genInfoTitle: M,
+ genInfoBody: j,
+ genInfoOverlayLeft: O,
+ genInfoTitleLeft: D,
+ genInfoBodyLeft: q,
+ footer: ee,
prevBtn: ce,
- indexInfo: pe,
- nextBtn: H,
- navBar: $,
+ indexInfo: ue,
+ nextBtn: U,
+ navBar: Q,
playerBarHost: _,
filmstrip: le
- } = iW({
+ } = lW({
state: i,
- buildAssetViewURL: Bi,
+ buildAssetViewURL: Ki,
onNavigate: (ae) => {
- var fe;
+ var he;
try {
- i.compareAsset != null && (i.compareAsset = null, i.mode = xt.SINGLE), i.currentIndex = ae, st();
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ i.compareAsset != null && (i.compareAsset = null, i.mode = jt.SINGLE), i.currentIndex = ae, dt();
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
},
onCompare: (ae) => {
- var fe;
+ var he;
try {
- const je = Array.isArray(i.assets) ? i.assets : [], Ne = je[ae];
- if (!Ne || Ne === je[i.currentIndex]) return;
- if (Ne === i.compareAsset) {
- i.compareAsset = null, i.mode = xt.SINGLE, st();
+ const ve = Array.isArray(i.assets) ? i.assets : [], Fe = ve[ae];
+ if (!Fe || Fe === ve[i.currentIndex]) return;
+ if (Fe === i.compareAsset) {
+ i.compareAsset = null, i.mode = jt.SINGLE, dt();
return;
}
- je.length === 2 ? (i.compareAsset = je[1 - i.currentIndex], i.mode = de() ? xt.SIDE_BY_SIDE : xt.AB_COMPARE) : (i.compareAsset = Ne, i.mode = mt() ? xt.SIDE_BY_SIDE : xt.AB_COMPARE), st();
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ ve.length === 2 ? (i.compareAsset = ve[1 - i.currentIndex], i.mode = se() ? jt.SIDE_BY_SIDE : jt.AB_COMPARE) : (i.compareAsset = Fe, i.mode = ut() ? jt.SIDE_BY_SIDE : jt.AB_COMPARE), dt();
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
}
});
- e.appendChild(C), e.appendChild(N);
- function se() {
+ e.appendChild(h), e.appendChild(k);
+ function de() {
var ae;
try {
if (i.compareAsset) return i.compareAsset;
- const fe = Array.isArray(i.assets) ? i.assets : [];
- if (fe.length === 2)
- return fe[1 - (i.currentIndex || 0)] || null;
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ const he = Array.isArray(i.assets) ? i.assets : [];
+ if (he.length === 2)
+ return he[1 - (i.currentIndex || 0)] || null;
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
return null;
}
- function de() {
- var ae, fe, je, Ne;
+ function se() {
+ var ae, he, ve, Fe;
try {
- const $e = ((ae = i.assets) == null ? void 0 : ae[i.currentIndex]) || null;
- return (((fe = ti == null ? void 0 : ti.isModel3DAsset) == null ? void 0 : fe.call(ti, $e)) ?? !1) || (((je = ti == null ? void 0 : ti.isModel3DAsset) == null ? void 0 : je.call(ti, se())) ?? !1);
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ const _e = ((ae = i.assets) == null ? void 0 : ae[i.currentIndex]) || null;
+ return (((he = ti == null ? void 0 : ti.isModel3DAsset) == null ? void 0 : he.call(ti, _e)) ?? !1) || (((ve = ti == null ? void 0 : ti.isModel3DAsset) == null ? void 0 : ve.call(ti, de())) ?? !1);
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
return !1;
}
- e.appendChild(le.el), e.appendChild(oe), e.appendChild(K), e.appendChild(U), rW({
+ e.appendChild(le.el), e.appendChild(ee), e.appendChild(oe), e.appendChild(O), cW({
overlay: e,
- requestClose: () => v()
+ requestClose: () => L()
});
- const Ze = mA({
+ const ge = bA({
state: i,
- VIEWER_MODES: xt,
- APP_CONFIG: ye,
- getAssetMetadata: ml,
- getAssetsBatch: zs
- }), Fe = 300 * 1e3, xe = 256, ze = /* @__PURE__ */ new Map(), We = () => {
- var ae, fe;
+ VIEWER_MODES: jt,
+ APP_CONFIG: fe,
+ getAssetMetadata: gl,
+ getAssetsBatch: Ts
+ }), je = 300 * 1e3, Se = 256, ke = /* @__PURE__ */ new Map(), we = () => {
+ var ae, he;
try {
- const je = Date.now();
- for (const [et, tt] of ze.entries()) {
- const ct = Number(tt == null ? void 0 : tt.at) || 0;
- (!ct || je - ct > Fe) && ze.delete(et);
+ const ve = Date.now();
+ for (const [et, tt] of ke.entries()) {
+ const st = Number(tt == null ? void 0 : tt.at) || 0;
+ (!st || ve - st > je) && ke.delete(et);
}
- if (ze.size <= xe) return;
- const Ne = Array.from(ze.entries()).sort(
+ if (ke.size <= Se) return;
+ const Fe = Array.from(ke.entries()).sort(
(et, tt) => {
- var ct, Lt;
- return (Number((ct = et == null ? void 0 : et[1]) == null ? void 0 : ct.at) || 0) - (Number((Lt = tt == null ? void 0 : tt[1]) == null ? void 0 : Lt.at) || 0);
+ var st, Vt;
+ return (Number((st = et == null ? void 0 : et[1]) == null ? void 0 : st.at) || 0) - (Number((Vt = tt == null ? void 0 : tt[1]) == null ? void 0 : Vt.at) || 0);
}
- ), $e = ze.size - xe;
- for (let et = 0; et < $e; et += 1) {
- const tt = (ae = Ne == null ? void 0 : Ne[et]) == null ? void 0 : ae[0];
- tt != null && ze.delete(tt);
+ ), _e = ke.size - Se;
+ for (let et = 0; et < _e; et += 1) {
+ const tt = (ae = Fe == null ? void 0 : Fe[et]) == null ? void 0 : ae[0];
+ tt != null && ke.delete(tt);
}
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
- }, De = (ae) => {
+ }, Je = (ae) => {
try {
- const fe = String(ae ?? "");
- if (!fe) return null;
- const je = ze.get(fe);
- if (!je || typeof je != "object") return null;
- const Ne = Number(je == null ? void 0 : je.at) || 0;
- return !Ne || Date.now() - Ne > Fe ? (ze.delete(fe), null) : (je == null ? void 0 : je.data) || null;
+ const he = String(ae ?? "");
+ if (!he) return null;
+ const ve = ke.get(he);
+ if (!ve || typeof ve != "object") return null;
+ const Fe = Number(ve == null ? void 0 : ve.at) || 0;
+ return !Fe || Date.now() - Fe > je ? (ke.delete(he), null) : (ve == null ? void 0 : ve.data) || null;
} catch {
return null;
}
- }, Pe = (ae, fe) => {
- var je;
+ }, $e = (ae, he) => {
+ var ve;
try {
- const Ne = String(ae ?? "");
- if (!Ne || !fe) return;
- ze.set(Ne, { data: fe, at: Date.now() }), We();
- } catch (Ne) {
- (je = console.debug) == null || je.call(console, Ne);
+ const Fe = String(ae ?? "");
+ if (!Fe || !he) return;
+ ke.set(Fe, { data: he, at: Date.now() }), we();
+ } catch (Fe) {
+ (ve = console.debug) == null || ve.call(console, Fe);
}
- }, Qe = async () => {
- var ae, fe;
+ }, qe = async () => {
+ var ae, he;
try {
- await ((ae = Ze == null ? void 0 : Ze.hydrateVisibleMetadata) == null ? void 0 : ae.call(Ze));
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ await ((ae = ge == null ? void 0 : ge.hydrateVisibleMetadata) == null ? void 0 : ae.call(ge));
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
};
try {
- r = kA({
+ r = RA({
overlay: e,
- content: q,
- singleView: O,
+ content: K,
+ singleView: z,
abView: B,
sideView: J,
state: i,
- VIEWER_MODES: xt,
- scheduleOverlayRedraw: Re,
+ VIEWER_MODES: jt,
+ scheduleOverlayRedraw: Oe,
lifecycle: t
});
} catch {
r = null;
}
- const Ue = (ae, fe, je) => {
- var Ne;
+ const Ue = (ae, he, ve) => {
+ var Fe;
try {
- ae.clearRect(0, 0, fe, je);
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ ae.clearRect(0, 0, he, ve);
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
};
- let Ee = null;
- function Re(ae) {
- var fe, je;
+ let Te = null;
+ function Oe(ae) {
+ var he, ve;
try {
if (e.style.display === "none") return;
if (ae === !0) {
- Ee != null && (cancelAnimationFrame(Ee), Ee = null);
+ Te != null && (cancelAnimationFrame(Te), Te = null);
try {
- Ft();
- } catch (Ne) {
- (fe = console.debug) == null || fe.call(console, Ne);
+ Xt();
+ } catch (Fe) {
+ (he = console.debug) == null || he.call(console, Fe);
}
return;
}
- if (Ee != null) return;
- Ee = requestAnimationFrame(() => {
- var Ne;
- Ee = null;
+ if (Te != null) return;
+ Te = requestAnimationFrame(() => {
+ var Fe;
+ Te = null;
try {
- Ft();
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ Xt();
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
});
- } catch (Ne) {
- (je = console.debug) == null || je.call(console, Ne);
+ } catch (Fe) {
+ (ve = console.debug) == null || ve.call(console, Fe);
}
}
- const Se = sA({
- gridCanvas: T,
- content: q,
+ const Me = mA({
+ gridCanvas: P,
+ content: K,
state: i,
- VIEWER_MODES: xt,
+ VIEWER_MODES: jt,
getPrimaryMedia: () => {
- var ae, fe, je, Ne;
+ var ae, he, ve, Fe;
try {
- if ((i == null ? void 0 : i.mode) === xt.SINGLE)
- return ((ae = O == null ? void 0 : O.querySelector) == null ? void 0 : ae.call(O, ".mjr-viewer-media")) || null;
- if ((i == null ? void 0 : i.mode) === xt.AB_COMPARE)
- return ((fe = B == null ? void 0 : B.querySelector) == null ? void 0 : fe.call(B, ".mjr-viewer-media")) || null;
- if ((i == null ? void 0 : i.mode) === xt.SIDE_BY_SIDE)
- return ((je = J == null ? void 0 : J.querySelector) == null ? void 0 : je.call(J, ".mjr-viewer-media")) || null;
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ if ((i == null ? void 0 : i.mode) === jt.SINGLE)
+ return ((ae = z == null ? void 0 : z.querySelector) == null ? void 0 : ae.call(z, ".mjr-viewer-media")) || null;
+ if ((i == null ? void 0 : i.mode) === jt.AB_COMPARE)
+ return ((he = B == null ? void 0 : B.querySelector) == null ? void 0 : he.call(B, ".mjr-viewer-media")) || null;
+ if ((i == null ? void 0 : i.mode) === jt.SIDE_BY_SIDE)
+ return ((ve = J == null ? void 0 : J.querySelector) == null ? void 0 : ve.call(J, ".mjr-viewer-media")) || null;
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
return null;
},
- getViewportRect: M,
+ getViewportRect: S,
clearCanvas: Ue
- }), Ft = () => {
- var Ne, $e, et, tt, ct, Lt, Bt, Nt, ht, Jt;
+ }), Xt = () => {
+ var Fe, _e, et, tt, st, Vt, Bt, Rt, Ct, zt;
const ae = (() => {
try {
- const It = Number(i == null ? void 0 : i._panHintAt) || 0;
- return It > 0 && Date.now() - It < 900;
+ const gt = Number(i == null ? void 0 : i._panHintAt) || 0;
+ return gt > 0 && Date.now() - gt < 900;
} catch {
return !1;
}
})();
try {
- const It = (i == null ? void 0 : i.mode) === xt.SINGLE && !!(i != null && i.hudEnabled), mn = String((i == null ? void 0 : i.scopesMode) || "off") !== "off", Mt = !!(i != null && i.overlayMaskEnabled);
- T.style.display = i.gridMode === 0 && !Mt && !ae && !It && !mn ? "none" : "";
- } catch (It) {
- (Ne = console.debug) == null || Ne.call(console, It);
+ const gt = (i == null ? void 0 : i.mode) === jt.SINGLE && !!(i != null && i.hudEnabled), mn = String((i == null ? void 0 : i.scopesMode) || "off") !== "off", wt = !!(i != null && i.overlayMaskEnabled);
+ P.style.display = i.gridMode === 0 && !wt && !ae && !gt && !mn ? "none" : "";
+ } catch (gt) {
+ (Fe = console.debug) == null || Fe.call(console, gt);
}
- const fe = Se.ensureCanvasSize();
- if (!(fe.w > 0 && fe.h > 0)) return;
+ const he = Me.ensureCanvasSize();
+ if (!(he.w > 0 && he.h > 0)) return;
if ((() => {
- const It = (i == null ? void 0 : i.mode) === xt.SINGLE && !!(i != null && i.hudEnabled);
- return (Number(i.gridMode) || 0) !== 0 || !!(i != null && i.overlayMaskEnabled) || It;
+ const gt = (i == null ? void 0 : i.mode) === jt.SINGLE && !!(i != null && i.hudEnabled);
+ return (Number(i.gridMode) || 0) !== 0 || !!(i != null && i.overlayMaskEnabled) || gt;
})())
- Se.redrawGrid(fe);
+ Me.redrawGrid(he);
else
try {
- const It = T.getContext("2d");
- It && Ue(It, fe.w, fe.h);
- } catch (It) {
- ($e = console.debug) == null || $e.call(console, It);
+ const gt = P.getContext("2d");
+ gt && Ue(gt, he.w, he.h);
+ } catch (gt) {
+ (_e = console.debug) == null || _e.call(console, gt);
}
if (ae)
try {
- const It = T.getContext("2d");
- if (It) {
- const mn = (et = q == null ? void 0 : q.getBoundingClientRect) == null ? void 0 : et.call(q), Mt = Number(i == null ? void 0 : i._panHintX), nn = Number(i == null ? void 0 : i._panHintY), rn = mn && Number.isFinite(Mt) ? Mt - mn.left : fe.w / 2, hn = mn && Number.isFinite(nn) ? nn - mn.top : fe.h * 0.78, ln = 10, gn = Math.max(ln, Math.min(fe.w - ln, rn)), $t = Math.max(ln, Math.min(fe.h - ln, hn));
- It.save(), It.font = "12px var(--comfy-font, ui-sans-serif, system-ui)", It.textAlign = "center", It.textBaseline = "middle";
- const An = "Zoom in to pan", vn = It.measureText(An), dn = Math.min(fe.w - 2 * ln, Math.max(140, vn.width + 26)), Mn = 26;
- It.fillStyle = "rgba(0,0,0,0.65)", It.strokeStyle = "rgba(255,255,255,0.18)", It.lineWidth = 1, It.beginPath();
- const yn = gn - dn / 2, Ut = $t - Mn / 2, Tt = 10;
- It.moveTo(yn + Tt, Ut), It.arcTo(yn + dn, Ut, yn + dn, Ut + Mn, Tt), It.arcTo(yn + dn, Ut + Mn, yn, Ut + Mn, Tt), It.arcTo(yn, Ut + Mn, yn, Ut, Tt), It.arcTo(yn, Ut, yn + dn, Ut, Tt), It.closePath(), It.fill(), It.stroke(), It.fillStyle = "rgba(255,255,255,0.92)", It.fillText(An, gn, $t), It.restore();
+ const gt = P.getContext("2d");
+ if (gt) {
+ const mn = (et = K == null ? void 0 : K.getBoundingClientRect) == null ? void 0 : et.call(K), wt = Number(i == null ? void 0 : i._panHintX), on = Number(i == null ? void 0 : i._panHintY), rn = mn && Number.isFinite(wt) ? wt - mn.left : he.w / 2, hn = mn && Number.isFinite(on) ? on - mn.top : he.h * 0.78, ln = 10, gn = Math.max(ln, Math.min(he.w - ln, rn)), nn = Math.max(ln, Math.min(he.h - ln, hn));
+ gt.save(), gt.font = "12px var(--comfy-font, ui-sans-serif, system-ui)", gt.textAlign = "center", gt.textBaseline = "middle";
+ const An = "Zoom in to pan", vn = gt.measureText(An), un = Math.min(he.w - 2 * ln, Math.max(140, vn.width + 26)), Mn = 26;
+ gt.fillStyle = "rgba(0,0,0,0.65)", gt.strokeStyle = "rgba(255,255,255,0.18)", gt.lineWidth = 1, gt.beginPath();
+ const yn = gn - un / 2, Ut = nn - Mn / 2, Jt = 10;
+ gt.moveTo(yn + Jt, Ut), gt.arcTo(yn + un, Ut, yn + un, Ut + Mn, Jt), gt.arcTo(yn + un, Ut + Mn, yn, Ut + Mn, Jt), gt.arcTo(yn, Ut + Mn, yn, Ut, Jt), gt.arcTo(yn, Ut, yn + un, Ut, Jt), gt.closePath(), gt.fill(), gt.stroke(), gt.fillStyle = "rgba(255,255,255,0.92)", gt.fillText(An, gn, nn), gt.restore();
}
- } catch (It) {
- (tt = console.debug) == null || tt.call(console, It);
+ } catch (gt) {
+ (tt = console.debug) == null || tt.call(console, gt);
}
try {
- const It = String((i == null ? void 0 : i.scopesMode) || "off");
- if (It !== "off") {
- const mn = T.getContext("2d");
+ const gt = String((i == null ? void 0 : i.scopesMode) || "off");
+ if (gt !== "off") {
+ const mn = P.getContext("2d");
if (mn) {
- let Mt = O;
- (i == null ? void 0 : i.mode) === xt.AB_COMPARE ? Mt = B : (i == null ? void 0 : i.mode) === xt.SIDE_BY_SIDE && (Mt = J);
- const nn = ((ct = Mt == null ? void 0 : Mt.querySelector) == null ? void 0 : ct.call(Mt, "canvas.mjr-viewer-media")) || ((Lt = e == null ? void 0 : e.querySelector) == null ? void 0 : Lt.call(e, "canvas.mjr-viewer-media"));
- nn && nn instanceof HTMLCanvasElement && ((Bt = ko == null ? void 0 : ko.drawScopesLight) == null || Bt.call(ko, mn, { w: fe.w, h: fe.h }, nn, {
- mode: It,
+ let wt = z;
+ (i == null ? void 0 : i.mode) === jt.AB_COMPARE ? wt = B : (i == null ? void 0 : i.mode) === jt.SIDE_BY_SIDE && (wt = J);
+ const on = ((st = wt == null ? void 0 : wt.querySelector) == null ? void 0 : st.call(wt, "canvas.mjr-viewer-media")) || ((Vt = e == null ? void 0 : e.querySelector) == null ? void 0 : Vt.call(e, "canvas.mjr-viewer-media"));
+ on && on instanceof HTMLCanvasElement && ((Bt = No == null ? void 0 : No.drawScopesLight) == null || Bt.call(No, mn, { w: he.w, h: he.h }, on, {
+ mode: gt,
channel: i == null ? void 0 : i.channel
}));
}
}
- } catch (It) {
- (Nt = console.debug) == null || Nt.call(console, It);
+ } catch (gt) {
+ (Rt = console.debug) == null || Rt.call(console, gt);
}
- if (i.mode !== xt.SINGLE) {
+ if (i.mode !== jt.SINGLE) {
try {
- D.style.display = "none";
- } catch (It) {
- (ht = console.debug) == null || ht.call(console, It);
+ H.style.display = "none";
+ } catch (gt) {
+ (Ct = console.debug) == null || Ct.call(console, gt);
}
try {
- Q.style.display = "none";
- } catch (It) {
- (Jt = console.debug) == null || Jt.call(console, It);
+ $.style.display = "none";
+ } catch (gt) {
+ (zt = console.debug) == null || zt.call(console, gt);
}
}
- }, Gt = (ae) => {
- var fe, je, Ne, $e;
+ }, Mt = (ae) => {
+ var he, ve, Fe, _e;
if (ae) {
try {
for (const et of Array.from(ae.childNodes || []))
try {
- (fe = et == null ? void 0 : et._mjrDispose) == null || fe.call(et);
+ (he = et == null ? void 0 : et._mjrDispose) == null || he.call(et);
} catch (tt) {
- (je = console.debug) == null || je.call(console, tt);
+ (ve = console.debug) == null || ve.call(console, tt);
}
} catch (et) {
- (Ne = console.debug) == null || Ne.call(console, et);
+ (Fe = console.debug) == null || Fe.call(console, et);
}
try {
ae.replaceChildren();
} catch (et) {
- ($e = console.debug) == null || $e.call(console, et);
+ (_e = console.debug) == null || _e.call(console, et);
}
}
- }, ue = () => {
- var ae, fe, je, Ne;
+ }, me = () => {
+ var ae, he, ve, Fe;
try {
- (fe = (ae = i._genInfoAbort) == null ? void 0 : ae.abort) == null || fe.call(ae);
- } catch ($e) {
- (je = console.debug) == null || je.call(console, $e);
+ (he = (ae = i._genInfoAbort) == null ? void 0 : ae.abort) == null || he.call(ae);
+ } catch (_e) {
+ (ve = console.debug) == null || ve.call(console, _e);
}
i._genInfoAbort = null;
try {
i._genInfoReqId = (Number(i._genInfoReqId) || 0) + 1;
- } catch ($e) {
- (Ne = console.debug) == null || Ne.call(console, $e);
+ } catch (_e) {
+ (Fe = console.debug) == null || Fe.call(console, _e);
}
- }, He = async (ae, { signal: fe } = {}) => {
- var je;
+ }, Pe = async (ae, { signal: he } = {}) => {
+ var ve;
try {
- return await ((je = Gi == null ? void 0 : Gi.ensureViewerMetadataAsset) == null ? void 0 : je.call(Gi, ae, {
- getAssetMetadata: ml,
- getFileMetadataScoped: Ug,
- metadataCache: Ze,
- signal: fe
+ return await ((ve = vi == null ? void 0 : vi.ensureViewerMetadataAsset) == null ? void 0 : ve.call(vi, ae, {
+ getAssetMetadata: gl,
+ getFileMetadataScoped: Kg,
+ metadataCache: ge,
+ signal: he
}));
} catch {
return ae;
}
- }, ve = (ae) => {
+ }, Le = (ae) => {
try {
if (!ae || typeof ae != "object" || ae != null && ae.geninfo || ae != null && ae.prompt || ae != null && ae.workflow || ae != null && ae.metadata) return !1;
if (String((ae == null ? void 0 : ae.mime) || (ae == null ? void 0 : ae.mimetype) || (ae == null ? void 0 : ae.type) || "").toLowerCase().startsWith("video/")) return !0;
- const Ne = String(
+ const Fe = String(
(ae == null ? void 0 : ae.filepath) || (ae == null ? void 0 : ae.path) || (ae == null ? void 0 : ae.filename) || (ae == null ? void 0 : ae.name) || ""
).toLowerCase().split(".").pop() || "";
- return ["mp4", "webm", "mov", "mkv", "avi", "m4v", "gif"].includes(Ne), !0;
+ return ["mp4", "webm", "mov", "mkv", "avi", "m4v", "gif"].includes(Fe), !0;
} catch {
return !1;
}
}, Ot = async () => {
- var Bt, Nt, ht, Jt, It, mn;
- const ae = nt(), fe = mt(), je = i.mode, Ne = !!(i != null && i.genInfoOpen) && !(i != null && i.distractionFree), $e = Ne && (je === xt.AB_COMPARE && ae || je === xt.SIDE_BY_SIDE && fe), et = $e && je === xt.SIDE_BY_SIDE && !(i != null && i.compareAsset) && (((Bt = i == null ? void 0 : i.assets) == null ? void 0 : Bt.length) ?? 0) > 2;
+ var Bt, Rt, Ct, zt, gt, mn;
+ const ae = nt(), he = ut(), ve = i.mode, Fe = !!(i != null && i.genInfoOpen) && !(i != null && i.distractionFree), _e = Fe && (ve === jt.AB_COMPARE && ae || ve === jt.SIDE_BY_SIDE && he), et = _e && ve === jt.SIDE_BY_SIDE && !(i != null && i.compareAsset) && (((Bt = i == null ? void 0 : i.assets) == null ? void 0 : Bt.length) ?? 0) > 2;
try {
- if (K.style.display = Ne ? "flex" : "none", U.style.display = $e ? "flex" : "none", e.style.paddingRight = Ne ? Nu : "0px", e.style.paddingLeft = $e ? Nu : "0px", !Ne) {
- ue();
+ if (oe.style.display = Fe ? "flex" : "none", O.style.display = _e ? "flex" : "none", e.style.paddingRight = Fe ? Fu : "0px", e.style.paddingLeft = _e ? Fu : "0px", !Fe) {
+ me();
try {
- Gt(Y);
- } catch (Mt) {
- (Nt = console.debug) == null || Nt.call(console, Mt);
+ Mt(j);
+ } catch (wt) {
+ (Rt = console.debug) == null || Rt.call(console, wt);
}
try {
- Gt(ee);
- } catch (Mt) {
- (ht = console.debug) == null || ht.call(console, Mt);
+ Mt(q);
+ } catch (wt) {
+ (Ct = console.debug) == null || Ct.call(console, wt);
}
return;
}
} catch {
return;
}
- ue();
+ me();
const tt = (Number(i == null ? void 0 : i._genInfoReqId) || 0) + 1;
try {
i._genInfoReqId = tt;
- } catch (Mt) {
- (Jt = console.debug) == null || Jt.call(console, Mt);
+ } catch (wt) {
+ (zt = console.debug) == null || zt.call(console, wt);
}
- const ct = new AbortController();
- i._genInfoAbort = ct;
- const Lt = ({ left: Mt, leftExtra: nn, right: rn, rightExtra: hn, single: ln }) => {
+ const st = new AbortController();
+ i._genInfoAbort = st;
+ const Vt = ({ left: wt, leftExtra: on, right: rn, rightExtra: hn, single: ln }) => {
var An, vn;
try {
- Gt(Y);
- } catch (dn) {
- (An = console.debug) == null || An.call(console, dn);
+ Mt(j);
+ } catch (un) {
+ (An = console.debug) == null || An.call(console, un);
}
try {
- Gt(ee);
- } catch (dn) {
- (vn = console.debug) == null || vn.call(console, dn);
+ Mt(q);
+ } catch (un) {
+ (vn = console.debug) == null || vn.call(console, un);
}
const gn = () => {
- var dn;
+ var un;
try {
i != null && i.genInfoOpen || (i.genInfoOpen = !0), Ot();
} catch (Mn) {
- (dn = console.debug) == null || dn.call(console, Mn);
+ (un = console.debug) == null || un.call(console, Mn);
}
- }, $t = (dn, Mn, yn, Ut) => {
- var Tt, io, oo, ro;
- if (dn)
+ }, nn = (un, Mn, yn, Ut) => {
+ var Jt, ro, lo, ao;
+ if (un)
try {
try {
- const it = (Tt = Gi == null ? void 0 : Gi.buildViewerMetadataBlocks) == null ? void 0 : Tt.call(Gi, {
+ const it = (Jt = vi == null ? void 0 : vi.buildViewerMetadataBlocks) == null ? void 0 : Jt.call(vi, {
title: Mn,
asset: yn,
ui: { loading: !!Ut, onRetry: gn }
});
if (it) {
- dn.appendChild(it);
+ un.appendChild(it);
return;
}
} catch (it) {
- (io = console.debug) == null || io.call(console, it);
+ (ro = console.debug) == null || ro.call(console, it);
}
- const yi = document.createElement("div");
- if (yi.style.cssText = "display:flex; flex-direction:column; gap:10px; margin-bottom: 14px;", Mn) {
+ const hi = document.createElement("div");
+ if (hi.style.cssText = "display:flex; flex-direction:column; gap:10px; margin-bottom: 14px;", Mn) {
const it = document.createElement("div");
- it.textContent = Mn, it.style.cssText = "font-size: 12px; font-weight: 600; letter-spacing: 0.02em; color: rgba(255,255,255,0.86);", yi.appendChild(it);
+ it.textContent = Mn, it.style.cssText = "font-size: 12px; font-weight: 600; letter-spacing: 0.02em; color: rgba(255,255,255,0.86);", hi.appendChild(it);
}
- const Le = document.createElement("div");
- Le.style.cssText = "padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.72);", Le.textContent = "No generation data found for this file.", yi.appendChild(Le);
+ const Ve = document.createElement("div");
+ Ve.style.cssText = "padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.72);", Ve.textContent = "No generation data found for this file.", hi.appendChild(Ve);
try {
const it = yn == null ? void 0 : yn.metadata_raw;
if (it != null) {
- const Vt = document.createElement("details");
- Vt.style.cssText = "border: 1px solid rgba(255,255,255,0.10); border-radius: 10px; background: rgba(255,255,255,0.04); overflow: hidden;";
- const on = document.createElement("summary");
- on.textContent = "Raw metadata", on.style.cssText = "cursor: pointer; padding: 10px 12px; color: rgba(255,255,255,0.78); user-select: none;";
- const cn = document.createElement("pre");
- cn.style.cssText = "margin:0; padding: 10px 12px; max-height: 280px; overflow:auto; font-size: 11px; line-height: 1.35; color: rgba(255,255,255,0.86);";
+ const xt = document.createElement("details");
+ xt.style.cssText = "border: 1px solid rgba(255,255,255,0.10); border-radius: 10px; background: rgba(255,255,255,0.04); overflow: hidden;";
+ const an = document.createElement("summary");
+ an.textContent = "Raw metadata", an.style.cssText = "cursor: pointer; padding: 10px 12px; color: rgba(255,255,255,0.78); user-select: none;";
+ const sn = document.createElement("pre");
+ sn.style.cssText = "margin:0; padding: 10px 12px; max-height: 280px; overflow:auto; font-size: 11px; line-height: 1.35; color: rgba(255,255,255,0.86);";
let Bn = "";
try {
typeof it == "string" ? Bn = it : Bn = JSON.stringify(it, null, 2);
@@ -21240,75 +21255,75 @@ function aW() {
Bn = String(it);
}
Bn.length > 4e4 && (Bn = `${Bn.slice(0, 4e4)}
-β¦(truncated)β¦`), cn.textContent = Bn, Vt.appendChild(on), Vt.appendChild(cn), yi.appendChild(Vt);
+β¦(truncated)β¦`), sn.textContent = Bn, xt.appendChild(an), xt.appendChild(sn), hi.appendChild(xt);
}
} catch (it) {
- (oo = console.debug) == null || oo.call(console, it);
+ (lo = console.debug) == null || lo.call(console, it);
}
- dn.appendChild(yi);
- } catch (yi) {
- (ro = console.debug) == null || ro.call(console, yi);
+ un.appendChild(hi);
+ } catch (hi) {
+ (ao = console.debug) == null || ao.call(console, hi);
}
};
- $e ? (Mt && (P.textContent = Mt.title || "Asset A", $t(
- ee,
- nn ? "Asset A" : "",
- Mt.asset,
- Mt.loading
- )), nn && $t(ee, "Asset C", nn.asset, nn.loading), rn && (F.textContent = rn.title || "Asset B", $t(
- Y,
+ _e ? (wt && (D.textContent = wt.title || "Asset A", nn(
+ q,
+ on ? "Asset A" : "",
+ wt.asset,
+ wt.loading
+ )), on && nn(q, "Asset C", on.asset, on.loading), rn && (M.textContent = rn.title || "Asset B", nn(
+ j,
hn ? "Asset B" : "",
rn.asset,
rn.loading
- )), hn && $t(Y, "Asset D", hn.asset, hn.loading)) : ln && (F.textContent = ln.title || "Generation Info", $t(Y, "", ln.asset, ln.loading));
+ )), hn && nn(j, "Asset D", hn.asset, hn.loading)) : ln && (M.textContent = ln.title || "Generation Info", nn(j, "", ln.asset, ln.loading));
};
try {
- const Mt = ((It = i == null ? void 0 : i.assets) == null ? void 0 : It[i == null ? void 0 : i.currentIndex]) || null;
- if (!Mt) {
- Lt({});
+ const wt = ((gt = i == null ? void 0 : i.assets) == null ? void 0 : gt[i == null ? void 0 : i.currentIndex]) || null;
+ if (!wt) {
+ Vt({});
return;
}
- let nn = null, rn = null, hn = null, ln = null, gn = null;
- $e ? je === xt.SIDE_BY_SIDE ? i != null && i.compareAsset ? (nn = Mt, rn = i.compareAsset) : (nn = i.assets[0] || null, rn = i.assets[1] || null, et && (hn = i.assets[2] || null, ln = i.assets[3] || null)) : (nn = Mt, rn = (i == null ? void 0 : i.compareAsset) || (i.assets.length === 2 ? i.assets[1 - i.currentIndex] : null)) : gn = Mt;
- const $t = (An) => {
- var vn, dn;
- return An ? ((dn = (vn = Ze == null ? void 0 : Ze.getCached) == null ? void 0 : vn.call(Ze, An.id)) == null ? void 0 : dn.data) || An : null;
+ let on = null, rn = null, hn = null, ln = null, gn = null;
+ _e ? ve === jt.SIDE_BY_SIDE ? i != null && i.compareAsset ? (on = wt, rn = i.compareAsset) : (on = i.assets[0] || null, rn = i.assets[1] || null, et && (hn = i.assets[2] || null, ln = i.assets[3] || null)) : (on = wt, rn = (i == null ? void 0 : i.compareAsset) || (i.assets.length === 2 ? i.assets[1 - i.currentIndex] : null)) : gn = wt;
+ const nn = (An) => {
+ var vn, un;
+ return An ? ((un = (vn = ge == null ? void 0 : ge.getCached) == null ? void 0 : vn.call(ge, An.id)) == null ? void 0 : un.data) || An : null;
};
- if (Lt({
- left: $e ? {
+ if (Vt({
+ left: _e ? {
title: et ? "Assets A & C" : "Asset A",
- asset: $t(nn),
- loading: ve($t(nn))
+ asset: nn(on),
+ loading: Le(nn(on))
} : null,
leftExtra: et && hn ? {
- asset: $t(hn),
- loading: ve($t(hn))
+ asset: nn(hn),
+ loading: Le(nn(hn))
} : null,
- right: $e ? {
+ right: _e ? {
title: et ? "Assets B & D" : "Asset B",
- asset: $t(rn),
- loading: ve($t(rn))
+ asset: nn(rn),
+ loading: Le(nn(rn))
} : null,
rightExtra: et && ln ? {
- asset: $t(ln),
- loading: ve($t(ln))
+ asset: nn(ln),
+ loading: Le(nn(ln))
} : null,
- single: $e ? null : {
+ single: _e ? null : {
title: "Generation Info",
- asset: $t(gn),
- loading: ve($t(gn))
+ asset: nn(gn),
+ loading: Le(nn(gn))
}
}), i._genInfoReqId !== tt) return;
- if ($e) {
- const An = nn ? await He(nn, { signal: ct.signal }) : null, vn = rn ? await He(rn, { signal: ct.signal }) : null, dn = hn ? await He(hn, { signal: ct.signal }) : null, Mn = ln ? await He(ln, { signal: ct.signal }) : null;
+ if (_e) {
+ const An = on ? await Pe(on, { signal: st.signal }) : null, vn = rn ? await Pe(rn, { signal: st.signal }) : null, un = hn ? await Pe(hn, { signal: st.signal }) : null, Mn = ln ? await Pe(ln, { signal: st.signal }) : null;
if (i._genInfoReqId !== tt) return;
- Lt({
+ Vt({
left: {
title: et ? "Assets A & C" : "Asset A",
asset: An,
loading: !1
},
- leftExtra: et && dn ? { asset: dn, loading: !1 } : null,
+ leftExtra: et && un ? { asset: un, loading: !1 } : null,
right: {
title: et ? "Assets B & D" : "Asset B",
asset: vn,
@@ -21317,9 +21332,9 @@ function aW() {
rightExtra: et && Mn ? { asset: Mn, loading: !1 } : null
});
} else {
- const An = gn ? await He(gn, { signal: ct.signal }) : null;
+ const An = gn ? await Pe(gn, { signal: st.signal }) : null;
if (i._genInfoReqId !== tt) return;
- Lt({
+ Vt({
single: {
title: "Generation Info",
asset: An,
@@ -21327,39 +21342,39 @@ function aW() {
}
});
}
- } catch (Mt) {
- (mn = console.debug) == null || mn.call(console, Mt);
+ } catch (wt) {
+ (mn = console.debug) == null || mn.call(console, wt);
}
};
- let Ve = null;
- function Ke(ae) {
- var fe, je;
+ let Xe = null;
+ function Ee(ae) {
+ var he, ve;
try {
- return !Ve && Xa && (Ve = Xa.createFrameExporter({
+ return !Xe && Na && (Xe = Na.createFrameExporter({
state: i,
- VIEWER_MODES: xt,
- singleView: O,
+ VIEWER_MODES: jt,
+ singleView: z,
abView: B,
sideView: J
- })), (fe = Ve == null ? void 0 : Ve.exportCurrentFrame) == null ? void 0 : fe.call(Ve, ae);
- } catch (Ne) {
- (je = console.debug) == null || je.call(console, Ne);
+ })), (he = Xe == null ? void 0 : Xe.exportCurrentFrame) == null ? void 0 : he.call(Xe, ae);
+ } catch (Fe) {
+ (ve = console.debug) == null || ve.call(console, Fe);
}
}
- const Be = () => {
- var tt, ct, Lt, Bt, Nt, ht, Jt, It, mn;
- const ae = (Mt) => {
- var nn;
+ const Ke = () => {
+ var tt, st, Vt, Bt, Rt, Ct, zt, gt, mn;
+ const ae = (wt) => {
+ var on;
try {
- Mt && Mt.replaceChildren();
+ wt && wt.replaceChildren();
} catch (rn) {
- (nn = console.debug) == null || nn.call(console, rn);
+ (on = console.debug) == null || on.call(console, rn);
}
};
- ae(W), ae(k);
- const fe = (Mt, { showName: nn } = {}) => {
- var An, vn, dn, Mn;
- if (!Mt) return null;
+ ae(W), ae(X);
+ const he = (wt, { showName: on } = {}) => {
+ var An, vn, un, Mn;
+ if (!wt) return null;
const rn = document.createElement("div");
rn.className = "mjr-viewer-asset-pill", rn.style.cssText = `
display: inline-flex;
@@ -21374,475 +21389,475 @@ function aW() {
overflow: hidden;
`;
const hn = document.createElement("span");
- hn.textContent = String(Mt.filename || ""), hn.style.cssText = "max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; opacity:0.95;";
- const ln = uZ(
- Mt.filename,
- Mt.kind,
- !!(Mt != null && Mt._mjrNameCollision)
+ hn.textContent = String(wt.filename || ""), hn.style.cssText = "max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; opacity:0.95;";
+ const ln = IZ(
+ wt.filename,
+ wt.kind,
+ !!(wt != null && wt._mjrNameCollision)
);
try {
ln.style.position = "static", ln.style.top = "", ln.style.left = "", ln.style.padding = "2px 6px", ln.style.fontSize = "10px", ln.style.borderRadius = "6px", ln.style.pointerEvents = "none";
} catch (yn) {
(An = console.debug) == null || An.call(console, yn);
}
- const gn = Ya(Mt.rating || 0);
+ const gn = Ya(wt.rating || 0);
if (gn)
try {
gn.style.position = "static", gn.style.top = "", gn.style.right = "", gn.style.padding = "2px 6px", gn.style.fontSize = "12px";
} catch (yn) {
(vn = console.debug) == null || vn.call(console, yn);
}
- const $t = FI(Array.isArray(Mt.tags) ? Mt.tags : []);
- if ($t)
+ const nn = OI(Array.isArray(wt.tags) ? wt.tags : []);
+ if (nn)
try {
- $t.style.position = "static", $t.style.bottom = "", $t.style.left = "", $t.style.maxWidth = "220px", $t.style.pointerEvents = "none";
+ nn.style.position = "static", nn.style.bottom = "", nn.style.left = "", nn.style.maxWidth = "220px", nn.style.pointerEvents = "none";
} catch (yn) {
- (dn = console.debug) == null || dn.call(console, yn);
+ (un = console.debug) == null || un.call(console, yn);
}
- rn.appendChild(ln), nn && rn.appendChild(hn), gn && rn.appendChild(gn), $t && $t.style.display !== "none" && rn.appendChild($t);
+ rn.appendChild(ln), on && rn.appendChild(hn), gn && rn.appendChild(gn), nn && nn.style.display !== "none" && rn.appendChild(nn);
try {
- Mt.filepath && (rn.title = String(Mt.filepath));
+ wt.filepath && (rn.title = String(wt.filepath));
} catch (yn) {
(Mn = console.debug) == null || Mn.call(console, yn);
}
return rn;
- }, je = i.mode === xt.SINGLE, Ne = i.mode === xt.AB_COMPARE && nt(), $e = i.mode === xt.SIDE_BY_SIDE && mt();
- if ((Ne || $e) && k) {
- const Mt = ((tt = i.assets) == null ? void 0 : tt[i.currentIndex]) || null, nn = $e && i.compareAsset != null, rn = Ne ? i.compareAsset != null ? Mt : ((ct = i.assets) == null ? void 0 : ct[0]) || null : nn ? Mt : ((Lt = i.assets) == null ? void 0 : Lt[0]) || null, hn = Ne ? i.compareAsset != null ? i.compareAsset : ((Bt = i.assets) == null ? void 0 : Bt[1]) || null : nn ? i.compareAsset : ((ht = i.assets) == null ? void 0 : ht[Math.max(0, (((Nt = i.assets) == null ? void 0 : Nt.length) || 1) - 1)]) || null, ln = fe(rn, { showName: !1 }), gn = fe(hn, { showName: !1 });
+ }, ve = i.mode === jt.SINGLE, Fe = i.mode === jt.AB_COMPARE && nt(), _e = i.mode === jt.SIDE_BY_SIDE && ut();
+ if ((Fe || _e) && X) {
+ const wt = ((tt = i.assets) == null ? void 0 : tt[i.currentIndex]) || null, on = _e && i.compareAsset != null, rn = Fe ? i.compareAsset != null ? wt : ((st = i.assets) == null ? void 0 : st[0]) || null : on ? wt : ((Vt = i.assets) == null ? void 0 : Vt[0]) || null, hn = Fe ? i.compareAsset != null ? i.compareAsset : ((Bt = i.assets) == null ? void 0 : Bt[1]) || null : on ? i.compareAsset : ((Ct = i.assets) == null ? void 0 : Ct[Math.max(0, (((Rt = i.assets) == null ? void 0 : Rt.length) || 1) - 1)]) || null, ln = he(rn, { showName: !1 }), gn = he(hn, { showName: !1 });
try {
ln && W.appendChild(ln);
- } catch ($t) {
- (Jt = console.debug) == null || Jt.call(console, $t);
+ } catch (nn) {
+ (zt = console.debug) == null || zt.call(console, nn);
}
try {
- gn && k.appendChild(gn);
- } catch ($t) {
- (It = console.debug) == null || It.call(console, $t);
+ gn && X.appendChild(gn);
+ } catch (nn) {
+ (gt = console.debug) == null || gt.call(console, nn);
}
return;
}
- const et = je ? [i.assets[i.currentIndex]].filter(Boolean) : Array.isArray(i.assets) ? i.assets.slice(0, 4) : [];
- for (const Mt of et) {
- const nn = fe(Mt, { showName: !je });
- if (nn)
+ const et = ve ? [i.assets[i.currentIndex]].filter(Boolean) : Array.isArray(i.assets) ? i.assets.slice(0, 4) : [];
+ for (const wt of et) {
+ const on = he(wt, { showName: !ve });
+ if (on)
try {
- W.appendChild(nn);
+ W.appendChild(on);
} catch (rn) {
(mn = console.debug) == null || mn.call(console, rn);
}
}
};
function nt() {
- return (i.assets.length === 2 || i.compareAsset != null) && !de();
+ return (i.assets.length === 2 || i.compareAsset != null) && !se();
}
- function mt() {
+ function ut() {
const ae = i.assets.length;
return ae >= 2 && ae <= 4 || ae >= 1 && i.compareAsset != null;
}
- function bt() {
- var fe, je, Ne, $e;
+ function It() {
+ var he, ve, Fe, _e;
const ae = !!(i != null && i.distractionFree);
try {
- C.style.display = ae ? "none" : "";
+ h.style.display = ae ? "none" : "";
} catch (et) {
- (fe = console.debug) == null || fe.call(console, et);
+ (he = console.debug) == null || he.call(console, et);
}
try {
- oe.style.display = ae ? "none" : "";
+ ee.style.display = ae ? "none" : "";
} catch (et) {
- (je = console.debug) == null || je.call(console, et);
+ (ve = console.debug) == null || ve.call(console, et);
}
try {
e.classList.toggle("mjr-viewer-focus", ae);
} catch (et) {
- (Ne = console.debug) == null || Ne.call(console, et);
+ (Fe = console.debug) == null || Fe.call(console, et);
}
try {
- ae && (e.style.paddingRight = "0px", e.style.paddingLeft = "0px", K.style.display = "none", U.style.display = "none");
+ ae && (e.style.paddingRight = "0px", e.style.paddingLeft = "0px", oe.style.display = "none", O.style.display = "none");
} catch (et) {
- ($e = console.debug) == null || $e.call(console, et);
+ (_e = console.debug) == null || _e.call(console, et);
}
}
- function st() {
- var Lt, Bt, Nt, ht, Jt, It, mn, Mt, nn, rn, hn, ln, gn, $t, An, vn, dn, Mn, yn;
+ function dt() {
+ var Vt, Bt, Rt, Ct, zt, gt, mn, wt, on, rn, hn, ln, gn, nn, An, vn, un, Mn, yn;
i.zoom = 1, i.panX = 0, i.panY = 0, i.targetZoom = 1;
try {
- i.mode !== xt.AB_COMPARE && i.mode !== xt.SIDE_BY_SIDE && i.compareAsset != null && (i.compareAsset = null);
+ i.mode !== jt.AB_COMPARE && i.mode !== jt.SIDE_BY_SIDE && i.compareAsset != null && (i.compareAsset = null);
} catch (Ut) {
- (Lt = console.debug) == null || Lt.call(console, Ut);
+ (Vt = console.debug) == null || Vt.call(console, Ut);
}
- const ae = i.assets[i.currentIndex], fe = i.mode === xt.AB_COMPARE && nt(), je = i.mode === xt.SIDE_BY_SIDE && mt(), Ne = fe && i.compareAsset != null, $e = je && i.compareAsset != null, et = fe ? (Ne ? ae : (Bt = i.assets) == null ? void 0 : Bt[0]) || null : je ? ($e ? ae : (Nt = i.assets) == null ? void 0 : Nt[0]) || null : ae || null, tt = fe ? (Ne ? i.compareAsset : (ht = i.assets) == null ? void 0 : ht[1]) || null : je ? $e ? i.compareAsset : Array.isArray(i.assets) && i.assets.length >= 2 ? i.assets[i.assets.length - 1] : null : null;
+ const ae = i.assets[i.currentIndex], he = i.mode === jt.AB_COMPARE && nt(), ve = i.mode === jt.SIDE_BY_SIDE && ut(), Fe = he && i.compareAsset != null, _e = ve && i.compareAsset != null, et = he ? (Fe ? ae : (Bt = i.assets) == null ? void 0 : Bt[0]) || null : ve ? (_e ? ae : (Rt = i.assets) == null ? void 0 : Rt[0]) || null : ae || null, tt = he ? (Fe ? i.compareAsset : (Ct = i.assets) == null ? void 0 : Ct[1]) || null : ve ? _e ? i.compareAsset : Array.isArray(i.assets) && i.assets.length >= 2 ? i.assets[i.assets.length - 1] : null : null;
try {
- S.textContent = (et == null ? void 0 : et.filename) || "";
+ G.textContent = (et == null ? void 0 : et.filename) || "";
} catch (Ut) {
- (Jt = console.debug) == null || Jt.call(console, Ut);
+ (zt = console.debug) == null || zt.call(console, Ut);
}
try {
- G && y && tt && tt !== et ? (G.style.display = "flex", z && (z.style.display = "flex"), y.textContent = (tt == null ? void 0 : tt.filename) || "", x && w && V && (x.style.display = "flex", w.appendChild(V), V.style.justifyContent = "flex-start"), L && (L.style.justifyContent = "center", L.style.paddingLeft = "84px"), X && (X.style.flex = "0 0 auto"), R && (R.style.flex = "0 0 auto"), S && (S.style.textAlign = "left")) : G && y && (G.style.display = "none", z && (z.style.display = "none"), y.textContent = "", x && (x.style.display = "none"), R && V && j && (R.insertBefore(V, j), V.style.justifyContent = "center"), L && (L.style.justifyContent = "center", L.style.paddingLeft = "12px"), X && (X.style.flex = "1 1 auto"), R && (R.style.flex = ""), S && (S.style.textAlign = "center"));
+ x && y && tt && tt !== et ? (x.style.display = "flex", T && (T.style.display = "flex"), y.textContent = (tt == null ? void 0 : tt.filename) || "", v && w && Y && (v.style.display = "flex", w.appendChild(Y), Y.style.justifyContent = "flex-start"), V && (V.style.justifyContent = "center", V.style.paddingLeft = "84px"), R && (R.style.flex = "0 0 auto"), F && (F.style.flex = "0 0 auto"), G && (G.style.textAlign = "left")) : x && y && (x.style.display = "none", T && (T.style.display = "none"), y.textContent = "", v && (v.style.display = "none"), F && Y && N && (F.insertBefore(Y, N), Y.style.justifyContent = "center"), V && (V.style.justifyContent = "center", V.style.paddingLeft = "12px"), R && (R.style.flex = "1 1 auto"), F && (F.style.flex = ""), G && (G.style.textAlign = "center"));
} catch (Ut) {
- (It = console.debug) == null || It.call(console, Ut);
+ (gt = console.debug) == null || gt.call(console, Ut);
}
- i.mode === xt.AB_COMPARE && nt() ? pe.textContent = "2 selected" : i.mode === xt.SIDE_BY_SIDE && mt() ? pe.textContent = i.compareAsset != null ? "2 selected" : `${i.assets.length} selected` : pe.textContent = `${i.currentIndex + 1} / ${i.assets.length}`, i.mode === xt.AB_COMPARE && !nt() && (i.mode = mt() ? xt.SIDE_BY_SIDE : xt.SINGLE), i.mode === xt.SIDE_BY_SIDE && !mt() && (i.mode = xt.SINGLE);
+ i.mode === jt.AB_COMPARE && nt() ? ue.textContent = "2 selected" : i.mode === jt.SIDE_BY_SIDE && ut() ? ue.textContent = i.compareAsset != null ? "2 selected" : `${i.assets.length} selected` : ue.textContent = `${i.currentIndex + 1} / ${i.assets.length}`, i.mode === jt.AB_COMPARE && !nt() && (i.mode = ut() ? jt.SIDE_BY_SIDE : jt.SINGLE), i.mode === jt.SIDE_BY_SIDE && !ut() && (i.mode = jt.SINGLE);
try {
- (mn = b == null ? void 0 : b.syncModeButtons) == null || mn.call(b, { canAB: nt, canSide: mt });
+ (mn = b == null ? void 0 : b.syncModeButtons) == null || mn.call(b, { canAB: nt, canSide: ut });
} catch (Ut) {
- (Mt = console.debug) == null || Mt.call(console, Ut);
+ (wt = console.debug) == null || wt.call(console, Ut);
}
- O.style.display = i.mode === xt.SINGLE ? "flex" : "none", B.style.display = i.mode === xt.AB_COMPARE ? "block" : "none", J.style.display = i.mode === xt.SIDE_BY_SIDE ? "flex" : "none";
+ z.style.display = i.mode === jt.SINGLE ? "flex" : "none", B.style.display = i.mode === jt.AB_COMPARE ? "block" : "none", J.style.display = i.mode === jt.SIDE_BY_SIDE ? "flex" : "none";
try {
- i.mode !== xt.SINGLE && (ci(O), O.replaceChildren());
+ i.mode !== jt.SINGLE && (di(z), z.replaceChildren());
} catch (Ut) {
- (nn = console.debug) == null || nn.call(console, Ut);
+ (on = console.debug) == null || on.call(console, Ut);
}
try {
- i.mode !== xt.AB_COMPARE && (ci(B), B.replaceChildren());
+ i.mode !== jt.AB_COMPARE && (di(B), B.replaceChildren());
} catch (Ut) {
(rn = console.debug) == null || rn.call(console, Ut);
}
try {
- i.mode !== xt.SIDE_BY_SIDE && (ci(J), J.replaceChildren());
+ i.mode !== jt.SIDE_BY_SIDE && (di(J), J.replaceChildren());
} catch (Ut) {
(hn = console.debug) == null || hn.call(console, Ut);
}
- Be();
- const ct = i.mode === xt.AB_COMPARE && nt() || i.mode === xt.SIDE_BY_SIDE && mt();
+ Ke();
+ const st = i.mode === jt.AB_COMPARE && nt() || i.mode === jt.SIDE_BY_SIDE && ut();
try {
- ce.style.display = ct ? "none" : "", H.style.display = ct ? "none" : "";
+ ce.style.display = st ? "none" : "", U.style.display = st ? "none" : "";
} catch (Ut) {
(ln = console.debug) == null || ln.call(console, Ut);
}
- ke(), Ct(i.assets, i.currentIndex), Zt();
+ Re(), Wt(i.assets, i.currentIndex), yt();
try {
(gn = b == null ? void 0 : b.syncToolsUIFromState) == null || gn.call(b);
} catch (Ut) {
- ($t = console.debug) == null || $t.call(console, Ut);
+ (nn = console.debug) == null || nn.call(console, Ut);
}
try {
- bt();
+ It();
} catch (Ut) {
(An = console.debug) == null || An.call(console, Ut);
}
try {
- Oe == null || Oe();
+ pe == null || pe();
} catch (Ut) {
(vn = console.debug) == null || vn.call(console, Ut);
}
- Re();
+ Oe();
try {
Ot();
} catch (Ut) {
- (dn = console.debug) == null || dn.call(console, Ut);
+ (un = console.debug) == null || un.call(console, Ut);
}
try {
- Qe().then(() => {
+ qe().then(() => {
var Ut;
try {
- Be();
- } catch (Tt) {
- (Ut = console.debug) == null || Ut.call(console, Tt);
+ Ke();
+ } catch (Jt) {
+ (Ut = console.debug) == null || Ut.call(console, Jt);
}
});
} catch (Ut) {
(Mn = console.debug) == null || Mn.call(console, Ut);
}
try {
- const Ut = i.mode === xt.SINGLE;
+ const Ut = i.mode === jt.SINGLE;
le.sync({ isSingle: Ut });
} catch (Ut) {
(yn = console.debug) == null || yn.call(console, Ut);
}
}
- function ke() {
- var je, Ne, $e, et, tt;
+ function Re() {
+ var ve, Fe, _e, et, tt;
const ae = i.assets[i.currentIndex];
if (!ae) return;
- const fe = Bi(ae);
- if (!fe) {
+ const he = Ki(ae);
+ if (!he) {
try {
- ci(O);
- } catch (ct) {
- (je = console.debug) == null || je.call(console, ct);
+ di(z);
+ } catch (st) {
+ (ve = console.debug) == null || ve.call(console, st);
}
try {
- O.replaceChildren();
- const ct = document.createElement("div");
- ct.className = "mjr-viewer-media", ct.style.cssText = "color:#ff9a9a; font-size:13px; padding:16px; text-align:center;", ct.textContent = "Cannot open asset: missing or invalid filename/path.", O.appendChild(ct);
- } catch (ct) {
- (Ne = console.debug) == null || Ne.call(console, ct);
+ z.replaceChildren();
+ const st = document.createElement("div");
+ st.className = "mjr-viewer-media", st.style.cssText = "color:#ff9a9a; font-size:13px; padding:16px; text-align:center;", st.textContent = "Cannot open asset: missing or invalid filename/path.", z.appendChild(st);
+ } catch (st) {
+ (Fe = console.debug) == null || Fe.call(console, st);
}
return;
}
- if (i.mode === xt.SINGLE) {
+ if (i.mode === jt.SINGLE) {
try {
- ci(O);
- } catch (Lt) {
- ($e = console.debug) == null || $e.call(console, Lt);
+ di(z);
+ } catch (Vt) {
+ (_e = console.debug) == null || _e.call(console, Vt);
}
- O.innerHTML = "", i._mediaW = 0, i._mediaH = 0;
- const ct = g(ae, fe);
- O.appendChild(ct);
- } else i.mode === xt.AB_COMPARE ? nt() && ((et = Yo == null ? void 0 : Yo.renderABCompareView) == null || et.call(Yo, {
+ z.innerHTML = "", i._mediaW = 0, i._mediaH = 0;
+ const st = g(ae, he);
+ z.appendChild(st);
+ } else i.mode === jt.AB_COMPARE ? nt() && ((et = ko == null ? void 0 : ko.renderABCompareView) == null || et.call(ko, {
abView: B,
state: i,
currentAsset: ae,
- viewUrl: fe,
- buildAssetViewURL: Bi,
- createCompareMediaElement: h,
- destroyMediaProcessorsIn: ci
- })) : i.mode === xt.SIDE_BY_SIDE && mt() && ((tt = Vo == null ? void 0 : Vo.renderSideBySideView) == null || tt.call(Vo, {
+ viewUrl: he,
+ buildAssetViewURL: Ki,
+ createCompareMediaElement: Z,
+ destroyMediaProcessorsIn: di
+ })) : i.mode === jt.SIDE_BY_SIDE && ut() && ((tt = Xo == null ? void 0 : Xo.renderSideBySideView) == null || tt.call(Xo, {
sideView: J,
state: i,
currentAsset: ae,
- viewUrl: fe,
- buildAssetViewURL: Bi,
+ viewUrl: he,
+ buildAssetViewURL: Ki,
createMediaElement: g,
- destroyMediaProcessorsIn: ci
+ destroyMediaProcessorsIn: di
}));
s(), u();
}
const {
- preloadAdjacentAssets: Ct
- } = KA({
- buildAssetViewURL: Bi,
+ preloadAdjacentAssets: Wt
+ } = HA({
+ buildAssetViewURL: Ki,
IMAGE_PRELOAD_EXTENSIONS: o,
state: i
- }), { destroyPlayerBar: at, syncPlayerBar: zt } = EA({
+ }), { destroyPlayerBar: lt, syncPlayerBar: qt } = PA({
state: i,
- APP_CONFIG: ye,
- VIEWER_MODES: xt,
+ APP_CONFIG: fe,
+ VIEWER_MODES: jt,
overlay: e,
- navBar: $,
+ navBar: Q,
playerBarHost: _,
- singleView: O,
+ singleView: z,
abView: B,
sideView: J,
- metadataHydrator: Ze,
- isPlayableViewerKind: EZ,
- collectPlayableMediaElements: HZ,
- pickPrimaryPlayableMedia: qZ,
- mountUnifiedMediaControls: PZ,
- installFollowerVideoSync: cA,
- getViewerInfo: Bg,
- scheduleOverlayRedraw: Re,
- viewerInfoCacheGet: De,
- viewerInfoCacheSet: Pe
- }), Zt = () => zt(), gt = ye.VIEWER_MAX_PROC_PIXELS ?? 12e6, kt = () => ({
+ metadataHydrator: ge,
+ isPlayableViewerKind: PZ,
+ collectPlayableMediaElements: QZ,
+ pickPrimaryPlayableMedia: _Z,
+ mountUnifiedMediaControls: $Z,
+ installFollowerVideoSync: uA,
+ getViewerInfo: Ug,
+ scheduleOverlayRedraw: Oe,
+ viewerInfoCacheGet: Je,
+ viewerInfoCacheSet: $e
+ }), yt = () => qt(), mt = fe.VIEWER_MAX_PROC_PIXELS ?? 12e6, kt = () => ({
exposureEV: Number(i.exposureEV) || 0,
gamma: Math.max(0.1, Math.min(3, Number(i.gamma) || 1)),
channel: i.channel || "rgb",
analysisMode: i.analysisMode || "none",
zebraThreshold: Math.max(0, Math.min(1, Number(i.zebraThreshold) || 0.95))
- }), Qt = () => {
- var fe, je, Ne, $e;
+ }), $t = () => {
+ var he, ve, Fe, _e;
const ae = kt();
try {
const et = e.querySelectorAll(".mjr-viewer-media");
for (const tt of et)
try {
- const ct = tt == null ? void 0 : tt._mjrProc;
- ct != null && ct.setParams && ct.setParams(ae);
- } catch (ct) {
- (fe = console.debug) == null || fe.call(console, ct);
+ const st = tt == null ? void 0 : tt._mjrProc;
+ st != null && st.setParams && st.setParams(ae);
+ } catch (st) {
+ (he = console.debug) == null || he.call(console, st);
}
} catch (et) {
- (je = console.debug) == null || je.call(console, et);
+ (ve = console.debug) == null || ve.call(console, et);
}
try {
- (i == null ? void 0 : i.mode) === xt.AB_COMPARE && ((Ne = B == null ? void 0 : B._mjrDiffRequest) == null || Ne.call(B));
+ (i == null ? void 0 : i.mode) === jt.AB_COMPARE && ((Fe = B == null ? void 0 : B._mjrDiffRequest) == null || Fe.call(B));
} catch (et) {
- ($e = console.debug) == null || $e.call(console, et);
+ (_e = console.debug) == null || _e.call(console, et);
}
- }, te = (ae) => {
+ }, Tt = (ae) => {
try {
if (!ae) return !0;
- const fe = Number(ae.exposureEV) || 0, je = Number(ae.gamma) || 1, Ne = String(ae.channel || "rgb"), $e = String(ae.analysisMode || "none");
- return Math.abs(fe) < 1e-4 && Math.abs(je - 1) < 1e-4 && Ne === "rgb" && $e === "none";
+ const he = Number(ae.exposureEV) || 0, ve = Number(ae.gamma) || 1, Fe = String(ae.channel || "rgb"), _e = String(ae.analysisMode || "none");
+ return Math.abs(he) < 1e-4 && Math.abs(ve - 1) < 1e-4 && Fe === "rgb" && _e === "none";
} catch {
return !0;
}
- }, ge = ye.VIEWER_MAX_PROC_PIXELS_VIDEO ?? 3e6, we = ye.VIEWER_VIDEO_GRADE_THROTTLE_FPS ?? 15;
+ }, te = fe.VIEWER_MAX_PROC_PIXELS_VIDEO ?? 3e6, ye = fe.VIEWER_VIDEO_GRADE_THROTTLE_FPS ?? 15;
try {
- l = UA({
+ l = EA({
overlay: e,
state: i,
mediaTransform: a,
- updateMediaNaturalSize: A,
+ updateMediaNaturalSize: C,
clampPanToBounds: c,
applyTransform: s,
- scheduleOverlayRedraw: Re,
+ scheduleOverlayRedraw: Oe,
getGradeParams: kt,
- isDefaultGrade: te,
+ isDefaultGrade: Tt,
tonemap: null,
- maxProcPixels: gt,
- maxProcPixelsVideo: ge,
- disableWebGL: !!ye.VIEWER_DISABLE_WEBGL_VIDEO,
- videoGradeThrottleFps: we,
- safeAddListener: _e,
- safeCall: pt
+ maxProcPixels: mt,
+ maxProcPixelsVideo: te,
+ disableWebGL: !!fe.VIEWER_DISABLE_WEBGL_VIDEO,
+ videoGradeThrottleFps: ye,
+ safeAddListener: Qe,
+ safeCall: bt
});
} catch {
l = null;
}
n.push(
- _e(ce, "click", () => {
- i.currentIndex > 0 && (i.currentIndex--, st());
+ Qe(ce, "click", () => {
+ i.currentIndex > 0 && (i.currentIndex--, dt());
})
), n.push(
- _e(H, "click", () => {
- i.currentIndex < i.assets.length - 1 && (i.currentIndex++, st());
+ Qe(U, "click", () => {
+ i.currentIndex < i.assets.length - 1 && (i.currentIndex++, dt());
})
);
- let be = null;
- const Oe = () => {
+ let We = null;
+ const pe = () => {
var ae;
try {
- if (be != null) return;
- be = requestAnimationFrame(() => {
- var fe;
- be = null;
+ if (We != null) return;
+ We = requestAnimationFrame(() => {
+ var he;
+ We = null;
try {
- Qt();
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ $t();
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
});
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
- }, ot = () => {
- var ae, fe;
+ }, De = () => {
+ var ae, he;
try {
(ae = b == null ? void 0 : b.syncToolsUIFromState) == null || ae.call(b);
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
- }, dt = (ae) => {
+ }, ot = (ae) => {
if (!Array.isArray(i.assets) || i.assets.length === 0)
return !1;
- const fe = i.currentIndex + ae;
- return fe < 0 || fe >= i.assets.length ? !1 : (i.currentIndex = fe, st(), !0);
- }, en = (ae) => {
- var et, tt, ct, Lt, Bt, Nt;
+ const he = i.currentIndex + ae;
+ return he < 0 || he >= i.assets.length ? !1 : (i.currentIndex = he, dt(), !0);
+ }, Zt = (ae) => {
+ var et, tt, st, Vt, Bt, Rt;
if (e.style.display === "none") return;
try {
- const ht = ae.target;
- if (ht && (ht.tagName === "INPUT" || ht.tagName === "TEXTAREA" || ht.tagName === "SELECT" || ht.isContentEditable))
+ const Ct = ae.target;
+ if (Ct && (Ct.tagName === "INPUT" || Ct.tagName === "TEXTAREA" || Ct.tagName === "SELECT" || Ct.isContentEditable))
return;
- } catch (ht) {
- (et = console.debug) == null || et.call(console, ht);
+ } catch (Ct) {
+ (et = console.debug) == null || et.call(console, Ct);
}
try {
- if (!q.contains(ae.target)) return;
- } catch (ht) {
- (tt = console.debug) == null || tt.call(console, ht);
+ if (!K.contains(ae.target)) return;
+ } catch (Ct) {
+ (tt = console.debug) == null || tt.call(console, Ct);
}
try {
- if ((ct = ti == null ? void 0 : ti.isModel3DInteractionTarget) != null && ct.call(ti, ae == null ? void 0 : ae.target)) return;
- } catch (ht) {
- (Lt = console.debug) == null || Lt.call(console, ht);
+ if ((st = ti == null ? void 0 : ti.isModel3DInteractionTarget) != null && st.call(ti, ae == null ? void 0 : ae.target)) return;
+ } catch (Ct) {
+ (Vt = console.debug) == null || Vt.call(console, Ct);
}
try {
ae.preventDefault(), ae.stopPropagation(), (Bt = ae.stopImmediatePropagation) == null || Bt.call(ae);
- } catch (ht) {
- (Nt = console.debug) == null || Nt.call(console, ht);
+ } catch (Ct) {
+ (Rt = console.debug) == null || Rt.call(console, Ct);
}
- const fe = Number(ae.deltaX) || 0, je = Number(ae.deltaY) || 0;
- if (ae.shiftKey && je) {
- const ht = je > 0 ? 1 : -1;
- if (dt(ht)) return;
+ const he = Number(ae.deltaX) || 0, ve = Number(ae.deltaY) || 0;
+ if (ae.shiftKey && ve) {
+ const Ct = ve > 0 ? 1 : -1;
+ if (ot(Ct)) return;
}
- if (Math.abs(fe) > Math.abs(je) && Math.abs(fe) > 30) {
- const ht = fe > 0 ? 1 : -1;
- if (dt(ht)) return;
+ if (Math.abs(he) > Math.abs(ve) && Math.abs(he) > 30) {
+ const Ct = he > 0 ? 1 : -1;
+ if (ot(Ct)) return;
}
- if (!je) return;
- const Ne = Math.exp(-je * 15e-4), $e = (Number(i.zoom) || 1) * Ne;
- d($e, { clientX: ae.clientX, clientY: ae.clientY });
- }, un = (ae, fe, je, { offsetX: Ne = 16, offsetY: $e = 16 } = {}) => {
+ if (!ve) return;
+ const Fe = Math.exp(-ve * 15e-4), _e = (Number(i.zoom) || 1) * Fe;
+ d(_e, { clientX: ae.clientX, clientY: ae.clientY });
+ }, tn = (ae, he, ve, { offsetX: Fe = 16, offsetY: _e = 16 } = {}) => {
var et;
try {
- const tt = M();
+ const tt = S();
if (!tt) return;
- const ct = q.getBoundingClientRect(), Lt = (Number(fe) || 0) - ct.left, Bt = (Number(je) || 0) - ct.top, Nt = Number(ae.offsetWidth) || 0, ht = Number(ae.offsetHeight) || 0;
- let Jt = Lt + Ne, It = Bt + $e;
+ const st = K.getBoundingClientRect(), Vt = (Number(he) || 0) - st.left, Bt = (Number(ve) || 0) - st.top, Rt = Number(ae.offsetWidth) || 0, Ct = Number(ae.offsetHeight) || 0;
+ let zt = Vt + Fe, gt = Bt + _e;
const mn = 10;
- Jt = Math.max(mn, Math.min(Jt, tt.width - Nt - mn)), It = Math.max(mn, Math.min(It, tt.height - ht - mn)), ae.style.left = `${Math.round(Jt)}px`, ae.style.top = `${Math.round(It)}px`;
+ zt = Math.max(mn, Math.min(zt, tt.width - Rt - mn)), gt = Math.max(mn, Math.min(gt, tt.height - Ct - mn)), ae.style.left = `${Math.round(zt)}px`, ae.style.top = `${Math.round(gt)}px`;
} catch (tt) {
(et = console.debug) == null || et.call(console, tt);
}
- }, Wt = uA({
+ }, Pt = IA({
state: i,
loupeCanvas: E,
- loupeWrap: Q,
+ loupeWrap: $,
getMediaNaturalSize: p,
- positionOverlayBox: un
- }), tn = dA({
+ positionOverlayBox: tn
+ }), vt = gA({
overlay: e,
- content: q,
+ content: K,
state: i,
- VIEWER_MODES: xt,
+ VIEWER_MODES: jt,
getPrimaryMedia: I,
getMediaNaturalSize: p,
- getViewportRect: M,
- positionOverlayBox: un,
- probeTooltip: D,
- loupeWrap: Q,
- onLoupeRedraw: Wt.redraw,
+ getViewportRect: S,
+ positionOverlayBox: tn,
+ probeTooltip: H,
+ loupeWrap: $,
+ onLoupeRedraw: Pt.redraw,
lifecycle: t
});
try {
- if (!q._mjrOverlayResizeBound && "ResizeObserver" in window) {
+ if (!K._mjrOverlayResizeBound && "ResizeObserver" in window) {
try {
- (Vn = (qt = e._mjrResizeObserver) == null ? void 0 : qt.disconnect) == null || Vn.call(qt);
- } catch (fe) {
- (wn = console.debug) == null || wn.call(console, fe);
+ (Yn = (Qt = e._mjrResizeObserver) == null ? void 0 : Qt.disconnect) == null || Yn.call(Qt);
+ } catch (he) {
+ (wn = console.debug) == null || wn.call(console, he);
}
const ae = new ResizeObserver(() => {
- var fe;
+ var he;
try {
i._viewportCache = null;
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
- Re();
+ Oe();
});
try {
- ae.observe(q);
- } catch (fe) {
- (xn = console.debug) == null || xn.call(console, fe);
+ ae.observe(K);
+ } catch (he) {
+ (xn = console.debug) == null || xn.call(console, he);
}
e._mjrResizeObserver = ae, n.push(() => {
- var fe;
+ var he;
try {
ae.disconnect();
- } catch (je) {
- (fe = console.debug) == null || fe.call(console, je);
+ } catch (ve) {
+ (he = console.debug) == null || he.call(console, ve);
}
- }), q._mjrOverlayResizeBound = !0;
+ }), K._mjrOverlayResizeBound = !0;
}
} catch (ae) {
- (_t = console.debug) == null || _t.call(console, ae);
+ (en = console.debug) == null || en.call(console, ae);
}
- const re = lA({
+ const re = sA({
overlay: e,
- content: q,
- singleView: O,
+ content: K,
+ singleView: z,
state: i,
- VIEWER_MODES: xt,
- computeOneToOneZoom: Z,
+ VIEWER_MODES: jt,
+ computeOneToOneZoom: A,
setZoom: d,
- scheduleOverlayRedraw: Re,
- scheduleApplyGrade: Oe,
- syncToolsUIFromState: ot,
- applyDistractionFreeUI: bt,
- navigateViewerAssets: dt,
- closeViewer: qe,
- renderBadges: Be,
- updateAssetRating: Do,
- safeDispatchCustomEvent: ii,
- ASSET_RATING_CHANGED_EVENT: Ri,
- probeTooltip: D,
- loupeWrap: Q,
+ scheduleOverlayRedraw: Oe,
+ scheduleApplyGrade: pe,
+ syncToolsUIFromState: De,
+ applyDistractionFreeUI: It,
+ navigateViewerAssets: ot,
+ closeViewer: He,
+ renderBadges: Ke,
+ updateAssetRating: Ho,
+ safeDispatchCustomEvent: oi,
+ ASSET_RATING_CHANGED_EVENT: Fi,
+ probeTooltip: H,
+ loupeWrap: $,
renderGenInfoPanel: Ot,
getVideoControls: () => {
try {
@@ -21853,184 +21868,184 @@ function aW() {
},
lifecycle: t
});
- let ie = [];
- const me = () => {
- var ae, fe, je;
+ let ne = [];
+ const Ie = () => {
+ var ae, he, ve;
try {
- for (const Ne of ie) pt(Ne);
- } catch (Ne) {
- (ae = console.debug) == null || ae.call(console, Ne);
+ for (const Fe of ne) bt(Fe);
+ } catch (Fe) {
+ (ae = console.debug) == null || ae.call(console, Fe);
}
- ie = [];
+ ne = [];
try {
- (fe = re == null ? void 0 : re.unbind) == null || fe.call(re);
- } catch (Ne) {
- (je = console.debug) == null || je.call(console, Ne);
+ (he = re == null ? void 0 : re.unbind) == null || he.call(re);
+ } catch (Fe) {
+ (ve = console.debug) == null || ve.call(console, Fe);
}
- }, Xe = () => {
- var ae, fe, je, Ne, $e, et;
- me();
+ }, Ne = () => {
+ var ae, he, ve, Fe, _e, et;
+ Ie();
try {
- ie.push(
- _e(e, "click", (tt) => {
- var ct;
+ ne.push(
+ Qe(e, "click", (tt) => {
+ var st;
try {
if (tt.target !== e) return;
- } catch (Lt) {
- (ct = console.debug) == null || ct.call(console, Lt);
+ } catch (Vt) {
+ (st = console.debug) == null || st.call(console, Vt);
}
- qe();
+ He();
})
);
} catch (tt) {
(ae = console.debug) == null || ae.call(console, tt);
}
try {
- ie.push(
- _e(q, "wheel", en, { passive: !1, capture: !0 })
+ ne.push(
+ Qe(K, "wheel", Zt, { passive: !1, capture: !0 })
);
} catch (tt) {
- (fe = console.debug) == null || fe.call(console, tt);
+ (he = console.debug) == null || he.call(console, tt);
}
try {
let tt = null;
- const ct = 60, Lt = 80;
- ie.push(
- _e(q, "touchstart", (Bt) => {
- var Nt, ht;
+ const st = 60, Vt = 80;
+ ne.push(
+ Qe(K, "touchstart", (Bt) => {
+ var Rt, Ct;
try {
- if (((Nt = Bt.touches) == null ? void 0 : Nt.length) !== 1) return;
- const Jt = Bt.touches[0];
- tt = { x: Jt.clientX, y: Jt.clientY, t: Date.now() };
- } catch (Jt) {
- (ht = console.debug) == null || ht.call(console, Jt);
+ if (((Rt = Bt.touches) == null ? void 0 : Rt.length) !== 1) return;
+ const zt = Bt.touches[0];
+ tt = { x: zt.clientX, y: zt.clientY, t: Date.now() };
+ } catch (zt) {
+ (Ct = console.debug) == null || Ct.call(console, zt);
}
}, { passive: !0 })
- ), ie.push(
- _e(q, "touchend", (Bt) => {
- var Nt, ht;
+ ), ne.push(
+ Qe(K, "touchend", (Bt) => {
+ var Rt, Ct;
try {
if (!tt) return;
- if (((Nt = Bt.changedTouches) == null ? void 0 : Nt.length) !== 1) {
+ if (((Rt = Bt.changedTouches) == null ? void 0 : Rt.length) !== 1) {
tt = null;
return;
}
- const Jt = Bt.changedTouches[0], It = Jt.clientX - tt.x, mn = Jt.clientY - tt.y, Mt = Date.now() - tt.t;
- if (tt = null, Mt > 600 || Math.abs(mn) > Lt) return;
- if (Math.abs(It) >= ct) {
- const nn = It < 0 ? 1 : -1;
- dt(nn);
+ const zt = Bt.changedTouches[0], gt = zt.clientX - tt.x, mn = zt.clientY - tt.y, wt = Date.now() - tt.t;
+ if (tt = null, wt > 600 || Math.abs(mn) > Vt) return;
+ if (Math.abs(gt) >= st) {
+ const on = gt < 0 ? 1 : -1;
+ ot(on);
}
- } catch (Jt) {
- (ht = console.debug) == null || ht.call(console, Jt);
+ } catch (zt) {
+ (Ct = console.debug) == null || Ct.call(console, zt);
}
}, { passive: !0 })
- ), ie.push(
- _e(q, "touchcancel", () => {
+ ), ne.push(
+ Qe(K, "touchcancel", () => {
tt = null;
}, { passive: !0 })
);
} catch (tt) {
- (je = console.debug) == null || je.call(console, tt);
+ (ve = console.debug) == null || ve.call(console, tt);
}
try {
- ie.push(
- _e(
- q,
+ ne.push(
+ Qe(
+ K,
"mousemove",
(tt) => {
- var ct;
+ var st;
try {
i._lastPointerX = tt.clientX, i._lastPointerY = tt.clientY;
- } catch (Lt) {
- (ct = console.debug) == null || ct.call(console, Lt);
+ } catch (Vt) {
+ (st = console.debug) == null || st.call(console, Vt);
}
},
{ passive: !0, capture: !0 }
)
);
} catch (tt) {
- (Ne = console.debug) == null || Ne.call(console, tt);
+ (Fe = console.debug) == null || Fe.call(console, tt);
}
try {
- ($e = re == null ? void 0 : re.bind) == null || $e.call(re);
+ (_e = re == null ? void 0 : re.bind) == null || _e.call(re);
} catch (tt) {
(et = console.debug) == null || et.call(console, tt);
}
};
try {
if (!e._mjrBadgeSyncBound) {
- const ae = (je) => {
- var Ne, $e, et, tt, ct;
+ const ae = (ve) => {
+ var Fe, _e, et, tt, st;
try {
- const Lt = (Ne = je == null ? void 0 : je.detail) == null ? void 0 : Ne.assetId, Bt = ($e = je == null ? void 0 : je.detail) == null ? void 0 : $e.rating;
- if (Lt == null) return;
- for (const Nt of i.assets || [])
- (Nt == null ? void 0 : Nt.id) != null && String(Nt.id) === String(Lt) && (Nt.rating = Bt);
+ const Vt = (Fe = ve == null ? void 0 : ve.detail) == null ? void 0 : Fe.assetId, Bt = (_e = ve == null ? void 0 : ve.detail) == null ? void 0 : _e.rating;
+ if (Vt == null) return;
+ for (const Rt of i.assets || [])
+ (Rt == null ? void 0 : Rt.id) != null && String(Rt.id) === String(Vt) && (Rt.rating = Bt);
try {
- (et = Ze == null ? void 0 : Ze.deleteCached) == null || et.call(Ze, Lt);
- } catch (Nt) {
- (tt = console.debug) == null || tt.call(console, Nt);
+ (et = ge == null ? void 0 : ge.deleteCached) == null || et.call(ge, Vt);
+ } catch (Rt) {
+ (tt = console.debug) == null || tt.call(console, Rt);
}
- Be();
- } catch (Lt) {
- (ct = console.debug) == null || ct.call(console, Lt);
+ Ke();
+ } catch (Vt) {
+ (st = console.debug) == null || st.call(console, Vt);
}
- }, fe = (je) => {
- var Ne, $e, et, tt, ct;
+ }, he = (ve) => {
+ var Fe, _e, et, tt, st;
try {
- const Lt = (Ne = je == null ? void 0 : je.detail) == null ? void 0 : Ne.assetId, Bt = ($e = je == null ? void 0 : je.detail) == null ? void 0 : $e.tags;
- if (Lt == null) return;
- for (const Nt of i.assets || [])
- (Nt == null ? void 0 : Nt.id) != null && String(Nt.id) === String(Lt) && (Nt.tags = Bt);
+ const Vt = (Fe = ve == null ? void 0 : ve.detail) == null ? void 0 : Fe.assetId, Bt = (_e = ve == null ? void 0 : ve.detail) == null ? void 0 : _e.tags;
+ if (Vt == null) return;
+ for (const Rt of i.assets || [])
+ (Rt == null ? void 0 : Rt.id) != null && String(Rt.id) === String(Vt) && (Rt.tags = Bt);
try {
- (et = Ze == null ? void 0 : Ze.deleteCached) == null || et.call(Ze, Lt);
- } catch (Nt) {
- (tt = console.debug) == null || tt.call(console, Nt);
+ (et = ge == null ? void 0 : ge.deleteCached) == null || et.call(ge, Vt);
+ } catch (Rt) {
+ (tt = console.debug) == null || tt.call(console, Rt);
}
- Be();
- } catch (Lt) {
- (ct = console.debug) == null || ct.call(console, Lt);
+ Ke();
+ } catch (Vt) {
+ (st = console.debug) == null || st.call(console, Vt);
}
};
n.push(
- _e(window, Ri, ae, {
+ Qe(window, Fi, ae, {
passive: !0
})
), n.push(
- _e(window, Uo, fe, { passive: !0 })
+ Qe(window, Do, he, { passive: !0 })
), e._mjrBadgeSyncBound = !0;
}
} catch (ae) {
- (Yn = console.debug) == null || Yn.call(console, ae);
+ (Vn = console.debug) == null || Vn.call(console, ae);
}
- function qe() {
- var fe, je, Ne, $e, et, tt, ct, Lt, Bt, Nt, ht, Jt, It, mn, Mt, nn, rn, hn, ln, gn, $t, An, vn, dn, Mn, yn, Ut, Tt, io, oo, ro, yi, Le, it, Vt, on, cn, Bn, Li, Yi, fi, Vi, vr, Lr, Yr, Vr;
+ function He() {
+ var he, ve, Fe, _e, et, tt, st, Vt, Bt, Rt, Ct, zt, gt, mn, wt, on, rn, hn, ln, gn, nn, An, vn, un, Mn, yn, Ut, Jt, ro, lo, ao, hi, Ve, it, xt, an, sn, Bn, Yi, ki, Ji, ci, Ci, Yr, kr, Xr;
try {
- i.distractionFree = !1, bt();
+ i.distractionFree = !1, It();
} catch (Ht) {
- (fe = console.debug) == null || fe.call(console, Ht);
+ (he = console.debug) == null || he.call(console, Ht);
}
try {
- (je = Ze == null ? void 0 : Ze.abort) == null || je.call(Ze);
+ (ve = ge == null ? void 0 : ge.abort) == null || ve.call(ge);
} catch (Ht) {
- (Ne = console.debug) == null || Ne.call(console, Ht);
+ (Fe = console.debug) == null || Fe.call(console, Ht);
}
try {
- at();
+ lt();
} catch (Ht) {
- ($e = console.debug) == null || $e.call(console, Ht);
+ (_e = console.debug) == null || _e.call(console, Ht);
}
try {
(tt = (et = i._scopesVideoAbort) == null ? void 0 : et.abort) == null || tt.call(et);
} catch (Ht) {
- (ct = console.debug) == null || ct.call(console, Ht);
+ (st = console.debug) == null || st.call(console, Ht);
}
i._scopesVideoAbort = null;
try {
i._panHintTimer && clearTimeout(i._panHintTimer);
} catch (Ht) {
- (Lt = console.debug) == null || Lt.call(console, Ht);
+ (Vt = console.debug) == null || Vt.call(console, Ht);
}
i._panHintTimer = null;
try {
@@ -22039,19 +22054,19 @@ function aW() {
(Bt = console.debug) == null || Bt.call(console, Ht);
}
try {
- (ht = (Nt = B == null ? void 0 : B._mjrSyncAbort) == null ? void 0 : Nt.abort) == null || ht.call(Nt);
+ (Ct = (Rt = B == null ? void 0 : B._mjrSyncAbort) == null ? void 0 : Rt.abort) == null || Ct.call(Rt);
} catch (Ht) {
- (Jt = console.debug) == null || Jt.call(console, Ht);
+ (zt = console.debug) == null || zt.call(console, Ht);
}
try {
- (mn = (It = B == null ? void 0 : B._mjrDiffAbort) == null ? void 0 : It.abort) == null || mn.call(It);
+ (mn = (gt = B == null ? void 0 : B._mjrDiffAbort) == null ? void 0 : gt.abort) == null || mn.call(gt);
} catch (Ht) {
- (Mt = console.debug) == null || Mt.call(console, Ht);
+ (wt = console.debug) == null || wt.call(console, Ht);
}
try {
B._mjrSyncAbort = null;
} catch (Ht) {
- (nn = console.debug) == null || nn.call(console, Ht);
+ (on = console.debug) == null || on.call(console, Ht);
}
try {
B._mjrDiffAbort = null;
@@ -22066,12 +22081,12 @@ function aW() {
try {
J._mjrSyncAbort = null;
} catch (Ht) {
- ($t = console.debug) == null || $t.call(console, Ht);
+ (nn = console.debug) == null || nn.call(console, Ht);
}
try {
(vn = (An = B == null ? void 0 : B._mjrSliderAbort) == null ? void 0 : An.abort) == null || vn.call(An);
} catch (Ht) {
- (dn = console.debug) == null || dn.call(console, Ht);
+ (un = console.debug) == null || un.call(console, Ht);
}
try {
B._mjrSliderAbort = null;
@@ -22088,77 +22103,77 @@ function aW() {
(Ut = console.debug) == null || Ut.call(console, qn);
}
try {
- (Tt = $n.pause) == null || Tt.call($n);
+ (Jt = $n.pause) == null || Jt.call($n);
} catch (qn) {
- (io = console.debug) == null || io.call(console, qn);
+ (ro = console.debug) == null || ro.call(console, qn);
}
try {
$n.currentTime = 0;
} catch (qn) {
- (oo = console.debug) == null || oo.call(console, qn);
+ (lo = console.debug) == null || lo.call(console, qn);
}
try {
- const qn = (ro = $n.querySelectorAll) == null ? void 0 : ro.call($n, "source");
+ const qn = (ao = $n.querySelectorAll) == null ? void 0 : ao.call($n, "source");
if (qn && qn.length)
- for (const Ml of qn)
+ for (const Sl of qn)
try {
- Ml.remove();
- } catch (Sl) {
- (yi = console.debug) == null || yi.call(console, Sl);
+ Sl.remove();
+ } catch (Gl) {
+ (hi = console.debug) == null || hi.call(console, Gl);
}
} catch (qn) {
- (Le = console.debug) == null || Le.call(console, qn);
+ (Ve = console.debug) == null || Ve.call(console, qn);
}
try {
(it = $n.removeAttribute) == null || it.call($n, "src");
} catch (qn) {
- (Vt = console.debug) == null || Vt.call(console, qn);
+ (xt = console.debug) == null || xt.call(console, qn);
}
try {
- (on = $n.load) == null || on.call($n);
+ (an = $n.load) == null || an.call($n);
} catch (qn) {
- (cn = console.debug) == null || cn.call(console, qn);
+ (sn = console.debug) == null || sn.call(console, qn);
}
}
} catch (Ht) {
(Bn = console.debug) == null || Bn.call(console, Ht);
}
try {
- ci(O), O.replaceChildren();
- } catch (Ht) {
- (Li = console.debug) == null || Li.call(console, Ht);
- }
- try {
- ci(B), B.replaceChildren();
+ di(z), z.replaceChildren();
} catch (Ht) {
(Yi = console.debug) == null || Yi.call(console, Ht);
}
try {
- ci(J), J.replaceChildren();
+ di(B), B.replaceChildren();
} catch (Ht) {
- (fi = console.debug) == null || fi.call(console, Ht);
+ (ki = console.debug) == null || ki.call(console, Ht);
+ }
+ try {
+ di(J), J.replaceChildren();
+ } catch (Ht) {
+ (Ji = console.debug) == null || Ji.call(console, Ht);
}
try {
i.genInfoOpen = !1;
} catch (Ht) {
- (Vi = console.debug) == null || Vi.call(console, Ht);
+ (ci = console.debug) == null || ci.call(console, Ht);
}
try {
- ue();
+ me();
} catch (Ht) {
- (vr = console.debug) == null || vr.call(console, Ht);
+ (Ci = console.debug) == null || Ci.call(console, Ht);
}
try {
- K.style.display = "none", Gt(Y);
- } catch (Ht) {
- (Lr = console.debug) == null || Lr.call(console, Ht);
- }
- try {
- U.style.display = "none", Gt(ee);
+ oe.style.display = "none", Mt(j);
} catch (Ht) {
(Yr = console.debug) == null || Yr.call(console, Ht);
}
- e.style.display = "none", e.style.pointerEvents = "none", me();
+ try {
+ O.style.display = "none", Mt(q);
+ } catch (Ht) {
+ (kr = console.debug) == null || kr.call(console, Ht);
+ }
+ e.style.display = "none", e.style.pointerEvents = "none", Ie();
try {
document.body.style.overflow = i._prevBodyOverflow ?? "";
} catch {
@@ -22167,34 +22182,34 @@ function aW() {
try {
i._prevFocusedElement && typeof i._prevFocusedElement.focus == "function" && i._prevFocusedElement.focus(), i._prevFocusedElement = null;
} catch (Ht) {
- (Vr = console.debug) == null || Vr.call(console, Ht);
+ (Xr = console.debug) == null || Xr.call(console, Ht);
}
const ae = i == null ? void 0 : i._prevHotkeyScope;
- Zr(ae || "panel"), i._prevHotkeyScope = null;
+ wr(ae || "panel"), i._prevHotkeyScope = null;
}
- const ut = {
- open(ae, fe = 0, je = null) {
- var Ne, $e, et, tt, ct, Lt;
- Xe(), i.assets = Array.isArray(ae) ? ae : [ae], i.currentIndex = Math.max(0, Math.min(fe, i.assets.length - 1)), i.distractionFree = !1;
+ const rt = {
+ open(ae, he = 0, ve = null) {
+ var Fe, _e, et, tt, st, Vt;
+ Ne(), i.assets = Array.isArray(ae) ? ae : [ae], i.currentIndex = Math.max(0, Math.min(he, i.assets.length - 1)), i.distractionFree = !1;
try {
le.rebuild();
} catch (Bt) {
- (Ne = console.debug) == null || Ne.call(console, Bt);
+ (Fe = console.debug) == null || Fe.call(console, Bt);
}
i.zoom = 1, i.panX = 0, i.panY = 0, i.targetZoom = 1, i._userInteracted = !1, i._panHintAt = 0;
try {
i._panHintTimer && clearTimeout(i._panHintTimer);
} catch (Bt) {
- ($e = console.debug) == null || $e.call(console, Bt);
+ (_e = console.debug) == null || _e.call(console, Bt);
}
- i._panHintTimer = null, i._lastPointerX = null, i._lastPointerY = null, i._mediaW = 0, i._mediaH = 0, i.compareAsset = je, i.gridMode = 0, ue(), i._probe = null;
+ i._panHintTimer = null, i._lastPointerX = null, i._lastPointerY = null, i._mediaW = 0, i._mediaH = 0, i.compareAsset = ve, i.gridMode = 0, me(), i._probe = null;
try {
- D.style.display = "none";
+ H.style.display = "none";
} catch (Bt) {
(et = console.debug) == null || et.call(console, Bt);
}
try {
- Q.style.display = "none";
+ $.style.display = "none";
} catch (Bt) {
(tt = console.debug) == null || tt.call(console, Bt);
}
@@ -22210,139 +22225,139 @@ function aW() {
} catch {
i._prevBodyOverflow = "";
}
- document.body.style.overflow = "hidden", i._prevHotkeyScope = Wo().scope || null, Zr("viewer"), st();
+ document.body.style.overflow = "hidden", i._prevHotkeyScope = Mo().scope || null, wr("viewer"), dt();
try {
- ot();
+ De();
} catch (Bt) {
- (ct = console.debug) == null || ct.call(console, Bt);
+ (st = console.debug) == null || st.call(console, Bt);
}
try {
- Oe();
+ pe();
} catch (Bt) {
- (Lt = console.debug) == null || Lt.call(console, Bt);
+ (Vt = console.debug) == null || Vt.call(console, Bt);
}
- Re();
+ Oe();
},
close() {
- qe();
+ He();
},
setMode(ae) {
- Object.values(xt).includes(ae) && (i.mode = ae, st());
+ Object.values(jt).includes(ae) && (i.mode = ae, dt());
},
setCompareAsset(ae) {
- i.compareAsset = ae, st();
+ i.compareAsset = ae, dt();
},
dispose() {
- var ae, fe, je, Ne, $e, et, tt, ct, Lt, Bt, Nt, ht, Jt, It, mn, Mt, nn, rn, hn, ln, gn, $t, An, vn, dn, Mn, yn, Ut;
+ var ae, he, ve, Fe, _e, et, tt, st, Vt, Bt, Rt, Ct, zt, gt, mn, wt, on, rn, hn, ln, gn, nn, An, vn, un, Mn, yn, Ut;
try {
- qe();
- } catch (Tt) {
- (ae = console.debug) == null || ae.call(console, Tt);
+ He();
+ } catch (Jt) {
+ (ae = console.debug) == null || ae.call(console, Jt);
}
try {
- ze.clear();
- } catch (Tt) {
- (fe = console.debug) == null || fe.call(console, Tt);
+ ke.clear();
+ } catch (Jt) {
+ (he = console.debug) == null || he.call(console, Jt);
}
try {
- ci(O);
- } catch (Tt) {
- (je = console.debug) == null || je.call(console, Tt);
+ di(z);
+ } catch (Jt) {
+ (ve = console.debug) == null || ve.call(console, Jt);
}
try {
- ci(B);
- } catch (Tt) {
- (Ne = console.debug) == null || Ne.call(console, Tt);
+ di(B);
+ } catch (Jt) {
+ (Fe = console.debug) == null || Fe.call(console, Jt);
}
try {
- ci(J);
- } catch (Tt) {
- ($e = console.debug) == null || $e.call(console, Tt);
+ di(J);
+ } catch (Jt) {
+ (_e = console.debug) == null || _e.call(console, Jt);
}
try {
- Ee != null && cancelAnimationFrame(Ee);
- } catch (Tt) {
- (et = console.debug) == null || et.call(console, Tt);
+ Te != null && cancelAnimationFrame(Te);
+ } catch (Jt) {
+ (et = console.debug) == null || et.call(console, Jt);
}
try {
- be != null && cancelAnimationFrame(be);
- } catch (Tt) {
- (tt = console.debug) == null || tt.call(console, Tt);
+ We != null && cancelAnimationFrame(We);
+ } catch (Jt) {
+ (tt = console.debug) == null || tt.call(console, Jt);
}
try {
- (ct = tn == null ? void 0 : tn.dispose) == null || ct.call(tn);
- } catch (Tt) {
- (Lt = console.debug) == null || Lt.call(console, Tt);
+ (st = vt == null ? void 0 : vt.dispose) == null || st.call(vt);
+ } catch (Jt) {
+ (Vt = console.debug) == null || Vt.call(console, Jt);
}
try {
(Bt = re == null ? void 0 : re.dispose) == null || Bt.call(re);
- } catch (Tt) {
- (Nt = console.debug) == null || Nt.call(console, Tt);
+ } catch (Jt) {
+ (Rt = console.debug) == null || Rt.call(console, Jt);
}
try {
- (Jt = (ht = e._mjrResizeObserver) == null ? void 0 : ht.disconnect) == null || Jt.call(ht);
- } catch (Tt) {
- (It = console.debug) == null || It.call(console, Tt);
+ (zt = (Ct = e._mjrResizeObserver) == null ? void 0 : Ct.disconnect) == null || zt.call(Ct);
+ } catch (Jt) {
+ (gt = console.debug) == null || gt.call(console, Jt);
}
try {
e._mjrResizeObserver = null;
- } catch (Tt) {
- (mn = console.debug) == null || mn.call(console, Tt);
+ } catch (Jt) {
+ (mn = console.debug) == null || mn.call(console, Jt);
}
try {
- (Mt = Ze == null ? void 0 : Ze.dispose) == null || Mt.call(Ze);
- } catch (Tt) {
- (nn = console.debug) == null || nn.call(console, Tt);
+ (wt = ge == null ? void 0 : ge.dispose) == null || wt.call(ge);
+ } catch (Jt) {
+ (on = console.debug) == null || on.call(console, Jt);
}
try {
- RZ(e);
- } catch (Tt) {
- (rn = console.debug) == null || rn.call(console, Tt);
+ zZ(e);
+ } catch (Jt) {
+ (rn = console.debug) == null || rn.call(console, Jt);
}
try {
- for (const Tt of e._mjrViewerUnsubs || []) pt(Tt);
- } catch (Tt) {
- (hn = console.debug) == null || hn.call(console, Tt);
+ for (const Jt of e._mjrViewerUnsubs || []) bt(Jt);
+ } catch (Jt) {
+ (hn = console.debug) == null || hn.call(console, Jt);
}
try {
e._mjrViewerUnsubs = [];
- } catch (Tt) {
- (ln = console.debug) == null || ln.call(console, Tt);
+ } catch (Jt) {
+ (ln = console.debug) == null || ln.call(console, Jt);
}
try {
- ($t = (gn = i._preloadRefs) == null ? void 0 : gn.clear) == null || $t.call(gn);
- } catch (Tt) {
- (An = console.debug) == null || An.call(console, Tt);
+ (nn = (gn = i._preloadRefs) == null ? void 0 : gn.clear) == null || nn.call(gn);
+ } catch (Jt) {
+ (An = console.debug) == null || An.call(console, Jt);
}
try {
- (dn = (vn = i._preloadedAssetKeys) == null ? void 0 : vn.clear) == null || dn.call(vn);
- } catch (Tt) {
- (Mn = console.debug) == null || Mn.call(console, Tt);
+ (un = (vn = i._preloadedAssetKeys) == null ? void 0 : vn.clear) == null || un.call(vn);
+ } catch (Jt) {
+ (Mn = console.debug) == null || Mn.call(console, Jt);
}
try {
(yn = e.remove) == null || yn.call(e);
- } catch (Tt) {
- (Ut = console.debug) == null || Ut.call(console, Tt);
+ } catch (Jt) {
+ (Ut = console.debug) == null || Ut.call(console, Jt);
}
}
};
try {
- v = () => ut.close();
+ L = () => rt.close();
} catch (ae) {
(pn = console.debug) == null || pn.call(console, ae);
}
- e._mjrViewerAPI = ut;
+ e._mjrViewerAPI = rt;
try {
- NZ({
+ OZ({
overlayEl: e,
getCurrentAsset: () => i.assets[i.currentIndex],
- getCurrentViewUrl: (ae) => Bi(ae),
+ getCurrentViewUrl: (ae) => Ki(ae),
onAssetChanged: () => {
var ae;
try {
- Be();
- } catch (fe) {
- (ae = console.debug) == null || ae.call(console, fe);
+ Ke();
+ } catch (he) {
+ (ae = console.debug) == null || ae.call(console, he);
}
}
});
@@ -22351,25 +22366,25 @@ function aW() {
}
return e;
}
-function ss() {
- return DA(aW);
+function us() {
+ return qA(dW);
}
-function cW(e) {
+function uW(e) {
const t = String(e || "").trim().toLowerCase();
return t === "ab" || t === "sidebyside" ? t : "";
}
-function sW(e, t) {
+function mW(e, t) {
const n = Array.isArray(e) ? e.filter(Boolean) : [];
return n.length ? n : t ? [t] : [];
}
-function ec({ assets: e = [], asset: t = null, index: n = 0, mode: i = "" } = {}) {
+function tc({ assets: e = [], asset: t = null, index: n = 0, mode: i = "" } = {}) {
var a, c, s;
- const o = sW(e, t);
+ const o = mW(e, t);
if (!o.length) return !1;
- const r = Math.max(0, Math.min(Number(n) || 0, o.length - 1)), l = cW(i);
+ const r = Math.max(0, Math.min(Number(n) || 0, o.length - 1)), l = uW(i);
try {
return window.dispatchEvent(
- new CustomEvent(ft.OPEN_VIEWER, {
+ new CustomEvent(ht.OPEN_VIEWER, {
detail: {
assets: o,
index: r,
@@ -22381,14 +22396,14 @@ function ec({ assets: e = [], asset: t = null, index: n = 0, mode: i = "" } = {}
(a = console.debug) == null || a.call(console, d);
}
try {
- const d = ss();
+ const d = us();
return d.open(o, r), l && ((c = d.setMode) == null || c.call(d, l)), !0;
} catch (d) {
(s = console.debug) == null || s.call(console, d);
}
return !1;
}
-function dW(e, t) {
+function gW(e, t) {
var n;
if (!e || !(t != null && t.size)) return !1;
for (const i of t.values()) {
@@ -22404,115 +22419,115 @@ function dW(e, t) {
}
return !1;
}
-function ib(e) {
+function ob(e) {
const t = /* @__PURE__ */ new Map();
let n = null, i = 0, o = [], r = !1, l = !1, a = !1, c = new AbortController(), s = new AbortController(), d = !1;
- const u = 8, I = 8, p = 200, M = 360, Z = 280, A = 80, g = 140, h = (N, q = "y") => {
+ const u = 8, I = 8, p = 200, S = 360, A = 280, C = 80, g = 140, Z = (k, K = "y") => {
var J;
- if (!N) return !1;
- const O = (J = globalThis.getComputedStyle) == null ? void 0 : J.call(globalThis, N), B = String(q === "x" ? (O == null ? void 0 : O.overflowX) || (O == null ? void 0 : O.overflow) || "" : (O == null ? void 0 : O.overflowY) || (O == null ? void 0 : O.overflow) || "");
- return /(auto|scroll|overlay)/i.test(B) ? q === "x" ? Number(N.scrollWidth || 0) > Number(N.clientWidth || 0) + 1 : Number(N.scrollHeight || 0) > Number(N.clientHeight || 0) + 1 : !1;
- }, f = (N, q) => {
- let O = N instanceof HTMLElement ? N : q;
- for (; O && O !== q; ) {
- if (h(O, "y") || h(O, "x")) return O;
- O = O.parentElement;
+ if (!k) return !1;
+ const z = (J = globalThis.getComputedStyle) == null ? void 0 : J.call(globalThis, k), B = String(K === "x" ? (z == null ? void 0 : z.overflowX) || (z == null ? void 0 : z.overflow) || "" : (z == null ? void 0 : z.overflowY) || (z == null ? void 0 : z.overflow) || "");
+ return /(auto|scroll|overlay)/i.test(B) ? K === "x" ? Number(k.scrollWidth || 0) > Number(k.clientWidth || 0) + 1 : Number(k.scrollHeight || 0) > Number(k.clientHeight || 0) + 1 : !1;
+ }, f = (k, K) => {
+ let z = k instanceof HTMLElement ? k : K;
+ for (; z && z !== K; ) {
+ if (Z(z, "y") || Z(z, "x")) return z;
+ z = z.parentElement;
}
- return h(q, "y") || h(q, "x") ? q : null;
- }, b = (N) => {
+ return Z(K, "y") || Z(K, "x") ? K : null;
+ }, b = (k) => {
var B;
- if (!N || N._mjrInteractionGuardsBound) return;
- const q = (J) => {
- var T;
+ if (!k || k._mjrInteractionGuardsBound) return;
+ const K = (J) => {
+ var P;
try {
J.stopPropagation();
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
- }, O = (J) => {
- var E, K;
- const T = f(J == null ? void 0 : J.target, N), D = Number((J == null ? void 0 : J.deltaX) || 0), Q = Number((J == null ? void 0 : J.deltaY) || 0);
- if (T)
+ }, z = (J) => {
+ var E, oe;
+ const P = f(J == null ? void 0 : J.target, k), H = Number((J == null ? void 0 : J.deltaX) || 0), $ = Number((J == null ? void 0 : J.deltaY) || 0);
+ if (P)
try {
- Q && (T.scrollTop = Number(T.scrollTop || 0) + Q), D && (T.scrollLeft = Number(T.scrollLeft || 0) + D);
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ $ && (P.scrollTop = Number(P.scrollTop || 0) + $), H && (P.scrollLeft = Number(P.scrollLeft || 0) + H);
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
try {
J.preventDefault();
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
- q(J);
+ K(J);
};
try {
- N.addEventListener("wheel", O, { passive: !1, capture: !0 }), N.addEventListener("mousedown", q), N.addEventListener("touchmove", q, { passive: !0 }), N._mjrInteractionGuardsBound = !0;
+ k.addEventListener("wheel", z, { passive: !1, capture: !0 }), k.addEventListener("mousedown", K), k.addEventListener("touchmove", K, { passive: !0 }), k._mjrInteractionGuardsBound = !0;
} catch (J) {
(B = console.debug) == null || B.call(console, J);
}
- }, v = (N) => {
- var q;
- if (!(!N || !(N instanceof HTMLElement))) {
- b(N), N._mjrPortal || (N._mjrPortal = {
- parent: N.parentNode,
- nextSibling: N.nextSibling
- }), N.classList.add("mjr-popover-portal");
+ }, L = (k) => {
+ var K;
+ if (!(!k || !(k instanceof HTMLElement))) {
+ b(k), k._mjrPortal || (k._mjrPortal = {
+ parent: k.parentNode,
+ nextSibling: k.nextSibling
+ }), k.classList.add("mjr-popover-portal");
try {
- N.parentNode !== document.body && document.body.appendChild(N);
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ k.parentNode !== document.body && document.body.appendChild(k);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
}
- }, C = (N) => {
- var O;
- const q = N == null ? void 0 : N._mjrPortal;
- if (q) {
- N.classList.remove("mjr-popover-portal");
+ }, h = (k) => {
+ var z;
+ const K = k == null ? void 0 : k._mjrPortal;
+ if (K) {
+ k.classList.remove("mjr-popover-portal");
try {
- const B = q.parent;
- B && B instanceof HTMLElement && (q.nextSibling && q.nextSibling.parentNode === B ? B.insertBefore(N, q.nextSibling) : B.appendChild(N));
+ const B = K.parent;
+ B && B instanceof HTMLElement && (K.nextSibling && K.nextSibling.parentNode === B ? B.insertBefore(k, K.nextSibling) : B.appendChild(k));
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
}
- }, S = (N, q) => {
- var O;
- if (!(!N || !q))
+ }, G = (k, K) => {
+ var z;
+ if (!(!k || !K))
try {
- const B = q.getBoundingClientRect(), J = e.getBoundingClientRect();
- v(N), N.style.position = "fixed", N.style.margin = "0";
- const T = Math.max(
+ const B = K.getBoundingClientRect(), J = e.getBoundingClientRect();
+ L(k), k.style.position = "fixed", k.style.margin = "0";
+ const P = Math.max(
p,
Math.min(
- M,
+ S,
J.width - I * 2,
window.innerWidth - I * 2
)
);
- N.style.maxWidth = `${T}px`;
- const D = N.offsetWidth || Math.min(Z, T), Q = N.offsetHeight || 1;
+ k.style.maxWidth = `${P}px`;
+ const H = k.offsetWidth || Math.min(A, P), $ = k.offsetHeight || 1;
let E = B.left;
E = Math.max(
J.left + I,
- Math.min(E, J.right - D - I)
+ Math.min(E, J.right - H - I)
);
- let K = B.bottom + u;
- const F = Math.min(J.bottom, window.innerHeight) - I, Y = Math.max(J.top, 0) + I;
- K + Q > F && B.top - u - Q >= Y && (K = B.top - u - Q), K = Math.max(Y, Math.min(K, F - A));
- const U = F - K;
- N.style.maxHeight = `${Math.max(g, U)}px`, N.style.overflowX = "hidden", N.style.overflowY = "auto", N.style.overscrollBehavior = "contain", N.style.left = `${Math.round(E)}px`, N.style.top = `${Math.round(K)}px`;
+ let oe = B.bottom + u;
+ const M = Math.min(J.bottom, window.innerHeight) - I, j = Math.max(J.top, 0) + I;
+ oe + $ > M && B.top - u - $ >= j && (oe = B.top - u - $), oe = Math.max(j, Math.min(oe, M - C));
+ const O = M - oe;
+ k.style.maxHeight = `${Math.max(g, O)}px`, k.style.overflowX = "hidden", k.style.overflowY = "auto", k.style.overscrollBehavior = "contain", k.style.left = `${Math.round(E)}px`, k.style.top = `${Math.round(oe)}px`;
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
}, W = () => {
t.size && (i && cancelAnimationFrame(i), i = requestAnimationFrame(() => {
i = 0;
- for (const N of t.values()) S(N.popover, N.anchor);
+ for (const k of t.values()) G(k.popover, k.anchor);
}));
- }, y = (N) => {
- dW(N == null ? void 0 : N.target, t) || W();
- }, k = () => {
- var N, q, O, B;
+ }, y = (k) => {
+ gW(k == null ? void 0 : k.target, t) || W();
+ }, X = () => {
+ var k, K, z, B;
if (t.size) {
try {
a || (window.addEventListener("resize", W, {
@@ -22520,7 +22535,7 @@ function ib(e) {
signal: c.signal
}), a = !0);
} catch (J) {
- (N = console.debug) == null || N.call(console, J);
+ (k = console.debug) == null || k.call(console, J);
}
try {
l || (window.addEventListener("scroll", y, {
@@ -22529,12 +22544,12 @@ function ib(e) {
signal: c.signal
}), l = !0);
} catch (J) {
- (q = console.debug) == null || q.call(console, J);
+ (K = console.debug) == null || K.call(console, J);
}
try {
n || (n = new ResizeObserver(W), n.observe(e));
} catch (J) {
- (O = console.debug) == null || O.call(console, J);
+ (z = console.debug) == null || z.call(console, J);
}
try {
r || (e.addEventListener("scroll", y, { passive: !0 }), r = !0);
@@ -22542,146 +22557,146 @@ function ib(e) {
(B = console.debug) == null || B.call(console, J);
}
}
- }, G = () => {
- var N, q, O, B, J, T;
+ }, x = () => {
+ var k, K, z, B, J, P;
if (!t.size) {
try {
a && window.removeEventListener("resize", W);
- } catch (D) {
- (N = console.debug) == null || N.call(console, D);
+ } catch (H) {
+ (k = console.debug) == null || k.call(console, H);
}
a = !1;
try {
l && window.removeEventListener("scroll", y, { capture: !0 });
- } catch (D) {
- (q = console.debug) == null || q.call(console, D);
+ } catch (H) {
+ (K = console.debug) == null || K.call(console, H);
}
try {
l && window.removeEventListener("scroll", y, !0);
- } catch (D) {
- (O = console.debug) == null || O.call(console, D);
+ } catch (H) {
+ (z = console.debug) == null || z.call(console, H);
}
l = !1;
try {
r && e.removeEventListener("scroll", y);
- } catch (D) {
- (B = console.debug) == null || B.call(console, D);
+ } catch (H) {
+ (B = console.debug) == null || B.call(console, H);
}
r = !1;
try {
n && n.disconnect();
- } catch (D) {
- (J = console.debug) == null || J.call(console, D);
+ } catch (H) {
+ (J = console.debug) == null || J.call(console, H);
}
n = null;
try {
c.abort();
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
d || (c = new AbortController());
}
- }, z = (N) => {
- var q, O;
- if (N) {
+ }, T = (k) => {
+ var K, z;
+ if (k) {
try {
- N.style.display = "none";
+ k.style.display = "none";
} catch (B) {
- (q = console.debug) == null || q.call(console, B);
+ (K = console.debug) == null || K.call(console, B);
}
try {
- C(N);
+ h(k);
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
- t.delete(N), G();
+ t.delete(k), x();
}
- }, x = (N, q) => {
- !N || !q || (t.set(N, { popover: N, anchor: q }), k(), S(N, q), W());
- }, w = (N, q) => {
- if (!N || !q) return;
- const B = t.has(N) || N.style.display === "block" ? "none" : "block";
- N.style.display = B, B !== "none" ? x(N, q) : z(N);
- }, X = () => {
- var N;
- for (const q of t.values())
+ }, v = (k, K) => {
+ !k || !K || (t.set(k, { popover: k, anchor: K }), X(), G(k, K), W());
+ }, w = (k, K) => {
+ if (!k || !K) return;
+ const B = t.has(k) || k.style.display === "block" ? "none" : "block";
+ k.style.display = B, B !== "none" ? v(k, K) : T(k);
+ }, R = () => {
+ var k;
+ for (const K of t.values())
try {
- C(q.popover);
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ h(K.popover);
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
- for (const q of Array.from(t.keys())) z(q);
- t.clear(), G();
- }, V = (N) => {
- o = Array.isArray(N) ? N.filter(Boolean) : [];
- }, R = (N) => {
- var O, B, J;
- const q = N.target;
- if (q) {
- for (const T of t.values()) {
+ for (const K of Array.from(t.keys())) T(K);
+ t.clear(), x();
+ }, Y = (k) => {
+ o = Array.isArray(k) ? k.filter(Boolean) : [];
+ }, F = (k) => {
+ var z, B, J;
+ const K = k.target;
+ if (K) {
+ for (const P of t.values()) {
try {
- if (T != null && T.popover && T.popover.contains(q)) return;
- } catch (D) {
- (O = console.debug) == null || O.call(console, D);
+ if (P != null && P.popover && P.popover.contains(K)) return;
+ } catch (H) {
+ (z = console.debug) == null || z.call(console, H);
}
try {
- if (T != null && T.anchor && T.anchor.contains(q)) return;
- } catch (D) {
- (B = console.debug) == null || B.call(console, D);
+ if (P != null && P.anchor && P.anchor.contains(K)) return;
+ } catch (H) {
+ (B = console.debug) == null || B.call(console, H);
}
}
- for (const T of o)
+ for (const P of o)
try {
- if (T && typeof T.contains == "function" && T.contains(q)) return;
- } catch (D) {
- (J = console.debug) == null || J.call(console, D);
+ if (P && typeof P.contains == "function" && P.contains(K)) return;
+ } catch (H) {
+ (J = console.debug) == null || J.call(console, H);
}
- X();
+ R();
}
- }, j = () => {
- var N, q;
+ }, N = () => {
+ var k, K;
try {
- (N = s == null ? void 0 : s.abort) == null || N.call(s);
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ (k = s == null ? void 0 : s.abort) == null || k.call(s);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
- s = new AbortController(), document.addEventListener("mousedown", R, {
+ s = new AbortController(), document.addEventListener("mousedown", F, {
signal: s.signal
});
- }, L = () => {
- var N, q, O, B, J;
+ }, V = () => {
+ var k, K, z, B, J;
d = !0;
try {
- (N = s == null ? void 0 : s.abort) == null || N.call(s);
- } catch (T) {
- (q = console.debug) == null || q.call(console, T);
+ (k = s == null ? void 0 : s.abort) == null || k.call(s);
+ } catch (P) {
+ (K = console.debug) == null || K.call(console, P);
}
s = null;
try {
- G();
- } catch (T) {
- (O = console.debug) == null || O.call(console, T);
+ x();
+ } catch (P) {
+ (z = console.debug) == null || z.call(console, P);
}
try {
c.abort();
- } catch (T) {
- (B = console.debug) == null || B.call(console, T);
+ } catch (P) {
+ (B = console.debug) == null || B.call(console, P);
}
c = null;
try {
- X();
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ R();
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
};
- return j(), {
- open: x,
- close: z,
+ return N(), {
+ open: v,
+ close: T,
toggle: w,
- closeAll: X,
+ closeAll: R,
scheduleReposition: W,
- setDismissWhitelist: V,
- dispose: L
+ setDismissWhitelist: Y,
+ dispose: V
};
}
const Rn = {
@@ -22718,26 +22733,26 @@ const Rn = {
NAV_LEFT: { key: "ArrowLeft", description: "Navigate left" },
NAV_RIGHT: { key: "ArrowRight", description: "Navigate right" }
};
-function uW(e) {
+function IW(e) {
if (!e) return "";
const t = [];
e.ctrl && t.push("Ctrl"), e.shift && t.push("Shift"), e.alt && t.push("Alt");
let n = e.key;
return n === " " && (n = "Space"), n === "Delete" && (n = "Del"), n === "ArrowUp" && (n = "β"), n === "ArrowDown" && (n = "β"), n === "ArrowLeft" && (n = "β"), n === "ArrowRight" && (n = "β"), t.push(n.length === 1 ? n.toUpperCase() : n), t.join("+");
}
-function zn(e, t) {
+function Jn(e, t) {
if (!t || !e) return !1;
const n = e.key.toLowerCase() === t.key.toLowerCase() || e.key === t.key, i = !!t.ctrl === (e.ctrlKey || e.metaKey), o = !!t.shift === e.shiftKey, r = !!t.alt === e.altKey;
return n && i && o && r;
}
-const Jo = /* @__PURE__ */ new Map();
-function qo(e, t, n) {
+const Bo = /* @__PURE__ */ new Map();
+function Qo(e, t, n) {
var l, a;
const i = e == null ? void 0 : e.id;
if (!i) return;
const o = String(i);
try {
- const c = Jo.get(o);
+ const c = Bo.get(o);
c && clearTimeout(c);
} catch (c) {
(l = console.debug) == null || l.call(console, c);
@@ -22749,24 +22764,24 @@ function qo(e, t, n) {
}
const r = setTimeout(async () => {
try {
- Jo.delete(o);
- const c = await Do(i, t);
+ Bo.delete(o);
+ const c = await Ho(i, t);
if (!(c != null && c.ok)) {
- Ce((c == null ? void 0 : c.error) || m("toast.ratingUpdateFailed"), "error");
+ Ze((c == null ? void 0 : c.error) || m("toast.ratingUpdateFailed"), "error");
return;
}
- Ce(m("toast.ratingSetN", { n: t }), "success", 1500), ii(
- Ri,
+ Ze(m("toast.ratingSetN", { n: t }), "success", 1500), oi(
+ Fi,
{ assetId: String(i), rating: t },
{ warnPrefix: "[GridKeyboard]" }
);
} catch (c) {
- console.error("[GridKeyboard] Rating update failed:", c), Ce(m("toast.ratingUpdateError"), "error");
+ console.error("[GridKeyboard] Rating update failed:", c), Ze(m("toast.ratingUpdateError"), "error");
}
}, 350);
- Jo.set(o, r);
+ Bo.set(o, r);
}
-function ob({
+function rb({
gridContainer: e,
getState: t = () => ({}),
getSelectedAssets: n = () => [],
@@ -22785,19 +22800,19 @@ function ob({
}, dispose: () => {
} };
let c = null, s = null, d = !1;
- const u = ({ assets: y = [], index: k = 0, mode: G = "" } = {}) => {
- ec({ assets: y, index: k, mode: G });
+ const u = ({ assets: y = [], index: X = 0, mode: x = "" } = {}) => {
+ tc({ assets: y, index: X, mode: x });
}, I = () => {
- var y, k;
+ var y, X;
try {
- Bs(e);
- } catch (G) {
- (y = console.debug) == null || y.call(console, G);
+ Ks(e);
+ } catch (x) {
+ (y = console.debug) == null || y.call(console, x);
}
try {
window.__MJR_LAST_SELECTION_GRID__ = e;
- } catch (G) {
- (k = console.debug) == null || k.call(console, G);
+ } catch (x) {
+ (X = console.debug) == null || X.call(console, x);
}
}, p = () => {
try {
@@ -22805,252 +22820,252 @@ function ob({
} catch {
return [];
}
- }, M = () => {
+ }, S = () => {
var y;
try {
if (typeof (e == null ? void 0 : e._mjrGetRenderedCards) == "function") {
- const k = e._mjrGetRenderedCards();
- if (Array.isArray(k)) return k;
+ const X = e._mjrGetRenderedCards();
+ if (Array.isArray(X)) return X;
}
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
try {
return Array.from(e.querySelectorAll(".mjr-asset-card"));
} catch {
return [];
}
- }, Z = () => {
+ }, A = () => {
try {
const y = i();
return y || p()[0] || null;
} catch {
return null;
}
- }, A = () => {
- var y, k, G;
+ }, C = () => {
+ var y, X, x;
try {
if (Array.isArray((y = t == null ? void 0 : t()) == null ? void 0 : y.assets) && t().assets.length)
return t().assets;
- } catch (z) {
- (k = console.debug) == null || k.call(console, z);
+ } catch (T) {
+ (X = console.debug) == null || X.call(console, T);
}
try {
if (typeof (e == null ? void 0 : e._mjrGetAssets) == "function") {
- const z = e._mjrGetAssets();
- if (Array.isArray(z) && z.length) return z;
+ const T = e._mjrGetAssets();
+ if (Array.isArray(T) && T.length) return T;
}
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
try {
- return M().map((z) => z == null ? void 0 : z._mjrAsset).filter(Boolean);
+ return S().map((T) => T == null ? void 0 : T._mjrAsset).filter(Boolean);
} catch {
return [];
}
}, g = () => {
var y;
try {
- const k = M();
- if (k.length >= 2) {
- const G = Math.round(k[0].getBoundingClientRect().top), z = k.filter((x) => {
+ const X = S();
+ if (X.length >= 2) {
+ const x = Math.round(X[0].getBoundingClientRect().top), T = X.filter((v) => {
try {
- return Math.abs(Math.round(x.getBoundingClientRect().top) - G) <= 4;
+ return Math.abs(Math.round(v.getBoundingClientRect().top) - x) <= 4;
} catch {
return !1;
}
});
- if (z.length >= 1) return Math.max(1, z.length);
+ if (T.length >= 1) return Math.max(1, T.length);
}
- if (k.length >= 1) {
- const G = k[0].getBoundingClientRect(), z = e.getBoundingClientRect(), x = Math.max(1, Math.round(G.width)), w = Math.max(1, Math.round(z.width));
- return Math.max(1, Math.floor(w / x));
+ if (X.length >= 1) {
+ const x = X[0].getBoundingClientRect(), T = e.getBoundingClientRect(), v = Math.max(1, Math.round(x.width)), w = Math.max(1, Math.round(T.width));
+ return Math.max(1, Math.floor(w / v));
}
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
return 1;
- }, h = (y, k) => {
- var x;
- const G = Array.isArray(y) ? y.map(String).filter(Boolean) : [], z = String(k || G[0] || "");
+ }, Z = (y, X) => {
+ var v;
+ const x = Array.isArray(y) ? y.map(String).filter(Boolean) : [], T = String(X || x[0] || "");
try {
- typeof (e == null ? void 0 : e._mjrSetSelection) == "function" ? e._mjrSetSelection(G, z) : (e.dataset.mjrSelectedAssetIds = JSON.stringify(G), e.dataset.mjrSelectedAssetId = z);
+ typeof (e == null ? void 0 : e._mjrSetSelection) == "function" ? e._mjrSetSelection(x, T) : (e.dataset.mjrSelectedAssetIds = JSON.stringify(x), e.dataset.mjrSelectedAssetId = T);
} catch (w) {
- (x = console.debug) == null || x.call(console, w);
+ (v = console.debug) == null || v.call(console, w);
}
}, f = (y) => {
- var G, z, x;
- const k = String(y || "").trim();
- if (k) {
+ var x, T, v;
+ const X = String(y || "").trim();
+ if (X) {
try {
if (typeof (e == null ? void 0 : e._mjrScrollToAssetId) == "function") {
- e._mjrScrollToAssetId(k);
+ e._mjrScrollToAssetId(X);
return;
}
} catch (w) {
- (G = console.debug) == null || G.call(console, w);
+ (x = console.debug) == null || x.call(console, w);
}
try {
- const w = typeof CSS < "u" && (CSS != null && CSS.escape) ? CSS.escape(k) : k.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"), X = e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${w}"]`);
- (z = X == null ? void 0 : X.scrollIntoView) == null || z.call(X, { block: "nearest", inline: "nearest" });
+ const w = typeof CSS < "u" && (CSS != null && CSS.escape) ? CSS.escape(X) : X.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1"), R = e.querySelector(`.mjr-asset-card[data-mjr-asset-id="${w}"]`);
+ (T = R == null ? void 0 : R.scrollIntoView) == null || T.call(R, { block: "nearest", inline: "nearest" });
} catch (w) {
- (x = console.debug) == null || x.call(console, w);
+ (v = console.debug) == null || v.call(console, w);
}
}
}, b = (y) => {
- var q, O, B;
- const k = String(y.key || "");
- if (!(k === "ArrowLeft" || k === "ArrowRight" || k === "ArrowUp" || k === "ArrowDown") && !(k === "Home" || k === "End") || y.ctrlKey || y.altKey || y.metaKey) return !1;
- const x = A();
- if (!Array.isArray(x) || x.length === 0) return !1;
- const w = Z(), X = String(
- (w == null ? void 0 : w.id) || ((q = e == null ? void 0 : e.dataset) == null ? void 0 : q.mjrSelectedAssetId) || ""
+ var K, z, B;
+ const X = String(y.key || "");
+ if (!(X === "ArrowLeft" || X === "ArrowRight" || X === "ArrowUp" || X === "ArrowDown") && !(X === "Home" || X === "End") || y.ctrlKey || y.altKey || y.metaKey) return !1;
+ const v = C();
+ if (!Array.isArray(v) || v.length === 0) return !1;
+ const w = A(), R = String(
+ (w == null ? void 0 : w.id) || ((K = e == null ? void 0 : e.dataset) == null ? void 0 : K.mjrSelectedAssetId) || ""
);
- let V = x.findIndex((J) => String((J == null ? void 0 : J.id) || "") === X);
- const R = V >= 0;
- V < 0 && (V = 0);
- const j = Math.max(1, g());
- let L = V;
- if (k === "ArrowLeft" ? L -= 1 : k === "ArrowRight" ? L += 1 : k === "ArrowUp" ? L -= j : k === "ArrowDown" ? L += j : k === "Home" ? L = 0 : k === "End" && (L = x.length - 1), L = Math.max(0, Math.min(x.length - 1, L)), R && L === V && k !== "Home" && k !== "End")
+ let Y = v.findIndex((J) => String((J == null ? void 0 : J.id) || "") === R);
+ const F = Y >= 0;
+ Y < 0 && (Y = 0);
+ const N = Math.max(1, g());
+ let V = Y;
+ if (X === "ArrowLeft" ? V -= 1 : X === "ArrowRight" ? V += 1 : X === "ArrowUp" ? V -= N : X === "ArrowDown" ? V += N : X === "Home" ? V = 0 : X === "End" && (V = v.length - 1), V = Math.max(0, Math.min(v.length - 1, V)), F && V === Y && X !== "Home" && X !== "End")
return !1;
- const N = String(((O = x[L]) == null ? void 0 : O.id) || "");
- if (!N) return !1;
+ const k = String(((z = v[V]) == null ? void 0 : z.id) || "");
+ if (!k) return !1;
if (I(), y.shiftKey) {
let J = String((e == null ? void 0 : e._mjrSelectionAnchorId) || "");
- J || (J = X || N);
- const T = x.findIndex((F) => String((F == null ? void 0 : F.id) || "") === J), D = T >= 0 ? T : V, Q = Math.min(D, L), E = Math.max(D, L), K = x.slice(Q, E + 1).map((F) => String((F == null ? void 0 : F.id) || "")).filter(Boolean);
- h(K, N);
+ J || (J = R || k);
+ const P = v.findIndex((M) => String((M == null ? void 0 : M.id) || "") === J), H = P >= 0 ? P : Y, $ = Math.min(H, V), E = Math.max(H, V), oe = v.slice($, E + 1).map((M) => String((M == null ? void 0 : M.id) || "")).filter(Boolean);
+ Z(oe, k);
} else
- e._mjrSelectionAnchorId = N, h([N], N);
- f(N);
+ e._mjrSelectionAnchorId = k, Z([k], k);
+ f(k);
try {
l == null || l();
} catch (J) {
(B = console.debug) == null || B.call(console, J);
}
return !0;
- }, v = async (y) => {
- var V, R, j, L, N, q, O, B, J, T, D, Q, E, K, F;
- const k = y.target;
- if (k && (k.tagName === "INPUT" || k.tagName === "TEXTAREA" || k.isContentEditable) || Wo().scope === "viewer") return;
+ }, L = async (y) => {
+ var Y, F, N, V, k, K, z, B, J, P, H, $, E, oe, M;
+ const X = y.target;
+ if (X && (X.tagName === "INPUT" || X.tagName === "TEXTAREA" || X.isContentEditable) || Mo().scope === "viewer") return;
if (document.activeElement !== document.body) {
- const Y = document.activeElement, U = e.contains(Y), P = Y && Y.contains && Y.contains(e), ee = (V = Y == null ? void 0 : Y.closest) == null ? void 0 : V.call(Y, ".mjr-asset-card");
- if (!U && !P && !ee)
+ const j = document.activeElement, O = e.contains(j), D = j && j.contains && j.contains(e), q = (Y = j == null ? void 0 : j.closest) == null ? void 0 : Y.call(j, ".mjr-asset-card");
+ if (!O && !D && !q)
return;
} else {
- const Y = wo();
- if (Y && Y !== e)
+ const j = So();
+ if (j && j !== e)
return;
}
- const G = () => {
+ const x = () => {
y.preventDefault(), y.stopPropagation();
};
try {
if (b(y)) {
- G();
+ x();
return;
}
- } catch (Y) {
- (R = console.debug) == null || R.call(console, Y);
+ } catch (j) {
+ (F = console.debug) == null || F.call(console, j);
}
- const z = p(), x = Z(), w = t(), X = !!Wo().ratingHotkeysActive;
+ const T = p(), v = A(), w = t(), R = !!Mo().ratingHotkeysActive;
if (!y.ctrlKey && !y.altKey && !y.metaKey && !y.shiftKey) {
- if (!X && zn(y, Rn.RATING_1) && x != null && x.id) {
- G(), qo(x, 1, a);
+ if (!R && Jn(y, Rn.RATING_1) && v != null && v.id) {
+ x(), Qo(v, 1, a);
return;
}
- if (!X && zn(y, Rn.RATING_2) && x != null && x.id) {
- G(), qo(x, 2, a);
+ if (!R && Jn(y, Rn.RATING_2) && v != null && v.id) {
+ x(), Qo(v, 2, a);
return;
}
- if (!X && zn(y, Rn.RATING_3) && x != null && x.id) {
- G(), qo(x, 3, a);
+ if (!R && Jn(y, Rn.RATING_3) && v != null && v.id) {
+ x(), Qo(v, 3, a);
return;
}
- if (!X && zn(y, Rn.RATING_4) && x != null && x.id) {
- G(), qo(x, 4, a);
+ if (!R && Jn(y, Rn.RATING_4) && v != null && v.id) {
+ x(), Qo(v, 4, a);
return;
}
- if (!X && zn(y, Rn.RATING_5) && x != null && x.id) {
- G(), qo(x, 5, a);
+ if (!R && Jn(y, Rn.RATING_5) && v != null && v.id) {
+ x(), Qo(v, 5, a);
return;
}
- if (!X && zn(y, Rn.RATING_RESET) && x != null && x.id) {
- G(), qo(x, 0, a);
+ if (!R && Jn(y, Rn.RATING_RESET) && v != null && v.id) {
+ x(), Qo(v, 0, a);
return;
}
}
- if ((zn(y, Rn.OPEN_VIEWER) || zn(y, Rn.OPEN_VIEWER_ALT)) && z.length > 0) {
- G();
+ if ((Jn(y, Rn.OPEN_VIEWER) || Jn(y, Rn.OPEN_VIEWER_ALT)) && T.length > 0) {
+ x();
try {
- if (z.length >= 2 && z.length <= 4)
- u({ assets: z, index: 0 });
+ if (T.length >= 2 && T.length <= 4)
+ u({ assets: T, index: 0 });
else {
- let Y = [];
+ let j = [];
if (Array.isArray(w == null ? void 0 : w.assets) && w.assets.length)
- Y = w.assets;
+ j = w.assets;
else if (typeof (e == null ? void 0 : e._mjrGetAssets) == "function") {
- const P = e._mjrGetAssets();
- Array.isArray(P) && P.length && (Y = P);
+ const D = e._mjrGetAssets();
+ Array.isArray(D) && D.length && (j = D);
} else
- Y = M().map((ee) => ee._mjrAsset).filter(Boolean);
- const U = Y.findIndex((P) => String(P == null ? void 0 : P.id) === String(x == null ? void 0 : x.id));
- u({ assets: Y, index: Math.max(0, U) });
+ j = S().map((q) => q._mjrAsset).filter(Boolean);
+ const O = j.findIndex((D) => String(D == null ? void 0 : D.id) === String(v == null ? void 0 : v.id));
+ u({ assets: j, index: Math.max(0, O) });
}
- } catch (Y) {
- console.error("[GridKeyboard] Open viewer failed:", Y);
+ } catch (j) {
+ console.error("[GridKeyboard] Open viewer failed:", j);
}
return;
}
- if (zn(y, Rn.METADATA_PANEL) && x) {
- G(), o(x);
+ if (Jn(y, Rn.METADATA_PANEL) && v) {
+ x(), o(v);
return;
}
- if (zn(y, Rn.COMPARE_AB) && z.length === 2) {
- G();
+ if (Jn(y, Rn.COMPARE_AB) && T.length === 2) {
+ x();
try {
- u({ assets: z, index: 0, mode: "ab" });
- } catch (Y) {
- (j = console.debug) == null || j.call(console, Y);
+ u({ assets: T, index: 0, mode: "ab" });
+ } catch (j) {
+ (N = console.debug) == null || N.call(console, j);
}
return;
}
- if (zn(y, Rn.SIDE_BY_SIDE) && z.length >= 2 && z.length <= 4) {
- G();
+ if (Jn(y, Rn.SIDE_BY_SIDE) && T.length >= 2 && T.length <= 4) {
+ x();
try {
- u({ assets: z, index: 0, mode: "sidebyside" });
- } catch (Y) {
- (L = console.debug) == null || L.call(console, Y);
+ u({ assets: T, index: 0, mode: "sidebyside" });
+ } catch (j) {
+ (V = console.debug) == null || V.call(console, j);
}
return;
}
- if (zn(y, Rn.EDIT_TAGS) && x != null && x.id) {
- G(), r(x);
+ if (Jn(y, Rn.EDIT_TAGS) && v != null && v.id) {
+ x(), r(v);
return;
}
- if (zn(y, Rn.ADD_TO_COLLECTION) && (z.length > 0 || x)) {
- G();
- const Y = z.length > 0 ? z : [x], U = e.getBoundingClientRect();
- await nd({
- x: U.left + U.width / 2,
- y: U.top + U.height / 2,
- assets: Y
+ if (Jn(y, Rn.ADD_TO_COLLECTION) && (T.length > 0 || v)) {
+ x();
+ const j = T.length > 0 ? T : [v], O = e.getBoundingClientRect();
+ await od({
+ x: O.left + O.width / 2,
+ y: O.top + O.height / 2,
+ assets: j
});
return;
}
- if (zn(y, Rn.REMOVE_FROM_COLLECTION)) {
- const Y = w == null ? void 0 : w.collectionId;
- if (Y && (z.length > 0 || x)) {
- G();
+ if (Jn(y, Rn.REMOVE_FROM_COLLECTION)) {
+ const j = w == null ? void 0 : w.collectionId;
+ if (j && (T.length > 0 || v)) {
+ x();
try {
- const P = (z.length > 0 ? z : [x]).map(
- (oe) => {
+ const D = (T.length > 0 ? T : [v]).map(
+ (ee) => {
var ce;
- return String((oe == null ? void 0 : oe.filepath) || (oe == null ? void 0 : oe.path) || ((ce = oe == null ? void 0 : oe.file_info) == null ? void 0 : ce.filepath) || "").trim();
+ return String((ee == null ? void 0 : ee.filepath) || (ee == null ? void 0 : ee.path) || ((ce = ee == null ? void 0 : ee.file_info) == null ? void 0 : ce.filepath) || "").trim();
}
).filter(Boolean);
- if (!P.length) {
- Ce(
+ if (!D.length) {
+ Ze(
m(
"toast.removeFromCollectionFailed",
"No valid files to remove from collection"
@@ -23059,10 +23074,10 @@ function ob({
);
return;
}
- const ee = await Ng(Y, P);
- if (!(ee != null && ee.ok)) {
- Ce(
- (ee == null ? void 0 : ee.error) || m(
+ const q = await Rg(j, D);
+ if (!(q != null && q.ok)) {
+ Ze(
+ (q == null ? void 0 : q.error) || m(
"toast.removeFromCollectionFailed",
"Failed to remove from collection"
),
@@ -23076,20 +23091,20 @@ function ob({
detail: { reason: "remove-from-collection" }
})
);
- } catch (oe) {
- (N = console.debug) == null || N.call(console, oe);
+ } catch (ee) {
+ (k = console.debug) == null || k.call(console, ee);
}
- Ce(
+ Ze(
m("toast.removedFromCollection", "Removed from collection"),
"success",
1400
);
- } catch (U) {
- Ce(
+ } catch (O) {
+ Ze(
m(
"toast.removeFromCollectionError",
"Error removing from collection: {error}",
- { error: (U == null ? void 0 : U.message) || String(U || "") }
+ { error: (O == null ? void 0 : O.message) || String(O || "") }
),
"error"
);
@@ -23097,71 +23112,71 @@ function ob({
return;
}
}
- if (zn(y, Rn.COPY_PATH) && x != null && x.filepath) {
- G();
+ if (Jn(y, Rn.COPY_PATH) && v != null && v.filepath) {
+ x();
try {
- await navigator.clipboard.writeText(x.filepath), Ce(m("toast.pathCopied"), "success", 2e3);
+ await navigator.clipboard.writeText(v.filepath), Ze(m("toast.pathCopied"), "success", 2e3);
} catch {
- Ce(m("toast.pathCopyFailed"), "error");
+ Ze(m("toast.pathCopyFailed"), "error");
}
return;
}
- if (zn(y, Rn.DOWNLOAD) && x != null && x.filepath) {
- G();
- const Y = Da(x.filepath), U = document.createElement("a");
- U.href = Y, U.download = x.filename || "download", document.body.appendChild(U), U.click(), document.body.removeChild(U), Ce(
+ if (Jn(y, Rn.DOWNLOAD) && v != null && v.filepath) {
+ x();
+ const j = Ea(v.filepath), O = document.createElement("a");
+ O.href = j, O.download = v.filename || "download", document.body.appendChild(O), O.click(), document.body.removeChild(O), Ze(
m("toast.downloadingFile", "Downloading {filename}...", {
- filename: x.filename
+ filename: v.filename
}),
"info",
3e3
);
return;
}
- if (zn(y, Rn.OPEN_IN_FOLDER) && x != null && x.id) {
- G();
- const Y = await Rs(x.id);
- Y != null && Y.ok ? Ce(m("toast.openedInFolder"), "info", 2e3) : Ce((Y == null ? void 0 : Y.error) || m("toast.openFolderFailed"), "error");
+ if (Jn(y, Rn.OPEN_IN_FOLDER) && v != null && v.id) {
+ x();
+ const j = await Os(v.id);
+ j != null && j.ok ? Ze(m("toast.openedInFolder"), "info", 2e3) : Ze((j == null ? void 0 : j.error) || m("toast.openFolderFailed"), "error");
return;
}
- if (zn(y, Rn.RENAME) && x != null && x.id) {
- G();
- const Y = x.filename || "", U = await ji(
+ if (Jn(y, Rn.RENAME) && v != null && v.id) {
+ x();
+ const j = v.filename || "", O = await Vi(
m("dialog.rename.title", "Rename file"),
- Y
- ), P = od(U, Y);
- if (P && P !== Y) {
- const ee = id(P);
- if (!ee.valid) {
- Ce(ee.reason, "error");
+ j
+ ), D = ld(O, j);
+ if (D && D !== j) {
+ const q = rd(D);
+ if (!q.valid) {
+ Ze(q.reason, "error");
return;
}
try {
- const oe = await Fs(x, P);
- if (oe != null && oe.ok) {
- const ce = (q = oe == null ? void 0 : oe.data) == null ? void 0 : q.asset;
- ce && typeof ce == "object" ? Object.assign(x, ce) : (x.filename = P, x.filepath = (O = x.filepath) == null ? void 0 : O.replace(/[^\\/]+$/, P), x.path && (x.path = String(x.path).replace(/[^\\/]+$/, P)), x.file_info && typeof x.file_info == "object" && (x.file_info.filename = P, x.file_info.filepath && (x.file_info.filepath = String(
- x.file_info.filepath
- ).replace(/[^\\/]+$/, P)), x.file_info.path && (x.file_info.path = String(x.file_info.path).replace(
+ const ee = await zs(v, D);
+ if (ee != null && ee.ok) {
+ const ce = (K = ee == null ? void 0 : ee.data) == null ? void 0 : K.asset;
+ ce && typeof ce == "object" ? Object.assign(v, ce) : (v.filename = D, v.filepath = (z = v.filepath) == null ? void 0 : z.replace(/[^\\/]+$/, D), v.path && (v.path = String(v.path).replace(/[^\\/]+$/, D)), v.file_info && typeof v.file_info == "object" && (v.file_info.filename = D, v.file_info.filepath && (v.file_info.filepath = String(
+ v.file_info.filepath
+ ).replace(/[^\\/]+$/, D)), v.file_info.path && (v.file_info.path = String(v.file_info.path).replace(
/[^\\/]+$/,
- P
- )))), Ce(m("toast.fileRenamedSuccess"), "success");
+ D
+ )))), Ze(m("toast.fileRenamedSuccess"), "success");
try {
window.dispatchEvent(
new CustomEvent("mjr:reload-grid", {
detail: { reason: "rename-keyboard" }
})
);
- } catch (pe) {
- (B = console.debug) == null || B.call(console, pe);
+ } catch (ue) {
+ (B = console.debug) == null || B.call(console, ue);
}
a();
} else
- Ce((oe == null ? void 0 : oe.error) || m("toast.fileRenameFailed"), "error");
- } catch (oe) {
- Ce(
+ Ze((ee == null ? void 0 : ee.error) || m("toast.fileRenameFailed"), "error");
+ } catch (ee) {
+ Ze(
m("toast.errorRenaming", "Error renaming file: {error}", {
- error: (oe == null ? void 0 : oe.message) || String(oe || "")
+ error: (ee == null ? void 0 : ee.message) || String(ee || "")
}),
"error"
);
@@ -23169,138 +23184,138 @@ function ob({
}
return;
}
- if ((zn(y, Rn.DELETE) || zn(y, Rn.DELETE_ALT)) && (x != null && x.id || z.length > 0)) {
- G();
- const Y = z.length > 0 ? z : [x];
- let U = 0, P = 0;
- const ee = [];
- for (const oe of Y)
- if (oe != null && oe.id)
+ if ((Jn(y, Rn.DELETE) || Jn(y, Rn.DELETE_ALT)) && (v != null && v.id || T.length > 0)) {
+ x();
+ const j = T.length > 0 ? T : [v];
+ let O = 0, D = 0;
+ const q = [];
+ for (const ee of j)
+ if (ee != null && ee.id)
try {
- const ce = await Ma(oe.id);
- ce != null && ce.ok ? (U++, ee.push(String(oe.id))) : P++;
+ const ce = await Sa(ee.id);
+ ce != null && ce.ok ? (O++, q.push(String(ee.id))) : D++;
} catch {
- P++;
+ D++;
}
- if (ee.length)
+ if (q.length)
try {
- const oe = e == null ? void 0 : e._mjrRemoveAssets;
- if (typeof oe == "function")
- oe(ee);
+ const ee = e == null ? void 0 : e._mjrRemoveAssets;
+ if (typeof ee == "function")
+ ee(q);
else
- for (const ce of ee) {
- const pe = e.querySelector(
+ for (const ce of q) {
+ const ue = e.querySelector(
`[data-mjr-asset-id="${ce}"]`
);
- (J = pe == null ? void 0 : pe.remove) == null || J.call(pe);
+ (J = ue == null ? void 0 : ue.remove) == null || J.call(ue);
}
- } catch (oe) {
- (T = console.debug) == null || T.call(console, oe);
+ } catch (ee) {
+ (P = console.debug) == null || P.call(console, ee);
}
- P === 0 ? Ce(
- U === 1 ? m("toast.filesDeletedShort", "{n} files deleted", { n: U }) : m("toast.filesDeletedShort", "{n} files deleted", {
- n: U
+ D === 0 ? Ze(
+ O === 1 ? m("toast.filesDeletedShort", "{n} files deleted", { n: O }) : m("toast.filesDeletedShort", "{n} files deleted", {
+ n: O
}),
"success"
- ) : Ce(
+ ) : Ze(
m("toast.filesDeletedShortPartial", "{success} deleted, {failed} failed", {
- success: U,
- failed: P
+ success: O,
+ failed: D
}),
"warning"
);
try {
if (typeof (e == null ? void 0 : e._mjrSetSelection) == "function") {
- const oe = z.filter((ce) => !ee.includes(String((ce == null ? void 0 : ce.id) || ""))).map((ce) => String((ce == null ? void 0 : ce.id) || "")).filter(Boolean);
- e._mjrSetSelection(oe, oe[0] || "");
+ const ee = T.filter((ce) => !q.includes(String((ce == null ? void 0 : ce.id) || ""))).map((ce) => String((ce == null ? void 0 : ce.id) || "")).filter(Boolean);
+ e._mjrSetSelection(ee, ee[0] || "");
}
- } catch (oe) {
- (D = console.debug) == null || D.call(console, oe);
+ } catch (ee) {
+ (H = console.debug) == null || H.call(console, ee);
}
l();
return;
}
- if (zn(y, Rn.SELECT_ALL)) {
- G();
- let Y = [];
+ if (Jn(y, Rn.SELECT_ALL)) {
+ x();
+ let j = [];
try {
if (Array.isArray(w == null ? void 0 : w.assets) && w.assets.length)
- Y = w.assets.map((U) => String((U == null ? void 0 : U.id) || "")).filter(Boolean);
+ j = w.assets.map((O) => String((O == null ? void 0 : O.id) || "")).filter(Boolean);
else if (typeof (e == null ? void 0 : e._mjrGetAssets) == "function") {
- const U = e._mjrGetAssets();
- Array.isArray(U) && (Y = U.map((P) => String((P == null ? void 0 : P.id) || "")).filter(Boolean));
+ const O = e._mjrGetAssets();
+ Array.isArray(O) && (j = O.map((D) => String((D == null ? void 0 : D.id) || "")).filter(Boolean));
}
- } catch (U) {
- (Q = console.debug) == null || Q.call(console, U);
+ } catch (O) {
+ ($ = console.debug) == null || $.call(console, O);
}
- if (!Y.length)
+ if (!j.length)
try {
- Y = M().map((U) => {
- var P;
- return String(((P = U == null ? void 0 : U._mjrAsset) == null ? void 0 : P.id) || "");
+ j = S().map((O) => {
+ var D;
+ return String(((D = O == null ? void 0 : O._mjrAsset) == null ? void 0 : D.id) || "");
}).filter(Boolean);
- } catch (U) {
- (E = console.debug) == null || E.call(console, U);
+ } catch (O) {
+ (E = console.debug) == null || E.call(console, O);
}
try {
- typeof (e == null ? void 0 : e._mjrSetSelection) == "function" ? e._mjrSetSelection(Y, Y[0] || "") : (M().forEach((P) => {
- P.classList.add("is-selected"), P.setAttribute("aria-selected", "true");
- }), e.dataset.mjrSelectedAssetIds = JSON.stringify(Y), e.dataset.mjrSelectedAssetId = String(Y[0] || ""));
- } catch (U) {
- (K = console.debug) == null || K.call(console, U);
+ typeof (e == null ? void 0 : e._mjrSetSelection) == "function" ? e._mjrSetSelection(j, j[0] || "") : (S().forEach((D) => {
+ D.classList.add("is-selected"), D.setAttribute("aria-selected", "true");
+ }), e.dataset.mjrSelectedAssetIds = JSON.stringify(j), e.dataset.mjrSelectedAssetId = String(j[0] || ""));
+ } catch (O) {
+ (oe = console.debug) == null || oe.call(console, O);
}
l();
return;
}
- if (zn(y, Rn.DESELECT_ALL)) {
- G();
+ if (Jn(y, Rn.DESELECT_ALL)) {
+ x();
try {
- typeof (e == null ? void 0 : e._mjrSetSelection) == "function" ? e._mjrSetSelection([], "") : (M().filter(
- (U) => {
- var P, ee;
- return (ee = (P = U == null ? void 0 : U.classList) == null ? void 0 : P.contains) == null ? void 0 : ee.call(P, "is-selected");
+ typeof (e == null ? void 0 : e._mjrSetSelection) == "function" ? e._mjrSetSelection([], "") : (S().filter(
+ (O) => {
+ var D, q;
+ return (q = (D = O == null ? void 0 : O.classList) == null ? void 0 : D.contains) == null ? void 0 : q.call(D, "is-selected");
}
- ).forEach((U) => {
- U.classList.remove("is-selected"), U.setAttribute("aria-selected", "false");
+ ).forEach((O) => {
+ O.classList.remove("is-selected"), O.setAttribute("aria-selected", "false");
}), delete e.dataset.mjrSelectedAssetIds, delete e.dataset.mjrSelectedAssetId);
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y);
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
}
l();
return;
}
- }, C = () => {
- d || (c = v, s = () => I(), document.addEventListener("keydown", c, !0), e.addEventListener("pointerdown", s, !0), e.addEventListener("focusin", s, !0), d = !0);
- }, S = () => {
+ }, h = () => {
+ d || (c = L, s = () => I(), document.addEventListener("keydown", c, !0), e.addEventListener("pointerdown", s, !0), e.addEventListener("focusin", s, !0), d = !0);
+ }, G = () => {
var y;
if (!(!d || !c)) {
document.removeEventListener("keydown", c, !0), s && (e.removeEventListener("pointerdown", s, !0), e.removeEventListener("focusin", s, !0)), c = null, s = null, d = !1;
- for (const k of Jo.values())
+ for (const X of Bo.values())
try {
- clearTimeout(k);
- } catch (G) {
- (y = console.debug) == null || y.call(console, G);
+ clearTimeout(X);
+ } catch (x) {
+ (y = console.debug) == null || y.call(console, x);
}
- Jo.clear();
+ Bo.clear();
}
};
- return { bind: C, unbind: S, dispose: () => {
+ return { bind: h, unbind: G, dispose: () => {
var y;
- S();
- for (const k of Jo.values())
+ G();
+ for (const X of Bo.values())
try {
- clearTimeout(k);
- } catch (G) {
- (y = console.debug) == null || y.call(console, G);
+ clearTimeout(X);
+ } catch (x) {
+ (y = console.debug) == null || y.call(console, x);
}
- Jo.clear();
+ Bo.clear();
} };
}
-function wi(e) {
+function Gi(e) {
const t = Rn[e];
- return t ? uW(t) : "";
+ return t ? IW(t) : "";
}
-function zu() {
+function Tu() {
return {
open: !1,
x: 0,
@@ -23309,11 +23324,11 @@ function zu() {
title: ""
};
}
-const Dt = js({
+const Dt = Ls({
portalOwnerId: "",
mountedPortalIds: [],
- main: zu(),
- submenu: zu(),
+ main: Tu(),
+ submenu: Tu(),
tags: {
open: !1,
x: 0,
@@ -23322,11 +23337,11 @@ const Dt = js({
onChanged: null
}
});
-let mW = 1;
-function rb(e) {
+let bW = 1;
+function lb(e) {
e && (e.open = !1, e.x = 0, e.y = 0, e.items = [], e.title = "");
}
-function gW(e = "") {
+function pW(e = "") {
var t;
try {
window.dispatchEvent(
@@ -23336,11 +23351,11 @@ function gW(e = "") {
(t = console.debug) == null || t.call(console, n);
}
}
-function IW() {
- const e = `mjr-grid-context-menu-portal-${mW++}`;
+function yW() {
+ const e = `mjr-grid-context-menu-portal-${bW++}`;
return Dt.mountedPortalIds.push(e), Dt.portalOwnerId || (Dt.portalOwnerId = e), e;
}
-function bW(e) {
+function fW(e) {
const t = Dt.mountedPortalIds.filter((n) => n !== e);
Dt.mountedPortalIds.splice(
0,
@@ -23348,34 +23363,34 @@ function bW(e) {
...t
), Dt.portalOwnerId === e && (Dt.portalOwnerId = Dt.mountedPortalIds[0] || "");
}
-function pW(e) {
+function hW(e) {
return String(Dt.portalOwnerId || "") === String(e || "");
}
-function Ju({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
- gW("grid"), ab(), mr(), Dt.main.open = !0, Dt.main.x = Number(e) || 0, Dt.main.y = Number(t) || 0, Dt.main.items = Array.isArray(n) ? n.filter(Boolean) : [], Dt.main.title = String(i || "");
-}
-function lb() {
- rb(Dt.main), mr();
-}
-function yW({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
- Dt.submenu.open = !0, Dt.submenu.x = Number(e) || 0, Dt.submenu.y = Number(t) || 0, Dt.submenu.items = Array.isArray(n) ? n.filter(Boolean) : [], Dt.submenu.title = String(i || "");
-}
-function mr() {
- rb(Dt.submenu);
-}
-function fW({ x: e = 0, y: t = 0, asset: n = null, onChanged: i = null } = {}) {
- lb(), Dt.tags.open = !!n, Dt.tags.x = Number(e) || 0, Dt.tags.y = Number(t) || 0, Dt.tags.asset = n || null, Dt.tags.onChanged = typeof i == "function" ? i : null;
+function Bu({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
+ pW("grid"), cb(), Ir(), Dt.main.open = !0, Dt.main.x = Number(e) || 0, Dt.main.y = Number(t) || 0, Dt.main.items = Array.isArray(n) ? n.filter(Boolean) : [], Dt.main.title = String(i || "");
}
function ab() {
+ lb(Dt.main), Ir();
+}
+function CW({ x: e = 0, y: t = 0, items: n = [], title: i = "" } = {}) {
+ Dt.submenu.open = !0, Dt.submenu.x = Number(e) || 0, Dt.submenu.y = Number(t) || 0, Dt.submenu.items = Array.isArray(n) ? n.filter(Boolean) : [], Dt.submenu.title = String(i || "");
+}
+function Ir() {
+ lb(Dt.submenu);
+}
+function ZW({ x: e = 0, y: t = 0, asset: n = null, onChanged: i = null } = {}) {
+ ab(), Dt.tags.open = !!n, Dt.tags.x = Number(e) || 0, Dt.tags.y = Number(t) || 0, Dt.tags.asset = n || null, Dt.tags.onChanged = typeof i == "function" ? i : null;
+}
+function cb() {
Dt.tags.open = !1, Dt.tags.x = 0, Dt.tags.y = 0, Dt.tags.asset = null, Dt.tags.onChanged = null;
}
-function vo() {
- lb(), ab();
+function Vo() {
+ ab(), cb();
}
-let cb = 1;
+let sb = 1;
function jn(e, t, n, i, { disabled: o = !1, closeOnSelect: r = !0, submenu: l = null } = {}) {
return {
- id: `mjr-grid-menu-item-${cb++}`,
+ id: `mjr-grid-menu-item-${sb++}`,
type: "item",
label: String(e || ""),
iconClass: t ? String(t) : "",
@@ -23386,13 +23401,13 @@ function jn(e, t, n, i, { disabled: o = !1, closeOnSelect: r = !0, submenu: l =
action: typeof i == "function" ? i : null
};
}
-function il() {
+function rl() {
return {
- id: `mjr-grid-menu-separator-${cb++}`,
+ id: `mjr-grid-menu-separator-${sb++}`,
type: "separator"
};
}
-const hW = (e) => {
+const AW = (e) => {
var n, i, o, r;
const t = /* @__PURE__ */ new Set();
if (!e) return t;
@@ -23416,7 +23431,7 @@ const hW = (e) => {
(r = console.debug) == null || r.call(console, l);
}
return t;
-}, sa = (e) => {
+}, da = (e) => {
var n, i, o;
const t = [];
if (!e) return t;
@@ -23446,7 +23461,7 @@ const hW = (e) => {
(o = console.debug) == null || o.call(console, r);
}
return t;
-}, Po = (e) => {
+}, _o = (e) => {
var t;
try {
const n = (e == null ? void 0 : e.filepath) || (e == null ? void 0 : e.path) || ((t = e == null ? void 0 : e.file_info) == null ? void 0 : t.filepath) || "";
@@ -23454,7 +23469,7 @@ const hW = (e) => {
} catch {
return "";
}
-}, CW = (e) => {
+}, WW = (e) => {
var t;
if (e) {
try {
@@ -23469,17 +23484,17 @@ const hW = (e) => {
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
- ii(
+ oi(
"mjr:selection-changed",
{ selectedIds: [] },
{ target: e, warnPrefix: "[GridContextMenu]" }
);
}
-}, ZW = (e, t, n, i) => {
+}, wW = (e, t, n, i) => {
var r, l, a, c, s, d, u;
if (!e) return;
try {
- CW(e);
+ WW(e);
} catch (I) {
(r = console.debug) == null || r.call(console, I);
}
@@ -23501,7 +23516,7 @@ const hW = (e) => {
} catch (I) {
(u = console.debug) == null || u.call(console, I);
}
-}, AW = (e) => {
+}, MW = (e) => {
var n, i;
const t = [];
if (!e) return t;
@@ -23524,7 +23539,7 @@ const hW = (e) => {
(i = console.debug) == null || i.call(console, o);
}
return t;
-}, WW = (e, t) => {
+}, SW = (e, t) => {
try {
const n = String(t ?? "");
return (e || []).findIndex((i) => String((i == null ? void 0 : i.id) ?? "") === n);
@@ -23532,18 +23547,18 @@ const hW = (e) => {
return -1;
}
};
-function sb(e) {
+function db(e) {
var t;
if (e == null) return null;
try {
- return document.querySelector(`[data-mjr-asset-id="${oW(e)}"]`);
+ return document.querySelector(`[data-mjr-asset-id="${aW(e)}"]`);
} catch (n) {
return (t = console.debug) == null || t.call(console, n), null;
}
}
-function ol(e, t = null) {
+function ll(e, t = null) {
var i;
- const n = sb(e == null ? void 0 : e.id);
+ const n = db(e == null ? void 0 : e.id);
if (!n || !n._mjrAsset || typeof n._mjrAsset != "object") return n;
try {
t && typeof t == "object" ? Object.assign(n._mjrAsset, t) : e && typeof e == "object" && Object.assign(n._mjrAsset, e);
@@ -23552,7 +23567,7 @@ function ol(e, t = null) {
}
return n;
}
-const Ki = (e) => {
+const Hi = (e) => {
var t, n;
try {
const i = e ? "grid-contextmenu" : "grid-contextmenu-global";
@@ -23561,7 +23576,7 @@ const Ki = (e) => {
(n = console.debug) == null || n.call(console, i);
}
};
-async function wW(e, t) {
+async function GW(e, t) {
var o, r, l;
if (!e) return { ok: !1, error: "Missing asset" };
const n = {
@@ -23571,25 +23586,25 @@ async function wW(e, t) {
root_id: String(e.root_id || e.rootId || ((o = e == null ? void 0 : e.file_info) == null ? void 0 : o.root_id) || "").trim() || void 0
};
if (!n.filename) return { ok: !1, error: "Missing filename" };
- const i = await Et(lt.INDEX_FILES, { files: [n], incremental: !1 });
+ const i = await Et(ct.INDEX_FILES, { files: [n], incremental: !1 });
if (!(i != null && i.ok)) return i || { ok: !1, error: "Index refresh failed" };
if ((e == null ? void 0 : e.id) != null)
try {
- const a = await ml(e.id);
+ const a = await gl(e.id);
if (a != null && a.ok && (a != null && a.data) && typeof a.data == "object") {
Object.assign(e, a.data);
- const c = ol(e, a.data), s = (r = c == null ? void 0 : c.querySelector) == null ? void 0 : r.call(c, ".mjr-workflow-dot");
+ const c = ll(e, a.data), s = (r = c == null ? void 0 : c.querySelector) == null ? void 0 : r.call(c, ".mjr-workflow-dot");
if (s) {
- const d = $a(c._mjrAsset);
+ const d = ec(c._mjrAsset);
d && s.replaceWith(d);
}
}
} catch (a) {
(l = console.debug) == null || l.call(console, a);
}
- return Ki(t), { ok: !0, data: { refreshed: !0 } };
+ return Hi(t), { ok: !0, data: { refreshed: !0 } };
}
-function Qo(e, t, n) {
+function $o(e, t, n) {
var o, r;
const i = e == null ? void 0 : e.id;
try {
@@ -23603,39 +23618,39 @@ function Qo(e, t, n) {
(r = console.debug) == null || r.call(console, l);
}
if (i) {
- TI(String(i), t, {
+ BI(String(i), t, {
successMessage: t > 0 ? `Rating set to ${t} stars` : "Rating cleared",
errorMessage: "Failed to update rating",
warnPrefix: "[GridContextMenu]",
onSuccess: () => {
- ii(
- Ri,
+ oi(
+ Fi,
{ assetId: String(i), rating: t },
{ warnPrefix: "[GridContextMenu]" }
);
},
onFailure: (l) => {
- li(l, "[GridContextMenu] Rating update", {
- showToast: ye.DEBUG_VERBOSE_ERRORS
+ ai(l, "[GridContextMenu] Rating update", {
+ showToast: fe.DEBUG_VERBOSE_ERRORS
});
}
});
return;
}
- Do(e, t).catch((l) => {
- li(l, "[GridContextMenu] Rating update", {
- showToast: ye.DEBUG_VERBOSE_ERRORS
+ Ho(e, t).catch((l) => {
+ ai(l, "[GridContextMenu] Rating update", {
+ showToast: fe.DEBUG_VERBOSE_ERRORS
});
});
}
-function db(e) {
+function ub(e) {
return String((e == null ? void 0 : e.scope) || "").toLowerCase() === "custom";
}
-function da(e) {
+function ua(e) {
return String((e == null ? void 0 : e.kind) || "").toLowerCase() === "folder";
}
-function MW(e) {
- const t = hW(e), n = sa(e), i = n.length || t.size;
+function xW(e) {
+ const t = AW(e), n = da(e), i = n.length || t.size;
return {
selectedIds: t,
selectedAssetsNow: n,
@@ -23644,39 +23659,39 @@ function MW(e) {
hasSelection: i > 0
};
}
-function SW(e, t) {
+function jW(e, t) {
const n = (o) => "*".repeat(o) + "o".repeat(Math.max(0, 5 - o)), i = (o) => {
- ol(e, { rating: o });
+ ll(e, { rating: o });
};
return [
jn(n(5), "pi pi-star", null, async () => {
- Qo(e, 5, () => i(5));
+ $o(e, 5, () => i(5));
}, { disabled: !t }),
jn(n(4), "pi pi-star", null, async () => {
- Qo(e, 4, () => i(4));
+ $o(e, 4, () => i(4));
}, { disabled: !t }),
jn(n(3), "pi pi-star", null, async () => {
- Qo(e, 3, () => i(3));
+ $o(e, 3, () => i(3));
}, { disabled: !t }),
jn(n(2), "pi pi-star", null, async () => {
- Qo(e, 2, () => i(2));
+ $o(e, 2, () => i(2));
}, { disabled: !t }),
jn(n(1), "pi pi-star", null, async () => {
- Qo(e, 1, () => i(1));
+ $o(e, 1, () => i(1));
}, { disabled: !t }),
- il(),
+ rl(),
jn(
m("ctx.resetRating", "Reset rating"),
"pi pi-star",
"0",
async () => {
- Qo(e, 0, () => i(0));
+ $o(e, 0, () => i(0));
},
{ disabled: !t }
)
];
}
-function GW({ currentPath: e, gridContainer: t }) {
+function vW({ currentPath: e, gridContainer: t }) {
return [
jn(
m("ctx.createFolderHere", "Create folder here..."),
@@ -23684,23 +23699,23 @@ function GW({ currentPath: e, gridContainer: t }) {
null,
async () => {
try {
- const n = await ji(m("dialog.newFolderName", "New folder name"), ""), i = String(n || "").trim();
+ const n = await Vi(m("dialog.newFolderName", "New folder name"), ""), i = String(n || "").trim();
if (!i) return;
- const o = await Dr({
+ const o = await Hr({
op: "create",
path: e,
name: i
});
if (!(o != null && o.ok)) {
- Ce((o == null ? void 0 : o.error) || "Failed to create folder", "error");
+ Ze((o == null ? void 0 : o.error) || "Failed to create folder", "error");
return;
}
- Ki(t), Ce(
+ Hi(t), Ze(
m("toast.folderCreated", "Folder created: {name}", { name: i }),
"success"
);
} catch (n) {
- Ce(
+ Ze(
m("toast.createFolderFailedDetail", "Create folder failed: {error}", {
error: (n == null ? void 0 : n.message) || String(n || "")
}),
@@ -23711,7 +23726,7 @@ function GW({ currentPath: e, gridContainer: t }) {
)
];
}
-function xW({ asset: e, gridContainer: t, panelState: n }) {
+function LW({ asset: e, gridContainer: t, panelState: n }) {
const i = String((e == null ? void 0 : e.filepath) || "").trim(), o = [
jn(m("ctx.openFolder", "Open folder"), "pi pi-folder-open", null, () => {
var r;
@@ -23729,21 +23744,21 @@ function xW({ asset: e, gridContainer: t, panelState: n }) {
jn(m("ctx.pinAsBrowserRoot"), "pi pi-bookmark", null, async () => {
var a, c;
if (!i) {
- Ce(m("toast.unableResolveFolderPath"), "error");
+ Ze(m("toast.unableResolveFolderPath"), "error");
return;
}
- const r = await ji(
+ const r = await Vi(
m("dialog.browserRootLabelOptional"),
String((e == null ? void 0 : e.filename) || "")
- ), l = await Et(lt.CUSTOM_ROOTS, {
+ ), l = await Et(ct.CUSTOM_ROOTS, {
path: i,
label: String(r || "").trim() || void 0
});
if (!(l != null && l.ok)) {
- Ce((l == null ? void 0 : l.error) || m("toast.pinFolderFailed"), "error");
+ Ze((l == null ? void 0 : l.error) || m("toast.pinFolderFailed"), "error");
return;
}
- Ce(m("toast.folderPinnedAsBrowserRoot"), "success");
+ Ze(m("toast.folderPinnedAsBrowserRoot"), "success");
try {
window.dispatchEvent(
new CustomEvent("mjr:custom-roots-changed", {
@@ -23755,24 +23770,24 @@ function xW({ asset: e, gridContainer: t, panelState: n }) {
}
})
];
- return db(n) && i && o.push(
- il(),
+ return ub(n) && i && o.push(
+ rl(),
jn(m("ctx.createFolderHere"), "pi pi-plus", null, async () => {
try {
- const r = await ji(m("dialog.newFolderName"), ""), l = String(r || "").trim();
+ const r = await Vi(m("dialog.newFolderName"), ""), l = String(r || "").trim();
if (!l) return;
- const a = await Dr({
+ const a = await Hr({
op: "create",
path: i,
name: l
});
if (!(a != null && a.ok)) {
- Ce((a == null ? void 0 : a.error) || m("toast.createFolderFailed"), "error");
+ Ze((a == null ? void 0 : a.error) || m("toast.createFolderFailed"), "error");
return;
}
- Ki(t), Ce(m("toast.folderCreated", { name: l }), "success");
+ Hi(t), Ze(m("toast.folderCreated", { name: l }), "success");
} catch (r) {
- Ce(
+ Ze(
m("toast.createFolderFailedDetail", {
error: (r == null ? void 0 : r.message) || String(r || "")
}),
@@ -23782,20 +23797,20 @@ function xW({ asset: e, gridContainer: t, panelState: n }) {
}),
jn(m("ctx.renameFolder"), "pi pi-pencil", null, async () => {
try {
- const r = String((e == null ? void 0 : e.filename) || "").trim(), l = await ji(m("dialog.renameFolder"), r), a = String(l || "").trim();
+ const r = String((e == null ? void 0 : e.filename) || "").trim(), l = await Vi(m("dialog.renameFolder"), r), a = String(l || "").trim();
if (!a || a === r) return;
- const c = await Dr({
+ const c = await Hr({
op: "rename",
path: i,
name: a
});
if (!(c != null && c.ok)) {
- Ce((c == null ? void 0 : c.error) || m("toast.renameFolderFailed"), "error");
+ Ze((c == null ? void 0 : c.error) || m("toast.renameFolderFailed"), "error");
return;
}
- Ki(t), Ce(m("toast.folderRenamed"), "success");
+ Hi(t), Ze(m("toast.folderRenamed"), "success");
} catch (r) {
- Ce(
+ Ze(
m("toast.renameFolderFailedDetail", {
error: (r == null ? void 0 : r.message) || String(r || "")
}),
@@ -23805,23 +23820,23 @@ function xW({ asset: e, gridContainer: t, panelState: n }) {
}),
jn(m("ctx.moveFolder"), "pi pi-arrow-right", null, async () => {
try {
- const r = await ji(
+ const r = await Vi(
m("dialog.destinationDirectoryPath"),
""
), l = String(r || "").trim();
if (!l) return;
- const a = await Dr({
+ const a = await Hr({
op: "move",
path: i,
destination: l
});
if (!(a != null && a.ok)) {
- Ce((a == null ? void 0 : a.error) || m("toast.moveFolderFailed"), "error");
+ Ze((a == null ? void 0 : a.error) || m("toast.moveFolderFailed"), "error");
return;
}
- Ki(t), Ce(m("toast.folderMoved"), "success");
+ Hi(t), Ze(m("toast.folderMoved"), "success");
} catch (r) {
- Ce(
+ Ze(
m("toast.moveFolderFailedDetail", {
error: (r == null ? void 0 : r.message) || String(r || "")
}),
@@ -23834,21 +23849,21 @@ function xW({ asset: e, gridContainer: t, panelState: n }) {
const r = String(
(e == null ? void 0 : e.filename) || m("label.thisFolder", "this folder")
);
- if (!await bi(
+ if (!await yi(
m("dialog.deleteFolderRecursive", { name: r })
)) return;
- const a = await Dr({
+ const a = await Hr({
op: "delete",
path: i,
recursive: !0
});
if (!(a != null && a.ok)) {
- Ce((a == null ? void 0 : a.error) || m("toast.deleteFolderFailed"), "error");
+ Ze((a == null ? void 0 : a.error) || m("toast.deleteFolderFailed"), "error");
return;
}
- Ki(t), Ce(m("toast.folderDeleted"), "success");
+ Hi(t), Ze(m("toast.folderDeleted"), "success");
} catch (r) {
- Ce(
+ Ze(
m("toast.deleteFolderFailedDetail", {
error: (r == null ? void 0 : r.message) || String(r || "")
}),
@@ -23858,7 +23873,7 @@ function xW({ asset: e, gridContainer: t, panelState: n }) {
})
), o;
}
-function jW({
+function VW({
asset: e,
card: t,
gridContainer: n,
@@ -23872,63 +23887,63 @@ function jW({
effectiveSelectionCount: c,
isMultiSelected: s,
hasSelection: d
- } = l, u = [], I = ({ assets: g = [], index: h = 0, mode: f = "" } = {}) => ec({ assets: g, index: h, mode: f });
+ } = l, u = [], I = ({ assets: g = [], index: Z = 0, mode: f = "" } = {}) => tc({ assets: g, index: Z, mode: f });
u.push(
- jn("Open Viewer", "pi pi-image", wi("OPEN_VIEWER"), () => {
+ jn("Open Viewer", "pi pi-image", Gi("OPEN_VIEWER"), () => {
var g;
try {
- const f = (d ? sa(n) : []).filter((S) => !da(S)), b = f.length;
+ const f = (d ? da(n) : []).filter((G) => !ua(G)), b = f.length;
if (b >= 2 && b <= 4) {
I({ assets: f, index: 0 });
return;
}
- const v = AW(n).filter(
- (S) => !da(S)
- ), C = WW(v, e == null ? void 0 : e.id);
- if (!v.length || C < 0) return;
- I({ assets: v, index: Math.max(0, C) });
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ const L = MW(n).filter(
+ (G) => !ua(G)
+ ), h = SW(L, e == null ? void 0 : e.id);
+ if (!L.length || h < 0) return;
+ I({ assets: L, index: Math.max(0, h) });
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
}),
jn(
m("ctx.showMetadataPanel", "Show metadata panel"),
"pi pi-info-circle",
- wi("METADATA_PANEL"),
+ Gi("METADATA_PANEL"),
() => {
var g;
try {
- ZW(n, t, e, i);
- const h = n == null ? void 0 : n._mjrOpenDetails;
- typeof h == "function" && h();
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ wW(n, t, e, i);
+ const Z = n == null ? void 0 : n._mjrOpenDetails;
+ typeof Z == "function" && Z();
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
}
)
);
const p = (d ? a : []).filter(
- (g) => !da(g)
- ), M = p.length;
- M === 2 && u.push(
+ (g) => !ua(g)
+ ), S = p.length;
+ S === 2 && u.push(
jn(
"Compare A/B (2 selected)",
"pi pi-clone",
- wi("COMPARE_AB"),
+ Gi("COMPARE_AB"),
() => {
var g;
try {
I({ assets: p, index: 0, mode: "ab" });
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
}
)
- ), M >= 2 && M <= 4 && u.push(
+ ), S >= 2 && S <= 4 && u.push(
jn(
- `Side-by-side (2x2) (${M} selected)`,
+ `Side-by-side (2x2) (${S} selected)`,
"pi pi-table",
- wi("SIDE_BY_SIDE"),
+ Gi("SIDE_BY_SIDE"),
() => {
var g;
try {
@@ -23937,8 +23952,8 @@ function jW({
index: 0,
mode: "sidebyside"
});
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
}
)
@@ -23946,39 +23961,39 @@ function jW({
jn(
m("ctx.openInFolder", "Open in folder"),
"pi pi-folder-open",
- wi("OPEN_IN_FOLDER"),
+ Gi("OPEN_IN_FOLDER"),
async () => {
- const g = await Rs(e);
- g != null && g.ok ? Ce(m("toast.openedInFolder"), "info", 2e3) : Ce((g == null ? void 0 : g.error) || m("toast.openFolderFailed"), "error");
+ const g = await Os(e);
+ g != null && g.ok ? Ze(m("toast.openedInFolder"), "info", 2e3) : Ze((g == null ? void 0 : g.error) || m("toast.openFolderFailed"), "error");
},
- { disabled: !(e != null && e.id || Po(e)) }
+ { disabled: !(e != null && e.id || _o(e)) }
),
jn(
m("ctx.copyPath", "Copy path"),
"pi pi-copy",
- wi("COPY_PATH"),
+ Gi("COPY_PATH"),
async () => {
const g = e != null && e.filepath ? String(e.filepath) : "";
if (!g) {
- Ce(m("toast.noFilePath"), "error");
+ Ze(m("toast.noFilePath"), "error");
return;
}
try {
- await navigator.clipboard.writeText(g), Ce(m("toast.pathCopied"), "success", 2e3);
- } catch (h) {
- console.warn(m("log.clipboardCopyFailed", "Clipboard copy failed"), h), Ce(m("toast.pathCopyFailed"), "error");
+ await navigator.clipboard.writeText(g), Ze(m("toast.pathCopied"), "success", 2e3);
+ } catch (Z) {
+ console.warn(m("log.clipboardCopyFailed", "Clipboard copy failed"), Z), Ze(m("toast.pathCopyFailed"), "error");
}
}
),
jn(
m("ctx.download", "Download"),
"pi pi-download",
- wi("DOWNLOAD"),
+ Gi("DOWNLOAD"),
() => {
if (!(e != null && e.filepath)) return;
- const g = Da(e.filepath), h = e.filename || "download", f = document.createElement("a");
- f.href = g, f.download = h, document.body.appendChild(f), f.click(), document.body.removeChild(f), Ce(
- m("toast.downloadingFile", "Downloading {filename}...", { filename: h }),
+ const g = Ea(e.filepath), Z = e.filename || "download", f = document.createElement("a");
+ f.href = g, f.download = Z, document.body.appendChild(f), f.click(), document.body.removeChild(f), Ze(
+ m("toast.downloadingFile", "Downloading {filename}...", { filename: Z }),
"info",
3e3
);
@@ -23988,81 +24003,81 @@ function jW({
jn(
"Add to collection...",
"pi pi-bookmark",
- wi("ADD_TO_COLLECTION"),
+ Gi("ADD_TO_COLLECTION"),
async () => {
- const g = sa(n), h = g.length ? g : [e];
- await nd({ x: o, y: r, assets: h });
+ const g = da(n), Z = g.length ? g : [e];
+ await od({ x: o, y: r, assets: Z });
}
)
);
- const Z = String((i == null ? void 0 : i.collectionId) || "").trim();
- if (Z) {
- const g = sa(n), f = (g.length ? g : [e]).map(Po).filter(Boolean), b = f.length > 1 ? `Remove from collection (${f.length})` : "Remove from collection";
+ const A = String((i == null ? void 0 : i.collectionId) || "").trim();
+ if (A) {
+ const g = da(n), f = (g.length ? g : [e]).map(_o).filter(Boolean), b = f.length > 1 ? `Remove from collection (${f.length})` : "Remove from collection";
u.push(
jn(b, "pi pi-bookmark", null, async () => {
if (!f.length) {
- Ce(m("toast.noFilePath"), "error");
+ Ze(m("toast.noFilePath"), "error");
return;
}
- const v = await Ng(Z, f);
- if (!(v != null && v.ok)) {
- Ce((v == null ? void 0 : v.error) || m("toast.removeFromCollectionFailed"), "error");
+ const L = await Rg(A, f);
+ if (!(L != null && L.ok)) {
+ Ze((L == null ? void 0 : L.error) || m("toast.removeFromCollectionFailed"), "error");
return;
}
- Ki(n);
+ Hi(n);
})
);
}
- const A = !!(e != null && e.id || Po(e));
+ const C = !!(e != null && e.id || _o(e));
return u.push(
- il(),
+ rl(),
jn(
m("ctx.editTags", "Edit tags"),
"pi pi-tags",
- wi("EDIT_TAGS"),
+ Gi("EDIT_TAGS"),
() => {
- ub(o + 6, r + 6, e, () => {
- ol(e, {
+ mb(o + 6, r + 6, e, () => {
+ ll(e, {
tags: Array.isArray(e == null ? void 0 : e.tags) ? [...e.tags] : []
});
});
},
{ closeOnSelect: !1 }
),
- il(),
+ rl(),
jn(
m("ctx.setRating", "Set rating"),
"pi pi-star",
"1-5 >",
null,
{
- disabled: !A,
+ disabled: !C,
closeOnSelect: !1,
- submenu: SW(e, A)
+ submenu: jW(e, C)
}
),
- il(),
+ rl(),
jn(
m("ctx.resetIndexFile", "Reset index (this file)"),
"pi pi-refresh",
null,
async () => {
if (e != null && e.filename || e != null && e.id) {
- Ce(m("toast.rescanningFile", "Rescanning file..."), "info", 1600);
+ Ze(m("toast.rescanningFile", "Rescanning file..."), "info", 1600);
try {
- const g = await wW(e, n);
- g != null && g.ok ? Ce(
+ const g = await GW(e, n);
+ g != null && g.ok ? Ze(
m("toast.metadataRefreshed", "Metadata refreshed{suffix}", {
suffix: ""
}),
"success",
1800
- ) : Ce(
+ ) : Ze(
(g == null ? void 0 : g.error) || m("toast.resetFailed", "Failed to reset index"),
"error"
);
} catch (g) {
- Ce(
+ Ze(
`${m("toast.resetFailed", "Failed to reset index")}: ${(g == null ? void 0 : g.message) || String(g || "")}`,
"error"
);
@@ -24074,89 +24089,89 @@ function jW({
jn(
"Rename...",
"pi pi-pencil",
- wi("RENAME"),
+ Gi("RENAME"),
async () => {
- var v, C;
- if (!(e != null && e.id || Po(e))) return;
- const g = e.filename || "", h = await ji(
+ var L, h;
+ if (!(e != null && e.id || _o(e))) return;
+ const g = e.filename || "", Z = await Vi(
m("dialog.rename.title", "Rename file"),
g
- ), f = od(h, g);
+ ), f = ld(Z, g);
if (!f || f === g) return;
- const b = id(f);
+ const b = rd(f);
if (!b.valid) {
- Ce(b.reason, "error");
+ Ze(b.reason, "error");
return;
}
try {
- const S = await Fs(e, f);
- if (!(S != null && S.ok)) {
- Ce((S == null ? void 0 : S.error) || m("toast.fileRenameFailed"), "error");
+ const G = await zs(e, f);
+ if (!(G != null && G.ok)) {
+ Ze((G == null ? void 0 : G.error) || m("toast.fileRenameFailed"), "error");
return;
}
- const W = (v = S == null ? void 0 : S.data) == null ? void 0 : v.asset;
- W && typeof W == "object" ? (Object.assign(e, W), ol(e, W)) : (e.filename = f, e.filepath && (e.filepath = String(e.filepath).replace(/[^\\/]+$/, f)), e.path && (e.path = String(e.path).replace(/[^\\/]+$/, f)), e.file_info && typeof e.file_info == "object" && (e.file_info.filename = f, e.file_info.filepath && (e.file_info.filepath = String(e.file_info.filepath).replace(
+ const W = (L = G == null ? void 0 : G.data) == null ? void 0 : L.asset;
+ W && typeof W == "object" ? (Object.assign(e, W), ll(e, W)) : (e.filename = f, e.filepath && (e.filepath = String(e.filepath).replace(/[^\\/]+$/, f)), e.path && (e.path = String(e.path).replace(/[^\\/]+$/, f)), e.file_info && typeof e.file_info == "object" && (e.file_info.filename = f, e.file_info.filepath && (e.file_info.filepath = String(e.file_info.filepath).replace(
/[^\\/]+$/,
f
)), e.file_info.path && (e.file_info.path = String(e.file_info.path).replace(
/[^\\/]+$/,
f
- ))), ol(e, {
+ ))), ll(e, {
filename: e.filename,
filepath: e.filepath,
path: e.path,
file_info: e.file_info
}));
- const y = sb(e.id), k = (C = y == null ? void 0 : y.querySelector) == null ? void 0 : C.call(y, ".mjr-filename");
- k && (k.textContent = e.filename || f), Ce(m("toast.fileRenamedSuccess"), "success"), Ki(n);
- } catch (S) {
- Ce(
+ const y = db(e.id), X = (h = y == null ? void 0 : y.querySelector) == null ? void 0 : h.call(y, ".mjr-filename");
+ X && (X.textContent = e.filename || f), Ze(m("toast.fileRenamedSuccess"), "success"), Hi(n);
+ } catch (G) {
+ Ze(
m("toast.errorRenaming", "Error renaming file: {error}", {
- error: (S == null ? void 0 : S.message) || String(S || "")
+ error: (G == null ? void 0 : G.message) || String(G || "")
}),
"error"
);
}
},
- { disabled: !(e != null && e.id || Po(e)) }
+ { disabled: !(e != null && e.id || _o(e)) }
)
), s ? u.push(
jn(
`Delete ${c} files...`,
"pi pi-trash",
- wi("DELETE"),
+ Gi("DELETE"),
async () => {
- if (await rs(Number(c) || 0))
+ if (await as(Number(c) || 0))
try {
- let h = 0, f = 0;
+ let Z = 0, f = 0;
const b = [];
- let v = 0;
- const C = a.length ? a : [e];
- for (const S of C) {
- const W = await Ma(S);
- W != null && W.ok ? (h += 1, (S == null ? void 0 : S.id) != null ? b.push(String(S.id)) : v += 1) : f += 1;
+ let L = 0;
+ const h = a.length ? a : [e];
+ for (const G of h) {
+ const W = await Sa(G);
+ W != null && W.ok ? (Z += 1, (G == null ? void 0 : G.id) != null ? b.push(String(G.id)) : L += 1) : f += 1;
}
if (b.length) {
- const S = is(n, b);
- i && Array.isArray(S == null ? void 0 : S.selectedIds) && (i.selectedAssetIds = S.selectedIds, i.activeAssetId = S.selectedIds[0] || "");
+ const G = rs(n, b);
+ i && Array.isArray(G == null ? void 0 : G.selectedIds) && (i.selectedAssetIds = G.selectedIds, i.activeAssetId = G.selectedIds[0] || "");
}
- v > 0 && Ki(n), f === 0 ? Ce(
+ L > 0 && Hi(n), f === 0 ? Ze(
m("toast.filesDeletedSuccessN", "{n} files deleted successfully!", {
- n: h
+ n: Z
}),
"success"
- ) : Ce(
+ ) : Ze(
m(
"toast.filesDeletedPartial",
"{success} files deleted, {failed} failed.",
- { success: h, failed: f }
+ { success: Z, failed: f }
),
"warning"
);
- } catch (h) {
- Ce(
+ } catch (Z) {
+ Ze(
m("toast.errorDeleting", "Error deleting file: {error}", {
- error: (h == null ? void 0 : h.message) || String(h || "")
+ error: (Z == null ? void 0 : Z.message) || String(Z || "")
}),
"error"
);
@@ -24167,43 +24182,43 @@ function jW({
jn(
m("ctx.delete", "Delete"),
"pi pi-trash",
- wi("DELETE"),
+ Gi("DELETE"),
async () => {
- if (await rs(1, e == null ? void 0 : e.filename))
+ if (await as(1, e == null ? void 0 : e.filename))
try {
- const h = await Ma(e);
- if (!(h != null && h.ok)) {
- Ce((h == null ? void 0 : h.error) || m("toast.fileDeleteFailed"), "error");
+ const Z = await Sa(e);
+ if (!(Z != null && Z.ok)) {
+ Ze((Z == null ? void 0 : Z.error) || m("toast.fileDeleteFailed"), "error");
return;
}
if (e != null && e.id) {
- const f = is(n, [String(e.id)]);
+ const f = rs(n, [String(e.id)]);
i && Array.isArray(f == null ? void 0 : f.selectedIds) && (i.selectedAssetIds = f.selectedIds, i.activeAssetId = f.selectedIds[0] || "");
} else
- Ki(n);
- Ce(m("toast.fileDeletedSuccess"), "success");
- } catch (h) {
- Ce(
+ Hi(n);
+ Ze(m("toast.fileDeletedSuccess"), "success");
+ } catch (Z) {
+ Ze(
m("toast.errorDeleting", "Error deleting file: {error}", {
- error: (h == null ? void 0 : h.message) || String(h || "")
+ error: (Z == null ? void 0 : Z.message) || String(Z || "")
}),
"error"
);
}
},
- { disabled: !(e != null && e.id || Po(e)) }
+ { disabled: !(e != null && e.id || _o(e)) }
)
), u;
}
-function ub(e, t, n, i) {
- n && fW({
+function mb(e, t, n, i) {
+ n && ZW({
x: e,
y: t,
asset: n,
onChanged: i
});
}
-function ld({
+function cd({
gridContainer: e,
getState: t = () => ({})
} = {}) {
@@ -24218,22 +24233,22 @@ function ld({
} catch {
return {};
}
- })(), l = ri(o.target, ".mjr-asset-card");
+ })(), l = li(o.target, ".mjr-asset-card");
if (!l) {
- if (!db(r)) return;
+ if (!ub(r)) return;
const u = String(((d = e == null ? void 0 : e.dataset) == null ? void 0 : d.mjrSubfolder) || "").trim();
if (!u) return;
- o.preventDefault(), o.stopPropagation(), Ju({
+ o.preventDefault(), o.stopPropagation(), Bu({
x: o.clientX,
y: o.clientY,
- items: GW({ currentPath: u, gridContainer: e })
+ items: vW({ currentPath: u, gridContainer: e })
});
return;
}
o.preventDefault(), o.stopPropagation();
const a = l._mjrAsset;
if (!a) return;
- const c = MW(e), s = da(a) ? xW({ asset: a, gridContainer: e, panelState: r }) : jW({
+ const c = xW(e), s = ua(a) ? LW({ asset: a, gridContainer: e, panelState: r }) : VW({
asset: a,
card: l,
gridContainer: e,
@@ -24242,7 +24257,7 @@ function ld({
pointerY: o.clientY,
selection: c
});
- Ju({
+ Bu({
x: o.clientX,
y: o.clientY,
items: s
@@ -24272,20 +24287,20 @@ function ld({
(l = console.debug) == null || l.call(console, s);
}
try {
- JI();
+ TI();
} catch (s) {
(a = console.debug) == null || a.call(console, s);
}
try {
- vo();
+ Vo();
} catch (s) {
(c = console.debug) == null || c.call(console, s);
}
};
return e._mjrGridContextMenuUnbind = i, i;
}
-const Tu = Ri;
-function vW(e) {
+const Uu = Fi;
+function YW(e) {
var n;
const t = String(e ?? "");
try {
@@ -24296,7 +24311,7 @@ function vW(e) {
}
return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
-function LW(e, t = null) {
+function kW(e, t = null) {
var n, i, o;
if (!e) return [];
try {
@@ -24313,7 +24328,7 @@ function LW(e, t = null) {
}
return [];
}
-function Bu(e, t, n) {
+function Ku(e, t, n) {
var o;
if (!e) return;
const i = e._mjrAsset;
@@ -24327,7 +24342,7 @@ function Bu(e, t, n) {
(o = console.debug) == null || o.call(console, r);
}
}
-async function YW(e, t, n = 5) {
+async function XW(e, t, n = 5) {
const i = Math.max(1, Number(n) || 1);
let o = 0;
const r = [], l = async () => {
@@ -24346,50 +24361,50 @@ async function YW(e, t, n = 5) {
r.push(l());
await Promise.all(r);
}
-function mb({ gridContainer: e, createRatingBadge: t } = {}) {
+function gb({ gridContainer: e, createRatingBadge: t } = {}) {
let n = !1, i = null, o = null;
const r = async (c, s) => {
const d = c == null ? void 0 : c._mjrAsset, u = d == null ? void 0 : d.id;
if (u != null) {
try {
- const I = await Do(u, s);
+ const I = await Ho(u, s);
if (!(I != null && I.ok)) {
- Ce((I == null ? void 0 : I.error) || m("toast.ratingUpdateFailed"), "error");
+ Ze((I == null ? void 0 : I.error) || m("toast.ratingUpdateFailed"), "error");
return;
}
- Ce(m("toast.ratingSetN", { n: s }), "success", 1500);
+ Ze(m("toast.ratingSetN", { n: s }), "success", 1500);
} catch {
- Ce(m("toast.ratingUpdateError"), "error");
+ Ze(m("toast.ratingUpdateError"), "error");
return;
}
- Bu(c, t, s);
+ Ku(c, t, s);
}
};
return { bind: () => {
var c, s;
if (!(n || !e)) {
- n = !0, Iu(!0), i = async (d) => {
- var A;
- if (Wo().scope === "viewer" || d.defaultPrevented) return;
+ n = !0, pu(!0), i = async (d) => {
+ var C;
+ if (Mo().scope === "viewer" || d.defaultPrevented) return;
const u = String(d.key || "");
if (u !== "0" && u !== "1" && u !== "2" && u !== "3" && u !== "4" && u !== "5") return;
const I = document.querySelector(".mjr-viewer-overlay");
if (I && I.style.display !== "none" || !(e.contains(d.target) || e === d.target)) return;
- const M = u === "0" ? 0 : Number(u);
- if (!Number.isFinite(M)) return;
- const Z = LW(e, d.target);
- Z.length && (Z.length > 0 && (d.preventDefault(), d.stopPropagation(), (A = d.stopImmediatePropagation) == null || A.call(d)), await YW(Z, (g) => r(g, M), 5));
+ const S = u === "0" ? 0 : Number(u);
+ if (!Number.isFinite(S)) return;
+ const A = kW(e, d.target);
+ A.length && (A.length > 0 && (d.preventDefault(), d.stopPropagation(), (C = d.stopImmediatePropagation) == null || C.call(d)), await XW(A, (g) => r(g, S), 5));
}, o = (d) => {
- var M;
+ var S;
const u = (d == null ? void 0 : d.detail) || {}, I = u.assetId ?? u.id ?? null, p = Number(u.rating);
if (!(!I || !Number.isFinite(p)))
try {
- const Z = e.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${vW(I)}"]`
+ const A = e.querySelector(
+ `.mjr-asset-card[data-mjr-asset-id="${YW(I)}"]`
);
- Z && Bu(Z, t, p);
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ A && Ku(A, t, p);
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
};
try {
@@ -24398,7 +24413,7 @@ function mb({ gridContainer: e, createRatingBadge: t } = {}) {
(c = console.debug) == null || c.call(console, d);
}
try {
- window.addEventListener(Tu, o);
+ window.addEventListener(Uu, o);
} catch (d) {
(s = console.debug) == null || s.call(console, d);
}
@@ -24406,14 +24421,14 @@ function mb({ gridContainer: e, createRatingBadge: t } = {}) {
}, dispose: () => {
var c, s;
if (n) {
- n = !1, Iu(!1);
+ n = !1, pu(!1);
try {
window.removeEventListener("keydown", i, { capture: !0 });
} catch (d) {
(c = console.debug) == null || c.call(console, d);
}
try {
- window.removeEventListener(Tu, o);
+ window.removeEventListener(Uu, o);
} catch (d) {
(s = console.debug) == null || s.call(console, d);
}
@@ -24421,7 +24436,7 @@ function mb({ gridContainer: e, createRatingBadge: t } = {}) {
}
} };
}
-function gb(e) {
+function Ib(e) {
var i, o, r;
if (!e || ((i = e.dataset) == null ? void 0 : i.mjrOverlayButtonBound) === "1") return e;
try {
@@ -24441,18 +24456,18 @@ function gb(e) {
};
return e.addEventListener("pointerdown", t), e.addEventListener("mousedown", n), e.addEventListener("touchstart", t, { passive: !0 }), e.addEventListener("dblclick", t), e.addEventListener("keydown", t), e.addEventListener("dragstart", n), e;
}
-function VW(e) {
+function NW(e) {
var t;
return String(((t = e == null ? void 0 : e.dataset) == null ? void 0 : t.mjrGroupStacks) || "") === "1";
}
-function kW(e) {
+function RW(e) {
const t = String((e == null ? void 0 : e.stack_id) || "").trim();
return t ? `stack:${t}` : "";
}
-function XW(e, t, n) {
- return VW(e) && kW(t) || n;
+function FW(e, t, n) {
+ return NW(e) && RW(t) || n;
}
-function NW(e) {
+function OW(e) {
var t, n, i;
try {
(n = (t = e._mjrStackMembersCache) == null ? void 0 : t.clear) == null || n.call(t);
@@ -24460,7 +24475,7 @@ function NW(e) {
(i = console.debug) == null || i.call(console, o);
}
}
-function RW(e, t, n) {
+function zW(e, t, n) {
if (!t || !n || t._mjrIsVue) return;
const i = !!n._mjrDupStack, o = Number(n._mjrDupCount || 0) || 0;
if (!i || o < 2) {
@@ -24470,7 +24485,7 @@ function RW(e, t, n) {
}
t.dataset.mjrDupStacked = "true", t.dataset.mjrDupCount = String(o);
let r = t.querySelector(".mjr-dup-stack-button");
- r || (r = document.createElement("button"), r.type = "button", r.className = "mjr-dup-stack-button", r.setAttribute("aria-label", "Show all duplicates"), gb(r), r.addEventListener("click", (a) => {
+ r || (r = document.createElement("button"), r.type = "button", r.className = "mjr-dup-stack-button", r.setAttribute("aria-label", "Show all duplicates"), Ib(r), r.addEventListener("click", (a) => {
var c;
a.preventDefault(), a.stopPropagation();
try {
@@ -24478,7 +24493,7 @@ function RW(e, t, n) {
if (!s || !d) return;
const u = Array.isArray(d._mjrDupMembers) ? d._mjrDupMembers : [d], I = u.length;
s.dispatchEvent(
- new CustomEvent(ft.OPEN_STACK_GROUP, {
+ new CustomEvent(ht.OPEN_STACK_GROUP, {
bubbles: !0,
detail: {
asset: d,
@@ -24495,12 +24510,12 @@ function RW(e, t, n) {
const l = `${o} duplicate${o > 1 ? "s" : ""}`;
r.title = `${l} β click to compare all copies`, r.innerHTML = `${o}`;
}
-function Ib(e, t = void 0) {
- const n = Op(), i = zp(e, t);
+function bb(e, t = void 0) {
+ const n = Tp(), i = Bp(e, t);
return i.use(n), { app: i, pinia: n };
}
-const Na = /* @__PURE__ */ new Map();
-function FW(e, t, n) {
+const Ra = /* @__PURE__ */ new Map();
+function JW(e, t, n) {
try {
window.dispatchEvent(
new CustomEvent("mjr:keepalive-attached", {
@@ -24514,26 +24529,26 @@ function FW(e, t, n) {
} catch {
}
}
-function OW(e) {
+function TW(e) {
const t = document.createElement("div");
return t.dataset.mjrKeepAliveHost = String(e || "_mjrVueApp"), t.style.height = "100%", t.style.width = "100%", t.style.minHeight = "0", t.style.display = "flex", t.style.flexDirection = "column", t.style.overflow = "hidden", t;
}
-function zW(e, t) {
+function BW(e, t) {
var n;
- !e || !t || (e.style.height = "100%", e.style.minHeight = "0", e.style.display = "flex", e.style.flexDirection = "column", e.style.overflow = "hidden", !(e.firstChild === t && e.childNodes.length === 1) && (e.replaceChildren(t), FW((n = t == null ? void 0 : t.dataset) == null ? void 0 : n.mjrKeepAliveHost, t, e)));
+ !e || !t || (e.style.height = "100%", e.style.minHeight = "0", e.style.display = "flex", e.style.flexDirection = "column", e.style.overflow = "hidden", !(e.firstChild === t && e.childNodes.length === 1) && (e.replaceChildren(t), JW((n = t == null ? void 0 : t.dataset) == null ? void 0 : n.mjrKeepAliveHost, t, e)));
}
-function ad(e, t, n = "_mjrVueApp") {
+function sd(e, t, n = "_mjrVueApp") {
if (!e) return !1;
- let i = Na.get(n), o = !1;
+ let i = Ra.get(n), o = !1;
if (!i) {
- const r = OW(n), { app: l } = Ib(t);
- l.mount(r), i = { app: l, host: r, container: null }, Na.set(n, i), o = !0;
+ const r = TW(n), { app: l } = bb(t);
+ l.mount(r), i = { app: l, host: r, container: null }, Ra.set(n, i), o = !0;
}
- return zW(e, i.host), i.container = e, o;
+ return BW(e, i.host), i.container = e, o;
}
-function cd(e, t = "_mjrVueApp") {
+function dd(e, t = "_mjrVueApp") {
var i, o;
- const n = Na.get(t);
+ const n = Ra.get(t);
if (n != null && n.app) {
try {
n.app.unmount();
@@ -24543,34 +24558,34 @@ function cd(e, t = "_mjrVueApp") {
(o = (i = n.host) == null ? void 0 : i.remove) == null || o.call(i);
} catch {
}
- Na.delete(t);
+ Ra.delete(t);
}
}
-function _o(e, t, n) {
+function er(e, t, n) {
let i = n.initialDeps ?? [], o, r = !0;
function l() {
var a, c, s;
let d;
n.key && ((a = n.debug) != null && a.call(n)) && (d = Date.now());
const u = e();
- if (!(u.length !== i.length || u.some((M, Z) => i[Z] !== M)))
+ if (!(u.length !== i.length || u.some((S, A) => i[A] !== S)))
return o;
i = u;
let p;
if (n.key && ((c = n.debug) != null && c.call(n)) && (p = Date.now()), o = t(...u), n.key && ((s = n.debug) != null && s.call(n))) {
- const M = Math.round((Date.now() - d) * 100) / 100, Z = Math.round((Date.now() - p) * 100) / 100, A = Z / 16, g = (h, f) => {
- for (h = String(h); h.length < f; )
- h = " " + h;
- return h;
+ const S = Math.round((Date.now() - d) * 100) / 100, A = Math.round((Date.now() - p) * 100) / 100, C = A / 16, g = (Z, f) => {
+ for (Z = String(Z); Z.length < f; )
+ Z = " " + Z;
+ return Z;
};
console.info(
- `%cβ± ${g(Z, 5)} /${g(M, 5)} ms`,
+ `%cβ± ${g(A, 5)} /${g(S, 5)} ms`,
`
font-size: .6rem;
font-weight: bold;
color: hsl(${Math.max(
0,
- Math.min(120 - 120 * A, 120)
+ Math.min(120 - 120 * C, 120)
)}deg 100% 31%);`,
n == null ? void 0 : n.key
);
@@ -24581,25 +24596,25 @@ function _o(e, t, n) {
i = a;
}, l;
}
-function Uu(e, t) {
+function Du(e, t) {
if (e === void 0)
throw new Error("Unexpected undefined");
return e;
}
-const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
+const UW = (e, t) => Math.abs(e - t) < 1.01, KW = (e, t, n) => {
let i;
return function(...o) {
e.clearTimeout(i), i = e.setTimeout(() => t.apply(this, o), n);
};
-}, Ku = (e) => {
+}, Eu = (e) => {
const { offsetWidth: t, offsetHeight: n } = e;
return { width: t, height: n };
-}, BW = (e) => e, UW = (e) => {
+}, DW = (e) => e, EW = (e) => {
const t = Math.max(e.startIndex - e.overscan, 0), n = Math.min(e.endIndex + e.overscan, e.count - 1), i = [];
for (let o = t; o <= n; o++)
i.push(o);
return i;
-}, KW = (e, t) => {
+}, HW = (e, t) => {
const n = e.scrollElement;
if (!n)
return;
@@ -24610,7 +24625,7 @@ const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
const { width: a, height: c } = l;
t({ width: Math.round(a), height: Math.round(c) });
};
- if (o(Ku(n)), !i.ResizeObserver)
+ if (o(Eu(n)), !i.ResizeObserver)
return () => {
};
const r = new i.ResizeObserver((l) => {
@@ -24623,16 +24638,16 @@ const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
return;
}
}
- o(Ku(n));
+ o(Eu(n));
};
e.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(a) : a();
});
return r.observe(n, { box: "border-box" }), () => {
r.unobserve(n);
};
-}, Du = {
+}, Hu = {
passive: !0
-}, Eu = typeof window > "u" ? !0 : "onscrollend" in window, DW = (e, t) => {
+}, qu = typeof window > "u" ? !0 : "onscrollend" in window, qW = (e, t) => {
const n = e.scrollElement;
if (!n)
return;
@@ -24640,8 +24655,8 @@ const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
if (!i)
return;
let o = 0;
- const r = e.options.useScrollendEvent && Eu ? () => {
- } : TW(
+ const r = e.options.useScrollendEvent && qu ? () => {
+ } : KW(
i,
() => {
t(o, !1);
@@ -24651,12 +24666,12 @@ const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
const { horizontal: u, isRtl: I } = e.options;
o = u ? n.scrollLeft * (I && -1 || 1) : n.scrollTop, r(), t(o, d);
}, a = l(!0), c = l(!1);
- n.addEventListener("scroll", a, Du);
- const s = e.options.useScrollendEvent && Eu;
- return s && n.addEventListener("scrollend", c, Du), () => {
+ n.addEventListener("scroll", a, Hu);
+ const s = e.options.useScrollendEvent && qu;
+ return s && n.addEventListener("scrollend", c, Hu), () => {
n.removeEventListener("scroll", a), s && n.removeEventListener("scrollend", c);
};
-}, bb = (e, t, n) => {
+}, pb = (e, t, n) => {
if (t != null && t.borderBoxSize) {
const i = t.borderBoxSize[0];
if (i)
@@ -24665,7 +24680,7 @@ const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
);
}
return e[n.options.horizontal ? "offsetWidth" : "offsetHeight"];
-}, EW = (e, {
+}, PW = (e, {
adjustments: t = 0,
behavior: n
}, i) => {
@@ -24676,7 +24691,7 @@ const JW = (e, t) => Math.abs(e - t) < 1.01, TW = (e, t, n) => {
behavior: n
});
};
-class HW {
+class QW {
constructor(t) {
this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.scrollState = null, this.measurementsCache = [], this.itemSizeCache = /* @__PURE__ */ new Map(), this.laneAssignments = /* @__PURE__ */ new Map(), this.pendingMeasuredCacheIndexes = [], this.prevLanes = void 0, this.lanesChangedFlag = !1, this.lanesSettling = !1, this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this.elementsCache = /* @__PURE__ */ new Map(), this.now = () => {
var n, i, o;
@@ -24725,11 +24740,11 @@ class HW {
scrollPaddingStart: 0,
scrollPaddingEnd: 0,
horizontal: !1,
- getItemKey: BW,
- rangeExtractor: UW,
+ getItemKey: DW,
+ rangeExtractor: EW,
onChange: () => {
},
- measureElement: bb,
+ measureElement: pb,
initialRect: { width: 0, height: 0 },
scrollMargin: 0,
gap: 0,
@@ -24746,7 +24761,7 @@ class HW {
}, this.notify = (n) => {
var i, o;
(o = (i = this.options).onChange) == null || o.call(i, this, n);
- }, this.maybeNotify = _o(
+ }, this.maybeNotify = er(
() => (this.calculateRange(), [
this.isScrolling,
this.range ? this.range.startIndex : null,
@@ -24804,7 +24819,7 @@ class HW {
break;
}
return r.size === this.options.lanes ? Array.from(r.values()).sort((l, a) => l.end === a.end ? l.index - a.index : l.end - a.end)[0] : void 0;
- }, this.getMeasurementOptions = _o(
+ }, this.getMeasurementOptions = er(
() => [
this.options.count,
this.options.paddingStart,
@@ -24824,7 +24839,7 @@ class HW {
{
key: !1
}
- ), this.getMeasurements = _o(
+ ), this.getMeasurements = er(
() => [this.getMeasurementOptions(), this.itemSizeCache],
({ count: n, paddingStart: i, scrollMargin: o, getItemKey: r, enabled: l, lanes: a }, c) => {
if (!l)
@@ -24845,25 +24860,25 @@ class HW {
p && (u[p.lane] = I);
}
for (let I = s; I < n; I++) {
- const p = r(I), M = this.laneAssignments.get(I);
- let Z, A;
- if (M !== void 0 && this.options.lanes > 1) {
- Z = M;
- const b = u[Z], v = b !== void 0 ? d[b] : void 0;
- A = v ? v.end + this.options.gap : i + o;
+ const p = r(I), S = this.laneAssignments.get(I);
+ let A, C;
+ if (S !== void 0 && this.options.lanes > 1) {
+ A = S;
+ const b = u[A], L = b !== void 0 ? d[b] : void 0;
+ C = L ? L.end + this.options.gap : i + o;
} else {
const b = this.options.lanes === 1 ? d[I - 1] : this.getFurthestMeasurement(d, I);
- A = b ? b.end + this.options.gap : i + o, Z = b ? b.lane : I % this.options.lanes, this.options.lanes > 1 && this.laneAssignments.set(I, Z);
+ C = b ? b.end + this.options.gap : i + o, A = b ? b.lane : I % this.options.lanes, this.options.lanes > 1 && this.laneAssignments.set(I, A);
}
- const g = c.get(p), h = typeof g == "number" ? g : this.options.estimateSize(I), f = A + h;
+ const g = c.get(p), Z = typeof g == "number" ? g : this.options.estimateSize(I), f = C + Z;
d[I] = {
index: I,
- start: A,
- size: h,
+ start: C,
+ size: Z,
end: f,
key: p,
- lane: Z
- }, u[Z] = I;
+ lane: A
+ }, u[A] = I;
}
return this.measurementsCache = d, d;
},
@@ -24871,14 +24886,14 @@ class HW {
key: !1,
debug: () => this.options.debug
}
- ), this.calculateRange = _o(
+ ), this.calculateRange = er(
() => [
this.getMeasurements(),
this.getSize(),
this.getScrollOffset(),
this.options.lanes
],
- (n, i, o, r) => this.range = n.length > 0 && i > 0 ? qW({
+ (n, i, o, r) => this.range = n.length > 0 && i > 0 ? _W({
measurements: n,
outerSize: i,
scrollOffset: o,
@@ -24888,7 +24903,7 @@ class HW {
key: !1,
debug: () => this.options.debug
}
- ), this.getVirtualIndexes = _o(
+ ), this.getVirtualIndexes = er(
() => {
let n = null, i = null;
const o = this.calculateRange();
@@ -24949,7 +24964,7 @@ class HW {
adjustments: this.scrollAdjustments += a,
behavior: void 0
}), this.pendingMeasuredCacheIndexes.push(r.index), this.itemSizeCache = new Map(this.itemSizeCache.set(r.key, i)), this.notify(!1));
- }, this.getVirtualItems = _o(
+ }, this.getVirtualItems = er(
() => [this.getVirtualIndexes(), this.getMeasurements()],
(n, i) => {
const o = [];
@@ -24966,11 +24981,11 @@ class HW {
), this.getVirtualItemForOffset = (n) => {
const i = this.getMeasurements();
if (i.length !== 0)
- return Uu(
- i[pb(
+ return Du(
+ i[yb(
0,
i.length - 1,
- (o) => Uu(i[o]).start,
+ (o) => Du(i[o]).start,
n
)]
);
@@ -25089,7 +25104,7 @@ class HW {
return;
}
const i = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0, o = i ? i[0] : this.scrollState.lastTargetOffset, r = 1, l = o !== this.scrollState.lastTargetOffset;
- if (!l && JW(o, this.getScrollOffset())) {
+ if (!l && UW(o, this.getScrollOffset())) {
if (this.scrollState.stableFrames++, this.scrollState.stableFrames >= r) {
this.scrollState = null;
return;
@@ -25102,7 +25117,7 @@ class HW {
this.scheduleScrollReconcile();
}
}
-const pb = (e, t, n, i) => {
+const yb = (e, t, n, i) => {
for (; e <= t; ) {
const o = (e + t) / 2 | 0, r = n(o);
if (r < i)
@@ -25114,7 +25129,7 @@ const pb = (e, t, n, i) => {
}
return e > 0 ? e - 1 : 0;
};
-function qW({
+function _W({
measurements: e,
outerSize: t,
scrollOffset: n,
@@ -25126,7 +25141,7 @@ function qW({
startIndex: 0,
endIndex: o
};
- let l = pb(
+ let l = yb(
0,
o,
r,
@@ -25150,43 +25165,43 @@ function qW({
}
return { startIndex: l, endIndex: a };
}
-function PW(e) {
- const t = new HW(Ge(e)), n = vs(t), i = t._didMount();
- return an(
- () => Ge(e).getScrollElement(),
+function $W(e) {
+ const t = new QW(xe(e)), n = Vs(t), i = t._didMount();
+ return cn(
+ () => xe(e).getScrollElement(),
(o) => {
o && t._willUpdate();
},
{
immediate: !0
}
- ), an(
- () => Ge(e),
+ ), cn(
+ () => xe(e),
(o) => {
t.setOptions({
...o,
onChange: (r, l) => {
var a;
- kd(n), (a = o.onChange) == null || a.call(o, r, l);
+ Nd(n), (a = o.onChange) == null || a.call(o, r, l);
}
- }), t._willUpdate(), kd(n);
+ }), t._willUpdate(), Nd(n);
},
{
immediate: !0
}
- ), Jp(i), n;
+ ), Up(i), n;
}
-function QW(e) {
- return PW(
- Je(() => ({
- observeElementRect: KW,
- observeElementOffset: DW,
- scrollToFn: EW,
- ...Ge(e)
+function e1(e) {
+ return $W(
+ ze(() => ({
+ observeElementRect: HW,
+ observeElementOffset: qW,
+ scrollToFn: PW,
+ ...xe(e)
}))
);
}
-const qr = "application/x-mjr-asset", yb = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp", ".avif"]), fb = /* @__PURE__ */ new Set([".mp4", ".mov", ".mkv", ".webm", ".avi"]), hb = /* @__PURE__ */ new Set([".wav", ".mp3", ".flac", ".ogg", ".m4a", ".aac", ".opus"]), Cb = /* @__PURE__ */ new Set([
+const Qr = "application/x-mjr-asset", fb = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp", ".avif"]), hb = /* @__PURE__ */ new Set([".mp4", ".mov", ".mkv", ".webm", ".avi"]), Cb = /* @__PURE__ */ new Set([".wav", ".mp3", ".flac", ".ogg", ".m4a", ".aac", ".opus"]), Zb = /* @__PURE__ */ new Set([
".obj",
".fbx",
".glb",
@@ -25196,22 +25211,22 @@ const qr = "application/x-mjr-asset", yb = /* @__PURE__ */ new Set([".png", ".jp
".splat",
".ksplat",
".spz"
-]), _W = () => {
+]), t1 = () => {
try {
return !!(window != null && window.MJR_DND_DEBUG);
} catch {
return !1;
}
-}, $o = (...e) => {
- _W() && console.debug("[Majoor.DnD]", ...e);
-}, $W = (e, { buildCustomViewURL: t, buildViewURL: n }) => {
+}, tr = (...e) => {
+ t1() && console.debug("[Majoor.DnD]", ...e);
+}, n1 = (e, { buildCustomViewURL: t, buildViewURL: n }) => {
const i = String((e == null ? void 0 : e.type) || "output").toLowerCase();
return i === "custom" ? t(
(e == null ? void 0 : e.filename) || "",
(e == null ? void 0 : e.subfolder) || "",
- vi(e)
+ Mi(e)
) : i === "input" ? n((e == null ? void 0 : e.filename) || "", (e == null ? void 0 : e.subfolder) || "", "input") : n((e == null ? void 0 : e.filename) || "", (e == null ? void 0 : e.subfolder) || "", "output");
-}, e1 = (e) => {
+}, i1 = (e) => {
if (!e || typeof e != "object") return null;
const t = String(e.filename || "").trim();
if (!t || t.includes("/") || t.includes("\\") || t.includes("\0")) return null;
@@ -25223,32 +25238,32 @@ const qr = "application/x-mjr-asset", yb = /* @__PURE__ */ new Set([".png", ".jp
root_id: l || void 0,
kind: a || void 0
};
-}, Hu = (e, t) => {
+}, Pu = (e, t) => {
var i, o;
const n = (o = (i = e == null ? void 0 : e.dataTransfer) == null ? void 0 : i.getData) == null ? void 0 : o.call(i, t);
if (!n) return null;
try {
- return e1(JSON.parse(n));
+ return i1(JSON.parse(n));
} catch {
return null;
}
-}, t1 = (e) => {
- if (!e) return !1;
- const t = e.lastIndexOf(".");
- return t === -1 ? !1 : yb.has(e.slice(t).toLowerCase());
-}, n1 = (e) => e ? String(e.kind || "").toLowerCase() === "image" ? !0 : t1(e.filename) : !1, i1 = (e) => {
+}, o1 = (e) => {
if (!e) return !1;
const t = e.lastIndexOf(".");
return t === -1 ? !1 : fb.has(e.slice(t).toLowerCase());
-}, o1 = (e) => e ? e.kind === "video" ? !0 : i1(e.filename) : !1, r1 = (e) => {
+}, r1 = (e) => e ? String(e.kind || "").toLowerCase() === "image" ? !0 : o1(e.filename) : !1, l1 = (e) => {
if (!e) return !1;
const t = e.lastIndexOf(".");
return t === -1 ? !1 : hb.has(e.slice(t).toLowerCase());
-}, l1 = (e) => e ? String(e.kind || "").toLowerCase() === "audio" ? !0 : r1(e.filename) : !1, a1 = (e) => {
+}, a1 = (e) => e ? e.kind === "video" ? !0 : l1(e.filename) : !1, c1 = (e) => {
if (!e) return !1;
const t = e.lastIndexOf(".");
return t === -1 ? !1 : Cb.has(e.slice(t).toLowerCase());
-}, c1 = (e) => e ? String(e.kind || "").toLowerCase() === "model3d" ? !0 : a1(e.filename) : !1, qu = (e) => n1(e) || o1(e) || l1(e) || c1(e), s1 = {
+}, s1 = (e) => e ? String(e.kind || "").toLowerCase() === "audio" ? !0 : c1(e.filename) : !1, d1 = (e) => {
+ if (!e) return !1;
+ const t = e.lastIndexOf(".");
+ return t === -1 ? !1 : Zb.has(e.slice(t).toLowerCase());
+}, u1 = (e) => e ? String(e.kind || "").toLowerCase() === "model3d" ? !0 : d1(e.filename) : !1, Qu = (e) => r1(e) || a1(e) || s1(e) || u1(e), m1 = {
mp4: "video/mp4",
mov: "video/quicktime",
webm: "video/webm",
@@ -25258,71 +25273,71 @@ const qr = "application/x-mjr-asset", yb = /* @__PURE__ */ new Set([".png", ".jp
obj: "model/obj",
stl: "model/stl",
ply: "application/ply"
-}, d1 = (e) => {
+}, g1 = (e) => {
var n;
const t = (n = String(e || "").split(".").pop()) == null ? void 0 : n.toLowerCase();
- return s1[t] ?? "application/octet-stream";
-}, Zb = (e, t) => {
+ return m1[t] ?? "application/octet-stream";
+}, Ab = (e, t) => {
if (typeof e != "string") return !1;
const n = e.trim().toLowerCase();
if (!n) return !1;
const i = (n.split(/[?#]/)[0].split(".").pop() || "").toLowerCase();
- return i ? t && i === String(t).toLowerCase() ? !0 : fb.has(`.${i}`) : !1;
-}, tc = (e, t, n) => {
+ return i ? t && i === String(t).toLowerCase() ? !0 : hb.has(`.${i}`) : !1;
+}, nc = (e, t, n) => {
if (!e || e.type !== "combo" || !e.options) return !1;
const i = Array.isArray(e.options.values) && e.options.values || e.options.values && Array.isArray(e.options.values.values) && e.options.values.values || null;
return Array.isArray(i) ? i.some((o) => {
const r = typeof o == "string" ? o : (o == null ? void 0 : o.content) ?? (o == null ? void 0 : o.value) ?? (o == null ? void 0 : o.text);
return n(r, t);
}) : !1;
-}, u1 = (e, t) => tc(e, t, Zb), Ab = (e, t) => {
+}, I1 = (e, t) => nc(e, t, Ab), Wb = (e, t) => {
if (typeof e != "string") return !1;
const n = e.trim().toLowerCase();
if (!n) return !1;
const i = (n.split(/[?#]/)[0].split(".").pop() || "").toLowerCase();
- return i ? t && i === String(t).toLowerCase() ? !0 : yb.has(`.${i}`) : !1;
-}, m1 = (e, t) => tc(e, t, Ab), Wb = (e, t) => {
- if (typeof e != "string") return !1;
- const n = e.trim().toLowerCase();
- if (!n) return !1;
- const i = (n.split(/[?#]/)[0].split(".").pop() || "").toLowerCase();
- return i ? t && i === String(t).toLowerCase() ? !0 : hb.has(`.${i}`) : !1;
-}, g1 = (e, t) => tc(e, t, Wb), wb = (e, t) => {
+ return i ? t && i === String(t).toLowerCase() ? !0 : fb.has(`.${i}`) : !1;
+}, b1 = (e, t) => nc(e, t, Wb), wb = (e, t) => {
if (typeof e != "string") return !1;
const n = e.trim().toLowerCase();
if (!n) return !1;
const i = (n.split(/[?#]/)[0].split(".").pop() || "").toLowerCase();
return i ? t && i === String(t).toLowerCase() ? !0 : Cb.has(`.${i}`) : !1;
-}, I1 = (e, t) => tc(e, t, wb), Ra = /* @__PURE__ */ new WeakMap();
-let Fa = !1;
-function b1(e) {
- return e && Ra.get(e) || null;
+}, p1 = (e, t) => nc(e, t, wb), Mb = (e, t) => {
+ if (typeof e != "string") return !1;
+ const n = e.trim().toLowerCase();
+ if (!n) return !1;
+ const i = (n.split(/[?#]/)[0].split(".").pop() || "").toLowerCase();
+ return i ? t && i === String(t).toLowerCase() ? !0 : Zb.has(`.${i}`) : !1;
+}, y1 = (e, t) => nc(e, t, Mb), Fa = /* @__PURE__ */ new WeakMap();
+let Oa = !1;
+function f1(e) {
+ return e && Fa.get(e) || null;
}
-function p1(e, t) {
- return e ? typeof t == "function" ? (Ra.set(e, t), t) : (Ra.delete(e), null) : null;
+function h1(e, t) {
+ return e ? typeof t == "function" ? (Fa.set(e, t), t) : (Fa.delete(e), null) : null;
}
-function y1(e) {
- e && Ra.delete(e);
+function C1(e) {
+ e && Fa.delete(e);
}
-function f1() {
- Fa = !0;
+function Z1() {
+ Oa = !0;
}
-function h1() {
- return Fa ? (Fa = !1, !0) : !1;
+function A1() {
+ return Oa ? (Oa = !1, !0) : !1;
}
-function Pu() {
- Fa = !1;
+function _u() {
+ Oa = !1;
}
-const C1 = (e) => {
+const W1 = (e) => {
var n;
const t = ((n = e == null ? void 0 : e.canvas) == null ? void 0 : n.canvas) || document.querySelector("canvas");
return t ? t.getBoundingClientRect() : null;
-}, Qu = (e, t) => {
- const n = C1(e);
+}, $u = (e, t) => {
+ const n = W1(e);
if (!n) return !1;
const i = t.clientX, o = t.clientY;
return i >= n.left && i <= n.right && o >= n.top && o <= n.bottom;
-}, Lo = (e) => {
+}, Yo = (e) => {
var t, n, i, o, r, l;
try {
(n = (t = e == null ? void 0 : e.graph) == null ? void 0 : t.setDirtyCanvas) == null || n.call(t, !0, !0);
@@ -25334,13 +25349,13 @@ const C1 = (e) => {
} catch (a) {
(l = console.debug) == null || l.call(console, a);
}
-}, ds = (e) => {
+}, ms = (e) => {
try {
return new URL(String(e || ""), window.location.href).href;
} catch {
return String(e || "");
}
-}, Z1 = () => Ep("mjr_", 24), A1 = (e) => {
+}, w1 = () => Pp("mjr_", 24), M1 = (e) => {
const t = e && typeof e == "object" ? e : null;
if (!t) return null;
const n = t.filename || t.name;
@@ -25348,9 +25363,9 @@ const C1 = (e) => {
filename: n,
subfolder: t.subfolder || "",
type: String(t.type || "output").toLowerCase(),
- root_id: vi(t) || void 0
+ root_id: Mi(t) || void 0
} : null;
-}, Mb = (e, t) => {
+}, Sb = (e, t) => {
var r, l, a, c;
const n = [];
if (!e || !t) return n;
@@ -25394,29 +25409,29 @@ const C1 = (e) => {
!d || typeof d != "object" || n.push(d);
}
return n;
-}, W1 = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".webp", ".avif", ".mp4", ".mov"]), w1 = (e) => {
+}, S1 = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".webp", ".avif", ".mp4", ".mov"]), G1 = (e) => {
if (!e || typeof e != "object") return !1;
if (e.has_workflow || e.has_generation_data) return !0;
const t = String(e.ext || e.filename || "").toLowerCase(), n = t.includes(".") ? t.slice(t.lastIndexOf(".")) : `.${t}`;
- return W1.has(n);
-}, M1 = (e) => {
+ return S1.has(n);
+}, x1 = (e) => {
var n;
if (!e || typeof e != "object") return "";
const t = e.filepath || e.path || ((n = e == null ? void 0 : e.file_info) == null ? void 0 : n.filepath) || "";
return t ? String(t) : "";
-}, S1 = (e) => {
+}, j1 = (e) => {
var t, n;
for (const i of e) {
- const o = M1(i);
+ const o = x1(i);
if (!o) {
(t = console.debug) == null || t.call(console, "[DragOut] No filepath for asset:", i == null ? void 0 : i.filename);
continue;
}
- const r = oy(o);
+ const r = ay(o);
if (!r) continue;
const l = document.createElement("a");
try {
- l.href = ds(r), l.download = i.filename || i.name || "download", l.style.display = "none", document.body.appendChild(l), l.click(), setTimeout(() => {
+ l.href = ms(r), l.download = i.filename || i.name || "download", l.style.display = "none", document.body.appendChild(l), l.click(), setTimeout(() => {
try {
l.remove();
} catch {
@@ -25430,31 +25445,31 @@ const C1 = (e) => {
(n = console.debug) == null || n.call(console, a);
}
}
-}, G1 = ({ dt: e, asset: t, containerEl: n, card: i, viewUrl: o }) => {
+}, v1 = ({ dt: e, asset: t, containerEl: n, card: i, viewUrl: o }) => {
var s, d, u;
if (!e || !t) return;
- const r = Mb(n, i);
+ const r = Sb(n, i);
if (Array.isArray(r) && r.length > 1) {
- const I = r.map(A1).filter(Boolean);
+ const I = r.map(M1).filter(Boolean);
if (I.length > 1) {
let p = "";
try {
- p = Z1();
- } catch (M) {
- console.warn("[DragOut] failed to create secure batch token", M);
+ p = w1();
+ } catch (S) {
+ console.warn("[DragOut] failed to create secure batch token", S);
}
if (p) {
try {
- Et(lt.BATCH_ZIP_CREATE, { token: p, items: I }).catch(() => {
+ Et(ct.BATCH_ZIP_CREATE, { token: p, items: I }).catch(() => {
});
- } catch (A) {
- (s = console.debug) == null || s.call(console, A);
+ } catch (C) {
+ (s = console.debug) == null || s.call(console, C);
}
- const M = ds($p(p)), Z = `Majoor_Batch_${I.length}.zip`;
+ const S = ms(ny(p)), A = `Majoor_Batch_${I.length}.zip`;
try {
- e.setData("text/uri-list", M), e.setData("DownloadURL", `application/zip:${Z}:${M}`), e.effectAllowed = "copy";
- } catch (A) {
- (d = console.debug) == null || d.call(console, A);
+ e.setData("text/uri-list", S), e.setData("DownloadURL", `application/zip:${A}:${S}`), e.effectAllowed = "copy";
+ } catch (C) {
+ (d = console.debug) == null || d.call(console, C);
}
return;
}
@@ -25462,20 +25477,20 @@ const C1 = (e) => {
}
const l = t.filename || t.name;
if (!l) return;
- const a = ds(o), c = d1(l);
+ const a = ms(o), c = g1(l);
try {
e.setData("text/uri-list", a), e.setData("DownloadURL", `${c}:${l}:${a}`), e.effectAllowed = "copy";
} catch (I) {
(u = console.debug) == null || u.call(console, I);
}
-}, x1 = (e, { asset: t, containerEl: n, card: i }) => {
+}, L1 = (e, { asset: t, containerEl: n, card: i }) => {
var o, r;
if (!(!e || !t))
try {
const l = (o = e == null ? void 0 : e.dataTransfer) == null ? void 0 : o.dropEffect;
- if (!l || l === "none" || h1()) return;
- const a = Mb(n, i), c = a.length > 1 ? a : [t];
- if (!c.some(w1)) return;
+ if (!l || l === "none" || A1()) return;
+ const a = Sb(n, i), c = a.length > 1 ? a : [t];
+ if (!c.some(G1)) return;
const d = c.length, u = t.filename || t.name || "file", I = m(
"dialog.stripMetadataBody",
"Would you like to download a clean copy with ComfyUI workflow and generation metadata removed?"
@@ -25484,21 +25499,21 @@ const C1 = (e) => {
${I}` : `${m("dialog.stripMetadataHeader", `You dragged "${u}" outside ComfyUI.`)}
${I}`;
- bi(p, m("dialog.stripMetadataTitle", "Strip ComfyUI Metadata?")).then((M) => {
- M && S1(c);
+ yi(p, m("dialog.stripMetadataTitle", "Strip ComfyUI Metadata?")).then((S) => {
+ S && j1(c);
}).catch(() => {
});
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
-}, _u = /* @__PURE__ */ new WeakMap(), Sb = (e) => {
+}, em = /* @__PURE__ */ new WeakMap(), Gb = (e) => {
if (!e || typeof e != "object")
return { node: null, prev: null };
- let t = _u.get(e);
- return t || (t = { node: null, prev: null }, _u.set(e, t)), t;
-}, $u = (e, t, n) => {
- var M, Z, A;
- const i = ((M = e == null ? void 0 : e.canvas) == null ? void 0 : M.canvas) || document.querySelector("canvas"), o = (Z = e == null ? void 0 : e.canvas) == null ? void 0 : Z.graph, r = (A = e == null ? void 0 : e.canvas) == null ? void 0 : A.ds;
+ let t = em.get(e);
+ return t || (t = { node: null, prev: null }, em.set(e, t)), t;
+}, tm = (e, t, n) => {
+ var S, A, C;
+ const i = ((S = e == null ? void 0 : e.canvas) == null ? void 0 : S.canvas) || document.querySelector("canvas"), o = (A = e == null ? void 0 : e.canvas) == null ? void 0 : A.graph, r = (C = e == null ? void 0 : e.canvas) == null ? void 0 : C.ds;
if (!i || !o || !r) return null;
const l = i.getBoundingClientRect();
if (t < l.left || t > l.right || n < l.top || n > l.bottom)
@@ -25508,20 +25523,20 @@ ${I}`;
return o.getNodeOnPos(u, I);
const p = o._nodes || [];
for (let g = p.length - 1; g >= 0; g--) {
- const h = p[g];
- if (!(h != null && h.pos) || !(h != null && h.size)) continue;
- const f = h.size[0];
- let b = h.size[1];
- if (h.flags && h.flags.collapsed && (b = 30), u >= h.pos[0] && I >= h.pos[1] && u <= h.pos[0] + f && I <= h.pos[1] + b)
- return h;
+ const Z = p[g];
+ if (!(Z != null && Z.pos) || !(Z != null && Z.size)) continue;
+ const f = Z.size[0];
+ let b = Z.size[1];
+ if (Z.flags && Z.flags.collapsed && (b = 30), u >= Z.pos[0] && I >= Z.pos[1] && u <= Z.pos[0] + f && I <= Z.pos[1] + b)
+ return Z;
}
return null;
-}, j1 = (e, t, n) => {
- const i = Sb(e);
- !t || i.node === t || (gr(e, n), i.node = t, i.prev = { color: t.color, bgcolor: t.bgcolor }, t.bgcolor = "#3355ff", t.color = "#a9c4ff", n(e));
-}, gr = (e, t) => {
+}, V1 = (e, t, n) => {
+ const i = Gb(e);
+ !t || i.node === t || (br(e, n), i.node = t, i.prev = { color: t.color, bgcolor: t.bgcolor }, t.bgcolor = "#3355ff", t.color = "#a9c4ff", n(e));
+}, br = (e, t) => {
var i;
- const n = Sb(e);
+ const n = Gb(e);
if (n.node) {
try {
n.prev && (n.node.color = n.prev.color, n.node.bgcolor = n.prev.bgcolor);
@@ -25530,7 +25545,7 @@ ${I}`;
}
n.node = null, n.prev = null, t(e);
}
-}, v1 = (e, t) => {
+}, Y1 = (e, t) => {
if (!e || e.type !== "combo" || !e.options) return;
let n = e.options.values, i = e.options;
if (typeof n == "function")
@@ -25541,7 +25556,7 @@ ${I}`;
else
return;
n.some((r) => typeof r == "string" ? r === t : ((r == null ? void 0 : r.content) ?? (r == null ? void 0 : r.value) ?? (r == null ? void 0 : r.text)) === t) || (n.length === 0 || typeof n[0] == "string" ? n.unshift(t) : n.unshift({ content: t, text: t, value: t }), i.values = n);
-}, L1 = /* @__PURE__ */ new Set(["number", "int", "float", "boolean", "toggle", "checkbox"]), Y1 = ["output", "save", "export", "folder", "dir"], V1 = ["file", "path"], k1 = ["path", "file", "input", "src", "source"], X1 = (e, t, n) => {
+}, k1 = /* @__PURE__ */ new Set(["number", "int", "float", "boolean", "toggle", "checkbox"]), X1 = ["output", "save", "export", "folder", "dir"], N1 = ["file", "path"], R1 = ["path", "file", "input", "src", "source"], F1 = (e, t, n) => {
var s;
const i = e == null ? void 0 : e.widgets;
if (!Array.isArray(i) || !i.length) return null;
@@ -25549,19 +25564,19 @@ ${I}`;
for (const d of i) {
if (!d) continue;
const u = String((d == null ? void 0 : d.type) || "").toLowerCase(), I = d == null ? void 0 : d.value;
- if (L1.has(u) || typeof I == "number" || typeof I == "boolean") continue;
- const p = u === "text" || u === "string" || u === "combo", M = typeof (d == null ? void 0 : d.callback) == "function" && typeof I == "string";
- if (!p && !M) continue;
- const Z = String((d == null ? void 0 : d.name) || (d == null ? void 0 : d.label) || "").toLowerCase().trim();
- let A = 0;
- n.exactNames.has(Z) && (A += 100), Z === "file" && l && u === "combo" && n.comboChecker(d, o) && (A += 100);
- const g = n.mediaTerms.some((b) => Z.includes(b)), h = k1.some((b) => Z.includes(b));
- g && h && (A += 80), V1.some((b) => Z.includes(b)) && (A += 35);
- for (const { terms: b, score: v } of n.extraTerms)
- b.some((C) => Z.includes(C)) && (A += v);
- Y1.some((b) => Z.includes(b)) && (A -= 90), n.exactSingleNames.has(Z) && (typeof I == "string" && I.trim() === "" || n.looksLikeFn(I, o) ? A += 25 : A -= 10), l && (A += 15);
+ if (k1.has(u) || typeof I == "number" || typeof I == "boolean") continue;
+ const p = u === "text" || u === "string" || u === "combo", S = typeof (d == null ? void 0 : d.callback) == "function" && typeof I == "string";
+ if (!p && !S) continue;
+ const A = String((d == null ? void 0 : d.name) || (d == null ? void 0 : d.label) || "").toLowerCase().trim();
+ let C = 0;
+ n.exactNames.has(A) && (C += 100), A === "file" && l && u === "combo" && n.comboChecker(d, o) && (C += 100);
+ const g = n.mediaTerms.some((b) => A.includes(b)), Z = R1.some((b) => A.includes(b));
+ g && Z && (C += 80), N1.some((b) => A.includes(b)) && (C += 35);
+ for (const { terms: b, score: L } of n.extraTerms)
+ b.some((h) => A.includes(h)) && (C += L);
+ X1.some((b) => A.includes(b)) && (C -= 90), n.exactSingleNames.has(A) && (typeof I == "string" && I.trim() === "" || n.looksLikeFn(I, o) ? C += 25 : C -= 10), l && (C += 15);
const f = typeof I == "string" && I.trim() === "";
- f && (A += 3), u === "combo" && n.comboChecker(d, o) && (A += 12), a.push({ w: d, score: A, emptyValue: f, combo: u === "combo" });
+ f && (C += 3), u === "combo" && n.comboChecker(d, o) && (C += 12), a.push({ w: d, score: C, emptyValue: f, combo: u === "combo" });
}
if (!a.length) return null;
a.sort((d, u) => u.score !== d.score ? u.score - d.score : u.emptyValue !== d.emptyValue ? u.emptyValue ? 1 : -1 : u.combo !== d.combo ? u.combo ? 1 : -1 : 0);
@@ -25573,34 +25588,34 @@ ${I}`;
(s = console.debug) == null || s.call(console, d);
}
return c.w;
-}, N1 = {
+}, O1 = {
exactNames: /* @__PURE__ */ new Set(["video_path", "input_video", "source_video", "video"]),
knownNodeIncludes: ["loadvideo", "vhs_loadvideo", "videoloader"],
mediaTerms: ["video"],
extraTerms: [{ terms: ["media", "clip", "footage"], score: 45 }],
exactSingleNames: /* @__PURE__ */ new Set(["video"]),
- looksLikeFn: Zb,
- comboChecker: u1,
+ looksLikeFn: Ab,
+ comboChecker: I1,
scoreKey: "__mjrVideoPickScore"
-}, R1 = {
+}, z1 = {
exactNames: /* @__PURE__ */ new Set(["image", "image_path", "input_image", "source_image"]),
knownNodeIncludes: ["loadimage", "loadimagemask", "imageloader"],
mediaTerms: ["image", "img", "mask", "frame", "photo", "picture"],
extraTerms: [{ terms: ["media", "source", "first", "last"], score: 35 }],
exactSingleNames: /* @__PURE__ */ new Set(["image"]),
- looksLikeFn: Ab,
- comboChecker: m1,
+ looksLikeFn: Wb,
+ comboChecker: b1,
scoreKey: "__mjrImagePickScore"
-}, F1 = {
+}, J1 = {
exactNames: /* @__PURE__ */ new Set(["audio_path", "input_audio", "source_audio", "audio"]),
knownNodeIncludes: ["loadaudio", "vhs_loadaudioupload", "vhs_loadaudio", "audioloader", "inputaudio"],
mediaTerms: ["audio", "sound", "music"],
extraTerms: [{ terms: ["media", "track"], score: 45 }],
exactSingleNames: /* @__PURE__ */ new Set(["audio"]),
- looksLikeFn: Wb,
- comboChecker: g1,
+ looksLikeFn: wb,
+ comboChecker: p1,
scoreKey: "__mjrAudioPickScore"
-}, O1 = {
+}, T1 = {
exactNames: /* @__PURE__ */ new Set([
"model_path",
"input_model",
@@ -25631,13 +25646,13 @@ ${I}`;
mediaTerms: ["model", "mesh", "geometry", "scene", "object", "point", "cloud", "splat"],
extraTerms: [{ terms: ["asset", "resource"], score: 30 }],
exactSingleNames: /* @__PURE__ */ new Set(["model", "mesh", "geometry"]),
- looksLikeFn: wb,
- comboChecker: I1,
+ looksLikeFn: Mb,
+ comboChecker: y1,
scoreKey: "__mjrModel3DPickScore"
-}, em = (e, t, n) => {
+}, nm = (e, t, n) => {
const i = String((t == null ? void 0 : t.kind) || "").toLowerCase();
- return X1(e, n, i === "model3d" ? O1 : i === "audio" ? F1 : i === "image" ? R1 : N1);
-}, z1 = async ({ post: e, endpoint: t, payload: n, index: i = !0, purpose: o = null }) => {
+ return F1(e, n, i === "model3d" ? T1 : i === "audio" ? J1 : i === "image" ? z1 : O1);
+}, B1 = async ({ post: e, endpoint: t, payload: n, index: i = !0, purpose: o = null }) => {
const r = {
index: !!i,
files: [
@@ -25646,12 +25661,12 @@ ${I}`;
subfolder: n.subfolder || "",
dest_subfolder: "",
type: n.type || "output",
- root_id: vi(n) || void 0
+ root_id: Mi(n) || void 0
}
]
};
return o && (r.purpose = o), e(t, r);
-}, Gb = async ({
+}, xb = async ({
post: e,
endpoint: t,
payload: n,
@@ -25659,7 +25674,7 @@ ${I}`;
purpose: o = null
}) => {
var c;
- const r = await z1({ post: e, endpoint: t, payload: n, index: i, purpose: o });
+ const r = await B1({ post: e, endpoint: t, payload: n, index: i, purpose: o });
if (!(r != null && r.ok))
return console.warn("Majoor: stage-to-input failed", (r == null ? void 0 : r.error) || r), null;
const l = Array.isArray((c = r.data) == null ? void 0 : c.staged) ? r.data.staged[0] : null;
@@ -25669,53 +25684,53 @@ ${I}`;
name: (l == null ? void 0 : l.name) || null,
subfolder: (l == null ? void 0 : l.subfolder) || ""
} : null;
-}, J1 = async ({ post: e, endpoint: t, payload: n, index: i = !0, purpose: o = null }) => {
- const r = await Gb({ post: e, endpoint: t, payload: n, index: i, purpose: o });
+}, U1 = async ({ post: e, endpoint: t, payload: n, index: i = !0, purpose: o = null }) => {
+ const r = await xb({ post: e, endpoint: t, payload: n, index: i, purpose: o });
return (r == null ? void 0 : r.relativePath) || null;
-}, rl = () => {
+}, al = () => {
const e = Qn();
return e && typeof e == "object" ? e : null;
-}, T1 = (e) => $W(e, { buildCustomViewURL: sg, buildViewURL: dl }), Io = /* @__PURE__ */ new Map(), xb = 6e4, tm = 20, B1 = 5 * 1024 * 1024, U1 = 5e3, K1 = 2e4, D1 = 256, E1 = 8192, H1 = /[\u0000-\u001f\u007f]/, q1 = /\u0000/, P1 = (e) => H1.test(String(e || "")), Q1 = (e) => q1.test(String(e || "")), _1 = (e) => {
+}, K1 = (e) => n1(e, { buildCustomViewURL: dg, buildViewURL: ul }), po = /* @__PURE__ */ new Map(), jb = 6e4, im = 20, D1 = 5 * 1024 * 1024, E1 = 5e3, H1 = 2e4, q1 = 256, P1 = 8192, Q1 = /[\u0000-\u001f\u007f]/, _1 = /\u0000/, $1 = (e) => Q1.test(String(e || "")), ew = (e) => _1.test(String(e || "")), tw = (e) => {
if (!e || typeof e != "object" || Array.isArray(e)) return !1;
const t = Number(e.id);
if (!Number.isFinite(t)) return !1;
const n = e.type == null ? "" : String(e.type);
- if (n && (n.length > D1 || P1(n)))
+ if (n && (n.length > q1 || $1(n)))
return !1;
const i = e.widgets_values;
if (Array.isArray(i)) {
for (const o of i)
- if (typeof o == "string" && (o.length > E1 || Q1(o)))
+ if (typeof o == "string" && (o.length > P1 || ew(o)))
return !1;
}
return !0;
-}, $1 = (e) => {
+}, nw = (e) => {
if (Array.isArray(e)) return e.length >= 4;
if (e && typeof e == "object") {
const t = Number(e.id);
return !!Number.isFinite(t);
}
return !1;
-}, nm = (e) => {
- if (!e || typeof e != "object" || !Array.isArray(e.nodes) || !Array.isArray(e.links) || e.nodes.length > U1 || e.links.length > K1 || !e.nodes.every(_1) || !e.links.every($1)) return !1;
+}, om = (e) => {
+ if (!e || typeof e != "object" || !Array.isArray(e.nodes) || !Array.isArray(e.links) || e.nodes.length > E1 || e.links.length > H1 || !e.nodes.every(tw) || !e.links.every(nw)) return !1;
try {
const t = JSON.stringify(e).length;
- if (!Number.isFinite(t) || t <= 0 || t > B1) return !1;
+ if (!Number.isFinite(t) || t <= 0 || t > D1) return !1;
} catch {
return !1;
}
return !0;
-}, ew = () => {
+}, iw = () => {
const e = Date.now();
- for (const [t, n] of Io.entries())
- e - ((n == null ? void 0 : n.at) || 0) > xb && Io.delete(t);
- Io.size > tm && Array.from(Io.entries()).sort(
+ for (const [t, n] of po.entries())
+ e - ((n == null ? void 0 : n.at) || 0) > jb && po.delete(t);
+ po.size > im && Array.from(po.entries()).sort(
(i, o) => {
var r, l;
return (((r = i[1]) == null ? void 0 : r.at) || 0) - (((l = o[1]) == null ? void 0 : l.at) || 0);
}
- ).slice(0, Io.size - tm).forEach(([i]) => Io.delete(i));
-}, er = (e, t) => {
+ ).slice(0, po.size - im).forEach(([i]) => po.delete(i));
+}, nr = (e, t) => {
var n, i, o;
if (t)
try {
@@ -25727,18 +25742,18 @@ ${I}`;
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
-}, tw = async (e, t = null) => {
- var a, c, s, d, u, I, p, M, Z, A, g, h, f, b, v;
- const n = e && typeof e == "object" ? e : null, i = vi(n), o = (n == null ? void 0 : n.filename) || (t ? String(t).split(/[\\/]/).pop() : null), r = rl(), l = n != null && n.filename ? `${n.type || "output"}:${n.filename}:${n.subfolder || ""}:${i}` : t ? `path:${t}` : null;
+}, ow = async (e, t = null) => {
+ var a, c, s, d, u, I, p, S, A, C, g, Z, f, b, L;
+ const n = e && typeof e == "object" ? e : null, i = Mi(n), o = (n == null ? void 0 : n.filename) || (t ? String(t).split(/[\\/]/).pop() : null), r = al(), l = n != null && n.filename ? `${n.type || "output"}:${n.filename}:${n.subfolder || ""}:${i}` : t ? `path:${t}` : null;
if (l) {
- const C = Io.get(l), S = Date.now();
- if (C && S - (C.at || 0) < xb) {
- if (C.workflow && nm(C.workflow))
+ const h = po.get(l), G = Date.now();
+ if (h && G - (h.at || 0) < jb) {
+ if (h.workflow && om(h.workflow))
try {
if (typeof (r == null ? void 0 : r.loadGraphData) == "function")
- return r.loadGraphData(C.workflow), er(r, o), !0;
+ return r.loadGraphData(h.workflow), nr(r, o), !0;
if (typeof ((c = (a = r == null ? void 0 : r.canvas) == null ? void 0 : a.graph) == null ? void 0 : c.configure) == "function") {
- r.canvas.graph.configure(C.workflow), er(r, o);
+ r.canvas.graph.configure(h.workflow), nr(r, o);
try {
(d = (s = r.canvas).setDirty) == null || d.call(s, !0, !0);
} catch (W) {
@@ -25747,7 +25762,7 @@ ${I}`;
return !0;
}
if (typeof ((I = r == null ? void 0 : r.graph) == null ? void 0 : I.configure) == "function")
- return r.graph.configure(C.workflow), er(r, o), !0;
+ return r.graph.configure(h.workflow), nr(r, o), !0;
} catch (W) {
(p = console.debug) == null || p.call(console, W);
}
@@ -25755,38 +25770,38 @@ ${I}`;
}
}
try {
- let C = null, S = null;
+ let h = null, G = null;
if (n != null && n.filename) {
- const W = `${lt.WORKFLOW_QUICK}?type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}` + (i ? `&root_id=${encodeURIComponent(i)}` : ""), y = await Rt(W);
- y != null && y.ok && y.workflow && (S = y.workflow), S || (C = `${lt.METADATA}?workflow_only=1&type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}&root_id=${encodeURIComponent(i)}`);
- } else t && (C = `${lt.METADATA}?workflow_only=1&path=${encodeURIComponent(String(t))}`);
- if (!S && C) {
- const W = await Rt(C);
+ const W = `${ct.WORKFLOW_QUICK}?type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}` + (i ? `&root_id=${encodeURIComponent(i)}` : ""), y = await Ft(W);
+ y != null && y.ok && y.workflow && (G = y.workflow), G || (h = `${ct.METADATA}?workflow_only=1&type=${encodeURIComponent(n.type || "output")}&filename=${encodeURIComponent(n.filename)}&subfolder=${encodeURIComponent(n.subfolder || "")}&root_id=${encodeURIComponent(i)}`);
+ } else t && (h = `${ct.METADATA}?workflow_only=1&path=${encodeURIComponent(String(t))}`);
+ if (!G && h) {
+ const W = await Ft(h);
if (!(W != null && W.ok) || !W.data)
return !1;
- S = (M = W.data) == null ? void 0 : M.workflow;
+ G = (S = W.data) == null ? void 0 : S.workflow;
}
- if (!nm(S))
+ if (!om(G))
return !1;
- if (l && (Io.set(l, { workflow: S, at: Date.now() }), ew()), typeof (r == null ? void 0 : r.loadGraphData) == "function")
- return r.loadGraphData(S), er(r, o), !0;
- if (typeof ((A = (Z = r == null ? void 0 : r.canvas) == null ? void 0 : Z.graph) == null ? void 0 : A.configure) == "function") {
- r.canvas.graph.configure(S), er(r, o);
+ if (l && (po.set(l, { workflow: G, at: Date.now() }), iw()), typeof (r == null ? void 0 : r.loadGraphData) == "function")
+ return r.loadGraphData(G), nr(r, o), !0;
+ if (typeof ((C = (A = r == null ? void 0 : r.canvas) == null ? void 0 : A.graph) == null ? void 0 : C.configure) == "function") {
+ r.canvas.graph.configure(G), nr(r, o);
try {
- (h = (g = r.canvas).setDirty) == null || h.call(g, !0, !0);
+ (Z = (g = r.canvas).setDirty) == null || Z.call(g, !0, !0);
} catch (W) {
(f = console.debug) == null || f.call(console, W);
}
return !0;
}
if (typeof ((b = r == null ? void 0 : r.graph) == null ? void 0 : b.configure) == "function")
- return r.graph.configure(S), er(r, o), !0;
- } catch (C) {
- (v = console.debug) == null || v.call(console, C);
+ return r.graph.configure(G), nr(r, o), !0;
+ } catch (h) {
+ (L = console.debug) == null || L.call(console, h);
}
return !1;
};
-function nw(e) {
+function rw(e) {
return (t) => {
var s, d, u, I, p;
const n = t == null ? void 0 : t.dataTransfer;
@@ -25799,125 +25814,125 @@ function nw(e) {
filename: o.filename,
subfolder: o.subfolder || "",
type: l,
- root_id: vi(o) || void 0,
+ root_id: Mi(o) || void 0,
kind: r
};
try {
- n.setData(qr, JSON.stringify(a)), n.setData("text/plain", String(o.filename || ""));
- const M = T1(a);
- G1({ dt: n, asset: o, containerEl: e, card: i, viewUrl: M });
- } catch (M) {
- (u = console.debug) == null || u.call(console, M);
+ n.setData(Qr, JSON.stringify(a)), n.setData("text/plain", String(o.filename || ""));
+ const S = K1(a);
+ v1({ dt: n, asset: o, containerEl: e, card: i, viewUrl: S });
+ } catch (S) {
+ (u = console.debug) == null || u.call(console, S);
}
try {
i.addEventListener(
"dragend",
- (M) => {
- x1(M, { asset: o, containerEl: e, card: i });
+ (S) => {
+ L1(S, { asset: o, containerEl: e, card: i });
},
{ once: !0 }
);
- } catch (M) {
- (I = console.debug) == null || I.call(console, M);
+ } catch (S) {
+ (I = console.debug) == null || I.call(console, S);
}
const c = i.querySelector("img") || i.querySelector("video") || i.querySelector("canvas");
if (c && c instanceof HTMLElement)
try {
n.setDragImage(c, 10, 10);
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
};
}
-const iw = (e) => {
+const lw = (e) => {
if (!e) return () => {
};
- const t = b1(e);
+ const t = f1(e);
if (typeof t == "function")
return t;
- const n = nw(e);
- return e.addEventListener("dragstart", n, !0), p1(e, () => {
+ const n = rw(e);
+ return e.addEventListener("dragstart", n, !0), h1(e, () => {
var o;
try {
e.removeEventListener("dragstart", n, !0);
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
- y1(e);
+ C1(e);
});
};
-let Xo = null, Ir = 0;
-function ow() {
+let Ro = null, pr = 0;
+function aw() {
return {
onDragOver: (i) => {
var d, u;
- const o = rl();
- if (!Array.from(((d = i == null ? void 0 : i.dataTransfer) == null ? void 0 : d.types) || []).includes(qr)) return;
- const l = Hu(i, qr);
- if (!qu(l)) return;
- const a = $u(o, i.clientX, i.clientY), c = String((l == null ? void 0 : l.filename) || "").split(".").pop() || "", s = a ? em(a, l, c) : null;
+ const o = al();
+ if (!Array.from(((d = i == null ? void 0 : i.dataTransfer) == null ? void 0 : d.types) || []).includes(Qr)) return;
+ const l = Pu(i, Qr);
+ if (!Qu(l)) return;
+ const a = tm(o, i.clientX, i.clientY), c = String((l == null ? void 0 : l.filename) || "").split(".").pop() || "", s = a ? nm(a, l, c) : null;
if (a && s) {
- i.preventDefault(), (u = i.stopImmediatePropagation) == null || u.call(i), i.stopPropagation(), j1(o, a, Lo), i.dataTransfer.dropEffect = "copy", $o("dragover", { node: a == null ? void 0 : a.title, widget: s == null ? void 0 : s.name });
+ i.preventDefault(), (u = i.stopImmediatePropagation) == null || u.call(i), i.stopPropagation(), V1(o, a, Yo), i.dataTransfer.dropEffect = "copy", tr("dragover", { node: a == null ? void 0 : a.title, widget: s == null ? void 0 : s.name });
return;
}
- gr(o, Lo), Qu(o, i) && (i.preventDefault(), i.dataTransfer.dropEffect = "copy");
+ br(o, Yo), $u(o, i) && (i.preventDefault(), i.dataTransfer.dropEffect = "copy");
},
onDrop: async (i) => {
- var u, I, p, M, Z;
- f1();
- const o = rl();
- if (!Array.from(((u = i == null ? void 0 : i.dataTransfer) == null ? void 0 : u.types) || []).includes(qr)) return;
- const l = Hu(i, qr);
- if (!qu(l) || !Qu(o, i)) return;
- const a = $u(o, i.clientX, i.clientY), c = String((l == null ? void 0 : l.filename) || "").split(".").pop() || "", s = a ? em(a, l, c) : null;
+ var u, I, p, S, A;
+ Z1();
+ const o = al();
+ if (!Array.from(((u = i == null ? void 0 : i.dataTransfer) == null ? void 0 : u.types) || []).includes(Qr)) return;
+ const l = Pu(i, Qr);
+ if (!Qu(l) || !$u(o, i)) return;
+ const a = tm(o, i.clientX, i.clientY), c = String((l == null ? void 0 : l.filename) || "").split(".").pop() || "", s = a ? nm(a, l, c) : null;
if (!a || !s) {
- gr(o, Lo), i.preventDefault(), (I = i.stopImmediatePropagation) == null || I.call(i), i.stopPropagation();
- const A = Gb({
+ br(o, Yo), i.preventDefault(), (I = i.stopImmediatePropagation) == null || I.call(i), i.stopPropagation();
+ const C = xb({
post: Et,
- endpoint: lt.STAGE_TO_INPUT,
+ endpoint: ct.STAGE_TO_INPUT,
payload: l,
index: !1
- }), g = tw(l), [h, f] = await Promise.all([g, A]);
- if (h) {
- $o("drop canvas loaded workflow", { file: l == null ? void 0 : l.filename });
+ }), g = ow(l), [Z, f] = await Promise.all([g, C]);
+ if (Z) {
+ tr("drop canvas loaded workflow", { file: l == null ? void 0 : l.filename });
return;
}
const b = f == null ? void 0 : f.relativePath;
if (!b) {
- $o("drop canvas stage failed"), Ce(`Failed to load file: "${l == null ? void 0 : l.filename}". Staging failed.`, "error");
+ tr("drop canvas stage failed"), Ze(`Failed to load file: "${l == null ? void 0 : l.filename}". Staging failed.`, "error");
return;
}
- $o("drop canvas staged", { value: b }), Ce(`Staged to input: ${b}`, "success", 4e3);
+ tr("drop canvas staged", { value: b }), Ze(`Staged to input: ${b}`, "success", 4e3);
return;
}
- i.preventDefault(), (p = i.stopImmediatePropagation) == null || p.call(i), i.stopPropagation(), gr(o, Lo);
- const d = await J1({
+ i.preventDefault(), (p = i.stopImmediatePropagation) == null || p.call(i), i.stopPropagation(), br(o, Yo);
+ const d = await U1({
post: Et,
- endpoint: lt.STAGE_TO_INPUT,
+ endpoint: ct.STAGE_TO_INPUT,
payload: l,
index: !1
});
if (d) {
- s.type === "combo" && v1(s, d), s.value = d;
+ s.type === "combo" && Y1(s, d), s.value = d;
try {
- (M = s.callback) == null || M.call(s, s.value);
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ (S = s.callback) == null || S.call(s, s.value);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
- Lo(o), $o("drop inject", { node: a == null ? void 0 : a.title, widget: s == null ? void 0 : s.name, value: d });
+ Yo(o), tr("drop inject", { node: a == null ? void 0 : a.title, widget: s == null ? void 0 : s.name, value: d });
}
},
onDragLeave: () => {
- const i = rl();
- gr(i, Lo), $o("dragleave");
+ const i = al();
+ br(i, Yo), tr("dragleave");
}
};
}
-function rw() {
+function cw() {
if (typeof window > "u" || !(window != null && window.addEventListener))
return { dispose() {
} };
- const { onDragOver: e, onDrop: t, onDragLeave: n } = ow();
+ const { onDragOver: e, onDrop: t, onDragLeave: n } = aw();
return window.addEventListener("dragover", e, !0), window.addEventListener("drop", t, !0), window.addEventListener("dragleave", n, !0), { dispose: () => {
var o, r;
try {
@@ -25926,38 +25941,38 @@ function rw() {
(o = console.debug) == null || o.call(console, l);
}
try {
- gr(rl(), Lo);
+ br(al(), Yo);
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
} };
}
-function lw() {
- Xo || (Xo = rw(), Ir = 0), Ir += 1;
+function sw() {
+ Ro || (Ro = cw(), pr = 0), pr += 1;
let e = !1;
return ({ force: t = !1 } = {}) => {
- e || (e = !0, jb({ force: t }));
+ e || (e = !0, vb({ force: t }));
};
}
-function jb({ force: e = !1 } = {}) {
+function vb({ force: e = !1 } = {}) {
var t, n;
- if (!Xo) {
- Ir = 0, Pu();
+ if (!Ro) {
+ pr = 0, _u();
return;
}
- if (!e && Ir > 1) {
- Ir -= 1;
+ if (!e && pr > 1) {
+ pr -= 1;
return;
}
- Ir = 0;
+ pr = 0;
try {
- (t = Xo.dispose) == null || t.call(Xo);
+ (t = Ro.dispose) == null || t.call(Ro);
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
- Xo = null, Pu();
+ Ro = null, _u();
}
-function vb(e) {
+function Lb(e) {
if (!e) return null;
const t = Number(e);
if (!isNaN(t))
@@ -25965,158 +25980,158 @@ function vb(e) {
const n = new Date(e);
return isNaN(n.getTime()) ? null : n;
}
-function Oa(e) {
- const t = vb(e);
+function za(e) {
+ const t = Lb(e);
if (!t) return "";
const n = t.getDate().toString().padStart(2, "0"), i = (t.getMonth() + 1).toString().padStart(2, "0");
return `${n}/${i}`;
}
-function za(e) {
- const t = vb(e);
+function Ja(e) {
+ const t = Lb(e);
if (!t) return "";
const n = t.getHours().toString().padStart(2, "0"), i = t.getMinutes().toString().padStart(2, "0");
return `${n}:${i}`;
}
-function Lb(e) {
+function Vb(e) {
if (!e) return "";
if (e < 60) return `${Math.round(e)}s`;
const t = Math.floor(e / 60), n = Math.round(e % 60);
return `${t}m ${n}s`;
}
-const Ul = "__MJR_MEDIA_BLOB_CACHE__", im = 2e3, wc = 1440 * 60 * 1e3, aw = 600 * 1e3;
-function cw() {
+const Kl = "__MJR_MEDIA_BLOB_CACHE__", rm = 2e3, Mc = 1440 * 60 * 1e3, dw = 600 * 1e3;
+function uw() {
var p;
const e = /* @__PURE__ */ new Map();
let t = null;
function n() {
- t || (t = setInterval(i, aw));
+ t || (t = setInterval(i, dw));
}
function i() {
- var M;
+ var S;
try {
- const Z = Date.now();
- for (const [A, g] of e)
- g.refcount <= 0 && Z > g.expiresAt && (o(g), e.delete(A));
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ const A = Date.now();
+ for (const [C, g] of e)
+ g.refcount <= 0 && A > g.expiresAt && (o(g), e.delete(C));
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
}
- function o(M) {
- var Z, A;
+ function o(S) {
+ var A, C;
try {
- (Z = M == null ? void 0 : M.blobUrl) != null && Z.startsWith("blob:") && URL.revokeObjectURL(M.blobUrl);
+ (A = S == null ? void 0 : S.blobUrl) != null && A.startsWith("blob:") && URL.revokeObjectURL(S.blobUrl);
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
}
function r() {
- let M = null, Z = 1 / 0;
- for (const [A, g] of e)
- g.refcount > 0 || g.expiresAt < Z && (Z = g.expiresAt, M = A);
- M && (o(e.get(M)), e.delete(M));
+ let S = null, A = 1 / 0;
+ for (const [C, g] of e)
+ g.refcount > 0 || g.expiresAt < A && (A = g.expiresAt, S = C);
+ S && (o(e.get(S)), e.delete(S));
}
- function l(M) {
- M.expiresAt = Date.now() + wc;
+ function l(S) {
+ S.expiresAt = Date.now() + Mc;
}
- function a(M) {
+ function a(S) {
try {
- return String(M || "").trim();
+ return String(S || "").trim();
} catch {
return "";
}
}
- function c(M) {
- var Z;
+ function c(S) {
+ var A;
try {
- const A = a(M);
- if (!A) return;
- const g = e.get(A);
- g ? (g.hasError = !0, l(g)) : (e.size >= im && r(), e.set(A, { blobUrl: null, refcount: 0, expiresAt: Date.now() + wc, hasError: !0 }), n());
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ const C = a(S);
+ if (!C) return;
+ const g = e.get(C);
+ g ? (g.hasError = !0, l(g)) : (e.size >= rm && r(), e.set(C, { blobUrl: null, refcount: 0, expiresAt: Date.now() + Mc, hasError: !0 }), n());
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
}
- function s(M) {
- var Z, A;
+ function s(S) {
+ var A, C;
try {
- const g = a(M);
- return g ? !!((Z = e.get(g)) != null && Z.hasError) : !1;
+ const g = a(S);
+ return g ? !!((A = e.get(g)) != null && A.hasError) : !1;
} catch (g) {
- return (A = console.debug) == null || A.call(console, g), !1;
+ return (C = console.debug) == null || C.call(console, g), !1;
}
}
- async function d(M) {
- var Z;
+ async function d(S) {
+ var A;
try {
- const A = a(M);
- if (!A) return null;
- const g = e.get(A);
+ const C = a(S);
+ if (!C) return null;
+ const g = e.get(C);
if (g != null && g.hasError) return null;
if (g != null && g.blobUrl)
return g.refcount += 1, l(g), g.blobUrl;
- const h = await fetch(M, { credentials: "same-origin" });
- if (!h.ok)
- return c(M), null;
- const f = await h.blob(), b = URL.createObjectURL(f);
- return e.size >= im && r(), e.set(A, { blobUrl: b, refcount: 1, expiresAt: Date.now() + wc, hasError: !1 }), n(), b;
- } catch (A) {
- return (Z = console.debug) == null || Z.call(console, A), c(M), null;
+ const Z = await fetch(S, { credentials: "same-origin" });
+ if (!Z.ok)
+ return c(S), null;
+ const f = await Z.blob(), b = URL.createObjectURL(f);
+ return e.size >= rm && r(), e.set(C, { blobUrl: b, refcount: 1, expiresAt: Date.now() + Mc, hasError: !1 }), n(), b;
+ } catch (C) {
+ return (A = console.debug) == null || A.call(console, C), c(S), null;
}
}
- function u(M) {
- var Z;
+ function u(S) {
+ var A;
try {
- const A = a(M);
- if (!A) return;
- const g = e.get(A);
+ const C = a(S);
+ if (!C) return;
+ const g = e.get(C);
g && (g.refcount = Math.max(0, g.refcount - 1));
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
}
function I() {
- var M;
+ var S;
try {
t && (clearInterval(t), t = null);
- for (const Z of e.values()) o(Z);
+ for (const A of e.values()) o(A);
e.clear();
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
}
try {
window.addEventListener("beforeunload", I, { once: !0 });
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
return { markError: c, hasError: s, acquireUrl: d, releaseUrl: u, dispose: I };
}
-function sw() {
+function mw() {
var t, n, i, o, r;
try {
- if (window[Ul]) return window[Ul];
+ if (window[Kl]) return window[Kl];
} catch (l) {
(t = console.debug) == null || t.call(console, l);
}
try {
- (i = (n = window[Ul]) == null ? void 0 : n.dispose) == null || i.call(n);
+ (i = (n = window[Kl]) == null ? void 0 : n.dispose) == null || i.call(n);
} catch (l) {
(o = console.debug) == null || o.call(console, l);
}
- const e = cw();
+ const e = uw();
try {
- window[Ul] = e;
+ window[Kl] = e;
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
return e;
}
-const Or = sw(), jr = (e, t) => {
+const Jr = mw(), Vr = (e, t) => {
const n = e.__vccOpts || e;
for (const [i, o] of t)
n[i] = o;
return n;
-}, dw = ["title"], uw = {
+}, gw = ["title"], Iw = {
__name: "RatingBadge",
props: {
rating: {
@@ -26129,24 +26144,24 @@ const Or = sw(), jr = (e, t) => {
}
},
setup(e) {
- const t = e, n = Je(() => Math.max(0, Math.min(5, Number(t.rating) || 0))), i = Je(() => n.value > 0), o = Je(
+ const t = e, n = ze(() => Math.max(0, Math.min(5, Number(t.rating) || 0))), i = ze(() => n.value > 0), o = ze(
() => m("rating.title", "Rating: {n} star{n, plural, one {} other {s}}", { n: n.value })
);
- return (r, l) => i.value ? (Ie(), he("div", {
+ return (r, l) => i.value ? (be(), Ce("div", {
key: 0,
class: "mjr-rating-badge",
title: o.value
}, [
- (Ie(!0), he(Xt, null, Cn(n.value, (a) => (Ie(), he("span", {
+ (be(!0), Ce(Nt, null, Cn(n.value, (a) => (be(), Ce("span", {
key: a,
- style: vt({
+ style: Lt({
color: "var(--mjr-rating-color, var(--mjr-star-active, #FFD45A))",
marginRight: a < n.value ? "2px" : "0"
})
}, " β
", 4))), 128))
- ], 8, dw)) : yt("", !0);
+ ], 8, gw)) : ft("", !0);
}
-}, mw = /* @__PURE__ */ jr(uw, [["__scopeId", "data-v-821bf1b1"]]), gw = ["title"], Iw = {
+}, bw = /* @__PURE__ */ Vr(Iw, [["__scopeId", "data-v-821bf1b1"]]), pw = ["title"], yw = {
__name: "TagsBadge",
props: {
tags: {
@@ -26155,7 +26170,7 @@ const Or = sw(), jr = (e, t) => {
}
},
setup(e) {
- const t = e, n = Je(() => {
+ const t = e, n = ze(() => {
if (Array.isArray(t.tags))
return t.tags.map((l) => String(l ?? "").trim()).filter(Boolean).slice(0, 10);
if (typeof t.tags == "string") {
@@ -26170,67 +26185,67 @@ const Or = sw(), jr = (e, t) => {
}
}
return [];
- }), i = Je(() => n.value.length > 0), o = Je(() => m("tags.title", "Tags: {tags}", { tags: n.value.join(", ") })), r = Je(() => {
+ }), i = ze(() => n.value.length > 0), o = ze(() => m("tags.title", "Tags: {tags}", { tags: n.value.join(", ") })), r = ze(() => {
const l = n.value;
return l.length <= 5 ? l.join(", ") : l.slice(0, 5).join(", ") + ` +${l.length - 5}`;
});
- return (l, a) => i.value ? (Ie(), he("div", {
+ return (l, a) => i.value ? (be(), Ce("div", {
key: 0,
class: "mjr-tags-badge",
title: o.value,
style: { color: "var(--mjr-tag-color, #90CAF9)" }
- }, Ye(r.value), 9, gw)) : yt("", !0);
+ }, Ye(r.value), 9, pw)) : ft("", !0);
}
-}, bw = /* @__PURE__ */ jr(Iw, [["__scopeId", "data-v-15044260"]]), pw = ["title"], yw = {
+}, fw = /* @__PURE__ */ Vr(yw, [["__scopeId", "data-v-15044260"]]), hw = ["title"], Cw = {
__name: "GenTimeBadge",
props: {
genTimeMs: { type: [Number, String], default: 0 }
},
setup(e) {
- const t = e, n = Je(() => td(t.genTimeMs)), i = Je(() => n.value > 0), o = Je(() => RI(n.value)), r = Je(() => ed(n.value));
- return (l, a) => i.value ? (Ie(), he("div", {
+ const t = e, n = ze(() => id(t.genTimeMs)), i = ze(() => n.value > 0), o = ze(() => FI(n.value)), r = ze(() => nd(n.value));
+ return (l, a) => i.value ? (be(), Ce("div", {
key: 0,
class: "mjr-gentime-badge",
title: o.value.title,
- style: vt({ color: r.value })
- }, Ye(o.value.text), 13, pw)) : yt("", !0);
+ style: Lt({ color: r.value })
+ }, Ye(o.value.text), 13, hw)) : ft("", !0);
}
-}, fw = /* @__PURE__ */ jr(yw, [["__scopeId", "data-v-60fe3677"]]), hw = {
+}, Zw = /* @__PURE__ */ Vr(Cw, [["__scopeId", "data-v-60fe3677"]]), Aw = {
key: 0,
class: "mjr-live-placeholder-wash",
"aria-hidden": "true"
-}, Cw = ["alt", "src"], Zw = {
+}, Ww = ["alt", "src"], ww = {
key: 1,
class: "mjr-media-error-placeholder"
-}, Aw = ["data-src", "poster"], Ww = ["src"], ww = {
+}, Mw = ["data-src", "poster"], Sw = ["src"], Gw = {
class: "mjr-audio-waveform-overlay",
style: { position: "absolute", inset: "0", display: "flex", "align-items": "center", "justify-content": "center", "pointer-events": "none", color: "white" }
-}, Mw = {
+}, xw = {
viewBox: "0 0 64 32",
preserveAspectRatio: "xMidYMid meet",
fill: "currentColor",
opacity: "0.35",
style: { width: "60%", "max-width": "120px", height: "auto", filter: "drop-shadow(0 2px 6px rgba(0,0,0,0.5))" }
-}, Sw = ["x", "y", "width", "height"], Gw = {
+}, jw = ["x", "y", "width", "height"], vw = {
key: 4,
class: "mjr-model3d-thumb-icon",
style: { position: "absolute", inset: "0", display: "flex", "align-items": "center", "justify-content": "center", color: "rgba(255,255,255,0.7)" }
-}, xw = ["data-mjr-ext", "data-mjr-badge-bg", "title"], jw = ["title"], vw = {
+}, Lw = ["data-mjr-ext", "data-mjr-badge-bg", "title"], Vw = ["title"], Yw = {
key: 6,
class: "mjr-card-hover-info"
-}, Lw = {
+}, kw = {
key: 0,
class: "mjr-hover-prompt"
-}, Yw = {
+}, Xw = {
key: 1,
class: "mjr-hover-gentime"
-}, Vw = {
+}, Nw = {
class: "mjr-card-info mjr-card-meta",
style: { position: "relative", padding: "6px 8px", "min-width": "0" }
-}, kw = ["title"], Xw = {
+}, Rw = ["title"], Fw = {
class: "mjr-card-meta-row",
style: { "font-size": "0.85em", opacity: "0.7", "line-height": "1.4", "white-space": "nowrap", overflow: "hidden", "text-overflow": "ellipsis", "padding-right": "16px" }
-}, Nw = ["title"], Rw = ["title"], Fw = ["title"], Ow = ["title"], zw = ["title"], Jw = ["aria-label", "title"], Tw = { class: "mjr-stack-group-button-count" }, Bw = ["aria-label", "title"], Uw = { class: "mjr-dup-stack-count" }, om = {
+}, Ow = ["title"], zw = ["title"], Jw = ["title"], Tw = ["title"], Bw = ["title"], Uw = ["aria-label", "title"], Kw = { class: "mjr-stack-group-button-count" }, Dw = ["aria-label", "title"], Ew = { class: "mjr-dup-stack-count" }, lm = {
__name: "AssetCardInner",
props: {
/** shallowReactive asset object from createVueCard() in GridView_impl.js */
@@ -26255,263 +26270,263 @@ const Or = sw(), jr = (e, t) => {
[50, 9, 3, 14],
[56, 6, 3, 20]
];
- async function i($) {
- if (!$) return null;
+ async function i(Q) {
+ if (!Q) return null;
try {
- return Or.hasError($) ? $ : await Or.acquireUrl($) || $;
+ return Jr.hasError(Q) ? Q : await Jr.acquireUrl(Q) || Q;
} catch {
- return $;
+ return Q;
}
}
- async function o($) {
- var _, le, se, de, Ze;
- if ($)
+ async function o(Q) {
+ var _, le, de, se, ge;
+ if (Q)
try {
- const Fe = String(((_ = $.dataset) == null ? void 0 : _.src) || "").trim();
- if (!Fe || $.getAttribute("src")) return;
- if (Or.hasError(Fe)) {
- $.src = Fe;
+ const je = String(((_ = Q.dataset) == null ? void 0 : _.src) || "").trim();
+ if (!je || Q.getAttribute("src")) return;
+ if (Jr.hasError(je)) {
+ Q.src = je;
return;
}
- const xe = await Or.acquireUrl(Fe);
- xe ? ($.src = xe, $._mjrCachedSrc = Fe) : $.src = Fe, (le = $.load) == null || le.call($);
- } catch (Fe) {
- (se = console.debug) == null || se.call(console, Fe);
+ const Se = await Jr.acquireUrl(je);
+ Se ? (Q.src = Se, Q._mjrCachedSrc = je) : Q.src = je, (le = Q.load) == null || le.call(Q);
+ } catch (je) {
+ (de = console.debug) == null || de.call(console, je);
try {
- const xe = String(((de = $.dataset) == null ? void 0 : de.src) || "").trim();
- xe && !$.getAttribute("src") && ($.src = xe, (Ze = $.load) == null || Ze.call($));
+ const Se = String(((se = Q.dataset) == null ? void 0 : se.src) || "").trim();
+ Se && !Q.getAttribute("src") && (Q.src = Se, (ge = Q.load) == null || ge.call(Q));
} catch {
}
}
}
- function r($, _) {
- if (!$ || !_) return;
+ function r(Q, _) {
+ if (!Q || !_) return;
const le = () => {
- var de, Ze, Fe, xe;
+ var se, ge, je, Se;
try {
- (Fe = (de = _.play) == null ? void 0 : (Ze = de.call(_)).catch) == null || Fe.call(Ze, () => {
+ (je = (se = _.play) == null ? void 0 : (ge = se.call(_)).catch) == null || je.call(ge, () => {
});
- } catch (ze) {
- (xe = console.debug) == null || xe.call(console, ze);
+ } catch (ke) {
+ (Se = console.debug) == null || Se.call(console, ke);
}
- }, se = () => {
- var de, Ze;
+ }, de = () => {
+ var se, ge;
try {
- (de = _.pause) == null || de.call(_), _.currentTime = 0;
- } catch (Fe) {
- (Ze = console.debug) == null || Ze.call(console, Fe);
+ (se = _.pause) == null || se.call(_), _.currentTime = 0;
+ } catch (je) {
+ (ge = console.debug) == null || ge.call(console, je);
}
};
- $.addEventListener("mouseenter", le), $.addEventListener("mouseleave", se), _._mjrHoverCleanup = () => {
- var de;
+ Q.addEventListener("mouseenter", le), Q.addEventListener("mouseleave", de), _._mjrHoverCleanup = () => {
+ var se;
try {
- $.removeEventListener("mouseenter", le), $.removeEventListener("mouseleave", se);
- } catch (Ze) {
- (de = console.debug) == null || de.call(console, Ze);
+ Q.removeEventListener("mouseenter", le), Q.removeEventListener("mouseleave", de);
+ } catch (ge) {
+ (se = console.debug) == null || se.call(console, ge);
}
};
}
- function l($) {
- if (!$) return;
+ function l(Q) {
+ if (!Q) return;
const _ = new IntersectionObserver(
(le) => {
- var se, de, Ze, Fe, xe;
- for (const ze of le)
+ var de, se, ge, je, Se;
+ for (const ke of le)
try {
- ze.isIntersecting ? (Ze = (se = $.play) == null ? void 0 : (de = se.call($)).catch) == null || Ze.call(de, () => {
- }) : ((Fe = $.pause) == null || Fe.call($), $.currentTime = 0);
- } catch (We) {
- (xe = console.debug) == null || xe.call(console, We);
+ ke.isIntersecting ? (ge = (de = Q.play) == null ? void 0 : (se = de.call(Q)).catch) == null || ge.call(se, () => {
+ }) : ((je = Q.pause) == null || je.call(Q), Q.currentTime = 0);
+ } catch (we) {
+ (Se = console.debug) == null || Se.call(console, we);
}
},
{ threshold: 0.25 }
);
- _.observe($), $._mjrAutoplayCleanup = () => {
+ _.observe(Q), Q._mjrAutoplayCleanup = () => {
var le;
try {
- _.unobserve($), _.disconnect();
- } catch (se) {
- (le = console.debug) == null || le.call(console, se);
+ _.unobserve(Q), _.disconnect();
+ } catch (de) {
+ (le = console.debug) == null || le.call(console, de);
}
};
}
- function a($) {
- var _, le, se, de;
- if ($)
+ function a(Q) {
+ var _, le, de, se;
+ if (Q)
try {
- (_ = $._mjrHoverCleanup) == null || _.call($), $._mjrHoverCleanup = null, (le = $._mjrAutoplayCleanup) == null || le.call($), $._mjrAutoplayCleanup = null, (se = $.pause) == null || se.call($), $.currentTime = 0;
- } catch (Ze) {
- (de = console.debug) == null || de.call(console, Ze);
+ (_ = Q._mjrHoverCleanup) == null || _.call(Q), Q._mjrHoverCleanup = null, (le = Q._mjrAutoplayCleanup) == null || le.call(Q), Q._mjrAutoplayCleanup = null, (de = Q.pause) == null || de.call(Q), Q.currentTime = 0;
+ } catch (ge) {
+ (se = console.debug) == null || se.call(console, ge);
}
}
- function c($, _, le) {
- _ && (a(_), le === "hover" ? r($, _) : le === "always" && l(_));
+ function c(Q, _, le) {
+ _ && (a(_), le === "hover" ? r(Q, _) : le === "always" && l(_));
}
- function s($) {
- $ && a($);
+ function s(Q) {
+ Q && a(Q);
}
- const d = e, u = Je(() => String(d.asset.kind || "image").toLowerCase()), I = Je(() => u.value === "image"), p = Je(() => u.value === "video"), M = Je(() => u.value === "audio"), Z = Je(() => u.value === "model3d"), A = Je(() => Bi(d.asset) || ""), g = Je(
+ const d = e, u = ze(() => String(d.asset.kind || "image").toLowerCase()), I = ze(() => u.value === "image"), p = ze(() => u.value === "video"), S = ze(() => u.value === "audio"), A = ze(() => u.value === "model3d"), C = ze(() => Ki(d.asset) || ""), g = ze(
() => String(d.asset.thumbnail_url || d.asset.thumb_url || d.asset.poster || "").trim()
- ), h = Je(() => String(d.asset.filename || "")), f = Je(() => {
- const $ = h.value;
- return $.includes(".") ? $.split(".").pop().toUpperCase() : "";
- }), b = Je(() => {
- const $ = h.value;
- return $.includes(".") ? $.slice(0, $.lastIndexOf(".")) : $;
- }), v = Je(() => Number(d.asset.rating) || 0), C = Je(() => d.asset.tags || []), S = Je(() => {
+ ), Z = ze(() => String(d.asset.filename || "")), f = ze(() => {
+ const Q = Z.value;
+ return Q.includes(".") ? Q.split(".").pop().toUpperCase() : "";
+ }), b = ze(() => {
+ const Q = Z.value;
+ return Q.includes(".") ? Q.slice(0, Q.lastIndexOf(".")) : Q;
+ }), L = ze(() => Number(d.asset.rating) || 0), h = ze(() => d.asset.tags || []), G = ze(() => {
var _;
- const $ = d.asset.generation_time_ms ?? ((_ = d.asset.metadata) == null ? void 0 : _.generation_time_ms) ?? 0;
- return td($);
- }), W = Je(() => S.value > 0), y = Je(() => RI(S.value)), k = Je(() => ed(S.value)), G = Je(() => String(d.asset.positive_prompt || "").trim()), z = Je(
+ const Q = d.asset.generation_time_ms ?? ((_ = d.asset.metadata) == null ? void 0 : _.generation_time_ms) ?? 0;
+ return id(Q);
+ }), W = ze(() => G.value > 0), y = ze(() => FI(G.value)), X = ze(() => nd(G.value)), x = ze(() => String(d.asset.positive_prompt || "").trim()), T = ze(
() => {
- var $, _, le;
- return (($ = d.asset) == null ? void 0 : $._mjrLivePlaceholder) === !0 || ((_ = d.asset) == null ? void 0 : _.is_live_placeholder) === !0 || String(((le = d.asset) == null ? void 0 : le.id) || "").trim().toLowerCase().startsWith("live:");
+ var Q, _, le;
+ return ((Q = d.asset) == null ? void 0 : Q._mjrLivePlaceholder) === !0 || ((_ = d.asset) == null ? void 0 : _.is_live_placeholder) === !0 || String(((le = d.asset) == null ? void 0 : le.id) || "").trim().toLowerCase().startsWith("live:");
}
- ), x = Je(
+ ), v = ze(
() => {
- var $;
- return String((($ = d.asset) == null ? void 0 : $._mjrLiveLabel) || "In progress").trim() || "In progress";
+ var Q;
+ return String(((Q = d.asset) == null ? void 0 : Q._mjrLiveLabel) || "In progress").trim() || "In progress";
}
- ), w = Je(
- () => `${x.value}: waiting for indexed asset data`
- ), X = Je(() => {
- const { width: $, height: _ } = d.asset;
- return $ && _ ? `${$}x${_}` : "";
- }), V = Je(
- () => d.asset.duration ? Lb(d.asset.duration) : ""
- ), R = Je(
+ ), w = ze(
+ () => `${v.value}: waiting for indexed asset data`
+ ), R = ze(() => {
+ const { width: Q, height: _ } = d.asset;
+ return Q && _ ? `${Q}x${_}` : "";
+ }), Y = ze(
+ () => d.asset.duration ? Vb(d.asset.duration) : ""
+ ), F = ze(
() => d.asset.generation_time || d.asset.file_creation_time || d.asset.mtime || d.asset.created_at
- ), j = Je(() => R.value ? Oa(R.value) : ""), L = Je(() => R.value ? za(R.value) : ""), N = Je(() => !!d.asset._mjrNameCollision && !d.asset._mjrDupStack), q = Je(() => N.value ? "var(--mjr-badge-duplicate-alert, #ff1744)" : {
+ ), N = ze(() => F.value ? za(F.value) : ""), V = ze(() => F.value ? Ja(F.value) : ""), k = ze(() => !!d.asset._mjrNameCollision && !d.asset._mjrDupStack), K = ze(() => k.value ? "var(--mjr-badge-duplicate-alert, #ff1744)" : {
image: "var(--mjr-badge-image, #2196F3)",
video: "var(--mjr-badge-video, #F44336)",
audio: "var(--mjr-badge-audio, #4CAF50)",
model3d: "var(--mjr-badge-model3d, #9C27B0)"
- }[u.value] || "var(--mjr-badge-image, #888)"), O = Tp("mjrStackService", null), B = Je(() => !O || !String(d.asset.stack_id || "").trim() ? !1 : Number(d.asset.stack_asset_count || d.asset._mjrFeedGroupCount || 0) > 1), J = Je(
+ }[u.value] || "var(--mjr-badge-image, #888)"), z = Kp("mjrStackService", null), B = ze(() => !z || !String(d.asset.stack_id || "").trim() ? !1 : Number(d.asset.stack_asset_count || d.asset._mjrFeedGroupCount || 0) > 1), J = ze(
() => Number(d.asset.stack_asset_count || d.asset._mjrFeedGroupCount || 0) || 0
- ), T = Je(() => !!d.asset._mjrDupStack && Number(d.asset._mjrDupCount || 0) >= 2), D = Je(() => Number(d.asset._mjrDupCount || 0) || 0);
- async function Q($) {
+ ), P = ze(() => !!d.asset._mjrDupStack && Number(d.asset._mjrDupCount || 0) >= 2), H = ze(() => Number(d.asset._mjrDupCount || 0) || 0);
+ async function $(Q) {
var _, le;
- $.preventDefault(), $.stopPropagation();
+ Q.preventDefault(), Q.stopPropagation();
try {
- await ((_ = O == null ? void 0 : O.openStackGroup) == null ? void 0 : _.call(O, d.asset));
- } catch (se) {
- (le = console.debug) == null || le.call(console, se);
+ await ((_ = z == null ? void 0 : z.openStackGroup) == null ? void 0 : _.call(z, d.asset));
+ } catch (de) {
+ (le = console.debug) == null || le.call(console, de);
}
}
- function E($) {
+ function E(Q) {
var _, le;
- $.preventDefault(), $.stopPropagation();
+ Q.preventDefault(), Q.stopPropagation();
try {
- (_ = O == null ? void 0 : O.openDupGroup) == null || _.call(O, d.asset);
- } catch (se) {
- (le = console.debug) == null || le.call(console, se);
+ (_ = z == null ? void 0 : z.openDupGroup) == null || _.call(z, d.asset);
+ } catch (de) {
+ (le = console.debug) == null || le.call(console, de);
}
}
- const K = Ae(null), F = Ae(null), Y = Ae(null), U = Ae(null), P = Ae(!1), ee = Ae("");
- an(
- () => [Y.value, A.value],
- async ([$, _]) => {
- if (!(!$ || !_ || P.value))
+ const oe = Ae(null), M = Ae(null), j = Ae(null), O = Ae(null), D = Ae(!1), q = Ae("");
+ cn(
+ () => [j.value, C.value],
+ async ([Q, _]) => {
+ if (!(!Q || !_ || D.value))
try {
const le = await i(_);
- le && le !== ee.value && (ee.value = le);
+ le && le !== q.value && (q.value = le);
} catch {
}
},
{ immediate: !0 }
);
- const oe = Ae(ye.GRID_VIDEO_AUTOPLAY_MODE || "hover");
+ const ee = Ae(fe.GRID_VIDEO_AUTOPLAY_MODE || "hover");
function ce() {
- oe.value = ye.GRID_VIDEO_AUTOPLAY_MODE || "hover";
+ ee.value = fe.GRID_VIDEO_AUTOPLAY_MODE || "hover";
}
Dn(() => {
window.addEventListener("mjr-settings-changed", ce);
- }), an(F, ($, _) => {
+ }), cn(M, (Q, _) => {
if (_)
try {
s(_);
} catch {
}
- if ($ && K.value)
+ if (Q && oe.value)
try {
- o($), c(K.value, $, oe.value);
+ o(Q), c(oe.value, Q, ee.value);
} catch {
}
- }), an(oe, ($) => {
- const _ = F.value, le = K.value;
- _ && le && c(le, _, $);
+ }), cn(ee, (Q) => {
+ const _ = M.value, le = oe.value;
+ _ && le && c(le, _, Q);
}), _n(() => {
window.removeEventListener("mjr-settings-changed", ce);
- const $ = F.value;
- if ($)
+ const Q = M.value;
+ if (Q)
try {
- s($);
+ s(Q);
} catch {
}
- }), Bp(() => {
- const $ = U.value;
- if (!$) return;
+ }), Dp(() => {
+ const Q = O.value;
+ if (!Q) return;
const _ = d.asset;
(_ == null ? void 0 : _.has_workflow) ?? (_ == null || _.hasWorkflow), (_ == null ? void 0 : _.has_generation_data) ?? (_ == null || _.hasGenerationData), (_ == null ? void 0 : _.has_ai_info) ?? (_ == null ? void 0 : _.hasAiInfo) ?? (_ == null || _.ai_indexed), (_ == null ? void 0 : _.has_ai_auto_tags) ?? (_ == null ? void 0 : _.hasAiAutoTags) ?? (_ == null ? void 0 : _.auto_tags) ?? (_ == null || _.autoTags), (_ == null ? void 0 : _.has_ai_enhanced_caption) ?? (_ == null ? void 0 : _.hasAiEnhancedCaption) ?? (_ == null ? void 0 : _.enhanced_caption) ?? (_ == null || _.enhancedCaption), (_ == null ? void 0 : _.has_ai_vector) ?? (_ == null ? void 0 : _.hasAiVector) ?? (_ == null ? void 0 : _.vector_indexed) ?? (_ == null || _.vectorIndexed);
try {
- $.textContent = "";
- const le = $a(_);
- le && $.appendChild(le);
+ Q.textContent = "";
+ const le = ec(_);
+ le && Q.appendChild(le);
} catch {
}
});
- function pe($) {
- P.value = !0;
+ function ue(Q) {
+ D.value = !0;
try {
- Or.markError(A.value);
+ Jr.markError(C.value);
} catch {
}
}
- function H($) {
- var le, se;
- if (!N.value) return;
- $.preventDefault(), $.stopPropagation();
- const _ = (se = (le = $.target) == null ? void 0 : le.closest) == null ? void 0 : se.call(le, ".mjr-asset-card");
+ function U(Q) {
+ var le, de;
+ if (!k.value) return;
+ Q.preventDefault(), Q.stopPropagation();
+ const _ = (de = (le = Q.target) == null ? void 0 : le.closest) == null ? void 0 : de.call(le, ".mjr-asset-card");
_ && _.dispatchEvent(
new CustomEvent("mjr:badge-duplicates-focus", {
bubbles: !0,
detail: {
- filename: h.value,
- filenameKey: h.value.toLowerCase(),
+ filename: Z.value,
+ filenameKey: Z.value.toLowerCase(),
count: Number(d.asset._mjrNameCollisionCount || 0),
paths: Array.isArray(d.asset._mjrNameCollisionPaths) ? d.asset._mjrNameCollisionPaths : []
}
})
);
}
- return ($, _) => (Ie(), he(Xt, null, [
- ne("div", {
+ return (Q, _) => (be(), Ce(Nt, null, [
+ ie("div", {
class: "mjr-thumb",
ref_key: "thumbRef",
- ref: K
+ ref: oe
}, [
- z.value ? (Ie(), he("div", hw)) : yt("", !0),
- I.value ? (Ie(), he(Xt, { key: 1 }, [
- P.value ? yt("", !0) : (Ie(), he("img", {
+ T.value ? (be(), Ce("div", Aw)) : ft("", !0),
+ I.value ? (be(), Ce(Nt, { key: 1 }, [
+ D.value ? ft("", !0) : (be(), Ce("img", {
key: 0,
ref_key: "imgRef",
- ref: Y,
+ ref: j,
class: "mjr-thumb-media",
- alt: h.value,
+ alt: Z.value,
loading: "lazy",
decoding: "async",
- src: ee.value || A.value,
- onError: pe
- }, null, 40, Cw)),
- P.value ? (Ie(), he("div", Zw, [..._[12] || (_[12] = [
- ne("i", { class: "pi pi-image" }, null, -1)
- ])])) : yt("", !0)
- ], 64)) : p.value ? (Ie(), he(Xt, { key: 2 }, [
- ne("video", {
+ src: q.value || C.value,
+ onError: ue
+ }, null, 40, Ww)),
+ D.value ? (be(), Ce("div", ww, [..._[12] || (_[12] = [
+ ie("i", { class: "pi pi-image" }, null, -1)
+ ])])) : ft("", !0)
+ ], 64)) : p.value ? (be(), Ce(Nt, { key: 2 }, [
+ ie("video", {
ref_key: "videoRef",
- ref: F,
+ ref: M,
class: "mjr-thumb-media",
- "data-src": A.value,
+ "data-src": C.value,
poster: g.value || void 0,
muted: "",
loop: "",
@@ -26521,183 +26536,183 @@ const Or = sw(), jr = (e, t) => {
draggable: !1,
tabindex: -1,
style: { "pointer-events": "none" }
- }, null, 8, Aw),
- _[13] || (_[13] = ne("div", { class: "mjr-thumb-play" }, [
- ne("i", { class: "pi pi-play" })
+ }, null, 8, Mw),
+ _[13] || (_[13] = ie("div", { class: "mjr-thumb-play" }, [
+ ie("i", { class: "pi pi-play" })
], -1))
- ], 64)) : M.value ? (Ie(), he(Xt, { key: 3 }, [
- Ge(t) ? (Ie(), he("img", {
+ ], 64)) : S.value ? (be(), Ce(Nt, { key: 3 }, [
+ xe(t) ? (be(), Ce("img", {
key: 0,
class: "mjr-thumb-media",
- src: Ge(t),
+ src: xe(t),
draggable: !1,
loading: "lazy",
alt: ""
- }, null, 8, Ww)) : yt("", !0),
- ne("div", ww, [
- (Ie(), he("svg", Mw, [
- (Ie(), he(Xt, null, Cn(n, ([le, se, de, Ze], Fe) => ne("rect", {
- key: Fe,
+ }, null, 8, Sw)) : ft("", !0),
+ ie("div", Gw, [
+ (be(), Ce("svg", xw, [
+ (be(), Ce(Nt, null, Cn(n, ([le, de, se, ge], je) => ie("rect", {
+ key: je,
x: le,
- y: se,
- width: de,
- height: Ze,
+ y: de,
+ width: se,
+ height: ge,
rx: "1.5"
- }, null, 8, Sw)), 64))
+ }, null, 8, jw)), 64))
]))
])
- ], 64)) : Z.value ? (Ie(), he("div", Gw, [..._[14] || (_[14] = [
- ne("i", {
+ ], 64)) : A.value ? (be(), Ce("div", vw, [..._[14] || (_[14] = [
+ ie("i", {
class: "pi pi-box",
style: { "font-size": "2.5rem" }
}, null, -1)
- ])])) : yt("", !0),
- ne("div", {
+ ])])) : ft("", !0),
+ ie("div", {
class: "mjr-file-badge mjr-badge-ext",
"data-mjr-ext": f.value,
- "data-mjr-badge-bg": q.value,
- style: vt({
+ "data-mjr-badge-bg": K.value,
+ style: Lt({
position: "absolute",
top: "6px",
left: "6px",
zIndex: 10,
- background: q.value,
+ background: K.value,
color: "#fff",
padding: "2px 5px",
borderRadius: "4px",
fontSize: "10px",
fontWeight: "700",
- pointerEvents: N.value ? "auto" : "none",
- cursor: N.value ? "pointer" : "default"
+ pointerEvents: k.value ? "auto" : "none",
+ cursor: k.value ? "pointer" : "default"
}),
- title: N.value ? `${f.value} β duplicate filename (${e.asset._mjrNameCollisionCount || 2} files)` : `${f.value} file`,
- onClick: H
- }, Ye(f.value) + Ye(N.value ? "+" : ""), 13, xw),
- fn(mw, {
- rating: v.value,
+ title: k.value ? `${f.value} β duplicate filename (${e.asset._mjrNameCollisionCount || 2} files)` : `${f.value} file`,
+ onClick: U
+ }, Ye(f.value) + Ye(k.value ? "+" : ""), 13, Lw),
+ fn(bw, {
+ rating: L.value,
class: "mjr-badge-rating"
}, null, 8, ["rating"]),
- fn(bw, {
- tags: C.value,
+ fn(fw, {
+ tags: h.value,
class: "mjr-badge-tags"
}, null, 8, ["tags"]),
- fn(fw, { "gen-time-ms": S.value }, null, 8, ["gen-time-ms"]),
- z.value ? (Ie(), he("div", {
+ fn(Zw, { "gen-time-ms": G.value }, null, 8, ["gen-time-ms"]),
+ T.value ? (be(), Ce("div", {
key: 5,
class: "mjr-live-pill",
title: w.value
}, [
- _[15] || (_[15] = ne("span", {
+ _[15] || (_[15] = ie("span", {
class: "mjr-live-pill-dot",
"aria-hidden": "true"
}, null, -1)),
- ne("span", null, Ye(x.value), 1)
- ], 8, jw)) : yt("", !0),
- G.value || W.value ? (Ie(), he("div", vw, [
- G.value ? (Ie(), he("div", Lw, Ye(G.value), 1)) : yt("", !0),
- W.value ? (Ie(), he("div", Yw, "β± " + Ye(y.value.text), 1)) : yt("", !0)
- ])) : yt("", !0)
+ ie("span", null, Ye(v.value), 1)
+ ], 8, Vw)) : ft("", !0),
+ x.value || W.value ? (be(), Ce("div", Yw, [
+ x.value ? (be(), Ce("div", kw, Ye(x.value), 1)) : ft("", !0),
+ W.value ? (be(), Ce("div", Xw, "β± " + Ye(y.value.text), 1)) : ft("", !0)
+ ])) : ft("", !0)
], 512),
- ne("div", Vw, [
- ne("div", {
+ ie("div", Nw, [
+ ie("div", {
class: "mjr-card-filename",
- title: h.value,
+ title: Z.value,
style: { overflow: "hidden", "text-overflow": "ellipsis", "white-space": "nowrap", "margin-bottom": "4px", "padding-right": "12px" }
- }, Ye(b.value), 9, kw),
- ne("div", Xw, [
- X.value ? (Ie(), he("span", {
+ }, Ye(b.value), 9, Rw),
+ ie("div", Fw, [
+ R.value ? (be(), Ce("span", {
key: 0,
class: "mjr-meta-res",
- title: `Resolution: ${X.value}`
- }, Ye(X.value), 9, Nw)) : yt("", !0),
- V.value ? (Ie(), he("span", {
+ title: `Resolution: ${R.value}`
+ }, Ye(R.value), 9, Ow)) : ft("", !0),
+ Y.value ? (be(), Ce("span", {
key: 1,
class: "mjr-meta-duration",
- title: `Duration: ${V.value}`
- }, Ye(V.value), 9, Rw)) : yt("", !0),
- j.value ? (Ie(), he("span", {
+ title: `Duration: ${Y.value}`
+ }, Ye(Y.value), 9, zw)) : ft("", !0),
+ N.value ? (be(), Ce("span", {
key: 2,
class: "mjr-meta-date",
- title: `Date: ${j.value}`
- }, Ye(j.value), 9, Fw)) : yt("", !0),
- L.value ? (Ie(), he("span", {
+ title: `Date: ${N.value}`
+ }, Ye(N.value), 9, Jw)) : ft("", !0),
+ V.value ? (be(), Ce("span", {
key: 3,
class: "mjr-meta-date mjr-meta-time-val",
- title: `Time: ${L.value}`
- }, Ye(L.value), 9, Ow)) : yt("", !0),
- W.value ? (Ie(), he("span", {
+ title: `Time: ${V.value}`
+ }, Ye(V.value), 9, Tw)) : ft("", !0),
+ W.value ? (be(), Ce("span", {
key: 4,
class: "mjr-meta-gentime",
- style: vt({ color: k.value, fontWeight: "500" }),
+ style: Lt({ color: X.value, fontWeight: "500" }),
title: y.value.title
- }, Ye(y.value.text), 13, zw)) : yt("", !0)
+ }, Ye(y.value.text), 13, Bw)) : ft("", !0)
]),
- ne("div", {
+ ie("div", {
ref_key: "dotWrapperRef",
- ref: U,
+ ref: O,
class: "mjr-card-dot-wrapper",
style: { position: "absolute", right: "8px", bottom: "6px", "z-index": "2" }
}, null, 512)
]),
- B.value ? (Ie(), he("button", {
+ B.value ? (be(), Ce("button", {
key: 0,
type: "button",
class: "mjr-stack-group-button",
"aria-label": `Open generation group in grid (${J.value} assets)`,
title: `Open generation group in grid (${J.value} assets)`,
- onClick: Q,
- onPointerdown: _[0] || (_[0] = Fn(() => {
+ onClick: $,
+ onPointerdown: _[0] || (_[0] = On(() => {
}, ["stop"])),
- onMousedown: _[1] || (_[1] = Fn(() => {
+ onMousedown: _[1] || (_[1] = On(() => {
}, ["stop", "prevent"])),
- onTouchstartPassive: _[2] || (_[2] = Fn(() => {
+ onTouchstartPassive: _[2] || (_[2] = On(() => {
}, ["stop"])),
- onDblclick: _[3] || (_[3] = Fn(() => {
+ onDblclick: _[3] || (_[3] = On(() => {
}, ["stop"])),
- onKeydown: _[4] || (_[4] = Fn(() => {
+ onKeydown: _[4] || (_[4] = On(() => {
}, ["stop"])),
- onDragstart: _[5] || (_[5] = Fn(() => {
+ onDragstart: _[5] || (_[5] = On(() => {
}, ["stop", "prevent"]))
}, [
- _[16] || (_[16] = ne("span", { class: "pi pi-clone" }, null, -1)),
- ne("span", Tw, Ye(J.value), 1)
- ], 40, Jw)) : yt("", !0),
- T.value ? (Ie(), he("button", {
+ _[16] || (_[16] = ie("span", { class: "pi pi-clone" }, null, -1)),
+ ie("span", Kw, Ye(J.value), 1)
+ ], 40, Uw)) : ft("", !0),
+ P.value ? (be(), Ce("button", {
key: 1,
type: "button",
class: "mjr-dup-stack-button",
- "aria-label": `${D.value} duplicate${D.value > 1 ? "s" : ""} β click to compare all copies`,
- title: `${D.value} duplicate${D.value > 1 ? "s" : ""} β click to compare all copies`,
+ "aria-label": `${H.value} duplicate${H.value > 1 ? "s" : ""} β click to compare all copies`,
+ title: `${H.value} duplicate${H.value > 1 ? "s" : ""} β click to compare all copies`,
onClick: E,
- onPointerdown: _[6] || (_[6] = Fn(() => {
+ onPointerdown: _[6] || (_[6] = On(() => {
}, ["stop"])),
- onMousedown: _[7] || (_[7] = Fn(() => {
+ onMousedown: _[7] || (_[7] = On(() => {
}, ["stop", "prevent"])),
- onTouchstartPassive: _[8] || (_[8] = Fn(() => {
+ onTouchstartPassive: _[8] || (_[8] = On(() => {
}, ["stop"])),
- onDblclick: _[9] || (_[9] = Fn(() => {
+ onDblclick: _[9] || (_[9] = On(() => {
}, ["stop"])),
- onKeydown: _[10] || (_[10] = Fn(() => {
+ onKeydown: _[10] || (_[10] = On(() => {
}, ["stop"])),
- onDragstart: _[11] || (_[11] = Fn(() => {
+ onDragstart: _[11] || (_[11] = On(() => {
}, ["stop", "prevent"]))
}, [
- _[17] || (_[17] = ne("span", { class: "pi pi-copy" }, null, -1)),
- ne("span", Uw, Ye(D.value), 1)
- ], 40, Bw)) : yt("", !0)
+ _[17] || (_[17] = ie("span", { class: "pi pi-copy" }, null, -1)),
+ ie("span", Ew, Ye(H.value), 1)
+ ], 40, Dw)) : ft("", !0)
], 64));
}
-}, Kw = ["data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-stem", "aria-label", "aria-selected"], Dw = {
+}, Hw = ["data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-stem", "aria-label", "aria-selected"], qw = {
class: "mjr-card-info mjr-card-meta",
style: { padding: "6px 8px", "min-width": "0" }
-}, Ew = ["title"], rm = {
+}, Pw = ["title"], am = {
__name: "FolderCard",
props: {
asset: { type: Object, required: !0 },
selected: { type: Boolean, default: !1 }
},
setup(e) {
- return (t, n) => (Ie(), he("div", {
+ return (t, n) => (be(), Ce("div", {
class: Zn(["mjr-asset-card mjr-card mjr-folder-card", { "is-selected": e.selected }]),
role: "button",
tabindex: 0,
@@ -26710,42 +26725,42 @@ const Or = sw(), jr = (e, t) => {
"aria-label": `Folder ${e.asset.filename}`,
"aria-selected": e.selected ? "true" : "false"
}, [
- n[1] || (n[1] = ne("div", {
+ n[1] || (n[1] = ie("div", {
class: "mjr-thumb",
style: { display: "flex", "align-items": "center", "justify-content": "center" }
}, [
- ne("svg", {
+ ie("svg", {
width: "64",
height: "64",
viewBox: "0 0 24 24",
"aria-hidden": "true"
}, [
- ne("path", {
+ ie("path", {
fill: "#F4C74A",
d: "M10 4H4c-1.1 0-2 .9-2 2v1h20V8c0-1.1-.9-2-2-2h-8l-2-2z"
}),
- ne("path", {
+ ie("path", {
fill: "#D9A730",
d: "M20 6H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"
})
])
], -1)),
- ne("div", Dw, [
- ne("div", {
+ ie("div", qw, [
+ ie("div", {
class: "mjr-card-filename",
title: e.asset.filename,
style: { overflow: "hidden", "text-overflow": "ellipsis", "white-space": "nowrap", "margin-bottom": "4px" }
- }, Ye(e.asset.filename), 9, Ew),
- n[0] || (n[0] = ne("div", { class: "mjr-card-meta-row" }, null, -1))
+ }, Ye(e.asset.filename), 9, Pw),
+ n[0] || (n[0] = ie("div", { class: "mjr-card-meta-row" }, null, -1))
])
- ], 10, Kw));
+ ], 10, Hw));
}
};
-function Kl(e) {
+function Dl(e) {
return Array.from(e || []).map((t) => String(t || "").trim()).filter(Boolean);
}
-function Hw() {
- const e = Up({
+function Qw() {
+ const e = Ep({
query: "*",
offset: 0,
total: null,
@@ -26775,7 +26790,7 @@ function Hw() {
e.assets = Array.isArray(I) ? I.slice() : [];
}
};
- const t = Je(() => new Set(Kl(e.selectedIds)));
+ const t = ze(() => new Set(Dl(e.selectedIds)));
function n(I = "", { error: p = !1 } = {}) {
e.statusMessage = String(I || ""), e.statusError = !!p;
}
@@ -26791,19 +26806,19 @@ function Hw() {
function l() {
e.seenKeys = /* @__PURE__ */ new Set(), e.assetIdSet = /* @__PURE__ */ new Set(), e.filenameCounts = /* @__PURE__ */ new Map(), e.nonImageSiblingKeys = /* @__PURE__ */ new Set(), e.stemMap = /* @__PURE__ */ new Map(), e.renderedFilenameMap = /* @__PURE__ */ new Map(), e.hiddenPngSiblings = 0;
}
- function a({ query: I = "*", total: p = null, done: M = !1 } = {}) {
- e.query = String(I || "*") || "*", e.offset = 0, e.total = p == null ? null : Number(p) || 0, e.done = !!M, e.assets = [], l();
+ function a({ query: I = "*", total: p = null, done: S = !1 } = {}) {
+ e.query = String(I || "*") || "*", e.offset = 0, e.total = p == null ? null : Number(p) || 0, e.done = !!S, e.assets = [], l();
}
- function c(I, p = "", { preserveAnchor: M = !1 } = {}) {
- const Z = Array.from(new Set(Kl(I))), A = String(p || Z[0] || "").trim();
- return e.selectedIds = Z, e.activeId = A, M || (A ? e.selectionAnchorId = A : Z.length || (e.selectionAnchorId = "")), {
- selectedIds: Z,
- activeId: A
+ function c(I, p = "", { preserveAnchor: S = !1 } = {}) {
+ const A = Array.from(new Set(Dl(I))), C = String(p || A[0] || "").trim();
+ return e.selectedIds = A, e.activeId = C, S || (C ? e.selectionAnchorId = C : A.length || (e.selectionAnchorId = "")), {
+ selectedIds: A,
+ activeId: C
};
}
function s(I, { activeId: p = "" } = {}) {
- const M = new Set(Kl(I)), Z = Kl(e.selectedIds).filter((h) => M.has(h)), A = String(p || e.activeId || Z[0] || "").trim(), g = M.has(A) ? A : Z[0] || "";
- return c(Z, g, { preserveAnchor: !0 });
+ const S = new Set(Dl(I)), A = Dl(e.selectedIds).filter((Z) => S.has(Z)), C = String(p || e.activeId || A[0] || "").trim(), g = S.has(C) ? C : A[0] || "";
+ return c(A, g, { preserveAnchor: !0 });
}
function d() {
const I = t.value;
@@ -26815,7 +26830,7 @@ function Hw() {
const I = String(e.activeId || "").trim();
if (I) {
const p = (Array.isArray(e.assets) ? e.assets : []).find(
- (M) => String((M == null ? void 0 : M.id) || "") === I
+ (S) => String((S == null ? void 0 : S.id) || "") === I
);
if (p) return p;
}
@@ -26836,7 +26851,7 @@ function Hw() {
getActiveAsset: u
};
}
-function qw(e) {
+function _w(e) {
var t;
try {
return typeof (e == null ? void 0 : e.getClientRects) != "function" ? !0 : e.getClientRects().length > 0;
@@ -26872,15 +26887,15 @@ function Yb(e, { requireClientRect: t = !0 } = {}) {
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
- return t ? qw(e) : !0;
+ return t ? _w(e) : !0;
}
-function Pw(e) {
+function $w(e) {
return Yb(e, { requireClientRect: !0 });
}
-function sd(e, t = null) {
+function ud(e, t = null) {
var o;
const n = t || e;
- if (!Pw(n) || e && e !== n && !Yb(e, { requireClientRect: !1 }))
+ if (!$w(n) || e && e !== n && !Yb(e, { requireClientRect: !1 }))
return !1;
try {
const r = Number((n == null ? void 0 : n.clientWidth) || 0) || 0, l = Number((n == null ? void 0 : n.clientHeight) || 0) || 0;
@@ -26889,42 +26904,42 @@ function sd(e, t = null) {
return (o = console.debug) == null || o.call(console, r), !1;
}
}
-const Qw = {
+const e0 = {
__name: "FloatingViewerHost",
setup(e) {
const t = Ae(null);
let n = null;
return Dn(() => {
- n = LC(t.value);
+ n = kC(t.value);
}), _n(() => {
n == null || n(), n = null;
- }), (i, o) => (Ie(), he("div", {
+ }), (i, o) => (be(), Ce("div", {
ref_key: "hostRef",
ref: t,
class: "mjr-viewer-runtime-host mjr-viewer-runtime-host--floating",
style: { position: "fixed", inset: "0", "pointer-events": "none", overflow: "visible" }
}, null, 512));
}
-}, _w = {
+}, t0 = {
__name: "ViewerOverlayHost",
setup(e) {
const t = Ae(null);
let n = null;
return Dn(() => {
- n = jC(t.value);
+ n = VC(t.value);
}), _n(() => {
n == null || n(), n = null;
- }), (i, o) => (Ie(), he("div", {
+ }), (i, o) => (be(), Ce("div", {
ref_key: "hostRef",
ref: t,
class: "mjr-viewer-runtime-host mjr-viewer-runtime-host--main",
style: { position: "fixed", inset: "0", "pointer-events": "none", overflow: "visible" }
}, null, 512));
}
-}, $w = ["aria-busy"], e0 = ["aria-label"], t0 = {
+}, n0 = ["aria-busy"], i0 = ["aria-label"], o0 = {
key: 0,
class: "mjr-tags-empty"
-}, n0 = ["aria-label", "disabled", "onClick"], i0 = { class: "mjr-tags-input-wrap" }, o0 = ["placeholder", "disabled", "aria-label", "aria-autocomplete", "aria-expanded", "aria-haspopup"], r0 = ["aria-label"], l0 = ["aria-selected", "onClick", "onMouseenter"], a0 = 100, lm = 200, dd = {
+}, r0 = ["aria-label", "disabled", "onClick"], l0 = { class: "mjr-tags-input-wrap" }, a0 = ["placeholder", "disabled", "aria-label", "aria-autocomplete", "aria-expanded", "aria-haspopup"], c0 = ["aria-label"], s0 = ["aria-selected", "onClick", "onMouseenter"], d0 = 100, cm = 200, md = {
__name: "TagsEditor",
props: {
asset: {
@@ -26942,322 +26957,322 @@ const Qw = {
},
emits: ["update:modelValue", "tags-change"],
setup(e, { emit: t }) {
- var R;
- function n(j) {
+ var N;
+ function n(V) {
try {
- const L = String(j ?? "").trim();
- if (!L || L.length > a0) return null;
- for (let N = 0; N < L.length; N += 1) {
- const q = L.charCodeAt(N);
- if (q <= 31 || q === 127) return null;
+ const k = String(V ?? "").trim();
+ if (!k || k.length > d0) return null;
+ for (let K = 0; K < k.length; K += 1) {
+ const z = k.charCodeAt(K);
+ if (z <= 31 || z === 127) return null;
}
- return /[;,]/.test(L) ? null : L;
+ return /[;,]/.test(k) ? null : k;
} catch {
return null;
}
}
- function i(j) {
+ function i(V) {
try {
- return String(j ?? "").replace(/[\x00-\x1f\x7f]/g, "").trim() || null;
+ return String(V ?? "").replace(/[\x00-\x1f\x7f]/g, "").trim() || null;
} catch {
return null;
}
}
- function o(j) {
- const L = i(j);
- return L ? L.toLowerCase() : "";
+ function o(V) {
+ const k = i(V);
+ return k ? k.toLowerCase() : "";
}
- function r(j) {
- const L = [], N = /* @__PURE__ */ new Set();
- for (const q of Array.isArray(j) ? j : []) {
- const O = i(q);
- if (!O) continue;
- const B = O.toLowerCase();
- if (!N.has(B) && (N.add(B), L.push(O), L.length >= lm))
+ function r(V) {
+ const k = [], K = /* @__PURE__ */ new Set();
+ for (const z of Array.isArray(V) ? V : []) {
+ const B = i(z);
+ if (!B) continue;
+ const J = B.toLowerCase();
+ if (!K.has(J) && (K.add(J), k.push(B), k.length >= cm))
break;
}
- return L;
+ return k;
}
- function l(j) {
- if (Array.isArray(j))
- return r(j);
- if (typeof j == "string") {
- const L = j.trim();
- if (!L) return [];
+ function l(V) {
+ if (Array.isArray(V))
+ return r(V);
+ if (typeof V == "string") {
+ const k = V.trim();
+ if (!k) return [];
try {
- const N = JSON.parse(L);
- if (Array.isArray(N)) return r(N);
+ const K = JSON.parse(k);
+ if (Array.isArray(K)) return r(K);
} catch {
- return r(L.split(","));
+ return r(k.split(","));
}
}
return [];
}
- function a(j, L) {
- if (!Array.isArray(j) || !Array.isArray(L) || j.length !== L.length) return !1;
- for (let N = 0; N < j.length; N += 1)
- if (j[N] !== L[N]) return !1;
+ function a(V, k) {
+ if (!Array.isArray(V) || !Array.isArray(k) || V.length !== k.length) return !1;
+ for (let K = 0; K < V.length; K += 1)
+ if (V[K] !== k[K]) return !1;
return !0;
}
- const c = e, s = t, d = l(((R = c.asset) == null ? void 0 : R.tags) ?? c.modelValue ?? []), u = Ae([...d]), I = Ae(null), p = Ae(""), M = Ae(!1), Z = Ae(-1), A = Ae([]), g = Ae(!1);
- let h = !1, f = !1, b = null, v = [...d];
- const C = (j) => Math.min(100 * 2 ** Math.max(0, j - 1), 2e3), S = (j) => new Promise((L) => setTimeout(L, j)), W = Je(() => {
- const j = p.value.toLowerCase().trim();
- if (!j) return [];
- const L = new Set(u.value.map((N) => o(N)).filter(Boolean));
- return A.value.filter((N) => {
- const q = o(N);
- return N.toLowerCase().includes(j) && (!q || !L.has(q));
+ const c = e, s = t, d = l(((N = c.asset) == null ? void 0 : N.tags) ?? c.modelValue ?? []), u = Ae([...d]), I = Ae(null), p = Ae(""), S = Ae(!1), A = Ae(-1), C = Ae([]), g = Ae(!1);
+ let Z = !1, f = !1, b = null, L = [...d];
+ const h = (V) => Math.min(100 * 2 ** Math.max(0, V - 1), 2e3), G = (V) => new Promise((k) => setTimeout(k, V)), W = () => setTimeout(() => S.value = !1, 200), y = ze(() => {
+ const V = p.value.toLowerCase().trim();
+ if (!V) return [];
+ const k = new Set(u.value.map((K) => o(K)).filter(Boolean));
+ return C.value.filter((K) => {
+ const z = o(K);
+ return K.toLowerCase().includes(V) && (!z || !k.has(z));
}).slice(0, 10);
- }), y = Je(() => W.value.length > 0);
- function k(j) {
- if (h) return;
- const L = l(j);
- v = [...L], a(L, u.value) || (u.value = [...L]);
+ }), X = ze(() => y.value.length > 0);
+ function x(V) {
+ if (Z) return;
+ const k = l(V);
+ L = [...k], a(k, u.value) || (u.value = [...k]);
}
- function G(j) {
- var q, O;
- const L = [...j], N = ((q = c.asset) == null ? void 0 : q.id) != null ? String(c.asset.id) : "";
- s("update:modelValue", L), s("tags-change", { assetId: (O = c.asset) == null ? void 0 : O.id, tags: L }), ii(Uo, {
- assetId: N,
- tags: L
+ function T(V) {
+ var z, B;
+ const k = [...V], K = ((z = c.asset) == null ? void 0 : z.id) != null ? String(c.asset.id) : "";
+ s("update:modelValue", k), s("tags-change", { assetId: (B = c.asset) == null ? void 0 : B.id, tags: k }), oi(Do, {
+ assetId: K,
+ tags: k
});
}
- async function z() {
- var L, N, q, O, B, J, T;
+ async function v() {
+ var k, K, z, B, J, P, H;
if (c.disabled) return;
- if (h) {
+ if (Z) {
f = !0;
try {
- (L = b == null ? void 0 : b.abort) == null || L.call(b);
- } catch (D) {
- (N = console.debug) == null || N.call(console, D);
+ (k = b == null ? void 0 : b.abort) == null || k.call(b);
+ } catch ($) {
+ (K = console.debug) == null || K.call(console, $);
}
return;
}
- h = !0, g.value = !0;
- let j = 0;
- for (; j < 10; ) {
- j > 0 && await S(C(j)), j += 1;
- const D = l(u.value), Q = typeof AbortController < "u" ? new AbortController() : null;
- b = Q;
- let E = null;
+ Z = !0, g.value = !0;
+ let V = 0;
+ for (; V < 10; ) {
+ V > 0 && await G(h(V)), V += 1;
+ const $ = l(u.value), E = typeof AbortController < "u" ? new AbortController() : null;
+ b = E;
+ let oe = null;
try {
- E = await ch(c.asset, D, Q ? { signal: Q.signal } : {});
- } catch (F) {
- console.error("Failed to update tags:", F);
+ oe = await uh(c.asset, $, E ? { signal: E.signal } : {});
+ } catch (j) {
+ console.error("Failed to update tags:", j);
}
- if (!(E != null && E.ok)) {
- if ((E == null ? void 0 : E.code) === "ABORTED") {
+ if (!(oe != null && oe.ok)) {
+ if ((oe == null ? void 0 : oe.code) === "ABORTED") {
if (f) {
f = !1;
continue;
}
break;
}
- const F = [...v];
- u.value = F, s("update:modelValue", F), Ce((E == null ? void 0 : E.error) || m("toast.tagsUpdateFailed", "Failed to update tags"), "error"), h = !1, b = null, g.value = !1;
+ const j = [...L];
+ u.value = j, s("update:modelValue", j), Ze((oe == null ? void 0 : oe.error) || m("toast.tagsUpdateFailed", "Failed to update tags"), "error"), Z = !1, b = null, g.value = !1;
return;
}
try {
- const F = ((q = E == null ? void 0 : E.data) == null ? void 0 : q.asset_id) ?? null;
- F != null && !pi(c.asset.id) && (c.asset.id = F);
- } catch (F) {
- (O = console.debug) == null || O.call(console, F);
+ const j = ((z = oe == null ? void 0 : oe.data) == null ? void 0 : z.asset_id) ?? null;
+ j != null && !fi(c.asset.id) && (c.asset.id = j);
+ } catch (j) {
+ (B = console.debug) == null || B.call(console, j);
}
- const K = l(
- Array.isArray((B = E == null ? void 0 : E.data) == null ? void 0 : B.tags) ? E.data.tags : D
+ const M = l(
+ Array.isArray((J = oe == null ? void 0 : oe.data) == null ? void 0 : J.tags) ? oe.data.tags : $
);
- v = [...K];
+ L = [...M];
try {
- c.asset.tags = [...K];
- } catch (F) {
- (J = console.debug) == null || J.call(console, F);
+ c.asset.tags = [...M];
+ } catch (j) {
+ (P = console.debug) == null || P.call(console, j);
}
- if (f || (u.value = [...K]), G(K), Ce(m("toast.tagsUpdated", "Tags updated"), "success", 1e3), !f) break;
+ if (f || (u.value = [...M]), T(M), Ze(m("toast.tagsUpdated", "Tags updated"), "success", 1e3), !f) break;
f = !1;
}
- if (j >= 10) {
- const D = [...v];
- u.value = D;
+ if (V >= 10) {
+ const $ = [...L];
+ u.value = $;
try {
- c.asset.tags = [...D];
- } catch (Q) {
- (T = console.debug) == null || T.call(console, Q);
+ c.asset.tags = [...$];
+ } catch (E) {
+ (H = console.debug) == null || H.call(console, E);
}
- s("update:modelValue", D), Ce(m("toast.tagsUpdateFailed", "Failed to update tags"), "error");
+ s("update:modelValue", $), Ze(m("toast.tagsUpdateFailed", "Failed to update tags"), "error");
}
- h = !1, b = null, g.value = !1;
+ Z = !1, b = null, g.value = !1;
}
Dn(async () => {
try {
- const j = await sh();
- j != null && j.ok && Array.isArray(j == null ? void 0 : j.data) && (A.value = r(j.data));
- } catch (j) {
- console.warn("Failed to load available tags:", j);
+ const V = await mh();
+ V != null && V.ok && Array.isArray(V == null ? void 0 : V.data) && (C.value = r(V.data));
+ } catch (V) {
+ console.warn("Failed to load available tags:", V);
}
- }), Mr(() => {
- var j, L;
+ }), xr(() => {
+ var V, k;
try {
- (j = b == null ? void 0 : b.abort) == null || j.call(b);
- } catch (N) {
- (L = console.debug) == null || L.call(console, N);
+ (V = b == null ? void 0 : b.abort) == null || V.call(b);
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
});
- function x(j) {
+ function w(V) {
if (c.disabled) return;
- const L = n(j);
- if (!L) return;
- const N = o(L);
- if (N && !u.value.some((q) => o(q) === N)) {
- if (u.value.length >= lm) {
- Ce(m("toast.maxTagsReached", "Maximum number of tags reached"), "warning");
+ const k = n(V);
+ if (!k) return;
+ const K = o(k);
+ if (K && !u.value.some((z) => o(z) === K)) {
+ if (u.value.length >= cm) {
+ Ze(m("toast.maxTagsReached", "Maximum number of tags reached"), "warning");
return;
}
- u.value = [...u.value, L], z();
+ u.value = [...u.value, k], v();
}
}
- function w(j) {
- if (c.disabled || j < 0 || j >= u.value.length) return;
- const L = [...u.value];
- L.splice(j, 1), u.value = L, z();
+ function R(V) {
+ if (c.disabled || V < 0 || V >= u.value.length) return;
+ const k = [...u.value];
+ k.splice(V, 1), u.value = k, v();
}
- function X(j) {
- if (j.key === "Enter" || j.key === ",") {
- j.preventDefault();
- const L = p.value.trim();
- L && (x(L), p.value = "", M.value = !1, Z.value = -1);
+ function Y(V) {
+ if (V.key === "Enter" || V.key === ",") {
+ V.preventDefault();
+ const k = p.value.trim();
+ k && (w(k), p.value = "", S.value = !1, A.value = -1);
return;
}
- if (j.key === "Escape") {
- M.value = !1, Z.value = -1;
+ if (V.key === "Escape") {
+ S.value = !1, A.value = -1;
return;
}
- if (j.key === "ArrowDown") {
- j.preventDefault(), y.value && (Z.value = Math.min(
- Z.value + 1,
- W.value.length - 1
+ if (V.key === "ArrowDown") {
+ V.preventDefault(), X.value && (A.value = Math.min(
+ A.value + 1,
+ y.value.length - 1
));
return;
}
- if (j.key === "ArrowUp") {
- j.preventDefault(), Z.value = Math.max(Z.value - 1, 0);
+ if (V.key === "ArrowUp") {
+ V.preventDefault(), A.value = Math.max(A.value - 1, 0);
return;
}
- if (j.key === "Tab" && y.value) {
- j.preventDefault();
- const L = W.value[Z.value] || W.value[0];
- L && (p.value = L);
+ if (V.key === "Tab" && X.value) {
+ V.preventDefault();
+ const k = y.value[A.value] || y.value[0];
+ k && (p.value = k);
}
}
- function V(j) {
- var L;
- x(j), p.value = "", M.value = !1, Z.value = -1, (L = I.value) == null || L.focus();
+ function F(V) {
+ var k;
+ w(V), p.value = "", S.value = !1, A.value = -1, (k = I.value) == null || k.focus();
}
- return an(
+ return cn(
() => c.modelValue,
- (j) => {
- k(j);
+ (V) => {
+ x(V);
}
- ), an(
+ ), cn(
() => {
- var j;
- return (j = c.asset) == null ? void 0 : j.tags;
+ var V;
+ return (V = c.asset) == null ? void 0 : V.tags;
},
- (j) => {
- k(j);
+ (V) => {
+ x(V);
}
- ), (j, L) => (Ie(), he("div", {
+ ), (V, k) => (be(), Ce("div", {
class: Zn(["mjr-tags-editor", { "is-disabled": e.disabled }]),
"aria-busy": g.value
}, [
- ne("div", {
+ ie("div", {
class: "mjr-tags-display",
role: "list",
- "aria-label": Ge(m)("tags.label", "Tags")
+ "aria-label": xe(m)("tags.label", "Tags")
}, [
- u.value.length === 0 ? (Ie(), he("span", t0, Ye(Ge(m)("msg.noTagsYet", "No tags yet...")), 1)) : (Ie(!0), he(Xt, { key: 1 }, Cn(u.value, (N, q) => (Ie(), he("div", {
- key: N,
+ u.value.length === 0 ? (be(), Ce("span", o0, Ye(xe(m)("msg.noTagsYet", "No tags yet...")), 1)) : (be(!0), Ce(Nt, { key: 1 }, Cn(u.value, (K, z) => (be(), Ce("div", {
+ key: K,
class: "mjr-tag-chip",
role: "listitem"
}, [
- Kp(Ye(N) + " ", 1),
- ne("button", {
+ Hp(Ye(K) + " ", 1),
+ ie("button", {
type: "button",
class: "mjr-tag-chip-remove",
- "aria-label": Ge(m)("tags.remove", "Remove tag"),
+ "aria-label": xe(m)("tags.remove", "Remove tag"),
disabled: e.disabled,
- onClick: (O) => w(q)
- }, " Γ ", 8, n0)
+ onClick: (B) => R(z)
+ }, " Γ ", 8, r0)
]))), 128))
- ], 8, e0),
- ne("div", i0, [
- Bo(ne("input", {
+ ], 8, i0),
+ ie("div", l0, [
+ Ko(ie("input", {
ref_key: "inputRef",
ref: I,
- "onUpdate:modelValue": L[0] || (L[0] = (N) => p.value = N),
+ "onUpdate:modelValue": k[0] || (k[0] = (K) => p.value = K),
type: "text",
class: "mjr-tag-input",
- placeholder: Ge(m)("sidebar.addTag", "Add tag..."),
+ placeholder: xe(m)("sidebar.addTag", "Add tag..."),
disabled: e.disabled,
- "aria-label": Ge(m)("tags.addLabel", "Add tag"),
- "aria-autocomplete": y.value ? "list" : "none",
- "aria-expanded": M.value,
- "aria-haspopup": y.value ? "listbox" : void 0,
- onFocus: L[1] || (L[1] = (N) => M.value = p.value.length > 0),
- onInput: L[2] || (L[2] = (N) => M.value = p.value.length > 0),
- onKeydown: X,
- onBlur: L[3] || (L[3] = (N) => j.setTimeout(() => M.value = !1, 200))
- }, null, 40, o0), [
- [Dp, p.value]
+ "aria-label": xe(m)("tags.addLabel", "Add tag"),
+ "aria-autocomplete": X.value ? "list" : "none",
+ "aria-expanded": S.value,
+ "aria-haspopup": X.value ? "listbox" : void 0,
+ onFocus: k[1] || (k[1] = (K) => S.value = p.value.length > 0),
+ onInput: k[2] || (k[2] = (K) => S.value = p.value.length > 0),
+ onKeydown: Y,
+ onBlur: W
+ }, null, 40, a0), [
+ [qp, p.value]
]),
- Bo(ne("div", {
+ Ko(ie("div", {
class: "mjr-tags-dropdown",
role: "listbox",
- "aria-label": Ge(m)("tags.suggestions", "Tag suggestions")
+ "aria-label": xe(m)("tags.suggestions", "Tag suggestions")
}, [
- (Ie(!0), he(Xt, null, Cn(W.value, (N, q) => (Ie(), he("div", {
- key: N,
- class: Zn(["mjr-tag-suggestion", { "is-active": q === Z.value }]),
+ (be(!0), Ce(Nt, null, Cn(y.value, (K, z) => (be(), Ce("div", {
+ key: K,
+ class: Zn(["mjr-tag-suggestion", { "is-active": z === A.value }]),
role: "option",
- "aria-selected": q === Z.value,
- onClick: (O) => V(N),
- onMouseenter: (O) => Z.value = q
- }, Ye(N), 43, l0))), 128))
- ], 8, r0), [
- [br, M.value && y.value]
+ "aria-selected": z === A.value,
+ onClick: (B) => F(K),
+ onMouseenter: (B) => A.value = z
+ }, Ye(K), 43, s0))), 128))
+ ], 8, c0), [
+ [yr, S.value && X.value]
])
])
- ], 10, $w));
+ ], 10, n0));
}
-}, c0 = {
+}, u0 = {
key: 0,
class: "mjr-context-menu-separator"
-}, s0 = ["aria-disabled", "tabindex", "onClick", "onMouseenter", "onMouseleave"], d0 = { class: "mjr-context-menu-item-left" }, u0 = { class: "mjr-context-menu-item-right" }, m0 = {
+}, m0 = ["aria-disabled", "tabindex", "onClick", "onMouseenter", "onMouseleave"], g0 = { class: "mjr-context-menu-item-left" }, I0 = { class: "mjr-context-menu-item-right" }, b0 = {
key: 0,
class: "mjr-context-menu-hint"
-}, g0 = {
+}, p0 = {
key: 1,
class: "mjr-context-menu-submenu-arrow"
-}, I0 = {
+}, y0 = {
key: 0,
class: "mjr-context-menu-separator"
-}, b0 = ["aria-disabled", "tabindex", "onClick"], p0 = { class: "mjr-context-menu-item-left" }, y0 = {
+}, f0 = ["aria-disabled", "tabindex", "onClick"], h0 = { class: "mjr-context-menu-item-left" }, C0 = {
key: 0,
class: "mjr-context-menu-hint"
-}, f0 = {
+}, Z0 = {
__name: "ViewerContextMenu",
setup(e) {
const t = Ae(null), n = Ae(null), i = Ae(null);
let o = null, r = null;
- const l = Je(() => s(Kt.main, 10041)), a = Je(() => s(Kt.submenu, 10042)), c = Je(() => s(Kt.tags, 10043));
- function s(G, z) {
+ const l = ze(() => s(Kt.main, 10041)), a = ze(() => s(Kt.submenu, 10042)), c = ze(() => s(Kt.tags, 10043));
+ function s(x, T) {
return {
position: "fixed",
- left: `${Math.round(Number(G == null ? void 0 : G.x) || 0)}px`,
- top: `${Math.round(Number(G == null ? void 0 : G.y) || 0)}px`,
+ left: `${Math.round(Number(x == null ? void 0 : x.x) || 0)}px`,
+ top: `${Math.round(Number(x == null ? void 0 : x.y) || 0)}px`,
display: "block",
- zIndex: String(z)
+ zIndex: String(T)
};
}
function d() {
@@ -27265,66 +27280,66 @@ const Qw = {
}
function u() {
d(), o = setTimeout(() => {
- ur();
+ gr();
}, 180);
}
- function I(G, z) {
- if (!(G != null && G.open) || !z) return;
- const x = z.getBoundingClientRect(), w = Number(window.innerWidth || 0), X = Number(window.innerHeight || 0);
- let V = Number(G.x) || 0, R = Number(G.y) || 0;
- V + x.width > w && (V = Math.max(8, w - x.width - 10)), R + x.height > X && (R = Math.max(8, X - x.height - 10)), V < 8 && (V = 8), R < 8 && (R = 8), G.x = V, G.y = R;
+ function I(x, T) {
+ if (!(x != null && x.open) || !T) return;
+ const v = T.getBoundingClientRect(), w = Number(window.innerWidth || 0), R = Number(window.innerHeight || 0);
+ let Y = Number(x.x) || 0, F = Number(x.y) || 0;
+ Y + v.width > w && (Y = Math.max(8, w - v.width - 10)), F + v.height > R && (F = Math.max(8, R - v.height - 10)), Y < 8 && (Y = 8), F < 8 && (F = 8), x.x = Y, x.y = F;
}
- async function p(G, z) {
- await Ao(), I(G, (z == null ? void 0 : z.value) || null);
+ async function p(x, T) {
+ await wo(), I(x, (T == null ? void 0 : T.value) || null);
}
- function M(G) {
- var z, x, w, X, V;
+ function S(x) {
+ var T, v, w, R, Y;
try {
- (X = (w = (x = (z = G == null ? void 0 : G.value) == null ? void 0 : z.querySelector) == null ? void 0 : x.call(z, '.mjr-context-menu-item:not([aria-disabled="true"])')) == null ? void 0 : w.focus) == null || X.call(w);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ (R = (w = (v = (T = x == null ? void 0 : x.value) == null ? void 0 : T.querySelector) == null ? void 0 : v.call(T, '.mjr-context-menu-item:not([aria-disabled="true"])')) == null ? void 0 : w.focus) == null || R.call(w);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
}
- function Z(G, z) {
- var X;
- if (!Array.isArray(G == null ? void 0 : G.submenu) || !G.submenu.length) {
- ur();
+ function A(x, T) {
+ var R;
+ if (!Array.isArray(x == null ? void 0 : x.submenu) || !x.submenu.length) {
+ gr();
return;
}
d();
- const x = z == null ? void 0 : z.currentTarget, w = (X = x == null ? void 0 : x.getBoundingClientRect) == null ? void 0 : X.call(x);
- jZ({
+ const v = T == null ? void 0 : T.currentTarget, w = (R = v == null ? void 0 : v.getBoundingClientRect) == null ? void 0 : R.call(v);
+ VZ({
x: Math.round(((w == null ? void 0 : w.right) || Kt.main.x || 0) + 6),
y: Math.round(((w == null ? void 0 : w.top) || Kt.main.y || 0) - 4),
- items: G.submenu,
- title: G.label || ""
+ items: x.submenu,
+ title: x.label || ""
});
}
- async function A(G, z, x = "main") {
+ async function C(x, T, v = "main") {
var w;
- if (!(!G || G.type !== "item" || G.disabled)) {
- if (Array.isArray(G.submenu) && G.submenu.length) {
- Z(G, z);
+ if (!(!x || x.type !== "item" || x.disabled)) {
+ if (Array.isArray(x.submenu) && x.submenu.length) {
+ A(x, T);
return;
}
try {
- await ((w = G.action) == null ? void 0 : w.call(G));
- } catch (X) {
- console.error("[ViewerContextMenu.vue] Action failed:", X);
+ await ((w = x.action) == null ? void 0 : w.call(x));
+ } catch (R) {
+ console.error("[ViewerContextMenu.vue] Action failed:", R);
} finally {
- G.closeOnSelect !== !1 ? jo() : x === "submenu" && ur();
+ x.closeOnSelect !== !1 ? Lo() : v === "submenu" && gr();
}
}
}
- function g(G, z) {
- if (Array.isArray(G == null ? void 0 : G.submenu) && G.submenu.length) {
- Z(G, z);
+ function g(x, T) {
+ if (Array.isArray(x == null ? void 0 : x.submenu) && x.submenu.length) {
+ A(x, T);
return;
}
- ur();
+ gr();
}
- function h(G) {
- Array.isArray(G == null ? void 0 : G.submenu) && G.submenu.length && u();
+ function Z(x) {
+ Array.isArray(x == null ? void 0 : x.submenu) && x.submenu.length && u();
}
function f() {
d();
@@ -27332,90 +27347,90 @@ const Qw = {
function b() {
u();
}
- function v(G) {
- var w, X, V, R, j, L;
- const z = G == null ? void 0 : G.target;
- ((X = (w = t.value) == null ? void 0 : w.contains) == null ? void 0 : X.call(w, z)) || ((R = (V = n.value) == null ? void 0 : V.contains) == null ? void 0 : R.call(V, z)) || ((L = (j = i.value) == null ? void 0 : j.contains) == null ? void 0 : L.call(j, z)) || jo();
+ function L(x) {
+ var w, R, Y, F, N, V;
+ const T = x == null ? void 0 : x.target;
+ ((R = (w = t.value) == null ? void 0 : w.contains) == null ? void 0 : R.call(w, T)) || ((F = (Y = n.value) == null ? void 0 : Y.contains) == null ? void 0 : F.call(Y, T)) || ((V = (N = i.value) == null ? void 0 : N.contains) == null ? void 0 : V.call(N, T)) || Lo();
}
- function C(G) {
- (G == null ? void 0 : G.key) === "Escape" && jo();
+ function h(x) {
+ (x == null ? void 0 : x.key) === "Escape" && Lo();
}
- function S() {
- jo();
+ function G() {
+ Lo();
}
- function W(G) {
- var z;
- String(((z = G == null ? void 0 : G.detail) == null ? void 0 : z.source) || "") !== "viewer" && jo();
+ function W(x) {
+ var T;
+ String(((T = x == null ? void 0 : x.detail) == null ? void 0 : T.source) || "") !== "viewer" && Lo();
}
- function y(G) {
- const z = Kt.tags.asset;
- z && (z.tags = Array.isArray(G) ? [...G] : []);
+ function y(x) {
+ const T = Kt.tags.asset;
+ T && (T.tags = Array.isArray(x) ? [...x] : []);
}
- function k(G) {
- var x, w, X;
- const z = Array.isArray(G == null ? void 0 : G.tags) ? G.tags : [];
+ function X(x) {
+ var v, w, R;
+ const T = Array.isArray(x == null ? void 0 : x.tags) ? x.tags : [];
try {
- (w = (x = Kt.tags).onChanged) == null || w.call(x, z);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ (w = (v = Kt.tags).onChanged) == null || w.call(v, T);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
- return an(
+ return cn(
() => Kt.main.open,
- async (G) => {
- G && (await p(Kt.main, t), M(t));
+ async (x) => {
+ x && (await p(Kt.main, t), S(t));
}
- ), an(
+ ), cn(
() => Kt.submenu.open,
- async (G) => {
- G && (await p(Kt.submenu, n), M(n));
+ async (x) => {
+ x && (await p(Kt.submenu, n), S(n));
}
- ), an(
+ ), cn(
() => Kt.tags.open,
- async (G) => {
- G && await p(Kt.tags, i);
+ async (x) => {
+ x && await p(Kt.tags, i);
}
), Dn(() => {
r = new AbortController();
- const G = {
+ const x = {
capture: !0,
passive: !0,
signal: r.signal
};
- window.addEventListener("pointerdown", v, G), window.addEventListener("keydown", C, {
+ window.addEventListener("pointerdown", L, x), window.addEventListener("keydown", h, {
capture: !0,
signal: r.signal
- }), window.addEventListener("scroll", S, G), window.addEventListener("wheel", S, G), window.addEventListener("resize", S, {
+ }), window.addEventListener("scroll", G, x), window.addEventListener("wheel", G, x), window.addEventListener("resize", G, {
passive: !0,
signal: r.signal
}), window.addEventListener("mjr-close-all-menus", W, {
signal: r.signal
});
}), _n(() => {
- var G;
+ var x;
d();
try {
r == null || r.abort();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- r = null, jo();
- }), (G, z) => {
- var x;
- return Ie(), Ei(Ls, { to: "body" }, [
- Ge(Kt).main.open ? (Ie(), he("div", {
+ r = null, Lo();
+ }), (x, T) => {
+ var v;
+ return be(), Pi(Ys, { to: "body" }, [
+ xe(Kt).main.open ? (be(), Ce("div", {
key: 0,
ref_key: "mainMenuRef",
ref: t,
class: "mjr-viewer-context-menu mjr-context-menu",
- style: vt(l.value),
+ style: Lt(l.value),
role: "menu",
"aria-label": "Viewer context menu"
}, [
- (Ie(!0), he(Xt, null, Cn(Ge(Kt).main.items, (w) => (Ie(), he(Xt, {
+ (be(!0), Ce(Nt, null, Cn(xe(Kt).main.items, (w) => (be(), Ce(Nt, {
key: w.id
}, [
- w.type === "separator" ? (Ie(), he("div", c0)) : (Ie(), he("button", {
+ w.type === "separator" ? (be(), Ce("div", u0)) : (be(), Ce("button", {
key: 1,
type: "button",
class: Zn(["mjr-context-menu-item", {
@@ -27425,86 +27440,86 @@ const Qw = {
role: "menuitem",
"aria-disabled": w.disabled ? "true" : "false",
tabindex: w.disabled ? -1 : 0,
- onClick: (X) => A(w, X),
- onMouseenter: (X) => g(w, X),
- onMouseleave: (X) => h(w)
+ onClick: (R) => C(w, R),
+ onMouseenter: (R) => g(w, R),
+ onMouseleave: (R) => Z(w)
}, [
- ne("span", d0, [
- w.iconClass ? (Ie(), he("i", {
+ ie("span", g0, [
+ w.iconClass ? (be(), Ce("i", {
key: 0,
class: Zn(w.iconClass)
- }, null, 2)) : yt("", !0),
- ne("span", null, Ye(w.label), 1)
+ }, null, 2)) : ft("", !0),
+ ie("span", null, Ye(w.label), 1)
]),
- ne("span", u0, [
- w.rightHint ? (Ie(), he("span", m0, Ye(w.rightHint), 1)) : yt("", !0),
- Array.isArray(w.submenu) && w.submenu.length ? (Ie(), he("span", g0, " > ")) : yt("", !0)
+ ie("span", I0, [
+ w.rightHint ? (be(), Ce("span", b0, Ye(w.rightHint), 1)) : ft("", !0),
+ Array.isArray(w.submenu) && w.submenu.length ? (be(), Ce("span", p0, " > ")) : ft("", !0)
])
- ], 42, s0))
+ ], 42, m0))
], 64))), 128))
- ], 4)) : yt("", !0),
- Ge(Kt).submenu.open ? (Ie(), he("div", {
+ ], 4)) : ft("", !0),
+ xe(Kt).submenu.open ? (be(), Ce("div", {
key: 1,
ref_key: "submenuRef",
ref: n,
class: "mjr-viewer-rating-submenu mjr-context-menu",
- style: vt(a.value),
+ style: Lt(a.value),
role: "menu",
"aria-label": "Viewer context submenu",
onMouseenter: f,
onMouseleave: b
}, [
- (Ie(!0), he(Xt, null, Cn(Ge(Kt).submenu.items, (w) => (Ie(), he(Xt, {
+ (be(!0), Ce(Nt, null, Cn(xe(Kt).submenu.items, (w) => (be(), Ce(Nt, {
key: w.id
}, [
- w.type === "separator" ? (Ie(), he("div", I0)) : (Ie(), he("button", {
+ w.type === "separator" ? (be(), Ce("div", y0)) : (be(), Ce("button", {
key: 1,
type: "button",
class: Zn(["mjr-context-menu-item", { "is-disabled": w.disabled }]),
role: "menuitem",
"aria-disabled": w.disabled ? "true" : "false",
tabindex: w.disabled ? -1 : 0,
- onClick: (X) => A(w, X, "submenu")
+ onClick: (R) => C(w, R, "submenu")
}, [
- ne("span", p0, [
- w.iconClass ? (Ie(), he("i", {
+ ie("span", h0, [
+ w.iconClass ? (be(), Ce("i", {
key: 0,
class: Zn(w.iconClass)
- }, null, 2)) : yt("", !0),
- ne("span", null, Ye(w.label), 1)
+ }, null, 2)) : ft("", !0),
+ ie("span", null, Ye(w.label), 1)
]),
- w.rightHint ? (Ie(), he("span", y0, Ye(w.rightHint), 1)) : yt("", !0)
- ], 10, b0))
+ w.rightHint ? (be(), Ce("span", C0, Ye(w.rightHint), 1)) : ft("", !0)
+ ], 10, f0))
], 64))), 128))
- ], 36)) : yt("", !0),
- Ge(Kt).tags.open && Ge(Kt).tags.asset ? (Ie(), he("div", {
+ ], 36)) : ft("", !0),
+ xe(Kt).tags.open && xe(Kt).tags.asset ? (be(), Ce("div", {
key: 2,
ref_key: "tagsPopoverRef",
ref: i,
class: "mjr-viewer-popover",
- style: vt(c.value)
+ style: Lt(c.value)
}, [
- fn(dd, {
- asset: Ge(Kt).tags.asset,
- "model-value": ((x = Ge(Kt).tags.asset) == null ? void 0 : x.tags) || [],
+ fn(md, {
+ asset: xe(Kt).tags.asset,
+ "model-value": ((v = xe(Kt).tags.asset) == null ? void 0 : v.tags) || [],
"onUpdate:modelValue": y,
- onTagsChange: k
+ onTagsChange: X
}, null, 8, ["asset", "model-value"])
- ], 4)) : yt("", !0)
+ ], 4)) : ft("", !0)
]);
};
}
-}, h0 = {
+}, A0 = {
__name: "ViewerContextMenuPortal",
setup(e) {
- const t = Ae(""), n = Je(() => GZ(t.value));
+ const t = Ae(""), n = ze(() => vZ(t.value));
return Dn(() => {
- t.value = MZ();
+ t.value = xZ();
}), _n(() => {
- SZ(t.value), t.value = "";
- }), (i, o) => n.value ? (Ie(), Ei(f0, { key: 0 })) : yt("", !0);
+ jZ(t.value), t.value = "";
+ }), (i, o) => n.value ? (be(), Pi(Z0, { key: 0 })) : ft("", !0);
}
-}, C0 = {
+}, W0 = {
__name: "ViewerPortal",
setup(e) {
let t = null;
@@ -27514,7 +27529,7 @@ const Qw = {
if (!r.length) return;
const l = Math.max(0, Math.min(Number(o == null ? void 0 : o.index) || 0, r.length - 1)), a = String((o == null ? void 0 : o.mode) || "").trim().toLowerCase();
try {
- t || (t = ss()), (c = t.open) == null || c.call(t, r, l), (a === "ab" || a === "sidebyside") && ((s = t.setMode) == null || s.call(t, a));
+ t || (t = us()), (c = t.open) == null || c.call(t, r, l), (a === "ab" || a === "sidebyside") && ((s = t.setMode) == null || s.call(t, a));
} catch (u) {
(d = console.debug) == null || d.call(console, u);
}
@@ -27522,29 +27537,29 @@ const Qw = {
return Dn(() => {
var i, o, r;
try {
- ZI();
+ AI();
} catch (l) {
(i = console.debug) == null || i.call(console, l);
}
try {
- t = ss();
+ t = us();
} catch (l) {
(o = console.debug) == null || o.call(console, l);
}
try {
- window.addEventListener(ft.OPEN_VIEWER, n);
+ window.addEventListener(ht.OPEN_VIEWER, n);
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
}), _n(() => {
var i, o, r, l;
try {
- window.removeEventListener(ft.OPEN_VIEWER, n);
+ window.removeEventListener(ht.OPEN_VIEWER, n);
} catch (a) {
(i = console.debug) == null || i.call(console, a);
}
try {
- AI();
+ WI();
} catch (a) {
(o = console.debug) == null || o.call(console, a);
}
@@ -27554,18 +27569,18 @@ const Qw = {
(l = console.debug) == null || l.call(console, a);
}
t = null;
- }), (i, o) => (Ie(), he(Xt, null, [
- fn(_w),
- fn(Qw),
- fn(h0)
+ }), (i, o) => (be(), Ce(Nt, null, [
+ fn(t0),
+ fn(e0),
+ fn(A0)
], 64));
}
};
-function Z0() {
+function w0() {
let e = null;
Dn(() => {
try {
- e = lw() ?? null;
+ e = sw() ?? null;
} catch (t) {
console.warn("[Majoor] useDragDrop: init failed", t);
}
@@ -27577,19 +27592,19 @@ function Z0() {
(t = console.debug) == null || t.call(console, i);
}
try {
- jb({ force: !0 });
+ vb({ force: !0 });
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
e = null;
});
}
-const A0 = {
+const M0 = {
__name: "GlobalRuntime",
setup(e) {
- return Z0(), (t, n) => (Ie(), Ei(C0));
+ return w0(), (t, n) => (be(), Pi(W0));
}
-}, W0 = !1, sn = {
+}, S0 = !1, dn = {
gridRenderCount: 0,
gridRenderTotalMs: 0,
searchQueryCount: 0,
@@ -27600,23 +27615,23 @@ const A0 = {
thumbnailLoadCount: 0,
thumbnailLoadFailures: 0,
errorCounts: {}
-}, fl = /* @__PURE__ */ new Map();
-function us(e) {
+}, hl = /* @__PURE__ */ new Map();
+function gs(e) {
const t = performance.now();
- fl.set(e, t);
+ hl.set(e, t);
try {
performance.mark(`${e}-start`);
} catch {
}
}
-function Vb(e, t) {
- const n = fl.get(e);
+function kb(e, t) {
+ const n = hl.get(e);
if (!n)
return console.warn(`[Majoor Metrics] Timer not found: ${e}`), 0;
const i = performance.now() - n;
- if (fl.delete(e), t) {
+ if (hl.delete(e), t) {
const o = `${t}Count`, r = `${t}TotalMs`;
- typeof sn[o] == "number" && (sn[o]++, sn[r] += i);
+ typeof dn[o] == "number" && (dn[o]++, dn[r] += i);
}
i > 100 && console.log(`[Majoor Metrics] ${e}: ${i.toFixed(2)}ms`);
try {
@@ -27625,65 +27640,65 @@ function Vb(e, t) {
}
return i;
}
-function w0(e) {
- return fl.has(e);
+function G0(e) {
+ return hl.has(e);
}
-function kb(e) {
+function Xb(e) {
try {
performance.mark(`${e}-start`);
} catch {
}
}
-function M0(e) {
+function x0(e) {
var t;
try {
performance.mark(`${e}-end`), performance.measure(e, `${e}-start`, `${e}-end`);
const i = ((t = performance.getEntriesByName(e)[0]) == null ? void 0 : t.duration) || 0;
- return (W0 || i > 100) && console.log(`[Majoor Metrics] Measure ${e}: ${i.toFixed(2)}ms`), i;
+ return (S0 || i > 100) && console.log(`[Majoor Metrics] Measure ${e}: ${i.toFixed(2)}ms`), i;
} catch {
return null;
}
}
-function S0(e, t = !1) {
- sn.apiCallCount++, sn.apiCallTotalMs += e, t && sn.apiErrorCount++;
+function j0(e, t = !1) {
+ dn.apiCallCount++, dn.apiCallTotalMs += e, t && dn.apiErrorCount++;
}
-function Xb(e) {
- sn.gridRenderCount++, sn.gridRenderTotalMs += e;
+function Nb(e) {
+ dn.gridRenderCount++, dn.gridRenderTotalMs += e;
}
-function G0(e) {
- sn.searchQueryCount++, sn.searchQueryTotalMs += e;
+function v0(e) {
+ dn.searchQueryCount++, dn.searchQueryTotalMs += e;
}
-function x0(e) {
- sn.thumbnailLoadCount++, e || sn.thumbnailLoadFailures++;
+function L0(e) {
+ dn.thumbnailLoadCount++, e || dn.thumbnailLoadFailures++;
}
-function j0(e, t) {
- sn.errorCounts[e] = (sn.errorCounts[e] || 0) + 1;
+function V0(e, t) {
+ dn.errorCounts[e] = (dn.errorCounts[e] || 0) + 1;
}
-function Nb() {
+function Rb() {
return {
- ...sn,
+ ...dn,
averages: {
- gridRenderMs: sn.gridRenderCount > 0 ? sn.gridRenderTotalMs / sn.gridRenderCount : 0,
- searchQueryMs: sn.searchQueryCount > 0 ? sn.searchQueryTotalMs / sn.searchQueryCount : 0,
- apiCallMs: sn.apiCallCount > 0 ? sn.apiCallTotalMs / sn.apiCallCount : 0
+ gridRenderMs: dn.gridRenderCount > 0 ? dn.gridRenderTotalMs / dn.gridRenderCount : 0,
+ searchQueryMs: dn.searchQueryCount > 0 ? dn.searchQueryTotalMs / dn.searchQueryCount : 0,
+ apiCallMs: dn.apiCallCount > 0 ? dn.apiCallTotalMs / dn.apiCallCount : 0
},
rates: {
- apiErrorRate: sn.apiCallCount > 0 ? (sn.apiErrorCount / sn.apiCallCount * 100).toFixed(2) + "%" : "0%",
- thumbnailFailureRate: sn.thumbnailLoadCount > 0 ? (sn.thumbnailLoadFailures / sn.thumbnailLoadCount * 100).toFixed(2) + "%" : "0%"
+ apiErrorRate: dn.apiCallCount > 0 ? (dn.apiErrorCount / dn.apiCallCount * 100).toFixed(2) + "%" : "0%",
+ thumbnailFailureRate: dn.thumbnailLoadCount > 0 ? (dn.thumbnailLoadFailures / dn.thumbnailLoadCount * 100).toFixed(2) + "%" : "0%"
}
};
}
-function v0(e) {
- const t = `${e}Count`, n = `${e}TotalMs`, i = sn[t], o = sn[n];
+function Y0(e) {
+ const t = `${e}Count`, n = `${e}TotalMs`, i = dn[t], o = dn[n];
return i > 0 ? o / i : 0;
}
-function L0() {
- Object.keys(sn).forEach((e) => {
- typeof sn[e] == "number" ? sn[e] = 0 : typeof sn[e] == "object" && (sn[e] = {});
- }), fl.clear(), console.log("[Majoor Metrics] Metrics reset");
+function k0() {
+ Object.keys(dn).forEach((e) => {
+ typeof dn[e] == "number" ? dn[e] = 0 : typeof dn[e] == "object" && (dn[e] = {});
+ }), hl.clear(), console.log("[Majoor Metrics] Metrics reset");
}
-function Y0() {
- const e = Nb();
+function X0() {
+ const e = Rb();
console.group("[Majoor Assets Manager] Performance Metrics"), console.table({
"Grid Renders": e.gridRenderCount,
"Avg Grid Render": `${e.averages.gridRenderMs.toFixed(2)}ms`,
@@ -27696,25 +27711,25 @@ function Y0() {
"Thumbnail Loads": e.thumbnailLoadCount,
"Thumbnail Failures": e.thumbnailLoadFailures,
"Failure Rate": e.rates.thumbnailFailureRate
- }), Object.keys(sn.errorCounts).length > 0 && console.log("Error Counts:", sn.errorCounts), console.groupEnd();
+ }), Object.keys(dn.errorCounts).length > 0 && console.log("Error Counts:", dn.errorCounts), console.groupEnd();
}
typeof window < "u" && (window.MajoorMetrics = {
- startTimer: us,
- endTimer: Vb,
- hasTimer: w0,
- mark: kb,
- measure: M0,
- trackApiCall: S0,
- trackGridRender: Xb,
- trackSearchQuery: G0,
- trackThumbnailLoad: x0,
- trackError: j0,
- getMetricsReport: Nb,
- getAverageDuration: v0,
- resetMetrics: L0,
- exportMetrics: Y0
+ startTimer: gs,
+ endTimer: kb,
+ hasTimer: G0,
+ mark: Xb,
+ measure: x0,
+ trackApiCall: j0,
+ trackGridRender: Nb,
+ trackSearchQuery: v0,
+ trackThumbnailLoad: L0,
+ trackError: V0,
+ getMetricsReport: Rb,
+ getAverageDuration: Y0,
+ resetMetrics: k0,
+ exportMetrics: X0
});
-const Rb = [
+const Fb = [
{
key: "exiftool",
labelKey: "tool.exiftool",
@@ -27726,26 +27741,26 @@ const Rb = [
hintKey: "tool.ffprobe.hint"
}
];
-let wr = !1, am = null, cm = null;
-const Fb = "__MJR_STATUS_DOT_CACHE__", ui = {
+let Gr = !1, sm = null, dm = null;
+const Ob = "__MJR_STATUS_DOT_CACHE__", gi = {
ACTIVE: "active",
COOLDOWN: "cooldown",
IDLE: "idle"
-}, V0 = {
- [ui.ACTIVE]: 2e3,
- [ui.COOLDOWN]: 1e4,
- [ui.IDLE]: 6e4
+}, N0 = {
+ [gi.ACTIVE]: 2e3,
+ [gi.COOLDOWN]: 1e4,
+ [gi.IDLE]: 6e4
};
-function si(e) {
+function ui(e) {
var t;
- wr = !!e;
+ Gr = !!e;
try {
- globalThis._mjrMaintenanceActive = wr;
+ globalThis._mjrMaintenanceActive = Gr;
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
}
-function ms(e) {
+function Is(e) {
const t = Number(e);
if (!Number.isFinite(t) || t <= 0) return "0 B";
const n = ["B", "KB", "MB", "GB", "TB"];
@@ -27755,7 +27770,7 @@ function ms(e) {
const r = i >= 100 ? 0 : i >= 10 ? 1 : 2;
return `${i.toFixed(r)} ${n[o]}`;
}
-function hl(e, t, n = null) {
+function Cl(e, t, n = null) {
if (!e) return;
if (e.replaceChildren(), (Array.isArray(t) ? t.filter((o) => o != null && String(o).trim() !== "") : []).forEach((o, r) => {
r > 0 && e.appendChild(document.createElement("br")), e.appendChild(document.createTextNode(String(o)));
@@ -27765,7 +27780,7 @@ function hl(e, t, n = null) {
o.style.fontSize = "11px", o.style.opacity = "0.6", o.textContent = String(n), e.appendChild(o);
}
}
-function Zi(e, t, n) {
+function Wi(e, t, n) {
if (!e) return;
e.replaceChildren(), e.appendChild(document.createTextNode(String(t || ""))), e.appendChild(document.createElement("br"));
const i = document.createElement("span");
@@ -27818,30 +27833,30 @@ function Wn(e, t = "neutral", n = {}) {
browser: m("status.toast.browser", "Index status: browser scope")
}, I = t === "error" ? "error" : t === "warning" ? "warning" : t === "success" ? "success" : "info";
try {
- Ce(u[t] || u.info, I, 1800, { noHistory: !0 });
+ Ze(u[t] || u.info, I, 1800, { noHistory: !0 });
} catch (p) {
(c = console.debug) == null || c.call(console, p);
}
}
}
}
-function ua(e) {
+function ma(e) {
const t = String(e || "").toLowerCase();
return t === "all" ? m("scope.allFull", "All (Inputs + Outputs)") : t === "input" || t === "inputs" ? m("scope.input", "Inputs") : t === "custom" ? m("scope.custom", "Browser") : m("scope.output", "Outputs");
}
-function k0(e, t = "") {
+function R0(e, t = "") {
if (!e || typeof e != "object")
return t ? m("status.watcher.disabledScoped", "Watcher: disabled ({scope})", {
- scope: ua(t)
+ scope: ma(t)
}) : m("status.watcher.disabled", "Watcher: disabled");
const n = !!e.enabled, i = e.scope ? String(e.scope) : "";
return n ? i ? m("status.watcher.enabledScoped", `Watcher: enabled (${i})`, {
- scope: ua(i)
+ scope: ma(i)
}) : m("status.watcher.enabled", "Watcher: enabled") : i || t ? m("status.watcher.disabledScoped", "Watcher: disabled ({scope})", {
- scope: ua(t && i && i !== t ? t : i || t)
+ scope: ma(t && i && i !== t ? t : i || t)
}) : m("status.watcher.disabled", "Watcher: disabled");
}
-function Pr(e = "status-action") {
+function _r(e = "status-action") {
var t, n;
try {
(t = window == null ? void 0 : window.dispatchEvent) == null || t.call(
@@ -27854,12 +27869,12 @@ function Pr(e = "status-action") {
(n = console.debug) == null || n.call(console, i);
}
}
-function sm(e = "") {
+function um(e = "") {
var t, n;
try {
(t = window == null ? void 0 : window.dispatchEvent) == null || t.call(
window,
- new CustomEvent(ft.OPEN_MESSAGE_HISTORY, {
+ new CustomEvent(ht.OPEN_MESSAGE_HISTORY, {
detail: { reason: String(e || "status-action") }
})
);
@@ -27867,8 +27882,8 @@ function sm(e = "") {
(n = console.debug) == null || n.call(console, i);
}
}
-async function dm(e = "") {
- return await bi(
+async function mm(e = "") {
+ return await yi(
m(
"dialog.vectorsReset.keepQuestion",
`Keep existing AI vectors?
@@ -27879,10 +27894,10 @@ Cancel = continue without vectors`
e || m("dialog.vectorsReset.title", "AI vectors")
);
}
-function X0(e = {}) {
- var G, z;
+function F0(e = {}) {
+ var x, T;
const t = typeof (e == null ? void 0 : e.getScanContext) == "function" ? e.getScanContext : null;
- si(!1);
+ ui(!1);
const n = document.createElement("div");
n.style.cssText = "margin-bottom: 20px; padding: 12px; background: var(--bg-color, #1a1a1a); border-radius: 6px; border: 1px solid var(--border-color, #333); cursor: pointer; transition: all 0.2s;", Wn(n, "info", { toast: !1 });
const i = document.createElement("div");
@@ -27913,40 +27928,40 @@ function X0(e = {}) {
background: rgba(255,255,255,0.04);
color: inherit;
`, I.title = m("status.dbBackupSelectHint", "Select a DB backup to restore");
- let p = !1, M = null;
- const Z = (x) => {
+ let p = !1, S = null;
+ const A = (v) => {
I.replaceChildren();
const w = document.createElement("option");
- w.value = "", w.textContent = String(x || ""), w.disabled = !0, w.selected = !0, I.appendChild(w), p = !1, I.disabled = !0, M && (M.disabled = !0);
+ w.value = "", w.textContent = String(v || ""), w.disabled = !0, w.selected = !0, I.appendChild(w), p = !1, I.disabled = !0, S && (S.disabled = !0);
};
- Z(m("status.dbBackupLoading", "Loading DB backups..."));
- const A = async (x = "") => {
+ A(m("status.dbBackupLoading", "Loading DB backups..."));
+ const C = async (v = "") => {
var w;
try {
- const X = await Nf();
- if (!(X != null && X.ok)) {
- Z(m("status.dbBackupNone", "No DB backup found"));
+ const R = await Of();
+ if (!(R != null && R.ok)) {
+ A(m("status.dbBackupNone", "No DB backup found"));
return;
}
- const V = Array.isArray((w = X == null ? void 0 : X.data) == null ? void 0 : w.items) ? X.data.items : [];
- if (!V.length) {
- Z(m("status.dbBackupNone", "No DB backup found"));
+ const Y = Array.isArray((w = R == null ? void 0 : R.data) == null ? void 0 : w.items) ? R.data.items : [];
+ if (!Y.length) {
+ A(m("status.dbBackupNone", "No DB backup found"));
return;
}
I.replaceChildren();
- let R = !1;
- for (const j of V) {
- const L = String((j == null ? void 0 : j.name) || "");
- if (!L) continue;
- const N = Number((j == null ? void 0 : j.mtime) || 0), q = Number((j == null ? void 0 : j.size_bytes) || 0), O = N > 0 ? new Date(N * 1e3).toLocaleString() : "", B = `${L}${O ? ` (${O}` : ""}${q > 0 ? `, ${ms(q)}` : ""}${O ? ")" : ""}`, J = document.createElement("option");
- J.value = L, J.textContent = B, x && x === L && (J.selected = !0, R = !0), I.appendChild(J);
+ let F = !1;
+ for (const N of Y) {
+ const V = String((N == null ? void 0 : N.name) || "");
+ if (!V) continue;
+ const k = Number((N == null ? void 0 : N.mtime) || 0), K = Number((N == null ? void 0 : N.size_bytes) || 0), z = k > 0 ? new Date(k * 1e3).toLocaleString() : "", B = `${V}${z ? ` (${z}` : ""}${K > 0 ? `, ${Is(K)}` : ""}${z ? ")" : ""}`, J = document.createElement("option");
+ J.value = V, J.textContent = B, v && v === V && (J.selected = !0, F = !0), I.appendChild(J);
}
- p = I.childNodes.length > 0, I.disabled = !p, p && !R && I.childNodes[0] && (I.value = String(I.childNodes[0].value || "")), M && (M.disabled = !p);
+ p = I.childNodes.length > 0, I.disabled = !p, p && !F && I.childNodes[0] && (I.value = String(I.childNodes[0].value || "")), S && (S.disabled = !p);
} catch {
- Z(m("status.dbBackupNone", "No DB backup found"));
+ A(m("status.dbBackupNone", "No DB backup found"));
}
};
- A(), u.appendChild(I);
+ C(), u.appendChild(I);
const g = document.createElement("button");
g.type = "button", g.textContent = m("btn.dbSave", "Save DB"), g.title = m("status.dbSaveHint", "Save a DB snapshot into archive folder"), g.style.cssText = `
padding: 5px 10px;
@@ -27956,46 +27971,46 @@ function X0(e = {}) {
background: transparent;
color: inherit;
cursor: pointer;
- `, g.onclick = async (x) => {
- var V, R, j;
- x.stopPropagation(), si(!0);
- const w = g.textContent, X = !!(M != null && M.disabled);
- g.disabled = !0, M && (M.disabled = !0), g.textContent = m("btn.saving", "Saving..."), o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
+ `, g.onclick = async (v) => {
+ var Y, F, N;
+ v.stopPropagation(), ui(!0);
+ const w = g.textContent, R = !!(S != null && S.disabled);
+ g.disabled = !0, S && (S.disabled = !0), g.textContent = m("btn.saving", "Saving..."), o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
try {
- const L = await Rf();
- if (L != null && L.ok) {
- const N = String(((V = L == null ? void 0 : L.data) == null ? void 0 : V.name) || "").trim(), q = Number(((R = L == null ? void 0 : L.data) == null ? void 0 : R.size_bytes) || 0);
- Ce(m("toast.dbSaveSuccess", "Database backup saved"), "success", 2200, {
+ const V = await zf();
+ if (V != null && V.ok) {
+ const k = String(((Y = V == null ? void 0 : V.data) == null ? void 0 : Y.name) || "").trim(), K = Number(((F = V == null ? void 0 : V.data) == null ? void 0 : F.size_bytes) || 0);
+ Ze(m("toast.dbSaveSuccess", "Database backup saved"), "success", 2200, {
history: {
title: m("btn.dbSave", "Save DB"),
- detail: N ? `${N}${q > 0 ? ` | ${ms(q)}` : ""}` : m("toast.dbSaveSuccess", "Database backup saved"),
+ detail: k ? `${k}${K > 0 ? ` | ${Is(K)}` : ""}` : m("toast.dbSaveSuccess", "Database backup saved"),
operation: "save_db",
- source: N || "archive",
+ source: k || "archive",
forceStore: !0
}
- }), await A(N);
+ }), await C(k);
} else
- Ce(
- (L == null ? void 0 : L.error) || m("toast.dbSaveFailed", "Failed to save DB backup"),
+ Ze(
+ (V == null ? void 0 : V.error) || m("toast.dbSaveFailed", "Failed to save DB backup"),
"error"
);
- } catch (L) {
- Ce(
- (L == null ? void 0 : L.message) || m("toast.dbSaveFailed", "Failed to save DB backup"),
+ } catch (V) {
+ Ze(
+ (V == null ? void 0 : V.message) || m("toast.dbSaveFailed", "Failed to save DB backup"),
"error"
);
} finally {
- si(!1), g.disabled = !1, M && (M.disabled = X || !p), g.textContent = w;
+ ui(!1), g.disabled = !1, S && (S.disabled = R || !p), g.textContent = w;
try {
- const L = t ? t() : null;
- await Xi(o, c, s, L, null, {
+ const V = t ? t() : null;
+ await Ni(o, c, s, V, null, {
force: !0
});
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
}
- }, u.appendChild(g), M = document.createElement("button"), M.type = "button", M.textContent = m("btn.dbRestore", "Restore"), M.title = m("status.dbRestoreHint", "Restore selected DB backup"), M.style.cssText = `
+ }, u.appendChild(g), S = document.createElement("button"), S.type = "button", S.textContent = m("btn.dbRestore", "Restore"), S.title = m("status.dbRestoreHint", "Restore selected DB backup"), S.style.cssText = `
padding: 5px 10px;
font-size: 11px;
border-radius: 6px;
@@ -28003,15 +28018,15 @@ function X0(e = {}) {
background: transparent;
color: inherit;
cursor: pointer;
- `, M.onclick = async (x) => {
- var j, L;
- x.stopPropagation();
+ `, S.onclick = async (v) => {
+ var N, V;
+ v.stopPropagation();
const w = String(I.value || "");
if (!w) {
- Ce(m("toast.dbRestoreSelect", "Select a DB backup first"), "warning", 2e3);
+ Ze(m("toast.dbRestoreSelect", "Select a DB backup first"), "warning", 2e3);
return;
}
- if (!await bi(
+ if (!await yi(
`${m(
"dialog.dbRestore.confirm",
"Restore selected DB backup? Current DB will be replaced."
@@ -28020,7 +28035,7 @@ function X0(e = {}) {
${w}`,
m("btn.dbRestore", "Restore DB")
)) return;
- Ce(m("toast.dbRestoreStarted", "DB restore started"), "info", 1800, {
+ Ze(m("toast.dbRestoreStarted", "DB restore started"), "info", 1800, {
history: {
trackId: "maintenance:restore_db",
title: m("btn.dbRestore", "Restore DB"),
@@ -28030,39 +28045,39 @@ ${w}`,
status: "started",
forceStore: !0
}
- }), si(!0);
- const V = M.textContent, R = !!g.disabled;
- M.disabled = !0, g.disabled = !0, I.disabled = !0, M.textContent = m("btn.restoring", "Restoring..."), o.style.background = "var(--mjr-status-warning, #FFA726)", Wn(n, "warning");
+ }), ui(!0);
+ const Y = S.textContent, F = !!g.disabled;
+ S.disabled = !0, g.disabled = !0, I.disabled = !0, S.textContent = m("btn.restoring", "Restoring..."), o.style.background = "var(--mjr-status-warning, #FFA726)", Wn(n, "warning");
try {
- const N = await Ff({ name: w, useLatest: !1 });
- N != null && N.ok ? await A(String(((j = N == null ? void 0 : N.data) == null ? void 0 : j.name) || w || "")) : Ce(
- (N == null ? void 0 : N.error) || m("toast.dbRestoreFailed", "Failed to restore DB backup"),
+ const k = await Jf({ name: w, useLatest: !1 });
+ k != null && k.ok ? await C(String(((N = k == null ? void 0 : k.data) == null ? void 0 : N.name) || w || "")) : Ze(
+ (k == null ? void 0 : k.error) || m("toast.dbRestoreFailed", "Failed to restore DB backup"),
"error"
);
- } catch (N) {
- Ce(
- (N == null ? void 0 : N.message) || m("toast.dbRestoreFailed", "Failed to restore DB backup"),
+ } catch (k) {
+ Ze(
+ (k == null ? void 0 : k.message) || m("toast.dbRestoreFailed", "Failed to restore DB backup"),
"error"
);
} finally {
- si(!1), M.disabled = !p, g.disabled = R, I.disabled = !p, M.textContent = V, Pr("db-restore");
+ ui(!1), S.disabled = !p, g.disabled = F, I.disabled = !p, S.textContent = Y, _r("db-restore");
try {
- const N = t ? t() : null;
- await Xi(o, c, s, N, null, {
+ const k = t ? t() : null;
+ await Ni(o, c, s, k, null, {
force: !0
});
- } catch (N) {
- (L = console.debug) == null || L.call(console, N);
+ } catch (k) {
+ (V = console.debug) == null || V.call(console, k);
}
}
- }, u.appendChild(M), a.appendChild(u);
- const h = document.createElement("div");
- h.style.cssText = "margin-top: 10px; display: flex; justify-content: flex-end; gap: 8px;";
+ }, u.appendChild(S), a.appendChild(u);
+ const Z = document.createElement("div");
+ Z.style.cssText = "margin-top: 10px; display: flex; justify-content: flex-end; gap: 8px;";
const f = document.createElement("div");
f.style.cssText = "margin-top: 8px; font-size: 11px; opacity: 0.9; line-height: 1.35; white-space: pre-wrap;", f.textContent = "";
- const b = (x, w = "neutral") => {
- const X = String(x || "").trim();
- if (f.textContent = X, !X) {
+ const b = (v, w = "neutral") => {
+ const R = String(v || "").trim();
+ if (f.textContent = R, !R) {
f.style.color = "inherit", f.style.opacity = "0.9";
return;
}
@@ -28079,11 +28094,11 @@ ${w}`,
return;
}
f.style.color = "inherit", f.style.opacity = "0.9";
- }, v = document.createElement("button");
- v.type = "button", v.textContent = m("btn.resetIndex"), v.title = m(
+ }, L = document.createElement("button");
+ L.type = "button", L.textContent = m("btn.resetIndex"), L.title = m(
"status.resetIndexHint",
"Reset index cache (requires allowResetIndex in settings)."
- ), v.style.cssText = `
+ ), L.style.cssText = `
padding: 5px 12px;
font-size: 11px;
border-radius: 6px;
@@ -28092,15 +28107,15 @@ ${w}`,
color: inherit;
cursor: pointer;
transition: border 0.2s, background 0.2s;
- `, v.onmouseenter = () => {
- v.style.borderColor = "rgba(255,255,255,0.6)", v.style.background = "rgba(255,255,255,0.08)";
- }, v.onmouseleave = () => {
- v.style.borderColor = "rgba(255,255,255,0.25)", v.style.background = "transparent";
- }, v.onclick = async (x) => {
- var R;
- x.stopPropagation();
- const w = await dm(m("btn.resetIndex", "Reset index"));
- if (!await bi(
+ `, L.onmouseenter = () => {
+ L.style.borderColor = "rgba(255,255,255,0.6)", L.style.background = "rgba(255,255,255,0.08)";
+ }, L.onmouseleave = () => {
+ L.style.borderColor = "rgba(255,255,255,0.25)", L.style.background = "transparent";
+ }, L.onclick = async (v) => {
+ var F;
+ v.stopPropagation();
+ const w = await mm(m("btn.resetIndex", "Reset index"));
+ if (!await yi(
w ? m(
"dialog.resetIndex.confirmKeepVectors",
`This will reset index data and rescan files while keeping existing AI vectors.
@@ -28112,16 +28127,16 @@ Continue?`
),
m("dialog.resetIndex.title", "Reset index?")
)) return;
- sm("reset-index"), si(!0);
- const V = v.textContent;
- v.disabled = !0, v.textContent = m("btn.resetting"), o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
+ um("reset-index"), ui(!0);
+ const Y = L.textContent;
+ L.disabled = !0, L.textContent = m("btn.resetting"), o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
try {
- const j = t ? t() : {}, L = String((j == null ? void 0 : j.scope) || "output").toLowerCase(), N = (j == null ? void 0 : j.customRootId) || (j == null ? void 0 : j.custom_root_id) || (j == null ? void 0 : j.root_id) || null, q = L === "custom" && !N, J = await qd({
- scope: q ? "all" : L,
- customRootId: q ? null : N,
+ const N = t ? t() : {}, V = String((N == null ? void 0 : N.scope) || "output").toLowerCase(), k = (N == null ? void 0 : N.customRootId) || (N == null ? void 0 : N.custom_root_id) || (N == null ? void 0 : N.root_id) || null, K = V === "custom" && !k, J = await Qd({
+ scope: K ? "all" : V,
+ customRootId: K ? null : k,
reindex: !0,
maintenance_force: !0,
- hard_reset_db: L === "all" && !w,
+ hard_reset_db: V === "all" && !w,
clear_scan_journal: !0,
clear_metadata_cache: !0,
clear_asset_metadata: !0,
@@ -28133,19 +28148,19 @@ Continue?`
} catch {
o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error");
} finally {
- si(!1), v.disabled = !1, v.textContent = V, Pr("index-reset");
+ ui(!1), L.disabled = !1, L.textContent = Y, _r("index-reset");
try {
- const j = t ? t() : null;
- await Xi(o, c, s, j, null, {
+ const N = t ? t() : null;
+ await Ni(o, c, s, N, null, {
force: !0
});
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
}
};
- const C = document.createElement("button");
- C.type = "button", C.textContent = "Backfill vectors", C.title = "Compute missing AI vector embeddings for existing assets.", C.style.cssText = `
+ const h = document.createElement("button");
+ h.type = "button", h.textContent = "Backfill vectors", h.title = "Compute missing AI vector embeddings for existing assets.", h.style.cssText = `
padding: 5px 12px;
font-size: 11px;
border-radius: 6px;
@@ -28154,18 +28169,18 @@ Continue?`
color: inherit;
cursor: pointer;
transition: border 0.2s, background 0.2s;
- `, C.onmouseenter = () => {
- C.style.borderColor = "rgba(0, 188, 212, 0.8)", C.style.background = "rgba(0, 188, 212, 0.12)";
- }, C.onmouseleave = () => {
- C.style.borderColor = "rgba(0, 188, 212, 0.45)", C.style.background = "transparent";
- }, C.onclick = async (x) => {
- var B, J, T, D, Q, E, K, F, Y;
- x.stopPropagation();
- const w = t ? t() : {}, X = String((w == null ? void 0 : w.scope) || "output").toLowerCase(), V = String(
+ `, h.onmouseenter = () => {
+ h.style.borderColor = "rgba(0, 188, 212, 0.8)", h.style.background = "rgba(0, 188, 212, 0.12)";
+ }, h.onmouseleave = () => {
+ h.style.borderColor = "rgba(0, 188, 212, 0.45)", h.style.background = "transparent";
+ }, h.onclick = async (v) => {
+ var B, J, P, H, $, E, oe, M, j;
+ v.stopPropagation();
+ const w = t ? t() : {}, R = String((w == null ? void 0 : w.scope) || "output").toLowerCase(), Y = String(
(w == null ? void 0 : w.customRootId) || (w == null ? void 0 : w.custom_root_id) || (w == null ? void 0 : w.root_id) || ""
).trim();
- if (X === "custom" && !V) {
- Ce(
+ if (R === "custom" && !Y) {
+ Ze(
m(
"status.customBrowserScanDisabledHint",
"Use Outputs, Inputs, or All to run indexing scans"
@@ -28178,71 +28193,71 @@ Continue?`
);
return;
}
- const j = X || "output", L = ua(j);
- sm("vector-backfill");
- const N = {
+ const N = R || "output", V = ma(N);
+ um("vector-backfill");
+ const k = {
history: {
- trackId: `vector-backfill:status:${j}:${V || "default"}`,
+ trackId: `vector-backfill:status:${N}:${Y || "default"}`,
title: "Vector Backfill",
- source: L,
+ source: V,
operation: "vector_backfill",
forceStore: !0
}
};
- si(!0);
- const q = C.textContent, O = v.textContent;
- C.disabled = !0, v.disabled = !0, C.textContent = "Backfilling...", b(`Backfill started (${L})...`, "info"), $r(
- { summary: "Vector Backfill", detail: `Started (${L})` },
+ ui(!0);
+ const K = h.textContent, z = L.textContent;
+ h.disabled = !0, L.disabled = !0, h.textContent = "Backfilling...", b(`Backfill started (${V})...`, "info"), tl(
+ { summary: "Vector Backfill", detail: `Started (${V})` },
"info",
0,
- { history: { ...N.history, status: "started", detail: `Started (${L})` } }
+ { history: { ...k.history, status: "started", detail: `Started (${V})` } }
), o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
try {
- const U = {
- scope: j,
- onProgress: (ee) => {
- const oe = String((ee == null ? void 0 : ee.status) || "").toLowerCase(), ce = (ee == null ? void 0 : ee.progress) || (ee == null ? void 0 : ee.result) || {}, pe = Number((ce == null ? void 0 : ce.candidates) || (ce == null ? void 0 : ce.processed) || 0), H = Number((ce == null ? void 0 : ce.candidate_total) || pe || 0), $ = Number((ce == null ? void 0 : ce.eligible_total) || (ce == null ? void 0 : ce.total_assets) || 0), _ = Number((ce == null ? void 0 : ce.indexed) || 0), le = Number((ce == null ? void 0 : ce.skipped) || 0), se = Number((ce == null ? void 0 : ce.errors) || 0);
- if (oe === "queued") {
- b("Backfill queuedβ¦", "info"), $r(
- { summary: "Vector Backfill", detail: `Queued (${L})` },
+ const O = {
+ scope: N,
+ onProgress: (q) => {
+ const ee = String((q == null ? void 0 : q.status) || "").toLowerCase(), ce = (q == null ? void 0 : q.progress) || (q == null ? void 0 : q.result) || {}, ue = Number((ce == null ? void 0 : ce.candidates) || (ce == null ? void 0 : ce.processed) || 0), U = Number((ce == null ? void 0 : ce.candidate_total) || ue || 0), Q = Number((ce == null ? void 0 : ce.eligible_total) || (ce == null ? void 0 : ce.total_assets) || 0), _ = Number((ce == null ? void 0 : ce.indexed) || 0), le = Number((ce == null ? void 0 : ce.skipped) || 0), de = Number((ce == null ? void 0 : ce.errors) || 0);
+ if (ee === "queued") {
+ b("Backfill queuedβ¦", "info"), tl(
+ { summary: "Vector Backfill", detail: `Queued (${V})` },
"info",
0,
{
history: {
- ...N.history,
+ ...k.history,
status: "queued",
- detail: `Queued (${L})`,
+ detail: `Queued (${V})`,
progress: { current: 0, total: 1, percent: 0, label: "queued" }
}
}
);
return;
}
- if (oe === "running" || pe > 0 || H > 0 || $ > 0 || _ > 0 || le > 0 || se > 0) {
- const de = $ > 0 ? `Indexed ${_}/${$} assets, candidates ${H}, skipped ${le}, errors ${se}` : `Candidates ${pe}, indexed ${_}, skipped ${le}, errors ${se}`;
+ if (ee === "running" || ue > 0 || U > 0 || Q > 0 || _ > 0 || le > 0 || de > 0) {
+ const se = Q > 0 ? `Indexed ${_}/${Q} assets, candidates ${U}, skipped ${le}, errors ${de}` : `Candidates ${ue}, indexed ${_}, skipped ${le}, errors ${de}`;
b(
- $ > 0 ? `Backfill running β indexed ${_}/${$} assets, candidates ${H}, skipped ${le}, errors ${se}` : `Backfill running β candidates ${pe}, indexed ${_}, skipped ${le}, errors ${se}`,
+ Q > 0 ? `Backfill running β indexed ${_}/${Q} assets, candidates ${U}, skipped ${le}, errors ${de}` : `Backfill running β candidates ${ue}, indexed ${_}, skipped ${le}, errors ${de}`,
"info"
- ), $r(
- { summary: "Vector Backfill", detail: de },
+ ), tl(
+ { summary: "Vector Backfill", detail: se },
"info",
0,
{
history: {
- ...N.history,
+ ...k.history,
status: "running",
- detail: de,
+ detail: se,
progress: {
- current: $ > 0 ? _ : _ + le + se,
- total: $ > 0 ? $ : Math.max(pe, _ + le + se),
- percent: $ > 0 ? Math.round(_ / $ * 100) : Math.max(pe, _ + le + se) > 0 ? Math.round(
- (_ + le + se) / Math.max(pe, _ + le + se) * 100
+ current: Q > 0 ? _ : _ + le + de,
+ total: Q > 0 ? Q : Math.max(ue, _ + le + de),
+ percent: Q > 0 ? Math.round(_ / Q * 100) : Math.max(ue, _ + le + de) > 0 ? Math.round(
+ (_ + le + de) / Math.max(ue, _ + le + de) * 100
) : null,
- eligible_total: $ > 0 ? $ : void 0,
- candidate_total: H > 0 ? H : void 0,
+ eligible_total: Q > 0 ? Q : void 0,
+ candidate_total: U > 0 ? U : void 0,
indexed: _,
skipped: le,
- errors: se,
+ errors: de,
label: "running"
}
}
@@ -28251,105 +28266,105 @@ Continue?`
}
}
};
- j === "custom" && V && (U.customRootId = V);
- const P = await Og(64, U);
- if (P != null && P.ok) {
- const ee = String(((B = P == null ? void 0 : P.data) == null ? void 0 : B.status) || "").toLowerCase(), oe = !!((J = P == null ? void 0 : P.data) != null && J.pending) || ["queued", "running", "pending"].includes(ee), ce = ((T = P == null ? void 0 : P.data) == null ? void 0 : T.progress) || {}, pe = Number(((D = P == null ? void 0 : P.data) == null ? void 0 : D.processed) ?? (ce == null ? void 0 : ce.candidates) ?? 0), H = Number(((Q = P == null ? void 0 : P.data) == null ? void 0 : Q.indexed) ?? (ce == null ? void 0 : ce.indexed) ?? 0), $ = Number(((E = P == null ? void 0 : P.data) == null ? void 0 : E.skipped) ?? (ce == null ? void 0 : ce.skipped) ?? 0), _ = Number(((K = P == null ? void 0 : P.data) == null ? void 0 : K.errors) ?? (ce == null ? void 0 : ce.errors) ?? 0);
- if (oe) {
- const le = String(((F = P == null ? void 0 : P.data) == null ? void 0 : F.backfill_id) || "").trim(), se = m(
+ N === "custom" && Y && (O.customRootId = Y);
+ const D = await zg(64, O);
+ if (D != null && D.ok) {
+ const q = String(((B = D == null ? void 0 : D.data) == null ? void 0 : B.status) || "").toLowerCase(), ee = !!((J = D == null ? void 0 : D.data) != null && J.pending) || ["queued", "running", "pending"].includes(q), ce = ((P = D == null ? void 0 : D.data) == null ? void 0 : P.progress) || {}, ue = Number(((H = D == null ? void 0 : D.data) == null ? void 0 : H.processed) ?? (ce == null ? void 0 : ce.candidates) ?? 0), U = Number((($ = D == null ? void 0 : D.data) == null ? void 0 : $.indexed) ?? (ce == null ? void 0 : ce.indexed) ?? 0), Q = Number(((E = D == null ? void 0 : D.data) == null ? void 0 : E.skipped) ?? (ce == null ? void 0 : ce.skipped) ?? 0), _ = Number(((oe = D == null ? void 0 : D.data) == null ? void 0 : oe.errors) ?? (ce == null ? void 0 : ce.errors) ?? 0);
+ if (ee) {
+ const le = String(((M = D == null ? void 0 : D.data) == null ? void 0 : M.backfill_id) || "").trim(), de = m(
"toast.vectorBackfillRunning",
"Vector backfill still running in background{job}.",
{ job: le ? ` (${le.slice(0, 8)})` : "" }
);
- Ce(se, "info", 4200, {
+ Ze(de, "info", 4200, {
history: {
- ...N.history,
+ ...k.history,
status: "running",
detail: `Running in background${le ? ` (${le.slice(0, 8)})` : ""}.`,
progress: {
- current: H + $ + _,
- total: Math.max(pe, H + $ + _),
- percent: Math.max(pe, H + $ + _) > 0 ? Math.round(
- (H + $ + _) / Math.max(pe, H + $ + _) * 100
+ current: U + Q + _,
+ total: Math.max(ue, U + Q + _),
+ percent: Math.max(ue, U + Q + _) > 0 ? Math.round(
+ (U + Q + _) / Math.max(ue, U + Q + _) * 100
) : null,
- indexed: H,
- skipped: $,
+ indexed: U,
+ skipped: Q,
errors: _,
label: "running"
}
}
}), b(
- `Backfill running in background β candidates ${pe}, indexed ${H}, skipped ${$}, errors ${_}`,
+ `Backfill running in background β candidates ${ue}, indexed ${U}, skipped ${Q}, errors ${_}`,
"info"
), o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
} else
- Ce(
+ Ze(
m(
"toast.vectorBackfillComplete",
"Vector backfill complete! Processed: {processed}, Indexed: {indexed}, Skipped: {skipped}",
- { processed: pe, indexed: H, skipped: $ }
+ { processed: ue, indexed: U, skipped: Q }
),
"success",
3e3,
{
history: {
- ...N.history,
+ ...k.history,
status: "succeeded",
- detail: `Processed ${pe}, indexed ${H}, skipped ${$}`,
+ detail: `Processed ${ue}, indexed ${U}, skipped ${Q}`,
progress: {
- current: pe,
- total: pe,
- percent: pe > 0 ? 100 : null,
- indexed: H,
- skipped: $,
+ current: ue,
+ total: ue,
+ percent: ue > 0 ? 100 : null,
+ indexed: U,
+ skipped: Q,
errors: _,
label: "done"
}
}
}
), b(
- `Backfill OK β processed ${pe}, indexed ${H}, skipped ${$}`,
+ `Backfill OK β processed ${ue}, indexed ${U}, skipped ${Q}`,
"success"
), o.style.background = "var(--mjr-status-success, #4CAF50)", Wn(n, "success");
} else {
- const ee = String(
- (P == null ? void 0 : P.error) || m("toast.vectorBackfillFailedGeneric", "Backfill failed")
- ), oe = String((P == null ? void 0 : P.code) || "").trim(), ce = Number((P == null ? void 0 : P.status) || 0) || 0, pe = [oe ? `code=${oe}` : "", ce ? `status=${ce}` : "", ee].filter(Boolean).join(" | ");
- Ce(pe, "error", 4500, {
+ const q = String(
+ (D == null ? void 0 : D.error) || m("toast.vectorBackfillFailedGeneric", "Backfill failed")
+ ), ee = String((D == null ? void 0 : D.code) || "").trim(), ce = Number((D == null ? void 0 : D.status) || 0) || 0, ue = [ee ? `code=${ee}` : "", ce ? `status=${ce}` : "", q].filter(Boolean).join(" | ");
+ Ze(ue, "error", 4500, {
history: {
- ...N.history,
+ ...k.history,
status: "failed",
- detail: pe,
+ detail: ue,
progress: { label: "failed", errors: 1 }
}
- }), b(`Backfill ERROR β ${pe}
-See console for full payload.`, "error"), console.error("[Majoor] Vector backfill failed response", P), o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error");
+ }), b(`Backfill ERROR β ${ue}
+See console for full payload.`, "error"), console.error("[Majoor] Vector backfill failed response", D), o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error");
}
- } catch (U) {
- const P = String((U == null ? void 0 : U.message) || U || "Backfill failed");
- Ce(P, "error", 4500, {
+ } catch (O) {
+ const D = String((O == null ? void 0 : O.message) || O || "Backfill failed");
+ Ze(D, "error", 4500, {
history: {
- ...N.history,
+ ...k.history,
status: "failed",
- detail: P,
+ detail: D,
progress: { label: "failed", errors: 1 }
}
- }), b(`Backfill EXCEPTION β ${P}
-See console for stack trace.`, "error"), console.error("[Majoor] Vector backfill exception", U), o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error");
+ }), b(`Backfill EXCEPTION β ${D}
+See console for stack trace.`, "error"), console.error("[Majoor] Vector backfill exception", O), o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error");
} finally {
- si(!1), C.disabled = !1, v.disabled = !1, C.textContent = q, v.textContent = O, Pr("vector-backfill");
+ ui(!1), h.disabled = !1, L.disabled = !1, h.textContent = K, L.textContent = z, _r("vector-backfill");
try {
- const U = t ? t() : null;
- await Xi(o, c, s, U, null, {
+ const O = t ? t() : null;
+ await Ni(o, c, s, O, null, {
force: !0
});
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
}
- }, h.appendChild(C), h.appendChild(v), a.appendChild(f);
- const S = document.createElement("button");
- S.type = "button", S.textContent = m("btn.deleteDb"), S.title = m("tooltip.deleteDb", "Force-delete database and rebuild from scratch"), S.style.cssText = `
+ }, Z.appendChild(h), Z.appendChild(L), a.appendChild(f);
+ const G = document.createElement("button");
+ G.type = "button", G.textContent = m("btn.deleteDb"), G.title = m("tooltip.deleteDb", "Force-delete database and rebuild from scratch"), G.style.cssText = `
padding: 5px 12px;
font-size: 11px;
border-radius: 6px;
@@ -28358,15 +28373,15 @@ See console for stack trace.`, "error"), console.error("[Majoor] Vector backfill
color: inherit;
cursor: pointer;
transition: border 0.2s, background 0.2s;
- `, S.onmouseenter = () => {
- S.style.borderColor = "rgba(255,80,80,0.8)", S.style.background = "rgba(255,80,80,0.12)";
- }, S.onmouseleave = () => {
- S.style.borderColor = "rgba(255,80,80,0.4)", S.style.background = "transparent";
- }, S.onclick = async (x) => {
- var R;
- x.stopPropagation();
- const w = await dm(m("btn.deleteDb", "Delete DB"));
- if (!await bi(
+ `, G.onmouseenter = () => {
+ G.style.borderColor = "rgba(255,80,80,0.8)", G.style.background = "rgba(255,80,80,0.12)";
+ }, G.onmouseleave = () => {
+ G.style.borderColor = "rgba(255,80,80,0.4)", G.style.background = "transparent";
+ }, G.onclick = async (v) => {
+ var F;
+ v.stopPropagation();
+ const w = await mm(m("btn.deleteDb", "Delete DB"));
+ if (!await yi(
w ? m(
"dialog.dbDelete.keepVectorsConfirm",
`This will reset index data and keep existing AI vectors. Database files will not be force-deleted.
@@ -28380,11 +28395,11 @@ Continue?`
),
m("btn.deleteDb", "Delete DB")
)) return;
- si(!0);
- const V = S.textContent;
- S.disabled = !0, S.textContent = w ? m("btn.resetting", "Resetting...") : m("btn.deletingDb"), v.disabled = !0, o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
+ ui(!0);
+ const Y = G.textContent;
+ G.disabled = !0, G.textContent = w ? m("btn.resetting", "Resetting...") : m("btn.deletingDb"), L.disabled = !0, o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info");
try {
- const j = w ? await qd({
+ const N = w ? await Qd({
scope: "all",
reindex: !0,
maintenance_force: !0,
@@ -28395,134 +28410,134 @@ Continue?`
clear_assets: !1,
preserve_vectors: !0,
rebuild_fts: !0
- }) : await Xf();
- j != null && j.ok ? (globalThis._mjrCorruptToastShown = !1, o.style.background = "var(--mjr-status-success, #4CAF50)", Wn(n, "success")) : (o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error"));
+ }) : await Ff();
+ N != null && N.ok ? (globalThis._mjrCorruptToastShown = !1, o.style.background = "var(--mjr-status-success, #4CAF50)", Wn(n, "success")) : (o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error"));
} catch {
o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error");
} finally {
- si(!1), S.disabled = !1, S.textContent = V, v.disabled = !1, Pr(
+ ui(!1), G.disabled = !1, G.textContent = Y, L.disabled = !1, _r(
w ? "index-reset-preserve-vectors" : "db-force-delete"
);
try {
- const j = t ? t() : null;
- await Xi(o, c, s, j, null, {
+ const N = t ? t() : null;
+ await Ni(o, c, s, N, null, {
force: !0
});
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
}
- }, h.appendChild(S), a.appendChild(h), n.appendChild(i), n.appendChild(a);
+ }, Z.appendChild(G), a.appendChild(Z), n.appendChild(i), n.appendChild(a);
const W = n.querySelector("#mjr-status-title");
- W && W.addEventListener("click", (x) => {
- x.stopPropagation();
+ W && W.addEventListener("click", (v) => {
+ v.stopPropagation();
const w = n.querySelector("#mjr-status-body");
if (!w) return;
- const X = w.style.display === "none";
- mm(n, !X);
- }), mm(n, !0), n.onmouseenter = () => {
+ const R = w.style.display === "none";
+ Im(n, !R);
+ }), Im(n, !0), n.onmouseenter = () => {
n.style.transform = "translateY(-1px)";
}, n.onmouseleave = () => {
- var x;
- n.style.transform = "", Wn(n, ((x = n.dataset) == null ? void 0 : x.mjrStatusTone) || "neutral", {
+ var v;
+ n.style.transform = "", Wn(n, ((v = n.dataset) == null ? void 0 : v.mjrStatusTone) || "neutral", {
toast: !1
});
};
- const y = async (x) => {
- var w, X;
+ const y = async (v) => {
+ var w, R;
try {
- const V = (x == null ? void 0 : x.detail) || {}, R = String((V == null ? void 0 : V.step) || "");
- if (!R) return;
- const j = R === "started" || R === "stopping_workers" || R === "resetting_db" || R === "delete_db" || R === "recreate_db" || R === "replacing_files" || R === "restarting_scan";
- if (j ? si(!0) : (R === "failed" || R === "done") && si(!1), !(n != null && n.isConnected) || !(o != null && o.isConnected) || !(c != null && c.isConnected))
+ const Y = (v == null ? void 0 : v.detail) || {}, F = String((Y == null ? void 0 : Y.step) || "");
+ if (!F) return;
+ const N = F === "started" || F === "stopping_workers" || F === "resetting_db" || F === "delete_db" || F === "recreate_db" || F === "replacing_files" || F === "restarting_scan";
+ if (N ? ui(!0) : (F === "failed" || F === "done") && ui(!1), !(n != null && n.isConnected) || !(o != null && o.isConnected) || !(c != null && c.isConnected))
return;
- if (j) {
- o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info", { toast: !1 }), Zi(
+ if (N) {
+ o.style.background = "var(--mjr-status-info, #64B5F6)", Wn(n, "info", { toast: !1 }), Wi(
c,
m("status.pending", "Pending..."),
m("status.dbRestoreInProgress", "Database restore in progress")
);
return;
}
- if (R === "failed") {
- o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error", { toast: !1 }), hl(c, [
+ if (F === "failed") {
+ o.style.background = "var(--mjr-status-error, #f44336)", Wn(n, "error", { toast: !1 }), Cl(c, [
m("status.error", "Error"),
String(
- (V == null ? void 0 : V.message) || m("toast.dbRestoreFailed", "Failed to restore DB backup")
+ (Y == null ? void 0 : Y.message) || m("toast.dbRestoreFailed", "Failed to restore DB backup")
)
]);
return;
}
- if (R === "done") {
+ if (F === "done") {
o.style.background = "var(--mjr-status-success, #4CAF50)", Wn(n, "success", { toast: !1 });
- const L = String((V == null ? void 0 : V.operation) || ""), N = L === "delete_db" ? m(
+ const V = String((Y == null ? void 0 : Y.operation) || ""), k = V === "delete_db" ? m(
"toast.dbDeleteSuccess",
"Database deleted and rebuilt. Files are being reindexed."
- ) : L === "reset_index" ? m(
+ ) : V === "reset_index" ? m(
"toast.resetStarted",
"Index reset started. Files will be reindexed in the background."
) : m("toast.dbRestoreSuccess", "Database backup restored");
- Zi(c, m("status.ready", "Ready"), N);
+ Wi(c, m("status.ready", "Ready"), k);
try {
- const q = t ? t() : null;
+ const K = t ? t() : null;
setTimeout(() => {
- Xi(o, c, s, q, null, {
+ Ni(o, c, s, K, null, {
force: !0
});
}, 600);
- } catch (q) {
- (w = console.debug) == null || w.call(console, q);
+ } catch (K) {
+ (w = console.debug) == null || w.call(console, K);
}
}
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
};
try {
- const x = am;
- typeof x == "function" && window.removeEventListener("mjr-db-restore-status", x), am = y, n._mjrDbRestoreStatusHandler = y, window.addEventListener("mjr-db-restore-status", y);
- } catch (x) {
- (G = console.debug) == null || G.call(console, x);
+ const v = sm;
+ typeof v == "function" && window.removeEventListener("mjr-db-restore-status", v), sm = y, n._mjrDbRestoreStatusHandler = y, window.addEventListener("mjr-db-restore-status", y);
+ } catch (v) {
+ (x = console.debug) == null || x.call(console, v);
}
- const k = (x) => {
- var w, X;
+ const X = (v) => {
+ var w, R;
try {
- const V = (x == null ? void 0 : x.detail) || {}, R = Number(V == null ? void 0 : V.queue_remaining), j = Number(V == null ? void 0 : V.progress_value), L = Number(V == null ? void 0 : V.progress_max), N = Array.isArray(V == null ? void 0 : V.cached_nodes) ? V.cached_nodes.length : 0, q = String((V == null ? void 0 : V.active_prompt_id) || "").trim(), O = Number.isFinite(j) && Number.isFinite(L) && L > 0 ? m("status.runtimeProgress", "Runtime progress: {value}/{max}", {
- value: j,
- max: L
- }) : "", B = Number.isFinite(R) ? m("status.queueRemaining", "Queue remaining: {count}", {
- count: Math.max(0, R)
- }) : "", J = N > 0 ? m("status.executionCached", "Cached nodes reused: {count}", {
- count: N
- }) : "", T = q ? m("status.activePrompt", "Active prompt: {id}", { id: q }) : "", D = [O, B, J, T].filter(Boolean);
- if (!D.length) return;
- const Q = (w = c == null ? void 0 : c.querySelector) == null ? void 0 : w.call(c, "span");
- Q ? Q.textContent = D.join(" | ") : Zi(c, m("status.ready", "Ready"), D.join(" | "));
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ const Y = (v == null ? void 0 : v.detail) || {}, F = Number(Y == null ? void 0 : Y.queue_remaining), N = Number(Y == null ? void 0 : Y.progress_value), V = Number(Y == null ? void 0 : Y.progress_max), k = Array.isArray(Y == null ? void 0 : Y.cached_nodes) ? Y.cached_nodes.length : 0, K = String((Y == null ? void 0 : Y.active_prompt_id) || "").trim(), z = Number.isFinite(N) && Number.isFinite(V) && V > 0 ? m("status.runtimeProgress", "Runtime progress: {value}/{max}", {
+ value: N,
+ max: V
+ }) : "", B = Number.isFinite(F) ? m("status.queueRemaining", "Queue remaining: {count}", {
+ count: Math.max(0, F)
+ }) : "", J = k > 0 ? m("status.executionCached", "Cached nodes reused: {count}", {
+ count: k
+ }) : "", P = K ? m("status.activePrompt", "Active prompt: {id}", { id: K }) : "", H = [z, B, J, P].filter(Boolean);
+ if (!H.length) return;
+ const $ = (w = c == null ? void 0 : c.querySelector) == null ? void 0 : w.call(c, "span");
+ $ ? $.textContent = H.join(" | ") : Wi(c, m("status.ready", "Ready"), H.join(" | "));
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
};
try {
- const x = cm;
- typeof x == "function" && window.removeEventListener(ft.RUNTIME_STATUS, x), cm = k, window.addEventListener(ft.RUNTIME_STATUS, k);
- } catch (x) {
- (z = console.debug) == null || z.call(console, x);
+ const v = dm;
+ typeof v == "function" && window.removeEventListener(ht.RUNTIME_STATUS, v), dm = X, window.addEventListener(ht.RUNTIME_STATUS, X);
+ } catch (v) {
+ (T = console.debug) == null || T.call(console, v);
}
return n;
}
-async function Ob(e, t, n = null, i = null) {
- var g, h, f, b, v, C;
- if (wr) {
- Ce(
+async function zb(e, t, n = null, i = null) {
+ var g, Z, f, b, L, h;
+ if (Gr) {
+ Ze(
m("status.maintenanceBusy", "Database maintenance in progress. Please wait."),
"warning",
2200
);
return;
}
- const o = ((h = (g = t == null ? void 0 : t.closest) == null ? void 0 : g.call(t, "#mjr-status-body")) == null ? void 0 : h.parentElement) || ((f = t == null ? void 0 : t.closest) == null ? void 0 : f.call(t, "div")), r = String((i == null ? void 0 : i.scope) || "output").toLowerCase(), l = (i == null ? void 0 : i.customRootId) || (i == null ? void 0 : i.custom_root_id) || (i == null ? void 0 : i.root_id) || null;
+ const o = ((Z = (g = t == null ? void 0 : t.closest) == null ? void 0 : g.call(t, "#mjr-status-body")) == null ? void 0 : Z.parentElement) || ((f = t == null ? void 0 : t.closest) == null ? void 0 : f.call(t, "div")), r = String((i == null ? void 0 : i.scope) || "output").toLowerCase(), l = (i == null ? void 0 : i.customRootId) || (i == null ? void 0 : i.custom_root_id) || (i == null ? void 0 : i.root_id) || null;
if (r === "custom" && !l) {
- e.style.background = "var(--mjr-status-info, #64B5F6)", Wn(o, "info"), Zi(
+ e.style.background = "var(--mjr-status-info, #64B5F6)", Wn(o, "info"), Wi(
t,
m("status.customBrowserScanDisabled", "Custom browser mode: scan is disabled"),
m(
@@ -28533,11 +28548,11 @@ async function Ob(e, t, n = null, i = null) {
return;
}
try {
- const S = Date.now(), W = globalThis == null ? void 0 : globalThis._mjrScanInFlight;
+ const G = Date.now(), W = globalThis == null ? void 0 : globalThis._mjrScanInFlight;
if (W && typeof W == "object") {
- const y = S - Number(W.at || 0);
+ const y = G - Number(W.at || 0);
if (y >= 0 && y < 10 * 6e4) {
- Zi(
+ Wi(
t,
m("status.scanInProgress", "Scan already running..."),
m("status.scanInProgressHint", "Please wait for the current scan to finish")
@@ -28546,45 +28561,45 @@ async function Ob(e, t, n = null, i = null) {
}
}
globalThis._mjrScanInFlight = {
- at: S,
+ at: G,
scope: r,
root_id: l || null
};
- } catch (S) {
- (b = console.debug) == null || b.call(console, S);
+ } catch (G) {
+ (b = console.debug) == null || b.call(console, G);
}
const c = () => {
- var S;
+ var G;
try {
globalThis != null && globalThis._mjrScanInFlight && (globalThis._mjrScanInFlight = null);
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
}, s = !0;
let d = null;
try {
- const S = await Rt(lt.ROOTS);
- S.ok && (d = S.data);
- } catch (S) {
- (v = console.debug) == null || v.call(console, S);
+ const G = await Ft(ct.ROOTS);
+ G.ok && (d = G.data);
+ } catch (G) {
+ (L = console.debug) == null || L.call(console, G);
}
if (!d) {
- const S = await Rt(lt.CONFIG);
- if (!S.ok) {
+ const G = await Ft(ct.CONFIG);
+ if (!G.ok) {
e.style.background = "var(--mjr-status-error, #f44336)", Wn(o, "error"), t.textContent = m("status.errorGetConfig"), c();
return;
}
- d = { output_directory: S.data.output_directory };
+ d = { output_directory: G.data.output_directory };
}
const u = r === "all" ? m("scope.all", "Inputs + Outputs") : r === "input" ? m("scope.input", "Inputs") : r === "custom" ? m("scope.custom", "Custom") : m("scope.output", "Outputs");
let I = "";
if (r === "input")
I = d != null && d.input_directory ? ` (${d.input_directory})` : "";
else if (r === "custom") {
- const S = Array.isArray(d == null ? void 0 : d.custom_roots) ? d.custom_roots : [], W = l ? S.find((y) => (y == null ? void 0 : y.id) === l) : null;
+ const G = Array.isArray(d == null ? void 0 : d.custom_roots) ? d.custom_roots : [], W = l ? G.find((y) => (y == null ? void 0 : y.id) === l) : null;
I = W != null && W.path ? ` (${W.path})` : "";
} else r === "output" && (I = d != null && d.output_directory ? ` (${d.output_directory})` : "");
- e.style.background = "var(--mjr-status-info, #64B5F6)", Wn(o, "info"), Zi(
+ e.style.background = "var(--mjr-status-info, #64B5F6)", Wn(o, "info"), Wi(
t,
m("status.scanningScope", `Scanning ${u}${I}...`, {
scope: u,
@@ -28592,11 +28607,11 @@ async function Ob(e, t, n = null, i = null) {
}),
m("status.scanningHint", "This may take a while")
);
- const p = Xn(), M = !!(((C = p == null ? void 0 : p.scan) == null ? void 0 : C.fastMode) ?? !0), Z = {
+ const p = Xn(), S = !!(((h = p == null ? void 0 : p.scan) == null ? void 0 : h.fastMode) ?? !0), A = {
scope: r,
recursive: !0,
incremental: s,
- fast: M,
+ fast: S,
background_metadata: !0
};
if (r === "custom") {
@@ -28604,39 +28619,39 @@ async function Ob(e, t, n = null, i = null) {
e.style.background = "var(--mjr-status-error, #f44336)", Wn(o, "error"), t.textContent = m("status.selectCustomFolder"), c();
return;
}
- Z.custom_root_id = l;
+ A.custom_root_id = l;
}
- let A;
+ let C;
try {
- A = await Et(lt.SCAN, Z);
+ C = await Et(ct.SCAN, A);
} finally {
c();
}
- if (A != null && A.ok) {
- const S = A.data;
- e.style.background = "var(--mjr-status-success, #4CAF50)", Wn(o, "success"), Zi(
+ if (C != null && C.ok) {
+ const G = C.data;
+ e.style.background = "var(--mjr-status-success, #4CAF50)", Wn(o, "success"), Wi(
t,
m("toast.scanComplete"),
m(
"status.scanStats",
- `Added: ${S.added || 0} - Updated: ${S.updated || 0} - Skipped: ${S.skipped || 0}`,
+ `Added: ${G.added || 0} - Updated: ${G.updated || 0} - Skipped: ${G.skipped || 0}`,
{
- added: S.added || 0,
- updated: S.updated || 0,
- skipped: S.skipped || 0
+ added: G.added || 0,
+ updated: G.updated || 0,
+ skipped: G.skipped || 0
}
)
- ), Pr("scan-complete"), setTimeout(() => {
- Xi(e, t, n);
+ ), _r("scan-complete"), setTimeout(() => {
+ Ni(e, t, n);
}, 2e3);
} else
- e.style.background = "var(--mjr-status-error, #f44336)", Wn(o, "error"), hl(t, [
- m("toast.scanFailed") + `: ${(A == null ? void 0 : A.error) || "Unknown error"}`
+ e.style.background = "var(--mjr-status-error, #f44336)", Wn(o, "error"), Cl(t, [
+ m("toast.scanFailed") + `: ${(C == null ? void 0 : C.error) || "Unknown error"}`
]), setTimeout(() => {
- Xi(e, t, n);
+ Ni(e, t, n);
}, 3e3);
}
-function N0(e, t, n) {
+function O0(e, t, n) {
const i = document.createElement("span");
return i.style.cssText = `
display: inline-flex;
@@ -28648,19 +28663,19 @@ function N0(e, t, n) {
border: 1px solid rgba(255, 255, 255, 0.1);
`, i.textContent = `${t ? "β
" : "β"} ${e}`, i.title = t ? m("status.toolAvailable", `${e} available`, { tool: e }) : n || m("status.toolUnavailable", `${e} unavailable`, { tool: e }), i.style.opacity = t ? "1" : "0.75", i;
}
-function gs(e, t = {}, n = {}) {
+function bs(e, t = {}, n = {}) {
if (!e) return;
if (e.replaceChildren(), !t || Object.keys(t).length === 0) {
e.textContent = m("status.discoveringTools");
return;
}
const i = document.createElement("div");
- i.style.display = "flex", i.style.flexWrap = "wrap", i.style.gap = "10px", i.style.alignItems = "flex-start", Rb.forEach(({ key: o, labelKey: r, hintKey: l }) => {
+ i.style.display = "flex", i.style.flexWrap = "wrap", i.style.gap = "10px", i.style.alignItems = "flex-start", Fb.forEach(({ key: o, labelKey: r, hintKey: l }) => {
const a = !!t[o], c = n[o], s = m(r, o), d = m(l, "");
- i.appendChild(R0({ label: s, hint: d }, a, c));
+ i.appendChild(z0({ label: s, hint: d }, a, c));
}), e.appendChild(i);
}
-function um(e, t = null, n = {}) {
+function gm(e, t = null, n = {}) {
if (!e) return;
const i = e.parentElement;
if (!i) return;
@@ -28671,14 +28686,14 @@ function um(e, t = null, n = {}) {
o.textContent = m("status.toolStatusChecking", "Tool status: checking...");
return;
}
- const l = Rb.map(({ key: a, labelKey: c }) => {
- var Z;
- const s = m(c, a), d = t && a in t ? t[a] : void 0, u = a in n ? n[a] : void 0, I = d !== void 0 ? d : u, p = I == null ? m("status.unknown", "unknown") : I ? m("status.available", "available") : m("status.missing", "missing"), M = (Z = t == null ? void 0 : t.versions) == null ? void 0 : Z[a];
- return M ? `${s}: ${p} - ${M}` : `${s}: ${p}`;
+ const l = Fb.map(({ key: a, labelKey: c }) => {
+ var A;
+ const s = m(c, a), d = t && a in t ? t[a] : void 0, u = a in n ? n[a] : void 0, I = d !== void 0 ? d : u, p = I == null ? m("status.unknown", "unknown") : I ? m("status.available", "available") : m("status.missing", "missing"), S = (A = t == null ? void 0 : t.versions) == null ? void 0 : A[a];
+ return S ? `${s}: ${p} - ${S}` : `${s}: ${p}`;
});
o.textContent = l.join(" | ");
}
-function R0({ label: e, hint: t }, n, i) {
+function z0({ label: e, hint: t }, n, i) {
const o = document.createElement("div");
o.style.cssText = `
display: flex;
@@ -28690,116 +28705,116 @@ function R0({ label: e, hint: t }, n, i) {
border: 1px solid rgba(255, 255, 255, 0.08);
min-width: 170px;
`;
- const r = N0(e, n, t);
+ const r = O0(e, n, t);
r.style.fontWeight = "500", o.appendChild(r);
const l = document.createElement("span");
return l.style.fontSize = "10px", l.style.opacity = "0.7", l.style.wordBreak = "break-all", l.textContent = m("status.path", "Path") + `: ${i || m("status.pathAuto", "auto / not configured")}`, o.appendChild(l), o;
}
-function mm(e, t) {
+function Im(e, t) {
const n = e.querySelector("#mjr-status-body"), i = e.querySelector("#mjr-status-title-indicator");
!n || !i || (t ? (n.style.display = "none", i.textContent = "βΈ") : (n.style.display = "", i.textContent = "βΎ"));
}
-function F0(e, t) {
+function J0(e, t) {
var l;
const n = !!((l = e == null ? void 0 : e.database) != null && l.available), i = (t == null ? void 0 : t.diagnostics) || {}, o = !!(i != null && i.malformed), r = !!(i != null && i.locked);
return !n || o ? m("status.dbHealthError", "DB health: error") : r ? m("status.dbHealthLocked", "DB health: locked") : m("status.dbHealthOk", "DB health: ok");
}
-function O0(e, t) {
+function T0(e, t) {
const n = Number((e == null ? void 0 : e.total_assets) || 0), i = e == null ? void 0 : e.last_index_end, o = e == null ? void 0 : e.last_scan_end, r = t === "all" ? m("scope.all", "Inputs + Outputs") : t === "input" ? m("scope.input", "Inputs") : t === "custom" ? m("scope.custom", "Custom") : m("scope.output", "Outputs");
return !Number.isFinite(n) || n <= 0 ? `${m("status.indexHealthEmpty", "Index health: empty")} (${r})` : !i && !o ? `${m("status.indexHealthPartial", "Index health: partial")} (${r})` : `${m("status.indexHealthOk", "Index health: ok")} (${r})`;
}
-async function Xi(e, t, n = null, i = null, o = null, r = {}) {
- var f, b, v, C, S, W, y, k, G, z, x, w, X, V;
- const l = ((b = (f = t == null ? void 0 : t.closest) == null ? void 0 : f.call(t, "#mjr-status-body")) == null ? void 0 : b.parentElement) || ((v = t == null ? void 0 : t.closest) == null ? void 0 : v.call(t, "div")), a = (r == null ? void 0 : r.signal) || null, c = !!(r != null && r.force);
+async function Ni(e, t, n = null, i = null, o = null, r = {}) {
+ var f, b, L, h, G, W, y, X, x, T, v, w, R, Y;
+ const l = ((b = (f = t == null ? void 0 : t.closest) == null ? void 0 : f.call(t, "#mjr-status-body")) == null ? void 0 : b.parentElement) || ((L = t == null ? void 0 : t.closest) == null ? void 0 : L.call(t, "div")), a = (r == null ? void 0 : r.signal) || null, c = !!(r != null && r.force);
try {
if (a != null && a.aborted) return null;
- } catch (R) {
- (C = console.debug) == null || C.call(console, R);
+ } catch (F) {
+ (h = console.debug) == null || h.call(console, F);
}
try {
if (!(e != null && e.isConnected) || !(t != null && t.isConnected)) return null;
- } catch (R) {
- (S = console.debug) == null || S.call(console, R);
+ } catch (F) {
+ (G = console.debug) == null || G.call(console, F);
}
try {
- if (!c && wr) return null;
- } catch (R) {
- (W = console.debug) == null || W.call(console, R);
+ if (!c && Gr) return null;
+ } catch (F) {
+ (W = console.debug) == null || W.call(console, F);
}
o && typeof o == "object" && (o.lastCode = null, o.lastStatus = null);
- const s = String((i == null ? void 0 : i.scope) || "output").toLowerCase(), d = (i == null ? void 0 : i.customRootId) || (i == null ? void 0 : i.custom_root_id) || (i == null ? void 0 : i.root_id) || null, u = s === "custom" && !d, I = u ? `${lt.HEALTH_COUNTERS}?scope=all` : s === "custom" ? `${lt.HEALTH_COUNTERS}?scope=custom&custom_root_id=${encodeURIComponent(String(d || ""))}` : `${lt.HEALTH_COUNTERS}?scope=${encodeURIComponent(s || "output")}`, p = !!(r != null && r.lightweight), M = c || !p || !(o && typeof o == "object" && o._auxCached);
- let Z, A, g, h = null;
- if (M) {
- const [R, j, L] = await Promise.all([
- Rt(I, a ? { signal: a } : void 0),
- Rt(lt.HEALTH, a ? { signal: a } : void 0),
- Rt(lt.HEALTH_DB, a ? { signal: a } : void 0)
+ const s = String((i == null ? void 0 : i.scope) || "output").toLowerCase(), d = (i == null ? void 0 : i.customRootId) || (i == null ? void 0 : i.custom_root_id) || (i == null ? void 0 : i.root_id) || null, u = s === "custom" && !d, I = u ? `${ct.HEALTH_COUNTERS}?scope=all` : s === "custom" ? `${ct.HEALTH_COUNTERS}?scope=custom&custom_root_id=${encodeURIComponent(String(d || ""))}` : `${ct.HEALTH_COUNTERS}?scope=${encodeURIComponent(s || "output")}`, p = !!(r != null && r.lightweight), S = c || !p || !(o && typeof o == "object" && o._auxCached);
+ let A, C, g, Z = null;
+ if (S) {
+ const [F, N, V] = await Promise.all([
+ Ft(I, a ? { signal: a } : void 0),
+ Ft(ct.HEALTH, a ? { signal: a } : void 0),
+ Ft(ct.HEALTH_DB, a ? { signal: a } : void 0)
]);
- Z = R, A = j, g = L;
+ A = F, C = N, g = V;
try {
- const N = await Vf(a ? { signal: a } : void 0);
- N != null && N.ok && (h = N.data);
- } catch (N) {
- (y = console.debug) == null || y.call(console, N);
+ const k = await Nf(a ? { signal: a } : void 0);
+ k != null && k.ok && (Z = k.data);
+ } catch (k) {
+ (y = console.debug) == null || y.call(console, k);
}
- o && typeof o == "object" && (o._auxCached = !0, o._healthCache = A, o._dbDiagCache = g, o._toolsCache = h);
+ o && typeof o == "object" && (o._auxCached = !0, o._healthCache = C, o._dbDiagCache = g, o._toolsCache = Z);
} else
- Z = await Rt(I, a ? { signal: a } : void 0), A = (o == null ? void 0 : o._healthCache) || null, g = (o == null ? void 0 : o._dbDiagCache) || null, h = (o == null ? void 0 : o._toolsCache) || null;
+ A = await Ft(I, a ? { signal: a } : void 0), C = (o == null ? void 0 : o._healthCache) || null, g = (o == null ? void 0 : o._dbDiagCache) || null, Z = (o == null ? void 0 : o._toolsCache) || null;
try {
if (a != null && a.aborted) return null;
- } catch (R) {
- (k = console.debug) == null || k.call(console, R);
+ } catch (F) {
+ (X = console.debug) == null || X.call(console, F);
}
try {
if (!(e != null && e.isConnected) || !(t != null && t.isConnected)) return null;
- } catch (R) {
- (G = console.debug) == null || G.call(console, R);
+ } catch (F) {
+ (x = console.debug) == null || x.call(console, F);
}
- if (o && typeof o == "object" && (o.lastCode = (Z == null ? void 0 : Z.code) || null, o.lastStatus = typeof (Z == null ? void 0 : Z.status) == "number" ? Z.status : null), Z.ok) {
- const R = Z.data, j = R.total_assets || 0, L = R.with_workflows ?? 0, N = R.with_generation_data ?? 0, q = R.last_scan_end, O = q ? new Date(q).toLocaleString() : "N/A", B = R.tool_availability || {}, J = R.tool_paths || {}, T = m("status.dbSize", "Database size: {size}", {
- size: ms(R.db_size_bytes || 0)
- }), D = A != null && A.ok && (A != null && A.data) ? A.data.vector || {} : {}, Q = (D == null ? void 0 : D.enabled) !== !1, E = !!(D != null && D.loaded), K = !!(D != null && D.degraded), F = String((D == null ? void 0 : D.last_error) || "").trim(), Y = Q ? K ? `AI vector: degraded${F ? ` (${F})` : ""}` : E ? "AI vector: loaded" : "AI vector: initializing" : "AI vector: disabled", U = F0(
- (A == null ? void 0 : A.data) || null,
+ if (o && typeof o == "object" && (o.lastCode = (A == null ? void 0 : A.code) || null, o.lastStatus = typeof (A == null ? void 0 : A.status) == "number" ? A.status : null), A.ok) {
+ const F = A.data, N = F.total_assets || 0, V = F.with_workflows ?? 0, k = F.with_generation_data ?? 0, K = F.last_scan_end, z = K ? new Date(K).toLocaleString() : "N/A", B = F.tool_availability || {}, J = F.tool_paths || {}, P = m("status.dbSize", "Database size: {size}", {
+ size: Is(F.db_size_bytes || 0)
+ }), H = C != null && C.ok && (C != null && C.data) ? C.data.vector || {} : {}, $ = (H == null ? void 0 : H.enabled) !== !1, E = !!(H != null && H.loaded), oe = !!(H != null && H.degraded), M = String((H == null ? void 0 : H.last_error) || "").trim(), j = $ ? oe ? `AI vector: degraded${M ? ` (${M})` : ""}` : E ? "AI vector: loaded" : "AI vector: initializing" : "AI vector: disabled", O = J0(
+ (C == null ? void 0 : C.data) || null,
(g == null ? void 0 : g.data) || null
- ), P = O0(
- R,
+ ), D = T0(
+ F,
u ? "all" : s
- ), ee = !!(A != null && A.ok && ((x = (z = A == null ? void 0 : A.data) == null ? void 0 : z.database) != null && x.available)), oe = g != null && g.ok ? ((w = g == null ? void 0 : g.data) == null ? void 0 : w.diagnostics) || {} : {}, ce = !!(oe != null && oe.malformed), pe = !!(oe != null && oe.locked), H = !!(oe != null && oe.maintenance_active);
- si(H);
- const $ = Math.max(
+ ), q = !!(C != null && C.ok && ((v = (T = C == null ? void 0 : C.data) == null ? void 0 : T.database) != null && v.available)), ee = g != null && g.ok ? ((w = g == null ? void 0 : g.data) == null ? void 0 : w.diagnostics) || {} : {}, ce = !!(ee != null && ee.malformed), ue = !!(ee != null && ee.locked), U = !!(ee != null && ee.maintenance_active);
+ ui(U);
+ const Q = Math.max(
0,
- Number((R == null ? void 0 : R.enrichment_queue_length) || 0) || 0
- ), le = _a().active || $ > 0;
- GI(le, $);
- const se = Number(j) > 0, de = !!(R != null && R.last_index_end || R != null && R.last_scan_end), Ze = se && de;
- let Fe = "success";
- H || le ? Fe = "info" : !ee || ce ? Fe = "error" : (pe || !Ze || K) && (Fe = "warning");
- const xe = u && Fe !== "error" ? "browser" : Fe;
- let ze = R.watcher;
+ Number((F == null ? void 0 : F.enrichment_queue_length) || 0) || 0
+ ), le = $a().active || Q > 0;
+ xI(le, Q);
+ const de = Number(N) > 0, se = !!(F != null && F.last_index_end || F != null && F.last_scan_end), ge = de && se;
+ let je = "success";
+ U || le ? je = "info" : !q || ce ? je = "error" : (ue || !ge || oe) && (je = "warning");
+ const Se = u && je !== "error" ? "browser" : je;
+ let ke = F.watcher;
try {
- if (!ze || typeof ze.enabled != "boolean") {
- const Qe = await Vg(a ? { signal: a } : void 0);
- Qe != null && Qe.ok && Qe.data && (ze = {
- enabled: !!Qe.data.enabled,
- scope: ((X = R == null ? void 0 : R.watcher) == null ? void 0 : X.scope) || s,
+ if (!ke || typeof ke.enabled != "boolean") {
+ const qe = await kg(a ? { signal: a } : void 0);
+ qe != null && qe.ok && qe.data && (ke = {
+ enabled: !!qe.data.enabled,
+ scope: ((R = F == null ? void 0 : F.watcher) == null ? void 0 : R.scope) || s,
custom_root_id: d || null
});
}
- } catch (Qe) {
- (V = console.debug) == null || V.call(console, Qe);
+ } catch (qe) {
+ (Y = console.debug) == null || Y.call(console, qe);
}
- const We = u ? m("status.watcher.disabledScoped", "Watcher: disabled ({scope})", {
+ const we = u ? m("status.watcher.disabledScoped", "Watcher: disabled ({scope})", {
scope: m("scope.customBrowser", "Browser")
- }) : k0(ze, s), De = le ? m("status.enrichmentQueue", "Metadata enrichment queue: {count}", {
- count: $
+ }) : R0(ke, s), Je = le ? m("status.enrichmentQueue", "Metadata enrichment queue: {count}", {
+ count: Q
}) : m("status.enrichmentIdle", "Metadata enrichment: idle");
- gs(n, B, J), um(n, h, B);
- const Pe = s === "all" ? m("scope.allFull", "All (Inputs + Outputs)") : s === "input" ? m("scope.input", "Inputs") : s === "custom" ? m("scope.customBrowser", "Browser") : m("scope.output", "Outputs");
- return Fe === "error" ? (e.style.background = "var(--mjr-status-error, #f44336)", Wn(l, "error"), Zi(
+ bs(n, B, J), gm(n, Z, B);
+ const $e = s === "all" ? m("scope.allFull", "All (Inputs + Outputs)") : s === "input" ? m("scope.input", "Inputs") : s === "custom" ? m("scope.customBrowser", "Browser") : m("scope.output", "Outputs");
+ return je === "error" ? (e.style.background = "var(--mjr-status-error, #f44336)", Wn(l, "error"), Wi(
t,
m("status.dbCorrupted", "Database appears corrupted or unavailable."),
- [U, P, T, We].filter(Boolean).join(" | ")
- ), R) : u ? (e.style.background = "var(--mjr-status-browser, #26A69A)", Wn(l, "browser"), Zi(
+ [O, D, P, we].filter(Boolean).join(" | ")
+ ), F) : u ? (e.style.background = "var(--mjr-status-browser, #26A69A)", Wn(l, "browser"), Wi(
t,
m("status.ready", "Ready"),
[
@@ -28807,47 +28822,47 @@ async function Xi(e, t, n = null, i = null, o = null, r = {}) {
"status.browserMetricsHidden",
"Browser mode: global DB/index metrics hidden"
),
- We
+ we
].filter(Boolean).join(" | ")
- ), R) : (j === 0 ? (e.style.background = xe === "browser" ? "var(--mjr-status-browser, #26A69A)" : Fe === "info" ? "var(--mjr-status-info, #64B5F6)" : Fe === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Wn(l, xe), Zi(
+ ), F) : (N === 0 ? (e.style.background = Se === "browser" ? "var(--mjr-status-browser, #26A69A)" : je === "info" ? "var(--mjr-status-info, #64B5F6)" : je === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Wn(l, Se), Wi(
t,
- m("status.noAssets", `No assets indexed yet (${Pe})`, {
- scope: Pe
+ m("status.noAssets", `No assets indexed yet (${$e})`, {
+ scope: $e
}),
[
m("status.clickToScan", "Click the dot to start a scan"),
- Y,
- U,
+ j,
+ O,
+ D,
P,
- T,
- We
+ we
].filter(Boolean).join(" | ")
- )) : (e.style.background = xe === "browser" ? "var(--mjr-status-browser, #26A69A)" : Fe === "info" ? "var(--mjr-status-info, #64B5F6)" : Fe === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Wn(l, xe), hl(
+ )) : (e.style.background = Se === "browser" ? "var(--mjr-status-browser, #26A69A)" : je === "info" ? "var(--mjr-status-info, #64B5F6)" : je === "warning" ? "var(--mjr-status-warning, #FFA726)" : "var(--mjr-status-success, #4CAF50)", Wn(l, Se), Cl(
t,
[
m(
"status.assetsIndexed",
- `${j.toLocaleString()} assets indexed (${Pe})`,
- { count: j.toLocaleString(), scope: Pe }
+ `${N.toLocaleString()} assets indexed (${$e})`,
+ { count: N.toLocaleString(), scope: $e }
),
- K0(R),
+ H0(F),
m(
"status.withWorkflows",
- `With workflows: ${L} - Generation data: ${N}`,
- { workflows: L, gendata: N }
+ `With workflows: ${V} - Generation data: ${k}`,
+ { workflows: V, gendata: k }
),
- De,
- Y,
- U,
+ Je,
+ j,
+ O,
+ D,
P,
- T,
- We
+ we
],
- m("status.lastScan", `Last scan: ${O}`, { date: O })
- )), R);
+ m("status.lastScan", `Last scan: ${z}`, { date: z })
+ )), F);
} else {
- if (gs(n, {}, {}), um(n, h), e.style.background = "var(--mjr-status-error, #f44336)", Wn(l, "error"), (Z == null ? void 0 : Z.code) === "INVALID_RESPONSE" && (Z == null ? void 0 : Z.status) === 404)
- Zi(
+ if (bs(n, {}, {}), gm(n, Z), e.style.background = "var(--mjr-status-error, #f44336)", Wn(l, "error"), (A == null ? void 0 : A.code) === "INVALID_RESPONSE" && (A == null ? void 0 : A.status) === 404)
+ Wi(
t,
m("status.apiNotFound", "Majoor API endpoints not found (404)"),
m(
@@ -28856,24 +28871,24 @@ async function Xi(e, t, n = null, i = null, o = null, r = {}) {
)
);
else {
- const R = String((Z == null ? void 0 : Z.error) || "").toLowerCase();
- R.includes("malform") || R.includes("corrupt") || R.includes("disk image") ? (Zi(t, m("status.dbCorrupted"), m("status.dbCorruptedHint")), globalThis._mjrCorruptToastShown || (globalThis._mjrCorruptToastShown = !0, Ce(m("toast.resetFailedCorrupt"), "error", 8e3))) : hl(t, [
- Z.error || m("status.errorChecking", "Error checking status")
+ const F = String((A == null ? void 0 : A.error) || "").toLowerCase();
+ F.includes("malform") || F.includes("corrupt") || F.includes("disk image") ? (Wi(t, m("status.dbCorrupted"), m("status.dbCorruptedHint")), globalThis._mjrCorruptToastShown || (globalThis._mjrCorruptToastShown = !0, Ze(m("toast.resetFailedCorrupt"), "error", 8e3))) : Cl(t, [
+ A.error || m("status.errorChecking", "Error checking status")
]);
}
- if (Z.code === "SERVICE_UNAVAILABLE") {
- const R = z0(
+ if (A.code === "SERVICE_UNAVAILABLE") {
+ const F = B0(
e,
t,
n,
i
);
- t.appendChild(document.createElement("br")), t.appendChild(R);
+ t.appendChild(document.createElement("br")), t.appendChild(F);
}
}
return null;
}
-function z0(e, t, n = null, i = null) {
+function B0(e, t, n = null, i = null) {
const o = document.createElement("button");
return o.textContent = m("btn.retryServices"), o.style.cssText = `
padding: 4px 10px;
@@ -28886,16 +28901,16 @@ function z0(e, t, n = null, i = null) {
cursor: pointer;
`, o.onclick = async () => {
o.disabled = !0, o.textContent = m("btn.retrying");
- const r = await Et(lt.RETRY_SERVICES, {});
- o.disabled = !1, o.textContent = m("btn.retryServices"), r.ok ? Xi(e, t, n, i) : (hl(t, [
+ const r = await Et(ct.RETRY_SERVICES, {});
+ o.disabled = !1, o.textContent = m("btn.retryServices"), r.ok ? Ni(e, t, n, i) : (Cl(t, [
r.error || m("status.retryFailed", "Retry failed")
]), t.appendChild(document.createElement("br")), t.appendChild(o));
}, o;
}
-function J0() {
+function U0() {
var e, t;
try {
- const n = (e = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : e.call(localStorage, Fb);
+ const n = (e = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : e.call(localStorage, Ob);
if (!n) return null;
const i = JSON.parse(n);
return i && typeof i == "object" ? i : null;
@@ -28903,16 +28918,16 @@ function J0() {
return (t = console.debug) == null || t.call(console, n), null;
}
}
-function T0(e) {
+function K0(e) {
var t, n;
try {
if (!e || typeof e != "object") return;
- (t = localStorage == null ? void 0 : localStorage.setItem) == null || t.call(localStorage, Fb, JSON.stringify(e));
+ (t = localStorage == null ? void 0 : localStorage.setItem) == null || t.call(localStorage, Ob, JSON.stringify(e));
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
}
-function B0(e) {
+function D0(e) {
const t = [], n = (i, o = 0) => {
if (!(!i || o > 2)) {
if (typeof i == "number" && Number.isFinite(i)) {
@@ -28932,25 +28947,25 @@ function B0(e) {
};
return n(e, 0), t;
}
-function U0(e) {
+function E0(e) {
var n, i;
if (!e || typeof e != "object") return !1;
- if (wr) return !0;
+ if (Gr) return !0;
try {
- if ((n = _a()) != null && n.active) return !0;
+ if ((n = $a()) != null && n.active) return !0;
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
- return B0(e).some((o) => Number(o) > 0);
+ return D0(e).some((o) => Number(o) > 0);
}
-function K0(e) {
+function H0(e) {
var i;
const t = [];
e.images && t.push(`Images: ${e.images}`), e.videos && t.push(`Videos: ${e.videos}`), e.audio && t.push(`Audio: ${e.audio}`);
const n = e.model3d || ((i = e.by_kind) == null ? void 0 : i.model3d) || 0;
return n && t.push(`3D: ${n}`), t.length ? t.join(" - ") : "Images: 0 - Videos: 0";
}
-function D0(e) {
+function q0(e) {
var n, i, o;
if (!e || typeof e != "object") return "";
const t = (r) => r == null ? null : typeof r == "number" ? Number.isFinite(r) ? r : null : typeof r == "boolean" || typeof r == "string" ? r : null;
@@ -28969,17 +28984,17 @@ function D0(e) {
}
});
}
-function E0(e, t, n) {
+function P0(e, t, n) {
var o, r;
- const i = J0();
+ const i = U0();
if (!i) return !1;
try {
- gs(n, i.tool_availability || {}, i.tool_paths || {});
+ bs(n, i.tool_availability || {}, i.tool_paths || {});
} catch (l) {
(o = console.debug) == null || o.call(console, l);
}
try {
- return e.style.background = "var(--mjr-status-info, #64B5F6)", Zi(
+ return e.style.background = "var(--mjr-status-info, #64B5F6)", Wi(
t,
m("status.cached", "Last known status"),
m("status.checking", "Checking status...")
@@ -28988,10 +29003,10 @@ function E0(e, t, n) {
return (r = console.debug) == null || r.call(console, l), !1;
}
}
-function H0(e, t, n) {
- const i = D0(t), o = i && i !== String((n == null ? void 0 : n.lastSignature) || ""), r = U0(t);
- let l = e || ui.ACTIVE, a = Number((n == null ? void 0 : n.cooldownStablePolls) || 0) || 0;
- return r || o ? (l = ui.ACTIVE, a = 0) : l === ui.ACTIVE ? (l = ui.COOLDOWN, a = 0) : l === ui.COOLDOWN ? (a += 1, a >= 3 && (l = ui.IDLE, a = 0)) : (l = o ? ui.ACTIVE : ui.IDLE, a = 0), {
+function Q0(e, t, n) {
+ const i = q0(t), o = i && i !== String((n == null ? void 0 : n.lastSignature) || ""), r = E0(t);
+ let l = e || gi.ACTIVE, a = Number((n == null ? void 0 : n.cooldownStablePolls) || 0) || 0;
+ return r || o ? (l = gi.ACTIVE, a = 0) : l === gi.ACTIVE ? (l = gi.COOLDOWN, a = 0) : l === gi.COOLDOWN ? (a += 1, a >= 3 && (l = gi.IDLE, a = 0)) : (l = o ? gi.ACTIVE : gi.IDLE, a = 0), {
nextState: l,
signature: i,
hasChange: o,
@@ -28999,158 +29014,158 @@ function H0(e, t, n) {
cooldownStablePolls: a
};
}
-function q0(e, t, n, i = null, o = null, r = null) {
- var g, h, f, b;
+function _0(e, t, n, i = null, o = null, r = null) {
+ var g, Z, f, b;
const l = "__MJR_STATUS_POLL_DISPOSE__", a = { lastCode: null, lastStatus: null, _pollTick: 0, _auxCached: !1 }, c = {
- mode: ui.ACTIVE,
+ mode: gi.ACTIVE,
cooldownStablePolls: 0,
lastSignature: ""
}, s = typeof AbortController < "u" ? new AbortController() : null, d = async () => {
- var W, y, k;
+ var W, y, X;
try {
if ((W = s == null ? void 0 : s.signal) != null && W.aborted) return null;
- } catch (G) {
- (y = console.debug) == null || y.call(console, G);
+ } catch (x) {
+ (y = console.debug) == null || y.call(console, x);
}
a._pollTick = Number(a._pollTick || 0) + 1;
- const v = a._pollTick > 1 && a._pollTick % 4 !== 0, C = typeof r == "function" ? r() : null, S = await Xi(
+ const L = a._pollTick > 1 && a._pollTick % 4 !== 0, h = typeof r == "function" ? r() : null, G = await Ni(
e,
t,
i,
- C,
+ h,
a,
{
signal: (s == null ? void 0 : s.signal) || null,
- lightweight: v,
+ lightweight: L,
// Keep status updates alive while maintenance is active (or stale).
- force: !!wr || a._pollTick <= 1
+ force: !!Gr || a._pollTick <= 1
}
);
- if (S && typeof S == "object") {
- T0(S);
- const G = H0(c.mode, S, c);
- c.mode = G.nextState, c.lastSignature = G.signature, c.cooldownStablePolls = G.cooldownStablePolls;
+ if (G && typeof G == "object") {
+ K0(G);
+ const x = Q0(c.mode, G, c);
+ c.mode = x.nextState, c.lastSignature = x.signature, c.cooldownStablePolls = x.cooldownStablePolls;
}
- if (S && typeof o == "function")
+ if (G && typeof o == "function")
try {
- await o(S);
- } catch (G) {
- (k = console.debug) == null || k.call(console, G);
+ await o(G);
+ } catch (x) {
+ (X = console.debug) == null || X.call(console, x);
}
- return S;
+ return G;
};
- E0(e, t, i), d();
+ P0(e, t, i), d();
try {
(g = n._mjrStatusPollDispose) == null || g.call(n);
- } catch (v) {
- (h = console.debug) == null || h.call(console, v);
+ } catch (L) {
+ (Z = console.debug) == null || Z.call(console, L);
}
try {
- const v = window == null ? void 0 : window[l];
- typeof v == "function" && v();
- } catch (v) {
- (f = console.debug) == null || f.call(console, v);
+ const L = window == null ? void 0 : window[l];
+ typeof L == "function" && L();
+ } catch (L) {
+ (f = console.debug) == null || f.call(console, L);
}
let u = null, I = 0, p = !1;
- const M = () => {
- var v;
+ const S = () => {
+ var L;
try {
- const C = typeof document < "u" && !!document.hidden, S = typeof document < "u" && typeof document.hasFocus == "function" && !document.hasFocus();
- if (C || S) return 4;
- } catch (C) {
- (v = console.debug) == null || v.call(console, C);
+ const h = typeof document < "u" && !!document.hidden, G = typeof document < "u" && typeof document.hasFocus == "function" && !document.hasFocus();
+ if (h || G) return 4;
+ } catch (h) {
+ (L = console.debug) == null || L.call(console, h);
}
return 1;
- }, Z = () => {
- const v = V0[c.mode] || Math.max(250, Number(ye.STATUS_POLL_INTERVAL) || 2e3), C = p ? Math.max(3e4, v) : I > 0 ? Math.min(6e4, Math.round(v * Math.min(8, 1 + I))) : v, S = Math.min(12e4, Math.round(C * M()));
+ }, A = () => {
+ const L = N0[c.mode] || Math.max(250, Number(fe.STATUS_POLL_INTERVAL) || 2e3), h = p ? Math.max(3e4, L) : I > 0 ? Math.min(6e4, Math.round(L * Math.min(8, 1 + I))) : L, G = Math.min(12e4, Math.round(h * S()));
u = setTimeout(async () => {
- var y, k, G, z;
+ var y, X, x, T;
try {
if ((y = s == null ? void 0 : s.signal) != null && y.aborted) return;
- } catch (x) {
- (k = console.debug) == null || k.call(console, x);
+ } catch (v) {
+ (X = console.debug) == null || X.call(console, v);
}
const W = await d();
- if (p = a.lastCode === "INVALID_RESPONSE" && a.lastStatus === 404, W ? I = 0 : p ? I = Math.min(999, I + 1) : (I = Math.min(999, I + 1), c.mode = ui.ACTIVE, c.cooldownStablePolls = 0), p && I >= 3) {
+ if (p = a.lastCode === "INVALID_RESPONSE" && a.lastStatus === 404, W ? I = 0 : p ? I = Math.min(999, I + 1) : (I = Math.min(999, I + 1), c.mode = gi.ACTIVE, c.cooldownStablePolls = 0), p && I >= 3) {
try {
- (G = n._mjrStatusPollDispose) == null || G.call(n);
- } catch (x) {
- (z = console.debug) == null || z.call(console, x);
+ (x = n._mjrStatusPollDispose) == null || x.call(n);
+ } catch (v) {
+ (T = console.debug) == null || T.call(console, v);
}
return;
}
- Z();
- }, S);
+ A();
+ }, G);
};
n._mjrStatusPollDispose = () => {
- var v, C;
+ var L, h;
try {
- (v = s == null ? void 0 : s.abort) == null || v.call(s);
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ (L = s == null ? void 0 : s.abort) == null || L.call(s);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
u && clearTimeout(u), u = null;
};
try {
window[l] = n._mjrStatusPollDispose;
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
- Z();
- const A = n.querySelector("#mjr-status-dot");
- A && (A.onclick = (v) => {
- v.stopPropagation();
- const C = typeof r == "function" ? r() : null;
- Ob(e, t, i, C);
- }, A.title = m("status.clickToScan", "Click to scan"));
+ A();
+ const C = n.querySelector("#mjr-status-dot");
+ C && (C.onclick = (L) => {
+ L.stopPropagation();
+ const h = typeof r == "function" ? r() : null;
+ zb(e, t, i, h);
+ }, C.title = m("status.clickToScan", "Click to scan"));
}
-const To = vs(null), nc = vs(null);
-function P0() {
+const Uo = Vs(null), ic = Vs(null);
+function $0() {
return {
- activeAsset: To,
- onUpdateCallback: nc
+ activeAsset: Uo,
+ onUpdateCallback: ic
};
}
-function Q0(e, t) {
- nc.value = typeof t == "function" ? t : null, To.value = e ?? null;
+function eM(e, t) {
+ ic.value = typeof t == "function" ? t : null, Uo.value = e ?? null;
}
-function _0() {
- To.value = null, nc.value = null;
+function tM() {
+ Uo.value = null, ic.value = null;
}
-function Is(e, t) {
- if (!(!To.value || !e)) {
- To.value = {
- ...To.value,
+function ps(e, t) {
+ if (!(!Uo.value || !e)) {
+ Uo.value = {
+ ...Uo.value,
...e
};
try {
- const n = t ?? nc.value;
- typeof n == "function" && n(To.value);
+ const n = t ?? ic.value;
+ typeof n == "function" && n(Uo.value);
} catch {
}
}
}
-const gm = 360, $0 = 240, eM = 640;
-function tM() {
+const bm = 360, nM = 240, iM = 640;
+function oM() {
var e;
try {
const t = Xn(), n = Number((e = t == null ? void 0 : t.sidebar) == null ? void 0 : e.widthPx);
- return Number.isFinite(n) ? Math.max($0, Math.min(eM, Math.round(n))) : gm;
+ return Number.isFinite(n) ? Math.max(nM, Math.min(iM, Math.round(n))) : bm;
} catch {
- return gm;
+ return bm;
}
}
-function zb(e, t) {
+function Jb(e, t) {
var o;
if (!e) return;
const n = String(((o = e == null ? void 0 : e.dataset) == null ? void 0 : o.position) || "right").toLowerCase() === "left", i = "var(--mjr-border, rgba(255,255,255,0.12))";
if (t) {
- const r = `${tM()}px`;
+ const r = `${oM()}px`;
e.style.flex = `0 0 ${r}`, e.style.width = r, e.style.maxWidth = r, e.style.minWidth = "0", e.style.overflow = "hidden", e.style.borderLeft = n ? "none" : `1px solid ${i}`, e.style.borderRight = n ? `1px solid ${i}` : "none";
} else
e.style.flex = "0 0 0px", e.style.width = "0", e.style.maxWidth = "0", e.style.minWidth = "0", e.style.overflow = "hidden", e.style.borderLeft = "none", e.style.borderRight = "none";
}
-function nM(e) {
+function rM(e) {
if (e == null) return !1;
let t = e;
if (typeof e == "string") {
@@ -29170,10 +29185,10 @@ function nM(e) {
}
return !1;
}
-function Im(e) {
- return e ? !!(e.geninfo || e.prompt || nM(e.metadata_raw)) : !1;
+function pm(e) {
+ return e ? !!(e.geninfo || e.prompt || rM(e.metadata_raw)) : !1;
}
-async function iM(e, t, n) {
+async function lM(e, t, n) {
var c, s, d;
if (!e || !t) return;
const i = String((t == null ? void 0 : t.kind) || "").toLowerCase() === "folder";
@@ -29183,7 +29198,7 @@ async function iM(e, t, n) {
(c = console.debug) == null || c.call(console, u);
}
const o = e._requestSeq = (e._requestSeq || 0) + 1;
- (d = (s = e._currentFetchAbortController) == null ? void 0 : s.abort) == null || d.call(s), e._currentFetchAbortController = null, e.classList.add("is-open"), zb(e, !0), e._currentAsset = t, e._currentFullAsset = t, e._ratingTagsSection = null, Q0(t, n);
+ (d = (s = e._currentFetchAbortController) == null ? void 0 : s.abort) == null || d.call(s), e._currentFetchAbortController = null, e.classList.add("is-open"), Jb(e, !0), e._currentAsset = t, e._currentFullAsset = t, e._ratingTagsSection = null, eM(t, n);
const r = () => {
var I, p;
(p = (I = e._currentFetchAbortController) == null ? void 0 : I.abort) == null || p.call(I);
@@ -29192,16 +29207,16 @@ async function iM(e, t, n) {
}, l = (u = {}) => {
if (e._requestSeq !== o || e._currentAsset !== t) return;
const I = { ...e._currentFullAsset ?? t, ...u };
- e._currentFullAsset = I, Is(u, n);
+ e._currentFullAsset = I, ps(u, n);
};
(async () => {
- var M, Z, A, g, h;
+ var S, A, C, g, Z;
if (e._requestSeq !== o || e._currentAsset !== t) return;
const u = r(), I = u.signal;
if (i) {
try {
- const f = String((t == null ? void 0 : t.filepath) || (t == null ? void 0 : t.subfolder) || "").trim(), b = String((t == null ? void 0 : t.root_id) || (t == null ? void 0 : t.rootId) || "").trim(), v = b ? String((t == null ? void 0 : t.subfolder) || "").trim() : "", C = await dh({ filepath: f, root_id: b, subfolder: v }, u);
- !(I != null && I.aborted) && (C != null && C.ok) && C.data && l({ folder_info: C.data });
+ const f = String((t == null ? void 0 : t.filepath) || (t == null ? void 0 : t.subfolder) || "").trim(), b = String((t == null ? void 0 : t.root_id) || (t == null ? void 0 : t.rootId) || "").trim(), L = b ? String((t == null ? void 0 : t.subfolder) || "").trim() : "", h = await gh({ filepath: f, root_id: b, subfolder: L }, u);
+ !(I != null && I.aborted) && (h != null && h.ok) && h.data && l({ folder_info: h.data });
} catch (f) {
I != null && I.aborted || console.warn("Failed to load folder details:", f);
} finally {
@@ -29211,8 +29226,8 @@ async function iM(e, t, n) {
}
const p = () => e._currentFullAsset ?? t;
try {
- if (t.id && !Im(p()) && !p().exif) {
- const f = await ml(t.id, u);
+ if (t.id && !pm(p()) && !p().exif) {
+ const f = await gl(t.id, u);
if (I != null && I.aborted) return;
f != null && f.ok && f.data && l(f.data);
}
@@ -29220,14 +29235,14 @@ async function iM(e, t, n) {
I != null && I.aborted || console.warn("Failed to load full asset metadata:", f);
}
if (!(I != null && I.aborted)) {
- if (!Im(p())) {
- const f = String(((M = p()) == null ? void 0 : M.filename) || "").trim(), b = String(((Z = p()) == null ? void 0 : Z.type) || "output").trim().toLowerCase(), v = String(((A = p()) == null ? void 0 : A.subfolder) || "").trim(), C = String(((g = p()) == null ? void 0 : g.root_id) || ((h = p()) == null ? void 0 : h.rootId) || "").trim();
+ if (!pm(p())) {
+ const f = String(((S = p()) == null ? void 0 : S.filename) || "").trim(), b = String(((A = p()) == null ? void 0 : A.type) || "output").trim().toLowerCase(), L = String(((C = p()) == null ? void 0 : C.subfolder) || "").trim(), h = String(((g = p()) == null ? void 0 : g.root_id) || ((Z = p()) == null ? void 0 : Z.rootId) || "").trim();
if (f)
try {
- const S = await Ug({ type: b, filename: f, subfolder: v, root_id: C }, u);
+ const G = await Kg({ type: b, filename: f, subfolder: L, root_id: h }, u);
if (I != null && I.aborted) return;
- if (S != null && S.ok && S.data) {
- const W = S.data;
+ if (G != null && G.ok && G.data) {
+ const W = G.data;
l({
prompt: p().prompt ?? W.prompt,
workflow: p().workflow ?? W.workflow,
@@ -29237,18 +29252,18 @@ async function iM(e, t, n) {
metadata_raw: p().metadata_raw ?? W
});
}
- } catch (S) {
- I != null && I.aborted || console.warn("Failed to load scoped metadata:", S);
+ } catch (G) {
+ I != null && I.aborted || console.warn("Failed to load scoped metadata:", G);
}
}
I != null && I.aborted || (e._currentFetchAbortController = null);
}
})();
}
-function Jb(e) {
+function Tb(e) {
var t, n, i, o;
if (e) {
- e._requestSeq = (e._requestSeq || 0) + 1, e.classList.remove("is-open"), zb(e, !1), e._currentAsset = null, e._currentFullAsset = null, (n = (t = e._currentFetchAbortController) == null ? void 0 : t.abort) == null || n.call(t), e._currentFetchAbortController = null, _0();
+ e._requestSeq = (e._requestSeq || 0) + 1, e.classList.remove("is-open"), Jb(e, !1), e._currentAsset = null, e._currentFullAsset = null, (n = (t = e._currentFetchAbortController) == null ? void 0 : t.abort) == null || n.call(t), e._currentFetchAbortController = null, tM();
try {
(i = e.dispatchEvent) == null || i.call(e, new CustomEvent("mjr:sidebar-closed", { bubbles: !0 }));
} catch (r) {
@@ -29256,8 +29271,8 @@ function Jb(e) {
}
}
}
-const ud = "mjr_panel_state", oM = /* @__PURE__ */ new Set(["output", "input", "all", "custom"]);
-function bm(e, t = !1) {
+const gd = "mjr_panel_state", aM = /* @__PURE__ */ new Set(["output", "input", "all", "custom"]);
+function ym(e, t = !1) {
if (typeof e == "boolean") return e;
if (typeof e == "string") {
const n = e.trim().toLowerCase();
@@ -29266,68 +29281,68 @@ function bm(e, t = !1) {
}
return !!t;
}
-function bs(e, t = 0) {
+function ys(e, t = 0) {
const n = Number(e);
return Number.isFinite(n) ? n : t;
}
-function di(e, t = "") {
+function mi(e, t = "") {
return e == null ? t : String(e);
}
-function tr(e, t = 0, n = 1 / 0) {
- return Math.max(t, Math.min(n, Math.floor(bs(e, t))));
+function ir(e, t = 0, n = 1 / 0) {
+ return Math.max(t, Math.min(n, Math.floor(ys(e, t))));
}
-function rM(e) {
- const t = di(e || "output").toLowerCase(), n = t === "outputs" ? "output" : t === "inputs" ? "input" : t;
- return oM.has(n) ? n : "output";
+function cM(e) {
+ const t = mi(e || "output").toLowerCase(), n = t === "outputs" ? "output" : t === "inputs" ? "input" : t;
+ return aM.has(n) ? n : "output";
}
-function Tb(e) {
+function Bb(e) {
return !e || typeof e != "object" ? {} : {
- scope: rM(e.scope),
- customRootId: di(e.customRootId),
- customRootLabel: di(e.customRootLabel),
- currentFolderRelativePath: di(e.currentFolderRelativePath || e.subfolder),
- collectionId: di(e.collectionId),
- collectionName: di(e.collectionName),
- kindFilter: di(e.kindFilter),
- dateRangeFilter: di(e.dateRangeFilter),
- dateExactFilter: di(e.dateExactFilter),
- workflowOnly: bm(e.workflowOnly, !1),
- minRating: tr(e.minRating, 0, 5),
- minSizeMB: Math.max(0, bs(e.minSizeMB, 0)),
- maxSizeMB: Math.max(0, bs(e.maxSizeMB, 0)),
+ scope: cM(e.scope),
+ customRootId: mi(e.customRootId),
+ customRootLabel: mi(e.customRootLabel),
+ currentFolderRelativePath: mi(e.currentFolderRelativePath || e.subfolder),
+ collectionId: mi(e.collectionId),
+ collectionName: mi(e.collectionName),
+ kindFilter: mi(e.kindFilter),
+ dateRangeFilter: mi(e.dateRangeFilter),
+ dateExactFilter: mi(e.dateExactFilter),
+ workflowOnly: ym(e.workflowOnly, !1),
+ minRating: ir(e.minRating, 0, 5),
+ minSizeMB: Math.max(0, ys(e.minSizeMB, 0)),
+ maxSizeMB: Math.max(0, ys(e.maxSizeMB, 0)),
resolutionCompare: e.resolutionCompare === "lte" ? "lte" : "gte",
- minWidth: tr(e.minWidth),
- minHeight: tr(e.minHeight),
- maxWidth: tr(e.maxWidth),
- maxHeight: tr(e.maxHeight),
- workflowType: di(e.workflowType),
- sort: di(e.sort || "mtime_desc"),
- searchQuery: di(e.searchQuery),
- scrollTop: tr(e.scrollTop),
- activeAssetId: di(e.activeAssetId),
- selectedAssetIds: Array.isArray(e.selectedAssetIds) ? e.selectedAssetIds.map((t) => di(t).trim()).filter(Boolean).slice(0, 5e3) : [],
- sidebarOpen: bm(e.sidebarOpen, !1)
+ minWidth: ir(e.minWidth),
+ minHeight: ir(e.minHeight),
+ maxWidth: ir(e.maxWidth),
+ maxHeight: ir(e.maxHeight),
+ workflowType: mi(e.workflowType),
+ sort: mi(e.sort || "mtime_desc"),
+ searchQuery: mi(e.searchQuery),
+ scrollTop: ir(e.scrollTop),
+ activeAssetId: mi(e.activeAssetId),
+ selectedAssetIds: Array.isArray(e.selectedAssetIds) ? e.selectedAssetIds.map((t) => mi(t).trim()).filter(Boolean).slice(0, 5e3) : [],
+ sidebarOpen: ym(e.sidebarOpen, !1)
};
}
-function lM() {
+function sM() {
try {
- const e = localStorage.getItem(ud);
- if (e) return Tb(JSON.parse(e));
+ const e = localStorage.getItem(gd);
+ if (e) return Bb(JSON.parse(e));
} catch {
}
return {};
}
-function aM(e) {
+function dM(e) {
try {
const t = { ...e };
- delete t.lastGridCount, delete t.lastGridTotal, delete t.viewScope, delete t.similarResults, delete t.similarTitle, delete t.similarSourceAssetId, localStorage.setItem(ud, JSON.stringify(t));
+ delete t.lastGridCount, delete t.lastGridTotal, delete t.viewScope, delete t.similarResults, delete t.similarTitle, delete t.similarSourceAssetId, localStorage.setItem(gd, JSON.stringify(t));
} catch {
}
}
-const Mo = ig("mjr-panel", () => {
- const e = lM(), t = Ae(e.scope || "output"), n = Ae(e.customRootId || ""), i = Ae(e.customRootLabel || ""), o = Ae(e.currentFolderRelativePath || ""), r = Ae(e.collectionId || ""), l = Ae(e.collectionName || ""), a = Ae(e.kindFilter || ""), c = Ae(e.dateRangeFilter || ""), s = Ae(e.dateExactFilter || ""), d = Ae(e.workflowOnly || !1), u = Ae(e.minRating || 0), I = Ae(e.minSizeMB || 0), p = Ae(e.maxSizeMB || 0), M = Ae(e.resolutionCompare || "gte"), Z = Ae(e.minWidth || 0), A = Ae(e.minHeight || 0), g = Ae(e.maxWidth || 0), h = Ae(e.maxHeight || 0), f = Ae(e.workflowType || ""), b = Ae(e.sort || "mtime_desc"), v = Ae(e.searchQuery || ""), C = Ae(e.scrollTop || 0), S = Ae(e.activeAssetId || ""), W = Ae(e.selectedAssetIds || []), y = Ae(e.sidebarOpen || !1), k = Ae(0), G = Ae(0), z = Ae(""), x = Ae([]), w = Ae(""), X = Ae("");
- let V = null;
- an(
+const Go = og("mjr-panel", () => {
+ const e = sM(), t = Ae(e.scope || "output"), n = Ae(e.customRootId || ""), i = Ae(e.customRootLabel || ""), o = Ae(e.currentFolderRelativePath || ""), r = Ae(e.collectionId || ""), l = Ae(e.collectionName || ""), a = Ae(e.kindFilter || ""), c = Ae(e.dateRangeFilter || ""), s = Ae(e.dateExactFilter || ""), d = Ae(e.workflowOnly || !1), u = Ae(e.minRating || 0), I = Ae(e.minSizeMB || 0), p = Ae(e.maxSizeMB || 0), S = Ae(e.resolutionCompare || "gte"), A = Ae(e.minWidth || 0), C = Ae(e.minHeight || 0), g = Ae(e.maxWidth || 0), Z = Ae(e.maxHeight || 0), f = Ae(e.workflowType || ""), b = Ae(e.sort || "mtime_desc"), L = Ae(e.searchQuery || ""), h = Ae(e.scrollTop || 0), G = Ae(e.activeAssetId || ""), W = Ae(e.selectedAssetIds || []), y = Ae(e.sidebarOpen || !1), X = Ae(0), x = Ae(0), T = Ae(""), v = Ae([]), w = Ae(""), R = Ae("");
+ let Y = null;
+ cn(
[
t,
n,
@@ -29342,22 +29357,22 @@ const Mo = ig("mjr-panel", () => {
u,
I,
p,
- M,
- Z,
+ S,
A,
+ C,
g,
- h,
+ Z,
f,
b,
- v,
- C,
- S,
+ L,
+ h,
+ G,
W,
y
],
() => {
- V && clearTimeout(V), V = setTimeout(() => {
- V = null, aM({
+ Y && clearTimeout(Y), Y = setTimeout(() => {
+ Y = null, dM({
scope: t.value,
customRootId: n.value,
customRootLabel: i.value,
@@ -29371,16 +29386,16 @@ const Mo = ig("mjr-panel", () => {
minRating: u.value,
minSizeMB: I.value,
maxSizeMB: p.value,
- resolutionCompare: M.value,
- minWidth: Z.value,
- minHeight: A.value,
+ resolutionCompare: S.value,
+ minWidth: A.value,
+ minHeight: C.value,
maxWidth: g.value,
- maxHeight: h.value,
+ maxHeight: Z.value,
workflowType: f.value,
sort: b.value,
- searchQuery: v.value,
- scrollTop: C.value,
- activeAssetId: S.value,
+ searchQuery: L.value,
+ scrollTop: h.value,
+ activeAssetId: G.value,
selectedAssetIds: W.value,
sidebarOpen: y.value
});
@@ -29388,29 +29403,29 @@ const Mo = ig("mjr-panel", () => {
},
{ deep: !0 }
);
- const j = (B) => {
- if (!(B.key !== ud || !B.newValue))
+ const N = (B) => {
+ if (!(B.key !== gd || !B.newValue))
try {
- const J = Tb(JSON.parse(B.newValue));
- J.scope !== void 0 && (t.value = J.scope), J.customRootLabel !== void 0 && (i.value = J.customRootLabel), J.searchQuery !== void 0 && (v.value = J.searchQuery), J.sort !== void 0 && (b.value = J.sort), J.sidebarOpen !== void 0 && (y.value = J.sidebarOpen);
+ const J = Bb(JSON.parse(B.newValue));
+ J.scope !== void 0 && (t.value = J.scope), J.customRootLabel !== void 0 && (i.value = J.customRootLabel), J.searchQuery !== void 0 && (L.value = J.searchQuery), J.sort !== void 0 && (b.value = J.sort), J.sidebarOpen !== void 0 && (y.value = J.sidebarOpen);
} catch {
}
};
try {
- window.addEventListener("storage", j);
+ window.addEventListener("storage", N);
} catch {
}
- function L() {
- a.value = "", c.value = "", s.value = "", d.value = !1, u.value = 0, I.value = 0, p.value = 0, M.value = "gte", Z.value = 0, A.value = 0, g.value = 0, h.value = 0, f.value = "", v.value = "";
+ function V() {
+ a.value = "", c.value = "", s.value = "", d.value = !1, u.value = 0, I.value = 0, p.value = 0, S.value = "gte", A.value = 0, C.value = 0, g.value = 0, Z.value = 0, f.value = "", L.value = "";
}
- function N() {
- W.value = [], S.value = "";
+ function k() {
+ W.value = [], G.value = "";
}
- function q(B, J = "") {
- W.value = Array.isArray(B) ? B.map(String).filter(Boolean) : [], S.value = J || W.value[0] || "";
+ function K(B, J = "") {
+ W.value = Array.isArray(B) ? B.map(String).filter(Boolean) : [], G.value = J || W.value[0] || "";
}
- function O(B, J = {}) {
- t.value = B, o.value = J.folder || "", r.value = J.collectionId || "", l.value = J.collectionName || "", n.value = J.customRootId || "", i.value = J.customRootLabel || "", z.value = "", x.value = [], w.value = "", X.value = "", N();
+ function z(B, J = {}) {
+ t.value = B, o.value = J.folder || "", r.value = J.collectionId || "", l.value = J.collectionName || "", n.value = J.customRootId || "", i.value = J.customRootLabel || "", T.value = "", v.value = [], w.value = "", R.value = "", k();
}
return {
// persistent
@@ -29427,41 +29442,41 @@ const Mo = ig("mjr-panel", () => {
minRating: u,
minSizeMB: I,
maxSizeMB: p,
- resolutionCompare: M,
- minWidth: Z,
- minHeight: A,
+ resolutionCompare: S,
+ minWidth: A,
+ minHeight: C,
maxWidth: g,
- maxHeight: h,
+ maxHeight: Z,
workflowType: f,
sort: b,
- searchQuery: v,
- scrollTop: C,
- activeAssetId: S,
+ searchQuery: L,
+ scrollTop: h,
+ activeAssetId: G,
selectedAssetIds: W,
sidebarOpen: y,
// transient
- lastGridCount: k,
- lastGridTotal: G,
- viewScope: z,
- similarResults: x,
+ lastGridCount: X,
+ lastGridTotal: x,
+ viewScope: T,
+ similarResults: v,
similarTitle: w,
- similarSourceAssetId: X,
+ similarSourceAssetId: R,
// actions
- resetFilters: L,
- clearSelection: N,
- setSelection: q,
- navigateToScope: O
+ resetFilters: V,
+ clearSelection: k,
+ setSelection: K,
+ navigateToScope: z
};
});
-function Zl() {
+function Al() {
try {
- return og() ? Mo() : null;
+ return rg() ? Go() : null;
} catch {
return null;
}
}
-function no(e, t = []) {
- const n = Zl();
+function oo(e, t = []) {
+ const n = Al();
return {
panelStore: n,
hydrateStoreFromLegacy: () => {
@@ -29490,9 +29505,9 @@ function no(e, t = []) {
isPiniaOnly: !0
};
}
-const Bb = "mjr_panel_messages_v1", Ub = "mjr_panel_messages_last_read_v1", cM = "mjr_panel_messages_dismissed_builtin_ids_v1", pm = 120, sM = "/mjr/am/user-guide", dM = /* @__PURE__ */ new Set(["info", "success", "warning", "error"]), Kb = "mjr:panel-messages-changed";
-let ym = !1, Ai = [];
-const Db = Object.freeze([
+const Ub = "mjr_panel_messages_v1", Kb = "mjr_panel_messages_last_read_v1", uM = "mjr_panel_messages_dismissed_builtin_ids_v1", fm = 120, mM = "/mjr/am/user-guide", gM = /* @__PURE__ */ new Set(["info", "success", "warning", "error"]), Db = "mjr:panel-messages-changed";
+let hm = !1, wi = [];
+const Eb = Object.freeze([
{
id: "whats-new-2026-03-29-version-2-4-3",
title: "New Version 2.4.3",
@@ -29560,7 +29575,7 @@ const Db = Object.freeze([
bodyKey: "msg.whatsNew.body.localUserGuide",
actionLabel: "User Guide",
actionLabelKey: "label.userGuide",
- actionUrl: sM
+ actionUrl: mM
},
{
id: "tip-2026-04-07-output-folder-override",
@@ -29651,29 +29666,59 @@ const Db = Object.freeze([
createdAt: Date.parse("2026-04-12T10:05:00Z"),
body: "A new Viewer button now appears in the ComfyUI top action bar. Click it to toggle the Majoor Floating Viewer on or off without opening the sidebar. The button highlights when the viewer is active and updates in real time.",
bodyKey: "msg.whatsNew.body.topbarMfvButton"
+ },
+ {
+ id: "whats-new-2026-04-20-version-2-4-6",
+ title: "New Version 2.4.6",
+ titleKey: "msg.whatsNew.title.version246",
+ emoji: "π",
+ category: "Release",
+ categoryKey: "msg.category.release",
+ level: "success",
+ createdAt: Date.parse("2026-04-20T09:00:00Z"),
+ body: "Version 2.4.6 released: Various bug fixes and performance & fluidity improvements. Improved concatenate support for default and custom nodes (by Forsion07). Added support helpers for Api Node and Ernie Image. Live Stream in Floating Viewer is now disabled by default. See CHANGELOG for details.",
+ bodyKey: "msg.whatsNew.body.version246",
+ actionLabel: "Changelog",
+ actionLabelKey: "label.changelog",
+ actionUrl: "CHANGELOG.md"
+ },
+ {
+ id: "tip-2026-04-20-mfv-live-stream-preview-defaults",
+ title: "Tip β Floating Viewer Auto-Open",
+ titleKey: "msg.tip.title.mfvLivePreviewDefaults",
+ emoji: "π‘",
+ category: "Information",
+ categoryKey: "msg.category.information",
+ level: "info",
+ createdAt: Date.parse("2026-04-20T10:00:00Z"),
+ body: "Live Stream (green button in the viewer) and KSampler Preview can be activated by default via Settings β Majoor Assets Manager βΊ Viewer. When Live Stream is on, clicking a Load Image node or when a generation ends will automatically open the Floating Viewer and display the result. KSampler Preview streams the denoising steps live. Both toggles can be set as the default state so the viewer is always ready.",
+ bodyKey: "msg.tip.body.mfvLivePreviewDefaults",
+ actionLabel: "Settings Guide",
+ actionLabelKey: "label.settingsGuide",
+ actionUrl: "docs/SETTINGS_CONFIGURATION.md"
}
-]), uM = new Set(
- Db.map((e) => String((e == null ? void 0 : e.id) || "").trim()).filter(Boolean)
+]), IM = new Set(
+ Eb.map((e) => String((e == null ? void 0 : e.id) || "").trim()).filter(Boolean)
);
-function Al(e, t = 0) {
+function Wl(e, t = 0) {
const n = Number(e);
return Number.isFinite(n) ? n : t;
}
-function Cl() {
+function Zl() {
return Date.now();
}
-function mM() {
- return Ys(`msg-${Cl()}-`, 6);
+function bM() {
+ return ks(`msg-${Zl()}-`, 6);
}
-function gM(e) {
+function pM(e) {
const t = String(e || "").trim().toLowerCase();
- return t === "warn" ? "warning" : t === "danger" ? "error" : dM.has(t) ? t : "info";
+ return t === "warn" ? "warning" : t === "danger" ? "error" : gM.has(t) ? t : "info";
}
-function IM(e) {
- return uM.has(String(e || "").trim());
+function yM(e) {
+ return IM.has(String(e || "").trim());
}
-function Eb(e = {}) {
- const t = String((e == null ? void 0 : e.id) || "").trim() || mM(), n = String((e == null ? void 0 : e.title) || "").trim() || "Info", i = String((e == null ? void 0 : e.titleKey) || "").trim(), o = String((e == null ? void 0 : e.emoji) || "").trim(), r = String((e == null ? void 0 : e.body) || "").trim(), l = String((e == null ? void 0 : e.bodyKey) || "").trim(), a = String((e == null ? void 0 : e.category) || "").trim() || "Info", c = String((e == null ? void 0 : e.categoryKey) || "").trim(), s = Al(e == null ? void 0 : e.createdAt, Cl()), d = gM(e == null ? void 0 : e.level), u = String((e == null ? void 0 : e.actionLabel) || "").trim(), I = String((e == null ? void 0 : e.actionLabelKey) || "").trim(), p = String((e == null ? void 0 : e.actionUrl) || "").trim();
+function Hb(e = {}) {
+ const t = String((e == null ? void 0 : e.id) || "").trim() || bM(), n = String((e == null ? void 0 : e.title) || "").trim() || "Info", i = String((e == null ? void 0 : e.titleKey) || "").trim(), o = String((e == null ? void 0 : e.emoji) || "").trim(), r = String((e == null ? void 0 : e.body) || "").trim(), l = String((e == null ? void 0 : e.bodyKey) || "").trim(), a = String((e == null ? void 0 : e.category) || "").trim() || "Info", c = String((e == null ? void 0 : e.categoryKey) || "").trim(), s = Wl(e == null ? void 0 : e.createdAt, Zl()), d = pM(e == null ? void 0 : e.level), u = String((e == null ? void 0 : e.actionLabel) || "").trim(), I = String((e == null ? void 0 : e.actionLabelKey) || "").trim(), p = String((e == null ? void 0 : e.actionUrl) || "").trim();
return {
id: t,
title: n,
@@ -29690,7 +29735,7 @@ function Eb(e = {}) {
actionUrl: p
};
}
-function Hb(e, t) {
+function qb(e, t) {
try {
const n = localStorage.getItem(e);
return n ? JSON.parse(n) : t;
@@ -29698,67 +29743,67 @@ function Hb(e, t) {
return t;
}
}
-function bM(e, t) {
+function fM(e, t) {
try {
localStorage.setItem(e, JSON.stringify(t));
} catch {
}
}
-function qb() {
+function Pb() {
try {
- return Al(localStorage.getItem(Ub), 0);
+ return Wl(localStorage.getItem(Kb), 0);
} catch {
return 0;
}
}
-function pM(e) {
+function hM(e) {
try {
- localStorage.setItem(Ub, String(Al(e, Cl())));
+ localStorage.setItem(Kb, String(Wl(e, Zl())));
} catch {
}
}
-function yM() {
- const e = Hb(cM, []), t = Array.isArray(e) ? e : [];
+function CM() {
+ const e = qb(uM, []), t = Array.isArray(e) ? e : [];
return new Set(
- t.map((n) => String(n || "").trim()).filter((n) => IM(n))
+ t.map((n) => String(n || "").trim()).filter((n) => yM(n))
);
}
-function Pb() {
- Ai.sort((e, t) => Number(t.createdAt || 0) - Number(e.createdAt || 0)), Ai.length > pm && (Ai = Ai.slice(0, pm));
+function Qb() {
+ wi.sort((e, t) => Number(t.createdAt || 0) - Number(e.createdAt || 0)), wi.length > fm && (wi = wi.slice(0, fm));
}
-function fM() {
- bM(Bb, Ai);
+function ZM() {
+ fM(Ub, wi);
}
-function hM() {
- const e = yM();
+function AM() {
+ const e = CM();
let t = !1;
- for (const n of Db) {
- const i = Eb(n);
+ for (const n of Eb) {
+ const i = Hb(n);
if (e.has(i.id))
continue;
- const o = Ai.findIndex((a) => a.id === i.id);
+ const o = wi.findIndex((a) => a.id === i.id);
if (o < 0) {
- Ai.push(i), t = !0;
+ wi.push(i), t = !0;
continue;
}
- const r = Ai[o], l = {
+ const r = wi[o], l = {
...r,
...i,
// Keep the original publish timestamp if already present.
- createdAt: Al(r == null ? void 0 : r.createdAt, i.createdAt)
+ createdAt: Wl(r == null ? void 0 : r.createdAt, i.createdAt)
};
- JSON.stringify(r) !== JSON.stringify(l) && (Ai[o] = l, t = !0);
+ JSON.stringify(r) !== JSON.stringify(l) && (wi[o] = l, t = !0);
}
- return t ? (Pb(), fM(), !0) : !1;
+ return t ? (Qb(), ZM(), !0) : !1;
}
-function Qb() {
+function _b() {
var e;
try {
window.dispatchEvent(
- new CustomEvent(Kb, {
+ new CustomEvent(Db, {
detail: {
- total: Ai.length,
- unread: ps()
+ total: wi.length,
+ unread: fs()
}
})
);
@@ -29766,30 +29811,30 @@ function Qb() {
(e = console.debug) == null || e.call(console, t);
}
}
-function Wl() {
- if (ym) return;
- ym = !0;
- const e = Hb(Bb, []);
- Ai = (Array.isArray(e) ? e : []).map(Eb), Pb();
+function wl() {
+ if (hm) return;
+ hm = !0;
+ const e = qb(Ub, []);
+ wi = (Array.isArray(e) ? e : []).map(Hb), Qb();
}
-function CM() {
- Wl(), hM() && Qb();
+function WM() {
+ wl(), AM() && _b();
}
-function ZM() {
- return Wl(), Ai.map((e) => ({ ...e }));
+function wM() {
+ return wl(), wi.map((e) => ({ ...e }));
}
-function ps() {
- Wl();
- const e = qb();
- return Ai.reduce((t, n) => t + (Number(n.createdAt || 0) > e ? 1 : 0), 0);
+function fs() {
+ wl();
+ const e = Pb();
+ return wi.reduce((t, n) => t + (Number(n.createdAt || 0) > e ? 1 : 0), 0);
}
-function AM() {
- return Wl(), qb();
+function MM() {
+ return wl(), Pb();
}
-function Mc({ upTo: e = Cl() } = {}) {
- Wl(), pM(Al(e, Cl())), Qb();
+function Sc({ upTo: e = Zl() } = {}) {
+ wl(), hM(Wl(e, Zl())), _b();
}
-const WM = Object.freeze([
+const SM = Object.freeze([
{
id: "panel",
titleKey: "msg.shortcuts.section.panel",
@@ -29858,13 +29903,13 @@ const WM = Object.freeze([
])
}
]);
-function wM() {
- return WM.map((e) => ({
+function GM() {
+ return SM.map((e) => ({
...e,
items: Array.isArray(e.items) ? e.items.map((t) => ({ ...t })) : []
}));
}
-function MM() {
+function xM() {
const e = document.createElement("div");
e.className = "mjr-shortcut-guide";
const t = document.createElement("div");
@@ -29872,7 +29917,7 @@ function MM() {
"msg.shortcuts.intro",
"Current keyboard shortcuts grouped by section for quick reference."
), e.appendChild(t);
- for (const n of wM()) {
+ for (const n of GM()) {
const i = document.createElement("section");
i.className = "mjr-shortcut-section";
const o = document.createElement("div");
@@ -29891,8 +29936,8 @@ function MM() {
}
return e;
}
-const SM = /* @__PURE__ */ new Set(["info", "success", "warning", "error"]);
-function fm(e) {
+const jM = /* @__PURE__ */ new Set(["info", "success", "warning", "error"]);
+function Cm(e) {
const t = Number(e);
if (!Number.isFinite(t) || t <= 0) return "";
try {
@@ -29907,15 +29952,15 @@ function fm(e) {
return "";
}
}
-function Dl(e, t, n, i) {
+function El(e, t, n, i) {
const o = String((e == null ? void 0 : e[t]) || "").trim(), r = String((e == null ? void 0 : e[n]) || i || "").trim() || String(i || "");
return o ? m(o, r) : r;
}
-function _b(e) {
+function $b(e) {
const t = String(e || "").trim().toLowerCase();
- return t === "warn" ? "warning" : t === "danger" ? "error" : SM.has(t) ? t : "info";
+ return t === "warn" ? "warning" : t === "danger" ? "error" : jM.has(t) ? t : "info";
}
-function hm(e) {
+function Zm(e) {
var n, i;
const t = String(e || "").trim();
if (!t) return "";
@@ -29926,13 +29971,13 @@ function hm(e) {
return "";
}
}
-function GM(e) {
+function vM(e) {
const t = String((e == null ? void 0 : e.emoji) || "").trim();
if (t) return t;
- const n = _b(e == null ? void 0 : e.level);
+ const n = $b(e == null ? void 0 : e.level);
return n === "success" ? "β
" : n === "warning" ? "β οΈ" : n === "error" ? "β" : "π‘";
}
-function xM(e) {
+function LM(e) {
switch (String(e || "").toLowerCase()) {
case "success":
return "β
";
@@ -29944,22 +29989,22 @@ function xM(e) {
return "π‘";
}
}
-function jM(e) {
+function VM(e) {
if (e != null && e.persistent) return "persistent";
const t = Number(e == null ? void 0 : e.durationMs);
return !Number.isFinite(t) || t <= 0 ? "" : t < 1e4 ? `${(t / 1e3).toFixed(1)}s` : `${Math.round(t / 1e3)}s`;
}
-function vM(e) {
+function YM(e) {
const t = String(e || "").trim().toLowerCase();
return t ? t.replace(/[_-]+/g, " ") : "";
}
-function LM(e) {
+function kM(e) {
const t = e == null ? void 0 : e.progress;
if (!t || typeof t != "object") return "";
const n = String(t.label || "").trim(), i = Number(t.current), o = Number(t.total), r = Number(t.indexed), l = Number(t.skipped), a = Number(t.errors), c = [];
return n && c.push(n), Number.isFinite(i) && Number.isFinite(o) && o > 0 && c.push(`${i}/${o}`), Number.isFinite(r) && c.push(`indexed ${r}`), Number.isFinite(l) && c.push(`skipped ${l}`), Number.isFinite(a) && a > 0 && c.push(`errors ${a}`), c.join(" | ");
}
-function YM(e) {
+function XM(e) {
const t = e == null ? void 0 : e.progress;
if (!t || typeof t != "object") return null;
const n = Number(t.percent);
@@ -29967,7 +30012,7 @@ function YM(e) {
const i = Number(t.current), o = Number(t.total);
return Number.isFinite(i) && Number.isFinite(o) && o > 0 ? Math.max(0, Math.min(100, Math.round(i / o * 100))) : null;
}
-function zr({
+function Tr({
activeTab: e = "messages",
title: t = null,
messagePopover: n = null,
@@ -29979,20 +30024,20 @@ function zr({
shortcutsPanel: c = null,
markReadBtn: s = null
} = {}) {
- var M, Z, A;
+ var S, A, C;
const d = e === "messages", u = e === "history", I = e === "shortcuts", p = d ? m("label.messages", "Messages") : u ? m("label.toastHistory", "History") : m("msg.shortcuts.title", "Shortcut Guide");
try {
i == null || i.classList.toggle("is-active", d), i == null || i.setAttribute("aria-selected", d ? "true" : "false"), i == null || i.setAttribute("tabindex", d ? "0" : "-1"), o == null || o.classList.toggle("is-active", u), o == null || o.setAttribute("aria-selected", u ? "true" : "false"), o == null || o.setAttribute("tabindex", u ? "0" : "-1"), r == null || r.classList.toggle("is-active", I), r == null || r.setAttribute("aria-selected", I ? "true" : "false"), r == null || r.setAttribute("tabindex", I ? "0" : "-1");
} catch (g) {
- (M = console.debug) == null || M.call(console, g);
+ (S = console.debug) == null || S.call(console, g);
}
try {
- t && (t.textContent = p), (Z = n == null ? void 0 : n.setAttribute) == null || Z.call(n, "aria-label", p), l && (l.hidden = !d, l.style.display = d ? "" : "none", l.setAttribute("aria-hidden", d ? "false" : "true")), a && (a.hidden = !u, a.style.display = u ? "" : "none", a.setAttribute("aria-hidden", u ? "false" : "true")), c && (c.hidden = !I, c.style.display = I ? "" : "none", c.setAttribute("aria-hidden", I ? "false" : "true")), s && (s.hidden = !d);
+ t && (t.textContent = p), (A = n == null ? void 0 : n.setAttribute) == null || A.call(n, "aria-label", p), l && (l.hidden = !d, l.style.display = d ? "" : "none", l.setAttribute("aria-hidden", d ? "false" : "true")), a && (a.hidden = !u, a.style.display = u ? "" : "none", a.setAttribute("aria-hidden", u ? "false" : "true")), c && (c.hidden = !I, c.style.display = I ? "" : "none", c.setAttribute("aria-hidden", I ? "false" : "true")), s && (s.hidden = !d);
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
}
-function VM({
+function NM({
messageBtn: e = null,
messagePopover: t = null,
title: n = null,
@@ -30007,217 +30052,217 @@ function VM({
shortcutsTabBtn: u = null,
markReadBtn: I = null,
popovers: p = null,
- onBeforeToggle: M = null,
- signal: Z = null
+ onBeforeToggle: S = null,
+ signal: A = null
} = {}) {
- var L, N, q, O, B, J, T;
- CM();
- let A = "messages";
+ var V, k, K, z, B, J, P;
+ WM();
+ let C = "messages";
const g = () => {
- var Q, E, K;
- const D = ((Q = t == null ? void 0 : t.style) == null ? void 0 : Q.display) === "block";
+ var $, E, oe;
+ const H = (($ = t == null ? void 0 : t.style) == null ? void 0 : $.display) === "block";
try {
- e == null || e.setAttribute("aria-expanded", D ? "true" : "false");
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ e == null || e.setAttribute("aria-expanded", H ? "true" : "false");
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
try {
- t == null || t.setAttribute("aria-hidden", D ? "false" : "true");
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ t == null || t.setAttribute("aria-hidden", H ? "false" : "true");
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
- }, h = () => {
+ }, Z = () => {
if (!i) return;
- const D = ZM(), Q = AM();
- if (i.replaceChildren(), !D.length) {
+ const H = wM(), $ = MM();
+ if (i.replaceChildren(), !H.length) {
const E = document.createElement("div");
E.className = "mjr-messages-empty", E.textContent = m("msg.noMessages", "No messages for now."), i.appendChild(E);
return;
}
- for (const E of D) {
- const K = document.createElement("article");
- K.className = "mjr-message-item";
- const F = _b(E == null ? void 0 : E.level);
- K.classList.add(`mjr-message-item--${F}`);
- const Y = Number((E == null ? void 0 : E.createdAt) || 0);
- Y > Number(Q || 0) && K.classList.add("mjr-message-item--unread");
- const P = document.createElement("div");
- P.className = "mjr-message-item-head";
- const ee = document.createElement("div");
- ee.className = "mjr-message-item-title-wrap";
- const oe = document.createElement("span");
- oe.className = "mjr-message-item-emoji", oe.textContent = GM(E), oe.setAttribute("aria-hidden", "true");
+ for (const E of H) {
+ const oe = document.createElement("article");
+ oe.className = "mjr-message-item";
+ const M = $b(E == null ? void 0 : E.level);
+ oe.classList.add(`mjr-message-item--${M}`);
+ const j = Number((E == null ? void 0 : E.createdAt) || 0);
+ j > Number($ || 0) && oe.classList.add("mjr-message-item--unread");
+ const D = document.createElement("div");
+ D.className = "mjr-message-item-head";
+ const q = document.createElement("div");
+ q.className = "mjr-message-item-title-wrap";
+ const ee = document.createElement("span");
+ ee.className = "mjr-message-item-emoji", ee.textContent = vM(E), ee.setAttribute("aria-hidden", "true");
const ce = document.createElement("div");
- ce.className = "mjr-message-item-title", ce.textContent = Dl(
+ ce.className = "mjr-message-item-title", ce.textContent = El(
E,
"titleKey",
"title",
m("label.info", "Info")
);
- const pe = document.createElement("span");
- pe.className = "mjr-message-item-category", pe.textContent = Dl(
+ const ue = document.createElement("span");
+ ue.className = "mjr-message-item-category", ue.textContent = El(
E,
"categoryKey",
"category",
m("label.info", "Info")
- ), ee.appendChild(oe), ee.appendChild(ce), P.appendChild(ee), P.appendChild(pe);
- const H = document.createElement("div");
- H.className = "mjr-message-item-meta", H.textContent = fm(Y);
- const $ = document.createElement("div");
- $.className = "mjr-message-item-body", $.textContent = Dl(E, "bodyKey", "body", ""), K.appendChild(P), H.textContent && K.appendChild(H), $.textContent && K.appendChild($);
- const _ = hm(E == null ? void 0 : E.actionUrl), le = Dl(
+ ), q.appendChild(ee), q.appendChild(ce), D.appendChild(q), D.appendChild(ue);
+ const U = document.createElement("div");
+ U.className = "mjr-message-item-meta", U.textContent = Cm(j);
+ const Q = document.createElement("div");
+ Q.className = "mjr-message-item-body", Q.textContent = El(E, "bodyKey", "body", ""), oe.appendChild(D), U.textContent && oe.appendChild(U), Q.textContent && oe.appendChild(Q);
+ const _ = Zm(E == null ? void 0 : E.actionUrl), le = El(
E,
"actionLabelKey",
"actionLabel",
m("label.readMe", "Read Me")
);
if (_ && le) {
- const se = document.createElement("a");
- se.className = "mjr-message-item-action", se.href = _, se.target = "_blank", se.rel = "noopener noreferrer", se.textContent = le, K.appendChild(se);
+ const de = document.createElement("a");
+ de.className = "mjr-message-item-action", de.href = _, de.target = "_blank", de.rel = "noopener noreferrer", de.textContent = le, oe.appendChild(de);
}
- i.appendChild(K);
+ i.appendChild(oe);
}
}, f = () => {
if (!a) return;
- const D = Dy();
- let Q = a.querySelector(".mjr-history-list");
- if (!Q) {
+ const H = qy();
+ let $ = a.querySelector(".mjr-history-list");
+ if (!$) {
const E = document.createElement("div");
E.className = "mjr-history-head";
- const K = document.createElement("span");
- K.className = "mjr-history-head-label", K.textContent = m("label.recentActivity", "Recent activity");
- const F = document.createElement("button");
- F.type = "button", F.className = "mjr-btn mjr-history-clear-btn", F.textContent = m("btn.clearHistory", "Clear"), F.title = m("tooltip.clearToastHistory", "Clear toast history"), F.addEventListener(
+ const oe = document.createElement("span");
+ oe.className = "mjr-history-head-label", oe.textContent = m("label.recentActivity", "Recent activity");
+ const M = document.createElement("button");
+ M.type = "button", M.className = "mjr-btn mjr-history-clear-btn", M.textContent = m("btn.clearHistory", "Clear"), M.title = m("tooltip.clearToastHistory", "Clear toast history"), M.addEventListener(
"click",
- (Y) => {
- Y.stopPropagation(), qy(), f();
+ (j) => {
+ j.stopPropagation(), _y(), f();
},
- Z ? { signal: Z } : void 0
- ), E.appendChild(K), E.appendChild(F), Q = document.createElement("div"), Q.className = "mjr-history-list", a.replaceChildren(E, Q);
+ A ? { signal: A } : void 0
+ ), E.appendChild(oe), E.appendChild(M), $ = document.createElement("div"), $.className = "mjr-history-list", a.replaceChildren(E, $);
}
- if (Q.replaceChildren(), !D.length) {
+ if ($.replaceChildren(), !H.length) {
const E = document.createElement("div");
- E.className = "mjr-messages-empty", E.textContent = m("msg.noHistory", "No recent activity."), Q.appendChild(E);
+ E.className = "mjr-messages-empty", E.textContent = m("msg.noHistory", "No recent activity."), $.appendChild(E);
return;
}
- for (const E of D) {
- const K = document.createElement("div");
- K.className = `mjr-history-item mjr-history-item--${String(E.type || "info")}`;
- const F = document.createElement("span");
- F.className = "mjr-history-item-icon", F.textContent = xM(E.type), F.setAttribute("aria-hidden", "true");
- const Y = document.createElement("div");
- Y.className = "mjr-history-item-content";
- const U = String(E.title || "").trim(), P = String(E.detail || "").trim(), ee = String(E.message || "").trim(), oe = U || ee, ce = U && P ? P : U ? "" : P, pe = document.createElement("div");
- pe.className = U ? "mjr-history-item-title" : "mjr-history-item-msg", pe.textContent = oe;
- const H = document.createElement("div");
- H.className = "mjr-history-item-detail", H.textContent = ce;
- const $ = document.createElement("div");
- $.className = "mjr-history-item-meta";
+ for (const E of H) {
+ const oe = document.createElement("div");
+ oe.className = `mjr-history-item mjr-history-item--${String(E.type || "info")}`;
+ const M = document.createElement("span");
+ M.className = "mjr-history-item-icon", M.textContent = LM(E.type), M.setAttribute("aria-hidden", "true");
+ const j = document.createElement("div");
+ j.className = "mjr-history-item-content";
+ const O = String(E.title || "").trim(), D = String(E.detail || "").trim(), q = String(E.message || "").trim(), ee = O || q, ce = O && D ? D : O ? "" : D, ue = document.createElement("div");
+ ue.className = O ? "mjr-history-item-title" : "mjr-history-item-msg", ue.textContent = ee;
+ const U = document.createElement("div");
+ U.className = "mjr-history-item-detail", U.textContent = ce;
+ const Q = document.createElement("div");
+ Q.className = "mjr-history-item-meta";
const _ = document.createElement("span");
- _.className = "mjr-history-item-time", _.textContent = fm(E.createdAt);
+ _.className = "mjr-history-item-time", _.textContent = Cm(E.createdAt);
const le = document.createElement("span");
- le.className = "mjr-history-item-chip", le.textContent = jM(E);
- const se = document.createElement("span");
- se.className = "mjr-history-item-chip", se.textContent = String(E.source || "").trim();
+ le.className = "mjr-history-item-chip", le.textContent = VM(E);
const de = document.createElement("span");
- de.className = "mjr-history-item-chip", de.textContent = vM(E.status), Y.appendChild(pe), H.textContent && Y.appendChild(H), _.textContent && $.appendChild(_), le.textContent && $.appendChild(le), de.textContent && $.appendChild(de), se.textContent && $.appendChild(se), $.childNodes.length && Y.appendChild($);
- const Ze = LM(E), Fe = YM(E);
- if (Ze || Fe !== null) {
- const We = document.createElement("div");
- if (We.className = "mjr-history-item-progress", Ze) {
- const De = document.createElement("div");
- De.className = "mjr-history-item-progress-summary", De.textContent = Ze, We.appendChild(De);
+ de.className = "mjr-history-item-chip", de.textContent = String(E.source || "").trim();
+ const se = document.createElement("span");
+ se.className = "mjr-history-item-chip", se.textContent = YM(E.status), j.appendChild(ue), U.textContent && j.appendChild(U), _.textContent && Q.appendChild(_), le.textContent && Q.appendChild(le), se.textContent && Q.appendChild(se), de.textContent && Q.appendChild(de), Q.childNodes.length && j.appendChild(Q);
+ const ge = kM(E), je = XM(E);
+ if (ge || je !== null) {
+ const we = document.createElement("div");
+ if (we.className = "mjr-history-item-progress", ge) {
+ const Je = document.createElement("div");
+ Je.className = "mjr-history-item-progress-summary", Je.textContent = ge, we.appendChild(Je);
}
- if (Fe !== null) {
- const De = document.createElement("div");
- De.className = "mjr-history-item-progress-bar";
- const Pe = document.createElement("div");
- Pe.className = "mjr-history-item-progress-fill", Pe.style.width = `${Fe}%`, De.appendChild(Pe), We.appendChild(De);
+ if (je !== null) {
+ const Je = document.createElement("div");
+ Je.className = "mjr-history-item-progress-bar";
+ const $e = document.createElement("div");
+ $e.className = "mjr-history-item-progress-fill", $e.style.width = `${je}%`, Je.appendChild($e), we.appendChild(Je);
}
- Y.appendChild(We);
+ j.appendChild(we);
}
- const xe = hm(E == null ? void 0 : E.actionUrl), ze = String((E == null ? void 0 : E.actionLabel) || "").trim();
- if (xe && ze) {
- const We = document.createElement("a");
- We.className = "mjr-history-item-action", We.href = xe, We.target = "_blank", We.rel = "noopener noreferrer", We.textContent = ze, Y.appendChild(We);
+ const Se = Zm(E == null ? void 0 : E.actionUrl), ke = String((E == null ? void 0 : E.actionLabel) || "").trim();
+ if (Se && ke) {
+ const we = document.createElement("a");
+ we.className = "mjr-history-item-action", we.href = Se, we.target = "_blank", we.rel = "noopener noreferrer", we.textContent = ke, j.appendChild(we);
}
- K.appendChild(F), K.appendChild(Y), Q.appendChild(K);
+ oe.appendChild(M), oe.appendChild(j), $.appendChild(oe);
}
- }, b = (D, Q) => {
- if (!D) return;
- const E = Math.max(0, Number(Q || 0) || 0);
+ }, b = (H, $) => {
+ if (!H) return;
+ const E = Math.max(0, Number($ || 0) || 0);
if (E <= 0) {
- D.style.display = "none", D.textContent = "";
+ H.style.display = "none", H.textContent = "";
return;
}
- D.style.display = "inline-flex", D.textContent = E > 99 ? "99+" : String(E);
- }, v = () => {
- const D = Ey();
- r && (r.style.display = D > 0 ? "inline-block" : "none"), b(l, D);
- }, C = () => {
- c && (c.childNodes.length > 0 || c.replaceChildren(MM()));
- }, S = () => {
+ H.style.display = "inline-flex", H.textContent = E > 99 ? "99+" : String(E);
+ }, L = () => {
+ const H = Py();
+ r && (r.style.display = H > 0 ? "inline-block" : "none"), b(l, H);
+ }, h = () => {
+ c && (c.childNodes.length > 0 || c.replaceChildren(xM()));
+ }, G = () => {
if (!I) return;
- const D = Math.max(0, Number(ps() || 0) || 0);
- if (I.disabled = D <= 0, D > 0) {
+ const H = Math.max(0, Number(fs() || 0) || 0);
+ if (I.disabled = H <= 0, H > 0) {
I.title = m("tooltip.markMessagesRead", "Mark all messages as read");
return;
}
I.title = m("tooltip.noUnreadMessages", "No unread messages");
}, W = () => {
- const D = Math.max(0, Number(ps() || 0) || 0);
+ const H = Math.max(0, Number(fs() || 0) || 0);
if (e) {
- const Q = e.querySelector(".mjr-message-badge"), E = D > 0 ? m("tooltip.openMessagesUnread", "Messages ({count} unread)", {
- count: D
+ const $ = e.querySelector(".mjr-message-badge"), E = H > 0 ? m("tooltip.openMessagesUnread", "Messages ({count} unread)", {
+ count: H
}) : m("tooltip.openMessages", "Messages and updates");
- e.classList.toggle("mjr-message-has-unread", D > 0), e.title = E, e.setAttribute("aria-label", E), Q && (D <= 0 ? (Q.style.display = "none", Q.textContent = "") : (Q.style.display = "inline-flex", Q.textContent = D > 9 ? "9+" : String(D)));
+ e.classList.toggle("mjr-message-has-unread", H > 0), e.title = E, e.setAttribute("aria-label", E), $ && (H <= 0 ? ($.style.display = "none", $.textContent = "") : ($.style.display = "inline-flex", $.textContent = H > 9 ? "9+" : String(H)));
}
- b(d, D), S();
+ b(d, H), G();
}, y = () => {
- var D;
- W(), v(), ((D = t == null ? void 0 : t.style) == null ? void 0 : D.display) === "block" && (A === "messages" && h(), A === "history" && f());
- }, k = Z ? { signal: Z } : void 0;
+ var H;
+ W(), L(), ((H = t == null ? void 0 : t.style) == null ? void 0 : H.display) === "block" && (C === "messages" && Z(), C === "history" && f());
+ }, X = A ? { signal: A } : void 0;
try {
- window.addEventListener(Kb, y, k);
- } catch (D) {
- (L = console.debug) == null || L.call(console, D);
+ window.addEventListener(Db, y, X);
+ } catch (H) {
+ (V = console.debug) == null || V.call(console, H);
}
try {
window.addEventListener(
- Wg,
+ wg,
() => {
- var D;
- v(), ((D = t == null ? void 0 : t.style) == null ? void 0 : D.display) === "block" && A === "history" && f();
+ var H;
+ L(), ((H = t == null ? void 0 : t.style) == null ? void 0 : H.display) === "block" && C === "history" && f();
},
- k
+ X
);
- } catch (D) {
- (N = console.debug) == null || N.call(console, D);
+ } catch (H) {
+ (k = console.debug) == null || k.call(console, H);
}
try {
e && t && (t.id || (t.id = "mjr-messages-popover"), e.setAttribute("aria-haspopup", "dialog"), e.setAttribute("aria-controls", t.id));
- } catch (D) {
- (q = console.debug) == null || q.call(console, D);
+ } catch (H) {
+ (K = console.debug) == null || K.call(console, H);
}
- let G = null;
+ let x = null;
try {
- typeof MutationObserver < "u" && t && (G = new MutationObserver(g), G.observe(t, {
+ typeof MutationObserver < "u" && t && (x = new MutationObserver(g), x.observe(t, {
attributes: !0,
attributeFilter: ["style"]
}));
- } catch (D) {
- (O = console.debug) == null || O.call(console, D);
+ } catch (H) {
+ (z = console.debug) == null || z.call(console, H);
}
try {
- (B = Z == null ? void 0 : Z.addEventListener) == null || B.call(Z, "abort", () => {
- var D;
- return (D = G == null ? void 0 : G.disconnect) == null ? void 0 : D.call(G);
+ (B = A == null ? void 0 : A.addEventListener) == null || B.call(A, "abort", () => {
+ var H;
+ return (H = x == null ? void 0 : x.disconnect) == null ? void 0 : H.call(x);
}, { once: !0 });
- } catch (D) {
- (J = console.debug) == null || J.call(console, D);
+ } catch (H) {
+ (J = console.debug) == null || J.call(console, H);
}
- W(), v(), g(), zr({
- activeTab: A,
+ W(), L(), g(), Tr({
+ activeTab: C,
title: n,
messagePopover: t,
messageTabBtn: s,
@@ -30228,9 +30273,9 @@ function VM({
shortcutsPanel: c,
markReadBtn: I
});
- const z = () => {
- A = "messages", zr({
- activeTab: A,
+ const T = () => {
+ C = "messages", Tr({
+ activeTab: C,
title: n,
messagePopover: t,
messageTabBtn: s,
@@ -30240,10 +30285,10 @@ function VM({
historyPanel: a,
shortcutsPanel: c,
markReadBtn: I
- }), h(), Mc(), W();
- }, x = () => {
- A = "history", zr({
- activeTab: A,
+ }), Z(), Sc(), W();
+ }, v = () => {
+ C = "history", Tr({
+ activeTab: C,
title: n,
messagePopover: t,
messageTabBtn: s,
@@ -30253,10 +30298,10 @@ function VM({
historyPanel: a,
shortcutsPanel: c,
markReadBtn: I
- }), f(), Hy(), v();
+ }), f(), Qy(), L();
}, w = () => {
- A = "shortcuts", zr({
- activeTab: A,
+ C = "shortcuts", Tr({
+ activeTab: C,
title: n,
messagePopover: t,
messageTabBtn: s,
@@ -30266,75 +30311,75 @@ function VM({
historyPanel: a,
shortcutsPanel: c,
markReadBtn: I
- }), C();
- }, X = (D) => {
- if (D === "messages") {
- z();
+ }), h();
+ }, R = (H) => {
+ if (H === "messages") {
+ T();
return;
}
- if (D === "history") {
- x();
+ if (H === "history") {
+ v();
return;
}
w();
- }, V = () => {
- var Q, E;
+ }, Y = () => {
+ var $, E;
if (!t || !p || !e) return;
- if (!(((Q = t == null ? void 0 : t.style) == null ? void 0 : Q.display) === "block")) {
+ if (!((($ = t == null ? void 0 : t.style) == null ? void 0 : $.display) === "block")) {
try {
- typeof M == "function" && M();
- } catch (K) {
- (E = console.debug) == null || E.call(console, K);
+ typeof S == "function" && S();
+ } catch (oe) {
+ (E = console.debug) == null || E.call(console, oe);
}
p.toggle(t, e);
}
- x(), g(), W();
+ v(), g(), W();
};
try {
window.addEventListener(
- ft.OPEN_MESSAGE_HISTORY,
+ ht.OPEN_MESSAGE_HISTORY,
() => {
- V();
+ Y();
},
- k
+ X
);
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
- const R = ["messages", "history", "shortcuts"], j = (D, Q) => {
- var F, Y, U, P, ee, oe, ce, pe;
- const E = String((D == null ? void 0 : D.key) || "").toLowerCase(), K = R.indexOf(String(Q || "").toLowerCase());
- if (!(K < 0)) {
+ const F = ["messages", "history", "shortcuts"], N = (H, $) => {
+ var M, j, O, D, q, ee, ce, ue;
+ const E = String((H == null ? void 0 : H.key) || "").toLowerCase(), oe = F.indexOf(String($ || "").toLowerCase());
+ if (!(oe < 0)) {
if (E === "arrowright") {
- D.preventDefault();
- const H = R[(K + 1) % R.length];
- X(H), H === "messages" && ((F = s == null ? void 0 : s.focus) == null || F.call(s)), H === "history" && ((Y = o == null ? void 0 : o.focus) == null || Y.call(o)), H === "shortcuts" && ((U = u == null ? void 0 : u.focus) == null || U.call(u));
+ H.preventDefault();
+ const U = F[(oe + 1) % F.length];
+ R(U), U === "messages" && ((M = s == null ? void 0 : s.focus) == null || M.call(s)), U === "history" && ((j = o == null ? void 0 : o.focus) == null || j.call(o)), U === "shortcuts" && ((O = u == null ? void 0 : u.focus) == null || O.call(u));
return;
}
if (E === "arrowleft") {
- D.preventDefault();
- const H = R[(K + R.length - 1) % R.length];
- X(H), H === "messages" && ((P = s == null ? void 0 : s.focus) == null || P.call(s)), H === "history" && ((ee = o == null ? void 0 : o.focus) == null || ee.call(o)), H === "shortcuts" && ((oe = u == null ? void 0 : u.focus) == null || oe.call(u));
+ H.preventDefault();
+ const U = F[(oe + F.length - 1) % F.length];
+ R(U), U === "messages" && ((D = s == null ? void 0 : s.focus) == null || D.call(s)), U === "history" && ((q = o == null ? void 0 : o.focus) == null || q.call(o)), U === "shortcuts" && ((ee = u == null ? void 0 : u.focus) == null || ee.call(u));
return;
}
if (E === "home") {
- D.preventDefault(), z(), (ce = s == null ? void 0 : s.focus) == null || ce.call(s);
+ H.preventDefault(), T(), (ce = s == null ? void 0 : s.focus) == null || ce.call(s);
return;
}
if (E === "end") {
- D.preventDefault(), w(), (pe = u == null ? void 0 : u.focus) == null || pe.call(u);
+ H.preventDefault(), w(), (ue = u == null ? void 0 : u.focus) == null || ue.call(u);
return;
}
- (E === " " || E === "enter") && (D.preventDefault(), X(Q));
+ (E === " " || E === "enter") && (H.preventDefault(), R($));
}
};
return e == null || e.addEventListener(
"click",
- (D) => {
- var Q, E;
+ (H) => {
+ var $, E;
if (!(!t || !p || !e)) {
- D.stopPropagation(), A = "messages", h(), C(), zr({
- activeTab: A,
+ H.stopPropagation(), C = "messages", Z(), h(), Tr({
+ activeTab: C,
title: n,
messagePopover: t,
messageTabBtn: s,
@@ -30346,64 +30391,64 @@ function VM({
markReadBtn: I
});
try {
- typeof M == "function" && M();
- } catch (K) {
- (Q = console.debug) == null || Q.call(console, K);
+ typeof S == "function" && S();
+ } catch (oe) {
+ ($ = console.debug) == null || $.call(console, oe);
}
- p.toggle(t, e), ((E = t == null ? void 0 : t.style) == null ? void 0 : E.display) === "block" && Mc(), g(), W();
+ p.toggle(t, e), ((E = t == null ? void 0 : t.style) == null ? void 0 : E.display) === "block" && Sc(), g(), W();
}
},
- k
+ X
), s == null || s.addEventListener(
"click",
- (D) => {
- D.preventDefault(), D.stopPropagation(), z();
+ (H) => {
+ H.preventDefault(), H.stopPropagation(), T();
},
- k
+ X
), s == null || s.addEventListener(
"keydown",
- (D) => j(D, "messages"),
- k
+ (H) => N(H, "messages"),
+ X
), o == null || o.addEventListener(
"click",
- (D) => {
- D.preventDefault(), D.stopPropagation(), x();
+ (H) => {
+ H.preventDefault(), H.stopPropagation(), v();
},
- k
+ X
), o == null || o.addEventListener(
"keydown",
- (D) => j(D, "history"),
- k
+ (H) => N(H, "history"),
+ X
), u == null || u.addEventListener(
"click",
- (D) => {
- D.preventDefault(), D.stopPropagation(), w();
+ (H) => {
+ H.preventDefault(), H.stopPropagation(), w();
},
- k
+ X
), u == null || u.addEventListener(
"keydown",
- (D) => j(D, "shortcuts"),
- k
+ (H) => N(H, "shortcuts"),
+ X
), I == null || I.addEventListener(
"click",
- (D) => {
- D.preventDefault(), D.stopPropagation(), Mc(), h(), W();
+ (H) => {
+ H.preventDefault(), H.stopPropagation(), Sc(), Z(), W();
},
- k
+ X
), {
refresh: y,
- render: h,
+ render: Z,
updateButtonState: W,
- showMessagesTab: z,
- showHistoryTab: x,
+ showMessagesTab: T,
+ showHistoryTab: v,
showShortcutsTab: w,
- openHistoryPopover: V,
+ openHistoryPopover: Y,
close: () => {
!t || !p || (p.close(t), g());
}
};
}
-function kM(e) {
+function RM(e) {
let t = e;
for (let n = 0; n < 3 && !(!t || typeof t != "object" || !("value" in t)); n += 1) {
const i = t.value;
@@ -30412,9 +30457,9 @@ function kM(e) {
}
return t;
}
-function XM(e) {
+function FM(e) {
var i;
- const t = kM(e);
+ const t = RM(e);
if (!t) return null;
const n = String((t == null ? void 0 : t.tagName) || "").toUpperCase();
if (n === "INPUT" || n === "TEXTAREA") return t;
@@ -30428,11 +30473,11 @@ function XM(e) {
}
return null;
}
-function ys(e) {
- const t = XM(e), n = t ? t.value : typeof (e == null ? void 0 : e.value) == "string" ? e.value : "";
+function hs(e) {
+ const t = FM(e), n = t ? t.value : typeof (e == null ? void 0 : e.value) == "string" ? e.value : "";
return String(n || "").trim() || "*";
}
-function NM({
+function OM({
gridContainer: e,
loadAssets: t,
loadAssetsFromList: n,
@@ -30442,7 +30487,7 @@ function NM({
searchInputEl: l,
state: a
}) {
- const { read: c, write: s } = no(a, [
+ const { read: c, write: s } = oo(a, [
"scope",
"customRootId",
"currentFolderRelativePath",
@@ -30471,54 +30516,54 @@ function NM({
"lastGridCount",
"lastGridTotal"
]);
- let d = !1, u = !1, I = {}, p = 0, M = 0;
- const Z = 3e4, A = 15e4, g = 15e3, h = 30, f = async (X, V = Z) => {
- let R = null;
+ let d = !1, u = !1, I = {}, p = 0, S = 0;
+ const A = 3e4, C = 15e4, g = 15e3, Z = 30, f = async (R, Y = A) => {
+ let F = null;
try {
- const j = new Promise((L, N) => {
- R = setTimeout(() => {
- const q = new Error(`Grid reload watchdog timeout (${V}ms)`);
- q.name = "GridReloadTimeout", N(q);
- }, V);
+ const N = new Promise((V, k) => {
+ F = setTimeout(() => {
+ const K = new Error(`Grid reload watchdog timeout (${Y}ms)`);
+ K.name = "GridReloadTimeout", k(K);
+ }, Y);
});
- return await Promise.race([X(), j]);
+ return await Promise.race([R(), N]);
} finally {
- R && clearTimeout(R);
+ F && clearTimeout(F);
}
}, b = () => {
- var X;
+ var R;
try {
- return ((X = l == null ? void 0 : l.dataset) == null ? void 0 : X.mjrSemanticMode) === "1";
+ return ((R = l == null ? void 0 : l.dataset) == null ? void 0 : R.mjrSemanticMode) === "1";
} catch {
return !1;
}
- }, v = () => {
- var X;
+ }, L = () => {
+ var R;
try {
- const V = Xn();
- return !!(((X = V == null ? void 0 : V.ai) == null ? void 0 : X.vectorSearchEnabled) ?? !0);
+ const Y = Xn();
+ return !!(((R = Y == null ? void 0 : Y.ai) == null ? void 0 : R.vectorSearchEnabled) ?? !0);
} catch {
return !0;
}
- }, C = (X, V = "") => {
+ }, h = (R, Y = "") => {
try {
- if (X && typeof X == "object")
- return String(X.error || X.message || V || "").trim();
+ if (R && typeof R == "object")
+ return String(R.error || R.message || Y || "").trim();
} catch {
}
try {
- return String(X || V || "").trim();
+ return String(R || Y || "").trim();
} catch {
- return String(V || "").trim();
+ return String(Y || "").trim();
}
- }, S = (X = []) => !Array.isArray(X) || X.length === 0 ? !1 : X.some((V) => {
- if (String((V == null ? void 0 : V._matchType) || (V == null ? void 0 : V.matchType) || "").trim().toLowerCase().includes("semantic")) return !0;
- const j = Number((V == null ? void 0 : V._vectorScore) ?? (V == null ? void 0 : V.vectorScore) ?? NaN);
- return Number.isFinite(j) && j > 0;
+ }, G = (R = []) => !Array.isArray(R) || R.length === 0 ? !1 : R.some((Y) => {
+ if (String((Y == null ? void 0 : Y._matchType) || (Y == null ? void 0 : Y.matchType) || "").trim().toLowerCase().includes("semantic")) return !0;
+ const N = Number((Y == null ? void 0 : Y._vectorScore) ?? (Y == null ? void 0 : Y.vectorScore) ?? NaN);
+ return Number.isFinite(N) && N > 0;
}), W = () => {
- const X = String(c("currentFolderRelativePath", "") || "").trim();
+ const R = String(c("currentFolderRelativePath", "") || "").trim();
return {
- subfolder: !(c("scope", "output") === "custom" && !c("customRootId", "")) && X ? X : null,
+ subfolder: !(c("scope", "output") === "custom" && !c("customRootId", "")) && R ? R : null,
kind: c("kindFilter", "") || null,
hasWorkflow: c("workflowOnly", !1) ? !0 : null,
minRating: Number(c("minRating", 0) || 0) > 0 ? Number(c("minRating", 0) || 0) : null,
@@ -30532,21 +30577,21 @@ function NM({
dateRange: String(c("dateRangeFilter", "") || "").trim().toLowerCase() || null,
dateExact: String(c("dateExactFilter", "") || "").trim() || null
};
- }, y = async (X = "") => {
- var j, L, N;
- const V = Date.now();
- if (V - Number(M || 0) < g) return;
- M = V;
+ }, y = async (R = "") => {
+ var N, V, k;
+ const Y = Date.now();
+ if (Y - Number(S || 0) < g) return;
+ S = Y;
try {
- const q = await Ga();
- if (q != null && q.ok && (q != null && q.data)) {
- const O = Number(((j = q.data) == null ? void 0 : j.total) || 0) || 0, B = Number(((L = q.data) == null ? void 0 : L.eligible_total) || 0) || 0, J = Number(((N = q.data) == null ? void 0 : N.coverage_ratio) ?? NaN);
- if (O <= 10) {
- Ce(
+ const K = await xa();
+ if (K != null && K.ok && (K != null && K.data)) {
+ const z = Number(((N = K.data) == null ? void 0 : N.total) || 0) || 0, B = Number(((V = K.data) == null ? void 0 : V.eligible_total) || 0) || 0, J = Number(((k = K.data) == null ? void 0 : k.coverage_ratio) ?? NaN);
+ if (z <= 10) {
+ Ze(
m(
"toast.aiSearchNeedsBackfill",
"AI search index is almost empty ({count} vectors). Run Enrich, then Vector Backfill for existing assets.",
- { count: O }
+ { count: z }
),
"warn",
6500
@@ -30554,12 +30599,12 @@ function NM({
return;
}
if (B > 0 && Number.isFinite(J) && J > 0 && J < 0.75) {
- Ce(
+ Ze(
m(
"toast.aiSearchPartiallyIndexed",
"AI search index is only partially built ({indexed}/{eligible}, {percent}%). Run Vector Backfill for existing assets.",
{
- indexed: O,
+ indexed: z,
eligible: B,
percent: Math.round(J * 100)
}
@@ -30572,174 +30617,175 @@ function NM({
}
} catch {
}
- const R = C(
- X,
+ const F = h(
+ R,
m(
"toast.aiSearchUnavailable",
"AI search is currently unavailable. Falling back to normal search."
)
);
- Ce(R, "warn", 5200);
- }, k = async (X, V = {}) => {
- var T, D;
- let R = String(X || "").trim();
- const j = /^ai:\s*/i.test(R);
- j && (R = R.replace(/^ai:\s*/i, "").trim());
- const L = v(), N = L && b();
- if (!L)
- return await t(e, R || "*", V);
- const q = N || j;
- let O = !1, B = "";
- if (q && R && R !== "*") {
- O = !0;
- const Q = W();
+ Ze(F, "warn", 5200);
+ }, X = async (R, Y = {}) => {
+ var P, H;
+ let F = String(R || "").trim();
+ const N = /^ai:\s*/i.test(F);
+ N && (F = F.replace(/^ai:\s*/i, "").trim());
+ const V = L(), k = V && b();
+ if (!V)
+ return await t(e, F || "*", Y);
+ const K = k || N;
+ let z = !1, B = "";
+ if (K && F && F !== "*") {
+ z = !0;
+ const $ = W();
try {
- const E = await Hf(R, {
+ const E = await Qf(F, {
topK: 100,
scope: c("scope", "output") || "output",
customRootId: c("customRootId", "") || "",
- ...Q
+ ...$
});
- if (E != null && E.ok && Array.isArray(E.data) && E.data.length > 0 && S(E.data))
+ if (E != null && E.ok && Array.isArray(E.data) && E.data.length > 0 && G(E.data))
return await n(e, E.data, {
- title: `AI Search: "${R}" (${E.data.length} results)`,
+ title: `AI Search: "${F}" (${E.data.length} results)`,
reset: !0,
- ...V
+ ...Y
});
- (E == null ? void 0 : E.ok) === !1 && (B = C((E == null ? void 0 : E.error) || (E == null ? void 0 : E.message), B));
+ (E == null ? void 0 : E.ok) === !1 && (B = h((E == null ? void 0 : E.error) || (E == null ? void 0 : E.message), B));
} catch (E) {
- B = C(E, B), (T = console.debug) == null || T.call(console, "[Majoor] Hybrid search failed, trying pure semantic", E);
+ B = h(E, B), (P = console.debug) == null || P.call(console, "[Majoor] Hybrid search failed, trying pure semantic", E);
}
try {
- const E = await Rg(R, {
+ const E = await Fg(F, {
topK: 100,
scope: c("scope", "output") || "output",
customRootId: c("customRootId", "") || "",
- ...Q
+ ...$
});
if (E != null && E.ok && Array.isArray(E.data) && E.data.length > 0)
return await n(e, E.data, {
- title: `AI Search: "${R}" (${E.data.length} results)`,
+ title: `AI Search: "${F}" (${E.data.length} results)`,
reset: !0,
- ...V
+ ...Y
});
- (E == null ? void 0 : E.ok) === !1 && (B = C((E == null ? void 0 : E.error) || (E == null ? void 0 : E.message), B));
+ (E == null ? void 0 : E.ok) === !1 && (B = h((E == null ? void 0 : E.error) || (E == null ? void 0 : E.message), B));
} catch (E) {
- B = C(E, B), (D = console.debug) == null || D.call(console, "[Majoor] Semantic search failed, falling back to FTS", E);
+ B = h(E, B), (H = console.debug) == null || H.call(console, "[Majoor] Semantic search failed, falling back to FTS", E);
}
}
- const J = await t(e, R || "*", V);
- return O && B && (Number((J == null ? void 0 : J.count) || 0) || 0) === 0 && y(B), J;
- }, G = async (X = {}) => {
- var O, B, J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe;
+ const J = await t(e, F || "*", Y);
+ return z && B && (Number((J == null ? void 0 : J.count) || 0) || 0) === 0 && y(B), J;
+ }, x = async (R = {}) => {
+ var z, B, J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue;
+ const Y = String(e.dataset.mjrViewScope || "").trim().toLowerCase(), F = String(c("viewScope", (a == null ? void 0 : a.viewScope) || "") || "").trim().toLowerCase();
+ e.dataset.mjrScope = c("scope", "output"), e.dataset.mjrViewScope = F, e.dataset.mjrCustomRootId = c("customRootId", "") || "";
+ const N = c("currentFolderRelativePath", "") || "";
+ e.dataset.mjrSubfolder = N, e.dataset.mjrFilterKind = c("kindFilter", "") || "", e.dataset.mjrFilterWorkflowOnly = c("workflowOnly", !1) ? "1" : "0", e.dataset.mjrFilterMinRating = String(c("minRating", 0) || 0), e.dataset.mjrFilterMinSizeMB = String(c("minSizeMB", 0) || 0), e.dataset.mjrFilterMaxSizeMB = String(c("maxSizeMB", 0) || 0), e.dataset.mjrFilterResolutionCompare = String(c("resolutionCompare", "gte") || "gte"), e.dataset.mjrFilterMinWidth = String(c("minWidth", 0) || 0), e.dataset.mjrFilterMinHeight = String(c("minHeight", 0) || 0), e.dataset.mjrFilterMaxWidth = String(c("maxWidth", 0) || 0), e.dataset.mjrFilterMaxHeight = String(c("maxHeight", 0) || 0), e.dataset.mjrFilterWorkflowType = String(c("workflowType", "") || ""), e.dataset.mjrFilterDateRange = c("dateRangeFilter", "") || "", e.dataset.mjrFilterDateExact = c("dateExactFilter", "") || "", e.dataset.mjrSort = c("sort", "mtime_desc") || "mtime_desc", e.dataset.mjrCollectionId = c("collectionId", "") || "", e.dataset.mjrSemanticMode = b() ? "1" : "0";
try {
e.dataset.mjrQuery = String((r == null ? void 0 : r()) ?? "*") || "*";
- } catch (H) {
- (O = console.debug) == null || O.call(console, H);
+ } catch (U) {
+ (z = console.debug) == null || z.call(console, U);
}
- const V = String(e.dataset.mjrViewScope || "").trim().toLowerCase(), R = String(c("viewScope", (a == null ? void 0 : a.viewScope) || "") || "").trim().toLowerCase();
- e.dataset.mjrScope = c("scope", "output"), e.dataset.mjrViewScope = R, e.dataset.mjrCustomRootId = c("customRootId", "") || "";
- const j = c("currentFolderRelativePath", "") || "";
- e.dataset.mjrSubfolder = j, e.dataset.mjrFilterKind = c("kindFilter", "") || "", e.dataset.mjrFilterWorkflowOnly = c("workflowOnly", !1) ? "1" : "0", e.dataset.mjrFilterMinRating = String(c("minRating", 0) || 0), e.dataset.mjrFilterMinSizeMB = String(c("minSizeMB", 0) || 0), e.dataset.mjrFilterMaxSizeMB = String(c("maxSizeMB", 0) || 0), e.dataset.mjrFilterResolutionCompare = String(c("resolutionCompare", "gte") || "gte"), e.dataset.mjrFilterMinWidth = String(c("minWidth", 0) || 0), e.dataset.mjrFilterMinHeight = String(c("minHeight", 0) || 0), e.dataset.mjrFilterMaxWidth = String(c("maxWidth", 0) || 0), e.dataset.mjrFilterMaxHeight = String(c("maxHeight", 0) || 0), e.dataset.mjrFilterWorkflowType = String(c("workflowType", "") || ""), e.dataset.mjrFilterDateRange = c("dateRangeFilter", "") || "", e.dataset.mjrFilterDateExact = c("dateExactFilter", "") || "", e.dataset.mjrSort = c("sort", "mtime_desc") || "mtime_desc", e.dataset.mjrCollectionId = c("collectionId", "") || "", e.dataset.mjrGroupStacks = ye.EXECUTION_GROUPING_ENABLED && (c("scope", "output") === "output" || c("scope", "output") === "all") ? "1" : "0";
+ e.dataset.mjrGroupStacks = fe.EXECUTION_GROUPING_ENABLED && (c("scope", "output") === "output" || c("scope", "output") === "all") ? "1" : "0";
try {
- const H = Array.isArray(c("selectedAssetIds", [])) ? c("selectedAssetIds", []).filter(Boolean).map(String) : [];
- H.length ? (e.dataset.mjrSelectedAssetIds = JSON.stringify(H), e.dataset.mjrSelectedAssetId = String(
- c("activeAssetId", "") || H[0] || ""
+ const U = Array.isArray(c("selectedAssetIds", [])) ? c("selectedAssetIds", []).filter(Boolean).map(String) : [];
+ U.length ? (e.dataset.mjrSelectedAssetIds = JSON.stringify(U), e.dataset.mjrSelectedAssetId = String(
+ c("activeAssetId", "") || U[0] || ""
)) : (delete e.dataset.mjrSelectedAssetIds, delete e.dataset.mjrSelectedAssetId);
- } catch (H) {
- (B = console.debug) == null || B.call(console, H);
+ } catch (U) {
+ (B = console.debug) == null || B.call(console, U);
}
if (c("scope", "output") === "custom" && !c("customRootId", "") && !c("currentFolderRelativePath", "")) {
try {
o(e);
- } catch (H) {
- (J = console.debug) == null || J.call(console, H);
+ } catch (U) {
+ (J = console.debug) == null || J.call(console, U);
}
s("currentFolderRelativePath", "");
}
if (c("collectionId", "")) {
- const H = await (i == null ? void 0 : i(c("collectionId", "")));
- if (H != null && H.ok && H.data && Array.isArray(H.data.assets)) {
- const $ = c("collectionName", "") ? `Collection: ${c("collectionName", "")}` : "Collection", _ = await n(e, H.data.assets, {
- title: $,
+ const U = await (i == null ? void 0 : i(c("collectionId", "")));
+ if (U != null && U.ok && U.data && Array.isArray(U.data.assets)) {
+ const Q = c("collectionName", "") ? `Collection: ${c("collectionName", "")}` : "Collection", _ = await n(e, U.data.assets, {
+ title: Q,
reset: !0
});
try {
- s("lastGridCount", Number((_ == null ? void 0 : _.count) || 0) || 0), s("lastGridTotal", Number((_ == null ? void 0 : _.total) || 0) || 0), (T = e.dispatchEvent) == null || T.call(
+ s("lastGridCount", Number((_ == null ? void 0 : _.count) || 0) || 0), s("lastGridTotal", Number((_ == null ? void 0 : _.total) || 0) || 0), (P = e.dispatchEvent) == null || P.call(
e,
new CustomEvent("mjr:grid-stats", { detail: _ || {} })
);
} catch (le) {
- (D = console.debug) == null || D.call(console, le);
+ (H = console.debug) == null || H.call(console, le);
}
return;
}
s("collectionId", ""), s("collectionName", "");
}
- const L = R;
- if (L === "similar") {
- const H = Array.isArray(c("similarResults", [])) ? c("similarResults", []) : [], $ = Array.isArray(a == null ? void 0 : a.similarResults) ? a.similarResults : [], _ = H.length > 0 ? H : $, le = String(
+ const V = F;
+ if (V === "similar") {
+ const U = Array.isArray(c("similarResults", [])) ? c("similarResults", []) : [], Q = Array.isArray(a == null ? void 0 : a.similarResults) ? a.similarResults : [], _ = U.length > 0 ? U : Q, le = String(
c("similarSourceAssetId", (a == null ? void 0 : a.similarSourceAssetId) || "") || ""
- ).trim(), se = String(
+ ).trim(), de = String(
c("similarTitle", (a == null ? void 0 : a.similarTitle) || "") || m("search.similarResults", "Similar to asset #{id} ({n} results)", {
id: le || "?",
n: _.length
})
- ).trim(), de = await n(e, _, {
- title: se || "Similar",
+ ).trim(), se = await n(e, _, {
+ title: de || "Similar",
reset: !0,
- ...X
+ ...R
});
try {
- s("lastGridCount", Number((de == null ? void 0 : de.count) || 0) || 0), s("lastGridTotal", Number((de == null ? void 0 : de.total) || 0) || 0), (Q = e.dispatchEvent) == null || Q.call(
+ s("lastGridCount", Number((se == null ? void 0 : se.count) || 0) || 0), s("lastGridTotal", Number((se == null ? void 0 : se.total) || 0) || 0), ($ = e.dispatchEvent) == null || $.call(
e,
- new CustomEvent("mjr:grid-stats", { detail: de || {} })
+ new CustomEvent("mjr:grid-stats", { detail: se || {} })
);
- } catch (Ze) {
- (E = console.debug) == null || E.call(console, Ze);
+ } catch (ge) {
+ (E = console.debug) == null || E.call(console, ge);
}
return;
}
- const N = V === "similar" && L !== "similar", q = await k(r(), {
- ...X,
- preserveVisibleUntilReady: X.preserveVisibleUntilReady ?? !N
+ const k = Y === "similar" && V !== "similar", K = await X(r(), {
+ ...R,
+ preserveVisibleUntilReady: R.preserveVisibleUntilReady ?? !k
});
try {
- const $ = !!((F = (K = window.MajoorMetrics) == null ? void 0 : K.hasTimer) != null && F.call(K, "searchQuery")) ? (U = (Y = window.MajoorMetrics) == null ? void 0 : Y.endTimer) == null ? void 0 : U.call(Y, "searchQuery", "searchQuery") : 0;
- typeof $ == "number" && $ > 0 && ((ee = (P = window.MajoorMetrics) == null ? void 0 : P.trackSearchQuery) == null || ee.call(P, $));
- } catch (H) {
- (oe = console.debug) == null || oe.call(console, H);
+ const Q = !!((M = (oe = window.MajoorMetrics) == null ? void 0 : oe.hasTimer) != null && M.call(oe, "searchQuery")) ? (O = (j = window.MajoorMetrics) == null ? void 0 : j.endTimer) == null ? void 0 : O.call(j, "searchQuery", "searchQuery") : 0;
+ typeof Q == "number" && Q > 0 && ((q = (D = window.MajoorMetrics) == null ? void 0 : D.trackSearchQuery) == null || q.call(D, Q));
+ } catch (U) {
+ (ee = console.debug) == null || ee.call(console, U);
}
try {
- s("lastGridCount", Number((q == null ? void 0 : q.count) || 0) || 0), s("lastGridTotal", Number((q == null ? void 0 : q.total) || 0) || 0), (ce = e.dispatchEvent) == null || ce.call(
+ s("lastGridCount", Number((K == null ? void 0 : K.count) || 0) || 0), s("lastGridTotal", Number((K == null ? void 0 : K.total) || 0) || 0), (ce = e.dispatchEvent) == null || ce.call(
e,
- new CustomEvent("mjr:grid-stats", { detail: q || {} })
+ new CustomEvent("mjr:grid-stats", { detail: K || {} })
);
- } catch (H) {
- (pe = console.debug) == null || pe.call(console, H);
+ } catch (U) {
+ (ue = console.debug) == null || ue.call(console, U);
}
};
- let z = null;
- const x = async () => {
- var X;
+ let T = null;
+ const v = async () => {
+ var R;
if (u = !0, !d) {
d = !0;
try {
for (; u; ) {
- const V = { ...I || {} };
+ const Y = { ...I || {} };
I = {}, u = !1;
try {
- const R = v() && (b() || String((r == null ? void 0 : r()) || "").length >= 12);
+ const F = L() && (b() || String((r == null ? void 0 : r()) || "").length >= 12);
await f(
- () => G(V),
- R ? A : Z
+ () => x(Y),
+ F ? C : A
);
- } catch (R) {
+ } catch (F) {
try {
- const j = Date.now();
- j - Number(p || 0) > 2e3 && (p = j, console.warn("[Majoor] Grid reload failed", R));
- } catch (j) {
- (X = console.debug) == null || X.call(console, j);
+ const N = Date.now();
+ N - Number(p || 0) > 2e3 && (p = N, console.warn("[Majoor] Grid reload failed", F));
+ } catch (N) {
+ (R = console.debug) == null || R.call(console, N);
}
}
}
@@ -30748,13 +30794,13 @@ function NM({
}
}
};
- return { reloadGrid: (X = {}) => new Promise((V, R) => {
- I = { ...I || {}, ...X || {} }, z && clearTimeout(z), z = setTimeout(() => {
- z = null, x().then(V).catch(R);
- }, h);
+ return { reloadGrid: (R = {}) => new Promise((Y, F) => {
+ I = { ...I || {}, ...R || {} }, T && clearTimeout(T), T = setTimeout(() => {
+ T = null, v().then(Y).catch(F);
+ }, Z);
}) };
}
-function RM({
+function zM({
state: e,
gridContainer: t,
folderBreadcrumb: n,
@@ -30763,229 +30809,229 @@ function RM({
onContextChanged: r = null,
lifecycleSignal: l = null
} = {}) {
- const { read: a, write: c } = no(e, [
+ const { read: a, write: c } = oo(e, [
"scope",
"customRootId",
"currentFolderRelativePath"
]), s = [], d = (W) => String(W || "").trim().replaceAll("\\", "/"), u = (W) => /^[a-zA-Z]:$/.test(String(W || "").trim()), I = () => d(a("currentFolderRelativePath", "") || ""), p = (W, y) => {
- const k = d(y);
- !Array.isArray(W) || !k && k !== "" || (W.length ? d(W[W.length - 1]) : null) === k || W.push(k);
- }, M = (W, y) => {
- const k = d(y);
+ const X = d(y);
+ !Array.isArray(W) || !X && X !== "" || (W.length ? d(W[W.length - 1]) : null) === X || W.push(X);
+ }, S = (W, y) => {
+ const X = d(y);
if (!Array.isArray(W)) return null;
for (; W.length; ) {
- const G = d(W.pop());
- if (G !== k) return G;
+ const x = d(W.pop());
+ if (x !== X) return x;
}
return null;
- }, Z = (W) => {
- var k;
+ }, A = (W) => {
+ var X;
const y = d(W);
c("currentFolderRelativePath", y);
try {
t != null && t.dataset && (t.dataset.mjrSubfolder = y);
- } catch (G) {
- (k = console.debug) == null || k.call(console, G);
+ } catch (x) {
+ (X = console.debug) == null || X.call(console, x);
}
- }, A = (W) => {
+ }, C = (W) => {
const y = d((W == null ? void 0 : W.subfolder) || "");
if (y) return y;
- const k = d((W == null ? void 0 : W.filepath) || (W == null ? void 0 : W.path) || "");
- if (k)
- return String((W == null ? void 0 : W.kind) || "").toLowerCase() === "folder" ? k : g(k) || k;
- const G = d((W == null ? void 0 : W.filename) || "");
- if (!G) return I();
- const z = I();
- return z ? `${z}/${G}`.replace(/\/{2,}/g, "/") : G;
+ const X = d((W == null ? void 0 : W.filepath) || (W == null ? void 0 : W.path) || "");
+ if (X)
+ return String((W == null ? void 0 : W.kind) || "").toLowerCase() === "folder" ? X : g(X) || X;
+ const x = d((W == null ? void 0 : W.filename) || "");
+ if (!x) return I();
+ const T = I();
+ return T ? `${T}/${x}`.replace(/\/{2,}/g, "/") : x;
}, g = (W) => {
const y = d(W);
if (!y) return "";
- const k = y.split("/").filter(Boolean);
- return k.length ? k.length === 1 ? u(k[0]) ? `${k[0]}/` : "" : (k.pop(), k.length === 1 && u(k[0]) ? `${k[0]}/` : k.join("/")) : "";
- }, h = () => {
+ const X = y.split("/").filter(Boolean);
+ return X.length ? X.length === 1 ? u(X[0]) ? `${X[0]}/` : "" : (X.pop(), X.length === 1 && u(X[0]) ? `${X[0]}/` : X.join("/")) : "";
+ }, Z = () => {
var W, y;
try {
r == null || r();
- } catch (k) {
- (W = console.debug) == null || W.call(console, k);
+ } catch (X) {
+ (W = console.debug) == null || W.call(console, X);
}
try {
- C();
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ h();
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
}, f = () => {
var W, y;
try {
t && typeof t.scrollTop == "number" && (t.scrollTop = 0);
- } catch (k) {
- (W = console.debug) == null || W.call(console, k);
+ } catch (X) {
+ (W = console.debug) == null || W.call(console, X);
}
try {
- const k = (t == null ? void 0 : t.parentElement) || null;
- k && typeof k.scrollTop == "number" && (k.scrollTop = 0);
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ const X = (t == null ? void 0 : t.parentElement) || null;
+ X && typeof X.scrollTop == "number" && (X.scrollTop = 0);
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
}, b = async (W, { pushHistory: y = !0 } = {}) => {
- const k = I(), G = d(W);
- k !== G && (y && p(s, k), Z(G), f(), h(), await (o == null ? void 0 : o()));
- }, v = async () => {
- c("customRootId", ""), Z(""), f(), h(), await (o == null ? void 0 : o());
- }, C = () => {
- const W = String(a("scope", "") || "") === "custom", y = String(a("currentFolderRelativePath", "") || "").trim().replaceAll("\\", "/"), k = W || !!y, G = String(a("customRootId", "") || "").trim(), z = (() => {
- var O;
- if (!G) return "";
+ const X = I(), x = d(W);
+ X !== x && (y && p(s, X), A(x), f(), Z(), await (o == null ? void 0 : o()));
+ }, L = async () => {
+ c("customRootId", ""), A(""), f(), Z(), await (o == null ? void 0 : o());
+ }, h = () => {
+ const W = String(a("scope", "") || "") === "custom", y = String(a("currentFolderRelativePath", "") || "").trim().replaceAll("\\", "/"), X = W || !!y, x = String(a("customRootId", "") || "").trim(), T = (() => {
+ var z;
+ if (!x) return "";
try {
- const B = ((O = i == null ? void 0 : i.selectedOptions) == null ? void 0 : O[0]) || null;
+ const B = ((z = i == null ? void 0 : i.selectedOptions) == null ? void 0 : z[0]) || null;
return String((B == null ? void 0 : B.textContent) || "").trim();
} catch {
return "";
}
})();
- if (!k) {
+ if (!X) {
s.length = 0, n.style.display = "none", n.replaceChildren();
return;
}
n.style.display = "flex", n.replaceChildren();
- const x = document.createElement("button");
- x.type = "button", x.textContent = m("btn.back", "Back"), x.className = "mjr-btn-link";
- const w = !!String(a("customRootId", "") || "").trim(), X = w && !y, V = !!y;
- x.disabled = s.length === 0 && !X && !V, x.style.cssText = "background:rgba(122,162,255,0.12);border:1px solid rgba(122,162,255,0.35);border-radius:6px;padding:2px 8px;font:inherit;color:var(--mjr-accent, #7aa2ff);cursor:pointer;", x.addEventListener(
+ const v = document.createElement("button");
+ v.type = "button", v.textContent = m("btn.back", "Back"), v.className = "mjr-btn-link";
+ const w = !!String(a("customRootId", "") || "").trim(), R = w && !y, Y = !!y;
+ v.disabled = s.length === 0 && !R && !Y, v.style.cssText = "background:rgba(122,162,255,0.12);border:1px solid rgba(122,162,255,0.35);border-radius:6px;padding:2px 8px;font:inherit;color:var(--mjr-accent, #7aa2ff);cursor:pointer;", v.addEventListener(
"click",
async () => {
- const O = M(s, I());
- if (O != null) {
- await b(O, { pushHistory: !1 });
+ const z = S(s, I());
+ if (z != null) {
+ await b(z, { pushHistory: !1 });
return;
}
const B = I();
if (B) {
const J = g(B);
if (J === B) {
- w && await v();
+ w && await L();
return;
}
await b(J, { pushHistory: !1 });
return;
}
- X && await v();
+ R && await L();
},
{ signal: l || void 0 }
- ), n.appendChild(x);
- const R = document.createElement("button");
- R.type = "button", R.textContent = m("btn.up", "Up"), R.className = "mjr-btn-link", R.disabled = !y || g(I()) === I(), R.style.cssText = "background:rgba(122,162,255,0.10);border:1px solid rgba(122,162,255,0.30);border-radius:6px;padding:2px 8px;font:inherit;color:var(--mjr-accent, #7aa2ff);cursor:pointer;", R.addEventListener(
+ ), n.appendChild(v);
+ const F = document.createElement("button");
+ F.type = "button", F.textContent = m("btn.up", "Up"), F.className = "mjr-btn-link", F.disabled = !y || g(I()) === I(), F.style.cssText = "background:rgba(122,162,255,0.10);border:1px solid rgba(122,162,255,0.30);border-radius:6px;padding:2px 8px;font:inherit;color:var(--mjr-accent, #7aa2ff);cursor:pointer;", F.addEventListener(
"click",
async () => {
- const O = g(I());
- if (O === I()) {
- w && await v();
+ const z = g(I());
+ if (z === I()) {
+ w && await L();
return;
}
- await b(O);
+ await b(z);
},
{ signal: l || void 0 }
- ), n.appendChild(R);
- const j = document.createElement("span");
- j.textContent = "|", j.style.opacity = "0.5", n.appendChild(j);
- const L = (O, B, J = !1) => {
- const T = document.createElement("button");
- return T.type = "button", T.textContent = O, T.className = "mjr-btn-link", T.style.cssText = `background:none;border:none;padding:0;color:${J ? "var(--mjr-text, inherit)" : "var(--mjr-accent, #7aa2ff)"};cursor:${J ? "default" : "pointer"};font:inherit;`, J ? T.disabled = !0 : T.addEventListener(
+ ), n.appendChild(F);
+ const N = document.createElement("span");
+ N.textContent = "|", N.style.opacity = "0.5", n.appendChild(N);
+ const V = (z, B, J = !1) => {
+ const P = document.createElement("button");
+ return P.type = "button", P.textContent = z, P.className = "mjr-btn-link", P.style.cssText = `background:none;border:none;padding:0;color:${J ? "var(--mjr-text, inherit)" : "var(--mjr-accent, #7aa2ff)"};cursor:${J ? "default" : "pointer"};font:inherit;`, J ? P.disabled = !0 : P.addEventListener(
"click",
async () => {
- if (O === "Computer" && String(a("customRootId", "") || "").trim()) {
- await v();
+ if (z === "Computer" && String(a("customRootId", "") || "").trim()) {
+ await L();
return;
}
await b(B);
},
{ signal: l || void 0 }
- ), T;
+ ), P;
};
- if (n.appendChild(L(m("label.computer", "Computer"), "", !y)), G) {
- const O = document.createElement("span");
- O.textContent = "/", O.style.opacity = "0.6", n.appendChild(O), n.appendChild(L(z || G, "", !y));
+ if (n.appendChild(V(m("label.computer", "Computer"), "", !y)), x) {
+ const z = document.createElement("span");
+ z.textContent = "/", z.style.opacity = "0.6", n.appendChild(z), n.appendChild(V(T || x, "", !y));
}
if (!y) return;
- const N = y.split("/").filter(Boolean);
- let q = "";
- for (let O = 0; O < N.length; O++) {
+ const k = y.split("/").filter(Boolean);
+ let K = "";
+ for (let z = 0; z < k.length; z++) {
const B = document.createElement("span");
- B.textContent = "/", B.style.opacity = "0.6", n.appendChild(B), q ? q = `${q}/${N[O]}`.replace(/\/{2,}/g, "/") : q = u(N[O]) ? `${N[O]}/` : N[O], n.appendChild(L(N[O], q, O === N.length - 1));
+ B.textContent = "/", B.style.opacity = "0.6", n.appendChild(B), K ? K = `${K}/${k[z]}`.replace(/\/{2,}/g, "/") : K = u(k[z]) ? `${k[z]}/` : k[z], n.appendChild(V(k[z], K, z === k.length - 1));
}
};
return {
- renderBreadcrumb: C,
+ renderBreadcrumb: h,
resetHistory: () => {
s.length = 0;
},
bindGridFolderNavigation: () => {
- var k, G, z;
- const W = async (x) => {
- var R, j;
- const w = ((R = x == null ? void 0 : x.detail) == null ? void 0 : R.asset) || null, X = A(w || {}), V = I();
- if (X !== V) {
- p(s, V), Z(X), f(), h();
+ var X, x, T;
+ const W = async (v) => {
+ var F, N;
+ const w = ((F = v == null ? void 0 : v.detail) == null ? void 0 : F.asset) || null, R = C(w || {}), Y = I();
+ if (R !== Y) {
+ p(s, Y), A(R), f(), Z();
try {
await (o == null ? void 0 : o());
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
}
- }, y = async (x) => {
- var V, R;
- const w = String(((V = x == null ? void 0 : x.detail) == null ? void 0 : V.subfolder) || "").trim().replaceAll("\\", "/"), X = I();
- if (w !== X) {
- p(s, X), Z(w), f(), h();
+ }, y = async (v) => {
+ var Y, F;
+ const w = String(((Y = v == null ? void 0 : v.detail) == null ? void 0 : Y.subfolder) || "").trim().replaceAll("\\", "/"), R = I();
+ if (w !== R) {
+ p(s, R), A(w), f(), Z();
try {
await (o == null ? void 0 : o());
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
}
};
- (k = t == null ? void 0 : t.addEventListener) == null || k.call(
+ (X = t == null ? void 0 : t.addEventListener) == null || X.call(
t,
"mjr:custom-subfolder-changed",
y,
{
signal: l || void 0
}
- ), (G = t == null ? void 0 : t.addEventListener) == null || G.call(t, "mjr:open-folder-asset", W, {
+ ), (x = t == null ? void 0 : t.addEventListener) == null || x.call(t, "mjr:open-folder-asset", W, {
signal: l || void 0
});
try {
t._mjrHasCustomSubfolderHandler = !0;
- } catch (x) {
- (z = console.debug) == null || z.call(console, x);
+ } catch (v) {
+ (T = console.debug) == null || T.call(console, v);
}
return () => {
- var x, w, X, V, R;
+ var v, w, R, Y, F;
try {
- (x = t == null ? void 0 : t.removeEventListener) == null || x.call(
+ (v = t == null ? void 0 : t.removeEventListener) == null || v.call(
t,
"mjr:custom-subfolder-changed",
y
);
- } catch (j) {
- (w = console.debug) == null || w.call(console, j);
+ } catch (N) {
+ (w = console.debug) == null || w.call(console, N);
}
try {
- (X = t == null ? void 0 : t.removeEventListener) == null || X.call(t, "mjr:open-folder-asset", W);
- } catch (j) {
- (V = console.debug) == null || V.call(console, j);
+ (R = t == null ? void 0 : t.removeEventListener) == null || R.call(t, "mjr:open-folder-asset", W);
+ } catch (N) {
+ (Y = console.debug) == null || Y.call(console, N);
}
try {
t._mjrHasCustomSubfolderHandler = !1;
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
};
},
- notifyContext: h
+ notifyContext: Z
};
}
-function FM({
+function JM({
state: e,
tabButtons: t,
customMenuBtn: n,
@@ -30998,7 +31044,7 @@ function FM({
onBeforeReload: s = null
}) {
let d = 0;
- const { panelStore: u, read: I, write: p, controllerState: M } = no(e, [
+ const { panelStore: u, read: I, write: p, controllerState: S } = oo(e, [
"scope",
"customRootId",
"currentFolderRelativePath",
@@ -31008,40 +31054,40 @@ function FM({
"similarResults",
"similarTitle",
"similarSourceAssetId"
- ]), Z = ({
- viewScope: v = "",
- similarResults: C = [],
- similarTitle: S = "",
+ ]), A = ({
+ viewScope: L = "",
+ similarResults: h = [],
+ similarTitle: G = "",
similarSourceAssetId: W = ""
} = {}) => {
- p("viewScope", v), p("similarResults", C), p("similarTitle", S), p("similarSourceAssetId", W);
- }, A = () => {
+ p("viewScope", L), p("similarResults", h), p("similarTitle", G), p("similarSourceAssetId", W);
+ }, C = () => {
try {
return !!(String(I("viewScope", "") || "").trim().toLowerCase() === "similar" || Array.isArray(I("similarResults", [])) && I("similarResults", []).length > 0 || String(I("similarTitle", "") || "").trim());
} catch {
return !1;
}
}, g = () => {
- Z();
- }, h = () => {
- var S;
- const v = Object.values(t || {}), C = String(I("viewScope", "") || I("scope", "output")).toLowerCase();
- v.forEach((W) => {
- var G, z, x;
- const k = ((G = W == null ? void 0 : W.dataset) == null ? void 0 : G.scope) === C;
- (x = (z = W == null ? void 0 : W.classList) == null ? void 0 : z.toggle) == null || x.call(z, "is-active", k);
+ A();
+ }, Z = () => {
+ var G;
+ const L = Object.values(t || {}), h = String(I("viewScope", "") || I("scope", "output")).toLowerCase();
+ L.forEach((W) => {
+ var x, T, v;
+ const X = ((x = W == null ? void 0 : W.dataset) == null ? void 0 : x.scope) === h;
+ (v = (T = W == null ? void 0 : W.classList) == null ? void 0 : T.toggle) == null || v.call(T, "is-active", X);
});
try {
const W = t == null ? void 0 : t.tabSimilar;
- W && (W.style.display = A() ? "" : "none");
+ W && (W.style.display = C() ? "" : "none");
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
n.style.display = "none", i.style.display = "none", o.close(i);
};
- return { setScope: async (v) => {
- var k, G, z, x, w, X, V;
- const C = ++d, S = /* @__PURE__ */ new Set([
+ return { setScope: async (L) => {
+ var X, x, T, v, w, R, Y;
+ const h = ++d, G = /* @__PURE__ */ new Set([
"output",
"outputs",
"input",
@@ -31049,70 +31095,70 @@ function FM({
"all",
"custom",
"similar"
- ]), W = String(v || "").toLowerCase();
- if (!S.has(W)) return;
+ ]), W = String(L || "").toLowerCase();
+ if (!G.has(W)) return;
if (W === "similar") {
- if (!A()) return;
- p("viewScope", "similar"), h();
+ if (!C()) return;
+ p("viewScope", "similar"), Z();
try {
a == null || a();
- } catch (R) {
- (k = console.debug) == null || k.call(console, R);
+ } catch (F) {
+ (X = console.debug) == null || X.call(console, F);
}
try {
- await (s == null ? void 0 : s(M()));
- } catch (R) {
- (G = console.debug) == null || G.call(console, R);
+ await (s == null ? void 0 : s(S()));
+ } catch (F) {
+ (x = console.debug) == null || x.call(console, F);
}
await r();
return;
}
- p("collectionId", ""), p("collectionName", ""), g();
+ p("collectionId", ""), p("collectionName", ""), p("searchQuery", ""), g();
const y = W === "outputs" ? "output" : W === "inputs" ? "input" : W;
if (u != null && u.navigateToScope)
try {
u.navigateToScope(y, { folder: "" });
- } catch (R) {
- (z = console.debug) == null || z.call(console, R), p("scope", y), p("currentFolderRelativePath", "");
+ } catch (F) {
+ (T = console.debug) == null || T.call(console, F), p("scope", y), p("currentFolderRelativePath", "");
}
else
p("scope", y), p("currentFolderRelativePath", "");
- String(I("scope", y)) !== "custom" && p("customRootId", ""), h();
+ String(I("scope", y)) !== "custom" && p("customRootId", ""), Z();
try {
a == null || a();
- } catch (R) {
- (x = console.debug) == null || x.call(console, R);
+ } catch (F) {
+ (v = console.debug) == null || v.call(console, F);
}
try {
- await (c == null ? void 0 : c(M()));
- } catch (R) {
- (w = console.debug) == null || w.call(console, R);
+ await (c == null ? void 0 : c(S()));
+ } catch (F) {
+ (w = console.debug) == null || w.call(console, F);
}
- if (C === d) {
+ if (h === d) {
try {
- await (s == null ? void 0 : s(M()));
- } catch (R) {
- (X = console.debug) == null || X.call(console, R);
+ await (s == null ? void 0 : s(S()));
+ } catch (F) {
+ (R = console.debug) == null || R.call(console, F);
}
- if (C === d) {
+ if (h === d) {
try {
l == null || l();
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
await r();
}
}
- }, setActiveTabStyles: h, clearSimilarScope: async ({ reload: v = !0 } = {}) => {
- var S;
- const C = A();
- g(), h();
+ }, setActiveTabStyles: Z, clearSimilarScope: async ({ reload: L = !0 } = {}) => {
+ var G;
+ const h = C();
+ g(), p("searchQuery", ""), Z();
try {
a == null || a();
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- !C || !v || await r();
+ !h || !L || await r();
} };
}
const Ln = (e, t) => {
@@ -31123,7 +31169,7 @@ const Ln = (e, t) => {
} catch (i) {
(n = console.debug) == null || n.call(console, i);
}
-}, Cm = (e, t) => {
+}, Am = (e, t) => {
var n;
if (e)
try {
@@ -31132,7 +31178,7 @@ const Ln = (e, t) => {
(n = console.debug) == null || n.call(console, i);
}
};
-function OM({
+function TM({
state: e,
gridContainer: t,
filterBtn: n,
@@ -31147,19 +31193,19 @@ function OM({
maxSizeInput: u,
minWidthInput: I,
minHeightInput: p,
- maxWidthInput: M,
- maxHeightInput: Z,
- resolutionPresetSelect: A,
+ maxWidthInput: S,
+ maxHeightInput: A,
+ resolutionPresetSelect: C,
dateRangeSelect: g,
- dateExactInput: h,
+ dateExactInput: Z,
scopeController: f,
sortController: b,
- updateSummaryBar: v,
- reloadGrid: C,
- extraActions: S = null,
+ updateSummaryBar: L,
+ reloadGrid: h,
+ extraActions: G = null,
getExtraContext: W = null
} = {}) {
- const y = e && typeof e == "object" ? e : {}, { read: k, write: G, controllerState: z } = no(e, [
+ const y = e && typeof e == "object" ? e : {}, { read: X, write: x, controllerState: T } = oo(e, [
"searchQuery",
"scope",
"collectionId",
@@ -31185,302 +31231,302 @@ function OM({
"similarResults",
"similarTitle",
"similarSourceAssetId"
- ]), x = (N, q) => {
- G(N, q);
- }, w = (N, q = "") => k(N, q), X = () => ({
+ ]), v = (k, K) => {
+ x(k, K);
+ }, w = (k, K = "") => X(k, K), R = () => ({
...y || {},
- ...(z == null ? void 0 : z()) || {},
+ ...(T == null ? void 0 : T()) || {},
customRootLabel: w("customRootLabel", "")
- }), V = () => {
- var N, q;
+ }), Y = () => {
+ var k, K;
try {
- (N = S == null ? void 0 : S.resetBrowserHistory) == null || N.call(S);
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ (k = G == null ? void 0 : G.resetBrowserHistory) == null || k.call(G);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
- }, R = () => {
- var N, q, O, B;
+ }, F = () => {
+ var k, K, z, B;
try {
- const J = ((N = t == null ? void 0 : t.closest) == null ? void 0 : N.call(t, ".mjr-assets-manager")) || ((q = document.querySelector) == null ? void 0 : q.call(document, ".mjr-assets-manager")) || document.documentElement;
- if (!((O = J == null ? void 0 : J.style) != null && O.setProperty)) return;
+ const J = ((k = t == null ? void 0 : t.closest) == null ? void 0 : k.call(t, ".mjr-assets-manager")) || ((K = document.querySelector) == null ? void 0 : K.call(document, ".mjr-assets-manager")) || document.documentElement;
+ if (!((z = J == null ? void 0 : J.style) != null && z.setProperty)) return;
J.style.setProperty(
"--mjr-star-active",
- String(ye.BADGE_STAR_COLOR || "#FFD45A")
+ String(fe.BADGE_STAR_COLOR || "#FFD45A")
), J.style.setProperty(
"--mjr-badge-image",
- String(ye.BADGE_IMAGE_COLOR || "#2196F3")
+ String(fe.BADGE_IMAGE_COLOR || "#2196F3")
), J.style.setProperty(
"--mjr-badge-video",
- String(ye.BADGE_VIDEO_COLOR || "#9C27B0")
+ String(fe.BADGE_VIDEO_COLOR || "#9C27B0")
), J.style.setProperty(
"--mjr-badge-audio",
- String(ye.BADGE_AUDIO_COLOR || "#FF9800")
+ String(fe.BADGE_AUDIO_COLOR || "#FF9800")
), J.style.setProperty(
"--mjr-badge-model3d",
- String(ye.BADGE_MODEL3D_COLOR || "#4CAF50")
+ String(fe.BADGE_MODEL3D_COLOR || "#4CAF50")
), J.style.setProperty(
"--mjr-badge-duplicate-alert",
- String(ye.BADGE_DUPLICATE_ALERT_COLOR || "#FF1744")
+ String(fe.BADGE_DUPLICATE_ALERT_COLOR || "#FF1744")
);
} catch (J) {
(B = console.debug) == null || B.call(console, J);
}
- }, j = {
+ }, N = {
clearQuery: async () => {
- var N, q;
+ var k, K;
try {
- Ln(r, ""), x("searchQuery", "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ Ln(r, ""), v("searchQuery", "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearCollection: async () => {
- var N, q;
+ var k, K;
try {
- x("collectionId", ""), x("collectionName", "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("collectionId", ""), v("collectionName", "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearScope: async () => {
- var q, O, B, J, T;
+ var K, z, B, J, P;
try {
- if (String((e == null ? void 0 : e.viewScope) || "").trim().toLowerCase() === "similar" && typeof (S == null ? void 0 : S.clearSimilarScope) == "function") {
- await S.clearSimilarScope();
+ if (String((e == null ? void 0 : e.viewScope) || "").trim().toLowerCase() === "similar" && typeof (G == null ? void 0 : G.clearSimilarScope) == "function") {
+ await G.clearSimilarScope();
return;
}
- } catch (D) {
- (q = console.debug) == null || q.call(console, D);
+ } catch (H) {
+ (K = console.debug) == null || K.call(console, H);
}
- let N = !1;
+ let k = !1;
try {
- x("customRootId", ""), x("customRootLabel", ""), x("currentFolderRelativePath", ""), (O = t == null ? void 0 : t.dataset) == null || delete O.mjrSubfolder, V(), typeof (f == null ? void 0 : f.setScope) == "function" ? (await f.setScope("output"), N = !0) : (x("scope", "output"), (B = f == null ? void 0 : f.setActiveTabStyles) == null || B.call(f));
- } catch (D) {
- (J = console.debug) == null || J.call(console, D);
+ v("customRootId", ""), v("customRootLabel", ""), v("currentFolderRelativePath", ""), (z = t == null ? void 0 : t.dataset) == null || delete z.mjrSubfolder, Y(), typeof (f == null ? void 0 : f.setScope) == "function" ? (await f.setScope("output"), k = !0) : (v("scope", "output"), (B = f == null ? void 0 : f.setActiveTabStyles) == null || B.call(f));
+ } catch (H) {
+ (J = console.debug) == null || J.call(console, H);
}
try {
- N || await (C == null ? void 0 : C());
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
+ k || await (h == null ? void 0 : h());
+ } catch (H) {
+ (P = console.debug) == null || P.call(console, H);
}
},
clearCustomRoot: async () => {
- var N, q, O;
+ var k, K, z;
try {
- x("customRootId", ""), x("customRootLabel", ""), x("currentFolderRelativePath", ""), (N = t == null ? void 0 : t.dataset) == null || delete N.mjrSubfolder, V();
+ v("customRootId", ""), v("customRootLabel", ""), v("currentFolderRelativePath", ""), (k = t == null ? void 0 : t.dataset) == null || delete k.mjrSubfolder, Y();
} catch (B) {
- (q = console.debug) == null || q.call(console, B);
+ (K = console.debug) == null || K.call(console, B);
}
try {
- await (C == null ? void 0 : C());
+ await (h == null ? void 0 : h());
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
},
clearFolder: async () => {
- var N, q, O;
+ var k, K, z;
try {
- x("currentFolderRelativePath", ""), (N = t == null ? void 0 : t.dataset) == null || delete N.mjrSubfolder, V();
+ v("currentFolderRelativePath", ""), (k = t == null ? void 0 : t.dataset) == null || delete k.mjrSubfolder, Y();
} catch (B) {
- (q = console.debug) == null || q.call(console, B);
+ (K = console.debug) == null || K.call(console, B);
}
try {
- await (C == null ? void 0 : C());
+ await (h == null ? void 0 : h());
} catch (B) {
- (O = console.debug) == null || O.call(console, B);
+ (z = console.debug) == null || z.call(console, B);
}
},
clearKind: async () => {
- var N, q;
+ var k, K;
try {
- x("kindFilter", ""), Ln(l, "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("kindFilter", ""), Ln(l, "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearMinRating: async () => {
- var N, q;
+ var k, K;
try {
- x("minRating", 0), Ln(s, "0");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("minRating", 0), Ln(s, "0");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearWorkflowOnly: async () => {
- var N, q;
+ var k, K;
try {
- x("workflowOnly", !1), Cm(a, !1);
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("workflowOnly", !1), Am(a, !1);
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearWorkflowType: async () => {
- var N, q;
+ var k, K;
try {
- x("workflowType", ""), Ln(c, "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("workflowType", ""), Ln(c, "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearSize: async () => {
- var N, q;
+ var k, K;
try {
- x("minSizeMB", 0), x("maxSizeMB", 0), Ln(d, ""), Ln(u, "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("minSizeMB", 0), v("maxSizeMB", 0), Ln(d, ""), Ln(u, "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearResolution: async () => {
- var N, q;
+ var k, K;
try {
- x("minWidth", 0), x("minHeight", 0), x("maxWidth", 0), x("maxHeight", 0), Ln(I, ""), Ln(p, ""), Ln(M, ""), Ln(Z, ""), Ln(A, "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("minWidth", 0), v("minHeight", 0), v("maxWidth", 0), v("maxHeight", 0), Ln(I, ""), Ln(p, ""), Ln(S, ""), Ln(A, ""), Ln(C, "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearDateRange: async () => {
- var N, q;
+ var k, K;
try {
- x("dateRangeFilter", ""), Ln(g, "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("dateRangeFilter", ""), Ln(g, "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearDateExact: async () => {
- var N, q;
+ var k, K;
try {
- x("dateExactFilter", ""), Ln(h, "");
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ v("dateExactFilter", ""), Ln(Z, "");
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
- await (C == null ? void 0 : C());
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ await (h == null ? void 0 : h());
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
},
clearSort: async () => {
- var N, q, O, B;
+ var k, K, z, B;
try {
- x("sort", "mtime_desc"), (N = b == null ? void 0 : b.setSortIcon) == null || N.call(b, w("sort", "mtime_desc")), (q = b == null ? void 0 : b.renderSortMenu) == null || q.call(b);
+ v("sort", "mtime_desc"), (k = b == null ? void 0 : b.setSortIcon) == null || k.call(b, w("sort", "mtime_desc")), (K = b == null ? void 0 : b.renderSortMenu) == null || K.call(b);
} catch (J) {
- (O = console.debug) == null || O.call(console, J);
+ (z = console.debug) == null || z.call(console, J);
}
try {
- await (C == null ? void 0 : C());
+ await (h == null ? void 0 : h());
} catch (J) {
(B = console.debug) == null || B.call(console, J);
}
},
clearAll: async () => {
- var q, O, B, J, T, D, Q, E, K, F, Y;
- let N = !1;
+ var K, z, B, J, P, H, $, E, oe, M, j;
+ let k = !1;
try {
Ln(r, "");
- } catch (U) {
- (q = console.debug) == null || q.call(console, U);
+ } catch (O) {
+ (K = console.debug) == null || K.call(console, O);
}
try {
- x("collectionId", ""), x("collectionName", ""), x("kindFilter", ""), x("workflowOnly", !1), x("minRating", 0), x("minSizeMB", 0), x("maxSizeMB", 0), x("minWidth", 0), x("minHeight", 0), x("maxWidth", 0), x("maxHeight", 0), x("resolutionCompare", "gte"), x("workflowType", ""), x("dateRangeFilter", ""), x("dateExactFilter", ""), x("sort", "mtime_desc"), x("customRootId", ""), x("customRootLabel", ""), x("currentFolderRelativePath", ""), (O = t == null ? void 0 : t.dataset) == null || delete O.mjrSubfolder, V();
+ v("collectionId", ""), v("collectionName", ""), v("kindFilter", ""), v("workflowOnly", !1), v("minRating", 0), v("minSizeMB", 0), v("maxSizeMB", 0), v("minWidth", 0), v("minHeight", 0), v("maxWidth", 0), v("maxHeight", 0), v("resolutionCompare", "gte"), v("workflowType", ""), v("dateRangeFilter", ""), v("dateExactFilter", ""), v("sort", "mtime_desc"), v("customRootId", ""), v("customRootLabel", ""), v("currentFolderRelativePath", ""), (z = t == null ? void 0 : t.dataset) == null || delete z.mjrSubfolder, Y();
try {
- await ((B = S == null ? void 0 : S.clearTransientContext) == null ? void 0 : B.call(S));
- } catch (U) {
- (J = console.debug) == null || J.call(console, U);
+ await ((B = G == null ? void 0 : G.clearTransientContext) == null ? void 0 : B.call(G));
+ } catch (O) {
+ (J = console.debug) == null || J.call(console, O);
}
- typeof (f == null ? void 0 : f.setScope) == "function" ? (await f.setScope("output"), N = !0) : (x("scope", "output"), (T = f == null ? void 0 : f.setActiveTabStyles) == null || T.call(f));
- } catch (U) {
- (D = console.debug) == null || D.call(console, U);
+ typeof (f == null ? void 0 : f.setScope) == "function" ? (await f.setScope("output"), k = !0) : (v("scope", "output"), (P = f == null ? void 0 : f.setActiveTabStyles) == null || P.call(f));
+ } catch (O) {
+ (H = console.debug) == null || H.call(console, O);
}
try {
- Ln(l, ""), Cm(a, !1), Ln(c, ""), Ln(s, "0"), Ln(d, ""), Ln(u, ""), Ln(I, ""), Ln(p, ""), Ln(M, ""), Ln(Z, ""), Ln(A, ""), Ln(g, ""), Ln(h, "");
- } catch (U) {
- (Q = console.debug) == null || Q.call(console, U);
+ Ln(l, ""), Am(a, !1), Ln(c, ""), Ln(s, "0"), Ln(d, ""), Ln(u, ""), Ln(I, ""), Ln(p, ""), Ln(S, ""), Ln(A, ""), Ln(C, ""), Ln(g, ""), Ln(Z, "");
+ } catch (O) {
+ ($ = console.debug) == null || $.call(console, O);
}
try {
- (E = b == null ? void 0 : b.setSortIcon) == null || E.call(b, w("sort", "mtime_desc")), (K = b == null ? void 0 : b.renderSortMenu) == null || K.call(b);
- } catch (U) {
- (F = console.debug) == null || F.call(console, U);
+ (E = b == null ? void 0 : b.setSortIcon) == null || E.call(b, w("sort", "mtime_desc")), (oe = b == null ? void 0 : b.renderSortMenu) == null || oe.call(b);
+ } catch (O) {
+ (M = console.debug) == null || M.call(console, O);
}
try {
- N || await (C == null ? void 0 : C());
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ k || await (h == null ? void 0 : h());
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
}
};
- if (S && typeof S == "object") {
- const N = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
- for (const [q, O] of Object.entries(S))
- N.has(String(q)) || (j[q] = O);
+ if (G && typeof G == "object") {
+ const k = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
+ for (const [K, z] of Object.entries(G))
+ k.has(String(K)) || (N[K] = z);
}
return { update: () => {
- var D, Q, E, K, F, Y, U, P;
- const N = String((r == null ? void 0 : r.value) || "").trim(), q = ys(r), O = X(), B = !!(w("kindFilter", "") || w("workflowOnly", !1) || (Number(w("minRating", 0) || 0) || 0) > 0 || (Number(w("minSizeMB", 0) || 0) || 0) > 0 || (Number(w("maxSizeMB", 0) || 0) || 0) > 0 || (Number(w("minWidth", 0) || 0) || 0) > 0 || (Number(w("minHeight", 0) || 0) || 0) > 0 || (Number(w("maxWidth", 0) || 0) || 0) > 0 || (Number(w("maxHeight", 0) || 0) || 0) > 0 || String(w("workflowType", "") || "").trim().length > 0 || w("dateRangeFilter", "") || w("dateExactFilter", "")), J = String(w("sort", "mtime_desc") || "mtime_desc") !== "mtime_desc", T = !!w("collectionId", "");
+ var H, $, E, oe, M, j, O, D;
+ const k = String((r == null ? void 0 : r.value) || "").trim(), K = hs(r), z = R(), B = !!(w("kindFilter", "") || w("workflowOnly", !1) || (Number(w("minRating", 0) || 0) || 0) > 0 || (Number(w("minSizeMB", 0) || 0) || 0) > 0 || (Number(w("maxSizeMB", 0) || 0) || 0) > 0 || (Number(w("minWidth", 0) || 0) || 0) > 0 || (Number(w("minHeight", 0) || 0) || 0) > 0 || (Number(w("maxWidth", 0) || 0) || 0) > 0 || (Number(w("maxHeight", 0) || 0) || 0) > 0 || String(w("workflowType", "") || "").trim().length > 0 || w("dateRangeFilter", "") || w("dateExactFilter", "")), J = String(w("sort", "mtime_desc") || "mtime_desc") !== "mtime_desc", P = !!w("collectionId", "");
try {
- (Q = (D = n == null ? void 0 : n.classList) == null ? void 0 : D.toggle) == null || Q.call(D, "mjr-context-active", B), (K = (E = i == null ? void 0 : i.classList) == null ? void 0 : E.toggle) == null || K.call(E, "mjr-context-active", J), (Y = (F = o == null ? void 0 : o.classList) == null ? void 0 : F.toggle) == null || Y.call(F, "mjr-context-active", T);
- } catch (ee) {
- (U = console.debug) == null || U.call(console, ee);
+ ($ = (H = n == null ? void 0 : n.classList) == null ? void 0 : H.toggle) == null || $.call(H, "mjr-context-active", B), (oe = (E = i == null ? void 0 : i.classList) == null ? void 0 : E.toggle) == null || oe.call(E, "mjr-context-active", J), (j = (M = o == null ? void 0 : o.classList) == null ? void 0 : M.toggle) == null || j.call(M, "mjr-context-active", P);
+ } catch (q) {
+ (O = console.debug) == null || O.call(console, q);
}
try {
- const ee = (typeof W == "function" ? W() || {} : {}) || {};
- v == null || v({
- state: O,
+ const q = (typeof W == "function" ? W() || {} : {}) || {};
+ L == null || L({
+ state: z,
gridContainer: t,
- context: { rawQuery: N || q, ...ee },
- actions: j
+ context: { rawQuery: k || K, ...q },
+ actions: N
});
- } catch (ee) {
- (P = console.debug) == null || P.call(console, ee);
+ } catch (q) {
+ (D = console.debug) == null || D.call(console, q);
}
- R();
- }, actions: j };
+ F();
+ }, actions: N };
}
-function zM({
+function BM({
state: e,
customSelect: t,
customRemoveBtn: n,
@@ -31493,60 +31539,60 @@ function zM({
reloadGrid: s,
onRootChanged: d = null
}) {
- const u = e && typeof e == "object" ? e : {}, { read: I, write: p } = no(e, [
+ const u = e && typeof e == "object" ? e : {}, { read: I, write: p } = oo(e, [
"customRootId",
"customRootLabel",
"currentFolderRelativePath"
- ]), M = (g) => {
+ ]), S = (g) => {
p("customRootLabel", String(g || ""));
- }, Z = async (g = null) => {
+ }, A = async (g = null) => {
var b;
- const h = ((b = t.querySelector('option[value=""]')) == null ? void 0 : b.textContent) || m("label.selectFolder", "Select folderβ¦");
+ const Z = ((b = t.querySelector('option[value=""]')) == null ? void 0 : b.textContent) || m("label.selectFolder", "Select folderβ¦");
t.innerHTML = "";
const f = document.createElement("option");
f.value = "", f.textContent = m("msg.loading"), f.disabled = !0, t.appendChild(f), t.disabled = !0;
try {
- const v = await l(c.CUSTOM_ROOTS), C = v && v.ok && Array.isArray(v.data) ? v.data : [];
+ const L = await l(c.CUSTOM_ROOTS), h = L && L.ok && Array.isArray(L.data) ? L.data : [];
t.innerHTML = "";
- const S = document.createElement("option");
- S.value = "", S.textContent = h, t.appendChild(S), C.forEach((y) => {
- const k = document.createElement("option");
- k.value = y.id, k.textContent = y.name || y.path || y.id, t.appendChild(k);
+ const G = document.createElement("option");
+ G.value = "", G.textContent = Z, t.appendChild(G), h.forEach((y) => {
+ const X = document.createElement("option");
+ X.value = y.id, X.textContent = y.name || y.path || y.id, t.appendChild(X);
});
const W = g || I("customRootId", "");
- if (W && C.some((y) => y.id === W)) {
+ if (W && h.some((y) => y.id === W)) {
t.value = W, p("customRootId", W);
try {
const y = t.options[t.selectedIndex];
- M(String((y == null ? void 0 : y.text) || "").trim());
+ S(String((y == null ? void 0 : y.text) || "").trim());
} catch {
- M("");
+ S("");
}
} else
- t.value = "", p("customRootId", ""), M("");
+ t.value = "", p("customRootId", ""), S("");
n.disabled = !I("customRootId", "");
- } catch (v) {
- console.warn("Majoor: failed to load custom roots", v), t.innerHTML = "";
- const C = document.createElement("option");
- C.value = "", C.textContent = m("msg.errorLoadingFolders"), C.disabled = !0, t.appendChild(C);
+ } catch (L) {
+ console.warn("Majoor: failed to load custom roots", L), t.innerHTML = "";
+ const h = document.createElement("option");
+ h.value = "", h.textContent = m("msg.errorLoadingFolders"), h.disabled = !0, t.appendChild(h);
} finally {
t.disabled = !1;
}
};
- return { refreshCustomRoots: Z, bind: ({ customAddBtn: g, customRemoveBtn: h }) => {
- const f = [], b = (W, y, k) => {
- if (!(!(W != null && W.addEventListener) || typeof k != "function")) {
+ return { refreshCustomRoots: A, bind: ({ customAddBtn: g, customRemoveBtn: Z }) => {
+ const f = [], b = (W, y, X) => {
+ if (!(!(W != null && W.addEventListener) || typeof X != "function")) {
try {
- W.addEventListener(y, k);
+ W.addEventListener(y, X);
} catch {
return;
}
f.push(() => {
- var G;
+ var x;
try {
- W.removeEventListener(y, k);
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ W.removeEventListener(y, X);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
});
}
@@ -31557,11 +31603,11 @@ function zM({
p("customRootId", t.value || "");
try {
const y = t.options[t.selectedIndex];
- M(String((y == null ? void 0 : y.text) || "").trim());
+ S(String((y == null ? void 0 : y.text) || "").trim());
} catch {
- M("");
+ S("");
}
- p("currentFolderRelativePath", ""), h.disabled = !I("customRootId", "");
+ p("currentFolderRelativePath", ""), Z.disabled = !I("customRootId", "");
try {
await (d == null ? void 0 : d(u));
} catch (y) {
@@ -31570,45 +31616,45 @@ function zM({
await s();
}
}), g && (g.disabled = !1, g.title = m("btn.add", "Add")), b(g, "click", async () => {
- var z, x, w, X;
+ var T, v, w, R;
let W = "";
try {
- const V = await a(c.BROWSE_FOLDER, {});
- V != null && V.ok && (W = String(((z = V == null ? void 0 : V.data) == null ? void 0 : z.path) || "").trim());
- } catch (V) {
- (x = console.debug) == null || x.call(console, V);
+ const Y = await a(c.BROWSE_FOLDER, {});
+ Y != null && Y.ok && (W = String(((T = Y == null ? void 0 : Y.data) == null ? void 0 : T.path) || "").trim());
+ } catch (Y) {
+ (v = console.debug) == null || v.call(console, Y);
}
if (!W) {
- const V = await o(
+ const Y = await o(
m("dialog.enterFolderPath", "Enter folder path"),
""
);
- W = String(V || "").trim();
+ W = String(Y || "").trim();
}
if (!W) return;
const y = await o(
m("dialog.folderLabelOptional", "Folder label (optional)"),
""
- ), k = await a(c.CUSTOM_ROOTS, {
+ ), X = await a(c.CUSTOM_ROOTS, {
path: W,
label: String(y || "").trim() || void 0
});
- if (!(k != null && k.ok)) {
+ if (!(X != null && X.ok)) {
r(
- (k == null ? void 0 : k.error) || m("toast.failedAddFolder", "Failed to add browser folder"),
+ (X == null ? void 0 : X.error) || m("toast.failedAddFolder", "Failed to add browser folder"),
"error"
);
return;
}
- const G = String(((w = k == null ? void 0 : k.data) == null ? void 0 : w.id) || "").trim() || null;
- await Z(G);
+ const x = String(((w = X == null ? void 0 : X.data) == null ? void 0 : w.id) || "").trim() || null;
+ await A(x);
try {
await (d == null ? void 0 : d(e));
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
await s(), r(m("toast.folderAdded", "Folder added"), "success");
- }), b(h, "click", async () => {
+ }), b(Z, "click", async () => {
if (!I("customRootId", "")) return;
const W = t.options[t.selectedIndex], y = W ? W.text : m("label.thisFolder", "this folder");
if (await i(
@@ -31617,21 +31663,21 @@ function zM({
}),
m("dialog.customFoldersTitle", "Majoor: Browser Folders")
)) {
- h.disabled = !0, h.textContent = m("btn.removing");
+ Z.disabled = !0, Z.textContent = m("btn.removing");
try {
- const G = await a(c.CUSTOM_ROOTS_REMOVE, {
+ const x = await a(c.CUSTOM_ROOTS_REMOVE, {
id: I("customRootId", "")
});
- if (!(G != null && G.ok)) {
+ if (!(x != null && x.ok)) {
r(
- (G == null ? void 0 : G.error) || m("toast.failedRemoveFolder", "Failed to remove browser folder"),
+ (x == null ? void 0 : x.error) || m("toast.failedRemoveFolder", "Failed to remove browser folder"),
"error"
);
return;
}
- r(m("toast.folderRemoved", "Folder removed"), "success"), p("customRootId", ""), M(""), p("currentFolderRelativePath", ""), await Z(), await s();
- } catch (G) {
- console.warn("Majoor: remove custom root failed", G), r(
+ r(m("toast.folderRemoved", "Folder removed"), "success"), p("customRootId", ""), S(""), p("currentFolderRelativePath", ""), await A(), await s();
+ } catch (x) {
+ console.warn("Majoor: remove custom root failed", x), r(
m(
"toast.errorRemovingFolder",
"An error occurred while removing the browser folder"
@@ -31639,7 +31685,7 @@ function zM({
"error"
);
} finally {
- h.disabled = !I("customRootId", ""), h.textContent = m("btn.remove");
+ Z.disabled = !I("customRootId", ""), Z.textContent = m("btn.remove");
}
}
}), () => {
@@ -31647,13 +31693,13 @@ function zM({
for (const y of f.splice(0))
try {
y();
- } catch (k) {
- (W = console.debug) == null || W.call(console, k);
+ } catch (X) {
+ (W = console.debug) == null || W.call(console, X);
}
};
} };
}
-function JM({
+function UM({
state: e,
sortBtn: t,
sortMenu: n,
@@ -31662,7 +31708,7 @@ function JM({
reloadGrid: r,
onChanged: l = null
}) {
- const { read: a, write: c } = no(e, ["sort"]), s = () => [
+ const { read: a, write: c } = oo(e, ["sort"]), s = () => [
{ key: "mtime_desc", label: m("sort.newest") },
{ key: "mtime_asc", label: m("sort.oldest") },
{ key: "name_asc", label: m("sort.nameAZ") },
@@ -31671,14 +31717,14 @@ function JM({
{ key: "size_desc", label: m("sort.sizeDesc") },
{ key: "size_asc", label: m("sort.sizeAsc") }
], d = (p) => {
- const M = t.querySelector("i");
- M && (p === "name_asc" ? M.className = "pi pi-sort-alpha-down" : p === "name_desc" ? M.className = "pi pi-sort-alpha-up" : p === "mtime_asc" ? M.className = "pi pi-sort-amount-up-alt" : p === "rating_desc" ? M.className = "pi pi-star-fill" : p === "size_desc" ? M.className = "pi pi-sort-numeric-down-alt" : p === "size_asc" ? M.className = "pi pi-sort-numeric-up-alt" : M.className = "pi pi-sort-amount-down");
+ const S = t.querySelector("i");
+ S && (p === "name_asc" ? S.className = "pi pi-sort-alpha-down" : p === "name_desc" ? S.className = "pi pi-sort-alpha-up" : p === "mtime_asc" ? S.className = "pi pi-sort-amount-up-alt" : p === "rating_desc" ? S.className = "pi pi-star-fill" : p === "size_desc" ? S.className = "pi pi-sort-numeric-down-alt" : p === "size_asc" ? S.className = "pi pi-sort-numeric-up-alt" : S.className = "pi pi-sort-amount-down");
}, u = () => {
n.replaceChildren();
const p = s();
- for (const M of p) {
- const Z = M.key === a("sort", "mtime_desc"), A = document.createElement("button");
- A.type = "button", A.className = "mjr-menu-item", A.style.cssText = `
+ for (const S of p) {
+ const A = S.key === a("sort", "mtime_desc"), C = document.createElement("button");
+ C.type = "button", C.className = "mjr-menu-item", C.style.cssText = `
display:flex;
align-items:center;
justify-content:space-between;
@@ -31686,138 +31732,138 @@ function JM({
gap:10px;
padding:9px 10px;
border-radius:9px;
- border:1px solid ${Z ? "rgba(120,190,255,0.68)" : "rgba(120,190,255,0.18)"};
- background:${Z ? "linear-gradient(135deg, rgba(70,130,255,0.28), rgba(20,95,185,0.22))" : "linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01))"};
- box-shadow:${Z ? "0 0 0 1px rgba(160,210,255,0.22) inset, 0 8px 18px rgba(35,95,185,0.26)" : "none"};
+ border:1px solid ${A ? "rgba(120,190,255,0.68)" : "rgba(120,190,255,0.18)"};
+ background:${A ? "linear-gradient(135deg, rgba(70,130,255,0.28), rgba(20,95,185,0.22))" : "linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01))"};
+ box-shadow:${A ? "0 0 0 1px rgba(160,210,255,0.22) inset, 0 8px 18px rgba(35,95,185,0.26)" : "none"};
transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
`;
const g = document.createElement("span");
- g.className = "mjr-menu-item-label", g.textContent = M.label, g.style.cssText = `font-weight:${Z ? "700" : "600"}; color:${Z ? "rgba(208,234,255,0.98)" : "var(--fg-color, #e6edf7)"};`;
- const h = document.createElement("i");
- h.className = "pi pi-check mjr-menu-item-check", h.style.cssText = `opacity:${Z ? "1" : "0"}; color: rgba(133,203,255,0.98);`, A.appendChild(g), A.appendChild(h), A.addEventListener("mouseenter", () => {
- Z || (A.style.borderColor = "rgba(145,205,255,0.4)", A.style.background = "linear-gradient(135deg, rgba(80,140,255,0.18), rgba(32,100,200,0.14))");
- }), A.addEventListener("mouseleave", () => {
- Z || (A.style.borderColor = "rgba(120,190,255,0.18)", A.style.background = "linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01))");
- }), A.addEventListener("click", async () => {
+ g.className = "mjr-menu-item-label", g.textContent = S.label, g.style.cssText = `font-weight:${A ? "700" : "600"}; color:${A ? "rgba(208,234,255,0.98)" : "var(--fg-color, #e6edf7)"};`;
+ const Z = document.createElement("i");
+ Z.className = "pi pi-check mjr-menu-item-check", Z.style.cssText = `opacity:${A ? "1" : "0"}; color: rgba(133,203,255,0.98);`, C.appendChild(g), C.appendChild(Z), C.addEventListener("mouseenter", () => {
+ A || (C.style.borderColor = "rgba(145,205,255,0.4)", C.style.background = "linear-gradient(135deg, rgba(80,140,255,0.18), rgba(32,100,200,0.14))");
+ }), C.addEventListener("mouseleave", () => {
+ A || (C.style.borderColor = "rgba(120,190,255,0.18)", C.style.background = "linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01))");
+ }), C.addEventListener("click", async () => {
var f;
- c("sort", M.key), d(a("sort", "mtime_desc")), u();
+ c("sort", S.key), d(a("sort", "mtime_desc")), u();
try {
l == null || l();
} catch (b) {
(f = console.debug) == null || f.call(console, b);
}
i.style.display = "none", o.close(i), await r();
- }), n.appendChild(A);
+ }), n.appendChild(C);
}
};
return { bind: ({ onBeforeToggle: p } = {}) => {
- d(a("sort", "mtime_desc")), u(), t.addEventListener("click", (M) => {
- var Z;
- M.stopPropagation();
+ d(a("sort", "mtime_desc")), u(), t.addEventListener("click", (S) => {
+ var A;
+ S.stopPropagation();
try {
p == null || p();
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
u(), o.toggle(i, t);
});
}, renderSortMenu: u, setSortIcon: d };
}
-const Zm = "_mjrRescanning", TM = 1500, BM = (e) => /^\d+$/.test(String(e ?? "").trim());
-async function UM({ card: e, asset: t, sidebar: n, onAssetUpdated: i }) {
- var d, u, I, p, M, Z, A, g, h, f, b, v;
+const Wm = "_mjrRescanning", KM = 1500, DM = (e) => /^\d+$/.test(String(e ?? "").trim());
+async function EM({ card: e, asset: t, sidebar: n, onAssetUpdated: i }) {
+ var d, u, I, p, S, A, C, g, Z, f, b, L;
if (!e || !t || globalThis._mjrMaintenanceActive) return;
try {
- const C = Date.now(), S = Number(e[Zm] || 0) || 0;
- if (C - S < TM) return;
- e[Zm] = C;
- } catch (C) {
- (d = console.debug) == null || d.call(console, C);
+ const h = Date.now(), G = Number(e[Wm] || 0) || 0;
+ if (h - G < KM) return;
+ e[Wm] = h;
+ } catch (h) {
+ (d = console.debug) == null || d.call(console, h);
}
const o = e.querySelector(".mjr-workflow-dot");
try {
- o && (la(o, "pending", "Pending: metadata refresh in progress", {
+ o && (aa(o, "pending", "Pending: metadata refresh in progress", {
asset: t
}), o.classList.add("mjr-pulse-animation"), o.style.cursor = "progress", o.title = m("tooltip.pendingRefresh", "Pending: metadata refresh in progress"));
- } catch (C) {
- (u = console.debug) == null || u.call(console, C);
+ } catch (h) {
+ (u = console.debug) == null || u.call(console, h);
}
try {
- Ce(
+ Ze(
m("toast.rescanUpdatingAiIndex", "Rescanning file + updating AI index..."),
"info",
2200
);
- } catch (C) {
- (I = console.debug) == null || I.call(console, C);
+ } catch (h) {
+ (I = console.debug) == null || I.call(console, h);
}
const r = {
filename: t.filename,
subfolder: t.subfolder || "",
type: String(t.type || "output").toLowerCase(),
- root_id: vi(t) || void 0
+ root_id: Mi(t) || void 0
};
let l = null, a = !1, c = !1, s = !1;
try {
- const C = await Et(lt.INDEX_FILES, {
+ const h = await Et(ct.INDEX_FILES, {
files: [r],
incremental: !1
});
- if (a = !!(C != null && C.ok), !a && o && (la(o, "error", "Error: metadata refresh failed", { asset: t }), o.classList.remove("mjr-pulse-animation"), o.style.cursor = ""), BM(t == null ? void 0 : t.id)) {
+ if (a = !!(h != null && h.ok), !a && o && (aa(o, "error", "Error: metadata refresh failed", { asset: t }), o.classList.remove("mjr-pulse-animation"), o.style.cursor = ""), DM(t == null ? void 0 : t.id)) {
c = !0;
try {
- const S = await Fg(t.id);
- s = !!(S != null && S.ok);
- } catch (S) {
- (p = console.debug) == null || p.call(console, S);
+ const G = await Og(t.id);
+ s = !!(G != null && G.ok);
+ } catch (G) {
+ (p = console.debug) == null || p.call(console, G);
}
}
if (a && t.id != null) {
- const S = await ml(t.id);
- S != null && S.ok && S.data && (l = { ...t, ...S.data });
+ const G = await gl(t.id);
+ G != null && G.ok && G.data && (l = { ...t, ...G.data });
}
} catch {
try {
- o && (la(o, "error", "Error: metadata refresh failed", { asset: t }), o.classList.remove("mjr-pulse-animation"), o.style.cursor = "");
- } catch (C) {
- (M = console.debug) == null || M.call(console, C);
+ o && (aa(o, "error", "Error: metadata refresh failed", { asset: t }), o.classList.remove("mjr-pulse-animation"), o.style.cursor = "");
+ } catch (h) {
+ (S = console.debug) == null || S.call(console, h);
}
}
try {
if (l) {
e._mjrAsset = l, typeof i == "function" && i(l);
try {
- if ((A = (Z = n == null ? void 0 : n.classList) == null ? void 0 : Z.contains) != null && A.call(Z, "is-open")) {
- const C = ((g = n == null ? void 0 : n._currentAsset) == null ? void 0 : g.id) ?? ((h = n == null ? void 0 : n._currentFullAsset) == null ? void 0 : h.id) ?? null;
- C != null && String(C) === String(l.id) && (n._mjrNeedsRefresh = !0);
+ if ((C = (A = n == null ? void 0 : n.classList) == null ? void 0 : A.contains) != null && C.call(A, "is-open")) {
+ const h = ((g = n == null ? void 0 : n._currentAsset) == null ? void 0 : g.id) ?? ((Z = n == null ? void 0 : n._currentFullAsset) == null ? void 0 : Z.id) ?? null;
+ h != null && String(h) === String(l.id) && (n._mjrNeedsRefresh = !0);
}
- } catch (C) {
- (f = console.debug) == null || f.call(console, C);
+ } catch (h) {
+ (f = console.debug) == null || f.call(console, h);
}
}
} finally {
try {
if (o && o.isConnected) {
- const C = $a(l || t);
- C && o.replaceWith(C);
+ const h = ec(l || t);
+ h && o.replaceWith(h);
}
} catch {
try {
o && (o.style.cursor = "");
- } catch (C) {
- (b = console.debug) == null || b.call(console, C);
+ } catch (h) {
+ (b = console.debug) == null || b.call(console, h);
}
}
}
try {
- a && s ? Ce(
+ a && s ? Ze(
m(
"toast.metadataVectorUpdated",
"Metadata + AI vector index updated for this asset."
),
"success",
2200
- ) : a && c && !s && Ce(
+ ) : a && c && !s && Ze(
m(
"toast.metadataUpdatedVectorFailed",
"Metadata updated. AI vector index could not be updated."
@@ -31825,12 +31871,12 @@ async function UM({ card: e, asset: t, sidebar: n, onAssetUpdated: i }) {
"warning",
2600
);
- } catch (C) {
- (v = console.debug) == null || v.call(console, C);
+ } catch (h) {
+ (L = console.debug) == null || L.call(console, h);
}
return l;
}
-function Am(e, t) {
+function wm(e, t) {
var n, i, o, r, l, a, c, s, d, u;
if (e) {
try {
@@ -31864,7 +31910,7 @@ function Am(e, t) {
}
}
}
-const Ja = (e) => {
+const Ta = (e) => {
var t;
if (e == null) return "";
try {
@@ -31875,31 +31921,31 @@ const Ja = (e) => {
}
return String(e).replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
};
-function fs(e, t) {
+function Cs(e, t) {
var n, i;
if (!e || !t) return null;
try {
return e.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${Ja(t)}"]`
+ `.mjr-asset-card[data-mjr-asset-id="${Ta(t)}"]`
);
} catch (o) {
(n = console.debug) == null || n.call(console, o);
}
try {
return e.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${Ja(t)}"]`
+ `.mjr-asset-card[data-mjr-asset-id="${Ta(t)}"]`
);
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
return null;
}
-function $b(e) {
+function ep(e) {
var i, o, r;
if (!e) return null;
const t = (i = e.dataset) == null ? void 0 : i.mjrSelectedAssetId;
if (t) {
- const l = fs(e, t);
+ const l = Cs(e, t);
if (l) return l;
}
const n = (o = e.dataset) == null ? void 0 : o.mjrSelectedAssetIds;
@@ -31907,7 +31953,7 @@ function $b(e) {
try {
const l = JSON.parse(n);
if (Array.isArray(l) && l.length) {
- const a = fs(e, l[0]);
+ const a = Cs(e, l[0]);
if (a) return a;
}
} catch (l) {
@@ -31915,7 +31961,7 @@ function $b(e) {
}
return e.querySelector(".mjr-asset-card.is-selected");
}
-function KM(e, { preventScroll: t = !0 } = {}) {
+function HM(e, { preventScroll: t = !0 } = {}) {
var n, i, o;
if (e)
try {
@@ -31928,16 +31974,16 @@ function KM(e, { preventScroll: t = !0 } = {}) {
}
}
}
-function ep(e, { force: t = !1 } = {}) {
+function tp(e, { force: t = !1 } = {}) {
if (!e || !t && !e._mjrFocusWithin) return;
- const n = $b(e);
- n && (KM(n), e._mjrFocusWithin = !0);
+ const n = ep(e);
+ n && (HM(n), e._mjrFocusWithin = !0);
}
-function ma(e) {
+function ga(e) {
var t, n;
if (e)
try {
- const i = $b(e);
+ const i = ep(e);
if (!i) return;
const o = e.parentElement;
if (o && typeof o.getBoundingClientRect == "function" && typeof i.getBoundingClientRect == "function") {
@@ -31949,7 +31995,7 @@ function ma(e) {
(n = console.debug) == null || n.call(console, i);
}
}
-function Wm(e) {
+function Mm(e) {
var n;
if (e)
try {
@@ -31960,12 +32006,12 @@ function Wm(e) {
const t = () => {
var i, o;
try {
- ma(e);
+ ga(e);
} catch (r) {
(i = console.debug) == null || i.call(console, r);
}
try {
- ep(e);
+ tp(e);
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
@@ -31980,11 +32026,11 @@ function Wm(e) {
t();
}
}
-function DM(e, t) {
+function qM(e, t) {
var n, i;
e && (t ? (e.classList.add("is-selected"), (n = e.setAttribute) == null || n.call(e, "aria-selected", "true")) : (e.classList.remove("is-selected"), (i = e.setAttribute) == null || i.call(e, "aria-selected", "false")));
}
-function ic(e) {
+function oc(e) {
try {
if (typeof (e == null ? void 0 : e._mjrGetRenderedCards) == "function") {
const t = e._mjrGetRenderedCards();
@@ -31999,11 +32045,11 @@ function ic(e) {
return [];
}
}
-function wm(e) {
+function Sm(e) {
var t;
if (e)
try {
- const n = ic(e).filter((i) => {
+ const n = oc(e).filter((i) => {
var o, r;
return (r = (o = i == null ? void 0 : i.classList) == null ? void 0 : o.contains) == null ? void 0 : r.call(o, "is-selected");
}).map((i) => {
@@ -32015,7 +32061,7 @@ function wm(e) {
(t = console.debug) == null || t.call(console, n);
}
}
-function Jr(e, t, n = "") {
+function Br(e, t, n = "") {
var o, r, l, a, c, s;
if (!e) return [];
const i = Array.from(t || []).map(String).filter(Boolean);
@@ -32031,9 +32077,9 @@ function Jr(e, t, n = "") {
(r = console.debug) == null || r.call(console, d);
}
try {
- for (const d of ic(e)) {
+ for (const d of oc(e)) {
const u = (l = d == null ? void 0 : d.dataset) == null ? void 0 : l.mjrAssetId, I = u && i.includes(String(u));
- DM(d, !!I);
+ qM(d, !!I);
}
} catch (d) {
(a = console.debug) == null || a.call(console, d);
@@ -32050,7 +32096,7 @@ function Jr(e, t, n = "") {
}
return i;
}
-function go({ gridContainer: e, state: t, activeId: n, readState: i = null, writeState: o = null } = {}) {
+function bo({ gridContainer: e, state: t, activeId: n, readState: i = null, writeState: o = null } = {}) {
var r, l, a, c;
if (!(!t && !o || !e))
try {
@@ -32062,7 +32108,7 @@ function go({ gridContainer: e, state: t, activeId: n, readState: i = null, writ
} catch (u) {
(l = console.debug) == null || l.call(console, u);
}
- else (a = e.dataset) != null && a.mjrSelectedAssetId ? s = [String(e.dataset.mjrSelectedAssetId)].filter(Boolean) : s = ic(e).filter((u) => {
+ else (a = e.dataset) != null && a.mjrSelectedAssetId ? s = [String(e.dataset.mjrSelectedAssetId)].filter(Boolean) : s = oc(e).filter((u) => {
var I, p;
return (p = (I = u == null ? void 0 : u.classList) == null ? void 0 : I.contains) == null ? void 0 : p.call(I, "is-selected");
}).map((u) => {
@@ -32076,7 +32122,7 @@ function go({ gridContainer: e, state: t, activeId: n, readState: i = null, writ
(c = console.debug) == null || c.call(console, s);
}
}
-function EM({
+function PM({
gridContainer: e,
sidebar: t,
createRatingBadge: n,
@@ -32085,8 +32131,8 @@ function EM({
closeSidebar: r,
state: l
}) {
- var b, v, C, S;
- const { read: a, write: c } = no(l, [
+ var b, L, h, G;
+ const { read: a, write: c } = oo(l, [
"activeAssetId",
"selectedAssetIds",
"sidebarOpen"
@@ -32098,14 +32144,14 @@ function EM({
}) };
e._mjrSidebarOpenBound = !0;
const s = (W) => {
- var k, G;
+ var X, x;
e._mjrFocusWithin = !0;
- const y = ri(W.target, ".mjr-asset-card");
+ const y = li(W.target, ".mjr-asset-card");
if (y)
try {
- e._mjrLastFocusedCardId = ((k = y.dataset) == null ? void 0 : k.mjrAssetId) || "";
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ e._mjrLastFocusedCardId = ((X = y.dataset) == null ? void 0 : X.mjrAssetId) || "";
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
}, d = (W) => {
const y = W == null ? void 0 : W.relatedTarget;
@@ -32119,85 +32165,85 @@ function EM({
try {
if (!e._mjrSelectionResizeObserver) {
const W = e.parentElement;
- let y = null, k = null;
- const G = () => {
+ let y = null, X = null;
+ const x = () => {
try {
return Date.now() <= Number((e == null ? void 0 : e._mjrAutoRevealSelectionUntil) || 0);
} catch {
return !1;
}
- }, z = () => {
- y && cancelAnimationFrame(y), k && clearTimeout(k), y = requestAnimationFrame(() => {
- y = null, G() && ma(e);
- }), k = setTimeout(() => {
- k = null, G() && ma(e);
+ }, T = () => {
+ y && cancelAnimationFrame(y), X && clearTimeout(X), y = requestAnimationFrame(() => {
+ y = null, x() && ga(e);
+ }), X = setTimeout(() => {
+ X = null, x() && ga(e);
}, 160);
- }, x = new ResizeObserver(() => z());
- W && x.observe(W), x.observe(e), e._mjrSelectionResizeObserver = x;
+ }, v = new ResizeObserver(() => T());
+ W && v.observe(W), v.observe(e), e._mjrSelectionResizeObserver = v;
}
} catch (W) {
- (v = console.debug) == null || v.call(console, W);
+ (L = console.debug) == null || L.call(console, W);
}
- const u = (W, y, k) => {
- var G;
+ const u = (W, y, X) => {
+ var x;
try {
- const z = (k == null ? void 0 : k.has_workflow) ?? (k == null ? void 0 : k.hasWorkflow) ?? y.has_workflow, x = (k == null ? void 0 : k.has_generation_data) ?? (k == null ? void 0 : k.hasGenerationData) ?? y.has_generation_data;
- z !== void 0 && (y.has_workflow = z), x !== void 0 && (y.has_generation_data = x);
- const w = W.querySelector(".mjr-workflow-dot"), X = $a(y);
- w && X && w.replaceWith(X);
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ const T = (X == null ? void 0 : X.has_workflow) ?? (X == null ? void 0 : X.hasWorkflow) ?? y.has_workflow, v = (X == null ? void 0 : X.has_generation_data) ?? (X == null ? void 0 : X.hasGenerationData) ?? y.has_generation_data;
+ T !== void 0 && (y.has_workflow = T), v !== void 0 && (y.has_generation_data = v);
+ const w = W.querySelector(".mjr-workflow-dot"), R = ec(y);
+ w && R && w.replaceWith(R);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- if ((k == null ? void 0 : k.rating) !== void 0 && k.rating !== y.rating) {
- y.rating = k.rating;
- const z = W.querySelector(".mjr-thumb"), x = W.querySelector(".mjr-rating-badge"), w = n(k.rating || 0);
- x && w ? x.replaceWith(w) : x && !w ? x.remove() : !x && w && z && z.appendChild(w);
+ if ((X == null ? void 0 : X.rating) !== void 0 && X.rating !== y.rating) {
+ y.rating = X.rating;
+ const T = W.querySelector(".mjr-thumb"), v = W.querySelector(".mjr-rating-badge"), w = n(X.rating || 0);
+ v && w ? v.replaceWith(w) : v && !w ? v.remove() : !v && w && T && T.appendChild(w);
}
- if (k != null && k.tags && JSON.stringify(k.tags) !== JSON.stringify(y.tags)) {
- y.tags = k.tags;
- const z = W.querySelector(".mjr-tags-badge");
- if (z) {
- const x = i(k.tags || []);
- z.replaceWith(x);
+ if (X != null && X.tags && JSON.stringify(X.tags) !== JSON.stringify(y.tags)) {
+ y.tags = X.tags;
+ const T = W.querySelector(".mjr-tags-badge");
+ if (T) {
+ const v = i(X.tags || []);
+ T.replaceWith(v);
}
}
}, I = async (W) => {
- var w, X, V, R, j, L, N, q, O, B, J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $;
+ var w, R, Y, F, N, V, k, K, z, B, J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue, U, Q;
if (W.defaultPrevented) return;
- const y = ri(W.target, ".mjr-asset-card");
+ const y = li(W.target, ".mjr-asset-card");
if (!y) return;
- const k = ri(W.target, ".mjr-workflow-dot");
- if (k && y.contains(k)) {
+ const X = li(W.target, ".mjr-workflow-dot");
+ if (X && y.contains(X)) {
const _ = y._mjrAsset;
if (!_) return;
W.preventDefault(), W.stopPropagation();
const le = ((w = y == null ? void 0 : y.dataset) == null ? void 0 : w.mjrAssetId) || "";
- Jr(e, le ? [le] : [], le), go({ gridContainer: e, state: l, activeId: le, readState: a, writeState: c });
- const se = await UM({
+ Br(e, le ? [le] : [], le), bo({ gridContainer: e, state: l, activeId: le, readState: a, writeState: c });
+ const de = await EM({
card: y,
asset: _,
sidebar: t,
- onAssetUpdated: (de) => u(y, _, de)
+ onAssetUpdated: (se) => u(y, _, se)
});
try {
- const de = ((X = t == null ? void 0 : t._currentAsset) == null ? void 0 : X.id) ?? ((V = t == null ? void 0 : t._currentFullAsset) == null ? void 0 : V.id) ?? null;
- se && ((j = (R = t == null ? void 0 : t.classList) == null ? void 0 : R.contains) != null && j.call(R, "is-open")) && de != null && String(de) === String(se.id) && await o(
+ const se = ((R = t == null ? void 0 : t._currentAsset) == null ? void 0 : R.id) ?? ((Y = t == null ? void 0 : t._currentFullAsset) == null ? void 0 : Y.id) ?? null;
+ de && ((N = (F = t == null ? void 0 : t.classList) == null ? void 0 : F.contains) != null && N.call(F, "is-open")) && se != null && String(se) === String(de.id) && await o(
t,
- se,
- (Ze) => u(y, _, Ze)
+ de,
+ (ge) => u(y, _, ge)
);
- } catch (de) {
- (L = console.debug) == null || L.call(console, de);
+ } catch (se) {
+ (V = console.debug) == null || V.call(console, se);
}
return;
}
- const G = ri(W.target, "a, button, input, textarea, select, label");
- if (G && y.contains(G)) return;
- const z = y._mjrAsset;
- if (!z) return;
+ const x = li(W.target, "a, button, input, textarea, select, label");
+ if (x && y.contains(x)) return;
+ const T = y._mjrAsset;
+ if (!T) return;
if (e != null && e._mjrSelectionManagedByVue) {
- const _ = String(((N = y == null ? void 0 : y.dataset) == null ? void 0 : N.mjrAssetId) || "").trim();
- go({
+ const _ = String(((k = y == null ? void 0 : y.dataset) == null ? void 0 : k.mjrAssetId) || "").trim();
+ bo({
gridContainer: e,
state: l,
activeId: _,
@@ -32205,11 +32251,11 @@ function EM({
writeState: c
});
try {
- if ((O = (q = t == null ? void 0 : t.classList) == null ? void 0 : q.contains) != null && O.call(q, "is-open")) {
+ if ((z = (K = t == null ? void 0 : t.classList) == null ? void 0 : K.contains) != null && z.call(K, "is-open")) {
await o(
t,
- z,
- (le) => u(y, z, le)
+ T,
+ (le) => u(y, T, le)
);
try {
c("sidebarOpen", !0);
@@ -32223,24 +32269,24 @@ function EM({
return;
}
if (W.preventDefault(), W.stopPropagation(), !!(W.ctrlKey || W.metaKey || W.shiftKey)) {
- const _ = ic(e), le = _.indexOf(y);
+ const _ = oc(e), le = _.indexOf(y);
if (W.shiftKey) {
- let xe = [];
+ let Se = [];
try {
- typeof (e == null ? void 0 : e._mjrGetAssets) == "function" && (xe = e._mjrGetAssets() || []);
- } catch (ze) {
- (K = console.debug) == null || K.call(console, ze);
+ typeof (e == null ? void 0 : e._mjrGetAssets) == "function" && (Se = e._mjrGetAssets() || []);
+ } catch (ke) {
+ (oe = console.debug) == null || oe.call(console, ke);
}
- if (Array.isArray(xe) && xe.length) {
- const ze = ((F = y == null ? void 0 : y.dataset) == null ? void 0 : F.mjrAssetId) || "", We = xe.findIndex(
- (Qe) => String((Qe == null ? void 0 : Qe.id) || "") === String(ze)
- ), De = Number(e._mjrLastSelectedIndex), Pe = Number.isFinite(De) ? De : We;
- if (We >= 0 && Pe >= 0) {
- const Qe = Math.min(Pe, We), Ue = Math.max(Pe, We), Ee = xe.slice(Qe, Ue + 1).map((Re) => String((Re == null ? void 0 : Re.id) || "")).filter(Boolean);
- Jr(e, Ee, ze || Ee[0] || ""), e._mjrLastSelectedIndex = We, go({
+ if (Array.isArray(Se) && Se.length) {
+ const ke = ((M = y == null ? void 0 : y.dataset) == null ? void 0 : M.mjrAssetId) || "", we = Se.findIndex(
+ (qe) => String((qe == null ? void 0 : qe.id) || "") === String(ke)
+ ), Je = Number(e._mjrLastSelectedIndex), $e = Number.isFinite(Je) ? Je : we;
+ if (we >= 0 && $e >= 0) {
+ const qe = Math.min($e, we), Ue = Math.max($e, we), Te = Se.slice(qe, Ue + 1).map((Oe) => String((Oe == null ? void 0 : Oe.id) || "")).filter(Boolean);
+ Br(e, Te, ke || Te[0] || ""), e._mjrLastSelectedIndex = we, bo({
gridContainer: e,
state: l,
- activeId: ze || "",
+ activeId: ke || "",
readState: a,
writeState: c
});
@@ -32248,43 +32294,43 @@ function EM({
}
}
}
- const se = String(((Y = y == null ? void 0 : y.dataset) == null ? void 0 : Y.mjrAssetId) || "").trim();
+ const de = String(((j = y == null ? void 0 : y.dataset) == null ? void 0 : j.mjrAssetId) || "").trim();
le >= 0 && (e._mjrLastSelectedIndex = le);
- const de = /* @__PURE__ */ new Set();
+ const se = /* @__PURE__ */ new Set();
try {
- const xe = (U = e.dataset) == null ? void 0 : U.mjrSelectedAssetIds;
- if (xe) {
- const ze = JSON.parse(xe);
- if (Array.isArray(ze))
- for (const We of ze) {
- const De = String(We || "").trim();
- De && de.add(De);
+ const Se = (O = e.dataset) == null ? void 0 : O.mjrSelectedAssetIds;
+ if (Se) {
+ const ke = JSON.parse(Se);
+ if (Array.isArray(ke))
+ for (const we of ke) {
+ const Je = String(we || "").trim();
+ Je && se.add(Je);
}
} else {
- const ze = String(((P = e.dataset) == null ? void 0 : P.mjrSelectedAssetId) || "").trim();
- ze && de.add(ze);
+ const ke = String(((D = e.dataset) == null ? void 0 : D.mjrSelectedAssetId) || "").trim();
+ ke && se.add(ke);
}
- } catch (xe) {
- (ee = console.debug) == null || ee.call(console, xe);
+ } catch (Se) {
+ (q = console.debug) == null || q.call(console, Se);
}
- if (!de.size)
- for (const xe of _) {
- const ze = String(((oe = xe == null ? void 0 : xe.dataset) == null ? void 0 : oe.mjrAssetId) || "").trim();
- ze && (pe = (ce = xe.classList) == null ? void 0 : ce.contains) != null && pe.call(ce, "is-selected") && de.add(ze);
+ if (!se.size)
+ for (const Se of _) {
+ const ke = String(((ee = Se == null ? void 0 : Se.dataset) == null ? void 0 : ee.mjrAssetId) || "").trim();
+ ke && (ue = (ce = Se.classList) == null ? void 0 : ce.contains) != null && ue.call(ce, "is-selected") && se.add(ke);
}
- se && (de.has(se) ? de.delete(se) : de.add(se));
- const Ze = Array.from(de), Fe = de.has(se) ? se : Ze[0] || "";
- Jr(e, Ze, Fe), go({
+ de && (se.has(de) ? se.delete(de) : se.add(de));
+ const ge = Array.from(se), je = se.has(de) ? de : ge[0] || "";
+ Br(e, ge, je), bo({
gridContainer: e,
state: l,
- activeId: Fe,
+ activeId: je,
readState: a,
writeState: c
});
return;
} else {
if (y.classList.contains("is-selected")) {
- Jr(e, [], ""), go({
+ Br(e, [], ""), bo({
gridContainer: e,
state: l,
activeId: "",
@@ -32293,8 +32339,8 @@ function EM({
});
return;
}
- const le = (T = y == null ? void 0 : y.dataset) == null ? void 0 : T.mjrAssetId;
- Jr(e, le ? [le] : [], le || ""), go({
+ const le = (P = y == null ? void 0 : y.dataset) == null ? void 0 : P.mjrAssetId;
+ Br(e, le ? [le] : [], le || ""), bo({
gridContainer: e,
state: l,
activeId: le || "",
@@ -32302,85 +32348,85 @@ function EM({
writeState: c
});
try {
- (Q = (D = t == null ? void 0 : t.classList) == null ? void 0 : D.contains) != null && Q.call(D, "is-open") && o(
+ ($ = (H = t == null ? void 0 : t.classList) == null ? void 0 : H.contains) != null && $.call(H, "is-open") && o(
t,
- z,
- (se) => u(y, z, se)
+ T,
+ (de) => u(y, T, de)
);
- } catch (se) {
- (E = console.debug) == null || E.call(console, se);
+ } catch (de) {
+ (E = console.debug) == null || E.call(console, de);
}
}
try {
- ma(e), (H = y == null ? void 0 : y.focus) == null || H.call(y, { preventScroll: !0 });
+ ga(e), (U = y == null ? void 0 : y.focus) == null || U.call(y, { preventScroll: !0 });
} catch (_) {
- ($ = console.debug) == null || $.call(console, _);
+ (Q = console.debug) == null || Q.call(console, _);
}
};
e.addEventListener("click", I);
const p = async () => {
- var G, z, x, w, X, V, R, j, L, N, q;
+ var x, T, v, w, R, Y, F, N, V, k, K;
const W = String(a("activeAssetId", "") || "");
let y = null;
if (W)
try {
y = e.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${Ja(W)}"]`
+ `.mjr-asset-card[data-mjr-asset-id="${Ta(W)}"]`
);
} catch {
try {
y = e.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${Ja(W)}"]`
+ `.mjr-asset-card[data-mjr-asset-id="${Ta(W)}"]`
);
- } catch (O) {
- (G = console.debug) == null || G.call(console, O);
+ } catch (z) {
+ (x = console.debug) == null || x.call(console, z);
}
}
y || (y = e.querySelector(".mjr-asset-card.is-selected"));
- const k = y == null ? void 0 : y._mjrAsset;
- if (k) {
- Am(e, y), wm(e), go({
+ const X = y == null ? void 0 : y._mjrAsset;
+ if (X) {
+ wm(e, y), Sm(e), bo({
gridContainer: e,
state: l,
- activeId: (z = y == null ? void 0 : y.dataset) == null ? void 0 : z.mjrAssetId,
+ activeId: (T = y == null ? void 0 : y.dataset) == null ? void 0 : T.mjrAssetId,
readState: a,
writeState: c
});
try {
- const O = !!((w = (x = t == null ? void 0 : t.classList) == null ? void 0 : x.contains) != null && w.call(x, "is-open")), B = ((X = t == null ? void 0 : t._currentAsset) == null ? void 0 : X.id) ?? ((V = t == null ? void 0 : t._currentFullAsset) == null ? void 0 : V.id) ?? null;
- if (O && B != null && String(B) === String(k.id) && typeof r == "function") {
+ const z = !!((w = (v = t == null ? void 0 : t.classList) == null ? void 0 : v.contains) != null && w.call(v, "is-open")), B = ((R = t == null ? void 0 : t._currentAsset) == null ? void 0 : R.id) ?? ((Y = t == null ? void 0 : t._currentFullAsset) == null ? void 0 : Y.id) ?? null;
+ if (z && B != null && String(B) === String(X.id) && typeof r == "function") {
r(t);
try {
c("sidebarOpen", !1);
} catch (J) {
- (R = console.debug) == null || R.call(console, J);
+ (F = console.debug) == null || F.call(console, J);
}
- ep(e, { force: !0 }), Wm(e);
+ tp(e, { force: !0 }), Mm(e);
return;
}
- } catch (O) {
- (j = console.debug) == null || j.call(console, O);
+ } catch (z) {
+ (N = console.debug) == null || N.call(console, z);
}
try {
await o(
t,
- k,
- (O) => u(y, k, O)
+ X,
+ (z) => u(y, X, z)
);
try {
c("sidebarOpen", !0);
- } catch (O) {
- (L = console.debug) == null || L.call(console, O);
+ } catch (z) {
+ (V = console.debug) == null || V.call(console, z);
}
- Wm(e), (N = y == null ? void 0 : y.focus) == null || N.call(y, { preventScroll: !0 });
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ Mm(e), (k = y == null ? void 0 : y.focus) == null || k.call(y, { preventScroll: !0 });
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
}
- }, M = async () => {
- var G, z, x, w, X;
+ }, S = async () => {
+ var x, T, v, w, R;
try {
- if (!!!((z = (G = t == null ? void 0 : t.classList) == null ? void 0 : G.contains) != null && z.call(G, "is-open"))) return !1;
+ if (!!!((T = (x = t == null ? void 0 : t.classList) == null ? void 0 : x.contains) != null && T.call(x, "is-open"))) return !1;
} catch {
return !1;
}
@@ -32388,62 +32434,62 @@ function EM({
if (!W) return !1;
let y = null;
try {
- y = fs(e, W);
- } catch (V) {
- (x = console.debug) == null || x.call(console, V);
+ y = Cs(e, W);
+ } catch (Y) {
+ (v = console.debug) == null || v.call(console, Y);
}
- const k = y == null ? void 0 : y._mjrAsset;
- if (!k) return !1;
+ const X = y == null ? void 0 : y._mjrAsset;
+ if (!X) return !1;
try {
await o(
t,
- k,
- (V) => u(y, k, V)
+ X,
+ (Y) => u(y, X, Y)
);
try {
c("sidebarOpen", !0);
- } catch (V) {
- (w = console.debug) == null || w.call(console, V);
+ } catch (Y) {
+ (w = console.debug) == null || w.call(console, Y);
}
return !0;
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
return !1;
};
- let Z = !1;
- const A = () => {
+ let A = !1;
+ const C = () => {
var W, y;
try {
if (!((y = (W = t == null ? void 0 : t.classList) == null ? void 0 : W.contains) != null && y.call(W, "is-open"))) return;
} catch {
return;
}
- Z || (Z = !0, queueMicrotask(async () => {
- var k;
- Z = !1;
+ A || (A = !0, queueMicrotask(async () => {
+ var X;
+ A = !1;
try {
- await M();
- } catch (G) {
- (k = console.debug) == null || k.call(console, G);
+ await S();
+ } catch (x) {
+ (X = console.debug) == null || X.call(console, x);
}
}));
};
- e.addEventListener("mjr:selection-changed", A);
+ e.addEventListener("mjr:selection-changed", C);
const g = (W) => {
- var x, w, X, V, R, j;
- if (W.defaultPrevented || (((w = (x = W.key) == null ? void 0 : x.toLowerCase) == null ? void 0 : w.call(x)) || "") !== "d" || W.ctrlKey || W.metaKey || W.altKey || ((X = W.target) == null ? void 0 : X.isContentEditable) || ((R = (V = W.target) == null ? void 0 : V.closest) == null ? void 0 : R.call(V, "input, textarea, select, [contenteditable='true']"))) return;
- const G = ri(W.target, ".mjr-asset-card");
- !G || !G._mjrAsset || (W.preventDefault(), W.stopPropagation(), Am(e, G), wm(e), go({
+ var v, w, R, Y, F, N;
+ if (W.defaultPrevented || (((w = (v = W.key) == null ? void 0 : v.toLowerCase) == null ? void 0 : w.call(v)) || "") !== "d" || W.ctrlKey || W.metaKey || W.altKey || ((R = W.target) == null ? void 0 : R.isContentEditable) || ((F = (Y = W.target) == null ? void 0 : Y.closest) == null ? void 0 : F.call(Y, "input, textarea, select, [contenteditable='true']"))) return;
+ const x = li(W.target, ".mjr-asset-card");
+ !x || !x._mjrAsset || (W.preventDefault(), W.stopPropagation(), wm(e, x), Sm(e), bo({
gridContainer: e,
state: l,
- activeId: (j = G == null ? void 0 : G.dataset) == null ? void 0 : j.mjrAssetId,
+ activeId: (N = x == null ? void 0 : x.dataset) == null ? void 0 : N.mjrAssetId,
readState: a,
writeState: c
}), p());
};
e.addEventListener("keydown", g);
- const h = () => {
+ const Z = () => {
var W;
try {
c("sidebarOpen", !1);
@@ -32451,73 +32497,73 @@ function EM({
(W = console.debug) == null || W.call(console, y);
}
};
- (C = t == null ? void 0 : t.addEventListener) == null || C.call(t, "mjr:sidebar-closed", h);
+ (h = t == null ? void 0 : t.addEventListener) == null || h.call(t, "mjr:sidebar-closed", Z);
try {
e._mjrOpenDetails = p;
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
const f = () => {
- var W, y, k, G, z, x, w, X, V, R, j, L, N, q;
+ var W, y, X, x, T, v, w, R, Y, F, N, V, k, K;
try {
e.removeEventListener("click", I);
- } catch (O) {
- (W = console.debug) == null || W.call(console, O);
+ } catch (z) {
+ (W = console.debug) == null || W.call(console, z);
}
try {
e.removeEventListener("focusin", s);
- } catch (O) {
- (y = console.debug) == null || y.call(console, O);
+ } catch (z) {
+ (y = console.debug) == null || y.call(console, z);
}
try {
e.removeEventListener("focusout", d);
- } catch (O) {
- (k = console.debug) == null || k.call(console, O);
+ } catch (z) {
+ (X = console.debug) == null || X.call(console, z);
}
try {
e.removeEventListener("keydown", g);
- } catch (O) {
- (G = console.debug) == null || G.call(console, O);
+ } catch (z) {
+ (x = console.debug) == null || x.call(console, z);
}
try {
- e.removeEventListener("mjr:selection-changed", A);
- } catch (O) {
- (z = console.debug) == null || z.call(console, O);
+ e.removeEventListener("mjr:selection-changed", C);
+ } catch (z) {
+ (T = console.debug) == null || T.call(console, z);
}
try {
- (x = t == null ? void 0 : t.removeEventListener) == null || x.call(t, "mjr:sidebar-closed", h);
- } catch (O) {
- (w = console.debug) == null || w.call(console, O);
+ (v = t == null ? void 0 : t.removeEventListener) == null || v.call(t, "mjr:sidebar-closed", Z);
+ } catch (z) {
+ (w = console.debug) == null || w.call(console, z);
}
try {
e._mjrOpenDetails === p && delete e._mjrOpenDetails;
- } catch (O) {
- (X = console.debug) == null || X.call(console, O);
+ } catch (z) {
+ (R = console.debug) == null || R.call(console, z);
}
try {
- (R = (V = e._mjrSelectionResizeObserver) == null ? void 0 : V.disconnect) == null || R.call(V);
- } catch (O) {
- (j = console.debug) == null || j.call(console, O);
+ (F = (Y = e._mjrSelectionResizeObserver) == null ? void 0 : Y.disconnect) == null || F.call(Y);
+ } catch (z) {
+ (N = console.debug) == null || N.call(console, z);
}
try {
delete e._mjrSelectionResizeObserver;
- } catch (O) {
- (L = console.debug) == null || L.call(console, O);
+ } catch (z) {
+ (V = console.debug) == null || V.call(console, z);
}
try {
delete e._mjrSidebarOpenBound;
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
try {
delete e._mjrSidebarOpenDispose;
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
};
- return e._mjrSidebarOpenDispose = f, { dispose: f, toggleDetails: p, refreshActiveAsset: M };
+ return e._mjrSidebarOpenDispose = f, { dispose: f, toggleDetails: p, refreshActiveAsset: S };
}
-function HM({
+function QM({
onTriggerScan: e,
getScanContext: t,
onToggleDetails: n,
@@ -32541,14 +32587,14 @@ function HM({
"Escape",
"Tab"
]), u = () => a || c, I = (g) => {
- var h, f;
+ var Z, f;
if (u()) return !0;
try {
const b = g == null ? void 0 : g.target;
if (s && b && typeof s.contains == "function" && (s === b || s.contains(b)))
return !0;
} catch (b) {
- (h = console.debug) == null || h.call(console, b);
+ (Z = console.debug) == null || Z.call(console, b);
}
try {
return !!(s != null && s.isConnected) && document.activeElement === document.body;
@@ -32556,19 +32602,19 @@ function HM({
return (f = console.debug) == null || f.call(console, b), !1;
}
}, p = (g) => {
- var h, f, b, v, C;
+ var Z, f, b, L, h;
try {
- if ((f = (h = g == null ? void 0 : g.target) == null ? void 0 : h.closest) == null ? void 0 : f.call(h, ".mjr-grid")) return !0;
- } catch (S) {
- (b = console.debug) == null || b.call(console, S);
+ if ((f = (Z = g == null ? void 0 : g.target) == null ? void 0 : Z.closest) == null ? void 0 : f.call(Z, ".mjr-grid")) return !0;
+ } catch (G) {
+ (b = console.debug) == null || b.call(console, G);
}
try {
- const S = wo();
- return S ? document.activeElement === document.body ? !0 : ((v = S.contains) == null ? void 0 : v.call(S, document.activeElement)) || !1 : !1;
- } catch (S) {
- return (C = console.debug) == null || C.call(console, S), !1;
+ const G = So();
+ return G ? document.activeElement === document.body ? !0 : ((L = G.contains) == null ? void 0 : L.call(G, document.activeElement)) || !1 : !1;
+ } catch (G) {
+ return (h = console.debug) == null || h.call(console, G), !1;
}
- }, M = {
+ }, S = {
focusin: () => {
a = !0;
},
@@ -32582,100 +32628,100 @@ function HM({
c = !1;
},
keydown: (g) => {
- var b, v, C, S, W, y, k, G, z, x, w, X, V, R, j, L;
- if (Wo().scope === "viewer" || !I(g)) return;
- const h = ((v = (b = g.key) == null ? void 0 : b.toLowerCase) == null ? void 0 : v.call(b)) || "", f = ((C = g.target) == null ? void 0 : C.isContentEditable) || ((W = (S = g.target) == null ? void 0 : S.closest) == null ? void 0 : W.call(S, "input, textarea, select, [contenteditable='true']"));
- if (h === "s" && (g.ctrlKey || g.metaKey)) {
+ var b, L, h, G, W, y, X, x, T, v, w, R, Y, F, N, V;
+ if (Mo().scope === "viewer" || !I(g)) return;
+ const Z = ((L = (b = g.key) == null ? void 0 : b.toLowerCase) == null ? void 0 : L.call(b)) || "", f = ((h = g.target) == null ? void 0 : h.isContentEditable) || ((W = (G = g.target) == null ? void 0 : G.closest) == null ? void 0 : W.call(G, "input, textarea, select, [contenteditable='true']"));
+ if (Z === "s" && (g.ctrlKey || g.metaKey)) {
g.preventDefault(), g.stopPropagation(), (y = g.stopImmediatePropagation) == null || y.call(g);
try {
- const N = typeof t == "function" ? t() : null;
- e == null || e(N);
- } catch (N) {
- (k = console.debug) == null || k.call(console, N);
+ const k = typeof t == "function" ? t() : null;
+ e == null || e(k);
+ } catch (k) {
+ (X = console.debug) == null || X.call(console, k);
}
return;
}
- if ((h === "f" || h === "k") && (g.ctrlKey || g.metaKey)) {
- g.preventDefault(), g.stopPropagation(), (G = g.stopImmediatePropagation) == null || G.call(g);
- try {
- o == null || o();
- } catch (N) {
- (z = console.debug) == null || z.call(console, N);
- }
- return;
- }
- if (h === "h" && (g.ctrlKey || g.metaKey)) {
+ if ((Z === "f" || Z === "k") && (g.ctrlKey || g.metaKey)) {
g.preventDefault(), g.stopPropagation(), (x = g.stopImmediatePropagation) == null || x.call(g);
try {
- r == null || r();
- } catch (N) {
- (w = console.debug) == null || w.call(console, N);
+ o == null || o();
+ } catch (k) {
+ (T = console.debug) == null || T.call(console, k);
}
return;
}
- if (h === "d" && !g.ctrlKey && !g.metaKey && !g.altKey) {
- if (f) return;
- g.preventDefault(), g.stopPropagation(), (X = g.stopImmediatePropagation) == null || X.call(g);
+ if (Z === "h" && (g.ctrlKey || g.metaKey)) {
+ g.preventDefault(), g.stopPropagation(), (v = g.stopImmediatePropagation) == null || v.call(g);
try {
- n == null || n();
- } catch (N) {
- (V = console.debug) == null || V.call(console, N);
+ r == null || r();
+ } catch (k) {
+ (w = console.debug) == null || w.call(console, k);
}
return;
}
- if (h === "v" && !g.altKey && !(g.shiftKey && (g.ctrlKey || g.metaKey))) {
+ if (Z === "d" && !g.ctrlKey && !g.metaKey && !g.altKey) {
if (f) return;
g.preventDefault(), g.stopPropagation(), (R = g.stopImmediatePropagation) == null || R.call(g);
+ try {
+ n == null || n();
+ } catch (k) {
+ (Y = console.debug) == null || Y.call(console, k);
+ }
+ return;
+ }
+ if (Z === "v" && !g.altKey && !(g.shiftKey && (g.ctrlKey || g.metaKey))) {
+ if (f) return;
+ g.preventDefault(), g.stopPropagation(), (F = g.stopImmediatePropagation) == null || F.call(g);
try {
i == null || i();
- } catch (N) {
- (j = console.debug) == null || j.call(console, N);
+ } catch (k) {
+ (N = console.debug) == null || N.call(console, k);
}
return;
}
if (d.has(g.key) && I(g)) {
if (f || p(g)) return;
- g.preventDefault(), g.stopPropagation(), (L = g.stopImmediatePropagation) == null || L.call(g);
+ g.preventDefault(), g.stopPropagation(), (V = g.stopImmediatePropagation) == null || V.call(g);
}
}
- }, Z = (g) => {
- var h, f;
+ }, A = (g) => {
+ var Z, f;
if (!(!g || s === g)) {
- s && A(), s = g;
+ s && C(), s = g;
try {
- s.addEventListener("focusin", M.focusin), s.addEventListener("focusout", M.focusout), s.addEventListener("mouseenter", M.mouseenter), s.addEventListener("mouseleave", M.mouseleave);
+ s.addEventListener("focusin", S.focusin), s.addEventListener("focusout", S.focusout), s.addEventListener("mouseenter", S.mouseenter), s.addEventListener("mouseleave", S.mouseleave);
} catch (b) {
- (h = console.debug) == null || h.call(console, b);
+ (Z = console.debug) == null || Z.call(console, b);
}
try {
- window.addEventListener("keydown", M.keydown, { capture: !0 });
+ window.addEventListener("keydown", S.keydown, { capture: !0 });
} catch (b) {
(f = console.debug) == null || f.call(console, b);
}
- Zr("panel");
+ wr("panel");
}
- }, A = () => {
- var g, h;
+ }, C = () => {
+ var g, Z;
if (s) {
try {
- s.removeEventListener("focusin", M.focusin), s.removeEventListener("focusout", M.focusout), s.removeEventListener("mouseenter", M.mouseenter), s.removeEventListener("mouseleave", M.mouseleave);
+ s.removeEventListener("focusin", S.focusin), s.removeEventListener("focusout", S.focusout), s.removeEventListener("mouseenter", S.mouseenter), s.removeEventListener("mouseleave", S.mouseleave);
} catch (f) {
(g = console.debug) == null || g.call(console, f);
}
try {
- window.removeEventListener("keydown", M.keydown, { capture: !0 });
+ window.removeEventListener("keydown", S.keydown, { capture: !0 });
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
- Wo().scope === "panel" && Zr(null), s = null;
+ Mo().scope === "panel" && wr(null), s = null;
}
};
- return { bind: Z, dispose: A };
+ return { bind: A, dispose: C };
}
-function Mm(e) {
+function Gm(e) {
return Array.isArray(e) ? e.map((t) => String(t || "").trim()).filter(Boolean) : [];
}
-function qM({
+function _M({
gridContainer: e,
readSelectedAssetIds: t = () => [],
readActiveAssetId: n = () => "",
@@ -32698,8 +32744,8 @@ function qM({
const a = (d) => {
var u, I;
try {
- const p = (d == null ? void 0 : d.detail) || {}, M = Mm(p.selectedIds);
- i(M), o(String(p.activeId || M[0] || "").trim());
+ const p = (d == null ? void 0 : d.detail) || {}, S = Gm(p.selectedIds);
+ i(S), o(String(p.activeId || S[0] || "").trim());
} catch (p) {
(u = console.debug) == null || u.call(console, p);
}
@@ -32718,33 +32764,33 @@ function qM({
}
return {
restoreSelectionState: ({ scrollTop: d = 0 } = {}) => {
- var p, M, Z, A;
- const u = Mm(t()), I = String(n() || u[0] || "").trim();
+ var p, S, A, C;
+ const u = Gm(t()), I = String(n() || u[0] || "").trim();
if (!(!u.length && !I)) {
try {
typeof (e == null ? void 0 : e._mjrSetSelection) == "function" && e._mjrSetSelection(u, I);
} catch (g) {
(p = console.debug) == null || p.call(console, g);
}
- if (!(!I || Number(d || 0) > 0)) {
+ if (I) {
try {
if (typeof (e == null ? void 0 : e._mjrScrollToAssetId) == "function") {
e._mjrScrollToAssetId(I);
return;
}
} catch (g) {
- (M = console.debug) == null || M.call(console, g);
+ (S = console.debug) == null || S.call(console, g);
}
try {
const g = e.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${SC(I)}"]`
+ `.mjr-asset-card[data-mjr-asset-id="${jC(I)}"]`
);
- (Z = g == null ? void 0 : g.scrollIntoView) == null || Z.call(g, {
+ (A = g == null ? void 0 : g.scrollIntoView) == null || A.call(g, {
block: "nearest",
behavior: "instant"
});
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
}
}
@@ -32759,7 +32805,7 @@ function qM({
}
};
}
-function PM(e) {
+function $M(e) {
var t;
try {
if (typeof requestAnimationFrame == "function") {
@@ -32771,10 +32817,10 @@ function PM(e) {
}
setTimeout(e, 0);
}
-function QM(e = {}, t = "*") {
+function e2(e = {}, t = "*") {
return e.scope === "output" && !e.collectionId && t === "*" && !e.kindFilter && !e.workflowOnly && !(Number(e.minRating || 0) > 0) && !(Number(e.minSizeMB || 0) > 0) && !(Number(e.maxSizeMB || 0) > 0) && !(Number(e.minWidth || 0) > 0) && !(Number(e.minHeight || 0) > 0) && !(Number(e.maxWidth || 0) > 0) && !(Number(e.maxHeight || 0) > 0) && !String(e.workflowType || "").trim() && !e.dateRangeFilter && !e.dateExactFilter;
}
-function tp({
+function np({
gridContainer: e,
gridWrapper: t,
readScrollElement: n = () => null,
@@ -32791,181 +32837,181 @@ function tp({
},
getQuery: I = () => "*",
getScope: p = () => "output",
- loadAssets: M = null,
- lifecycleSignal: Z = null
+ loadAssets: S = null,
+ lifecycleSignal: A = null
} = {}) {
- let A = 0, g = !1, h = null, f = null, b = null, v = 0, C = !0;
- const S = () => {
- var V;
+ let C = 0, g = !1, Z = null, f = null, b = null, L = 0, h = !0;
+ const G = () => {
+ var Y;
try {
- const R = typeof n == "function" ? n() : t;
- return sd(e, R || t || null);
- } catch (R) {
- return (V = console.debug) == null || V.call(console, R), !1;
+ const F = typeof n == "function" ? n() : t;
+ return ud(e, F || t || null);
+ } catch (F) {
+ return (Y = console.debug) == null || Y.call(console, F), !1;
}
- }, W = (V = null, { resumeQueuedReload: R = !0 } = {}) => {
- if (C = typeof V == "boolean" ? V : S(), !C)
- return h && (clearTimeout(h), h = null), C;
- if (b && !h) {
- const j = b, L = v || 50;
- b = null, v = 0, x(j, Math.min(L, 50));
+ }, W = (Y = null, { resumeQueuedReload: F = !0 } = {}) => {
+ if (h = typeof Y == "boolean" ? Y : G(), !h)
+ return Z && (clearTimeout(Z), Z = null), h;
+ if (b && !Z) {
+ const N = b, V = L || 50;
+ b = null, L = 0, v(N, Math.min(V, 50));
}
- return R && A > 0 && !g && k().catch((j) => {
- var L;
- return (L = console.debug) == null ? void 0 : L.call(console, j);
- }), C;
+ return F && C > 0 && !g && X().catch((N) => {
+ var V;
+ return (V = console.debug) == null ? void 0 : V.call(console, N);
+ }), h;
}, y = () => {
- var V, R;
+ var Y, F;
try {
- return ((V = e == null ? void 0 : e.querySelector) == null ? void 0 : V.call(e, ".mjr-asset-card")) != null;
- } catch (j) {
- return (R = console.debug) == null || R.call(console, j), !1;
+ return ((Y = e == null ? void 0 : e.querySelector) == null ? void 0 : Y.call(e, ".mjr-asset-card")) != null;
+ } catch (N) {
+ return (F = console.debug) == null || F.call(console, N), !1;
}
- }, k = async () => {
- var V;
- if (!(!e || !(i != null && i.reloadGrid)) && (A += 1, !!W(null, { resumeQueuedReload: !1 }) && !g)) {
+ }, X = async () => {
+ var Y;
+ if (!(!e || !(i != null && i.reloadGrid)) && (C += 1, !!W(null, { resumeQueuedReload: !1 }) && !g)) {
g = !0;
try {
- for (; A > 0; ) {
+ for (; C > 0; ) {
if (!W(null, { resumeQueuedReload: !1 })) return;
- A = 0;
- const R = typeof o == "function" ? o(e) : null;
+ C = 0;
+ const F = typeof o == "function" ? o(e) : null;
if (await i.reloadGrid(), !W(null, { resumeQueuedReload: !1 })) return;
- if (R && typeof r == "function")
+ if (F && typeof r == "function")
try {
- const j = Number(a() || 0) || 0, L = Number((R == null ? void 0 : R.scrollTop) || 0) || 0;
- if (Math.abs(j - L) > 8)
+ const N = Number(a() || 0) || 0, V = Number((F == null ? void 0 : F.scrollTop) || 0) || 0;
+ if (N > V + 8)
continue;
- await r(e, R);
- } catch (j) {
- (V = console.debug) == null || V.call(console, j);
+ await r(e, F);
+ } catch (N) {
+ (Y = console.debug) == null || Y.call(console, N);
}
}
} finally {
g = !1;
}
}
- }, G = async (V) => {
- var R;
+ }, x = async (Y) => {
+ var F;
if (typeof l == "function")
- return l(V);
+ return l(Y);
try {
- await V;
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ await Y;
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
- PM(() => {
- var L, N, q;
- const j = Number(a() || 0) || 0;
- if (j > 0)
+ $M(() => {
+ var V, k, K;
+ const N = Number(a() || 0) || 0;
+ if (N > 0)
try {
- t.scrollTop = j;
- } catch (O) {
- (L = console.debug) == null || L.call(console, O);
+ t.scrollTop = N;
+ } catch (z) {
+ (V = console.debug) == null || V.call(console, z);
}
try {
- c({ scrollTop: j });
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ c({ scrollTop: N });
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
if (d() && s())
try {
u();
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
});
- }, z = async (V) => {
- var j, L, N, q;
+ }, T = async (Y) => {
+ var N, V, k, K;
try {
- await V;
- } catch (O) {
- (j = console.debug) == null || j.call(console, O);
+ await Y;
+ } catch (z) {
+ (N = console.debug) == null || N.call(console, z);
}
- if (!e || typeof M != "function" || Z != null && Z.aborted) return;
+ if (!e || typeof S != "function" || A != null && A.aborted) return;
if (!W()) {
- b = V, v = 50;
+ b = Y, L = 50;
return;
}
- let R = !1;
+ let F = !1;
try {
- R = e.querySelector(".mjr-asset-card") != null;
- } catch (O) {
- (L = console.debug) == null || L.call(console, O);
+ F = e.querySelector(".mjr-asset-card") != null;
+ } catch (z) {
+ (V = console.debug) == null || V.call(console, z);
}
- if (!R && String(p() || "output") === "output" && String(I() || "*") === "*")
+ if (!F && String(p() || "output") === "output" && String(I() || "*") === "*")
try {
- const O = await Rt(`${lt.HEALTH_COUNTERS}?scope=output`, {
- signal: Z || void 0
+ const z = await Ft(`${ct.HEALTH_COUNTERS}?scope=output`, {
+ signal: A || void 0
});
- O != null && O.ok && (((N = O.data) == null ? void 0 : N.total_assets) || 0) > 0 && await M(e);
- } catch (O) {
- (q = console.debug) == null || q.call(console, O);
+ z != null && z.ok && (((k = z.data) == null ? void 0 : k.total_assets) || 0) > 0 && await S(e);
+ } catch (z) {
+ (K = console.debug) == null || K.call(console, z);
}
- }, x = (V, R = 2e3) => (h && clearTimeout(h), W() ? (b = null, v = 0, h = setTimeout(() => {
- h = null, z(V).catch(() => {
+ }, v = (Y, F = 2e3) => (Z && clearTimeout(Z), W() ? (b = null, L = 0, Z = setTimeout(() => {
+ Z = null, T(Y).catch(() => {
});
- }, R), h) : (b = V, v = R, null));
+ }, F), Z) : (b = Y, L = F, null));
return {
- queuedReload: k,
- restoreUiState: G,
- scheduleAutoLoad: x,
+ queuedReload: X,
+ restoreUiState: x,
+ scheduleAutoLoad: v,
createCountersUpdateHandler: ({
- state: V = {},
- getStableQuery: R = () => {
- var L;
- return String(((L = e == null ? void 0 : e.dataset) == null ? void 0 : L.mjrQuery) || "*").trim() || "*";
+ state: Y = {},
+ getStableQuery: F = () => {
+ var V;
+ return String(((V = e == null ? void 0 : e.dataset) == null ? void 0 : V.mjrQuery) || "*").trim() || "*";
},
- getRecentUserInteractionAt: j = () => 0
+ getRecentUserInteractionAt: N = () => 0
} = {}) => {
- const L = (globalThis == null ? void 0 : globalThis.window) ?? globalThis;
- let N = null, q = null, O = null, B = !1, J = 0;
- return async (T = {}) => {
- var $, _, le, se, de;
+ const V = (globalThis == null ? void 0 : globalThis.window) ?? globalThis;
+ let k = null, K = null, z = null, B = !1, J = 0;
+ return async (P = {}) => {
+ var Q, _, le, de, se;
if (!B) {
- B = !0, N = T.last_scan_end, q = T.last_index_end, O = Number(T.total_assets ?? null);
+ B = !0, k = P.last_scan_end, K = P.last_index_end, z = Number(P.total_assets ?? null);
return;
}
- const D = T.last_scan_end && T.last_scan_end !== N, Q = T.last_index_end && T.last_index_end !== q, E = Number(T.total_assets ?? null), K = String(R() || "*").trim() || "*", F = QM(V, K), Y = Number.isFinite(E) && Number.isFinite(O) ? E - O : 0, U = Math.max(
+ const H = P.last_scan_end && P.last_scan_end !== k, $ = P.last_index_end && P.last_index_end !== K, E = Number(P.total_assets ?? null), oe = String(F() || "*").trim() || "*", M = e2(Y, oe), j = Number.isFinite(E) && Number.isFinite(z) ? E - z : 0, O = Math.max(
0,
- Number((L == null ? void 0 : L.__mjrLastAssetUpsertCount) || 0) || 0
- ), P = Y >= 20;
- if (Number.isFinite(E) && (O = E), !F) {
- N = T.last_scan_end, q = T.last_index_end;
+ Number((V == null ? void 0 : V.__mjrLastAssetUpsertCount) || 0) || 0
+ ), D = j >= 20;
+ if (Number.isFinite(E) && (z = E), !M) {
+ k = P.last_scan_end, K = P.last_index_end;
return;
}
- const oe = Date.now() - Number((L == null ? void 0 : L.__mjrLastAssetUpsert) || 0) < 15e3, ce = oe && Y > 0 && U > 0 && Y <= U + 8, pe = P && !D && !Q && y();
- Q && (q = T.last_index_end);
- const H = Q && !D && !P && !oe;
- if (ce && !D) {
- N = T.last_scan_end, q = T.last_index_end;
+ const ee = Date.now() - Number((V == null ? void 0 : V.__mjrLastAssetUpsert) || 0) < 15e3, ce = ee && j > 0 && O > 0 && j <= O + 8, ue = D && !H && !$ && y();
+ $ && (K = P.last_index_end);
+ const U = $ && !H && !D && !ee;
+ if (ce) {
+ k = P.last_scan_end, K = P.last_index_end;
try {
- L.__mjrLastAssetUpsertCount = 0;
- } catch (Ze) {
- ($ = console.debug) == null || $.call(console, Ze);
+ V.__mjrLastAssetUpsertCount = 0;
+ } catch (ge) {
+ (Q = console.debug) == null || Q.call(console, ge);
}
return;
}
- if (pe) {
- N = T.last_scan_end, q = T.last_index_end;
+ if (ue) {
+ k = P.last_scan_end, K = P.last_index_end;
return;
}
- if (!(oe && !D) && !(!D && !P && !H) && W()) {
+ if (!ee && !(!H && !D && !U) && W()) {
try {
if (Date.now() - Number(J || 0) < 15e3) return;
- } catch (Ze) {
- (_ = console.debug) == null || _.call(console, Ze);
+ } catch (ge) {
+ (_ = console.debug) == null || _.call(console, ge);
}
try {
- if (Date.now() - Number(j() || 0) < 2e3) return;
- } catch (Ze) {
- (le = console.debug) == null || le.call(console, Ze);
+ if (Date.now() - Number(N() || 0) < 2e3) return;
+ } catch (ge) {
+ (le = console.debug) == null || le.call(console, ge);
}
- N = T.last_scan_end, q = T.last_index_end;
+ k = P.last_scan_end, K = P.last_index_end;
try {
- await k();
- } catch (Ze) {
- (se = console.debug) == null || se.call(console, Ze);
+ await X();
+ } catch (ge) {
+ (de = console.debug) == null || de.call(console, ge);
}
try {
J = Date.now();
@@ -32973,55 +33019,55 @@ function tp({
J = 0;
}
try {
- L.__mjrLastAssetUpsertCount = 0;
- } catch (Ze) {
- (de = console.debug) == null || de.call(console, Ze);
+ V.__mjrLastAssetUpsertCount = 0;
+ } catch (ge) {
+ (se = console.debug) == null || se.call(console, ge);
}
}
};
},
bindSearchInput: ({
- searchInputEl: V,
- lifecycleSignal: R = null,
- debounceMs: j = 200,
- onQueryChanged: L = () => {
+ searchInputEl: Y,
+ lifecycleSignal: F = null,
+ debounceMs: N = 200,
+ onQueryChanged: V = () => {
},
- onBeforeReload: N = () => {
+ onBeforeReload: k = () => {
},
- startSearchTimer: q = () => {
+ startSearchTimer: K = () => {
},
- reloadGrid: O = () => {
+ reloadGrid: z = () => {
}
} = {}) => {
- if (!V) return () => {
+ if (!Y) return () => {
};
let B = "";
const J = () => {
- var Q, E, K;
+ var $, E, oe;
try {
- N();
- } catch (F) {
- (Q = console.debug) == null || Q.call(console, F);
+ k();
+ } catch (M) {
+ ($ = console.debug) == null || $.call(console, M);
}
try {
- q();
- } catch (F) {
- (E = console.debug) == null || E.call(console, F);
+ K();
+ } catch (M) {
+ (E = console.debug) == null || E.call(console, M);
}
try {
- O();
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ z();
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
}
- }, T = (Q) => {
- var K, F;
- const E = ((K = Q == null ? void 0 : Q.target) == null ? void 0 : K.value) ?? "";
+ }, P = ($) => {
+ var oe, M;
+ const E = ((oe = $ == null ? void 0 : $.target) == null ? void 0 : oe.value) ?? "";
if (E !== B) {
B = E;
try {
- L(E);
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y);
+ V(E);
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
}
if (f && clearTimeout(f), E.length === 0 || E === "*") {
J();
@@ -33029,39 +33075,39 @@ function tp({
}
f = setTimeout(() => {
f = null, J();
- }, j);
+ }, N);
}
- }, D = (Q) => {
- (Q == null ? void 0 : Q.key) === "Enter" && (f && (clearTimeout(f), f = null), J());
+ }, H = ($) => {
+ ($ == null ? void 0 : $.key) === "Enter" && (f && (clearTimeout(f), f = null), J());
};
- return V.addEventListener("input", T, {
- signal: R || void 0
- }), V.addEventListener("keypress", D, {
- signal: R || void 0
+ return Y.addEventListener("input", P, {
+ signal: F || void 0
+ }), Y.addEventListener("keypress", H, {
+ signal: F || void 0
}), () => {
- var Q, E;
+ var $, E;
f && (clearTimeout(f), f = null);
try {
- V.removeEventListener("input", T);
- } catch (K) {
- (Q = console.debug) == null || Q.call(console, K);
+ Y.removeEventListener("input", P);
+ } catch (oe) {
+ ($ = console.debug) == null || $.call(console, oe);
}
try {
- V.removeEventListener("keypress", D);
- } catch (K) {
- (E = console.debug) == null || E.call(console, K);
+ Y.removeEventListener("keypress", H);
+ } catch (oe) {
+ (E = console.debug) == null || E.call(console, oe);
}
};
},
- setVisibility(V = null) {
- return W(V);
+ setVisibility(Y = null) {
+ return W(Y);
},
dispose() {
- h && (clearTimeout(h), h = null), b = null, v = 0, f && (clearTimeout(f), f = null);
+ Z && (clearTimeout(Z), Z = null), b = null, L = 0, f && (clearTimeout(f), f = null);
}
};
}
-function _M(e, { useComfyThemeUI: t }) {
+function t2(e, { useComfyThemeUI: t }) {
var r, l, a;
t ? e.classList.add("mjr-assets-manager") : e.classList.remove("mjr-assets-manager");
const n = e.parentElement || null, i = n ? {
@@ -33074,7 +33120,7 @@ function _M(e, { useComfyThemeUI: t }) {
} catch (c) {
(r = console.debug) == null || r.call(console, c);
}
- xa();
+ ja();
for (const c of [
() => {
var s;
@@ -33107,7 +33153,7 @@ function _M(e, { useComfyThemeUI: t }) {
(l = console.debug) == null || l.call(console, s);
}
e.replaceChildren(), e.classList.add("mjr-am-container");
- const o = ib(e);
+ const o = ob(e);
try {
e._mjrPopoverManager = o;
} catch (c) {
@@ -33115,7 +33161,7 @@ function _M(e, { useComfyThemeUI: t }) {
}
return { popovers: o, hostWrapper: n, hostWrapperPrevStyle: i };
}
-function $M({
+function n2({
container: e,
state: t,
sidebar: n,
@@ -33131,136 +33177,136 @@ function $M({
getSidebarController: I,
panelLifecycleAC: p
}) {
- var b, v, C;
- let M = "";
- const Z = () => {
- var S;
+ var b, L, h;
+ let S = "";
+ const A = () => {
+ var G;
try {
const W = Xn();
- return !!(((S = W == null ? void 0 : W.ai) == null ? void 0 : S.vectorSearchEnabled) ?? !0);
+ return !!(((G = W == null ? void 0 : W.ai) == null ? void 0 : G.vectorSearchEnabled) ?? !0);
} catch {
return !0;
}
- }, A = (S) => {
- var y, k, G;
- const W = !!S;
+ }, C = (G) => {
+ var y, X, x;
+ const W = !!G;
try {
e.classList.toggle("mjr-ai-disabled", !W);
- } catch (z) {
- (y = console.debug) == null || y.call(console, z);
+ } catch (T) {
+ (y = console.debug) == null || y.call(console, T);
}
try {
r.disabled = !W, r.title = W ? a : c;
- } catch (z) {
- (k = console.debug) == null || k.call(console, z);
+ } catch (T) {
+ (X = console.debug) == null || X.call(console, T);
}
try {
l == null || l(W);
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- }, g = (S) => {
- var G, z, x, w, X, V;
- const W = String(S || "right").toLowerCase() === "left" ? "left" : "right";
- if (M === W) return;
- M = W;
- let y = 0, k = 0;
+ }, g = (G) => {
+ var x, T, v, w, R, Y;
+ const W = String(G || "right").toLowerCase() === "left" ? "left" : "right";
+ if (S === W) return;
+ S = W;
+ let y = 0, X = 0;
try {
- y = Number((o == null ? void 0 : o.scrollTop) || 0) || 0, k = Number((o == null ? void 0 : o.scrollLeft) || 0) || 0;
- } catch (R) {
- (G = console.debug) == null || G.call(console, R);
+ y = Number((o == null ? void 0 : o.scrollTop) || 0) || 0, X = Number((o == null ? void 0 : o.scrollLeft) || 0) || 0;
+ } catch (F) {
+ (x = console.debug) == null || x.call(console, F);
}
try {
n.dataset.position = W;
- const R = (x = (z = n.classList) == null ? void 0 : z.contains) == null ? void 0 : x.call(z, "is-open"), j = "var(--mjr-border, rgba(255,255,255,0.12))";
- n.style.borderLeft = W === "left" ? "none" : R ? `1px solid ${j}` : "none", n.style.borderRight = W === "left" && R ? `1px solid ${j}` : "none";
- } catch (R) {
- (w = console.debug) == null || w.call(console, R);
+ const F = (v = (T = n.classList) == null ? void 0 : T.contains) == null ? void 0 : v.call(T, "is-open"), N = "var(--mjr-border, rgba(255,255,255,0.12))";
+ n.style.borderLeft = W === "left" ? "none" : F ? `1px solid ${N}` : "none", n.style.borderRight = W === "left" && F ? `1px solid ${N}` : "none";
+ } catch (F) {
+ (w = console.debug) == null || w.call(console, F);
}
try {
W === "left" ? (i.appendChild(n), i.appendChild(o), i.insertBefore(n, i.firstChild)) : (i.appendChild(o), i.appendChild(n));
- } catch (R) {
- (X = console.debug) == null || X.call(console, R);
+ } catch (F) {
+ (R = console.debug) == null || R.call(console, F);
}
try {
requestAnimationFrame(() => {
- var R;
+ var F;
try {
- o.scrollTop = y, o.scrollLeft = k;
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ o.scrollTop = y, o.scrollLeft = X;
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
});
} catch {
try {
- o.scrollTop = y, o.scrollLeft = k;
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ o.scrollTop = y, o.scrollLeft = X;
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
}
- }, h = async (S) => {
- var G, z, x, w;
- const W = String(S || t.scope || "output").toLowerCase(), y = Xn(), k = !!((G = y == null ? void 0 : y.watcher) != null && G.enabled);
+ }, Z = async (G) => {
+ var x, T, v, w;
+ const W = String(G || t.scope || "output").toLowerCase(), y = Xn(), X = !!((x = y == null ? void 0 : y.watcher) != null && x.enabled);
if (W === "custom") {
try {
- await wa(!1);
- } catch (X) {
- (z = console.debug) == null || z.call(console, X);
+ await Ma(!1);
+ } catch (R) {
+ (T = console.debug) == null || T.call(console, R);
}
return;
}
try {
- await wa(k);
- } catch (X) {
- (x = console.debug) == null || x.call(console, X);
+ await Ma(X);
+ } catch (R) {
+ (v = console.debug) == null || v.call(console, R);
}
- if (k)
+ if (X)
try {
- await Lf({ scope: W, customRootId: "" });
- } catch (X) {
- (w = console.debug) == null || w.call(console, X);
+ await kf({ scope: W, customRootId: "" });
+ } catch (R) {
+ (w = console.debug) == null || w.call(console, R);
}
- }, f = (S) => {
- var x, w, X, V, R, j, L, N, q, O, B;
- const W = String(((x = S == null ? void 0 : S.detail) == null ? void 0 : x.key) || "").trim(), y = W === "__init__", k = y || W.startsWith("grid.") || W.startsWith("infiniteScroll.") || W.startsWith("siblings.") || W.startsWith("search.") || W.startsWith("rtHydrate.") || W.startsWith("workflowMinimap."), G = y || W.startsWith("sidebar.") || W.startsWith("ai."), z = y || W.startsWith("watcher.");
+ }, f = (G) => {
+ var v, w, R, Y, F, N, V, k, K, z, B;
+ const W = String(((v = G == null ? void 0 : G.detail) == null ? void 0 : v.key) || "").trim(), y = W === "__init__", X = y || W.startsWith("grid.") || W.startsWith("infiniteScroll.") || W.startsWith("siblings.") || W.startsWith("search.") || W.startsWith("rtHydrate.") || W.startsWith("workflowMinimap."), x = y || W.startsWith("sidebar.") || W.startsWith("ai."), T = y || W.startsWith("watcher.");
try {
- const J = Xn(), T = !!(((w = J == null ? void 0 : J.ai) == null ? void 0 : w.vectorSearchEnabled) ?? !0), D = String(((X = J == null ? void 0 : J.ui) == null ? void 0 : X.cardHoverColor) || "").trim(), Q = String(((V = J == null ? void 0 : J.ui) == null ? void 0 : V.cardSelectionColor) || "").trim(), E = String(((R = J == null ? void 0 : J.ui) == null ? void 0 : R.ratingColor) || "").trim(), K = String(((j = J == null ? void 0 : J.ui) == null ? void 0 : j.tagColor) || "").trim();
- if (/^#[0-9a-fA-F]{3,8}$/.test(D) && document.documentElement.style.setProperty("--mjr-card-hover-color", D), /^#[0-9a-fA-F]{3,8}$/.test(Q) && document.documentElement.style.setProperty("--mjr-card-selection-color", Q), /^#[0-9a-fA-F]{3,8}$/.test(E) && document.documentElement.style.setProperty("--mjr-rating-color", E), /^#[0-9a-fA-F]{3,8}$/.test(K) && document.documentElement.style.setProperty("--mjr-tag-color", K), g(((L = J.sidebar) == null ? void 0 : L.position) || "right"), A(T), k) {
- const F = wo() || null;
+ const J = Xn(), P = !!(((w = J == null ? void 0 : J.ai) == null ? void 0 : w.vectorSearchEnabled) ?? !0), H = String(((R = J == null ? void 0 : J.ui) == null ? void 0 : R.cardHoverColor) || "").trim(), $ = String(((Y = J == null ? void 0 : J.ui) == null ? void 0 : Y.cardSelectionColor) || "").trim(), E = String(((F = J == null ? void 0 : J.ui) == null ? void 0 : F.ratingColor) || "").trim(), oe = String(((N = J == null ? void 0 : J.ui) == null ? void 0 : N.tagColor) || "").trim();
+ if (/^#[0-9a-fA-F]{3,8}$/.test(H) && document.documentElement.style.setProperty("--mjr-card-hover-color", H), /^#[0-9a-fA-F]{3,8}$/.test($) && document.documentElement.style.setProperty("--mjr-card-selection-color", $), /^#[0-9a-fA-F]{3,8}$/.test(E) && document.documentElement.style.setProperty("--mjr-rating-color", E), /^#[0-9a-fA-F]{3,8}$/.test(oe) && document.documentElement.style.setProperty("--mjr-tag-color", oe), g(((V = J.sidebar) == null ? void 0 : V.position) || "right"), C(P), X) {
+ const M = So() || null;
if (!y && W.startsWith("siblings."))
try {
- F == null || F.dispatchEvent(new CustomEvent("mjr:reload-grid"));
+ M == null || M.dispatchEvent(new CustomEvent("mjr:reload-grid"));
} catch {
- F && s(F);
+ M && s(M);
}
- else (W.startsWith("grid.") || W.startsWith("workflowMinimap.")) && F && s(F);
+ else (W.startsWith("grid.") || W.startsWith("workflowMinimap.")) && M && s(M);
}
- G && d() && u() && ((q = (N = I()) == null ? void 0 : N.refreshActiveAsset) == null || q.call(N));
+ x && d() && u() && ((K = (k = I()) == null ? void 0 : k.refreshActiveAsset) == null || K.call(k));
} catch (J) {
- (O = console.debug) == null || O.call(console, J);
+ (z = console.debug) == null || z.call(console, J);
}
try {
- if (!z) return;
- h(t.scope);
+ if (!T) return;
+ Z(t.scope);
} catch (J) {
(B = console.debug) == null || B.call(console, J);
}
};
try {
f({ detail: { key: "__init__" } });
- } catch (S) {
- (b = console.debug) == null || b.call(console, S);
+ } catch (G) {
+ (b = console.debug) == null || b.call(console, G);
}
try {
- (v = window.addEventListener) == null || v.call(window, "mjr-settings-changed", f, {
+ (L = window.addEventListener) == null || L.call(window, "mjr-settings-changed", f, {
signal: p == null ? void 0 : p.signal
});
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
- return { applyWatcherForScope: h, isAiEnabled: Z, applyAiUiState: A, applySidebarPosition: g };
+ return { applyWatcherForScope: Z, isAiEnabled: A, applyAiUiState: C, applySidebarPosition: g };
}
-function e2({
+function i2({
gridContainer: e,
panelLifecycleAC: t,
requestQueuedReload: n,
@@ -33272,142 +33318,142 @@ function e2({
gridController: c,
registerSummaryDispose: s
}) {
- var u, I, p, M, Z;
+ var u, I, p, S, A;
let d = null;
try {
d = () => n(), e.addEventListener("mjr:reload-grid", d, {
signal: t == null ? void 0 : t.signal
}), s(() => {
- var A;
+ var C;
try {
d && e.removeEventListener("mjr:reload-grid", d);
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
d = null;
});
- } catch (A) {
- (u = console.debug) == null || u.call(console, A);
+ } catch (C) {
+ (u = console.debug) == null || u.call(console, C);
}
try {
- const A = (g) => {
- var h, f, b, v, C, S;
+ const C = (g) => {
+ var Z, f, b, L, h, G;
try {
const W = (g == null ? void 0 : g.detail) || {}, y = String((W == null ? void 0 : W.filenameKey) || "").trim().toLowerCase();
if (!y || !e) return;
- const k = Array.from(
+ const X = Array.from(
e.querySelectorAll(".mjr-asset-card")
).filter(
(w) => {
- var X;
- return String(((X = w == null ? void 0 : w.dataset) == null ? void 0 : X.mjrFilenameKey) || "").trim().toLowerCase() === y;
+ var R;
+ return String(((R = w == null ? void 0 : w.dataset) == null ? void 0 : R.mjrFilenameKey) || "").trim().toLowerCase() === y;
}
);
- if (!k.length) return;
- const G = k.map((w) => {
- var X;
- return String(((X = w == null ? void 0 : w.dataset) == null ? void 0 : X.mjrAssetId) || "").trim();
- }).filter(Boolean), z = String(((f = (h = k[0]) == null ? void 0 : h.dataset) == null ? void 0 : f.mjrAssetId) || G[0] || "").trim();
- G.length && typeof (e == null ? void 0 : e._mjrSetSelection) == "function" && e._mjrSetSelection(G, z), (v = (b = k[0]) == null ? void 0 : b.scrollIntoView) == null || v.call(b, { block: "nearest", behavior: "smooth" }), o(), i();
- const x = Number((W == null ? void 0 : W.count) || G.length || k.length || 0);
+ if (!X.length) return;
+ const x = X.map((w) => {
+ var R;
+ return String(((R = w == null ? void 0 : w.dataset) == null ? void 0 : R.mjrAssetId) || "").trim();
+ }).filter(Boolean), T = String(((f = (Z = X[0]) == null ? void 0 : Z.dataset) == null ? void 0 : f.mjrAssetId) || x[0] || "").trim();
+ x.length && typeof (e == null ? void 0 : e._mjrSetSelection) == "function" && e._mjrSetSelection(x, T), (L = (b = X[0]) == null ? void 0 : b.scrollIntoView) == null || L.call(b, { block: "nearest", behavior: "smooth" }), o(), i();
+ const v = Number((W == null ? void 0 : W.count) || x.length || X.length || 0);
try {
- Ce(
+ Ze(
m(
"toast.nameCollisionInView",
"Name collision in view: {n} item(s) selected",
- { n: x }
+ { n: v }
),
"info",
1800
);
} catch (w) {
- (C = console.debug) == null || C.call(console, w);
+ (h = console.debug) == null || h.call(console, w);
}
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
};
- e.addEventListener("mjr:badge-duplicates-focus", A, {
+ e.addEventListener("mjr:badge-duplicates-focus", C, {
signal: t == null ? void 0 : t.signal
}), s(() => {
var g;
try {
e.removeEventListener(
"mjr:badge-duplicates-focus",
- A
+ C
);
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
});
- } catch (A) {
- (I = console.debug) == null || I.call(console, A);
+ } catch (C) {
+ (I = console.debug) == null || I.call(console, C);
}
try {
window.addEventListener(
"mjr:reload-grid",
- (A) => {
- var h, f, b, v;
+ (C) => {
+ var Z, f, b, L;
try {
- if ((h = t == null ? void 0 : t.signal) != null && h.aborted) return;
- } catch (C) {
- (f = console.debug) == null || f.call(console, C);
+ if ((Z = t == null ? void 0 : t.signal) != null && Z.aborted) return;
+ } catch (h) {
+ (f = console.debug) == null || f.call(console, h);
}
try {
if (globalThis != null && globalThis._mjrMaintenanceActive) return;
- } catch (C) {
- (b = console.debug) == null || b.call(console, C);
+ } catch (h) {
+ (b = console.debug) == null || b.call(console, h);
}
- String(((v = A == null ? void 0 : A.detail) == null ? void 0 : v.reason) || "").trim() && n();
+ String(((L = C == null ? void 0 : C.detail) == null ? void 0 : L.reason) || "").trim() && n();
},
{ signal: t == null ? void 0 : t.signal }
);
- } catch (A) {
- (p = console.debug) == null || p.call(console, A);
+ } catch (C) {
+ (p = console.debug) == null || p.call(console, C);
}
try {
window.addEventListener(
"mjr:sort-changed",
() => {
- var A, g, h;
+ var C, g, Z;
try {
- if ((A = t == null ? void 0 : t.signal) != null && A.aborted) return;
+ if ((C = t == null ? void 0 : t.signal) != null && C.aborted) return;
} catch (f) {
(g = console.debug) == null || g.call(console, f);
}
try {
i();
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
c.reloadGrid().catch(() => {
});
},
{ signal: t == null ? void 0 : t.signal }
);
- } catch (A) {
- (M = console.debug) == null || M.call(console, A);
+ } catch (C) {
+ (S = console.debug) == null || S.call(console, C);
}
try {
window.addEventListener(
"mjr:collections-changed",
- (A) => {
- var b, v, C, S, W;
+ (C) => {
+ var b, L, h, G, W;
try {
if ((b = t == null ? void 0 : t.signal) != null && b.aborted) return;
} catch (y) {
- (v = console.debug) == null || v.call(console, y);
+ (L = console.debug) == null || L.call(console, y);
}
- const g = A != null && A.detail && typeof A.detail == "object" ? A.detail : {}, h = String(g.collectionId || "").trim(), f = String(g.collectionName || "").trim();
+ const g = C != null && C.detail && typeof C.detail == "object" ? C.detail : {}, Z = String(g.collectionId || "").trim(), f = String(g.collectionName || "").trim();
try {
- r("collectionId", h), r("collectionName", f);
+ r("collectionId", Z), r("collectionName", f);
} catch (y) {
- (C = console.debug) == null || C.call(console, y);
+ (h = console.debug) == null || h.call(console, y);
}
try {
i();
} catch (y) {
- (S = console.debug) == null || S.call(console, y);
+ (G = console.debug) == null || G.call(console, y);
}
try {
g.close !== !1 && l.close(a);
@@ -33419,11 +33465,11 @@ function e2({
},
{ signal: t == null ? void 0 : t.signal }
);
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
}
-function t2({
+function o2({
similarBtn: e,
gridContainer: t,
state: n,
@@ -33440,21 +33486,21 @@ function t2({
e == null || e.addEventListener(
"click",
async (I) => {
- var A, g, h;
+ var C, g, Z;
if (I.stopPropagation(), !o()) {
- Ce(r, "info", 2200);
+ Ze(r, "info", 2200);
return;
}
try {
u();
} catch (f) {
- (A = console.debug) == null || A.call(console, f);
+ (C = console.debug) == null || C.call(console, f);
}
const p = String(
l() || a()[0] || ""
- ).trim(), M = Number(p);
- if (!Number.isFinite(M) || M <= 0) {
- Ce(
+ ).trim(), S = Number(p);
+ if (!Number.isFinite(S) || S <= 0) {
+ Ze(
m(
"search.selectAssetForSimilar",
"Select an asset first to find similar images/videos."
@@ -33464,16 +33510,16 @@ function t2({
);
return;
}
- const Z = e.title;
+ const A = e.title;
e.disabled = !0, e.title = m("search.findingSimilar", "Finding similar assets...");
try {
- const f = await Kf(M, {
+ const f = await Hf(S, {
topK: 100,
scope: n.scope || "output",
customRootId: n.customRootId || ""
});
if (!(f != null && f.ok)) {
- Ce(
+ Ze(
String(
(f == null ? void 0 : f.error) || m("search.findSimilarFailed", "Failed to find similar assets")
),
@@ -33483,42 +33529,42 @@ function t2({
return;
}
const b = Array.isArray(f == null ? void 0 : f.data) ? f.data : [];
- s("similarResults", b), s("similarSourceAssetId", String(M)), s(
+ s("similarResults", b), s("similarSourceAssetId", String(S)), s(
"similarTitle",
m("search.similarResults", "Similar to asset #{id} ({n} results)", {
- id: M,
+ id: S,
n: b.length
})
), await ((g = d == null ? void 0 : d.setScope) == null ? void 0 : g.call(d, "similar"));
} catch (f) {
- (h = console.debug) == null || h.call(console, f), Ce(
+ (Z = console.debug) == null || Z.call(console, f), Ze(
m("search.findSimilarFailed", "Failed to find similar assets"),
"error",
3e3
);
} finally {
- e.disabled = !1, e.title = Z;
+ e.disabled = !1, e.title = A;
}
},
{ signal: i == null ? void 0 : i.signal }
), t == null || t.addEventListener(
- ft.OPEN_STACK_GROUP,
+ ht.OPEN_STACK_GROUP,
async (I) => {
- var p, M, Z;
+ var p, S, A;
try {
- const A = (I == null ? void 0 : I.detail) || {}, g = Array.isArray(A == null ? void 0 : A.members) ? A.members : [];
- s("similarResults", g), s("similarSourceAssetId", String(((p = A == null ? void 0 : A.asset) == null ? void 0 : p.id) || "")), s(
+ const C = (I == null ? void 0 : I.detail) || {}, g = Array.isArray(C == null ? void 0 : C.members) ? C.members : [];
+ s("similarResults", g), s("similarSourceAssetId", String(((p = C == null ? void 0 : C.asset) == null ? void 0 : p.id) || "")), s(
"similarTitle",
- String((A == null ? void 0 : A.title) || "").trim() || `Generation group (${g.length} assets)`
- ), await ((M = d == null ? void 0 : d.setScope) == null ? void 0 : M.call(d, "similar"));
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ String((C == null ? void 0 : C.title) || "").trim() || `Generation group (${g.length} assets)`
+ ), await ((S = d == null ? void 0 : d.setScope) == null ? void 0 : S.call(d, "similar"));
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
},
{ signal: i == null ? void 0 : i.signal }
);
}
-function n2({
+function r2({
pinnedFoldersBtn: e,
pinnedFoldersMenu: t,
pinnedFoldersPopover: n,
@@ -33533,9 +33579,9 @@ function n2({
applyWatcherForScope: u,
refreshDuplicateAlerts: I,
notifyContextChanged: p,
- panelLifecycleAC: M
+ panelLifecycleAC: S
}) {
- const Z = (g, { right: h = null, danger: f = !1 } = {}) => {
+ const A = (g, { right: Z = null, danger: f = !1 } = {}) => {
const b = document.createElement("button");
b.type = "button", b.className = "mjr-menu-item", f && (b.style.color = "var(--error-text, #f44336)"), b.style.cssText = `
display:flex;
@@ -33549,38 +33595,38 @@ function n2({
background:linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
transition: border-color 120ms ease, background 120ms ease;
`;
- const v = document.createElement("span");
- v.textContent = String(g || ""), v.style.cssText = "font-weight:600; color:var(--fg-color, #e6edf7);";
- const C = document.createElement("span");
- if (C.style.cssText = "display:flex; align-items:center; gap:8px;", h) {
- const S = document.createElement("span");
- S.textContent = String(h), S.style.cssText = "opacity:0.68; font-size:11px;", C.appendChild(S);
+ const L = document.createElement("span");
+ L.textContent = String(g || ""), L.style.cssText = "font-weight:600; color:var(--fg-color, #e6edf7);";
+ const h = document.createElement("span");
+ if (h.style.cssText = "display:flex; align-items:center; gap:8px;", Z) {
+ const G = document.createElement("span");
+ G.textContent = String(Z), G.style.cssText = "opacity:0.68; font-size:11px;", h.appendChild(G);
}
- return b.appendChild(v), b.appendChild(C), b.addEventListener(
+ return b.appendChild(L), b.appendChild(h), b.addEventListener(
"mouseenter",
() => {
b.style.borderColor = "rgba(145,205,255,0.4)", b.style.background = "linear-gradient(135deg, rgba(80,140,255,0.18), rgba(32,100,200,0.14))";
},
- { signal: M == null ? void 0 : M.signal }
+ { signal: S == null ? void 0 : S.signal }
), b.addEventListener(
"mouseleave",
() => {
b.style.borderColor = "rgba(120,190,255,0.18)", b.style.background = "linear-gradient(135deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01))";
},
- { signal: M == null ? void 0 : M.signal }
+ { signal: S == null ? void 0 : S.signal }
), b;
- }, A = async () => {
- var h, f;
+ }, C = async () => {
+ var Z, f;
try {
t.replaceChildren();
} catch (b) {
- (h = console.debug) == null || h.call(console, b);
+ (Z = console.debug) == null || Z.call(console, b);
}
let g = [];
try {
- const b = await Rt(
- lt.CUSTOM_ROOTS,
- M != null && M.signal ? { signal: M.signal } : void 0
+ const b = await Ft(
+ ct.CUSTOM_ROOTS,
+ S != null && S.signal ? { signal: S.signal } : void 0
);
g = b != null && b.ok && Array.isArray(b.data) ? b.data : [];
} catch (b) {
@@ -33592,98 +33638,98 @@ function n2({
return;
}
for (const b of g) {
- const v = String((b == null ? void 0 : b.id) || "").trim();
- if (!v) continue;
- const C = String((b == null ? void 0 : b.name) || (b == null ? void 0 : b.path) || v).trim(), S = String((b == null ? void 0 : b.path) || "").trim(), W = document.createElement("div");
+ const L = String((b == null ? void 0 : b.id) || "").trim();
+ if (!L) continue;
+ const h = String((b == null ? void 0 : b.name) || (b == null ? void 0 : b.path) || L).trim(), G = String((b == null ? void 0 : b.path) || "").trim(), W = document.createElement("div");
W.style.cssText = "display:flex; align-items:stretch; width:100%;";
- const y = Z(C, { right: S || null });
+ const y = A(h, { right: G || null });
y.style.flex = "1", y.addEventListener(
"click",
async () => {
- var z, x, w, X, V, R, j;
+ var T, v, w, R, Y, F, N;
r.scope = "custom";
try {
l && (l.dataset.mjrScope = "custom");
- } catch (L) {
- (z = console.debug) == null || z.call(console, L);
+ } catch (V) {
+ (T = console.debug) == null || T.call(console, V);
}
- r.customRootId = v, r.customRootLabel = C, r.currentFolderRelativePath = "";
+ r.customRootId = L, r.customRootLabel = h, r.currentFolderRelativePath = "";
try {
- a && (a.value = v);
- } catch (L) {
- (x = console.debug) == null || x.call(console, L);
+ a && (a.value = L);
+ } catch (V) {
+ (v = console.debug) == null || v.call(console, V);
}
try {
(w = c == null ? void 0 : c.setActiveTabStyles) == null || w.call(c);
- } catch (L) {
- (X = console.debug) == null || X.call(console, L);
+ } catch (V) {
+ (R = console.debug) == null || R.call(console, V);
}
try {
await u(r.scope);
- } catch (L) {
- (V = console.debug) == null || V.call(console, L);
+ } catch (V) {
+ (Y = console.debug) == null || Y.call(console, V);
}
try {
await I();
- } catch (L) {
- (R = console.debug) == null || R.call(console, L);
+ } catch (V) {
+ (F = console.debug) == null || F.call(console, V);
}
try {
p();
- } catch (L) {
- (j = console.debug) == null || j.call(console, L);
+ } catch (V) {
+ (N = console.debug) == null || N.call(console, V);
}
i.close(n), await d.reloadGrid();
},
- { signal: M == null ? void 0 : M.signal }
+ { signal: S == null ? void 0 : S.signal }
);
- const k = document.createElement("button");
- k.type = "button", k.className = "mjr-menu-item", k.title = m("ctx.unpinFolder", "Unpin folder"), k.style.cssText = "width:42px; justify-content:center; padding:0; border:1px solid rgba(255,95,95,0.35); border-radius:9px; margin-left:6px; background: linear-gradient(135deg, rgba(255,70,70,0.16), rgba(160,20,20,0.12));";
- const G = document.createElement("i");
- G.className = "pi pi-times", G.style.cssText = "opacity:0.88; color: rgba(255,130,130,0.96);", k.appendChild(G), k.addEventListener(
+ const X = document.createElement("button");
+ X.type = "button", X.className = "mjr-menu-item", X.title = m("ctx.unpinFolder", "Unpin folder"), X.style.cssText = "width:42px; justify-content:center; padding:0; border:1px solid rgba(255,95,95,0.35); border-radius:9px; margin-left:6px; background: linear-gradient(135deg, rgba(255,70,70,0.16), rgba(160,20,20,0.12));";
+ const x = document.createElement("i");
+ x.className = "pi pi-times", x.style.cssText = "opacity:0.88; color: rgba(255,130,130,0.96);", X.appendChild(x), X.addEventListener(
"click",
- async (z) => {
- var X;
- if (z.preventDefault(), z.stopPropagation(), !await bi(
- m("dialog.unpinFolder", 'Unpin folder "{name}"?', { name: C })
+ async (T) => {
+ var R;
+ if (T.preventDefault(), T.stopPropagation(), !await yi(
+ m("dialog.unpinFolder", 'Unpin folder "{name}"?', { name: h })
)) return;
- const w = await Et(lt.CUSTOM_ROOTS_REMOVE, { id: v });
+ const w = await Et(ct.CUSTOM_ROOTS_REMOVE, { id: L });
if (!(w != null && w.ok)) {
- Ce(
+ Ze(
(w == null ? void 0 : w.error) || m("toast.unpinFolderFailed", "Failed to unpin folder"),
"error"
);
return;
}
- String(r.customRootId || "") === v && (r.customRootId = "", r.customRootLabel = "", r.currentFolderRelativePath = "");
+ String(r.customRootId || "") === L && (r.customRootId = "", r.customRootLabel = "", r.currentFolderRelativePath = "");
try {
await s.refreshCustomRoots();
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
- await A(), await d.reloadGrid();
+ await C(), await d.reloadGrid();
},
- { signal: M == null ? void 0 : M.signal }
- ), W.appendChild(y), W.appendChild(k), t.appendChild(W);
+ { signal: S == null ? void 0 : S.signal }
+ ), W.appendChild(y), W.appendChild(X), t.appendChild(W);
}
};
e == null || e.addEventListener(
"click",
async (g) => {
- var h;
+ var Z;
g.stopPropagation();
try {
- await A();
+ await C();
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
o(), i.toggle(n, e);
},
- { signal: M == null ? void 0 : M.signal }
+ { signal: S == null ? void 0 : S.signal }
);
}
-const hs = (e) => String(e).padStart(2, "0");
-function Sc(e) {
+const Zs = (e) => String(e).padStart(2, "0");
+function Gc(e) {
try {
const t = String(e || "").trim();
if (!/^\d{4}-\d{2}-\d{2}$/.test(t)) return null;
@@ -33695,51 +33741,51 @@ function Sc(e) {
return null;
}
}
-function Sm(e) {
+function xm(e) {
try {
const t = e.getFullYear(), n = e.getMonth() + 1, i = e.getDate();
- return `${t}-${hs(n)}-${hs(i)}`;
+ return `${t}-${Zs(n)}-${Zs(i)}`;
} catch {
return "";
}
}
-function i2(e) {
+function l2(e) {
try {
const t = e.getFullYear(), n = e.getMonth() + 1;
- return `${t}-${hs(n)}`;
+ return `${t}-${Zs(n)}`;
} catch {
return "";
}
}
-function Gm(e) {
+function jm(e) {
try {
return new Date(e.getFullYear(), e.getMonth(), 1);
} catch {
return /* @__PURE__ */ new Date();
}
}
-function xm(e, t) {
+function vm(e, t) {
try {
return new Date(e.getFullYear(), e.getMonth() + t, 1);
} catch {
return /* @__PURE__ */ new Date();
}
}
-function o2(e) {
+function a2(e) {
try {
return new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate();
} catch {
return 31;
}
}
-function r2(e) {
+function c2(e) {
try {
return (e.getDay() + 6) % 7;
} catch {
return 0;
}
}
-function jm(e, t) {
+function Lm(e, t) {
var n, i;
if (e)
try {
@@ -33749,13 +33795,13 @@ function jm(e, t) {
(i = console.debug) == null || i.call(console, o);
}
}
-async function l2({ state: e, monthKey: t }) {
+async function s2({ state: e, monthKey: t }) {
var n;
try {
const i = String((e == null ? void 0 : e.scope) || "output");
if (i === "collection")
return { ok: !0, days: {} };
- const o = String((e == null ? void 0 : e.currentFolderRelativePath) || "").trim(), r = i === "custom" && !(e != null && e.customRootId) ? null : o || null, l = iy({
+ const o = String((e == null ? void 0 : e.currentFolderRelativePath) || "").trim(), r = i === "custom" && !(e != null && e.customRootId) ? null : o || null, l = ly({
scope: i,
customRootId: (e == null ? void 0 : e.customRootId) || null,
subfolder: r,
@@ -33775,13 +33821,13 @@ async function l2({ state: e, monthKey: t }) {
// Applying active date filters here can collapse highlights to a single day (or none).
dateRange: null,
dateExact: null
- }), a = await Rt(l);
+ }), a = await Ft(l);
return !a || !a.ok ? { ok: !1, error: (a == null ? void 0 : a.error) || "Histogram error" } : { ok: !0, days: (n = a == null ? void 0 : a.data) != null && n.days && typeof a.data.days == "object" ? a.data.days : {} };
} catch (i) {
return { ok: !1, error: (i == null ? void 0 : i.message) || "Histogram error" };
}
}
-function a2({
+function d2({
container: e,
hiddenInput: t,
state: n,
@@ -33808,71 +33854,71 @@ function a2({
u.type = "button", u.className = "mjr-btn mjr-agenda-clear", u.textContent = "Clear";
const I = document.createElement("button");
I.type = "button", I.className = "mjr-btn mjr-agenda-refresh", I.textContent = "Refresh", d.appendChild(u), d.appendChild(I), o.appendChild(r), o.appendChild(s), o.appendChild(d), e.appendChild(o);
- let p = Gm(Sc(t.value) || /* @__PURE__ */ new Date()), M = {}, Z = 0, A = !1;
+ let p = jm(Gc(t.value) || /* @__PURE__ */ new Date()), S = {}, A = 0, C = !1;
const g = () => {
- if (A) return;
+ if (C) return;
const f = p.getFullYear(), b = p.getMonth();
a.textContent = p.toLocaleString(void 0, {
month: "long",
year: "numeric"
}), s.innerHTML = "";
- const v = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
- for (const G of v) {
- const z = document.createElement("div");
- z.className = "mjr-agenda-weekday", z.textContent = G, s.appendChild(z);
+ const L = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
+ for (const x of L) {
+ const T = document.createElement("div");
+ T.className = "mjr-agenda-weekday", T.textContent = x, s.appendChild(T);
}
- const C = new Date(f, b, 1), S = r2(C), W = o2(p), y = Sc(t.value), k = y ? Sm(y) : "";
- for (let G = 0; G < S; G++) {
- const z = document.createElement("div");
- z.className = "mjr-agenda-day mjr-agenda-day--blank", s.appendChild(z);
+ const h = new Date(f, b, 1), G = c2(h), W = a2(p), y = Gc(t.value), X = y ? xm(y) : "";
+ for (let x = 0; x < G; x++) {
+ const T = document.createElement("div");
+ T.className = "mjr-agenda-day mjr-agenda-day--blank", s.appendChild(T);
}
- for (let G = 1; G <= W; G++) {
- const z = new Date(f, b, G), x = Sm(z), w = Number((M == null ? void 0 : M[x]) || 0) || 0, X = document.createElement("button");
- if (X.type = "button", X.className = "mjr-agenda-day", X.textContent = String(G), X.dataset.date = x, w > 0) {
- X.classList.add("mjr-agenda-day--has-assets"), X.title = `${w} asset${w === 1 ? "" : "s"}`;
- const V = document.createElement("span");
- V.className = "mjr-agenda-day-badge", V.textContent = w > 99 ? "99+" : String(w), V.setAttribute("aria-label", `${w} asset${w === 1 ? "" : "s"}`), X.appendChild(V);
+ for (let x = 1; x <= W; x++) {
+ const T = new Date(f, b, x), v = xm(T), w = Number((S == null ? void 0 : S[v]) || 0) || 0, R = document.createElement("button");
+ if (R.type = "button", R.className = "mjr-agenda-day", R.textContent = String(x), R.dataset.date = v, w > 0) {
+ R.classList.add("mjr-agenda-day--has-assets"), R.title = `${w} asset${w === 1 ? "" : "s"}`;
+ const Y = document.createElement("span");
+ Y.className = "mjr-agenda-day-badge", Y.textContent = w > 99 ? "99+" : String(w), Y.setAttribute("aria-label", `${w} asset${w === 1 ? "" : "s"}`), R.appendChild(Y);
} else
- X.title = m("tooltip.noAssetsDay", "No assets on this day");
- x === k && X.classList.add("mjr-agenda-day--selected"), X.addEventListener("click", () => {
- const V = String(t.value || "").trim();
- jm(t, V === x ? "" : x);
- }), s.appendChild(X);
+ R.title = m("tooltip.noAssetsDay", "No assets on this day");
+ v === X && R.classList.add("mjr-agenda-day--selected"), R.addEventListener("click", () => {
+ const Y = String(t.value || "").trim();
+ Lm(t, Y === v ? "" : v);
+ }), s.appendChild(R);
}
- }, h = async () => {
- if (A) return;
- const f = i2(p);
+ }, Z = async () => {
+ if (C) return;
+ const f = l2(p);
if (!f) return;
- Z += 1;
- const b = Z, v = await l2({ state: n, monthKey: f });
- A || b === Z && (v.ok ? M = v.days || {} : M = {}, g());
+ A += 1;
+ const b = A, L = await s2({ state: n, monthKey: f });
+ C || b === A && (L.ok ? S = L.days || {} : S = {}, g());
};
return l.addEventListener("click", async () => {
- p = xm(p, -1), await h();
+ p = vm(p, -1), await Z();
}), c.addEventListener("click", async () => {
- p = xm(p, 1), await h();
+ p = vm(p, 1), await Z();
}), u.addEventListener("click", () => {
var f;
- jm(t, "");
+ Lm(t, "");
try {
i == null || i();
} catch (b) {
(f = console.debug) == null || f.call(console, b);
}
}), I.addEventListener("click", async () => {
- await h();
+ await Z();
}), t.addEventListener("change", () => {
- const f = Sc(t.value);
+ const f = Gc(t.value);
if (f) {
- const b = Gm(f);
+ const b = jm(f);
(b.getFullYear() !== p.getFullYear() || b.getMonth() !== p.getMonth()) && (p = b);
}
g();
- }), g(), h(), {
- refresh: h,
+ }), g(), Z(), {
+ refresh: Z,
dispose() {
var f;
- A = !0;
+ C = !0;
try {
o.remove();
} catch (b) {
@@ -33881,13 +33927,13 @@ function a2({
}
};
}
-const nr = (e) => {
+const or = (e) => {
const t = String(e ?? "").trim();
if (!t) return 0;
const n = t.replace(",", "."), i = Number(n);
return Number.isFinite(i) ? i : 0;
};
-function c2({
+function u2({
state: e,
kindSelect: t,
wfCheckbox: n,
@@ -33902,13 +33948,13 @@ function c2({
maxHeightInput: u,
dateRangeSelect: I,
dateExactInput: p,
- reloadGrid: M,
- reconcileSelection: Z = null,
- onFiltersChanged: A = null,
+ reloadGrid: S,
+ reconcileSelection: A = null,
+ onFiltersChanged: C = null,
lifecycleSignal: g = null
}) {
- var y, k;
- const { write: h } = no(e, [
+ var y, X;
+ const { write: Z } = oo(e, [
"kindFilter",
"workflowOnly",
"minRating",
@@ -33925,263 +33971,263 @@ function c2({
let f = null;
const b = () => {
f && clearTimeout(f), f = setTimeout(() => {
- var G;
+ var x;
f = null;
try {
- Z == null || Z();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ A == null || A();
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- M().catch(() => {
+ S().catch(() => {
});
}, 250);
- }, v = [];
- v.push(() => {
+ }, L = [];
+ L.push(() => {
f && (clearTimeout(f), f = null);
});
- const C = (G, z, x, w) => {
- if (!(!(G != null && G.addEventListener) || typeof x != "function")) {
+ const h = (x, T, v, w) => {
+ if (!(!(x != null && x.addEventListener) || typeof v != "function")) {
try {
- G.addEventListener(z, x, w);
+ x.addEventListener(T, v, w);
} catch {
try {
- G.addEventListener(z, x);
+ x.addEventListener(T, v);
} catch {
return;
}
}
- v.push(() => {
- var X;
+ L.push(() => {
+ var R;
try {
- G.removeEventListener(z, x, w);
+ x.removeEventListener(T, v, w);
} catch {
try {
- G.removeEventListener(z, x);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ x.removeEventListener(T, v);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
});
}
};
- C(
+ h(
t,
"change",
() => {
- var G;
- h("kindFilter", t.value || "");
+ var x;
+ Z("kindFilter", t.value || "");
try {
- A == null || A();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ C == null || C();
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
b();
},
g ? { signal: g } : void 0
- ), C(
+ ), h(
n,
"change",
() => {
- var G;
- h("workflowOnly", !!n.checked);
+ var x;
+ Z("workflowOnly", !!n.checked);
try {
- A == null || A();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ C == null || C();
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
b();
},
g ? { signal: g } : void 0
- ), C(
+ ), h(
o,
"change",
() => {
- var G;
- h("minRating", Number(o.value || 0) || 0);
+ var x;
+ Z("minRating", Number(o.value || 0) || 0);
try {
- A == null || A();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ C == null || C();
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
b();
},
g ? { signal: g } : void 0
- ), i && C(
+ ), i && h(
i,
"change",
() => {
- var G;
- h(
+ var x;
+ Z(
"workflowType",
String(i.value || "").trim().toUpperCase()
);
try {
- A == null || A();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ C == null || C();
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
b();
},
g ? { signal: g } : void 0
);
- const S = () => {
- var X;
- const G = nr((r == null ? void 0 : r.value) || 0), z = nr((l == null ? void 0 : l.value) || 0), x = Number.isFinite(G) && G > 0 ? G : 0;
- let w = Number.isFinite(z) && z > 0 ? z : 0;
- w > 0 && x > 0 && w < x && (w = x, l && (l.value = String(w))), h("minSizeMB", x), h("maxSizeMB", w);
+ const G = () => {
+ var R;
+ const x = or((r == null ? void 0 : r.value) || 0), T = or((l == null ? void 0 : l.value) || 0), v = Number.isFinite(x) && x > 0 ? x : 0;
+ let w = Number.isFinite(T) && T > 0 ? T : 0;
+ w > 0 && v > 0 && w < v && (w = v, l && (l.value = String(w))), Z("minSizeMB", v), Z("maxSizeMB", w);
try {
- A == null || A();
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ C == null || C();
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
b();
};
- C(
+ h(
r,
"change",
- S,
+ G,
g ? { signal: g } : void 0
- ), C(
+ ), h(
l,
"change",
- S,
+ G,
g ? { signal: g } : void 0
);
const W = () => {
- var L, N;
- const G = nr((c == null ? void 0 : c.value) || 0), z = nr((s == null ? void 0 : s.value) || 0), x = nr((d == null ? void 0 : d.value) || 0), w = nr((u == null ? void 0 : u.value) || 0), X = Number.isFinite(G) && G > 0 ? Math.round(G) : 0, V = Number.isFinite(z) && z > 0 ? Math.round(z) : 0;
- let R = Number.isFinite(x) && x > 0 ? Math.round(x) : 0, j = Number.isFinite(w) && w > 0 ? Math.round(w) : 0;
- R > 0 && X > 0 && R < X && (R = X, d && (d.value = String(R))), j > 0 && V > 0 && j < V && (j = V, u && (u.value = String(j))), h("minWidth", X), h("minHeight", V), h("maxWidth", R), h("maxHeight", j);
+ var V, k;
+ const x = or((c == null ? void 0 : c.value) || 0), T = or((s == null ? void 0 : s.value) || 0), v = or((d == null ? void 0 : d.value) || 0), w = or((u == null ? void 0 : u.value) || 0), R = Number.isFinite(x) && x > 0 ? Math.round(x) : 0, Y = Number.isFinite(T) && T > 0 ? Math.round(T) : 0;
+ let F = Number.isFinite(v) && v > 0 ? Math.round(v) : 0, N = Number.isFinite(w) && w > 0 ? Math.round(w) : 0;
+ F > 0 && R > 0 && F < R && (F = R, d && (d.value = String(F))), N > 0 && Y > 0 && N < Y && (N = Y, u && (u.value = String(N))), Z("minWidth", R), Z("minHeight", Y), Z("maxWidth", F), Z("maxHeight", N);
try {
if (a) {
- const q = {
+ const K = {
"1280x720": "hd",
"1920x1080": "fhd",
"2560x1440": "qhd",
"3840x2160": "uhd"
};
- a.value = q[`${X}x${V}`] || "";
+ a.value = K[`${R}x${Y}`] || "";
}
- } catch (q) {
- (L = console.debug) == null || L.call(console, q);
+ } catch (K) {
+ (V = console.debug) == null || V.call(console, K);
}
try {
- A == null || A();
- } catch (q) {
- (N = console.debug) == null || N.call(console, q);
+ C == null || C();
+ } catch (K) {
+ (k = console.debug) == null || k.call(console, K);
}
b();
};
- if (C(
+ if (h(
c,
"change",
W,
g ? { signal: g } : void 0
- ), C(
+ ), h(
s,
"change",
W,
g ? { signal: g } : void 0
- ), C(
+ ), h(
d,
"change",
W,
g ? { signal: g } : void 0
- ), C(
+ ), h(
u,
"change",
W,
g ? { signal: g } : void 0
- ), a && C(
+ ), a && h(
a,
"change",
() => {
- var V;
- const G = String(a.value || ""), x = {
+ var Y;
+ const x = String(a.value || ""), v = {
hd: [1280, 720],
fhd: [1920, 1080],
qhd: [2560, 1440],
uhd: [3840, 2160]
- }[G] || [0, 0], w = Number(x[0] || 0), X = Number(x[1] || 0);
- h("minWidth", w), h("minHeight", X), h("maxWidth", 0), h("maxHeight", 0), c && (c.value = w > 0 ? String(w) : ""), s && (s.value = X > 0 ? String(X) : ""), d && (d.value = ""), u && (u.value = "");
+ }[x] || [0, 0], w = Number(v[0] || 0), R = Number(v[1] || 0);
+ Z("minWidth", w), Z("minHeight", R), Z("maxWidth", 0), Z("maxHeight", 0), c && (c.value = w > 0 ? String(w) : ""), s && (s.value = R > 0 ? String(R) : ""), d && (d.value = ""), u && (u.value = "");
try {
- A == null || A();
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ C == null || C();
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
b();
},
g ? { signal: g } : void 0
- ), I && C(
+ ), I && h(
I,
"change",
() => {
- var G;
- h("dateRangeFilter", I.value || ""), e.dateRangeFilter && e.dateExactFilter && (h("dateExactFilter", ""), p && (p.value = ""));
+ var x;
+ Z("dateRangeFilter", I.value || ""), e.dateRangeFilter && e.dateExactFilter && (Z("dateExactFilter", ""), p && (p.value = ""));
try {
- A == null || A();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ C == null || C();
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
b();
},
g ? { signal: g } : void 0
), p) {
- const G = (x) => {
- p.classList.toggle("mjr-agenda-filled", x === "filled"), p.classList.toggle("mjr-agenda-empty", x === "empty");
+ const x = (v) => {
+ p.classList.toggle("mjr-agenda-filled", v === "filled"), p.classList.toggle("mjr-agenda-empty", v === "empty");
};
- C(
+ h(
p,
"change",
() => {
- var x;
- h(
+ var v;
+ Z(
"dateExactFilter",
p.value ? String(p.value) : ""
- ), e.dateExactFilter && e.dateRangeFilter && (h("dateRangeFilter", ""), I && (I.value = "")), e.dateExactFilter || G("");
+ ), e.dateExactFilter && e.dateRangeFilter && (Z("dateRangeFilter", ""), I && (I.value = "")), e.dateExactFilter || x("");
try {
- A == null || A();
+ C == null || C();
} catch (w) {
- (x = console.debug) == null || x.call(console, w);
+ (v = console.debug) == null || v.call(console, w);
}
b();
},
g ? { signal: g } : void 0
);
- const z = (x) => {
- if (!(x != null && x.detail)) return;
- const { date: w, hasResults: X } = x.detail;
+ const T = (v) => {
+ if (!(v != null && v.detail)) return;
+ const { date: w, hasResults: R } = v.detail;
if (!p.value) {
- G("");
+ x("");
return;
}
- w === p.value && G(X ? "filled" : "empty");
+ w === p.value && x(R ? "filled" : "empty");
};
try {
- const x = g ? { passive: !0, signal: g } : { passive: !0 }, w = typeof window < "u" ? window : null;
- (y = w == null ? void 0 : w.addEventListener) == null || y.call(w, "MJR:AgendaStatus", z, x), v.push(() => {
- var X, V;
+ const v = g ? { passive: !0, signal: g } : { passive: !0 }, w = typeof window < "u" ? window : null;
+ (y = w == null ? void 0 : w.addEventListener) == null || y.call(w, "MJR:AgendaStatus", T, v), L.push(() => {
+ var R, Y;
try {
- (X = w == null ? void 0 : w.removeEventListener) == null || X.call(w, "MJR:AgendaStatus", z, x);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ (R = w == null ? void 0 : w.removeEventListener) == null || R.call(w, "MJR:AgendaStatus", T, v);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
});
- } catch (x) {
- (k = console.debug) == null || k.call(console, x);
+ } catch (v) {
+ (X = console.debug) == null || X.call(console, v);
}
}
return () => {
- var G;
- for (const z of v.splice(0))
+ var x;
+ for (const T of L.splice(0))
try {
- z();
- } catch (x) {
- (G = console.debug) == null || G.call(console, x);
+ T();
+ } catch (v) {
+ (x = console.debug) == null || x.call(console, v);
}
};
}
-function s2({
+function m2({
state: e,
hasVueHeaderSection: t,
kindSelect: n,
@@ -34196,74 +34242,74 @@ function s2({
maxWidthInput: u,
maxHeightInput: I,
dateRangeSelect: p,
- dateExactInput: M,
- agendaContainer: Z,
- gridController: A,
+ dateExactInput: S,
+ agendaContainer: A,
+ gridController: C,
reconcileVisibleSelection: g,
- exitSimilarViewIfActive: h,
+ exitSimilarViewIfActive: Z,
notifyContextChanged: f,
panelLifecycleAC: b
}) {
- var S, W, y;
- let v = null;
+ var G, W, y;
+ let L = null;
try {
try {
n.value = e.kindFilter || "", i.checked = !!e.workflowOnly, o.value = String(e.workflowType || "").trim().toUpperCase(), r.value = String(Number(e.minRating || 0) || 0), l.value = Number(e.minSizeMB || 0) > 0 ? String(e.minSizeMB) : "", a.value = Number(e.maxSizeMB || 0) > 0 ? String(e.maxSizeMB) : "", s.value = Number(e.minWidth || 0) > 0 ? String(e.minWidth) : "", d.value = Number(e.minHeight || 0) > 0 ? String(e.minHeight) : "", u.value = Number(e.maxWidth || 0) > 0 ? String(e.maxWidth) : "", I.value = Number(e.maxHeight || 0) > 0 ? String(e.maxHeight) : "";
- const k = Number(e.minWidth || 0) || 0, G = Number(e.minHeight || 0) || 0;
- k >= 3840 && G >= 2160 ? c.value = "uhd" : k >= 2560 && G >= 1440 ? c.value = "qhd" : k >= 1920 && G >= 1080 ? c.value = "fhd" : k >= 1280 && G >= 720 ? c.value = "hd" : c.value = "", p.value = e.dateRangeFilter || "", M.value = e.dateExactFilter || "";
- } catch (k) {
- (S = console.debug) == null || S.call(console, k);
+ const X = Number(e.minWidth || 0) || 0, x = Number(e.minHeight || 0) || 0;
+ X >= 3840 && x >= 2160 ? c.value = "uhd" : X >= 2560 && x >= 1440 ? c.value = "qhd" : X >= 1920 && x >= 1080 ? c.value = "fhd" : X >= 1280 && x >= 720 ? c.value = "hd" : c.value = "", p.value = e.dateRangeFilter || "", S.value = e.dateExactFilter || "";
+ } catch (X) {
+ (G = console.debug) == null || G.call(console, X);
}
- v = a2({
- container: Z,
- hiddenInput: M,
+ L = d2({
+ container: A,
+ hiddenInput: S,
state: e,
- onRequestReloadGrid: () => A.reloadGrid()
+ onRequestReloadGrid: () => C.reloadGrid()
});
- } catch (k) {
- (W = console.debug) == null || W.call(console, k);
+ } catch (X) {
+ (W = console.debug) == null || W.call(console, X);
}
- let C = () => {
+ let h = () => {
};
if (t) {
- let k = null;
- const G = () => {
- var z, x, w, X;
+ let X = null;
+ const x = () => {
+ var T, v, w, R;
try {
- if ((z = b == null ? void 0 : b.signal) != null && z.aborted) return;
- } catch (V) {
- (x = console.debug) == null || x.call(console, V);
+ if ((T = b == null ? void 0 : b.signal) != null && T.aborted) return;
+ } catch (Y) {
+ (v = console.debug) == null || v.call(console, Y);
}
- h({ reload: !1 });
+ Z({ reload: !1 });
try {
- (w = v == null ? void 0 : v.refresh) == null || w.call(v);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ (w = L == null ? void 0 : L.refresh) == null || w.call(L);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
- f(), k && clearTimeout(k), k = setTimeout(() => {
- var V;
- k = null;
+ f(), X && clearTimeout(X), X = setTimeout(() => {
+ var Y;
+ X = null;
try {
g();
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
- A.reloadGrid().catch(() => {
+ C.reloadGrid().catch(() => {
});
}, 250);
};
try {
- window.addEventListener("mjr:filters-changed", G, {
+ window.addEventListener("mjr:filters-changed", x, {
signal: b == null ? void 0 : b.signal
});
- } catch (z) {
- (y = console.debug) == null || y.call(console, z);
+ } catch (T) {
+ (y = console.debug) == null || y.call(console, T);
}
- C = () => {
- k && (clearTimeout(k), k = null);
+ h = () => {
+ X && (clearTimeout(X), X = null);
};
} else
- C = c2({
+ h = u2({
state: e,
kindSelect: n,
wfCheckbox: i,
@@ -34277,24 +34323,24 @@ function s2({
maxWidthInput: u,
maxHeightInput: I,
dateRangeSelect: p,
- dateExactInput: M,
- reloadGrid: A.reloadGrid,
+ dateExactInput: S,
+ reloadGrid: C.reloadGrid,
reconcileSelection: g,
lifecycleSignal: (b == null ? void 0 : b.signal) || null,
onFiltersChanged: () => {
- var k, G;
- h({ reload: !1 });
+ var X, x;
+ Z({ reload: !1 });
try {
- (k = v == null ? void 0 : v.refresh) == null || k.call(v);
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ (X = L == null ? void 0 : L.refresh) == null || X.call(L);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
f();
}
});
- return { agendaCalendar: v, disposeFilters: C };
+ return { agendaCalendar: L, disposeFilters: h };
}
-function d2({
+function g2({
state: e,
scopeController: t,
browserNav: n,
@@ -34332,40 +34378,40 @@ function d2({
if (c && Array.isArray(c.assets) && c.assets.length >= 2) {
const u = c.assets[0] || {}, I = c.assets.slice(1).map((p) => Number((p == null ? void 0 : p.id) || 0)).filter((p) => p > 0);
if (I.length) {
- if (await bi(
+ if (await yi(
m(
"dialog.mergeDuplicateTags",
'Exact duplicates detected ({count}). Merge tags into "{target}"?',
{ count: c.assets.length, target: (u == null ? void 0 : u.filename) || (u == null ? void 0 : u.id) }
)
)) {
- const Z = await Jf(
+ const A = await Uf(
Number((u == null ? void 0 : u.id) || 0),
I
);
- Z != null && Z.ok ? Ce(m("toast.tagsMerged", "Tags merged"), "success", 2200) : Ce(
+ A != null && A.ok ? Ze(m("toast.tagsMerged", "Tags merged"), "success", 2200) : Ze(
m("toast.tagMergeFailed", "Tag merge failed: {error}", {
- error: (Z == null ? void 0 : Z.error) || "error"
+ error: (A == null ? void 0 : A.error) || "error"
}),
"warning",
3500
);
}
- if (await bi(
+ if (await yi(
m(
"dialog.deleteExactDuplicates",
"Delete {count} exact duplicate(s)?",
{ count: I.length }
)
)) {
- const Z = await Tf(I);
- Z != null && Z.ok ? (Ce(
+ const A = await Kf(I);
+ A != null && A.ok ? (Ze(
m("toast.duplicatesDeleted", "Duplicates deleted"),
"success",
2200
- ), await i.reloadGrid()) : Ce(
+ ), await i.reloadGrid()) : Ze(
m("toast.deleteFailed", "Delete failed: {error}", {
- error: (Z == null ? void 0 : Z.error) || "error"
+ error: (A == null ? void 0 : A.error) || "error"
}),
"warning",
3500
@@ -34375,18 +34421,18 @@ function d2({
return;
}
}
- if (!await bi(
+ if (!await yi(
m(
"dialog.startDuplicateAnalysis",
"Start duplicate analysis in background?"
)
)) return;
- const d = await Of(500);
- d != null && d.ok ? Ce(
+ const d = await Tf(500);
+ d != null && d.ok ? Ze(
m("toast.dupAnalysisStarted", "Duplicate analysis started"),
"info",
2200
- ) : Ce(
+ ) : Ze(
m("toast.analysisNotStarted", "Analysis not started: {error}", {
error: (d == null ? void 0 : d.error) || "error"
}),
@@ -34396,20 +34442,20 @@ function d2({
}
};
}
-async function u2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
- return m2(e, { useComfyThemeUI: t, external: n });
+async function I2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
+ return b2(e, { useComfyThemeUI: t, external: n });
}
-async function m2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
- var Lt, Bt, Nt, ht, Jt, It, mn, Mt, nn, rn, hn, ln, gn, $t, An, vn, dn, Mn, yn, Ut, Tt, io, oo, ro, yi;
- us("panelRender"), kb("panelRender");
- const i = typeof AbortController < "u" ? new AbortController() : null, { popovers: o, hostWrapper: r, hostWrapperPrevStyle: l } = _M(e, {
+async function b2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
+ var Vt, Bt, Rt, Ct, zt, gt, mn, wt, on, rn, hn, ln, gn, nn, An, vn, un, Mn, yn, Ut, Jt, ro, lo, ao, hi;
+ gs("panelRender"), Xb("panelRender");
+ const i = typeof AbortController < "u" ? new AbortController() : null, { popovers: o, hostWrapper: r, hostWrapperPrevStyle: l } = t2(e, {
useComfyThemeUI: t
- }), a = Zl();
+ }), a = Al();
if (!a)
throw new Error(
"[Majoor] mountAssetsManagerPanelRuntime requires an active Pinia panel store"
);
- for (const Le of [
+ for (const Ve of [
"statusSection",
"statusDot",
"statusText",
@@ -34423,11 +34469,11 @@ async function m2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
"gridContainer",
"sidebar"
])
- if (!(n != null && n[Le]))
+ if (!(n != null && n[Ve]))
throw new Error(
- `[Majoor] mountAssetsManagerPanelRuntime now requires external.${Le}`
+ `[Majoor] mountAssetsManagerPanelRuntime now requires external.${Ve}`
);
- const c = no(null, [
+ const c = oo(null, [
"searchQuery",
"scrollTop",
"scope",
@@ -34448,402 +34494,402 @@ async function m2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
"similarSourceAssetId"
]);
a.viewScope = String(a.viewScope || "").trim().toLowerCase() === "similar" ? "similar" : "", a.similarResults = Array.isArray(a.similarResults) ? a.similarResults : [], a.similarTitle = String(a.similarTitle || ""), a.similarSourceAssetId = String(a.similarSourceAssetId || "");
- const s = (Le, it = "") => c.read(Le, (a == null ? void 0 : a[Le]) ?? it), d = (Le, it) => c.write(Le, it), u = () => {
- const Le = s("selectedAssetIds", []);
- return Array.isArray(Le) ? Le.map(String).filter(Boolean) : [];
+ const s = (Ve, it = "") => c.read(Ve, (a == null ? void 0 : a[Ve]) ?? it), d = (Ve, it) => c.write(Ve, it), u = () => {
+ const Ve = s("selectedAssetIds", []);
+ return Array.isArray(Ve) ? Ve.map(String).filter(Boolean) : [];
}, I = () => String(s("activeAssetId", "") || "").trim(), p = () => !!s("sidebarOpen", !1), {
- header: M,
- tabButtons: Z,
- customMenuBtn: A,
+ header: S,
+ tabButtons: A,
+ customMenuBtn: C,
filterBtn: g,
- sortBtn: h,
+ sortBtn: Z,
collectionsBtn: f,
pinnedFoldersBtn: b,
- messageBtn: v,
- customPopover: C,
- customSelect: S,
+ messageBtn: L,
+ customPopover: h,
+ customSelect: G,
customAddBtn: W,
customRemoveBtn: y,
- filterPopover: k,
- kindSelect: G,
- wfCheckbox: z,
- workflowTypeSelect: x,
+ filterPopover: X,
+ kindSelect: x,
+ wfCheckbox: T,
+ workflowTypeSelect: v,
ratingSelect: w,
- minSizeInput: X,
- maxSizeInput: V,
- resolutionPresetSelect: R,
- minWidthInput: j,
- minHeightInput: L,
- maxWidthInput: N,
- maxHeightInput: q,
- dateRangeSelect: O,
+ minSizeInput: R,
+ maxSizeInput: Y,
+ resolutionPresetSelect: F,
+ minWidthInput: N,
+ minHeightInput: V,
+ maxWidthInput: k,
+ maxHeightInput: K,
+ dateRangeSelect: z,
dateExactInput: B,
agendaContainer: J,
- sortPopover: T,
- sortMenu: D,
- collectionsPopover: Q,
+ sortPopover: P,
+ sortMenu: H,
+ collectionsPopover: $,
pinnedFoldersPopover: E,
- pinnedFoldersMenu: K,
- messagePopoverTitle: F,
- messagePopover: Y,
- messageTabBtn: U,
- messageTabBadge: P,
- historyTabBtn: ee,
- historyTabBadge: oe,
+ pinnedFoldersMenu: oe,
+ messagePopoverTitle: M,
+ messagePopover: j,
+ messageTabBtn: O,
+ messageTabBadge: D,
+ historyTabBtn: q,
+ historyTabBadge: ee,
historyTabCount: ce,
- historyPanel: pe,
- shortcutsTabBtn: H,
- messageList: $,
+ historyPanel: ue,
+ shortcutsTabBtn: U,
+ messageList: Q,
shortcutsPanel: _,
markReadBtn: le,
- searchSection: se,
- searchInputEl: de,
- similarBtn: Ze,
- setSemanticEnabled: Fe,
- _headerDispose: xe
- } = n.headerSection, ze = !!((Lt = n == null ? void 0 : n.headerSection) != null && Lt.isVueHeader);
- c.read("searchQuery", "") && (de.value = c.read("searchQuery", "")), de.addEventListener(
+ searchSection: de,
+ searchInputEl: se,
+ similarBtn: ge,
+ setSemanticEnabled: je,
+ _headerDispose: Se
+ } = n.headerSection, ke = !!((Vt = n == null ? void 0 : n.headerSection) != null && Vt.isVueHeader);
+ c.read("searchQuery", "") && (se.value = c.read("searchQuery", "")), se.addEventListener(
"input",
- (Le) => {
- c.write("searchQuery", Le.target.value);
+ (Ve) => {
+ c.write("searchQuery", Ve.target.value);
},
{ signal: i == null ? void 0 : i.signal }
);
- const We = n.summaryBar, De = n.updateSummaryBar, Pe = n.folderBreadcrumb, Qe = n.statusSection, Ue = n.statusDot, Ee = n.statusText, Re = n.capabilitiesSection, wt = n.browseSection, Se = n.gridWrapper, Ft = n.sidebar;
+ const we = n.summaryBar, Je = n.updateSummaryBar, $e = n.folderBreadcrumb, qe = n.statusSection, Ue = n.statusDot, Te = n.statusText, Oe = n.capabilitiesSection, pt = n.browseSection, Me = n.gridWrapper, Xt = n.sidebar;
Xn();
- const Gt = document.createElement("div");
- Gt.classList.add("mjr-am-content");
- let ue = null, He = null;
+ const Mt = document.createElement("div");
+ Mt.classList.add("mjr-am-content");
+ let me = null, Pe = null;
e.tabIndex = -1;
- let ve = null, Ot = 0;
- const Ve = () => {
+ let Le = null, Ot = 0;
+ const Xe = () => {
try {
Ot = Date.now();
} catch {
Ot = 0;
}
- }, Ke = typeof (n == null ? void 0 : n.bindGridHostState) == "function" && typeof (n == null ? void 0 : n.restoreGridUiState) == "function", Be = !Ke;
- Se.addEventListener(
+ }, Ee = typeof (n == null ? void 0 : n.bindGridHostState) == "function" && typeof (n == null ? void 0 : n.restoreGridUiState) == "function", Ke = !Ee;
+ Me.addEventListener(
"scroll",
() => {
- Ve(), Be && (ve && clearTimeout(ve), ve = setTimeout(() => {
- var Le;
+ Xe(), Ke && (Le && clearTimeout(Le), Le = setTimeout(() => {
+ var Ve;
try {
- c.write("scrollTop", Se.scrollTop);
+ c.write("scrollTop", Me.scrollTop);
} catch (it) {
- (Le = console.debug) == null || Le.call(console, it);
+ (Ve = console.debug) == null || Ve.call(console, it);
}
}, 100));
},
{ passive: !0, signal: i == null ? void 0 : i.signal }
- ), ue = n.gridContainer, ue.parentElement !== Se && Se.appendChild(ue), Bs(ue);
+ ), me = n.gridContainer, me.parentElement !== Me && Me.appendChild(me), Ks(me);
try {
- ue.dataset.mjrScope = String(s("scope", a.scope || "output") || "output");
- } catch (Le) {
- (Bt = console.debug) == null || Bt.call(console, Le);
+ me.dataset.mjrScope = String(s("scope", a.scope || "output") || "output");
+ } catch (Ve) {
+ (Bt = console.debug) == null || Bt.call(console, Ve);
}
- const nt = [], mt = (Le) => {
- typeof Le == "function" && nt.push(Le);
+ const nt = [], ut = (Ve) => {
+ typeof Ve == "function" && nt.push(Ve);
};
- ue._mjrSummaryBarDispose = () => {
- var Le;
+ me._mjrSummaryBarDispose = () => {
+ var Ve;
for (const it of nt.splice(0))
try {
it();
- } catch (Vt) {
- (Le = console.debug) == null || Le.call(console, Vt);
+ } catch (xt) {
+ (Ve = console.debug) == null || Ve.call(console, xt);
}
};
try {
- const Le = () => {
+ const Ve = () => {
var it;
try {
- De == null || De({ state: a, gridContainer: ue });
- } catch (Vt) {
- (it = console.debug) == null || it.call(console, Vt);
+ Je == null || Je({ state: a, gridContainer: me });
+ } catch (xt) {
+ (it = console.debug) == null || it.call(console, xt);
}
};
- ue.addEventListener("mjr:grid-stats", Le, {
+ me.addEventListener("mjr:grid-stats", Ve, {
signal: i == null ? void 0 : i.signal
- }), mt(() => {
+ }), ut(() => {
var it;
try {
- ue.removeEventListener("mjr:grid-stats", Le);
- } catch (Vt) {
- (it = console.debug) == null || it.call(console, Vt);
+ me.removeEventListener("mjr:grid-stats", Ve);
+ } catch (xt) {
+ (it = console.debug) == null || it.call(console, xt);
}
});
- } catch (Le) {
- (Nt = console.debug) == null || Nt.call(console, Le);
+ } catch (Ve) {
+ (Rt = console.debug) == null || Rt.call(console, Ve);
}
try {
- } catch (Le) {
- (ht = console.debug) == null || ht.call(console, Le);
+ } catch (Ve) {
+ (Ct = console.debug) == null || Ct.call(console, Ve);
}
- const bt = n.loadAssets ?? Qs, st = n.loadAssetsFromList ?? _s, ke = n.prepareGridForScopeSwitch ?? _C, Ct = n.disposeGrid ?? wI, at = n.refreshGrid ?? $C, zt = n.captureAnchor ?? eZ, Zt = n.restoreAnchor ?? tZ, gt = n.hydrateGridFromSnapshot ?? QC;
+ const It = n.loadAssets ?? $s, dt = n.loadAssetsFromList ?? ed, Re = n.prepareGridForScopeSwitch ?? tZ, Wt = n.disposeGrid ?? MI, lt = n.refreshGrid ?? nZ, qt = n.captureAnchor ?? iZ, yt = n.restoreAnchor ?? oZ, mt = n.hydrateGridFromSnapshot ?? eZ;
if (typeof (n == null ? void 0 : n.onGridContainerReady) == "function")
try {
- n.onGridContainerReady(ue, { getState: () => a });
- } catch (Le) {
- (Jt = console.debug) == null || Jt.call(console, Le);
+ n.onGridContainerReady(me, { getState: () => a });
+ } catch (Ve) {
+ (zt = console.debug) == null || zt.call(console, Ve);
}
else
- e._mjrGridContextMenuUnbind = ld({
- gridContainer: ue,
+ e._mjrGridContextMenuUnbind = cd({
+ gridContainer: me,
getState: () => a
});
- const kt = m("search.findSimilar", "Find Similar"), Qt = m(
+ const kt = m("search.findSimilar", "Find Similar"), $t = m(
"search.similarDisabled",
"AI features are disabled in settings"
- ), { applyWatcherForScope: te, isAiEnabled: ge } = $M({
+ ), { applyWatcherForScope: Tt, isAiEnabled: te } = n2({
container: e,
state: a,
- sidebar: Ft,
- browseSection: wt,
- gridWrapper: Se,
- similarBtn: Ze,
- setSemanticEnabled: Fe,
+ sidebar: Xt,
+ browseSection: pt,
+ gridWrapper: Me,
+ similarBtn: ge,
+ setSemanticEnabled: je,
similarEnabledTitle: kt,
- similarDisabledTitle: Qt,
- refreshGridFn: at,
+ similarDisabledTitle: $t,
+ refreshGridFn: lt,
isSidebarOpen: p,
readActiveAssetId: I,
- getSidebarController: () => He,
+ getSidebarController: () => Pe,
panelLifecycleAC: i
});
- Gt.appendChild(Qe), Gt.appendChild(se), Gt.appendChild(Pe), Gt.appendChild(We), Gt.appendChild(wt), e.appendChild(M);
+ Mt.appendChild(qe), Mt.appendChild(de), Mt.appendChild($e), Mt.appendChild(we), Mt.appendChild(pt), e.appendChild(S);
try {
- (It = e._mjrVersionUpdateCleanup) == null || It.call(e);
- } catch (Le) {
- (mn = console.debug) == null || mn.call(console, Le);
+ (gt = e._mjrVersionUpdateCleanup) == null || gt.call(e);
+ } catch (Ve) {
+ (mn = console.debug) == null || mn.call(console, Ve);
}
- e._mjrVersionUpdateCleanup = xe || M._mjrVersionUpdateCleanup, e.appendChild(Gt);
- const we = () => ys(de), be = NM({
- gridContainer: ue,
- loadAssets: bt,
- loadAssetsFromList: st,
- getCollectionAssets: Uf,
- disposeGrid: Ct,
- getQuery: we,
- searchInputEl: de,
+ e._mjrVersionUpdateCleanup = Se || S._mjrVersionUpdateCleanup, e.appendChild(Mt);
+ const ye = () => hs(se), We = OM({
+ gridContainer: me,
+ loadAssets: It,
+ loadAssetsFromList: dt,
+ getCollectionAssets: Ef,
+ disposeGrid: Wt,
+ getQuery: ye,
+ searchInputEl: se,
state: a
});
- let Oe = null, ot = null, dt = null, en = null, un = null, Wt = null, tn = null, re = null, ie = null;
- const me = () => {
- var Le, it, Vt, on;
+ let pe = null, De = null, ot = null, Zt = null, tn = null, Pt = null, vt = null, re = null, ne = null;
+ const Ie = () => {
+ var Ve, it, xt, an;
try {
- (Le = ot == null ? void 0 : ot.update) == null || Le.call(ot);
- } catch (cn) {
- (it = console.debug) == null || it.call(console, cn);
+ (Ve = De == null ? void 0 : De.update) == null || Ve.call(De);
+ } catch (sn) {
+ (it = console.debug) == null || it.call(console, sn);
}
try {
- (Vt = Wt == null ? void 0 : Wt.renderBreadcrumb) == null || Vt.call(Wt);
- } catch (cn) {
- (on = console.debug) == null || on.call(console, cn);
+ (xt = Pt == null ? void 0 : Pt.renderBreadcrumb) == null || xt.call(Pt);
+ } catch (sn) {
+ (an = console.debug) == null || an.call(console, sn);
}
};
- Ke || (re = qM({
- gridContainer: ue,
+ Ee || (re = _M({
+ gridContainer: me,
readSelectedAssetIds: u,
readActiveAssetId: I,
- writeSelectedAssetIds: (Le) => d("selectedAssetIds", Le),
- writeActiveAssetId: (Le) => d("activeAssetId", Le),
+ writeSelectedAssetIds: (Ve) => d("selectedAssetIds", Ve),
+ writeActiveAssetId: (Ve) => d("activeAssetId", Ve),
onSelectionChanged: () => {
- Ve(), me();
+ Xe(), Ie();
},
lifecycleSignal: (i == null ? void 0 : i.signal) || null
- })), Wt = RM({
+ })), Pt = zM({
state: a,
- gridContainer: ue,
- folderBreadcrumb: Pe,
- customSelect: S,
- reloadGrid: () => be.reloadGrid(),
+ gridContainer: me,
+ folderBreadcrumb: $e,
+ customSelect: G,
+ reloadGrid: () => We.reloadGrid(),
onContextChanged: () => {
- var Le, it;
+ var Ve, it;
try {
- (Le = ot == null ? void 0 : ot.update) == null || Le.call(ot);
- } catch (Vt) {
- (it = console.debug) == null || it.call(console, Vt);
+ (Ve = De == null ? void 0 : De.update) == null || Ve.call(De);
+ } catch (xt) {
+ (it = console.debug) == null || it.call(console, xt);
}
},
lifecycleSignal: (i == null ? void 0 : i.signal) || null
});
try {
- tn = Wt.bindGridFolderNavigation();
- } catch (Le) {
- (Mt = console.debug) == null || Mt.call(console, Le);
+ vt = Pt.bindGridFolderNavigation();
+ } catch (Ve) {
+ (wt = console.debug) == null || wt.call(console, Ve);
}
- const Xe = async () => {
- var Vt;
- const Le = String(s("scope", a.scope || "output") || "output").toLowerCase(), it = String(s("customRootId", a.customRootId || "") || "").trim();
- if (Le === "custom" && !it) {
- dt = null, me();
+ const Ne = async () => {
+ var xt;
+ const Ve = String(s("scope", a.scope || "output") || "output").toLowerCase(), it = String(s("customRootId", a.customRootId || "") || "").trim();
+ if (Ve === "custom" && !it) {
+ ot = null, Ie();
return;
}
try {
- const on = await zf(
- { scope: Le, customRootId: it, maxGroups: 4, maxPairs: 4 },
+ const an = await Bf(
+ { scope: Ve, customRootId: it, maxGroups: 4, maxPairs: 4 },
{ signal: i == null ? void 0 : i.signal }
);
- if (!(on != null && on.ok)) return;
- const cn = on.data || {};
- dt = {
- exactCount: Array.isArray(cn.exact_groups) ? cn.exact_groups.length : 0,
- similarCount: Array.isArray(cn.similar_pairs) ? cn.similar_pairs.length : 0,
- firstGroup: Array.isArray(cn.exact_groups) ? cn.exact_groups[0] : null,
- firstPair: Array.isArray(cn.similar_pairs) ? cn.similar_pairs[0] : null
- }, me();
- } catch (on) {
- (Vt = console.debug) == null || Vt.call(console, on);
+ if (!(an != null && an.ok)) return;
+ const sn = an.data || {};
+ ot = {
+ exactCount: Array.isArray(sn.exact_groups) ? sn.exact_groups.length : 0,
+ similarCount: Array.isArray(sn.similar_pairs) ? sn.similar_pairs.length : 0,
+ firstGroup: Array.isArray(sn.exact_groups) ? sn.exact_groups[0] : null,
+ firstPair: Array.isArray(sn.similar_pairs) ? sn.similar_pairs[0] : null
+ }, Ie();
+ } catch (an) {
+ (xt = console.debug) == null || xt.call(console, an);
}
- }, qe = 120;
- let ut = null;
- e2({
- gridContainer: ue,
+ }, He = 120;
+ let rt = null;
+ i2({
+ gridContainer: me,
panelLifecycleAC: i,
requestQueuedReload: () => {
- var Le;
+ var Ve;
try {
- ut && clearTimeout(ut);
+ rt && clearTimeout(rt);
} catch (it) {
- (Le = console.debug) == null || Le.call(console, it);
+ (Ve = console.debug) == null || Ve.call(console, it);
}
- ut = setTimeout(() => {
- ut = null, je().catch((it) => {
- var Vt;
+ rt = setTimeout(() => {
+ rt = null, ve().catch((it) => {
+ var xt;
try {
console.warn("[Majoor] queuedReload failed", it);
- } catch (on) {
- (Vt = console.debug) == null || Vt.call(console, on);
+ } catch (an) {
+ (xt = console.debug) == null || xt.call(console, an);
}
});
- }, qe);
+ }, He);
},
- notifyContextChanged: me,
- markUserInteraction: Ve,
+ notifyContextChanged: Ie,
+ markUserInteraction: Xe,
writePanelValue: d,
popovers: o,
- collectionsPopover: Q,
- gridController: be,
- registerSummaryDispose: mt
+ collectionsPopover: $,
+ gridController: We,
+ registerSummaryDispose: ut
});
- const Yt = zM({
+ const Yt = BM({
state: a,
- customSelect: S,
+ customSelect: G,
customRemoveBtn: y,
- comfyConfirm: bi,
- comfyPrompt: ji,
- comfyToast: Ce,
- get: Rt,
+ comfyConfirm: yi,
+ comfyPrompt: Vi,
+ comfyToast: Ze,
+ get: Ft,
post: Et,
- ENDPOINTS: lt,
- reloadGrid: be.reloadGrid,
+ ENDPOINTS: ct,
+ reloadGrid: We.reloadGrid,
onRootChanged: async () => {
- var Le, it, Vt, on;
+ var Ve, it, xt, an;
try {
- (Le = Wt == null ? void 0 : Wt.resetHistory) == null || Le.call(Wt);
- } catch (cn) {
- (it = console.debug) == null || it.call(console, cn);
+ (Ve = Pt == null ? void 0 : Pt.resetHistory) == null || Ve.call(Pt);
+ } catch (sn) {
+ (it = console.debug) == null || it.call(console, sn);
}
try {
- await te(a.scope);
- } catch (cn) {
- (Vt = console.debug) == null || Vt.call(console, cn);
+ await Tt(a.scope);
+ } catch (sn) {
+ (xt = console.debug) == null || xt.call(console, sn);
}
try {
- await Xe();
- } catch (cn) {
- (on = console.debug) == null || on.call(console, cn);
+ await Ne();
+ } catch (sn) {
+ (an = console.debug) == null || an.call(console, sn);
}
}
- }), St = Yt.bind({ customAddBtn: W, customRemoveBtn: y });
+ }), Gt = Yt.bind({ customAddBtn: W, customRemoveBtn: y });
try {
window.addEventListener(
"mjr:custom-roots-changed",
- async (Le) => {
- var Vt;
- const it = String(((Vt = Le == null ? void 0 : Le.detail) == null ? void 0 : Vt.preferredId) || "").trim() || null;
+ async (Ve) => {
+ var xt;
+ const it = String(((xt = Ve == null ? void 0 : Ve.detail) == null ? void 0 : xt.preferredId) || "").trim() || null;
await Yt.refreshCustomRoots(it);
},
{ signal: i == null ? void 0 : i.signal }
);
- } catch (Le) {
- (nn = console.debug) == null || nn.call(console, Le);
+ } catch (Ve) {
+ (on = console.debug) == null || on.call(console, Ve);
}
- const qt = () => {
- var Le;
+ const Qt = () => {
+ var Ve;
try {
- const it = ue == null ? void 0 : ue._mjrGetAssets, Vt = ue == null ? void 0 : ue._mjrSetSelection;
- if (typeof it != "function" || typeof Vt != "function") return;
- const on = (Array.isArray(it()) ? it() : []).map((Vi) => String((Vi == null ? void 0 : Vi.id) ?? "").trim()).filter(Boolean), cn = u(), Bn = cn.filter((Vi) => on.includes(Vi)), Li = cn.length - Bn.length;
- if (Li <= 0) return;
- const Yi = I(), fi = Bn.includes(Yi) ? Yi : Bn[0] || "";
- Vt(Bn, fi), Ce(
+ const it = me == null ? void 0 : me._mjrGetAssets, xt = me == null ? void 0 : me._mjrSetSelection;
+ if (typeof it != "function" || typeof xt != "function") return;
+ const an = (Array.isArray(it()) ? it() : []).map((ci) => String((ci == null ? void 0 : ci.id) ?? "").trim()).filter(Boolean), sn = u(), Bn = sn.filter((ci) => an.includes(ci)), Yi = sn.length - Bn.length;
+ if (Yi <= 0) return;
+ const ki = I(), Ji = Bn.includes(ki) ? ki : Bn[0] || "";
+ xt(Bn, Ji), Ze(
m(
"toast.selectionPruned",
"{count} items deselected - not visible in current view",
- { count: Li }
+ { count: Yi }
),
"info",
2600,
{ noHistory: !0 }
);
} catch (it) {
- (Le = console.debug) == null || Le.call(console, it);
+ (Ve = console.debug) == null || Ve.call(console, it);
}
};
- Oe = FM({
+ pe = JM({
state: a,
- tabButtons: Z,
- customMenuBtn: A,
- customPopover: C,
+ tabButtons: A,
+ customMenuBtn: C,
+ customPopover: h,
popovers: o,
refreshCustomRoots: Yt.refreshCustomRoots,
- reloadGrid: be.reloadGrid,
- reconcileSelection: qt,
+ reloadGrid: We.reloadGrid,
+ reconcileSelection: Qt,
onChanged: () => {
- var Le;
+ var Ve;
try {
- ue && (ue.dataset.mjrScope = String(
+ me && (me.dataset.mjrScope = String(
s("scope", a.scope || "output") || "output"
));
} catch (it) {
- (Le = console.debug) == null || Le.call(console, it);
+ (Ve = console.debug) == null || Ve.call(console, it);
}
- me();
+ Ie();
},
onScopeChanged: async () => {
- var Le, it;
+ var Ve, it;
try {
- await te(
+ await Tt(
String(s("scope", a.scope || "output") || "output")
);
- } catch (Vt) {
- (Le = console.debug) == null || Le.call(console, Vt);
+ } catch (xt) {
+ (Ve = console.debug) == null || Ve.call(console, xt);
}
try {
- await Xe();
- } catch (Vt) {
- (it = console.debug) == null || it.call(console, Vt);
+ await Ne();
+ } catch (xt) {
+ (it = console.debug) == null || it.call(console, xt);
}
},
onBeforeReload: async () => {
- var Le, it, Vt;
+ var Ve, it, xt;
try {
- ue.dataset.mjrScope = s("scope", "output"), ue.dataset.mjrCustomRootId = s("customRootId", "") || "", ue.dataset.mjrSubfolder = s("currentFolderRelativePath", "") || "", ue.dataset.mjrCollectionId = s("collectionId", "") || "", ue.dataset.mjrViewScope = s("viewScope", "") || "";
- } catch (on) {
- (Le = console.debug) == null || Le.call(console, on);
+ me.dataset.mjrScope = s("scope", "output"), me.dataset.mjrCustomRootId = s("customRootId", "") || "", me.dataset.mjrSubfolder = s("currentFolderRelativePath", "") || "", me.dataset.mjrCollectionId = s("collectionId", "") || "", me.dataset.mjrViewScope = s("viewScope", "") || "";
+ } catch (an) {
+ (Ve = console.debug) == null || Ve.call(console, an);
}
try {
- ke(ue);
- } catch (on) {
- (it = console.debug) == null || it.call(console, on);
+ Re(me);
+ } catch (an) {
+ (it = console.debug) == null || it.call(console, an);
}
try {
- await Xi(
+ await Ni(
Ue,
- Ee,
- Re,
+ Te,
+ Oe,
{
scope: s("scope", a.scope || "output"),
customRootId: s("customRootId", a.customRootId || "")
@@ -34851,510 +34897,517 @@ async function m2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
null,
{ signal: (i == null ? void 0 : i.signal) || null }
);
- } catch (on) {
- (Vt = console.debug) == null || Vt.call(console, on);
+ } catch (an) {
+ (xt = console.debug) == null || xt.call(console, an);
}
}
});
- const Vn = async ({ reload: Le = !1 } = {}) => {
- var it, Vt;
+ const Yn = async ({ reload: Ve = !1 } = {}) => {
+ var it, xt;
try {
if (String(s("viewScope", a.viewScope || "") || "").trim().toLowerCase() !== "similar") return;
- await ((it = Oe == null ? void 0 : Oe.clearSimilarScope) == null ? void 0 : it.call(Oe, { reload: Le }));
- } catch (on) {
- (Vt = console.debug) == null || Vt.call(console, on);
+ await ((it = pe == null ? void 0 : pe.clearSimilarScope) == null ? void 0 : it.call(pe, { reload: Ve }));
+ } catch (an) {
+ (xt = console.debug) == null || xt.call(console, an);
}
};
- Object.values(Z).forEach((Le) => {
- Le.addEventListener("click", () => Oe.setScope(Le.dataset.scope), {
+ Object.values(A).forEach((Ve) => {
+ Ve.addEventListener("click", () => pe.setScope(Ve.dataset.scope), {
signal: i == null ? void 0 : i.signal
});
- }), VM({
- messageBtn: v,
- messagePopover: Y,
- title: F,
- messageList: $,
- historyTabBtn: ee,
- historyTabBadge: oe,
+ }), NM({
+ messageBtn: L,
+ messagePopover: j,
+ title: M,
+ messageList: Q,
+ historyTabBtn: q,
+ historyTabBadge: ee,
historyTabCount: ce,
- historyPanel: pe,
+ historyPanel: ue,
shortcutsPanel: _,
- messageTabBtn: U,
- messageTabBadge: P,
- shortcutsTabBtn: H,
+ messageTabBtn: O,
+ messageTabBadge: D,
+ shortcutsTabBtn: U,
markReadBtn: le,
popovers: o,
signal: i == null ? void 0 : i.signal,
onBeforeToggle: () => {
- o.close(C), o.close(k), o.close(T), o.close(Q), o.close(E);
+ o.close(h), o.close(X), o.close(P), o.close($), o.close(E);
}
}), o.setDismissWhitelist([
- C,
- k,
- T,
- Q,
- E,
- Y,
- A,
- g,
h,
+ X,
+ P,
+ $,
+ E,
+ j,
+ C,
+ g,
+ Z,
f,
b,
- v
- ]), A.addEventListener(
+ L
+ ]), C.addEventListener(
"click",
- (Le) => {
- Le.stopPropagation(), o.close(k), o.close(T), o.close(Q), o.close(Y), o.toggle(C, A);
+ (Ve) => {
+ Ve.stopPropagation(), o.close(X), o.close(P), o.close($), o.close(j), o.toggle(h, C);
},
{ signal: i == null ? void 0 : i.signal }
), g.addEventListener(
"click",
- (Le) => {
- Le.stopPropagation(), o.close(C), o.close(T), o.close(Q), o.close(Y), o.toggle(k, g);
+ (Ve) => {
+ Ve.stopPropagation(), o.close(h), o.close(P), o.close($), o.close(j), o.toggle(X, g);
},
{ signal: i == null ? void 0 : i.signal }
), f.addEventListener(
"click",
- (Le) => {
- Le.stopPropagation(), o.close(C), o.close(k), o.close(T), o.close(Y), o.toggle(Q, f);
+ (Ve) => {
+ Ve.stopPropagation(), o.close(h), o.close(X), o.close(P), o.close(j), o.toggle($, f);
},
{ signal: i == null ? void 0 : i.signal }
);
- const wn = ze ? null : JM({
+ const wn = ke ? null : UM({
state: a,
- sortBtn: h,
- sortMenu: D,
- sortPopover: T,
+ sortBtn: Z,
+ sortMenu: H,
+ sortPopover: P,
popovers: o,
- reloadGrid: be.reloadGrid,
- onChanged: () => me()
+ reloadGrid: We.reloadGrid,
+ onChanged: () => Ie()
});
wn ? wn.bind({
onBeforeToggle: () => {
- o.close(C), o.close(k), o.close(Q), o.close(Y);
+ o.close(h), o.close(X), o.close($), o.close(j);
}
- }) : h.addEventListener(
+ }) : Z.addEventListener(
"click",
- (Le) => {
- Le.stopPropagation(), o.close(C), o.close(k), o.close(Q), o.close(Y), o.toggle(T, h);
+ (Ve) => {
+ Ve.stopPropagation(), o.close(h), o.close(X), o.close($), o.close(j), o.toggle(P, Z);
},
{ signal: i == null ? void 0 : i.signal }
- ), t2({
- similarBtn: Ze,
- gridContainer: ue,
+ ), o2({
+ similarBtn: ge,
+ gridContainer: me,
state: a,
panelLifecycleAC: i,
- isAiEnabled: ge,
- similarDisabledTitle: Qt,
+ isAiEnabled: te,
+ similarDisabledTitle: $t,
readActiveAssetId: I,
readSelectedAssetIds: u,
readPanelValue: s,
writePanelValue: d,
- scopeController: Oe,
+ scopeController: pe,
closePopovers: () => {
- o.close(C), o.close(k), o.close(T), o.close(Q), o.close(Y);
+ o.close(h), o.close(X), o.close(P), o.close($), o.close(j);
}
- }), n2({
+ }), r2({
pinnedFoldersBtn: b,
- pinnedFoldersMenu: K,
+ pinnedFoldersMenu: oe,
pinnedFoldersPopover: E,
popovers: o,
closeOtherPopovers: () => {
- o.close(C), o.close(k), o.close(T), o.close(Q), o.close(Y);
+ o.close(h), o.close(X), o.close(P), o.close($), o.close(j);
},
state: a,
- gridContainer: ue,
- customSelect: S,
- scopeController: Oe,
+ gridContainer: me,
+ customSelect: G,
+ scopeController: pe,
customRootsController: Yt,
- gridController: be,
- applyWatcherForScope: te,
- refreshDuplicateAlerts: Xe,
- notifyContextChanged: me,
+ gridController: We,
+ applyWatcherForScope: Tt,
+ refreshDuplicateAlerts: Ne,
+ notifyContextChanged: Ie,
panelLifecycleAC: i
});
- const { agendaCalendar: xn, disposeFilters: _t } = s2({
+ const { agendaCalendar: xn, disposeFilters: en } = m2({
state: a,
- hasVueHeaderSection: ze,
- kindSelect: G,
- wfCheckbox: z,
- workflowTypeSelect: x,
+ hasVueHeaderSection: ke,
+ kindSelect: x,
+ wfCheckbox: T,
+ workflowTypeSelect: v,
ratingSelect: w,
- minSizeInput: X,
- maxSizeInput: V,
- resolutionPresetSelect: R,
- minWidthInput: j,
- minHeightInput: L,
- maxWidthInput: N,
- maxHeightInput: q,
- dateRangeSelect: O,
+ minSizeInput: R,
+ maxSizeInput: Y,
+ resolutionPresetSelect: F,
+ minWidthInput: N,
+ minHeightInput: V,
+ maxWidthInput: k,
+ maxHeightInput: K,
+ dateRangeSelect: z,
dateExactInput: B,
agendaContainer: J,
- gridController: be,
- reconcileVisibleSelection: qt,
- exitSimilarViewIfActive: Vn,
- notifyContextChanged: me,
+ gridController: We,
+ reconcileVisibleSelection: Qt,
+ exitSimilarViewIfActive: Yn,
+ notifyContextChanged: Ie,
panelLifecycleAC: i
- }), Yn = d2({
+ }), Vn = g2({
state: a,
- scopeController: Oe,
- browserNav: Wt,
- gridController: be,
- getDuplicatesAlert: () => dt,
- refreshDuplicateAlerts: Xe
+ scopeController: pe,
+ browserNav: Pt,
+ gridController: We,
+ getDuplicatesAlert: () => ot,
+ refreshDuplicateAlerts: Ne
});
try {
- ot = OM({
+ De = TM({
state: a,
- gridContainer: ue,
+ gridContainer: me,
filterBtn: g,
- sortBtn: h,
+ sortBtn: Z,
collectionsBtn: f,
- searchInputEl: de,
- kindSelect: G,
- wfCheckbox: z,
- workflowTypeSelect: x,
+ searchInputEl: se,
+ kindSelect: x,
+ wfCheckbox: T,
+ workflowTypeSelect: v,
ratingSelect: w,
- minSizeInput: X,
- maxSizeInput: V,
- minWidthInput: j,
- minHeightInput: L,
- maxWidthInput: N,
- maxHeightInput: q,
- resolutionPresetSelect: R,
- dateRangeSelect: O,
+ minSizeInput: R,
+ maxSizeInput: Y,
+ minWidthInput: N,
+ minHeightInput: V,
+ maxWidthInput: k,
+ maxHeightInput: K,
+ resolutionPresetSelect: F,
+ dateRangeSelect: z,
dateExactInput: B,
- scopeController: Oe,
+ scopeController: pe,
sortController: wn,
- updateSummaryBar: De,
- reloadGrid: () => be.reloadGrid(),
- getExtraContext: () => ({ duplicatesAlert: dt }),
- extraActions: Yn
+ updateSummaryBar: Je,
+ reloadGrid: () => We.reloadGrid(),
+ getExtraContext: () => ({ duplicatesAlert: ot }),
+ extraActions: Vn
});
- } catch (Le) {
- (rn = console.debug) == null || rn.call(console, Le);
+ } catch (Ve) {
+ (rn = console.debug) == null || rn.call(console, Ve);
}
try {
- if (me(), Ke) {
- const Le = n.bindGridHostState({
- onContextChanged: me,
- markUserInteraction: Ve
+ if (Ie(), Ee) {
+ const Ve = n.bindGridHostState({
+ onContextChanged: Ie,
+ markUserInteraction: Xe
});
- mt(Le);
+ ut(Ve);
} else {
- const Le = () => me();
- ue.addEventListener("mjr:grid-stats", Le, {
+ const Ve = () => Ie();
+ me.addEventListener("mjr:grid-stats", Ve, {
signal: i == null ? void 0 : i.signal
- }), (hn = window.addEventListener) == null || hn.call(window, "mjr-settings-changed", Le, {
+ }), (hn = window.addEventListener) == null || hn.call(window, "mjr-settings-changed", Ve, {
signal: i == null ? void 0 : i.signal
});
- let it = null;
- const Vt = () => {
- it && cancelAnimationFrame(it), it = requestAnimationFrame(() => {
- it = null, me();
- });
- }, on = new MutationObserver(() => Vt());
- on.observe(ue, { childList: !0, subtree: !0 }), ue._mjrSummaryBarObserver = on, mt(() => {
- var cn, Bn, Li, Yi;
+ let it = null, xt = null;
+ const an = () => {
+ xt && clearTimeout(xt), xt = setTimeout(() => {
+ xt = null, it && cancelAnimationFrame(it), it = requestAnimationFrame(() => {
+ it = null, Ie();
+ });
+ }, 250);
+ }, sn = new MutationObserver(() => an());
+ sn.observe(me, { childList: !0 }), me._mjrSummaryBarObserver = sn, ut(() => {
+ var Bn, Yi, ki, Ji, ci;
try {
- ue.removeEventListener("mjr:grid-stats", Le);
- } catch (fi) {
- (cn = console.debug) == null || cn.call(console, fi);
+ me.removeEventListener("mjr:grid-stats", Ve);
+ } catch (Ci) {
+ (Bn = console.debug) == null || Bn.call(console, Ci);
}
try {
- (Bn = window.removeEventListener) == null || Bn.call(window, "mjr-settings-changed", Le);
- } catch (fi) {
- (Li = console.debug) == null || Li.call(console, fi);
+ (Yi = window.removeEventListener) == null || Yi.call(window, "mjr-settings-changed", Ve);
+ } catch (Ci) {
+ (ki = console.debug) == null || ki.call(console, Ci);
}
try {
- on.disconnect();
- } catch (fi) {
- (Yi = console.debug) == null || Yi.call(console, fi);
+ xt && clearTimeout(xt);
+ } catch (Ci) {
+ (Ji = console.debug) == null || Ji.call(console, Ci);
+ }
+ try {
+ sn.disconnect();
+ } catch (Ci) {
+ (ci = console.debug) == null || ci.call(console, Ci);
}
});
}
- } catch (Le) {
- (ln = console.debug) == null || ln.call(console, Le);
+ } catch (Ve) {
+ (ln = console.debug) == null || ln.call(console, Ve);
}
- He = EM({
- gridContainer: ue,
- sidebar: Ft,
+ Pe = PM({
+ gridContainer: me,
+ sidebar: Xt,
createRatingBadge: Ya,
- createTagsBadge: FI,
- showAssetInSidebar: iM,
- closeSidebar: Jb,
+ createTagsBadge: OI,
+ showAssetInSidebar: lM,
+ closeSidebar: Tb,
state: a
});
const pn = {
- gridController: be,
- captureAnchor: zt,
- restoreAnchor: Zt,
- restoreGridUiState: Ke ? (Le) => n.restoreGridUiState(Le, {
+ gridController: We,
+ captureAnchor: qt,
+ restoreAnchor: yt,
+ restoreGridUiState: Ee ? (Ve) => n.restoreGridUiState(Ve, {
onRestoreSidebar: () => {
- var it, Vt;
+ var it, xt;
try {
- (it = He == null ? void 0 : He.toggleDetails) == null || it.call(He);
- } catch (on) {
- (Vt = console.debug) == null || Vt.call(console, on);
+ (it = Pe == null ? void 0 : Pe.toggleDetails) == null || it.call(Pe);
+ } catch (an) {
+ (xt = console.debug) == null || xt.call(console, an);
}
}
}) : null,
readScrollTop: () => c.read("scrollTop", a.scrollTop || 0),
- restoreSelectionState: ({ scrollTop: Le } = {}) => {
+ restoreSelectionState: ({ scrollTop: Ve } = {}) => {
var it;
- (it = re == null ? void 0 : re.restoreSelectionState) == null || it.call(re, { scrollTop: Le });
+ (it = re == null ? void 0 : re.restoreSelectionState) == null || it.call(re, { scrollTop: Ve });
},
readActiveAssetId: I,
isSidebarOpen: p,
toggleSidebarDetails: () => {
- var Le;
- (Le = He == null ? void 0 : He.toggleDetails) == null || Le.call(He);
+ var Ve;
+ (Ve = Pe == null ? void 0 : Pe.toggleDetails) == null || Ve.call(Pe);
},
- getQuery: we,
+ getQuery: ye,
getScope: () => c.read("scope", a.scope),
- loadAssets: bt,
+ loadAssets: It,
lifecycleSignal: (i == null ? void 0 : i.signal) || null
};
- typeof (n == null ? void 0 : n.initAssetsQueryController) == "function" ? ie = n.initAssetsQueryController(pn) : ie = tp({
- gridContainer: ue,
- gridWrapper: Se,
+ typeof (n == null ? void 0 : n.initAssetsQueryController) == "function" ? ne = n.initAssetsQueryController(pn) : ne = np({
+ gridContainer: me,
+ gridWrapper: Me,
...pn
});
- const Nn = HM({
- onTriggerScan: (Le) => {
- Ob(Ue, Ee, Re, Le || {});
+ const Nn = QM({
+ onTriggerScan: (Ve) => {
+ zb(Ue, Te, Oe, Ve || {});
},
onToggleDetails: () => {
- var Le;
- (Le = He == null ? void 0 : He.toggleDetails) == null || Le.call(He);
+ var Ve;
+ (Ve = Pe == null ? void 0 : Pe.toggleDetails) == null || Ve.call(Pe);
},
onToggleFloatingViewer: () => {
- var Le;
+ var Ve;
try {
- window.dispatchEvent(new Event(ft.MFV_TOGGLE));
+ window.dispatchEvent(new Event(ht.MFV_TOGGLE));
} catch (it) {
- (Le = console.debug) == null || Le.call(console, it);
+ (Ve = console.debug) == null || Ve.call(console, it);
}
},
onFocusSearch: () => {
- var Le, it, Vt, on;
+ var Ve, it, xt, an;
try {
- (Le = de == null ? void 0 : de.focus) == null || Le.call(de);
- const cn = ((it = de == null ? void 0 : de.value) == null ? void 0 : it.length) || 0;
- (Vt = de == null ? void 0 : de.setSelectionRange) == null || Vt.call(de, cn, cn);
- } catch (cn) {
- (on = console.debug) == null || on.call(console, cn);
+ (Ve = se == null ? void 0 : se.focus) == null || Ve.call(se);
+ const sn = ((it = se == null ? void 0 : se.value) == null ? void 0 : it.length) || 0;
+ (xt = se == null ? void 0 : se.setSelectionRange) == null || xt.call(se, sn, sn);
+ } catch (sn) {
+ (an = console.debug) == null || an.call(console, sn);
}
},
onClearSearch: () => {
- var Le, it;
+ var Ve, it;
try {
- if (!de) return;
- d("searchQuery", ""), de.value = "", (Le = de.dispatchEvent) == null || Le.call(de, new Event("input", { bubbles: !0 }));
- } catch (Vt) {
- (it = console.debug) == null || it.call(console, Vt);
+ if (!se) return;
+ d("searchQuery", ""), se.value = "", (Ve = se.dispatchEvent) == null || Ve.call(se, new Event("input", { bubbles: !0 }));
+ } catch (xt) {
+ (it = console.debug) == null || it.call(console, xt);
}
},
getScanContext: () => ({
scope: c.read("scope", a.scope),
customRootId: c.read("customRootId", a.customRootId)
})
- }), ae = mb({ gridContainer: ue, createRatingBadge: Ya });
- let fe = null;
+ }), ae = gb({ gridContainer: me, createRatingBadge: Ya });
+ let he = null;
if (e._eventCleanup)
try {
e._eventCleanup();
- } catch (Le) {
- (gn = console.debug) == null || gn.call(console, Le);
+ } catch (Ve) {
+ (gn = console.debug) == null || gn.call(console, Ve);
}
- Nn.bind(Gt), ae.bind(), Zr("grid");
+ Nn.bind(Mt), ae.bind(), wr("grid");
try {
- e._mjrHotkeys = Nn, e._mjrRatingHotkeys = ae, e._mjrSidebarController = He;
- } catch (Le) {
- ($t = console.debug) == null || $t.call(console, Le);
+ e._mjrHotkeys = Nn, e._mjrRatingHotkeys = ae, e._mjrSidebarController = Pe;
+ } catch (Ve) {
+ (nn = console.debug) == null || nn.call(console, Ve);
}
e._eventCleanup = () => {
- var Le, it, Vt, on, cn, Bn, Li, Yi, fi, Vi, vr, Lr, Yr, Vr, Ht, $n, qn, Ml, Sl, yd, fd, hd, Cd, Zd, Ad, Gl, Wd, wd, Md, Sd, Gd, xd, jd, vd, Ld, Yd, Vd;
+ var Ve, it, xt, an, sn, Bn, Yi, ki, Ji, ci, Ci, Yr, kr, Xr, Ht, $n, qn, Sl, Gl, hd, Cd, Zd, Ad, Wd, wd, xl, Md, Sd, Gd, xd, jd, vd, Ld, Vd, Yd, kd, Xd;
try {
- (Le = i == null ? void 0 : i.abort) == null || Le.call(i);
- } catch (Pt) {
- (it = console.debug) == null || it.call(console, Pt);
+ (Ve = i == null ? void 0 : i.abort) == null || Ve.call(i);
+ } catch (_t) {
+ (it = console.debug) == null || it.call(console, _t);
}
try {
- (Vt = Qe == null ? void 0 : Qe._mjrStatusPollDispose) == null || Vt.call(Qe);
- } catch (Pt) {
- (on = console.debug) == null || on.call(console, Pt);
+ (xt = qe == null ? void 0 : qe._mjrStatusPollDispose) == null || xt.call(qe);
+ } catch (_t) {
+ (an = console.debug) == null || an.call(console, _t);
}
try {
- (cn = e._mjrVersionUpdateCleanup) == null || cn.call(e);
- } catch (Pt) {
- (Bn = console.debug) == null || Bn.call(console, Pt);
+ (sn = e._mjrVersionUpdateCleanup) == null || sn.call(e);
+ } catch (_t) {
+ (Bn = console.debug) == null || Bn.call(console, _t);
}
e._mjrVersionUpdateCleanup = null;
try {
- ve && clearTimeout(ve), ve = null;
- } catch (Pt) {
- (Li = console.debug) == null || Li.call(console, Pt);
+ Le && clearTimeout(Le), Le = null;
+ } catch (_t) {
+ (Yi = console.debug) == null || Yi.call(console, _t);
}
try {
Nn.dispose();
- } catch (Pt) {
- (Yi = console.debug) == null || Yi.call(console, Pt);
+ } catch (_t) {
+ (ki = console.debug) == null || ki.call(console, _t);
}
try {
ae.dispose();
- } catch (Pt) {
- (fi = console.debug) == null || fi.call(console, Pt);
+ } catch (_t) {
+ (Ji = console.debug) == null || Ji.call(console, _t);
}
- Wo().scope === "grid" && Zr(null);
+ Mo().scope === "grid" && wr(null);
try {
- (Vi = xn == null ? void 0 : xn.dispose) == null || Vi.call(xn);
- } catch (Pt) {
- (vr = console.debug) == null || vr.call(console, Pt);
+ (ci = xn == null ? void 0 : xn.dispose) == null || ci.call(xn);
+ } catch (_t) {
+ (Ci = console.debug) == null || Ci.call(console, _t);
}
try {
- _t == null || _t();
- } catch (Pt) {
- (Lr = console.debug) == null || Lr.call(console, Pt);
+ en == null || en();
+ } catch (_t) {
+ (Yr = console.debug) == null || Yr.call(console, _t);
}
try {
- fe == null || fe();
- } catch (Pt) {
- (Yr = console.debug) == null || Yr.call(console, Pt);
+ he == null || he();
+ } catch (_t) {
+ (kr = console.debug) == null || kr.call(console, _t);
}
- fe = null;
+ he = null;
try {
- (Vr = Ft == null ? void 0 : Ft.dispose) == null || Vr.call(Ft);
- } catch (Pt) {
- (Ht = console.debug) == null || Ht.call(console, Pt);
+ (Xr = Xt == null ? void 0 : Xt.dispose) == null || Xr.call(Xt);
+ } catch (_t) {
+ (Ht = console.debug) == null || Ht.call(console, _t);
}
try {
- ($n = He == null ? void 0 : He.dispose) == null || $n.call(He);
- } catch (Pt) {
- (qn = console.debug) == null || qn.call(console, Pt);
+ ($n = Pe == null ? void 0 : Pe.dispose) == null || $n.call(Pe);
+ } catch (_t) {
+ (qn = console.debug) == null || qn.call(console, _t);
}
try {
- en && clearInterval(en), en = null;
- } catch (Pt) {
- (Ml = console.debug) == null || Ml.call(console, Pt);
+ Zt && clearInterval(Zt), Zt = null;
+ } catch (_t) {
+ (Sl = console.debug) == null || Sl.call(console, _t);
}
try {
- un && clearTimeout(un), un = null;
- } catch (Pt) {
- (Sl = console.debug) == null || Sl.call(console, Pt);
+ tn && clearTimeout(tn), tn = null;
+ } catch (_t) {
+ (Gl = console.debug) == null || Gl.call(console, _t);
}
try {
- (yd = ie == null ? void 0 : ie.dispose) == null || yd.call(ie);
- } catch (Pt) {
- (fd = console.debug) == null || fd.call(console, Pt);
+ (hd = ne == null ? void 0 : ne.dispose) == null || hd.call(ne);
+ } catch (_t) {
+ (Cd = console.debug) == null || Cd.call(console, _t);
}
- ie = null;
+ ne = null;
try {
- (hd = re == null ? void 0 : re.dispose) == null || hd.call(re);
- } catch (Pt) {
- (Cd = console.debug) == null || Cd.call(console, Pt);
+ (Zd = re == null ? void 0 : re.dispose) == null || Zd.call(re);
+ } catch (_t) {
+ (Ad = console.debug) == null || Ad.call(console, _t);
}
re = null;
try {
- (Zd = ue == null ? void 0 : ue._mjrSummaryBarDispose) == null || Zd.call(ue);
- } catch (Pt) {
- (Ad = console.debug) == null || Ad.call(console, Pt);
+ (Wd = me == null ? void 0 : me._mjrSummaryBarDispose) == null || Wd.call(me);
+ } catch (_t) {
+ (wd = console.debug) == null || wd.call(console, _t);
}
try {
- (Wd = (Gl = ue == null ? void 0 : ue._mjrSummaryBarObserver) == null ? void 0 : Gl.disconnect) == null || Wd.call(Gl);
- } catch (Pt) {
- (wd = console.debug) == null || wd.call(console, Pt);
+ (Md = (xl = me == null ? void 0 : me._mjrSummaryBarObserver) == null ? void 0 : xl.disconnect) == null || Md.call(xl);
+ } catch (_t) {
+ (Sd = console.debug) == null || Sd.call(console, _t);
}
try {
- (Md = ue == null ? void 0 : ue._mjrGridContextMenuUnbind) == null || Md.call(ue);
- } catch (Pt) {
- (Sd = console.debug) == null || Sd.call(console, Pt);
+ (Gd = me == null ? void 0 : me._mjrGridContextMenuUnbind) == null || Gd.call(me);
+ } catch (_t) {
+ (xd = console.debug) == null || xd.call(console, _t);
}
try {
- St == null || St();
- } catch (Pt) {
- (Gd = console.debug) == null || Gd.call(console, Pt);
+ Gt == null || Gt();
+ } catch (_t) {
+ (jd = console.debug) == null || jd.call(console, _t);
}
try {
- tn == null || tn();
- } catch (Pt) {
- (xd = console.debug) == null || xd.call(console, Pt);
+ vt == null || vt();
+ } catch (_t) {
+ (vd = console.debug) == null || vd.call(console, _t);
}
try {
- } catch (Pt) {
- (jd = console.debug) == null || jd.call(console, Pt);
+ } catch (_t) {
+ (Ld = console.debug) == null || Ld.call(console, _t);
}
try {
- ue && Ct(ue);
- } catch (Pt) {
- (vd = console.debug) == null || vd.call(console, Pt);
+ me && Wt(me);
+ } catch (_t) {
+ (Vd = console.debug) == null || Vd.call(console, _t);
}
- xa(ue), ue = null;
+ ja(me), me = null;
try {
o.dispose();
- } catch (Pt) {
- (Ld = console.debug) == null || Ld.call(console, Pt);
+ } catch (_t) {
+ (Yd = console.debug) == null || Yd.call(console, _t);
}
try {
e._mjrPopoverManager === o && (e._mjrPopoverManager = null);
- } catch (Pt) {
- (Yd = console.debug) == null || Yd.call(console, Pt);
+ } catch (_t) {
+ (kd = console.debug) == null || kd.call(console, _t);
}
try {
r && l && (r.style.height = l.height, r.style.minHeight = l.minHeight, r.style.width = l.width);
- } catch (Pt) {
- (Vd = console.debug) == null || Vd.call(console, Pt);
+ } catch (_t) {
+ (Xd = console.debug) == null || Xd.call(console, _t);
}
};
- const je = async () => {
- var Le;
- await ((Le = ie == null ? void 0 : ie.queuedReload) == null ? void 0 : Le.call(ie));
- }, Ne = ((An = ie == null ? void 0 : ie.createCountersUpdateHandler) == null ? void 0 : An.call(ie, {
+ const ve = async () => {
+ var Ve;
+ await ((Ve = ne == null ? void 0 : ne.queuedReload) == null ? void 0 : Ve.call(ne));
+ }, Fe = ((An = ne == null ? void 0 : ne.createCountersUpdateHandler) == null ? void 0 : An.call(ne, {
state: a,
getStableQuery: () => {
- var Le;
- return String(((Le = ue == null ? void 0 : ue.dataset) == null ? void 0 : Le.mjrQuery) || "*").trim() || "*";
+ var Ve;
+ return String(((Ve = me == null ? void 0 : me.dataset) == null ? void 0 : Ve.mjrQuery) || "*").trim() || "*";
},
getRecentUserInteractionAt: () => Number(Ot || 0)
})) ?? (async () => {
- await je();
+ await ve();
});
- q0(
+ _0(
Ue,
- Ee,
- Qe,
- Re,
- Ne,
+ Te,
+ qe,
+ Oe,
+ Fe,
() => ({
scope: c.read("scope", a.scope),
customRootId: c.read("customRootId", a.customRootId)
})
- ), Oe.setActiveTabStyles(), (vn = Wt == null ? void 0 : Wt.renderBreadcrumb) == null || vn.call(Wt), Yt.refreshCustomRoots().catch(() => {
- }), fe = (dn = ie == null ? void 0 : ie.bindSearchInput) == null ? void 0 : dn.call(ie, {
- searchInputEl: de,
+ ), pe.setActiveTabStyles(), (vn = Pt == null ? void 0 : Pt.renderBreadcrumb) == null || vn.call(Pt), Yt.refreshCustomRoots().catch(() => {
+ }), he = (un = ne == null ? void 0 : ne.bindSearchInput) == null ? void 0 : un.call(ne, {
+ searchInputEl: se,
lifecycleSignal: (i == null ? void 0 : i.signal) || null,
debounceMs: 120,
onQueryChanged: () => {
- Vn({ reload: !1 }), me();
+ Yn({ reload: !1 }), Ie();
},
onBeforeReload: () => {
- Vn({ reload: !1 }), me();
+ Yn({ reload: !1 }), Ie();
},
startSearchTimer: () => {
- us("searchQuery");
+ gs("searchQuery");
},
reloadGrid: () => {
- be.reloadGrid();
+ We.reloadGrid();
}
});
- let $e = !1;
+ let _e = !1;
try {
- $e = await gt(
- ue,
+ _e = await mt(
+ me,
{
scope: s("scope", a.scope || "output") || "output",
query: String(
- ys(
+ hs(
c.read("searchQuery", a.searchQuery || "*") || "*"
) || "*"
),
@@ -35381,53 +35434,53 @@ async function m2(e, { useComfyThemeUI: t = !0, external: n = {} } = {}) {
title: s("collectionName", a.collectionName || "") || c.read("searchQuery", a.searchQuery || "") || "Cached"
}
);
- } catch (Le) {
- (Mn = console.debug) == null || Mn.call(console, Le);
+ } catch (Ve) {
+ (Mn = console.debug) == null || Mn.call(console, Ve);
}
let et = !1;
try {
- et = !!((yn = ue == null ? void 0 : ue.querySelector) != null && yn.call(ue, ".mjr-asset-card"));
- } catch (Le) {
- (Ut = console.debug) == null || Ut.call(console, Le);
+ et = !!((yn = me == null ? void 0 : me.querySelector) != null && yn.call(me, ".mjr-asset-card"));
+ } catch (Ve) {
+ (Ut = console.debug) == null || Ut.call(console, Ve);
}
- const tt = $e || et ? Promise.resolve({
+ const tt = _e || et ? Promise.resolve({
ok: !0,
- hydrated: !!$e,
+ hydrated: !!_e,
cached: !!et
- }) : be.reloadGrid();
+ }) : We.reloadGrid();
try {
- await Xe();
- } catch (Le) {
- (Tt = console.debug) == null || Tt.call(console, Le);
+ await Ne();
+ } catch (Ve) {
+ (Jt = console.debug) == null || Jt.call(console, Ve);
}
try {
- en = setInterval(() => {
- var Le, it;
+ Zt = setInterval(() => {
+ var Ve, it;
try {
- if ((Le = i == null ? void 0 : i.signal) != null && Le.aborted) return;
- } catch (Vt) {
- (it = console.debug) == null || it.call(console, Vt);
+ if ((Ve = i == null ? void 0 : i.signal) != null && Ve.aborted) return;
+ } catch (xt) {
+ (it = console.debug) == null || it.call(console, xt);
}
- Xe().catch(() => {
+ Ne().catch(() => {
});
}, 15e3);
- } catch (Le) {
- (io = console.debug) == null || io.call(console, Le);
+ } catch (Ve) {
+ (ro = console.debug) == null || ro.call(console, Ve);
}
- (oo = ie == null ? void 0 : ie.restoreUiState) == null || oo.call(ie, tt);
+ (lo = ne == null ? void 0 : ne.restoreUiState) == null || lo.call(ne, tt);
try {
window.__mjrLastAssetUpsert = 0, window.__mjrLastAssetUpsertCount = 0;
- } catch (Le) {
- (ro = console.debug) == null || ro.call(console, Le);
+ } catch (Ve) {
+ (ao = console.debug) == null || ao.call(console, Ve);
}
- un = ((yi = ie == null ? void 0 : ie.scheduleAutoLoad) == null ? void 0 : yi.call(ie, tt, 2e3)) ?? null;
- const ct = Vb("panelRender", "gridRender");
- return Xb(ct), { gridContainer: ue };
+ tn = ((hi = ne == null ? void 0 : ne.scheduleAutoLoad) == null ? void 0 : hi.call(ne, tt, 2e3)) ?? null;
+ const st = kb("panelRender", "gridRender");
+ return Nb(st), { gridContainer: me };
}
-const g2 = {
+const p2 = {
__name: "StatusSection",
setup(e, { expose: t }) {
- const n = X0({ getScanContext: null }), i = n.querySelector("#mjr-status-dot"), o = n.querySelector("#mjr-status-text"), r = n.querySelector("#mjr-status-capabilities");
+ const n = F0({ getScanContext: null }), i = n.querySelector("#mjr-status-dot"), o = n.querySelector("#mjr-status-text"), r = n.querySelector("#mjr-status-capabilities");
return _n(() => {
var l;
try {
@@ -35436,7 +35489,7 @@ const g2 = {
}
}), t({ statusSection: n, statusDot: i, statusText: o, capabilitiesSection: r }), (l, a) => null;
}
-}, I2 = { class: "mjr-am-search-pill" }, b2 = ["placeholder", "title", "list"], p2 = ["id"], y2 = { class: "mjr-am-search-tools" }, f2 = { class: "mjr-popover-anchor" }, h2 = ["disabled", "aria-disabled", "title"], C2 = { class: "mjr-popover-anchor" }, Z2 = ["title"], vm = "Ctrl/Cmd+F, Ctrl/Cmd+K, Ctrl/Cmd+H", A2 = {
+}, y2 = { class: "mjr-am-search-pill" }, f2 = ["placeholder", "title", "list"], h2 = ["id"], C2 = { class: "mjr-am-search-tools" }, Z2 = { class: "mjr-popover-anchor" }, A2 = ["disabled", "aria-disabled", "title"], W2 = { class: "mjr-popover-anchor" }, w2 = ["title"], Vm = "Ctrl/Cmd+F, Ctrl/Cmd+K, Ctrl/Cmd+H", M2 = {
__name: "SearchBar",
props: {
/** Callback when similar search is triggered */
@@ -35444,19 +35497,19 @@ const g2 = {
},
emits: ["similar", "search-change"],
setup(e, { expose: t, emit: n }) {
- const i = e, o = n, r = Mo(), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae(null), d = Ae(null), u = Ys("mjr-search-autocomplete-", 8), I = Ae(!1), p = Ae(!0), M = Je(() => I.value ? m("search.semanticPlaceholder", "Describe what you're looking for...") : m("search.placeholder", "Search assets...")), Z = Je(() => I.value ? Wr(
+ const i = e, o = n, r = Go(), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae(null), d = Ae(null), u = ks("mjr-search-autocomplete-", 8), I = Ae(!1), p = Ae(!0), S = ze(() => I.value ? m("search.semanticPlaceholder", "Describe what you're looking for...") : m("search.placeholder", "Search assets...")), A = ze(() => I.value ? Sr(
m(
"search.semanticTitle",
"AI semantic search β describe your image in natural language"
),
- vm
- ) : Wr(
+ Vm
+ ) : Sr(
m(
"search.title",
"Search by filename, tags, or attributes (e.g. rating:5, ext:png)"
),
- vm
- )), A = Je(() => I.value ? {
+ Vm
+ )), C = ze(() => I.value ? {
background: "rgba(0, 188, 212, 0.2)",
borderColor: "rgba(0, 188, 212, 0.6)",
color: "#00BCD4",
@@ -35467,65 +35520,65 @@ const g2 = {
color: "rgba(0, 188, 212, 0.5)",
boxShadow: "none"
}), g = () => {
- var S;
+ var G;
try {
if (!a.value) return;
a.value.dataset.mjrSemanticMode = I.value ? "1" : "0";
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, h = (S = {}) => {
+ }, Z = (G = {}) => {
var W;
o("search-change", {
query: ((W = a.value) == null ? void 0 : W.value) || "",
semantic: I.value,
- ...S
+ ...G
});
}, f = () => {
- var S, W, y;
+ var G, W, y;
if (p.value) {
I.value = !I.value, g();
try {
- (W = (S = a.value) == null ? void 0 : S.dispatchEvent) == null || W.call(S, new Event("input", { bubbles: !0 }));
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ (W = (G = a.value) == null ? void 0 : G.dispatchEvent) == null || W.call(G, new Event("input", { bubbles: !0 }));
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
- h({ semantic: I.value });
+ Z({ semantic: I.value });
}
- }, b = async (S) => {
- const W = S.target.value || "";
- r.searchQuery = W, g(), h({ query: W }), await v();
- }, v = Pc(async () => {
+ }, b = async (G) => {
+ const W = G.target.value || "";
+ r.searchQuery = W, g(), Z({ query: W }), await L();
+ }, L = _c(async () => {
var W;
- const S = (((W = a.value) == null ? void 0 : W.value) || "").trim();
- if (!(I.value || S.length < 2 || S.includes(":")))
+ const G = (((W = a.value) == null ? void 0 : W.value) || "").trim();
+ if (!(I.value || G.length < 2 || G.includes(":")))
try {
- const y = await Rt("/mjr/am/autocomplete", { q: S, limit: 10 });
- y && y.ok && Array.isArray(y.data) && (c.value.innerHTML = "", y.data.forEach((k) => {
- const G = document.createElement("option");
- G.value = k, c.value.appendChild(G);
+ const y = await Ft("/mjr/am/autocomplete", { q: G, limit: 10 });
+ y && y.ok && Array.isArray(y.data) && (c.value.innerHTML = "", y.data.forEach((X) => {
+ const x = document.createElement("option");
+ x.value = X, c.value.appendChild(x);
}));
} catch {
}
- }, 300), C = () => {
- var S;
- o("similar"), (S = i.onSimilarSearch) == null || S.call(i);
+ }, 300), h = () => {
+ var G;
+ o("similar"), (G = i.onSimilarSearch) == null || G.call(i);
};
- return an(
+ return cn(
() => r.searchQuery,
- (S) => {
- a.value && a.value.value !== S && (a.value.value = S);
+ (G) => {
+ a.value && a.value.value !== G && (a.value.value = G);
}
- ), an(p, (S) => {
- !S && I.value && (I.value = !1), g();
- }), an(I, () => {
+ ), cn(p, (G) => {
+ !G && I.value && (I.value = !1), g();
+ }), cn(I, () => {
g();
}), Dn(() => {
- var S;
+ var G;
try {
a.value && (a.value.value = r.searchQuery || "");
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
g();
}), t({
@@ -35541,80 +35594,80 @@ const g2 = {
get semanticBtn() {
return d.value;
},
- setSemanticEnabled: (S) => {
- p.value = !!S, g();
+ setSemanticEnabled: (G) => {
+ p.value = !!G, g();
}
- }), (S, W) => (Ie(), he("div", {
+ }), (G, W) => (be(), Ce("div", {
ref_key: "searchSectionRef",
ref: l,
class: "mjr-am-search"
}, [
- ne("div", I2, [
- W[0] || (W[0] = ne("span", { class: "mjr-am-search-icon" }, [
- ne("i", { class: "pi pi-search" })
+ ie("div", y2, [
+ W[0] || (W[0] = ie("span", { class: "mjr-am-search-icon" }, [
+ ie("i", { class: "pi pi-search" })
], -1)),
- ne("input", {
+ ie("input", {
ref_key: "searchInputRef",
ref: a,
type: "text",
id: "mjr-search-input",
class: "mjr-input",
- placeholder: M.value,
- title: Z.value,
- list: Ge(u),
+ placeholder: S.value,
+ title: A.value,
+ list: xe(u),
onInput: b
- }, null, 40, b2),
- ne("datalist", {
+ }, null, 40, f2),
+ ie("datalist", {
ref_key: "dataListRef",
ref: c,
- id: Ge(u)
- }, null, 8, p2)
+ id: xe(u)
+ }, null, 8, h2)
]),
- ne("div", y2, [
- ne("div", f2, [
- ne("button", {
+ ie("div", C2, [
+ ie("div", Z2, [
+ ie("button", {
ref_key: "semanticBtnRef",
ref: d,
type: "button",
class: "mjr-icon-btn mjr-ai-control",
disabled: !p.value,
"aria-disabled": !p.value,
- title: p.value ? Ge(m)("search.semanticToggle", "Toggle AI semantic search (CLIP-based)") : Ge(m)("search.semanticDisabled", "AI semantic search is disabled in settings"),
- style: vt(A.value),
+ title: p.value ? xe(m)("search.semanticToggle", "Toggle AI semantic search (CLIP-based)") : xe(m)("search.semanticDisabled", "AI semantic search is disabled in settings"),
+ style: Lt(C.value),
onClick: f
}, [...W[1] || (W[1] = [
- ne("i", { class: "pi pi-sparkles" }, null, -1)
- ])], 12, h2)
+ ie("i", { class: "pi pi-sparkles" }, null, -1)
+ ])], 12, A2)
]),
- ne("div", C2, [
- ne("button", {
+ ie("div", W2, [
+ ie("button", {
ref_key: "similarBtnRef",
ref: s,
type: "button",
class: "mjr-icon-btn mjr-ai-control",
- title: Ge(m)("search.findSimilar", "Find Similar"),
- onClick: C
+ title: xe(m)("search.findSimilar", "Find Similar"),
+ onClick: h
}, [...W[2] || (W[2] = [
- ne("i", { class: "pi pi-clone" }, null, -1)
- ])], 8, Z2)
+ ie("i", { class: "pi pi-clone" }, null, -1)
+ ])], 8, w2)
]),
- xl(S.$slots, "filter-anchor"),
- xl(S.$slots, "sort-anchor"),
- xl(S.$slots, "collections-anchor"),
- xl(S.$slots, "pinned-folders-anchor")
+ jl(G.$slots, "filter-anchor"),
+ jl(G.$slots, "sort-anchor"),
+ jl(G.$slots, "collections-anchor"),
+ jl(G.$slots, "pinned-folders-anchor")
])
], 512));
}
-}, W2 = {
+}, S2 = {
class: "mjr-popover mjr-sort-popover",
style: { display: "none" }
-}, w2 = {
+}, G2 = {
class: "mjr-menu",
style: { display: "grid", gap: "6px" }
-}, M2 = ["onClick"], S2 = { class: "mjr-menu-item-label" }, G2 = {
+}, x2 = ["onClick"], j2 = { class: "mjr-menu-item-label" }, v2 = {
__name: "SortPopover",
setup(e) {
- const t = Mo(), n = Je(() => [
+ const t = Go(), n = ze(() => [
{ key: "mtime_desc", label: m("sort.newest"), icon: "pi pi-sort-amount-down" },
{ key: "mtime_asc", label: m("sort.oldest"), icon: "pi pi-sort-amount-up-alt" },
{ key: "name_asc", label: m("sort.nameAZ"), icon: "pi pi-sort-alpha-down" },
@@ -35622,7 +35675,7 @@ const g2 = {
{ key: "rating_desc", label: m("sort.ratingHigh"), icon: "pi pi-star-fill" },
{ key: "size_desc", label: m("sort.sizeDesc"), icon: "pi pi-sort-numeric-down-alt" },
{ key: "size_asc", label: m("sort.sizeAsc"), icon: "pi pi-sort-numeric-up-alt" }
- ]), i = Je(() => t.sort || "mtime_desc"), o = (r) => {
+ ]), i = ze(() => t.sort || "mtime_desc"), o = (r) => {
var l;
t.sort = r;
try {
@@ -35631,107 +35684,107 @@ const g2 = {
(l = console.debug) == null || l.call(console, a);
}
};
- return (r, l) => (Ie(), he("div", W2, [
- ne("div", w2, [
- (Ie(!0), he(Xt, null, Cn(n.value, (a) => (Ie(), he("button", {
+ return (r, l) => (be(), Ce("div", S2, [
+ ie("div", G2, [
+ (be(!0), Ce(Nt, null, Cn(n.value, (a) => (be(), Ce("button", {
key: a.key,
type: "button",
class: Zn(["mjr-menu-item", { "is-active": i.value === a.key }]),
onClick: (c) => o(a.key)
}, [
- ne("span", S2, Ye(a.label), 1),
- ne("i", {
+ ie("span", j2, Ye(a.label), 1),
+ ie("i", {
class: Zn([a.icon, "mjr-menu-item-check"]),
- style: vt({ opacity: i.value === a.key ? 1 : 0 })
+ style: Lt({ opacity: i.value === a.key ? 1 : 0 })
}, null, 6)
- ], 10, M2))), 128))
+ ], 10, x2))), 128))
])
]));
}
-}, x2 = {
+}, L2 = {
class: "mjr-popover mjr-filter-popover",
style: { display: "none" }
-}, j2 = ["aria-expanded"], v2 = { class: "mjr-filter-group-title" }, L2 = {
+}, V2 = ["aria-expanded"], Y2 = { class: "mjr-filter-group-title" }, k2 = {
class: "mjr-filter-group-chevron",
"aria-hidden": "true"
-}, Y2 = { class: "mjr-filter-group-body" }, V2 = { class: "mjr-popover-row" }, k2 = { class: "mjr-popover-label" }, X2 = ["title", "value"], N2 = { value: "" }, R2 = { value: "image" }, F2 = { value: "video" }, O2 = { value: "audio" }, z2 = { class: "mjr-popover-row" }, J2 = { class: "mjr-popover-label" }, T2 = ["title"], B2 = ["checked"], U2 = { class: "mjr-popover-row" }, K2 = { class: "mjr-popover-label" }, D2 = ["value"], E2 = { value: "" }, H2 = { class: "mjr-popover-row" }, q2 = { class: "mjr-popover-label" }, P2 = ["title", "value"], Q2 = { value: "0" }, _2 = ["aria-expanded"], $2 = { class: "mjr-filter-group-title" }, eS = {
+}, X2 = { class: "mjr-filter-group-body" }, N2 = { class: "mjr-popover-row" }, R2 = { class: "mjr-popover-label" }, F2 = ["title", "value"], O2 = { value: "" }, z2 = { value: "image" }, J2 = { value: "video" }, T2 = { value: "audio" }, B2 = { class: "mjr-popover-row" }, U2 = { class: "mjr-popover-label" }, K2 = ["title"], D2 = ["checked"], E2 = { class: "mjr-popover-row" }, H2 = { class: "mjr-popover-label" }, q2 = ["value"], P2 = { value: "" }, Q2 = { class: "mjr-popover-row" }, _2 = { class: "mjr-popover-label" }, $2 = ["title", "value"], eS = { value: "0" }, tS = ["aria-expanded"], nS = { class: "mjr-filter-group-title" }, iS = {
class: "mjr-filter-group-chevron",
"aria-hidden": "true"
-}, tS = { class: "mjr-filter-group-body" }, nS = { class: "mjr-popover-row mjr-popover-row--3col" }, iS = { class: "mjr-popover-label" }, oS = ["placeholder", "value"], rS = ["placeholder", "value"], lS = { class: "mjr-popover-row" }, aS = { class: "mjr-popover-label" }, cS = ["value"], sS = { value: "" }, dS = { class: "mjr-popover-row mjr-popover-row--3col" }, uS = { class: "mjr-popover-label" }, mS = ["placeholder", "title", "value"], gS = ["placeholder", "title", "value"], IS = { class: "mjr-popover-row mjr-popover-row--3col" }, bS = { class: "mjr-popover-label" }, pS = ["placeholder", "title", "value"], yS = ["placeholder", "title", "value"], fS = ["aria-expanded"], hS = { class: "mjr-filter-group-title" }, CS = {
+}, oS = { class: "mjr-filter-group-body" }, rS = { class: "mjr-popover-row mjr-popover-row--3col" }, lS = { class: "mjr-popover-label" }, aS = ["placeholder", "value"], cS = ["placeholder", "value"], sS = { class: "mjr-popover-row" }, dS = { class: "mjr-popover-label" }, uS = ["value"], mS = { value: "" }, gS = { class: "mjr-popover-row mjr-popover-row--3col" }, IS = { class: "mjr-popover-label" }, bS = ["placeholder", "title", "value"], pS = ["placeholder", "title", "value"], yS = { class: "mjr-popover-row mjr-popover-row--3col" }, fS = { class: "mjr-popover-label" }, hS = ["placeholder", "title", "value"], CS = ["placeholder", "title", "value"], ZS = ["aria-expanded"], AS = { class: "mjr-filter-group-title" }, WS = {
class: "mjr-filter-group-chevron",
"aria-hidden": "true"
-}, ZS = { class: "mjr-filter-group-body" }, AS = { class: "mjr-popover-row" }, WS = { class: "mjr-popover-label" }, wS = ["title", "value"], MS = { value: "" }, SS = { value: "today" }, GS = { value: "this_week" }, xS = { value: "this_month" }, jS = { class: "mjr-popover-row" }, vS = { class: "mjr-popover-label" }, LS = ["value"], YS = {
+}, wS = { class: "mjr-filter-group-body" }, MS = { class: "mjr-popover-row" }, SS = { class: "mjr-popover-label" }, GS = ["title", "value"], xS = { value: "" }, jS = { value: "today" }, vS = { value: "this_week" }, LS = { value: "this_month" }, VS = { class: "mjr-popover-row" }, YS = { class: "mjr-popover-label" }, kS = ["value"], XS = {
__name: "FilterPopover",
setup(e, { expose: t }) {
- const n = Mo(), i = Ae(null), o = Ae(null), r = Ae(null), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae(null), d = Ae(null), u = Ae(null), I = Ae(null), p = Ae(null), M = Ae(null), Z = Ae(null), A = Ae(null), g = Ae({
+ const n = Go(), i = Ae(null), o = Ae(null), r = Ae(null), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae(null), d = Ae(null), u = Ae(null), I = Ae(null), p = Ae(null), S = Ae(null), A = Ae(null), C = Ae(null), g = Ae({
core: !1,
media: !1,
time: !1
- }), h = Je(() => {
- const R = Number(n.minWidth || 0) || 0, j = Number(n.minHeight || 0) || 0;
- return R >= 3840 && j >= 2160 ? "uhd" : R >= 2560 && j >= 1440 ? "qhd" : R >= 1920 && j >= 1080 ? "fhd" : R >= 1280 && j >= 720 ? "hd" : "";
- }), f = Je(() => {
- const R = String(n.dateExactFilter || "").trim().length > 0;
+ }), Z = ze(() => {
+ const F = Number(n.minWidth || 0) || 0, N = Number(n.minHeight || 0) || 0;
+ return F >= 3840 && N >= 2160 ? "uhd" : F >= 2560 && N >= 1440 ? "qhd" : F >= 1920 && N >= 1080 ? "fhd" : F >= 1280 && N >= 720 ? "hd" : "";
+ }), f = ze(() => {
+ const F = String(n.dateExactFilter || "").trim().length > 0;
return {
- "mjr-agenda-filled": R,
- "mjr-agenda-empty": !R
+ "mjr-agenda-filled": F,
+ "mjr-agenda-empty": !F
};
- }), b = (R) => {
- const j = String(R ?? "").trim();
- if (!j) return 0;
- const L = j.replace(",", "."), N = Number(L);
- return Number.isFinite(N) ? N : 0;
- }, v = () => {
- var R;
+ }), b = (F) => {
+ const N = String(F ?? "").trim();
+ if (!N) return 0;
+ const V = N.replace(",", "."), k = Number(V);
+ return Number.isFinite(k) ? k : 0;
+ }, L = () => {
+ var F;
try {
window.dispatchEvent(new CustomEvent("mjr:filters-changed"));
- } catch (j) {
- (R = console.debug) == null || R.call(console, j);
+ } catch (N) {
+ (F = console.debug) == null || F.call(console, N);
}
- }, C = (R) => {
- var j;
- n.kindFilter = String(((j = R == null ? void 0 : R.target) == null ? void 0 : j.value) || ""), v();
- }, S = (R) => {
- var j;
- n.workflowOnly = !!((j = R == null ? void 0 : R.target) != null && j.checked), v();
- }, W = (R) => {
- var j;
- n.workflowType = String(((j = R == null ? void 0 : R.target) == null ? void 0 : j.value) || "").trim().toUpperCase(), v();
- }, y = (R) => {
- var j;
- n.minRating = Number(((j = R == null ? void 0 : R.target) == null ? void 0 : j.value) || 0) || 0, v();
- }, k = () => {
- var L, N;
- const R = b(((L = a.value) == null ? void 0 : L.value) || 0);
- let j = b(((N = c.value) == null ? void 0 : N.value) || 0);
- j > 0 && R > 0 && j < R && (j = R, c.value && (c.value.value = String(j))), n.minSizeMB = R > 0 ? R : 0, n.maxSizeMB = j > 0 ? j : 0, v();
- }, G = () => {
- var q, O, B, J;
- const R = Math.max(0, Math.round(b(((q = d.value) == null ? void 0 : q.value) || 0))), j = Math.max(0, Math.round(b(((O = u.value) == null ? void 0 : O.value) || 0)));
- let L = Math.max(0, Math.round(b(((B = I.value) == null ? void 0 : B.value) || 0))), N = Math.max(0, Math.round(b(((J = p.value) == null ? void 0 : J.value) || 0)));
- L > 0 && R > 0 && L < R && (L = R, I.value && (I.value.value = String(L))), N > 0 && j > 0 && N < j && (N = j, p.value && (p.value.value = String(N))), n.minWidth = R, n.minHeight = j, n.maxWidth = L, n.maxHeight = N, v();
- }, z = (R) => {
- var O;
- const j = String(((O = R == null ? void 0 : R.target) == null ? void 0 : O.value) || "").trim(), L = {
+ }, h = (F) => {
+ var N;
+ n.kindFilter = String(((N = F == null ? void 0 : F.target) == null ? void 0 : N.value) || ""), L();
+ }, G = (F) => {
+ var N;
+ n.workflowOnly = !!((N = F == null ? void 0 : F.target) != null && N.checked), L();
+ }, W = (F) => {
+ var N;
+ n.workflowType = String(((N = F == null ? void 0 : F.target) == null ? void 0 : N.value) || "").trim().toUpperCase(), L();
+ }, y = (F) => {
+ var N;
+ n.minRating = Number(((N = F == null ? void 0 : F.target) == null ? void 0 : N.value) || 0) || 0, L();
+ }, X = () => {
+ var V, k;
+ const F = b(((V = a.value) == null ? void 0 : V.value) || 0);
+ let N = b(((k = c.value) == null ? void 0 : k.value) || 0);
+ N > 0 && F > 0 && N < F && (N = F, c.value && (c.value.value = String(N))), n.minSizeMB = F > 0 ? F : 0, n.maxSizeMB = N > 0 ? N : 0, L();
+ }, x = () => {
+ var K, z, B, J;
+ const F = Math.max(0, Math.round(b(((K = d.value) == null ? void 0 : K.value) || 0))), N = Math.max(0, Math.round(b(((z = u.value) == null ? void 0 : z.value) || 0)));
+ let V = Math.max(0, Math.round(b(((B = I.value) == null ? void 0 : B.value) || 0))), k = Math.max(0, Math.round(b(((J = p.value) == null ? void 0 : J.value) || 0)));
+ V > 0 && F > 0 && V < F && (V = F, I.value && (I.value.value = String(V))), k > 0 && N > 0 && k < N && (k = N, p.value && (p.value.value = String(k))), n.minWidth = F, n.minHeight = N, n.maxWidth = V, n.maxHeight = k, L();
+ }, T = (F) => {
+ var z;
+ const N = String(((z = F == null ? void 0 : F.target) == null ? void 0 : z.value) || "").trim(), V = {
hd: [1280, 720],
fhd: [1920, 1080],
qhd: [2560, 1440],
uhd: [3840, 2160]
- }, [N, q] = L[j] || [0, 0];
- n.minWidth = Number(N || 0), n.minHeight = Number(q || 0), n.maxWidth = 0, n.maxHeight = 0, d.value && (d.value.value = n.minWidth || ""), u.value && (u.value.value = n.minHeight || ""), I.value && (I.value.value = ""), p.value && (p.value.value = ""), v();
- }, x = (R) => {
- var j;
- n.dateRangeFilter = String(((j = R == null ? void 0 : R.target) == null ? void 0 : j.value) || ""), n.dateRangeFilter && n.dateExactFilter && (n.dateExactFilter = "", A.value && (A.value.value = "")), v();
- }, w = (R) => {
- var j;
- n.dateExactFilter = String(((j = R == null ? void 0 : R.target) == null ? void 0 : j.value) || "").trim(), v();
- }, X = (R) => {
- const j = String(R || "").trim().toLowerCase();
- !j || !(j in g.value) || (g.value = {
+ }, [k, K] = V[N] || [0, 0];
+ n.minWidth = Number(k || 0), n.minHeight = Number(K || 0), n.maxWidth = 0, n.maxHeight = 0, d.value && (d.value.value = n.minWidth || ""), u.value && (u.value.value = n.minHeight || ""), I.value && (I.value.value = ""), p.value && (p.value.value = ""), L();
+ }, v = (F) => {
+ var N;
+ n.dateRangeFilter = String(((N = F == null ? void 0 : F.target) == null ? void 0 : N.value) || ""), n.dateRangeFilter && n.dateExactFilter && (n.dateExactFilter = "", C.value && (C.value.value = "")), L();
+ }, w = (F) => {
+ var N;
+ n.dateExactFilter = String(((N = F == null ? void 0 : F.target) == null ? void 0 : N.value) || "").trim(), L();
+ }, R = (F) => {
+ const N = String(F || "").trim().toLowerCase();
+ !N || !(N in g.value) || (g.value = {
...g.value,
- [j]: !g.value[j]
+ [N]: !g.value[N]
});
- }, V = (R) => !!g.value[String(R || "").trim().toLowerCase()];
+ }, Y = (F) => !!g.value[String(F || "").trim().toLowerCase()];
return t({
get kindSelect() {
return i.value;
@@ -35767,258 +35820,258 @@ const g2 = {
return p.value;
},
get dateRangeSelect() {
- return M.value;
+ return S.value;
},
get dateExactInput() {
- return A.value;
+ return C.value;
},
get agendaContainer() {
- return Z.value;
+ return A.value;
}
- }), (R, j) => (Ie(), he("div", x2, [
- ne("div", {
- class: Zn(["mjr-filter-group", { "is-open": V("core") }])
+ }), (F, N) => (be(), Ce("div", L2, [
+ ie("div", {
+ class: Zn(["mjr-filter-group", { "is-open": Y("core") }])
}, [
- ne("button", {
+ ie("button", {
type: "button",
class: "mjr-filter-group-toggle",
- "aria-expanded": String(V("core")),
- onClick: j[0] || (j[0] = (L) => X("core"))
+ "aria-expanded": String(Y("core")),
+ onClick: N[0] || (N[0] = (V) => R("core"))
}, [
- ne("span", v2, Ye(Ge(m)("group.core", "Core")), 1),
- ne("span", L2, Ye(V("core") ? "βΎ" : "βΈ"), 1)
- ], 8, j2),
- Bo(ne("div", Y2, [
- ne("div", V2, [
- ne("div", k2, Ye(Ge(m)("label.type")), 1),
- ne("select", {
+ ie("span", Y2, Ye(xe(m)("group.core", "Core")), 1),
+ ie("span", k2, Ye(Y("core") ? "βΎ" : "βΈ"), 1)
+ ], 8, V2),
+ Ko(ie("div", X2, [
+ ie("div", N2, [
+ ie("div", R2, Ye(xe(m)("label.type")), 1),
+ ie("select", {
ref_key: "kindSelectRef",
ref: i,
class: "mjr-select",
- title: Ge(m)("tooltip.filterByFileType", "Filter by file type"),
- value: Ge(n).kindFilter,
- onChange: C
+ title: xe(m)("tooltip.filterByFileType", "Filter by file type"),
+ value: xe(n).kindFilter,
+ onChange: h
}, [
- ne("option", N2, Ye(Ge(m)("filter.all")), 1),
- ne("option", R2, Ye(Ge(m)("filter.images", "Images")), 1),
- ne("option", F2, Ye(Ge(m)("filter.videos", "Videos")), 1),
- ne("option", O2, Ye(Ge(m)("filter.audio", "Audio")), 1),
- j[3] || (j[3] = ne("option", { value: "model3d" }, "3D", -1))
- ], 40, X2)
+ ie("option", O2, Ye(xe(m)("filter.all")), 1),
+ ie("option", z2, Ye(xe(m)("filter.images", "Images")), 1),
+ ie("option", J2, Ye(xe(m)("filter.videos", "Videos")), 1),
+ ie("option", T2, Ye(xe(m)("filter.audio", "Audio")), 1),
+ N[3] || (N[3] = ie("option", { value: "model3d" }, "3D", -1))
+ ], 40, F2)
]),
- ne("div", z2, [
- ne("div", J2, Ye(Ge(m)("label.workflow")), 1),
- ne("label", {
+ ie("div", B2, [
+ ie("div", U2, Ye(xe(m)("label.workflow")), 1),
+ ie("label", {
class: "mjr-popover-toggle",
- title: Ge(m)("tooltip.filterWorkflowOnly", "Show only assets with embedded workflow data")
+ title: xe(m)("tooltip.filterWorkflowOnly", "Show only assets with embedded workflow data")
}, [
- ne("input", {
+ ie("input", {
ref_key: "wfCheckboxRef",
ref: o,
type: "checkbox",
- checked: Ge(n).workflowOnly,
- onChange: S
- }, null, 40, B2),
- ne("span", null, Ye(Ge(m)("filter.onlyWithWorkflow")), 1)
- ], 8, T2)
+ checked: xe(n).workflowOnly,
+ onChange: G
+ }, null, 40, D2),
+ ie("span", null, Ye(xe(m)("filter.onlyWithWorkflow")), 1)
+ ], 8, K2)
]),
- ne("div", U2, [
- ne("div", K2, Ye(Ge(m)("label.workflowType", "Workflow type")), 1),
- ne("select", {
+ ie("div", E2, [
+ ie("div", H2, Ye(xe(m)("label.workflowType", "Workflow type")), 1),
+ ie("select", {
ref_key: "workflowTypeSelectRef",
ref: r,
class: "mjr-select",
- value: Ge(n).workflowType,
+ value: xe(n).workflowType,
onChange: W
}, [
- ne("option", E2, Ye(Ge(m)("filter.any", "Any")), 1),
- j[4] || (j[4] = Xd('', 10))
- ], 40, D2)
+ ie("option", P2, Ye(xe(m)("filter.any", "Any")), 1),
+ N[4] || (N[4] = Rd('', 10))
+ ], 40, q2)
]),
- ne("div", H2, [
- ne("div", q2, Ye(Ge(m)("label.rating")), 1),
- ne("select", {
+ ie("div", Q2, [
+ ie("div", _2, Ye(xe(m)("label.rating")), 1),
+ ie("select", {
ref_key: "ratingSelectRef",
ref: l,
class: "mjr-select",
- title: Ge(m)("tooltip.filterMinRating", "Filter by minimum rating"),
- value: String(Ge(n).minRating || 0),
+ title: xe(m)("tooltip.filterMinRating", "Filter by minimum rating"),
+ value: String(xe(n).minRating || 0),
onChange: y
}, [
- ne("option", Q2, Ye(Ge(m)("filter.anyRating")), 1),
- j[5] || (j[5] = Xd('', 5))
- ], 40, P2)
+ ie("option", eS, Ye(xe(m)("filter.anyRating")), 1),
+ N[5] || (N[5] = Rd('', 5))
+ ], 40, $2)
])
], 512), [
- [br, V("core")]
+ [yr, Y("core")]
])
], 2),
- ne("div", {
- class: Zn(["mjr-filter-group", { "is-open": V("media") }])
+ ie("div", {
+ class: Zn(["mjr-filter-group", { "is-open": Y("media") }])
}, [
- ne("button", {
+ ie("button", {
type: "button",
class: "mjr-filter-group-toggle",
- "aria-expanded": String(V("media")),
- onClick: j[1] || (j[1] = (L) => X("media"))
+ "aria-expanded": String(Y("media")),
+ onClick: N[1] || (N[1] = (V) => R("media"))
}, [
- ne("span", $2, Ye(Ge(m)("group.media", "Media")), 1),
- ne("span", eS, Ye(V("media") ? "βΎ" : "βΈ"), 1)
- ], 8, _2),
- Bo(ne("div", tS, [
- ne("div", nS, [
- ne("div", iS, Ye(Ge(m)("label.fileSizeMB", "File size (MB)")), 1),
- ne("input", {
+ ie("span", nS, Ye(xe(m)("group.media", "Media")), 1),
+ ie("span", iS, Ye(Y("media") ? "βΎ" : "βΈ"), 1)
+ ], 8, tS),
+ Ko(ie("div", oS, [
+ ie("div", rS, [
+ ie("div", lS, Ye(xe(m)("label.fileSizeMB", "File size (MB)")), 1),
+ ie("input", {
ref_key: "minSizeInputRef",
ref: a,
type: "number",
min: "0",
step: "0.1",
class: "mjr-input",
- placeholder: Ge(m)("label.min", "Min"),
- value: Ge(n).minSizeMB || "",
- onChange: k
- }, null, 40, oS),
- ne("input", {
+ placeholder: xe(m)("label.min", "Min"),
+ value: xe(n).minSizeMB || "",
+ onChange: X
+ }, null, 40, aS),
+ ie("input", {
ref_key: "maxSizeInputRef",
ref: c,
type: "number",
min: "0",
step: "0.1",
class: "mjr-input",
- placeholder: Ge(m)("label.max", "Max"),
- value: Ge(n).maxSizeMB || "",
- onChange: k
- }, null, 40, rS)
+ placeholder: xe(m)("label.max", "Max"),
+ value: xe(n).maxSizeMB || "",
+ onChange: X
+ }, null, 40, cS)
]),
- ne("div", lS, [
- ne("div", aS, Ye(Ge(m)("label.resolutionPx", "Resolution (px)")), 1),
- ne("select", {
+ ie("div", sS, [
+ ie("div", dS, Ye(xe(m)("label.resolutionPx", "Resolution (px)")), 1),
+ ie("select", {
ref_key: "resolutionPresetSelectRef",
ref: s,
class: "mjr-select",
- value: h.value,
- onChange: z
+ value: Z.value,
+ onChange: T
}, [
- ne("option", sS, Ye(Ge(m)("filter.any", "Any")), 1),
- j[6] || (j[6] = ne("option", { value: "hd" }, "HD (1280Γ720)", -1)),
- j[7] || (j[7] = ne("option", { value: "fhd" }, "FHD (1920Γ1080)", -1)),
- j[8] || (j[8] = ne("option", { value: "qhd" }, "QHD (2560Γ1440)", -1)),
- j[9] || (j[9] = ne("option", { value: "uhd" }, "4K (3840Γ2160)", -1))
- ], 40, cS)
+ ie("option", mS, Ye(xe(m)("filter.any", "Any")), 1),
+ N[6] || (N[6] = ie("option", { value: "hd" }, "HD (1280Γ720)", -1)),
+ N[7] || (N[7] = ie("option", { value: "fhd" }, "FHD (1920Γ1080)", -1)),
+ N[8] || (N[8] = ie("option", { value: "qhd" }, "QHD (2560Γ1440)", -1)),
+ N[9] || (N[9] = ie("option", { value: "uhd" }, "4K (3840Γ2160)", -1))
+ ], 40, uS)
]),
- ne("div", dS, [
- ne("div", uS, Ye(Ge(m)("label.resolutionMinWxH", "Min WxH (px)")), 1),
- ne("input", {
+ ie("div", gS, [
+ ie("div", IS, Ye(xe(m)("label.resolutionMinWxH", "Min WxH (px)")), 1),
+ ie("input", {
ref_key: "minWidthInputRef",
ref: d,
type: "number",
min: "0",
step: "1",
class: "mjr-input",
- placeholder: Ge(m)("label.widthPx", "W (px)"),
- title: Ge(m)("tooltip.widthPx", "Minimum width in pixels"),
- value: Ge(n).minWidth || "",
- onChange: G
- }, null, 40, mS),
- ne("input", {
+ placeholder: xe(m)("label.widthPx", "W (px)"),
+ title: xe(m)("tooltip.widthPx", "Minimum width in pixels"),
+ value: xe(n).minWidth || "",
+ onChange: x
+ }, null, 40, bS),
+ ie("input", {
ref_key: "minHeightInputRef",
ref: u,
type: "number",
min: "0",
step: "1",
class: "mjr-input",
- placeholder: Ge(m)("label.heightPx", "H (px)"),
- title: Ge(m)("tooltip.heightPx", "Minimum height in pixels"),
- value: Ge(n).minHeight || "",
- onChange: G
- }, null, 40, gS)
+ placeholder: xe(m)("label.heightPx", "H (px)"),
+ title: xe(m)("tooltip.heightPx", "Minimum height in pixels"),
+ value: xe(n).minHeight || "",
+ onChange: x
+ }, null, 40, pS)
]),
- ne("div", IS, [
- ne("div", bS, Ye(Ge(m)("label.resolutionMaxWxH", "Max WxH (px)")), 1),
- ne("input", {
+ ie("div", yS, [
+ ie("div", fS, Ye(xe(m)("label.resolutionMaxWxH", "Max WxH (px)")), 1),
+ ie("input", {
ref_key: "maxWidthInputRef",
ref: I,
type: "number",
min: "0",
step: "1",
class: "mjr-input",
- placeholder: Ge(m)("label.widthPx", "W (px)"),
- title: Ge(m)("tooltip.widthPx", "Maximum width in pixels"),
- value: Ge(n).maxWidth || "",
- onChange: G
- }, null, 40, pS),
- ne("input", {
+ placeholder: xe(m)("label.widthPx", "W (px)"),
+ title: xe(m)("tooltip.widthPx", "Maximum width in pixels"),
+ value: xe(n).maxWidth || "",
+ onChange: x
+ }, null, 40, hS),
+ ie("input", {
ref_key: "maxHeightInputRef",
ref: p,
type: "number",
min: "0",
step: "1",
class: "mjr-input",
- placeholder: Ge(m)("label.heightPx", "H (px)"),
- title: Ge(m)("tooltip.heightPx", "Maximum height in pixels"),
- value: Ge(n).maxHeight || "",
- onChange: G
- }, null, 40, yS)
+ placeholder: xe(m)("label.heightPx", "H (px)"),
+ title: xe(m)("tooltip.heightPx", "Maximum height in pixels"),
+ value: xe(n).maxHeight || "",
+ onChange: x
+ }, null, 40, CS)
])
], 512), [
- [br, V("media")]
+ [yr, Y("media")]
])
], 2),
- ne("div", {
- class: Zn(["mjr-filter-group", { "is-open": V("time") }])
+ ie("div", {
+ class: Zn(["mjr-filter-group", { "is-open": Y("time") }])
}, [
- ne("button", {
+ ie("button", {
type: "button",
class: "mjr-filter-group-toggle",
- "aria-expanded": String(V("time")),
- onClick: j[2] || (j[2] = (L) => X("time"))
+ "aria-expanded": String(Y("time")),
+ onClick: N[2] || (N[2] = (V) => R("time"))
}, [
- ne("span", hS, Ye(Ge(m)("group.time", "Time")), 1),
- ne("span", CS, Ye(V("time") ? "βΎ" : "βΈ"), 1)
- ], 8, fS),
- Bo(ne("div", ZS, [
- ne("div", AS, [
- ne("div", WS, Ye(Ge(m)("label.dateRange")), 1),
- ne("select", {
+ ie("span", AS, Ye(xe(m)("group.time", "Time")), 1),
+ ie("span", WS, Ye(Y("time") ? "βΎ" : "βΈ"), 1)
+ ], 8, ZS),
+ Ko(ie("div", wS, [
+ ie("div", MS, [
+ ie("div", SS, Ye(xe(m)("label.dateRange")), 1),
+ ie("select", {
ref_key: "dateRangeSelectRef",
- ref: M,
+ ref: S,
class: "mjr-select",
- title: Ge(m)("tooltip.filterByDateRange", "Filter by date range"),
- value: Ge(n).dateRangeFilter,
- onChange: x
+ title: xe(m)("tooltip.filterByDateRange", "Filter by date range"),
+ value: xe(n).dateRangeFilter,
+ onChange: v
}, [
- ne("option", MS, Ye(Ge(m)("filter.anytime")), 1),
- ne("option", SS, Ye(Ge(m)("filter.today")), 1),
- ne("option", GS, Ye(Ge(m)("filter.thisWeek")), 1),
- ne("option", xS, Ye(Ge(m)("filter.thisMonth")), 1)
- ], 40, wS)
+ ie("option", xS, Ye(xe(m)("filter.anytime")), 1),
+ ie("option", jS, Ye(xe(m)("filter.today")), 1),
+ ie("option", vS, Ye(xe(m)("filter.thisWeek")), 1),
+ ie("option", LS, Ye(xe(m)("filter.thisMonth")), 1)
+ ], 40, GS)
]),
- ne("div", jS, [
- ne("div", vS, Ye(Ge(m)("label.agenda")), 1),
- ne("div", {
+ ie("div", VS, [
+ ie("div", YS, Ye(xe(m)("label.agenda")), 1),
+ ie("div", {
ref_key: "agendaContainerRef",
- ref: Z,
+ ref: A,
class: "mjr-agenda-container"
}, [
- ne("input", {
+ ie("input", {
ref_key: "dateExactInputRef",
- ref: A,
+ ref: C,
type: "date",
class: Zn(["mjr-input mjr-agenda-input", f.value]),
style: { display: "none" },
- value: Ge(n).dateExactFilter,
+ value: xe(n).dateExactFilter,
onChange: w
- }, null, 42, LS)
+ }, null, 42, kS)
], 512)
])
], 512), [
- [br, V("time")]
+ [yr, Y("time")]
])
], 2)
]));
}
-}, VS = /* @__PURE__ */ jr(YS, [["__scopeId", "data-v-d1ebebd4"]]), kS = 128, XS = Object.freeze([
+}, NS = /* @__PURE__ */ Vr(XS, [["__scopeId", "data-v-d1ebebd4"]]), RS = 128, FS = Object.freeze([
{
key: "portraits",
label: "Portraits",
@@ -36056,10 +36109,10 @@ const g2 = {
iconClass: "pi pi-circle"
}
]);
-function NS(e) {
+function OS(e) {
try {
const t = String(e ?? "").trim();
- if (!t || t.length > kS || t.includes("\0")) return "";
+ if (!t || t.length > RS || t.includes("\0")) return "";
for (let n = 0; n < t.length; n += 1) {
const i = t.charCodeAt(n);
if (i <= 31 || i === 127) return "";
@@ -36069,7 +36122,7 @@ function NS(e) {
return "";
}
}
-function RS(e) {
+function zS(e) {
if (!e || typeof e != "object") return null;
const t = String(e.filepath || "").trim();
return t ? {
@@ -36081,10 +36134,10 @@ function RS(e) {
root_id: String(e.root_id || e.rootId || e.custom_root_id || "").trim() || void 0
} : null;
}
-function np(e) {
+function ip(e) {
const t = [], n = [], i = /* @__PURE__ */ new Set();
for (const o of Array.isArray(e) ? e : []) {
- const r = RS(o);
+ const r = zS(o);
if (r != null && r.filepath) {
const a = r.filepath.toLowerCase();
if (i.has(a)) continue;
@@ -36096,7 +36149,7 @@ function np(e) {
}
return { assets: t, missingIds: n };
}
-async function Lm(e) {
+async function Ym(e) {
var r;
const t = Array.from(
new Set(
@@ -36104,29 +36157,29 @@ async function Lm(e) {
)
);
if (!t.length) return { ok: !0, data: [] };
- const n = await zs(t);
+ const n = await Ts(t);
if (!(n != null && n.ok))
return { ok: !1, error: String((n == null ? void 0 : n.error) || "Failed to fetch assets") };
- const i = Array.isArray(n == null ? void 0 : n.data) ? n.data : Array.isArray((r = n == null ? void 0 : n.data) == null ? void 0 : r.assets) ? n.data.assets : [], { assets: o } = np(i);
+ const i = Array.isArray(n == null ? void 0 : n.data) ? n.data : Array.isArray((r = n == null ? void 0 : n.data) == null ? void 0 : r.assets) ? n.data.assets : [], { assets: o } = ip(i);
return { ok: !0, data: o };
}
-function Ym(e) {
+function km(e) {
var I, p;
const t = String((e == null ? void 0 : e.label) || "").trim();
if (!(!t || /^group\b/i.test(t))) return t;
- const i = (Array.isArray(e == null ? void 0 : e.dominant_tags) ? e.dominant_tags : []).map((M) => String(M || "").trim()).filter(Boolean);
+ const i = (Array.isArray(e == null ? void 0 : e.dominant_tags) ? e.dominant_tags : []).map((S) => String(S || "").trim()).filter(Boolean);
if (i.length) return i.slice(0, 2).join(" / ");
const o = Array.isArray(e == null ? void 0 : e.sample_assets) ? e.sample_assets : [], r = String(
- ((I = o.find((M) => String((M == null ? void 0 : M.subfolder) || "").trim())) == null ? void 0 : I.subfolder) || ""
+ ((I = o.find((S) => String((S == null ? void 0 : S.subfolder) || "").trim())) == null ? void 0 : I.subfolder) || ""
).trim(), l = r ? r.split(/[\\/]/).filter(Boolean).pop() : "", a = { image: 0, video: 0, audio: 0, other: 0 };
- for (const M of o) {
- const Z = String((M == null ? void 0 : M.kind) || "").toLowerCase();
- Z in a ? a[Z] += 1 : a.other += 1;
+ for (const S of o) {
+ const A = String((S == null ? void 0 : S.kind) || "").toLowerCase();
+ A in a ? a[A] += 1 : a.other += 1;
}
- const c = ((p = Object.entries(a).sort((M, Z) => Z[1] - M[1])[0]) == null ? void 0 : p[0]) || "other", s = c === "image" ? "Images" : c === "video" ? "Videos" : c === "audio" ? "Audio" : "Media", d = Number(e == null ? void 0 : e.cluster_id), u = Number.isFinite(d) ? ` ${d + 1}` : "";
+ const c = ((p = Object.entries(a).sort((S, A) => A[1] - S[1])[0]) == null ? void 0 : p[0]) || "other", s = c === "image" ? "Images" : c === "video" ? "Videos" : c === "audio" ? "Audio" : "Media", d = Number(e == null ? void 0 : e.cluster_id), u = Number.isFinite(d) ? ` ${d + 1}` : "";
return l ? `${l} - ${s}` : `${s} Cluster${u}`;
}
-function FS() {
+function JS() {
var e;
try {
const t = Xn();
@@ -36135,222 +36188,222 @@ function FS() {
return !0;
}
}
-const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = { class: "mjr-menu-item-label" }, TS = ["disabled"], BS = { class: "mjr-menu-item-label" }, US = { class: "mjr-menu-item-right" }, KS = {
+const TS = { class: "mjr-menu mjr-collections-menu" }, BS = ["disabled"], US = { class: "mjr-menu-item-label" }, KS = ["disabled"], DS = { class: "mjr-menu-item-label" }, ES = { class: "mjr-menu-item-right" }, HS = {
key: 0,
class: "mjr-menu-item-hint"
-}, DS = {
+}, qS = {
key: 1,
class: "mjr-muted"
-}, ES = {
+}, PS = {
key: 2,
class: "mjr-state-block is-error"
-}, HS = {
+}, QS = {
key: 3,
class: "mjr-muted"
-}, qS = ["disabled", "onClick"], PS = { class: "mjr-menu-item-label" }, QS = { class: "mjr-menu-item-right" }, _S = {
+}, _S = ["disabled", "onClick"], $S = { class: "mjr-menu-item-label" }, eG = { class: "mjr-menu-item-right" }, tG = {
key: 0,
class: "mjr-menu-item-hint"
-}, $S = ["disabled", "title", "onClick"], eG = { class: "mjr-state-block" }, tG = { class: "mjr-section-title mjr-section-title--cyan" }, nG = { class: "mjr-section-hint" }, iG = ["disabled", "onClick"], oG = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, rG = { class: "mjr-section-title mjr-section-title--violet" }, lG = { class: "mjr-section-hint" }, aG = ["disabled"], cG = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, sG = {
+}, nG = ["disabled", "title", "onClick"], iG = { class: "mjr-state-block" }, oG = { class: "mjr-section-title mjr-section-title--cyan" }, rG = { class: "mjr-section-hint" }, lG = ["disabled", "onClick"], aG = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, cG = { class: "mjr-section-title mjr-section-title--violet" }, sG = { class: "mjr-section-hint" }, dG = ["disabled"], uG = { class: "mjr-menu-item-label mjr-menu-item-label--icon" }, mG = {
key: 0,
class: "mjr-state-block is-error"
-}, dG = { class: "mjr-cluster-thumbs" }, uG = ["src", "alt"], mG = { class: "mjr-cluster-info" }, gG = ["title"], IG = { class: "mjr-cluster-count" }, bG = ["disabled", "title", "onClick"], pG = "mjr:collections-changed", yG = {
+}, gG = { class: "mjr-cluster-thumbs" }, IG = ["src", "alt"], bG = { class: "mjr-cluster-info" }, pG = ["title"], yG = { class: "mjr-cluster-count" }, fG = ["disabled", "title", "onClick"], hG = "mjr:collections-changed", CG = {
__name: "CollectionsPopover",
setup(e, { expose: t }) {
- const n = Mo(), i = Ae(null), o = Ae([]), r = Ae(!1), l = Ae(""), a = Ae(!1), c = Ae(!0), s = Ae(!1), d = Ae(!1), u = Ae(!1), I = Ae([]), p = Ae(""), M = Ae("");
- let Z = 0, A = null, g = !1;
- const h = Je(() => String(n.collectionId || "").trim()), f = Je(() => String(n.collectionName || "").trim()), b = Je(() => !!h.value), v = Je(() => !c.value || d.value), C = Je(() => c.value && s.value);
- function S() {
+ const n = Go(), i = Ae(null), o = Ae([]), r = Ae(!1), l = Ae(""), a = Ae(!1), c = Ae(!0), s = Ae(!1), d = Ae(!1), u = Ae(!1), I = Ae([]), p = Ae(""), S = Ae("");
+ let A = 0, C = null, g = !1;
+ const Z = ze(() => String(n.collectionId || "").trim()), f = ze(() => String(n.collectionName || "").trim()), b = ze(() => !!Z.value), L = ze(() => !c.value || d.value), h = ze(() => c.value && s.value);
+ function G() {
const B = i.value;
return !!B && String(B.style.display || "").toLowerCase() !== "none";
}
function W({
- collectionId: B = h.value,
+ collectionId: B = Z.value,
collectionName: J = f.value,
- close: T = !0,
- reload: D = !0
+ close: P = !0,
+ reload: H = !0
} = {}) {
- var Q;
+ var $;
try {
window.dispatchEvent(
- new CustomEvent(pG, {
+ new CustomEvent(hG, {
detail: {
collectionId: String(B || ""),
collectionName: String(J || ""),
- close: T !== !1,
- reload: D !== !1
+ close: P !== !1,
+ reload: H !== !1
}
})
);
} catch (E) {
- (Q = console.debug) == null || Q.call(console, E);
+ ($ = console.debug) == null || $.call(console, E);
}
}
function y(B) {
var J;
try {
- return Bi(B) || "";
- } catch (T) {
- return (J = console.debug) == null || J.call(console, T), "";
+ return Ki(B) || "";
+ } catch (P) {
+ return (J = console.debug) == null || J.call(console, P), "";
}
}
- async function k() {
- var J, T;
- if (!FS())
+ async function X() {
+ var J, P;
+ if (!JS())
return {
enabled: !1,
vectorAvailable: !1,
vectorDisabled: !1
};
try {
- const D = await Ga(), Q = !(D != null && D.ok) && (String((D == null ? void 0 : D.code) || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String((D == null ? void 0 : D.error) || "")));
+ const H = await xa(), $ = !(H != null && H.ok) && (String((H == null ? void 0 : H.code) || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String((H == null ? void 0 : H.error) || "")));
return {
enabled: !0,
- vectorAvailable: !!(D != null && D.ok && ((J = D == null ? void 0 : D.data) == null ? void 0 : J.total) > 0),
- vectorDisabled: Q
+ vectorAvailable: !!(H != null && H.ok && ((J = H == null ? void 0 : H.data) == null ? void 0 : J.total) > 0),
+ vectorDisabled: $
};
- } catch (D) {
- return (T = console.debug) == null || T.call(console, D), {
+ } catch (H) {
+ return (P = console.debug) == null || P.call(console, H), {
enabled: !0,
vectorAvailable: !1,
vectorDisabled: !1
};
}
}
- function G(...B) {
- const J = [], T = /* @__PURE__ */ new Set();
- for (const D of B)
- for (const Q of Array.isArray(D) ? D : []) {
- const E = String((Q == null ? void 0 : Q.filepath) || "").trim().toLowerCase();
- !E || T.has(E) || (T.add(E), J.push(Q));
+ function x(...B) {
+ const J = [], P = /* @__PURE__ */ new Set();
+ for (const H of B)
+ for (const $ of Array.isArray(H) ? H : []) {
+ const E = String(($ == null ? void 0 : $.filepath) || "").trim().toLowerCase();
+ !E || P.has(E) || (P.add(E), J.push($));
}
return J;
}
- async function z() {
+ async function T() {
var J;
- const B = ++Z;
+ const B = ++A;
r.value = !0, a.value = !0, l.value = "", p.value = "";
try {
- const [T, D] = await Promise.all([
- Xg(),
- k()
+ const [P, H] = await Promise.all([
+ Ng(),
+ X()
]);
- if (B !== Z) return;
- T != null && T.ok ? o.value = Array.isArray(T == null ? void 0 : T.data) ? T.data : [] : (l.value = String(
- (T == null ? void 0 : T.error) || m("msg.failedLoadCollections", "Failed to load collections")
- ), o.value = []), c.value = !!D.enabled, s.value = !!D.vectorAvailable, d.value = !!D.vectorDisabled, s.value || (I.value = [], u.value = !1);
- } catch (T) {
- if (B !== Z) return;
- (J = console.debug) == null || J.call(console, T), l.value = m("msg.failedLoadCollections", "Failed to load collections"), o.value = [];
+ if (B !== A) return;
+ P != null && P.ok ? o.value = Array.isArray(P == null ? void 0 : P.data) ? P.data : [] : (l.value = String(
+ (P == null ? void 0 : P.error) || m("msg.failedLoadCollections", "Failed to load collections")
+ ), o.value = []), c.value = !!H.enabled, s.value = !!H.vectorAvailable, d.value = !!H.vectorDisabled, s.value || (I.value = [], u.value = !1);
+ } catch (P) {
+ if (B !== A) return;
+ (J = console.debug) == null || J.call(console, P), l.value = m("msg.failedLoadCollections", "Failed to load collections"), o.value = [];
} finally {
- B === Z && (r.value = !1, a.value = !1);
+ B === A && (r.value = !1, a.value = !1);
}
}
- function x(B, J) {
- return async (...T) => {
- if (!M.value) {
- M.value = B;
+ function v(B, J) {
+ return async (...P) => {
+ if (!S.value) {
+ S.value = B;
try {
- await J(...T);
+ await J(...P);
} finally {
- M.value === B && (M.value = "");
+ S.value === B && (S.value = "");
}
}
};
}
- const w = x("create", async () => {
- var D, Q;
- const B = await ji(
+ const w = v("create", async () => {
+ var H, $;
+ const B = await Vi(
m("dialog.createCollection", "Create collection"),
m("dialog.collectionPlaceholder", "Collection name")
);
if (!B) return;
- const J = NS(B);
+ const J = OS(B);
if (!J) {
- Ce(m("toast.invalidCollectionName", "Invalid collection name"), "error");
+ Ze(m("toast.invalidCollectionName", "Invalid collection name"), "error");
return;
}
- const T = await ta(J);
- if (!(T != null && T.ok)) {
- Ce(
- (T == null ? void 0 : T.error) || m("toast.failedCreateCollection", "Failed to create collection"),
+ const P = await na(J);
+ if (!(P != null && P.ok)) {
+ Ze(
+ (P == null ? void 0 : P.error) || m("toast.failedCreateCollection", "Failed to create collection"),
"error"
);
return;
}
W({
- collectionId: String(((D = T == null ? void 0 : T.data) == null ? void 0 : D.id) || ""),
- collectionName: String(((Q = T == null ? void 0 : T.data) == null ? void 0 : Q.name) || J)
+ collectionId: String(((H = P == null ? void 0 : P.data) == null ? void 0 : H.id) || ""),
+ collectionName: String((($ = P == null ? void 0 : P.data) == null ? void 0 : $.name) || J)
});
- }), X = x("exit", async () => {
+ }), R = v("exit", async () => {
W({
collectionId: "",
collectionName: ""
});
- }), V = x("open", async (B) => {
- const J = String((B == null ? void 0 : B.id) || ""), T = String((B == null ? void 0 : B.name) || J);
+ }), Y = v("open", async (B) => {
+ const J = String((B == null ? void 0 : B.id) || ""), P = String((B == null ? void 0 : B.name) || J);
if (J) {
- if (J === h.value) {
+ if (J === Z.value) {
W({
collectionId: J,
- collectionName: T,
+ collectionName: P,
reload: !1
});
return;
}
W({
collectionId: J,
- collectionName: T
+ collectionName: P
});
}
- }), R = x("delete", async (B) => {
- const J = String((B == null ? void 0 : B.id) || ""), T = String((B == null ? void 0 : B.name) || J);
- if (!J || !await bi(
- m("dialog.deleteCollection", 'Delete collection "{name}"?', { name: T })
+ }), F = v("delete", async (B) => {
+ const J = String((B == null ? void 0 : B.id) || ""), P = String((B == null ? void 0 : B.name) || J);
+ if (!J || !await yi(
+ m("dialog.deleteCollection", 'Delete collection "{name}"?', { name: P })
)) return;
- const Q = await Bf(J);
- if (!(Q != null && Q.ok)) {
- Ce(
- (Q == null ? void 0 : Q.error) || m("toast.failedDeleteCollection", "Failed to delete collection"),
+ const $ = await Df(J);
+ if (!($ != null && $.ok)) {
+ Ze(
+ ($ == null ? void 0 : $.error) || m("toast.failedDeleteCollection", "Failed to delete collection"),
"error"
);
return;
}
- if (J === h.value) {
+ if (J === Z.value) {
W({
collectionId: "",
collectionName: ""
});
return;
}
- await z();
+ await T();
});
- async function j(B) {
- var E, K;
+ async function N(B) {
+ var E, oe;
const J = String((B == null ? void 0 : B.label) || "").trim();
if (!J) return;
- const T = await ta(J);
- if (!(T != null && T.ok)) {
- Ce(
- (T == null ? void 0 : T.error) || m("toast.failedCreateSmartCollection", "Failed to create smart collection"),
+ const P = await na(J);
+ if (!(P != null && P.ok)) {
+ Ze(
+ (P == null ? void 0 : P.error) || m("toast.failedCreateSmartCollection", "Failed to create smart collection"),
"error"
);
return;
}
- const D = String(((E = T == null ? void 0 : T.data) == null ? void 0 : E.id) || "");
- if (!D) return;
- const Q = await Rg(String((B == null ? void 0 : B.query) || ""), 50);
- if (Q != null && Q.ok && Array.isArray(Q == null ? void 0 : Q.data) && Q.data.length > 0) {
- const F = np(Q.data);
- let Y = F.assets;
- if (F.missingIds.length) {
- const U = await Lm(F.missingIds);
- U.ok && Array.isArray(U.data) && (Y = G(Y, U.data));
+ const H = String(((E = P == null ? void 0 : P.data) == null ? void 0 : E.id) || "");
+ if (!H) return;
+ const $ = await Fg(String((B == null ? void 0 : B.query) || ""), 50);
+ if ($ != null && $.ok && Array.isArray($ == null ? void 0 : $.data) && $.data.length > 0) {
+ const M = ip($.data);
+ let j = M.assets;
+ if (M.missingIds.length) {
+ const O = await Ym(M.missingIds);
+ O.ok && Array.isArray(O.data) && (j = x(j, O.data));
}
- if (Y.length) {
- const U = await Sa(D, Y);
- if (!(U != null && U.ok)) {
- Ce(
- (U == null ? void 0 : U.error) || m(
+ if (j.length) {
+ const O = await Ga(H, j);
+ if (!(O != null && O.ok)) {
+ Ze(
+ (O == null ? void 0 : O.error) || m(
"toast.failedAddAssetsToSmartCollection",
"Failed to add assets to smart collection"
),
@@ -36358,18 +36411,18 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
);
return;
}
- const P = Number(((K = U == null ? void 0 : U.data) == null ? void 0 : K.added) || Y.length || 0);
- Ce(
+ const D = Number(((oe = O == null ? void 0 : O.data) == null ? void 0 : oe.added) || j.length || 0);
+ Ze(
m(
"toast.smartCollectionCreated",
'Smart collection "{name}" created with {count} assets!',
- { name: J, count: P }
+ { name: J, count: D }
),
"success",
3e3
);
} else
- Ce(
+ Ze(
m(
"toast.smartCollectionEmpty",
'Collection "{name}" created but no matching assets found. Index more assets first.',
@@ -36379,7 +36432,7 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
3e3
);
} else
- Ce(
+ Ze(
m(
"toast.smartCollectionEmpty",
'Collection "{name}" created but no matching assets found. Index more assets first.',
@@ -36389,34 +36442,34 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
3e3
);
W({
- collectionId: D,
+ collectionId: H,
collectionName: J
});
}
- async function L(B) {
+ async function V(B) {
if (!(B != null && B.key)) return;
const J = `smart:${B.key}`;
- if (!M.value) {
- M.value = J;
+ if (!S.value) {
+ S.value = J;
try {
- await j(B);
- } catch (T) {
- console.error("[Majoor] Smart collection creation failed:", T), Ce(
+ await N(B);
+ } catch (P) {
+ console.error("[Majoor] Smart collection creation failed:", P), Ze(
m("toast.failedCreateSmartCollection", "Failed to create smart collection"),
"error"
);
} finally {
- M.value === J && (M.value = "");
+ S.value === J && (S.value = "");
}
}
}
- async function N() {
- if (!(u.value || M.value)) {
+ async function k() {
+ if (!(u.value || S.value)) {
u.value = !0, p.value = "", I.value = [];
try {
- const B = await qf(8);
+ const B = await _f(8);
if (!(B != null && B.ok) || !Array.isArray(B == null ? void 0 : B.data) || !B.data.length) {
- Ce(
+ Ze(
m("toast.noGroupsFoundIndexFirst", "No groups found. Index more assets first."),
"info",
3e3
@@ -36425,227 +36478,227 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
}
I.value = B.data.map((J) => ({
...J,
- _label: Ym(J)
+ _label: km(J)
}));
} catch (B) {
- console.error("[Majoor] Discover groups failed:", B), p.value = m("toast.clusterAnalysisFailed", "Cluster analysis failed"), Ce(m("toast.clusterAnalysisFailed", "Cluster analysis failed"), "error");
+ console.error("[Majoor] Discover groups failed:", B), p.value = m("toast.clusterAnalysisFailed", "Cluster analysis failed"), Ze(m("toast.clusterAnalysisFailed", "Cluster analysis failed"), "error");
} finally {
u.value = !1;
}
}
}
- async function q(B) {
- var T, D, Q;
+ async function K(B) {
+ var P, H, $;
const J = `cluster:${String((B == null ? void 0 : B.cluster_id) ?? "")}`;
- if (!M.value) {
- M.value = J;
+ if (!S.value) {
+ S.value = J;
try {
- const E = String((B == null ? void 0 : B._label) || Ym(B) || "").trim();
+ const E = String((B == null ? void 0 : B._label) || km(B) || "").trim();
if (!E) return;
- const K = await ta(E);
- if (!(K != null && K.ok)) {
- Ce(
- (K == null ? void 0 : K.error) || m("toast.failedCreateCollection", "Failed to create collection"),
+ const oe = await na(E);
+ if (!(oe != null && oe.ok)) {
+ Ze(
+ (oe == null ? void 0 : oe.error) || m("toast.failedCreateCollection", "Failed to create collection"),
"error"
);
return;
}
- const F = String(((T = K == null ? void 0 : K.data) == null ? void 0 : T.id) || ""), Y = Array.isArray(B == null ? void 0 : B.all_asset_ids) ? B.all_asset_ids : [];
- if (F && Y.length) {
- const U = await Lm(Y);
- if (!U.ok) {
- Ce(
- U.error || m("toast.failedLoadClusterAssets", "Failed to load cluster assets"),
+ const M = String(((P = oe == null ? void 0 : oe.data) == null ? void 0 : P.id) || ""), j = Array.isArray(B == null ? void 0 : B.all_asset_ids) ? B.all_asset_ids : [];
+ if (M && j.length) {
+ const O = await Ym(j);
+ if (!O.ok) {
+ Ze(
+ O.error || m("toast.failedLoadClusterAssets", "Failed to load cluster assets"),
"error"
);
return;
}
- const P = await Sa(F, U.data || []);
- if (!(P != null && P.ok)) {
- Ce(
- (P == null ? void 0 : P.error) || m("toast.failedAddAssetsToCollection", "Failed to add assets to collection"),
+ const D = await Ga(M, O.data || []);
+ if (!(D != null && D.ok)) {
+ Ze(
+ (D == null ? void 0 : D.error) || m("toast.failedAddAssetsToCollection", "Failed to add assets to collection"),
"error"
);
return;
}
- const ee = Number(((D = P == null ? void 0 : P.data) == null ? void 0 : D.added) || ((Q = U.data) == null ? void 0 : Q.length) || 0);
- Ce(
+ const q = Number(((H = D == null ? void 0 : D.data) == null ? void 0 : H.added) || (($ = O.data) == null ? void 0 : $.length) || 0);
+ Ze(
m(
"toast.collectionCreatedWithAssets",
'Collection "{name}" created with {count} assets!',
- { name: E, count: ee }
+ { name: E, count: q }
),
"success",
3e3
);
} else
- Ce(
+ Ze(
m("toast.collectionCreatedNamed", 'Collection "{name}" created.', { name: E }),
"success",
2200
);
W({
- collectionId: F,
+ collectionId: M,
collectionName: E
});
} catch (E) {
- console.error("[Majoor] Cluster collection creation failed:", E), Ce(m("toast.failedCreateCollection", "Failed to create collection"), "error");
+ console.error("[Majoor] Cluster collection creation failed:", E), Ze(m("toast.failedCreateCollection", "Failed to create collection"), "error");
} finally {
- M.value === J && (M.value = "");
+ S.value === J && (S.value = "");
}
}
}
- function O() {
- const B = S();
- B && !g && z().catch(() => {
+ function z() {
+ const B = G();
+ B && !g && T().catch(() => {
}), g = B;
}
return Dn(() => {
- O(), !(typeof MutationObserver > "u" || !i.value) && (A = new MutationObserver(() => O()), A.observe(i.value, {
+ z(), !(typeof MutationObserver > "u" || !i.value) && (C = new MutationObserver(() => z()), C.observe(i.value, {
attributes: !0,
attributeFilter: ["style"]
}));
}), _n(() => {
var B, J;
try {
- (B = A == null ? void 0 : A.disconnect) == null || B.call(A);
- } catch (T) {
- (J = console.debug) == null || J.call(console, T);
+ (B = C == null ? void 0 : C.disconnect) == null || B.call(C);
+ } catch (P) {
+ (J = console.debug) == null || J.call(console, P);
}
- A = null;
+ C = null;
}), t({
- refresh: z
- }), (B, J) => (Ie(), he("div", {
+ refresh: T
+ }), (B, J) => (be(), Ce("div", {
ref_key: "rootRef",
ref: i,
class: "mjr-popover mjr-collections-popover",
style: { display: "none" }
}, [
- ne("div", OS, [
- ne("button", {
+ ie("div", TS, [
+ ie("button", {
type: "button",
class: "mjr-menu-item",
- disabled: M.value !== "",
- onClick: J[0] || (J[0] = (...T) => Ge(w) && Ge(w)(...T))
+ disabled: S.value !== "",
+ onClick: J[0] || (J[0] = (...P) => xe(w) && xe(w)(...P))
}, [
- ne("span", JS, Ye(Ge(m)("ctx.createCollection", "Create collection")), 1),
- J[2] || (J[2] = ne("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1))
- ], 8, zS),
- b.value ? (Ie(), he("button", {
+ ie("span", US, Ye(xe(m)("ctx.createCollection", "Create collection")), 1),
+ J[2] || (J[2] = ie("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1))
+ ], 8, BS),
+ b.value ? (be(), Ce("button", {
key: 0,
type: "button",
class: "mjr-menu-item",
- disabled: M.value !== "",
- onClick: J[1] || (J[1] = (...T) => Ge(X) && Ge(X)(...T))
+ disabled: S.value !== "",
+ onClick: J[1] || (J[1] = (...P) => xe(R) && xe(R)(...P))
}, [
- ne("span", BS, Ye(Ge(m)("ctx.exitCollection", "Exit collection")), 1),
- ne("span", US, [
- f.value ? (Ie(), he("span", KS, Ye(f.value), 1)) : yt("", !0),
- J[3] || (J[3] = ne("i", { class: "pi pi-times mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1))
+ ie("span", DS, Ye(xe(m)("ctx.exitCollection", "Exit collection")), 1),
+ ie("span", ES, [
+ f.value ? (be(), Ce("span", HS, Ye(f.value), 1)) : ft("", !0),
+ J[3] || (J[3] = ie("i", { class: "pi pi-times mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1))
])
- ], 8, TS)) : yt("", !0),
- J[11] || (J[11] = ne("div", { class: "mjr-menu-divider" }, null, -1)),
- r.value ? (Ie(), he("div", DS, Ye(Ge(m)("label.loading", "Loading...")), 1)) : l.value ? (Ie(), he("div", ES, Ye(l.value), 1)) : o.value.length ? yt("", !0) : (Ie(), he("div", HS, Ye(Ge(m)("msg.noCollections", "No collections yet")), 1)),
- (Ie(!0), he(Xt, null, Cn(o.value, (T) => (Ie(), he("div", {
- key: T.id || T.name,
+ ], 8, KS)) : ft("", !0),
+ J[11] || (J[11] = ie("div", { class: "mjr-menu-divider" }, null, -1)),
+ r.value ? (be(), Ce("div", qS, Ye(xe(m)("label.loading", "Loading...")), 1)) : l.value ? (be(), Ce("div", PS, Ye(l.value), 1)) : o.value.length ? ft("", !0) : (be(), Ce("div", QS, Ye(xe(m)("msg.noCollections", "No collections yet")), 1)),
+ (be(!0), Ce(Nt, null, Cn(o.value, (P) => (be(), Ce("div", {
+ key: P.id || P.name,
class: "mjr-collection-row"
}, [
- ne("button", {
+ ie("button", {
type: "button",
- class: Zn(["mjr-menu-item", { "is-active": h.value === String(T.id || "") }]),
- disabled: M.value !== "",
- onClick: (D) => Ge(V)(T)
+ class: Zn(["mjr-menu-item", { "is-active": Z.value === String(P.id || "") }]),
+ disabled: S.value !== "",
+ onClick: (H) => xe(Y)(P)
}, [
- ne("span", PS, Ye(T.name || T.id), 1),
- ne("span", QS, [
- Number(T.count || 0) ? (Ie(), he("span", _S, Ye(Number(T.count || 0)), 1)) : yt("", !0),
- J[4] || (J[4] = ne("i", { class: "pi pi-check mjr-menu-item-check" }, null, -1))
+ ie("span", $S, Ye(P.name || P.id), 1),
+ ie("span", eG, [
+ Number(P.count || 0) ? (be(), Ce("span", tG, Ye(Number(P.count || 0)), 1)) : ft("", !0),
+ J[4] || (J[4] = ie("i", { class: "pi pi-check mjr-menu-item-check" }, null, -1))
])
- ], 10, qS),
- ne("button", {
+ ], 10, _S),
+ ie("button", {
type: "button",
class: "mjr-menu-item mjr-delete-btn",
- disabled: M.value !== "",
- title: Ge(m)("tooltip.deleteCollection", "Delete collection"),
- onClick: Fn((D) => Ge(R)(T), ["stop", "prevent"])
+ disabled: S.value !== "",
+ title: xe(m)("tooltip.deleteCollection", "Delete collection"),
+ onClick: On((H) => xe(F)(P), ["stop", "prevent"])
}, [...J[5] || (J[5] = [
- ne("i", { class: "pi pi-trash" }, null, -1)
- ])], 8, $S)
+ ie("i", { class: "pi pi-trash" }, null, -1)
+ ])], 8, nG)
]))), 128)),
- !a.value && v.value ? (Ie(), he(Xt, { key: 4 }, [
- J[6] || (J[6] = ne("div", { class: "mjr-menu-divider" }, null, -1)),
- ne("div", eG, Ye(c.value ? "AI Smart Collections are disabled (enable vector search env var)." : "AI Smart Collections are disabled in settings."), 1)
- ], 64)) : yt("", !0),
- !a.value && C.value ? (Ie(), he(Xt, { key: 5 }, [
- J[9] || (J[9] = ne("div", { class: "mjr-menu-divider" }, null, -1)),
- ne("div", tG, Ye(Ge(m)("label.smartSuggestions", "Smart Suggestions")), 1),
- ne("div", nG, Ye(Ge(m)("label.smartCollectionsHint", "Create collections from AI-detected themes")), 1),
- (Ie(!0), he(Xt, null, Cn(Ge(XS), (T) => (Ie(), he("button", {
- key: T.key,
+ !a.value && L.value ? (be(), Ce(Nt, { key: 4 }, [
+ J[6] || (J[6] = ie("div", { class: "mjr-menu-divider" }, null, -1)),
+ ie("div", iG, Ye(c.value ? "AI Smart Collections are disabled (enable vector search env var)." : "AI Smart Collections are disabled in settings."), 1)
+ ], 64)) : ft("", !0),
+ !a.value && h.value ? (be(), Ce(Nt, { key: 5 }, [
+ J[9] || (J[9] = ie("div", { class: "mjr-menu-divider" }, null, -1)),
+ ie("div", oG, Ye(xe(m)("label.smartSuggestions", "Smart Suggestions")), 1),
+ ie("div", rG, Ye(xe(m)("label.smartCollectionsHint", "Create collections from AI-detected themes")), 1),
+ (be(!0), Ce(Nt, null, Cn(xe(FS), (P) => (be(), Ce("button", {
+ key: P.key,
type: "button",
class: "mjr-menu-item mjr-menu-item--smart",
- disabled: M.value !== "",
- onClick: (D) => L(T)
+ disabled: S.value !== "",
+ onClick: (H) => V(P)
}, [
- ne("span", oG, [
- ne("i", {
- class: Zn(T.iconClass)
+ ie("span", aG, [
+ ie("i", {
+ class: Zn(P.iconClass)
}, null, 2),
- ne("span", null, Ye(T.label), 1)
+ ie("span", null, Ye(P.label), 1)
]),
- J[7] || (J[7] = ne("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1))
- ], 8, iG))), 128)),
- J[10] || (J[10] = ne("div", { class: "mjr-menu-divider" }, null, -1)),
- ne("div", rG, Ye(Ge(m)("label.discoverGroups", "Discover Groups")), 1),
- ne("div", lG, Ye(Ge(m)("label.discoverGroupsHint", "AI clusters assets by visual similarity")), 1),
- ne("button", {
+ J[7] || (J[7] = ie("i", { class: "pi pi-plus mjr-menu-item-check mjr-menu-item-check--visible" }, null, -1))
+ ], 8, lG))), 128)),
+ J[10] || (J[10] = ie("div", { class: "mjr-menu-divider" }, null, -1)),
+ ie("div", cG, Ye(xe(m)("label.discoverGroups", "Discover Groups")), 1),
+ ie("div", sG, Ye(xe(m)("label.discoverGroupsHint", "AI clusters assets by visual similarity")), 1),
+ ie("button", {
type: "button",
class: "mjr-menu-item mjr-menu-item--cluster",
- disabled: u.value || M.value !== "",
- onClick: N
+ disabled: u.value || S.value !== "",
+ onClick: k
}, [
- ne("span", cG, [
- J[8] || (J[8] = ne("i", { class: "pi pi-search" }, null, -1)),
- ne("span", null, Ye(u.value ? Ge(m)("label.analyzing", "Analyzing...") : Ge(m)("label.analyzeLibrary", "Analyze library")), 1)
+ ie("span", uG, [
+ J[8] || (J[8] = ie("i", { class: "pi pi-search" }, null, -1)),
+ ie("span", null, Ye(u.value ? xe(m)("label.analyzing", "Analyzing...") : xe(m)("label.analyzeLibrary", "Analyze library")), 1)
])
- ], 8, aG),
- p.value ? (Ie(), he("div", sG, Ye(p.value), 1)) : yt("", !0),
- (Ie(!0), he(Xt, null, Cn(I.value, (T) => (Ie(), he("div", {
- key: T.cluster_id,
+ ], 8, dG),
+ p.value ? (be(), Ce("div", mG, Ye(p.value), 1)) : ft("", !0),
+ (be(!0), Ce(Nt, null, Cn(I.value, (P) => (be(), Ce("div", {
+ key: P.cluster_id,
class: "mjr-cluster-row"
}, [
- ne("div", dG, [
- (Ie(!0), he(Xt, null, Cn(Array.isArray(T.sample_assets) ? T.sample_assets.slice(0, 3) : [], (D, Q) => (Ie(), he("img", {
- key: `${T.cluster_id}-${Q}`,
+ ie("div", gG, [
+ (be(!0), Ce(Nt, null, Cn(Array.isArray(P.sample_assets) ? P.sample_assets.slice(0, 3) : [], (H, $) => (be(), Ce("img", {
+ key: `${P.cluster_id}-${$}`,
class: "mjr-cluster-thumb",
- src: y(D),
- alt: String((D == null ? void 0 : D.filename) || T._label || ""),
+ src: y(H),
+ alt: String((H == null ? void 0 : H.filename) || P._label || ""),
loading: "lazy"
- }, null, 8, uG))), 128))
+ }, null, 8, IG))), 128))
]),
- ne("div", mG, [
- ne("div", {
+ ie("div", bG, [
+ ie("div", {
class: "mjr-cluster-name",
- title: T._label
- }, Ye(T._label), 9, gG),
- ne("div", IG, Ye(Number(T.size || 0)) + " " + Ye(Ge(m)("label.assets", "assets")), 1)
+ title: P._label
+ }, Ye(P._label), 9, pG),
+ ie("div", yG, Ye(Number(P.size || 0)) + " " + Ye(xe(m)("label.assets", "assets")), 1)
]),
- ne("button", {
+ ie("button", {
type: "button",
class: "mjr-cluster-create-btn",
- disabled: M.value !== "",
- title: Ge(m)("ctx.createCollection", "Create collection"),
- onClick: (D) => q(T)
- }, Ye(M.value === `cluster:${String(T.cluster_id ?? "")}` ? Ge(m)("label.loading", "Loading...") : Ge(m)("label.create", "Create")), 9, bG)
+ disabled: S.value !== "",
+ title: xe(m)("ctx.createCollection", "Create collection"),
+ onClick: (H) => K(P)
+ }, Ye(S.value === `cluster:${String(P.cluster_id ?? "")}` ? xe(m)("label.loading", "Loading...") : xe(m)("label.create", "Create")), 9, fG)
]))), 128))
- ], 64)) : yt("", !0)
+ ], 64)) : ft("", !0)
])
], 512));
}
-}, fG = {
+}, ZG = {
class: "mjr-popover mjr-pinned-folders-popover",
style: { display: "none" }
-}, hG = {
+}, AG = {
__name: "PinnedFoldersPopover",
setup(e, { expose: t }) {
const n = Ae(null);
@@ -36653,8 +36706,8 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
get pinnedFoldersMenu() {
return n.value;
}
- }), (i, o) => (Ie(), he("div", fG, [
- ne("div", {
+ }), (i, o) => (be(), Ce("div", ZG, [
+ ie("div", {
ref_key: "menuRef",
ref: n,
class: "mjr-menu",
@@ -36662,10 +36715,10 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
}, null, 512)
]));
}
-}, CG = {
+}, WG = {
class: "mjr-popover mjr-custom-popover",
style: { display: "none" }
-}, ZG = { class: "mjr-popover-row" }, AG = { class: "mjr-popover-label" }, WG = { class: "mjr-popover-row mjr-popover-row--actions" }, wG = {
+}, wG = { class: "mjr-popover-row" }, MG = { class: "mjr-popover-label" }, SG = { class: "mjr-popover-row mjr-popover-row--actions" }, GG = {
__name: "CustomRootsPopover",
setup(e, { expose: t }) {
const n = Ae(null), i = Ae(null), o = Ae(null);
@@ -36679,36 +36732,36 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
get customRemoveBtn() {
return o.value;
}
- }), (r, l) => (Ie(), he("div", CG, [
- ne("div", ZG, [
- ne("div", AG, Ye(Ge(m)("label.folder")), 1),
- ne("select", {
+ }), (r, l) => (be(), Ce("div", WG, [
+ ie("div", wG, [
+ ie("div", MG, Ye(xe(m)("label.folder")), 1),
+ ie("select", {
ref_key: "customSelectRef",
ref: n,
class: "mjr-select"
}, null, 512)
]),
- ne("div", WG, [
- ne("button", {
+ ie("div", SG, [
+ ie("button", {
ref_key: "customAddBtnRef",
ref: i,
type: "button",
class: "mjr-btn"
- }, Ye(Ge(m)("btn.add")), 513),
- ne("button", {
+ }, Ye(xe(m)("btn.add")), 513),
+ ie("button", {
ref_key: "customRemoveBtnRef",
ref: o,
type: "button",
class: "mjr-btn",
disabled: ""
- }, Ye(Ge(m)("btn.remove")), 513)
+ }, Ye(xe(m)("btn.remove")), 513)
])
]));
}
-}, MG = ["aria-label"], SG = { class: "mjr-messages-head" }, GG = { class: "mjr-messages-actions" }, xG = ["title"], jG = { class: "mjr-messages-star-label" }, vG = ["title"], LG = {
+}, xG = ["aria-label"], jG = { class: "mjr-messages-head" }, vG = { class: "mjr-messages-actions" }, LG = ["title"], VG = { class: "mjr-messages-star-label" }, YG = ["title"], kG = {
class: "mjr-messages-tabs",
role: "tablist"
-}, YG = { class: "mjr-messages-panels" }, VG = { class: "mjr-messages-empty" }, kG = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager", XG = {
+}, XG = { class: "mjr-messages-panels" }, NG = { class: "mjr-messages-empty" }, RG = "https://github.com/MajoorWaldi/ComfyUI-Majoor-AssetsManager", FG = {
__name: "MessagePopover",
setup(e, { expose: t }) {
const n = Ae(null), i = Ae(null), o = Ae(null), r = Ae(null), l = Ae(null), a = Ae(null), c = Ae(null), s = Ae(null), d = Ae(null), u = Ae(null), I = Ae(null);
@@ -36746,46 +36799,46 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
get shortcutsPanel() {
return I.value;
}
- }), (p, M) => (Ie(), he("div", {
+ }), (p, S) => (be(), Ce("div", {
class: "mjr-popover mjr-messages-popover",
id: "mjr-messages-popover",
role: "dialog",
- "aria-label": Ge(m)("label.messages", "Messages"),
+ "aria-label": xe(m)("label.messages", "Messages"),
"aria-hidden": "true",
tabindex: "-1",
style: { display: "none" }
}, [
- ne("div", SG, [
- ne("div", {
+ ie("div", jG, [
+ ie("div", {
ref_key: "titleRef",
ref: n,
class: "mjr-messages-title"
- }, Ye(Ge(m)("label.messages", "Messages")), 513),
- ne("div", GG, [
- ne("a", {
- href: kG,
+ }, Ye(xe(m)("label.messages", "Messages")), 513),
+ ie("div", vG, [
+ ie("a", {
+ href: RG,
target: "_blank",
rel: "noopener noreferrer",
class: "mjr-btn mjr-messages-star-link",
- title: Ge(m)("tooltip.starGithub", "Open GitHub and give a star")
+ title: xe(m)("tooltip.starGithub", "Open GitHub and give a star")
}, [
- M[0] || (M[0] = ne("span", {
+ S[0] || (S[0] = ie("span", {
class: "mjr-messages-star-icon",
"aria-hidden": "true"
}, "β
", -1)),
- ne("span", jG, Ye(Ge(m)("btn.giveStar", "Give a star")), 1)
- ], 8, xG),
- ne("button", {
+ ie("span", VG, Ye(xe(m)("btn.giveStar", "Give a star")), 1)
+ ], 8, LG),
+ ie("button", {
ref_key: "markReadBtnRef",
ref: i,
type: "button",
class: "mjr-btn mjr-messages-mark-read-btn",
- title: Ge(m)("tooltip.markMessagesRead", "Mark all messages as read")
- }, Ye(Ge(m)("btn.markAllRead", "Mark all read")), 9, vG)
+ title: xe(m)("tooltip.markMessagesRead", "Mark all messages as read")
+ }, Ye(xe(m)("btn.markAllRead", "Mark all read")), 9, YG)
])
]),
- ne("div", LG, [
- ne("button", {
+ ie("div", kG, [
+ ie("button", {
ref_key: "messageTabBtnRef",
ref: o,
type: "button",
@@ -36795,8 +36848,8 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
"aria-controls": "mjr-messages-panel",
id: "mjr-messages-tab"
}, [
- ne("span", null, Ye(Ge(m)("label.messages", "Messages")), 1),
- ne("span", {
+ ie("span", null, Ye(xe(m)("label.messages", "Messages")), 1),
+ ie("span", {
ref_key: "messageTabBadgeRef",
ref: r,
class: "mjr-tab-count-badge",
@@ -36804,7 +36857,7 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
style: { display: "none" }
}, null, 512)
], 512),
- ne("button", {
+ ie("button", {
ref_key: "historyTabBtnRef",
ref: l,
type: "button",
@@ -36814,15 +36867,15 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
"aria-controls": "mjr-history-panel",
id: "mjr-history-tab"
}, [
- ne("span", null, Ye(Ge(m)("label.toastHistory", "History")), 1),
- ne("span", {
+ ie("span", null, Ye(xe(m)("label.toastHistory", "History")), 1),
+ ie("span", {
ref_key: "historyTabCountRef",
ref: c,
class: "mjr-tab-count-badge",
"aria-hidden": "true",
style: { display: "none" }
}, null, 512),
- ne("span", {
+ ie("span", {
ref_key: "historyTabBadgeRef",
ref: a,
class: "mjr-tab-unread-dot",
@@ -36830,7 +36883,7 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
style: { display: "none" }
}, null, 512)
], 512),
- ne("button", {
+ ie("button", {
ref_key: "shortcutsTabBtnRef",
ref: s,
type: "button",
@@ -36839,10 +36892,10 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
"aria-selected": "false",
"aria-controls": "mjr-shortcuts-panel",
id: "mjr-shortcuts-tab"
- }, Ye(Ge(m)("msg.shortcuts.title", "Shortcut Guide")), 513)
+ }, Ye(xe(m)("msg.shortcuts.title", "Shortcut Guide")), 513)
]),
- ne("div", YG, [
- ne("div", {
+ ie("div", XG, [
+ ie("div", {
ref_key: "messageListRef",
ref: d,
class: "mjr-messages-list",
@@ -36850,9 +36903,9 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
role: "tabpanel",
"aria-labelledby": "mjr-messages-tab"
}, [
- ne("div", VG, Ye(Ge(m)("msg.noMessages", "No messages for now.")), 1)
+ ie("div", NG, Ye(xe(m)("msg.noMessages", "No messages for now.")), 1)
], 512),
- ne("div", {
+ ie("div", {
ref_key: "historyPanelRef",
ref: u,
class: "mjr-messages-history-panel",
@@ -36861,7 +36914,7 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
"aria-labelledby": "mjr-history-tab",
hidden: ""
}, null, 512),
- ne("div", {
+ ie("div", {
ref_key: "shortcutsPanelRef",
ref: I,
class: "mjr-messages-shortcuts-panel",
@@ -36871,34 +36924,34 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
hidden: ""
}, null, 512)
])
- ], 8, MG));
+ ], 8, xG));
}
-}, NG = { class: "mjr-am-header-row" }, RG = { class: "mjr-am-header-left" }, FG = { class: "mjr-am-header-title" }, OG = ["data-mjr-version-channel", "title"], zG = { class: "mjr-tabs" }, JG = ["title"], TG = ["title"], BG = ["title"], UG = ["title"], KG = ["title"], DG = { class: "mjr-am-header-tools" }, EG = {
+}, OG = { class: "mjr-am-header-row" }, zG = { class: "mjr-am-header-left" }, JG = { class: "mjr-am-header-title" }, TG = ["data-mjr-version-channel", "title"], BG = { class: "mjr-tabs" }, UG = ["title"], KG = ["title"], DG = ["title"], EG = ["title"], HG = ["title"], qG = { class: "mjr-am-header-tools" }, PG = {
class: "mjr-popover-anchor",
style: { display: "none" }
-}, HG = ["title", "aria-label"], qG = ["title", "aria-label"], PG = { class: "mjr-popover-anchor" }, QG = ["title", "aria-label"], _G = { class: "mjr-popover-anchor" }, $G = ["title", "aria-label"], ex = { class: "mjr-popover-anchor" }, tx = ["title", "aria-label"], nx = { class: "mjr-popover-anchor" }, ix = ["title", "aria-label"], ox = { class: "mjr-popover-anchor" }, rx = ["title", "aria-label"], lx = "mjr-am-version-badge-label", ax = "V, Ctrl/Cmd+V", cx = {
+}, QG = ["title", "aria-label"], _G = ["title", "aria-label"], $G = { class: "mjr-popover-anchor" }, ex = ["title", "aria-label"], tx = { class: "mjr-popover-anchor" }, nx = ["title", "aria-label"], ix = { class: "mjr-popover-anchor" }, ox = ["title", "aria-label"], rx = { class: "mjr-popover-anchor" }, lx = ["title", "aria-label"], ax = { class: "mjr-popover-anchor" }, cx = ["title", "aria-label"], sx = "mjr-am-version-badge-label", dx = "V, Ctrl/Cmd+V", ux = {
__name: "HeaderSection",
setup(e, { expose: t }) {
let n = null;
function i() {
- return n || (n = Promise.resolve({}).catch((H) => {
- throw n = null, H;
+ return n || (n = Promise.resolve({}).catch((U) => {
+ throw n = null, U;
})), n;
}
- function o(H, $ = "") {
- const _ = String(H || "").trim().toLowerCase(), le = String($ || "").trim().toLowerCase();
- return ["nightly", "dev", "alpha", "experimental"].some((de) => _.includes(de) || le.includes(de)) || _.includes("+") || _.length > 10 && /^[a-f0-9]+$/i.test(_);
+ function o(U, Q = "") {
+ const _ = String(U || "").trim().toLowerCase(), le = String(Q || "").trim().toLowerCase();
+ return ["nightly", "dev", "alpha", "experimental"].some((se) => _.includes(se) || le.includes(se)) || _.includes("+") || _.length > 10 && /^[a-f0-9]+$/i.test(_);
}
function r() {
- var H, $, _;
+ var U, Q, _;
try {
if (typeof window < "u" && (window != null && window.MajoorAssetsManagerBranch))
return String(window.MajoorAssetsManagerBranch);
} catch (le) {
- (H = console.debug) == null || H.call(console, le);
+ (U = console.debug) == null || U.call(console, le);
}
try {
- if (typeof process < "u" && (($ = process == null ? void 0 : process.env) != null && $.MAJOR_ASSETS_MANAGER_BRANCH))
+ if (typeof process < "u" && ((Q = process == null ? void 0 : process.env) != null && Q.MAJOR_ASSETS_MANAGER_BRANCH))
return String(process.env.MAJOR_ASSETS_MANAGER_BRANCH);
} catch (le) {
(_ = console.debug) == null || _.call(console, le);
@@ -36912,136 +36965,136 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
rating_desc: "pi pi-star-fill",
size_desc: "pi pi-sort-numeric-down-alt",
size_asc: "pi pi-sort-numeric-up-alt"
- }, a = Mo(), s = r() === "nightly", d = Ae(null), u = Ae(null), I = Ae(null), p = Ae(null), M = Ae(null), Z = Ae(null), A = Ae(null), g = Ae(null), h = Ae(null), f = Ae(null), b = Ae(null), v = Ae(null), C = Ae(null), S = Ae(null), W = Ae(null), y = Ae(null), k = Ae(null), G = Ae(null), z = Ae(null), x = Ae(null), w = Ae(null), X = Ae(s ? "nightly" : "v?"), V = Ae(s ? "nightly" : "stable"), R = Ae(!1), j = Ae(!1), L = Ae(!1), N = Je(
+ }, a = Go(), s = r() === "nightly", d = Ae(null), u = Ae(null), I = Ae(null), p = Ae(null), S = Ae(null), A = Ae(null), C = Ae(null), g = Ae(null), Z = Ae(null), f = Ae(null), b = Ae(null), L = Ae(null), h = Ae(null), G = Ae(null), W = Ae(null), y = Ae(null), X = Ae(null), x = Ae(null), T = Ae(null), v = Ae(null), w = Ae(null), R = Ae(s ? "nightly" : "v?"), Y = Ae(s ? "nightly" : "stable"), F = Ae(!1), N = Ae(!1), V = Ae(!1), k = ze(
() => l[a.sort] ?? "pi pi-sort-amount-down"
- ), q = Je(
+ ), K = ze(
() => String(a.viewScope || a.scope || "output").toLowerCase()
- ), O = Je(
- () => q.value === "similar" || Array.isArray(a.similarResults) && a.similarResults.length > 0 || !!a.similarTitle
+ ), z = ze(
+ () => K.value === "similar" || Array.isArray(a.similarResults) && a.similarResults.length > 0 || !!a.similarTitle
), B = {
get tabAll() {
- return k.value;
+ return X.value;
},
get tabInputs() {
- return G.value;
+ return x.value;
},
get tabOutputs() {
- return z.value;
+ return T.value;
},
get tabCustom() {
- return x.value;
+ return v.value;
},
get tabSimilar() {
return w.value;
}
- }, J = Je(() => ({
+ }, J = ze(() => ({
position: "relative",
fontSize: "10px",
- opacity: j.value ? "1" : "0.6",
+ opacity: N.value ? "1" : "0.6",
marginLeft: "6px",
padding: "2px 5px",
borderRadius: "4px",
- background: j.value ? "rgba(255,255,255,0.15)" : "rgba(255,255,255,0.08)",
+ background: N.value ? "rgba(255,255,255,0.15)" : "rgba(255,255,255,0.08)",
color: "inherit",
textDecoration: "none",
cursor: "pointer",
transition: "opacity 0.2s, background 0.2s",
verticalAlign: "middle"
- })), T = Je(
- () => L.value ? m("tooltip.closeMFV", "Close Floating Viewer") : m("tooltip.openMFV", "Open Floating Viewer")
- ), D = Je(
- () => L.value ? "pi pi-eye-slash" : "pi pi-eye"
+ })), P = ze(
+ () => V.value ? m("tooltip.closeMFV", "Close Floating Viewer") : m("tooltip.openMFV", "Open Floating Viewer")
+ ), H = ze(
+ () => V.value ? "pi pi-eye-slash" : "pi pi-eye"
);
- function Q(H, { channel: $ = "" } = {}) {
- X.value = String(H || ""), $ && (V.value = $);
+ function $(U, { channel: Q = "" } = {}) {
+ R.value = String(U || ""), Q && (Y.value = Q);
}
- function E(H) {
- i().then(($) => {
- const _ = V.value.toLowerCase() === "nightly" || X.value.toLowerCase() === "nightly";
- if (!H && !_) {
- const le = (typeof ($ == null ? void 0 : $.version) == "string" ? $.version.trim() : "") || "";
- le && Q(`v${le}`, { channel: "stable" });
+ function E(U) {
+ i().then((Q) => {
+ const _ = Y.value.toLowerCase() === "nightly" || R.value.toLowerCase() === "nightly";
+ if (!U && !_) {
+ const le = (typeof (Q == null ? void 0 : Q.version) == "string" ? Q.version.trim() : "") || "";
+ le && $(`v${le}`, { channel: "stable" });
}
}).catch(() => {
n = null;
});
}
- async function K(H) {
- var $, _;
+ async function oe(U) {
+ var Q, _;
try {
- const le = await Rt(lt.VERSION, { cache: "no-cache" });
+ const le = await Ft(ct.VERSION, { cache: "no-cache" });
if (!(le != null && le.ok)) return;
- const se = String((($ = le.data) == null ? void 0 : $.version) || "").trim(), de = String(((_ = le.data) == null ? void 0 : _.branch) || "").trim().toLowerCase();
- if (o(se, de) || H) {
- Q("nightly", { channel: "nightly" });
+ const de = String(((Q = le.data) == null ? void 0 : Q.version) || "").trim(), se = String(((_ = le.data) == null ? void 0 : _.branch) || "").trim().toLowerCase();
+ if (o(de, se) || U) {
+ $("nightly", { channel: "nightly" });
return;
}
- se && Q(
- se.startsWith("v") ? se : `v${se}`,
+ de && $(
+ de.startsWith("v") ? de : `v${de}`,
{ channel: "stable" }
);
} catch {
}
}
- function F(H) {
- const $ = String((H == null ? void 0 : H.channel) || "").trim().toLowerCase(), _ = String((H == null ? void 0 : H.current) || "").trim().toLowerCase(), le = String((H == null ? void 0 : H.latest) || "").trim().toLowerCase();
- ($ === "nightly" || _ === "nightly" || le === "nightly") && Q("nightly", { channel: "nightly" }), R.value = !!(H != null && H.available);
+ function M(U) {
+ const Q = String((U == null ? void 0 : U.channel) || "").trim().toLowerCase(), _ = String((U == null ? void 0 : U.current) || "").trim().toLowerCase(), le = String((U == null ? void 0 : U.latest) || "").trim().toLowerCase();
+ (Q === "nightly" || _ === "nightly" || le === "nightly") && $("nightly", { channel: "nightly" }), F.value = !!(U != null && U.available);
}
- function Y() {
- var H;
+ function j() {
+ var U;
try {
- QI(g.value, T.value, ax);
- } catch ($) {
- (H = console.debug) == null || H.call(console, $);
+ _I(g.value, P.value, dx);
+ } catch (Q) {
+ (U = console.debug) == null || U.call(console, Q);
}
}
- function U() {
- var H;
+ function O() {
+ var U;
try {
if (typeof document > "u") return;
- L.value = !!document.querySelector(".mjr-mfv.is-visible");
- } catch ($) {
- (H = console.debug) == null || H.call(console, $);
+ V.value = !!document.querySelector(".mjr-mfv.is-visible");
+ } catch (Q) {
+ (U = console.debug) == null || U.call(console, Q);
}
}
- function P(H) {
- var $;
- L.value = !!(($ = H == null ? void 0 : H.detail) != null && $.visible);
+ function D(U) {
+ var Q;
+ V.value = !!((Q = U == null ? void 0 : U.detail) != null && Q.visible);
}
- function ee(H) {
- var $;
+ function q(U) {
+ var Q;
try {
- F(H == null ? void 0 : H.detail);
+ M(U == null ? void 0 : U.detail);
} catch (_) {
- ($ = console.debug) == null || $.call(console, _);
+ (Q = console.debug) == null || Q.call(console, _);
}
}
- function oe() {
- window.dispatchEvent(new CustomEvent(ft.MFV_TOGGLE));
+ function ee() {
+ window.dispatchEvent(new CustomEvent(ht.MFV_TOGGLE));
}
function ce() {
- var H;
+ var U;
try {
- typeof window < "u" && (window.removeEventListener(Ec, ee), window.removeEventListener(ft.MFV_VISIBILITY_CHANGED, P));
- } catch ($) {
- (H = console.debug) == null || H.call(console, $);
+ typeof window < "u" && (window.removeEventListener(qc, q), window.removeEventListener(ht.MFV_VISIBILITY_CHANGED, D));
+ } catch (Q) {
+ (U = console.debug) == null || U.call(console, Q);
}
}
- an(L, () => {
- Y();
+ cn(V, () => {
+ j();
}), Dn(async () => {
- var H, $, _;
- await Ao();
+ var U, Q, _;
+ await wo();
try {
- F(Xh());
+ M(Fh());
} catch (le) {
- (H = console.debug) == null || H.call(console, le);
+ (U = console.debug) == null || U.call(console, le);
}
- U(), Y(), E(s), K(s);
+ O(), j(), E(s), oe(s);
try {
- typeof window < "u" && (window.addEventListener(Ec, ee), window.addEventListener(ft.MFV_VISIBILITY_CHANGED, P));
+ typeof window < "u" && (window.addEventListener(qc, q), window.addEventListener(ht.MFV_VISIBILITY_CHANGED, D));
} catch (le) {
- ($ = console.debug) == null || $.call(console, le);
+ (Q = console.debug) == null || Q.call(console, le);
}
try {
d.value._mjrVersionUpdateCleanup = ce;
@@ -37051,7 +37104,7 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
}), _n(() => {
ce();
});
- const pe = document.createElement("div");
+ const ue = document.createElement("div");
return t({
isVueHeader: !0,
// Header root
@@ -37072,216 +37125,216 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
return p.value;
},
get sortBtn() {
- return M.value;
+ return S.value;
},
get collectionsBtn() {
- return Z.value;
- },
- get pinnedFoldersBtn() {
return A.value;
},
+ get pinnedFoldersBtn() {
+ return C.value;
+ },
get messageBtn() {
- return h.value;
+ return Z.value;
},
// CustomRootsPopover (Vue)
get customPopover() {
- var H;
- return ((H = W.value) == null ? void 0 : H.$el) ?? null;
+ var U;
+ return ((U = W.value) == null ? void 0 : U.$el) ?? null;
},
get customSelect() {
- var H;
- return ((H = W.value) == null ? void 0 : H.customSelect) ?? null;
+ var U;
+ return ((U = W.value) == null ? void 0 : U.customSelect) ?? null;
},
get customAddBtn() {
- var H;
- return ((H = W.value) == null ? void 0 : H.customAddBtn) ?? null;
+ var U;
+ return ((U = W.value) == null ? void 0 : U.customAddBtn) ?? null;
},
get customRemoveBtn() {
- var H;
- return ((H = W.value) == null ? void 0 : H.customRemoveBtn) ?? null;
+ var U;
+ return ((U = W.value) == null ? void 0 : U.customRemoveBtn) ?? null;
},
// FilterPopover: expose real DOM element ($el) so legacy popovers.toggle() works
get filterPopover() {
- var H;
- return ((H = v.value) == null ? void 0 : H.$el) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.$el) ?? null;
},
get kindSelect() {
- var H;
- return ((H = v.value) == null ? void 0 : H.kindSelect) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.kindSelect) ?? null;
},
get wfCheckbox() {
- var H;
- return ((H = v.value) == null ? void 0 : H.wfCheckbox) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.wfCheckbox) ?? null;
},
get workflowTypeSelect() {
- var H;
- return ((H = v.value) == null ? void 0 : H.workflowTypeSelect) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.workflowTypeSelect) ?? null;
},
get ratingSelect() {
- var H;
- return ((H = v.value) == null ? void 0 : H.ratingSelect) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.ratingSelect) ?? null;
},
get minSizeInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.minSizeInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.minSizeInput) ?? null;
},
get maxSizeInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.maxSizeInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.maxSizeInput) ?? null;
},
get resolutionPresetSelect() {
- var H;
- return ((H = v.value) == null ? void 0 : H.resolutionPresetSelect) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.resolutionPresetSelect) ?? null;
},
get minWidthInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.minWidthInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.minWidthInput) ?? null;
},
get minHeightInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.minHeightInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.minHeightInput) ?? null;
},
get maxWidthInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.maxWidthInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.maxWidthInput) ?? null;
},
get maxHeightInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.maxHeightInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.maxHeightInput) ?? null;
},
get dateRangeSelect() {
- var H;
- return ((H = v.value) == null ? void 0 : H.dateRangeSelect) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.dateRangeSelect) ?? null;
},
get dateExactInput() {
- var H;
- return ((H = v.value) == null ? void 0 : H.dateExactInput) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.dateExactInput) ?? null;
},
get agendaContainer() {
- var H;
- return ((H = v.value) == null ? void 0 : H.agendaContainer) ?? null;
+ var U;
+ return ((U = L.value) == null ? void 0 : U.agendaContainer) ?? null;
},
// SortPopover: expose real DOM element ($el) so legacy popovers.toggle() works
get sortPopover() {
- var H;
- return ((H = b.value) == null ? void 0 : H.$el) ?? null;
+ var U;
+ return ((U = b.value) == null ? void 0 : U.$el) ?? null;
},
- sortMenu: pe,
+ sortMenu: ue,
// CollectionsPopover (Vue)
get collectionsPopover() {
- var H;
- return ((H = C.value) == null ? void 0 : H.$el) ?? null;
+ var U;
+ return ((U = h.value) == null ? void 0 : U.$el) ?? null;
},
get refreshCollectionsPopover() {
- var H;
- return ((H = C.value) == null ? void 0 : H.refresh) ?? null;
+ var U;
+ return ((U = h.value) == null ? void 0 : U.refresh) ?? null;
},
// PinnedFoldersPopover (Vue)
get pinnedFoldersPopover() {
- var H;
- return ((H = S.value) == null ? void 0 : H.$el) ?? null;
+ var U;
+ return ((U = G.value) == null ? void 0 : U.$el) ?? null;
},
get pinnedFoldersMenu() {
- var H;
- return ((H = S.value) == null ? void 0 : H.pinnedFoldersMenu) ?? null;
+ var U;
+ return ((U = G.value) == null ? void 0 : U.pinnedFoldersMenu) ?? null;
},
// MessagePopover (Vue)
get messagePopover() {
- var H;
- return ((H = y.value) == null ? void 0 : H.$el) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.$el) ?? null;
},
get messagePopoverTitle() {
- var H;
- return ((H = y.value) == null ? void 0 : H.title) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.title) ?? null;
},
get messageTabBtn() {
- var H;
- return ((H = y.value) == null ? void 0 : H.messageTabBtn) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.messageTabBtn) ?? null;
},
get messageTabBadge() {
- var H;
- return ((H = y.value) == null ? void 0 : H.messageTabBadge) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.messageTabBadge) ?? null;
},
get historyTabBtn() {
- var H;
- return ((H = y.value) == null ? void 0 : H.historyTabBtn) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.historyTabBtn) ?? null;
},
get historyTabBadge() {
- var H;
- return ((H = y.value) == null ? void 0 : H.historyTabBadge) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.historyTabBadge) ?? null;
},
get historyTabCount() {
- var H;
- return ((H = y.value) == null ? void 0 : H.historyTabCount) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.historyTabCount) ?? null;
},
get historyPanel() {
- var H;
- return ((H = y.value) == null ? void 0 : H.historyPanel) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.historyPanel) ?? null;
},
get shortcutsTabBtn() {
- var H;
- return ((H = y.value) == null ? void 0 : H.shortcutsTabBtn) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.shortcutsTabBtn) ?? null;
},
get messageList() {
- var H;
- return ((H = y.value) == null ? void 0 : H.messageList) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.messageList) ?? null;
},
get shortcutsPanel() {
- var H;
- return ((H = y.value) == null ? void 0 : H.shortcutsPanel) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.shortcutsPanel) ?? null;
},
get markReadBtn() {
- var H;
- return ((H = y.value) == null ? void 0 : H.markReadBtn) ?? null;
+ var U;
+ return ((U = y.value) == null ? void 0 : U.markReadBtn) ?? null;
},
// Search bar refs
get searchSection() {
- var H;
- return ((H = f.value) == null ? void 0 : H.searchSection) ?? null;
+ var U;
+ return ((U = f.value) == null ? void 0 : U.searchSection) ?? null;
},
get searchInputEl() {
- var H;
- return ((H = f.value) == null ? void 0 : H.searchInputEl) ?? null;
+ var U;
+ return ((U = f.value) == null ? void 0 : U.searchInputEl) ?? null;
},
get similarBtn() {
- var H;
- return ((H = f.value) == null ? void 0 : H.similarBtn) ?? null;
+ var U;
+ return ((U = f.value) == null ? void 0 : U.similarBtn) ?? null;
},
- setSemanticEnabled(H) {
- var $, _;
- (_ = ($ = f.value) == null ? void 0 : $.setSemanticEnabled) == null || _.call($, H);
+ setSemanticEnabled(U) {
+ var Q, _;
+ (_ = (Q = f.value) == null ? void 0 : Q.setSemanticEnabled) == null || _.call(Q, U);
},
_headerDispose: ce
- }), (H, $) => (Ie(), he(Xt, null, [
- ne("div", {
+ }), (U, Q) => (be(), Ce(Nt, null, [
+ ie("div", {
ref_key: "headerRef",
ref: d,
class: "mjr-am-header"
}, [
- ne("div", NG, [
- ne("div", RG, [
- $[2] || ($[2] = ne("i", {
+ ie("div", OG, [
+ ie("div", zG, [
+ Q[2] || (Q[2] = ie("i", {
class: "mjr-am-header-icon pi pi-folder",
"aria-hidden": "true"
}, null, -1)),
- ne("div", FG, Ye(Ge(m)("manager.title")), 1),
- ne("a", {
+ ie("div", JG, Ye(xe(m)("manager.title")), 1),
+ ie("a", {
href: "https://ko-fi.com/majoorwaldi",
target: "_blank",
rel: "noopener noreferrer",
class: "mjr-am-version-badge",
- "data-mjr-version-channel": V.value,
- title: Ge(m)("tooltip.supportKofi"),
- style: vt(J.value),
- onMouseenter: $[0] || ($[0] = (_) => j.value = !0),
- onMouseleave: $[1] || ($[1] = (_) => j.value = !1)
+ "data-mjr-version-channel": Y.value,
+ title: xe(m)("tooltip.supportKofi"),
+ style: Lt(J.value),
+ onMouseenter: Q[0] || (Q[0] = (_) => N.value = !0),
+ onMouseleave: Q[1] || (Q[1] = (_) => N.value = !1)
}, [
- ne("span", {
- class: Zn(lx)
- }, Ye(X.value), 1),
- ne("span", {
+ ie("span", {
+ class: Zn(sx)
+ }, Ye(R.value), 1),
+ ie("span", {
"aria-hidden": "true",
- style: vt({
+ style: Lt({
position: "absolute",
top: "2px",
right: "-3px",
@@ -37290,114 +37343,114 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
borderRadius: "50%",
background: "#f44336",
boxShadow: "0 0 0 1px rgba(255,255,255,0.6)",
- display: R.value ? "block" : "none",
+ display: F.value ? "block" : "none",
pointerEvents: "none"
})
}, null, 4)
- ], 44, OG)
+ ], 44, TG)
]),
- ne("div", {
+ ie("div", {
ref_key: "headerActionsRef",
ref: u,
class: "mjr-am-header-actions"
}, [
- ne("div", zG, [
- ne("button", {
+ ie("div", BG, [
+ ie("button", {
ref_key: "tabAllRef",
- ref: k,
+ ref: X,
type: "button",
- class: Zn(["mjr-tab", { "is-active": q.value === "all" }]),
+ class: Zn(["mjr-tab", { "is-active": K.value === "all" }]),
"data-scope": "all",
- title: Ge(m)("tooltip.tab.all")
- }, Ye(Ge(m)("tab.all")), 11, JG),
- ne("button", {
+ title: xe(m)("tooltip.tab.all")
+ }, Ye(xe(m)("tab.all")), 11, UG),
+ ie("button", {
ref_key: "tabInputsRef",
- ref: G,
- type: "button",
- class: Zn(["mjr-tab", { "is-active": q.value === "input" }]),
- "data-scope": "input",
- title: Ge(m)("tooltip.tab.input")
- }, Ye(Ge(m)("tab.input")), 11, TG),
- ne("button", {
- ref_key: "tabOutputsRef",
- ref: z,
- type: "button",
- class: Zn(["mjr-tab", { "is-active": q.value === "output" }]),
- "data-scope": "output",
- title: Ge(m)("tooltip.tab.output")
- }, Ye(Ge(m)("tab.output")), 11, BG),
- ne("button", {
- ref_key: "tabCustomRef",
ref: x,
type: "button",
- class: Zn(["mjr-tab", { "is-active": q.value === "custom" }]),
+ class: Zn(["mjr-tab", { "is-active": K.value === "input" }]),
+ "data-scope": "input",
+ title: xe(m)("tooltip.tab.input")
+ }, Ye(xe(m)("tab.input")), 11, KG),
+ ie("button", {
+ ref_key: "tabOutputsRef",
+ ref: T,
+ type: "button",
+ class: Zn(["mjr-tab", { "is-active": K.value === "output" }]),
+ "data-scope": "output",
+ title: xe(m)("tooltip.tab.output")
+ }, Ye(xe(m)("tab.output")), 11, DG),
+ ie("button", {
+ ref_key: "tabCustomRef",
+ ref: v,
+ type: "button",
+ class: Zn(["mjr-tab", { "is-active": K.value === "custom" }]),
"data-scope": "custom",
- title: Ge(m)("tooltip.tab.custom")
- }, Ye(Ge(m)("tab.custom")), 11, UG),
- ne("button", {
+ title: xe(m)("tooltip.tab.custom")
+ }, Ye(xe(m)("tab.custom")), 11, EG),
+ ie("button", {
ref_key: "tabSimilarRef",
ref: w,
type: "button",
- class: Zn(["mjr-tab", { "is-active": q.value === "similar" }]),
+ class: Zn(["mjr-tab", { "is-active": K.value === "similar" }]),
"data-scope": "similar",
- style: vt({ display: O.value ? "" : "none" }),
- title: Ge(m)("tooltip.tab.similar", "Browse current similar findings")
- }, Ye(Ge(m)("tab.similar", "Similar")), 15, KG)
+ style: Lt({ display: z.value ? "" : "none" }),
+ title: xe(m)("tooltip.tab.similar", "Browse current similar findings")
+ }, Ye(xe(m)("tab.similar", "Similar")), 15, HG)
]),
- ne("div", DG, [
- ne("div", EG, [
- ne("button", {
+ ie("div", qG, [
+ ie("div", PG, [
+ ie("button", {
ref_key: "customMenuBtnRef",
ref: I,
type: "button",
class: "mjr-icon-btn",
- title: Ge(m)("tooltip.browserFolders"),
- "aria-label": Ge(m)("tooltip.browserFolders")
- }, [...$[3] || ($[3] = [
- ne("i", {
+ title: xe(m)("tooltip.browserFolders"),
+ "aria-label": xe(m)("tooltip.browserFolders")
+ }, [...Q[3] || (Q[3] = [
+ ie("i", {
class: "pi pi-folder-open",
"aria-hidden": "true"
}, null, -1)
- ])], 8, HG),
- fn(wG, {
+ ])], 8, QG),
+ fn(GG, {
ref_key: "customPopoverRef",
ref: W
}, null, 512)
]),
- ne("button", {
+ ie("button", {
ref_key: "mfvBtnRef",
ref: g,
type: "button",
- class: Zn(["mjr-icon-btn", { "mjr-mfv-btn-active": L.value }]),
- title: T.value,
- "aria-label": T.value,
- onClick: oe
+ class: Zn(["mjr-icon-btn", { "mjr-mfv-btn-active": V.value }]),
+ title: P.value,
+ "aria-label": P.value,
+ onClick: ee
}, [
- ne("i", {
- class: Zn(D.value),
+ ie("i", {
+ class: Zn(H.value),
"aria-hidden": "true"
}, null, 2)
- ], 10, qG),
- ne("div", PG, [
- ne("button", {
+ ], 10, _G),
+ ie("div", $G, [
+ ie("button", {
ref_key: "messageBtnRef",
- ref: h,
+ ref: Z,
type: "button",
class: "mjr-icon-btn mjr-message-btn",
- title: Ge(m)("tooltip.openMessages", "Messages and updates"),
- "aria-label": Ge(m)("tooltip.openMessages", "Messages and updates")
- }, [...$[4] || ($[4] = [
- ne("i", {
+ title: xe(m)("tooltip.openMessages", "Messages and updates"),
+ "aria-label": xe(m)("tooltip.openMessages", "Messages and updates")
+ }, [...Q[4] || (Q[4] = [
+ ie("i", {
class: "pi pi-info-circle",
"aria-hidden": "true"
}, null, -1),
- ne("span", {
+ ie("span", {
class: "mjr-message-badge",
style: { display: "none" },
"aria-hidden": "true"
}, null, -1)
- ])], 8, QG),
- fn(XG, {
+ ])], 8, ex),
+ fn(FG, {
ref_key: "messagePopoverRef",
ref: y
}, null, 512)
@@ -37406,91 +37459,91 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
], 512)
])
], 512),
- fn(A2, {
+ fn(M2, {
ref_key: "searchBarRef",
ref: f
}, {
- "filter-anchor": jl(() => [
- ne("div", _G, [
- ne("button", {
+ "filter-anchor": vl(() => [
+ ie("div", tx, [
+ ie("button", {
ref_key: "filterBtnRef",
ref: p,
type: "button",
class: "mjr-icon-btn",
- title: Ge(m)("label.filters"),
- "aria-label": Ge(m)("label.filters")
- }, [...$[5] || ($[5] = [
- ne("i", {
+ title: xe(m)("label.filters"),
+ "aria-label": xe(m)("label.filters")
+ }, [...Q[5] || (Q[5] = [
+ ie("i", {
class: "pi pi-filter",
"aria-hidden": "true"
}, null, -1)
- ])], 8, $G),
- fn(VS, {
+ ])], 8, nx),
+ fn(NS, {
ref_key: "filterPopoverRef",
- ref: v
+ ref: L
}, null, 512)
])
]),
- "sort-anchor": jl(() => [
- ne("div", ex, [
- ne("button", {
+ "sort-anchor": vl(() => [
+ ie("div", ix, [
+ ie("button", {
ref_key: "sortBtnRef",
- ref: M,
+ ref: S,
type: "button",
class: "mjr-icon-btn",
- title: Ge(m)("label.sort"),
- "aria-label": Ge(m)("label.sort")
+ title: xe(m)("label.sort"),
+ "aria-label": xe(m)("label.sort")
}, [
- ne("i", {
- class: Zn(N.value),
+ ie("i", {
+ class: Zn(k.value),
"aria-hidden": "true"
}, null, 2)
- ], 8, tx),
- fn(G2, {
+ ], 8, ox),
+ fn(v2, {
ref_key: "sortPopoverRef",
ref: b
}, null, 512)
])
]),
- "collections-anchor": jl(() => [
- ne("div", nx, [
- ne("button", {
+ "collections-anchor": vl(() => [
+ ie("div", rx, [
+ ie("button", {
ref_key: "collectionsBtnRef",
- ref: Z,
- type: "button",
- class: "mjr-icon-btn",
- title: Ge(m)("label.collections"),
- "aria-label": Ge(m)("label.collections")
- }, [...$[6] || ($[6] = [
- ne("i", {
- class: "pi pi-bookmark",
- "aria-hidden": "true"
- }, null, -1)
- ])], 8, ix),
- fn(yG, {
- ref_key: "collectionsPopoverRef",
- ref: C
- }, null, 512)
- ])
- ]),
- "pinned-folders-anchor": jl(() => [
- ne("div", ox, [
- ne("button", {
- ref_key: "pinnedFoldersBtnRef",
ref: A,
type: "button",
class: "mjr-icon-btn",
- title: Ge(m)("tooltip.pinnedFolders"),
- "aria-label": Ge(m)("tooltip.pinnedFolders")
- }, [...$[7] || ($[7] = [
- ne("i", {
+ title: xe(m)("label.collections"),
+ "aria-label": xe(m)("label.collections")
+ }, [...Q[6] || (Q[6] = [
+ ie("i", {
+ class: "pi pi-bookmark",
+ "aria-hidden": "true"
+ }, null, -1)
+ ])], 8, lx),
+ fn(CG, {
+ ref_key: "collectionsPopoverRef",
+ ref: h
+ }, null, 512)
+ ])
+ ]),
+ "pinned-folders-anchor": vl(() => [
+ ie("div", ax, [
+ ie("button", {
+ ref_key: "pinnedFoldersBtnRef",
+ ref: C,
+ type: "button",
+ class: "mjr-icon-btn",
+ title: xe(m)("tooltip.pinnedFolders"),
+ "aria-label": xe(m)("tooltip.pinnedFolders")
+ }, [...Q[7] || (Q[7] = [
+ ie("i", {
class: "pi pi-folder",
"aria-hidden": "true"
}, null, -1)
- ])], 8, rx),
- fn(hG, {
+ ])], 8, cx),
+ fn(AG, {
ref_key: "pinnedFoldersPopoverRef",
- ref: S
+ ref: G
}, null, 512)
])
]),
@@ -37504,14 +37557,14 @@ const OS = { class: "mjr-menu mjr-collections-menu" }, zS = ["disabled"], JS = {
} catch {
return "";
}
-}, sx = (e) => {
+}, mx = (e) => {
const t = String(e || "");
return m(t === "name_asc" ? "sort.nameAZ" : t === "name_desc" ? "sort.nameZA" : t === "mtime_asc" ? "sort.oldest" : "sort.newest");
-}, dx = (e) => {
+}, gx = (e) => {
const t = String(e).toLowerCase();
return t === "similar" ? m("scope.similar", "Similar") : m(t === "custom" ? "scope.customBrowser" : t === "all" ? "tab.all" : t === "input" || t === "inputs" ? "scope.input" : "scope.output");
};
-function Ci({ label: e, value: t, onClear: n } = {}) {
+function Ai({ label: e, value: t, onClear: n } = {}) {
const i = document.createElement("div");
i.className = "mjr-context-pill";
const o = document.createElement("span");
@@ -37536,157 +37589,157 @@ function Ci({ label: e, value: t, onClear: n } = {}) {
}
return i;
}
-function ux() {
+function Ix() {
const e = document.createElement("div");
return e.className = "mjr-am-context-pills", { wrap: e, update: ({ state: n, rawQuery: i = "", actions: o = null } = {}) => {
var g;
- const r = o && typeof o == "object" ? o : {}, l = ei(i || "").trim(), a = l.length > 0 && l !== "*", c = !!(ei((n == null ? void 0 : n.kindFilter) || "").trim() || n != null && n.workflowOnly || (Number((n == null ? void 0 : n.minRating) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minSizeMB) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxSizeMB) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minWidth) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minHeight) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxWidth) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxHeight) || 0) || 0) > 0 || ei((n == null ? void 0 : n.workflowType) || "").trim() || ei((n == null ? void 0 : n.dateRangeFilter) || "").trim() || ei((n == null ? void 0 : n.dateExactFilter) || "").trim()), s = ei((n == null ? void 0 : n.sort) || "mtime_desc").trim() !== "mtime_desc", d = ei((n == null ? void 0 : n.collectionId) || "").trim().length > 0, u = String((n == null ? void 0 : n.viewScope) || (n == null ? void 0 : n.scope) || "output").toLowerCase(), I = u === "similar", p = u === "custom", M = u !== "output", Z = ei((n == null ? void 0 : n.similarSourceAssetId) || "").trim();
- if (!(!(a || c || s || d || M || I) && !e.childElementCount)) {
+ const r = o && typeof o == "object" ? o : {}, l = ei(i || "").trim(), a = l.length > 0 && l !== "*", c = !!(ei((n == null ? void 0 : n.kindFilter) || "").trim() || n != null && n.workflowOnly || (Number((n == null ? void 0 : n.minRating) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minSizeMB) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxSizeMB) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minWidth) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minHeight) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxWidth) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxHeight) || 0) || 0) > 0 || ei((n == null ? void 0 : n.workflowType) || "").trim() || ei((n == null ? void 0 : n.dateRangeFilter) || "").trim() || ei((n == null ? void 0 : n.dateExactFilter) || "").trim()), s = ei((n == null ? void 0 : n.sort) || "mtime_desc").trim() !== "mtime_desc", d = ei((n == null ? void 0 : n.collectionId) || "").trim().length > 0, u = String((n == null ? void 0 : n.viewScope) || (n == null ? void 0 : n.scope) || "output").toLowerCase(), I = u === "similar", p = u === "custom", S = u !== "output", A = ei((n == null ? void 0 : n.similarSourceAssetId) || "").trim();
+ if (!(!(a || c || s || d || S || I) && !e.childElementCount)) {
try {
e.replaceChildren();
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
if (!p && d && e.appendChild(
- Ci({
+ Ai({
label: m("label.collections"),
value: ei((n == null ? void 0 : n.collectionName) || (n == null ? void 0 : n.collectionId) || "").trim(),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearCollection) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearCollection) == null ? void 0 : Z.call(r);
}
})
), I && e.appendChild(
- Ci({
+ Ai({
label: m("search.findSimilar", "Find Similar"),
- value: Z ? m("search.similarReference", "Reference #{id}", { id: Z }) : m("scope.similar", "Similar"),
+ value: A ? m("search.similarReference", "Reference #{id}", { id: A }) : m("scope.similar", "Similar"),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearSimilarScope) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearSimilarScope) == null ? void 0 : Z.call(r);
}
})
- ), M && e.appendChild(
- Ci({
+ ), S && e.appendChild(
+ Ai({
label: m("label.scope"),
- value: dx(u || "output"),
+ value: gx(u || "output"),
onClear: () => {
- var h, f;
- return I ? (h = r == null ? void 0 : r.clearSimilarScope) == null ? void 0 : h.call(r) : (f = r == null ? void 0 : r.clearScope) == null ? void 0 : f.call(r);
+ var Z, f;
+ return I ? (Z = r == null ? void 0 : r.clearSimilarScope) == null ? void 0 : Z.call(r) : (f = r == null ? void 0 : r.clearScope) == null ? void 0 : f.call(r);
}
})
), a && e.appendChild(
- Ci({
+ Ai({
label: m("label.query"),
value: l,
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearQuery) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearQuery) == null ? void 0 : Z.call(r);
}
})
), ei((n == null ? void 0 : n.kindFilter) || "").trim() && e.appendChild(
- Ci({
+ Ai({
label: m("label.type"),
value: ei((n == null ? void 0 : n.kindFilter) || "").trim(),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearKind) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearKind) == null ? void 0 : Z.call(r);
}
})
), Number((n == null ? void 0 : n.minRating) || 0) > 0 && e.appendChild(
- Ci({
+ Ai({
label: m("label.rating"),
value: `>= ${Number((n == null ? void 0 : n.minRating) || 0)}`,
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearMinRating) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearMinRating) == null ? void 0 : Z.call(r);
}
})
), n != null && n.workflowOnly && e.appendChild(
- Ci({
+ Ai({
label: m("label.workflow"),
value: m("label.only"),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearWorkflowOnly) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearWorkflowOnly) == null ? void 0 : Z.call(r);
}
})
), ei((n == null ? void 0 : n.workflowType) || "").trim() && e.appendChild(
- Ci({
+ Ai({
label: m("label.workflowType"),
value: ei((n == null ? void 0 : n.workflowType) || "").trim(),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearWorkflowType) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearWorkflowType) == null ? void 0 : Z.call(r);
}
})
), (Number((n == null ? void 0 : n.minSizeMB) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxSizeMB) || 0) || 0) > 0) {
- const h = Number((n == null ? void 0 : n.minSizeMB) || 0) || 0, f = Number((n == null ? void 0 : n.maxSizeMB) || 0) || 0, b = h > 0 && f > 0 ? `${h}-${f} MB` : h > 0 ? `>= ${h} MB` : `<= ${f} MB`;
+ const Z = Number((n == null ? void 0 : n.minSizeMB) || 0) || 0, f = Number((n == null ? void 0 : n.maxSizeMB) || 0) || 0, b = Z > 0 && f > 0 ? `${Z}-${f} MB` : Z > 0 ? `>= ${Z} MB` : `<= ${f} MB`;
e.appendChild(
- Ci({
+ Ai({
label: m("sidebar.size"),
value: b,
onClear: () => {
- var v;
- return (v = r == null ? void 0 : r.clearSize) == null ? void 0 : v.call(r);
+ var L;
+ return (L = r == null ? void 0 : r.clearSize) == null ? void 0 : L.call(r);
}
})
);
}
if ((Number((n == null ? void 0 : n.minWidth) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.minHeight) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxWidth) || 0) || 0) > 0 || (Number((n == null ? void 0 : n.maxHeight) || 0) || 0) > 0) {
- const h = String((n == null ? void 0 : n.resolutionCompare) || "gte") === "lte", f = Number(h ? n == null ? void 0 : n.maxWidth : (n == null ? void 0 : n.minWidth) || 0) || 0, b = Number(h ? n == null ? void 0 : n.maxHeight : (n == null ? void 0 : n.minHeight) || 0) || 0;
+ const Z = String((n == null ? void 0 : n.resolutionCompare) || "gte") === "lte", f = Number(Z ? n == null ? void 0 : n.maxWidth : (n == null ? void 0 : n.minWidth) || 0) || 0, b = Number(Z ? n == null ? void 0 : n.maxHeight : (n == null ? void 0 : n.minHeight) || 0) || 0;
e.appendChild(
- Ci({
+ Ai({
label: m("label.resolution"),
- value: `${h ? "<=" : ">="} ${f || 0}x${b || 0} px`,
+ value: `${Z ? "<=" : ">="} ${f || 0}x${b || 0} px`,
onClear: () => {
- var v;
- return (v = r == null ? void 0 : r.clearResolution) == null ? void 0 : v.call(r);
+ var L;
+ return (L = r == null ? void 0 : r.clearResolution) == null ? void 0 : L.call(r);
}
})
);
}
ei((n == null ? void 0 : n.dateRangeFilter) || "").trim() && e.appendChild(
- Ci({
+ Ai({
label: m("sidebar.date"),
value: ei((n == null ? void 0 : n.dateRangeFilter) || "").trim(),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearDateRange) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearDateRange) == null ? void 0 : Z.call(r);
}
})
), ei((n == null ? void 0 : n.dateExactFilter) || "").trim() && e.appendChild(
- Ci({
+ Ai({
label: m("label.day"),
value: ei((n == null ? void 0 : n.dateExactFilter) || "").trim(),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearDateExact) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearDateExact) == null ? void 0 : Z.call(r);
}
})
), s && e.appendChild(
- Ci({
+ Ai({
label: m("label.sort"),
- value: sx(n == null ? void 0 : n.sort),
+ value: mx(n == null ? void 0 : n.sort),
onClear: () => {
- var h;
- return (h = r == null ? void 0 : r.clearSort) == null ? void 0 : h.call(r);
+ var Z;
+ return (Z = r == null ? void 0 : r.clearSort) == null ? void 0 : Z.call(r);
}
})
);
}
} };
}
-const mx = (e) => {
+const bx = (e) => {
try {
return String(e ?? "");
} catch {
return "";
}
-}, gx = (e) => {
+}, px = (e) => {
const t = String(e || "").toLowerCase();
return t === "similar" ? m("scope.similar", "Similar") : m(t === "input" || t === "inputs" ? "scope.input" : t === "custom" ? "scope.customBrowser" : t === "all" ? "tab.all" : "scope.output");
};
-function Ix(e) {
+function yx(e) {
var t;
try {
const n = e == null ? void 0 : e._mjrGetRenderedCards;
@@ -37699,7 +37752,7 @@ function Ix(e) {
}
return [];
}
-function bx(e) {
+function fx(e) {
var t, n, i, o;
try {
const r = String(((t = e == null ? void 0 : e.dataset) == null ? void 0 : t.mjrSelectedAssetIds) || "").trim();
@@ -37717,52 +37770,52 @@ function bx(e) {
}
return 0;
}
-function px({ state: e, gridContainer: t, context: n = null } = {}) {
- var f, b, v, C, S, W;
- const i = Ix(t), o = (() => {
+function hx({ state: e, gridContainer: t, context: n = null } = {}) {
+ var f, b, L, h, G, W;
+ const i = yx(t), o = (() => {
var y;
try {
- let k = 0;
- for (const G of i)
- String(((y = G == null ? void 0 : G._mjrAsset) == null ? void 0 : y.kind) || "").toLowerCase() === "folder" && (k += 1);
- return { total: i.length, folders: k };
+ let X = 0;
+ for (const x of i)
+ String(((y = x == null ? void 0 : x._mjrAsset) == null ? void 0 : y.kind) || "").toLowerCase() === "folder" && (X += 1);
+ return { total: i.length, folders: X };
} catch {
return { total: 0, folders: 0 };
}
})(), r = Number(i.length || 0) || 0, l = (() => {
var y;
try {
- const k = Array.isArray(e == null ? void 0 : e.selectedAssetIds) ? e.selectedAssetIds.length : 0;
- if (k > 0) return k;
- } catch (k) {
- (y = console.debug) == null || y.call(console, k);
+ const X = Array.isArray(e == null ? void 0 : e.selectedAssetIds) ? e.selectedAssetIds.length : 0;
+ if (X > 0) return X;
+ } catch (X) {
+ (y = console.debug) == null || y.call(console, X);
}
- return bx(t);
+ return fx(t);
})(), c = Number(((f = t == null ? void 0 : t.dataset) == null ? void 0 : f.mjrTotal) || 0) || 0 || Math.max(0, Number((e == null ? void 0 : e.lastGridTotal) ?? 0) || 0), d = Number(((b = t == null ? void 0 : t.dataset) == null ? void 0 : b.mjrShown) || 0) || 0 || Math.max(0, Number((e == null ? void 0 : e.lastGridCount) ?? 0) || 0) || r, u = String(
- (e == null ? void 0 : e.viewScope) || (e == null ? void 0 : e.scope) || ((v = t == null ? void 0 : t.dataset) == null ? void 0 : v.mjrScope) || "output"
- ).toLowerCase(), I = c && c >= d ? `${d}/${c}` : `${d}`, M = [`${d > 0 && o.total > 0 && o.folders === o.total ? m("summary.folders") : m("summary.assets")}: ${I}`];
- l > 0 && M.push(`${m("summary.selected")}: ${l}`), M.push(gx(u));
+ (e == null ? void 0 : e.viewScope) || (e == null ? void 0 : e.scope) || ((L = t == null ? void 0 : t.dataset) == null ? void 0 : L.mjrScope) || "output"
+ ).toLowerCase(), I = c && c >= d ? `${d}/${c}` : `${d}`, S = [`${d > 0 && o.total > 0 && o.folders === o.total ? m("summary.folders") : m("summary.assets")}: ${I}`];
+ l > 0 && S.push(`${m("summary.selected")}: ${l}`), S.push(px(u));
try {
- const y = Number(((C = t == null ? void 0 : t.dataset) == null ? void 0 : C.mjrHiddenPngSiblings) || 0) || 0;
- String(((S = t == null ? void 0 : t.dataset) == null ? void 0 : S.mjrHidePngSiblingsEnabled) || "") === "1" && y > 0 && M.push(`${m("summary.hidden")}: ${y}`);
+ const y = Number(((h = t == null ? void 0 : t.dataset) == null ? void 0 : h.mjrHiddenPngSiblings) || 0) || 0;
+ String(((G = t == null ? void 0 : t.dataset) == null ? void 0 : G.mjrHidePngSiblingsEnabled) || "") === "1" && y > 0 && S.push(`${m("summary.hidden")}: ${y}`);
} catch (y) {
(W = console.debug) == null || W.call(console, y);
}
- const Z = (n == null ? void 0 : n.duplicatesAlert) || null, A = Number((Z == null ? void 0 : Z.exactCount) || 0) || 0, g = Number((Z == null ? void 0 : Z.similarCount) || 0) || 0, h = u !== "similar" && (A > 0 || g > 0);
+ const A = (n == null ? void 0 : n.duplicatesAlert) || null, C = Number((A == null ? void 0 : A.exactCount) || 0) || 0, g = Number((A == null ? void 0 : A.similarCount) || 0) || 0, Z = u !== "similar" && (C > 0 || g > 0);
return {
shown: d,
total: c,
activeScope: u,
- summaryText: M.filter(Boolean).join(" | "),
- duplicateText: h ? `${m("summary.duplicates")}: ${A} | ${m("summary.similar")}: ${g}` : "",
- showDuplicates: h,
- rawQuery: mx((n == null ? void 0 : n.rawQuery) || "").trim()
+ summaryText: S.filter(Boolean).join(" | "),
+ duplicateText: Z ? `${m("summary.duplicates")}: ${C} | ${m("summary.similar")}: ${g}` : "",
+ showDuplicates: Z,
+ rawQuery: bx((n == null ? void 0 : n.rawQuery) || "").trim()
};
}
-const yx = { class: "mjr-am-summary-left" }, fx = { class: "mjr-am-summary-text" }, hx = { class: "mjr-am-summary-right" }, Cx = ["title"], Zx = {
+const Cx = { class: "mjr-am-summary-left" }, Zx = { class: "mjr-am-summary-text" }, Ax = { class: "mjr-am-summary-right" }, Wx = ["title"], wx = {
__name: "SummaryBarSection",
setup(e, { expose: t }) {
- const n = Mo(), i = Ae(null), o = Ae(null), r = Ae(""), l = Ae(""), a = Ae(!1), c = ux();
+ const n = Go(), i = Ae(null), o = Ae(null), r = Ae(""), l = Ae(""), a = Ae(!1), c = Ix();
let s = null;
const d = (() => {
const p = document.createElement("div");
@@ -37772,58 +37825,58 @@ const yx = { class: "mjr-am-summary-left" }, fx = { class: "mjr-am-summary-text"
var p;
try {
s == null || s();
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
}
- function I({ state: p, gridContainer: M, context: Z = null, actions: A = null } = {}) {
- var h;
- const g = px({ state: p, gridContainer: M, context: Z });
+ function I({ state: p, gridContainer: S, context: A = null, actions: C = null } = {}) {
+ var Z;
+ const g = hx({ state: p, gridContainer: S, context: A });
n.lastGridCount = g.shown, n.lastGridTotal = g.total, n.viewScope = g.activeScope, r.value = g.summaryText, l.value = g.duplicateText, a.value = g.showDuplicates, s = g.showDuplicates ? () => {
var f, b;
try {
- (f = A == null ? void 0 : A.onDuplicateAlertClick) == null || f.call(A, (Z == null ? void 0 : Z.duplicatesAlert) || null);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ (f = C == null ? void 0 : C.onDuplicateAlertClick) == null || f.call(C, (A == null ? void 0 : A.duplicatesAlert) || null);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
} : null;
try {
c.update({
state: p,
- gridContainer: M,
+ gridContainer: S,
rawQuery: g.rawQuery,
- actions: A
+ actions: C
});
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
}
return Dn(() => {
- var p, M, Z;
+ var p, S, A;
try {
- (M = (p = o.value) == null ? void 0 : p.appendChild) == null || M.call(p, c.wrap);
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ (S = (p = o.value) == null ? void 0 : p.appendChild) == null || S.call(p, c.wrap);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
- }), t({ summaryBar: i, updateSummaryBar: I, folderBreadcrumb: d }), (p, M) => (Ie(), he("div", {
+ }), t({ summaryBar: i, updateSummaryBar: I, folderBreadcrumb: d }), (p, S) => (be(), Ce("div", {
ref_key: "summaryBar",
ref: i,
class: "mjr-am-summary",
"aria-live": "polite"
}, [
- ne("div", yx, [
- ne("div", fx, Ye(r.value), 1)
+ ie("div", Cx, [
+ ie("div", Zx, Ye(r.value), 1)
]),
- ne("div", hx, [
- a.value ? (Ie(), he("button", {
+ ie("div", Ax, [
+ a.value ? (be(), Ce("button", {
key: 0,
type: "button",
class: "mjr-am-dup-alert",
title: l.value,
style: { padding: "2px 8px", border: "1px solid var(--border-color, #555)", background: "var(--comfy-menu-bg, #222)", color: "var(--input-text, #eee)", "border-radius": "999px", cursor: "pointer" },
onClick: u
- }, Ye(l.value), 9, Cx)) : yt("", !0),
- ne("div", {
+ }, Ye(l.value), 9, Wx)) : ft("", !0),
+ ie("div", {
ref_key: "pillsHost",
ref: o
}, null, 512)
@@ -37831,13 +37884,13 @@ const yx = { class: "mjr-am-summary-left" }, fx = { class: "mjr-am-summary-text"
], 512));
}
};
-function Ax(e, t) {
+function Mx(e, t) {
let n = null;
function i(r) {
var l;
if (!(!r || r._mjrGridContextMenuBound))
try {
- n = ld({
+ n = cd({
gridContainer: r,
getState: t
});
@@ -37852,16 +37905,16 @@ function Ax(e, t) {
}
n = null;
}
- an(e, (r, l) => {
+ cn(e, (r, l) => {
l && o(), r && i(r);
}, { immediate: !0 }), _n(o);
}
-function Wx(e) {
+function Sx(e) {
var t;
if (!e) return () => {
};
try {
- const n = ob({
+ const n = rb({
gridContainer: e,
getState: () => {
var i;
@@ -37898,7 +37951,7 @@ function Wx(e) {
};
}
}
-function wx(e) {
+function Gx(e) {
let t = null;
const n = () => {
var i;
@@ -37909,17 +37962,17 @@ function wx(e) {
}
t = null;
};
- an(
+ cn(
e,
(i, o) => {
- o && n(), i && (t = Wx(i));
+ o && n(), i && (t = Sx(i));
},
{ immediate: !0 }
), _n(n);
}
-function ip() {
+function op() {
}
-function Mx() {
+function xx() {
return new Promise((e) => {
var t;
try {
@@ -37933,7 +37986,7 @@ function Mx() {
e();
});
}
-function lr(e, ...t) {
+function cr(e, ...t) {
var n;
try {
return typeof e == "function" ? e(...t) : void 0;
@@ -37942,7 +37995,7 @@ function lr(e, ...t) {
return;
}
}
-function Sx(e) {
+function jx(e) {
var n;
const t = String(e ?? "");
try {
@@ -37953,19 +38006,19 @@ function Sx(e) {
}
return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
-function Gx(e = {}) {
+function vx(e = {}) {
const t = Array.isArray(e.selectedIds) ? e.selectedIds.map(String).filter(Boolean) : [], n = String(e.activeId || t[0] || "").trim();
return { ids: t, activeId: n };
}
-function xx(e, t = {}, n = null) {
+function Lx(e, t = {}, n = null) {
var r, l;
const i = Number(
t.count ?? t.shown ?? ((r = e == null ? void 0 : e.dataset) == null ? void 0 : r.mjrShown) ?? (n == null ? void 0 : n.lastGridCount) ?? 0
) || 0, o = Number(t.total ?? ((l = e == null ? void 0 : e.dataset) == null ? void 0 : l.mjrTotal) ?? (n == null ? void 0 : n.lastGridTotal) ?? 0) || 0;
return { count: i, total: o };
}
-function jx(e, t = Zl()) {
- if (!e || !t) return ip;
+function Vx(e, t = Al()) {
+ if (!e || !t) return op;
let n = 0;
const i = () => {
var o;
@@ -37995,42 +38048,42 @@ function jx(e, t = Zl()) {
}
};
}
-function vx(e, {
- panelStore: t = Zl(),
+function Yx(e, {
+ panelStore: t = Al(),
onContextChanged: n = null,
markUserInteraction: i = null
} = {}) {
var s, d, u, I;
- if (!e) return ip;
+ if (!e) return op;
let o = 0;
const r = () => {
- var p, M;
+ var p, S;
if (o)
try {
cancelAnimationFrame(o);
- } catch (Z) {
- (p = console.debug) == null || p.call(console, Z);
+ } catch (A) {
+ (p = console.debug) == null || p.call(console, A);
}
try {
o = requestAnimationFrame(() => {
- o = 0, lr(n);
+ o = 0, cr(n);
});
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z), o = 0, lr(n);
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A), o = 0, cr(n);
}
}, l = (p) => {
- const M = (p == null ? void 0 : p.detail) || {};
+ const S = (p == null ? void 0 : p.detail) || {};
if (t) {
- const { count: Z, total: A } = xx(e, M, t);
- t.lastGridCount = Z, t.lastGridTotal = A;
+ const { count: A, total: C } = Lx(e, S, t);
+ t.lastGridCount = A, t.lastGridTotal = C;
}
- lr(n);
+ cr(n);
}, a = (p) => {
- if (lr(i), t) {
- const { ids: M, activeId: Z } = Gx((p == null ? void 0 : p.detail) || {});
- t.selectedAssetIds = M, t.activeAssetId = Z;
+ if (cr(i), t) {
+ const { ids: S, activeId: A } = vx((p == null ? void 0 : p.detail) || {});
+ t.selectedAssetIds = S, t.activeAssetId = A;
}
- lr(n);
+ cr(n);
};
e.addEventListener("mjr:grid-stats", l), e.addEventListener("mjr:selection-changed", a);
try {
@@ -38048,244 +38101,249 @@ function vx(e, {
(I = console.debug) == null || I.call(console, p);
}
return () => {
- var p, M, Z, A, g, h, f, b;
+ var p, S, A, C, g, Z, f, b;
try {
e.removeEventListener("mjr:grid-stats", l);
- } catch (v) {
- (p = console.debug) == null || p.call(console, v);
+ } catch (L) {
+ (p = console.debug) == null || p.call(console, L);
}
try {
e.removeEventListener("mjr:selection-changed", a);
- } catch (v) {
- (M = console.debug) == null || M.call(console, v);
+ } catch (L) {
+ (S = console.debug) == null || S.call(console, L);
}
try {
- (A = (Z = globalThis == null ? void 0 : globalThis.window) == null ? void 0 : Z.removeEventListener) == null || A.call(Z, "mjr-settings-changed", l);
- } catch (v) {
- (g = console.debug) == null || g.call(console, v);
+ (C = (A = globalThis == null ? void 0 : globalThis.window) == null ? void 0 : A.removeEventListener) == null || C.call(A, "mjr-settings-changed", l);
+ } catch (L) {
+ (g = console.debug) == null || g.call(console, L);
}
try {
- (h = c == null ? void 0 : c.disconnect) == null || h.call(c);
- } catch (v) {
- (f = console.debug) == null || f.call(console, v);
+ (Z = c == null ? void 0 : c.disconnect) == null || Z.call(c);
+ } catch (L) {
+ (f = console.debug) == null || f.call(console, L);
}
if (o) {
try {
cancelAnimationFrame(o);
- } catch (v) {
- (b = console.debug) == null || b.call(console, v);
+ } catch (L) {
+ (b = console.debug) == null || b.call(console, L);
}
o = 0;
}
};
}
-async function Lx({
+async function kx({
initialLoadPromise: e,
gridWrapper: t,
gridContainer: n,
- panelStore: i = Zl(),
+ panelStore: i = Al(),
onRestoreSidebar: o = null
} = {}) {
- var c, s, d, u, I, p;
+ var c, s, d;
if (!t || !n || !i) return;
try {
await e;
- } catch (M) {
- (c = console.debug) == null || c.call(console, M);
+ } catch (u) {
+ (c = console.debug) == null || c.call(console, u);
}
- await Mx();
+ await xx();
const r = Number(i.scrollTop || 0) || 0;
if (r > 0)
try {
t.scrollTop = r;
- } catch (M) {
- (s = console.debug) == null || s.call(console, M);
+ } catch (u) {
+ (s = console.debug) == null || s.call(console, u);
}
const l = Array.isArray(i.selectedAssetIds) ? i.selectedAssetIds.map(String).filter(Boolean) : [], a = String(i.activeAssetId || l[0] || "").trim();
if (l.length || a) {
try {
typeof (n == null ? void 0 : n._mjrSetSelection) == "function" && n._mjrSetSelection(l, a);
- } catch (M) {
- (d = console.debug) == null || d.call(console, M);
+ } catch (u) {
+ (d = console.debug) == null || d.call(console, u);
}
- if (a && r === 0)
- try {
- if (typeof (n == null ? void 0 : n._mjrScrollToAssetId) == "function")
- n._mjrScrollToAssetId(a);
- else {
- const M = (u = n.querySelector) == null ? void 0 : u.call(
- n,
- `.mjr-asset-card[data-mjr-asset-id="${Sx(a)}"]`
- );
- (I = M == null ? void 0 : M.scrollIntoView) == null || I.call(M, {
- block: "nearest",
- behavior: "instant"
- });
+ if (a) {
+ const u = () => {
+ var I, p, S;
+ try {
+ if (typeof (n == null ? void 0 : n._mjrScrollToAssetId) == "function")
+ n._mjrScrollToAssetId(a);
+ else {
+ const A = (I = n.querySelector) == null ? void 0 : I.call(
+ n,
+ `.mjr-asset-card[data-mjr-asset-id="${jx(a)}"]`
+ );
+ (p = A == null ? void 0 : A.scrollIntoView) == null || p.call(A, {
+ block: "nearest",
+ behavior: "instant"
+ });
+ }
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
- }
+ };
+ u(), setTimeout(u, 160);
+ }
}
- i.sidebarOpen && a && lr(o);
+ i.sidebarOpen && a && cr(o);
}
-const Yx = {
+const Xx = {
__name: "AssetsGrid",
setup(e, { expose: t }) {
- const n = Ae(null), i = Ae(null), o = Ae(null), r = Mo(), l = Je(() => {
- var Z;
- return ((Z = o.value) == null ? void 0 : Z.gridContainer) ?? null;
+ const n = Ae(null), i = Ae(null), o = Ae(null), r = Go(), l = ze(() => {
+ var A;
+ return ((A = o.value) == null ? void 0 : A.gridContainer) ?? null;
});
let a = null, c = null, s = null, d = null;
function u() {
- var Z, A;
+ var A, C;
try {
- (Z = s == null ? void 0 : s.setVisibility) == null || Z.call(s);
+ (A = s == null ? void 0 : s.setVisibility) == null || A.call(s);
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
}
function I() {
- var g, h, f, b, v, C;
+ var g, Z, f, b, L, h;
try {
d == null || d();
- } catch (S) {
- (g = console.debug) == null || g.call(console, S);
+ } catch (G) {
+ (g = console.debug) == null || g.call(console, G);
}
- const Z = [], A = () => {
+ const A = [], C = () => {
u();
};
try {
- window.addEventListener("resize", A), Z.push(() => window.removeEventListener("resize", A));
- } catch (S) {
- (h = console.debug) == null || h.call(console, S);
+ window.addEventListener("resize", C), A.push(() => window.removeEventListener("resize", C));
+ } catch (G) {
+ (Z = console.debug) == null || Z.call(console, G);
}
try {
if (typeof ResizeObserver == "function") {
- const S = new ResizeObserver(() => {
- A();
+ const G = new ResizeObserver(() => {
+ C();
}), W = [
n.value,
i.value,
((f = n.value) == null ? void 0 : f.parentElement) || null
].filter(Boolean);
for (const y of W)
- S.observe(y);
- Z.push(() => S.disconnect());
+ G.observe(y);
+ A.push(() => G.disconnect());
}
- } catch (S) {
- (b = console.debug) == null || b.call(console, S);
+ } catch (G) {
+ (b = console.debug) == null || b.call(console, G);
}
try {
if (typeof MutationObserver == "function") {
- const S = new MutationObserver(() => {
- A();
+ const G = new MutationObserver(() => {
+ C();
}), W = [
n.value,
i.value,
- ((v = n.value) == null ? void 0 : v.parentElement) || null
+ ((L = n.value) == null ? void 0 : L.parentElement) || null
].filter(Boolean);
for (const y of W)
- S.observe(y, {
+ G.observe(y, {
attributes: !0,
attributeFilter: ["class", "style", "hidden", "aria-hidden"]
});
- Z.push(() => S.disconnect());
+ A.push(() => G.disconnect());
}
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
d = () => {
- var S;
- for (; Z.length; ) {
- const W = Z.pop();
+ var G;
+ for (; A.length; ) {
+ const W = A.pop();
try {
W == null || W();
} catch (y) {
- (S = console.debug) == null || S.call(console, y);
+ (G = console.debug) == null || G.call(console, y);
}
}
};
}
- rg("mjr-grid-container-ref", l), Ax(
+ lg("mjr-grid-container-ref", l), Mx(
l,
() => r
- ), wx(l);
+ ), Gx(l);
function p() {
return l.value || null;
}
- function M(Z = {}) {
+ function S(A = {}) {
var g;
- const A = p();
- if (A) {
+ const C = p();
+ if (C) {
try {
c == null || c();
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
- c = vx(A, {
+ c = Yx(C, {
panelStore: r,
- ...Z
+ ...A
});
}
}
return Dn(() => {
- var Z;
- a = jx(i.value, r), i.value && Number(r.scrollTop || 0) > 0 && (i.value.scrollTop = Number(r.scrollTop || 0)), I();
+ var A;
+ a = Vx(i.value, r), i.value && Number(r.scrollTop || 0) > 0 && (i.value.scrollTop = Number(r.scrollTop || 0)), I();
try {
window.addEventListener("mjr:keepalive-attached", u), document.addEventListener("visibilitychange", u);
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
u();
- }), Mr(() => {
- var Z, A, g, h, f, b, v;
+ }), xr(() => {
+ var A, C, g, Z, f, b, L;
try {
- xa(p());
- } catch (C) {
- (Z = console.debug) == null || Z.call(console, C);
+ ja(p());
+ } catch (h) {
+ (A = console.debug) == null || A.call(console, h);
}
try {
a == null || a();
- } catch (C) {
- (A = console.debug) == null || A.call(console, C);
+ } catch (h) {
+ (C = console.debug) == null || C.call(console, h);
}
a = null;
try {
d == null || d();
- } catch (C) {
- (g = console.debug) == null || g.call(console, C);
+ } catch (h) {
+ (g = console.debug) == null || g.call(console, h);
}
d = null;
try {
c == null || c();
- } catch (C) {
- (h = console.debug) == null || h.call(console, C);
+ } catch (h) {
+ (Z = console.debug) == null || Z.call(console, h);
}
c = null;
try {
(f = s == null ? void 0 : s.dispose) == null || f.call(s);
- } catch (C) {
- (b = console.debug) == null || b.call(console, C);
+ } catch (h) {
+ (b = console.debug) == null || b.call(console, h);
}
s = null;
try {
window.removeEventListener("mjr:keepalive-attached", u), document.removeEventListener("visibilitychange", u);
- } catch (C) {
- (v = console.debug) == null || v.call(console, C);
+ } catch (h) {
+ (L = console.debug) == null || L.call(console, h);
}
- }), an(
+ }), cn(
l,
- (Z, A) => {
- var g, h;
+ (A, C) => {
+ var g, Z;
try {
- A && A !== Z && xa(A);
+ C && C !== A && ja(C);
} catch (f) {
(g = console.debug) == null || g.call(console, f);
}
try {
- Z && Bs(Z);
+ A && Ks(A);
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
},
{ immediate: !0 }
@@ -38299,97 +38357,97 @@ const Yx = {
get gridContainer() {
return p();
},
- onGridContainerReady(Z) {
- return Z && Z !== p(), p();
+ onGridContainerReady(A) {
+ return A && A !== p(), p();
},
- bindGridHostState(Z = {}) {
- return M(Z), () => {
- var A;
+ bindGridHostState(A = {}) {
+ return S(A), () => {
+ var C;
try {
c == null || c();
} catch (g) {
- (A = console.debug) == null || A.call(console, g);
+ (C = console.debug) == null || C.call(console, g);
}
c = null;
};
},
- restoreGridUiState(Z, A = {}) {
- return Lx({
- initialLoadPromise: Z,
+ restoreGridUiState(A, C = {}) {
+ return kx({
+ initialLoadPromise: A,
gridWrapper: i.value,
gridContainer: p(),
panelStore: r,
- ...A
+ ...C
});
},
- initAssetsQueryController(Z = {}) {
- var g, h;
- const A = p();
- if (!A || !i.value) return null;
+ initAssetsQueryController(A = {}) {
+ var g, Z;
+ const C = p();
+ if (!C || !i.value) return null;
try {
(g = s == null ? void 0 : s.dispose) == null || g.call(s);
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
- return s = tp({
- gridContainer: A,
+ return s = np({
+ gridContainer: C,
gridWrapper: i.value,
- ...Z
+ ...A
}), u(), s;
},
- loadAssets(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.loadAssets) == null ? void 0 : g.call(A, ...Z);
+ loadAssets(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.loadAssets) == null ? void 0 : g.call(C, ...A);
},
- loadAssetsFromList(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.loadAssetsFromList) == null ? void 0 : g.call(A, ...Z);
+ loadAssetsFromList(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.loadAssetsFromList) == null ? void 0 : g.call(C, ...A);
},
- prepareGridForScopeSwitch(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.prepareGridForScopeSwitch) == null ? void 0 : g.call(A, ...Z);
+ prepareGridForScopeSwitch(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.prepareGridForScopeSwitch) == null ? void 0 : g.call(C, ...A);
},
- refreshGrid(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.refreshGrid) == null ? void 0 : g.call(A, ...Z);
+ refreshGrid(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.refreshGrid) == null ? void 0 : g.call(C, ...A);
},
- captureAnchor(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.captureAnchor) == null ? void 0 : g.call(A, ...Z);
+ captureAnchor(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.captureAnchor) == null ? void 0 : g.call(C, ...A);
},
- restoreAnchor(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.restoreAnchor) == null ? void 0 : g.call(A, ...Z);
+ restoreAnchor(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.restoreAnchor) == null ? void 0 : g.call(C, ...A);
},
- hydrateGridFromSnapshot(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.hydrateFromSnapshot) == null ? void 0 : g.call(A, ...Z);
+ hydrateGridFromSnapshot(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.hydrateFromSnapshot) == null ? void 0 : g.call(C, ...A);
},
- upsertAsset(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.upsertAsset) == null ? void 0 : g.call(A, ...Z);
+ upsertAsset(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.upsertAsset) == null ? void 0 : g.call(C, ...A);
},
- removeAssets(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.removeAssets) == null ? void 0 : g.call(A, ...Z);
+ removeAssets(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.removeAssets) == null ? void 0 : g.call(C, ...A);
},
- disposeGrid(...Z) {
- var A, g;
- return (g = (A = o.value) == null ? void 0 : A.dispose) == null ? void 0 : g.call(A, ...Z);
+ disposeGrid(...A) {
+ var C, g;
+ return (g = (C = o.value) == null ? void 0 : C.dispose) == null ? void 0 : g.call(C, ...A);
}
- }), (Z, A) => (Ie(), he("div", {
+ }), (A, C) => (be(), Ce("div", {
ref_key: "browseSectionRef",
ref: n,
class: "mjr-am-browse",
style: { flex: "1", display: "flex", "flex-direction": "row", overflow: "hidden" }
}, [
- ne("div", {
+ ie("div", {
ref_key: "gridWrapperRef",
ref: i,
class: "mjr-am-grid-scroll",
style: { flex: "1", overflow: "auto", position: "relative" }
}, [
- fn(Gp, {
+ fn(vp, {
ref_key: "gridHostRef",
ref: o,
"scroll-element": i.value
@@ -38397,10 +38455,10 @@ const Yx = {
], 512)
], 512));
}
-}, Vx = {
+}, Nx = {
class: "mjr-sidebar-header",
style: { display: "flex", "align-items": "center", "justify-content": "space-between", padding: "10px 12px", "border-bottom": "1px solid var(--mjr-border,rgba(255,255,255,0.12))", "flex-shrink": "0", background: "var(--mjr-surface-2,#2e2e2e)" }
-}, kx = ["title"], Xx = {
+}, Rx = ["title"], Fx = {
__name: "SidebarHeaderSection",
props: {
asset: { type: Object, required: !0 }
@@ -38408,13 +38466,13 @@ const Yx = {
emits: ["close"],
setup(e, { emit: t }) {
const n = t;
- return (i, o) => (Ie(), he("div", Vx, [
- ne("div", {
+ return (i, o) => (be(), Ce("div", Nx, [
+ ie("div", {
class: "mjr-sidebar-filename",
title: e.asset.filename,
style: { "font-size": "0.9em", "font-weight": "600", overflow: "hidden", "text-overflow": "ellipsis", "white-space": "nowrap", flex: "1", "min-width": "0", "padding-right": "8px" }
- }, Ye(e.asset.filename), 9, kx),
- ne("button", {
+ }, Ye(e.asset.filename), 9, Rx),
+ ie("button", {
type: "button",
class: "mjr-sidebar-close",
title: "Close sidebar (Esc)",
@@ -38427,27 +38485,27 @@ const Yx = {
]));
}
};
-function Nx(e) {
+function Ox(e) {
if (!e) return "Unknown";
const t = e / 1024;
if (t < 1024) return `${t.toFixed(1)} KB`;
const n = t / 1024;
return n < 1024 ? `${n.toFixed(1)} MB` : `${(n / 1024).toFixed(2)} GB`;
}
-function Rx(e) {
+function zx(e) {
if (!e) return "";
const t = new Date(Number(e) * 1e3);
if (Number.isNaN(t.getTime())) return "";
const n = (i) => String(i).padStart(2, "0");
return `${t.getFullYear()}-${n(t.getMonth() + 1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`;
}
-const Fx = { class: "mjr-sidebar-preview" }, Ox = ["src"], zx = ["src"], Jx = ["src"], Tx = {
+const Jx = { class: "mjr-sidebar-preview" }, Tx = ["src"], Bx = ["src"], Ux = ["src"], Kx = {
key: 3,
style: { color: "rgba(255, 255, 255, 0.4)", "font-size": "14px" }
-}, Bx = {
+}, Dx = {
class: "mjr-sidebar-preview-meta",
style: { "margin-top": "10px", "font-size": "12px", color: "var(--mjr-muted, rgba(255, 255, 255, 0.65))", display: "flex", "flex-wrap": "wrap", gap: "6px", "align-items": "center", "line-height": "1.3", "padding-bottom": "12px", "border-bottom": "1px solid var(--mjr-border, rgba(255, 255, 255, 0.12))" }
-}, Ux = {
+}, Ex = {
__name: "SidebarPreviewSection",
props: {
asset: { type: Object, required: !0 },
@@ -38456,17 +38514,17 @@ const Fx = { class: "mjr-sidebar-preview" }, Ox = ["src"], zx = ["src"], Jx = ["
setup(e) {
const t = e, n = Ae(null);
let i = null;
- const o = Je(() => Bi(t.asset) || ""), r = Je(() => {
+ const o = ze(() => Ki(t.asset) || ""), r = ze(() => {
var I;
const d = String(((I = t.asset) == null ? void 0 : I.filename) || ""), u = d.lastIndexOf(".");
return u === -1 ? "" : d.slice(u + 1).toUpperCase();
- }), l = Je(() => {
- var p, M, Z;
+ }), l = ze(() => {
+ var p, S, A;
const d = [];
r.value && d.push(r.value), (p = t.asset) != null && p.kind && d.push(String(t.asset.kind).toLowerCase());
- const u = Nx((M = t.asset) == null ? void 0 : M.size);
+ const u = Ox((S = t.asset) == null ? void 0 : S.size);
u && d.push(u);
- const I = Rx((Z = t.asset) == null ? void 0 : Z.mtime);
+ const I = zx((A = t.asset) == null ? void 0 : A.mtime);
return I && d.push(I), d.join(" β’ ");
});
function a() {
@@ -38489,40 +38547,40 @@ const Fx = { class: "mjr-sidebar-preview" }, Ox = ["src"], zx = ["src"], Jx = ["
}
}
function s() {
- var I, p, M;
+ var I, p, S;
if (a(), !t.showPreviewThumb || String(((I = t.asset) == null ? void 0 : I.kind) || "").toLowerCase() !== "video") return;
const d = n.value, u = (p = d == null ? void 0 : d.querySelector) == null ? void 0 : p.call(d, "video");
if (!(!d || !u)) {
c(u);
try {
- i = qI(u, { variant: "preview", hostEl: d });
- } catch (Z) {
- (M = console.debug) == null || M.call(console, Z);
+ i = PI(u, { variant: "preview", hostEl: d });
+ } catch (A) {
+ (S = console.debug) == null || S.call(console, A);
}
}
}
- return an(() => [t.asset, t.showPreviewThumb], () => {
+ return cn(() => [t.asset, t.showPreviewThumb], () => {
a();
- }, { flush: "post" }), an(o, () => {
+ }, { flush: "post" }), cn(o, () => {
setTimeout(() => {
s();
}, 0);
}), Dn(() => {
s();
- }), Mr(() => {
+ }), xr(() => {
a();
- }), (d, u) => (Ie(), he("div", Fx, [
- e.showPreviewThumb ? (Ie(), he("div", {
+ }), (d, u) => (be(), Ce("div", Jx, [
+ e.showPreviewThumb ? (be(), Ce("div", {
key: 0,
ref_key: "previewContainerRef",
ref: n,
style: { width: "100%", "aspect-ratio": "1", background: "black", "border-radius": "8px", overflow: "hidden", display: "flex", "align-items": "center", "justify-content": "center", position: "relative" }
}, [
- e.asset.kind === "image" ? (Ie(), he("img", {
+ e.asset.kind === "image" ? (be(), Ce("img", {
key: 0,
src: o.value,
style: { "max-width": "100%", "max-height": "100%", "object-fit": "contain" }
- }, null, 8, Ox)) : e.asset.kind === "video" ? (Ie(), he("video", {
+ }, null, 8, Tx)) : e.asset.kind === "video" ? (be(), Ce("video", {
key: 1,
src: o.value,
muted: !0,
@@ -38531,22 +38589,22 @@ const Fx = { class: "mjr-sidebar-preview" }, Ox = ["src"], zx = ["src"], Jx = ["
playsinline: "",
preload: "metadata",
style: { "max-width": "100%", "max-height": "100%", "object-fit": "contain" }
- }, null, 8, zx)) : e.asset.kind === "audio" ? (Ie(), he("audio", {
+ }, null, 8, Bx)) : e.asset.kind === "audio" ? (be(), Ce("audio", {
key: 2,
src: o.value,
controls: "",
preload: "metadata",
style: { width: "92%", "max-width": "560px" }
- }, null, 8, Jx)) : (Ie(), he("div", Tx, Ye(String(e.asset.kind || "PREVIEW").toUpperCase()), 1))
- ], 512)) : yt("", !0),
- ne("div", Bx, Ye(l.value), 1)
+ }, null, 8, Ux)) : (be(), Ce("div", Kx, Ye(String(e.asset.kind || "PREVIEW").toUpperCase()), 1))
+ ], 512)) : ft("", !0),
+ ie("div", Dx, Ye(l.value), 1)
]));
}
-}, Kx = {
+}, Hx = {
key: 0,
class: "mjr-sidebar-section",
style: { background: "rgba(255, 255, 255, 0.03)", border: "1px solid var(--mjr-border, rgba(255, 255, 255, 0.12))", "border-radius": "8px", padding: "10px" }
-}, Dx = { style: { display: "flex", "flex-direction": "column", gap: "6px" } }, Ex = ["title"], Hx = ["title"], qx = {
+}, qx = { style: { display: "flex", "flex-direction": "column", gap: "6px" } }, Px = ["title"], Qx = ["title"], _x = {
__name: "SidebarFileInfoSection",
props: {
asset: { type: Object, required: !0 }
@@ -38570,7 +38628,7 @@ const Fx = { class: "mjr-sidebar-preview" }, Ox = ["src"], zx = ["src"], Jx = ["
return !1;
}
}
- const o = Je(() => {
+ const o = ze(() => {
var s;
const r = t.asset || {}, l = [];
if (r.width && r.height && l.push({
@@ -38579,55 +38637,55 @@ const Fx = { class: "mjr-sidebar-preview" }, Ox = ["src"], zx = ["src"], Jx = ["
tooltip: "Image/video resolution in pixels"
}), r.duration && r.duration > 0 && l.push({
label: "Duration",
- value: Lb(r.duration),
+ value: Vb(r.duration),
tooltip: "Video duration"
}), i(r)) {
- const d = EI(r);
- d != null && l.push({ label: "FPS", value: OZ(d), tooltip: "Native frame rate" });
- const u = HI(r, d);
+ const d = HI(r);
+ d != null && l.push({ label: "FPS", value: TZ(d), tooltip: "Native frame rate" });
+ const u = qI(r, d);
u != null && l.push({
label: "Length",
value: `${Math.max(0, Math.floor(u))} frames`,
tooltip: "Total frame count"
});
}
- const a = td(
+ const a = id(
r.generation_time_ms ?? ((s = r.metadata) == null ? void 0 : s.generation_time_ms) ?? 0
);
a > 0 && l.push({
label: "Generation Time",
value: `${(Number(a) / 1e3).toFixed(1)}s`,
tooltip: "Time taken to generate this asset (workflow execution time)",
- valueStyle: `color: ${ed(a)}; font-weight: 600;`
+ valueStyle: `color: ${nd(a)}; font-weight: 600;`
});
const c = r.generation_time || r.file_creation_time || r.mtime || r.created_at;
if (c) {
- const d = Oa(c), u = za(c);
+ const d = za(c), u = Ja(c);
d && l.push({ label: "Date", value: d, tooltip: "File creation/generation date" }), u && l.push({ label: "Time", value: u, tooltip: "File creation/generation time" });
}
return r.size && r.size > 0 && l.push({ label: "File Size", value: n(r.size), tooltip: "File size on disk" }), r.id != null && l.push({ label: "Asset ID", value: String(r.id), tooltip: "Internal database asset identifier" }), r.job_id && l.push({ label: "Job ID", value: String(r.job_id), tooltip: "Workflow execution job identifier (prompt_id)" }), l;
});
- return (r, l) => o.value.length ? (Ie(), he("div", Kx, [
- l[0] || (l[0] = ne("div", { style: { "font-size": "12px", "font-weight": "700", color: "#607d8b", "margin-bottom": "8px", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, " File Info ", -1)),
- ne("div", Dx, [
- (Ie(!0), he(Xt, null, Cn(o.value, (a) => (Ie(), he("div", {
+ return (r, l) => o.value.length ? (be(), Ce("div", Hx, [
+ l[0] || (l[0] = ie("div", { style: { "font-size": "12px", "font-weight": "700", color: "#607d8b", "margin-bottom": "8px", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, " File Info ", -1)),
+ ie("div", qx, [
+ (be(!0), Ce(Nt, null, Cn(o.value, (a) => (be(), Ce("div", {
key: a.label,
style: { display: "flex", gap: "10px", "align-items": "flex-start", "justify-content": "space-between" }
}, [
- ne("div", {
+ ie("div", {
title: a.tooltip || "",
style: { "font-size": "12px", opacity: "0.68", "min-width": "92px" }
- }, Ye(a.label), 9, Ex),
- ne("div", {
- style: vt(a.valueStyle || "font-size: 12px; text-align: right; word-break: break-word"),
+ }, Ye(a.label), 9, Px),
+ ie("div", {
+ style: Lt(a.valueStyle || "font-size: 12px; text-align: right; word-break: break-word"),
title: String(a.value || "")
- }, Ye(a.value), 13, Hx)
+ }, Ye(a.value), 13, Qx)
]))), 128))
])
- ])) : yt("", !0);
+ ])) : ft("", !0);
}
};
-function Vm(e) {
+function Xm(e) {
if (!e || typeof e != "string") return null;
const t = {}, n = e.split(/\nNegative prompt:\s*/i);
if (n[0] && (t.prompt = n[0].trim()), n[1]) {
@@ -38644,7 +38702,7 @@ function Vm(e) {
}
return Object.keys(t).length > 0 ? t : null;
}
-function op(e) {
+function rp(e) {
try {
const t = Object.entries(e || {});
if (!t.length) return !1;
@@ -38657,34 +38715,34 @@ function op(e) {
return !1;
}
}
-function Gc(e) {
+function xc(e) {
var o;
if (!e || typeof e != "object") return null;
- const t = {}, i = (e.prompt && typeof e.prompt == "object" ? e.prompt : null) || (op(e) ? e : null);
+ const t = {}, i = (e.prompt && typeof e.prompt == "object" ? e.prompt : null) || (rp(e) ? e : null);
if (i) {
const r = [];
for (const [, l] of Object.entries(i)) {
if (!l || typeof l != "object") continue;
const a = l.inputs;
if (!a || typeof a != "object") continue;
- const c = String((l == null ? void 0 : l.class_type) || (l == null ? void 0 : l.type) || "").toLowerCase(), s = String((l == null ? void 0 : l.title) || ((o = l == null ? void 0 : l._meta) == null ? void 0 : o.title) || "").toLowerCase(), d = (Z, A) => {
- if (t[Z] || typeof A != "string") return;
- const g = A.trim();
- g && (/^[\d\s.,+-]+$/.test(g) || (t[Z] = g));
+ const c = String((l == null ? void 0 : l.class_type) || (l == null ? void 0 : l.type) || "").toLowerCase(), s = String((l == null ? void 0 : l.title) || ((o = l == null ? void 0 : l._meta) == null ? void 0 : o.title) || "").toLowerCase(), d = (A, C) => {
+ if (t[A] || typeof C != "string") return;
+ const g = C.trim();
+ g && (/^[\d\s.,+-]+$/.test(g) || (t[A] = g));
};
if ((c.includes("cliptextencode") || c.includes("clip_text_encode") || s.includes("clip text encode")) && typeof a.text == "string") {
- const Z = s.includes("negative"), A = s.includes("positive") || s.includes("(prompt)") || s.includes("prompt");
- d(Z ? "negative_prompt" : "prompt", a.text);
+ const A = s.includes("negative"), C = s.includes("positive") || s.includes("(prompt)") || s.includes("prompt");
+ d(A ? "negative_prompt" : "prompt", a.text);
}
if (d("negative_prompt", a.negative_prompt), d("negative_prompt", a.negative), !t.prompt && typeof a.text == "string") {
- const Z = a.text.trim();
- (c.includes("prompt") || c.includes("encode") || c.includes("positive") || c.includes("negative") || s.includes("prompt") || s.includes("positive") || s.includes("negative")) && Z.length >= 12 && /[a-zA-Z]/.test(Z) && d("prompt", Z);
+ const A = a.text.trim();
+ (c.includes("prompt") || c.includes("encode") || c.includes("positive") || c.includes("negative") || s.includes("prompt") || s.includes("positive") || s.includes("negative")) && A.length >= 12 && /[a-zA-Z]/.test(A) && d("prompt", A);
}
a.seed !== void 0 && t.seed === void 0 && (t.seed = a.seed), a.steps !== void 0 && t.steps === void 0 && (t.steps = a.steps), a.cfg !== void 0 && t.cfg === void 0 && (t.cfg = a.cfg), a.sampler_name && !t.sampler && (t.sampler = a.sampler_name), a.scheduler && !t.scheduler && (t.scheduler = a.scheduler), a.denoise !== void 0 && t.denoise === void 0 && (t.denoise = a.denoise), a.width !== void 0 && t.width === void 0 && (t.width = a.width), a.height !== void 0 && t.height === void 0 && (t.height = a.height);
- const I = (Z, A) => {
- if (t[Z] || typeof A != "string") return;
- const g = A.trim();
- g && (t[Z] = g);
+ const I = (A, C) => {
+ if (t[A] || typeof C != "string") return;
+ const g = C.trim();
+ g && (t[A] = g);
}, p = [
a.ckpt_name,
a.checkpoint,
@@ -38692,105 +38750,105 @@ function Gc(e) {
a.model_name,
a.model
];
- for (const Z of p)
- t.model || I("model", Z);
+ for (const A of p)
+ t.model || I("model", A);
if (I("vae", a.vae_name || a.vae), I("clip", a.clip_name || a.clip), I("unet", a.unet_name || a.unet), I(
"diffusion",
a.diffusion_name || a.diffusion_model || a.diffusion
), c.includes("lora") || c.includes("loraloader")) {
- const Z = a.lora_name || a.lora || a.name || null, A = a.strength_model ?? a.strength ?? a.weight ?? a.lora_strength ?? null;
- Z && r.push({ name: Z, weight: A });
+ const A = a.lora_name || a.lora || a.name || null, C = a.strength_model ?? a.strength ?? a.weight ?? a.lora_strength ?? null;
+ A && r.push({ name: A, weight: C });
}
}
r.length && (t.loras = r);
}
return Object.keys(t).length > 0 ? t : null;
}
-const Px = /^(?:[a-z]:[\\/]|[\\/]{1,2}|\.{1,2}[\\/]|~[\\/]).+?[\\/][^\\/\n]+\.(?:png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl|ckpt|safetensors|pt|pth|bin|gguf|json|ya?ml)$/i, Qx = /^(?!.*[,;])(?!.*\b(?:cinematic|portrait|landscape|lighting|style|detailed|masterpiece|photo|render)\b).*(?:[\\/][^\\/\n]+){2,}\.(?:png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl|ckpt|safetensors|pt|pth|bin|gguf|json|ya?ml)$/i;
-function rp(e) {
- var t, n, i, o, r, l, a, c, s, d, u, I, p, M, Z, A, g, h, f, b, v, C, S, W, y, k, G, z, x, w, X, V, R, j, L, N, q, O, B;
+const $x = /^(?:[a-z]:[\\/]|[\\/]{1,2}|\.{1,2}[\\/]|~[\\/]).+?[\\/][^\\/\n]+\.(?:png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl|ckpt|safetensors|pt|pth|bin|gguf|json|ya?ml)$/i, ej = /^(?!.*[,;])(?!.*\b(?:cinematic|portrait|landscape|lighting|style|detailed|masterpiece|photo|render)\b).*(?:[\\/][^\\/\n]+){2,}\.(?:png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl|ckpt|safetensors|pt|pth|bin|gguf|json|ya?ml)$/i;
+function lp(e) {
+ var t, n, i, o, r, l, a, c, s, d, u, I, p, S, A, C, g, Z, f, b, L, h, G, W, y, X, x, T, v, w, R, Y, F, N, V, k, K, z, B;
if (!e) return null;
if (typeof e == "object") {
const J = e.geninfo || e.GenInfo || e.generation || null;
if (J && typeof J == "object") {
- const F = {}, Y = ((t = J.positive) == null ? void 0 : t.value) ?? ((n = J.positive) == null ? void 0 : n.text) ?? null, U = ((i = J.negative) == null ? void 0 : i.value) ?? ((o = J.negative) == null ? void 0 : o.text) ?? null;
- typeof Y == "string" && Y.trim() && (F.prompt = Y), typeof U == "string" && U.trim() && (F.negative_prompt = U);
- const P = ((r = J.checkpoint) == null ? void 0 : r.name) ?? J.checkpoint ?? null;
- typeof P == "string" && P.trim() && (F.model = P);
- const ee = ((l = J.clip) == null ? void 0 : l.name) ?? J.clip ?? null;
- typeof ee == "string" && ee.trim() && (F.clip = ee);
- const oe = ((a = J.vae) == null ? void 0 : a.name) ?? J.vae ?? null;
- typeof oe == "string" && oe.trim() && (F.vae = oe);
+ const M = {}, j = ((t = J.positive) == null ? void 0 : t.value) ?? ((n = J.positive) == null ? void 0 : n.text) ?? null, O = ((i = J.negative) == null ? void 0 : i.value) ?? ((o = J.negative) == null ? void 0 : o.text) ?? null;
+ typeof j == "string" && j.trim() && (M.prompt = j), typeof O == "string" && O.trim() && (M.negative_prompt = O);
+ const D = ((r = J.checkpoint) == null ? void 0 : r.name) ?? J.checkpoint ?? null;
+ typeof D == "string" && D.trim() && (M.model = D);
+ const q = ((l = J.clip) == null ? void 0 : l.name) ?? J.clip ?? null;
+ typeof q == "string" && q.trim() && (M.clip = q);
+ const ee = ((a = J.vae) == null ? void 0 : a.name) ?? J.vae ?? null;
+ typeof ee == "string" && ee.trim() && (M.vae = ee);
const ce = J.models;
- ce && typeof ce == "object" && (F.models = ce);
- const pe = Array.isArray(J.loras) ? J.loras : null;
- pe && (F.loras = pe);
- const H = ((c = J.sampler) == null ? void 0 : c.name) ?? J.sampler ?? null;
- typeof H == "string" && H.trim() && (F.sampler = H);
- const $ = ((s = J.scheduler) == null ? void 0 : s.name) ?? J.scheduler ?? null;
- typeof $ == "string" && $.trim() && (F.scheduler = $);
+ ce && typeof ce == "object" && (M.models = ce);
+ const ue = Array.isArray(J.loras) ? J.loras : null;
+ ue && (M.loras = ue);
+ const U = ((c = J.sampler) == null ? void 0 : c.name) ?? J.sampler ?? null;
+ typeof U == "string" && U.trim() && (M.sampler = U);
+ const Q = ((s = J.scheduler) == null ? void 0 : s.name) ?? J.scheduler ?? null;
+ typeof Q == "string" && Q.trim() && (M.scheduler = Q);
const _ = ((d = J.steps) == null ? void 0 : d.value) ?? J.steps ?? null;
- _ != null && (F.steps = _);
+ _ != null && (M.steps = _);
const le = ((u = J.cfg) == null ? void 0 : u.value) ?? J.cfg ?? null;
- le != null && (F.cfg = le);
- const se = ((I = J.seed) == null ? void 0 : I.value) ?? J.seed ?? null;
- se != null && (F.seed = se);
- const de = ((p = J.voice) == null ? void 0 : p.name) ?? ((M = J.voice) == null ? void 0 : M.value) ?? J.voice ?? null;
- de != null && String(de).trim() && (F.voice = String(de).trim());
- const Ze = ((Z = J.language) == null ? void 0 : Z.value) ?? J.language ?? null;
- Ze != null && String(Ze).trim() && (F.language = String(Ze).trim());
- const Fe = ((A = J.temperature) == null ? void 0 : A.value) ?? J.temperature ?? null;
- Fe != null && (F.temperature = Fe);
- const xe = ((g = J.top_k) == null ? void 0 : g.value) ?? J.top_k ?? null;
- xe != null && (F.top_k = xe);
- const ze = ((h = J.top_p) == null ? void 0 : h.value) ?? J.top_p ?? null;
- ze != null && (F.top_p = ze);
- const We = ((f = J.repetition_penalty) == null ? void 0 : f.value) ?? J.repetition_penalty ?? null;
- We != null && (F.repetition_penalty = We);
- const De = ((b = J.max_new_tokens) == null ? void 0 : b.value) ?? J.max_new_tokens ?? null;
- De != null && (F.max_new_tokens = De);
- const Pe = ((v = J.device) == null ? void 0 : v.value) ?? J.device ?? null;
- Pe != null && String(Pe).trim() && (F.device = String(Pe).trim());
- const Qe = ((C = J.voice_preset) == null ? void 0 : C.value) ?? J.voice_preset ?? null;
- Qe != null && String(Qe).trim() && (F.voice_preset = String(Qe).trim());
- const Ue = ((S = J.instruct) == null ? void 0 : S.value) ?? J.instruct ?? null;
- Ue != null && String(Ue).trim() && (F.instruct = String(Ue).trim());
- const Ee = ((W = J.dtype) == null ? void 0 : W.value) ?? J.dtype ?? null;
- Ee != null && String(Ee).trim() && (F.dtype = String(Ee).trim());
- const Re = ((y = J.attn_implementation) == null ? void 0 : y.value) ?? J.attn_implementation ?? null;
- Re != null && String(Re).trim() && (F.attn_implementation = String(Re).trim());
- const wt = ((k = J.x_vector_only_mode) == null ? void 0 : k.value) ?? J.x_vector_only_mode ?? null;
- wt != null && (F.x_vector_only_mode = wt);
- const Se = ((G = J.use_torch_compile) == null ? void 0 : G.value) ?? J.use_torch_compile ?? null;
- Se != null && (F.use_torch_compile = Se);
- const Ft = ((z = J.use_cuda_graphs) == null ? void 0 : z.value) ?? J.use_cuda_graphs ?? null;
- Ft != null && (F.use_cuda_graphs = Ft);
- const Gt = ((x = J.compile_mode) == null ? void 0 : x.value) ?? J.compile_mode ?? null;
- Gt != null && String(Gt).trim() && (F.compile_mode = String(Gt).trim());
- const ue = ((w = J.enable_chunking) == null ? void 0 : w.value) ?? J.enable_chunking ?? null;
- ue != null && (F.enable_chunking = ue);
- const He = ((X = J.max_chars_per_chunk) == null ? void 0 : X.value) ?? J.max_chars_per_chunk ?? null;
- He != null && (F.max_chars_per_chunk = He);
- const ve = ((V = J.chunk_combination_method) == null ? void 0 : V.value) ?? J.chunk_combination_method ?? null;
- ve != null && String(ve).trim() && (F.chunk_combination_method = String(ve).trim());
- const Ot = ((R = J.silence_between_chunks_ms) == null ? void 0 : R.value) ?? J.silence_between_chunks_ms ?? null;
- Ot != null && (F.silence_between_chunks_ms = Ot);
- const Ve = ((j = J.enable_audio_cache) == null ? void 0 : j.value) ?? J.enable_audio_cache ?? null;
- Ve != null && (F.enable_audio_cache = Ve);
- const Ke = ((L = J.batch_size) == null ? void 0 : L.value) ?? J.batch_size ?? null;
- Ke != null && (F.batch_size = Ke);
- const Be = ((N = J.denoise) == null ? void 0 : N.value) ?? J.denoise ?? null;
- Be != null && (F.denoise = Be);
- const nt = ((q = J.clip_skip) == null ? void 0 : q.value) ?? J.clip_skip ?? J.clipSkip ?? null;
- nt != null && (F.clip_skip = nt);
- const mt = J.inputs;
- Array.isArray(mt) && (F.inputs = mt);
- const bt = ((O = J.lyrics) == null ? void 0 : O.value) ?? J.lyrics ?? null;
- typeof bt == "string" && bt.trim() && (F.lyrics = bt);
- const st = ((B = J.lyrics_strength) == null ? void 0 : B.value) ?? J.lyrics_strength ?? null;
- st != null && (F.lyrics_strength = st), Array.isArray(J.all_positive_prompts) && J.all_positive_prompts.length > 1 && (F.all_positive_prompts = J.all_positive_prompts), Array.isArray(J.all_negative_prompts) && J.all_negative_prompts.length > 1 && (F.all_negative_prompts = J.all_negative_prompts), Array.isArray(J.all_samplers) && J.all_samplers.length > 1 && (F.all_samplers = J.all_samplers), Array.isArray(J.chained_passes) && J.chained_passes.length > 1 && (F.chained_passes = J.chained_passes), Array.isArray(J.all_checkpoints) && J.all_checkpoints.length > 1 && (F.all_checkpoints = J.all_checkpoints);
- const ke = J.size || null;
- if (ke && typeof ke == "object" && (ke.width !== void 0 && (F.width = ke.width), ke.height !== void 0 && (F.height = ke.height)), J.engine && typeof J.engine == "object" && (F.engine = J.engine), Object.keys(F).length) return F;
+ le != null && (M.cfg = le);
+ const de = ((I = J.seed) == null ? void 0 : I.value) ?? J.seed ?? null;
+ de != null && (M.seed = de);
+ const se = ((p = J.voice) == null ? void 0 : p.name) ?? ((S = J.voice) == null ? void 0 : S.value) ?? J.voice ?? null;
+ se != null && String(se).trim() && (M.voice = String(se).trim());
+ const ge = ((A = J.language) == null ? void 0 : A.value) ?? J.language ?? null;
+ ge != null && String(ge).trim() && (M.language = String(ge).trim());
+ const je = ((C = J.temperature) == null ? void 0 : C.value) ?? J.temperature ?? null;
+ je != null && (M.temperature = je);
+ const Se = ((g = J.top_k) == null ? void 0 : g.value) ?? J.top_k ?? null;
+ Se != null && (M.top_k = Se);
+ const ke = ((Z = J.top_p) == null ? void 0 : Z.value) ?? J.top_p ?? null;
+ ke != null && (M.top_p = ke);
+ const we = ((f = J.repetition_penalty) == null ? void 0 : f.value) ?? J.repetition_penalty ?? null;
+ we != null && (M.repetition_penalty = we);
+ const Je = ((b = J.max_new_tokens) == null ? void 0 : b.value) ?? J.max_new_tokens ?? null;
+ Je != null && (M.max_new_tokens = Je);
+ const $e = ((L = J.device) == null ? void 0 : L.value) ?? J.device ?? null;
+ $e != null && String($e).trim() && (M.device = String($e).trim());
+ const qe = ((h = J.voice_preset) == null ? void 0 : h.value) ?? J.voice_preset ?? null;
+ qe != null && String(qe).trim() && (M.voice_preset = String(qe).trim());
+ const Ue = ((G = J.instruct) == null ? void 0 : G.value) ?? J.instruct ?? null;
+ Ue != null && String(Ue).trim() && (M.instruct = String(Ue).trim());
+ const Te = ((W = J.dtype) == null ? void 0 : W.value) ?? J.dtype ?? null;
+ Te != null && String(Te).trim() && (M.dtype = String(Te).trim());
+ const Oe = ((y = J.attn_implementation) == null ? void 0 : y.value) ?? J.attn_implementation ?? null;
+ Oe != null && String(Oe).trim() && (M.attn_implementation = String(Oe).trim());
+ const pt = ((X = J.x_vector_only_mode) == null ? void 0 : X.value) ?? J.x_vector_only_mode ?? null;
+ pt != null && (M.x_vector_only_mode = pt);
+ const Me = ((x = J.use_torch_compile) == null ? void 0 : x.value) ?? J.use_torch_compile ?? null;
+ Me != null && (M.use_torch_compile = Me);
+ const Xt = ((T = J.use_cuda_graphs) == null ? void 0 : T.value) ?? J.use_cuda_graphs ?? null;
+ Xt != null && (M.use_cuda_graphs = Xt);
+ const Mt = ((v = J.compile_mode) == null ? void 0 : v.value) ?? J.compile_mode ?? null;
+ Mt != null && String(Mt).trim() && (M.compile_mode = String(Mt).trim());
+ const me = ((w = J.enable_chunking) == null ? void 0 : w.value) ?? J.enable_chunking ?? null;
+ me != null && (M.enable_chunking = me);
+ const Pe = ((R = J.max_chars_per_chunk) == null ? void 0 : R.value) ?? J.max_chars_per_chunk ?? null;
+ Pe != null && (M.max_chars_per_chunk = Pe);
+ const Le = ((Y = J.chunk_combination_method) == null ? void 0 : Y.value) ?? J.chunk_combination_method ?? null;
+ Le != null && String(Le).trim() && (M.chunk_combination_method = String(Le).trim());
+ const Ot = ((F = J.silence_between_chunks_ms) == null ? void 0 : F.value) ?? J.silence_between_chunks_ms ?? null;
+ Ot != null && (M.silence_between_chunks_ms = Ot);
+ const Xe = ((N = J.enable_audio_cache) == null ? void 0 : N.value) ?? J.enable_audio_cache ?? null;
+ Xe != null && (M.enable_audio_cache = Xe);
+ const Ee = ((V = J.batch_size) == null ? void 0 : V.value) ?? J.batch_size ?? null;
+ Ee != null && (M.batch_size = Ee);
+ const Ke = ((k = J.denoise) == null ? void 0 : k.value) ?? J.denoise ?? null;
+ Ke != null && (M.denoise = Ke);
+ const nt = ((K = J.clip_skip) == null ? void 0 : K.value) ?? J.clip_skip ?? J.clipSkip ?? null;
+ nt != null && (M.clip_skip = nt);
+ const ut = J.inputs;
+ Array.isArray(ut) && (M.inputs = ut);
+ const It = ((z = J.lyrics) == null ? void 0 : z.value) ?? J.lyrics ?? null;
+ typeof It == "string" && It.trim() && (M.lyrics = It);
+ const dt = ((B = J.lyrics_strength) == null ? void 0 : B.value) ?? J.lyrics_strength ?? null;
+ dt != null && (M.lyrics_strength = dt), Array.isArray(J.all_positive_prompts) && J.all_positive_prompts.length > 1 && (M.all_positive_prompts = J.all_positive_prompts), Array.isArray(J.all_negative_prompts) && J.all_negative_prompts.length > 1 && (M.all_negative_prompts = J.all_negative_prompts), Array.isArray(J.all_samplers) && J.all_samplers.length > 1 && (M.all_samplers = J.all_samplers), Array.isArray(J.chained_passes) && J.chained_passes.length > 1 && (M.chained_passes = J.chained_passes), Array.isArray(J.all_checkpoints) && J.all_checkpoints.length > 1 && (M.all_checkpoints = J.all_checkpoints);
+ const Re = J.size || null;
+ if (Re && typeof Re == "object" && (Re.width !== void 0 && (M.width = Re.width), Re.height !== void 0 && (M.height = Re.height)), J.engine && typeof J.engine == "object" && (M.engine = J.engine), Object.keys(M).length) return M;
}
if ([
"prompt",
@@ -38804,34 +38862,34 @@ function rp(e) {
"seed",
"width",
"height"
- ].some((F) => Object.prototype.hasOwnProperty.call(e, F))) return e;
- const Q = Gc(e);
- if (Q) return Q;
- if (op(e)) {
- const F = Gc({ prompt: e });
- if (F) return F;
+ ].some((M) => Object.prototype.hasOwnProperty.call(e, M))) return e;
+ const $ = xc(e);
+ if ($) return $;
+ if (rp(e)) {
+ const M = xc({ prompt: e });
+ if (M) return M;
}
const E = e.parameters || e["PNG:Parameters"] || e["EXIF:UserComment"] || e.UserComment || e.ImageDescription || null;
if (typeof E == "string") {
- const F = Vm(E);
- if (F) return F;
+ const M = Xm(E);
+ if (M) return M;
}
- const K = e.workflow || e.Workflow || e.comfy || e.comfyui || e.ComfyUI || null;
- if (K && typeof K == "object") {
- const F = Gc(K);
- if (F) return F;
+ const oe = e.workflow || e.Workflow || e.comfy || e.comfyui || e.ComfyUI || null;
+ if (oe && typeof oe == "object") {
+ const M = xc(oe);
+ if (M) return M;
}
return e;
}
if (typeof e == "string") {
const J = e.trim();
if (!J) return null;
- const T = Vm(J);
- if (T) return T;
+ const P = Xm(J);
+ if (P) return P;
if (J.startsWith("{") && J.endsWith("}") || J.startsWith("[") && J.endsWith("]"))
try {
- const D = JSON.parse(J);
- return rp(D);
+ const H = JSON.parse(J);
+ return lp(H);
} catch {
return null;
}
@@ -38839,35 +38897,35 @@ function rp(e) {
}
return null;
}
-function _x(e) {
+function tj(e) {
const t = typeof e == "string" ? e.trim() : "";
return !t || t.includes(`
-`) ? !1 : Px.test(t) || Qx.test(t);
+`) ? !1 : $x.test(t) || ej.test(t);
}
-function Zo(e) {
+function Wo(e) {
const t = typeof e == "string" ? e.trim() : "";
- return t ? _x(t) ? "" : t : "";
+ return t ? tj(t) ? "" : t : "";
}
-function km(e, t) {
- let n = Zo(e), i = Zo(t);
+function Nm(e, t) {
+ let n = Wo(e), i = Wo(t);
if (n) {
const o = /(?:^|\n)\s*Negative prompt:\s*/i;
if (o.test(n)) {
const r = n.split(o), l = (r[0] || "").trim(), a = r.slice(1).join("Negative prompt:").trim(), c = a.search(/\n\s*Steps:\s*\d+/i), s = (c >= 0 ? a.slice(0, c) : a).trim();
- l && (n = Zo(l)), !i && s && (i = Zo(s));
+ l && (n = Wo(l)), !i && s && (i = Wo(s));
}
}
return n && i && n.trim() === i.trim() && (i = ""), { positive: n, negative: i };
}
-function _i(e) {
+function to(e) {
if (!e) return "";
const t = String(e).trim().replace(/\\/g, "/");
return (t.split("/").pop() || t).replace(/\.(safetensors|ckpt|pt|pth|bin|gguf|json)$/i, "");
}
-function $x(e) {
+function nj(e) {
if (!e) return "";
- if (typeof e == "string") return _i(e);
- const t = _i(e.name || e.lora_name || "");
+ if (typeof e == "string") return to(e);
+ const t = to(e.name || e.lora_name || "");
if (!t) return "";
const n = e.weight ?? e.strength ?? null, i = e.strength_model ?? null, o = e.strength_clip ?? null;
if (i !== null || o !== null) {
@@ -38876,7 +38934,7 @@ function $x(e) {
}
return n != null ? `${t} (${n})` : t;
}
-const ej = /* @__PURE__ */ new Set([
+const ij = /* @__PURE__ */ new Set([
"png",
"jpg",
"jpeg",
@@ -38892,18 +38950,18 @@ const ej = /* @__PURE__ */ new Set([
"hdr",
"svg"
]);
-function lp(e) {
+function ap(e) {
const t = String((e == null ? void 0 : e.filename) || (e == null ? void 0 : e.name) || (e == null ? void 0 : e.filepath) || (e == null ? void 0 : e.path) || "").trim().toLowerCase();
return !t || !t.includes(".") ? "" : t.split(".").pop() || "";
}
-function xc(e) {
- return String((e == null ? void 0 : e.kind) || "").trim().toLowerCase() === "image" || String((e == null ? void 0 : e.mime) || (e == null ? void 0 : e.mimetype) || "").trim().toLowerCase().startsWith("image/") ? !0 : ej.has(lp(e));
+function jc(e) {
+ return String((e == null ? void 0 : e.kind) || "").trim().toLowerCase() === "image" || String((e == null ? void 0 : e.mime) || (e == null ? void 0 : e.mimetype) || "").trim().toLowerCase().startsWith("image/") ? !0 : ij.has(ap(e));
}
-function tj(e) {
- const t = lp(e);
+function oj(e) {
+ const t = ap(e);
return t === "jpg" || t === "jpeg";
}
-function nj() {
+function rj() {
var e;
try {
const t = Xn();
@@ -38912,13 +38970,13 @@ function nj() {
return !0;
}
}
-function ij(e) {
+function lj(e) {
return e >= 0.75 ? "#4CAF50" : e >= 0.5 ? "#8BC34A" : e >= 0.3 ? "#FF9800" : "#F44336";
}
-function oj(e) {
+function aj(e) {
return e >= 0.85 ? "Excellent" : e >= 0.7 ? "Good" : e >= 0.5 ? "Fair" : e >= 0.3 ? "Low" : "Very Low";
}
-function Xm(e) {
+function Rm(e) {
const t = String(e || "").trim();
if (!t) return "";
const n = [];
@@ -38930,17 +38988,17 @@ function Xm(e) {
}
return (n.length ? n.join(" ") : t).replace(/\s+/g, " ").replace(/:{2,}\s*$/, "").trim();
}
-function rj(e) {
+function cj(e) {
const t = String((e == null ? void 0 : e.filename) || "").trim();
if (!t) return [];
const n = String((e == null ? void 0 : e.subfolder) || "").trim(), i = String((e == null ? void 0 : e.folder_type) || "input").trim().toLowerCase(), o = [], r = (l) => {
if (!l) return;
- const a = dl(t, n, l);
+ const a = ul(t, n, l);
a && !o.includes(a) && o.push(a);
};
return (i === "input" || i === "output") && r(i), r("input"), r("output"), o;
}
-function lj(e) {
+function sj(e) {
const t = String(e || "").trim();
if (!t) return !1;
if (t.startsWith("/")) return !0;
@@ -38951,36 +39009,36 @@ function lj(e) {
return !1;
}
}
-function Mi(e) {
+function xi(e) {
return e == null || e === "" ? "-" : String(e);
}
-function Nm(e, t) {
+function Fm(e, t) {
const n = String((e == null ? void 0 : e.pass_name) || "").trim();
if (n) return n;
const i = Number(e == null ? void 0 : e.denoise);
return t === 0 || i === 1 ? "Base" : Number.isFinite(i) && i < 1 ? "Refine / Upscale" : `Pass ${t + 1}`;
}
-function aj(e) {
+function dj(e) {
return e != null && e.geninfo && typeof e.geninfo == "object" ? { geninfo: e.geninfo } : e != null && e.metadata && (typeof e.metadata == "object" || typeof e.metadata == "string") ? e.metadata : e != null && e.prompt && (typeof e.prompt == "object" || typeof e.prompt == "string") ? e.prompt : e != null && e.metadata_raw ? e.metadata_raw : e != null && e.exif ? e.exif : null;
}
-function cj(e) {
+function uj(e) {
try {
if (!e || typeof e != "object") return !1;
- if (e.engine && typeof e.engine == "object" && e.engine.type || Zo(e.prompt) || typeof (e.negative_prompt || e.negativePrompt) == "string" && Zo(e.negative_prompt || e.negativePrompt) || e.models || e.model || e.checkpoint || e.loras || e.sampler || e.sampler_name || e.steps || e.cfg || e.cfg_scale || e.scheduler || Array.isArray(e.chained_passes) && e.chained_passes.length > 0 || Array.isArray(e.all_samplers) && e.all_samplers.length > 0 || e.seed || e.denoise || e.denoising || e.clip_skip || e.voice || e.language || e.temperature || e.top_k || e.top_p || e.repetition_penalty || e.max_new_tokens || e.device || e.voice_preset || e.instruct || e.dtype || e.attn_implementation || e.enable_chunking !== void 0 || e.max_chars_per_chunk || e.chunk_combination_method || e.silence_between_chunks_ms || e.enable_audio_cache !== void 0 || e.batch_size !== void 0 || e.use_torch_compile !== void 0 || e.use_cuda_graphs !== void 0 || e.compile_mode || typeof e.lyrics == "string" && e.lyrics.trim()) return !0;
+ if (e.engine && typeof e.engine == "object" && e.engine.type || Wo(e.prompt) || typeof (e.negative_prompt || e.negativePrompt) == "string" && Wo(e.negative_prompt || e.negativePrompt) || e.models || e.model || e.checkpoint || e.loras || e.sampler || e.sampler_name || e.steps || e.cfg || e.cfg_scale || e.scheduler || Array.isArray(e.chained_passes) && e.chained_passes.length > 0 || Array.isArray(e.all_samplers) && e.all_samplers.length > 0 || e.seed || e.denoise || e.denoising || e.clip_skip || e.voice || e.language || e.temperature || e.top_k || e.top_p || e.repetition_penalty || e.max_new_tokens || e.device || e.voice_preset || e.instruct || e.dtype || e.attn_implementation || e.enable_chunking !== void 0 || e.max_chars_per_chunk || e.chunk_combination_method || e.silence_between_chunks_ms || e.enable_audio_cache !== void 0 || e.batch_size !== void 0 || e.use_torch_compile !== void 0 || e.use_cuda_graphs !== void 0 || e.compile_mode || typeof e.lyrics == "string" && e.lyrics.trim()) return !0;
} catch {
return !1;
}
return !1;
}
-function Go(e) {
- return e ? typeof e == "string" ? _i(e) : typeof e == "object" ? _i(e.name || e.value || "") : "" : "";
+function jo(e) {
+ return e ? typeof e == "string" ? to(e) : typeof e == "object" ? to(e.name || e.value || "") : "" : "";
}
-function Tr(e, t) {
+function Ur(e, t) {
return t == null ? null : { label: e, value: t ? "on" : "off" };
}
-function sj(e) {
- var g, h, f, b, v;
- const t = rp(aj(e)), n = {
+function mj(e) {
+ var g, Z, f, b, L;
+ const t = lp(dj(e)), n = {
kind: "empty",
title: "Generation",
workflowType: "",
@@ -38992,7 +39050,7 @@ function sj(e) {
showAlignment: !1,
captionLabel: "Image Description",
emptyCaptionText: "No image description yet.",
- isImageAsset: xc(e),
+ isImageAsset: jc(e),
lyrics: "",
modelFields: [],
pipelineTabs: [],
@@ -39006,127 +39064,127 @@ function sj(e) {
imageFields: [],
inputFiles: []
};
- if (!t || typeof t == "object" && Object.keys(t).length === 0 || !cj(t)) {
- const C = ((g = e == null ? void 0 : e.metadata_raw) == null ? void 0 : g.geninfo_status) || (e == null ? void 0 : e.geninfo_status);
- return C && typeof C == "object" && C.kind === "media_pipeline" ? {
+ if (!t || typeof t == "object" && Object.keys(t).length === 0 || !uj(t)) {
+ const h = ((g = e == null ? void 0 : e.metadata_raw) == null ? void 0 : g.geninfo_status) || (e == null ? void 0 : e.geninfo_status);
+ return h && typeof h == "object" && h.kind === "media_pipeline" ? {
...n,
kind: "media-only",
mediaOnlyMessage: "This file looks like a media-only pipeline (e.g. LoadVideo/VideoCombine) and does not contain generation parameters."
- } : xc(e) || tj(e) ? {
+ } : jc(e) || oj(e) ? {
...n,
kind: "caption-only",
showAlignment: !1
} : n;
}
- const i = t, o = km(
+ const i = t, o = Nm(
typeof i.prompt == "string" ? i.prompt : null,
typeof (i.negative_prompt || i.negativePrompt) == "string" ? i.negative_prompt || i.negativePrompt : null
- ), r = Array.isArray(i.all_positive_prompts) && i.all_positive_prompts.length > 1 ? i.all_positive_prompts.map((C, S) => {
+ ), r = Array.isArray(i.all_positive_prompts) && i.all_positive_prompts.length > 1 ? i.all_positive_prompts.map((h, G) => {
var y;
- const W = km(
- typeof C == "string" ? C : "",
- typeof ((y = i.all_negative_prompts) == null ? void 0 : y[S]) == "string" ? i.all_negative_prompts[S] : ""
+ const W = Nm(
+ typeof h == "string" ? h : "",
+ typeof ((y = i.all_negative_prompts) == null ? void 0 : y[G]) == "string" ? i.all_negative_prompts[G] : ""
);
return {
- label: `Prompt ${S + 1}`,
- positive: Zo(W.positive),
- negative: Zo(W.negative)
+ label: `Prompt ${G + 1}`,
+ positive: Wo(W.positive),
+ negative: Wo(W.negative)
};
- }).filter((C) => C.positive) : [], l = [], a = i.models && typeof i.models == "object" ? i.models : null, c = Array.isArray(i.all_checkpoints) && i.all_checkpoints.length > 1 ? i.all_checkpoints : null;
+ }).filter((h) => h.positive) : [], l = [], a = i.models && typeof i.models == "object" ? i.models : null, c = Array.isArray(i.all_checkpoints) && i.all_checkpoints.length > 1 ? i.all_checkpoints : null;
if (a) {
if (c)
- c.forEach((S, W) => {
- const y = Go(S);
+ c.forEach((G, W) => {
+ const y = jo(G);
y && l.push({ label: `Checkpoint ${W + 1}`, value: y });
});
else {
- const S = Go(a.checkpoint);
- S && l.push({ label: "Checkpoint", value: S });
+ const G = jo(a.checkpoint);
+ G && l.push({ label: "Checkpoint", value: G });
}
[
- ["UNet", Go(a.unet)],
- ["Diffusion", Go(a.diffusion)],
- ["Upscaler", Go(a.upscaler)],
- ["CLIP", Go(a.clip)],
- ["VAE", Go(a.vae)]
- ].forEach(([S, W]) => {
- W && l.push({ label: S, value: W });
+ ["UNet", jo(a.unet)],
+ ["Diffusion", jo(a.diffusion)],
+ ["Upscaler", jo(a.upscaler)],
+ ["CLIP", jo(a.clip)],
+ ["VAE", jo(a.vae)]
+ ].forEach(([G, W]) => {
+ W && l.push({ label: G, value: W });
});
} else (i.model || i.checkpoint) && l.push({
label: "Model",
- value: _i(i.model || i.checkpoint)
+ value: to(i.model || i.checkpoint)
});
if (Array.isArray(i.loras) && i.loras.length > 0) {
- const C = i.loras.map((S) => $x(S)).filter(Boolean).join(`
+ const h = i.loras.map((G) => nj(G)).filter(Boolean).join(`
`);
- C && l.push({ label: "LoRA", value: C });
+ h && l.push({ label: "LoRA", value: h });
}
- !a && i.clip && l.push({ label: "CLIP", value: _i(i.clip) }), !a && i.vae && l.push({ label: "VAE", value: _i(i.vae) }), !a && i.unet && l.push({ label: "UNet", value: _i(i.unet) }), !a && i.diffusion && l.push({ label: "Diffusion", value: _i(i.diffusion) });
+ !a && i.clip && l.push({ label: "CLIP", value: to(i.clip) }), !a && i.vae && l.push({ label: "VAE", value: to(i.vae) }), !a && i.unet && l.push({ label: "UNet", value: to(i.unet) }), !a && i.diffusion && l.push({ label: "Diffusion", value: to(i.diffusion) });
const s = [];
(i.sampler || i.sampler_name) && s.push({ label: "Sampler", value: i.sampler || i.sampler_name }), i.steps && s.push({ label: "Steps", value: i.steps }), (i.cfg || i.cfg_scale) && s.push({ label: "CFG Scale", value: i.cfg || i.cfg_scale }), i.scheduler && s.push({ label: "Scheduler", value: i.scheduler });
let d = [];
- Array.isArray(i.chained_passes) && i.chained_passes.length > 1 ? d = i.chained_passes.filter((C) => C && typeof C == "object").map((C, S) => ({
- label: Nm(C, S),
+ Array.isArray(i.chained_passes) && i.chained_passes.length > 1 ? d = i.chained_passes.filter((h) => h && typeof h == "object").map((h, G) => ({
+ label: Fm(h, G),
fields: [
- { label: "Sampler", value: Mi((C == null ? void 0 : C.sampler_name) || (C == null ? void 0 : C.sampler)) },
- { label: "Scheduler", value: Mi(C == null ? void 0 : C.scheduler) },
- { label: "Steps", value: Mi(C == null ? void 0 : C.steps) },
- { label: "CFG", value: Mi(C == null ? void 0 : C.cfg) },
- { label: "Denoise", value: Mi(C == null ? void 0 : C.denoise) },
- { label: "Seed", value: Mi((C == null ? void 0 : C.seed_val) || (C == null ? void 0 : C.seed)) }
+ { label: "Sampler", value: xi((h == null ? void 0 : h.sampler_name) || (h == null ? void 0 : h.sampler)) },
+ { label: "Scheduler", value: xi(h == null ? void 0 : h.scheduler) },
+ { label: "Steps", value: xi(h == null ? void 0 : h.steps) },
+ { label: "CFG", value: xi(h == null ? void 0 : h.cfg) },
+ { label: "Denoise", value: xi(h == null ? void 0 : h.denoise) },
+ { label: "Seed", value: xi((h == null ? void 0 : h.seed_val) || (h == null ? void 0 : h.seed)) }
]
- })) : Array.isArray(i.all_samplers) && i.all_samplers.length > 1 && (d = i.all_samplers.filter((C) => C && typeof C == "object").map((C, S) => ({
- label: Nm(C, S),
+ })) : Array.isArray(i.all_samplers) && i.all_samplers.length > 1 && (d = i.all_samplers.filter((h) => h && typeof h == "object").map((h, G) => ({
+ label: Fm(h, G),
fields: [
- { label: "Sampler", value: Mi((C == null ? void 0 : C.sampler_name) || (C == null ? void 0 : C.sampler)) },
- { label: "Scheduler", value: Mi(C == null ? void 0 : C.scheduler) },
- { label: "Steps", value: Mi(C == null ? void 0 : C.steps) },
- { label: "CFG", value: Mi(C == null ? void 0 : C.cfg) },
- { label: "Denoise", value: Mi(C == null ? void 0 : C.denoise) },
- { label: "Seed", value: Mi((C == null ? void 0 : C.seed_val) || (C == null ? void 0 : C.seed)) }
+ { label: "Sampler", value: xi((h == null ? void 0 : h.sampler_name) || (h == null ? void 0 : h.sampler)) },
+ { label: "Scheduler", value: xi(h == null ? void 0 : h.scheduler) },
+ { label: "Steps", value: xi(h == null ? void 0 : h.steps) },
+ { label: "CFG", value: xi(h == null ? void 0 : h.cfg) },
+ { label: "Denoise", value: xi(h == null ? void 0 : h.denoise) },
+ { label: "Seed", value: xi((h == null ? void 0 : h.seed_val) || (h == null ? void 0 : h.seed)) }
]
})));
const u = [];
i.voice && u.push({ label: "Narrator Voice", value: i.voice }), i.language && u.push({ label: "Language", value: i.language }), i.top_k !== void 0 && i.top_k !== null && u.push({ label: "Top-k", value: i.top_k }), i.top_p !== void 0 && i.top_p !== null && u.push({ label: "Top-p", value: i.top_p }), i.temperature !== void 0 && i.temperature !== null && u.push({ label: "Temperature", value: i.temperature }), i.repetition_penalty !== void 0 && i.repetition_penalty !== null && u.push({ label: "Repetition Penalty", value: i.repetition_penalty }), i.max_new_tokens !== void 0 && i.max_new_tokens !== null && u.push({ label: "Max New Tokens", value: i.max_new_tokens });
const I = [];
i.device && I.push({ label: "Device", value: i.device }), i.voice_preset && I.push({ label: "Voice Preset", value: i.voice_preset }), i.dtype && I.push({ label: "Dtype", value: i.dtype }), i.attn_implementation && I.push({ label: "Attention", value: i.attn_implementation }), i.compile_mode && I.push({ label: "Compile Mode", value: i.compile_mode }), [
- Tr("Torch Compile", i.use_torch_compile),
- Tr("CUDA Graphs", i.use_cuda_graphs),
- Tr("X-Vector Only", i.x_vector_only_mode)
- ].filter(Boolean).forEach((C) => I.push(C));
+ Ur("Torch Compile", i.use_torch_compile),
+ Ur("CUDA Graphs", i.use_cuda_graphs),
+ Ur("X-Vector Only", i.x_vector_only_mode)
+ ].filter(Boolean).forEach((h) => I.push(h));
const p = [];
[
- Tr("Chunking", i.enable_chunking),
+ Ur("Chunking", i.enable_chunking),
i.max_chars_per_chunk !== void 0 && i.max_chars_per_chunk !== null ? { label: "Max Chars/Chunk", value: i.max_chars_per_chunk } : null,
i.chunk_combination_method ? { label: "Chunk Method", value: i.chunk_combination_method } : null,
i.silence_between_chunks_ms !== void 0 && i.silence_between_chunks_ms !== null ? { label: "Silence Between Chunks (ms)", value: i.silence_between_chunks_ms } : null,
- Tr("Audio Cache", i.enable_audio_cache),
+ Ur("Audio Cache", i.enable_audio_cache),
i.batch_size !== void 0 && i.batch_size !== null ? { label: "Batch Size", value: i.batch_size } : null
- ].filter(Boolean).forEach((C) => p.push(C));
- const M = [];
- i.lyrics_strength !== void 0 && i.lyrics_strength !== null && M.push({ label: "Lyrics Strength", value: i.lyrics_strength });
- const Z = [];
- (i.denoise || i.denoising) && Z.push({ label: "Denoise", value: i.denoise || i.denoising }), i.clip_skip && Z.push({ label: "Clip Skip", value: i.clip_skip });
- const A = Array.isArray(i.inputs) ? i.inputs.filter((C) => C && typeof C == "object" && C.filename).map((C, S) => ({
- id: `${C.filename}-${S}`,
- filename: String(C.filename || "").trim(),
- filepath: String(C.filepath || C.filename || "").trim(),
- role: String(C.role || "").trim(),
- roleLabel: String(C.role || "").trim().replace(/_/g, " "),
- isVideo: String(C.type || "").toLowerCase() === "video" || /\.(mp4|mov|webm)$/i.test(String(C.filename || "")),
- previewCandidates: rj(C)
+ ].filter(Boolean).forEach((h) => p.push(h));
+ const S = [];
+ i.lyrics_strength !== void 0 && i.lyrics_strength !== null && S.push({ label: "Lyrics Strength", value: i.lyrics_strength });
+ const A = [];
+ (i.denoise || i.denoising) && A.push({ label: "Denoise", value: i.denoise || i.denoising }), i.clip_skip && A.push({ label: "Clip Skip", value: i.clip_skip });
+ const C = Array.isArray(i.inputs) ? i.inputs.filter((h) => h && typeof h == "object" && h.filename).map((h, G) => ({
+ id: `${h.filename}-${G}`,
+ filename: String(h.filename || "").trim(),
+ filepath: String(h.filepath || h.filename || "").trim(),
+ role: String(h.role || "").trim(),
+ roleLabel: String(h.role || "").trim().replace(/_/g, " "),
+ isVideo: String(h.type || "").toLowerCase() === "video" || /\.(mp4|mov|webm)$/i.test(String(h.filename || "")),
+ previewCandidates: cj(h)
})) : [];
return {
...n,
kind: "full",
metadata: i,
- workflowType: String(((h = i == null ? void 0 : i.engine) == null ? void 0 : h.type) || "").trim(),
- isTruncated: !!((f = e == null ? void 0 : e.geninfo) != null && f._truncated || (b = e == null ? void 0 : e.metadata) != null && b._truncated || (v = e == null ? void 0 : e.prompt) != null && v._truncated),
+ workflowType: String(((Z = i == null ? void 0 : i.engine) == null ? void 0 : Z.type) || "").trim(),
+ isTruncated: !!((f = e == null ? void 0 : e.geninfo) != null && f._truncated || (b = e == null ? void 0 : e.metadata) != null && b._truncated || (L = e == null ? void 0 : e.prompt) != null && L._truncated),
positivePrompt: r.length ? "" : String(o.positive || "").trim(),
negativePrompt: r.length ? "" : String(o.negative || "").trim(),
promptTabs: r,
showAlignment: !!(e != null && e.id) && (!!String(o.positive || "").trim() || r.length > 0),
- isImageAsset: xc(e),
+ isImageAsset: jc(e),
lyrics: String(i.lyrics || "").trim(),
modelFields: l,
pipelineTabs: d,
@@ -39135,20 +39193,20 @@ function sj(e) {
ttsEngineFields: I,
ttsInstruction: String(i.instruct || "").trim(),
ttsRuntimeFields: p,
- audioFields: M,
+ audioFields: S,
seed: i.seed ?? null,
- imageFields: Z,
- inputFiles: A
+ imageFields: A,
+ inputFiles: C
};
}
-const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
+const gj = ["title"], Ij = ["src"], bj = ["src"], pj = {
key: 2,
style: { position: "absolute", bottom: "0", left: "0", right: "0", background: "rgba(0,0,0,0.7)", color: "white", "font-size": "8px", padding: "2px", "text-align": "center", "white-space": "nowrap", overflow: "hidden", "text-overflow": "ellipsis" }
-}, Ij = {
+}, yj = {
key: 3,
title: "Video file",
style: { position: "absolute", color: "white", opacity: "0.7", "font-size": "16px", "pointer-events": "none" }
-}, bj = {
+}, fj = {
__name: "GenerationInputThumb",
props: {
inputFile: { type: Object, required: !0 }
@@ -39165,45 +39223,45 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
n.value < d.length - 1 && (n.value += 1);
}
async function l(d) {
- var I, p, M, Z;
+ var I, p, S, A;
(I = d == null ? void 0 : d.stopPropagation) == null || I.call(d);
- const u = String(((p = t.inputFile) == null ? void 0 : p.filepath) || ((M = t.inputFile) == null ? void 0 : M.filename) || "").trim();
+ const u = String(((p = t.inputFile) == null ? void 0 : p.filepath) || ((S = t.inputFile) == null ? void 0 : S.filename) || "").trim();
if (u)
try {
await navigator.clipboard.writeText(u), i.value = !0, setTimeout(() => {
i.value = !1;
}, 350);
- } catch (A) {
- (Z = console.debug) == null || Z.call(console, A);
+ } catch (C) {
+ (A = console.debug) == null || A.call(console, C);
}
}
function a(d) {
var I, p;
(I = d == null ? void 0 : d.stopPropagation) == null || I.call(d);
const u = o();
- if (lj(u))
+ if (sj(u))
try {
window.open(u, "_blank", "noopener,noreferrer");
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
}
function c(d) {
- var u, I, p, M;
- (M = (I = (u = d.target) == null ? void 0 : u.play) == null ? void 0 : (p = I.call(u)).catch) == null || M.call(p, () => {
+ var u, I, p, S;
+ (S = (I = (u = d.target) == null ? void 0 : u.play) == null ? void 0 : (p = I.call(u)).catch) == null || S.call(p, () => {
});
}
function s(d) {
var u, I, p;
try {
(I = (u = d.target) == null ? void 0 : u.pause) == null || I.call(u);
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
}
- return (d, u) => (Ie(), he("div", {
+ return (d, u) => (be(), Ce("div", {
title: `${e.inputFile.filename} (click to copy, double-click to open in new tab)`,
- style: vt({
+ style: Lt({
width: "64px",
height: "64px",
background: "#222",
@@ -39220,7 +39278,7 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
onClick: l,
onDblclick: a
}, [
- e.inputFile.isVideo ? (Ie(), he("video", {
+ e.inputFile.isVideo ? (be(), Ce("video", {
key: 0,
src: o(),
muted: "",
@@ -39231,19 +39289,19 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
onError: r,
onMouseover: c,
onMouseout: s
- }, null, 40, uj)) : (Ie(), he("img", {
+ }, null, 40, Ij)) : (be(), Ce("img", {
key: 1,
src: o(),
style: { width: "100%", height: "100%", "object-fit": "cover" },
onError: r
- }, null, 40, mj)),
- e.inputFile.role && e.inputFile.role !== "secondary" ? (Ie(), he("div", gj, Ye(e.inputFile.roleLabel), 1)) : e.inputFile.isVideo ? (Ie(), he("div", Ij, " βΆ ")) : yt("", !0)
- ], 44, dj));
+ }, null, 40, bj)),
+ e.inputFile.role && e.inputFile.role !== "secondary" ? (be(), Ce("div", pj, Ye(e.inputFile.roleLabel), 1)) : e.inputFile.isVideo ? (be(), Ce("div", yj, " βΆ ")) : ft("", !0)
+ ], 44, gj));
}
-}, pj = {
+}, hj = {
key: 0,
style: { display: "flex", "flex-direction": "column", gap: "12px" }
-}, yj = {
+}, Cj = {
key: 0,
style: {
display: "flex",
@@ -39258,10 +39316,10 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
fontSize: "11px",
color: "var(--fg-color, #ccc)"
}
-}, fj = ["title"], hj = { style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word" } }, Cj = { style: { "font-size": "11px", "font-weight": "600", color: "#4CAF50", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "10px" } }, Zj = { style: { display: "flex", "flex-wrap": "wrap", gap: "6px", "margin-bottom": "10px" } }, Aj = ["onClick"], Wj = ["onClick"], wj = ["onClick"], Mj = { style: { display: "flex", "align-items": "center", gap: "10px" } }, Sj = { style: { flex: "1", height: "8px", background: "rgba(255,255,255,0.1)", "border-radius": "4px", overflow: "hidden" } }, Gj = {
+}, Zj = ["title"], Aj = { style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word" } }, Wj = { style: { "font-size": "11px", "font-weight": "600", color: "#4CAF50", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "10px" } }, wj = { style: { display: "flex", "flex-wrap": "wrap", gap: "6px", "margin-bottom": "10px" } }, Mj = ["onClick"], Sj = ["onClick"], Gj = ["onClick"], xj = { style: { display: "flex", "align-items": "center", gap: "10px" } }, jj = { style: { flex: "1", height: "8px", background: "rgba(255,255,255,0.1)", "border-radius": "4px", overflow: "hidden" } }, vj = {
key: 0,
style: { "font-size": "10px", color: "rgba(255,255,255,0.65)", border: "1px dashed rgba(255,255,255,0.25)", "border-radius": "4px", padding: "6px 8px", background: "rgba(255,255,255,0.04)" }
-}, xj = { style: { "font-size": "10px", "font-weight": "600", color: "rgba(0, 188, 212, 0.75)", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-top": "8px", display: "flex", "align-items": "center", "justify-content": "space-between", gap: "8px" } }, jj = { title: "AI caption generated by Florence-2" }, vj = { style: { display: "flex", "align-items": "center", gap: "6px" } }, Lj = ["disabled"], Yj = ["disabled"], Vj = ["title"], kj = { style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word" } }, Xj = { style: { display: "flex", "flex-wrap": "wrap", gap: "6px", "margin-bottom": "10px" } }, Nj = ["onClick"], Rj = { style: { "font-size": "10px", "font-weight": "600", color: "rgba(255,255,255,0.6)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, Fj = ["onClick"], Oj = { style: { display: "grid", "grid-template-columns": "auto 1fr", gap: "8px 12px", "align-items": "start" } }, zj = ["title"], Jj = ["title", "onClick"], Tj = ["title"], Bj = ["title"], Uj = { style: { display: "flex", gap: "8px", "flex-wrap": "wrap" } }, Kj = {
+}, Lj = { style: { "font-size": "10px", "font-weight": "600", color: "rgba(0, 188, 212, 0.75)", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-top": "8px", display: "flex", "align-items": "center", "justify-content": "space-between", gap: "8px" } }, Vj = { title: "AI caption generated by Florence-2" }, Yj = { style: { display: "flex", "align-items": "center", gap: "6px" } }, kj = ["disabled"], Xj = ["disabled"], Nj = ["title"], Rj = { style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word" } }, Fj = { style: { display: "flex", "flex-wrap": "wrap", gap: "6px", "margin-bottom": "10px" } }, Oj = ["onClick"], zj = { style: { "font-size": "10px", "font-weight": "600", color: "rgba(255,255,255,0.6)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, Jj = ["onClick"], Tj = { style: { display: "grid", "grid-template-columns": "auto 1fr", gap: "8px 12px", "align-items": "start" } }, Bj = ["title"], Uj = ["title", "onClick"], Kj = ["title"], Dj = ["title"], Ej = { style: { display: "flex", gap: "8px", "flex-wrap": "wrap" } }, Hj = {
__name: "SidebarGenerationSection",
props: {
asset: { type: Object, required: !0 }
@@ -39282,18 +39340,18 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
aiStatusText: "AI features are disabled (enable vector search env var)."
};
}
- function u(z, x) {
- const w = String(z || "").trim().replace(/^#/, "");
- if (!/^[0-9a-fA-F]{6}$/.test(w)) return `rgba(255,255,255,${x})`;
- const X = Number.parseInt(w.slice(0, 2), 16), V = Number.parseInt(w.slice(2, 4), 16), R = Number.parseInt(w.slice(4, 6), 16);
- return `rgba(${X}, ${V}, ${R}, ${x})`;
+ function u(T, v) {
+ const w = String(T || "").trim().replace(/^#/, "");
+ if (!/^[0-9a-fA-F]{6}$/.test(w)) return `rgba(255,255,255,${v})`;
+ const R = Number.parseInt(w.slice(0, 2), 16), Y = Number.parseInt(w.slice(2, 4), 16), F = Number.parseInt(w.slice(4, 6), 16);
+ return `rgba(${R}, ${Y}, ${F}, ${v})`;
}
- function I(z, { emphasis: x = !1, startAlpha: w = 0.16, endAlpha: X = 0.08 } = {}) {
+ function I(T, { emphasis: v = !1, startAlpha: w = 0.16, endAlpha: R = 0.08 } = {}) {
return {
- background: x ? `linear-gradient(135deg, ${u(z, w)} 0%, ${u(z, X)} 100%)` : "var(--comfy-menu-bg, rgba(0,0,0,0.3))",
- borderLeft: `3px solid ${z}`,
- border: x ? `1px solid ${u(z, 0.45)}` : "1px solid var(--border-color, rgba(255,255,255,0.12))",
- boxShadow: x ? `0 0 0 1px ${u(z, 0.15)} inset` : "none",
+ background: v ? `linear-gradient(135deg, ${u(T, w)} 0%, ${u(T, R)} 100%)` : "var(--comfy-menu-bg, rgba(0,0,0,0.3))",
+ borderLeft: `3px solid ${T}`,
+ border: v ? `1px solid ${u(T, 0.45)}` : "1px solid var(--border-color, rgba(255,255,255,0.12))",
+ boxShadow: v ? `0 0 0 1px ${u(T, 0.15)} inset` : "none",
borderRadius: "6px",
padding: "12px"
};
@@ -39310,81 +39368,81 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
gap: "12px"
};
}
- const M = Je(() => sj(t.asset)), Z = Je(() => nj()), A = Je(
- () => M.value.kind === "full" || M.value.kind === "caption-only"
- ), g = Je(
- () => Xm(o.value) || M.value.emptyCaptionText
- ), h = Je(
+ const S = ze(() => mj(t.asset)), A = ze(() => rj()), C = ze(
+ () => S.value.kind === "full" || S.value.kind === "caption-only"
+ ), g = ze(
+ () => Rm(o.value) || S.value.emptyCaptionText
+ ), Z = ze(
() => {
- var z;
- return Z.value && M.value.isImageAsset && !!((z = t.asset) != null && z.id);
+ var T;
+ return A.value && S.value.isImageAsset && !!((T = t.asset) != null && T.id);
}
- ), f = Je(
- () => Z.value && !!Xm(g.value) && g.value !== M.value.emptyCaptionText
- ), b = Je(() => {
- const z = [];
- return M.value.modelFields.length && z.push({
+ ), f = ze(
+ () => A.value && !!Rm(g.value) && g.value !== S.value.emptyCaptionText
+ ), b = ze(() => {
+ const T = [];
+ return S.value.modelFields.length && T.push({
key: "model",
title: "Model & LoRA",
accent: "#9C27B0",
emphasis: !0,
- fields: M.value.modelFields
- }), !M.value.pipelineTabs.length && M.value.samplingFields.length && z.push({
+ fields: S.value.modelFields
+ }), !S.value.pipelineTabs.length && S.value.samplingFields.length && T.push({
key: "sampling",
title: "Sampling",
accent: "#FF9800",
emphasis: !0,
- fields: M.value.samplingFields
- }), (M.value.ttsFields.length || M.value.workflowType.toLowerCase() === "tts") && z.push({
+ fields: S.value.samplingFields
+ }), (S.value.ttsFields.length || S.value.workflowType.toLowerCase() === "tts") && T.push({
key: "tts",
title: "TTS",
accent: "#26A69A",
emphasis: !0,
- fields: M.value.ttsFields
- }), M.value.ttsEngineFields.length && z.push({
+ fields: S.value.ttsFields
+ }), S.value.ttsEngineFields.length && T.push({
key: "tts-engine",
title: "TTS Engine",
accent: "#00897B",
emphasis: !1,
- fields: M.value.ttsEngineFields
- }), M.value.ttsRuntimeFields.length && z.push({
+ fields: S.value.ttsEngineFields
+ }), S.value.ttsRuntimeFields.length && T.push({
key: "tts-runtime",
title: "TTS Runtime",
accent: "#00796B",
emphasis: !1,
- fields: M.value.ttsRuntimeFields
- }), M.value.audioFields.length && z.push({
+ fields: S.value.ttsRuntimeFields
+ }), S.value.audioFields.length && T.push({
key: "audio",
title: "Audio",
accent: "#00BCD4",
emphasis: !1,
- fields: M.value.audioFields
- }), M.value.imageFields.length && z.push({
+ fields: S.value.audioFields
+ }), S.value.imageFields.length && T.push({
key: "image",
title: "Image",
accent: "#2196F3",
emphasis: !1,
- fields: M.value.imageFields
- }), z;
+ fields: S.value.imageFields
+ }), T;
});
- function v(z, x, w = 450) {
- if (!z) return;
- const X = z.style.background;
- z.style.background = x, setTimeout(() => {
- z.style.background = X || "";
+ function L(T, v, w = 450) {
+ if (!T) return;
+ const R = T.style.background;
+ T.style.background = v, setTimeout(() => {
+ T.style.background = R || "";
}, w);
}
- async function C(z, x = null, w = "rgba(76, 175, 80, 0.35)") {
- var V;
- const X = String(z ?? "").trim();
- if (!(!X || X === "-"))
+ async function h(T, v = null, w = "rgba(76, 175, 80, 0.35)") {
+ var Y;
+ const R = String(T ?? "").trim();
+ if (!(!R || R === "-"))
try {
- await navigator.clipboard.writeText(X), v(x, w);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ await navigator.clipboard.writeText(R), L(v, w);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
}
- function S() {
+ function G() {
c.value = {
scoreText: "AI OFF",
scoreColor: "#9E9E9E",
@@ -39401,27 +39459,27 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
c.value = d();
}
async function y() {
- var x, w;
+ var v, w;
s += 1;
- const z = s;
- if (!M.value.showAlignment || !((x = t.asset) != null && x.id)) {
+ const T = s;
+ if (!S.value.showAlignment || !((v = t.asset) != null && v.id)) {
W();
return;
}
- if (!Z.value) {
- S();
+ if (!A.value) {
+ G();
return;
}
W();
try {
- const X = await Df(t.asset.id);
- if (z !== s) return;
- if (!(X != null && X.ok) && (String((X == null ? void 0 : X.code) || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String((X == null ? void 0 : X.error) || "")))) {
- S();
+ const R = await qf(t.asset.id);
+ if (T !== s) return;
+ if (!(R != null && R.ok) && (String((R == null ? void 0 : R.code) || "").toUpperCase() === "SERVICE_UNAVAILABLE" || /vector search is not enabled/i.test(String((R == null ? void 0 : R.error) || "")))) {
+ G();
return;
}
- const R = X != null && X.ok && X.data != null ? Number(X.data) : null;
- if (!Number.isFinite(R)) {
+ const F = R != null && R.ok && R.data != null ? Number(R.data) : null;
+ if (!Number.isFinite(F)) {
c.value = {
scoreText: "N/A",
scoreColor: "#888",
@@ -39435,20 +39493,20 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
};
return;
}
- const j = Math.round(R * 100), L = ij(R);
+ const N = Math.round(F * 100), V = lj(F);
c.value = {
- scoreText: `${j}%`,
- scoreColor: L,
- qualityText: oj(R),
- qualityColor: L,
- qualityBackground: `${L}33`,
- fillWidth: `${j}%`,
- fillColor: L,
+ scoreText: `${N}%`,
+ scoreColor: V,
+ qualityText: aj(F),
+ qualityColor: V,
+ qualityBackground: `${V}33`,
+ fillWidth: `${N}%`,
+ fillColor: V,
aiStatusVisible: !1,
aiStatusText: ""
};
- } catch (X) {
- if ((w = console.debug) == null || w.call(console, X), z !== s) return;
+ } catch (R) {
+ if ((w = console.debug) == null || w.call(console, R), T !== s) return;
c.value = {
scoreText: "-",
scoreColor: "#888",
@@ -39462,153 +39520,153 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
};
}
}
- async function k() {
- var z;
- if (!(!h.value || a.value)) {
+ async function X() {
+ var T;
+ if (!(!Z.value || a.value)) {
a.value = !0, l.value = "Generating...";
try {
- const x = await Ef(t.asset.id);
- x != null && x.ok && (o.value = String((x == null ? void 0 : x.data) || "").trim());
- } catch (x) {
- (z = console.debug) == null || z.call(console, x);
+ const v = await Pf(t.asset.id);
+ v != null && v.ok && (o.value = String((v == null ? void 0 : v.data) || "").trim());
+ } catch (v) {
+ (T = console.debug) == null || T.call(console, v);
} finally {
a.value = !1, l.value = "Generate";
}
}
}
- async function G() {
- var z;
+ async function x() {
+ var T;
if (f.value)
try {
await navigator.clipboard.writeText(g.value), r.value = "Copied!", setTimeout(() => {
r.value = "Copy";
}, 900);
- } catch (x) {
- (z = console.debug) == null || z.call(console, x);
+ } catch (v) {
+ (T = console.debug) == null || T.call(console, v);
}
}
- return an(
+ return cn(
() => t.asset,
() => {
- var z;
- n.value = 0, i.value = 0, o.value = String(((z = t.asset) == null ? void 0 : z.enhanced_caption) || "").trim(), r.value = "Copy", l.value = "Generate";
+ var T;
+ n.value = 0, i.value = 0, o.value = String(((T = t.asset) == null ? void 0 : T.enhanced_caption) || "").trim(), r.value = "Copy", l.value = "Generate";
},
{ immediate: !0 }
- ), an(
+ ), cn(
() => {
- var z;
- return [(z = t.asset) == null ? void 0 : z.id, M.value.kind, M.value.showAlignment, Z.value];
+ var T;
+ return [(T = t.asset) == null ? void 0 : T.id, S.value.kind, S.value.showAlignment, A.value];
},
() => {
y();
},
{ immediate: !0 }
- ), (z, x) => M.value.kind !== "empty" ? (Ie(), he("div", pj, [
- M.value.workflowType ? (Ie(), he("div", yj, [
- x[4] || (x[4] = ne("span", { style: { opacity: "0.85" } }, "Workflow Type", -1)),
- ne("span", {
- title: `Workflow engine: ${M.value.workflowType}`,
+ ), (T, v) => S.value.kind !== "empty" ? (be(), Ce("div", hj, [
+ S.value.workflowType ? (be(), Ce("div", Cj, [
+ v[4] || (v[4] = ie("span", { style: { opacity: "0.85" } }, "Workflow Type", -1)),
+ ie("span", {
+ title: `Workflow engine: ${S.value.workflowType}`,
style: { background: "#2196F3", color: "white", padding: "2px 6px", "border-radius": "3px", "font-weight": "bold", "font-size": "10px" }
- }, Ye(M.value.workflowType), 9, fj)
- ])) : yt("", !0),
- M.value.isTruncated ? (Ie(), he("div", {
+ }, Ye(S.value.workflowType), 9, Zj)
+ ])) : ft("", !0),
+ S.value.isTruncated ? (be(), Ce("div", {
key: 1,
- style: vt(I("#FF9800", { emphasis: !0, startAlpha: 0.12, endAlpha: 0.08 }))
- }, [...x[5] || (x[5] = [
- ne("div", { style: { "font-size": "11px", "font-weight": "600", color: "#FF9800", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, " Metadata Truncated ", -1),
- ne("div", { style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word" } }, " Generation data is incomplete because it exceeded the size limit. ", -1)
- ])], 4)) : yt("", !0),
- M.value.kind === "media-only" ? (Ie(), he("div", {
+ style: Lt(I("#FF9800", { emphasis: !0, startAlpha: 0.12, endAlpha: 0.08 }))
+ }, [...v[5] || (v[5] = [
+ ie("div", { style: { "font-size": "11px", "font-weight": "600", color: "#FF9800", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, " Metadata Truncated ", -1),
+ ie("div", { style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word" } }, " Generation data is incomplete because it exceeded the size limit. ", -1)
+ ])], 4)) : ft("", !0),
+ S.value.kind === "media-only" ? (be(), Ce("div", {
key: 2,
- style: vt(I("#9E9E9E", { emphasis: !0, startAlpha: 0.1, endAlpha: 0.06 }))
+ style: Lt(I("#9E9E9E", { emphasis: !0, startAlpha: 0.1, endAlpha: 0.06 }))
}, [
- x[6] || (x[6] = ne("div", { style: { "font-size": "11px", "font-weight": "600", color: "#9E9E9E", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, " Generation Data ", -1)),
- ne("div", hj, Ye(M.value.mediaOnlyMessage), 1)
- ], 4)) : yt("", !0),
- M.value.kind === "full" ? (Ie(), he(Xt, { key: 3 }, [
- M.value.promptTabs.length ? (Ie(), he("div", {
+ v[6] || (v[6] = ie("div", { style: { "font-size": "11px", "font-weight": "600", color: "#9E9E9E", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, " Generation Data ", -1)),
+ ie("div", Aj, Ye(S.value.mediaOnlyMessage), 1)
+ ], 4)) : ft("", !0),
+ S.value.kind === "full" ? (be(), Ce(Nt, { key: 3 }, [
+ S.value.promptTabs.length ? (be(), Ce("div", {
key: 0,
- style: vt(I("#4CAF50", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
+ style: Lt(I("#4CAF50", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
}, [
- ne("div", Cj, " Prompt Pipeline (" + Ye(M.value.promptTabs.length) + " variants) ", 1),
- ne("div", Zj, [
- (Ie(!0), he(Xt, null, Cn(M.value.promptTabs, (w, X) => (Ie(), he("button", {
+ ie("div", Wj, " Prompt Pipeline (" + Ye(S.value.promptTabs.length) + " variants) ", 1),
+ ie("div", wj, [
+ (be(!0), Ce(Nt, null, Cn(S.value.promptTabs, (w, R) => (be(), Ce("button", {
key: w.label,
type: "button",
- style: vt({
+ style: Lt({
appearance: "none",
- border: n.value === X ? "1px solid #4CAF50" : "1px solid var(--border-color, rgba(255,255,255,0.12))",
+ border: n.value === R ? "1px solid #4CAF50" : "1px solid var(--border-color, rgba(255,255,255,0.12))",
borderRadius: "999px",
- background: n.value === X ? "#4CAF5033" : "rgba(127,127,127,0.12)",
- color: n.value === X ? "#4CAF50" : "var(--fg-color, #ddd)",
+ background: n.value === R ? "#4CAF5033" : "rgba(127,127,127,0.12)",
+ color: n.value === R ? "#4CAF50" : "var(--fg-color, #ddd)",
fontSize: "11px",
padding: "4px 10px",
cursor: "pointer",
- fontWeight: n.value === X ? "700" : "500",
- boxShadow: n.value === X ? "0 0 0 1px #4CAF5055 inset" : "none"
+ fontWeight: n.value === R ? "700" : "500",
+ boxShadow: n.value === R ? "0 0 0 1px #4CAF5055 inset" : "none"
}),
- onClick: (V) => n.value = X
- }, Ye(w.label), 13, Aj))), 128))
+ onClick: (Y) => n.value = R
+ }, Ye(w.label), 13, Mj))), 128))
]),
- (Ie(!0), he(Xt, null, Cn(M.value.promptTabs, (w, X) => Bo((Ie(), he("div", {
+ (be(!0), Ce(Nt, null, Cn(S.value.promptTabs, (w, R) => Ko((be(), Ce("div", {
key: `${w.label}-panel`,
style: { display: "flex", "flex-direction": "column", gap: "8px", border: "1px solid rgba(76, 175, 80, 0.35)", "border-radius": "6px", background: "linear-gradient(135deg, rgba(76, 175, 80, 0.12) 0%, rgba(33, 150, 243, 0.08) 100%)", "box-shadow": "0 0 0 1px rgba(76, 175, 80, 0.12) inset", padding: "10px" }
}, [
- x[8] || (x[8] = ne("div", { style: { "font-size": "10px", "font-weight": "700", color: "#4CAF50", "letter-spacing": "0.4px" } }, " POSITIVE ", -1)),
- ne("div", {
+ v[8] || (v[8] = ie("div", { style: { "font-size": "10px", "font-weight": "700", color: "#4CAF50", "letter-spacing": "0.4px" } }, " POSITIVE ", -1)),
+ ie("div", {
style: { "font-size": "12px", color: "var(--fg-color, #ddd)", "white-space": "pre-wrap", "line-height": "1.35", cursor: "pointer" },
- onClick: (V) => C(w.positive, V.currentTarget)
- }, Ye(w.positive), 9, Wj),
- w.negative ? (Ie(), he(Xt, { key: 0 }, [
- x[7] || (x[7] = ne("div", { style: { "font-size": "10px", "font-weight": "700", color: "#F44336", "letter-spacing": "0.4px", "margin-top": "4px" } }, " NEGATIVE ", -1)),
- ne("div", {
+ onClick: (Y) => h(w.positive, Y.currentTarget)
+ }, Ye(w.positive), 9, Sj),
+ w.negative ? (be(), Ce(Nt, { key: 0 }, [
+ v[7] || (v[7] = ie("div", { style: { "font-size": "10px", "font-weight": "700", color: "#F44336", "letter-spacing": "0.4px", "margin-top": "4px" } }, " NEGATIVE ", -1)),
+ ie("div", {
style: { "font-size": "12px", color: "var(--fg-color, #ddd)", "white-space": "pre-wrap", "line-height": "1.35", cursor: "pointer" },
- onClick: (V) => C(w.negative, V.currentTarget)
- }, Ye(w.negative), 9, wj)
- ], 64)) : yt("", !0)
+ onClick: (Y) => h(w.negative, Y.currentTarget)
+ }, Ye(w.negative), 9, Gj)
+ ], 64)) : ft("", !0)
])), [
- [br, n.value === X]
+ [yr, n.value === R]
])), 128))
- ], 4)) : M.value.positivePrompt ? (Ie(), he("div", {
+ ], 4)) : S.value.positivePrompt ? (be(), Ce("div", {
key: 1,
- style: vt(I("#4CAF50", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
+ style: Lt(I("#4CAF50", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
}, [
- x[9] || (x[9] = ne("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#4CAF50", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
- ne("span", null, "Positive Prompt")
+ v[9] || (v[9] = ie("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#4CAF50", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
+ ie("span", null, "Positive Prompt")
], -1)),
- ne("div", {
+ ie("div", {
title: "Click to copy",
style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word", cursor: "pointer" },
- onClick: x[0] || (x[0] = (w) => C(M.value.positivePrompt, w.currentTarget))
- }, Ye(M.value.positivePrompt), 1)
- ], 4)) : yt("", !0),
- !M.value.promptTabs.length && M.value.negativePrompt ? (Ie(), he("div", {
+ onClick: v[0] || (v[0] = (w) => h(S.value.positivePrompt, w.currentTarget))
+ }, Ye(S.value.positivePrompt), 1)
+ ], 4)) : ft("", !0),
+ !S.value.promptTabs.length && S.value.negativePrompt ? (be(), Ce("div", {
key: 2,
- style: vt(I("#F44336", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
+ style: Lt(I("#F44336", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
}, [
- x[10] || (x[10] = ne("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#F44336", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
- ne("span", null, "Negative Prompt")
+ v[10] || (v[10] = ie("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#F44336", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
+ ie("span", null, "Negative Prompt")
], -1)),
- ne("div", {
+ ie("div", {
title: "Click to copy",
style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word", cursor: "pointer" },
- onClick: x[1] || (x[1] = (w) => C(M.value.negativePrompt, w.currentTarget))
- }, Ye(M.value.negativePrompt), 1)
- ], 4)) : yt("", !0)
- ], 64)) : yt("", !0),
- A.value ? (Ie(), he("div", {
+ onClick: v[1] || (v[1] = (w) => h(S.value.negativePrompt, w.currentTarget))
+ }, Ye(S.value.negativePrompt), 1)
+ ], 4)) : ft("", !0)
+ ], 64)) : ft("", !0),
+ C.value ? (be(), Ce("div", {
key: 4,
style: { background: "linear-gradient(135deg, rgba(0, 188, 212, 0.14) 0%, rgba(33, 150, 243, 0.10) 100%)", border: "1px solid rgba(0, 188, 212, 0.40)", "border-radius": "6px", padding: "12px", display: "flex", "flex-direction": "column", gap: "10px" },
- class: Zn({ "mjr-ai-disabled-block": !Z.value })
+ class: Zn({ "mjr-ai-disabled-block": !A.value })
}, [
- M.value.showAlignment ? (Ie(), he(Xt, { key: 0 }, [
- x[11] || (x[11] = ne("div", { style: { "font-size": "11px", "font-weight": "600", color: "#00BCD4", "text-transform": "uppercase", "letter-spacing": "0.5px", display: "flex", "align-items": "center", "justify-content": "space-between" } }, [
- ne("span", { title: "How closely the generated image matches the prompt (SigLIP2 score)" }, " Prompt Alignment ")
+ S.value.showAlignment ? (be(), Ce(Nt, { key: 0 }, [
+ v[11] || (v[11] = ie("div", { style: { "font-size": "11px", "font-weight": "600", color: "#00BCD4", "text-transform": "uppercase", "letter-spacing": "0.5px", display: "flex", "align-items": "center", "justify-content": "space-between" } }, [
+ ie("span", { title: "How closely the generated image matches the prompt (SigLIP2 score)" }, " Prompt Alignment ")
], -1)),
- ne("div", Mj, [
- ne("div", Sj, [
- ne("div", {
- style: vt({
+ ie("div", xj, [
+ ie("div", jj, [
+ ie("div", {
+ style: Lt({
height: "100%",
width: c.value.fillWidth,
background: c.value.fillColor,
@@ -39617,8 +39675,8 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
})
}, null, 4)
]),
- ne("span", {
- style: vt({
+ ie("span", {
+ style: Lt({
fontSize: "13px",
fontWeight: "700",
color: c.value.scoreColor,
@@ -39627,8 +39685,8 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
fontFamily: "'Consolas', 'Monaco', monospace"
})
}, Ye(c.value.scoreText), 5),
- ne("span", {
- style: vt({
+ ie("span", {
+ style: Lt({
fontSize: "9px",
fontWeight: "700",
padding: "2px 6px",
@@ -39640,30 +39698,30 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
})
}, Ye(c.value.qualityText), 5)
]),
- c.value.aiStatusVisible ? (Ie(), he("div", Gj, Ye(c.value.aiStatusText), 1)) : yt("", !0)
- ], 64)) : yt("", !0),
- ne("div", xj, [
- ne("span", jj, Ye(M.value.captionLabel), 1),
- ne("div", vj, [
- ne("button", {
+ c.value.aiStatusVisible ? (be(), Ce("div", vj, Ye(c.value.aiStatusText), 1)) : ft("", !0)
+ ], 64)) : ft("", !0),
+ ie("div", Lj, [
+ ie("span", Vj, Ye(S.value.captionLabel), 1),
+ ie("div", Yj, [
+ ie("button", {
type: "button",
class: "mjr-ai-control",
- disabled: !h.value || a.value,
- style: vt([{ border: "1px solid rgba(0,188,212,0.45)", background: "rgba(0,188,212,0.12)", color: "#00BCD4", "border-radius": "4px", "font-size": "10px", "font-weight": "600", padding: "2px 8px", cursor: "pointer" }, { opacity: h.value ? "1" : "0.6", cursor: h.value ? "pointer" : "default" }]),
- onClick: Fn(k, ["stop"])
- }, Ye(l.value), 13, Lj),
- ne("button", {
+ disabled: !Z.value || a.value,
+ style: Lt([{ border: "1px solid rgba(0,188,212,0.45)", background: "rgba(0,188,212,0.12)", color: "#00BCD4", "border-radius": "4px", "font-size": "10px", "font-weight": "600", padding: "2px 8px", cursor: "pointer" }, { opacity: Z.value ? "1" : "0.6", cursor: Z.value ? "pointer" : "default" }]),
+ onClick: On(X, ["stop"])
+ }, Ye(l.value), 13, kj),
+ ie("button", {
type: "button",
class: "mjr-ai-control",
disabled: !f.value,
- style: vt([{ border: "1px solid rgba(0,188,212,0.45)", background: "rgba(0,188,212,0.12)", color: "#00BCD4", "border-radius": "4px", "font-size": "10px", "font-weight": "600", padding: "2px 8px", cursor: "pointer" }, { opacity: f.value ? "1" : "0.6", cursor: f.value ? "pointer" : "default" }]),
- onClick: Fn(G, ["stop"])
- }, Ye(r.value), 13, Yj)
+ style: Lt([{ border: "1px solid rgba(0,188,212,0.45)", background: "rgba(0,188,212,0.12)", color: "#00BCD4", "border-radius": "4px", "font-size": "10px", "font-weight": "600", padding: "2px 8px", cursor: "pointer" }, { opacity: f.value ? "1" : "0.6", cursor: f.value ? "pointer" : "default" }]),
+ onClick: On(x, ["stop"])
+ }, Ye(r.value), 13, Xj)
])
]),
- ne("div", {
- title: Z.value ? "Click to copy caption" : "AI caption controls are disabled",
- style: vt({
+ ie("div", {
+ title: A.value ? "Click to copy caption" : "AI caption controls are disabled",
+ style: Lt({
marginTop: "4px",
padding: "8px",
borderRadius: "6px",
@@ -39676,66 +39734,66 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
wordBreak: "break-word",
cursor: f.value ? "copy" : "default"
}),
- onClick: G
- }, Ye(g.value), 13, Vj)
- ], 2)) : yt("", !0),
- M.value.lyrics ? (Ie(), he("div", {
+ onClick: x
+ }, Ye(g.value), 13, Nj)
+ ], 2)) : ft("", !0),
+ S.value.lyrics ? (be(), Ce("div", {
key: 5,
- style: vt(I("#00BCD4", { emphasis: !1 }))
+ style: Lt(I("#00BCD4", { emphasis: !1 }))
}, [
- x[12] || (x[12] = ne("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#00BCD4", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
- ne("span", null, "Lyrics")
+ v[12] || (v[12] = ie("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#00BCD4", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
+ ie("span", null, "Lyrics")
], -1)),
- ne("div", kj, Ye(M.value.lyrics), 1)
- ], 4)) : yt("", !0),
- M.value.pipelineTabs.length ? (Ie(), he("div", {
+ ie("div", Rj, Ye(S.value.lyrics), 1)
+ ], 4)) : ft("", !0),
+ S.value.pipelineTabs.length ? (be(), Ce("div", {
key: 6,
- style: vt(I("#FF9800", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
+ style: Lt(I("#FF9800", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
}, [
- x[13] || (x[13] = ne("div", { style: { "font-size": "11px", "font-weight": "600", color: "#FF9800", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "10px" } }, " Generation Pipeline ", -1)),
- ne("div", Xj, [
- (Ie(!0), he(Xt, null, Cn(M.value.pipelineTabs, (w, X) => (Ie(), he("button", {
+ v[13] || (v[13] = ie("div", { style: { "font-size": "11px", "font-weight": "600", color: "#FF9800", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "10px" } }, " Generation Pipeline ", -1)),
+ ie("div", Fj, [
+ (be(!0), Ce(Nt, null, Cn(S.value.pipelineTabs, (w, R) => (be(), Ce("button", {
key: w.label,
type: "button",
- style: vt({
+ style: Lt({
appearance: "none",
- border: i.value === X ? "1px solid #FF9800" : "1px solid var(--border-color, rgba(255,255,255,0.12))",
+ border: i.value === R ? "1px solid #FF9800" : "1px solid var(--border-color, rgba(255,255,255,0.12))",
borderRadius: "999px",
- background: i.value === X ? "#FF980033" : "rgba(127,127,127,0.12)",
- color: i.value === X ? "#FF9800" : "var(--fg-color, #ddd)",
+ background: i.value === R ? "#FF980033" : "rgba(127,127,127,0.12)",
+ color: i.value === R ? "#FF9800" : "var(--fg-color, #ddd)",
fontSize: "11px",
padding: "4px 10px",
cursor: "pointer",
- fontWeight: i.value === X ? "700" : "500",
- boxShadow: i.value === X ? "0 0 0 1px #FF980055 inset" : "none"
+ fontWeight: i.value === R ? "700" : "500",
+ boxShadow: i.value === R ? "0 0 0 1px #FF980055 inset" : "none"
}),
- onClick: (V) => i.value = X
- }, Ye(w.label), 13, Nj))), 128))
+ onClick: (Y) => i.value = R
+ }, Ye(w.label), 13, Oj))), 128))
]),
- (Ie(!0), he(Xt, null, Cn(M.value.pipelineTabs, (w, X) => Bo((Ie(), he("div", {
+ (be(!0), Ce(Nt, null, Cn(S.value.pipelineTabs, (w, R) => Ko((be(), Ce("div", {
key: `${w.label}-pipeline`,
style: { display: "grid", "grid-template-columns": "repeat(auto-fit, minmax(150px, 1fr))", gap: "8px", padding: "8px", border: "1px solid rgba(255, 152, 0, 0.35)", "border-radius": "6px", background: "linear-gradient(135deg, rgba(255, 152, 0, 0.12) 0%, rgba(255, 193, 7, 0.08) 100%)", "box-shadow": "0 0 0 1px rgba(255, 152, 0, 0.12) inset" }
}, [
- (Ie(!0), he(Xt, null, Cn(w.fields, (V) => (Ie(), he("div", {
- key: `${w.label}-${V.label}`,
+ (be(!0), Ce(Nt, null, Cn(w.fields, (Y) => (be(), Ce("div", {
+ key: `${w.label}-${Y.label}`,
style: { display: "flex", "flex-direction": "column", gap: "2px", "min-width": "0" }
}, [
- ne("span", Rj, Ye(V.label), 1),
- ne("span", {
+ ie("span", zj, Ye(Y.label), 1),
+ ie("span", {
style: { "font-size": "12px", color: "var(--fg-color, #ddd)", "word-break": "break-word", padding: "1px 3px", "border-radius": "3px", transition: "background 0.2s ease", cursor: "copy" },
- onClick: (R) => C(V.value, R.currentTarget)
- }, Ye(V.value), 9, Fj)
+ onClick: (F) => h(Y.value, F.currentTarget)
+ }, Ye(Y.value), 9, Jj)
]))), 128))
])), [
- [br, i.value === X]
+ [yr, i.value === R]
])), 128))
- ], 4)) : yt("", !0),
- (Ie(!0), he(Xt, null, Cn(b.value, (w) => (Ie(), he("div", {
+ ], 4)) : ft("", !0),
+ (be(!0), Ce(Nt, null, Cn(b.value, (w) => (be(), Ce("div", {
key: w.key,
- style: vt(I(w.accent, { emphasis: w.emphasis }))
+ style: Lt(I(w.accent, { emphasis: w.emphasis }))
}, [
- ne("div", {
- style: vt({
+ ie("div", {
+ style: Lt({
fontSize: "11px",
fontWeight: "600",
color: w.accent,
@@ -39744,71 +39802,71 @@ const dj = ["title"], uj = ["src"], mj = ["src"], gj = {
marginBottom: "10px"
})
}, Ye(w.title), 5),
- ne("div", Oj, [
- (Ie(!0), he(Xt, null, Cn(w.fields, (X) => (Ie(), he(Xt, {
- key: `${w.key}-${X.label}`
+ ie("div", Tj, [
+ (be(!0), Ce(Nt, null, Cn(w.fields, (R) => (be(), Ce(Nt, {
+ key: `${w.key}-${R.label}`
}, [
- ne("div", {
- title: X.label,
+ ie("div", {
+ title: R.label,
style: { "font-size": "11px", color: "var(--mjr-muted, rgba(127,127,127,0.9))", "font-weight": "500" }
- }, Ye(X.label) + ": ", 9, zj),
- ne("div", {
- title: `${X.label}: ${X.value}`,
+ }, Ye(R.label) + ": ", 9, Bj),
+ ie("div", {
+ title: `${R.label}: ${R.value}`,
style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.95))", "word-break": "break-word", "white-space": "pre-wrap", cursor: "pointer" },
- onClick: (V) => C(X.value, V.currentTarget)
- }, Ye(X.value), 9, Jj)
+ onClick: (Y) => h(R.value, Y.currentTarget)
+ }, Ye(R.value), 9, Uj)
], 64))), 128))
])
], 4))), 128)),
- M.value.ttsInstruction ? (Ie(), he("div", {
+ S.value.ttsInstruction ? (be(), Ce("div", {
key: 7,
- style: vt(I("#26A69A", { emphasis: !1 }))
+ style: Lt(I("#26A69A", { emphasis: !1 }))
}, [
- x[14] || (x[14] = ne("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#26A69A", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
- ne("span", null, "TTS Instruction")
+ v[14] || (v[14] = ie("div", { style: { display: "flex", "justify-content": "space-between", "align-items": "center", "font-size": "11px", "font-weight": "600", color: "#26A69A", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" } }, [
+ ie("span", null, "TTS Instruction")
], -1)),
- ne("div", {
+ ie("div", {
title: "Click to copy",
style: { "font-size": "12px", color: "var(--fg-color, rgba(255,255,255,0.9))", "line-height": "1.5", "white-space": "pre-wrap", "word-break": "break-word", cursor: "pointer" },
- onClick: x[2] || (x[2] = (w) => C(M.value.ttsInstruction, w.currentTarget))
- }, Ye(M.value.ttsInstruction), 1)
- ], 4)) : yt("", !0),
- M.value.seed !== null && M.value.seed !== void 0 && M.value.seed !== "" ? (Ie(), he("div", {
+ onClick: v[2] || (v[2] = (w) => h(S.value.ttsInstruction, w.currentTarget))
+ }, Ye(S.value.ttsInstruction), 1)
+ ], 4)) : ft("", !0),
+ S.value.seed !== null && S.value.seed !== void 0 && S.value.seed !== "" ? (be(), Ce("div", {
key: 8,
- style: vt(p())
+ style: Lt(p())
}, [
- x[15] || (x[15] = ne("div", { style: { "font-size": "11px", "font-weight": "700", color: "#E91E63", "text-transform": "uppercase", "letter-spacing": "1px" } }, " SEED ", -1)),
- ne("div", {
- title: `Click to copy seed: ${M.value.seed}`,
+ v[15] || (v[15] = ie("div", { style: { "font-size": "11px", "font-weight": "700", color: "#E91E63", "text-transform": "uppercase", "letter-spacing": "1px" } }, " SEED ", -1)),
+ ie("div", {
+ title: `Click to copy seed: ${S.value.seed}`,
style: { "font-size": "18px", "font-weight": "700", color: "#fff", "font-family": "'Consolas', 'Monaco', monospace", "letter-spacing": "1px", cursor: "pointer", padding: "4px 8px", "border-radius": "4px", transition: "background 0.2s" },
- onClick: x[3] || (x[3] = (w) => C(M.value.seed, w.currentTarget, "rgba(76, 175, 80, 0.4)"))
- }, Ye(M.value.seed), 9, Tj)
- ], 4)) : yt("", !0),
- M.value.inputFiles.length ? (Ie(), he("div", {
+ onClick: v[3] || (v[3] = (w) => h(S.value.seed, w.currentTarget, "rgba(76, 175, 80, 0.4)"))
+ }, Ye(S.value.seed), 9, Kj)
+ ], 4)) : ft("", !0),
+ S.value.inputFiles.length ? (be(), Ce("div", {
key: 9,
- style: vt(I("#4CAF50", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
+ style: Lt(I("#4CAF50", { emphasis: !0, startAlpha: 0.16, endAlpha: 0.1 }))
}, [
- ne("div", {
- title: Ge(m)("tooltip.generationInputs", "Input files used in generation"),
+ ie("div", {
+ title: xe(m)("tooltip.generationInputs", "Input files used in generation"),
style: { "font-size": "11px", "font-weight": "600", color: "#4CAF50", "text-transform": "uppercase", "letter-spacing": "0.5px", "margin-bottom": "8px" }
- }, " Source Files ", 8, Bj),
- ne("div", Uj, [
- (Ie(!0), he(Xt, null, Cn(M.value.inputFiles, (w) => (Ie(), Ei(bj, {
+ }, " Source Files ", 8, Dj),
+ ie("div", Ej, [
+ (be(!0), Ce(Nt, null, Cn(S.value.inputFiles, (w) => (be(), Pi(fj, {
key: w.id,
"input-file": w
}, null, 8, ["input-file"]))), 128))
])
- ], 4)) : yt("", !0)
- ])) : yt("", !0);
+ ], 4)) : ft("", !0)
+ ])) : ft("", !0);
}
-}, Dj = 6, Ej = 1, Hj = 8, Br = (e, t, n) => {
+}, qj = 6, Pj = 1, Qj = 8, Kr = (e, t, n) => {
const i = Number(e);
return Number.isFinite(i) ? Math.max(t, Math.min(n, i)) : t;
};
-function qj(e, t, n = null) {
- var T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe;
+function _j(e, t, n = null) {
+ var P, H, $, E, oe, M, j, O, D, q, ee, ce, ue;
if (!e) return;
- const i = (T = e.getContext) == null ? void 0 : T.call(e, "2d");
+ const i = (P = e.getContext) == null ? void 0 : P.call(e, "2d");
if (!i) return;
const o = {
nodeColors: !0,
@@ -39819,273 +39877,273 @@ function qj(e, t, n = null) {
showViewport: !0,
showNodeLabels: !1,
...n && typeof n == "object" ? n : {}
- }, r = Array.isArray(t == null ? void 0 : t.nodes) ? t.nodes : [], l = Array.isArray(t == null ? void 0 : t.groups) && t.groups || Array.isArray((D = t == null ? void 0 : t.extra) == null ? void 0 : D.groups) && t.extra.groups || Array.isArray((Q = t == null ? void 0 : t.extra) == null ? void 0 : Q.groupNodes) && t.extra.groupNodes || Array.isArray((E = t == null ? void 0 : t.extra) == null ? void 0 : E.group_nodes) && t.extra.group_nodes || [], a = Array.isArray(t == null ? void 0 : t.links) && t.links || Array.isArray((K = t == null ? void 0 : t.extra) == null ? void 0 : K.links) && t.extra.links || [], c = Math.max(1, e.clientWidth || e.width || 1), s = Math.max(1, e.clientHeight || e.height || 1);
+ }, r = Array.isArray(t == null ? void 0 : t.nodes) ? t.nodes : [], l = Array.isArray(t == null ? void 0 : t.groups) && t.groups || Array.isArray((H = t == null ? void 0 : t.extra) == null ? void 0 : H.groups) && t.extra.groups || Array.isArray(($ = t == null ? void 0 : t.extra) == null ? void 0 : $.groupNodes) && t.extra.groupNodes || Array.isArray((E = t == null ? void 0 : t.extra) == null ? void 0 : E.group_nodes) && t.extra.group_nodes || [], a = Array.isArray(t == null ? void 0 : t.links) && t.links || Array.isArray((oe = t == null ? void 0 : t.extra) == null ? void 0 : oe.links) && t.extra.links || [], c = Math.max(1, e.clientWidth || e.width || 1), s = Math.max(1, e.clientHeight || e.height || 1);
if ((!r || r.length === 0) && (!l || l.length === 0))
return i.clearRect(0, 0, c, s), null;
- const d = (H, $) => {
- if (!H) return `rgba(255,255,255,${$})`;
- if (typeof H != "string") return `rgba(255,255,255,${$})`;
- const _ = H.trim();
- if (!_) return `rgba(255,255,255,${$})`;
+ const d = (U, Q) => {
+ if (!U) return `rgba(255,255,255,${Q})`;
+ if (typeof U != "string") return `rgba(255,255,255,${Q})`;
+ const _ = U.trim();
+ if (!_) return `rgba(255,255,255,${Q})`;
const le = _.match(/^rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([0-9.]+))?\)\s*$/i);
if (le) {
- const de = Number(le[1]), Ze = Number(le[2]), Fe = Number(le[3]);
- if ([de, Ze, Fe].every((xe) => Number.isFinite(xe))) return `rgba(${de},${Ze},${Fe},${$})`;
+ const se = Number(le[1]), ge = Number(le[2]), je = Number(le[3]);
+ if ([se, ge, je].every((Se) => Number.isFinite(Se))) return `rgba(${se},${ge},${je},${Q})`;
}
- const se = _.startsWith("#") ? _.slice(1) : "";
- if (se.length === 3) {
- const de = parseInt(se[0] + se[0], 16), Ze = parseInt(se[1] + se[1], 16), Fe = parseInt(se[2] + se[2], 16);
- if ([de, Ze, Fe].every((xe) => Number.isFinite(xe))) return `rgba(${de},${Ze},${Fe},${$})`;
+ const de = _.startsWith("#") ? _.slice(1) : "";
+ if (de.length === 3) {
+ const se = parseInt(de[0] + de[0], 16), ge = parseInt(de[1] + de[1], 16), je = parseInt(de[2] + de[2], 16);
+ if ([se, ge, je].every((Se) => Number.isFinite(Se))) return `rgba(${se},${ge},${je},${Q})`;
}
- if (se.length === 6) {
- const de = parseInt(se.slice(0, 2), 16), Ze = parseInt(se.slice(2, 4), 16), Fe = parseInt(se.slice(4, 6), 16);
- if ([de, Ze, Fe].every((xe) => Number.isFinite(xe))) return `rgba(${de},${Ze},${Fe},${$})`;
+ if (de.length === 6) {
+ const se = parseInt(de.slice(0, 2), 16), ge = parseInt(de.slice(2, 4), 16), je = parseInt(de.slice(4, 6), 16);
+ if ([se, ge, je].every((Se) => Number.isFinite(Se))) return `rgba(${se},${ge},${je},${Q})`;
}
return _;
- }, u = [], I = /* @__PURE__ */ new Map(), p = (H) => {
- if (Array.isArray(H) && H.length >= 2) return [Number(H[0]), Number(H[1])];
- if (H && typeof H == "object") {
- const $ = H[0] ?? H[0] ?? H.x ?? H.left ?? null, _ = H[1] ?? H[1] ?? H.y ?? H.top ?? null;
- if ($ !== null && _ !== null) return [Number($), Number(_)];
+ }, u = [], I = /* @__PURE__ */ new Map(), p = (U) => {
+ if (Array.isArray(U) && U.length >= 2) return [Number(U[0]), Number(U[1])];
+ if (U && typeof U == "object") {
+ const Q = U[0] ?? U[0] ?? U.x ?? U.left ?? null, _ = U[1] ?? U[1] ?? U.y ?? U.top ?? null;
+ if (Q !== null && _ !== null) return [Number(Q), Number(_)];
}
return null;
- }, M = (H) => {
- if (Array.isArray(H) && H.length >= 2) return [Number(H[0]), Number(H[1])];
- if (H && typeof H == "object") {
- const $ = H[0] ?? H[0] ?? H.w ?? H.width ?? null, _ = H[1] ?? H[1] ?? H.h ?? H.height ?? null;
- if ($ !== null && _ !== null) return [Number($), Number(_)];
+ }, S = (U) => {
+ if (Array.isArray(U) && U.length >= 2) return [Number(U[0]), Number(U[1])];
+ if (U && typeof U == "object") {
+ const Q = U[0] ?? U[0] ?? U.w ?? U.width ?? null, _ = U[1] ?? U[1] ?? U.h ?? U.height ?? null;
+ if (Q !== null && _ !== null) return [Number(Q), Number(_)];
}
return null;
};
- for (const H of r || []) {
- const $ = (H == null ? void 0 : H.id) ?? (H == null ? void 0 : H.ID) ?? (H == null ? void 0 : H.node_id) ?? null, _ = $ != null ? String($) : null, le = p(H == null ? void 0 : H.pos), se = M(H == null ? void 0 : H.size);
- if (!le || !se) continue;
- const de = Number(le[0]), Ze = Number(le[1]), Fe = Math.max(1, Number(se[0])), xe = Math.max(1, Number(se[1]));
- if (!Number.isFinite(de) || !Number.isFinite(Ze) || !Number.isFinite(Fe) || !Number.isFinite(xe))
+ for (const U of r || []) {
+ const Q = (U == null ? void 0 : U.id) ?? (U == null ? void 0 : U.ID) ?? (U == null ? void 0 : U.node_id) ?? null, _ = Q != null ? String(Q) : null, le = p(U == null ? void 0 : U.pos), de = S(U == null ? void 0 : U.size);
+ if (!le || !de) continue;
+ const se = Number(le[0]), ge = Number(le[1]), je = Math.max(1, Number(de[0])), Se = Math.max(1, Number(de[1]));
+ if (!Number.isFinite(se) || !Number.isFinite(ge) || !Number.isFinite(je) || !Number.isFinite(Se))
continue;
- const ze = Number(H == null ? void 0 : H.mode), We = ze === 2 || ze === 4, De = ((F = t == null ? void 0 : t.extra) == null ? void 0 : F.errors) || ((Y = t == null ? void 0 : t.extra) == null ? void 0 : Y.node_errors) || null, Qe = !!((De && typeof De == "object" && _ ? De[_] : null) || H != null && H.error || H != null && H.errors || (U = H == null ? void 0 : H.flags) != null && U.error || (P = H == null ? void 0 : H.properties) != null && P.error);
+ const ke = Number(U == null ? void 0 : U.mode), we = ke === 2 || ke === 4, Je = ((M = t == null ? void 0 : t.extra) == null ? void 0 : M.errors) || ((j = t == null ? void 0 : t.extra) == null ? void 0 : j.node_errors) || null, qe = !!((Je && typeof Je == "object" && _ ? Je[_] : null) || U != null && U.error || U != null && U.errors || (O = U == null ? void 0 : U.flags) != null && O.error || (D = U == null ? void 0 : U.properties) != null && D.error);
u.push({
kind: "node",
id: _,
- x: de,
- y: Ze,
- w: Fe,
- h: xe,
- fill: o.nodeColors && ((H == null ? void 0 : H.bgcolor) || (H == null ? void 0 : H.color)) || null,
- stroke: o.nodeColors && ((H == null ? void 0 : H.color) || (H == null ? void 0 : H.bgcolor)) || null,
- bypassed: We,
- errored: Qe,
- label: String((H == null ? void 0 : H.title) || (H == null ? void 0 : H.type) || (H == null ? void 0 : H.comfyClass) || (H == null ? void 0 : H.class_type) || _ || "").replace(/\s+/g, " ").trim()
+ x: se,
+ y: ge,
+ w: je,
+ h: Se,
+ fill: o.nodeColors && ((U == null ? void 0 : U.bgcolor) || (U == null ? void 0 : U.color)) || null,
+ stroke: o.nodeColors && ((U == null ? void 0 : U.color) || (U == null ? void 0 : U.bgcolor)) || null,
+ bypassed: we,
+ errored: qe,
+ label: String((U == null ? void 0 : U.title) || (U == null ? void 0 : U.type) || (U == null ? void 0 : U.comfyClass) || (U == null ? void 0 : U.class_type) || _ || "").replace(/\s+/g, " ").trim()
}), _ && I.set(_, u[u.length - 1]);
}
if (o.showGroups)
- for (const H of l || []) {
- const $ = Array.isArray(H == null ? void 0 : H.bounding) && H.bounding.length >= 4 ? H.bounding : null, _ = $ ? [Number($[0]), Number($[1])] : p(H == null ? void 0 : H.pos), le = $ ? [Number($[2]), Number($[3])] : M(H == null ? void 0 : H.size);
+ for (const U of l || []) {
+ const Q = Array.isArray(U == null ? void 0 : U.bounding) && U.bounding.length >= 4 ? U.bounding : null, _ = Q ? [Number(Q[0]), Number(Q[1])] : p(U == null ? void 0 : U.pos), le = Q ? [Number(Q[2]), Number(Q[3])] : S(U == null ? void 0 : U.size);
if (!_ || !le) continue;
- const se = Number(_[0]), de = Number(_[1]), Ze = Math.max(1, Number(le[0])), Fe = Math.max(1, Number(le[1]));
- !Number.isFinite(se) || !Number.isFinite(de) || !Number.isFinite(Ze) || !Number.isFinite(Fe) || u.push({
+ const de = Number(_[0]), se = Number(_[1]), ge = Math.max(1, Number(le[0])), je = Math.max(1, Number(le[1]));
+ !Number.isFinite(de) || !Number.isFinite(se) || !Number.isFinite(ge) || !Number.isFinite(je) || u.push({
kind: "group",
- x: se,
- y: de,
- w: Ze,
- h: Fe,
- fill: (H == null ? void 0 : H.color) || (H == null ? void 0 : H.bgcolor) || (H == null ? void 0 : H.borderColor) || null,
- stroke: (H == null ? void 0 : H.borderColor) || (H == null ? void 0 : H.color) || (H == null ? void 0 : H.bgcolor) || null
+ x: de,
+ y: se,
+ w: ge,
+ h: je,
+ fill: (U == null ? void 0 : U.color) || (U == null ? void 0 : U.bgcolor) || (U == null ? void 0 : U.borderColor) || null,
+ stroke: (U == null ? void 0 : U.borderColor) || (U == null ? void 0 : U.color) || (U == null ? void 0 : U.bgcolor) || null
});
}
if (!u.length)
return i.clearRect(0, 0, c, s), null;
- let Z = u[0].x, A = u[0].y, g = u[0].x + u[0].w, h = u[0].y + u[0].h;
- for (const H of u)
- Z = Math.min(Z, H.x), A = Math.min(A, H.y), g = Math.max(g, H.x + H.w), h = Math.max(h, H.y + H.h);
- const f = Math.max(1, g - Z), b = Math.max(1, h - A), v = Z + f / 2, C = A + b / 2, S = o.view && typeof o.view == "object" ? o.view : /* @__PURE__ */ Object.create(null), W = Br(S.zoom ?? 1, Ej, Hj), y = Math.max(1, f / W), k = Math.max(1, b / W), G = y / 2, z = k / 2, x = y >= f ? v : Br(S.centerX ?? v, Z + G, g - G), w = k >= b ? C : Br(S.centerY ?? C, A + z, h - z), X = x - G, V = w - z, R = Dj, j = Math.min((c - R * 2) / y, (s - R * 2) / k), L = S.hoveredNodeId !== null && S.hoveredNodeId !== void 0 ? String(S.hoveredNodeId) : null;
+ let A = u[0].x, C = u[0].y, g = u[0].x + u[0].w, Z = u[0].y + u[0].h;
+ for (const U of u)
+ A = Math.min(A, U.x), C = Math.min(C, U.y), g = Math.max(g, U.x + U.w), Z = Math.max(Z, U.y + U.h);
+ const f = Math.max(1, g - A), b = Math.max(1, Z - C), L = A + f / 2, h = C + b / 2, G = o.view && typeof o.view == "object" ? o.view : /* @__PURE__ */ Object.create(null), W = Kr(G.zoom ?? 1, Pj, Qj), y = Math.max(1, f / W), X = Math.max(1, b / W), x = y / 2, T = X / 2, v = y >= f ? L : Kr(G.centerX ?? L, A + x, g - x), w = X >= b ? h : Kr(G.centerY ?? h, C + T, Z - T), R = v - x, Y = w - T, F = qj, N = Math.min((c - F * 2) / y, (s - F * 2) / X), V = G.hoveredNodeId !== null && G.hoveredNodeId !== void 0 ? String(G.hoveredNodeId) : null;
i.clearRect(0, 0, c, s), i.fillStyle = "rgba(0,0,0,0.22)", i.fillRect(0, 0, c, s);
- const N = (H, $) => ({
- x: R + (H - X) * j,
- y: R + ($ - V) * j
- }), q = (H, $) => ({
- x: Br(X + (Number(H) - R) / j, Z, g),
- y: Br(V + (Number($) - R) / j, A, h)
- }), O = () => {
+ const k = (U, Q) => ({
+ x: F + (U - R) * N,
+ y: F + (Q - Y) * N
+ }), K = (U, Q) => ({
+ x: Kr(R + (Number(U) - F) / N, A, g),
+ y: Kr(Y + (Number(Q) - F) / N, C, Z)
+ }), z = () => {
if (o.showLinks && !(!a || a.length === 0)) {
i.save(), i.globalAlpha = 1, i.strokeStyle = "rgba(255,255,255,0.18)", i.lineWidth = 1;
- for (const H of a) {
- let $ = null, _ = null;
- if (Array.isArray(H) && H.length >= 4 ? ($ = H[1], _ = H[3]) : H && typeof H == "object" && ($ = H.origin_id ?? H.originId ?? H.from ?? null, _ = H.target_id ?? H.targetId ?? H.to ?? null), $ === null || _ === null) continue;
- const le = I.get(String($)), se = I.get(String(_));
- if (!le || !se) continue;
- const de = N(le.x + le.w, le.y + le.h / 2), Ze = N(se.x, se.y + se.h / 2), Fe = Math.max(12, Math.min(80, Math.abs(Ze.x - de.x) * 0.35));
- i.beginPath(), i.moveTo(de.x, de.y), i.bezierCurveTo(de.x + Fe, de.y, Ze.x - Fe, Ze.y, Ze.x, Ze.y), i.stroke();
+ for (const U of a) {
+ let Q = null, _ = null;
+ if (Array.isArray(U) && U.length >= 4 ? (Q = U[1], _ = U[3]) : U && typeof U == "object" && (Q = U.origin_id ?? U.originId ?? U.from ?? null, _ = U.target_id ?? U.targetId ?? U.to ?? null), Q === null || _ === null) continue;
+ const le = I.get(String(Q)), de = I.get(String(_));
+ if (!le || !de) continue;
+ const se = k(le.x + le.w, le.y + le.h / 2), ge = k(de.x, de.y + de.h / 2), je = Math.max(12, Math.min(80, Math.abs(ge.x - se.x) * 0.35));
+ i.beginPath(), i.moveTo(se.x, se.y), i.bezierCurveTo(se.x + je, se.y, ge.x - je, ge.y, ge.x, ge.y), i.stroke();
}
i.restore();
}
- }, B = (H) => {
- var Qe, Ue, Ee, Re;
- const $ = R + (H.x - X) * j, _ = R + (H.y - V) * j, le = Math.max(1, H.w * j), se = Math.max(1, H.h * j), de = H.kind === "node", Ze = H.kind === "group", Fe = !!H.bypassed, xe = !!H.errored, ze = Ze ? 0.18 : Fe && o.renderBypassState ? 0.14 : 0.62, We = Ze ? 0.55 : Fe && o.renderBypassState ? 0.32 : 0.8, De = d(H.fill, ze), Pe = d(H.stroke, We);
- if (i.save(), i.globalAlpha = 1, typeof De == "string" && (De.startsWith("#") || De.startsWith("rgb") || De.startsWith("hsl")) ? (i.fillStyle = De, i.globalAlpha = ze) : (i.fillStyle = typeof De == "string" ? De : "rgba(255,255,255,0.20)", i.globalAlpha = ze), i.fillRect($, _, le, se), i.restore(), i.globalAlpha = 1, i.strokeStyle = "rgba(255,255,255,0.22)", typeof Pe == "string" && (Pe.startsWith("#") || Pe.startsWith("rgb") || Pe.startsWith("hsl")) && (i.save(), i.globalAlpha = We, i.strokeStyle = Pe, i.restore()), de && Fe && o.renderBypassState)
+ }, B = (U) => {
+ var qe, Ue, Te, Oe;
+ const Q = F + (U.x - R) * N, _ = F + (U.y - Y) * N, le = Math.max(1, U.w * N), de = Math.max(1, U.h * N), se = U.kind === "node", ge = U.kind === "group", je = !!U.bypassed, Se = !!U.errored, ke = ge ? 0.18 : je && o.renderBypassState ? 0.14 : 0.62, we = ge ? 0.55 : je && o.renderBypassState ? 0.32 : 0.8, Je = d(U.fill, ke), $e = d(U.stroke, we);
+ if (i.save(), i.globalAlpha = 1, typeof Je == "string" && (Je.startsWith("#") || Je.startsWith("rgb") || Je.startsWith("hsl")) ? (i.fillStyle = Je, i.globalAlpha = ke) : (i.fillStyle = typeof Je == "string" ? Je : "rgba(255,255,255,0.20)", i.globalAlpha = ke), i.fillRect(Q, _, le, de), i.restore(), i.globalAlpha = 1, i.strokeStyle = "rgba(255,255,255,0.22)", typeof $e == "string" && ($e.startsWith("#") || $e.startsWith("rgb") || $e.startsWith("hsl")) && (i.save(), i.globalAlpha = we, i.strokeStyle = $e, i.restore()), se && je && o.renderBypassState)
try {
i.setLineDash([3, 2]);
- } catch (wt) {
- (Qe = console.debug) == null || Qe.call(console, wt);
+ } catch (pt) {
+ (qe = console.debug) == null || qe.call(console, pt);
}
else
try {
i.setLineDash([]);
- } catch (wt) {
- (Ue = console.debug) == null || Ue.call(console, wt);
+ } catch (pt) {
+ (Ue = console.debug) == null || Ue.call(console, pt);
}
- if (i.lineWidth = 1, i.strokeRect($, _, le, se), de && xe && o.renderErrorState) {
+ if (i.lineWidth = 1, i.strokeRect(Q, _, le, de), se && Se && o.renderErrorState) {
try {
i.setLineDash([]);
- } catch (wt) {
- (Ee = console.debug) == null || Ee.call(console, wt);
+ } catch (pt) {
+ (Te = console.debug) == null || Te.call(console, pt);
}
- i.strokeStyle = "rgba(244,67,54,0.95)", i.lineWidth = 1.5, i.strokeRect($ - 0.5, _ - 0.5, le + 1, se + 1);
+ i.strokeStyle = "rgba(244,67,54,0.95)", i.lineWidth = 1.5, i.strokeRect(Q - 0.5, _ - 0.5, le + 1, de + 1);
}
- if (de && L && String(H.id || "") === L) {
+ if (se && V && String(U.id || "") === V) {
try {
i.setLineDash([]);
- } catch (wt) {
- (Re = console.debug) == null || Re.call(console, wt);
+ } catch (pt) {
+ (Oe = console.debug) == null || Oe.call(console, pt);
}
- i.strokeStyle = "rgba(255,224,130,0.96)", i.lineWidth = 2, i.strokeRect($ - 1, _ - 1, le + 2, se + 2);
+ i.strokeStyle = "rgba(255,224,130,0.96)", i.lineWidth = 2, i.strokeRect(Q - 1, _ - 1, le + 2, de + 2);
}
- if (de && o.showNodeLabels && H.label && le >= 42 && se >= 12) {
- const wt = Math.max(8, Math.min(11, Math.floor(se * 0.28))), Se = _ + wt + 2, Ft = Math.max(20, le - 6);
- let Gt = H.label;
- for (i.save(), i.beginPath(), i.rect($ + 1, _ + 1, le - 2, se - 2), i.clip(), i.font = `600 ${wt}px sans-serif`; Gt.length > 3 && i.measureText(`${Gt}...`).width > Ft; )
- Gt = Gt.slice(0, -1);
- const ue = Gt === H.label ? Gt : `${Gt}...`;
- i.fillStyle = "rgba(255,255,255,0.92)", i.shadowColor = "rgba(0,0,0,0.5)", i.shadowBlur = 2, i.fillText(ue, $ + 3, Se, Ft), i.restore();
+ if (se && o.showNodeLabels && U.label && le >= 42 && de >= 12) {
+ const pt = Math.max(8, Math.min(11, Math.floor(de * 0.28))), Me = _ + pt + 2, Xt = Math.max(20, le - 6);
+ let Mt = U.label;
+ for (i.save(), i.beginPath(), i.rect(Q + 1, _ + 1, le - 2, de - 2), i.clip(), i.font = `600 ${pt}px sans-serif`; Mt.length > 3 && i.measureText(`${Mt}...`).width > Xt; )
+ Mt = Mt.slice(0, -1);
+ const me = Mt === U.label ? Mt : `${Mt}...`;
+ i.fillStyle = "rgba(255,255,255,0.92)", i.shadowColor = "rgba(0,0,0,0.5)", i.shadowBlur = 2, i.fillText(me, Q + 3, Me, Xt), i.restore();
}
};
- for (const H of u.filter(($) => $.kind === "group")) B(H);
- O();
- for (const H of u.filter(($) => $.kind === "node")) B(H);
+ for (const U of u.filter((Q) => Q.kind === "group")) B(U);
+ z();
+ for (const U of u.filter((Q) => Q.kind === "node")) B(U);
if (o.showViewport)
try {
- const H = (window == null ? void 0 : window.app) || null, $ = ((ee = H == null ? void 0 : H.canvas) == null ? void 0 : ee.canvas) || ((oe = H == null ? void 0 : H.canvas) == null ? void 0 : oe.el) || null, _ = ((ce = H == null ? void 0 : H.canvas) == null ? void 0 : ce.ds) || null, le = Number(_ == null ? void 0 : _.scale), se = _ == null ? void 0 : _.offset, de = Array.isArray(se) ? Number(se[0]) : Number(se == null ? void 0 : se.x), Ze = Array.isArray(se) ? Number(se[1]) : Number(se == null ? void 0 : se.y), Fe = Number(($ == null ? void 0 : $.clientWidth) || ($ == null ? void 0 : $.width)), xe = Number(($ == null ? void 0 : $.clientHeight) || ($ == null ? void 0 : $.height));
- if (Number.isFinite(le) && le > 0 && Number.isFinite(de) && Number.isFinite(Ze) && Number.isFinite(Fe) && Number.isFinite(xe) && Fe > 0 && xe > 0) {
- const ze = -de / le, We = -Ze / le, De = (Fe - de) / le, Pe = (xe - Ze) / le, Qe = N(ze, We), Ue = N(De, Pe), Ee = Math.min(Qe.x, Ue.x), Re = Math.min(Qe.y, Ue.y), wt = Math.abs(Ue.x - Qe.x), Se = Math.abs(Ue.y - Qe.y);
- i.save(), i.globalAlpha = 1, i.strokeStyle = "rgba(255,255,255,0.9)", i.lineWidth = 1, i.strokeRect(Ee, Re, wt, Se), i.restore();
+ const U = (window == null ? void 0 : window.app) || null, Q = ((q = U == null ? void 0 : U.canvas) == null ? void 0 : q.canvas) || ((ee = U == null ? void 0 : U.canvas) == null ? void 0 : ee.el) || null, _ = ((ce = U == null ? void 0 : U.canvas) == null ? void 0 : ce.ds) || null, le = Number(_ == null ? void 0 : _.scale), de = _ == null ? void 0 : _.offset, se = Array.isArray(de) ? Number(de[0]) : Number(de == null ? void 0 : de.x), ge = Array.isArray(de) ? Number(de[1]) : Number(de == null ? void 0 : de.y), je = Number((Q == null ? void 0 : Q.clientWidth) || (Q == null ? void 0 : Q.width)), Se = Number((Q == null ? void 0 : Q.clientHeight) || (Q == null ? void 0 : Q.height));
+ if (Number.isFinite(le) && le > 0 && Number.isFinite(se) && Number.isFinite(ge) && Number.isFinite(je) && Number.isFinite(Se) && je > 0 && Se > 0) {
+ const ke = -se / le, we = -ge / le, Je = (je - se) / le, $e = (Se - ge) / le, qe = k(ke, we), Ue = k(Je, $e), Te = Math.min(qe.x, Ue.x), Oe = Math.min(qe.y, Ue.y), pt = Math.abs(Ue.x - qe.x), Me = Math.abs(Ue.y - qe.y);
+ i.save(), i.globalAlpha = 1, i.strokeStyle = "rgba(255,255,255,0.9)", i.lineWidth = 1, i.strokeRect(Te, Oe, pt, Me), i.restore();
}
- } catch (H) {
- (pe = console.debug) == null || pe.call(console, H);
+ } catch (U) {
+ (ue = console.debug) == null || ue.call(console, U);
}
return i.globalAlpha = 1, {
bounds: {
- minX: Z,
- minY: A,
+ minX: A,
+ minY: C,
maxX: g,
- maxY: h,
+ maxY: Z,
width: f,
height: b
},
resolvedView: {
zoom: W,
- centerX: x,
+ centerX: v,
centerY: w,
visibleW: y,
- visibleH: k,
- viewMinX: X,
- viewMinY: V,
- pad: R,
- renderScale: j
+ visibleH: X,
+ viewMinX: R,
+ viewMinY: Y,
+ pad: F,
+ renderScale: N
},
- canvasToWorld: q,
- worldToCanvas: N,
- hitTestNode: (H, $) => {
- const _ = q(H, $);
+ canvasToWorld: K,
+ worldToCanvas: k,
+ hitTestNode: (U, Q) => {
+ const _ = K(U, Q);
for (let le = u.length - 1; le >= 0; le -= 1) {
- const se = u[le];
- if (se.kind === "node" && _.x >= se.x && _.x <= se.x + se.w && _.y >= se.y && _.y <= se.y + se.h)
- return se;
+ const de = u[le];
+ if (de.kind === "node" && _.x >= de.x && _.x <= de.x + de.w && _.y >= de.y && _.y <= de.y + de.h)
+ return de;
}
return null;
}
};
}
-function Pj(e, t = null) {
+function $j(e, t = null) {
if (!e || typeof e != "object") return null;
const n = {
maxNodes: 220,
...t && typeof t == "object" ? t : {}
}, i = Object.entries(e);
if (!i.length) return null;
- const o = [], r = [], l = /* @__PURE__ */ new Map(), a = (A) => {
- if (A == null) return null;
- const g = String(A);
+ const o = [], r = [], l = /* @__PURE__ */ new Map(), a = (C) => {
+ if (C == null) return null;
+ const g = String(C);
return g || null;
- }, c = (A) => Array.isArray(A) && A.length === 2 && Number.isFinite(Number(A[0]));
- for (const [A, g] of i.slice(0, n.maxNodes)) {
+ }, c = (C) => Array.isArray(C) && C.length === 2 && Number.isFinite(Number(C[0]));
+ for (const [C, g] of i.slice(0, n.maxNodes)) {
if (!g || typeof g != "object") continue;
- const h = a(A);
- if (!h) continue;
- const f = String(g.class_type || g.type || g.classType || "").trim(), b = g.inputs && typeof g.inputs == "object" ? g.inputs : {}, v = [];
+ const Z = a(C);
+ if (!Z) continue;
+ const f = String(g.class_type || g.type || g.classType || "").trim(), b = g.inputs && typeof g.inputs == "object" ? g.inputs : {}, L = [];
for (const y of Object.values(b)) {
if (!c(y)) continue;
- const k = a(y[0]);
- k && (v.push(k), r.push([k, h]));
+ const X = a(y[0]);
+ X && (L.push(X), r.push([X, Z]));
}
- l.set(h, v);
- const C = f.toLowerCase();
- let S = "#3a3a3a", W = "#6b6b6b";
- C.includes("ksampler") || C.includes("sampler") ? (S = "#6a4b1f", W = "#b07a2c") : C.includes("cliptext") || C.includes("textencode") || C.includes("conditioning") ? (S = "#1f5f3a", W = "#2cb06c") : C.includes("checkpoint") || C.includes("loader") || C.includes("model") ? (S = "#243a6a", W = "#3f6fd6") : (C.includes("save") || C.includes("preview") || C.includes("video")) && (S = "#4a2a5f", W = "#8c4cd1"), o.push({
- id: Number.isFinite(Number(h)) ? Number(h) : h,
+ l.set(Z, L);
+ const h = f.toLowerCase();
+ let G = "#3a3a3a", W = "#6b6b6b";
+ h.includes("ksampler") || h.includes("sampler") ? (G = "#6a4b1f", W = "#b07a2c") : h.includes("cliptext") || h.includes("textencode") || h.includes("conditioning") ? (G = "#1f5f3a", W = "#2cb06c") : h.includes("checkpoint") || h.includes("loader") || h.includes("model") ? (G = "#243a6a", W = "#3f6fd6") : (h.includes("save") || h.includes("preview") || h.includes("video")) && (G = "#4a2a5f", W = "#8c4cd1"), o.push({
+ id: Number.isFinite(Number(Z)) ? Number(Z) : Z,
type: f || "Node",
pos: [0, 0],
size: [180, 80],
- bgcolor: S,
+ bgcolor: G,
color: W,
inputs: [],
outputs: []
});
}
if (!o.length) return null;
- const s = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Set(), u = (A) => {
- if (s.has(A)) return s.get(A);
- if (d.has(A)) return 0;
- d.add(A);
+ const s = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Set(), u = (C) => {
+ if (s.has(C)) return s.get(C);
+ if (d.has(C)) return 0;
+ d.add(C);
let g = 0;
- const h = l.get(A) || [];
- for (const f of h) g = Math.max(g, u(f) + 1);
- return d.delete(A), s.set(A, g), g;
+ const Z = l.get(C) || [];
+ for (const f of Z) g = Math.max(g, u(f) + 1);
+ return d.delete(C), s.set(C, g), g;
};
- for (const A of o) u(String(A.id));
+ for (const C of o) u(String(C.id));
const I = /* @__PURE__ */ new Map();
- for (const A of o) {
- const g = s.get(String(A.id)) ?? 0;
- I.has(g) || I.set(g, []), I.get(g).push(A);
+ for (const C of o) {
+ const g = s.get(String(C.id)) ?? 0;
+ I.has(g) || I.set(g, []), I.get(g).push(C);
}
- const p = Array.from(I.keys()).sort((A, g) => A - g);
- for (const A of p) {
- const g = I.get(A) || [];
- g.sort((h, f) => Number(h.id) - Number(f.id));
- for (let h = 0; h < g.length; h++)
- g[h].pos = [A * 220, h * 110];
+ const p = Array.from(I.keys()).sort((C, g) => C - g);
+ for (const C of p) {
+ const g = I.get(C) || [];
+ g.sort((Z, f) => Number(Z.id) - Number(f.id));
+ for (let Z = 0; Z < g.length; Z++)
+ g[Z].pos = [C * 220, Z * 110];
}
- let M = 1;
- const Z = r.filter(([A, g]) => A !== g).slice(0, 4e3).map(([A, g]) => [
- M++,
- Number.isFinite(Number(A)) ? Number(A) : A,
+ let S = 1;
+ const A = r.filter(([C, g]) => C !== g).slice(0, 4e3).map(([C, g]) => [
+ S++,
+ Number.isFinite(Number(C)) ? Number(C) : C,
0,
Number.isFinite(Number(g)) ? Number(g) : g,
0,
"LINK"
]);
- return { id: "synthetic", nodes: o, links: Z, extra: { synthetic: !0 } };
+ return { id: "synthetic", nodes: o, links: A, extra: { synthetic: !0 } };
}
-const Qj = {
+const ev = {
key: 0,
class: "mjr-sidebar-section",
style: { background: "var(--comfy-menu-bg, rgba(0,0,0,0.2))", border: "1px solid var(--border-color, rgba(255,255,255,0.14))", "border-radius": "8px", padding: "12px", "min-width": "300px" }
-}, _j = { style: { display: "flex", "flex-wrap": "wrap", gap: "8px", "margin-bottom": "10px" } }, $j = { style: { padding: "4px 9px", "border-radius": "999px", background: "rgba(33,150,243,0.14)", border: "1px solid rgba(33,150,243,0.30)", "font-size": "11px", "font-weight": "700", color: "#90CAF9", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, ev = {
+}, tv = { style: { display: "flex", "flex-wrap": "wrap", gap: "8px", "margin-bottom": "10px" } }, nv = { style: { padding: "4px 9px", "border-radius": "999px", background: "rgba(33,150,243,0.14)", border: "1px solid rgba(33,150,243,0.30)", "font-size": "11px", "font-weight": "700", color: "#90CAF9", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, iv = {
key: 0,
style: { padding: "4px 9px", "border-radius": "999px", background: "rgba(255,255,255,0.06)", border: "1px solid rgba(255,255,255,0.12)", "font-size": "11px", "font-weight": "600", color: "rgba(255,255,255,0.82)" }
-}, tv = { style: { display: "grid", "grid-template-columns": "repeat(3, minmax(0, 1fr))", gap: "8px", "margin-bottom": "12px" } }, nv = { style: { padding: "8px 10px", "border-radius": "10px", background: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.10)" } }, iv = { style: { "font-size": "18px", "font-weight": "700", color: "rgba(255,255,255,0.94)", "margin-top": "2px" } }, ov = { style: { padding: "8px 10px", "border-radius": "10px", background: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.10)" } }, rv = { style: { "font-size": "18px", "font-weight": "700", color: "rgba(255,255,255,0.94)", "margin-top": "2px" } }, lv = { style: { padding: "8px 10px", "border-radius": "10px", background: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.10)" } }, av = { style: { "font-size": "18px", "font-weight": "700", color: "rgba(255,255,255,0.94)", "margin-top": "2px" } }, cv = { style: { display: "flex", "align-items": "center", "justify-content": "space-between", gap: "10px", "margin-top": "8px" } }, sv = { style: { display: "flex", "flex-wrap": "wrap", gap: "6px", "align-items": "center" } }, dv = ["title", "onClick"], uv = ["title"], mv = {
+}, ov = { style: { display: "grid", "grid-template-columns": "repeat(3, minmax(0, 1fr))", gap: "8px", "margin-bottom": "12px" } }, rv = { style: { padding: "8px 10px", "border-radius": "10px", background: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.10)" } }, lv = { style: { "font-size": "18px", "font-weight": "700", color: "rgba(255,255,255,0.94)", "margin-top": "2px" } }, av = { style: { padding: "8px 10px", "border-radius": "10px", background: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.10)" } }, cv = { style: { "font-size": "18px", "font-weight": "700", color: "rgba(255,255,255,0.94)", "margin-top": "2px" } }, sv = { style: { padding: "8px 10px", "border-radius": "10px", background: "rgba(255,255,255,0.04)", border: "1px solid rgba(255,255,255,0.10)" } }, dv = { style: { "font-size": "18px", "font-weight": "700", color: "rgba(255,255,255,0.94)", "margin-top": "2px" } }, uv = { style: { display: "flex", "align-items": "center", "justify-content": "space-between", gap: "10px", "margin-top": "8px" } }, mv = { style: { display: "flex", "flex-wrap": "wrap", gap: "6px", "align-items": "center" } }, gv = ["title", "onClick"], Iv = ["title"], bv = {
key: 0,
style: { display: "grid", "grid-template-columns": "repeat(auto-fit, minmax(180px, 1fr))", gap: "8px", "align-items": "stretch", "margin-top": "10px", "margin-bottom": "10px" }
-}, gv = ["onClick"], Iv = { style: { display: "flex", "flex-direction": "column", gap: "2px", "min-width": "0" } }, bv = { style: { "font-size": "13px", "font-weight": "600" } }, pv = { style: { "font-size": "11px", color: "rgba(255,255,255,0.58)" } }, yv = { style: { display: "flex", gap: "10px", "align-items": "stretch", "margin-top": "10px" } }, fv = { style: { display: "flex", "justify-content": "space-between", "align-items": "center", gap: "10px", "margin-top": "8px", "font-size": "11px", color: "rgba(255,255,255,0.58)" } }, hv = ["open"], Cv = { style: { background: "rgba(0,0,0,0.5)", padding: "10px", "border-radius": "6px", "font-size": "11px", overflow: "auto", "max-height": "180px", margin: "10px 0 0 0", color: "#90CAF9", "font-family": "'Consolas', 'Monaco', monospace" } }, Rm = 1, Fm = 8, Zv = {
+}, pv = ["onClick"], yv = { style: { display: "flex", "flex-direction": "column", gap: "2px", "min-width": "0" } }, fv = { style: { "font-size": "13px", "font-weight": "600" } }, hv = { style: { "font-size": "11px", color: "rgba(255,255,255,0.58)" } }, Cv = { style: { display: "flex", gap: "10px", "align-items": "stretch", "margin-top": "10px" } }, Zv = { style: { display: "flex", "justify-content": "space-between", "align-items": "center", gap: "10px", "margin-top": "8px", "font-size": "11px", color: "rgba(255,255,255,0.58)" } }, Av = ["open"], Wv = { style: { background: "rgba(0,0,0,0.5)", padding: "10px", "border-radius": "6px", "font-size": "11px", overflow: "auto", "max-height": "180px", margin: "10px 0 0 0", color: "#90CAF9", "font-family": "'Consolas', 'Monaco', monospace" } }, Om = 1, zm = 8, wv = {
__name: "SidebarWorkflowSection",
props: {
asset: { type: Object, required: !0 }
@@ -40109,148 +40167,148 @@ const Qj = {
{ key: "compact", label: "Compact", height: 120 },
{ key: "comfortable", label: "Comfort", height: 160 },
{ key: "expanded", label: "Expanded", height: 220 }
- ]), r = Ae(null), l = Ae(!1), a = Ae(!1), c = Ae(C()), s = Ae({ ...i }), d = Ae("crosshair"), u = Ae("");
- let I = null, p = null, M = null;
- function Z(Y, U, P) {
- const ee = Number(Y);
- return Number.isFinite(ee) ? Math.max(U, Math.min(P, ee)) : U;
+ ]), r = Ae(null), l = Ae(!1), a = Ae(!1), c = Ae(h()), s = Ae({ ...i }), d = Ae("crosshair"), u = Ae("");
+ let I = null, p = null, S = null;
+ function A(j, O, D) {
+ const q = Number(j);
+ return Number.isFinite(q) ? Math.max(O, Math.min(D, q)) : O;
}
- function A(Y) {
- !Y || typeof Y != "object" || (s.value = {
+ function C(j) {
+ !j || typeof j != "object" || (s.value = {
...s.value,
- zoom: Z(Y.zoom ?? s.value.zoom, Rm, Fm),
- centerX: Number.isFinite(Number(Y.centerX)) ? Number(Y.centerX) : null,
- centerY: Number.isFinite(Number(Y.centerY)) ? Number(Y.centerY) : null
+ zoom: A(j.zoom ?? s.value.zoom, Om, zm),
+ centerX: Number.isFinite(Number(j.centerX)) ? Number(j.centerX) : null,
+ centerY: Number.isFinite(Number(j.centerY)) ? Number(j.centerY) : null
});
}
function g() {
s.value = { ...i }, u.value = "";
}
- function h(Y) {
- const U = (Y == null ? void 0 : Y.metadata_raw) ?? null;
- if (!U) return null;
- if (typeof U == "object") return U;
- if (typeof U == "string") {
- const P = U.trim();
- if (!P) return null;
+ function Z(j) {
+ const O = (j == null ? void 0 : j.metadata_raw) ?? null;
+ if (!O) return null;
+ if (typeof O == "object") return O;
+ if (typeof O == "string") {
+ const D = O.trim();
+ if (!D) return null;
try {
- const ee = JSON.parse(P);
- return ee && typeof ee == "object" ? ee : null;
+ const q = JSON.parse(D);
+ return q && typeof q == "object" ? q : null;
} catch {
return null;
}
}
return null;
}
- function f(Y) {
+ function f(j) {
try {
- const U = Object.entries(Y || {});
- if (!U.length) return !1;
- let P = 0;
- for (const [, ee] of U.slice(0, 50))
- if (!(!ee || typeof ee != "object") && (ee.inputs && typeof ee.inputs == "object" && (P += 1), P >= 2))
+ const O = Object.entries(j || {});
+ if (!O.length) return !1;
+ let D = 0;
+ for (const [, q] of O.slice(0, 50))
+ if (!(!q || typeof q != "object") && (q.inputs && typeof q.inputs == "object" && (D += 1), D >= 2))
return !0;
} catch {
return !1;
}
return !1;
}
- function b(Y) {
- const U = h(Y), P = (Y == null ? void 0 : Y.workflow) || (Y == null ? void 0 : Y.Workflow) || (Y == null ? void 0 : Y.comfy_workflow) || (U == null ? void 0 : U.workflow) || (U == null ? void 0 : U.Workflow) || (U == null ? void 0 : U.comfy_workflow) || null;
- if (!P) return null;
- if (typeof P == "object") return P;
- if (typeof P == "string") {
- const ee = P.trim();
- if (!ee) return null;
+ function b(j) {
+ const O = Z(j), D = (j == null ? void 0 : j.workflow) || (j == null ? void 0 : j.Workflow) || (j == null ? void 0 : j.comfy_workflow) || (O == null ? void 0 : O.workflow) || (O == null ? void 0 : O.Workflow) || (O == null ? void 0 : O.comfy_workflow) || null;
+ if (!D) return null;
+ if (typeof D == "object") return D;
+ if (typeof D == "string") {
+ const q = D.trim();
+ if (!q) return null;
try {
- return JSON.parse(ee);
+ return JSON.parse(q);
} catch {
return null;
}
}
return null;
}
- function v(Y) {
- const U = h(Y), P = (Y == null ? void 0 : Y.prompt) || (Y == null ? void 0 : Y.Prompt) || (U == null ? void 0 : U.prompt) || (U == null ? void 0 : U.Prompt) || null;
- if (!P) return null;
- if (typeof P == "object") return f(P) ? P : null;
- if (typeof P == "string") {
- const ee = P.trim();
- if (!ee) return null;
+ function L(j) {
+ const O = Z(j), D = (j == null ? void 0 : j.prompt) || (j == null ? void 0 : j.Prompt) || (O == null ? void 0 : O.prompt) || (O == null ? void 0 : O.Prompt) || null;
+ if (!D) return null;
+ if (typeof D == "object") return f(D) ? D : null;
+ if (typeof D == "string") {
+ const q = D.trim();
+ if (!q) return null;
try {
- const oe = JSON.parse(ee);
- return f(oe) ? oe : null;
+ const ee = JSON.parse(q);
+ return f(ee) ? ee : null;
} catch {
return null;
}
}
return null;
}
- function C() {
- var Y, U, P, ee;
+ function h() {
+ var j, O, D, q;
try {
- const oe = Xn == null ? void 0 : Xn(), ce = oe == null ? void 0 : oe.workflowMinimap;
+ const ee = Xn == null ? void 0 : Xn(), ce = ee == null ? void 0 : ee.workflowMinimap;
if (ce && typeof ce == "object")
return { ...n, ...ce };
- } catch (oe) {
- (Y = console.debug) == null || Y.call(console, oe);
+ } catch (ee) {
+ (j = console.debug) == null || j.call(console, ee);
}
try {
- const oe = (U = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : U.call(localStorage, Nd);
- if (!oe) return { ...n };
- const ce = JSON.parse(oe);
+ const ee = (O = localStorage == null ? void 0 : localStorage.getItem) == null ? void 0 : O.call(localStorage, Fd);
+ if (!ee) return { ...n };
+ const ce = JSON.parse(ee);
if (!ce || typeof ce != "object") return { ...n };
- const pe = { ...n, ...ce };
+ const ue = { ...n, ...ce };
try {
- const H = Xn();
- H.workflowMinimap = { ...H.workflowMinimap, ...pe }, Te(H), (P = localStorage == null ? void 0 : localStorage.removeItem) == null || P.call(localStorage, Nd);
- } catch (H) {
- (ee = console.debug) == null || ee.call(console, H);
+ const U = Xn();
+ U.workflowMinimap = { ...U.workflowMinimap, ...ue }, Be(U), (D = localStorage == null ? void 0 : localStorage.removeItem) == null || D.call(localStorage, Fd);
+ } catch (U) {
+ (q = console.debug) == null || q.call(console, U);
}
- return pe;
+ return ue;
} catch {
return { ...n };
}
}
- function S(Y) {
- var U;
+ function G(j) {
+ var O;
try {
- const P = Xn();
- P.workflowMinimap = { ...P.workflowMinimap, ...Y }, Te(P);
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ const D = Xn();
+ D.workflowMinimap = { ...D.workflowMinimap, ...j }, Be(D);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
}
- const W = Je(() => {
- const Y = b(t.asset), U = v(t.asset);
- return !Y && !U ? null : Y || Pj(U);
- }), y = Je(() => {
- var Y;
- return (Y = t.asset) != null && Y.has_generation_data ? "Complete" : "Partial";
- }), k = Je(
+ const W = ze(() => {
+ const j = b(t.asset), O = L(t.asset);
+ return !j && !O ? null : j || $j(O);
+ }), y = ze(() => {
+ var j;
+ return (j = t.asset) != null && j.has_generation_data ? "Complete" : "Partial";
+ }), X = ze(
() => W.value ? JSON.stringify(W.value, null, 2) : ""
- ), G = Je(() => {
- var oe, ce, pe, H, $;
- const Y = W.value;
- if (!Y)
+ ), x = ze(() => {
+ var ee, ce, ue, U, Q;
+ const j = W.value;
+ if (!j)
return {
nodes: 0,
links: 0,
groups: 0,
source: ""
};
- const U = Array.isArray(Y == null ? void 0 : Y.nodes) ? Y.nodes.length : 0, P = Array.isArray(Y == null ? void 0 : Y.links) && Y.links.length || Array.isArray((oe = Y == null ? void 0 : Y.extra) == null ? void 0 : oe.links) && Y.extra.links.length || 0, ee = Array.isArray(Y == null ? void 0 : Y.groups) && Y.groups.length || Array.isArray((ce = Y == null ? void 0 : Y.extra) == null ? void 0 : ce.groups) && Y.extra.groups.length || Array.isArray((pe = Y == null ? void 0 : Y.extra) == null ? void 0 : pe.groupNodes) && Y.extra.groupNodes.length || Array.isArray((H = Y == null ? void 0 : Y.extra) == null ? void 0 : H.group_nodes) && Y.extra.group_nodes.length || 0;
+ const O = Array.isArray(j == null ? void 0 : j.nodes) ? j.nodes.length : 0, D = Array.isArray(j == null ? void 0 : j.links) && j.links.length || Array.isArray((ee = j == null ? void 0 : j.extra) == null ? void 0 : ee.links) && j.extra.links.length || 0, q = Array.isArray(j == null ? void 0 : j.groups) && j.groups.length || Array.isArray((ce = j == null ? void 0 : j.extra) == null ? void 0 : ce.groups) && j.extra.groups.length || Array.isArray((ue = j == null ? void 0 : j.extra) == null ? void 0 : ue.groupNodes) && j.extra.groupNodes.length || Array.isArray((U = j == null ? void 0 : j.extra) == null ? void 0 : U.group_nodes) && j.extra.group_nodes.length || 0;
return {
- nodes: U,
- links: P,
- groups: ee,
- source: ($ = Y == null ? void 0 : Y.extra) != null && $.synthetic ? "Synthetic" : "Embedded"
+ nodes: O,
+ links: D,
+ groups: q,
+ source: (Q = j == null ? void 0 : j.extra) != null && Q.synthetic ? "Synthetic" : "Embedded"
};
- }), z = Je(() => {
- var U;
- const Y = String(((U = c.value) == null ? void 0 : U.size) || "comfortable");
- return o.find((P) => P.key === Y) || o[1];
- }), x = Je(() => `${z.value.height}px`), w = Je(() => [
+ }), T = ze(() => {
+ var O;
+ const j = String(((O = c.value) == null ? void 0 : O.size) || "comfortable");
+ return o.find((D) => D.key === j) || o[1];
+ }), v = ze(() => `${T.value.height}px`), w = ze(() => [
{ key: "showNodeLabels", label: "Node Labels", iconClass: "pi pi-tag" },
{ key: "nodeColors", label: "Node Colors", iconClass: "pi pi-palette" },
{ key: "showLinks", label: "Show Links", iconClass: "pi pi-share-alt" },
@@ -40263,272 +40321,272 @@ const Qj = {
},
{ key: "showViewport", label: "Show Viewport", iconClass: "pi pi-window-maximize" }
]);
- function X() {
- const Y = r.value, U = W.value;
- if (!Y || !U) return;
- const P = Math.max(1, Y.clientWidth || 320), ee = Math.max(1, Y.clientHeight || 120), oe = Math.max(1, Math.min(2, window.devicePixelRatio || 1));
- Y.width = Math.floor(P * oe), Y.height = Math.floor(ee * oe);
- const ce = Y.getContext("2d");
- ce && ce.setTransform(oe, 0, 0, oe, 0, 0), p = qj(Y, U, {
+ function R() {
+ const j = r.value, O = W.value;
+ if (!j || !O) return;
+ const D = Math.max(1, j.clientWidth || 320), q = Math.max(1, j.clientHeight || 120), ee = Math.max(1, Math.min(2, window.devicePixelRatio || 1));
+ j.width = Math.floor(D * ee), j.height = Math.floor(q * ee);
+ const ce = j.getContext("2d");
+ ce && ce.setTransform(ee, 0, 0, ee, 0, 0), p = _j(j, O, {
...c.value,
view: s.value
- }) || null, A(p == null ? void 0 : p.resolvedView);
+ }) || null, C(p == null ? void 0 : p.resolvedView);
}
- function V() {
- const Y = (window == null ? void 0 : window.app) || null, U = (Y == null ? void 0 : Y.canvas) || null, P = (U == null ? void 0 : U.ds) || null, ee = (U == null ? void 0 : U.canvas) || (U == null ? void 0 : U.el) || null;
- if (!U || !P || !ee) return null;
- const oe = Number(P == null ? void 0 : P.scale), ce = Number((ee == null ? void 0 : ee.width) || (ee == null ? void 0 : ee.clientWidth) || 0), pe = Number((ee == null ? void 0 : ee.height) || (ee == null ? void 0 : ee.clientHeight) || 0);
- return !Number.isFinite(oe) || oe <= 0 || !(ce > 0) || !(pe > 0) ? null : { app: Y, graphCanvas: U, ds: P, canvas: ee, scale: oe, width: ce, height: pe };
+ function Y() {
+ const j = (window == null ? void 0 : window.app) || null, O = (j == null ? void 0 : j.canvas) || null, D = (O == null ? void 0 : O.ds) || null, q = (O == null ? void 0 : O.canvas) || (O == null ? void 0 : O.el) || null;
+ if (!O || !D || !q) return null;
+ const ee = Number(D == null ? void 0 : D.scale), ce = Number((q == null ? void 0 : q.width) || (q == null ? void 0 : q.clientWidth) || 0), ue = Number((q == null ? void 0 : q.height) || (q == null ? void 0 : q.clientHeight) || 0);
+ return !Number.isFinite(ee) || ee <= 0 || !(ce > 0) || !(ue > 0) ? null : { app: j, graphCanvas: O, ds: D, canvas: q, scale: ee, width: ce, height: ue };
}
- function R(Y, U, P) {
- if (Array.isArray(Y == null ? void 0 : Y.offset)) {
- Y.offset[0] = U, Y.offset[1] = P;
+ function F(j, O, D) {
+ if (Array.isArray(j == null ? void 0 : j.offset)) {
+ j.offset[0] = O, j.offset[1] = D;
return;
}
- Y != null && Y.offset && typeof Y.offset == "object" && (Y.offset.x = U, Y.offset.y = P);
+ j != null && j.offset && typeof j.offset == "object" && (j.offset.x = O, j.offset.y = D);
}
- function j(Y, U) {
- var P, ee, oe, ce, pe;
+ function N(j, O) {
+ var D, q, ee, ce, ue;
try {
- (P = U == null ? void 0 : U.setDirty) == null || P.call(U, !0, !0);
- } catch (H) {
- (ee = console.debug) == null || ee.call(console, H);
+ (D = O == null ? void 0 : O.setDirty) == null || D.call(O, !0, !0);
+ } catch (U) {
+ (q = console.debug) == null || q.call(console, U);
}
try {
- (ce = (oe = Y == null ? void 0 : Y.graph) == null ? void 0 : oe.setDirtyCanvas) == null || ce.call(oe, !0, !0);
- } catch (H) {
- (pe = console.debug) == null || pe.call(console, H);
+ (ce = (ee = j == null ? void 0 : j.graph) == null ? void 0 : ee.setDirtyCanvas) == null || ce.call(ee, !0, !0);
+ } catch (U) {
+ (ue = console.debug) == null || ue.call(console, U);
}
}
- function L(Y) {
- if (!Y) return;
- const U = V();
- if (!U) return;
- const P = Math.max(1, Number(window.devicePixelRatio) || 1), ee = -Number(Y.x) + U.width * 0.5 / (U.scale * P), oe = -Number(Y.y) + U.height * 0.5 / (U.scale * P);
- !Number.isFinite(ee) || !Number.isFinite(oe) || (R(U.ds, ee, oe), j(U.app, U.graphCanvas));
+ function V(j) {
+ if (!j) return;
+ const O = Y();
+ if (!O) return;
+ const D = Math.max(1, Number(window.devicePixelRatio) || 1), q = -Number(j.x) + O.width * 0.5 / (O.scale * D), ee = -Number(j.y) + O.height * 0.5 / (O.scale * D);
+ !Number.isFinite(q) || !Number.isFinite(ee) || (F(O.ds, q, ee), N(O.app, O.graphCanvas));
}
- function N(Y) {
- var ee;
- const U = r.value;
- if (!U) return null;
- const P = (ee = U.getBoundingClientRect) == null ? void 0 : ee.call(U);
- return P ? {
- x: Number(Y == null ? void 0 : Y.clientX) - P.left,
- y: Number(Y == null ? void 0 : Y.clientY) - P.top
+ function k(j) {
+ var q;
+ const O = r.value;
+ if (!O) return null;
+ const D = (q = O.getBoundingClientRect) == null ? void 0 : q.call(O);
+ return D ? {
+ x: Number(j == null ? void 0 : j.clientX) - D.left,
+ y: Number(j == null ? void 0 : j.clientY) - D.top
} : null;
}
- function q(Y) {
- const U = N(Y);
- return !U || !(p != null && p.canvasToWorld) ? null : {
- local: U,
- world: p.canvasToWorld(U.x, U.y)
+ function K(j) {
+ const O = k(j);
+ return !O || !(p != null && p.canvasToWorld) ? null : {
+ local: O,
+ world: p.canvasToWorld(O.x, O.y)
};
}
- function O(Y) {
- const U = N(Y), P = U && (p != null && p.hitTestNode) ? p.hitTestNode(U.x, U.y) : null, ee = (P == null ? void 0 : P.id) !== null && (P == null ? void 0 : P.id) !== void 0 ? String(P.id) : null, oe = s.value.hoveredNodeId !== null && s.value.hoveredNodeId !== void 0 ? String(s.value.hoveredNodeId) : null;
- u.value = (P == null ? void 0 : P.label) || "", ee !== oe && (s.value = {
+ function z(j) {
+ const O = k(j), D = O && (p != null && p.hitTestNode) ? p.hitTestNode(O.x, O.y) : null, q = (D == null ? void 0 : D.id) !== null && (D == null ? void 0 : D.id) !== void 0 ? String(D.id) : null, ee = s.value.hoveredNodeId !== null && s.value.hoveredNodeId !== void 0 ? String(s.value.hoveredNodeId) : null;
+ u.value = (D == null ? void 0 : D.label) || "", q !== ee && (s.value = {
...s.value,
- hoveredNodeId: ee
- }, X());
+ hoveredNodeId: q
+ }, R());
}
- function B(Y) {
- Y && (L(Y), s.value = {
+ function B(j) {
+ j && (V(j), s.value = {
...s.value,
- centerX: Number(Y.x),
- centerY: Number(Y.y)
- }, X());
+ centerX: Number(j.x),
+ centerY: Number(j.y)
+ }, R());
}
- function J(Y) {
- var P, ee, oe, ce;
- if (Number((Y == null ? void 0 : Y.button) ?? 0) !== 0) return;
- const U = q(Y);
- U && (M = Y.pointerId ?? 1, d.value = "grabbing", (ee = (P = r.value) == null ? void 0 : P.setPointerCapture) == null || ee.call(P, M), B(U.world), O(Y), (oe = Y.preventDefault) == null || oe.call(Y), (ce = Y.stopPropagation) == null || ce.call(Y));
+ function J(j) {
+ var D, q, ee, ce;
+ if (Number((j == null ? void 0 : j.button) ?? 0) !== 0) return;
+ const O = K(j);
+ O && (S = j.pointerId ?? 1, d.value = "grabbing", (q = (D = r.value) == null ? void 0 : D.setPointerCapture) == null || q.call(D, S), B(O.world), z(j), (ee = j.preventDefault) == null || ee.call(j), (ce = j.stopPropagation) == null || ce.call(j));
}
- function T(Y) {
- var U, P;
- if (M !== null && Y.pointerId === M) {
- const ee = q(Y);
- ee && B(ee.world), (U = Y.preventDefault) == null || U.call(Y), (P = Y.stopPropagation) == null || P.call(Y);
+ function P(j) {
+ var O, D;
+ if (S !== null && j.pointerId === S) {
+ const q = K(j);
+ q && B(q.world), (O = j.preventDefault) == null || O.call(j), (D = j.stopPropagation) == null || D.call(j);
return;
}
- O(Y);
+ z(j);
}
- function D(Y) {
- var U, P;
- M !== null && (Y == null ? void 0 : Y.pointerId) === M && ((P = (U = r.value) == null ? void 0 : U.releasePointerCapture) == null || P.call(U, M), M = null, d.value = "crosshair"), (Y == null ? void 0 : Y.type) === "pointerleave" && (u.value = "", s.value.hoveredNodeId !== null && (s.value = {
+ function H(j) {
+ var O, D;
+ S !== null && (j == null ? void 0 : j.pointerId) === S && ((D = (O = r.value) == null ? void 0 : O.releasePointerCapture) == null || D.call(O, S), S = null, d.value = "crosshair"), (j == null ? void 0 : j.type) === "pointerleave" && (u.value = "", s.value.hoveredNodeId !== null && (s.value = {
...s.value,
hoveredNodeId: null
- }, X()));
+ }, R()));
}
- function Q(Y) {
- var le, se, de, Ze, Fe, xe;
- const U = q(Y), P = p == null ? void 0 : p.resolvedView;
- if (!U || !P) return;
- const ee = Z(Number(Y == null ? void 0 : Y.deltaY) || 0, -240, 240), oe = Math.exp(-ee * 25e-4), ce = Z(
- (Number(s.value.zoom) || 1) * oe,
- Rm,
- Fm
+ function $(j) {
+ var le, de, se, ge, je, Se;
+ const O = K(j), D = p == null ? void 0 : p.resolvedView;
+ if (!O || !D) return;
+ const q = A(Number(j == null ? void 0 : j.deltaY) || 0, -240, 240), ee = Math.exp(-q * 25e-4), ce = A(
+ (Number(s.value.zoom) || 1) * ee,
+ Om,
+ zm
);
if (Math.abs(ce - (Number(s.value.zoom) || 1)) < 1e-3) {
- (le = Y.preventDefault) == null || le.call(Y), (se = Y.stopPropagation) == null || se.call(Y);
+ (le = j.preventDefault) == null || le.call(j), (de = j.stopPropagation) == null || de.call(j);
return;
}
- const pe = Math.max(1, Number(((de = p == null ? void 0 : p.bounds) == null ? void 0 : de.width) || 1) / ce), H = Math.max(1, Number(((Ze = p == null ? void 0 : p.bounds) == null ? void 0 : Ze.height) || 1) / ce), $ = Z(
- (Number(U.world.x) - Number(P.viewMinX || 0)) / Math.max(1, Number(P.visibleW || 1)),
+ const ue = Math.max(1, Number(((se = p == null ? void 0 : p.bounds) == null ? void 0 : se.width) || 1) / ce), U = Math.max(1, Number(((ge = p == null ? void 0 : p.bounds) == null ? void 0 : ge.height) || 1) / ce), Q = A(
+ (Number(O.world.x) - Number(D.viewMinX || 0)) / Math.max(1, Number(D.visibleW || 1)),
0,
1
- ), _ = Z(
- (Number(U.world.y) - Number(P.viewMinY || 0)) / Math.max(1, Number(P.visibleH || 1)),
+ ), _ = A(
+ (Number(O.world.y) - Number(D.viewMinY || 0)) / Math.max(1, Number(D.visibleH || 1)),
0,
1
);
s.value = {
...s.value,
zoom: ce,
- centerX: Number(U.world.x) + (0.5 - $) * pe,
- centerY: Number(U.world.y) + (0.5 - _) * H
- }, X(), O(Y), (Fe = Y.preventDefault) == null || Fe.call(Y), (xe = Y.stopPropagation) == null || xe.call(Y);
+ centerX: Number(O.world.x) + (0.5 - Q) * ue,
+ centerY: Number(O.world.y) + (0.5 - _) * U
+ }, R(), z(j), (je = j.preventDefault) == null || je.call(j), (Se = j.stopPropagation) == null || Se.call(j);
}
- function E(Y) {
- var P, ee;
- const U = q(Y);
- g(), U && L(U.world), X(), (P = Y.preventDefault) == null || P.call(Y), (ee = Y.stopPropagation) == null || ee.call(Y);
+ function E(j) {
+ var D, q;
+ const O = K(j);
+ g(), O && V(O.world), R(), (D = j.preventDefault) == null || D.call(j), (q = j.stopPropagation) == null || q.call(j);
}
- function K(Y) {
- var U;
+ function oe(j) {
+ var O;
c.value = {
...c.value,
- [Y]: !((U = c.value) != null && U[Y])
- }, S(c.value);
+ [j]: !((O = c.value) != null && O[j])
+ }, G(c.value);
}
- function F(Y) {
- o.some((U) => U.key === Y) && (c.value = {
+ function M(j) {
+ o.some((O) => O.key === j) && (c.value = {
...c.value,
- size: Y
- }, S(c.value));
+ size: j
+ }, G(c.value));
}
return Dn(() => {
- r.value && typeof ResizeObserver == "function" && (I = new ResizeObserver(() => X()), I.observe(r.value)), X();
- }), an(W, () => {
- g(), X();
- }, { flush: "post" }), an(c, () => {
- X();
- }, { deep: !0, flush: "post" }), an(l, () => {
- X();
- }, { flush: "post" }), Mr(() => {
- var Y, U;
+ r.value && typeof ResizeObserver == "function" && (I = new ResizeObserver(() => R()), I.observe(r.value)), R();
+ }), cn(W, () => {
+ g(), R();
+ }, { flush: "post" }), cn(c, () => {
+ R();
+ }, { deep: !0, flush: "post" }), cn(l, () => {
+ R();
+ }, { flush: "post" }), xr(() => {
+ var j, O;
try {
- (Y = I == null ? void 0 : I.disconnect) == null || Y.call(I);
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ (j = I == null ? void 0 : I.disconnect) == null || j.call(I);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
- I = null, M = null;
- }), (Y, U) => W.value ? (Ie(), he("div", Qj, [
- U[7] || (U[7] = ne("div", { style: { "font-size": "13px", "font-weight": "600", color: "var(--fg-color, #eaeaea)", "margin-bottom": "12px", "text-transform": "uppercase", "letter-spacing": "0.5px" } }, " ComfyUI Workflow ", -1)),
- ne("div", _j, [
- ne("div", $j, Ye(y.value), 1),
- G.value.source ? (Ie(), he("div", ev, Ye(G.value.source), 1)) : yt("", !0)
+ I = null, S = null;
+ }), (j, O) => W.value ? (be(), Ce("div", ev, [
+ O[7] || (O[7] = ie("div", { style: { "font-size": "13px", "font-weight": "600", color: "var(--fg-color, #eaeaea)", "margin-bottom": "12px", "text-transform": "uppercase", "letter-spacing": "0.5px" } }, " ComfyUI Workflow ", -1)),
+ ie("div", tv, [
+ ie("div", nv, Ye(y.value), 1),
+ x.value.source ? (be(), Ce("div", iv, Ye(x.value.source), 1)) : ft("", !0)
]),
- ne("div", tv, [
- ne("div", nv, [
- U[2] || (U[2] = ne("div", { style: { "font-size": "10px", "font-weight": "700", color: "rgba(255,255,255,0.55)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, "Nodes", -1)),
- ne("div", iv, Ye(G.value.nodes), 1)
+ ie("div", ov, [
+ ie("div", rv, [
+ O[2] || (O[2] = ie("div", { style: { "font-size": "10px", "font-weight": "700", color: "rgba(255,255,255,0.55)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, "Nodes", -1)),
+ ie("div", lv, Ye(x.value.nodes), 1)
]),
- ne("div", ov, [
- U[3] || (U[3] = ne("div", { style: { "font-size": "10px", "font-weight": "700", color: "rgba(255,255,255,0.55)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, "Links", -1)),
- ne("div", rv, Ye(G.value.links), 1)
+ ie("div", av, [
+ O[3] || (O[3] = ie("div", { style: { "font-size": "10px", "font-weight": "700", color: "rgba(255,255,255,0.55)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, "Links", -1)),
+ ie("div", cv, Ye(x.value.links), 1)
]),
- ne("div", lv, [
- U[4] || (U[4] = ne("div", { style: { "font-size": "10px", "font-weight": "700", color: "rgba(255,255,255,0.55)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, "Groups", -1)),
- ne("div", av, Ye(G.value.groups), 1)
+ ie("div", sv, [
+ O[4] || (O[4] = ie("div", { style: { "font-size": "10px", "font-weight": "700", color: "rgba(255,255,255,0.55)", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, "Groups", -1)),
+ ie("div", dv, Ye(x.value.groups), 1)
])
]),
- ne("div", cv, [
- ne("div", sv, [
- (Ie(!0), he(Xt, null, Cn(Ge(o), (P) => (Ie(), he("button", {
- key: P.key,
+ ie("div", uv, [
+ ie("div", mv, [
+ (be(!0), Ce(Nt, null, Cn(xe(o), (D) => (be(), Ce("button", {
+ key: D.key,
type: "button",
- title: `${P.label} minimap`,
- style: vt({
+ title: `${D.label} minimap`,
+ style: Lt({
appearance: "none",
- border: c.value.size === P.key ? "1px solid rgba(33,150,243,0.55)" : "1px solid rgba(255,255,255,0.12)",
+ border: c.value.size === D.key ? "1px solid rgba(33,150,243,0.55)" : "1px solid rgba(255,255,255,0.12)",
borderRadius: "999px",
padding: "4px 10px",
- background: c.value.size === P.key ? "rgba(33,150,243,0.18)" : "rgba(255,255,255,0.04)",
- color: c.value.size === P.key ? "#90CAF9" : "rgba(255,255,255,0.78)",
+ background: c.value.size === D.key ? "rgba(33,150,243,0.18)" : "rgba(255,255,255,0.04)",
+ color: c.value.size === D.key ? "#90CAF9" : "rgba(255,255,255,0.78)",
fontSize: "11px",
- fontWeight: c.value.size === P.key ? "700" : "600",
+ fontWeight: c.value.size === D.key ? "700" : "600",
cursor: "pointer"
}),
- onClick: (ee) => F(P.key)
- }, Ye(P.label), 13, dv))), 128))
+ onClick: (q) => M(D.key)
+ }, Ye(D.label), 13, gv))), 128))
]),
- ne("button", {
+ ie("button", {
type: "button",
class: "mjr-btn mjr-icon-btn",
- title: Ge(m)("tooltip.minimapSettings", "Minimap settings"),
+ title: xe(m)("tooltip.minimapSettings", "Minimap settings"),
style: { width: "28px", height: "28px", "border-radius": "8px", display: "inline-flex", "align-items": "center", "justify-content": "center", border: "1px solid var(--mjr-border, rgba(255,255,255,0.12))", background: "rgba(255,255,255,0.06)", color: "rgba(255,255,255,0.9)", cursor: "pointer" },
- onClick: U[0] || (U[0] = (P) => l.value = !l.value)
- }, [...U[5] || (U[5] = [
- ne("i", { class: "pi pi-sliders-h" }, null, -1)
- ])], 8, uv)
+ onClick: O[0] || (O[0] = (D) => l.value = !l.value)
+ }, [...O[5] || (O[5] = [
+ ie("i", { class: "pi pi-sliders-h" }, null, -1)
+ ])], 8, Iv)
]),
- l.value ? (Ie(), he("div", mv, [
- (Ie(!0), he(Xt, null, Cn(w.value, (P) => {
- var ee, oe, ce, pe, H, $;
- return Ie(), he("button", {
- key: P.key,
+ l.value ? (be(), Ce("div", bv, [
+ (be(!0), Ce(Nt, null, Cn(w.value, (D) => {
+ var q, ee, ce, ue, U, Q;
+ return be(), Ce("button", {
+ key: D.key,
type: "button",
- style: vt({
+ style: Lt({
display: "flex",
alignItems: "center",
gap: "10px",
padding: "9px 10px",
borderRadius: "10px",
- border: (ee = c.value) != null && ee[P.key] ? "1px solid rgba(76,175,80,0.40)" : "1px solid rgba(255,255,255,0.12)",
- background: (oe = c.value) != null && oe[P.key] ? "rgba(76,175,80,0.10)" : "rgba(255,255,255,0.04)",
+ border: (q = c.value) != null && q[D.key] ? "1px solid rgba(76,175,80,0.40)" : "1px solid rgba(255,255,255,0.12)",
+ background: (ee = c.value) != null && ee[D.key] ? "rgba(76,175,80,0.10)" : "rgba(255,255,255,0.04)",
cursor: "pointer",
color: "rgba(255,255,255,0.92)",
textAlign: "left"
}),
- onClick: (_) => K(P.key)
+ onClick: (_) => oe(D.key)
}, [
- ne("span", {
- style: vt({
+ ie("span", {
+ style: Lt({
width: "22px",
height: "22px",
borderRadius: "6px",
display: "inline-flex",
alignItems: "center",
justifyContent: "center",
- background: (ce = c.value) != null && ce[P.key] ? "rgba(76,175,80,0.95)" : "rgba(255,255,255,0.08)",
- border: (pe = c.value) != null && pe[P.key] ? "1px solid rgba(76,175,80,0.35)" : "1px solid rgba(255,255,255,0.12)",
+ background: (ce = c.value) != null && ce[D.key] ? "rgba(76,175,80,0.95)" : "rgba(255,255,255,0.08)",
+ border: (ue = c.value) != null && ue[D.key] ? "1px solid rgba(76,175,80,0.35)" : "1px solid rgba(255,255,255,0.12)",
flex: "0 0 auto"
})
}, [
- ne("i", {
+ ie("i", {
class: "pi pi-check",
- style: vt({ fontSize: "12px", opacity: (H = c.value) != null && H[P.key] ? "1" : "0" })
+ style: Lt({ fontSize: "12px", opacity: (U = c.value) != null && U[D.key] ? "1" : "0" })
}, null, 4)
], 4),
- ne("i", {
- class: Zn(P.iconClass),
+ ie("i", {
+ class: Zn(D.iconClass),
style: { "font-size": "18px", opacity: "0.9", width: "18px" }
}, null, 2),
- ne("div", Iv, [
- ne("div", bv, Ye(P.label), 1),
- ne("div", pv, Ye(($ = c.value) != null && $[P.key] ? "On" : "Off"), 1)
+ ie("div", yv, [
+ ie("div", fv, Ye(D.label), 1),
+ ie("div", hv, Ye((Q = c.value) != null && Q[D.key] ? "On" : "Off"), 1)
])
- ], 12, gv);
+ ], 12, pv);
}), 128))
- ])) : yt("", !0),
- ne("div", yv, [
- ne("canvas", {
+ ])) : ft("", !0),
+ ie("div", Cv, [
+ ie("canvas", {
ref_key: "canvasRef",
ref: r,
- style: vt({
+ style: Lt({
width: "100%",
- height: x.value,
+ height: v.value,
cursor: d.value,
touchAction: "none",
borderRadius: "10px",
@@ -40538,32 +40596,32 @@ const Qj = {
boxShadow: "inset 0 0 0 1px rgba(255,255,255,0.03)"
}),
onPointerdown: J,
- onPointermove: T,
- onPointerup: D,
- onPointercancel: D,
- onPointerleave: D,
- onWheel: Q,
+ onPointermove: P,
+ onPointerup: H,
+ onPointercancel: H,
+ onPointerleave: H,
+ onWheel: $,
onDblclick: E
}, null, 36)
]),
- ne("div", fv, [
- ne("span", null, Ye(u.value || "Click/drag to navigate Β· wheel to zoom"), 1),
- ne("span", null, Ye(Math.round((s.value.zoom || 1) * 100)) + "% Β· " + Ye(z.value.label), 1)
+ ie("div", Zv, [
+ ie("span", null, Ye(u.value || "Click/drag to navigate Β· wheel to zoom"), 1),
+ ie("span", null, Ye(Math.round((s.value.zoom || 1) * 100)) + "% Β· " + Ye(T.value.label), 1)
]),
- ne("details", {
+ ie("details", {
open: a.value,
style: { "margin-top": "10px" },
- onToggle: U[1] || (U[1] = (P) => a.value = P.target.open)
+ onToggle: O[1] || (O[1] = (D) => a.value = D.target.open)
}, [
- U[6] || (U[6] = ne("summary", { style: { cursor: "pointer", color: "var(--mjr-muted, rgba(255,255,255,0.65))", "font-size": "12px", "user-select": "none" } }, " Show raw JSON ", -1)),
- ne("pre", Cv, Ye(k.value), 1)
- ], 40, hv)
- ])) : yt("", !0);
+ O[6] || (O[6] = ie("summary", { style: { cursor: "pointer", color: "var(--mjr-muted, rgba(255,255,255,0.65))", "font-size": "12px", "user-select": "none" } }, " Show raw JSON ", -1)),
+ ie("pre", Wv, Ye(X.value), 1)
+ ], 40, Av)
+ ])) : ft("", !0);
}
-}, Av = {
+}, Mv = {
class: "mjr-sidebar-section",
style: { background: "rgba(255, 255, 255, 0.03)", border: "1px solid var(--mjr-border, rgba(255, 255, 255, 0.12))", "border-radius": "8px", padding: "10px" }
-}, Wv = { style: { display: "flex", "flex-direction": "column", gap: "6px" } }, wv = { style: { "font-size": "12px", opacity: "0.68", "min-width": "92px" } }, Mv = ["title"], Sv = {
+}, Sv = { style: { display: "flex", "flex-direction": "column", gap: "6px" } }, Gv = { style: { "font-size": "12px", opacity: "0.68", "min-width": "92px" } }, xv = ["title"], jv = {
__name: "SidebarFolderSection",
props: {
asset: { type: Object, required: !0 }
@@ -40579,33 +40637,33 @@ const Qj = {
a /= 1024, c += 1;
return `${a.toFixed(c > 0 ? 1 : 0)} ${l[c]}`;
}
- const i = Je(() => {
- const o = t.asset || {}, r = o.folder_info || o.folderInfo || {}, l = String(r.path || o.filepath || o.subfolder || ""), a = String(r.name || o.filename || "").trim(), c = Number(r.files ?? 0), s = Number(r.folders ?? 0), d = Number(r.size ?? 0), u = Number(r.mtime ?? o.mtime ?? 0), I = Number(r.ctime ?? 0), p = !!r.truncated, M = [
+ const i = ze(() => {
+ const o = t.asset || {}, r = o.folder_info || o.folderInfo || {}, l = String(r.path || o.filepath || o.subfolder || ""), a = String(r.name || o.filename || "").trim(), c = Number(r.files ?? 0), s = Number(r.folders ?? 0), d = Number(r.size ?? 0), u = Number(r.mtime ?? o.mtime ?? 0), I = Number(r.ctime ?? 0), p = !!r.truncated, S = [
{ label: "Name", value: a || "-" },
{ label: "Path", value: l || "-" },
{ label: "Folders", value: Number.isFinite(s) ? String(s) : "-" },
{ label: "Files", value: Number.isFinite(c) ? String(c) : "-" },
{ label: "Size", value: n(d) }
];
- return I > 0 && M.push({ label: "Created", value: `${Oa(I) || "-"} ${za(I) || ""}`.trim() }), u > 0 && M.push({ label: "Modified", value: `${Oa(u) || "-"} ${za(u) || ""}`.trim() }), p && M.push({ label: "Note", value: "Scan was truncated for performance", valueStyle: "color:#FFB74D;font-weight:600;" }), M;
+ return I > 0 && S.push({ label: "Created", value: `${za(I) || "-"} ${Ja(I) || ""}`.trim() }), u > 0 && S.push({ label: "Modified", value: `${za(u) || "-"} ${Ja(u) || ""}`.trim() }), p && S.push({ label: "Note", value: "Scan was truncated for performance", valueStyle: "color:#FFB74D;font-weight:600;" }), S;
});
- return (o, r) => (Ie(), he("div", Av, [
- r[0] || (r[0] = ne("div", { style: { "font-size": "12px", "font-weight": "700", color: "#26a69a", "margin-bottom": "8px", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, " Folder Details ", -1)),
- ne("div", Wv, [
- (Ie(!0), he(Xt, null, Cn(i.value, (l) => (Ie(), he("div", {
+ return (o, r) => (be(), Ce("div", Mv, [
+ r[0] || (r[0] = ie("div", { style: { "font-size": "12px", "font-weight": "700", color: "#26a69a", "margin-bottom": "8px", "text-transform": "uppercase", "letter-spacing": "0.4px" } }, " Folder Details ", -1)),
+ ie("div", Sv, [
+ (be(!0), Ce(Nt, null, Cn(i.value, (l) => (be(), Ce("div", {
key: l.label,
style: { display: "flex", gap: "10px", "align-items": "flex-start", "justify-content": "space-between" }
}, [
- ne("div", wv, Ye(l.label), 1),
- ne("div", {
- style: vt(l.valueStyle || "font-size: 12px; text-align: right; word-break: break-word"),
+ ie("div", Gv, Ye(l.label), 1),
+ ie("div", {
+ style: Lt(l.valueStyle || "font-size: 12px; text-align: right; word-break: break-word"),
title: String(l.value || "")
- }, Ye(l.value), 13, Mv)
+ }, Ye(l.value), 13, xv)
]))), 128))
])
]));
}
-}, Gv = ["aria-busy", "aria-disabled", "aria-label", "aria-valuenow", "tabindex"], xv = ["aria-label", "aria-pressed", "disabled", "onClick", "onMouseenter"], jv = {
+}, vv = ["aria-busy", "aria-disabled", "aria-label", "aria-valuenow", "tabindex"], Lv = ["aria-label", "aria-pressed", "disabled", "onClick", "onMouseenter"], Vv = {
__name: "RatingEditor",
props: {
asset: {
@@ -40624,143 +40682,143 @@ const Qj = {
emits: ["update:modelValue", "rating-change"],
setup(e, { emit: t }) {
var y;
- function n(k) {
- return Math.max(0, Math.min(5, Number(k) || 0));
+ function n(X) {
+ return Math.max(0, Math.min(5, Number(X) || 0));
}
const i = e, o = t, r = n(((y = i.asset) == null ? void 0 : y.rating) ?? i.modelValue), l = Ae(r), a = Ae(0), c = Ae(!1);
let s = r, d = r, u = null;
- const I = Je(
+ const I = ze(
() => a.value > 0 ? a.value : l.value
- ), p = (k) => k <= I.value ? "#FFD45A" : "#555", M = (k) => k <= I.value ? "scale(1.1)" : "scale(1)", Z = (k) => Math.min(100 * 2 ** Math.max(0, k - 1), 2e3), A = (k) => new Promise((G) => setTimeout(G, k));
- function g(k) {
+ ), p = (X) => X <= I.value ? "#FFD45A" : "#555", S = (X) => X <= I.value ? "scale(1.1)" : "scale(1)", A = (X) => Math.min(100 * 2 ** Math.max(0, X - 1), 2e3), C = (X) => new Promise((x) => setTimeout(x, X));
+ function g(X) {
if (c.value) return;
- const G = n(k);
- s = G, d = G, G !== l.value && (l.value = G);
+ const x = n(X);
+ s = x, d = x, x !== l.value && (l.value = x);
}
- function h(k = null) {
- l.value = s, d = s, o("update:modelValue", s), k && Ce(k, "error");
+ function Z(X = null) {
+ l.value = s, d = s, o("update:modelValue", s), X && Ze(X, "error");
}
async function f() {
- var G, z, x, w, X;
+ var x, T, v, w, R;
if (c.value) return;
c.value = !0;
- const k = Date.now();
+ const X = Date.now();
try {
- let V = 0;
- for (; V < 10; ) {
- if (Date.now() - k > 3e4) {
- h(m("toast.ratingUpdateFailed", "Rating update failed"));
+ let Y = 0;
+ for (; Y < 10; ) {
+ if (Date.now() - X > 3e4) {
+ Z(m("toast.ratingUpdateFailed", "Rating update failed"));
break;
}
- V > 0 && await A(Z(V)), V += 1;
- const R = n(d), j = typeof AbortController < "u" ? new AbortController() : null;
- u = j;
- let L = null;
+ Y > 0 && await C(A(Y)), Y += 1;
+ const F = n(d), N = typeof AbortController < "u" ? new AbortController() : null;
+ u = N;
+ let V = null;
try {
- L = await Do(i.asset, R, j ? { signal: j.signal } : {});
- } catch (N) {
- console.error("Failed to update rating:", N);
+ V = await Ho(i.asset, F, N ? { signal: N.signal } : {});
+ } catch (k) {
+ console.error("Failed to update rating:", k);
}
- if (!(L != null && L.ok)) {
- if ((L == null ? void 0 : L.code) === "ABORTED" && d !== R)
+ if (!(V != null && V.ok)) {
+ if ((V == null ? void 0 : V.code) === "ABORTED" && d !== F)
continue;
- h(
- (L == null ? void 0 : L.error) || m("toast.ratingUpdateFailed", "Rating update failed")
+ Z(
+ (V == null ? void 0 : V.error) || m("toast.ratingUpdateFailed", "Rating update failed")
);
break;
}
try {
- const N = ((G = L == null ? void 0 : L.data) == null ? void 0 : G.asset_id) ?? null;
- N != null && !pi(i.asset.id) && (i.asset.id = N);
- } catch (N) {
- (z = console.debug) == null || z.call(console, N);
+ const k = ((x = V == null ? void 0 : V.data) == null ? void 0 : x.asset_id) ?? null;
+ k != null && !fi(i.asset.id) && (i.asset.id = k);
+ } catch (k) {
+ (T = console.debug) == null || T.call(console, k);
}
- s = R, l.value = R;
+ s = F, l.value = F;
try {
- i.asset.rating = R;
- } catch (N) {
- (x = console.debug) == null || x.call(console, N);
+ i.asset.rating = F;
+ } catch (k) {
+ (v = console.debug) == null || v.call(console, k);
}
- if (o("update:modelValue", R), o("rating-change", { assetId: (w = i.asset) == null ? void 0 : w.id, rating: R }), ii(Ri, {
- assetId: ((X = i.asset) == null ? void 0 : X.id) != null ? String(i.asset.id) : "",
- rating: R
- }), d === R) {
- Ce(m("toast.ratingSetN", { n: R }), "success", 1e3);
+ if (o("update:modelValue", F), o("rating-change", { assetId: (w = i.asset) == null ? void 0 : w.id, rating: F }), oi(Fi, {
+ assetId: ((R = i.asset) == null ? void 0 : R.id) != null ? String(i.asset.id) : "",
+ rating: F
+ }), d === F) {
+ Ze(m("toast.ratingSetN", { n: F }), "success", 1e3);
break;
}
}
- V >= 10 && h(m("toast.ratingUpdateFailed", "Rating update failed"));
+ Y >= 10 && Z(m("toast.ratingUpdateFailed", "Rating update failed"));
} finally {
u = null, c.value = !1;
}
}
- function b(k) {
- var z, x;
+ function b(X) {
+ var T, v;
if (i.disabled) return;
- const G = n(k);
- d = G, l.value = G, a.value = 0, o("update:modelValue", G);
+ const x = n(X);
+ d = x, l.value = x, a.value = 0, o("update:modelValue", x);
try {
- (z = u == null ? void 0 : u.abort) == null || z.call(u);
+ (T = u == null ? void 0 : u.abort) == null || T.call(u);
} catch (w) {
- (x = console.debug) == null || x.call(console, w);
+ (v = console.debug) == null || v.call(console, w);
}
f();
}
- function v(k) {
- b(k);
+ function L(X) {
+ b(X);
}
- function C(k) {
- i.disabled || (a.value = k);
+ function h(X) {
+ i.disabled || (a.value = X);
}
- function S() {
+ function G() {
a.value = 0;
}
- function W(k) {
+ function W(X) {
if (i.disabled) return;
- let G = null;
- switch (k.key) {
+ let x = null;
+ switch (X.key) {
case "ArrowRight":
case "ArrowUp":
- k.preventDefault(), G = Math.min(5, l.value + 1);
+ X.preventDefault(), x = Math.min(5, l.value + 1);
break;
case "ArrowLeft":
case "ArrowDown":
- k.preventDefault(), G = Math.max(0, l.value - 1);
+ X.preventDefault(), x = Math.max(0, l.value - 1);
break;
case "Home":
- k.preventDefault(), G = 0;
+ X.preventDefault(), x = 0;
break;
case "End":
- k.preventDefault(), G = 5;
+ X.preventDefault(), x = 5;
break;
default:
- k.key >= "0" && k.key <= "5" && (k.preventDefault(), G = parseInt(k.key, 10));
+ X.key >= "0" && X.key <= "5" && (X.preventDefault(), x = parseInt(X.key, 10));
}
- G !== null && G !== l.value && b(G);
+ x !== null && x !== l.value && b(x);
}
- return Mr(() => {
- var k, G;
+ return xr(() => {
+ var X, x;
try {
- (k = u == null ? void 0 : u.abort) == null || k.call(u);
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ (X = u == null ? void 0 : u.abort) == null || X.call(u);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- }), an(
+ }), cn(
() => i.modelValue,
- (k) => {
- g(k);
+ (X) => {
+ g(X);
}
- ), an(
+ ), cn(
() => {
- var k;
- return (k = i.asset) == null ? void 0 : k.rating;
+ var X;
+ return (X = i.asset) == null ? void 0 : X.rating;
},
- (k) => {
- g(k);
+ (X) => {
+ g(X);
}
- ), (k, G) => (Ie(), he("div", {
+ ), (X, x) => (be(), Ce("div", {
class: "mjr-rating-editor",
- style: vt({
+ style: Lt({
display: "inline-flex",
gap: "2px",
pointerEvents: e.disabled ? "none" : "auto",
@@ -40769,20 +40827,20 @@ const Qj = {
"aria-busy": c.value,
"aria-disabled": e.disabled,
role: "slider",
- "aria-label": Ge(m)("rating.label", "Rating"),
+ "aria-label": xe(m)("rating.label", "Rating"),
"aria-valuemin": 0,
"aria-valuemax": 5,
"aria-valuenow": l.value,
tabindex: e.disabled ? -1 : 0,
onKeydown: W
}, [
- (Ie(), he(Xt, null, Cn(5, (z) => ne("button", {
- key: z,
+ (be(), Ce(Nt, null, Cn(5, (T) => ie("button", {
+ key: T,
type: "button",
class: "mjr-rating-star",
- style: vt({
- color: p(z),
- transform: M(z),
+ style: Lt({
+ color: p(T),
+ transform: S(T),
fontSize: "16px",
background: "none",
border: "none",
@@ -40790,22 +40848,22 @@ const Qj = {
padding: "0",
transition: "all 0.15s ease"
}),
- "aria-label": Ge(m)("rating.setN", { n: z }),
- "aria-pressed": z <= l.value,
+ "aria-label": xe(m)("rating.setN", { n: T }),
+ "aria-pressed": T <= l.value,
disabled: e.disabled,
- onClick: (x) => v(z),
- onMouseenter: (x) => C(z),
- onMouseleave: S
- }, " β
", 44, xv)), 64))
- ], 44, Gv));
+ onClick: (v) => L(T),
+ onMouseenter: (v) => h(T),
+ onMouseleave: G
+ }, " β
", 44, Lv)), 64))
+ ], 44, vv));
}
-}, vv = /* @__PURE__ */ jr(jv, [["__scopeId", "data-v-6d012325"]]), Lv = {
+}, Yv = /* @__PURE__ */ Vr(Vv, [["__scopeId", "data-v-6d012325"]]), kv = {
class: "mjr-sidebar-content",
style: { flex: "1", "overflow-y": "auto", padding: "10px 12px", display: "flex", "flex-direction": "column", gap: "16px" }
-}, Yv = {
+}, Xv = {
class: "mjr-sidebar-rating-tags",
style: { display: "flex", "flex-direction": "column", gap: "10px" }
-}, Vv = { style: { display: "flex", "align-items": "center", gap: "8px" } }, kv = { style: { display: "flex", "flex-direction": "column", gap: "4px" } }, Xv = {
+}, Nv = { style: { display: "flex", "align-items": "center", gap: "8px" } }, Rv = { style: { display: "flex", "flex-direction": "column", gap: "4px" } }, Fv = {
__name: "AssetSidebarContent",
props: {
asset: { type: Object, required: !0 },
@@ -40814,16 +40872,16 @@ const Qj = {
},
emits: ["close"],
setup(e, { emit: t }) {
- const n = e, i = t, o = Je(() => {
+ const n = e, i = t, o = ze(() => {
var s;
return String(((s = n.asset) == null ? void 0 : s.kind) || "").toLowerCase() === "folder";
- }), r = Je(() => {
+ }), r = ze(() => {
var s;
return Number((s = n.asset) == null ? void 0 : s.rating) || 0;
- }), l = Je(() => {
+ }), l = ze(() => {
var s;
return ((s = n.asset) == null ? void 0 : s.tags) || [];
- }), a = Je(() => {
+ }), a = ze(() => {
var s;
try {
const d = Xn();
@@ -40836,117 +40894,117 @@ const Qj = {
var s;
if (n.sidebar)
try {
- Jb(n.sidebar);
+ Tb(n.sidebar);
} catch (d) {
(s = console.debug) == null || s.call(console, d);
}
else
i("close");
}
- return (s, d) => (Ie(), he(Xt, null, [
- fn(Xx, {
+ return (s, d) => (be(), Ce(Nt, null, [
+ fn(Fx, {
asset: e.asset,
onClose: c
}, null, 8, ["asset"]),
- ne("div", Lv, [
- o.value ? (Ie(), Ei(Sv, {
+ ie("div", kv, [
+ o.value ? (be(), Pi(jv, {
key: 0,
asset: e.asset
- }, null, 8, ["asset"])) : (Ie(), he(Xt, { key: 1 }, [
- fn(Ux, {
+ }, null, 8, ["asset"])) : (be(), Ce(Nt, { key: 1 }, [
+ fn(Ex, {
asset: e.asset,
"show-preview-thumb": a.value
}, null, 8, ["asset", "show-preview-thumb"]),
- ne("div", Yv, [
- ne("div", Vv, [
- d[0] || (d[0] = ne("span", { style: { "font-size": "0.8em", opacity: "0.6", "min-width": "44px" } }, "Rating", -1)),
- fn(vv, {
+ ie("div", Xv, [
+ ie("div", Nv, [
+ d[0] || (d[0] = ie("span", { style: { "font-size": "0.8em", opacity: "0.6", "min-width": "44px" } }, "Rating", -1)),
+ fn(Yv, {
asset: e.asset,
"model-value": r.value
}, null, 8, ["asset", "model-value"])
]),
- ne("div", kv, [
- d[1] || (d[1] = ne("span", { style: { "font-size": "0.8em", opacity: "0.6" } }, "Tags", -1)),
- fn(dd, {
+ ie("div", Rv, [
+ d[1] || (d[1] = ie("span", { style: { "font-size": "0.8em", opacity: "0.6" } }, "Tags", -1)),
+ fn(md, {
asset: e.asset,
"model-value": l.value
}, null, 8, ["asset", "model-value"])
])
]),
- fn(qx, { asset: e.asset }, null, 8, ["asset"]),
- fn(Kj, { asset: e.asset }, null, 8, ["asset"]),
- fn(Zv, { asset: e.asset }, null, 8, ["asset"])
+ fn(_x, { asset: e.asset }, null, 8, ["asset"]),
+ fn(Hj, { asset: e.asset }, null, 8, ["asset"]),
+ fn(wv, { asset: e.asset }, null, 8, ["asset"])
], 64))
])
], 64));
}
-}, Nv = {
+}, Ov = {
key: 1,
class: "mjr-sidebar-placeholder",
style: { flex: "1", display: "flex", "align-items": "center", "justify-content": "center", padding: "20px", opacity: "0.4", "font-size": "0.85em", "text-align": "center" }
-}, Rv = {
+}, zv = {
__name: "SidebarSection",
setup(e, { expose: t }) {
- const n = Ae(null), { activeAsset: i, onUpdateCallback: o } = P0();
+ const n = Ae(null), { activeAsset: i, onUpdateCallback: o } = $0();
return Dn(() => {
var I, p;
const r = n.value;
if (!r) return;
r.style.flex = "0 0 0px", r.style.width = "0", r.style.maxWidth = "0", r.style.minWidth = "0", r.style.overflow = "hidden", r.style.borderLeft = "none", r.style.borderRight = "none", r._requestSeq = 0, r._currentAsset = null, r._currentFullAsset = null, r._ratingTagsSection = null;
- const l = (M) => {
- var A, g, h;
- const Z = ((A = r._currentAsset) == null ? void 0 : A.id) ?? ((g = r._currentFullAsset) == null ? void 0 : g.id) ?? ((h = i.value) == null ? void 0 : h.id);
- return Z == null || M == null ? !1 : String(Z) === String(M);
- }, a = (M) => {
- var h;
- const Z = (M == null ? void 0 : M.detail) || {}, A = Z.assetId ?? Z.id ?? null, g = Number(Z.rating);
- if (!(!l(A) || !Number.isFinite(g))) {
- Is({ rating: g }, o.value);
+ const l = (S) => {
+ var C, g, Z;
+ const A = ((C = r._currentAsset) == null ? void 0 : C.id) ?? ((g = r._currentFullAsset) == null ? void 0 : g.id) ?? ((Z = i.value) == null ? void 0 : Z.id);
+ return A == null || S == null ? !1 : String(A) === String(S);
+ }, a = (S) => {
+ var Z;
+ const A = (S == null ? void 0 : S.detail) || {}, C = A.assetId ?? A.id ?? null, g = Number(A.rating);
+ if (!(!l(C) || !Number.isFinite(g))) {
+ ps({ rating: g }, o.value);
try {
r._currentAsset && (r._currentAsset.rating = g), r._currentFullAsset && (r._currentFullAsset.rating = g);
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
}
- }, c = (M) => {
- var h;
- const Z = (M == null ? void 0 : M.detail) || {}, A = Z.assetId ?? Z.id ?? null, g = Array.isArray(Z.tags) ? Z.tags : null;
- if (!(!l(A) || !g)) {
- Is({ tags: g }, o.value);
+ }, c = (S) => {
+ var Z;
+ const A = (S == null ? void 0 : S.detail) || {}, C = A.assetId ?? A.id ?? null, g = Array.isArray(A.tags) ? A.tags : null;
+ if (!(!l(C) || !g)) {
+ ps({ tags: g }, o.value);
try {
r._currentAsset && (r._currentAsset.tags = g), r._currentFullAsset && (r._currentFullAsset.tags = g);
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
}
}, s = [], d = typeof AbortController < "u" ? new AbortController() : null;
r._mjrAbortController = d, r.dispose = () => {
- var M, Z, A;
+ var S, A, C;
try {
- (M = d == null ? void 0 : d.abort) == null || M.call(d);
+ (S = d == null ? void 0 : d.abort) == null || S.call(d);
} catch (g) {
- (Z = console.debug) == null || Z.call(console, g);
+ (A = console.debug) == null || A.call(console, g);
}
for (const g of s.splice(0))
try {
g == null || g();
- } catch (h) {
- (A = console.debug) == null || A.call(console, h);
+ } catch (Z) {
+ (C = console.debug) == null || C.call(console, Z);
}
}, r._dispose = r.dispose;
const u = d ? { signal: d.signal } : void 0;
try {
- window.addEventListener(Ri, a, u), window.addEventListener(Uo, c, u);
- } catch (M) {
- (I = console.debug) == null || I.call(console, M);
+ window.addEventListener(Fi, a, u), window.addEventListener(Do, c, u);
+ } catch (S) {
+ (I = console.debug) == null || I.call(console, S);
try {
- window.addEventListener(Ri, a), window.addEventListener(Uo, c), s.push(
- () => window.removeEventListener(Ri, a)
+ window.addEventListener(Fi, a), window.addEventListener(Do, c), s.push(
+ () => window.removeEventListener(Fi, a)
), s.push(
- () => window.removeEventListener(Uo, c)
+ () => window.removeEventListener(Do, c)
);
- } catch (Z) {
- (p = console.debug) == null || p.call(console, Z);
+ } catch (A) {
+ (p = console.debug) == null || p.call(console, A);
}
}
}), _n(() => {
@@ -40963,264 +41021,264 @@ const Qj = {
get sidebar() {
return n.value;
}
- }), (r, l) => (Ie(), he("div", {
+ }), (r, l) => (be(), Ce("div", {
ref_key: "sidebarEl",
ref: n,
class: "mjr-inline-sidebar",
"data-position": "right",
style: { display: "flex", "flex-direction": "column", background: "var(--mjr-surface-1,#262626)", transition: "width 140ms ease,max-width 140ms ease,flex-basis 140ms ease,border-color 140ms ease", contain: "layout paint style" }
}, [
- Ge(i) ? (Ie(), Ei(Xv, {
+ xe(i) ? (be(), Pi(Fv, {
key: 0,
- asset: Ge(i),
- "on-update": Ge(o),
+ asset: xe(i),
+ "on-update": xe(o),
sidebar: n.value
- }, null, 8, ["asset", "on-update", "sidebar"])) : (Ie(), he("div", Nv, Ye(Ge(m)("sidebar.placeholderSelectAsset", "Select an asset to view details")), 1))
+ }, null, 8, ["asset", "on-update", "sidebar"])) : (be(), Ce("div", Ov, Ye(xe(m)("sidebar.placeholderSelectAsset", "Select an asset to view details")), 1))
], 512));
}
-}, Fv = ["aria-label"], Ov = { class: "mjr-context-menu-title" }, zv = { class: "mjr-context-menu-item-left" }, Jv = {
+}, Jv = ["aria-label"], Tv = { class: "mjr-context-menu-title" }, Bv = { class: "mjr-context-menu-item-left" }, Uv = {
key: 0,
class: "mjr-context-menu-note"
-}, Tv = {
+}, Kv = {
key: 1,
class: "mjr-context-menu-note is-error"
-}, Bv = {
+}, Dv = {
key: 2,
class: "mjr-context-menu-note"
-}, Uv = ["onClick"], Kv = { class: "mjr-context-menu-item-left" }, Dv = {
+}, Ev = ["onClick"], Hv = { class: "mjr-context-menu-item-left" }, qv = {
key: 0,
class: "mjr-context-menu-hint"
-}, Ev = {
+}, Pv = {
__name: "AddToCollectionMenu",
setup(e) {
const t = Ae(null), n = Ae(!1), i = Ae([]), o = Ae("");
let r = 0, l = null;
- const a = Je(() => ({
+ const a = ze(() => ({
position: "fixed",
left: `${Math.round(Number(Tn.x) || 0)}px`,
top: `${Math.round(Number(Tn.y) || 0)}px`,
display: "block",
zIndex: "10004"
- })), c = Je(() => Tn.assets.length || 0), s = Je(
+ })), c = ze(() => Tn.assets.length || 0), s = ze(
() => m("ctx.addToCollection", "Add to collection") + (c.value > 1 ? ` (${c.value})` : "")
);
- function d({ collectionName: h, selectedCount: f, addRes: b }) {
- var k, G, z;
- const v = Number(((k = b == null ? void 0 : b.data) == null ? void 0 : k.added) ?? 0) || 0, C = Number(((G = b == null ? void 0 : b.data) == null ? void 0 : G.skipped_existing) ?? 0) || 0, S = Number(((z = b == null ? void 0 : b.data) == null ? void 0 : z.skipped_duplicate) ?? 0) || 0, W = String(h || "").trim() || m("label.collection", "collection");
+ function d({ collectionName: Z, selectedCount: f, addRes: b }) {
+ var X, x, T;
+ const L = Number(((X = b == null ? void 0 : b.data) == null ? void 0 : X.added) ?? 0) || 0, h = Number(((x = b == null ? void 0 : b.data) == null ? void 0 : x.skipped_existing) ?? 0) || 0, G = Number(((T = b == null ? void 0 : b.data) == null ? void 0 : T.skipped_duplicate) ?? 0) || 0, W = String(Z || "").trim() || m("label.collection", "collection");
let y = m("msg.collectionAdd.added", 'Added {added} item(s) to "{name}".', {
- added: v,
+ added: L,
name: W
});
- return C > 0 && (y += `
+ return h > 0 && (y += `
${m(
"msg.collectionAdd.skippedExisting",
"Skipped {count} item(s): already present in the collection.",
- { count: C }
- )}`), S > 0 && (y += `
+ { count: h }
+ )}`), G > 0 && (y += `
${m(
"msg.collectionAdd.skippedDuplicate",
"Ignored {count} duplicate(s) in selection.",
- { count: S }
- )}`), v === 0 && C > 0 && f > 0 && (y = m(
+ { count: G }
+ )}`), L === 0 && h > 0 && f > 0 && (y = m(
"msg.collectionAdd.noneAddedExisting",
'No new items added to "{name}" (all exist).',
{ name: W }
)), y;
}
function u() {
- const h = t.value;
- if (!Tn.open || !h) return;
- const f = h.getBoundingClientRect(), b = Number(window.innerWidth || 0), v = Number(window.innerHeight || 0);
- let C = Number(Tn.x) || 0, S = Number(Tn.y) || 0;
- C + f.width > b && (C = Math.max(8, b - f.width - 10)), S + f.height > v && (S = Math.max(8, v - f.height - 10)), C < 8 && (C = 8), S < 8 && (S = 8), Tn.x = C, Tn.y = S;
+ const Z = t.value;
+ if (!Tn.open || !Z) return;
+ const f = Z.getBoundingClientRect(), b = Number(window.innerWidth || 0), L = Number(window.innerHeight || 0);
+ let h = Number(Tn.x) || 0, G = Number(Tn.y) || 0;
+ h + f.width > b && (h = Math.max(8, b - f.width - 10)), G + f.height > L && (G = Math.max(8, L - f.height - 10)), h < 8 && (h = 8), G < 8 && (G = 8), Tn.x = h, Tn.y = G;
}
async function I() {
- var f, b, v, C, S;
- const h = ++r;
+ var f, b, L, h, G;
+ const Z = ++r;
n.value = !0, o.value = "";
try {
- const W = await Xg();
- if (h !== r) return;
+ const W = await Ng();
+ if (Z !== r) return;
i.value = Array.isArray(W == null ? void 0 : W.data) ? W.data : [];
} catch (W) {
- if (console.error("[AddToCollectionMenu.vue] listCollections failed:", W), h !== r) return;
+ if (console.error("[AddToCollectionMenu.vue] listCollections failed:", W), Z !== r) return;
i.value = [], o.value = m("toast.failedLoadCollections", "Failed to load collections.");
} finally {
- if (h === r) {
- n.value = !1, await Ao(), u();
+ if (Z === r) {
+ n.value = !1, await wo(), u();
try {
- (C = (v = (b = (f = t.value) == null ? void 0 : f.querySelector) == null ? void 0 : b.call(f, '.mjr-context-menu-item:not([aria-disabled="true"])')) == null ? void 0 : v.focus) == null || C.call(v);
+ (h = (L = (b = (f = t.value) == null ? void 0 : f.querySelector) == null ? void 0 : b.call(f, '.mjr-context-menu-item:not([aria-disabled="true"])')) == null ? void 0 : L.focus) == null || h.call(L);
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
}
}
}
- async function p(h, f) {
+ async function p(Z, f) {
const b = Array.isArray(Tn.assets) ? Tn.assets : [];
- Ho();
- const v = await Sa(h, b);
- if (!(v != null && v.ok)) {
- Ce(
- (v == null ? void 0 : v.error) || m("toast.failedAddAssetsToCollection", "Failed to add assets to collection."),
+ Po();
+ const L = await Ga(Z, b);
+ if (!(L != null && L.ok)) {
+ Ze(
+ (L == null ? void 0 : L.error) || m("toast.failedAddAssetsToCollection", "Failed to add assets to collection."),
"error"
);
return;
}
- Ce(
+ Ze(
d({
collectionName: f,
selectedCount: b.length,
- addRes: v
+ addRes: L
}),
"success",
4e3
);
}
- async function M() {
- var S, W;
- const h = Array.isArray(Tn.assets) ? Tn.assets : [];
- Ho();
- const f = await ji(
+ async function S() {
+ var G, W;
+ const Z = Array.isArray(Tn.assets) ? Tn.assets : [];
+ Po();
+ const f = await Vi(
m("dialog.createCollection", "Create collection"),
m("dialog.collectionPlaceholder", "My collection")
);
if (!f) return;
- const b = await ta(f);
+ const b = await na(f);
if (!(b != null && b.ok)) {
- Ce(
+ Ze(
(b == null ? void 0 : b.error) || m("toast.failedCreateCollectionDot", "Failed to create collection."),
"error"
);
return;
}
- const v = (S = b.data) == null ? void 0 : S.id, C = await Sa(v, h);
- if (!(C != null && C.ok)) {
- Ce(
- (C == null ? void 0 : C.error) || m("toast.failedAddAssetsToCollection", "Failed to add assets to collection."),
+ const L = (G = b.data) == null ? void 0 : G.id, h = await Ga(L, Z);
+ if (!(h != null && h.ok)) {
+ Ze(
+ (h == null ? void 0 : h.error) || m("toast.failedAddAssetsToCollection", "Failed to add assets to collection."),
"error"
);
return;
}
- Ce(
+ Ze(
d({
collectionName: ((W = b.data) == null ? void 0 : W.name) || f,
- selectedCount: h.length,
- addRes: C
+ selectedCount: Z.length,
+ addRes: h
}),
"success",
4e3
);
}
- function Z(h) {
+ function A(Z) {
var f, b;
- (b = (f = t.value) == null ? void 0 : f.contains) != null && b.call(f, h == null ? void 0 : h.target) || Ho();
+ (b = (f = t.value) == null ? void 0 : f.contains) != null && b.call(f, Z == null ? void 0 : Z.target) || Po();
}
- function A(h) {
- (h == null ? void 0 : h.key) === "Escape" && Ho();
+ function C(Z) {
+ (Z == null ? void 0 : Z.key) === "Escape" && Po();
}
function g() {
- Ho();
+ Po();
}
- return an(
+ return cn(
() => Tn.open,
- async (h) => {
- h && (i.value = [], await I());
+ async (Z) => {
+ Z && (i.value = [], await I());
}
), Dn(() => {
l = new AbortController();
- const h = {
+ const Z = {
capture: !0,
passive: !0,
signal: l.signal
};
- window.addEventListener("pointerdown", Z, h), window.addEventListener("keydown", A, {
+ window.addEventListener("pointerdown", A, Z), window.addEventListener("keydown", C, {
capture: !0,
signal: l.signal
- }), window.addEventListener("scroll", g, h), window.addEventListener("wheel", g, h), window.addEventListener("resize", g, {
+ }), window.addEventListener("scroll", g, Z), window.addEventListener("wheel", g, Z), window.addEventListener("resize", g, {
passive: !0,
signal: l.signal
}), window.addEventListener("mjr-close-all-menus", g, {
signal: l.signal
});
}), _n(() => {
- var h;
+ var Z;
try {
l == null || l.abort();
} catch (f) {
- (h = console.debug) == null || h.call(console, f);
+ (Z = console.debug) == null || Z.call(console, f);
}
- l = null, Ho();
- }), (h, f) => (Ie(), Ei(Ls, { to: "body" }, [
- Ge(Tn).open ? (Ie(), he("div", {
+ l = null, Po();
+ }), (Z, f) => (be(), Pi(Ys, { to: "body" }, [
+ xe(Tn).open ? (be(), Ce("div", {
key: 0,
ref_key: "menuRef",
ref: t,
class: "mjr-add-to-collection-menu mjr-context-menu",
- style: vt(a.value),
+ style: Lt(a.value),
role: "menu",
"aria-label": s.value
}, [
- ne("div", Ov, Ye(s.value), 1),
- ne("button", {
+ ie("div", Tv, Ye(s.value), 1),
+ ie("button", {
type: "button",
class: "mjr-context-menu-item",
role: "menuitem",
- onClick: M
+ onClick: S
}, [
- ne("span", zv, [
- f[0] || (f[0] = ne("i", { class: "pi pi-plus" }, null, -1)),
- ne("span", null, Ye(Ge(m)("dialog.createCollection", "Create collection")) + "...", 1)
+ ie("span", Bv, [
+ f[0] || (f[0] = ie("i", { class: "pi pi-plus" }, null, -1)),
+ ie("span", null, Ye(xe(m)("dialog.createCollection", "Create collection")) + "...", 1)
])
]),
- f[2] || (f[2] = ne("div", { class: "mjr-context-menu-separator" }, null, -1)),
- n.value ? (Ie(), he("div", Jv, Ye(Ge(m)("msg.loadingCollections", "Loading collections...")), 1)) : o.value ? (Ie(), he("div", Tv, Ye(o.value), 1)) : i.value.length ? yt("", !0) : (Ie(), he("div", Bv, Ye(Ge(m)("msg.noCollections", "No collections yet.")), 1)),
- (Ie(!0), he(Xt, null, Cn(i.value, (b) => (Ie(), he("button", {
+ f[2] || (f[2] = ie("div", { class: "mjr-context-menu-separator" }, null, -1)),
+ n.value ? (be(), Ce("div", Uv, Ye(xe(m)("msg.loadingCollections", "Loading collections...")), 1)) : o.value ? (be(), Ce("div", Kv, Ye(o.value), 1)) : i.value.length ? ft("", !0) : (be(), Ce("div", Dv, Ye(xe(m)("msg.noCollections", "No collections yet.")), 1)),
+ (be(!0), Ce(Nt, null, Cn(i.value, (b) => (be(), Ce("button", {
key: String((b == null ? void 0 : b.id) || ""),
type: "button",
class: "mjr-context-menu-item",
role: "menuitem",
- onClick: (v) => p(String((b == null ? void 0 : b.id) || ""), String((b == null ? void 0 : b.name) || (b == null ? void 0 : b.id) || ""))
+ onClick: (L) => p(String((b == null ? void 0 : b.id) || ""), String((b == null ? void 0 : b.name) || (b == null ? void 0 : b.id) || ""))
}, [
- ne("span", Kv, [
- f[1] || (f[1] = ne("i", { class: "pi pi-bookmark" }, null, -1)),
- ne("span", null, Ye(String((b == null ? void 0 : b.name) || (b == null ? void 0 : b.id) || "")), 1)
+ ie("span", Hv, [
+ f[1] || (f[1] = ie("i", { class: "pi pi-bookmark" }, null, -1)),
+ ie("span", null, Ye(String((b == null ? void 0 : b.name) || (b == null ? void 0 : b.id) || "")), 1)
]),
- Number((b == null ? void 0 : b.count) || 0) > 0 ? (Ie(), he("span", Dv, Ye(Number((b == null ? void 0 : b.count) || 0)), 1)) : yt("", !0)
- ], 8, Uv))), 128))
- ], 12, Fv)) : yt("", !0)
+ Number((b == null ? void 0 : b.count) || 0) > 0 ? (be(), Ce("span", qv, Ye(Number((b == null ? void 0 : b.count) || 0)), 1)) : ft("", !0)
+ ], 8, Ev))), 128))
+ ], 12, Jv)) : ft("", !0)
]));
}
-}, Hv = {
+}, Qv = {
key: 0,
class: "mjr-context-menu-separator"
-}, qv = ["aria-disabled", "tabindex", "onClick", "onMouseenter", "onMouseleave"], Pv = { class: "mjr-context-menu-item-left" }, Qv = { class: "mjr-context-menu-item-right" }, _v = {
+}, _v = ["aria-disabled", "tabindex", "onClick", "onMouseenter", "onMouseleave"], $v = { class: "mjr-context-menu-item-left" }, eL = { class: "mjr-context-menu-item-right" }, tL = {
key: 0,
class: "mjr-context-menu-hint"
-}, $v = {
+}, nL = {
key: 1,
class: "mjr-context-menu-submenu-arrow"
-}, eL = {
+}, iL = {
key: 0,
class: "mjr-context-menu-separator"
-}, tL = ["aria-disabled", "tabindex", "onClick"], nL = { class: "mjr-context-menu-item-left" }, iL = {
+}, oL = ["aria-disabled", "tabindex", "onClick"], rL = { class: "mjr-context-menu-item-left" }, lL = {
key: 0,
class: "mjr-context-menu-hint"
-}, oL = {
+}, aL = {
__name: "GridContextMenu",
setup(e) {
const t = Ae(null), n = Ae(null), i = Ae(null);
let o = null, r = null;
- const l = Je(() => s(Dt.main, 10031)), a = Je(() => s(Dt.submenu, 10032)), c = Je(() => s(Dt.tags, 10033));
- function s(G, z) {
+ const l = ze(() => s(Dt.main, 10031)), a = ze(() => s(Dt.submenu, 10032)), c = ze(() => s(Dt.tags, 10033));
+ function s(x, T) {
return {
position: "fixed",
- left: `${Math.round(Number(G == null ? void 0 : G.x) || 0)}px`,
- top: `${Math.round(Number(G == null ? void 0 : G.y) || 0)}px`,
+ left: `${Math.round(Number(x == null ? void 0 : x.x) || 0)}px`,
+ top: `${Math.round(Number(x == null ? void 0 : x.y) || 0)}px`,
display: "block",
- zIndex: String(z)
+ zIndex: String(T)
};
}
function d() {
@@ -41228,66 +41286,66 @@ ${m(
}
function u() {
d(), o = setTimeout(() => {
- mr();
+ Ir();
}, 180);
}
- function I(G, z) {
- if (!(G != null && G.open) || !z) return;
- const x = z.getBoundingClientRect(), w = Number(window.innerWidth || 0), X = Number(window.innerHeight || 0);
- let V = Number(G.x) || 0, R = Number(G.y) || 0;
- V + x.width > w && (V = Math.max(8, w - x.width - 10)), R + x.height > X && (R = Math.max(8, X - x.height - 10)), V < 8 && (V = 8), R < 8 && (R = 8), G.x = V, G.y = R;
+ function I(x, T) {
+ if (!(x != null && x.open) || !T) return;
+ const v = T.getBoundingClientRect(), w = Number(window.innerWidth || 0), R = Number(window.innerHeight || 0);
+ let Y = Number(x.x) || 0, F = Number(x.y) || 0;
+ Y + v.width > w && (Y = Math.max(8, w - v.width - 10)), F + v.height > R && (F = Math.max(8, R - v.height - 10)), Y < 8 && (Y = 8), F < 8 && (F = 8), x.x = Y, x.y = F;
}
- async function p(G, z) {
- await Ao(), I(G, (z == null ? void 0 : z.value) || null);
+ async function p(x, T) {
+ await wo(), I(x, (T == null ? void 0 : T.value) || null);
}
- function M(G) {
- var z, x, w, X, V;
+ function S(x) {
+ var T, v, w, R, Y;
try {
- (X = (w = (x = (z = G == null ? void 0 : G.value) == null ? void 0 : z.querySelector) == null ? void 0 : x.call(z, '.mjr-context-menu-item:not([aria-disabled="true"])')) == null ? void 0 : w.focus) == null || X.call(w);
- } catch (R) {
- (V = console.debug) == null || V.call(console, R);
+ (R = (w = (v = (T = x == null ? void 0 : x.value) == null ? void 0 : T.querySelector) == null ? void 0 : v.call(T, '.mjr-context-menu-item:not([aria-disabled="true"])')) == null ? void 0 : w.focus) == null || R.call(w);
+ } catch (F) {
+ (Y = console.debug) == null || Y.call(console, F);
}
}
- function Z(G, z) {
- var X;
- if (!Array.isArray(G == null ? void 0 : G.submenu) || !G.submenu.length) {
- mr();
+ function A(x, T) {
+ var R;
+ if (!Array.isArray(x == null ? void 0 : x.submenu) || !x.submenu.length) {
+ Ir();
return;
}
d();
- const x = z == null ? void 0 : z.currentTarget, w = (X = x == null ? void 0 : x.getBoundingClientRect) == null ? void 0 : X.call(x);
- yW({
+ const v = T == null ? void 0 : T.currentTarget, w = (R = v == null ? void 0 : v.getBoundingClientRect) == null ? void 0 : R.call(v);
+ CW({
x: Math.round(((w == null ? void 0 : w.right) || Dt.main.x || 0) + 6),
y: Math.round(((w == null ? void 0 : w.top) || Dt.main.y || 0) - 4),
- items: G.submenu,
- title: G.label || ""
+ items: x.submenu,
+ title: x.label || ""
});
}
- async function A(G, z, x = "main") {
+ async function C(x, T, v = "main") {
var w;
- if (!(!G || G.type !== "item" || G.disabled)) {
- if (Array.isArray(G.submenu) && G.submenu.length) {
- Z(G, z);
+ if (!(!x || x.type !== "item" || x.disabled)) {
+ if (Array.isArray(x.submenu) && x.submenu.length) {
+ A(x, T);
return;
}
try {
- await ((w = G.action) == null ? void 0 : w.call(G));
- } catch (X) {
- console.error("[GridContextMenu.vue] Action failed:", X);
+ await ((w = x.action) == null ? void 0 : w.call(x));
+ } catch (R) {
+ console.error("[GridContextMenu.vue] Action failed:", R);
} finally {
- G.closeOnSelect !== !1 ? vo() : x === "submenu" && mr();
+ x.closeOnSelect !== !1 ? Vo() : v === "submenu" && Ir();
}
}
}
- function g(G, z) {
- if (Array.isArray(G == null ? void 0 : G.submenu) && G.submenu.length) {
- Z(G, z);
+ function g(x, T) {
+ if (Array.isArray(x == null ? void 0 : x.submenu) && x.submenu.length) {
+ A(x, T);
return;
}
- mr();
+ Ir();
}
- function h(G) {
- Array.isArray(G == null ? void 0 : G.submenu) && G.submenu.length && u();
+ function Z(x) {
+ Array.isArray(x == null ? void 0 : x.submenu) && x.submenu.length && u();
}
function f() {
d();
@@ -41295,90 +41353,90 @@ ${m(
function b() {
u();
}
- function v(G) {
- var w, X, V, R, j, L;
- const z = G == null ? void 0 : G.target;
- ((X = (w = t.value) == null ? void 0 : w.contains) == null ? void 0 : X.call(w, z)) || ((R = (V = n.value) == null ? void 0 : V.contains) == null ? void 0 : R.call(V, z)) || ((L = (j = i.value) == null ? void 0 : j.contains) == null ? void 0 : L.call(j, z)) || vo();
+ function L(x) {
+ var w, R, Y, F, N, V;
+ const T = x == null ? void 0 : x.target;
+ ((R = (w = t.value) == null ? void 0 : w.contains) == null ? void 0 : R.call(w, T)) || ((F = (Y = n.value) == null ? void 0 : Y.contains) == null ? void 0 : F.call(Y, T)) || ((V = (N = i.value) == null ? void 0 : N.contains) == null ? void 0 : V.call(N, T)) || Vo();
}
- function C(G) {
- (G == null ? void 0 : G.key) === "Escape" && vo();
+ function h(x) {
+ (x == null ? void 0 : x.key) === "Escape" && Vo();
}
- function S() {
- vo();
+ function G() {
+ Vo();
}
- function W(G) {
- var z;
- String(((z = G == null ? void 0 : G.detail) == null ? void 0 : z.source) || "") !== "grid" && vo();
+ function W(x) {
+ var T;
+ String(((T = x == null ? void 0 : x.detail) == null ? void 0 : T.source) || "") !== "grid" && Vo();
}
- function y(G) {
- const z = Dt.tags.asset;
- z && (z.tags = Array.isArray(G) ? [...G] : []);
+ function y(x) {
+ const T = Dt.tags.asset;
+ T && (T.tags = Array.isArray(x) ? [...x] : []);
}
- function k(G) {
- var x, w, X;
- const z = Array.isArray(G == null ? void 0 : G.tags) ? G.tags : [];
+ function X(x) {
+ var v, w, R;
+ const T = Array.isArray(x == null ? void 0 : x.tags) ? x.tags : [];
try {
- (w = (x = Dt.tags).onChanged) == null || w.call(x, z);
- } catch (V) {
- (X = console.debug) == null || X.call(console, V);
+ (w = (v = Dt.tags).onChanged) == null || w.call(v, T);
+ } catch (Y) {
+ (R = console.debug) == null || R.call(console, Y);
}
}
- return an(
+ return cn(
() => Dt.main.open,
- async (G) => {
- G && (await p(Dt.main, t), M(t));
+ async (x) => {
+ x && (await p(Dt.main, t), S(t));
}
- ), an(
+ ), cn(
() => Dt.submenu.open,
- async (G) => {
- G && (await p(Dt.submenu, n), M(n));
+ async (x) => {
+ x && (await p(Dt.submenu, n), S(n));
}
- ), an(
+ ), cn(
() => Dt.tags.open,
- async (G) => {
- G && await p(Dt.tags, i);
+ async (x) => {
+ x && await p(Dt.tags, i);
}
), Dn(() => {
r = new AbortController();
- const G = {
+ const x = {
capture: !0,
passive: !0,
signal: r.signal
};
- window.addEventListener("pointerdown", v, G), window.addEventListener("keydown", C, {
+ window.addEventListener("pointerdown", L, x), window.addEventListener("keydown", h, {
capture: !0,
signal: r.signal
- }), window.addEventListener("scroll", S, G), window.addEventListener("wheel", S, G), window.addEventListener("resize", S, {
+ }), window.addEventListener("scroll", G, x), window.addEventListener("wheel", G, x), window.addEventListener("resize", G, {
passive: !0,
signal: r.signal
}), window.addEventListener("mjr-close-all-menus", W, {
signal: r.signal
});
}), _n(() => {
- var G;
+ var x;
d();
try {
r == null || r.abort();
- } catch (z) {
- (G = console.debug) == null || G.call(console, z);
+ } catch (T) {
+ (x = console.debug) == null || x.call(console, T);
}
- r = null, vo();
- }), (G, z) => {
- var x;
- return Ie(), Ei(Ls, { to: "body" }, [
- Ge(Dt).main.open ? (Ie(), he("div", {
+ r = null, Vo();
+ }), (x, T) => {
+ var v;
+ return be(), Pi(Ys, { to: "body" }, [
+ xe(Dt).main.open ? (be(), Ce("div", {
key: 0,
ref_key: "mainMenuRef",
ref: t,
class: "mjr-grid-context-menu mjr-context-menu",
- style: vt(l.value),
+ style: Lt(l.value),
role: "menu",
"aria-label": "Grid context menu"
}, [
- (Ie(!0), he(Xt, null, Cn(Ge(Dt).main.items, (w) => (Ie(), he(Xt, {
+ (be(!0), Ce(Nt, null, Cn(xe(Dt).main.items, (w) => (be(), Ce(Nt, {
key: w.id
}, [
- w.type === "separator" ? (Ie(), he("div", Hv)) : (Ie(), he("button", {
+ w.type === "separator" ? (be(), Ce("div", Qv)) : (be(), Ce("button", {
key: 1,
type: "button",
class: Zn(["mjr-context-menu-item", {
@@ -41388,89 +41446,89 @@ ${m(
role: "menuitem",
"aria-disabled": w.disabled ? "true" : "false",
tabindex: w.disabled ? -1 : 0,
- onClick: (X) => A(w, X),
- onMouseenter: (X) => g(w, X),
- onMouseleave: (X) => h(w)
+ onClick: (R) => C(w, R),
+ onMouseenter: (R) => g(w, R),
+ onMouseleave: (R) => Z(w)
}, [
- ne("span", Pv, [
- w.iconClass ? (Ie(), he("i", {
+ ie("span", $v, [
+ w.iconClass ? (be(), Ce("i", {
key: 0,
class: Zn(w.iconClass)
- }, null, 2)) : yt("", !0),
- ne("span", null, Ye(w.label), 1)
+ }, null, 2)) : ft("", !0),
+ ie("span", null, Ye(w.label), 1)
]),
- ne("span", Qv, [
- w.rightHint ? (Ie(), he("span", _v, Ye(w.rightHint), 1)) : yt("", !0),
- Array.isArray(w.submenu) && w.submenu.length ? (Ie(), he("span", $v, " > ")) : yt("", !0)
+ ie("span", eL, [
+ w.rightHint ? (be(), Ce("span", tL, Ye(w.rightHint), 1)) : ft("", !0),
+ Array.isArray(w.submenu) && w.submenu.length ? (be(), Ce("span", nL, " > ")) : ft("", !0)
])
- ], 42, qv))
+ ], 42, _v))
], 64))), 128))
- ], 4)) : yt("", !0),
- Ge(Dt).submenu.open ? (Ie(), he("div", {
+ ], 4)) : ft("", !0),
+ xe(Dt).submenu.open ? (be(), Ce("div", {
key: 1,
ref_key: "submenuRef",
ref: n,
class: "mjr-grid-rating-submenu mjr-context-menu",
- style: vt(a.value),
+ style: Lt(a.value),
role: "menu",
"aria-label": "Grid context submenu",
onMouseenter: f,
onMouseleave: b
}, [
- (Ie(!0), he(Xt, null, Cn(Ge(Dt).submenu.items, (w) => (Ie(), he(Xt, {
+ (be(!0), Ce(Nt, null, Cn(xe(Dt).submenu.items, (w) => (be(), Ce(Nt, {
key: w.id
}, [
- w.type === "separator" ? (Ie(), he("div", eL)) : (Ie(), he("button", {
+ w.type === "separator" ? (be(), Ce("div", iL)) : (be(), Ce("button", {
key: 1,
type: "button",
class: Zn(["mjr-context-menu-item", { "is-disabled": w.disabled }]),
role: "menuitem",
"aria-disabled": w.disabled ? "true" : "false",
tabindex: w.disabled ? -1 : 0,
- onClick: (X) => A(w, X, "submenu")
+ onClick: (R) => C(w, R, "submenu")
}, [
- ne("span", nL, [
- w.iconClass ? (Ie(), he("i", {
+ ie("span", rL, [
+ w.iconClass ? (be(), Ce("i", {
key: 0,
class: Zn(w.iconClass)
- }, null, 2)) : yt("", !0),
- ne("span", null, Ye(w.label), 1)
+ }, null, 2)) : ft("", !0),
+ ie("span", null, Ye(w.label), 1)
]),
- w.rightHint ? (Ie(), he("span", iL, Ye(w.rightHint), 1)) : yt("", !0)
- ], 10, tL))
+ w.rightHint ? (be(), Ce("span", lL, Ye(w.rightHint), 1)) : ft("", !0)
+ ], 10, oL))
], 64))), 128))
- ], 36)) : yt("", !0),
- Ge(Dt).tags.open && Ge(Dt).tags.asset ? (Ie(), he("div", {
+ ], 36)) : ft("", !0),
+ xe(Dt).tags.open && xe(Dt).tags.asset ? (be(), Ce("div", {
key: 2,
ref_key: "tagsPopoverRef",
ref: i,
class: "mjr-grid-popover",
- style: vt(c.value)
+ style: Lt(c.value)
}, [
- fn(dd, {
- asset: Ge(Dt).tags.asset,
- "model-value": ((x = Ge(Dt).tags.asset) == null ? void 0 : x.tags) || [],
+ fn(md, {
+ asset: xe(Dt).tags.asset,
+ "model-value": ((v = xe(Dt).tags.asset) == null ? void 0 : v.tags) || [],
"onUpdate:modelValue": y,
- onTagsChange: k
+ onTagsChange: X
}, null, 8, ["asset", "model-value"])
- ], 4)) : yt("", !0)
+ ], 4)) : ft("", !0)
]);
};
}
-}, ap = {
+}, cp = {
__name: "ContextMenuPortal",
setup(e) {
- const t = Ae(""), n = Je(() => pW(t.value));
+ const t = Ae(""), n = ze(() => hW(t.value));
return Dn(() => {
- t.value = IW();
+ t.value = yW();
}), _n(() => {
- bW(t.value), t.value = "";
- }), (i, o) => n.value ? (Ie(), he(Xt, { key: 0 }, [
- fn(oL),
- fn(Ev)
- ], 64)) : yt("", !0);
+ fW(t.value), t.value = "";
+ }), (i, o) => n.value ? (be(), Ce(Nt, { key: 0 }, [
+ fn(aL),
+ fn(Pv)
+ ], 64)) : ft("", !0);
}
-}, rL = {
+}, cL = {
__name: "App",
setup(e) {
const t = Ae(null), n = Ae(null), i = Ae(null), o = Ae(null), r = Ae(null), l = Ae(null);
@@ -41522,7 +41580,7 @@ ${m(
return (u = (d = r.value) == null ? void 0 : d.disposeGrid) == null ? void 0 : u.call(d);
}), l.value && (c.sidebar = l.value.sidebar);
try {
- a = await u2(t.value, {
+ a = await I2(t.value, {
useComfyThemeUI: !0,
external: c
});
@@ -41536,29 +41594,29 @@ ${m(
} catch {
}
a = null;
- }), (c, s) => (Ie(), he(Xt, null, [
- fn(g2, {
+ }), (c, s) => (be(), Ce(Nt, null, [
+ fn(p2, {
ref_key: "statusSectionRef",
ref: n
}, null, 512),
- fn(cx, {
+ fn(ux, {
ref_key: "headerSectionRef",
ref: i
}, null, 512),
- fn(Zx, {
+ fn(wx, {
ref_key: "summaryBarSectionRef",
ref: o
}, null, 512),
- fn(Yx, {
+ fn(Xx, {
ref_key: "assetsGridRef",
ref: r
}, null, 512),
- fn(Rv, {
+ fn(zv, {
ref_key: "sidebarSectionRef",
ref: l
}, null, 512),
- fn(ap),
- ne("div", {
+ fn(cp),
+ ie("div", {
ref_key: "containerRef",
ref: t,
class: "mjr-vue-root",
@@ -41566,7 +41624,7 @@ ${m(
}, null, 512)
], 64));
}
-}, lL = {
+}, sL = {
__name: "GeneratedFeedApp",
setup(e) {
const t = Ae(null);
@@ -41588,19 +41646,19 @@ ${m(
return Dn(() => {
if (t.value)
try {
- i(t.value), n = vY(t.value);
+ i(t.value), n = YV(t.value);
} catch (o) {
console.warn("[Majoor] GeneratedFeedApp.vue: createGeneratedFeedHost failed", o);
}
}), _n(() => {
try {
- LY(n);
+ kV(n);
} catch {
}
n = null;
- }), (o, r) => (Ie(), he(Xt, null, [
- fn(ap),
- ne("div", {
+ }), (o, r) => (be(), Ce(Nt, null, [
+ fn(cp),
+ ie("div", {
ref_key: "containerRef",
ref: t,
class: "mjr-vue-feed-root",
@@ -41608,23 +41666,23 @@ ${m(
}, null, 512)
], 64));
}
-}, md = "data-mjr-topbar-mfv-host", cp = "data-mjr-topbar-mfv-button", Cs = "data-mjr-topbar-mfv-slot", aL = "label.floatingViewer", cL = "Viewer", sL = "V, Ctrl/Cmd+V";
-let mi = null, Zs = null, Kn = null, yr = null, fr = null, ga = !1, ll = null, $i = !1, gd = !1;
-function sp(e) {
+}, Id = "data-mjr-topbar-mfv-host", sp = "data-mjr-topbar-mfv-button", As = "data-mjr-topbar-mfv-slot", dL = "label.floatingViewer", uL = "Viewer", mL = "V, Ctrl/Cmd+V";
+let Ii = null, Ws = null, Kn = null, hr = null, Cr = null, Ia = !1, cl = null, no = !1, bd = !1;
+function dp(e) {
var t, n;
- if (!(mi && Zs === e)) {
+ if (!(Ii && Ws === e)) {
if (!e) {
!Kn && typeof MutationObserver < "u" && (Kn = new MutationObserver(() => {
var o;
- oc() && ((o = Kn == null ? void 0 : Kn.disconnect) == null || o.call(Kn), Kn = null, hr());
+ rc() && ((o = Kn == null ? void 0 : Kn.disconnect) == null || o.call(Kn), Kn = null, Zr());
}), Kn.observe(document.body, { childList: !0, subtree: !0 }));
return;
}
try {
- (t = mi == null ? void 0 : mi.disconnect) == null || t.call(mi);
+ (t = Ii == null ? void 0 : Ii.disconnect) == null || t.call(Ii);
} catch {
}
- mi = new MutationObserver(() => hr()), mi.observe(e, { childList: !0 }), Zs = e;
+ Ii = new MutationObserver(() => Zr()), Ii.observe(e, { childList: !0 }), Ws = e;
try {
(n = Kn == null ? void 0 : Kn.disconnect) == null || n.call(Kn);
} catch {
@@ -41632,10 +41690,10 @@ function sp(e) {
Kn = null;
}
}
-function oc() {
+function rc() {
return typeof document > "u" ? null : document.querySelector(".actionbar-container");
}
-function jc(e = oc()) {
+function vc(e = rc()) {
var o;
if (typeof document > "u") return;
const t = (o = document.documentElement) == null ? void 0 : o.style;
@@ -41647,86 +41705,86 @@ function jc(e = oc()) {
const n = e.getBoundingClientRect(), i = Math.max(60, Math.ceil(n.bottom + 12));
t.setProperty("--mjr-mfv-top-offset", `${i}px`);
}
-function dL(e) {
+function gL(e) {
return e && e.querySelector(".queue-button-group") || null;
}
-function uL(e) {
+function IL(e) {
if (!e) return null;
- let t = e.querySelector(`[${Cs}]`);
- t || (t = document.createElement("div"), t.setAttribute(Cs, "1"), t.className = "flex h-full items-center pointer-events-auto", t.style.position = "relative", t.style.zIndex = "10030", t.style.padding = "0 4px");
- const n = dL(e), i = (n == null ? void 0 : n.parentElement) || e;
+ let t = e.querySelector(`[${As}]`);
+ t || (t = document.createElement("div"), t.setAttribute(As, "1"), t.className = "flex h-full items-center pointer-events-auto", t.style.position = "relative", t.style.zIndex = "10030", t.style.padding = "0 4px");
+ const n = gL(e), i = (n == null ? void 0 : n.parentElement) || e;
return t.parentElement !== i ? n && i ? i.insertBefore(t, n.nextSibling) : i.appendChild(t) : n && i && t.previousSibling !== n ? i.insertBefore(t, n.nextSibling) : !n && t !== i.lastElementChild && i.appendChild(t), t;
}
-function mL(e = "pi pi-eye") {
+function bL(e = "pi pi-eye") {
const t = document.createElement("i");
return t.className = e, t.setAttribute("aria-hidden", "true"), t;
}
-function gL(e = "Viewer") {
+function pL(e = "Viewer") {
const t = document.createElement("span");
return t.className = "mjr-topbar-mfv-label", t.textContent = e, t;
}
-function dp(e) {
+function up(e) {
if (!e) return;
- const t = $i ? m("tooltip.closeMFV", "Close Floating Viewer") : m("tooltip.openMFV", "Open Floating Viewer");
- QI(e, t, sL, {
+ const t = no ? m("tooltip.closeMFV", "Close Floating Viewer") : m("tooltip.openMFV", "Open Floating Viewer");
+ _I(e, t, mL, {
ariaLabel: t
- }), e.setAttribute("aria-pressed", $i ? "true" : "false"), e.classList.toggle("primary", $i), e.classList.toggle("mjr-topbar-mfv-active", $i), e.replaceChildren(
- mL($i ? "pi pi-eye-slash" : "pi pi-eye"),
- gL(m(aL, cL))
+ }), e.setAttribute("aria-pressed", no ? "true" : "false"), e.classList.toggle("primary", no), e.classList.toggle("mjr-topbar-mfv-active", no), e.replaceChildren(
+ bL(no ? "pi pi-eye-slash" : "pi pi-eye"),
+ pL(m(dL, uL))
);
}
-function IL() {
+function yL() {
var e;
try {
- window.dispatchEvent(new Event(ft.MFV_TOGGLE));
+ window.dispatchEvent(new Event(ht.MFV_TOGGLE));
} catch (t) {
(e = console.debug) == null || e.call(console, "[Majoor] top bar MFV launch failed", t);
}
- hr();
-}
-function bL() {
- const e = document.createElement("button");
- return e.type = "button", e.setAttribute(cp, "1"), e.className = "comfyui-button mjr-topbar-mfv-button", e.style.position = "relative", e.style.zIndex = "10030", e.style.width = "auto", e.style.height = "32px", e.style.minWidth = "32px", e.style.padding = "0 10px", e.style.gap = "6px", e.style.display = "inline-flex", e.style.alignItems = "center", e.style.justifyContent = "center", e.style.whiteSpace = "nowrap", e.addEventListener("click", IL), dp(e), e;
-}
-function pL() {
- const e = document.createElement("div");
- return e.setAttribute(md, "1"), e.className = "mjr-topbar-mfv-button-host", e.style.position = "relative", e.appendChild(bL()), e;
-}
-function yL() {
- if (typeof document > "u" || gd) return;
- const e = !!document.querySelector(".mjr-mfv.is-visible");
- $i !== e && ($i = e);
+ Zr();
}
function fL() {
- const e = oc();
- if (!e)
- return jc(null), null;
- sp(e), yL();
- const t = uL(e);
- if (!t)
- return jc(e), null;
- let n = t.querySelector(`[${md}]`);
- return n || (n = pL()), n.parentElement !== t && t.replaceChildren(n), jc(e), dp(n.querySelector(`[${cp}]`)), t;
-}
-function hr() {
- ga || (ga = !0, ll = window.setTimeout(() => {
- ga = !1, ll = null, fL();
- }, 32));
+ const e = document.createElement("button");
+ return e.type = "button", e.setAttribute(sp, "1"), e.className = "comfyui-button mjr-topbar-mfv-button", e.style.position = "relative", e.style.zIndex = "10030", e.style.width = "auto", e.style.height = "32px", e.style.minWidth = "32px", e.style.padding = "0 10px", e.style.gap = "6px", e.style.display = "inline-flex", e.style.alignItems = "center", e.style.justifyContent = "center", e.style.whiteSpace = "nowrap", e.addEventListener("click", yL), up(e), e;
}
function hL() {
- return typeof window > "u" || typeof document > "u" || !document.body ? !1 : (hr(), yr || (yr = (e) => {
- var t;
- $i = !!((t = e == null ? void 0 : e.detail) != null && t.visible), gd = !0, hr();
- }, window.addEventListener(ft.MFV_VISIBILITY_CHANGED, yr)), fr || (fr = () => hr(), window.addEventListener("resize", fr)), sp(oc()), !0);
+ const e = document.createElement("div");
+ return e.setAttribute(Id, "1"), e.className = "mjr-topbar-mfv-button-host", e.style.position = "relative", e.appendChild(fL()), e;
}
-function up() {
+function CL() {
+ if (typeof document > "u" || bd) return;
+ const e = !!document.querySelector(".mjr-mfv.is-visible");
+ no !== e && (no = e);
+}
+function ZL() {
+ const e = rc();
+ if (!e)
+ return vc(null), null;
+ dp(e), CL();
+ const t = IL(e);
+ if (!t)
+ return vc(e), null;
+ let n = t.querySelector(`[${Id}]`);
+ return n || (n = hL()), n.parentElement !== t && t.replaceChildren(n), vc(e), up(n.querySelector(`[${sp}]`)), t;
+}
+function Zr() {
+ Ia || (Ia = !0, cl = window.setTimeout(() => {
+ Ia = !1, cl = null, ZL();
+ }, 32));
+}
+function AL() {
+ return typeof window > "u" || typeof document > "u" || !document.body ? !1 : (Zr(), hr || (hr = (e) => {
+ var t;
+ no = !!((t = e == null ? void 0 : e.detail) != null && t.visible), bd = !0, Zr();
+ }, window.addEventListener(ht.MFV_VISIBILITY_CHANGED, hr)), Cr || (Cr = () => Zr(), window.addEventListener("resize", Cr)), dp(rc()), !0);
+}
+function mp() {
var e, t, n, i, o, r, l, a, c, s, d, u;
try {
- (e = mi == null ? void 0 : mi.disconnect) == null || e.call(mi);
+ (e = Ii == null ? void 0 : Ii.disconnect) == null || e.call(Ii);
} catch (I) {
(t = console.debug) == null || t.call(console, I);
}
- mi = null, Zs = null;
+ Ii = null, Ws = null;
try {
(n = Kn == null ? void 0 : Kn.disconnect) == null || n.call(Kn);
} catch (I) {
@@ -41734,22 +41792,33 @@ function up() {
}
Kn = null;
try {
- ll && window.clearTimeout(ll);
+ cl && window.clearTimeout(cl);
} catch (I) {
(o = console.debug) == null || o.call(console, I);
}
- ll = null, yr && typeof window < "u" && window.removeEventListener(ft.MFV_VISIBILITY_CHANGED, yr), yr = null, fr && typeof window < "u" && window.removeEventListener("resize", fr), fr = null, ga = !1, $i = !1, gd = !1;
+ cl = null, hr && typeof window < "u" && window.removeEventListener(ht.MFV_VISIBILITY_CHANGED, hr), hr = null, Cr && typeof window < "u" && window.removeEventListener("resize", Cr), Cr = null, Ia = !1, no = !1, bd = !1;
try {
- (l = (r = document.documentElement) == null ? void 0 : r.style) == null || l.setProperty("--mjr-mfv-top-offset", "60px"), (c = (a = document.querySelector(`[${md}]`)) == null ? void 0 : a.remove) == null || c.call(a), (d = (s = document.querySelector(`[${Cs}]`)) == null ? void 0 : s.remove) == null || d.call(s);
+ (l = (r = document.documentElement) == null ? void 0 : r.style) == null || l.setProperty("--mjr-mfv-top-offset", "60px"), (c = (a = document.querySelector(`[${Id}]`)) == null ? void 0 : a.remove) == null || c.call(a), (d = (s = document.querySelector(`[${As}]`)) == null ? void 0 : s.remove) == null || d.call(s);
} catch (I) {
(u = console.debug) == null || u.call(console, I);
}
}
-const As = "mjr-global-runtime-root", mp = "_mjrGlobalRuntimeVueApp", gp = "_mjrSidebarVueApp", Ip = "_mjrFeedVueApp";
-let eo = null, al = null;
-const bp = 5e3;
-let Ws = 0;
-function pp() {
+const ws = "mjr-global-runtime-root", gp = "_mjrGlobalRuntimeVueApp", Ip = "_mjrSidebarVueApp", bp = "_mjrFeedVueApp";
+let Di = null, Ar = null;
+const pp = 15e3;
+let Ms = 0, ii = null;
+try {
+ window.addEventListener("pagehide", () => {
+ var e;
+ try {
+ (e = ii == null ? void 0 : ii.abort) == null || e.call(ii);
+ } catch {
+ }
+ ii = null, Di = null, Ar = null;
+ }, { once: !0 });
+} catch {
+}
+function yp() {
var e;
try {
return !!String(((e = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : e.active_prompt_id) || "").trim();
@@ -41757,89 +41826,100 @@ function pp() {
return !1;
}
}
-function CL() {
- if (pp())
+function fp() {
+ var n;
+ if (yp())
return null;
const e = Date.now(), t = "output:*:mtime_desc";
- if (eo && al === t && e - Ws < bp)
- return eo;
- al = t, Ws = e;
+ if (Di && Ar === t && e - Ms < pp)
+ return Di;
+ Ar = t, Ms = e;
try {
- const n = Vs({
+ try {
+ (n = ii == null ? void 0 : ii.abort) == null || n.call(ii);
+ } catch {
+ }
+ ii = typeof AbortController < "u" ? new AbortController() : null;
+ const i = Xs({
query: "*",
- limit: ye.DEFAULT_PAGE_SIZE || 200,
+ limit: fe.DEFAULT_PAGE_SIZE || 200,
offset: 0,
scope: "output",
- sort: "mtime_desc"
+ sort: "mtime_desc",
+ // Include total so useGridLoader can set state.total correctly.
+ // Without it the fallback was earlyAssets.length (page size),
+ // which caused state.done=true after the first page and blocked
+ // all subsequent pagination / infinite scroll.
+ includeTotal: !0
});
- eo = Rt(n).catch(() => null);
+ Di = Ft(i, ii ? { signal: ii.signal } : {}).catch(() => null);
} catch {
- eo = null;
+ Di = null, ii = null;
}
- return eo;
+ return Di;
}
-function ZL(e = "output:*:mtime_desc") {
- if (!eo || al !== e)
+function WL(e = "output:*:mtime_desc") {
+ if (!Di || Ar !== e)
return null;
- if (Date.now() - Ws >= bp)
- return eo = null, al = null, null;
- const n = eo;
- return eo = null, al = null, n;
+ if (Date.now() - Ms >= pp)
+ return Di = null, Ar = null, null;
+ const n = Di;
+ return Di = null, Ar = null, ii = null, n;
}
-function AL() {
+function wL() {
if (typeof document > "u" || !(document != null && document.body)) return null;
- let e = document.getElementById(As);
- return e || (e = document.createElement("div"), e.id = As, e.setAttribute("role", "presentation"), e.style.cssText = // Keep runtime hosts above panel layers so main viewer overlay cannot render underneath.
+ let e = document.getElementById(ws);
+ return e || (e = document.createElement("div"), e.id = ws, e.setAttribute("role", "presentation"), e.style.cssText = // Keep runtime hosts above panel layers so main viewer overlay cannot render underneath.
"position:fixed;inset:0;overflow:visible;pointer-events:none;z-index:10020;", document.body.appendChild(e), e);
}
-function WL() {
+function ML() {
try {
- const e = AL();
+ const e = wL();
if (!e) return !1;
- const t = ad(e, A0, mp);
- return hL(), t;
+ const t = sd(e, M0, gp);
+ return AL(), t;
} catch {
return !1;
}
}
-function wL() {
+function SL() {
var e;
try {
- up();
- const t = document.getElementById(As);
+ mp();
+ const t = document.getElementById(ws);
if (!t) return;
- cd(t, mp), (e = t.remove) == null || e.call(t);
+ dd(t, gp), (e = t.remove) == null || e.call(t);
} catch {
}
}
-function yp(e, t) {
+function hp(e, t) {
var i;
- const n = wy(e, t);
+ const n = Gy(e, t);
if (!n)
try {
- window.dispatchEvent(new Event(ft.OPEN_ASSETS_MANAGER));
+ window.dispatchEvent(new Event(ht.OPEN_ASSETS_MANAGER));
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
return n;
}
-function fp() {
+function Cp() {
var e;
try {
window.dispatchEvent(
- new CustomEvent(ft.RELOAD_GRID, { detail: { reason: "command" } })
+ new CustomEvent(ht.RELOAD_GRID, { detail: { reason: "command" } })
);
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
}
-function hp(e, { sidebarTabId: t, triggerStartupScan: n }) {
+function Zp(e, { sidebarTabId: t, triggerStartupScan: n }) {
return [
{
id: "mjr.openAssetsManager",
label: m("manager.title", "Assets Manager"),
icon: "pi pi-folder-open",
- function: () => yp(e, t)
+ function: () => hp(e, t)
},
{
id: "mjr.scanAssets",
@@ -41854,7 +41934,7 @@ function hp(e, { sidebarTabId: t, triggerStartupScan: n }) {
function: () => {
var i;
try {
- window.dispatchEvent(new Event(ft.MFV_TOGGLE));
+ window.dispatchEvent(new Event(ht.MFV_TOGGLE));
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
@@ -41864,16 +41944,16 @@ function hp(e, { sidebarTabId: t, triggerStartupScan: n }) {
id: "mjr.refreshAssetsGrid",
label: m("command.refreshAssetsGrid", "Refresh assets grid"),
icon: "pi pi-sync",
- function: () => fp()
+ function: () => Cp()
}
];
}
-function ML(e, t) {
- for (const n of hp(e, t))
- My(e, n);
+function GL(e, t) {
+ for (const n of Zp(e, t))
+ xy(e, n);
}
-function SL(e, { sidebarTabId: t }) {
- return Sy(e, {
+function xL(e, { sidebarTabId: t }) {
+ return jy(e, {
id: t,
icon: "pi pi-folder",
title: m("manager.title"),
@@ -41881,75 +41961,75 @@ function SL(e, { sidebarTabId: t }) {
tooltip: m("tooltip.sidebarTab"),
type: "custom",
render(n) {
- pp() || (CL(), gh({ idleOnly: !0 }).catch(() => null)), ad(n, rL, gp);
+ yp() || (fp(), ph({ idleOnly: !0 }).catch(() => null)), sd(n, cL, Ip);
},
destroy(n) {
}
});
}
-function GL() {
+function jL() {
try {
- cd(null, gp);
+ dd(null, Ip);
} catch {
}
}
-function xL() {
+function vL() {
return {
id: "majoor-generated-feed",
title: m("bottomFeed.title", "Generated Feed"),
icon: "pi pi-images",
type: "custom",
render(e) {
- ad(e, lL, Ip);
+ sd(e, sL, bp);
},
destroy(e) {
}
};
}
-function jL() {
- return [xL()];
+function LL() {
+ return [vL()];
}
-function vL() {
+function VL() {
try {
- cd(null, Ip);
+ dd(null, bp);
} catch {
}
}
-function LL(e) {
+function YL(e) {
var n;
const t = String(
(e == null ? void 0 : e.comfyClass) || (e == null ? void 0 : e.type) || ((n = e == null ? void 0 : e.constructor) == null ? void 0 : n.type) || ""
).trim();
return t ? /save|load|preview/i.test(t) : !1;
}
-function vc(e, t) {
+function Lc(e, t) {
return { content: e, callback: t };
}
-function YL(e, t, { sidebarTabId: n }) {
- return LL(e) ? [
- vc(
+function kL(e, t, { sidebarTabId: n }) {
+ return YL(e) ? [
+ Lc(
"View in Assets Manager",
- () => yp(t, n)
+ () => hp(t, n)
),
- vc("Open in Floating Viewer", () => {
+ Lc("Open in Floating Viewer", () => {
var i;
try {
- window.dispatchEvent(new Event(ft.MFV_OPEN));
+ window.dispatchEvent(new Event(ht.MFV_OPEN));
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
}),
- vc("Index Output", () => {
+ Lc("Index Output", () => {
var i;
try {
- fp(), Ce(m("toast.rescanningFile", "Rescanning fileβ¦"), "info", 1800);
+ Cp(), Ze(m("toast.rescanningFile", "Rescanning fileβ¦"), "info", 1800);
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
})
] : [];
}
-function VL({ count: e = 0, limit: t = 0, offset: n = 0, total: i = null } = {}) {
+function XL({ count: e = 0, limit: t = 0, offset: n = 0, total: i = null } = {}) {
const o = Math.max(0, Number(e) || 0);
if (o <= 0) return 0;
const r = Math.max(0, Number(t) || 0), l = Math.max(0, Number(n) || 0), a = i == null ? null : Math.max(0, Number(i) || 0), c = a == null ? null : Math.max(0, a - l);
@@ -41960,26 +42040,26 @@ function VL({ count: e = 0, limit: t = 0, offset: n = 0, total: i = null } = {})
const s = Math.min(r, c);
return s <= 0 ? o : Math.max(o, s);
}
-function kL(e, t) {
- var Z, A, g, h, f, b, v;
+function NL(e, t) {
+ var A, C, g, Z, f, b, L;
if (!t || typeof t != "object") return !1;
- const n = String(((Z = e == null ? void 0 : e.dataset) == null ? void 0 : Z.mjrScope) || "output").trim().toLowerCase(), i = String(((A = e == null ? void 0 : e.dataset) == null ? void 0 : A.mjrSubfolder) || "").trim().toLowerCase(), o = String(((g = e == null ? void 0 : e.dataset) == null ? void 0 : g.mjrFilterKind) || "").trim().toLowerCase(), r = ((h = e == null ? void 0 : e.dataset) == null ? void 0 : h.mjrFilterWorkflowOnly) === "1", l = Number(((f = e == null ? void 0 : e.dataset) == null ? void 0 : f.mjrFilterMinRating) || 0) || 0, a = String(((b = e == null ? void 0 : e.dataset) == null ? void 0 : b.mjrFilterWorkflowType) || "").trim().toLowerCase(), c = String(((v = e == null ? void 0 : e.dataset) == null ? void 0 : v.mjrFilterDateExact) || "").trim(), s = String((t == null ? void 0 : t.subfolder) || "").trim().toLowerCase(), d = String((t == null ? void 0 : t.type) || (t == null ? void 0 : t.source) || "output").trim().toLowerCase(), u = String((t == null ? void 0 : t.kind) || "").trim().toLowerCase(), I = String((t == null ? void 0 : t.workflow_type) || (t == null ? void 0 : t.workflowType) || "").trim().toLowerCase(), p = String((t == null ? void 0 : t.date_exact) || (t == null ? void 0 : t.date) || "").trim(), M = !!((t == null ? void 0 : t.has_workflow) ?? (t == null ? void 0 : t.hasWorkflow));
- return !(n && n !== "all" && d && d !== n || i && s !== i || o && u && u !== o || r && !M || l > 0 && (Number((t == null ? void 0 : t.rating) || 0) || 0) < l || a && I !== a || c && p && p !== c);
+ const n = String(((A = e == null ? void 0 : e.dataset) == null ? void 0 : A.mjrScope) || "output").trim().toLowerCase(), i = String(((C = e == null ? void 0 : e.dataset) == null ? void 0 : C.mjrSubfolder) || "").trim().toLowerCase(), o = String(((g = e == null ? void 0 : e.dataset) == null ? void 0 : g.mjrFilterKind) || "").trim().toLowerCase(), r = ((Z = e == null ? void 0 : e.dataset) == null ? void 0 : Z.mjrFilterWorkflowOnly) === "1", l = Number(((f = e == null ? void 0 : e.dataset) == null ? void 0 : f.mjrFilterMinRating) || 0) || 0, a = String(((b = e == null ? void 0 : e.dataset) == null ? void 0 : b.mjrFilterWorkflowType) || "").trim().toLowerCase(), c = String(((L = e == null ? void 0 : e.dataset) == null ? void 0 : L.mjrFilterDateExact) || "").trim(), s = String((t == null ? void 0 : t.subfolder) || "").trim().toLowerCase(), d = String((t == null ? void 0 : t.type) || (t == null ? void 0 : t.source) || "output").trim().toLowerCase(), u = String((t == null ? void 0 : t.kind) || "").trim().toLowerCase(), I = String((t == null ? void 0 : t.workflow_type) || (t == null ? void 0 : t.workflowType) || "").trim().toLowerCase(), p = String((t == null ? void 0 : t.date_exact) || (t == null ? void 0 : t.date) || "").trim(), S = (t == null ? void 0 : t.has_workflow) ?? (t == null ? void 0 : t.hasWorkflow) ?? null;
+ return !(n && n !== "all" && d && d !== n || i && s !== i || o && u && u !== o || r && S !== null && !S || l > 0 && (Number((t == null ? void 0 : t.rating) || 0) || 0) < l || a && I !== a || c && p && p !== c);
}
-async function XL(e, t, n, i, o, { requestId: r = 0, signal: l = null } = {}) {
- var w, X, V, R, j, L, N, q, O, B, J, T, D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H;
- const a = ($) => {
+async function RL(e, t, n, i, o, { requestId: r = 0, signal: l = null } = {}) {
+ var w, R, Y, F, N, V, k, K, z, B, J, P, H, $, E, oe, M, j, O, D, q, ee, ce, ue, U;
+ const a = (Q) => {
var _;
- if (typeof $ == "string") return $;
- if ($ && typeof $ == "object") {
- if (typeof $.value == "string") return $.value;
- if (typeof ((_ = $.target) == null ? void 0 : _.value) == "string") return $.target.value;
+ if (typeof Q == "string") return Q;
+ if (Q && typeof Q == "object") {
+ if (typeof Q.value == "string") return Q.value;
+ if (typeof ((_ = Q.target) == null ? void 0 : _.value) == "string") return Q.target.value;
}
- return String($ || "");
- }, c = ((w = e == null ? void 0 : e.dataset) == null ? void 0 : w.mjrScope) || "output", s = ((X = e == null ? void 0 : e.dataset) == null ? void 0 : X.mjrCustomRootId) || "", d = ((V = e == null ? void 0 : e.dataset) == null ? void 0 : V.mjrSubfolder) || "", u = ((R = e == null ? void 0 : e.dataset) == null ? void 0 : R.mjrFilterKind) || "", I = ((j = e == null ? void 0 : e.dataset) == null ? void 0 : j.mjrFilterWorkflowOnly) === "1", p = Number(((L = e == null ? void 0 : e.dataset) == null ? void 0 : L.mjrFilterMinRating) || 0) || 0, M = Number(((N = e == null ? void 0 : e.dataset) == null ? void 0 : N.mjrFilterMinSizeMB) || 0) || 0, Z = Number(((q = e == null ? void 0 : e.dataset) == null ? void 0 : q.mjrFilterMaxSizeMB) || 0) || 0, A = String(((O = e == null ? void 0 : e.dataset) == null ? void 0 : O.mjrFilterResolutionCompare) || "gte") === "lte" ? "lte" : "gte", g = Number(((B = e == null ? void 0 : e.dataset) == null ? void 0 : B.mjrFilterMinWidth) || 0) || 0, h = Number(((J = e == null ? void 0 : e.dataset) == null ? void 0 : J.mjrFilterMinHeight) || 0) || 0, f = Number(((T = e == null ? void 0 : e.dataset) == null ? void 0 : T.mjrFilterMaxWidth) || 0) || 0, b = Number(((D = e == null ? void 0 : e.dataset) == null ? void 0 : D.mjrFilterMaxHeight) || 0) || 0, v = String(((Q = e == null ? void 0 : e.dataset) == null ? void 0 : Q.mjrFilterWorkflowType) || "").trim().toUpperCase(), C = String(((E = e == null ? void 0 : e.dataset) == null ? void 0 : E.mjrFilterDateRange) || "").trim().toLowerCase(), S = String(((K = e == null ? void 0 : e.dataset) == null ? void 0 : K.mjrFilterDateExact) || "").trim(), W = ((F = e == null ? void 0 : e.dataset) == null ? void 0 : F.mjrSort) || "mtime_desc", y = String(((Y = e == null ? void 0 : e.dataset) == null ? void 0 : Y.mjrGroupStacks) || "") === "1", G = a(t).trim() || "*", z = /^\[object\s+HTML.*Element\]$/i.test(G) ? "*" : G, x = o.sanitizeQuery(z) || z;
+ return String(Q || "");
+ }, c = ((w = e == null ? void 0 : e.dataset) == null ? void 0 : w.mjrScope) || "output", s = ((R = e == null ? void 0 : e.dataset) == null ? void 0 : R.mjrCustomRootId) || "", d = ((Y = e == null ? void 0 : e.dataset) == null ? void 0 : Y.mjrSubfolder) || "", u = ((F = e == null ? void 0 : e.dataset) == null ? void 0 : F.mjrFilterKind) || "", I = ((N = e == null ? void 0 : e.dataset) == null ? void 0 : N.mjrFilterWorkflowOnly) === "1", p = Number(((V = e == null ? void 0 : e.dataset) == null ? void 0 : V.mjrFilterMinRating) || 0) || 0, S = Number(((k = e == null ? void 0 : e.dataset) == null ? void 0 : k.mjrFilterMinSizeMB) || 0) || 0, A = Number(((K = e == null ? void 0 : e.dataset) == null ? void 0 : K.mjrFilterMaxSizeMB) || 0) || 0, C = String(((z = e == null ? void 0 : e.dataset) == null ? void 0 : z.mjrFilterResolutionCompare) || "gte") === "lte" ? "lte" : "gte", g = Number(((B = e == null ? void 0 : e.dataset) == null ? void 0 : B.mjrFilterMinWidth) || 0) || 0, Z = Number(((J = e == null ? void 0 : e.dataset) == null ? void 0 : J.mjrFilterMinHeight) || 0) || 0, f = Number(((P = e == null ? void 0 : e.dataset) == null ? void 0 : P.mjrFilterMaxWidth) || 0) || 0, b = Number(((H = e == null ? void 0 : e.dataset) == null ? void 0 : H.mjrFilterMaxHeight) || 0) || 0, L = String((($ = e == null ? void 0 : e.dataset) == null ? void 0 : $.mjrFilterWorkflowType) || "").trim().toUpperCase(), h = String(((E = e == null ? void 0 : e.dataset) == null ? void 0 : E.mjrFilterDateRange) || "").trim().toLowerCase(), G = String(((oe = e == null ? void 0 : e.dataset) == null ? void 0 : oe.mjrFilterDateExact) || "").trim(), W = ((M = e == null ? void 0 : e.dataset) == null ? void 0 : M.mjrSort) || "mtime_desc", y = String(((j = e == null ? void 0 : e.dataset) == null ? void 0 : j.mjrGroupStacks) || "") === "1", x = a(t).trim() || "*", T = /^\[object\s+HTML.*Element\]$/i.test(x) ? "*" : x, v = o.sanitizeQuery(T) || T;
try {
- const $ = !(String(c || "").toLowerCase() === "output" && Number(i ?? 0) > 0), _ = o.buildListURL({
- q: x,
+ const Q = String(c || "").toLowerCase() === "output", _ = !!(d || s || u || I || p > 0 || S > 0 || A > 0 || g > 0 || Z > 0 || f > 0 || b > 0 || L || h || G || y), le = Q && Number(i ?? 0) === 0 && v === "*" && !_ && String(W || "mtime_desc").toLowerCase() === "mtime_desc", de = !(Q && (Number(i ?? 0) > 0 || le)), se = o.buildListURL({
+ q: v,
limit: n,
offset: i,
scope: c,
@@ -41988,58 +42068,58 @@ async function XL(e, t, n, i, o, { requestId: r = 0, signal: l = null } = {}) {
kind: u || null,
hasWorkflow: I ? !0 : null,
minRating: p > 0 ? p : null,
- minSizeMB: M > 0 ? M : null,
- maxSizeMB: Z > 0 ? Z : null,
- resolutionCompare: A,
+ minSizeMB: S > 0 ? S : null,
+ maxSizeMB: A > 0 ? A : null,
+ resolutionCompare: C,
minWidth: g > 0 ? g : null,
- minHeight: h > 0 ? h : null,
+ minHeight: Z > 0 ? Z : null,
maxWidth: f > 0 ? f : null,
maxHeight: b > 0 ? b : null,
- workflowType: v || null,
- dateRange: C || null,
- dateExact: S || null,
+ workflowType: L || null,
+ dateRange: h || null,
+ dateExact: G || null,
sort: W,
- includeTotal: $,
+ includeTotal: de,
groupStacks: y
- }), le = await o.get(_, l ? { signal: l } : void 0);
+ }), ge = await o.get(se, { timeoutMs: 12e4, ...l ? { signal: l } : {} });
try {
- const se = o.getGridState(e);
- if (se && Number(se.requestId) !== Number(r))
+ const je = o.getGridState(e);
+ if (je && Number(je.requestId) !== Number(r))
return { ok: !1, stale: !0, error: "Stale response" };
- } catch (se) {
- (U = console.debug) == null || U.call(console, se);
+ } catch (je) {
+ (O = console.debug) == null || O.call(console, je);
}
- if (le.ok) {
- const se = ((P = le.data) == null ? void 0 : P.assets) || [], de = Array.isArray(se) ? se.length : 0, Ze = (ee = le.data) == null ? void 0 : ee.total, Fe = Ze == null ? null : Number(Ze ?? 0) || 0, xe = Math.max(0, Number((oe = le.data) == null ? void 0 : oe.limit) || 0), ze = Math.max(0, Number((ce = le.data) == null ? void 0 : ce.offset) || 0);
+ if (ge.ok) {
+ const je = ((D = ge.data) == null ? void 0 : D.assets) || [], Se = Array.isArray(je) ? je.length : 0, ke = (q = ge.data) == null ? void 0 : q.total, we = ke == null ? null : Number(ke ?? 0) || 0, Je = Math.max(0, Number((ee = ge.data) == null ? void 0 : ee.limit) || 0), $e = Math.max(0, Number((ce = ge.data) == null ? void 0 : ce.offset) || 0);
return {
ok: !0,
- assets: se,
- total: Fe,
- count: de,
- limit: xe,
- offset: ze,
+ assets: je,
+ total: we,
+ count: Se,
+ limit: Je,
+ offset: $e,
sortKey: W,
- safeQuery: x
+ safeQuery: v
};
}
try {
- if (String((le == null ? void 0 : le.code) || "") === "ABORTED")
+ if (String((ge == null ? void 0 : ge.code) || "") === "ABORTED")
return { ok: !1, aborted: !0, error: "Aborted" };
- } catch (se) {
- (pe = console.debug) == null || pe.call(console, se);
+ } catch (je) {
+ (ue = console.debug) == null || ue.call(console, je);
}
- return { ok: !1, error: le.error };
- } catch ($) {
+ return { ok: !1, error: ge.error };
+ } catch (Q) {
try {
- if (String(($ == null ? void 0 : $.name) || "") === "AbortError")
+ if (String((Q == null ? void 0 : Q.name) || "") === "AbortError")
return { ok: !1, aborted: !0, error: "Aborted" };
} catch (_) {
- (H = console.debug) == null || H.call(console, _);
+ (U = console.debug) == null || U.call(console, _);
}
- return { ok: !1, error: $.message };
+ return { ok: !1, error: Q.message };
}
}
-function Ta(e, t) {
+function Ba(e, t) {
switch (t) {
case "mtime_desc":
return -(Number(e == null ? void 0 : e.mtime) || 0);
@@ -42052,36 +42132,36 @@ function Ta(e, t) {
return -(Number(e == null ? void 0 : e.mtime) || 0);
}
}
-function NL(e, t, n) {
+function FL(e, t, n) {
if (n === "name_desc") {
const r = String((e == null ? void 0 : e.filename) || "").toLowerCase(), l = String((t == null ? void 0 : t.filename) || "").toLowerCase();
return r > l ? -1 : r < l ? 1 : 0;
}
- const i = Ta(e, n), o = Ta(t, n);
+ const i = Ba(e, n), o = Ba(t, n);
return i < o ? -1 : i > o ? 1 : 0;
}
-function RL(e, t, n) {
+function OL(e, t, n) {
return n === "name_asc" ? String(e) < String(t) : n === "name_desc" ? String(e) > String(t) : Number(e) < Number(t);
}
-function FL(e, t, n) {
- const i = Ta(t, n);
+function zL(e, t, n) {
+ const i = Ba(t, n);
for (let o = 0; o < e.length; o++) {
- const r = Ta(e[o], n);
- if (RL(i, r, n)) return o;
+ const r = Ba(e[o], n);
+ if (OL(i, r, n)) return o;
}
return e.length;
}
-function Cp(e, t) {
+function Ap(e, t) {
let n = t.get(e);
return n || (n = { pending: /* @__PURE__ */ new Map(), timer: null, flushing: !1 }, t.set(e, n)), n;
}
-function Ur(e) {
+function Dr(e) {
return String(e ?? "").trim().toLowerCase();
}
-function OL(e) {
+function Wp(e) {
return (e == null ? void 0 : e._mjrLivePlaceholder) === !0 || (e == null ? void 0 : e.is_live_placeholder) === !0 || String((e == null ? void 0 : e.id) || "").trim().toLowerCase().startsWith("live:");
}
-function Om(e) {
+function Vc(e) {
var t;
if (!e || typeof e != "object") return e;
try {
@@ -42091,35 +42171,55 @@ function Om(e) {
}
return e;
}
-function zm(e) {
+function Jm(e) {
if (!e || typeof e != "object") return "";
- const t = Ur((e == null ? void 0 : e.type) || (e == null ? void 0 : e.source) || "output"), n = Ur((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || ""), i = Ur((e == null ? void 0 : e.subfolder) || ""), o = Ur((e == null ? void 0 : e.filename) || "");
+ const t = Dr((e == null ? void 0 : e.type) || (e == null ? void 0 : e.source) || "output"), n = Dr((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || ""), i = Dr((e == null ? void 0 : e.subfolder) || ""), o = Dr((e == null ? void 0 : e.filename) || "");
if (o) return `${t}|${n}|${i}|${o}`;
- const r = Ur(
+ const r = Dr(
(e == null ? void 0 : e.filepath) || (e == null ? void 0 : e.path) || (e == null ? void 0 : e.fullpath) || (e == null ? void 0 : e.full_path) || ""
);
return r ? `${t}|${n}|path|${r}` : "";
}
-function zL(e, t, n) {
+function JL(e, t, n) {
const i = Array.isArray(e == null ? void 0 : e.assets) ? e.assets : [];
if (t) {
const r = i.findIndex((l) => String((l == null ? void 0 : l.id) || "") === t);
if (r > -1) return r;
}
- const o = zm(n);
- return o ? i.findIndex((r) => zm(r) === o) : -1;
+ const o = Jm(n);
+ return o ? i.findIndex((r) => Jm(r) === o) : -1;
}
-function JL(e, t) {
+function TL(e, t) {
+ return !t || typeof t != "object" || !e || typeof e != "object" ? !1 : Wp(t) ? !0 : ![
+ "filename",
+ "filepath",
+ "path",
+ "fullpath",
+ "full_path",
+ "subfolder",
+ "type",
+ "source",
+ "root_id",
+ "custom_root_id",
+ "kind",
+ "rating",
+ "workflow_type",
+ "workflowType",
+ "date_exact",
+ "date"
+ ].some((i) => Object.prototype.hasOwnProperty.call(e, i));
+}
+function BL(e, t) {
const n = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Map(), r = [];
for (const l of Array.isArray(e == null ? void 0 : e.assets) ? e.assets : []) {
- const a = (l == null ? void 0 : l.id) != null ? String(l.id) : "", c = t.assetKey(l), s = pr(l == null ? void 0 : l.filename);
+ const a = (l == null ? void 0 : l.id) != null ? String(l.id) : "", c = t.assetKey(l), s = fr(l == null ? void 0 : l.filename);
if (!(a && n.has(a)) && !(c && i.has(c))) {
if (s) {
const d = o.get(s);
if (d) {
- const u = Array.isArray(d._mjrDupMembers) ? d._mjrDupMembers : [d], I = new Set(u.map((M) => String((M == null ? void 0 : M.id) || ""))), p = [
+ const u = Array.isArray(d._mjrDupMembers) ? d._mjrDupMembers : [d], I = new Set(u.map((S) => String((S == null ? void 0 : S.id) || ""))), p = [
...u,
- ...[l].filter((M) => !I.has(String((M == null ? void 0 : M.id) || "")))
+ ...[l].filter((S) => !I.has(String((S == null ? void 0 : S.id) || "")))
];
d._mjrDupStack = !0, d._mjrDupMembers = p, d._mjrDupCount = p.length, d._mjrNameCollision = !1, delete d._mjrNameCollisionCount, delete d._mjrNameCollisionPaths, l._mjrNameCollision = !1, delete l._mjrNameCollisionCount, delete l._mjrNameCollisionPaths, l._mjrDupStack = !1, l._mjrDupMembers = null, l._mjrDupCount = 0;
continue;
@@ -42130,8 +42230,8 @@ function JL(e, t) {
}
e.assets = r, e.assetIdSet = n, e.seenKeys = i;
}
-function Ba(e, t) {
- var l, a, c, s, d, u, I, p, M, Z, A;
+function Ua(e, t) {
+ var l, a, c, s, d, u, I, p, S, A, C;
const n = t.upsertState.get(e);
if (!n || n.pending.size === 0 || n.flushing) return;
n.flushing = !0, n.timer && (clearTimeout(n.timer), n.timer = null);
@@ -42140,24 +42240,24 @@ function Ba(e, t) {
const o = t.getOrCreateState(e), r = t.ensureVirtualGrid(e, o);
try {
let g = !1;
- for (const [h, f] of i.entries()) {
- const b = OL(f);
+ for (const [Z, f] of i.entries()) {
+ const b = Wp(f);
o.assetKeyFn = t.assetKey;
- const v = XI(f, o, t.loadMajoorSettings);
- if (Array.isArray(v == null ? void 0 : v.removed) && v.removed.length) {
- const w = new Set(v.removed);
- o.assets = o.assets.filter((X) => {
- const V = !w.has(X);
- return V || os(o, X, o), V;
+ const L = NI(f, o, t.loadMajoorSettings);
+ if (Array.isArray(L == null ? void 0 : L.removed) && L.removed.length) {
+ const w = new Set(L.removed);
+ o.assets = o.assets.filter((R) => {
+ const Y = !w.has(R);
+ return Y || ls(o, R, o), Y;
});
try {
- o.hiddenPngSiblings = (Number(o.hiddenPngSiblings || 0) || 0) + v.removed.length;
- } catch (X) {
- (l = console.debug) == null || l.call(console, X);
+ o.hiddenPngSiblings = (Number(o.hiddenPngSiblings || 0) || 0) + L.removed.length;
+ } catch (R) {
+ (l = console.debug) == null || l.call(console, R);
}
g = !0;
}
- if (v != null && v.hidden) {
+ if (L != null && L.hidden) {
try {
o.hiddenPngSiblings = (Number(o.hiddenPngSiblings || 0) || 0) + 1;
} catch (w) {
@@ -42165,53 +42265,60 @@ function Ba(e, t) {
}
continue;
}
- const C = o.assets.findIndex((w) => String(w.id) === h), S = C > -1 ? o.assets[C] : null, W = S ? { ...S, ...f } : f, y = C > -1 ? C : zL(o, h, W), k = y > -1 ? o.assets[y] : null, G = k ? { ...k, ...f } : W, z = t.assetKey(W);
- if (!kL(e, G)) {
+ const h = o.assets.findIndex((w) => String(w.id) === Z), G = h > -1 ? o.assets[h] : null, W = G ? { ...G, ...f } : f, y = h > -1 ? h : JL(o, Z, W), X = y > -1 ? o.assets[y] : null, x = X ? { ...X, ...f } : W, T = t.assetKey(W);
+ if (!NL(e, x)) {
if (y > -1) {
+ if (TL(f, X)) {
+ Object.assign(X, f), b || Vc(X), o.assets[y] = { ...X }, g = !0;
+ continue;
+ }
const [w] = o.assets.splice(y, 1);
- os(o, w, o), g = !0;
+ ls(o, w, o), g = !0;
}
continue;
}
if (y > -1) {
- const w = t.assetKey(k);
- Object.assign(k, f), b || Om(k);
- const X = { ...k }, V = t.assetKey(X);
- o.assets[y] = X, w && w !== V && ((s = (c = o.seenKeys) == null ? void 0 : c.delete) == null || s.call(c, w), V && ((u = (d = o.seenKeys) == null ? void 0 : d.add) == null || u.call(d, V))), g = !0;
- } else if (!(o.seenKeys.has(z) || f.id != null && ((p = (I = o.assetIdSet) == null ? void 0 : I.has) == null ? void 0 : p.call(I, h)))) {
- const X = e.dataset.mjrSort || "mtime_desc", V = b ? W : Om({ ...W }), R = FL(o.assets, V, X);
- o.seenKeys.add(z), f.id != null && ((Z = (M = o.assetIdSet) == null ? void 0 : M.add) == null || Z.call(M, h)), o.assets.splice(R, 0, V), g = !0;
+ const w = t.assetKey(X);
+ Object.assign(X, f), b || Vc(X);
+ const R = { ...X }, Y = t.assetKey(R);
+ o.assets[y] = R, w && w !== Y && ((s = (c = o.seenKeys) == null ? void 0 : c.delete) == null || s.call(c, w), Y && ((u = (d = o.seenKeys) == null ? void 0 : d.add) == null || u.call(d, Y))), g = !0;
+ } else if (!(o.seenKeys.has(T) || f.id != null && ((p = (I = o.assetIdSet) == null ? void 0 : I.has) == null ? void 0 : p.call(I, Z)))) {
+ const R = e.dataset.mjrSort || "mtime_desc", Y = b ? W : Vc({ ...W }), F = zL(o.assets, Y, R);
+ o.seenKeys.add(T), f.id != null && ((A = (S = o.assetIdSet) == null ? void 0 : S.add) == null || A.call(S, Z)), o.assets.splice(F, 0, Y), g = !0;
}
}
if (g && r) {
- JL(o, t);
+ BL(o, t);
try {
e.dataset.mjrHiddenPngSiblings = String(
Number(o.hiddenPngSiblings || 0) || 0
);
- } catch (h) {
- (A = console.debug) == null || A.call(console, h);
+ } catch (Z) {
+ (C = console.debug) == null || C.call(console, Z);
}
r.setItems(o.assets);
}
} finally {
- n.flushing = !1, n.pending.size > 0 && !n.timer && (n.timer = setTimeout(() => {
- n.timer = null, Ba(e, t);
- }, t.debounceMs));
+ if (n.flushing = !1, n.pending.size > 0 && !n.timer) {
+ const g = Math.min(16, t.debounceMs);
+ n.timer = setTimeout(() => {
+ n.timer = null, Ua(e, t);
+ }, g);
+ }
}
}
-function Jm(e, t, n) {
+function Tm(e, t, n) {
if (!t || !t.id) return !1;
const i = n.getOrCreateState(e), o = String(t.id);
if (!n.ensureVirtualGrid(e, i)) return !1;
- const l = Cp(e, n.upsertState);
- return l.pending.set(o, t), l.pending.size >= n.maxBatchSize ? Ba(e, n) : !l.timer && !l.flushing && (l.timer = setTimeout(() => {
- l.timer = null, Ba(e, n);
+ const l = Ap(e, n.upsertState);
+ return l.pending.set(o, t), l.pending.size >= n.maxBatchSize ? Ua(e, n) : !l.timer && !l.flushing && (l.timer = setTimeout(() => {
+ l.timer = null, Ua(e, n);
}, n.debounceMs)), !0;
}
-const Ii = /* @__PURE__ */ new Map(), TL = 8, BL = 800, Zp = "mjr_grid_snapshot_cache_v2", Ap = 1800 * 1e3, UL = 200, KL = 50, Lc = /* @__PURE__ */ new WeakMap(), El = 50;
-let Tm = !1;
-const DL = [
+const pi = /* @__PURE__ */ new Map(), UL = 8, KL = 800, wp = "mjr_grid_snapshot_cache_v2", Mp = 1800 * 1e3, DL = 200, EL = 50, Yc = /* @__PURE__ */ new WeakMap(), Hl = 50;
+let Bm = !1;
+const HL = [
"id",
"filename",
"name",
@@ -42263,130 +42370,142 @@ const DL = [
"date",
"date_exact"
];
-function Bm(e) {
+function Um(e) {
return new Promise((t) => setTimeout(t, Math.max(0, Number(e) || 0)));
}
-function Jn(e, t = "") {
+function Fn(e, t = "") {
try {
return String(e ?? t).trim();
} catch {
return String(t);
}
}
-function Yc(e = {}) {
+function qL(e) {
+ if (!e || typeof e != "object") return "";
+ if (e.id != null && String(e.id).trim())
+ return `id:${String(e.id).trim()}`;
+ const t = String((e == null ? void 0 : e.type) || (e == null ? void 0 : e.source) || "output").trim().toLowerCase(), n = String(Mi(e) || "").trim().toLowerCase(), i = String((e == null ? void 0 : e.subfolder) || "").trim().toLowerCase(), o = String((e == null ? void 0 : e.filename) || "").trim().toLowerCase();
+ if (o) return `${t}|${n}|${i}|${o}`;
+ const r = String(
+ (e == null ? void 0 : e.filepath) || (e == null ? void 0 : e.path) || (e == null ? void 0 : e.fullpath) || (e == null ? void 0 : e.full_path) || ""
+ ).trim().toLowerCase();
+ return r ? `${t}|${n}|path|${r}` : "";
+}
+function kc(e = {}) {
return JSON.stringify({
- scope: Jn(e.scope || "output", "output"),
- query: Jn(e.query || "*", "*"),
- customRootId: Jn(e.customRootId || ""),
- subfolder: Jn(e.subfolder || ""),
- collectionId: Jn(e.collectionId || ""),
- viewScope: Jn(e.viewScope || ""),
- kind: Jn(e.kind || ""),
- workflowOnly: Jn(e.workflowOnly ? "1" : ""),
- minRating: Jn(e.minRating || ""),
- minSizeMB: Jn(e.minSizeMB || ""),
- maxSizeMB: Jn(e.maxSizeMB || ""),
- resolutionCompare: Jn(e.resolutionCompare || ""),
- minWidth: Jn(e.minWidth || ""),
- minHeight: Jn(e.minHeight || ""),
- maxWidth: Jn(e.maxWidth || ""),
- maxHeight: Jn(e.maxHeight || ""),
- workflowType: Jn(e.workflowType || "").toUpperCase(),
- dateRange: Jn(e.dateRange || ""),
- dateExact: Jn(e.dateExact || ""),
- sort: Jn(e.sort || "mtime_desc", "mtime_desc")
+ scope: Fn(e.scope || "output", "output"),
+ query: Fn(e.query || "*", "*"),
+ customRootId: Fn(e.customRootId || ""),
+ subfolder: Fn(e.subfolder || ""),
+ collectionId: Fn(e.collectionId || ""),
+ viewScope: Fn(e.viewScope || ""),
+ kind: Fn(e.kind || ""),
+ workflowOnly: Fn(e.workflowOnly ? "1" : ""),
+ minRating: Fn(e.minRating || ""),
+ minSizeMB: Fn(e.minSizeMB || ""),
+ maxSizeMB: Fn(e.maxSizeMB || ""),
+ resolutionCompare: Fn(e.resolutionCompare || ""),
+ minWidth: Fn(e.minWidth || ""),
+ minHeight: Fn(e.minHeight || ""),
+ maxWidth: Fn(e.maxWidth || ""),
+ maxHeight: Fn(e.maxHeight || ""),
+ workflowType: Fn(e.workflowType || "").toUpperCase(),
+ dateRange: Fn(e.dateRange || ""),
+ dateExact: Fn(e.dateExact || ""),
+ sort: Fn(e.sort || "mtime_desc", "mtime_desc"),
+ semanticMode: Fn(e.semanticMode ? "1" : "")
});
}
-function Wp() {
+function Sp() {
try {
return (globalThis == null ? void 0 : globalThis.sessionStorage) || null;
} catch {
return null;
}
}
-function wp(e) {
+function Gp(e) {
if (!e || typeof e != "object") return null;
const t = {};
- for (const n of DL)
+ for (const n of HL)
e[n] !== void 0 && (t[n] = e[n]);
return !t.type && t.source && (t.type = t.source), !t.source && t.type && (t.source = t.type), t.kind || (t.kind = e.kind || "image"), Array.isArray(t.tags) && (t.tags = t.tags.slice(0, 80)), Array.isArray(t.auto_tags) && (t.auto_tags = t.auto_tags.slice(0, 80)), t;
}
-function Mp(e) {
+function xp(e) {
if (!e || typeof e != "object") return null;
const t = Number(e.at || 0) || 0;
- if (!t || Date.now() - t > Ap) return null;
- const n = Array.isArray(e.assets) ? e.assets.map(wp).filter(Boolean) : [];
+ if (!t || Date.now() - t > Mp) return null;
+ const n = Array.isArray(e.assets) ? e.assets.map(Gp).filter(Boolean) : [];
if (!n.length) return null;
const i = Number(e.total ?? n.length), o = Number(e.offset ?? n.length);
return {
assets: n,
- title: Jn(e.title || "Cached", "Cached"),
+ title: Fn(e.title || "Cached", "Cached"),
at: t,
total: Number.isFinite(i) ? Math.max(0, i) : n.length,
offset: Number.isFinite(o) ? Math.max(n.length, o) : n.length,
done: !!e.done,
- query: Jn(e.query || "*", "*")
+ query: Fn(e.query || "*", "*")
};
}
-function Sp() {
+function jp() {
const e = Date.now();
- for (const [t, n] of Ii.entries()) {
+ for (const [t, n] of pi.entries()) {
const i = Number((n == null ? void 0 : n.at) || 0) || 0;
- (!i || e - i > Ap) && Ii.delete(t);
+ (!i || e - i > Mp) && pi.delete(t);
}
- for (; Ii.size > TL; ) {
- const t = Ii.keys().next().value;
+ for (; pi.size > UL; ) {
+ const t = pi.keys().next().value;
if (!t) break;
- Ii.delete(t);
+ pi.delete(t);
}
}
-function EL() {
+function PL() {
var e, t;
- if (!Tm) {
- Tm = !0;
+ if (!Bm) {
+ Bm = !0;
try {
- const n = Wp(), i = (e = n == null ? void 0 : n.getItem) == null ? void 0 : e.call(n, Zp);
+ const n = Sp(), i = (e = n == null ? void 0 : n.getItem) == null ? void 0 : e.call(n, wp);
if (!i) return;
const o = JSON.parse(i), r = Array.isArray(o == null ? void 0 : o.entries) ? o.entries : [];
for (const l of r) {
if (!Array.isArray(l) || l.length < 2) continue;
- const a = String(l[0] || ""), c = Mp(l[1]);
- a && c && Ii.set(a, c);
+ const a = String(l[0] || ""), c = xp(l[1]);
+ a && c && pi.set(a, c);
}
- Sp();
+ jp();
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
}
}
-function ws() {
+function Ss() {
var e;
try {
- Sp();
- const t = Wp();
+ jp();
+ const t = Sp();
if (!t) return;
t.setItem(
- Zp,
+ wp,
JSON.stringify({
version: 2,
- entries: Array.from(Ii.entries())
+ entries: Array.from(pi.entries())
})
);
} catch (t) {
(e = console.debug) == null || e.call(console, t);
}
}
-function HL(e) {
- EL();
- const t = Mp(Ii.get(e));
- return t ? (Ii.delete(e), Ii.set(e, t), ws(), t) : (Ii.delete(e), ws(), null);
+function QL(e) {
+ PL();
+ const t = xp(pi.get(e));
+ return t ? (pi.delete(e), pi.set(e, t), Ss(), t) : (pi.delete(e), Ss(), null);
}
-function Um(e) {
+function Km(e) {
if (e == null) return e;
const t = String(e);
return t.trim() === "" ? t : t.trim() === "*" ? "*" : t.replace(/[\u0000-\u001f\u007f]+/g, " ").replace(/[<>]/g, " ").replace(/\s+/g, " ").trim() || t;
}
-function qL(e) {
+function _L(e) {
var t, n;
if (typeof e == "string") return e;
if (e && typeof e == "object") {
@@ -42403,10 +42522,10 @@ function qL(e) {
}
return String(e || "");
}
-function PL(e) {
+function $L(e) {
return e ? typeof e == "object" && "value" in e ? e.value || null : e : null;
}
-function QL(e) {
+function eV(e) {
var n;
const t = String(e ?? "");
try {
@@ -42417,8 +42536,8 @@ function QL(e) {
}
return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
-async function Km() {
- await Ao(), await new Promise((e) => {
+async function Dm() {
+ await wo(), await new Promise((e) => {
try {
requestAnimationFrame(() => requestAnimationFrame(e));
} catch {
@@ -42426,7 +42545,7 @@ async function Km() {
}
});
}
-function Vc(e, t) {
+function Xc(e, t) {
const n = String(e || "Failed to load");
try {
const i = String((t == null ? void 0 : t.message) || t || "").trim(), o = i.toLowerCase();
@@ -42435,16 +42554,16 @@ function Vc(e, t) {
return n;
}
}
-function _L(e, t) {
- const n = Math.max(1, Math.min(ye.MAX_PAGE_SIZE, Number(e) || 1)), i = Math.max(0, Number(t) || 0);
+function tV(e, t) {
+ const n = Math.max(1, Math.min(fe.MAX_PAGE_SIZE, Number(e) || 1)), i = Math.max(0, Number(t) || 0);
if (i <= 0) return n;
const o = 2 ** Math.min(i, 5);
- return Math.max(1, Math.min(ye.MAX_PAGE_SIZE, n * o));
+ return Math.max(1, Math.min(fe.MAX_PAGE_SIZE, n * o));
}
-function Hl(e) {
+function ql(e) {
e.seenKeys = /* @__PURE__ */ new Set(), e.assetIdSet = /* @__PURE__ */ new Set(), e.filenameCounts = /* @__PURE__ */ new Map(), e.nonImageSiblingKeys = /* @__PURE__ */ new Set(), e.stemMap = /* @__PURE__ */ new Map(), e.renderedFilenameMap = /* @__PURE__ */ new Map(), e.hiddenPngSiblings = 0;
}
-function $L({
+function nV({
gridContainerRef: e,
state: t,
setLoadingMessage: n,
@@ -42460,283 +42579,316 @@ function $L({
},
canLoadMore: I = null
} = {}) {
- let p = !1, M = null;
- function Z() {
- return PL(e);
+ var oe;
+ let p = !1, S = null, A = null;
+ function C() {
+ return $L(e);
}
- function A() {
- var D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $, _, le, se, de, Ze, Fe;
- const T = Z();
+ function g() {
+ var j, O, D, q, ee, ce, ue, U, Q, _, le, de, se, ge, je, Se, ke, we, Je, $e, qe;
+ const M = C();
return {
- scope: ((D = T == null ? void 0 : T.dataset) == null ? void 0 : D.mjrScope) || "output",
- query: ((Q = T == null ? void 0 : T.dataset) == null ? void 0 : Q.mjrQuery) || t.query || "*",
- customRootId: ((E = T == null ? void 0 : T.dataset) == null ? void 0 : E.mjrCustomRootId) || "",
- subfolder: ((K = T == null ? void 0 : T.dataset) == null ? void 0 : K.mjrSubfolder) || "",
- collectionId: ((F = T == null ? void 0 : T.dataset) == null ? void 0 : F.mjrCollectionId) || "",
- viewScope: ((Y = T == null ? void 0 : T.dataset) == null ? void 0 : Y.mjrViewScope) || "",
- kind: ((U = T == null ? void 0 : T.dataset) == null ? void 0 : U.mjrFilterKind) || "",
- workflowOnly: ((P = T == null ? void 0 : T.dataset) == null ? void 0 : P.mjrFilterWorkflowOnly) === "1",
- minRating: ((ee = T == null ? void 0 : T.dataset) == null ? void 0 : ee.mjrFilterMinRating) || "",
- minSizeMB: ((oe = T == null ? void 0 : T.dataset) == null ? void 0 : oe.mjrFilterMinSizeMB) || "",
- maxSizeMB: ((ce = T == null ? void 0 : T.dataset) == null ? void 0 : ce.mjrFilterMaxSizeMB) || "",
- resolutionCompare: ((pe = T == null ? void 0 : T.dataset) == null ? void 0 : pe.mjrFilterResolutionCompare) || "",
- minWidth: ((H = T == null ? void 0 : T.dataset) == null ? void 0 : H.mjrFilterMinWidth) || "",
- minHeight: (($ = T == null ? void 0 : T.dataset) == null ? void 0 : $.mjrFilterMinHeight) || "",
- maxWidth: ((_ = T == null ? void 0 : T.dataset) == null ? void 0 : _.mjrFilterMaxWidth) || "",
- maxHeight: ((le = T == null ? void 0 : T.dataset) == null ? void 0 : le.mjrFilterMaxHeight) || "",
- workflowType: ((se = T == null ? void 0 : T.dataset) == null ? void 0 : se.mjrFilterWorkflowType) || "",
- dateRange: ((de = T == null ? void 0 : T.dataset) == null ? void 0 : de.mjrFilterDateRange) || "",
- dateExact: ((Ze = T == null ? void 0 : T.dataset) == null ? void 0 : Ze.mjrFilterDateExact) || "",
- sort: ((Fe = T == null ? void 0 : T.dataset) == null ? void 0 : Fe.mjrSort) || "mtime_desc"
+ scope: ((j = M == null ? void 0 : M.dataset) == null ? void 0 : j.mjrScope) || "output",
+ query: ((O = M == null ? void 0 : M.dataset) == null ? void 0 : O.mjrQuery) || t.query || "*",
+ customRootId: ((D = M == null ? void 0 : M.dataset) == null ? void 0 : D.mjrCustomRootId) || "",
+ subfolder: ((q = M == null ? void 0 : M.dataset) == null ? void 0 : q.mjrSubfolder) || "",
+ collectionId: ((ee = M == null ? void 0 : M.dataset) == null ? void 0 : ee.mjrCollectionId) || "",
+ viewScope: ((ce = M == null ? void 0 : M.dataset) == null ? void 0 : ce.mjrViewScope) || "",
+ kind: ((ue = M == null ? void 0 : M.dataset) == null ? void 0 : ue.mjrFilterKind) || "",
+ workflowOnly: ((U = M == null ? void 0 : M.dataset) == null ? void 0 : U.mjrFilterWorkflowOnly) === "1",
+ minRating: ((Q = M == null ? void 0 : M.dataset) == null ? void 0 : Q.mjrFilterMinRating) || "",
+ minSizeMB: ((_ = M == null ? void 0 : M.dataset) == null ? void 0 : _.mjrFilterMinSizeMB) || "",
+ maxSizeMB: ((le = M == null ? void 0 : M.dataset) == null ? void 0 : le.mjrFilterMaxSizeMB) || "",
+ resolutionCompare: ((de = M == null ? void 0 : M.dataset) == null ? void 0 : de.mjrFilterResolutionCompare) || "",
+ minWidth: ((se = M == null ? void 0 : M.dataset) == null ? void 0 : se.mjrFilterMinWidth) || "",
+ minHeight: ((ge = M == null ? void 0 : M.dataset) == null ? void 0 : ge.mjrFilterMinHeight) || "",
+ maxWidth: ((je = M == null ? void 0 : M.dataset) == null ? void 0 : je.mjrFilterMaxWidth) || "",
+ maxHeight: ((Se = M == null ? void 0 : M.dataset) == null ? void 0 : Se.mjrFilterMaxHeight) || "",
+ workflowType: ((ke = M == null ? void 0 : M.dataset) == null ? void 0 : ke.mjrFilterWorkflowType) || "",
+ dateRange: ((we = M == null ? void 0 : M.dataset) == null ? void 0 : we.mjrFilterDateRange) || "",
+ dateExact: ((Je = M == null ? void 0 : M.dataset) == null ? void 0 : Je.mjrFilterDateExact) || "",
+ sort: (($e = M == null ? void 0 : M.dataset) == null ? void 0 : $e.mjrSort) || "mtime_desc",
+ semanticMode: ((qe = M == null ? void 0 : M.dataset) == null ? void 0 : qe.mjrSemanticMode) === "1"
};
}
- function g({ reset: T = !0, preserveVisibleUntilReady: D = !0 } = {}) {
- return !T || D === !1 ? !1 : Array.isArray(t.assets) && t.assets.length > 0;
+ function Z({ reset: M = !0, preserveVisibleUntilReady: j = !0 } = {}) {
+ return !M || j === !1 ? !1 : Array.isArray(t.assets) && t.assets.length > 0;
}
- function h() {
- var T;
+ function f() {
+ var M;
try {
if (typeof I == "function")
return !!I();
- } catch (D) {
- (T = console.debug) == null || T.call(console, D);
- }
- return sd(Z(), s());
- }
- function f() {
- var T, D;
- if (!ye.DEFER_GRID_FETCH_DURING_EXECUTION)
- return !1;
- try {
- return !!String(((T = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : T.active_prompt_id) || "").trim();
- } catch (Q) {
- return (D = console.debug) == null || D.call(console, Q), !1;
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
}
+ return ud(C(), s());
}
function b() {
- var T, D;
+ var M, j;
+ if (!fe.DEFER_GRID_FETCH_DURING_EXECUTION)
+ return !1;
try {
- M != null && M.timer && clearTimeout(M.timer);
- } catch (Q) {
- (T = console.debug) == null || T.call(console, Q);
+ return !!String(((M = window == null ? void 0 : window.__MJR_EXECUTION_RUNTIME__) == null ? void 0 : M.active_prompt_id) || "").trim();
+ } catch (O) {
+ return (j = console.debug) == null || j.call(console, O), !1;
}
- try {
- M != null && M.listener && window.removeEventListener(ft.RUNTIME_STATUS, M.listener);
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
- }
- M = null;
}
- function v(T, D = {}) {
- var K;
- b();
- const Q = () => {
- var F;
- if (f()) {
+ function L() {
+ var M, j;
+ try {
+ S != null && S.timer && clearTimeout(S.timer);
+ } catch (O) {
+ (M = console.debug) == null || M.call(console, O);
+ }
+ try {
+ S != null && S.listener && window.removeEventListener(ht.RUNTIME_STATUS, S.listener);
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
+ }
+ S = null;
+ }
+ function h() {
+ var M;
+ try {
+ A && clearTimeout(A);
+ } catch (j) {
+ (M = console.debug) == null || M.call(console, j);
+ }
+ A = null;
+ }
+ function G(M, j = fe.PREFETCH_NEXT_PAGE_DELAY_MS) {
+ if (!fe.PREFETCH_NEXT_PAGE)
+ return;
+ h();
+ const O = Math.max(0, Number(j) || 0);
+ A = setTimeout(() => {
+ A = null, !(t.requestId !== M || t.done || t.loading) && R().catch((D) => {
+ var q;
+ (q = console.debug) == null || q.call(console, "[AssetsManager][GridLoader] Delayed prefetch failed", D);
+ });
+ }, O);
+ }
+ function W(M, j = {}) {
+ var q;
+ L();
+ const O = () => {
+ var ue, U;
+ if (b()) {
try {
- M = {
- ...M,
- timer: setTimeout(Q, 1250)
+ S = {
+ ...S,
+ timer: setTimeout(O, 1250)
};
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y);
+ } catch (Q) {
+ (ue = console.debug) == null || ue.call(console, Q);
}
return;
}
- b(), Promise.resolve().then(
- () => x(T, {
- ...D || {},
+ L();
+ const ee = C(), ce = String(((U = ee == null ? void 0 : ee.dataset) == null ? void 0 : U.mjrQuery) || "").trim() || M;
+ Promise.resolve().then(
+ () => Y(ce, {
+ ...j || {},
reset: !0,
preserveVisibleUntilReady: !0
})
- ).catch((Y) => {
- var U;
- return (U = console.debug) == null ? void 0 : U.call(console, Y);
+ ).catch((Q) => {
+ var _;
+ return (_ = console.debug) == null ? void 0 : _.call(console, Q);
});
- }, E = (F) => {
- var U;
- String(((U = F == null ? void 0 : F.detail) == null ? void 0 : U.active_prompt_id) || "").trim() || Q();
+ }, D = (ee) => {
+ var ue;
+ String(((ue = ee == null ? void 0 : ee.detail) == null ? void 0 : ue.active_prompt_id) || "").trim() || O();
};
- M = {
- listener: E,
- timer: setTimeout(Q, 1250)
+ S = {
+ listener: D,
+ timer: setTimeout(O, 1250)
};
try {
- window.addEventListener(ft.RUNTIME_STATUS, E);
- } catch (F) {
- (K = console.debug) == null || K.call(console, F);
+ window.addEventListener(ht.RUNTIME_STATUS, D);
+ } catch (ee) {
+ (q = console.debug) == null || q.call(console, ee);
}
}
- function C(T, D = null) {
- var E;
- if (!T || typeof T != "object") return "";
- const Q = T.id != null ? `id:${T.id}` : `${T.type || ""}|${vi(T)}|${T.filepath || ""}|${T.subfolder || ""}|${T.filename || ""}`;
- try {
- const K = D || Z() || (globalThis == null ? void 0 : globalThis.__MJR_LAST_ASSETKEY_GRID__);
- return XW(K, T, Q);
- } catch (K) {
- return (E = console.debug) == null || E.call(console, K), Q;
- }
- }
- function S(T = "") {
- var D, Q, E, K, F, Y, U, P, ee, oe, ce, pe, H, $, _, le, se, de, Ze, Fe, xe, ze;
- try {
- const We = Z(), De = Array.isArray(t.assets) ? t.assets : [];
- if (!We || !De.length) return;
- const Pe = De.slice(0, BL).map(wp).filter(Boolean);
- if (!Pe.length) return;
- const Qe = Pe.length < De.length, Ue = Number(t.offset || Pe.length) || Pe.length, Ee = Number(t.total ?? Pe.length), Re = Yc({
- scope: ((D = We.dataset) == null ? void 0 : D.mjrScope) || "output",
- query: ((Q = We.dataset) == null ? void 0 : Q.mjrQuery) || t.query || "*",
- customRootId: ((E = We.dataset) == null ? void 0 : E.mjrCustomRootId) || "",
- subfolder: ((K = We.dataset) == null ? void 0 : K.mjrSubfolder) || "",
- collectionId: ((F = We.dataset) == null ? void 0 : F.mjrCollectionId) || "",
- viewScope: ((Y = We.dataset) == null ? void 0 : Y.mjrViewScope) || "",
- kind: ((U = We.dataset) == null ? void 0 : U.mjrFilterKind) || "",
- workflowOnly: ((P = We.dataset) == null ? void 0 : P.mjrFilterWorkflowOnly) === "1",
- minRating: ((ee = We.dataset) == null ? void 0 : ee.mjrFilterMinRating) || "",
- minSizeMB: ((oe = We.dataset) == null ? void 0 : oe.mjrFilterMinSizeMB) || "",
- maxSizeMB: ((ce = We.dataset) == null ? void 0 : ce.mjrFilterMaxSizeMB) || "",
- resolutionCompare: ((pe = We.dataset) == null ? void 0 : pe.mjrFilterResolutionCompare) || "",
- minWidth: ((H = We.dataset) == null ? void 0 : H.mjrFilterMinWidth) || "",
- minHeight: (($ = We.dataset) == null ? void 0 : $.mjrFilterMinHeight) || "",
- maxWidth: ((_ = We.dataset) == null ? void 0 : _.mjrFilterMaxWidth) || "",
- maxHeight: ((le = We.dataset) == null ? void 0 : le.mjrFilterMaxHeight) || "",
- workflowType: ((se = We.dataset) == null ? void 0 : se.mjrFilterWorkflowType) || "",
- dateRange: ((de = We.dataset) == null ? void 0 : de.mjrFilterDateRange) || "",
- dateExact: ((Ze = We.dataset) == null ? void 0 : Ze.mjrFilterDateExact) || "",
- sort: ((Fe = We.dataset) == null ? void 0 : Fe.mjrSort) || "mtime_desc"
- });
- if (!Re) return;
- Ii.delete(Re), Ii.set(Re, {
- assets: Pe,
- title: String(T || "").trim(),
- query: String(t.query || ((xe = We.dataset) == null ? void 0 : xe.mjrQuery) || "*").trim() || "*",
- total: Number.isFinite(Ee) ? Ee : Pe.length,
- offset: Qe ? Pe.length : Math.max(Pe.length, Ue),
- done: Qe ? !1 : !!t.done,
- at: Date.now()
- }), ws();
- } catch (We) {
- (ze = console.debug) == null || ze.call(console, We);
- }
- }
- function W() {
+ function y(M, j = null) {
var D;
- const T = Z();
- if (T)
+ if (!M || typeof M != "object") return "";
+ const O = M.id != null ? `id:${M.id}` : `${M.type || ""}|${Mi(M)}|${M.filepath || ""}|${M.subfolder || ""}|${M.filename || ""}`;
+ try {
+ const q = j || C() || (globalThis == null ? void 0 : globalThis.__MJR_LAST_ASSETKEY_GRID__);
+ return FW(q, M, O);
+ } catch (q) {
+ return (D = console.debug) == null || D.call(console, q), O;
+ }
+ }
+ function X(M = "") {
+ var j, O, D, q, ee, ce, ue, U, Q, _, le, de, se, ge, je, Se, ke, we, Je, $e, qe, Ue;
+ try {
+ const Te = C(), Oe = Array.isArray(t.assets) ? t.assets : [];
+ if (!Te || !Oe.length) return;
+ const pt = Oe.slice(0, KL).map(Gp).filter(Boolean);
+ if (!pt.length) return;
+ const Me = pt.length < Oe.length, Xt = Number(t.offset || pt.length) || pt.length, Mt = Number(t.total ?? pt.length), me = kc({
+ scope: ((j = Te.dataset) == null ? void 0 : j.mjrScope) || "output",
+ query: ((O = Te.dataset) == null ? void 0 : O.mjrQuery) || t.query || "*",
+ customRootId: ((D = Te.dataset) == null ? void 0 : D.mjrCustomRootId) || "",
+ subfolder: ((q = Te.dataset) == null ? void 0 : q.mjrSubfolder) || "",
+ collectionId: ((ee = Te.dataset) == null ? void 0 : ee.mjrCollectionId) || "",
+ viewScope: ((ce = Te.dataset) == null ? void 0 : ce.mjrViewScope) || "",
+ kind: ((ue = Te.dataset) == null ? void 0 : ue.mjrFilterKind) || "",
+ workflowOnly: ((U = Te.dataset) == null ? void 0 : U.mjrFilterWorkflowOnly) === "1",
+ minRating: ((Q = Te.dataset) == null ? void 0 : Q.mjrFilterMinRating) || "",
+ minSizeMB: ((_ = Te.dataset) == null ? void 0 : _.mjrFilterMinSizeMB) || "",
+ maxSizeMB: ((le = Te.dataset) == null ? void 0 : le.mjrFilterMaxSizeMB) || "",
+ resolutionCompare: ((de = Te.dataset) == null ? void 0 : de.mjrFilterResolutionCompare) || "",
+ minWidth: ((se = Te.dataset) == null ? void 0 : se.mjrFilterMinWidth) || "",
+ minHeight: ((ge = Te.dataset) == null ? void 0 : ge.mjrFilterMinHeight) || "",
+ maxWidth: ((je = Te.dataset) == null ? void 0 : je.mjrFilterMaxWidth) || "",
+ maxHeight: ((Se = Te.dataset) == null ? void 0 : Se.mjrFilterMaxHeight) || "",
+ workflowType: ((ke = Te.dataset) == null ? void 0 : ke.mjrFilterWorkflowType) || "",
+ dateRange: ((we = Te.dataset) == null ? void 0 : we.mjrFilterDateRange) || "",
+ dateExact: ((Je = Te.dataset) == null ? void 0 : Je.mjrFilterDateExact) || "",
+ sort: (($e = Te.dataset) == null ? void 0 : $e.mjrSort) || "mtime_desc"
+ });
+ if (!me) return;
+ pi.delete(me), pi.set(me, {
+ assets: pt,
+ title: String(M || "").trim(),
+ query: String(t.query || ((qe = Te.dataset) == null ? void 0 : qe.mjrQuery) || "*").trim() || "*",
+ total: Number.isFinite(Mt) ? Mt : pt.length,
+ offset: Me ? pt.length : Math.max(pt.length, Xt),
+ done: Me ? !1 : !!t.done,
+ at: Date.now()
+ }), Ss();
+ } catch (Te) {
+ (Ue = console.debug) == null || Ue.call(console, Te);
+ }
+ }
+ function x() {
+ var j;
+ const M = C();
+ if (M)
try {
- const Q = Lc.get(T);
- if (!Q) return;
- Q.timer && (clearTimeout(Q.timer), Q.timer = null), Q.pending.clear(), Q.flushing = !1;
- } catch (Q) {
- (D = console.debug) == null || D.call(console, Q);
+ const O = Yc.get(M);
+ if (!O) return;
+ O.timer && (clearTimeout(O.timer), O.timer = null), O.pending.clear(), O.flushing = !1;
+ } catch (O) {
+ (j = console.debug) == null || j.call(console, O);
}
}
- function y(T, D) {
- return dZ(T, D, t, {
+ function T(M, j) {
+ return gZ(M, j, t, {
loadMajoorSettings: Xn,
clearGridMessage: () => {
r();
},
ensureVirtualGrid: () => t.virtualGrid,
- setFileBadgeCollision: mZ,
- assetKey: (Q) => C(Q, T),
- ensureDupStackCard: (Q, E, K) => RW(Q, E, K)
+ setFileBadgeCollision: bZ,
+ assetKey: (O) => y(O, M),
+ ensureDupStackCard: (O, D, q) => zW(O, D, q)
});
}
- async function k(T, D, Q, { requestId: E = 0, signal: K = null } = {}) {
- var Y, U, P, ee, oe;
- const F = Z();
- if (!F)
+ async function v(M, j, O, { requestId: D = 0, signal: q = null } = {}) {
+ var ce, ue, U, Q, _;
+ const ee = C();
+ if (!ee)
return { ok: !1, error: "Grid unavailable" };
- if (Q === 0) {
- const ce = String(((Y = F.dataset) == null ? void 0 : Y.mjrScope) || "output").toLowerCase(), pe = String(((U = F.dataset) == null ? void 0 : U.mjrSort) || "mtime_desc").toLowerCase(), H = String(T || "*").trim() || "*";
- if (ce === "output" && H === "*" && pe === "mtime_desc") {
- const _ = ZL("output:*:mtime_desc");
- if (_)
+ if (O === 0) {
+ const le = String(((ce = ee.dataset) == null ? void 0 : ce.mjrScope) || "output").toLowerCase(), de = String(((ue = ee.dataset) == null ? void 0 : ue.mjrSort) || "mtime_desc").toLowerCase(), se = String(M || "*").trim() || "*";
+ if (le === "output" && se === "*" && de === "mtime_desc") {
+ const je = WL("output:*:mtime_desc");
+ if (je)
try {
- const le = await _, se = (P = le == null ? void 0 : le.data) == null ? void 0 : P.assets;
- if (le != null && le.ok && Array.isArray(se))
- return to("[Grid] Using early-fetched data:", se.length, "assets"), {
+ const Se = await je;
+ if (Number(t.requestId) !== Number(D))
+ return { ok: !1, stale: !0, error: "Stale early fetch" };
+ if (q != null && q.aborted)
+ return { ok: !1, aborted: !0, error: "Aborted" };
+ const ke = (U = Se == null ? void 0 : Se.data) == null ? void 0 : U.assets;
+ if (Se != null && Se.ok && Array.isArray(ke)) {
+ io("[Grid] Using early-fetched data:", ke.length, "assets");
+ const we = ((Q = Se.data) == null ? void 0 : Q.total) ?? ((_ = Se.meta) == null ? void 0 : _.total) ?? null;
+ return {
ok: !0,
- assets: se,
- total: Number(((ee = le.data) == null ? void 0 : ee.total) ?? ((oe = le.meta) == null ? void 0 : oe.total) ?? se.length) || 0,
- count: se.length,
- limit: D,
+ assets: ke,
+ total: we != null ? Number(we) || 0 : null,
+ count: ke.length,
+ limit: j,
offset: 0
};
- } catch (le) {
- to("[Grid] Early fetch failed, falling back to normal fetch", le);
+ }
+ } catch (Se) {
+ io("[Grid] Early fetch failed, falling back to normal fetch", Se);
}
}
}
- return XL(
- F,
- T,
- D,
- Q,
+ return RL(
+ ee,
+ M,
+ j,
+ O,
{
- sanitizeQuery: Um,
- buildListURL: Vs,
- get: Rt,
+ sanitizeQuery: Km,
+ buildListURL: Xs,
+ get: Ft,
getGridState: () => t
},
- { requestId: E, signal: K }
+ { requestId: D, signal: q }
);
}
- function G({ title: T = "" } = {}) {
- i(), Array.isArray(t.assets) && t.assets.length ? (r(), S(T || t.query)) : (!t.statusMessage || !t.statusError) && o("No assets found");
- const D = (Array.isArray(t.assets) ? t.assets : []).map((Q) => String((Q == null ? void 0 : Q.id) || "")).filter(Boolean);
- c(D, { activeId: t.activeId });
+ function w({ title: M = "" } = {}) {
+ i(), Array.isArray(t.assets) && t.assets.length ? (r(), X(M || t.query)) : (!t.statusMessage || !t.statusError) && o("No assets found");
+ const j = (Array.isArray(t.assets) ? t.assets : []).map((O) => String((O == null ? void 0 : O.id) || "")).filter(Boolean);
+ c(j, { activeId: t.activeId });
}
- async function z() {
- var F, Y, U, P;
- const T = Z();
- if (!T || t.loading || t.done) return { ok: !0, skipped: !0 };
- if (!h())
+ async function R() {
+ var ee, ce, ue, U;
+ const M = C();
+ if (!M || t.loading || t.done) return { ok: !0, skipped: !0 };
+ if (!f())
return { ok: !0, skipped: !0, hidden: !0 };
- if (f())
+ if (b())
return { ok: !0, skipped: !0, busy: !0 };
- const D = Math.max(
+ const j = Math.max(
1,
- Math.min(ye.MAX_PAGE_SIZE, ye.DEFAULT_PAGE_SIZE)
- ), Q = Date.now(), E = Number(t.total || 0) || 1e3, K = Math.min(
+ Math.min(fe.MAX_PAGE_SIZE, fe.DEFAULT_PAGE_SIZE)
+ ), O = Date.now(), D = Number(t.total || 0) || 1e3, q = Math.min(
200,
- Math.max(8, Math.ceil(E / 1e3 * 30))
+ Math.max(8, Math.ceil(D / 1e3 * 30))
);
t.loading = !0, r();
try {
- let ee = 0;
+ let Q = 0;
for (; !t.done; ) {
- if (!h())
+ if (!f())
return { ok: !0, skipped: !0, hidden: !0 };
- const oe = _L(D, ee), ce = await k(t.query, oe, t.offset, {
+ const _ = tV(j, Q), le = await v(t.query, _, t.offset, {
requestId: Number(t.requestId ?? 0) || 0,
- signal: ((F = t.abortController) == null ? void 0 : F.signal) || null
+ signal: ((ee = t.abortController) == null ? void 0 : ee.signal) || null
});
- if (!ce.ok)
- return ce.aborted || ce.stale || (t.done = !0, o(
- Vc("Failed to load assets", (ce == null ? void 0 : ce.error) || "Unknown error"),
+ if (!le.ok)
+ return le.aborted || le.stale || (t.done = !0, o(
+ Xc("Failed to load assets", (le == null ? void 0 : le.error) || "Unknown error"),
{ error: !0 }
- )), ce;
- ce.total != null && (t.total = Number(ce.total) || 0), p && (l({ query: t.query || "*", total: null, done: !1 }), Hl(t), p = !1);
- const pe = Number(ce.count || 0) || 0, H = VL({
- count: pe,
- limit: Number(ce.limit || oe) || oe,
+ )), le;
+ le.total != null && (t.total = Number(le.total) || 0), p && (l({ query: t.query || "*", total: null, done: !1 }), ql(t), p = !1);
+ const de = Number(le.count || 0) || 0, se = XL({
+ count: de,
+ limit: Number(le.limit || _) || _,
offset: t.offset,
- total: ce.total != null ? ce.total : t.total
- }), $ = Number(y(T, ce.assets || []) || 0) || 0;
- t.offset += H;
- const _ = t.done;
- if (t.done = H <= 0 || Number.isFinite(Number(t.total)) && Number(t.total || 0) > 0 && t.offset >= Number(t.total || 0), (ee > 0 || t.done) && to(`[Grid LoadPage] offset=${t.offset}, fetched=${pe}, consumed=${H}, added=${$}, limit=${oe}, done=${t.done}, visibleCount=${t.assets.length}, total=${t.total}, emptyBatches=${ee}/${K}`), t.done || $ > 0)
- return ($ > 0 || t.done) && S(t.query || ((Y = T.dataset) == null ? void 0 : Y.mjrQuery) || "*"), {
+ total: le.total != null ? le.total : t.total
+ }), ge = Number(T(M, le.assets || []) || 0) || 0;
+ t.offset += se;
+ const je = t.done;
+ if (t.done = se <= 0 || Number.isFinite(Number(t.total)) && Number(t.total || 0) > 0 && t.offset >= Number(t.total || 0), (Q > 0 || t.done) && io(`[Grid LoadPage] offset=${t.offset}, fetched=${de}, consumed=${se}, added=${ge}, limit=${_}, done=${t.done}, visibleCount=${t.assets.length}, total=${t.total}, emptyBatches=${Q}/${q}`), t.done || ge > 0)
+ return (ge > 0 || t.done) && X(t.query || ((ce = M.dataset) == null ? void 0 : ce.mjrQuery) || "*"), {
ok: !0,
- count: pe,
+ count: de,
total: t.total
};
- if (ee += 1, ee >= K)
- return to(`[Grid] Empty append batches limit reached: ${ee}/${K}`), {
+ if (Q += 1, Q >= q)
+ return io(`[Grid] Empty append batches limit reached: ${Q}/${q}`), {
ok: !0,
count: 0,
total: t.total,
@@ -42748,339 +42900,347 @@ function $L({
count: 0,
total: t.total
};
- } catch (ee) {
+ } catch (Q) {
try {
- if (String((ee == null ? void 0 : ee.name) || "") === "AbortError")
+ if (String((Q == null ? void 0 : Q.name) || "") === "AbortError")
return { ok: !1, aborted: !0, error: "Aborted" };
- } catch (oe) {
- (U = console.debug) == null || U.call(console, oe);
+ } catch (_) {
+ (ue = console.debug) == null || ue.call(console, _);
}
- return o(Vc("Failed to load assets", ee), {
+ return o(Xc("Failed to load assets", Q), {
error: !0
- }), { ok: !1, error: (ee == null ? void 0 : ee.message) || String(ee) };
+ }), { ok: !1, error: (Q == null ? void 0 : Q.message) || String(Q) };
} finally {
try {
- const ee = Date.now() - Q;
- ee < El && await Bm(El - ee);
- } catch (ee) {
- (P = console.debug) == null || P.call(console, ee);
+ const Q = Date.now() - O;
+ Q < Hl && await Um(Hl - Q);
+ } catch (Q) {
+ (U = console.debug) == null || U.call(console, Q);
}
t.loading = !1, i();
}
}
- async function x(T = "*", D = {}) {
- var ee, oe, ce, pe, H;
- const { reset: Q = !0, preserveVisibleUntilReady: E = !0 } = D || {}, K = Z();
- if (!K)
+ async function Y(M = "*", j = {}) {
+ var Q, _, le, de, se;
+ const { reset: O = !0, preserveVisibleUntilReady: D = !0 } = j || {}, q = C();
+ if (!q)
return { ok: !1, error: "Grid unavailable" };
try {
- globalThis.__MJR_LAST_ASSETKEY_GRID__ = K;
- } catch ($) {
- (ee = console.debug) == null || ee.call(console, $);
+ globalThis.__MJR_LAST_ASSETKEY_GRID__ = q;
+ } catch (ge) {
+ (Q = console.debug) == null || Q.call(console, ge);
}
- const F = qL(T).trim() || "*", Y = /^\[object\s+HTML.*Element\]$/i.test(F) ? "*" : F, U = Um(Y) || Y;
- if (t.query = U, Q && f())
- return n("Grid refresh deferred while ComfyUI is generating..."), v(U, D || {}), {
+ const ee = _L(M).trim() || "*", ce = /^\[object\s+HTML.*Element\]$/i.test(ee) ? "*" : ee, ue = Km(ce) || ce;
+ if (t.query = ue, O && b())
+ return n("Grid refresh deferred while ComfyUI is generating..."), W(ue, j || {}), {
ok: !0,
deferred: !0,
count: Number(t.offset || 0) || 0,
total: Number(t.total || 0) || 0
};
- if (Q) {
- p = g({
- reset: Q,
- preserveVisibleUntilReady: E
+ if (O) {
+ p = Z({
+ reset: O,
+ preserveVisibleUntilReady: D
});
try {
- (ce = (oe = t.abortController) == null ? void 0 : oe.abort) == null || ce.call(oe);
- } catch ($) {
- (pe = console.debug) == null || pe.call(console, $);
+ (le = (_ = t.abortController) == null ? void 0 : _.abort) == null || le.call(_);
+ } catch (ge) {
+ (de = console.debug) == null || de.call(console, ge);
}
try {
t.abortController = typeof AbortController < "u" ? new AbortController() : null;
} catch {
t.abortController = null;
}
- if (t.requestId = (Number(t.requestId) || 0) + 1, W(), r(), p ? (t.query = U, t.offset = 0, t.total = null, t.done = !1) : l({ query: U, total: null, done: !1 }), n(
- U === "*" ? "Loading assets..." : `Searching for "${U}"...`
- ), U === "*" && p)
+ if (t.requestId = (Number(t.requestId) || 0) + 1, h(), x(), r(), p ? (t.query = ue, t.offset = 0, t.total = null, t.done = !1) : l({ query: ue, total: null, done: !1 }), n(
+ ue === "*" ? "Loading assets..." : `Searching for "${ue}"...`
+ ), ue === "*" && p)
try {
- const $ = A();
- $.query = "*";
- const _ = Yc($);
- if (Ii.has(_) ? await N($, {
+ const ge = g();
+ ge.query = "*";
+ const je = kc(ge);
+ if (pi.has(je) ? await B(ge, {
allowReplaceExisting: !0
- }) : !1)
- return t.offset = 0, t.done = !1, t.loading = !1, i(), queueMicrotask(() => {
- z().then((de) => {
- de != null && de.ok && !(de != null && de.aborted) && G({ title: U });
- }).catch(() => {
- });
- }), {
+ }) : !1) {
+ t.offset = 0, t.done = !1, t.loading = !1, i();
+ const we = t.requestId;
+ return G(
+ we,
+ Math.min(fe.PREFETCH_NEXT_PAGE_DELAY_MS ?? 700, 250)
+ ), {
ok: !0,
count: Number(t.offset || 0) || 0,
total: Number(t.total || 0) || 0,
cached: !0
};
- } catch ($) {
- (H = console.debug) == null || H.call(console, "[Grid] Snapshot fast-path failed, falling back", $);
+ }
+ } catch (ge) {
+ (se = console.debug) == null || se.call(console, "[Grid] Snapshot fast-path failed, falling back", ge);
}
}
- const P = await z();
- return ye.PREFETCH_NEXT_PAGE && (P != null && P.ok) && !(P != null && P.skipped) && !t.done && !(P != null && P.aborted) && queueMicrotask(() => {
- !t.done && !t.loading && z().catch(() => {
- });
- }), Q && G({ title: U }), {
- ok: !!(P != null && P.ok),
+ const U = await R();
+ return fe.PREFETCH_NEXT_PAGE && (U != null && U.ok) && !(U != null && U.skipped) && !t.done && !(U != null && U.aborted) && G(t.requestId), O && w({ title: ue }), {
+ ok: !!(U != null && U.ok),
count: Number(t.offset || 0) || 0,
total: Number(t.total || 0) || 0,
- error: P == null ? void 0 : P.error,
- aborted: !!(P != null && P.aborted)
+ error: U == null ? void 0 : U.error,
+ aborted: !!(U != null && U.aborted)
};
}
- async function w(T, D = {}) {
- var oe, ce, pe, H, $;
+ async function F(M, j = {}) {
+ var _, le, de, se, ge;
const {
- title: Q = "Collection",
- reset: E = !0,
- showLoading: K = !0,
- preserveVisibleUntilReady: F = !0
- } = D || {}, Y = Z();
- if (!Y)
+ title: O = "Collection",
+ reset: D = !0,
+ showLoading: q = !0,
+ preserveVisibleUntilReady: ee = !0
+ } = j || {}, ce = C();
+ if (!ce)
return { ok: !1, error: "Grid unavailable" };
- const U = Array.isArray(T) ? T.slice() : [], P = Date.now(), ee = g({
- reset: E,
- preserveVisibleUntilReady: F
+ const ue = Array.isArray(M) ? M.slice() : [], U = Date.now(), Q = Z({
+ reset: D,
+ preserveVisibleUntilReady: ee
});
- if (E) {
+ if (D) {
try {
- (ce = (oe = t.abortController) == null ? void 0 : oe.abort) == null || ce.call(oe);
- } catch (_) {
- (pe = console.debug) == null || pe.call(console, _);
+ (le = (_ = t.abortController) == null ? void 0 : _.abort) == null || le.call(_);
+ } catch (je) {
+ (de = console.debug) == null || de.call(console, je);
}
try {
t.abortController = typeof AbortController < "u" ? new AbortController() : null;
} catch {
t.abortController = null;
}
- t.requestId = (Number(t.requestId) || 0) + 1, W(), r(), ee ? (t.query = String(Q || "Collection"), t.offset = 0, t.total = U.length, t.done = !0) : (l({
- query: String(Q || "Collection"),
- total: U.length,
+ t.requestId = (Number(t.requestId) || 0) + 1, x(), r(), Q ? (t.query = String(O || "Collection"), t.offset = 0, t.total = ue.length, t.done = !0) : (l({
+ query: String(O || "Collection"),
+ total: ue.length,
done: !0
- }), Hl(t)), K ? (n(U.length ? `Loading ${Q}...` : `${Q} is empty`), t.loading = !0) : (i(), t.loading = !1);
+ }), ql(t)), q ? (n(ue.length ? `Loading ${O}...` : `${O} is empty`), t.loading = !0) : (i(), t.loading = !1);
}
try {
- const _ = ((H = Y.dataset) == null ? void 0 : H.mjrSort) || "mtime_desc", le = U.sort((se, de) => NL(se, de, _));
- return E && ee && (l({
- query: String(Q || "Collection"),
- total: U.length,
+ const je = ((se = ce.dataset) == null ? void 0 : se.mjrSort) || "mtime_desc", Se = ue.sort((ke, we) => FL(ke, we, je));
+ return D && Q && (l({
+ query: String(O || "Collection"),
+ total: ue.length,
done: !0
- }), Hl(t)), y(Y, le), t.offset = le.length, t.total = le.length, t.done = !0, G({ title: Q }), { ok: !0, count: le.length, total: le.length };
- } catch (_) {
- return o(Vc("Failed to load collection", _), {
+ }), ql(t)), T(ce, Se), t.offset = Se.length, t.total = Se.length, t.done = !0, w({ title: O }), { ok: !0, count: Se.length, total: Se.length };
+ } catch (je) {
+ return o(Xc("Failed to load collection", je), {
error: !0
- }), { ok: !1, error: (_ == null ? void 0 : _.message) || String(_) };
+ }), { ok: !1, error: (je == null ? void 0 : je.message) || String(je) };
} finally {
- if (K)
+ if (q)
try {
- const _ = Date.now() - P;
- _ < El && await Bm(El - _);
- } catch (_) {
- ($ = console.debug) == null || $.call(console, _);
+ const je = Date.now() - U;
+ je < Hl && await Um(Hl - je);
+ } catch (je) {
+ (ge = console.debug) == null || ge.call(console, je);
}
- t.loading = !1, K && i();
+ t.loading = !1, q && i();
}
}
- function X() {
- var T, D, Q, E;
+ function N() {
+ var M, j, O, D;
try {
- NW(Z());
- } catch (K) {
- (T = console.debug) == null || T.call(console, K);
+ OW(C());
+ } catch (q) {
+ (M = console.debug) == null || M.call(console, q);
}
try {
- (Q = (D = t.abortController) == null ? void 0 : D.abort) == null || Q.call(D);
- } catch (K) {
- (E = console.debug) == null || E.call(console, K);
+ (O = (j = t.abortController) == null ? void 0 : j.abort) == null || O.call(j);
+ } catch (q) {
+ (D = console.debug) == null || D.call(console, q);
}
try {
t.abortController = typeof AbortController < "u" ? new AbortController() : null;
} catch {
t.abortController = null;
}
- t.requestId = (Number(t.requestId) || 0) + 1, t.loading = !1, W(), i(), r(), p = !0, N(A(), { allowReplaceExisting: !0 }), a([], "");
+ t.requestId = (Number(t.requestId) || 0) + 1, t.loading = !1, h(), x(), i(), r(), p = !0, B(g(), { allowReplaceExisting: !0 }), a([], "");
}
function V() {
- var T, D;
- (D = (T = t.virtualGrid) == null ? void 0 : T.setItems) == null || D.call(T, t.assets || []);
+ var M, j;
+ (j = (M = t.virtualGrid) == null ? void 0 : M.setItems) == null || j.call(M, t.assets || []);
}
- function R(T, { updateSelection: D = !0 } = {}) {
- const Q = new Set(
- (Array.isArray(T) ? T : [T]).map((K) => K == null ? "" : typeof K == "object" && (K == null ? void 0 : K.id) != null ? String(K.id) : String(K)).filter(Boolean)
+ function k(M, { updateSelection: j = !0 } = {}) {
+ const O = new Set(
+ (Array.isArray(M) ? M : [M]).map((q) => q == null ? "" : typeof q == "object" && (q == null ? void 0 : q.id) != null ? String(q.id) : String(q)).filter(Boolean)
);
- if (!Q.size)
+ if (!O.size)
return { ok: !1, removed: 0, selectedIds: t.selectedIds.slice() };
- let E = 0;
- if (t.assets = (Array.isArray(t.assets) ? t.assets : []).filter((K) => {
- var Y;
- const F = (K == null ? void 0 : K.id) != null ? String(K.id) : "";
- if (F && Q.has(F)) {
- E += 1;
+ let D = 0;
+ if (t.assets = (Array.isArray(t.assets) ? t.assets : []).filter((q) => {
+ var ce;
+ const ee = (q == null ? void 0 : q.id) != null ? String(q.id) : "";
+ if (ee && O.has(ee)) {
+ D += 1;
try {
- t.assetIdSet.delete(F);
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ t.assetIdSet.delete(ee);
+ } catch (ue) {
+ (ce = console.debug) == null || ce.call(console, ue);
}
return !1;
}
return !0;
- }), Number.isFinite(Number(t.total)) && (t.total = Math.max(0, Number(t.total || 0) - E)), D) {
- const K = t.assets.map((F) => String((F == null ? void 0 : F.id) || "")).filter(Boolean);
- c(K, { activeId: t.activeId });
+ }), Number.isFinite(Number(t.total)) && (t.total = Math.max(0, Number(t.total || 0) - D)), j) {
+ const q = t.assets.map((ee) => String((ee == null ? void 0 : ee.id) || "")).filter(Boolean);
+ c(q, { activeId: t.activeId });
}
return !t.assets.length && !t.loading && o("No assets found"), {
ok: !0,
- removed: E,
+ removed: D,
selectedIds: t.selectedIds.slice()
};
}
- function j() {
- var P, ee;
- const T = Z(), D = s();
- if (!T || !D) return null;
- const Q = (oe) => {
- if (!oe) return !1;
+ function K() {
+ var U, Q;
+ const M = C(), j = s();
+ if (!M || !j) return null;
+ const O = (_) => {
+ if (!_) return !1;
try {
- const ce = oe.getBoundingClientRect(), pe = D.getBoundingClientRect();
- return ce.bottom >= pe.top && ce.top <= pe.bottom;
+ const le = _.getBoundingClientRect(), de = j.getBoundingClientRect();
+ return le.bottom >= de.top && le.top <= de.bottom;
} catch {
return !1;
}
- }, E = T.querySelector(".mjr-asset-card.is-selected"), K = d(), F = K.find((oe) => Q(oe)) || K[0] || null, U = Q(E) ? E : F;
- if (!U) return null;
+ }, D = M.querySelector(".mjr-asset-card.is-selected"), q = d(), ee = q.find((_) => O(_)) || q[0] || null, ue = O(D) ? D : ee;
+ if (!ue) return null;
try {
- const oe = U.getBoundingClientRect(), ce = D.getBoundingClientRect();
+ const _ = ue.getBoundingClientRect(), le = j.getBoundingClientRect();
return {
- id: String(((P = U.dataset) == null ? void 0 : P.mjrAssetId) || ""),
- top: oe.top - ce.top,
- scrollTop: Number(D.scrollTop || 0) || 0
+ id: String(((U = ue.dataset) == null ? void 0 : U.mjrAssetId) || ""),
+ top: _.top - le.top,
+ scrollTop: Number(j.scrollTop || 0) || 0
};
- } catch (oe) {
- return (ee = console.debug) == null || ee.call(console, oe), null;
+ } catch (_) {
+ return (Q = console.debug) == null || Q.call(console, _), null;
}
}
- async function L(T) {
- var F;
- const D = Z(), Q = s();
- if (!D || !Q || !T) return;
- await Km();
- const E = String(T.id || "").trim();
- if (!E) {
- Q.scrollTop = Number(T.scrollTop || 0) || 0;
+ async function z(M) {
+ var ee;
+ const j = C(), O = s();
+ if (!j || !O || !M) return;
+ await Dm();
+ const D = String(M.id || "").trim();
+ if (!D) {
+ O.scrollTop = Number(M.scrollTop || 0) || 0;
return;
}
- u(E, { align: "start" }), await Km();
- const K = D.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${QL(E)}"]`
+ u(D, { align: "start" }), await Dm();
+ const q = j.querySelector(
+ `.mjr-asset-card[data-mjr-asset-id="${eV(D)}"]`
);
- if (!K) {
- Q.scrollTop = Number(T.scrollTop || 0) || 0;
+ if (!q) {
+ O.scrollTop = Number(M.scrollTop || 0) || 0;
return;
}
try {
- const Y = K.getBoundingClientRect(), U = Q.getBoundingClientRect(), P = Y.top - U.top - Number(T.top || 0);
- Q.scrollTop = (Number(Q.scrollTop || 0) || 0) + P;
- } catch (Y) {
- (F = console.debug) == null || F.call(console, Y), Q.scrollTop = Number(T.scrollTop || 0) || 0;
+ const ce = q.getBoundingClientRect(), ue = O.getBoundingClientRect(), U = ce.top - ue.top - Number(M.top || 0);
+ O.scrollTop = (Number(O.scrollTop || 0) || 0) + U;
+ } catch (ce) {
+ (ee = console.debug) == null || ee.call(console, ce), O.scrollTop = Number(M.scrollTop || 0) || 0;
}
}
- async function N(T = {}, D = {}) {
- var F, Y, U;
- const Q = Z();
- if (!Q) return !1;
- const E = Yc(T), K = HL(E);
- if (!K || !Array.isArray(K.assets) || !K.assets.length || !D.allowReplaceExisting && Array.isArray(t.assets) && t.assets.length)
+ async function B(M = {}, j = {}) {
+ var ee, ce, ue;
+ const O = C();
+ if (!O) return !1;
+ const D = kc(M), q = QL(D);
+ if (!q || !Array.isArray(q.assets) || !q.assets.length || !j.allowReplaceExisting && Array.isArray(t.assets) && t.assets.length)
return !1;
try {
- (Y = (F = t.abortController) == null ? void 0 : F.abort) == null || Y.call(F);
- } catch (P) {
- (U = console.debug) == null || U.call(console, P);
+ (ce = (ee = t.abortController) == null ? void 0 : ee.abort) == null || ce.call(ee);
+ } catch (U) {
+ (ue = console.debug) == null || ue.call(console, U);
}
try {
t.abortController = typeof AbortController < "u" ? new AbortController() : null;
} catch {
t.abortController = null;
}
- return t.requestId = (Number(t.requestId) || 0) + 1, W(), l({
- query: K.query || D.title || "Cached",
- total: Number(K.total ?? K.assets.length) || K.assets.length,
- done: !!K.done
- }), Hl(t), r(), i(), t.loading = !1, y(Q, K.assets), t.offset = Math.max(
- Number(K.assets.length || 0) || 0,
- Number(K.offset || K.assets.length) || K.assets.length
- ), t.total = Number(K.total ?? K.assets.length) || K.assets.length, t.done = !!K.done, G({ title: K.title || D.title || "Cached" }), !0;
+ return t.requestId = (Number(t.requestId) || 0) + 1, h(), x(), l({
+ query: q.query || j.title || "Cached",
+ total: Number(q.total ?? q.assets.length) || q.assets.length,
+ done: !!q.done
+ }), ql(t), r(), i(), t.loading = !1, T(O, q.assets), t.offset = Math.max(
+ Number(q.assets.length || 0) || 0,
+ Number(q.offset || q.assets.length) || q.assets.length
+ ), t.total = Number(q.total ?? q.assets.length) || q.assets.length, t.done = !!q.done, w({ title: q.title || j.title || "Cached" }), !0;
}
- function q(T) {
+ function J(M) {
return {
getOrCreateState: () => t,
ensureVirtualGrid: () => t.virtualGrid,
- upsertState: Lc,
- maxBatchSize: KL,
- debounceMs: UL,
- assetKey: (D) => C(D, T),
+ upsertState: Yc,
+ maxBatchSize: EL,
+ debounceMs: DL,
+ assetKey: (j) => qL(j) || y(j, M),
loadMajoorSettings: Xn
};
}
- function O(T) {
- const D = Z();
- return !D || !T || !T.id ? !1 : Jm(D, T, q(D));
+ function P(M) {
+ const j = C();
+ return !j || !M || !M.id ? !1 : Tm(j, M, J(j));
}
- function B(T) {
- const D = Z();
- if (!D || !T || !T.id) return !1;
- const Q = q(D), E = Jm(D, T, Q);
- return E && Ba(D, Q), E;
+ let H = !1;
+ function $(M) {
+ const j = C();
+ if (!j || !M || !M.id) return !1;
+ const O = J(j), D = Tm(j, M, O);
+ return D && !H && (H = !0, queueMicrotask(() => {
+ H = !1;
+ const q = C();
+ q && Ua(q, J(q));
+ })), D;
}
- function J() {
- var D, Q, E, K, F, Y;
- S(t.query || "Cached"), b();
+ function E() {
+ var j, O, D, q, ee, ce;
+ X(t.query || "Cached"), L(), h();
try {
- (Q = (D = t.abortController) == null ? void 0 : D.abort) == null || Q.call(D);
- } catch (U) {
- (E = console.debug) == null || E.call(console, U);
+ (O = (j = t.abortController) == null ? void 0 : j.abort) == null || O.call(j);
+ } catch (ue) {
+ (D = console.debug) == null || D.call(console, ue);
}
- const T = Z();
- if (T)
+ const M = C();
+ if (M)
try {
- const U = Cp(T, Lc);
- U != null && U.timer && (clearTimeout(U.timer), U.timer = null), (F = (K = U == null ? void 0 : U.pending) == null ? void 0 : K.clear) == null || F.call(K);
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ const ue = Ap(M, Yc);
+ ue != null && ue.timer && (clearTimeout(ue.timer), ue.timer = null), (ee = (q = ue == null ? void 0 : ue.pending) == null ? void 0 : q.clear) == null || ee.call(q);
+ } catch (ue) {
+ (ce = console.debug) == null || ce.call(console, ue);
}
}
+ try {
+ window.addEventListener("pagehide", E, { once: !0 });
+ } catch (M) {
+ (oe = console.debug) == null || oe.call(console, M);
+ }
return {
- loadAssets: x,
- loadAssetsFromList: w,
- loadNextPage: z,
- prepareGridForScopeSwitch: X,
+ loadAssets: Y,
+ loadAssetsFromList: F,
+ loadNextPage: R,
+ prepareGridForScopeSwitch: N,
refreshGrid: V,
- removeAssets: R,
- captureAnchor: j,
- restoreAnchor: L,
- hydrateFromSnapshot: N,
- upsertAsset: O,
- upsertAssetNow: B,
- dispose: J
+ removeAssets: k,
+ captureAnchor: K,
+ restoreAnchor: z,
+ hydrateFromSnapshot: B,
+ upsertAsset: P,
+ upsertAssetNow: $,
+ dispose: E
};
}
-const eY = {
+const iV = {
key: 0,
class: "mjr-grid-loading-overlay",
style: { position: "absolute", inset: "0", "z-index": "4", display: "flex", "align-items": "flex-start", "justify-content": "center", padding: "14px", "pointer-events": "none" }
-}, tY = { style: { width: "100%" } }, nY = { class: "mjr-grid-skeleton-layout" }, iY = { style: { "margin-top": "10px", "font-size": "12px", opacity: "0.68", "text-align": "center" } }, oY = ["data-index"], rY = ["data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-ext", "data-mjr-stem", "data-mjr-kind", "data-mjr-live-placeholder", "data-mjr-stacked", "data-mjr-stack-count", "data-mjr-dup-stacked", "data-mjr-dup-count", "aria-label", "aria-selected", "onMousedown", "onClick", "onDblclick"], lY = {
+}, oV = { style: { width: "100%" } }, rV = { class: "mjr-grid-skeleton-layout" }, lV = { style: { "margin-top": "10px", "font-size": "12px", opacity: "0.68", "text-align": "center" } }, aV = ["data-index"], cV = ["data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-ext", "data-mjr-stem", "data-mjr-kind", "data-mjr-live-placeholder", "data-mjr-stacked", "data-mjr-stack-count", "data-mjr-dup-stacked", "data-mjr-dup-count", "aria-label", "aria-selected", "onMousedown", "onClick", "onDblclick"], sV = {
key: 3,
style: { display: "flex", "flex-direction": "column", width: "100%" }
-}, aY = ["data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-ext", "data-mjr-stem", "data-mjr-kind", "data-mjr-live-placeholder", "data-mjr-stacked", "data-mjr-stack-count", "data-mjr-dup-stacked", "data-mjr-dup-count", "aria-label", "aria-selected", "onMousedown", "onClick", "onDblclick"], cY = {
+}, dV = ["data-mjr-asset-id", "data-mjr-filename-key", "data-mjr-ext", "data-mjr-stem", "data-mjr-kind", "data-mjr-live-placeholder", "data-mjr-stacked", "data-mjr-stack-count", "data-mjr-dup-stacked", "data-mjr-dup-count", "aria-label", "aria-selected", "onMousedown", "onClick", "onDblclick"], uV = {
__name: "VirtualAssetGridHost",
props: {
scrollElement: {
@@ -43111,51 +43271,51 @@ const eY = {
setup(e, { expose: t }) {
const n = e, i = Ae(null), o = Ae(0), r = Ae(!1), l = Ae(0), a = /* @__PURE__ */ new WeakMap();
function c(te) {
- return (Array.isArray(te) ? te : []).slice().sort((ge, we) => {
- const be = Number((ge == null ? void 0 : ge.mtime) || (ge == null ? void 0 : ge.created_at) || 0) || 0;
- return (Number((we == null ? void 0 : we.mtime) || (we == null ? void 0 : we.created_at) || 0) || 0) - be;
+ return (Array.isArray(te) ? te : []).slice().sort((ye, We) => {
+ const pe = Number((ye == null ? void 0 : ye.mtime) || (ye == null ? void 0 : ye.created_at) || 0) || 0;
+ return (Number((We == null ? void 0 : We.mtime) || (We == null ? void 0 : We.created_at) || 0) || 0) - pe;
});
}
- rg("mjrStackService", {
+ lg("mjrStackService", {
openStackGroup: async (te) => {
- const ge = i.value;
- if (!ge || !te) return;
- const we = String(te.stack_id || "").trim();
- if (!we) return;
- const be = `stack:${we}`;
- ge._mjrStackMembersCache || (ge._mjrStackMembersCache = /* @__PURE__ */ new Map());
- let Oe = ge._mjrStackMembersCache.get(be);
- if (!Array.isArray(Oe)) {
- const dt = await Rt(ty(we), { timeoutMs: 3e4 });
- if (dt != null && dt.ok && Array.isArray(dt == null ? void 0 : dt.data))
- Oe = dt.data, ge._mjrStackMembersCache.set(be, Oe);
+ const ye = i.value;
+ if (!ye || !te) return;
+ const We = String(te.stack_id || "").trim();
+ if (!We) return;
+ const pe = `stack:${We}`;
+ ye._mjrStackMembersCache || (ye._mjrStackMembersCache = /* @__PURE__ */ new Map());
+ let De = ye._mjrStackMembersCache.get(pe);
+ if (!Array.isArray(De)) {
+ const Zt = await Ft(oy(We), { timeoutMs: 3e4 });
+ if (Zt != null && Zt.ok && Array.isArray(Zt == null ? void 0 : Zt.data))
+ De = Zt.data, ye._mjrStackMembersCache.set(pe, De);
else
return;
}
- const ot = c(Oe);
- ge.dispatchEvent(
- new CustomEvent(ft.OPEN_STACK_GROUP, {
+ const ot = c(De);
+ ye.dispatchEvent(
+ new CustomEvent(ht.OPEN_STACK_GROUP, {
bubbles: !0,
detail: {
asset: te,
members: ot,
title: `Generation group (${ot.length} assets)`,
- stackId: we
+ stackId: We
}
})
);
},
openDupGroup: (te) => {
- const ge = i.value;
- if (!ge || !te) return;
- const we = Array.isArray(te._mjrDupMembers) ? te._mjrDupMembers : [te];
- ge.dispatchEvent(
- new CustomEvent(ft.OPEN_STACK_GROUP, {
+ const ye = i.value;
+ if (!ye || !te) return;
+ const We = Array.isArray(te._mjrDupMembers) ? te._mjrDupMembers : [te];
+ ye.dispatchEvent(
+ new CustomEvent(ht.OPEN_STACK_GROUP, {
bubbles: !0,
detail: {
asset: te,
- members: we,
- title: `Duplicates β ${we.length} copies`,
+ members: We,
+ title: `Duplicates β ${We.length} copies`,
isDupGroup: !0
}
})
@@ -43168,358 +43328,358 @@ const eY = {
setLoadingMessage: u,
clearLoadingMessage: I,
setStatusMessage: p,
- clearStatusMessage: M,
- resetAssets: Z,
- setSelection: A,
+ clearStatusMessage: S,
+ resetAssets: A,
+ setSelection: C,
reconcileSelection: g,
- getSelectedAssets: h,
+ getSelectedAssets: Z,
getActiveAsset: f
- } = Hw();
+ } = Qw();
function b(te) {
return te ? typeof te == "object" && "value" in te ? te.value || null : te : null;
}
- const v = Je(() => b(n.scrollElement));
- function C() {
- var ge;
+ const L = ze(() => b(n.scrollElement));
+ function h() {
+ var ye;
const te = i.value;
if (!te) return [];
try {
return Array.from(te.querySelectorAll(".mjr-asset-card"));
- } catch (we) {
- return (ge = console.debug) == null || ge.call(console, we), [];
+ } catch (We) {
+ return (ye = console.debug) == null || ye.call(console, We), [];
}
}
- function S(te, { align: ge = "auto" } = {}) {
- var ot, dt, en, un;
- const we = String(te || "").trim();
- if (!we) return;
- const Oe = (Array.isArray(q.value) ? q.value : []).findIndex(
- (Wt) => String((Wt == null ? void 0 : Wt.id) || "") === we
+ function G(te, { align: ye = "auto" } = {}) {
+ var ot, Zt, tn, Pt;
+ const We = String(te || "").trim();
+ if (!We) return;
+ const De = (Array.isArray(K.value) ? K.value : []).findIndex(
+ (vt) => String((vt == null ? void 0 : vt.id) || "") === We
);
- if (!(Oe < 0)) {
+ if (!(De < 0)) {
if (n.virtualize) {
- const Wt = Math.floor(Oe / Math.max(1, Q.value));
+ const vt = Math.floor(De / Math.max(1, $.value));
try {
- ce.value.scrollToIndex(Wt, { align: ge });
- } catch (tn) {
- (ot = console.debug) == null || ot.call(console, tn);
+ ce.value.scrollToIndex(vt, { align: ye });
+ } catch (re) {
+ (ot = console.debug) == null || ot.call(console, re);
}
return;
}
try {
- (en = (dt = s.cardElements.get(we)) == null ? void 0 : dt.scrollIntoView) == null || en.call(dt, {
+ (tn = (Zt = s.cardElements.get(We)) == null ? void 0 : Zt.scrollIntoView) == null || tn.call(Zt, {
block: "nearest",
inline: "nearest"
});
- } catch (Wt) {
- (un = console.debug) == null || un.call(console, Wt);
+ } catch (vt) {
+ (Pt = console.debug) == null || Pt.call(console, vt);
}
}
}
function W() {
- return sd(i.value, v.value);
+ return ud(i.value, L.value);
}
- const y = $L({
+ const y = nV({
gridContainerRef: i,
state: s,
setLoadingMessage: u,
clearLoadingMessage: I,
setStatusMessage: p,
- clearStatusMessage: M,
- resetAssets: Z,
- setSelection: A,
+ clearStatusMessage: S,
+ resetAssets: A,
+ setSelection: C,
reconcileSelection: g,
- readScrollElement: () => v.value,
- readRenderedCards: C,
- scrollToAssetId: S,
+ readScrollElement: () => L.value,
+ readRenderedCards: h,
+ scrollToAssetId: G,
canLoadMore: W
});
- function k(te) {
- const ge = String((te == null ? void 0 : te.filename) || ""), we = ge.lastIndexOf(".");
- return we >= 0 ? ge.slice(we + 1).toUpperCase() : "";
- }
- function G(te) {
- const ge = String((te == null ? void 0 : te.filename) || ""), we = ge.lastIndexOf(".");
- return we >= 0 ? ge.slice(0, we).toLowerCase() : ge.toLowerCase();
- }
- function z(te) {
- return d.value.has(String((te == null ? void 0 : te.id) || ""));
+ function X(te) {
+ const ye = String((te == null ? void 0 : te.filename) || ""), We = ye.lastIndexOf(".");
+ return We >= 0 ? ye.slice(We + 1).toUpperCase() : "";
}
function x(te) {
+ const ye = String((te == null ? void 0 : te.filename) || ""), We = ye.lastIndexOf(".");
+ return We >= 0 ? ye.slice(0, We).toLowerCase() : ye.toLowerCase();
+ }
+ function T(te) {
+ return d.value.has(String((te == null ? void 0 : te.id) || ""));
+ }
+ function v(te) {
return String((te == null ? void 0 : te.kind) || "").toLowerCase() === "folder";
}
function w(te) {
- var we;
- const ge = i.value;
- return !ge || String(((we = ge.dataset) == null ? void 0 : we.mjrGroupStacks) || "") !== "1" ? !1 : !!String((te == null ? void 0 : te.stack_id) || "").trim() && Number((te == null ? void 0 : te.stack_asset_count) || 0) > 1;
+ var We;
+ const ye = i.value;
+ return !ye || String(((We = ye.dataset) == null ? void 0 : We.mjrGroupStacks) || "") !== "1" ? !1 : !!String((te == null ? void 0 : te.stack_id) || "").trim() && Number((te == null ? void 0 : te.stack_asset_count) || 0) > 1;
}
- function X(te) {
+ function R(te) {
return (te == null ? void 0 : te._mjrLivePlaceholder) === !0 || (te == null ? void 0 : te.is_live_placeholder) === !0 || String((te == null ? void 0 : te.id) || "").trim().toLowerCase().startsWith("live:");
}
- function V(te) {
+ function Y(te) {
return !!te && te._mjrDupHidden !== !0;
}
- function R() {
- var we;
+ function F() {
+ var We;
const te = i.value;
if (!te) return;
- const ge = new Set(
- (Array.isArray(s.selectedIds) ? s.selectedIds : []).map((be) => String(be || "").trim()).filter(Boolean)
+ const ye = new Set(
+ (Array.isArray(s.selectedIds) ? s.selectedIds : []).map((pe) => String(pe || "").trim()).filter(Boolean)
);
- nI(te, ge, s.activeId || "");
+ iI(te, ye, s.activeId || "");
try {
- ge.size ? te.dataset.mjrSelectedAssetId = String(s.activeId || Array.from(ge)[0] || "") : delete te.dataset.mjrSelectedAssetId;
- } catch (be) {
- (we = console.debug) == null || we.call(console, be);
+ ye.size ? te.dataset.mjrSelectedAssetId = String(s.activeId || Array.from(ye)[0] || "") : delete te.dataset.mjrSelectedAssetId;
+ } catch (pe) {
+ (We = console.debug) == null || We.call(console, pe);
}
}
- function j() {
- var dt, en;
+ function N() {
+ var Zt, tn;
const te = i.value;
if (!te) return;
- const ge = Array.isArray(s.selectedIds) ? s.selectedIds.slice() : [], we = String(s.activeId || ""), be = `${ge.join("|")}::${we}`;
- if (be === j._lastSelectionKey) return;
- j._lastSelectionKey = be;
- const Oe = h(), ot = {
- selectedIds: ge,
- activeId: we,
- selectedAssets: Oe
+ const ye = Array.isArray(s.selectedIds) ? s.selectedIds.slice() : [], We = String(s.activeId || ""), pe = `${ye.join("|")}::${We}`;
+ if (pe === N._lastSelectionKey) return;
+ N._lastSelectionKey = pe;
+ const De = Z(), ot = {
+ selectedIds: ye,
+ activeId: We,
+ selectedAssets: De
};
try {
te.dispatchEvent(new CustomEvent("mjr:selection-changed", { detail: ot }));
- } catch (un) {
- (dt = console.debug) == null || dt.call(console, un);
+ } catch (Pt) {
+ (Zt = console.debug) == null || Zt.call(console, Pt);
}
if (n.emitWindowSelectionEvents)
try {
window.dispatchEvent(new CustomEvent("mjr:selection-changed", { detail: ot }));
- } catch (un) {
- (en = console.debug) == null || en.call(console, un);
+ } catch (Pt) {
+ (tn = console.debug) == null || tn.call(console, Pt);
}
}
- j._lastSelectionKey = "";
- function L(te) {
- const ge = Array.isArray(te) ? te : [], we = /* @__PURE__ */ new Map();
- for (const Oe of ge) {
- const ot = pr(Oe == null ? void 0 : Oe.filename);
+ N._lastSelectionKey = "";
+ function V(te) {
+ const ye = Array.isArray(te) ? te : [], We = /* @__PURE__ */ new Map();
+ for (const De of ye) {
+ const ot = fr(De == null ? void 0 : De.filename);
if (!ot)
continue;
- let dt = we.get(ot);
- dt || (dt = [], we.set(ot, dt)), dt.push(Oe);
+ let Zt = We.get(ot);
+ Zt || (Zt = [], We.set(ot, Zt)), Zt.push(De);
}
- const be = [];
- for (const Oe of ge) {
- const ot = pr(Oe == null ? void 0 : Oe.filename);
+ const pe = [];
+ for (const De of ye) {
+ const ot = fr(De == null ? void 0 : De.filename);
if (!ot) {
- Oe._mjrNameCollision = !1, delete Oe._mjrNameCollisionCount, delete Oe._mjrNameCollisionPaths, Oe._mjrDupStack = !1, Oe._mjrDupMembers = null, Oe._mjrDupCount = 0, be.push(Oe);
+ De._mjrNameCollision = !1, delete De._mjrNameCollisionCount, delete De._mjrNameCollisionPaths, De._mjrDupStack = !1, De._mjrDupMembers = null, De._mjrDupCount = 0, pe.push(De);
continue;
}
- const dt = we.get(ot) || [];
- if (dt.length && dt[0] === Oe) {
- for (const en of dt)
- en._mjrNameCollision = !1, delete en._mjrNameCollisionCount, delete en._mjrNameCollisionPaths, en._mjrDupStack = !1, en._mjrDupMembers = null, en._mjrDupCount = 0;
- if (dt.length >= 2) {
- const en = Array.isArray(Oe._mjrDupMembers) ? Oe._mjrDupMembers : [], un = new Set(en.map((tn) => String((tn == null ? void 0 : tn.id) || ""))), Wt = [
- ...en,
- ...dt.filter((tn) => !un.has(String((tn == null ? void 0 : tn.id) || "")))
+ const Zt = We.get(ot) || [];
+ if (Zt.length && Zt[0] === De) {
+ for (const tn of Zt)
+ tn._mjrNameCollision = !1, delete tn._mjrNameCollisionCount, delete tn._mjrNameCollisionPaths, tn._mjrDupStack = !1, tn._mjrDupMembers = null, tn._mjrDupCount = 0;
+ if (Zt.length >= 2) {
+ const tn = Array.isArray(De._mjrDupMembers) ? De._mjrDupMembers : [], Pt = new Set(tn.map((re) => String((re == null ? void 0 : re.id) || ""))), vt = [
+ ...tn,
+ ...Zt.filter((re) => !Pt.has(String((re == null ? void 0 : re.id) || "")))
];
- Oe._mjrDupStack = !0, Oe._mjrDupMembers = Wt, Oe._mjrDupCount = Wt.length;
+ De._mjrDupStack = !0, De._mjrDupMembers = vt, De._mjrDupCount = vt.length;
}
- be.push(Oe);
+ pe.push(De);
}
}
- return be;
+ return pe;
}
- const N = Je(() => L(s.assets)), q = Je(() => (Array.isArray(N.value) ? N.value : []).filter((ge) => V(ge)));
- function O() {
- var we, be;
+ const k = ze(() => V(s.assets)), K = ze(() => (Array.isArray(k.value) ? k.value : []).filter((ye) => Y(ye)));
+ function z() {
+ var We, pe;
const te = i.value;
if (!te) return;
- const ge = {
- count: Array.isArray(q.value) ? q.value.length : 0,
+ const ye = {
+ count: Array.isArray(K.value) ? K.value.length : 0,
total: Number(s.total || 0) || 0
};
try {
- te.dataset.mjrShown = String(ge.count), te.dataset.mjrTotal = String(ge.total), te.dataset.mjrHiddenPngSiblings = String(
+ te.dataset.mjrShown = String(ye.count), te.dataset.mjrTotal = String(ye.total), te.dataset.mjrHiddenPngSiblings = String(
Number(s.hiddenPngSiblings || 0) || 0
);
- } catch (Oe) {
- (we = console.debug) == null || we.call(console, Oe);
+ } catch (De) {
+ (We = console.debug) == null || We.call(console, De);
}
try {
- te.dispatchEvent(new CustomEvent("mjr:grid-stats", { detail: ge }));
- } catch (Oe) {
- (be = console.debug) == null || be.call(console, Oe);
+ te.dispatchEvent(new CustomEvent("mjr:grid-stats", { detail: ye }));
+ } catch (De) {
+ (pe = console.debug) == null || pe.call(console, De);
}
}
function B(te) {
- var we;
+ var We;
if (!(te != null && te.id)) return;
- const ge = (Array.isArray(s.assets) ? s.assets : []).find(
- (be) => String((be == null ? void 0 : be.id) || "") === String(te.id)
+ const ye = (Array.isArray(s.assets) ? s.assets : []).find(
+ (pe) => String((pe == null ? void 0 : pe.id) || "") === String(te.id)
);
- if (ge)
+ if (ye)
try {
- ge.rating = te.rating, ge.tags = te.tags;
- } catch (be) {
- (we = console.debug) == null || we.call(console, be);
+ ye.rating = te.rating, ye.tags = te.tags;
+ } catch (pe) {
+ (We = console.debug) == null || We.call(console, pe);
}
}
function J() {
var te;
try {
window.dispatchEvent(new CustomEvent("mjr:open-sidebar", { detail: { tab: "details" } }));
- } catch (ge) {
- (te = console.debug) == null || te.call(console, ge);
+ } catch (ye) {
+ (te = console.debug) == null || te.call(console, ye);
}
}
- function T(te) {
- var ge, we, be, Oe;
+ function P(te) {
+ var ye, We, pe, De;
if (te) {
te._mjrSelectionManagedByVue = !0;
try {
- (ge = te._mjrPrimaryPointerSelectionUnbind) == null || ge.call(te);
+ (ye = te._mjrPrimaryPointerSelectionUnbind) == null || ye.call(te);
} catch (ot) {
- (we = console.debug) == null || we.call(console, ot);
+ (We = console.debug) == null || We.call(console, ot);
}
try {
- Re == null || Re();
+ Oe == null || Oe();
} catch (ot) {
- (be = console.debug) == null || be.call(console, ot);
+ (pe = console.debug) == null || pe.call(console, ot);
}
- PC(te, {
+ $C(te, {
applySettingsClasses: n.applyDefaultSettingsClasses
});
try {
- Re = iw(te);
+ Oe = lw(te);
} catch (ot) {
- (Oe = console.debug) == null || Oe.call(console, ot), Re = null;
+ (De = console.debug) == null || De.call(console, ot), Oe = null;
}
te._mjrPrimaryPointerSelectionUnbind = () => {
- }, te._mjrGetAssets = () => Array.isArray(q.value) ? q.value : [], te._mjrSetSelection = (ot, dt = "") => {
- const en = A(ot, dt);
- return R(), j(), en.selectedIds;
- }, te._mjrRemoveAssets = (ot, dt = {}) => {
- const en = y.removeAssets(ot, dt);
- return O(), en;
- }, te._mjrGetRenderedCards = () => C(), te._mjrScrollToAssetId = (ot, dt = {}) => {
- S(ot, dt);
+ }, te._mjrGetAssets = () => Array.isArray(K.value) ? K.value : [], te._mjrSetSelection = (ot, Zt = "") => {
+ const tn = C(ot, Zt);
+ return F(), N(), tn.selectedIds;
+ }, te._mjrRemoveAssets = (ot, Zt = {}) => {
+ const tn = y.removeAssets(ot, Zt);
+ return z(), tn;
+ }, te._mjrGetRenderedCards = () => h(), te._mjrScrollToAssetId = (ot, Zt = {}) => {
+ G(ot, Zt);
}, te._mjrHasAssetId = (ot) => (Array.isArray(s.assets) ? s.assets : []).some(
- (dt) => String((dt == null ? void 0 : dt.id) || "") === String(ot || "")
- ), te._mjrGetGridState = () => s, te._mjrGetSelectedAssets = () => h(), te._mjrGetActiveAsset = () => f(), te._mjrOnKeyboardAssetChanged = (ot) => B(ot), te._mjrOpenKeyboardDetails = () => J(), te._mjrLoadAssets = (...ot) => y.loadAssets(...ot), te._mjrLoadAssetsFromList = (...ot) => y.loadAssetsFromList(...ot), te._mjrPrepareForScopeSwitch = () => y.prepareGridForScopeSwitch(), te._mjrRefreshGrid = () => (n.applyDefaultSettingsClasses && (nl(te), l.value += 1), y.refreshGrid()), te._mjrCaptureAnchor = () => y.captureAnchor(), te._mjrRestoreAnchor = (ot) => y.restoreAnchor(ot), te._mjrHydrateFromSnapshot = (...ot) => y.hydrateFromSnapshot(...ot), te._mjrUpsertAsset = (ot) => y.upsertAsset(ot), te._mjrUpsertAssetNow = (ot) => y.upsertAssetNow(ot), te._mjrDispose = () => {
+ (Zt) => String((Zt == null ? void 0 : Zt.id) || "") === String(ot || "")
+ ), te._mjrGetGridState = () => s, te._mjrGetSelectedAssets = () => Z(), te._mjrGetActiveAsset = () => f(), te._mjrOnKeyboardAssetChanged = (ot) => B(ot), te._mjrOpenKeyboardDetails = () => J(), te._mjrLoadAssets = (...ot) => y.loadAssets(...ot), te._mjrLoadAssetsFromList = (...ot) => y.loadAssetsFromList(...ot), te._mjrPrepareForScopeSwitch = () => y.prepareGridForScopeSwitch(), te._mjrRefreshGrid = () => (n.applyDefaultSettingsClasses && (ol(te), l.value += 1), y.refreshGrid()), te._mjrCaptureAnchor = () => y.captureAnchor(), te._mjrRestoreAnchor = (ot) => y.restoreAnchor(ot), te._mjrHydrateFromSnapshot = (...ot) => y.hydrateFromSnapshot(...ot), te._mjrUpsertAsset = (ot) => y.upsertAsset(ot), te._mjrUpsertAssetNow = (ot) => y.upsertAssetNow(ot), te._mjrDispose = () => {
y.prepareGridForScopeSwitch(), y.dispose(), s.cardElements.clear();
};
}
}
- an(
+ cn(
i,
(te) => {
- te && (T(te), R(), O());
+ te && (P(te), F(), z());
},
{ immediate: !0 }
- ), an(
+ ), cn(
() => `${(s.selectedIds || []).join("|")}::${String(s.activeId || "")}`,
() => {
- i.value && (R(), j());
+ i.value && (F(), N());
},
{ flush: "post" }
- ), an(
- () => `${Array.isArray(q.value) ? q.value.length : 0}::${Number(s.total || 0)}::${Number(s.hiddenPngSiblings || 0)}`,
+ ), cn(
+ () => `${Array.isArray(K.value) ? K.value.length : 0}::${Number(s.total || 0)}::${Number(s.hiddenPngSiblings || 0)}`,
() => {
- i.value && O();
+ i.value && z();
},
{ flush: "post", immediate: !0 }
);
- function D() {
- var be;
- const te = i.value, ge = String(((be = te == null ? void 0 : te.dataset) == null ? void 0 : be.mjrBottomFeed) || "").toLowerCase() === "true", we = Number(ye.GRID_MIN_SIZE || 120) || 120;
- return ge ? Math.max(
+ function H() {
+ var pe;
+ const te = i.value, ye = String(((pe = te == null ? void 0 : te.dataset) == null ? void 0 : pe.mjrBottomFeed) || "").toLowerCase() === "true", We = Number(fe.GRID_MIN_SIZE || 120) || 120;
+ return ye ? Math.max(
80,
- Number(ye.FEED_GRID_MIN_SIZE || we) || we
- ) : Math.max(80, we);
+ Number(fe.FEED_GRID_MIN_SIZE || We) || We
+ ) : Math.max(80, We);
}
- const Q = Je(() => {
- var be;
+ const $ = ze(() => {
+ var pe;
l.value;
- const te = Math.max(0, Number(ye.GRID_GAP || 10) || 10), ge = D(), we = Number(o.value || 0) || Number(((be = v.value) == null ? void 0 : be.clientWidth) || 0) || 0;
- return we <= 0 ? 1 : Math.max(1, Math.floor((we + te) / (ge + te)));
- }), E = Je(() => {
- var ge;
- return (Number(o.value || 0) || Number(((ge = v.value) == null ? void 0 : ge.clientWidth) || 0) || 0) > 0;
- }), K = Je(() => (l.value, Math.max(0, Number(ye.GRID_GAP || 10) || 10))), F = Je(() => {
- var we;
- const te = Math.max(1, Q.value), ge = Number(o.value || 0) || Number(((we = v.value) == null ? void 0 : we.clientWidth) || 0) || 0;
- return ge <= 0 ? D() : Math.max(80, Math.floor((ge - K.value * Math.max(0, te - 1)) / te));
- }), Y = Je(() => {
+ const te = Math.max(0, Number(fe.GRID_GAP || 10) || 10), ye = H(), We = Number(o.value || 0) || Number(((pe = L.value) == null ? void 0 : pe.clientWidth) || 0) || 0;
+ return We <= 0 ? 1 : Math.max(1, Math.floor((We + te) / (ye + te)));
+ }), E = ze(() => {
+ var ye;
+ return (Number(o.value || 0) || Number(((ye = L.value) == null ? void 0 : ye.clientWidth) || 0) || 0) > 0;
+ }), oe = ze(() => (l.value, Math.max(0, Number(fe.GRID_GAP || 10) || 10))), M = ze(() => {
+ var We;
+ const te = Math.max(1, $.value), ye = Number(o.value || 0) || Number(((We = L.value) == null ? void 0 : We.clientWidth) || 0) || 0;
+ return ye <= 0 ? H() : Math.max(80, Math.floor((ye - oe.value * Math.max(0, te - 1)) / te));
+ }), j = ze(() => {
l.value;
- const te = !!ye.GRID_SHOW_DETAILS;
- return F.value + (te ? 82 : 0) + K.value;
- }), U = Je(() => {
- const te = Array.isArray(q.value) ? q.value : [], ge = Math.max(1, Q.value);
+ const te = !!fe.GRID_SHOW_DETAILS;
+ return M.value + (te ? 82 : 0) + oe.value;
+ }), O = ze(() => {
+ const te = Array.isArray(K.value) ? K.value : [], ye = Math.max(1, $.value);
if (n.virtualize) return [];
- const we = [];
- for (let be = 0; be < te.length; be += ge)
- we.push({
- index: Math.floor(be / ge),
- items: te.slice(be, be + ge)
+ const We = [];
+ for (let pe = 0; pe < te.length; pe += ye)
+ We.push({
+ index: Math.floor(pe / ye),
+ items: te.slice(pe, pe + ye)
});
- return we;
- }), P = Je(() => {
- const te = Array.isArray(q.value) ? q.value : [], ge = Math.max(1, Q.value);
- return Math.ceil(te.length / ge);
+ return We;
+ }), D = ze(() => {
+ const te = Array.isArray(K.value) ? K.value : [], ye = Math.max(1, $.value);
+ return Math.ceil(te.length / ye);
});
- function ee(te) {
- const ge = Array.isArray(q.value) ? q.value : [], we = Math.max(1, Q.value), be = Math.max(0, Number(te) || 0) * we;
- return ge.slice(be, be + we);
+ function q(te) {
+ const ye = Array.isArray(K.value) ? K.value : [], We = Math.max(1, $.value), pe = Math.max(0, Number(te) || 0) * We;
+ return ye.slice(pe, pe + We);
}
- const oe = Je(() => {
- var we;
- const te = Math.max(1, Y.value), ge = ((we = v.value) == null ? void 0 : we.clientHeight) || 0;
- return ge <= 0 ? 6 : Math.max(3, Math.min(20, Math.ceil(ge / te)));
- }), ce = QW(
- Je(() => ({
- count: n.virtualize ? P.value : 0,
- getScrollElement: () => v.value,
- estimateSize: () => Y.value,
- overscan: oe.value,
- measureElement: bb
+ const ee = ze(() => {
+ var We;
+ const te = Math.max(1, j.value), ye = ((We = L.value) == null ? void 0 : We.clientHeight) || 0;
+ return ye <= 0 ? 6 : Math.max(3, Math.min(20, Math.ceil(ye / te)));
+ }), ce = e1(
+ ze(() => ({
+ count: n.virtualize ? D.value : 0,
+ getScrollElement: () => L.value,
+ estimateSize: () => j.value,
+ overscan: ee.value,
+ measureElement: pb
}))
- ), pe = Je(() => n.virtualize ? ce.value.getVirtualItems() : []), H = Je(
- () => pe.value.map((te) => ({
+ ), ue = ze(() => n.virtualize ? ce.value.getVirtualItems() : []), U = ze(
+ () => ue.value.map((te) => ({
key: te.key,
index: te.index,
- items: ee(te.index)
+ items: q(te.index)
}))
- ), $ = Je(() => {
+ ), Q = ze(() => {
const te = /* @__PURE__ */ new Map();
- for (const ge of pe.value)
- te.set(ge.index, ge);
+ for (const ye of ue.value)
+ te.set(ye.index, ye);
return te;
- }), _ = Je(() => n.virtualize ? ce.value.getTotalSize() : 0), le = Je(() => (l.value, !!ye.GRID_SHOW_DETAILS)), se = Je(() => {
- const te = Math.max(1, Number(Q.value || 1));
+ }), _ = ze(() => n.virtualize ? ce.value.getTotalSize() : 0), le = ze(() => (l.value, !!fe.GRID_SHOW_DETAILS)), de = ze(() => {
+ const te = Math.max(1, Number($.value || 1));
return Math.max(12, Math.min(36, te * 4));
- }), de = Je(
- () => Array.from({ length: Number(se.value || 12) }, (te, ge) => ge)
- ), Ze = Je(() => {
- const te = Math.max(1, Number(Q.value || 1)), ge = de.value, we = [];
- for (let be = 0; be < ge.length; be += te)
- we.push(ge.slice(be, be + te));
- return we;
- }), Fe = Je(() => {
- const te = Math.max(80, Number(Y.value || 0) - Number(K.value || 0)), ge = Math.max(80, Number(F.value || 0));
- return Math.max(0, te - ge);
- }), xe = Je(() => ({
+ }), se = ze(
+ () => Array.from({ length: Number(de.value || 12) }, (te, ye) => ye)
+ ), ge = ze(() => {
+ const te = Math.max(1, Number($.value || 1)), ye = se.value, We = [];
+ for (let pe = 0; pe < ye.length; pe += te)
+ We.push(ye.slice(pe, pe + te));
+ return We;
+ }), je = ze(() => {
+ const te = Math.max(80, Number(j.value || 0) - Number(oe.value || 0)), ye = Math.max(80, Number(M.value || 0));
+ return Math.max(0, te - ye);
+ }), Se = ze(() => ({
display: "flex",
- gap: `${K.value}px`,
- paddingBottom: `${K.value}px`,
+ gap: `${oe.value}px`,
+ paddingBottom: `${oe.value}px`,
boxSizing: "border-box"
- })), ze = Je(() => {
- const te = Math.max(80, Number(F.value || 0)), ge = Math.max(80, Number(Y.value || 0) - Number(K.value || 0));
+ })), ke = ze(() => {
+ const te = Math.max(80, Number(M.value || 0)), ye = Math.max(80, Number(j.value || 0) - Number(oe.value || 0));
return {
width: `${te}px`,
flex: `0 0 ${te}px`,
minWidth: `${te}px`,
- height: `${ge}px`,
+ height: `${ye}px`,
borderRadius: "12px",
border: "1px solid rgba(255,255,255,0.22)",
background: "rgba(192,198,206,0.20)",
@@ -43527,13 +43687,13 @@ const eY = {
boxShadow: "0 6px 18px rgba(0,0,0,0.24)",
boxSizing: "border-box"
};
- }), We = Je(() => ({
+ }), we = ze(() => ({
width: "100%",
- height: `${Math.max(80, Number(F.value || 0))}px`,
+ height: `${Math.max(80, Number(M.value || 0))}px`,
background: "linear-gradient(90deg, rgba(168,174,182,0.40) 0%, rgba(220,225,232,0.54) 50%, rgba(168,174,182,0.40) 100%)",
backgroundSize: "220% 100%",
animation: "mjr-skeleton-shimmer 2.2s ease-in-out infinite"
- })), De = Je(() => ({
+ })), Je = ze(() => ({
height: "10px",
margin: "10px 10px 6px",
borderRadius: "8px",
@@ -43541,7 +43701,7 @@ const eY = {
background: "linear-gradient(90deg, rgba(162,168,176,0.38) 0%, rgba(214,219,226,0.52) 50%, rgba(162,168,176,0.38) 100%)",
backgroundSize: "220% 100%",
animation: "mjr-skeleton-shimmer 2.2s ease-in-out infinite"
- })), Pe = Je(() => ({
+ })), $e = ze(() => ({
height: "10px",
margin: "0 10px 10px",
borderRadius: "8px",
@@ -43549,199 +43709,203 @@ const eY = {
background: "linear-gradient(90deg, rgba(160,166,173,0.34) 0%, rgba(208,214,221,0.48) 50%, rgba(160,166,173,0.34) 100%)",
backgroundSize: "220% 100%",
animation: "mjr-skeleton-shimmer 2.2s ease-in-out infinite"
- })), Qe = Je(() => ({
+ })), qe = ze(() => ({
display: le.value ? "block" : "none",
- minHeight: `${Math.max(0, Number(Fe.value || 0))}px`
+ minHeight: `${Math.max(0, Number(je.value || 0))}px`
}));
function Ue() {
- var ge;
- const te = Number(((ge = v.value) == null ? void 0 : ge.clientWidth) || 0) || 0;
+ var ye;
+ const te = Number(((ye = L.value) == null ? void 0 : ye.clientWidth) || 0) || 0;
if (te > 0) {
o.value = te, r.value = !0;
return;
}
r.value || (o.value = 0);
}
- let Ee = null, Re = null, wt = !1;
- an(
- v,
- (te, ge) => {
- var we, be, Oe;
+ let Te = null, Oe = null, pt = !1;
+ cn(
+ L,
+ (te, ye) => {
+ var We, pe, De;
try {
- (we = Ee == null ? void 0 : Ee.disconnect) == null || we.call(Ee);
+ (We = Te == null ? void 0 : Te.disconnect) == null || We.call(Te);
} catch (ot) {
- (be = console.debug) == null || be.call(console, ot);
+ (pe = console.debug) == null || pe.call(console, ot);
}
if (te) {
Ue();
try {
- Ee = new ResizeObserver(() => {
+ Te = new ResizeObserver(() => {
Ue();
- }), Ee.observe(te);
+ }), Te.observe(te);
} catch (ot) {
- (Oe = console.debug) == null || Oe.call(console, ot), Ee = null;
+ (De = console.debug) == null || De.call(console, ot), Te = null;
}
}
},
{ immediate: !0 }
- ), an(
- () => P.value,
+ ), cn(
+ () => D.value,
async () => {
var te;
if (E.value) {
- await Ao(), ue();
+ await wo(), me();
try {
ce.value.measure();
- } catch (ge) {
- (te = console.debug) == null || te.call(console, ge);
+ } catch (ye) {
+ (te = console.debug) == null || te.call(console, ye);
}
}
}
- ), an(
+ ), cn(
() => s.assets,
- async () => {
- await Ao(), ue();
+ async (te) => {
+ if (!Array.isArray(te) || te.length === 0) {
+ const ye = i.value;
+ ye != null && ye._mjrStackMembersCache && ye._mjrStackMembersCache.clear();
+ }
+ await wo(), me();
}
);
- function Se(te, ge) {
- const we = String((ge == null ? void 0 : ge.filename) || "").trim().toLowerCase(), be = a.get(te);
- if (be && be !== we) {
- const ot = s.renderedFilenameMap.get(be);
- ot && (ot.delete(te), ot.size || s.renderedFilenameMap.delete(be));
+ function Me(te, ye) {
+ const We = String((ye == null ? void 0 : ye.filename) || "").trim().toLowerCase(), pe = a.get(te);
+ if (pe && pe !== We) {
+ const ot = s.renderedFilenameMap.get(pe);
+ ot && (ot.delete(te), ot.size || s.renderedFilenameMap.delete(pe));
}
- if (!we) {
+ if (!We) {
a.delete(te);
return;
}
- let Oe = s.renderedFilenameMap.get(we);
- Oe || (Oe = /* @__PURE__ */ new Set(), s.renderedFilenameMap.set(we, Oe)), Oe.add(te), a.set(te, we);
+ let De = s.renderedFilenameMap.get(We);
+ De || (De = /* @__PURE__ */ new Set(), s.renderedFilenameMap.set(We, De)), De.add(te), a.set(te, We);
}
- function Ft(te) {
+ function Xt(te) {
if (!te) return;
- const ge = a.get(te);
- if (!ge) return;
- const we = s.renderedFilenameMap.get(ge);
- we && (we.delete(te), we.size || s.renderedFilenameMap.delete(ge)), a.delete(te);
+ const ye = a.get(te);
+ if (!ye) return;
+ const We = s.renderedFilenameMap.get(ye);
+ We && (We.delete(te), We.size || s.renderedFilenameMap.delete(ye)), a.delete(te);
}
- function Gt(te) {
- var tn, re, ie;
- const ge = String(te || "").trim().toLowerCase();
- if (!ge) return;
- const we = s.renderedFilenameMap.get(ge), be = Array.from(we || []);
- if (!be.length) return;
- const Oe = (Array.isArray(s.assets) ? s.assets : []).filter(
- (me) => String((me == null ? void 0 : me.filename) || "").trim().toLowerCase() === ge
+ function Mt(te) {
+ var re, ne, Ie;
+ const ye = String(te || "").trim().toLowerCase();
+ if (!ye) return;
+ const We = s.renderedFilenameMap.get(ye), pe = Array.from(We || []);
+ if (!pe.length) return;
+ const De = (Array.isArray(s.assets) ? s.assets : []).filter(
+ (Ne) => String((Ne == null ? void 0 : Ne.filename) || "").trim().toLowerCase() === ye
), ot = Math.max(
- Number(((re = (tn = s.filenameCounts) == null ? void 0 : tn.get) == null ? void 0 : re.call(tn, ge)) || 0) || 0,
- Oe.length
- ), dt = jI(Oe), un = be.find((me) => {
- var ut;
- const Xe = String(((ut = me._mjrAsset) == null ? void 0 : ut.id) || ""), qe = String((dt == null ? void 0 : dt.id) || "");
- return Xe && qe && Xe === qe;
- }) || be[0] || be[0] || null, Wt = (un == null ? void 0 : un._mjrAsset) || dt || Oe[0] || null;
- vI(Wt, Oe);
- for (const me of be) {
- delete me.dataset.mjrDupHidden;
- const Xe = me._mjrAsset;
- Xe && (Xe._mjrNameCollision = !1, delete Xe._mjrNameCollisionCount, delete Xe._mjrNameCollisionPaths, Xe._mjrDupStack = !1, Xe._mjrDupMembers = null, Xe._mjrDupCount = 0, Xe._mjrDupHidden = !1);
+ Number(((ne = (re = s.filenameCounts) == null ? void 0 : re.get) == null ? void 0 : ne.call(re, ye)) || 0) || 0,
+ De.length
+ ), Zt = vI(De), Pt = pe.find((Ne) => {
+ var St;
+ const He = String(((St = Ne._mjrAsset) == null ? void 0 : St.id) || ""), rt = String((Zt == null ? void 0 : Zt.id) || "");
+ return He && rt && He === rt;
+ }) || pe[0] || pe[0] || null, vt = (Pt == null ? void 0 : Pt._mjrAsset) || Zt || De[0] || null;
+ LI(vt, De);
+ for (const Ne of pe) {
+ delete Ne.dataset.mjrDupHidden;
+ const He = Ne._mjrAsset;
+ He && (He._mjrNameCollision = !1, delete He._mjrNameCollisionCount, delete He._mjrNameCollisionPaths, He._mjrDupStack = !1, He._mjrDupMembers = null, He._mjrDupCount = 0, He._mjrDupHidden = !1);
}
- if (!un || !Wt || ot < 2) {
- for (const me of be)
+ if (!Pt || !vt || ot < 2) {
+ for (const Ne of pe)
try {
r && s.loadingMessage;
- } catch (Xe) {
- (ie = console.debug) == null || ie.call(console, Xe);
+ } catch (He) {
+ (Ie = console.debug) == null || Ie.call(console, He);
}
return;
}
- Wt._mjrDupStack = !0, Wt._mjrDupMembers = Oe.length ? Oe : [Wt], Wt._mjrDupCount = Wt._mjrDupMembers.length, Wt._mjrNameCollision = !1;
- for (let me = 1; me < be.length; me += 1)
- be[me].dataset.mjrDupHidden = "true", be[me]._mjrAsset && (be[me]._mjrAsset._mjrDupHidden = !0);
+ vt._mjrDupStack = !0, vt._mjrDupMembers = De.length ? De : [vt], vt._mjrDupCount = vt._mjrDupMembers.length, vt._mjrNameCollision = !1;
+ for (let Ne = 1; Ne < pe.length; Ne += 1)
+ pe[Ne].dataset.mjrDupHidden = "true", pe[Ne]._mjrAsset && (pe[Ne]._mjrAsset._mjrDupHidden = !0);
}
- function ue() {
+ function me() {
for (const te of s.renderedFilenameMap.keys())
- Gt(te);
+ Mt(te);
}
- function He(te, ge) {
- var Oe, ot;
- const we = String((te == null ? void 0 : te.id) || "").trim();
- if (!we) return;
- if (!ge) {
- const dt = s.cardElements.get(we), en = dt ? a.get(dt) : "";
- Ft(dt), s.cardElements.delete(we), Gt(en);
+ function Pe(te, ye) {
+ var De, ot;
+ const We = String((te == null ? void 0 : te.id) || "").trim();
+ if (!We) return;
+ if (!ye) {
+ const Zt = s.cardElements.get(We), tn = Zt ? a.get(Zt) : "";
+ Xt(Zt), s.cardElements.delete(We), Mt(tn);
return;
}
- const be = (ge == null ? void 0 : ge.$el) ?? ge;
- if (be instanceof HTMLElement) {
- s.cardElements.set(we, be), be._mjrIsVue = !0, be._mjrAsset = te, be._mjrReactiveAsset = te, be.dataset.mjrKind = String((te == null ? void 0 : te.kind) || ""), Se(be, te), Gt(String((te == null ? void 0 : te.filename) || "").trim().toLowerCase());
+ const pe = (ye == null ? void 0 : ye.$el) ?? ye;
+ if (pe instanceof HTMLElement) {
+ s.cardElements.set(We, pe), pe._mjrIsVue = !0, pe._mjrAsset = te, pe._mjrReactiveAsset = te, pe.dataset.mjrKind = String((te == null ? void 0 : te.kind) || ""), Me(pe, te), Mt(String((te == null ? void 0 : te.filename) || "").trim().toLowerCase());
try {
- (Oe = n.onCardRendered) == null || Oe.call(n, be, te, i.value);
- } catch (dt) {
- (ot = console.debug) == null || ot.call(console, dt);
+ (De = n.onCardRendered) == null || De.call(n, pe, te, i.value);
+ } catch (Zt) {
+ (ot = console.debug) == null || ot.call(console, Zt);
}
}
}
- function ve(te) {
- return (ge) => He(te, ge);
+ function Le(te) {
+ return (ye) => Pe(te, ye);
}
- function Ot(te, ge) {
- var we, be;
+ function Ot(te, ye) {
+ var We, pe;
try {
- const Oe = (we = te == null ? void 0 : te.closest) == null ? void 0 : we.call(te, "a, button, input, textarea, select, label");
- return !!(Oe && ((be = ge == null ? void 0 : ge.contains) != null && be.call(ge, Oe)));
+ const De = (We = te == null ? void 0 : te.closest) == null ? void 0 : We.call(te, "a, button, input, textarea, select, label");
+ return !!(De && ((pe = ye == null ? void 0 : ye.contains) != null && pe.call(ye, De)));
} catch {
return !1;
}
}
- const Ve = {
+ const Xe = {
assetId: "",
at: 0
};
- function Ke(te, ge) {
- var dt, en, un;
- const we = String((ge == null ? void 0 : ge.id) || "").trim();
- if (!we) return;
+ function Ee(te, ye) {
+ var Zt, tn, Pt;
+ const We = String((ye == null ? void 0 : ye.id) || "").trim();
+ if (!We) return;
if ((te == null ? void 0 : te.type) === "click" && Number((te == null ? void 0 : te.detail) || 0) > 0) {
- const Wt = Date.now() - Number(Ve.at || 0);
- if (Ve.assetId === we && Wt >= 0 && Wt < 500) {
- Ve.assetId = "", Ve.at = 0;
+ const vt = Date.now() - Number(Xe.at || 0);
+ if (Xe.assetId === We && vt >= 0 && vt < 500) {
+ Xe.assetId = "", Xe.at = 0;
return;
}
}
if (Ot(te == null ? void 0 : te.target, te == null ? void 0 : te.currentTarget)) return;
- const be = Array.isArray(s.assets) ? s.assets : [], Oe = be.findIndex((Wt) => String((Wt == null ? void 0 : Wt.id) || "") === we), ot = Array.isArray(s.selectedIds) ? s.selectedIds.slice() : [];
- if (te != null && te.shiftKey && Oe >= 0) {
- const Wt = String(s.selectionAnchorId || s.activeId || we).trim(), tn = be.findIndex((qe) => String((qe == null ? void 0 : qe.id) || "") === Wt), re = tn >= 0 ? tn : Oe, ie = Math.min(re, Oe), me = Math.max(re, Oe), Xe = be.slice(ie, me + 1).map((qe) => String((qe == null ? void 0 : qe.id) || "")).filter(Boolean);
- A(Xe, we);
+ const pe = Array.isArray(s.assets) ? s.assets : [], De = pe.findIndex((vt) => String((vt == null ? void 0 : vt.id) || "") === We), ot = Array.isArray(s.selectedIds) ? s.selectedIds.slice() : [];
+ if (te != null && te.shiftKey && De >= 0) {
+ const vt = String(s.selectionAnchorId || s.activeId || We).trim(), re = pe.findIndex((rt) => String((rt == null ? void 0 : rt.id) || "") === vt), ne = re >= 0 ? re : De, Ie = Math.min(ne, De), Ne = Math.max(ne, De), He = pe.slice(Ie, Ne + 1).map((rt) => String((rt == null ? void 0 : rt.id) || "")).filter(Boolean);
+ C(He, We);
return;
}
if (te != null && te.ctrlKey || te != null && te.metaKey) {
- const Wt = new Set(ot.map(String));
- Wt.has(we) ? Wt.delete(we) : Wt.add(we);
- const tn = Array.from(Wt);
- A(tn, Wt.has(we) ? we : tn[0] || "");
+ const vt = new Set(ot.map(String));
+ vt.has(We) ? vt.delete(We) : vt.add(We);
+ const re = Array.from(vt);
+ C(re, vt.has(We) ? We : re[0] || "");
return;
}
- A([we], we);
+ C([We], We);
try {
- (en = (dt = s.cardElements.get(we)) == null ? void 0 : dt.focus) == null || en.call(dt, { preventScroll: !0 });
- } catch (Wt) {
- (un = console.debug) == null || un.call(console, Wt);
+ (tn = (Zt = s.cardElements.get(We)) == null ? void 0 : Zt.focus) == null || tn.call(Zt, { preventScroll: !0 });
+ } catch (vt) {
+ (Pt = console.debug) == null || Pt.call(console, vt);
}
}
- function Be(te, ge) {
- Number((te == null ? void 0 : te.button) ?? 0) === 0 && (Ve.assetId = String((ge == null ? void 0 : ge.id) || "").trim(), Ve.at = Date.now(), Ke(te, ge));
+ function Ke(te, ye) {
+ Number((te == null ? void 0 : te.button) ?? 0) === 0 && (Xe.assetId = String((ye == null ? void 0 : ye.id) || "").trim(), Xe.at = Date.now(), Ee(te, ye));
}
function nt(te) {
- const ge = (Array.isArray(s.assets) ? s.assets : []).filter(
- (be) => !x(be)
- ), we = ge.findIndex(
- (be) => String((be == null ? void 0 : be.id) || "") === String((te == null ? void 0 : te.id) || "")
+ const ye = (Array.isArray(s.assets) ? s.assets : []).filter(
+ (pe) => !v(pe)
+ ), We = ye.findIndex(
+ (pe) => String((pe == null ? void 0 : pe.id) || "") === String((te == null ? void 0 : te.id) || "")
);
- !ge.length || we < 0 || ec({ assets: ge, index: we });
+ !ye.length || We < 0 || tc({ assets: ye, index: We });
}
- function mt(te) {
- var ge, we, be, Oe;
+ function ut(te) {
+ var ye, We, pe, De;
try {
if (typeof n.onCardDblclick == "function") {
n.onCardDblclick({
@@ -43752,169 +43916,186 @@ const eY = {
return;
}
} catch (ot) {
- (ge = console.debug) == null || ge.call(console, ot);
+ (ye = console.debug) == null || ye.call(console, ot);
}
- if (x(te)) {
+ if (v(te)) {
try {
- (be = (we = i.value) == null ? void 0 : we.dispatchEvent) == null || be.call(
- we,
+ (pe = (We = i.value) == null ? void 0 : We.dispatchEvent) == null || pe.call(
+ We,
new CustomEvent("mjr:open-folder-asset", {
bubbles: !0,
detail: { asset: te }
})
);
} catch (ot) {
- (Oe = console.debug) == null || Oe.call(console, ot);
+ (De = console.debug) == null || De.call(console, ot);
}
return;
}
nt(te);
}
- let bt = null;
- function st() {
- W() && Ct();
+ let It = null;
+ function dt() {
+ var te, ye, We;
+ Ue();
+ try {
+ (ye = (te = ce.value) == null ? void 0 : te.measure) == null || ye.call(te);
+ } catch (pe) {
+ (We = console.debug) == null || We.call(console, pe);
+ }
}
- function ke(te) {
+ function Re() {
+ if (dt(), !W()) {
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ dt(), lt();
+ });
+ });
+ return;
+ }
+ lt();
+ }
+ function Wt(te) {
if (!te || !n.virtualize) return () => {
};
- const ge = () => {
+ const ye = () => {
if (s.loading || s.done) return;
- Number(te.scrollHeight || 0) - (Number(te.scrollTop || 0) + Number(te.clientHeight || 0)) <= Math.max(120, Y.value * 2) && y.loadNextPage();
+ Number(te.scrollHeight || 0) - (Number(te.scrollTop || 0) + Number(te.clientHeight || 0)) <= Math.max(600, j.value * 4) && y.loadNextPage();
};
- return te.addEventListener("scroll", ge, { passive: !0 }), () => {
- var we;
+ return te.addEventListener("scroll", ye, { passive: !0 }), () => {
+ var We;
try {
- te.removeEventListener("scroll", ge);
- } catch (be) {
- (we = console.debug) == null || we.call(console, be);
+ te.removeEventListener("scroll", ye);
+ } catch (pe) {
+ (We = console.debug) == null || We.call(console, pe);
}
};
}
- an(
- v,
+ cn(
+ L,
(te) => {
- var ge;
+ var ye;
try {
- bt == null || bt();
- } catch (we) {
- (ge = console.debug) == null || ge.call(console, we);
+ It == null || It();
+ } catch (We) {
+ (ye = console.debug) == null || ye.call(console, We);
}
- bt = ke(te);
+ It = Wt(te);
},
{ immediate: !0 }
);
- async function Ct() {
+ async function lt() {
if (!n.virtualize || !E.value || s.loading || s.done) return;
- const te = v.value;
+ const te = L.value;
if (!te) return;
- await Ao();
- const ge = Number(te.scrollHeight || 0) || 0, we = Number(te.clientHeight || 0) || 0;
- ge <= we + 40 && y.loadNextPage();
+ await wo();
+ const ye = Number(te.scrollHeight || 0) || 0, We = Number(te.clientHeight || 0) || 0;
+ ye <= We + 40 && y.loadNextPage();
}
- an(
- () => `${Array.isArray(s.assets) ? s.assets.length : 0}::${Q.value}::${s.loading}::${s.done}`,
+ cn(
+ () => `${Array.isArray(s.assets) ? s.assets.length : 0}::${$.value}::${s.loading}::${s.done}`,
() => {
- Ct();
+ lt();
},
{ flush: "post" }
);
- function at(te) {
- var ge;
+ function qt(te) {
+ var ye;
if (!(!te || !n.virtualize))
try {
ce.value.measureElement(te);
- } catch (we) {
- (ge = console.debug) == null || ge.call(console, we);
+ } catch (We) {
+ (ye = console.debug) == null || ye.call(console, We);
}
}
- function zt() {
+ function yt() {
return {
- width: `${F.value}px`,
- flex: `0 0 ${F.value}px`,
- minWidth: `${F.value}px`
+ width: `${M.value}px`,
+ flex: `0 0 ${M.value}px`,
+ minWidth: `${M.value}px`
};
}
- function Zt(te) {
- return $.value.get(te) || null;
+ function mt(te) {
+ return Q.value.get(te) || null;
}
- function gt(te) {
- const ge = Zt(te);
+ function kt(te) {
+ const ye = mt(te);
return {
position: "absolute",
left: "0",
top: "0",
- transform: `translateY(${Number((ge == null ? void 0 : ge.start) || 0)}px)`,
+ transform: `translateY(${Number((ye == null ? void 0 : ye.start) || 0)}px)`,
width: "100%",
display: "flex",
- gap: `${K.value}px`,
- paddingBottom: `${K.value}px`,
+ gap: `${oe.value}px`,
+ paddingBottom: `${oe.value}px`,
boxSizing: "border-box"
};
}
- function kt() {
+ function $t() {
return {
display: "flex",
- gap: `${K.value}px`,
- paddingBottom: `${K.value}px`,
+ gap: `${oe.value}px`,
+ paddingBottom: `${oe.value}px`,
boxSizing: "border-box"
};
}
- function Qt() {
- l.value += 1, n.applyDefaultSettingsClasses && i.value && nl(i.value);
+ function Tt() {
+ l.value += 1, n.applyDefaultSettingsClasses && i.value && ol(i.value);
}
- return an(
+ return cn(
() => n.applyDefaultSettingsClasses,
() => {
- i.value && n.applyDefaultSettingsClasses && nl(i.value);
+ i.value && n.applyDefaultSettingsClasses && ol(i.value);
},
{ immediate: !0 }
- ), Mr(() => {
- var te, ge, we, be, Oe, ot, dt, en, un, Wt, tn;
+ ), xr(() => {
+ var te, ye, We, pe, De, ot, Zt, tn, Pt, vt, re;
try {
- (ge = (te = i.value) == null ? void 0 : te._mjrPrimaryPointerSelectionUnbind) == null || ge.call(te);
- } catch (re) {
- (we = console.debug) == null || we.call(console, re);
+ (ye = (te = i.value) == null ? void 0 : te._mjrPrimaryPointerSelectionUnbind) == null || ye.call(te);
+ } catch (ne) {
+ (We = console.debug) == null || We.call(console, ne);
}
try {
i.value && (i.value._mjrPrimaryPointerSelectionUnbind = null, i.value._mjrSelectionManagedByVue = !1);
- } catch (re) {
- (be = console.debug) == null || be.call(console, re);
+ } catch (ne) {
+ (pe = console.debug) == null || pe.call(console, ne);
}
try {
- (Oe = Ee == null ? void 0 : Ee.disconnect) == null || Oe.call(Ee);
- } catch (re) {
- (ot = console.debug) == null || ot.call(console, re);
+ (De = Te == null ? void 0 : Te.disconnect) == null || De.call(Te);
+ } catch (ne) {
+ (ot = console.debug) == null || ot.call(console, ne);
}
try {
- bt == null || bt();
- } catch (re) {
- (dt = console.debug) == null || dt.call(console, re);
+ It == null || It();
+ } catch (ne) {
+ (Zt = console.debug) == null || Zt.call(console, ne);
}
try {
y.dispose();
- } catch (re) {
- (en = console.debug) == null || en.call(console, re);
+ } catch (ne) {
+ (tn = console.debug) == null || tn.call(console, ne);
}
try {
- Re == null || Re();
- } catch (re) {
- (un = console.debug) == null || un.call(console, re);
+ Oe == null || Oe();
+ } catch (ne) {
+ (Pt = console.debug) == null || Pt.call(console, ne);
}
- Re = null;
+ Oe = null;
try {
- window.removeEventListener("mjr-settings-changed", Qt), wt = !1;
- } catch (re) {
- (Wt = console.debug) == null || Wt.call(console, re);
+ window.removeEventListener("mjr-settings-changed", Tt), pt = !1;
+ } catch (ne) {
+ (vt = console.debug) == null || vt.call(console, ne);
}
try {
- window.removeEventListener("mjr:keepalive-attached", st);
- } catch (re) {
- (tn = console.debug) == null || tn.call(console, re);
+ window.removeEventListener("mjr:keepalive-attached", Re);
+ } catch (ne) {
+ (re = console.debug) == null || re.call(console, ne);
}
- }), an(
+ }), cn(
i,
(te) => {
- te && (wt || (window.addEventListener("mjr-settings-changed", Qt), window.addEventListener("mjr:keepalive-attached", st), wt = !0));
+ te && (pt || (window.addEventListener("mjr-settings-changed", Tt), window.addEventListener("mjr:keepalive-attached", Re), pt = !0));
},
{ immediate: !0 }
), t({
@@ -43957,7 +44138,7 @@ const eY = {
dispose() {
return y.dispose();
}
- }), (te, ge) => (Ie(), he("div", {
+ }), (te, ye) => (be(), Ce("div", {
ref_key: "gridContainerRef",
ref: i,
class: "mjr-grid",
@@ -43965,44 +44146,44 @@ const eY = {
role: "grid",
style: { position: "relative", "min-height": "100%" }
}, [
- Ge(s).loading && !Ge(s).assets.length || !r.value && Ge(s).assets.length ? (Ie(), he("div", eY, [
- ne("div", tY, [
- ne("div", nY, [
- (Ie(!0), he(Xt, null, Cn(Ze.value, (we, be) => (Ie(), he("div", {
- key: `skr-${be}`,
- style: vt(xe.value)
+ xe(s).loading && !xe(s).assets.length || !r.value && xe(s).assets.length ? (be(), Ce("div", iV, [
+ ie("div", oV, [
+ ie("div", rV, [
+ (be(!0), Ce(Nt, null, Cn(ge.value, (We, pe) => (be(), Ce("div", {
+ key: `skr-${pe}`,
+ style: Lt(Se.value)
}, [
- (Ie(!0), he(Xt, null, Cn(we, (Oe) => (Ie(), he("div", {
- key: `sk-${Oe}`,
+ (be(!0), Ce(Nt, null, Cn(We, (De) => (be(), Ce("div", {
+ key: `sk-${De}`,
class: "mjr-grid-skeleton-card",
- style: vt(ze.value)
+ style: Lt(ke.value)
}, [
- ne("div", {
+ ie("div", {
class: "mjr-grid-skeleton-thumb mjr-grid-skeleton-shimmer",
- style: vt(We.value)
+ style: Lt(we.value)
}, null, 4),
- ne("div", {
- style: vt(Qe.value)
+ ie("div", {
+ style: Lt(qe.value)
}, [
- ne("div", {
+ ie("div", {
class: "mjr-grid-skeleton-line mjr-grid-skeleton-line--title mjr-grid-skeleton-shimmer",
- style: vt(De.value)
+ style: Lt(Je.value)
}, null, 4),
- ne("div", {
+ ie("div", {
class: "mjr-grid-skeleton-line mjr-grid-skeleton-line--meta mjr-grid-skeleton-shimmer",
- style: vt(Pe.value)
+ style: Lt($e.value)
}, null, 4)
], 4)
], 4))), 128))
], 4))), 128))
]),
- ne("div", iY, Ye(r.value ? Ge(s).loadingMessage || "Loading assets..." : "Preparing grid..."), 1)
+ ie("div", lV, Ye(r.value ? xe(s).loadingMessage || "Loading assets..." : "Preparing grid..."), 1)
])
- ])) : yt("", !0),
- Ge(s).statusMessage && !Ge(s).assets.length && !Ge(s).loading ? (Ie(), he("div", {
+ ])) : ft("", !0),
+ xe(s).statusMessage && !xe(s).assets.length && !xe(s).loading ? (be(), Ce("div", {
key: 1,
class: "mjr-grid-message",
- style: vt({
+ style: Lt({
position: "absolute",
inset: "0",
zIndex: 3,
@@ -44014,125 +44195,125 @@ const eY = {
pointerEvents: "none",
fontSize: "14px",
lineHeight: "1.4",
- color: Ge(s).statusError ? "var(--error-text, #f44336)" : "var(--muted-text, #bdbdbd)",
+ color: xe(s).statusError ? "var(--error-text, #f44336)" : "var(--muted-text, #bdbdbd)",
background: "rgba(0, 0, 0, 0.35)"
})
- }, Ye(Ge(s).statusMessage), 5)) : yt("", !0),
- e.virtualize && r.value ? (Ie(), he("div", {
+ }, Ye(xe(s).statusMessage), 5)) : ft("", !0),
+ e.virtualize && r.value ? (be(), Ce("div", {
key: 2,
- style: vt({
+ style: Lt({
height: `${_.value}px`,
position: "relative",
width: "100%"
})
}, [
- (Ie(!0), he(Xt, null, Cn(H.value, (we) => (Ie(), he("div", {
- key: we.key,
+ (be(!0), Ce(Nt, null, Cn(U.value, (We) => (be(), Ce("div", {
+ key: We.key,
ref_for: !0,
- ref: at,
- "data-index": we.index,
- style: vt(gt(we.index))
+ ref: qt,
+ "data-index": We.index,
+ style: Lt(kt(We.index))
}, [
- we.items.length ? (Ie(!0), he(Xt, { key: 0 }, Cn(we.items, (be) => (Ie(), he(Xt, {
- key: String(be.id)
+ We.items.length ? (be(!0), Ce(Nt, { key: 0 }, Cn(We.items, (pe) => (be(), Ce(Nt, {
+ key: String(pe.id)
}, [
- x(be) ? (Ie(), Ei(rm, {
+ v(pe) ? (be(), Pi(am, {
key: 0,
ref_for: !0,
- ref: ve(be),
- asset: be,
- selected: z(be),
- style: vt(zt()),
- onMousedown: Fn((Oe) => Be(Oe, be), ["left"]),
- onClick: (Oe) => Ke(Oe, be),
- onDblclick: Fn((Oe) => mt(be), ["stop"])
- }, null, 8, ["asset", "selected", "style", "onMousedown", "onClick", "onDblclick"])) : (Ie(), he("div", {
+ ref: Le(pe),
+ asset: pe,
+ selected: T(pe),
+ style: Lt(yt()),
+ onMousedown: On((De) => Ke(De, pe), ["left"]),
+ onClick: (De) => Ee(De, pe),
+ onDblclick: On((De) => ut(pe), ["stop"])
+ }, null, 8, ["asset", "selected", "style", "onMousedown", "onClick", "onDblclick"])) : (be(), Ce("div", {
key: 1,
ref_for: !0,
- ref: ve(be),
+ ref: Le(pe),
class: Zn(["mjr-asset-card mjr-card", {
- "is-selected": z(be),
- "mjr-live-placeholder": X(be)
+ "is-selected": T(pe),
+ "mjr-live-placeholder": R(pe)
}]),
role: "button",
tabindex: "0",
draggable: "true",
- style: vt([zt(), be._mjrDupHidden ? { display: "none" } : null]),
- "data-mjr-asset-id": String(be.id ?? ""),
- "data-mjr-filename-key": String(be.filename || "").toLowerCase(),
- "data-mjr-ext": k(be),
- "data-mjr-stem": G(be),
- "data-mjr-kind": String(be.kind || ""),
- "data-mjr-live-placeholder": X(be) ? "true" : void 0,
- "data-mjr-stacked": w(be) ? "true" : void 0,
- "data-mjr-stack-count": w(be) ? String(be.stack_asset_count || 0) : void 0,
- "data-mjr-dup-stacked": be._mjrDupStack ? "true" : void 0,
- "data-mjr-dup-count": be._mjrDupStack ? String(be._mjrDupCount || 0) : void 0,
- "aria-label": `Asset ${be.filename || ""}`,
- "aria-selected": z(be) ? "true" : "false",
- onMousedown: Fn((Oe) => Be(Oe, be), ["left"]),
- onClick: (Oe) => Ke(Oe, be),
- onDblclick: Fn((Oe) => mt(be), ["stop"])
+ style: Lt([yt(), pe._mjrDupHidden ? { display: "none" } : null]),
+ "data-mjr-asset-id": String(pe.id ?? ""),
+ "data-mjr-filename-key": String(pe.filename || "").toLowerCase(),
+ "data-mjr-ext": X(pe),
+ "data-mjr-stem": x(pe),
+ "data-mjr-kind": String(pe.kind || ""),
+ "data-mjr-live-placeholder": R(pe) ? "true" : void 0,
+ "data-mjr-stacked": w(pe) ? "true" : void 0,
+ "data-mjr-stack-count": w(pe) ? String(pe.stack_asset_count || 0) : void 0,
+ "data-mjr-dup-stacked": pe._mjrDupStack ? "true" : void 0,
+ "data-mjr-dup-count": pe._mjrDupStack ? String(pe._mjrDupCount || 0) : void 0,
+ "aria-label": `Asset ${pe.filename || ""}`,
+ "aria-selected": T(pe) ? "true" : "false",
+ onMousedown: On((De) => Ke(De, pe), ["left"]),
+ onClick: (De) => Ee(De, pe),
+ onDblclick: On((De) => ut(pe), ["stop"])
}, [
- fn(om, { asset: be }, null, 8, ["asset"])
- ], 46, rY))
- ], 64))), 128)) : yt("", !0)
- ], 12, oY))), 128))
- ], 4)) : (Ie(), he("div", lY, [
- (Ie(!0), he(Xt, null, Cn(U.value, (we) => (Ie(), he("div", {
- key: we.index,
- style: vt(kt())
+ fn(lm, { asset: pe }, null, 8, ["asset"])
+ ], 46, cV))
+ ], 64))), 128)) : ft("", !0)
+ ], 12, aV))), 128))
+ ], 4)) : (be(), Ce("div", sV, [
+ (be(!0), Ce(Nt, null, Cn(O.value, (We) => (be(), Ce("div", {
+ key: We.index,
+ style: Lt($t())
}, [
- (Ie(!0), he(Xt, null, Cn(we.items, (be) => (Ie(), he(Xt, {
- key: String(be.id)
+ (be(!0), Ce(Nt, null, Cn(We.items, (pe) => (be(), Ce(Nt, {
+ key: String(pe.id)
}, [
- x(be) ? (Ie(), Ei(rm, {
+ v(pe) ? (be(), Pi(am, {
key: 0,
ref_for: !0,
- ref: ve(be),
- asset: be,
- selected: z(be),
- style: vt(zt()),
- onMousedown: Fn((Oe) => Be(Oe, be), ["left"]),
- onClick: (Oe) => Ke(Oe, be),
- onDblclick: Fn((Oe) => mt(be), ["stop"])
- }, null, 8, ["asset", "selected", "style", "onMousedown", "onClick", "onDblclick"])) : (Ie(), he("div", {
+ ref: Le(pe),
+ asset: pe,
+ selected: T(pe),
+ style: Lt(yt()),
+ onMousedown: On((De) => Ke(De, pe), ["left"]),
+ onClick: (De) => Ee(De, pe),
+ onDblclick: On((De) => ut(pe), ["stop"])
+ }, null, 8, ["asset", "selected", "style", "onMousedown", "onClick", "onDblclick"])) : (be(), Ce("div", {
key: 1,
ref_for: !0,
- ref: ve(be),
+ ref: Le(pe),
class: Zn(["mjr-asset-card mjr-card", {
- "is-selected": z(be),
- "mjr-live-placeholder": X(be)
+ "is-selected": T(pe),
+ "mjr-live-placeholder": R(pe)
}]),
role: "button",
tabindex: "0",
draggable: "true",
- style: vt([zt(), be._mjrDupHidden ? { display: "none" } : null]),
- "data-mjr-asset-id": String(be.id ?? ""),
- "data-mjr-filename-key": String(be.filename || "").toLowerCase(),
- "data-mjr-ext": k(be),
- "data-mjr-stem": G(be),
- "data-mjr-kind": String(be.kind || ""),
- "data-mjr-live-placeholder": X(be) ? "true" : void 0,
- "data-mjr-stacked": w(be) ? "true" : void 0,
- "data-mjr-stack-count": w(be) ? String(be.stack_asset_count || 0) : void 0,
- "data-mjr-dup-stacked": be._mjrDupStack ? "true" : void 0,
- "data-mjr-dup-count": be._mjrDupStack ? String(be._mjrDupCount || 0) : void 0,
- "aria-label": `Asset ${be.filename || ""}`,
- "aria-selected": z(be) ? "true" : "false",
- onMousedown: Fn((Oe) => Be(Oe, be), ["left"]),
- onClick: (Oe) => Ke(Oe, be),
- onDblclick: Fn((Oe) => mt(be), ["stop"])
+ style: Lt([yt(), pe._mjrDupHidden ? { display: "none" } : null]),
+ "data-mjr-asset-id": String(pe.id ?? ""),
+ "data-mjr-filename-key": String(pe.filename || "").toLowerCase(),
+ "data-mjr-ext": X(pe),
+ "data-mjr-stem": x(pe),
+ "data-mjr-kind": String(pe.kind || ""),
+ "data-mjr-live-placeholder": R(pe) ? "true" : void 0,
+ "data-mjr-stacked": w(pe) ? "true" : void 0,
+ "data-mjr-stack-count": w(pe) ? String(pe.stack_asset_count || 0) : void 0,
+ "data-mjr-dup-stacked": pe._mjrDupStack ? "true" : void 0,
+ "data-mjr-dup-count": pe._mjrDupStack ? String(pe._mjrDupCount || 0) : void 0,
+ "aria-label": `Asset ${pe.filename || ""}`,
+ "aria-selected": T(pe) ? "true" : "false",
+ onMousedown: On((De) => Ke(De, pe), ["left"]),
+ onClick: (De) => Ee(De, pe),
+ onDblclick: On((De) => ut(pe), ["stop"])
}, [
- fn(om, { asset: be }, null, 8, ["asset"])
- ], 46, aY))
+ fn(lm, { asset: pe }, null, 8, ["asset"])
+ ], 46, dV))
], 64))), 128))
], 4))), 128))
]))
], 512));
}
-}, Gp = /* @__PURE__ */ jr(cY, [["__scopeId", "data-v-41c1fc8a"]]), Dm = 240, Em = 120, sY = 80;
-function dY(e) {
+}, vp = /* @__PURE__ */ Vr(uV, [["__scopeId", "data-v-d9ff3613"]]), Em = 240, Hm = 120, mV = 80;
+function gV(e) {
var i;
const t = document.createElement("button");
t.type = "button", t.className = "mjr-asset-card mjr-card mjr-feed-group-member-card", t.style.cssText = "display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;min-height:110px;padding:8px;border:1px solid var(--mjr-border,#444);border-radius:8px;background:var(--mjr-surface,#202020);color:inherit;text-align:left;overflow:hidden;";
@@ -44144,7 +44325,7 @@ function dY(e) {
const n = document.createElement("div");
return n.className = "mjr-feed-group-member-name", n.style.cssText = "font-size:11px;font-weight:600;line-height:1.3;word-break:break-word;", n.textContent = String((e == null ? void 0 : e.filename) || "Asset"), t.appendChild(n), t;
}
-function Id(e) {
+function pd(e) {
var t, n, i;
try {
if (typeof (e == null ? void 0 : e._mjrGetRenderedCards) == "function") {
@@ -44160,56 +44341,56 @@ function Id(e) {
return (i = console.debug) == null || i.call(console, o), [];
}
}
-function Ia(e, t, n = "") {
+function ba(e, t, n = "") {
const i = Array.isArray(t) ? t.map(String).filter(Boolean) : [];
- return MC(
+ return xC(
e,
i,
{ activeId: n || i[0] || "" },
- Id
+ pd
);
}
-function uY(e) {
+function IV(e) {
const t = e == null ? void 0 : e.grid;
if (!t) return;
const n = (i) => {
- var d, u, I, p, M, Z, A, g;
+ var d, u, I, p, S, A, C, g;
if (i.defaultPrevented) return;
const o = (u = (d = i.target) == null ? void 0 : d.closest) == null ? void 0 : u.call(d, ".mjr-asset-card");
if (!o || !t.contains(o)) return;
const r = (p = (I = i.target) == null ? void 0 : I.closest) == null ? void 0 : p.call(I, "a, button, input, textarea, select, label");
if (r && r !== o && o.contains(r)) return;
- const l = String(((M = o.dataset) == null ? void 0 : M.mjrAssetId) || "").trim();
+ const l = String(((S = o.dataset) == null ? void 0 : S.mjrAssetId) || "").trim();
if (!l) return;
try {
window.__MJR_LAST_SELECTION_GRID__ = t;
- } catch (h) {
- (Z = console.debug) == null || Z.call(console, h);
+ } catch (Z) {
+ (A = console.debug) == null || A.call(console, Z);
}
- const a = Id(t), c = a.indexOf(o), s = Pa(t);
+ const a = pd(t), c = a.indexOf(o), s = Qa(t);
if (i.shiftKey && c >= 0) {
- const h = Number.isFinite(Number(t._mjrLastSelectedIndex)) ? Number(t._mjrLastSelectedIndex) : c, f = Math.min(h, c), b = Math.max(h, c), v = a.slice(f, b + 1).map((C) => {
- var S;
- return String(((S = C == null ? void 0 : C.dataset) == null ? void 0 : S.mjrAssetId) || "").trim();
+ const Z = Number.isFinite(Number(t._mjrLastSelectedIndex)) ? Number(t._mjrLastSelectedIndex) : c, f = Math.min(Z, c), b = Math.max(Z, c), L = a.slice(f, b + 1).map((h) => {
+ var G;
+ return String(((G = h == null ? void 0 : h.dataset) == null ? void 0 : G.mjrAssetId) || "").trim();
}).filter(Boolean);
- Ia(t, v, l), t._mjrLastSelectedIndex = c, i.preventDefault(), i.stopPropagation();
+ ba(t, L, l), t._mjrLastSelectedIndex = c, i.preventDefault(), i.stopPropagation();
return;
}
if (i.ctrlKey || i.metaKey) {
s.has(l) ? s.delete(l) : s.add(l);
- const h = Array.from(s);
- Ia(
+ const Z = Array.from(s);
+ ba(
t,
- h,
- s.has(l) ? l : h[0] || ""
+ Z,
+ s.has(l) ? l : Z[0] || ""
), c >= 0 && (t._mjrLastSelectedIndex = c), i.preventDefault(), i.stopPropagation();
return;
}
- Ia(t, [l], l), c >= 0 && (t._mjrLastSelectedIndex = c);
+ ba(t, [l], l), c >= 0 && (t._mjrLastSelectedIndex = c);
try {
- (A = o.focus) == null || A.call(o, { preventScroll: !0 });
- } catch (h) {
- (g = console.debug) == null || g.call(console, h);
+ (C = o.focus) == null || C.call(o, { preventScroll: !0 });
+ } catch (Z) {
+ (g = console.debug) == null || g.call(console, Z);
}
i.preventDefault(), i.stopPropagation();
};
@@ -44222,24 +44403,24 @@ function uY(e) {
}
};
}
-const Di = {
+const qi = {
hosts: /* @__PURE__ */ new Set(),
pendingAssets: /* @__PURE__ */ new Map()
};
-function mY(e) {
- if (!ye.EXECUTION_GROUPING_ENABLED)
- return Ua(e);
+function bV(e) {
+ if (!fe.EXECUTION_GROUPING_ENABLED)
+ return Ka(e);
const t = String((e == null ? void 0 : e.stack_id) || "").trim();
if (t) return `stack:${t}`;
const n = String((e == null ? void 0 : e.job_id) || "").trim();
- return n ? `job:${n}` : Ua(e);
+ return n ? `job:${n}` : Ka(e);
}
-function bd(e) {
+function yd(e) {
const t = /* @__PURE__ */ new Map();
for (const i of Array.isArray(e) ? e : []) {
- const o = pd(i);
+ const o = fd(i);
if (!o) continue;
- const r = mY(o);
+ const r = bV(o);
let l = t.get(r);
l || (l = { key: r, members: [] }, t.set(r, l)), l.members.push(o);
}
@@ -44262,20 +44443,20 @@ function bd(e) {
return (Number((o == null ? void 0 : o.mtime) || (o == null ? void 0 : o.created_at) || 0) || 0) - r;
}), n;
}
-function wl(e) {
+function Ml(e) {
var t, n;
return Array.from(((n = (t = e == null ? void 0 : e.assetsByKey) == null ? void 0 : t.values) == null ? void 0 : n.call(t)) || []);
}
-function Ms(e, t) {
- const n = pd(t);
- return !e || !n ? null : (e.assetsByKey || (e.assetsByKey = /* @__PURE__ */ new Map()), e.assetsByKey.set(Ua(n), n), n);
+function Gs(e, t) {
+ const n = fd(t);
+ return !e || !n ? null : (e.assetsByKey || (e.assetsByKey = /* @__PURE__ */ new Map()), e.assetsByKey.set(Ka(n), n), n);
}
-function xp(e) {
+function Lp(e) {
!(e != null && e.grid) || !e.loaded || e._renderTimer || (e._renderTimer = setTimeout(() => {
- e._renderTimer = null, bY(e);
- }, sY));
+ e._renderTimer = null, fV(e);
+ }, mV));
}
-function gY(e, t, n = 0) {
+function pV(e, t, n = 0) {
var a;
const i = Array.isArray(t == null ? void 0 : t._mjrFeedGroupAssets) ? t._mjrFeedGroupAssets.filter(Boolean) : [t].filter(Boolean);
if (!i.length) return;
@@ -44286,11 +44467,11 @@ function gY(e, t, n = 0) {
} catch (c) {
(a = console.debug) == null || a.call(console, c);
}
- Ia(e.grid, [l], l);
+ ba(e.grid, [l], l);
}
- ec({ assets: i, index: o });
+ tc({ assets: i, index: o });
}
-function IY(e, t) {
+function yV(e, t) {
const n = document.createElement("div");
n.className = "mjr-popover mjr-feed-group-popover", n.style.cssText = "display:none; width:min(440px, 92vw); padding:10px;";
const i = document.createElement("div");
@@ -44299,37 +44480,37 @@ function IY(e, t) {
o.className = "mjr-feed-group-popover-grid", o.style.cssText = "display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:8px; max-height:360px; overflow-y:auto; overscroll-behavior:contain;";
const r = Array.isArray(t == null ? void 0 : t._mjrFeedGroupAssets) ? t._mjrFeedGroupAssets : [];
for (let l = 0; l < r.length; l += 1) {
- const a = r[l], c = dY(a);
+ const a = r[l], c = gV(a);
c.classList.add("mjr-feed-group-member-card"), l === 0 && c.classList.add("mjr-feed-group-member-card--cover"), c.addEventListener("click", (s) => {
var d, u;
- s.preventDefault(), s.stopPropagation(), (u = (d = e.popoverManager) == null ? void 0 : d.close) == null || u.call(d, n), gY(e, t, l);
+ s.preventDefault(), s.stopPropagation(), (u = (d = e.popoverManager) == null ? void 0 : d.close) == null || u.call(d, n), pV(e, t, l);
}), o.appendChild(c);
}
return n.appendChild(o), e.root.appendChild(n), n;
}
-function jp(e, t, n) {
+function Vp(e, t, n) {
if (!t || !n) return;
const i = Number((n == null ? void 0 : n._mjrFeedGroupCount) || 0) || 0;
if (i <= 1 || (t.dataset.mjrFeedGrouped = "true", t.dataset.mjrFeedGroupCount = String(i), t.dataset.mjrStacked = "true", t.dataset.mjrStackCount = String(i), t.querySelector(".mjr-feed-group-button"))) return;
const o = document.createElement("button");
- o.type = "button", o.className = "mjr-feed-group-button", o.title = m("bottomFeed.groupOpen", "Show other assets from this generation"), o.setAttribute("aria-label", `${i} assets`), o.innerHTML = `${i}`, o.style.cssText = "position:absolute; top:34px; right:6px; z-index:11;", gb(o);
- const r = IY(e, n);
+ o.type = "button", o.className = "mjr-feed-group-button", o.title = m("bottomFeed.groupOpen", "Show other assets from this generation"), o.setAttribute("aria-label", `${i} assets`), o.innerHTML = `${i}`, o.style.cssText = "position:absolute; top:34px; right:6px; z-index:11;", Ib(o);
+ const r = yV(e, n);
o.addEventListener("click", (l) => {
var a, c;
l.preventDefault(), l.stopPropagation(), (c = (a = e.popoverManager) == null ? void 0 : a.toggle) == null || c.call(a, r, o);
}), t.appendChild(o);
}
-function vp(e, t) {
+function Yp(e, t) {
var i;
const n = new Map(
(Array.isArray(t) ? t : []).map((o) => [String((o == null ? void 0 : o.id) || "").trim(), o]).filter(([o]) => !!o)
);
- for (const o of Id(e == null ? void 0 : e.grid)) {
+ for (const o of pd(e == null ? void 0 : e.grid)) {
const r = String(((i = o == null ? void 0 : o.dataset) == null ? void 0 : i.mjrAssetId) || "").trim(), l = n.get(r);
- l && jp(e, o, l);
+ l && Vp(e, o, l);
}
}
-async function bY(e) {
+async function fV(e) {
var o, r, l, a, c, s, d;
if (!(e != null && e.grid)) return;
try {
@@ -44343,42 +44524,42 @@ async function bY(e) {
} catch (u) {
(d = console.debug) == null || d.call(console, u);
}
- const t = bd(wl(e)), n = await _s(e.grid, t, {
+ const t = yd(Ml(e)), n = await ed(e.grid, t, {
title: m("bottomFeed.title", "Generated Feed"),
reset: !0
});
- vp(e, t), Number((n == null ? void 0 : n.count) || 0) <= 0 ? (e.empty.textContent = m("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none";
+ Yp(e, t), Number((n == null ? void 0 : n.count) || 0) <= 0 ? (e.empty.textContent = m("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none";
}
-function Ua(e) {
+function Ka(e) {
const t = String((e == null ? void 0 : e.id) || "").trim();
if (t) return `id:${t}`;
const n = String((e == null ? void 0 : e.filename) || "").trim(), i = String((e == null ? void 0 : e.subfolder) || "").trim();
return `file:${String((e == null ? void 0 : e.source) || (e == null ? void 0 : e.type) || "").trim()}:${i}:${n}`;
}
-function pY(e) {
+function hV(e) {
const t = String(e || "").split(".").pop().toUpperCase(), n = /* @__PURE__ */ new Set(["MP4", "WEBM", "MOV", "AVI", "MKV"]), i = /* @__PURE__ */ new Set(["MP3", "WAV", "OGG", "FLAC", "AAC", "M4A"]), o = /* @__PURE__ */ new Set(["OBJ", "FBX", "GLB", "GLTF", "STL", "PLY", "SPLAT", "KSPLAT", "SPZ"]);
return n.has(t) ? "video" : i.has(t) ? "audio" : o.has(t) ? "model3d" : "image";
}
-function pd(e) {
+function fd(e) {
if (!e || typeof e != "object") return null;
const t = { ...e };
- return !t.type && t.source && (t.type = t.source), !t.source && t.type && (t.source = t.type), t.kind || (t.kind = pY(t.ext || t.filename || "")), t;
+ return !t.type && t.source && (t.type = t.source), !t.source && t.type && (t.source = t.type), t.kind || (t.kind = hV(t.ext || t.filename || "")), t;
}
-function yY(e) {
- const t = pd(e);
+function CV(e) {
+ const t = fd(e);
if (!t) return null;
- const n = Ua(t);
+ const n = Ka(t);
if (!n) return null;
- if (Di.pendingAssets.set(n, t), Di.pendingAssets.size > 64) {
- const i = Di.pendingAssets.keys().next().value;
- i && Di.pendingAssets.delete(i);
+ if (qi.pendingAssets.set(n, t), qi.pendingAssets.size > 64) {
+ const i = qi.pendingAssets.keys().next().value;
+ i && qi.pendingAssets.delete(i);
}
return t;
}
-function fY() {
- return Array.from(Di.pendingAssets.values());
+function ZV() {
+ return Array.from(qi.pendingAssets.values());
}
-async function Lp(e) {
+async function kp(e) {
var t, n;
if (e != null && e.grid) {
e.empty.style.display = "none", e.empty.textContent = m("bottomFeed.loading", "Loading recent assets...");
@@ -44386,34 +44567,34 @@ async function Lp(e) {
e.assetsByKey = /* @__PURE__ */ new Map();
const i = [];
let o = 0;
- for (; o < Dm; ) {
- const s = Vs({
+ for (; o < Em; ) {
+ const s = Xs({
q: "*",
- limit: Math.min(Em, Dm - o),
+ limit: Math.min(Hm, Em - o),
offset: o,
scope: "output",
sort: "mtime_desc",
includeTotal: o === 0
- }), d = await Rt(s, { timeoutMs: 3e4 });
+ }), d = await Ft(s, { timeoutMs: 3e4 });
if (!(d != null && d.ok))
throw new Error(String((d == null ? void 0 : d.error) || "Failed to load feed assets"));
const u = Array.isArray((t = d == null ? void 0 : d.data) == null ? void 0 : t.assets) ? d.data.assets : [];
if (!u.length) break;
for (const I of u) {
- const p = Ms(e, I);
+ const p = Gs(e, I);
p && i.push(p);
}
- if (u.length < Em) break;
+ if (u.length < Hm) break;
o += u.length;
}
- for (const s of fY())
- Ms(e, s);
- Di.pendingAssets.clear();
- const r = wl(e), l = bd(r), a = await _s(e.grid, l, {
+ for (const s of ZV())
+ Gs(e, s);
+ qi.pendingAssets.clear();
+ const r = Ml(e), l = yd(r), a = await ed(e.grid, l, {
title: m("bottomFeed.title", "Generated Feed"),
reset: !0
});
- vp(e, l), Number((a == null ? void 0 : a.count) || 0) <= 0 ? (e.empty.textContent = m("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none";
+ Yp(e, l), Number((a == null ? void 0 : a.count) || 0) <= 0 ? (e.empty.textContent = m("bottomFeed.empty", "No generated assets yet."), e.empty.style.display = "") : e.empty.style.display = "none";
} catch (i) {
(n = console.debug) == null || n.call(console, i), e.empty.textContent = m("bottomFeed.loadFailed", "Failed to load generated assets."), e.empty.style.display = "";
} finally {
@@ -44421,23 +44602,23 @@ async function Lp(e) {
}
}
}
-async function hY() {
+async function AV() {
var e;
- for (const t of Array.from(Di.hosts))
+ for (const t of Array.from(qi.hosts))
try {
- await Lp(t);
+ await kp(t);
} catch (n) {
(e = console.debug) == null || e.call(console, n);
}
}
-function CY() {
- hY();
+function WV() {
+ AV();
}
-function ZY(e) {
+function wV(e) {
const t = document.createElement("div");
t.textContent = m("bottomFeed.loading", "Loading recent assets..."), t.style.cssText = "font-size:11px; opacity:0.65; padding:4px 2px 8px 2px;", e.root.appendChild(t), e.empty = t;
}
-function AY(e) {
+function MV(e) {
var n, i, o;
if (!e) return;
const t = [e, e.parentElement, (n = e.parentElement) == null ? void 0 : n.parentElement];
@@ -44454,14 +44635,14 @@ function AY(e) {
(o = console.debug) == null || o.call(console, r);
}
}
-function Hm(e) {
+function qm(e) {
if (!e) return;
const t = (n, i) => {
i ? e.classList.add(n) : e.classList.remove(n);
};
- t("mjr-feed-show-info", ye.FEED_SHOW_INFO), t("mjr-feed-show-filename", ye.FEED_SHOW_FILENAME), t("mjr-feed-show-dimensions", ye.FEED_SHOW_DIMENSIONS), t("mjr-feed-show-date", ye.FEED_SHOW_DATE), t("mjr-feed-show-gentime", ye.FEED_SHOW_GENTIME), t("mjr-show-hover-info", ye.GRID_SHOW_HOVER_INFO), t("mjr-feed-show-dot", ye.FEED_SHOW_WORKFLOW_DOT), t("mjr-feed-show-badges-ext", ye.FEED_SHOW_BADGES_EXTENSION), t("mjr-feed-show-badges-rating", ye.FEED_SHOW_BADGES_RATING), t("mjr-feed-show-badges-tags", ye.FEED_SHOW_BADGES_TAGS);
+ t("mjr-feed-show-info", fe.FEED_SHOW_INFO), t("mjr-feed-show-filename", fe.FEED_SHOW_FILENAME), t("mjr-feed-show-dimensions", fe.FEED_SHOW_DIMENSIONS), t("mjr-feed-show-date", fe.FEED_SHOW_DATE), t("mjr-feed-show-gentime", fe.FEED_SHOW_GENTIME), t("mjr-show-hover-info", fe.GRID_SHOW_HOVER_INFO), t("mjr-feed-show-dot", fe.FEED_SHOW_WORKFLOW_DOT), t("mjr-feed-show-badges-ext", fe.FEED_SHOW_BADGES_EXTENSION), t("mjr-feed-show-badges-rating", fe.FEED_SHOW_BADGES_RATING), t("mjr-feed-show-badges-tags", fe.FEED_SHOW_BADGES_TAGS);
}
-function WY(e, t = null) {
+function SV(e, t = null) {
var d;
const n = t ?? document.createElement("div");
n.classList.add("mjr-am-grid-scroll"), n.style.position = "relative", n.style.flex = "1 1 auto", n.style.minHeight = "0", n.style.height = "100%", n.style.overflow = "auto", n.style.scrollbarGutter = "stable", n.style.overscrollBehavior = "contain", n.style.webkitOverflowScrolling = "touch";
@@ -44476,13 +44657,13 @@ function WY(e, t = null) {
var u;
i();
try {
- window.dispatchEvent(new Event(ft.MFV_OPEN));
+ window.dispatchEvent(new Event(ht.MFV_OPEN));
} catch (I) {
(u = console.debug) == null || u.call(console, I);
}
}, r = document.createElement("div");
n.appendChild(r), e.root.appendChild(n);
- const { app: l } = Ib(Gp, {
+ const { app: l } = bb(vp, {
scrollElement: n,
virtualize: !1,
applyDefaultSettingsClasses: !1,
@@ -44491,9 +44672,9 @@ function WY(e, t = null) {
onCardRendered: (u, I) => {
var p;
try {
- jp(e, u, I);
- } catch (M) {
- (p = console.debug) == null || p.call(console, M);
+ Vp(e, u, I);
+ } catch (S) {
+ (p = console.debug) == null || p.call(console, S);
}
},
onCardDblclick: () => {
@@ -44502,19 +44683,19 @@ function WY(e, t = null) {
}), a = l.mount(r), c = (a == null ? void 0 : a.gridContainer) || ((d = r.querySelector) == null ? void 0 : d.call(r, ".mjr-grid")) || null;
if (e.gridApp = l, e.gridVm = a, e.grid = c, !c) return;
c.style.minHeight = "100%", c.style.height = "auto", c.dataset.mjrScope = "output", c.dataset.mjrQuery = "*", c.dataset.mjrSort = "mtime_desc", c.dataset.mjrBottomFeed = "true";
- const s = Number(ye.FEED_GRID_MIN_SIZE || ye.GRID_MIN_SIZE || 120);
+ const s = Number(fe.FEED_GRID_MIN_SIZE || fe.GRID_MIN_SIZE || 120);
c.dataset.mjrFeedMinItemWidth = String(s), c.style.setProperty("--mjr-grid-min-size", `${s}px`), c.addEventListener("keydown", (u) => {
- var p, M, Z, A, g, h, f;
- const I = ((M = (p = u == null ? void 0 : u.key) == null ? void 0 : p.toLowerCase) == null ? void 0 : M.call(p)) || "";
+ var p, S, A, C, g, Z, f;
+ const I = ((S = (p = u == null ? void 0 : u.key) == null ? void 0 : p.toLowerCase) == null ? void 0 : S.call(p)) || "";
if (!(u != null && u.ctrlKey || u != null && u.metaKey || u != null && u.altKey)) {
if (I === "v") {
- (Z = u.preventDefault) == null || Z.call(u), (A = u.stopPropagation) == null || A.call(u), o();
+ (A = u.preventDefault) == null || A.call(u), (C = u.stopPropagation) == null || C.call(u), o();
return;
}
if (I === "c") {
- (g = u.preventDefault) == null || g.call(u), (h = u.stopPropagation) == null || h.call(u), i();
+ (g = u.preventDefault) == null || g.call(u), (Z = u.stopPropagation) == null || Z.call(u), i();
try {
- On.open().then(() => On.toggleCompareAB());
+ zn.open().then(() => zn.toggleCompareAB());
} catch (b) {
(f = console.debug) == null || f.call(console, b);
}
@@ -44534,20 +44715,20 @@ function WY(e, t = null) {
}
};
}
-function Yp(e) {
+function Xp(e) {
const t = e == null ? void 0 : e.grid;
if (!t) return [];
- const n = Pa(t);
- return n.size ? wl(e).filter((o) => n.has(String((o == null ? void 0 : o.id) || ""))) : [];
+ const n = Qa(t);
+ return n.size ? Ml(e).filter((o) => n.has(String((o == null ? void 0 : o.id) || ""))) : [];
}
-function wY(e) {
+function GV(e) {
var i;
const t = e == null ? void 0 : e.grid;
if (!t) return null;
const n = String(((i = t.dataset) == null ? void 0 : i.mjrSelectedAssetId) || "").trim();
- return n ? wl(e).find((o) => String((o == null ? void 0 : o.id) || "") === n) || null : Yp(e)[0] || null;
+ return n ? Ml(e).find((o) => String((o == null ? void 0 : o.id) || "") === n) || null : Xp(e)[0] || null;
}
-function MY(e) {
+function xV(e) {
var n;
const t = String(e ?? "");
try {
@@ -44558,27 +44739,27 @@ function MY(e) {
}
return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
-function SY(e) {
+function jV(e) {
const t = e == null ? void 0 : e.grid;
if (!t) return;
const n = () => {
var i;
try {
- xp(e);
+ Lp(e);
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
};
- e.keyboard = ob({
+ e.keyboard = rb({
gridContainer: t,
- getState: () => ({ assets: bd(wl(e)) }),
- getSelectedAssets: () => Yp(e),
- getActiveAsset: () => wY(e),
+ getState: () => ({ assets: yd(Ml(e)) }),
+ getSelectedAssets: () => Xp(e),
+ getActiveAsset: () => GV(e),
onOpenTagsEditor: (i) => {
var c, s, d;
const o = ((c = t.querySelector) == null ? void 0 : c.call(
t,
- `.mjr-asset-card[data-mjr-asset-id="${MY((i == null ? void 0 : i.id) || "")}"]`
+ `.mjr-asset-card[data-mjr-asset-id="${xV((i == null ? void 0 : i.id) || "")}"]`
)) || null;
let r = null;
try {
@@ -44587,20 +44768,20 @@ function SY(e) {
(d = console.debug) == null || d.call(console, u);
}
const l = Math.round(((r == null ? void 0 : r.left) || 0) + Math.min(((r == null ? void 0 : r.width) || 0) * 0.5, 160)), a = Math.round(((r == null ? void 0 : r.top) || 0) + Math.min(((r == null ? void 0 : r.height) || 0) * 0.5, 120));
- ub(l, a, i, n);
+ mb(l, a, i, n);
},
onAssetChanged: n
- }), e.keyboard.bind(), e.ratingHotkeys = mb({
+ }), e.keyboard.bind(), e.ratingHotkeys = gb({
gridContainer: t,
createRatingBadge: Ya
}), e.ratingHotkeys.bind();
}
-const Ss = 60, Vp = 600, cl = 10;
-function kc(e, t) {
+const xs = 60, Np = 600, sl = 10;
+function Nc(e, t) {
var i, o, r, l;
const n = Math.max(
- Ss,
- Math.min(Vp, Math.round(Number(t) / cl) * cl)
+ xs,
+ Math.min(Np, Math.round(Number(t) / sl) * sl)
);
if (e != null && e.grid)
try {
@@ -44608,10 +44789,10 @@ function kc(e, t) {
} catch (a) {
(i = console.debug) == null || i.call(console, a);
}
- ye.FEED_GRID_MIN_SIZE = n;
+ fe.FEED_GRID_MIN_SIZE = n;
try {
const a = Xn();
- a.feed.minSize = n, Te(a), At(a);
+ a.feed.minSize = n, Be(a), At(a);
} catch (a) {
(o = console.debug) == null || o.call(console, a);
}
@@ -44629,10 +44810,10 @@ function kc(e, t) {
}
return n;
}
-function GY(e) {
+function vV(e) {
const t = Math.max(
- Ss,
- Number(ye.FEED_GRID_MIN_SIZE || 120) || 120
+ xs,
+ Number(fe.FEED_GRID_MIN_SIZE || 120) || 120
), n = document.createElement("div");
n.className = "mjr-feed-toolbar", n.style.cssText = "display:flex; align-items:center; gap:5px; padding:0 2px 5px 2px; flex-shrink:0; user-select:none;";
const i = document.createElement("span");
@@ -44640,19 +44821,19 @@ function GY(e) {
const o = document.createElement("button");
o.type = "button", o.className = "mjr-feed-size-btn", o.textContent = "β", o.title = m("bottomFeed.cardSizeDecrease", "Decrease card size"), o.style.cssText = "width:20px; height:20px; padding:0; border:1px solid var(--mjr-border,#555); border-radius:4px; background:var(--mjr-surface,#2a2a2a); color:inherit; cursor:pointer; font-size:14px; line-height:1; flex-shrink:0; display:flex; align-items:center; justify-content:center;", n.appendChild(o);
const r = document.createElement("input");
- r.type = "range", r.className = "mjr-feed-size-slider", r.min = String(Ss), r.max = String(Vp), r.step = String(cl), r.value = String(t), r.title = m("bottomFeed.cardSizeSlider", "Card size"), r.style.cssText = "flex:1 1 auto; min-width:40px; max-width:180px; height:4px; cursor:pointer; accent-color:var(--mjr-accent,#64b5f6);", n.appendChild(r);
+ r.type = "range", r.className = "mjr-feed-size-slider", r.min = String(xs), r.max = String(Np), r.step = String(sl), r.value = String(t), r.title = m("bottomFeed.cardSizeSlider", "Card size"), r.style.cssText = "flex:1 1 auto; min-width:40px; max-width:180px; height:4px; cursor:pointer; accent-color:var(--mjr-accent,#64b5f6);", n.appendChild(r);
const l = document.createElement("button");
l.type = "button", l.className = "mjr-feed-size-btn", l.textContent = "+", l.title = m("bottomFeed.cardSizeIncrease", "Increase card size"), l.style.cssText = o.style.cssText, n.appendChild(l);
const a = document.createElement("span");
a.className = "mjr-feed-size-display", a.textContent = `${t}px`, a.style.cssText = "font-size:11px; opacity:0.65; white-space:nowrap; min-width:36px; text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums;", n.appendChild(a), o.addEventListener("click", () => {
- kc(e, Number(r.value) - cl);
+ Nc(e, Number(r.value) - sl);
}), l.addEventListener("click", () => {
- kc(e, Number(r.value) + cl);
+ Nc(e, Number(r.value) + sl);
}), r.addEventListener("input", () => {
- kc(e, Number(r.value));
+ Nc(e, Number(r.value));
}), e.root.appendChild(n), e._sizeToolbar = n;
}
-function xY(e, t = {}) {
+function LV(e, t = {}) {
const n = document.createElement("div");
n.className = "mjr-assets-manager mjr-bottom-feed", n.style.cssText = "padding:6px; height:100%; min-height:0; box-sizing:border-box; display:flex; flex-direction:column; overflow:hidden;", e.replaceChildren(n);
const i = {
@@ -44664,14 +44845,14 @@ function xY(e, t = {}) {
assetsByKey: /* @__PURE__ */ new Map(),
popoverManager: null
};
- GY(i), ZY(i), WY(i, t.gridWrapper ?? null), uY(i), i.popoverManager = ib(n), i._disposeContextMenu = ld({
+ vV(i), wV(i), SV(i, t.gridWrapper ?? null), IV(i), i.popoverManager = ob(n), i._disposeContextMenu = cd({
gridContainer: i.grid,
getState: () => ({ scope: "output" })
- }), SY(i), Hm(i.grid);
+ }), jV(i), qm(i.grid);
const o = () => {
var r;
try {
- Hm(i.grid);
+ qm(i.grid);
} catch (l) {
(r = console.debug) == null || r.call(console, l);
}
@@ -44685,31 +44866,31 @@ function xY(e, t = {}) {
}
}, i;
}
-function jY(e) {
+function VV(e) {
var n;
- const t = yY(e);
+ const t = CV(e);
if (t)
- for (const i of Array.from(Di.hosts))
+ for (const i of Array.from(qi.hosts))
try {
- if (!(i != null && i.grid) || (Ms(i, t), !i.loaded)) continue;
- i.empty.style.display = "none", xp(i);
+ if (!(i != null && i.grid) || (Gs(i, t), !i.loaded)) continue;
+ i.empty.style.display = "none", Lp(i);
} catch (o) {
(n = console.debug) == null || n.call(console, o);
}
}
-function vY(e, t = {}) {
+function YV(e, t = {}) {
var i;
- AY(e);
- const n = xY(e, t);
+ MV(e);
+ const n = LV(e, t);
try {
e._mjrGeneratedFeedHost = n;
} catch (o) {
(i = console.debug) == null || i.call(console, o);
}
- return Di.hosts.add(n), Lp(n), n;
+ return qi.hosts.add(n), kp(n), n;
}
-function LY(e) {
- var i, o, r, l, a, c, s, d, u, I, p, M, Z, A, g, h, f, b, v, C, S, W, y, k, G, z, x;
+function kV(e) {
+ var i, o, r, l, a, c, s, d, u, I, p, S, A, C, g, Z, f, b, L, h, G, W, y, X, x, T, v;
const t = (e == null ? void 0 : e._mjrGeneratedFeedHost) || e || null;
if (!t) return;
const n = t.container || null;
@@ -44719,12 +44900,12 @@ function LY(e) {
} catch (w) {
try {
n._mjrGeneratedFeedHost = null;
- } catch (X) {
- (i = console.debug) == null || i.call(console, X);
+ } catch (R) {
+ (i = console.debug) == null || i.call(console, R);
}
(o = console.debug) == null || o.call(console, w);
}
- Di.hosts.delete(t);
+ qi.hosts.delete(t);
try {
(r = t._disposeSelection) == null || r.call(t);
} catch (w) {
@@ -44746,22 +44927,22 @@ function LY(e) {
(I = console.debug) == null || I.call(console, w);
}
try {
- (M = (p = t.keyboard) == null ? void 0 : p.dispose) == null || M.call(p);
+ (S = (p = t.keyboard) == null ? void 0 : p.dispose) == null || S.call(p);
+ } catch (w) {
+ (A = console.debug) == null || A.call(console, w);
+ }
+ try {
+ (g = (C = t.ratingHotkeys) == null ? void 0 : C.dispose) == null || g.call(C);
} catch (w) {
(Z = console.debug) == null || Z.call(console, w);
}
- try {
- (g = (A = t.ratingHotkeys) == null ? void 0 : A.dispose) == null || g.call(A);
- } catch (w) {
- (h = console.debug) == null || h.call(console, w);
- }
try {
(b = (f = t.popoverManager) == null ? void 0 : f.dispose) == null || b.call(f);
} catch (w) {
- (v = console.debug) == null || v.call(console, w);
+ (L = console.debug) == null || L.call(console, w);
}
try {
- (S = (C = t.gridApp) == null ? void 0 : C.unmount) == null || S.call(C);
+ (G = (h = t.gridApp) == null ? void 0 : h.unmount) == null || G.call(h);
} catch (w) {
(W = console.debug) == null || W.call(console, w);
}
@@ -44771,47 +44952,47 @@ function LY(e) {
(y = console.debug) == null || y.call(console, w);
}
try {
- wI(t.grid);
+ MI(t.grid);
} catch (w) {
- (k = console.debug) == null || k.call(console, w);
+ (X = console.debug) == null || X.call(console, w);
}
try {
- (z = (G = t.container) == null ? void 0 : G.replaceChildren) == null || z.call(G);
+ (T = (x = t.container) == null ? void 0 : x.replaceChildren) == null || T.call(x);
} catch (w) {
- (x = console.debug) == null || x.call(console, w);
+ (v = console.debug) == null || v.call(console, w);
}
}
-function Xc(e) {
+function Rc(e) {
return String(e || "").trim();
}
-function YY(e) {
+function XV(e) {
const t = String((e == null ? void 0 : e.filename) || "").trim(), n = String((e == null ? void 0 : e.subfolder) || "").trim(), i = String((e == null ? void 0 : e.type) || "output").trim().toLowerCase(), o = String((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || "").trim();
return `${i}|${o}|${n}|${t}`;
}
-function VY() {
+function NV() {
const e = /* @__PURE__ */ new Map();
function t(o, r) {
- const l = Xc(o);
+ const l = Rc(o);
if (!l) return [];
const a = Array.isArray(r) ? r : [];
if (!a.length) return [];
let c = e.get(l);
c || (c = /* @__PURE__ */ new Map(), e.set(l, c));
for (const s of a) {
- const d = YY(s);
+ const d = XV(s);
d && c.set(d, { ...c.get(d) || {}, ...s || {} });
}
return Array.from(c.values());
}
function n(o) {
var a;
- const r = Xc(o);
+ const r = Rc(o);
if (!r) return [];
const l = e.get(r);
return e.delete(r), Array.from(((a = l == null ? void 0 : l.values) == null ? void 0 : a.call(l)) || []);
}
function i(o) {
- const r = Xc(o);
+ const r = Rc(o);
r && e.delete(r);
}
return {
@@ -44821,7 +45002,7 @@ function VY() {
_jobs: e
};
}
-function kY({ defaultDelayMs: e = 900, postJob: t } = {}) {
+function RV({ defaultDelayMs: e = 900, postJob: t } = {}) {
const n = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
let o = !1;
async function r() {
@@ -44859,24 +45040,24 @@ function kY({ defaultDelayMs: e = 900, postJob: t } = {}) {
_timers: n
};
}
-function Nc(e) {
+function Fc(e) {
return String(e || "").trim();
}
-function qm(e) {
+function Pm(e) {
const t = String((e == null ? void 0 : e.filename) || "").trim(), n = String((e == null ? void 0 : e.filepath) || "").trim(), i = String((e == null ? void 0 : e.subfolder) || "").trim(), o = String((e == null ? void 0 : e.type) || (e == null ? void 0 : e.source) || "output").trim().toLowerCase(), r = String((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || "").trim();
return `${o}|${r}|${i}|${t || n}`;
}
-function XY(e, t) {
+function FV(e, t) {
return !t || String((e == null ? void 0 : e.job_id) || "").trim() === t ? e : { ...e || {}, job_id: t };
}
-function NY() {
+function OV() {
const e = /* @__PURE__ */ new Map();
function t(r, { files: l = [], expectedCount: a = null } = {}) {
- const c = Nc(r);
+ const c = Fc(r);
if (!c) return;
const s = /* @__PURE__ */ new Set();
for (const d of Array.isArray(l) ? l : []) {
- const u = qm(d);
+ const u = Pm(d);
u && s.add(u);
}
e.set(c, {
@@ -44886,14 +45067,14 @@ function NY() {
});
}
function n(r) {
- const l = Nc(r);
+ const l = Fc(r);
l && e.delete(l);
}
function i(r) {
var d, u;
- const l = Nc(r == null ? void 0 : r.job_id);
+ const l = Fc(r == null ? void 0 : r.job_id);
if (l) return l;
- const a = qm(r);
+ const a = Pm(r);
if (!a) return "";
let c = "", s = 1 / 0;
for (const [I, p] of e.entries())
@@ -44903,7 +45084,7 @@ function NY() {
function o(r) {
const l = i(r);
if (!l) return { detail: r, jobId: "", defer: !1 };
- const a = XY(r, l), c = e.get(l);
+ const a = FV(r, l), c = e.get(l);
if (!c) return { detail: a, jobId: l, defer: !1 };
const s = String((a == null ? void 0 : a.stack_id) || "").trim(), u = Math.max(0, Number((c == null ? void 0 : c.expectedCount) || 0) || 0) > 1;
return {
@@ -44920,13 +45101,13 @@ function NY() {
_pendingJobs: e
};
}
-const RY = 2e3, FY = 2e3, OY = /* @__PURE__ */ new Set([
+const zV = 2e3, JV = 2e3, TV = /* @__PURE__ */ new Set([
"DB_MAINTENANCE",
"TIMEOUT",
"NETWORK_ERROR",
"SERVICE_UNAVAILABLE"
-]), zY = 8, JY = 1200, TY = 15e3, BY = 600 * 1e3, UY = 500, KY = 6, DY = 3e4;
-function EY({
+]), BV = 8, UV = 1200, KV = 15e3, DV = 600 * 1e3, EV = 500, HV = 6, qV = 3e4, PV = 500;
+function QV({
post: e,
ENDPOINTS: t,
reportError: n,
@@ -44936,493 +45117,511 @@ function EY({
refreshGeneratedFeedHosts: l,
getActiveGridContainer: a
}) {
- const c = Cr({ ttlMs: RY, maxSize: FY }), s = Cr({
- ttlMs: BY,
- maxSize: UY
+ const c = Wr({ ttlMs: zV, maxSize: JV }), s = Wr({
+ ttlMs: DV,
+ maxSize: EV
}), d = Math.max(
0,
- Number(ye.EXECUTION_IDLE_GRACE_MS) || 6e3
- ), u = /* @__PURE__ */ new Map(), I = VY(), p = NY();
- let M = "", Z = 0, A = null;
+ Number(fe.EXECUTION_IDLE_GRACE_MS) || 6e3
+ ), u = /* @__PURE__ */ new Map(), I = NV(), p = OV();
+ let S = "", A = 0, C = null;
function g() {
- var K, F;
+ var M, j;
try {
- return typeof window > "u" ? !1 : window.__MJR_DEBUG_JOB_TRACKING__ === !0 ? !0 : String(((K = window.localStorage) == null ? void 0 : K.getItem("mjr.debug.jobTracking")) || "").trim() === "1";
- } catch (Y) {
- return (F = console.debug) == null || F.call(console, Y), !1;
+ return typeof window > "u" ? !1 : window.__MJR_DEBUG_JOB_TRACKING__ === !0 ? !0 : String(((M = window.localStorage) == null ? void 0 : M.getItem("mjr.debug.jobTracking")) || "").trim() === "1";
+ } catch (O) {
+ return (j = console.debug) == null || j.call(console, O), !1;
}
}
- function h(K, F = {}) {
- var Y;
+ function Z(M, j = {}) {
+ var O;
if (g())
try {
- console.debug("[Majoor][job-tracking]", K, F);
- } catch (U) {
- (Y = console.debug) == null || Y.call(console, U);
+ console.debug("[Majoor][job-tracking]", M, j);
+ } catch (D) {
+ (O = console.debug) == null || O.call(console, D);
}
}
function f() {
- return !!ye.EXECUTION_GROUPING_ENABLED;
+ return !!fe.EXECUTION_GROUPING_ENABLED;
}
function b() {
- const K = f();
+ const M = f();
return {
- groupingEnabled: K,
- useExecutionBuffer: K,
- usePostExecutionScan: !K,
- allowLiveStackFinalize: K
+ groupingEnabled: M,
+ useExecutionBuffer: M,
+ usePostExecutionScan: !M,
+ allowLiveStackFinalize: M
};
}
- function v(K = {}) {
- var F, Y, U, P;
- h("stacks-updated", {
- targeted_job_id: String((K == null ? void 0 : K.targeted_job_id) || ""),
- stacks: Array.isArray(K == null ? void 0 : K.stacks) ? K.stacks.map((ee) => ({
+ function L(M = {}) {
+ var j, O, D, q;
+ Z("stacks-updated", {
+ targeted_job_id: String((M == null ? void 0 : M.targeted_job_id) || ""),
+ stacks: Array.isArray(M == null ? void 0 : M.stacks) ? M.stacks.map((ee) => ({
job_id: String((ee == null ? void 0 : ee.job_id) || ""),
stack_id: String((ee == null ? void 0 : ee.stack_id) || ""),
asset_count: Number((ee == null ? void 0 : ee.asset_count) || 0) || 0
})) : []
});
try {
- const ee = String((K == null ? void 0 : K.targeted_job_id) || "").trim();
+ const ee = String((M == null ? void 0 : M.targeted_job_id) || "").trim();
ee && p.clearPendingJob(ee);
- const oe = Array.isArray(K == null ? void 0 : K.stacks) ? K.stacks : [];
- for (const ce of oe) {
- const pe = String((ce == null ? void 0 : ce.job_id) || "").trim();
- pe && p.clearPendingJob(pe);
+ const ce = Array.isArray(M == null ? void 0 : M.stacks) ? M.stacks : [];
+ for (const ue of ce) {
+ const U = String((ue == null ? void 0 : ue.job_id) || "").trim();
+ U && p.clearPendingJob(U);
}
} catch (ee) {
- (F = console.debug) == null || F.call(console, ee);
+ (j = console.debug) == null || j.call(console, ee);
}
try {
- const ee = Array.isArray(K == null ? void 0 : K.stacks) ? K.stacks : [], oe = JSON.stringify({
- targeted_job_id: String((K == null ? void 0 : K.targeted_job_id) || ""),
- stacks: ee.map((pe) => ({
- job_id: String((pe == null ? void 0 : pe.job_id) || ""),
- stack_id: String((pe == null ? void 0 : pe.stack_id) || ""),
- asset_count: Number((pe == null ? void 0 : pe.asset_count) || 0) || 0
+ const ee = Array.isArray(M == null ? void 0 : M.stacks) ? M.stacks : [], ce = JSON.stringify({
+ targeted_job_id: String((M == null ? void 0 : M.targeted_job_id) || ""),
+ stacks: ee.map((U) => ({
+ job_id: String((U == null ? void 0 : U.job_id) || ""),
+ stack_id: String((U == null ? void 0 : U.stack_id) || ""),
+ asset_count: Number((U == null ? void 0 : U.asset_count) || 0) || 0
}))
- }), ce = Date.now();
- if (oe && oe === M && ce - Z < 1500)
+ }), ue = Date.now();
+ if (ce && ce === S && ue - A < 1500)
return;
- M = oe, Z = ce;
+ S = ce, A = ue;
} catch (ee) {
- (Y = console.debug) == null || Y.call(console, ee);
+ (O = console.debug) == null || O.call(console, ee);
}
try {
window.dispatchEvent(
- new CustomEvent("mjr:stacks-updated", { detail: { ...K || {} } })
+ new CustomEvent("mjr:stacks-updated", { detail: { ...M || {} } })
);
} catch (ee) {
- (U = console.debug) == null || U.call(console, ee);
+ (D = console.debug) == null || D.call(console, ee);
}
try {
l();
} catch (ee) {
- (P = console.debug) == null || P.call(console, ee);
+ (q = console.debug) == null || q.call(console, ee);
}
}
- const C = kY({
+ const h = RV({
defaultDelayMs: 900,
- async postJob(K) {
- var F;
- h("auto-stack:start", { job_id: K });
+ async postJob(M) {
+ var j;
+ Z("auto-stack:start", { job_id: M });
try {
- const Y = await e(t.STACKS_AUTO_STACK, {
+ const O = await e(t.STACKS_AUTO_STACK, {
mode: "job_id",
- job_id: K
+ job_id: M
});
- if (!(Y != null && Y.ok)) {
- p.clearPendingJob(K), n(
- new Error(String((Y == null ? void 0 : Y.error) || "Auto stack failed")),
+ if (!(O != null && O.ok)) {
+ p.clearPendingJob(M), n(
+ new Error(String((O == null ? void 0 : O.error) || "Auto stack failed")),
"executionRuntime.execution_end.auto_stack"
);
return;
}
- h("auto-stack:done", {
- job_id: K,
- stacks: Array.isArray((F = Y == null ? void 0 : Y.data) == null ? void 0 : F.stacks) ? Y.data.stacks.length : 0
- }), v((Y == null ? void 0 : Y.data) || { targeted_job_id: K });
- } catch (Y) {
- n(Y, "executionRuntime.execution_end.auto_stack");
+ Z("auto-stack:done", {
+ job_id: M,
+ stacks: Array.isArray((j = O == null ? void 0 : O.data) == null ? void 0 : j.stacks) ? O.data.stacks.length : 0
+ }), L((O == null ? void 0 : O.data) || { targeted_job_id: M });
+ } catch (O) {
+ n(O, "executionRuntime.execution_end.auto_stack");
}
}
});
- function S(K, F) {
- if (!K) return;
- const Y = Number(F) || Date.now();
- s.set(String(K), Y, { at: Y }), s.prune();
+ function G(M, j) {
+ if (!M) return;
+ const O = Number(j) || Date.now();
+ s.set(String(M), O, { at: O }), s.prune();
}
- function W(K) {
+ function W(M) {
c.prune();
- const F = [];
- for (const Y of K) {
- const U = `${Y.type || ""}|${Y.subfolder || ""}|${Y.filename || ""}`.toLowerCase();
- c.has(U) || (c.set(U, !0), F.push(Y));
+ const j = [];
+ for (const O of M) {
+ const D = `${O.type || ""}|${O.subfolder || ""}|${O.filename || ""}`.toLowerCase();
+ c.has(D) || (c.set(D, !0), j.push(O));
}
- return F;
+ return j;
}
- function y(K) {
- const F = Math.max(1, Number(K) || 1), Y = Math.min(6, F - 1);
- return Math.min(TY, JY * 2 ** Y);
+ function y(M) {
+ const j = Math.max(1, Number(M) || 1), O = Math.min(6, j - 1);
+ return Math.min(KV, UV * 2 ** O);
}
- function k() {
- A && (clearTimeout(A), A = null);
+ function X() {
+ C && (clearTimeout(C), C = null);
}
- function G(K, F = d) {
- const Y = Math.max(0, Number(F) || 0, d);
- k(), A = setTimeout(() => {
- A = null;
+ function x(M, j = d) {
+ const O = Math.max(0, Number(j) || 0);
+ X(), C = setTimeout(() => {
+ C = null;
try {
- K == null || K();
- } catch (U) {
- n(U, "executionRuntime.post_execution");
+ M == null || M();
+ } catch (D) {
+ n(D, "executionRuntime.post_execution");
}
- }, Y);
+ }, O);
}
- function z(K) {
- const F = String((K == null ? void 0 : K.code) || "").trim().toUpperCase();
- return OY.has(F);
+ function T(M) {
+ const j = String((M == null ? void 0 : M.code) || "").trim().toUpperCase();
+ return TV.has(j);
}
- function x(K, F = 1, Y = {}) {
- const U = Array.isArray(K) ? K : [];
- if (!U.length) return;
- const P = { files: U, origin: "generation" };
- (Y != null && Y.prompt_id || Y != null && Y.promptId) && (P.prompt_id = String(Y.prompt_id || Y.promptId)), h("index:direct", {
- prompt_id: String(P.prompt_id || ""),
- attempt: F,
- files: U.map((ee) => String((ee == null ? void 0 : ee.filename) || (ee == null ? void 0 : ee.filepath) || ""))
- }), e(t.INDEX_FILES, P).then((ee) => {
- var oe;
+ function v(M, j = 1, O = {}) {
+ const D = Array.isArray(M) ? M : [];
+ if (!D.length) return;
+ const q = { files: D, origin: "generation" };
+ (O != null && O.prompt_id || O != null && O.promptId) && (q.prompt_id = String(O.prompt_id || O.promptId)), Z("index:direct", {
+ prompt_id: String(q.prompt_id || ""),
+ attempt: j,
+ files: D.map((ee) => String((ee == null ? void 0 : ee.filename) || (ee == null ? void 0 : ee.filepath) || ""))
+ }), e(t.INDEX_FILES, q).then((ee) => {
+ var ce;
if (!(ee != null && ee.ok)) {
- if (z(ee) && F < zY) {
- const ce = y(F);
+ if (T(ee) && j < BV) {
+ const ue = y(j);
setTimeout(
- () => x(U, F + 1, Y),
- ce
+ () => v(D, j + 1, O),
+ ue
);
return;
}
try {
- const ce = String((ee == null ? void 0 : ee.code) || "INDEX_FAILED"), pe = String((ee == null ? void 0 : ee.error) || "Indexing generated files failed");
- n(new Error(`${ce}: ${pe}`), "executionRuntime.executed.index");
- } catch (ce) {
- (oe = console.debug) == null || oe.call(console, ce);
+ const ue = String((ee == null ? void 0 : ee.code) || "INDEX_FAILED"), U = String((ee == null ? void 0 : ee.error) || "Indexing generated files failed");
+ n(new Error(`${ue}: ${U}`), "executionRuntime.executed.index");
+ } catch (ue) {
+ (ce = console.debug) == null || ce.call(console, ue);
}
}
}).catch((ee) => n(ee, "executionRuntime.executed.index"));
}
- function w(K = {}) {
- var Y, U;
- const F = String((K == null ? void 0 : K.prompt_id) || (K == null ? void 0 : K.promptId) || "").trim();
- if (F) return F;
+ function w(M = {}) {
+ var O, D;
+ const j = String((M == null ? void 0 : M.prompt_id) || (M == null ? void 0 : M.promptId) || "").trim();
+ if (j) return j;
try {
- return String(((Y = o()) == null ? void 0 : Y.active_prompt_id) || "").trim();
- } catch (P) {
- return (U = console.debug) == null || U.call(console, P), "";
+ return String(((O = o()) == null ? void 0 : O.active_prompt_id) || "").trim();
+ } catch (q) {
+ return (D = console.debug) == null || D.call(console, q), "";
}
}
- function X(K) {
- return !Array.isArray(K) || !K.length ? "" : K.map((F) => String((F == null ? void 0 : F.filepath) || (F == null ? void 0 : F.filename) || "")).filter(Boolean).sort().join("|");
+ function R(M) {
+ return !Array.isArray(M) || !M.length ? "" : M.map((j) => String((j == null ? void 0 : j.filepath) || (j == null ? void 0 : j.filename) || "")).filter(Boolean).sort().join("|");
}
- function V(K, F = {}, Y = 1) {
- const U = Array.isArray(K) ? K : [];
- if (!U.length) return;
- const P = X(U);
- if (!P) {
- x(U, 1, F);
+ function Y(M, j = {}, O = 1) {
+ const D = Array.isArray(M) ? M : [];
+ if (!D.length) return;
+ const q = R(D);
+ if (!q) {
+ v(D, 1, j);
return;
}
- const ee = u.get(P);
+ const ee = u.get(q);
ee != null && ee.timer && clearTimeout(ee.timer);
- const oe = (ee == null ? void 0 : ee.firstAttemptAt) ?? Date.now();
- if (Date.now() - oe >= DY) {
- x(U, 1, F);
+ const ce = (ee == null ? void 0 : ee.firstAttemptAt) ?? Date.now();
+ if (Date.now() - ce >= qV) {
+ v(D, 1, j);
return;
}
- const ce = Math.max(1, Number(Y) || 1), pe = Math.min(2e3, 250 * ce), H = setTimeout(() => {
- u.delete(P), L(U, F, ce + 1);
- }, pe);
- u.set(P, {
- files: U,
- meta: F,
- attempt: ce,
- timer: H,
- firstAttemptAt: oe
+ const ue = Math.max(1, Number(O) || 1), U = Math.min(2e3, 250 * ue), Q = setTimeout(() => {
+ u.delete(q), V(D, j, ue + 1);
+ }, U);
+ u.set(q, {
+ files: D,
+ meta: j,
+ attempt: ue,
+ timer: Q,
+ firstAttemptAt: ce
});
}
- function R(K) {
- var Y;
- const F = String(K || "").trim();
- if (!(!F || u.size <= 0))
- for (const [U, P] of Array.from(u.entries())) {
+ function F(M) {
+ var O;
+ const j = String(M || "").trim();
+ if (!(!j || u.size <= 0))
+ for (const [D, q] of Array.from(u.entries())) {
try {
- P != null && P.timer && clearTimeout(P.timer);
+ q != null && q.timer && clearTimeout(q.timer);
} catch (ee) {
- (Y = console.debug) == null || Y.call(console, ee);
+ (O = console.debug) == null || O.call(console, ee);
}
- u.delete(U), I.add(F, (P == null ? void 0 : P.files) || []);
+ u.delete(D), I.add(j, (q == null ? void 0 : q.files) || []);
}
}
- function j() {
- var K;
- for (const [F, Y] of Array.from(u.entries())) {
+ function N() {
+ var M;
+ for (const [j, O] of Array.from(u.entries())) {
try {
- Y != null && Y.timer && clearTimeout(Y.timer);
- } catch (U) {
- (K = console.debug) == null || K.call(console, U);
+ O != null && O.timer && clearTimeout(O.timer);
+ } catch (D) {
+ (M = console.debug) == null || M.call(console, D);
}
- u.delete(F);
+ u.delete(j);
}
}
- function L(K, F = {}, Y = 1) {
- const U = w(F);
- if (h("buffer:add", {
- prompt_id: U,
- explicit_prompt_id: String((F == null ? void 0 : F.prompt_id) || (F == null ? void 0 : F.promptId) || ""),
- attempt: Y,
- file_count: Array.isArray(K) ? K.length : 0,
- files: Array.isArray(K) ? K.map((P) => String((P == null ? void 0 : P.filename) || (P == null ? void 0 : P.filepath) || "")) : []
- }), !U) {
- if (Y < KY) {
- V(K, F, Y);
+ function V(M, j = {}, O = 1) {
+ const D = w(j);
+ if (Z("buffer:add", {
+ prompt_id: D,
+ explicit_prompt_id: String((j == null ? void 0 : j.prompt_id) || (j == null ? void 0 : j.promptId) || ""),
+ attempt: O,
+ file_count: Array.isArray(M) ? M.length : 0,
+ files: Array.isArray(M) ? M.map((q) => String((q == null ? void 0 : q.filename) || (q == null ? void 0 : q.filepath) || "")) : []
+ }), !D) {
+ if (O < HV) {
+ Y(M, j, O);
return;
}
- x(K, 1, F);
+ v(M, 1, j);
return;
}
- I.add(U, K);
+ I.add(D, M);
}
- function N(K, F = 900) {
- f() && (h("finalize:schedule", { job_id: String(K || ""), delay_ms: F }), C.schedule(K, F));
+ function k(M, j = 900) {
+ f() && (Z("finalize:schedule", { job_id: String(M || ""), delay_ms: j }), h.schedule(M, j));
}
- function q(K = 1200) {
- G(() => {
+ function K(M = 1200) {
+ x(() => {
e(t.SCAN, {
recursive: !0,
incremental: !0,
fast: !0,
background_metadata: !0
- }).catch((F) => n(F, "executionRuntime.execution_end.scan"));
- }, K);
+ }).catch((j) => n(j, "executionRuntime.execution_end.scan"));
+ }, M);
}
- function O(K) {
- const F = b(), Y = String(K || "").trim();
- if (!Y) return;
- const U = I.take(Y);
- if (h("buffer:flush", {
- prompt_id: Y,
- file_count: U.length,
- files: U.map((P) => String((P == null ? void 0 : P.filename) || (P == null ? void 0 : P.filepath) || ""))
- }), F.allowLiveStackFinalize && p.markPendingJob(Y, { files: U, expectedCount: U.length }), !U.length) {
- F.allowLiveStackFinalize && N(Y);
+ function z(M) {
+ const j = b(), O = String(M || "").trim();
+ if (!O) return;
+ const D = I.take(O);
+ if (Z("buffer:flush", {
+ prompt_id: O,
+ file_count: D.length,
+ files: D.map((q) => String((q == null ? void 0 : q.filename) || (q == null ? void 0 : q.filepath) || ""))
+ }), j.allowLiveStackFinalize && p.markPendingJob(O, { files: D, expectedCount: D.length }), !D.length) {
+ j.allowLiveStackFinalize && k(O);
return;
}
e(t.INDEX_FILES, {
- files: U,
+ files: D,
origin: "generation",
- prompt_id: Y
- }).then((P) => {
- if (!(P != null && P.ok)) {
- F.allowLiveStackFinalize && p.clearPendingJob(Y), n(
- new Error(String((P == null ? void 0 : P.error) || "Indexing generated files failed")),
+ prompt_id: O
+ }).then((q) => {
+ if (!(q != null && q.ok)) {
+ j.allowLiveStackFinalize && p.clearPendingJob(O), n(
+ new Error(String((q == null ? void 0 : q.error) || "Indexing generated files failed")),
"executionRuntime.executed.index"
);
return;
}
- h("index:flush:done", {
- prompt_id: Y,
- file_count: U.length
- }), F.allowLiveStackFinalize && N(Y, 1800);
- }).catch((P) => {
- F.allowLiveStackFinalize && p.clearPendingJob(Y), n(P, "executionRuntime.executed.index");
+ Z("index:flush:done", {
+ prompt_id: O,
+ file_count: D.length
+ }), j.allowLiveStackFinalize && k(O, 1800);
+ }).catch((q) => {
+ j.allowLiveStackFinalize && p.clearPendingJob(O), n(q, "executionRuntime.executed.index");
});
}
- function B(K) {
- var F;
+ function B(M) {
+ var O, D, q;
+ const j = String(M || "").trim();
+ if (!j) return !1;
+ try {
+ const ee = (D = (O = I == null ? void 0 : I._jobs) == null ? void 0 : O.get) == null ? void 0 : D.call(O, j);
+ return !!ee && typeof ee.size == "number" && ee.size > 0;
+ } catch (ee) {
+ return (q = console.debug) == null || q.call(console, ee), !1;
+ }
+ }
+ function J(M) {
+ var j;
if (!f())
- return { detail: K, jobId: "", defer: !1 };
+ return { detail: M, jobId: "", defer: !1 };
try {
- return p.prepare(K);
- } catch (Y) {
- return (F = console.debug) == null || F.call(console, Y), { detail: K, jobId: "", defer: !1 };
+ return p.prepare(M);
+ } catch (O) {
+ return (j = console.debug) == null || j.call(console, O), { detail: M, jobId: "", defer: !1 };
}
}
- function J(K) {
- const F = String((K == null ? void 0 : K.kind) || "").trim(), Y = String((K == null ? void 0 : K.filename) || "").trim(), U = String((K == null ? void 0 : K.filepath) || "").trim();
- return !!F && (!!Y || !!U);
+ function P(M) {
+ const j = String((M == null ? void 0 : M.kind) || "").trim(), O = String((M == null ? void 0 : M.filename) || "").trim(), D = String((M == null ? void 0 : M.filepath) || "").trim();
+ return !!j && (!!O || !!D);
}
- function T(K, { appRef: F }) {
- var $, _, le, se, de, Ze, Fe;
+ function H(M, { appRef: j }) {
+ var de, se, ge, je, Se, ke, we;
if (!b().useExecutionBuffer) return;
- const U = W(i(($ = K == null ? void 0 : K.detail) == null ? void 0 : $.output));
- if (!U.length) return;
- const P = ((_ = K == null ? void 0 : K.detail) == null ? void 0 : _.prompt_id) || ((le = K == null ? void 0 : K.detail) == null ? void 0 : le.promptId), ee = String(((se = K == null ? void 0 : K.detail) == null ? void 0 : se.node) || ((de = K == null ? void 0 : K.detail) == null ? void 0 : de.display_node) || "").trim(), oe = P ? s.get(String(P)) : null, ce = oe ? Math.max(0, Date.now() - oe) : 0;
- let pe = "";
+ const D = W(i((de = M == null ? void 0 : M.detail) == null ? void 0 : de.output));
+ if (!D.length) return;
+ const q = ((se = M == null ? void 0 : M.detail) == null ? void 0 : se.prompt_id) || ((ge = M == null ? void 0 : M.detail) == null ? void 0 : ge.promptId), ee = String(((je = M == null ? void 0 : M.detail) == null ? void 0 : je.node) || ((Se = M == null ? void 0 : M.detail) == null ? void 0 : Se.display_node) || "").trim(), ce = q ? s.get(String(q)) : null, ue = ce ? Math.max(0, Date.now() - ce) : 0;
+ let U = "";
try {
- if (ee && typeof F < "u" && (F != null && F.graph)) {
- const xe = F.graph.getNodeById(Number(ee));
- xe && (pe = String(xe.type || xe.comfyClass || "").trim());
+ if (ee && typeof j < "u" && (j != null && j.graph)) {
+ const Je = j.graph.getNodeById(Number(ee));
+ Je && (U = String(Je.type || Je.comfyClass || "").trim());
}
- } catch (xe) {
- (Ze = console.debug) == null || Ze.call(console, xe);
+ } catch (Je) {
+ (ke = console.debug) == null || ke.call(console, Je);
}
- const H = U.map((xe) => ({
- ...xe,
- ...ce > 0 ? { generation_time_ms: ce } : {},
+ const Q = D.map((Je) => ({
+ ...Je,
+ ...ue > 0 ? { generation_time_ms: ue } : {},
...ee ? { source_node_id: ee } : {},
- ...pe ? { source_node_type: pe } : {}
+ ...U ? { source_node_type: U } : {}
}));
- h("executed:event", {
- prompt_id: String(P || ""),
+ Z("executed:event", {
+ prompt_id: String(q || ""),
source_node_id: ee,
- source_node_type: pe,
- file_count: H.length,
- files: H.map((xe) => String((xe == null ? void 0 : xe.filename) || (xe == null ? void 0 : xe.filepath) || ""))
+ source_node_type: U,
+ file_count: Q.length,
+ files: Q.map((Je) => String((Je == null ? void 0 : Je.filename) || (Je == null ? void 0 : Je.filepath) || ""))
});
try {
window.dispatchEvent(
- new CustomEvent(ft.NEW_GENERATION_OUTPUT, {
+ new CustomEvent(ht.NEW_GENERATION_OUTPUT, {
detail: {
- files: H,
- prompt_id: String(P || ""),
- promptId: String(P || "")
+ files: Q,
+ prompt_id: String(q || ""),
+ promptId: String(q || "")
}
})
);
- } catch (xe) {
- (Fe = console.debug) == null || Fe.call(console, xe);
+ } catch (Je) {
+ (we = console.debug) == null || we.call(console, Je);
}
- L(H, { prompt_id: P });
+ const _ = Q.length > 0 ? [Q[0]] : [], le = Q.length > 1 ? Q.slice(1) : [];
+ _.length > 0 && v(_, 1, { prompt_id: q }), le.length > 0 && V(le, { prompt_id: q });
}
- function D(K, { setCurrentJobId: F }) {
- var P, ee, oe;
- const Y = ((P = K == null ? void 0 : K.detail) == null ? void 0 : P.prompt_id) || ((ee = K == null ? void 0 : K.detail) == null ? void 0 : ee.promptId), U = (oe = K == null ? void 0 : K.detail) == null ? void 0 : oe.timestamp;
- h("execution:start", {
- prompt_id: String(Y || ""),
- timestamp: Number(U) || null
- }), S(Y, U), k(), F == null || F(Y || null), r({
- active_prompt_id: Y || null,
+ function $(M, { setCurrentJobId: j }) {
+ var q, ee, ce;
+ const O = ((q = M == null ? void 0 : M.detail) == null ? void 0 : q.prompt_id) || ((ee = M == null ? void 0 : M.detail) == null ? void 0 : ee.promptId), D = (ce = M == null ? void 0 : M.detail) == null ? void 0 : ce.timestamp;
+ Z("execution:start", {
+ prompt_id: String(O || ""),
+ timestamp: Number(D) || null
+ }), G(O, D), X(), j == null || j(O || null), r({
+ active_prompt_id: O || null,
cached_nodes: [],
progress_node: null,
progress_value: null,
progress_max: null
- }), Y && R(Y);
+ }), O && F(O);
}
- function Q(K, { setCurrentJobId: F }) {
- var P, ee;
- const Y = b(), U = ((P = K == null ? void 0 : K.detail) == null ? void 0 : P.prompt_id) || ((ee = K == null ? void 0 : K.detail) == null ? void 0 : ee.promptId);
- h("execution:end", {
- type: String((K == null ? void 0 : K.type) || ""),
- prompt_id: String(U || "")
- }), U && s.delete(String(U)), s.prune(), F == null || F(null), r({
+ function E(M, { setCurrentJobId: j }) {
+ var q, ee;
+ const O = b(), D = ((q = M == null ? void 0 : M.detail) == null ? void 0 : q.prompt_id) || ((ee = M == null ? void 0 : M.detail) == null ? void 0 : ee.promptId);
+ if (Z("execution:end", {
+ type: String((M == null ? void 0 : M.type) || ""),
+ prompt_id: String(D || "")
+ }), D && s.delete(String(D)), s.prune(), j == null || j(null), r({
active_prompt_id: null,
cached_nodes: [],
progress_node: null,
progress_value: null,
progress_max: null
- }), U && String((K == null ? void 0 : K.type) || "") !== "execution_success" && (h("buffer:clear", {
- prompt_id: String(U || ""),
- reason: String((K == null ? void 0 : K.type) || "")
- }), k(), I.clear(U), Y.allowLiveStackFinalize && p.clearPendingJob(U), j()), String((K == null ? void 0 : K.type) || "") === "execution_success" && (Y.usePostExecutionScan ? q(d) : G(() => {
- U && R(U), O(U);
- }, d));
+ }), D && String((M == null ? void 0 : M.type) || "") !== "execution_success" && (Z("buffer:clear", {
+ prompt_id: String(D || ""),
+ reason: String((M == null ? void 0 : M.type) || "")
+ }), X(), I.clear(D), O.allowLiveStackFinalize && p.clearPendingJob(D), N()), String((M == null ? void 0 : M.type) || "") === "execution_success")
+ if (O.usePostExecutionScan)
+ K(d);
+ else {
+ const ce = B(D) ? Math.min(d, PV) : d;
+ x(() => {
+ D && F(D), z(D);
+ }, ce);
+ }
}
- function E(K) {
+ function oe(M) {
if (!f()) return;
- const F = [];
- for (const [, Y] of K instanceof Map ? K.entries() : []) {
- const U = i(Y);
- if (U != null && U.length)
- for (const P of U) F.push(P);
+ const j = [];
+ for (const [, O] of M instanceof Map ? M.entries() : []) {
+ const D = i(O);
+ if (D != null && D.length)
+ for (const q of D) j.push(q);
}
- !F.length || !f() || (h("node-outputs:updated", {
+ !j.length || !f() || (Z("node-outputs:updated", {
prompt_id: w(),
- file_count: F.length
- }), L(F, { prompt_id: w() }));
+ file_count: j.length
+ }), V(j, { prompt_id: w() }));
}
return {
- notifyStacksUpdated: v,
- prepareLiveAssetEvent: B,
- isRenderableLiveAsset: J,
- handleExecutedEvent: T,
- handleExecutionStart: D,
- handleExecutionEnd: Q,
- handleNodeOutputsUpdated: E
+ notifyStacksUpdated: L,
+ prepareLiveAssetEvent: J,
+ isRenderableLiveAsset: P,
+ handleExecutedEvent: H,
+ handleExecutionStart: $,
+ handleExecutionEnd: E,
+ handleNodeOutputsUpdated: oe
};
}
-function HY(e) {
- const t = [], n = /* @__PURE__ */ new Set(), i = 500, o = 4, r = 2e3, l = /\.(png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl)$/i, a = typeof WeakSet < "u" ? /* @__PURE__ */ new WeakSet() : null, c = ({ type: p, subfolder: M, filename: Z, path: A }) => A ? `path|${String(A).trim().toLowerCase()}` : `${p || ""}|${M || ""}|${Z || ""}`.toLowerCase(), s = (p) => {
+function _V(e) {
+ const t = [], n = /* @__PURE__ */ new Set(), i = 500, o = 4, r = 2e3, l = /\.(png|jpe?g|webp|gif|bmp|tiff?|avif|heic|heif|apng|hdr|svg|mp4|webm|mov|mkv|avi|m4v|mp3|wav|flac|ogg|glb|gltf|obj|fbx|ply|stl)$/i, a = typeof WeakSet < "u" ? /* @__PURE__ */ new WeakSet() : null, c = ({ type: p, subfolder: S, filename: A, path: C }) => C ? `path|${String(C).trim().toLowerCase()}` : `${p || ""}|${S || ""}|${A || ""}`.toLowerCase(), s = (p) => {
if (!p) return;
- const M = p.path || p.filepath || p.fullpath || p.fullPath || p.full_path;
- let Z = p.filename;
- if (!Z && M) {
- const b = String(M).split(/[/\\\\]/);
- Z = b[b.length - 1];
+ const S = p.path || p.filepath || p.fullpath || p.fullPath || p.full_path;
+ let A = p.filename;
+ if (!A && S) {
+ const b = String(S).split(/[/\\\\]/);
+ A = b[b.length - 1];
}
- if (!Z || (Z = String(Z), !Z)) return;
- const A = p.subfolder || p.sub_folder || p.subFolder || "", g = p.type || p.output_type || "output", h = c({ type: g, subfolder: A, filename: Z, path: M });
- if (n.has(h)) return;
- n.add(h);
- const f = { filename: Z, subfolder: A, type: g };
- M && (f.path = M), t.push(f);
+ if (!A || (A = String(A), !A)) return;
+ const C = p.subfolder || p.sub_folder || p.subFolder || "", g = p.type || p.output_type || "output", Z = c({ type: g, subfolder: C, filename: A, path: S });
+ if (n.has(Z)) return;
+ n.add(Z);
+ const f = { filename: A, subfolder: C, type: g };
+ S && (f.path = S), t.push(f);
}, d = (p) => {
if (typeof p != "string") return;
- const M = p.trim().replace(/^['"]|['"]$/g, "");
- if (!M || !l.test(M)) return;
- const Z = M.split(/[/\\\\]/), A = Z[Z.length - 1];
- if (!A) return;
- const g = c({ type: "output", subfolder: "", filename: A, path: M });
- n.has(g) || (n.add(g), t.push({ filename: A, subfolder: "", type: "output", path: M }));
+ const S = p.trim().replace(/^['"]|['"]$/g, "");
+ if (!S || !l.test(S)) return;
+ const A = S.split(/[/\\\\]/), C = A[A.length - 1];
+ if (!C) return;
+ const g = c({ type: "output", subfolder: "", filename: C, path: S });
+ n.has(g) || (n.add(g), t.push({ filename: C, subfolder: "", type: "output", path: S }));
}, u = (p) => {
if (typeof p == "string") {
d(p);
return;
}
if (!Array.isArray(p)) return;
- let M = 0;
- for (const Z of p) {
- if (t.length >= i || M >= r) break;
- M += 1, Z && typeof Z == "object" && "filename" in Z ? s(Z) : typeof Z == "string" ? d(Z) : I(Z, 1);
+ let S = 0;
+ for (const A of p) {
+ if (t.length >= i || S >= r) break;
+ S += 1, A && typeof A == "object" && "filename" in A ? s(A) : typeof A == "string" ? d(A) : I(A, 1);
}
- }, I = (p, M) => {
- if (!(!p || M > o || t.length >= i) && typeof p == "object") {
+ }, I = (p, S) => {
+ if (!(!p || S > o || t.length >= i) && typeof p == "object") {
if (a) {
if (a.has(p)) return;
a.add(p);
}
if (Array.isArray(p)) {
- let Z = 0;
- for (const A of p) {
- if (t.length >= i || Z >= r) break;
- Z += 1, A && typeof A == "object" && "filename" in A ? s(A) : typeof A == "string" ? d(A) : I(A, M + 1);
+ let A = 0;
+ for (const C of p) {
+ if (t.length >= i || A >= r) break;
+ A += 1, C && typeof C == "object" && "filename" in C ? s(C) : typeof C == "string" ? d(C) : I(C, S + 1);
}
return;
}
- if ((p.images || p.gifs || p.videos || p.meshes || p.mesh || p.audio) && (u(p.images), u(p.gifs), u(p.videos), u(p.meshes), u(p.mesh), u(p.audio)), p.output && I(p.output, M + 1), p.outputs && I(p.outputs, M + 1), p.result && I(p.result, M + 1), p.data && I(p.data, M + 1), M < o)
- for (const Z of Object.values(p)) {
+ if ((p.images || p.gifs || p.videos || p.meshes || p.mesh || p.audio) && (u(p.images), u(p.gifs), u(p.videos), u(p.meshes), u(p.mesh), u(p.audio)), p.output && I(p.output, S + 1), p.outputs && I(p.outputs, S + 1), p.result && I(p.result, S + 1), p.data && I(p.data, S + 1), S < o)
+ for (const A of Object.values(p)) {
if (t.length >= i) break;
- if (typeof Z == "string") {
- d(Z);
+ if (typeof A == "string") {
+ d(A);
continue;
}
- if (!(!Z || typeof Z != "object")) {
- if (Z.images || Z.gifs || Z.videos || Z.meshes || Z.mesh || Z.audio) {
- u(Z.images), u(Z.gifs), u(Z.videos), u(Z.meshes), u(Z.mesh), u(Z.audio);
+ if (!(!A || typeof A != "object")) {
+ if (A.images || A.gifs || A.videos || A.meshes || A.mesh || A.audio) {
+ u(A.images), u(A.gifs), u(A.videos), u(A.meshes), u(A.mesh), u(A.audio);
continue;
}
- I(Z, M + 1);
+ I(A, S + 1);
}
}
}
};
return I(e, 0), t;
}
-const Pm = 3e4, Kr = /* @__PURE__ */ new Map(), qY = "live";
-function PY(e) {
+const Qm = 3e4, Er = /* @__PURE__ */ new Map(), $V = "live";
+function eY(e) {
return e === !0 || e === 1 || e === "1" ? !0 : e === !1 || e === 0 || e === "0" ? !1 : null;
}
-function QY(e) {
+function tY(e) {
const t = [
e == null ? void 0 : e.has_ai_vector,
e == null ? void 0 : e.hasAiVector,
@@ -45432,30 +45631,30 @@ function QY(e) {
e == null ? void 0 : e.vectorIndexed
];
for (const n of t) {
- const i = PY(n);
+ const i = eY(n);
if (i !== null) return i;
}
return !1;
}
-function _Y(e) {
- const t = Date.now(), n = Number(Kr.get(e) || 0);
- if (n > 0 && t - n < Pm)
+function nY(e) {
+ const t = Date.now(), n = Number(Er.get(e) || 0);
+ if (n > 0 && t - n < Qm)
return !0;
- if (Kr.set(e, t), Kr.size > 500) {
- const i = t - 5 * Pm;
- for (const [o, r] of Kr.entries())
- Number(r) < i && Kr.delete(o);
+ if (Er.set(e, t), Er.size > 500) {
+ const i = t - 5 * Qm;
+ for (const [o, r] of Er.entries())
+ Number(r) < i && Er.delete(o);
}
return !1;
}
-function Qm(e) {
+function _m(e) {
const t = String((e == null ? void 0 : e.id) || "").trim();
- t && (QY(e) || _Y(t) || Fg(t).catch((n) => {
+ t && (tY(e) || nY(t) || Og(t).catch((n) => {
var i;
return (i = console.debug) == null ? void 0 : i.call(console, "[Majoor] auto vector index failed", n);
}));
}
-function $Y(e) {
+function iY(e) {
var o, r;
const t = String((e == null ? void 0 : e.kind) || "").trim().toLowerCase();
if (t) return t;
@@ -45464,10 +45663,10 @@ function $Y(e) {
).trim(), i = n.includes(".") && ((r = (o = n.split(".").pop()) == null ? void 0 : o.toLowerCase) == null ? void 0 : r.call(o)) || "";
return i ? ["png", "jpg", "jpeg", "webp", "gif", "bmp", "tif", "tiff", "avif", "heic", "heif"].includes(i) ? "image" : ["mp4", "webm", "mov", "mkv", "avi", "m4v"].includes(i) ? "video" : ["mp3", "wav", "flac", "ogg"].includes(i) ? "audio" : ["glb", "gltf", "obj", "fbx", "ply", "stl", "splat", "ksplat", "spz"].includes(i) ? "model3d" : "unknown" : "";
}
-function eV(e, { jobId: t = "" } = {}) {
+function oY(e, { jobId: t = "" } = {}) {
const n = String((e == null ? void 0 : e.filename) || "").trim(), i = String(
(e == null ? void 0 : e.filepath) || (e == null ? void 0 : e.path) || (e == null ? void 0 : e.fullpath) || (e == null ? void 0 : e.full_path) || ""
- ).trim(), o = String((e == null ? void 0 : e.subfolder) || (e == null ? void 0 : e.sub_folder) || (e == null ? void 0 : e.subFolder) || "").trim(), r = String((e == null ? void 0 : e.type) || (e == null ? void 0 : e.source) || "output").trim().toLowerCase(), l = String((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || "").trim(), a = $Y(e);
+ ).trim(), o = String((e == null ? void 0 : e.subfolder) || (e == null ? void 0 : e.sub_folder) || (e == null ? void 0 : e.subFolder) || "").trim(), r = String((e == null ? void 0 : e.type) || (e == null ? void 0 : e.source) || "output").trim().toLowerCase(), l = String((e == null ? void 0 : e.root_id) || (e == null ? void 0 : e.custom_root_id) || "").trim(), a = iY(e);
if (!a || !n && !i) return null;
const c = n || i.split(/[/\\]/).filter(Boolean).pop() || "";
if (!c) return null;
@@ -45478,7 +45677,7 @@ function eV(e, { jobId: t = "" } = {}) {
c
].map((p) => String(p || "").trim().toLowerCase()).join("|"), u = Date.now() / 1e3, I = String((e == null ? void 0 : e.job_id) || t || "").trim();
return {
- id: `${qY}:${d || s.toLowerCase()}`,
+ id: `${$V}:${d || s.toLowerCase()}`,
filename: c,
filepath: s,
path: s,
@@ -45501,7 +45700,7 @@ function eV(e, { jobId: t = "" } = {}) {
_mjrLiveLabel: "In progress"
};
}
-function tV(e) {
+function rY(e) {
var n;
const t = String(e || "");
try {
@@ -45512,11 +45711,11 @@ function tV(e) {
}
return t.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g, "\\$1");
}
-function nV(e, t) {
+function lY(e, t) {
const n = String(e || "").trim().toLowerCase();
return n === "delete_db" ? t("btn.deleteDb", "Delete DB") : n === "reset_index" ? t("btn.resetIndex", "Reset index") : n === "restore_db" ? t("btn.dbRestore", "Restore DB") : t("btn.maintenance", "Maintenance");
}
-function iV(e, t) {
+function aY(e, t) {
const n = String(e || "").trim().toLowerCase(), i = String(t || "").trim().toLowerCase(), o = {
delete_db: ["started", "stopping_workers", "resetting_db", "delete_db", "recreate_db", "restarting_scan", "done"],
reset_index: ["started", "stopping_workers", "resetting_db", "restarting_scan", "done"],
@@ -45529,7 +45728,7 @@ function iV(e, t) {
label: i.replace(/[_-]+/g, " ")
};
}
-async function oV({
+async function cY({
api: e,
runtime: t,
executionRuntime: n,
@@ -45544,245 +45743,245 @@ async function oV({
removeAssetsFromGrid: u,
getEnrichmentState: I,
setEnrichmentState: p,
- comfyToast: M,
- t: Z,
- reportError: A,
+ comfyToast: S,
+ t: A,
+ reportError: C,
registerCleanableListener: g,
- syncExecutionBackendState: h
+ syncExecutionBackendState: Z
}) {
- e._mjrExecutedHandler = (C) => {
+ e._mjrExecutedHandler = (h) => {
try {
- n.handleExecutedEvent(C, { appRef: i });
- } catch (S) {
- A(S, "entry.executed");
+ n.handleExecutedEvent(h, { appRef: i });
+ } catch (G) {
+ C(G, "entry.executed");
}
- }, g(t, e, "executed", e._mjrExecutedHandler), e._mjrExecutionStartHandler = (C) => {
- var S, W;
+ }, g(t, e, "executed", e._mjrExecutedHandler), e._mjrExecutionStartHandler = (h) => {
+ var G, W;
try {
- n.handleExecutionStart(C, {
+ n.handleExecutionStart(h, {
setCurrentJobId: (y) => o == null ? void 0 : o.setCurrentJobId(y)
- }), h == null || h({
+ }), Z == null || Z({
active: !0,
- promptId: ((S = C == null ? void 0 : C.detail) == null ? void 0 : S.prompt_id) || ((W = C == null ? void 0 : C.detail) == null ? void 0 : W.promptId) || ""
+ promptId: ((G = h == null ? void 0 : h.detail) == null ? void 0 : G.prompt_id) || ((W = h == null ? void 0 : h.detail) == null ? void 0 : W.promptId) || ""
});
} catch (y) {
- A(y, "entry.execution_start");
+ C(y, "entry.execution_start");
}
- }, e._mjrExecutionEndHandler = (C) => {
- var S, W;
+ }, e._mjrExecutionEndHandler = (h) => {
+ var G, W;
try {
- n.handleExecutionEnd(C, {
+ n.handleExecutionEnd(h, {
setCurrentJobId: (y) => o == null ? void 0 : o.setCurrentJobId(y)
- }), h == null || h({
+ }), Z == null || Z({
active: !1,
- promptId: ((S = C == null ? void 0 : C.detail) == null ? void 0 : S.prompt_id) || ((W = C == null ? void 0 : C.detail) == null ? void 0 : W.promptId) || ""
+ promptId: ((G = h == null ? void 0 : h.detail) == null ? void 0 : G.prompt_id) || ((W = h == null ? void 0 : h.detail) == null ? void 0 : W.promptId) || ""
});
} catch (y) {
- A(y, "entry.execution_end");
+ C(y, "entry.execution_end");
}
- }, e._mjrStacksUpdatedHandler = (C) => {
+ }, e._mjrStacksUpdatedHandler = (h) => {
try {
- n.notifyStacksUpdated((C == null ? void 0 : C.detail) || {});
- } catch (S) {
- A(S, "entry.stacks_updated");
+ n.notifyStacksUpdated((h == null ? void 0 : h.detail) || {});
+ } catch (G) {
+ C(G, "entry.stacks_updated");
}
- }, e._mjrRuntimeStatusHandler = (C) => {
- var S;
+ }, e._mjrRuntimeStatusHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {};
+ const W = (h == null ? void 0 : h.detail) || {};
l({
progress_node: (W == null ? void 0 : W.node) ?? null,
progress_value: Number.isFinite(Number(W == null ? void 0 : W.value)) ? Number(W.value) : null,
progress_max: Number.isFinite(Number(W == null ? void 0 : W.max)) ? Number(W.max) : null,
- queue_remaining: Number.isFinite(Number((S = W == null ? void 0 : W.exec_info) == null ? void 0 : S.queue_remaining)) ? Number(W.exec_info.queue_remaining) : Number.isFinite(Number(W == null ? void 0 : W.queue_remaining)) ? Number(W.queue_remaining) : r().queue_remaining
+ queue_remaining: Number.isFinite(Number((G = W == null ? void 0 : W.exec_info) == null ? void 0 : G.queue_remaining)) ? Number(W.exec_info.queue_remaining) : Number.isFinite(Number(W == null ? void 0 : W.queue_remaining)) ? Number(W.queue_remaining) : r().queue_remaining
});
} catch (W) {
- A(W, "entry.runtime_status");
+ C(W, "entry.runtime_status");
}
- }, e._mjrExecutionCachedHandler = (C) => {
+ }, e._mjrExecutionCachedHandler = (h) => {
try {
- const S = (C == null ? void 0 : C.detail) || {};
+ const G = (h == null ? void 0 : h.detail) || {};
l({
- active_prompt_id: (S == null ? void 0 : S.prompt_id) || (S == null ? void 0 : S.promptId) || r().active_prompt_id || null,
- cached_nodes: Array.isArray(S == null ? void 0 : S.nodes) ? S.nodes.slice() : []
+ active_prompt_id: (G == null ? void 0 : G.prompt_id) || (G == null ? void 0 : G.promptId) || r().active_prompt_id || null,
+ cached_nodes: Array.isArray(G == null ? void 0 : G.nodes) ? G.nodes.slice() : []
});
- } catch (S) {
- A(S, "entry.execution_cached");
+ } catch (G) {
+ C(G, "entry.execution_cached");
}
- }, g(t, e, "execution_start", e._mjrExecutionStartHandler), g(t, e, "execution_success", e._mjrExecutionEndHandler), g(t, e, "execution_error", e._mjrExecutionEndHandler), g(t, e, "execution_interrupted", e._mjrExecutionEndHandler), g(t, e, "mjr.stacks.updated", e._mjrStacksUpdatedHandler), g(t, e, "progress", e._mjrRuntimeStatusHandler), g(t, e, "status", e._mjrRuntimeStatusHandler), g(t, e, ft.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), g(t, e, "execution_cached", e._mjrExecutionCachedHandler);
+ }, g(t, e, "execution_start", e._mjrExecutionStartHandler), g(t, e, "execution_success", e._mjrExecutionEndHandler), g(t, e, "execution_error", e._mjrExecutionEndHandler), g(t, e, "execution_interrupted", e._mjrExecutionEndHandler), g(t, e, "mjr.stacks.updated", e._mjrStacksUpdatedHandler), g(t, e, "progress", e._mjrRuntimeStatusHandler), g(t, e, "status", e._mjrRuntimeStatusHandler), g(t, e, ht.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), g(t, e, "execution_cached", e._mjrExecutionCachedHandler);
function f() {
- var C;
+ var h;
try {
window.__mjrLastAssetUpsert = Date.now(), window.__mjrLastAssetUpsertCount = (Number(window.__mjrLastAssetUpsertCount || 0) || 0) + 1;
- } catch (S) {
- (C = console.debug) == null || C.call(console, S);
+ } catch (G) {
+ (h = console.debug) == null || h.call(console, G);
}
}
- function b(C, S, { immediate: W = !1, force: y = !1 } = {}) {
- var N, q;
- const k = String((S == null ? void 0 : S.id) || "").trim(), G = String((S == null ? void 0 : S.kind) || "").trim(), z = String((S == null ? void 0 : S.filename) || "").trim(), x = String((S == null ? void 0 : S.filepath) || "").trim(), w = !!G && (!!z || !!x);
- let X = !1;
- if (k)
+ function b(h, G, { immediate: W = !1, force: y = !1 } = {}) {
+ var k, K;
+ const X = String((G == null ? void 0 : G.id) || "").trim(), x = String((G == null ? void 0 : G.kind) || "").trim(), T = String((G == null ? void 0 : G.filename) || "").trim(), v = String((G == null ? void 0 : G.filepath) || "").trim(), w = !!x && (!!T || !!v);
+ let R = !1;
+ if (X)
try {
- typeof (C == null ? void 0 : C._mjrHasAssetId) == "function" ? X = !!C._mjrHasAssetId(k) : X = !!C.querySelector(
- `.mjr-asset-card[data-mjr-asset-id="${tV(k)}"]`
+ typeof (h == null ? void 0 : h._mjrHasAssetId) == "function" ? R = !!h._mjrHasAssetId(X) : R = !!h.querySelector(
+ `.mjr-asset-card[data-mjr-asset-id="${rY(X)}"]`
);
- } catch (O) {
- (N = console.debug) == null || N.call(console, O);
+ } catch (z) {
+ (k = console.debug) == null || k.call(console, z);
}
- const V = w || X;
- if (!X && V && !y && (String(((q = C == null ? void 0 : C.dataset) == null ? void 0 : q.mjrQuery) || "*").trim() || "*") !== "*")
+ const Y = w || R;
+ if (!R && Y && !y && (String(((K = h == null ? void 0 : h.dataset) == null ? void 0 : K.mjrQuery) || "*").trim() || "*") !== "*")
return;
- let R = !X && V && !S.mtime ? { ...S, mtime: Date.now() / 1e3 } : S;
- if (!X && V) {
- const O = S.has_workflow ?? S.hasWorkflow, B = S.has_generation_data ?? S.hasGenerationData;
- O == null && B == null || (O == null || B == null) && (R = {
- ...R,
- has_workflow: O ?? null,
+ let F = !R && Y && !G.mtime ? { ...G, mtime: Date.now() / 1e3 } : G;
+ if (!R && Y) {
+ const z = G.has_workflow ?? G.hasWorkflow, B = G.has_generation_data ?? G.hasGenerationData;
+ z == null && B == null || (z == null || B == null) && (F = {
+ ...F,
+ has_workflow: z ?? null,
has_generation_data: B ?? null
});
}
- (V ? !!(W && typeof d == "function" ? d : s)(C, R) : !1) && f();
+ (Y ? !!(W && typeof d == "function" ? d : s)(h, F) : !1) && f();
}
- e._mjrNewGenerationOutputHandler = (C) => {
- var S, W, y, k;
+ e._mjrNewGenerationOutputHandler = (h) => {
+ var G, W, y, X;
try {
- const G = a();
- if (!G) return;
- const z = String(((S = G == null ? void 0 : G.dataset) == null ? void 0 : S.mjrScope) || "output").trim().toLowerCase();
- if (z !== "output" && z !== "all") return;
- const x = Array.isArray((W = C == null ? void 0 : C.detail) == null ? void 0 : W.files) ? C.detail.files : [], w = String(((y = C == null ? void 0 : C.detail) == null ? void 0 : y.prompt_id) || ((k = C == null ? void 0 : C.detail) == null ? void 0 : k.promptId) || "").trim();
- for (const X of x) {
- const V = eV(X, { jobId: w });
- V && b(G, V, { immediate: !0, force: !0 });
+ const x = a();
+ if (!x) return;
+ const T = String(((G = x == null ? void 0 : x.dataset) == null ? void 0 : G.mjrScope) || "output").trim().toLowerCase();
+ if (T !== "output" && T !== "all") return;
+ const v = Array.isArray((W = h == null ? void 0 : h.detail) == null ? void 0 : W.files) ? h.detail.files : [], w = String(((y = h == null ? void 0 : h.detail) == null ? void 0 : y.prompt_id) || ((X = h == null ? void 0 : h.detail) == null ? void 0 : X.promptId) || "").trim();
+ for (const R of v) {
+ const Y = oY(R, { jobId: w });
+ Y && b(x, Y, { immediate: !0, force: !0 });
}
- } catch (G) {
- A(G, "entry.new_generation_output");
+ } catch (x) {
+ C(x, "entry.new_generation_output");
}
- }, g(t, window, ft.NEW_GENERATION_OUTPUT, e._mjrNewGenerationOutputHandler), e._mjrAssetAddedHandler = (C) => {
- var S, W;
+ }, g(t, window, ht.NEW_GENERATION_OUTPUT, e._mjrNewGenerationOutputHandler), e._mjrAssetAddedHandler = (h) => {
+ var G, W;
try {
const y = a();
- if (y && (C != null && C.detail)) {
- const k = n.prepareLiveAssetEvent(C.detail), G = (k == null ? void 0 : k.detail) || C.detail, z = n.isRenderableLiveAsset(G);
- z && c(G), Qm(G);
- const x = ((S = y.dataset) == null ? void 0 : S.mjrScope) || "output";
- if (x !== "output" && x !== "all") return;
+ if (y && (h != null && h.detail)) {
+ const X = n.prepareLiveAssetEvent(h.detail), x = (X == null ? void 0 : X.detail) || h.detail, T = n.isRenderableLiveAsset(x);
+ T && c(x), _m(x);
+ const v = ((G = y.dataset) == null ? void 0 : G.mjrScope) || "output";
+ if (v !== "output" && v !== "all") return;
const w = ((W = y.dataset) == null ? void 0 : W.mjrQuery) || "*";
- String(w).trim() === "*" && z && b(y, G, { immediate: !0 });
+ String(w).trim() === "*" && T && b(y, x, { immediate: !0 });
}
} catch (y) {
- A(y, "entry.asset_added");
+ C(y, "entry.asset_added");
}
- }, g(t, e, "mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler = (C) => {
+ }, g(t, e, "mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler = (h) => {
try {
- const S = a();
- if (S && (C != null && C.detail)) {
- const W = n.prepareLiveAssetEvent(C.detail), y = (W == null ? void 0 : W.detail) || C.detail;
- n.isRenderableLiveAsset(y) && c(y), b(S, y);
+ const G = a();
+ if (G && (h != null && h.detail)) {
+ const W = n.prepareLiveAssetEvent(h.detail), y = (W == null ? void 0 : W.detail) || h.detail;
+ n.isRenderableLiveAsset(y) && c(y), b(G, y, { immediate: !0 });
}
- } catch (S) {
- A(S, "entry.asset_updated");
+ } catch (G) {
+ C(G, "entry.asset_updated");
}
- }, g(t, e, "mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrScanCompleteHandler = (C) => {
- var S;
+ }, g(t, e, "mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrScanCompleteHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {};
- window.dispatchEvent(new CustomEvent(ft.SCAN_COMPLETE, { detail: W }));
+ const W = (h == null ? void 0 : h.detail) || {};
+ window.dispatchEvent(new CustomEvent(ht.SCAN_COMPLETE, { detail: W }));
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, g(t, e, ft.SCAN_COMPLETE, e._mjrScanCompleteHandler), e._mjrScanProgressHandler = (C) => {
- var S;
+ }, g(t, e, ht.SCAN_COMPLETE, e._mjrScanCompleteHandler), e._mjrScanProgressHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {};
- window.dispatchEvent(new CustomEvent(ft.SCAN_PROGRESS, { detail: W }));
+ const W = (h == null ? void 0 : h.detail) || {};
+ window.dispatchEvent(new CustomEvent(ht.SCAN_PROGRESS, { detail: W }));
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, g(t, e, ft.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler = (C) => {
- var S;
+ }, g(t, e, ht.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {};
- window.dispatchEvent(new CustomEvent(ft.ASSET_INDEXING, { detail: W }));
+ const W = (h == null ? void 0 : h.detail) || {};
+ window.dispatchEvent(new CustomEvent(ht.ASSET_INDEXING, { detail: W }));
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, g(t, e, ft.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler = (C) => {
- var S;
+ }, g(t, e, ht.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {};
- window.dispatchEvent(new CustomEvent(ft.ASSET_INDEXED, { detail: W }));
+ const W = (h == null ? void 0 : h.detail) || {};
+ window.dispatchEvent(new CustomEvent(ht.ASSET_INDEXED, { detail: W }));
const y = a();
if (y && W) {
- const k = n.prepareLiveAssetEvent(W), G = (k == null ? void 0 : k.detail) || W;
- n.isRenderableLiveAsset(G) && c(G), Qm(G), b(y, G, { immediate: !0, force: !0 });
+ const X = n.prepareLiveAssetEvent(W), x = (X == null ? void 0 : X.detail) || W;
+ n.isRenderableLiveAsset(x) && c(x), _m(x), b(y, x, { immediate: !0, force: !0 });
}
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, g(t, e, ft.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrEnrichmentStatusHandler = (C) => {
- var S;
+ }, g(t, e, ht.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrEnrichmentStatusHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {}, y = Number(W == null ? void 0 : W.queued), k = Number(W == null ? void 0 : W.queue_left), G = Number.isFinite(y) ? Math.max(0, Math.floor(y)) : Number.isFinite(k) ? Math.max(0, Math.floor(k)) : 0, z = !!(W != null && W.active) || G > 0, x = I().active;
- p(z, G), window.dispatchEvent(new CustomEvent(ft.ENRICHMENT_STATUS, { detail: W })), x && !z && M(Z("toast.enrichmentComplete", "Metadata enrichment complete"), "success", 2600);
+ const W = (h == null ? void 0 : h.detail) || {}, y = Number(W == null ? void 0 : W.queued), X = Number(W == null ? void 0 : W.queue_left), x = Number.isFinite(y) ? Math.max(0, Math.floor(y)) : Number.isFinite(X) ? Math.max(0, Math.floor(X)) : 0, T = !!(W != null && W.active) || x > 0, v = I().active;
+ p(T, x), window.dispatchEvent(new CustomEvent(ht.ENRICHMENT_STATUS, { detail: W })), v && !T && S(A("toast.enrichmentComplete", "Metadata enrichment complete"), "success", 2600);
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, g(t, e, ft.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler = (C) => {
- var S;
+ }, g(t, e, ht.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler = (h) => {
+ var G;
try {
- const W = (C == null ? void 0 : C.detail) || {}, y = String((W == null ? void 0 : W.step) || ""), k = String((W == null ? void 0 : W.level) || "info"), G = String((W == null ? void 0 : W.operation) || "");
- window.dispatchEvent(new CustomEvent(ft.DB_RESTORE_STATUS, { detail: W }));
- const z = G === "delete_db", x = G === "reset_index", X = {
- started: z ? Z("toast.dbDeleteTriggered", "Deleting database and rebuilding...") : x ? Z("toast.resetTriggered", "Reset triggered: Reindexing all files...") : Z("toast.dbRestoreStarted", "DB restore started"),
- stopping_workers: Z("toast.dbRestoreStopping", "Stopping running workers"),
- resetting_db: Z("toast.dbRestoreResetting", "Unlocking and resetting database"),
- delete_db: Z("toast.dbDeleteTriggered", "Deleting database and rebuilding..."),
- recreate_db: Z("toast.dbRestoreReplacing", "Recreating database"),
- replacing_files: Z("toast.dbRestoreReplacing", "Replacing database files"),
- restarting_scan: Z("toast.dbRestoreRescan", "Restarting scan"),
- done: z ? Z("toast.dbDeleteSuccess", "Database deleted and rebuilt. Files are being reindexed.") : x ? Z("toast.resetStarted", "Index reset started. Files will be reindexed in the background.") : Z("toast.dbRestoreSuccess", "Database backup restored"),
+ const W = (h == null ? void 0 : h.detail) || {}, y = String((W == null ? void 0 : W.step) || ""), X = String((W == null ? void 0 : W.level) || "info"), x = String((W == null ? void 0 : W.operation) || "");
+ window.dispatchEvent(new CustomEvent(ht.DB_RESTORE_STATUS, { detail: W }));
+ const T = x === "delete_db", v = x === "reset_index", R = {
+ started: T ? A("toast.dbDeleteTriggered", "Deleting database and rebuilding...") : v ? A("toast.resetTriggered", "Reset triggered: Reindexing all files...") : A("toast.dbRestoreStarted", "DB restore started"),
+ stopping_workers: A("toast.dbRestoreStopping", "Stopping running workers"),
+ resetting_db: A("toast.dbRestoreResetting", "Unlocking and resetting database"),
+ delete_db: A("toast.dbDeleteTriggered", "Deleting database and rebuilding..."),
+ recreate_db: A("toast.dbRestoreReplacing", "Recreating database"),
+ replacing_files: A("toast.dbRestoreReplacing", "Replacing database files"),
+ restarting_scan: A("toast.dbRestoreRescan", "Restarting scan"),
+ done: T ? A("toast.dbDeleteSuccess", "Database deleted and rebuilt. Files are being reindexed.") : v ? A("toast.resetStarted", "Index reset started. Files will be reindexed in the background.") : A("toast.dbRestoreSuccess", "Database backup restored"),
failed: String(
- (W == null ? void 0 : W.message) || (z ? Z("toast.dbDeleteFailed", "Failed to delete database") : x ? Z("toast.resetFailed", "Failed to reset index") : Z("toast.dbRestoreFailed", "Failed to restore DB backup"))
+ (W == null ? void 0 : W.message) || (T ? A("toast.dbDeleteFailed", "Failed to delete database") : v ? A("toast.resetFailed", "Failed to reset index") : A("toast.dbRestoreFailed", "Failed to restore DB backup"))
)
}[y] || String((W == null ? void 0 : W.message) || "");
- if (!X) return;
- const V = k === "error" || y === "failed" ? "error" : y === "done" ? "success" : "info", R = {
+ if (!R) return;
+ const Y = X === "error" || y === "failed" ? "error" : y === "done" ? "success" : "info", F = {
history: {
- trackId: `maintenance:${String(G || "db_restore").trim().toLowerCase() || "db_restore"}`,
- title: nV(G, Z),
- detail: X,
+ trackId: `maintenance:${String(x || "db_restore").trim().toLowerCase() || "db_restore"}`,
+ title: lY(x, A),
+ detail: R,
status: y,
- operation: String(G || "db_restore").trim().toLowerCase(),
- progress: iV(G, y),
+ operation: String(x || "db_restore").trim().toLowerCase(),
+ progress: aY(x, y),
source: String((W == null ? void 0 : W.name) || "").trim() || "maintenance",
forceStore: !0
}
};
- if (z && !["started", "done", "failed"].includes(y)) {
- $r(X, V, 0, R);
+ if (T && !["started", "done", "failed"].includes(y)) {
+ tl(R, Y, 0, F);
return;
}
- M(X, V, y === "done" || y === "failed" ? 2800 : 1800, R);
+ S(R, Y, y === "done" || y === "failed" ? 2800 : 1800, F);
} catch (W) {
- (S = console.debug) == null || S.call(console, W);
+ (G = console.debug) == null || G.call(console, W);
}
- }, g(t, e, ft.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler);
- const v = (C) => {
- var S, W;
+ }, g(t, e, ht.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler);
+ const L = (h) => {
+ var G, W;
try {
- const y = Array.isArray((S = C == null ? void 0 : C.detail) == null ? void 0 : S.ids) ? C.detail.ids.map((G) => String(G || "")).filter(Boolean) : [];
+ const y = Array.isArray((G = h == null ? void 0 : h.detail) == null ? void 0 : G.ids) ? h.detail.ids.map((x) => String(x || "")).filter(Boolean) : [];
if (!y.length) return;
- const k = a();
- k && u(k, y);
+ const X = a();
+ X && u(X, y);
} catch (y) {
(W = console.debug) == null || W.call(console, y);
}
};
- g(t, window, ft.ASSETS_DELETED, v), t && typeof t == "object" && (t.api = e, t.assetsDeletedHandler = v), console.debug("[Majoor] Real-time listener registered");
+ g(t, window, ht.ASSETS_DELETED, L), t && typeof t == "object" && (t.api = e, t.assetsDeletedHandler = L), console.debug("[Majoor] Real-time listener registered");
}
-function rV({ resolveNodeStreamModule: e }) {
+function sY({ resolveNodeStreamModule: e }) {
var t;
if (!(typeof window > "u")) {
window.MajoorDebug = {
@@ -45812,24 +46011,24 @@ function rV({ resolveNodeStreamModule: e }) {
}
}
}
-const Gs = "__MJR_ENTRY_RUNTIME__";
-function xs(e, t) {
+const js = "__MJR_ENTRY_RUNTIME__";
+function vs(e, t) {
if (e)
try {
- e._mjrAssetUpdateReloadTimer && (clearTimeout(e._mjrAssetUpdateReloadTimer), e._mjrAssetUpdateReloadTimer = null), e._mjrExecutedHandler && e.removeEventListener("executed", e._mjrExecutedHandler), e._mjrAssetAddedHandler && e.removeEventListener("mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler && e.removeEventListener("mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrScanCompleteHandler && e.removeEventListener(ft.SCAN_COMPLETE, e._mjrScanCompleteHandler), e._mjrScanProgressHandler && e.removeEventListener(ft.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler && e.removeEventListener(ft.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler && e.removeEventListener(ft.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrExecutionStartHandler && e.removeEventListener("execution_start", e._mjrExecutionStartHandler), e._mjrExecutionEndHandler && (e.removeEventListener("execution_success", e._mjrExecutionEndHandler), e.removeEventListener("execution_error", e._mjrExecutionEndHandler), e.removeEventListener("execution_interrupted", e._mjrExecutionEndHandler)), e._mjrStacksUpdatedHandler && e.removeEventListener("mjr.stacks.updated", e._mjrStacksUpdatedHandler), e._mjrEnrichmentStatusHandler && e.removeEventListener(ft.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler && e.removeEventListener(ft.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler), e._mjrRuntimeStatusHandler && (e.removeEventListener("progress", e._mjrRuntimeStatusHandler), e.removeEventListener("status", e._mjrRuntimeStatusHandler), e.removeEventListener(ft.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), e.removeEventListener("execution_cached", e._mjrExecutionCachedHandler));
+ e._mjrAssetUpdateReloadTimer && (clearTimeout(e._mjrAssetUpdateReloadTimer), e._mjrAssetUpdateReloadTimer = null), e._mjrExecutedHandler && e.removeEventListener("executed", e._mjrExecutedHandler), e._mjrAssetAddedHandler && e.removeEventListener("mjr-asset-added", e._mjrAssetAddedHandler), e._mjrAssetUpdatedHandler && e.removeEventListener("mjr-asset-updated", e._mjrAssetUpdatedHandler), e._mjrScanCompleteHandler && e.removeEventListener(ht.SCAN_COMPLETE, e._mjrScanCompleteHandler), e._mjrScanProgressHandler && e.removeEventListener(ht.SCAN_PROGRESS, e._mjrScanProgressHandler), e._mjrAssetIndexingHandler && e.removeEventListener(ht.ASSET_INDEXING, e._mjrAssetIndexingHandler), e._mjrAssetIndexedHandler && e.removeEventListener(ht.ASSET_INDEXED, e._mjrAssetIndexedHandler), e._mjrExecutionStartHandler && e.removeEventListener("execution_start", e._mjrExecutionStartHandler), e._mjrExecutionEndHandler && (e.removeEventListener("execution_success", e._mjrExecutionEndHandler), e.removeEventListener("execution_error", e._mjrExecutionEndHandler), e.removeEventListener("execution_interrupted", e._mjrExecutionEndHandler)), e._mjrStacksUpdatedHandler && e.removeEventListener("mjr.stacks.updated", e._mjrStacksUpdatedHandler), e._mjrEnrichmentStatusHandler && e.removeEventListener(ht.ENRICHMENT_STATUS, e._mjrEnrichmentStatusHandler), e._mjrDbRestoreStatusHandler && e.removeEventListener(ht.DB_RESTORE_STATUS, e._mjrDbRestoreStatusHandler), e._mjrRuntimeStatusHandler && (e.removeEventListener("progress", e._mjrRuntimeStatusHandler), e.removeEventListener("status", e._mjrRuntimeStatusHandler), e.removeEventListener(ht.RUNTIME_STATUS, e._mjrRuntimeStatusHandler), e.removeEventListener("execution_cached", e._mjrExecutionCachedHandler));
} catch (n) {
t == null || t(n, "entry.removeApiHandlers");
}
}
-function kp(e, t) {
+function Rp(e, t) {
try {
const n = e == null ? void 0 : e.assetsDeletedHandler;
- n && typeof window < "u" && window.removeEventListener(ft.ASSETS_DELETED, n);
+ n && typeof window < "u" && window.removeEventListener(ht.ASSETS_DELETED, n);
} catch (n) {
t == null || t(n, "entry.removeRuntimeWindowHandlers");
}
}
-function Xp(e, { reportError: t } = {}) {
+function Fp(e, { reportError: t } = {}) {
var n, i, o;
if (!(!e || typeof e != "object")) {
try {
@@ -45857,13 +46056,13 @@ function Xp(e, { reportError: t } = {}) {
console.warn("[MJR teardown]", r);
}
try {
- xs(e.api || null, t), kp(e, t);
+ vs(e.api || null, t), Rp(e, t);
} catch (r) {
console.warn("[MJR teardown]", r);
}
}
}
-function lV(e, t, n, i, o = void 0) {
+function dY(e, t, n, i, o = void 0) {
var l;
if (!e || !(t != null && t.addEventListener) || typeof i != "function") return null;
const r = o && typeof o == "object" ? { ...o } : o;
@@ -45883,8 +46082,8 @@ function lV(e, t, n, i, o = void 0) {
}
}), null;
}
-function aV({
- cleanupEntryRuntimeFn: e = Xp,
+function uY({
+ cleanupEntryRuntimeFn: e = Fp,
teardownLiveStreamTracker: t,
teardownNodeStream: n,
teardownFloatingViewerManager: i,
@@ -45897,7 +46096,7 @@ function aV({
try {
if (typeof window < "u") {
try {
- const s = window[Gs];
+ const s = window[js];
e(s, { reportError: c });
} catch (s) {
console.warn("[MJR teardown]", s);
@@ -45937,7 +46136,7 @@ function aV({
} catch (s) {
console.warn("[MJR teardown]", s);
}
- window[Gs] = {
+ window[js] = {
api: null,
assetsDeletedHandler: null,
_cleanupControllers: [],
@@ -45948,10 +46147,10 @@ function aV({
console.warn("[MJR teardown]", s);
}
}
-let sl = null, ir = null;
-const ql = "majoor-assets", Pl = "__MJR_EXECUTION_RUNTIME__", cV = "Majoor.AssetsManager";
-let Rc = { active: null, promptId: "" }, Ql = null;
-function rc() {
+let dl = null, rr = null;
+const Pl = "majoor-assets", Ql = "__MJR_EXECUTION_RUNTIME__", mY = "Majoor.AssetsManager";
+let Oc = { active: null, promptId: "" }, _l = null;
+function lc() {
var e;
try {
return typeof window > "u" ? {
@@ -45961,69 +46160,69 @@ function rc() {
progress_value: null,
progress_max: null,
cached_nodes: []
- } : ((!window[Pl] || typeof window[Pl] != "object") && (window[Pl] = {
+ } : ((!window[Ql] || typeof window[Ql] != "object") && (window[Ql] = {
active_prompt_id: null,
queue_remaining: null,
progress_node: null,
progress_value: null,
progress_max: null,
cached_nodes: []
- }), window[Pl]);
+ }), window[Ql]);
} catch (t) {
return (e = console.debug) == null || e.call(console, t), {};
}
}
-function Np(e = {}) {
+function Op(e = {}) {
var t;
try {
- const n = rc();
- Object.assign(n, e || {}), window.dispatchEvent(new CustomEvent(ft.RUNTIME_STATUS, { detail: { ...n } }));
+ const n = lc();
+ Object.assign(n, e || {}), window.dispatchEvent(new CustomEvent(ht.RUNTIME_STATUS, { detail: { ...n } }));
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
}
-async function sV({ active: e, promptId: t = "" } = {}) {
+async function gY({ active: e, promptId: t = "" } = {}) {
const n = !!e, i = String(t || "").trim();
- if (!(Rc.active === n && Rc.promptId === i)) {
- Rc = { active: n, promptId: i };
+ if (!(Oc.active === n && Oc.promptId === i)) {
+ Oc = { active: n, promptId: i };
try {
- await Et(lt.RUNTIME_EXECUTION, {
+ await Et(ct.RUNTIME_EXECUTION, {
active: n,
prompt_id: i || void 0,
- cooldown_ms: Number(ye.EXECUTION_IDLE_GRACE_MS) || 6e3
+ cooldown_ms: Number(fe.EXECUTION_IDLE_GRACE_MS) || 6e3
});
} catch (o) {
- li(o, "entry.execution_state_sync");
+ ai(o, "entry.execution_state_sync");
}
}
}
-function Rp() {
+function zp() {
var e, t;
try {
- return !!String(((e = rc()) == null ? void 0 : e.active_prompt_id) || "").trim();
+ return !!String(((e = lc()) == null ? void 0 : e.active_prompt_id) || "").trim();
} catch (n) {
return (t = console.debug) == null || t.call(console, n), !1;
}
}
-function Fp(e = 1200) {
+function Jp(e = 1200) {
var t;
try {
- Ql && clearTimeout(Ql);
+ _l && clearTimeout(_l);
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
- Ql = setTimeout(() => {
- if (Ql = null, Rp()) {
- Fp(e);
+ _l = setTimeout(() => {
+ if (_l = null, zp()) {
+ Jp(e);
return;
}
- const n = wo();
- n && Qs(n);
+ const n = So();
+ n && $s(n);
}, Math.max(250, Number(e) || 0));
}
-function dV(e) {
- import("./LiveStreamTracker-C2pYMJng.js").then((t) => {
- sl = t;
+function IY(e) {
+ import("./LiveStreamTracker-BR6kWxcl.js").then((t) => {
+ dl = t;
try {
t.initLiveStreamTracker(e);
} catch (n) {
@@ -46035,14 +46234,14 @@ function dV(e) {
return;
}
}
-async function uV(e, t) {
+async function bY(e, t) {
var o;
- const n = await pg({ app: e, timeoutMs: 4e3 }) || ha(e);
- if (hy(n || null), !n) {
+ const n = await yg({ app: e, timeoutMs: 4e3 }) || Ca(e);
+ if (Ay(n || null), !n) {
console.warn("Majoor API not available, real-time updates disabled");
return;
}
- WI({ api: n, app: e }).catch(
+ wI({ api: n, app: e }).catch(
(r) => {
var l;
return (l = console.debug) == null ? void 0 : l.call(console, "[Majoor] MFV progress tracking init failed", r);
@@ -46050,106 +46249,108 @@ async function uV(e, t) {
);
let i = null;
try {
- i = typeof window < "u" && window[Gs] || null;
+ i = typeof window < "u" && window[js] || null;
} catch (r) {
(o = console.debug) == null || o.call(console, r);
}
- xs((i == null ? void 0 : i.api) || null, li), n !== (i == null ? void 0 : i.api) && xs(n, li), kp(i, li), await oV({
+ vs((i == null ? void 0 : i.api) || null, ai), n !== (i == null ? void 0 : i.api) && vs(n, ai), Rp(i, ai), await cY({
api: n,
runtime: i,
executionRuntime: t,
- appRef: xo,
- liveStreamModule: sl,
- ensureExecutionRuntime: rc,
- emitRuntimeStatus: Np,
- getActiveGridContainer: wo,
- pushGeneratedAsset: jY,
- upsertAsset: nZ,
- upsertAssetNow: iZ,
- removeAssetsFromGrid: is,
- getEnrichmentState: _a,
- setEnrichmentState: GI,
- comfyToast: Ce,
+ appRef: vo,
+ liveStreamModule: dl,
+ ensureExecutionRuntime: lc,
+ emitRuntimeStatus: Op,
+ getActiveGridContainer: So,
+ pushGeneratedAsset: VV,
+ upsertAsset: rZ,
+ upsertAssetNow: lZ,
+ removeAssetsFromGrid: rs,
+ getEnrichmentState: $a,
+ setEnrichmentState: xI,
+ comfyToast: Ze,
t: m,
- reportError: li,
- registerCleanableListener: lV,
- syncExecutionBackendState: sV
+ reportError: ai,
+ registerCleanableListener: dY,
+ syncExecutionBackendState: gY
});
}
-const _m = EY({
+const $m = QV({
post: Et,
- ENDPOINTS: lt,
- reportError: li,
- extractOutputFiles: HY,
- ensureExecutionRuntime: rc,
- emitRuntimeStatus: Np,
- refreshGeneratedFeedHosts: CY,
- getActiveGridContainer: wo
+ ENDPOINTS: ct,
+ reportError: ai,
+ extractOutputFiles: _V,
+ ensureExecutionRuntime: lc,
+ emitRuntimeStatus: Op,
+ refreshGeneratedFeedHosts: WV,
+ getActiveGridContainer: So
});
-xo.registerExtension({
- name: cV,
+vo.registerExtension({
+ name: mY,
/**
* Declarative settings β registered with ComfyUI's settings panel.
* Replaces the imperative registerMajoorSettings() call for the settings UI.
*/
- settings: AC(xo),
+ settings: MC(vo),
/**
* Declarative commands β ComfyUI surfaces these in the command palette
* and the shortcut editor without additional imperative calls.
*/
- commands: hp(xo, {
- sidebarTabId: ql,
- triggerStartupScan: gl
+ commands: Zp(vo, {
+ sidebarTabId: Pl,
+ triggerStartupScan: Il
}),
/**
* Declarative bottom-panel tabs β processed by ComfyUI's extension service.
* Each tab's render/destroy callbacks mount/unmount the Vue app via
* mountKeepAlive() so state survives panel collapse/expand cycles.
*/
- bottomPanelTabs: jL(),
+ bottomPanelTabs: LL(),
// ββ lifecycle ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
async setup() {
var t;
- aV({
- cleanupEntryRuntimeFn: Xp,
- teardownLiveStreamTracker: (n) => sl == null ? void 0 : sl.teardownLiveStreamTracker(n),
- teardownNodeStream: (n) => ir == null ? void 0 : ir.teardownNodeStream(n),
- teardownFloatingViewerManager: AI,
- teardownGeneratedFeed: vL,
- teardownAssetsSidebar: GL,
- teardownGlobalRuntime: wL,
- teardownTopBarMfvButton: up,
- reportError: li
- }), Od(xo);
- const e = await Gy({ timeoutMs: 12e3 }) || xo;
- Od(e);
+ uY({
+ cleanupEntryRuntimeFn: Fp,
+ teardownLiveStreamTracker: (n) => dl == null ? void 0 : dl.teardownLiveStreamTracker(n),
+ teardownNodeStream: (n) => rr == null ? void 0 : rr.teardownNodeStream(n),
+ teardownFloatingViewerManager: WI,
+ teardownGeneratedFeed: VL,
+ teardownAssetsSidebar: jL,
+ teardownGlobalRuntime: SL,
+ teardownTopBarMfvButton: mp,
+ reportError: ai
+ }), Jd(vo);
+ const e = await vy({ timeoutMs: 12e3 }) || vo;
+ Jd(e);
try {
typeof window < "u" && (window.__MJR_RUNTIME_APP__ = e);
} catch (n) {
(t = console.debug) == null || t.call(console, n);
}
- Ih(), Rh({ enabled: !0 }), WL(), dV(e), ZC(e, () => {
- const n = wo();
+ yh(), zh({ enabled: !0 }), ML(), IY(e), wC(e, () => {
+ const n = So();
if (n) {
- if (ye.DEFER_GRID_FETCH_DURING_EXECUTION && Rp()) {
- Fp();
+ if (fe.DEFER_GRID_FETCH_DURING_EXECUTION && zp()) {
+ Jp();
return;
}
- Qs(n);
+ $s(n);
}
- }), ML(e, {
- sidebarTabId: ql,
- triggerStartupScan: gl
+ }), GL(e, {
+ sidebarTabId: Pl,
+ triggerStartupScan: Il
}), setTimeout(() => {
- Nh();
- }, 5e3), uV(e, _m).catch(
- (n) => li(n, "entry.api_setup")
- ), SL(e, {
- sidebarTabId: ql
- }) ? to("[Majoor] Sidebar tab registered (Vue)") : console.warn(
+ Oh();
+ }, 5e3), setTimeout(() => {
+ fp();
+ }, 4e3), bY(e, $m).catch(
+ (n) => ai(n, "entry.api_setup")
+ ), xL(e, {
+ sidebarTabId: Pl
+ }) ? io("[Majoor] Sidebar tab registered (Vue)") : console.warn(
"Majoor Assets Manager: extensionManager.registerSidebarTab is unavailable"
- ), rV({
- resolveNodeStreamModule: async () => (ir || (ir = await import("./NodeStreamController-CLm6-3VG.js")), ir)
+ ), sY({
+ resolveNodeStreamModule: async () => (rr || (rr = await import("./NodeStreamController-CLm6-3VG.js")), rr)
});
},
// ββ hooks ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
@@ -46161,55 +46362,55 @@ xo.registerExtension({
onNodeOutputsUpdated(e) {
var t;
try {
- _m.handleNodeOutputsUpdated(e);
+ $m.handleNodeOutputsUpdated(e);
} catch (n) {
(t = console.debug) == null || t.call(console, "[Majoor] onNodeOutputsUpdated error", n);
}
},
/** Context-menu items injected into ComfyUI node right-click menus. */
getNodeMenuItems(e) {
- return YL(e, xo, { sidebarTabId: ql });
+ return kL(e, vo, { sidebarTabId: Pl });
}
});
export {
- ye as A,
- IV as B,
- bV as C,
- QI as D,
- ft as E,
- Wr as F,
- Ce as G,
- Ug as H,
- ml as I,
- cA as J,
- pV as K,
- SA as M,
- GA as P,
- qx as _,
- eb as a,
- VA as b,
- Yu as c,
- Ac as d,
- On as e,
- fV as f,
- yV as g,
+ fe as A,
+ fY as B,
+ hY as C,
+ _I as D,
+ ht as E,
+ Sr as F,
+ Ze as G,
+ Kg as H,
+ gl as I,
+ uA as J,
+ CY as K,
+ jA as M,
+ vA as P,
+ _x as _,
+ tb as a,
+ NA as b,
+ ku as c,
+ Wc as d,
+ zn as e,
+ AY as f,
+ ZY as g,
In as h,
- Lu as i,
- Kj as j,
- Zv as k,
- sj as l,
- pt as m,
- rp as n,
- Ib as o,
- EI as p,
- dl as q,
- YA as r,
- Zo as s,
- Bi as t,
+ Yu as i,
+ Hj as j,
+ wv as k,
+ mj as l,
+ bt as m,
+ lp as n,
+ bb as o,
+ HI as p,
+ ul as q,
+ XA as r,
+ Wo as s,
+ Ki as t,
Qn as u,
m as v,
- pg as w,
- Co as x,
- WI as y,
- ha as z
+ yg as w,
+ Ao as x,
+ wI as y,
+ Ca as z
};
diff --git a/js_dist/chunks/genInfo-L1PrRwDk.js b/js_dist/chunks/genInfo-DPaWrr2W.js
similarity index 99%
rename from js_dist/chunks/genInfo-L1PrRwDk.js
rename to js_dist/chunks/genInfo-DPaWrr2W.js
index 46f9507f..8efa43da 100644
--- a/js_dist/chunks/genInfo-L1PrRwDk.js
+++ b/js_dist/chunks/genInfo-DPaWrr2W.js
@@ -1,4 +1,4 @@
-import { _ as nn, j as on, k as tn, A as B, l as en, m as rn, o as cn } from "./entry-DyjnHjNW.js";
+import { _ as nn, j as on, k as tn, A as B, l as en, m as rn, o as cn } from "./entry-Cn6KiPQv.js";
import { o as E, c as R, t as $, a as O, b as I, n as ln, d as z, e as j } from "./mjr-vue-vendor-DZo-ZbFS.js";
const un = { style: { display: "flex", "flex-direction": "column", gap: "10px", "margin-bottom": "14px" } }, fn = {
key: 0,
diff --git a/js_dist/chunks/model3dRenderer-B7QICZEL.js b/js_dist/chunks/model3dRenderer-CxixV6KF.js
similarity index 87%
rename from js_dist/chunks/model3dRenderer-B7QICZEL.js
rename to js_dist/chunks/model3dRenderer-CxixV6KF.js
index 9afb6fd3..2c926342 100644
--- a/js_dist/chunks/model3dRenderer-B7QICZEL.js
+++ b/js_dist/chunks/model3dRenderer-CxixV6KF.js
@@ -1,4 +1,4 @@
-import { M as s, a as o, P as D, b as t, c as M, f as d, g as l, i as E, d as r, r as i } from "./entry-DyjnHjNW.js";
+import { M as s, a as o, P as D, b as t, c as M, f as d, g as l, i as E, d as r, r as i } from "./entry-Cn6KiPQv.js";
export {
s as MODEL3D_EXTS,
o as MODEL3D_EXT_TO_LOADER,
diff --git a/js_dist/chunks/scopes-DzaL48jb.js b/js_dist/chunks/scopes-zVIngGZC.js
similarity index 99%
rename from js_dist/chunks/scopes-DzaL48jb.js
rename to js_dist/chunks/scopes-zVIngGZC.js
index 6e5f0c7f..0d5820e1 100644
--- a/js_dist/chunks/scopes-DzaL48jb.js
+++ b/js_dist/chunks/scopes-zVIngGZC.js
@@ -1,4 +1,4 @@
-import { h as C } from "./entry-DyjnHjNW.js";
+import { h as C } from "./entry-Cn6KiPQv.js";
function H(t, n, o) {
return 0.2126 * t + 0.7152 * n + 0.0722 * o;
}
diff --git a/js_dist/chunks/sideBySide-D0NSgnSp.js b/js_dist/chunks/sideBySide-B--hMG3P.js
similarity index 99%
rename from js_dist/chunks/sideBySide-D0NSgnSp.js
rename to js_dist/chunks/sideBySide-B--hMG3P.js
index 5d5e4f26..2dda3de6 100644
--- a/js_dist/chunks/sideBySide-D0NSgnSp.js
+++ b/js_dist/chunks/sideBySide-B--hMG3P.js
@@ -1,4 +1,4 @@
-import { i as q, n as Y, s as k } from "./entry-DyjnHjNW.js";
+import { i as q, n as Y, s as k } from "./entry-Cn6KiPQv.js";
function Z(o) {
if (!o) return null;
try {
diff --git a/js_dist/entry.js b/js_dist/entry.js
index fd555484..4536552a 100644
--- a/js_dist/entry.js
+++ b/js_dist/entry.js
@@ -1,2 +1,2 @@
-import "./chunks/entry-DyjnHjNW.js";
+import "./chunks/entry-Cn6KiPQv.js";
import "../../scripts/app.js";
diff --git a/mjr_am_backend/features/geninfo/api_node_extractor.py b/mjr_am_backend/features/geninfo/api_node_extractor.py
index a2183067..e99d839d 100644
--- a/mjr_am_backend/features/geninfo/api_node_extractor.py
+++ b/mjr_am_backend/features/geninfo/api_node_extractor.py
@@ -231,7 +231,7 @@ def _provider_from_model_name(model: str) -> str | None:
"""Infer API provider from the model name string (secondary heuristic)."""
m = model.lower()
# Wan: only match when combined with "video" or "image" to avoid false positives
- if "wan" in m and ("video" in m or "image" in m):
+ if "wan" in m:
return "alibaba_wan"
for keywords, provider in _MODEL_NAME_PROVIDERS:
if any(kw in m for kw in keywords):
@@ -528,8 +528,8 @@ def _populate_api_node_output(
"width": int(width), "height": int(height),
"confidence": "high", "source": source,
}
- except Exception:
- pass
+ except Exception as exc:
+ logger.debug("size conversion failed for node %s: %s", source, exc)
# Resolution string (e.g. "1080p", "720p") β convert to size when possible
resolution = ins.get("resolution")
diff --git a/mjr_am_backend/features/geninfo/prompt_tracer.py b/mjr_am_backend/features/geninfo/prompt_tracer.py
index 2f53a2d7..0f38ee09 100644
--- a/mjr_am_backend/features/geninfo/prompt_tracer.py
+++ b/mjr_am_backend/features/geninfo/prompt_tracer.py
@@ -210,12 +210,68 @@ def _resolve_lora_stacker_node(
active_loras.append(f"")
return _join_text_fragments(active_loras, " ") or ""
+def _resolve_text_generate_node(
+ nodes_by_id: dict[str, dict[str, Any]], ins: dict[str, Any], memo: set[str]
+) -> str | None:
+ """
+ TextGenerate is an LLM prompt-enhancer (e.g. Ernie Image). Its ``prompt``
+ input is typically a system-prompt template processed through a chain of
+ StringReplace nodes that substitute ``{prompt}``, ``{width}``, ``{height}``.
+
+ We trace the StringReplace chain upstream to extract the *original* user
+ prompt (the ``replace`` value whose ``find`` matches ``{prompt}``), rather
+ than the LLM-enhanced output.
+ """
+ prompt_val = ins.get("prompt")
+ if isinstance(prompt_val, str) and prompt_val.strip():
+ return prompt_val.strip()
+ if not _is_link(prompt_val):
+ return None
+ user_prompt = _trace_user_prompt_in_replace_chain(nodes_by_id, prompt_val, memo)
+ if user_prompt:
+ return user_prompt
+ return _resolve_text_value(nodes_by_id, prompt_val, memo)
+
+
+def _trace_user_prompt_in_replace_chain(
+ nodes_by_id: dict[str, dict[str, Any]], link: Any, memo: set[str], max_hops: int = 10
+) -> str | None:
+ """
+ Follow a chain of StringReplace nodes upstream from *link*. When one has a
+ ``find`` value containing the word ``prompt`` (e.g. ``{prompt}``), return
+ the resolved ``replace`` value β that is the user's original prompt text.
+ """
+ current_link = link
+ for _ in range(max_hops):
+ src_id = _walk_passthrough(nodes_by_id, current_link)
+ if not src_id or src_id in memo:
+ break
+ node = nodes_by_id.get(src_id)
+ if not isinstance(node, dict):
+ break
+ ct = _lower(_node_type(node))
+ if ct != "stringreplace":
+ break
+ node_ins = _inputs(node)
+ find_val = node_ins.get("find")
+ if isinstance(find_val, str) and "prompt" in find_val.lower():
+ return _resolve_text_value(nodes_by_id, node_ins.get("replace"), memo | {src_id})
+ string_link = node_ins.get("string")
+ if _is_link(string_link):
+ current_link = string_link
+ continue
+ break
+ return None
+
+
def _resolve_composed_string_from_node(
nodes_by_id: dict[str, dict[str, Any]], node: dict[str, Any], memo: set[str]
) -> str | None:
ct = _lower(_node_type(node))
ins = _inputs(node)
widgets = node.get("widgets_values")
+ if ct == "textgenerate":
+ return _resolve_text_generate_node(nodes_by_id, ins, memo)
preview_text = _resolve_preview_text(ins)
if preview_text is not None:
return preview_text
diff --git a/mjr_am_backend/features/index/searcher.py b/mjr_am_backend/features/index/searcher.py
index d4323dc1..8739c82a 100644
--- a/mjr_am_backend/features/index/searcher.py
+++ b/mjr_am_backend/features/index/searcher.py
@@ -139,7 +139,14 @@ def _is_meaningful_token(token: str) -> bool:
return True
+_SAFE_ALIAS_RE = re.compile(r"^[a-zA-Z_][a-zA-Z0-9_.]{0,60}$")
+
+
def _build_sort_sql(sort: str | None, *, table_alias: str = "a", rank_alias: str | None = None) -> str:
+ if not _SAFE_ALIAS_RE.fullmatch(table_alias):
+ raise ValueError(f"Unsafe table_alias: {table_alias!r}")
+ if rank_alias is not None and not _SAFE_ALIAS_RE.fullmatch(rank_alias):
+ raise ValueError(f"Unsafe rank_alias: {rank_alias!r}")
key = _normalize_sort_key(sort)
if key == "name_asc":
return f"ORDER BY LOWER({table_alias}.filename) ASC, {table_alias}.id DESC"
@@ -842,6 +849,7 @@ class IndexSearcher:
# _BROWSE_COUNT_TTL seconds.
self._browse_count_cache: dict[str, tuple[float, int]] = {}
self._BROWSE_COUNT_TTL = 5.0 # seconds
+ self._BROWSE_COUNT_CACHE_MAX = 128
async def ensure_vocab(self):
"""Ensure FTS5 vocab table exists for autocomplete."""
@@ -1023,6 +1031,13 @@ class IndexSearcher:
count_result = await self.db.aquery(count_sql, tuple(count_params))
total = count_result.data[0]["total"] if count_result.ok and count_result.data else 0
self._browse_count_cache[cache_key] = (now, total)
+ # Evict oldest entries when the cache grows beyond the bound.
+ if len(self._browse_count_cache) > self._BROWSE_COUNT_CACHE_MAX:
+ try:
+ oldest_key = min(self._browse_count_cache, key=lambda k: self._browse_count_cache[k][0])
+ del self._browse_count_cache[oldest_key]
+ except Exception: # pragma: no cover
+ pass
return Result.Ok({"rows": rows, "total": total})
async def _search_global_fts_rows(
diff --git a/mjr_am_backend/features/index/watcher.py b/mjr_am_backend/features/index/watcher.py
index 9728d1fe..52f3b742 100644
--- a/mjr_am_backend/features/index/watcher.py
+++ b/mjr_am_backend/features/index/watcher.py
@@ -161,6 +161,8 @@ class DebouncedWatchHandler(FileSystemEventHandler):
concurrency = max(1, flush_concurrency or 1)
self._flush_semaphore = asyncio.Semaphore(concurrency)
self._last_pending_warning = 0.0
+ self._last_overflow_drop_warning = 0.0
+ self._dropped_count = 0
self._refresh_runtime_settings()
def _is_ignored_path(self, path: str) -> bool:
@@ -246,6 +248,22 @@ class DebouncedWatchHandler(FileSystemEventHandler):
pass
self._last_pending_warning = now
+ def _maybe_log_overflow_drop(self, path: str) -> None:
+ now = time.time()
+ if (now - self._last_overflow_drop_warning) < _PENDING_LIMIT_WARN_INTERVAL:
+ return
+ try:
+ logger.warning(
+ "Watcher overflow queue full (%d); file dropped: %s (total dropped: %d). "
+ "Files will be picked up on next scan.",
+ _MAX_PENDING_FILES,
+ path,
+ self._dropped_count,
+ )
+ except Exception:
+ pass
+ self._last_overflow_drop_warning = now
+
def on_created(self, event):
if isinstance(event, DirCreatedEvent):
return
@@ -301,6 +319,9 @@ class DebouncedWatchHandler(FileSystemEventHandler):
# pending stays full and events arrive faster than they are flushed.
if key not in self._overflow and len(self._overflow) < _MAX_PENDING_FILES:
self._overflow[key] = now
+ elif key not in self._overflow:
+ self._dropped_count += 1
+ self._maybe_log_overflow_drop(path)
self._maybe_log_pending_limit(path)
self._schedule_flush()
return
@@ -440,10 +461,19 @@ class DebouncedWatchHandler(FileSystemEventHandler):
def _requeue_failed_files(self, files: list[str]) -> None:
"""Re-queue files that the index callback failed to process into overflow."""
now = time.time()
+ dropped = 0
with self._lock:
for f in files:
if _MAX_PENDING_FILES <= 0 or len(self._overflow) < _MAX_PENDING_FILES:
self._overflow[f] = now
+ else:
+ dropped += 1
+ if dropped:
+ logger.warning(
+ "Watcher: %d failed files could not be re-queued (overflow full at %d)",
+ dropped,
+ _MAX_PENDING_FILES,
+ )
def _requeue_runtime_deferred_files(self, files: list[str]) -> None:
now = time.time()
diff --git a/mjr_am_backend/routes/handlers/scan.py b/mjr_am_backend/routes/handlers/scan.py
index 861a27ce..d3d7e199 100644
--- a/mjr_am_backend/routes/handlers/scan.py
+++ b/mjr_am_backend/routes/handlers/scan.py
@@ -1107,7 +1107,7 @@ def register_scan_routes(routes: web.RouteTableDef) -> None:
(row_job_id, asset_id),
)
restack_job_ids.add(row_job_id)
-
+
# Propagate job_id to base video/audio files from suffixed siblings (e.g. -audio.mp4)
for row in sibling_rows:
filename_value = row.get("filename") or ""
@@ -1186,6 +1186,10 @@ def register_scan_routes(routes: web.RouteTableDef) -> None:
except Exception as ex:
logger.debug("Failed to assign node provenance: %s", ex)
+ if restack_job_ids:
+ await _finalize_indexed_execution_stacks(svc, restack_job_ids)
+ restack_job_ids.clear()
+
if gen_time_by_id:
try:
payloads_by_id: dict[int, dict[str, Any]] = {}
diff --git a/nodes.py b/nodes.py
index 1045d521..7a9973a1 100644
--- a/nodes.py
+++ b/nodes.py
@@ -585,6 +585,6 @@ NODE_CLASS_MAPPINGS: dict[str, type] = {
}
NODE_DISPLAY_NAME_MAPPINGS: dict[str, str] = {
- "MajoorSaveImage": "Majoor Save Image πΎ",
- "MajoorSaveVideo": "Majoor Save Video π¬",
+ "MajoorSaveImage": "γ½οΈ Majoor Save Image πΎ",
+ "MajoorSaveVideo": "γ½οΈ Majoor Save Video π¬",
}
diff --git a/tests/features/test_api_node_extractor.py b/tests/features/test_api_node_extractor.py
new file mode 100644
index 00000000..d672c131
--- /dev/null
+++ b/tests/features/test_api_node_extractor.py
@@ -0,0 +1,355 @@
+from mjr_am_backend.features.geninfo import api_node_extractor as x
+from mjr_am_backend.features.geninfo import parser_impl as p
+
+# ---------------------------------------------------------------------------
+# Detection helpers
+# ---------------------------------------------------------------------------
+
+def test_detect_api_node_known_providers():
+ assert x._detect_api_node("geminiimagenode") == "google_gemini"
+ assert x._detect_api_node("openaiimagenode") == "openai"
+ assert x._detect_api_node("claudenode") == "anthropic"
+ assert x._detect_api_node("bytedanceseedancenode") == "bytedance_seedance"
+ assert x._detect_api_node("klingtexttovideo") == "kling_ai"
+ assert x._detect_api_node("lumaimagetovideo") == "luma_dream_machine"
+ assert x._detect_api_node("minimaxhailuo") == "minimax_hailuo"
+ assert x._detect_api_node("runwayimagetovideo") == "runway"
+ assert x._detect_api_node("vidutexttovideo") == "vidu"
+ assert x._detect_api_node("moonvalleytxt2video") == "moonvalley"
+ assert x._detect_api_node("pixversetexttovideo") == "pixverse"
+ assert x._detect_api_node("ideogramv2") == "ideogram"
+ assert x._detect_api_node("recraftv4") == "recraft"
+ assert x._detect_api_node("grokimage") == "xai_grok"
+ assert x._detect_api_node("ltxvapitext") == "ltxv_api"
+ assert x._detect_api_node("elevenlabstextto") == "eleven_labs"
+ assert x._detect_api_node("wan2texttovideoapi") == "alibaba_wan"
+ assert x._detect_api_node("fluxkontext") == "black_forest_labs"
+ assert x._detect_api_node("stabilitystableimage") == "stability_ai"
+ assert x._detect_api_node("unknownnode") is None
+
+
+def test_detect_api_node_specificity_order():
+ # More specific fragments must match before the broad catch-all
+ assert x._detect_api_node("bytedanceseedream") == "bytedance_seedance"
+ assert x._detect_api_node("bytedance2referencenode") == "bytedance_seedance"
+ assert x._detect_api_node("geminiimage2node") == "google_gemini"
+ assert x._detect_api_node("veo3videogeneration") == "google_veo"
+
+
+def test_provider_from_model_name():
+ assert x._provider_from_model_name("seedance-2.0-pro") == "bytedance_seedance"
+ assert x._provider_from_model_name("gemini-2.0-flash") == "google_gemini"
+ assert x._provider_from_model_name("veo-3") == "google_veo"
+ assert x._provider_from_model_name("gpt-4o") == "openai"
+ assert x._provider_from_model_name("dall-e-3") == "openai"
+ assert x._provider_from_model_name("claude-3-opus") == "anthropic"
+ assert x._provider_from_model_name("flux-kontext-pro") == "black_forest_labs"
+ assert x._provider_from_model_name("stable-diffusion-xl") == "stability_ai"
+ assert x._provider_from_model_name("wan-2.1") == "alibaba_wan"
+ assert x._provider_from_model_name("kling-v2") == "kling_ai"
+ assert x._provider_from_model_name("luma-dream-machine") == "luma_dream_machine"
+ assert x._provider_from_model_name("minimax-01") == "minimax_hailuo"
+ assert x._provider_from_model_name("runway-gen3") == "runway"
+ assert x._provider_from_model_name("vidu-q1") == "vidu"
+ assert x._provider_from_model_name("ideogram-v3") == "ideogram"
+ assert x._provider_from_model_name("recraft-v3") == "recraft"
+ assert x._provider_from_model_name("grok-aurora") == "xai_grok"
+ assert x._provider_from_model_name("pixverse-v4") == "pixverse"
+ assert x._provider_from_model_name("unknown-model-xyz") is None
+
+
+def test_provider_from_model_name_wan_no_media_type_required():
+ # Wan provider must be detected even without "video" or "image" in name
+ assert x._provider_from_model_name("wan-2.1-14b") == "alibaba_wan"
+ assert x._provider_from_model_name("wanx-turbo") == "alibaba_wan"
+
+
+# ---------------------------------------------------------------------------
+# Node classification
+# ---------------------------------------------------------------------------
+
+def test_is_api_image_node_known_class_type():
+ node = {"class_type": "GeminiImageNode", "inputs": {}}
+ assert x._is_api_image_node(node) is True
+
+
+def test_is_api_image_node_heuristic_fallback():
+ node = {
+ "class_type": "CustomExternalGen",
+ "inputs": {"prompt": "a cat", "model": "custom-v1"},
+ }
+ assert x._is_api_image_node(node) is True
+
+
+def test_is_api_image_node_heuristic_rejects_sampler_node():
+ node = {
+ "class_type": "CustomSampler",
+ "inputs": {"prompt": "a cat", "model": "v1", "cfg": 7.5, "steps": 20},
+ }
+ assert x._is_api_image_node(node) is False
+
+
+def test_is_api_image_node_rejects_non_api():
+ node = {"class_type": "CLIPTextEncode", "inputs": {"text": "hello"}}
+ assert x._is_api_image_node(node) is False
+
+
+# ---------------------------------------------------------------------------
+# Field extraction helpers
+# ---------------------------------------------------------------------------
+
+def test_extract_api_node_prompt_priority():
+ assert x._extract_api_node_prompt({"prompt": "a cat"}) == "a cat"
+ assert x._extract_api_node_prompt({"text": "a dog"}) == "a dog"
+ assert x._extract_api_node_prompt({"positive_prompt": "sun"}) == "sun"
+ assert x._extract_api_node_prompt({}) is None
+ assert x._extract_api_node_prompt({"prompt": " "}) is None
+
+
+def test_extract_api_node_negative():
+ assert x._extract_api_node_negative({"negative_prompt": "blur"}) == "blur"
+ assert x._extract_api_node_negative({"negative": "ugly"}) == "ugly"
+ assert x._extract_api_node_negative({}) is None
+
+
+def test_extract_api_node_model():
+ node = {"class_type": "GeminiImageNode"}
+ m = x._extract_api_node_model({"model": "gemini-2.0-flash"}, "1", node)
+ assert m is not None
+ assert m["name"] == "gemini-2.0-flash"
+ assert m["confidence"] == "high"
+ assert x._extract_api_node_model({}, "1", node) is None
+ assert x._extract_api_node_model({"model": " "}, "1", node) is None
+
+
+def test_extract_api_system_prompt():
+ assert x._extract_api_system_prompt({"system_prompt": "be concise"}) == "be concise"
+ assert x._extract_api_system_prompt({"system": "you are helpful"}) == "you are helpful"
+ assert x._extract_api_system_prompt({}) is None
+
+
+# ---------------------------------------------------------------------------
+# Engine type refinement
+# ---------------------------------------------------------------------------
+
+def test_refine_engine_type_txt2img():
+ out = {"engine": {"type": "txt2img"}}
+ x._refine_engine_type(out, "openaitexttoimageapi", {})
+ assert out["engine"]["type"] == "txt2img"
+
+
+def test_refine_engine_type_img2vid():
+ out = {"engine": {"type": "txt2vid"}}
+ x._refine_engine_type(out, "klingimagetovideo", {})
+ assert out["engine"]["type"] == "img2vid"
+
+
+def test_refine_engine_type_img2vid_from_video_with_image_input():
+ out = {"engine": {"type": "txt2vid"}}
+ x._refine_engine_type(out, "somevideogen", {"image": ["1", 0]})
+ assert out["engine"]["type"] == "img2vid"
+
+
+def test_refine_engine_type_txt2vid_from_video_no_image_input():
+ out = {"engine": {"type": "txt2img"}}
+ x._refine_engine_type(out, "somevideogen", {"prompt": "a sunset"})
+ assert out["engine"]["type"] == "txt2vid"
+
+
+def test_refine_engine_type_audio():
+ out = {"engine": {"type": "txt2img"}}
+ x._refine_engine_type(out, "sonilotexttomusic", {})
+ assert out["engine"]["type"] == "audio"
+
+
+# ---------------------------------------------------------------------------
+# Seedance helpers
+# ---------------------------------------------------------------------------
+
+def test_seedance_size_from_resolution():
+ assert x._seedance_size_from_resolution("720p") == (1280, 720)
+ assert x._seedance_size_from_resolution("1080p") == (1920, 1080)
+ assert x._seedance_size_from_resolution("480p") == (854, 480)
+ assert x._seedance_size_from_resolution("4k") == (3840, 2160)
+ assert x._seedance_size_from_resolution("360p") is None
+
+
+def test_seedance_media_type_txt2vid():
+ assert x._seedance_media_type({"prompt": "a cat"}) == "txt2vid"
+
+
+def test_seedance_media_type_img2vid():
+ ins = {"model.reference_images": ["1", 0]}
+ assert x._seedance_media_type(ins) == "img2vid"
+
+
+# ---------------------------------------------------------------------------
+# Full fallback entry-point
+# ---------------------------------------------------------------------------
+
+def _make_gemini_nodes(prompt="a golden retriever in sunlight", model="gemini-2.0-flash-preview-image-generation"):
+ return {
+ "1": {
+ "class_type": "GeminiImageNode",
+ "inputs": {"prompt": prompt, "model": model, "seed": 42},
+ },
+ "2": {"class_type": "SaveImage", "inputs": {"images": ["1", 0]}},
+ }
+
+
+def test_extract_api_node_geninfo_fallback_basic():
+ nodes = _make_gemini_nodes()
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result["positive"]["value"] == "a golden retriever in sunlight"
+ assert result["engine"]["api_provider"] == "google_gemini"
+ assert result["engine"]["sampler_mode"] == "api"
+ assert result["checkpoint"]["name"] == "gemini-2.0-flash-preview-image-generation"
+ assert result["seed"]["value"] == 42
+
+
+def test_extract_api_node_geninfo_fallback_no_api_nodes():
+ nodes = {
+ "1": {"class_type": "CLIPTextEncode", "inputs": {"text": "hello"}},
+ }
+ assert x._extract_api_node_geninfo_fallback(nodes, None) is None
+
+
+def test_extract_api_node_geninfo_fallback_returns_none_if_no_meaningful_fields():
+ # Node is detected as API type but has no extractable data
+ nodes = {"1": {"class_type": "GeminiImageNode", "inputs": {}}}
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is None
+
+
+def test_extract_api_node_geninfo_fallback_with_workflow_meta():
+ nodes = _make_gemini_nodes()
+ meta = {"title": "Test Workflow"}
+ result = x._extract_api_node_geninfo_fallback(nodes, meta)
+ assert result is not None
+ assert result.get("metadata") == meta
+
+
+def test_extract_api_node_geninfo_fallback_multiple_nodes():
+ nodes = {
+ "1": {
+ "class_type": "GeminiImageNode",
+ "inputs": {"prompt": "first prompt", "model": "gemini-2.0"},
+ },
+ "2": {
+ "class_type": "OpenAIImageNode",
+ "inputs": {"prompt": "second prompt", "model": "dall-e-3"},
+ },
+ "3": {"class_type": "SaveImage", "inputs": {"images": ["1", 0]}},
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ extra = result.get("extra_api_passes", [])
+ assert len(extra) == 1
+ assert extra[0]["positive"]["value"] == "second prompt"
+
+
+def test_extract_api_node_geninfo_fallback_openai():
+ nodes = {
+ "1": {
+ "class_type": "OpenAIImageNode",
+ "inputs": {"prompt": "a serene mountain lake", "model": "gpt-image-1", "seed": 7},
+ },
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result["engine"]["api_provider"] == "openai"
+ assert result["positive"]["value"] == "a serene mountain lake"
+
+
+def test_extract_api_node_geninfo_fallback_seedance_dotted_keys():
+ nodes = {
+ "1": {
+ "class_type": "ByteDanceSeedanceNode",
+ "inputs": {
+ "model": "Seedance 2.0",
+ "model.prompt": "cinematic ocean sunset",
+ "model.negative_prompt": "blur, noisy",
+ "model.resolution": "1080p",
+ "model.duration": 5,
+ "seed": 99,
+ },
+ },
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result["engine"]["api_provider"] == "bytedance_seedance"
+ assert result["positive"]["value"] == "cinematic ocean sunset"
+ assert result["negative"]["value"] == "blur, noisy"
+ assert result["size"]["width"] == 1920
+ assert result["seed"]["value"] == 99
+
+
+def test_extract_api_node_geninfo_fallback_with_negative_prompt():
+ nodes = {
+ "1": {
+ "class_type": "StabilityStableImage",
+ "inputs": {
+ "prompt": "portrait of a warrior",
+ "negative_prompt": "ugly, deformed",
+ "model": "stable-diffusion-xl-1024-v1-0",
+ },
+ },
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result["negative"]["value"] == "ugly, deformed"
+
+
+def test_extract_api_node_geninfo_fallback_size_from_width_height():
+ nodes = {
+ "1": {
+ "class_type": "RecraftV4",
+ "inputs": {"prompt": "abstract art", "model": "recraft-v3", "width": 1024, "height": 768},
+ },
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result["size"]["width"] == 1024
+ assert result["size"]["height"] == 768
+
+
+def test_extract_api_node_geninfo_fallback_wan_provider():
+ nodes = {
+ "1": {
+ "class_type": "Wan2TextToVideoAPI",
+ "inputs": {"prompt": "a butterfly emerging from cocoon", "model": "wan-2.1"},
+ },
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result["engine"]["api_provider"] == "alibaba_wan"
+
+
+def test_extract_api_node_geninfo_fallback_aspect_ratio():
+ nodes = {
+ "1": {
+ "class_type": "KlingTextToVideo",
+ "inputs": {"prompt": "flying eagle", "model": "kling-v2", "aspect_ratio": "16:9"},
+ },
+ }
+ result = x._extract_api_node_geninfo_fallback(nodes, None)
+ assert result is not None
+ assert result.get("aspect_ratio", {}).get("value") == "16:9"
+
+
+def test_extract_api_node_geninfo_fallback_full_integration_via_parser():
+ """End-to-end: parse_geninfo_from_prompt must surface API node data when no sampler present."""
+ nodes = {
+ "1": {
+ "class_type": "GeminiImageNode",
+ "inputs": {"prompt": "a red fox in a snowy forest", "model": "gemini-2.0-flash", "seed": 12},
+ },
+ "2": {"class_type": "SaveImage", "inputs": {"images": ["1", 0]}},
+ }
+ res = p.parse_geninfo_from_prompt(nodes)
+ assert res.ok
+ data = res.data
+ assert isinstance(data, dict)
+ assert data.get("positive", {}).get("value") == "a red fox in a snowy forest"
+ assert data.get("engine", {}).get("api_provider") == "google_gemini"
diff --git a/tests/features/test_geninfo_parser_impl_more.py b/tests/features/test_geninfo_parser_impl_more.py
index ebea1c46..cb227be9 100644
--- a/tests/features/test_geninfo_parser_impl_more.py
+++ b/tests/features/test_geninfo_parser_impl_more.py
@@ -278,6 +278,117 @@ def test_resolve_scalar_from_string_replace():
assert p._resolve_scalar_from_link(nodes, ["2", 0]) == "cinematic portrait of a woman"
+def test_ernie_image_turbo_real_graph_extracts_original_prompt():
+ """Real Ernie Image Turbo subgraph: TextGenerate enhances the user prompt
+ via a chain of StringReplace nodes feeding a system-prompt template.
+ The parser must extract the *original* user prompt, not the LLM-enhanced text."""
+ user_prompt = "A stylized cinematic portrait of a woman at twilight"
+ nodes = {
+ "88:93": {
+ "class_type": "StringReplace",
+ "inputs": {
+ "string": '[SYSTEM_PROMPT]You are a prompt enhancer.[/SYSTEM_PROMPT][INST]{{"prompt": "{prompt}", "width": {width}, "height": {height}}}[/INST]',
+ "find": "{prompt}",
+ "replace": ["88:94", 0],
+ },
+ },
+ "88:94": {
+ "class_type": "PrimitiveStringMultiline",
+ "inputs": {"value": user_prompt},
+ },
+ "88:99": {
+ "class_type": "PreviewAny",
+ "inputs": {"preview_text": "1024", "source": 1024},
+ },
+ "88:100": {
+ "class_type": "PreviewAny",
+ "inputs": {"preview_text": "1024", "source": 1024},
+ },
+ "88:101": {
+ "class_type": "StringReplace",
+ "inputs": {"string": ["88:93", 0], "find": "{width}", "replace": ["88:99", 0]},
+ },
+ "88:102": {
+ "class_type": "StringReplace",
+ "inputs": {"string": ["88:101", 0], "find": "{height}", "replace": ["88:100", 0]},
+ },
+ "88:95": {
+ "class_type": "TextGenerate",
+ "inputs": {"prompt": ["88:102", 0], "max_length": 2048, "clip": ["88:98", 0]},
+ },
+ "88:96": {"class_type": "PrimitiveBoolean", "inputs": {"value": True}},
+ "88:97": {
+ "class_type": "ComfySwitchNode",
+ "inputs": {"switch": ["88:96", 0], "on_false": ["88:94", 0], "on_true": ["88:95", 0]},
+ },
+ "88:103": {
+ "class_type": "PreviewAny",
+ "inputs": {
+ "source": ["88:95", 0],
+ "preview_text": "Enhanced Chinese LLM description of the image",
+ },
+ },
+ "88:67": {
+ "class_type": "CLIPTextEncode",
+ "inputs": {"text": ["88:97", 0], "clip": ["88:62", 0]},
+ },
+ "88:62": {
+ "class_type": "CLIPLoader",
+ "inputs": {"clip_name": "ministral-3-3b.safetensors", "type": "flux2"},
+ },
+ "88:91": {
+ "class_type": "ConditioningZeroOut",
+ "inputs": {"conditioning": ["88:67", 0]},
+ },
+ "88:66": {
+ "class_type": "UNETLoader",
+ "inputs": {"unet_name": "ernie-image-turbo.safetensors"},
+ },
+ "88:63": {"class_type": "VAELoader", "inputs": {"vae_name": "flux2-vae.safetensors"}},
+ "88:71": {
+ "class_type": "EmptyFlux2LatentImage",
+ "inputs": {"width": 1024, "height": 1024, "batch_size": 1},
+ },
+ "88:70": {
+ "class_type": "KSampler",
+ "inputs": {
+ "seed": 42,
+ "steps": 8,
+ "cfg": 1.0,
+ "sampler_name": "euler",
+ "scheduler": "simple",
+ "denoise": 1.0,
+ "model": ["88:66", 0],
+ "positive": ["88:67", 0],
+ "negative": ["88:91", 0],
+ "latent_image": ["88:71", 0],
+ },
+ },
+ "88:65": {
+ "class_type": "VAEDecode",
+ "inputs": {"samples": ["88:70", 0], "vae": ["88:63", 0]},
+ },
+ "88:98": {
+ "class_type": "CLIPLoader",
+ "inputs": {"clip_name": "ernie-image-prompt-enhancer.safetensors", "type": "flux2"},
+ },
+ "104": {
+ "class_type": "SaveImage",
+ "inputs": {"filename_prefix": "output", "images": ["88:65", 0]},
+ },
+ }
+
+ res = p.parse_geninfo_from_prompt(nodes)
+ assert res.ok
+ data = res.data
+ assert isinstance(data, dict)
+ pos = data.get("positive", {})
+ assert pos.get("value") == user_prompt
+ # Negative is ConditioningZeroOut β no text expected.
+ neg = data.get("negative", {})
+ assert not neg.get("value")
+
+
def test_prompt_extracted_through_ernie_switch_and_preview_any_output():
nodes = {
"1": {"class_type": "PrimitiveStringMultiline", "inputs": {"value": "portrait of a woman at dusk"}},
@@ -328,7 +439,7 @@ def test_prompt_extracted_through_ernie_switch_and_preview_any_output():
data = res.data
assert isinstance(data, dict)
pos = data.get("positive", {})
- assert pos.get("value") == "A cinematic side-profile portrait of a woman at dusk with dramatic neon rim lighting."
+ assert pos.get("value") == "portrait of a woman at dusk"
def test_parse_geninfo_supports_pysssss_string_function_append():