@lv-x-software-house/x_view 1.3.7 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +430 -279
- package/dist/index.mjs +354 -203
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -44,9 +44,9 @@ __export(index_exports, {
|
|
|
44
44
|
module.exports = __toCommonJS(index_exports);
|
|
45
45
|
|
|
46
46
|
// src/XViewScene.jsx
|
|
47
|
-
var
|
|
47
|
+
var import_react38 = __toESM(require("react"));
|
|
48
48
|
var import_navigation = require("next/navigation");
|
|
49
|
-
var
|
|
49
|
+
var import_react39 = require("next-auth/react");
|
|
50
50
|
var import_crypto_js = __toESM(require("crypto-js"));
|
|
51
51
|
var THREE3 = __toESM(require("three"));
|
|
52
52
|
var import_OrbitControls = require("three/examples/jsm/controls/OrbitControls.js");
|
|
@@ -2208,7 +2208,6 @@ var userActionHandlers = {
|
|
|
2208
2208
|
}
|
|
2209
2209
|
});
|
|
2210
2210
|
if (updates.length > 0) {
|
|
2211
|
-
console.log(`[syncQuestTemplateFlags] Sincronizando ${updates.length} quests...`);
|
|
2212
2211
|
for (const quest of updates) {
|
|
2213
2212
|
const idx = sceneDataRef.current.quest_nodes.findIndex((q) => String(q.id) === String(quest.id));
|
|
2214
2213
|
if (idx !== -1) sceneDataRef.current.quest_nodes[idx] = quest;
|
|
@@ -2550,7 +2549,7 @@ var userActionHandlers = {
|
|
|
2550
2549
|
if (actions.delete_file && nodeData) {
|
|
2551
2550
|
const urls = extractFileUrlsFromProperties(nodeData);
|
|
2552
2551
|
if (urls.length > 0) {
|
|
2553
|
-
Promise.all(urls.map((url) => actions.delete_file(url))).
|
|
2552
|
+
Promise.all(urls.map((url) => actions.delete_file(url))).catch(
|
|
2554
2553
|
(err) => console.error("Erro ao deletar arquivos do node:", err)
|
|
2555
2554
|
);
|
|
2556
2555
|
}
|
|
@@ -2961,7 +2960,6 @@ var userActionHandlers = {
|
|
|
2961
2960
|
}
|
|
2962
2961
|
if (foundProcess && foundTreeContext) {
|
|
2963
2962
|
if (foundTreeContext.nodeRef.is_choice) {
|
|
2964
|
-
console.log("N\xF3 de escolha detectado. Aguardando sele\xE7\xE3o manual.");
|
|
2965
2963
|
keepOpen = true;
|
|
2966
2964
|
if (context.setters.setDetailsNode) {
|
|
2967
2965
|
context.setters.setDetailsNode({ ...nodeToSave, _scrollToChoice: true });
|
|
@@ -5160,8 +5158,8 @@ function ContextMenu({
|
|
|
5160
5158
|
const handleClickOutside = (e) => {
|
|
5161
5159
|
if (menuRef.current && !menuRef.current.contains(e.target)) onClose();
|
|
5162
5160
|
};
|
|
5163
|
-
document.addEventListener("
|
|
5164
|
-
return () => document.removeEventListener("
|
|
5161
|
+
document.addEventListener("pointerdown", handleClickOutside);
|
|
5162
|
+
return () => document.removeEventListener("pointerdown", handleClickOutside);
|
|
5165
5163
|
}, [data.visible, onClose]);
|
|
5166
5164
|
const visibleLinkIds = (0, import_react2.useMemo)(() => {
|
|
5167
5165
|
var _a2;
|
|
@@ -5601,7 +5599,7 @@ function ContextMenu({
|
|
|
5601
5599
|
"div",
|
|
5602
5600
|
{
|
|
5603
5601
|
ref: menuRef,
|
|
5604
|
-
className: "ui-overlay context-menu-class origin-top-left rounded-xl border border-white/10 bg-slate-950/70 backdrop-blur-xl shadow-[0_20px_80px_rgba(0,0,0,0.6)] ring-1 ring-white/10 text-white min-w-[220px] max-w-[min(95vw,420px)]
|
|
5602
|
+
className: "ui-overlay context-menu-class origin-top-left rounded-xl border border-white/10 bg-slate-950/70 backdrop-blur-xl shadow-[0_20px_80px_rgba(0,0,0,0.6)] ring-1 ring-white/10 text-white min-w-[220px] max-w-[min(95vw,420px)] max-h-[85vh] overflow-y-auto custom-scrollbar w-max",
|
|
5605
5603
|
style: { position: "absolute", left: `${menuPos.left}px`, top: `${menuPos.top}px`, zIndex: 1e3 },
|
|
5606
5604
|
onPointerDown: swallow,
|
|
5607
5605
|
onPointerMove: swallow,
|
|
@@ -8370,7 +8368,6 @@ function DescriptionDisplay({
|
|
|
8370
8368
|
mentionCount++;
|
|
8371
8369
|
}
|
|
8372
8370
|
});
|
|
8373
|
-
console.log("[DescriptionDisplay] flatNavigation computed:", navItems.length, "items", navItems);
|
|
8374
8371
|
return navItems;
|
|
8375
8372
|
}, [sections]);
|
|
8376
8373
|
const [currentStepIndex, setCurrentStepIndex] = (0, import_react7.useState)(0);
|
|
@@ -8417,24 +8414,14 @@ function DescriptionDisplay({
|
|
|
8417
8414
|
const handleKeyDown = (e) => {
|
|
8418
8415
|
if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA") return;
|
|
8419
8416
|
const currentItem = flatNavigation[currentStepIndex];
|
|
8420
|
-
if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(e.key)) {
|
|
8421
|
-
console.log(`[DescriptionDisplay] Key pressed: ${e.key}`, {
|
|
8422
|
-
currentStepIndex,
|
|
8423
|
-
flatNavigationLength: flatNavigation.length,
|
|
8424
|
-
currentItem,
|
|
8425
|
-
currentBranchDirection
|
|
8426
|
-
});
|
|
8427
|
-
}
|
|
8428
8417
|
if (e.key === "ArrowRight") {
|
|
8429
8418
|
e.preventDefault();
|
|
8430
8419
|
e.stopPropagation();
|
|
8431
8420
|
if (currentStepIndex === 0 && currentBranchDirection === "left") {
|
|
8432
|
-
console.log("[DescriptionDisplay] ArrowRight: Navigating back from left branch");
|
|
8433
8421
|
if (onBranchNav) onBranchNav(null, "back");
|
|
8434
8422
|
return;
|
|
8435
8423
|
}
|
|
8436
8424
|
if (currentItem && currentItem.type === "mention" && onBranchNav) {
|
|
8437
|
-
console.log("[DescriptionDisplay] ArrowRight: Opening right branch for node", currentItem.nodeId);
|
|
8438
8425
|
onBranchNav(currentItem.nodeId, "open", "right");
|
|
8439
8426
|
return;
|
|
8440
8427
|
}
|
|
@@ -8443,12 +8430,10 @@ function DescriptionDisplay({
|
|
|
8443
8430
|
e.preventDefault();
|
|
8444
8431
|
e.stopPropagation();
|
|
8445
8432
|
if (currentStepIndex === 0 && currentBranchDirection === "right") {
|
|
8446
|
-
console.log("[DescriptionDisplay] ArrowLeft: Navigating back from right branch");
|
|
8447
8433
|
if (onBranchNav) onBranchNav(null, "back");
|
|
8448
8434
|
return;
|
|
8449
8435
|
}
|
|
8450
8436
|
if (currentItem && currentItem.type === "mention" && onBranchNav) {
|
|
8451
|
-
console.log("[DescriptionDisplay] ArrowLeft: Opening left branch for node", currentItem.nodeId);
|
|
8452
8437
|
onBranchNav(currentItem.nodeId, "open", "left");
|
|
8453
8438
|
return;
|
|
8454
8439
|
}
|
|
@@ -8456,29 +8441,16 @@ function DescriptionDisplay({
|
|
|
8456
8441
|
if (e.key === "ArrowDown") {
|
|
8457
8442
|
e.preventDefault();
|
|
8458
8443
|
if (flatNavigation.length > 1) {
|
|
8459
|
-
setCurrentStepIndex((prev) =>
|
|
8460
|
-
const next = Math.min(prev + 1, flatNavigation.length - 1);
|
|
8461
|
-
console.log(`[DescriptionDisplay] ArrowDown: ${prev} -> ${next}`);
|
|
8462
|
-
return next;
|
|
8463
|
-
});
|
|
8444
|
+
setCurrentStepIndex((prev) => Math.min(prev + 1, flatNavigation.length - 1));
|
|
8464
8445
|
}
|
|
8465
8446
|
}
|
|
8466
8447
|
if (e.key === "ArrowUp") {
|
|
8467
8448
|
e.preventDefault();
|
|
8468
8449
|
if (flatNavigation.length > 1) {
|
|
8469
|
-
setCurrentStepIndex((prev) =>
|
|
8470
|
-
const next = Math.max(prev - 1, 0);
|
|
8471
|
-
console.log(`[DescriptionDisplay] ArrowUp: ${prev} -> ${next}`);
|
|
8472
|
-
return next;
|
|
8473
|
-
});
|
|
8450
|
+
setCurrentStepIndex((prev) => Math.max(prev - 1, 0));
|
|
8474
8451
|
}
|
|
8475
8452
|
}
|
|
8476
8453
|
};
|
|
8477
|
-
console.log("[DescriptionDisplay] Attaching keydown listener", {
|
|
8478
|
-
flatNavigationLength: flatNavigation.length,
|
|
8479
|
-
currentStepIndex,
|
|
8480
|
-
currentBranchDirection
|
|
8481
|
-
});
|
|
8482
8454
|
window.addEventListener("keydown", handleKeyDown);
|
|
8483
8455
|
return () => {
|
|
8484
8456
|
window.removeEventListener("keydown", handleKeyDown);
|
|
@@ -11846,7 +11818,6 @@ function InSceneCreationForm({
|
|
|
11846
11818
|
if (typeInput.trim() === "") {
|
|
11847
11819
|
result = validExistingTypes.filter((t) => !types.includes(t));
|
|
11848
11820
|
} else {
|
|
11849
|
-
console.log("InSceneCreationForm: Filtrando tipos com input:", typeInput);
|
|
11850
11821
|
try {
|
|
11851
11822
|
const lowercasedInput = typeInput.toLowerCase();
|
|
11852
11823
|
result = validExistingTypes.filter((t) => {
|
|
@@ -13776,14 +13747,18 @@ function NodeDetailsPanel({
|
|
|
13776
13747
|
});
|
|
13777
13748
|
const [selectedImageUrl, setSelectedImageUrl] = (0, import_react21.useState)((node == null ? void 0 : node.textureImageUrl) ?? null);
|
|
13778
13749
|
const [hasUnsavedChanges, setHasUnsavedChanges] = (0, import_react21.useState)(false);
|
|
13779
|
-
const
|
|
13750
|
+
const isMobile = typeof window !== "undefined" && window.innerWidth < 640;
|
|
13751
|
+
const maxPanelW = typeof window !== "undefined" ? Math.min(window.innerWidth - 32, 1200) : 1200;
|
|
13752
|
+
const defaultWidth = isMobile ? typeof window !== "undefined" ? window.innerWidth - 32 : 360 : isReadMode ? 700 : 440;
|
|
13780
13753
|
const { width: panelWidth, isResizing, handlePointerDown: handleResize, setWidth } = useResizablePanel({
|
|
13781
|
-
initialWidth:
|
|
13782
|
-
minWidth:
|
|
13754
|
+
initialWidth: defaultWidth,
|
|
13755
|
+
minWidth: typeof window !== "undefined" ? Math.min(280, window.innerWidth - 32) : 280,
|
|
13783
13756
|
maxWidth: maxPanelW
|
|
13784
13757
|
});
|
|
13785
13758
|
(0, import_react21.useEffect)(() => {
|
|
13786
|
-
|
|
13759
|
+
const isMob = typeof window !== "undefined" && window.innerWidth < 640;
|
|
13760
|
+
const targetW = isMob ? typeof window !== "undefined" ? window.innerWidth - 32 : 360 : isReadMode ? 700 : 440;
|
|
13761
|
+
setWidth(targetW);
|
|
13787
13762
|
}, [isReadMode, setWidth]);
|
|
13788
13763
|
const prevNodeIdRef = (0, import_react21.useRef)(null);
|
|
13789
13764
|
const propsEndRef = (0, import_react21.useRef)(null);
|
|
@@ -13829,7 +13804,6 @@ function NodeDetailsPanel({
|
|
|
13829
13804
|
if (typeInput.trim() === "") {
|
|
13830
13805
|
setFilteredTypes(validExistingTypes.filter((t) => !types.includes(t)));
|
|
13831
13806
|
} else {
|
|
13832
|
-
console.log("NodeDetailsPanel: Filtrando tipos com input:", typeInput);
|
|
13833
13807
|
try {
|
|
13834
13808
|
const lowercasedInput = typeInput.toLowerCase();
|
|
13835
13809
|
setFilteredTypes(
|
|
@@ -14768,7 +14742,6 @@ function QuestDetailsPanel({
|
|
|
14768
14742
|
if (typeInput.trim() === "") {
|
|
14769
14743
|
setFilteredTypes(validExistingTypes.filter((t) => !types.includes(t)));
|
|
14770
14744
|
} else {
|
|
14771
|
-
console.log("QuestDetailsPanel: Filtrando tipos com input:", typeInput);
|
|
14772
14745
|
try {
|
|
14773
14746
|
const lowercasedInput = typeInput.toLowerCase();
|
|
14774
14747
|
setFilteredTypes(
|
|
@@ -17446,8 +17419,8 @@ function MultiNodeContextMenu({
|
|
|
17446
17419
|
const handleClickOutside = (e) => {
|
|
17447
17420
|
if (menuRef.current && !menuRef.current.contains(e.target)) onClose();
|
|
17448
17421
|
};
|
|
17449
|
-
document.addEventListener("
|
|
17450
|
-
return () => document.removeEventListener("
|
|
17422
|
+
document.addEventListener("pointerdown", handleClickOutside);
|
|
17423
|
+
return () => document.removeEventListener("pointerdown", handleClickOutside);
|
|
17451
17424
|
}, [data.visible, onClose]);
|
|
17452
17425
|
if (!data.visible || !data.nodeIds || data.nodeIds.size === 0) return null;
|
|
17453
17426
|
const swallow = (e) => e.stopPropagation();
|
|
@@ -17888,8 +17861,8 @@ function RelationshipContextMenu({
|
|
|
17888
17861
|
const handleClickOutside = (e) => {
|
|
17889
17862
|
if (menuRef.current && !menuRef.current.contains(e.target)) onClose();
|
|
17890
17863
|
};
|
|
17891
|
-
document.addEventListener("
|
|
17892
|
-
return () => document.removeEventListener("
|
|
17864
|
+
document.addEventListener("pointerdown", handleClickOutside);
|
|
17865
|
+
return () => document.removeEventListener("pointerdown", handleClickOutside);
|
|
17893
17866
|
}, [data.visible, onClose]);
|
|
17894
17867
|
if (!data.visible) return null;
|
|
17895
17868
|
const swallow = (e) => e.stopPropagation();
|
|
@@ -19457,63 +19430,201 @@ function MilestoneManager({
|
|
|
19457
19430
|
}
|
|
19458
19431
|
|
|
19459
19432
|
// src/components/UpgradeModal.jsx
|
|
19433
|
+
var import_react37 = __toESM(require("react"));
|
|
19434
|
+
|
|
19435
|
+
// src/components/icons/UltraMinimalIcon.jsx
|
|
19460
19436
|
var import_react36 = __toESM(require("react"));
|
|
19461
|
-
|
|
19437
|
+
function UltraMinimalIcon({
|
|
19438
|
+
size = 13,
|
|
19439
|
+
className = "",
|
|
19440
|
+
strokeWidth = 1.5,
|
|
19441
|
+
...props
|
|
19442
|
+
}) {
|
|
19443
|
+
return /* @__PURE__ */ import_react36.default.createElement(
|
|
19444
|
+
"svg",
|
|
19445
|
+
{
|
|
19446
|
+
width: size,
|
|
19447
|
+
height: size,
|
|
19448
|
+
viewBox: "0 0 24 24",
|
|
19449
|
+
fill: "none",
|
|
19450
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19451
|
+
className: `inline-block shrink-0 transition-transform duration-200 ${className}`,
|
|
19452
|
+
...props
|
|
19453
|
+
},
|
|
19454
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
19455
|
+
"path",
|
|
19456
|
+
{
|
|
19457
|
+
d: "M6 3h12l4 6-10 12L2 9l4-6z",
|
|
19458
|
+
stroke: "currentColor",
|
|
19459
|
+
strokeWidth,
|
|
19460
|
+
strokeLinecap: "round",
|
|
19461
|
+
strokeLinejoin: "round"
|
|
19462
|
+
}
|
|
19463
|
+
),
|
|
19464
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
19465
|
+
"path",
|
|
19466
|
+
{
|
|
19467
|
+
d: "M11 3v6",
|
|
19468
|
+
stroke: "currentColor",
|
|
19469
|
+
strokeWidth,
|
|
19470
|
+
strokeLinecap: "round",
|
|
19471
|
+
strokeLinejoin: "round"
|
|
19472
|
+
}
|
|
19473
|
+
),
|
|
19474
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
19475
|
+
"path",
|
|
19476
|
+
{
|
|
19477
|
+
d: "M13 3v6",
|
|
19478
|
+
stroke: "currentColor",
|
|
19479
|
+
strokeWidth,
|
|
19480
|
+
strokeLinecap: "round",
|
|
19481
|
+
strokeLinejoin: "round"
|
|
19482
|
+
}
|
|
19483
|
+
),
|
|
19484
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
19485
|
+
"path",
|
|
19486
|
+
{
|
|
19487
|
+
d: "M2 9h20",
|
|
19488
|
+
stroke: "currentColor",
|
|
19489
|
+
strokeWidth,
|
|
19490
|
+
strokeLinecap: "round",
|
|
19491
|
+
strokeLinejoin: "round"
|
|
19492
|
+
}
|
|
19493
|
+
),
|
|
19494
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
19495
|
+
"path",
|
|
19496
|
+
{
|
|
19497
|
+
d: "M12 21L8 9",
|
|
19498
|
+
stroke: "currentColor",
|
|
19499
|
+
strokeWidth,
|
|
19500
|
+
strokeLinecap: "round",
|
|
19501
|
+
strokeLinejoin: "round"
|
|
19502
|
+
}
|
|
19503
|
+
),
|
|
19504
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
19505
|
+
"path",
|
|
19506
|
+
{
|
|
19507
|
+
d: "M12 21l4-12",
|
|
19508
|
+
stroke: "currentColor",
|
|
19509
|
+
strokeWidth,
|
|
19510
|
+
strokeLinecap: "round",
|
|
19511
|
+
strokeLinejoin: "round"
|
|
19512
|
+
}
|
|
19513
|
+
)
|
|
19514
|
+
);
|
|
19515
|
+
}
|
|
19516
|
+
|
|
19517
|
+
// src/components/UpgradeModal.jsx
|
|
19462
19518
|
function UpgradeModal({
|
|
19463
19519
|
isOpen,
|
|
19464
19520
|
onClose,
|
|
19465
|
-
nodeCounter,
|
|
19521
|
+
nodeCounter = 0,
|
|
19466
19522
|
nodeLimit = 100,
|
|
19523
|
+
plan,
|
|
19467
19524
|
onUpgrade
|
|
19468
19525
|
}) {
|
|
19526
|
+
const [isSubmitting, setIsSubmitting] = (0, import_react37.useState)(false);
|
|
19469
19527
|
if (!isOpen) return null;
|
|
19470
|
-
|
|
19471
|
-
|
|
19472
|
-
|
|
19473
|
-
|
|
19474
|
-
|
|
19475
|
-
|
|
19476
|
-
|
|
19477
|
-
|
|
19478
|
-
|
|
19479
|
-
|
|
19480
|
-
|
|
19481
|
-
|
|
19528
|
+
const currentPlan = plan || (nodeLimit === -1 ? "premium" : "free");
|
|
19529
|
+
const handleUpgradeClick = async () => {
|
|
19530
|
+
if (isSubmitting) return;
|
|
19531
|
+
setIsSubmitting(true);
|
|
19532
|
+
try {
|
|
19533
|
+
if (onUpgrade) {
|
|
19534
|
+
await onUpgrade();
|
|
19535
|
+
} else {
|
|
19536
|
+
alert("Redirecting to checkout...");
|
|
19537
|
+
}
|
|
19538
|
+
} catch (error) {
|
|
19539
|
+
console.error("Error during upgrade:", error);
|
|
19540
|
+
} finally {
|
|
19541
|
+
setIsSubmitting(false);
|
|
19542
|
+
}
|
|
19543
|
+
};
|
|
19544
|
+
const limit = nodeLimit === -1 ? 100 : nodeLimit;
|
|
19545
|
+
const safeNodeCounter = Math.max(0, nodeCounter || 0);
|
|
19546
|
+
const usagePercentage = Math.min(
|
|
19547
|
+
100,
|
|
19548
|
+
Math.round(safeNodeCounter / limit * 100)
|
|
19549
|
+
);
|
|
19550
|
+
return /* @__PURE__ */ import_react37.default.createElement("div", { className: "fixed inset-0 bg-slate-950/40 backdrop-blur-md z-[10000] flex justify-center items-center p-4 animate-in fade-in duration-300 font-sans select-none" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "bg-[#0b1224]/80 border border-cyan-600/20 p-7 rounded-3xl shadow-[0_0_50px_-12px_rgba(6,182,212,0.2)] w-full max-w-[380px] relative text-center overflow-hidden animate-in zoom-in-95 duration-300" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "absolute -top-20 left-1/2 -translate-x-1/2 w-40 h-40 bg-cyan-600/10 rounded-full blur-[60px] pointer-events-none" }), /* @__PURE__ */ import_react37.default.createElement("div", { className: "flex justify-center mb-4 relative" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "relative w-14 h-14 flex items-center justify-center" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "absolute inset-0 bg-cyan-500 rounded-full blur-2xl opacity-20 animate-pulse" }), /* @__PURE__ */ import_react37.default.createElement("div", { className: "relative w-12 h-12 rounded-xl bg-slate-900 border border-cyan-400/30 shadow-lg flex items-center justify-center z-10 animate-float" }, /* @__PURE__ */ import_react37.default.createElement(
|
|
19551
|
+
UltraMinimalIcon,
|
|
19552
|
+
{
|
|
19553
|
+
size: 22,
|
|
19554
|
+
className: "text-cyan-400",
|
|
19555
|
+
strokeWidth: 2
|
|
19556
|
+
}
|
|
19557
|
+
)))), /* @__PURE__ */ import_react37.default.createElement("h2", { className: "text-xl font-bold text-white mb-1 tracking-tight font-sans" }, "Upgrade x.plore"), /* @__PURE__ */ import_react37.default.createElement("p", { className: "text-slate-400 text-[11px] mb-6 leading-relaxed px-4 font-medium italic" }, "Unlock unlimited nodes and community features."), /* @__PURE__ */ import_react37.default.createElement("div", { className: "grid grid-cols-2 gap-3 mb-3 text-left" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "bg-gradient-to-b from-[#0e172a]/90 to-[#070c18]/90 border border-cyan-500/20 hover:border-cyan-400/40 p-3.5 rounded-2xl flex flex-col justify-between shadow-md transition-all duration-300" }, /* @__PURE__ */ import_react37.default.createElement("div", null, /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-xs font-sans font-normal text-cyan-400/80 tracking-normal block mb-1.5" }, "Node Usage"), /* @__PURE__ */ import_react37.default.createElement("div", { className: "flex items-baseline gap-1" }, /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-lg font-bold text-white font-sans tracking-tight" }, nodeCounter), /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-xs font-sans font-medium text-slate-400" }, "/ ", currentPlan === "premium" ? "\u221E" : "100"))), currentPlan !== "premium" && /* @__PURE__ */ import_react37.default.createElement("div", { className: "mt-2.5" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "w-full h-1.5 bg-slate-900 border border-white/5 rounded-full overflow-hidden p-[1px]" }, /* @__PURE__ */ import_react37.default.createElement(
|
|
19482
19558
|
"div",
|
|
19483
19559
|
{
|
|
19484
|
-
className: "
|
|
19485
|
-
|
|
19560
|
+
className: `h-full rounded-full transition-all duration-500 ${usagePercentage >= 100 ? "bg-gradient-to-r from-rose-500 to-pink-500 shadow-[0_0_8px_#f43f5e]" : "bg-gradient-to-r from-cyan-500 to-sky-300 shadow-[0_0_8px_#22d3ee]"}`,
|
|
19561
|
+
style: { width: `${usagePercentage}%` }
|
|
19486
19562
|
}
|
|
19487
|
-
), /* @__PURE__ */
|
|
19563
|
+
)))), /* @__PURE__ */ import_react37.default.createElement("div", { className: "bg-gradient-to-b from-[#0e172a]/90 to-[#070c18]/90 border border-cyan-500/20 hover:border-cyan-400/40 p-3.5 rounded-2xl flex flex-col justify-between shadow-md transition-all duration-300" }, /* @__PURE__ */ import_react37.default.createElement("div", null, /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-xs font-sans font-normal text-cyan-400/80 tracking-normal block mb-1.5" }, "Current Plan"), /* @__PURE__ */ import_react37.default.createElement("div", { className: "mt-1" }, /* @__PURE__ */ import_react37.default.createElement(
|
|
19564
|
+
"span",
|
|
19565
|
+
{
|
|
19566
|
+
className: `inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg border text-xs font-normal font-sans tracking-normal ${currentPlan === "premium" ? "bg-indigo-500/15 border-indigo-400/30 text-indigo-300" : "bg-cyan-500/10 border-cyan-400/30 text-cyan-300"}`
|
|
19567
|
+
},
|
|
19568
|
+
/* @__PURE__ */ import_react37.default.createElement(
|
|
19569
|
+
"span",
|
|
19570
|
+
{
|
|
19571
|
+
className: `w-1.5 h-1.5 rounded-full animate-pulse ${currentPlan === "premium" ? "bg-indigo-400 shadow-[0_0_6px_#818cf8]" : "bg-cyan-400 shadow-[0_0_6px_#22d3ee]"}`
|
|
19572
|
+
}
|
|
19573
|
+
),
|
|
19574
|
+
currentPlan === "premium" ? "Premium" : "Free"
|
|
19575
|
+
))))), /* @__PURE__ */ import_react37.default.createElement("div", { className: "bg-gradient-to-b from-[#0e172a]/70 to-[#070c18]/80 border border-cyan-500/15 p-3.5 rounded-2xl space-y-2.5 mb-5 text-left shadow-sm" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "flex items-center gap-2.5 text-slate-200 text-xs font-medium" }, /* @__PURE__ */ import_react37.default.createElement("span", { className: "w-1.5 h-1.5 rounded-full bg-cyan-400 shadow-[0_0_6px_#22d3ee] shrink-0" }), /* @__PURE__ */ import_react37.default.createElement("span", null, "Unlimited Nodes")), /* @__PURE__ */ import_react37.default.createElement("div", { className: "flex items-center gap-2.5 text-slate-200 text-xs font-medium" }, /* @__PURE__ */ import_react37.default.createElement("span", { className: "w-1.5 h-1.5 rounded-full bg-cyan-400 shadow-[0_0_6px_#22d3ee] shrink-0" }), /* @__PURE__ */ import_react37.default.createElement("span", null, "Community and collaboration features"))), /* @__PURE__ */ import_react37.default.createElement("div", { className: "space-y-2.5" }, currentPlan !== "premium" ? /* @__PURE__ */ import_react37.default.createElement(
|
|
19488
19576
|
"button",
|
|
19489
19577
|
{
|
|
19490
|
-
onClick:
|
|
19491
|
-
|
|
19578
|
+
onClick: handleUpgradeClick,
|
|
19579
|
+
disabled: isSubmitting,
|
|
19580
|
+
className: "group relative w-full py-3.5 rounded-xl bg-gradient-to-r from-cyan-400 to-cyan-500 hover:from-cyan-300 hover:to-cyan-400 text-slate-950 font-normal text-sm tracking-normal font-sans shadow-[0_0_15px_rgba(34,211,238,0.22)] hover:shadow-[0_0_22px_rgba(34,211,238,0.38)] hover:scale-[1.01] active:scale-[0.98] transition-all duration-300 overflow-hidden cursor-pointer border border-cyan-300/30 disabled:opacity-30 disabled:grayscale"
|
|
19492
19581
|
},
|
|
19493
|
-
/* @__PURE__ */
|
|
19494
|
-
|
|
19582
|
+
/* @__PURE__ */ import_react37.default.createElement("div", { className: "absolute inset-0 bg-gradient-to-r from-transparent via-white/40 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-700 ease-in-out pointer-events-none" }),
|
|
19583
|
+
isSubmitting ? /* @__PURE__ */ import_react37.default.createElement("div", { className: "relative z-10 flex items-center justify-center gap-2" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "h-4 w-4 border-2 border-slate-950/30 border-t-slate-950 rounded-full animate-spin" })) : /* @__PURE__ */ import_react37.default.createElement("span", { className: "relative z-10 font-normal" }, "Upgrade Now")
|
|
19584
|
+
) : /* @__PURE__ */ import_react37.default.createElement("div", { className: "w-full py-3 rounded-xl bg-indigo-500/10 border border-indigo-500/30 text-indigo-300 font-normal text-sm text-center flex items-center justify-center gap-2 font-sans tracking-normal" }, /* @__PURE__ */ import_react37.default.createElement("span", null, "Your Account is Premium")), /* @__PURE__ */ import_react37.default.createElement(
|
|
19495
19585
|
"button",
|
|
19496
19586
|
{
|
|
19497
|
-
|
|
19498
|
-
|
|
19499
|
-
if (onUpgrade) {
|
|
19500
|
-
await onUpgrade();
|
|
19501
|
-
} else {
|
|
19502
|
-
alert("Redirecionando para upgrade... (Em breve)");
|
|
19503
|
-
}
|
|
19504
|
-
onClose();
|
|
19505
|
-
}
|
|
19587
|
+
onClick: onClose,
|
|
19588
|
+
className: "w-full py-2.5 rounded-xl bg-slate-950/50 hover:bg-slate-900 border border-slate-800 text-slate-400 hover:text-white text-xs font-semibold transition-all duration-300 active:scale-[0.98] cursor-pointer text-center"
|
|
19506
19589
|
},
|
|
19507
|
-
"
|
|
19508
|
-
|
|
19509
|
-
), /* @__PURE__ */ import_react36.default.createElement(
|
|
19590
|
+
currentPlan === "premium" ? "Close" : "Continue with Free Plan"
|
|
19591
|
+
)), /* @__PURE__ */ import_react37.default.createElement(
|
|
19510
19592
|
"button",
|
|
19511
19593
|
{
|
|
19512
19594
|
onClick: onClose,
|
|
19513
|
-
className: "
|
|
19595
|
+
className: "absolute top-6 right-6 text-slate-500 hover:text-cyan-400 transition-all duration-300 p-1 hover:rotate-90 cursor-pointer",
|
|
19596
|
+
"aria-label": "Close modal"
|
|
19514
19597
|
},
|
|
19515
|
-
|
|
19516
|
-
|
|
19598
|
+
/* @__PURE__ */ import_react37.default.createElement(
|
|
19599
|
+
"svg",
|
|
19600
|
+
{
|
|
19601
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19602
|
+
width: "18",
|
|
19603
|
+
height: "18",
|
|
19604
|
+
viewBox: "0 0 24 24",
|
|
19605
|
+
fill: "none",
|
|
19606
|
+
stroke: "currentColor",
|
|
19607
|
+
strokeWidth: "2.5",
|
|
19608
|
+
strokeLinecap: "round",
|
|
19609
|
+
strokeLinejoin: "round"
|
|
19610
|
+
},
|
|
19611
|
+
/* @__PURE__ */ import_react37.default.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
19612
|
+
/* @__PURE__ */ import_react37.default.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
19613
|
+
)
|
|
19614
|
+
)), /* @__PURE__ */ import_react37.default.createElement("style", null, `
|
|
19615
|
+
@keyframes float {
|
|
19616
|
+
0%,
|
|
19617
|
+
100% {
|
|
19618
|
+
transform: translateY(0px);
|
|
19619
|
+
}
|
|
19620
|
+
50% {
|
|
19621
|
+
transform: translateY(-8px);
|
|
19622
|
+
}
|
|
19623
|
+
}
|
|
19624
|
+
.animate-float {
|
|
19625
|
+
animation: float 4s ease-in-out infinite;
|
|
19626
|
+
}
|
|
19627
|
+
`));
|
|
19517
19628
|
}
|
|
19518
19629
|
|
|
19519
19630
|
// src/XViewScene.jsx
|
|
@@ -19667,12 +19778,12 @@ function XViewScene({
|
|
|
19667
19778
|
onUpgrade
|
|
19668
19779
|
}) {
|
|
19669
19780
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
19670
|
-
const { data: session, status } = (0,
|
|
19781
|
+
const { data: session, status } = (0, import_react39.useSession)();
|
|
19671
19782
|
const router = (0, import_navigation.useRouter)();
|
|
19672
19783
|
const searchParams = (0, import_navigation.useSearchParams)();
|
|
19673
19784
|
const focusNodeId = searchParams == null ? void 0 : searchParams.get("focus");
|
|
19674
19785
|
const focusAncestryId = searchParams == null ? void 0 : searchParams.get("ancestry");
|
|
19675
|
-
const viewParams = (0,
|
|
19786
|
+
const viewParams = (0, import_react38.useMemo)(() => {
|
|
19676
19787
|
if (encryptedConfig) {
|
|
19677
19788
|
const data = decryptData(encryptedConfig);
|
|
19678
19789
|
if (data && data.id && data.owner_id && data.type) {
|
|
@@ -19681,12 +19792,12 @@ function XViewScene({
|
|
|
19681
19792
|
}
|
|
19682
19793
|
return null;
|
|
19683
19794
|
}, [encryptedConfig, session]);
|
|
19684
|
-
(0,
|
|
19795
|
+
(0, import_react38.useEffect)(() => {
|
|
19685
19796
|
if (viewParams == null ? void 0 : viewParams.name) {
|
|
19686
19797
|
document.title = `${viewParams.name} - x.plore`;
|
|
19687
19798
|
}
|
|
19688
19799
|
}, [viewParams == null ? void 0 : viewParams.name]);
|
|
19689
|
-
(0,
|
|
19800
|
+
(0, import_react38.useEffect)(() => {
|
|
19690
19801
|
async function verifyPermission() {
|
|
19691
19802
|
if (!viewParams || !session || !check_user_permission) return;
|
|
19692
19803
|
const { id, type, owner_id } = viewParams;
|
|
@@ -19723,68 +19834,70 @@ function XViewScene({
|
|
|
19723
19834
|
setIsLoading(false);
|
|
19724
19835
|
}
|
|
19725
19836
|
}, [viewParams, session, status, check_user_permission]);
|
|
19726
|
-
const sceneConfigId = (0,
|
|
19727
|
-
const ownerId = (0,
|
|
19728
|
-
const dbSaveUrl = (0,
|
|
19837
|
+
const sceneConfigId = (0, import_react38.useMemo)(() => (viewParams == null ? void 0 : viewParams.id) || null, [viewParams]);
|
|
19838
|
+
const ownerId = (0, import_react38.useMemo)(() => (viewParams == null ? void 0 : viewParams.owner_id) || null, [viewParams]);
|
|
19839
|
+
const dbSaveUrl = (0, import_react38.useMemo)(() => {
|
|
19729
19840
|
if (ownerId && sceneConfigId) {
|
|
19730
19841
|
return `x_view_dbs/${ownerId}/${sceneConfigId}`;
|
|
19731
19842
|
}
|
|
19732
19843
|
return null;
|
|
19733
19844
|
}, [ownerId, sceneConfigId]);
|
|
19734
|
-
const sceneSaveUrl = (0,
|
|
19845
|
+
const sceneSaveUrl = (0, import_react38.useMemo)(() => {
|
|
19735
19846
|
if (ownerId && sceneConfigId) {
|
|
19736
19847
|
return `x_view_scenes/${ownerId}/${sceneConfigId}`;
|
|
19737
19848
|
}
|
|
19738
19849
|
return null;
|
|
19739
19850
|
}, [ownerId, sceneConfigId]);
|
|
19740
|
-
const ancestry_save_url = (0,
|
|
19851
|
+
const ancestry_save_url = (0, import_react38.useMemo)(() => {
|
|
19741
19852
|
if (ownerId && sceneConfigId) {
|
|
19742
19853
|
return `x_view_ancestry/${ownerId}/${sceneConfigId}`;
|
|
19743
19854
|
}
|
|
19744
19855
|
return null;
|
|
19745
19856
|
}, [ownerId, sceneConfigId]);
|
|
19746
|
-
const sceneDataRef = (0,
|
|
19747
|
-
const parentDataRef = (0,
|
|
19857
|
+
const sceneDataRef = (0, import_react38.useRef)(null);
|
|
19858
|
+
const parentDataRef = (0, import_react38.useRef)(null);
|
|
19748
19859
|
const graphDataRef = parentDataRef;
|
|
19749
|
-
const ancestryDataRef = (0,
|
|
19750
|
-
const [isLoading, setIsLoading] = (0,
|
|
19751
|
-
const [isProcessing, setIsProcessing] = (0,
|
|
19752
|
-
const [permissionStatus, setPermissionStatus] = (0,
|
|
19753
|
-
const [userPermissionRole, setUserPermissionRole] = (0,
|
|
19754
|
-
const [viewMembers, setViewMembers] = (0,
|
|
19755
|
-
const [isInitialized, setIsInitialized] = (0,
|
|
19756
|
-
const [sceneVersion, setSceneVersion] = (0,
|
|
19757
|
-
const [contextMenu, setContextMenu] = (0,
|
|
19860
|
+
const ancestryDataRef = (0, import_react38.useRef)(null);
|
|
19861
|
+
const [isLoading, setIsLoading] = (0, import_react38.useState)(true);
|
|
19862
|
+
const [isProcessing, setIsProcessing] = (0, import_react38.useState)(false);
|
|
19863
|
+
const [permissionStatus, setPermissionStatus] = (0, import_react38.useState)("loading");
|
|
19864
|
+
const [userPermissionRole, setUserPermissionRole] = (0, import_react38.useState)(null);
|
|
19865
|
+
const [viewMembers, setViewMembers] = (0, import_react38.useState)([]);
|
|
19866
|
+
const [isInitialized, setIsInitialized] = (0, import_react38.useState)(false);
|
|
19867
|
+
const [sceneVersion, setSceneVersion] = (0, import_react38.useState)(0);
|
|
19868
|
+
const [contextMenu, setContextMenu] = (0, import_react38.useState)({
|
|
19758
19869
|
visible: false,
|
|
19759
19870
|
x: 0,
|
|
19760
19871
|
y: 0,
|
|
19761
19872
|
nodeData: null
|
|
19762
19873
|
});
|
|
19763
|
-
const [multiContextMenu, setMultiContextMenu] = (0,
|
|
19874
|
+
const [multiContextMenu, setMultiContextMenu] = (0, import_react38.useState)({
|
|
19764
19875
|
visible: false,
|
|
19765
19876
|
x: 0,
|
|
19766
19877
|
y: 0,
|
|
19767
19878
|
nodeIds: null
|
|
19768
19879
|
});
|
|
19769
|
-
const [relationshipMenu, setRelationshipMenu] = (0,
|
|
19880
|
+
const [relationshipMenu, setRelationshipMenu] = (0, import_react38.useState)({
|
|
19770
19881
|
visible: false,
|
|
19771
19882
|
x: 0,
|
|
19772
19883
|
y: 0,
|
|
19773
19884
|
linkObject: null
|
|
19774
19885
|
});
|
|
19775
|
-
const [creationMode, setCreationMode] = (0,
|
|
19886
|
+
const [creationMode, setCreationMode] = (0, import_react38.useState)({
|
|
19776
19887
|
isActive: false,
|
|
19777
19888
|
sourceNodeData: null
|
|
19778
19889
|
});
|
|
19779
|
-
const [versionMode, setVersionMode] = (0,
|
|
19890
|
+
const [versionMode, setVersionMode] = (0, import_react38.useState)({
|
|
19780
19891
|
isActive: false,
|
|
19781
19892
|
sourceNodeData: null
|
|
19782
19893
|
});
|
|
19783
|
-
const [questMode, setQuestMode] = (0,
|
|
19784
|
-
const [processMode, setProcessMode] = (0,
|
|
19785
|
-
const
|
|
19786
|
-
const
|
|
19787
|
-
const [
|
|
19894
|
+
const [questMode, setQuestMode] = (0, import_react38.useState)({ isActive: false });
|
|
19895
|
+
const [processMode, setProcessMode] = (0, import_react38.useState)({ isActive: false });
|
|
19896
|
+
const longPressTimeoutRef = (0, import_react38.useRef)(null);
|
|
19897
|
+
const isLongPressTriggeredRef = (0, import_react38.useRef)(false);
|
|
19898
|
+
const [hasFocusedInitial, setHasFocusedInitial] = (0, import_react38.useState)(false);
|
|
19899
|
+
const [hasOpenedInitialAncestry, setHasOpenedInitialAncestry] = (0, import_react38.useState)(false);
|
|
19900
|
+
const [questTreeMode, setQuestTreeMode] = (0, import_react38.useState)({
|
|
19788
19901
|
isActive: false,
|
|
19789
19902
|
questNodeId: null,
|
|
19790
19903
|
questTempData: null,
|
|
@@ -19794,7 +19907,7 @@ function XViewScene({
|
|
|
19794
19907
|
isAddingNodes: false,
|
|
19795
19908
|
isAddingAbstractionNodes: false
|
|
19796
19909
|
});
|
|
19797
|
-
const [processTreeMode, setProcessTreeMode] = (0,
|
|
19910
|
+
const [processTreeMode, setProcessTreeMode] = (0, import_react38.useState)({
|
|
19798
19911
|
isActive: false,
|
|
19799
19912
|
processNodeId: null,
|
|
19800
19913
|
processTempData: null,
|
|
@@ -19804,7 +19917,7 @@ function XViewScene({
|
|
|
19804
19917
|
isAddingNodes: false,
|
|
19805
19918
|
isAddingAbstractionNodes: false
|
|
19806
19919
|
});
|
|
19807
|
-
const [ancestryMode, setAncestryMode] = (0,
|
|
19920
|
+
const [ancestryMode, setAncestryMode] = (0, import_react38.useState)({
|
|
19808
19921
|
isActive: false,
|
|
19809
19922
|
tree: null,
|
|
19810
19923
|
selectedParentId: null,
|
|
@@ -19815,45 +19928,45 @@ function XViewScene({
|
|
|
19815
19928
|
ancestryDescriptionSections: [],
|
|
19816
19929
|
isAddingNodes: false
|
|
19817
19930
|
});
|
|
19818
|
-
const [readingMode, setReadingMode] = (0,
|
|
19931
|
+
const [readingMode, setReadingMode] = (0, import_react38.useState)({
|
|
19819
19932
|
isActive: false,
|
|
19820
19933
|
ancestry: null,
|
|
19821
19934
|
branchStack: [],
|
|
19822
19935
|
autoAbstraction: false
|
|
19823
19936
|
});
|
|
19824
|
-
const [formPosition, setFormPosition] = (0,
|
|
19937
|
+
const [formPosition, setFormPosition] = (0, import_react38.useState)({
|
|
19825
19938
|
left: 16,
|
|
19826
19939
|
top: 16,
|
|
19827
19940
|
opacity: 0
|
|
19828
19941
|
});
|
|
19829
|
-
const [detailsNode, setDetailsNode] = (0,
|
|
19830
|
-
const [detailsLink, setDetailsLink] = (0,
|
|
19831
|
-
const [ancestryLinkDetails, setAncestryLinkDetails] = (0,
|
|
19832
|
-
const [imageViewer, setImageViewer] = (0,
|
|
19942
|
+
const [detailsNode, setDetailsNode] = (0, import_react38.useState)(null);
|
|
19943
|
+
const [detailsLink, setDetailsLink] = (0, import_react38.useState)(null);
|
|
19944
|
+
const [ancestryLinkDetails, setAncestryLinkDetails] = (0, import_react38.useState)(null);
|
|
19945
|
+
const [imageViewer, setImageViewer] = (0, import_react38.useState)({
|
|
19833
19946
|
visible: false,
|
|
19834
19947
|
images: [],
|
|
19835
19948
|
startIndex: 0
|
|
19836
19949
|
});
|
|
19837
|
-
const [editingAncestryRel, setEditingAncestryRel] = (0,
|
|
19950
|
+
const [editingAncestryRel, setEditingAncestryRel] = (0, import_react38.useState)({
|
|
19838
19951
|
visible: false,
|
|
19839
19952
|
data: null,
|
|
19840
19953
|
path: null
|
|
19841
19954
|
});
|
|
19842
|
-
const [isImportModalOpen, setIsImportModalOpen] = (0,
|
|
19843
|
-
const [importSuccessMessage, setImportSuccessMessage] = (0,
|
|
19844
|
-
const [invalidTargetError, setInvalidTargetError] = (0,
|
|
19845
|
-
const [highlightedNodeId, setHighlightedNodeId] = (0,
|
|
19846
|
-
const [isBoardsOpen, setIsBoardsOpen] = (0,
|
|
19847
|
-
const [boardItems, setBoardItems] = (0,
|
|
19848
|
-
const [isSidebarOpen, setIsSidebarOpen] = (0,
|
|
19849
|
-
const [isMilestoneManagerOpen, setIsMilestoneManagerOpen] = (0,
|
|
19850
|
-
const [nodeCounter, setNodeCounter] = (0,
|
|
19851
|
-
const [isUpgradeModalOpen, setIsUpgradeModalOpen] = (0,
|
|
19852
|
-
const [nodeLimit, setNodeLimit] = (0,
|
|
19853
|
-
const mountRef = (0,
|
|
19854
|
-
const tooltipRef = (0,
|
|
19855
|
-
const formRef = (0,
|
|
19856
|
-
const stateRef = (0,
|
|
19955
|
+
const [isImportModalOpen, setIsImportModalOpen] = (0, import_react38.useState)(false);
|
|
19956
|
+
const [importSuccessMessage, setImportSuccessMessage] = (0, import_react38.useState)("");
|
|
19957
|
+
const [invalidTargetError, setInvalidTargetError] = (0, import_react38.useState)(null);
|
|
19958
|
+
const [highlightedNodeId, setHighlightedNodeId] = (0, import_react38.useState)(null);
|
|
19959
|
+
const [isBoardsOpen, setIsBoardsOpen] = (0, import_react38.useState)(false);
|
|
19960
|
+
const [boardItems, setBoardItems] = (0, import_react38.useState)([]);
|
|
19961
|
+
const [isSidebarOpen, setIsSidebarOpen] = (0, import_react38.useState)(false);
|
|
19962
|
+
const [isMilestoneManagerOpen, setIsMilestoneManagerOpen] = (0, import_react38.useState)(false);
|
|
19963
|
+
const [nodeCounter, setNodeCounter] = (0, import_react38.useState)(0);
|
|
19964
|
+
const [isUpgradeModalOpen, setIsUpgradeModalOpen] = (0, import_react38.useState)(false);
|
|
19965
|
+
const [nodeLimit, setNodeLimit] = (0, import_react38.useState)(100);
|
|
19966
|
+
const mountRef = (0, import_react38.useRef)(null);
|
|
19967
|
+
const tooltipRef = (0, import_react38.useRef)(null);
|
|
19968
|
+
const formRef = (0, import_react38.useRef)(null);
|
|
19969
|
+
const stateRef = (0, import_react38.useRef)({
|
|
19857
19970
|
readMode: {
|
|
19858
19971
|
currentMaxIndex: 0,
|
|
19859
19972
|
progressMap: {}
|
|
@@ -19938,16 +20051,16 @@ function XViewScene({
|
|
|
19938
20051
|
minWidth: 320,
|
|
19939
20052
|
maxWidth: maxReadPanelW
|
|
19940
20053
|
});
|
|
19941
|
-
(0,
|
|
20054
|
+
(0, import_react38.useEffect)(() => {
|
|
19942
20055
|
stateRef.current.ancestry = ancestryMode;
|
|
19943
20056
|
}, [ancestryMode]);
|
|
19944
|
-
(0,
|
|
20057
|
+
(0, import_react38.useEffect)(() => {
|
|
19945
20058
|
stateRef.current.questTree = questTreeMode;
|
|
19946
20059
|
}, [questTreeMode]);
|
|
19947
|
-
(0,
|
|
20060
|
+
(0, import_react38.useEffect)(() => {
|
|
19948
20061
|
stateRef.current.processTree = processTreeMode;
|
|
19949
20062
|
}, [processTreeMode]);
|
|
19950
|
-
(0,
|
|
20063
|
+
(0, import_react38.useEffect)(() => {
|
|
19951
20064
|
var _a2, _b2;
|
|
19952
20065
|
if (!isInitialized) return;
|
|
19953
20066
|
const map = /* @__PURE__ */ new Map();
|
|
@@ -19972,11 +20085,10 @@ function XViewScene({
|
|
|
19972
20085
|
}
|
|
19973
20086
|
stateRef.current.nodeIdToParentFileMap = map;
|
|
19974
20087
|
}, [isInitialized, sceneVersion]);
|
|
19975
|
-
const handleNavigateBack = (0,
|
|
20088
|
+
const handleNavigateBack = (0, import_react38.useCallback)(() => {
|
|
19976
20089
|
const type = viewParams == null ? void 0 : viewParams.type;
|
|
19977
20090
|
const tab = type === "database" ? "datasets" : "views";
|
|
19978
20091
|
const targetUrl = `/dashboard/xview?tab=${tab}`;
|
|
19979
|
-
console.log("X-View: Navegando para o Dashboard", { type, tab, targetUrl });
|
|
19980
20092
|
try {
|
|
19981
20093
|
router.push(targetUrl);
|
|
19982
20094
|
} catch (e) {
|
|
@@ -19984,7 +20096,7 @@ function XViewScene({
|
|
|
19984
20096
|
window.location.href = targetUrl;
|
|
19985
20097
|
}
|
|
19986
20098
|
}, [router, viewParams]);
|
|
19987
|
-
const handleConfirmImport = (0,
|
|
20099
|
+
const handleConfirmImport = (0, import_react38.useCallback)(
|
|
19988
20100
|
async (importPayload) => {
|
|
19989
20101
|
var _a2, _b2;
|
|
19990
20102
|
let files = [];
|
|
@@ -20109,7 +20221,7 @@ function XViewScene({
|
|
|
20109
20221
|
add_new_parent_file_to_scene_at_firebase_action
|
|
20110
20222
|
]
|
|
20111
20223
|
);
|
|
20112
|
-
const handleSaveConfig = (0,
|
|
20224
|
+
const handleSaveConfig = (0, import_react38.useCallback)(
|
|
20113
20225
|
async (newConfig) => {
|
|
20114
20226
|
if (!sceneDataRef.current || !save_view_data || !sceneSaveUrl) return;
|
|
20115
20227
|
const updatedData = {
|
|
@@ -20129,7 +20241,7 @@ function XViewScene({
|
|
|
20129
20241
|
const handleOpenImageViewer = (images, startIndex) => {
|
|
20130
20242
|
setImageViewer({ visible: true, images, startIndex });
|
|
20131
20243
|
};
|
|
20132
|
-
const tweenToTarget = (0,
|
|
20244
|
+
const tweenToTarget = (0, import_react38.useCallback)(
|
|
20133
20245
|
(target, zoomFactor = 1, forcedDirection = null) => {
|
|
20134
20246
|
const {
|
|
20135
20247
|
camera: sceneCamera,
|
|
@@ -20159,7 +20271,7 @@ function XViewScene({
|
|
|
20159
20271
|
if (!t || typeof t.closest !== "function") return false;
|
|
20160
20272
|
return !!t.closest(".ui-overlay");
|
|
20161
20273
|
};
|
|
20162
|
-
const buildFullAncestryTree = (0,
|
|
20274
|
+
const buildFullAncestryTree = (0, import_react38.useCallback)(
|
|
20163
20275
|
(idTree, nodes, ancestries = []) => {
|
|
20164
20276
|
if (!idTree) return null;
|
|
20165
20277
|
const nodeMap = new Map(nodes.map((n) => [String(n.id), n]));
|
|
@@ -20246,7 +20358,7 @@ function XViewScene({
|
|
|
20246
20358
|
},
|
|
20247
20359
|
[]
|
|
20248
20360
|
);
|
|
20249
|
-
const handleActivateTimeline = (0,
|
|
20361
|
+
const handleActivateTimeline = (0, import_react38.useCallback)(() => {
|
|
20250
20362
|
const { nodeObjects, tweenGroup, timelineIntervalsGroup } = stateRef.current;
|
|
20251
20363
|
if (!nodeObjects || !tweenGroup || !timelineIntervalsGroup) return;
|
|
20252
20364
|
while (timelineIntervalsGroup.children.length > 0) {
|
|
@@ -20399,7 +20511,7 @@ function XViewScene({
|
|
|
20399
20511
|
tweenToTarget(center, zoomFactor);
|
|
20400
20512
|
}
|
|
20401
20513
|
}, [tweenToTarget]);
|
|
20402
|
-
const handleVersionTimeline = (0,
|
|
20514
|
+
const handleVersionTimeline = (0, import_react38.useCallback)(
|
|
20403
20515
|
(sourceMesh, versionMeshes) => {
|
|
20404
20516
|
const { tweenGroup, timelineIntervalsGroup } = stateRef.current;
|
|
20405
20517
|
if (!tweenGroup || !timelineIntervalsGroup || versionMeshes.length === 0)
|
|
@@ -20548,7 +20660,7 @@ function XViewScene({
|
|
|
20548
20660
|
},
|
|
20549
20661
|
[tweenToTarget]
|
|
20550
20662
|
);
|
|
20551
|
-
(0,
|
|
20663
|
+
(0, import_react38.useEffect)(() => {
|
|
20552
20664
|
async function fetchAllData(configPath, ownerId2) {
|
|
20553
20665
|
var _a2, _b2;
|
|
20554
20666
|
if (!get_scene_view_data) {
|
|
@@ -20599,18 +20711,6 @@ function XViewScene({
|
|
|
20599
20711
|
};
|
|
20600
20712
|
parentDataRef.current = sceneResponse.data.parent;
|
|
20601
20713
|
ancestryDataRef.current = sceneResponse.data.ancestry;
|
|
20602
|
-
console.log(
|
|
20603
|
-
"Console de sceneResponse.data.scene:",
|
|
20604
|
-
sceneDataRef.current
|
|
20605
|
-
);
|
|
20606
|
-
console.log(
|
|
20607
|
-
"Console de sceneResponse.data.parent:",
|
|
20608
|
-
parentDataRef.current
|
|
20609
|
-
);
|
|
20610
|
-
console.log(
|
|
20611
|
-
"Console de sceneResponse.data.ancestry:",
|
|
20612
|
-
ancestryDataRef.current
|
|
20613
|
-
);
|
|
20614
20714
|
setNodeCounter(sceneResponse.data.node_counter || 0);
|
|
20615
20715
|
if (sceneResponse.data.node_limit !== void 0) {
|
|
20616
20716
|
setNodeLimit(sceneResponse.data.node_limit);
|
|
@@ -20658,12 +20758,12 @@ function XViewScene({
|
|
|
20658
20758
|
focusNodeId,
|
|
20659
20759
|
focusAncestryId
|
|
20660
20760
|
]);
|
|
20661
|
-
const isNodeInView = (0,
|
|
20761
|
+
const isNodeInView = (0, import_react38.useCallback)((id) => {
|
|
20662
20762
|
const key = String(id);
|
|
20663
20763
|
const objs = stateRef.current.nodeObjects || {};
|
|
20664
20764
|
return !!objs[key];
|
|
20665
20765
|
}, []);
|
|
20666
|
-
const addOrUpdateNodeMesh = (0,
|
|
20766
|
+
const addOrUpdateNodeMesh = (0, import_react38.useCallback)(
|
|
20667
20767
|
(nodeData, position, suppressVersionUpdate = false, forceShowQuestDate = false, isTemplate = false) => {
|
|
20668
20768
|
const {
|
|
20669
20769
|
graphGroup,
|
|
@@ -20705,7 +20805,7 @@ function XViewScene({
|
|
|
20705
20805
|
},
|
|
20706
20806
|
[]
|
|
20707
20807
|
);
|
|
20708
|
-
const handleActivateReshapeLens = (0,
|
|
20808
|
+
const handleActivateReshapeLens = (0, import_react38.useCallback)(
|
|
20709
20809
|
({ type, columns, centerNodeId }) => {
|
|
20710
20810
|
const { nodeObjects, tweenGroup, camera, controls } = stateRef.current;
|
|
20711
20811
|
if (!nodeObjects || !tweenGroup || !camera || !controls) return;
|
|
@@ -20839,7 +20939,7 @@ function XViewScene({
|
|
|
20839
20939
|
},
|
|
20840
20940
|
[]
|
|
20841
20941
|
);
|
|
20842
|
-
const handleActivateQuestLens = (0,
|
|
20942
|
+
const handleActivateQuestLens = (0, import_react38.useCallback)(
|
|
20843
20943
|
({ assigneeId, status: status2, milestoneId }) => {
|
|
20844
20944
|
var _a2;
|
|
20845
20945
|
const { nodeObjects, tweenGroup, graphGroup } = stateRef.current;
|
|
@@ -21061,7 +21161,7 @@ function XViewScene({
|
|
|
21061
21161
|
},
|
|
21062
21162
|
[addOrUpdateNodeMesh]
|
|
21063
21163
|
);
|
|
21064
|
-
(0,
|
|
21164
|
+
(0, import_react38.useEffect)(() => {
|
|
21065
21165
|
if (!isInitialized || !sceneDataRef.current) return;
|
|
21066
21166
|
const currentMount = mountRef.current;
|
|
21067
21167
|
if (!currentMount) return;
|
|
@@ -21090,11 +21190,17 @@ function XViewScene({
|
|
|
21090
21190
|
renderer.outputColorSpace = THREE3.SRGBColorSpace;
|
|
21091
21191
|
renderer.toneMapping = THREE3.ACESFilmicToneMapping;
|
|
21092
21192
|
renderer.toneMappingExposure = 1.2;
|
|
21193
|
+
currentMount.style.touchAction = "none";
|
|
21194
|
+
renderer.domElement.style.touchAction = "none";
|
|
21093
21195
|
currentMount.appendChild(renderer.domElement);
|
|
21094
21196
|
stateRef.current.renderer = renderer;
|
|
21095
21197
|
const controls = new import_OrbitControls.OrbitControls(camera, renderer.domElement);
|
|
21096
21198
|
controls.enableDamping = true;
|
|
21097
21199
|
controls.dampingFactor = 0.05;
|
|
21200
|
+
controls.touches = {
|
|
21201
|
+
ONE: THREE3.TOUCH.ROTATE,
|
|
21202
|
+
TWO: THREE3.TOUCH.DOLLY_PAN
|
|
21203
|
+
};
|
|
21098
21204
|
stateRef.current.controls = controls;
|
|
21099
21205
|
scene.add(new THREE3.AmbientLight(16777215, 0.1));
|
|
21100
21206
|
const directionalLight = new THREE3.DirectionalLight(16777215, 0.2);
|
|
@@ -21319,21 +21425,58 @@ function XViewScene({
|
|
|
21319
21425
|
stateRef.current.dragCandidate = null;
|
|
21320
21426
|
return;
|
|
21321
21427
|
}
|
|
21322
|
-
if (event.button !== 0) return;
|
|
21428
|
+
if (event.button !== 0 && event.pointerType !== "touch") return;
|
|
21323
21429
|
if (picked && !stateRef.current.ancestry.isActive) {
|
|
21324
21430
|
stateRef.current.controls.enabled = false;
|
|
21325
21431
|
}
|
|
21326
21432
|
stateRef.current.pointerDown = {
|
|
21327
21433
|
isDown: true,
|
|
21328
21434
|
x: event.clientX,
|
|
21329
|
-
y: event.clientY
|
|
21435
|
+
y: event.clientY,
|
|
21436
|
+
pointerType: event.pointerType
|
|
21330
21437
|
};
|
|
21331
21438
|
stateRef.current.dragCandidate = picked;
|
|
21439
|
+
if (event.pointerType === "touch" || event.pointerType === "pen") {
|
|
21440
|
+
if (longPressTimeoutRef.current) {
|
|
21441
|
+
clearTimeout(longPressTimeoutRef.current);
|
|
21442
|
+
}
|
|
21443
|
+
isLongPressTriggeredRef.current = false;
|
|
21444
|
+
if (picked) {
|
|
21445
|
+
const touchX = event.clientX;
|
|
21446
|
+
const touchY = event.clientY;
|
|
21447
|
+
longPressTimeoutRef.current = setTimeout(() => {
|
|
21448
|
+
isLongPressTriggeredRef.current = true;
|
|
21449
|
+
if (typeof navigator !== "undefined" && navigator.vibrate) {
|
|
21450
|
+
navigator.vibrate(40);
|
|
21451
|
+
}
|
|
21452
|
+
setContextMenu({
|
|
21453
|
+
visible: true,
|
|
21454
|
+
x: touchX,
|
|
21455
|
+
y: touchY,
|
|
21456
|
+
nodeData: picked.userData
|
|
21457
|
+
});
|
|
21458
|
+
setMultiContextMenu((prev) => ({ ...prev, visible: false }));
|
|
21459
|
+
setRelationshipMenu((prev) => ({ ...prev, visible: false }));
|
|
21460
|
+
setDetailsNode(null);
|
|
21461
|
+
}, 450);
|
|
21462
|
+
}
|
|
21463
|
+
}
|
|
21332
21464
|
}
|
|
21333
21465
|
function onPointerMove(event) {
|
|
21334
21466
|
if (stateRef.current.camera) stateRef.current.camera.layers.enableAll();
|
|
21335
21467
|
if (isFromUiOverlay(event)) return;
|
|
21336
21468
|
setMouseFromEvent(event);
|
|
21469
|
+
if (stateRef.current.pointerDown.isDown) {
|
|
21470
|
+
const dx = event.clientX - stateRef.current.pointerDown.x;
|
|
21471
|
+
const dy = event.clientY - stateRef.current.pointerDown.y;
|
|
21472
|
+
const dist = Math.hypot(dx, dy);
|
|
21473
|
+
if (dist > (x_view_config.DRAG_THRESHOLD_PX || 5)) {
|
|
21474
|
+
if (longPressTimeoutRef.current) {
|
|
21475
|
+
clearTimeout(longPressTimeoutRef.current);
|
|
21476
|
+
longPressTimeoutRef.current = null;
|
|
21477
|
+
}
|
|
21478
|
+
}
|
|
21479
|
+
}
|
|
21337
21480
|
if (stateRef.current.isDragging && stateRef.current.draggedNode) {
|
|
21338
21481
|
const raycaster2 = new THREE3.Raycaster();
|
|
21339
21482
|
raycaster2.setFromCamera(mouse, camera);
|
|
@@ -21376,7 +21519,7 @@ function XViewScene({
|
|
|
21376
21519
|
return;
|
|
21377
21520
|
}
|
|
21378
21521
|
if (stateRef.current.creation.isActive) return;
|
|
21379
|
-
if (stateRef.current.pointerDown.isDown && stateRef.current.dragCandidate) {
|
|
21522
|
+
if (stateRef.current.pointerDown.isDown && stateRef.current.dragCandidate && !isLongPressTriggeredRef.current) {
|
|
21380
21523
|
const dx = event.clientX - stateRef.current.pointerDown.x;
|
|
21381
21524
|
const dy = event.clientY - stateRef.current.pointerDown.y;
|
|
21382
21525
|
if (Math.hypot(dx, dy) > x_view_config.DRAG_THRESHOLD_PX) {
|
|
@@ -21408,6 +21551,17 @@ function XViewScene({
|
|
|
21408
21551
|
async function onPointerUp(event) {
|
|
21409
21552
|
var _a2, _b2, _c2;
|
|
21410
21553
|
if (stateRef.current.camera) stateRef.current.camera.layers.enableAll();
|
|
21554
|
+
if (longPressTimeoutRef.current) {
|
|
21555
|
+
clearTimeout(longPressTimeoutRef.current);
|
|
21556
|
+
longPressTimeoutRef.current = null;
|
|
21557
|
+
}
|
|
21558
|
+
if (isLongPressTriggeredRef.current) {
|
|
21559
|
+
isLongPressTriggeredRef.current = false;
|
|
21560
|
+
stateRef.current.pointerDown.isDown = false;
|
|
21561
|
+
stateRef.current.dragCandidate = null;
|
|
21562
|
+
stateRef.current.controls.enabled = true;
|
|
21563
|
+
return;
|
|
21564
|
+
}
|
|
21411
21565
|
if (isFromUiOverlay(event)) return;
|
|
21412
21566
|
const {
|
|
21413
21567
|
connection,
|
|
@@ -21642,7 +21796,7 @@ function XViewScene({
|
|
|
21642
21796
|
stateRef.current.dragCandidate = null;
|
|
21643
21797
|
return;
|
|
21644
21798
|
}
|
|
21645
|
-
if (event.button === 0 && !stateRef.current.creation.isActive && stateRef.current.pointerDown.isDown) {
|
|
21799
|
+
if ((event.button === 0 || event.pointerType === "touch") && !stateRef.current.creation.isActive && stateRef.current.pointerDown.isDown) {
|
|
21646
21800
|
setMouseFromEvent(event);
|
|
21647
21801
|
const clickedNode = stateRef.current.dragCandidate || tryPickNode();
|
|
21648
21802
|
stateRef.current.dragCandidate = null;
|
|
@@ -21651,6 +21805,9 @@ function XViewScene({
|
|
|
21651
21805
|
stateRef.current.selectedNodes.clear();
|
|
21652
21806
|
}
|
|
21653
21807
|
if (clickedNode) {
|
|
21808
|
+
setContextMenu((prev) => prev.visible ? { ...prev, visible: false } : prev);
|
|
21809
|
+
setMultiContextMenu((prev) => prev.visible ? { ...prev, visible: false } : prev);
|
|
21810
|
+
setRelationshipMenu((prev) => prev.visible ? { ...prev, visible: false } : prev);
|
|
21654
21811
|
setDetailsNode({ ...clickedNode.userData });
|
|
21655
21812
|
setDetailsLink(null);
|
|
21656
21813
|
return;
|
|
@@ -21686,6 +21843,14 @@ function XViewScene({
|
|
|
21686
21843
|
if (stateRef.current.camera) stateRef.current.camera.layers.enableAll();
|
|
21687
21844
|
if (isFromUiOverlay(event)) return;
|
|
21688
21845
|
event.preventDefault();
|
|
21846
|
+
if (longPressTimeoutRef.current) {
|
|
21847
|
+
clearTimeout(longPressTimeoutRef.current);
|
|
21848
|
+
longPressTimeoutRef.current = null;
|
|
21849
|
+
}
|
|
21850
|
+
isLongPressTriggeredRef.current = true;
|
|
21851
|
+
stateRef.current.pointerDown.isDown = false;
|
|
21852
|
+
stateRef.current.dragCandidate = null;
|
|
21853
|
+
setDetailsNode(null);
|
|
21689
21854
|
if (stateRef.current.creation.isActive || stateRef.current.connection.isActive || stateRef.current.relink.isActive)
|
|
21690
21855
|
return;
|
|
21691
21856
|
setMouseFromEvent(event);
|
|
@@ -21986,7 +22151,7 @@ function XViewScene({
|
|
|
21986
22151
|
get_scene_view_data,
|
|
21987
22152
|
save_view_data
|
|
21988
22153
|
]);
|
|
21989
|
-
const handleGhostNodeImageChange = (0,
|
|
22154
|
+
const handleGhostNodeImageChange = (0, import_react38.useCallback)((useImage, imageUrl) => {
|
|
21990
22155
|
const {
|
|
21991
22156
|
node: ghostNode,
|
|
21992
22157
|
line: ghostLine,
|
|
@@ -22034,7 +22199,7 @@ function XViewScene({
|
|
|
22034
22199
|
aura: newGhostNode.getObjectByName("aura")
|
|
22035
22200
|
};
|
|
22036
22201
|
}, []);
|
|
22037
|
-
const handleGhostNodeIntensityChange = (0,
|
|
22202
|
+
const handleGhostNodeIntensityChange = (0, import_react38.useCallback)((newIntensity) => {
|
|
22038
22203
|
const { node: ghostNode, aura: ghostAura } = stateRef.current.ghostElements;
|
|
22039
22204
|
if (!ghostNode) return;
|
|
22040
22205
|
const adjustedIntensity = newIntensity + MIN_VISIBILITY_INTENSITY;
|
|
@@ -22055,7 +22220,7 @@ function XViewScene({
|
|
|
22055
22220
|
ghostAura.material.opacity = Math.min(0.8, newIntensity * 0.15);
|
|
22056
22221
|
}
|
|
22057
22222
|
}, []);
|
|
22058
|
-
const handleDetailNodeIntensityChange = (0,
|
|
22223
|
+
const handleDetailNodeIntensityChange = (0, import_react38.useCallback)(
|
|
22059
22224
|
(nodeId, newIntensity) => {
|
|
22060
22225
|
const mesh = stateRef.current.nodeObjects[String(nodeId)];
|
|
22061
22226
|
if (!mesh) return;
|
|
@@ -22211,7 +22376,7 @@ function XViewScene({
|
|
|
22211
22376
|
mountRef.current.style.cursor = "default";
|
|
22212
22377
|
}
|
|
22213
22378
|
};
|
|
22214
|
-
const handleAncestryTreeUpdate = (0,
|
|
22379
|
+
const handleAncestryTreeUpdate = (0, import_react38.useCallback)((newTree, extraData = null) => {
|
|
22215
22380
|
setAncestryMode((prev) => {
|
|
22216
22381
|
const prevTreeStr = JSON.stringify(prev.tree);
|
|
22217
22382
|
const newTreeStr = JSON.stringify(newTree);
|
|
@@ -22234,7 +22399,7 @@ function XViewScene({
|
|
|
22234
22399
|
};
|
|
22235
22400
|
});
|
|
22236
22401
|
}, []);
|
|
22237
|
-
const actionHandlerContext = (0,
|
|
22402
|
+
const actionHandlerContext = (0, import_react38.useMemo)(
|
|
22238
22403
|
() => {
|
|
22239
22404
|
var _a2;
|
|
22240
22405
|
return {
|
|
@@ -22346,7 +22511,7 @@ function XViewScene({
|
|
|
22346
22511
|
const handleStartVersioning = (nodeData) => {
|
|
22347
22512
|
userActionHandlers.handleStartVersioning(actionHandlerContext, nodeData);
|
|
22348
22513
|
};
|
|
22349
|
-
const handleStartQuestQuick = (0,
|
|
22514
|
+
const handleStartQuestQuick = (0, import_react38.useCallback)(
|
|
22350
22515
|
(questNode) => {
|
|
22351
22516
|
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
22352
22517
|
if (!questNode || !actionHandlerContext) return;
|
|
@@ -22428,7 +22593,7 @@ function XViewScene({
|
|
|
22428
22593
|
},
|
|
22429
22594
|
[session, actionHandlerContext]
|
|
22430
22595
|
);
|
|
22431
|
-
const handleFinishQuestQuick = (0,
|
|
22596
|
+
const handleFinishQuestQuick = (0, import_react38.useCallback)(
|
|
22432
22597
|
(questNode) => {
|
|
22433
22598
|
var _a2, _b2, _c2, _d2, _e2, _f2, _g2;
|
|
22434
22599
|
if (!questNode || !actionHandlerContext) return;
|
|
@@ -22578,7 +22743,7 @@ function XViewScene({
|
|
|
22578
22743
|
},
|
|
22579
22744
|
[session, actionHandlerContext, viewMembers, detailsNode]
|
|
22580
22745
|
);
|
|
22581
|
-
const handleCancelQuest = (0,
|
|
22746
|
+
const handleCancelQuest = (0, import_react38.useCallback)(() => {
|
|
22582
22747
|
const { graphGroup, ghostElements } = stateRef.current;
|
|
22583
22748
|
if (ghostElements.node && graphGroup) {
|
|
22584
22749
|
if (ghostElements.node.userData.labelObject) {
|
|
@@ -22600,7 +22765,7 @@ function XViewScene({
|
|
|
22600
22765
|
stateRef.current.ghostElements = { node: null, line: null, aura: null };
|
|
22601
22766
|
setQuestMode({ isActive: false });
|
|
22602
22767
|
}, []);
|
|
22603
|
-
const handleCancelProcess = (0,
|
|
22768
|
+
const handleCancelProcess = (0, import_react38.useCallback)(() => {
|
|
22604
22769
|
const { graphGroup, ghostElements } = stateRef.current;
|
|
22605
22770
|
if (ghostElements.node && graphGroup) {
|
|
22606
22771
|
if (ghostElements.node.userData.labelObject) {
|
|
@@ -22953,7 +23118,7 @@ function XViewScene({
|
|
|
22953
23118
|
alert("Ocorreu um erro ao criar o Processo.");
|
|
22954
23119
|
}
|
|
22955
23120
|
};
|
|
22956
|
-
const handleClearAncestryVisuals = (0,
|
|
23121
|
+
const handleClearAncestryVisuals = (0, import_react38.useCallback)((ancestryId) => {
|
|
22957
23122
|
const { renderedAncestries, ancestryGroup } = stateRef.current;
|
|
22958
23123
|
const renderIndex = renderedAncestries.findIndex(
|
|
22959
23124
|
(a) => String(a.id) === String(ancestryId)
|
|
@@ -22971,7 +23136,7 @@ function XViewScene({
|
|
|
22971
23136
|
);
|
|
22972
23137
|
}
|
|
22973
23138
|
}, []);
|
|
22974
|
-
const handleRenderAncestry = (0,
|
|
23139
|
+
const handleRenderAncestry = (0, import_react38.useCallback)(
|
|
22975
23140
|
async (ancestryObject, allowedSectionIds = null, activeSectionIdForFocus = null, baseRotation = 0, forceReprocess = true) => {
|
|
22976
23141
|
setContextMenu(
|
|
22977
23142
|
(prev) => prev.visible ? { ...prev, visible: false } : prev
|
|
@@ -22991,11 +23156,6 @@ function XViewScene({
|
|
|
22991
23156
|
}
|
|
22992
23157
|
});
|
|
22993
23158
|
}
|
|
22994
|
-
console.log("[handleRenderAncestry] Start", {
|
|
22995
|
-
ancestryId: ancestryObject.ancestry_id,
|
|
22996
|
-
allowedSectionIds: allowedSectionIds ? Array.from(allowedSectionIds) : null,
|
|
22997
|
-
activeSectionIdForFocus
|
|
22998
|
-
});
|
|
22999
23159
|
const { ancestryGroup, nodeObjects, renderer, renderedAncestries } = stateRef.current;
|
|
23000
23160
|
const currentRenderLimit = stateRef.current.maxAncestryRenderIndex || 0;
|
|
23001
23161
|
const isFullRenderRequest = !normalizedAllowedIds;
|
|
@@ -23293,11 +23453,6 @@ function XViewScene({
|
|
|
23293
23453
|
let currentAnchorPosition = currentAnchorMesh.userData.id ? targetPositionsCache.get(String(currentAnchorMesh.userData.id)) || currentAnchorMesh.position : currentAnchorMesh.position;
|
|
23294
23454
|
for (const section of sections) {
|
|
23295
23455
|
const deveRenderizar = checkShouldRender(section);
|
|
23296
|
-
console.log("[handleRenderAncestry] Section check:", {
|
|
23297
|
-
id: section.id,
|
|
23298
|
-
numericId: section.section_numeric_id,
|
|
23299
|
-
deveRenderizar
|
|
23300
|
-
});
|
|
23301
23456
|
if (deveRenderizar) {
|
|
23302
23457
|
const sectionNodes = section.children || [];
|
|
23303
23458
|
if (sectionNodes.length > 0) {
|
|
@@ -23475,7 +23630,7 @@ function XViewScene({
|
|
|
23475
23630
|
ancestryMode.isActive
|
|
23476
23631
|
]
|
|
23477
23632
|
);
|
|
23478
|
-
const handleRenderAbstractionTree = (0,
|
|
23633
|
+
const handleRenderAbstractionTree = (0, import_react38.useCallback)(
|
|
23479
23634
|
(ancestryObject, targetNodeId = null, focusNodeId2 = null) => {
|
|
23480
23635
|
setContextMenu(
|
|
23481
23636
|
(prev) => prev.visible ? { ...prev, visible: false } : prev
|
|
@@ -23584,7 +23739,7 @@ function XViewScene({
|
|
|
23584
23739
|
handleClearAncestryVisuals
|
|
23585
23740
|
]
|
|
23586
23741
|
);
|
|
23587
|
-
const handleReadModeBranchNav = (0,
|
|
23742
|
+
const handleReadModeBranchNav = (0, import_react38.useCallback)(
|
|
23588
23743
|
(nodeId, action, direction = "right") => {
|
|
23589
23744
|
const { ancestry, branchStack } = readingMode;
|
|
23590
23745
|
if (!ancestry || !ancestry.tree) return;
|
|
@@ -23762,13 +23917,13 @@ function XViewScene({
|
|
|
23762
23917
|
},
|
|
23763
23918
|
[readingMode, handleRenderAncestry, buildFullAncestryTree, tweenToTarget]
|
|
23764
23919
|
);
|
|
23765
|
-
const handleReadModeHighlight = (0,
|
|
23920
|
+
const handleReadModeHighlight = (0, import_react38.useCallback)((nodeId) => {
|
|
23766
23921
|
if (stateRef.current.highlightedNodeId !== nodeId) {
|
|
23767
23922
|
stateRef.current.highlightedNodeId = nodeId;
|
|
23768
23923
|
}
|
|
23769
23924
|
setHighlightedNodeId(nodeId);
|
|
23770
23925
|
}, []);
|
|
23771
|
-
const activeNodeBranches = (0,
|
|
23926
|
+
const activeNodeBranches = (0, import_react38.useMemo)(() => {
|
|
23772
23927
|
if (!highlightedNodeId || !readingMode.ancestry || !readingMode.ancestry.tree)
|
|
23773
23928
|
return null;
|
|
23774
23929
|
const fullTree = buildFullAncestryTree(
|
|
@@ -23812,7 +23967,7 @@ function XViewScene({
|
|
|
23812
23967
|
readingMode.branchStack,
|
|
23813
23968
|
ancestryDataRef.current
|
|
23814
23969
|
]);
|
|
23815
|
-
const backNavigationInfo = (0,
|
|
23970
|
+
const backNavigationInfo = (0, import_react38.useMemo)(() => {
|
|
23816
23971
|
const { branchStack } = readingMode;
|
|
23817
23972
|
if (!branchStack || branchStack.length === 0) return null;
|
|
23818
23973
|
const lastStep = branchStack[branchStack.length - 1];
|
|
@@ -23823,7 +23978,7 @@ function XViewScene({
|
|
|
23823
23978
|
name: "Voltar para anterior"
|
|
23824
23979
|
};
|
|
23825
23980
|
}, [readingMode.branchStack]);
|
|
23826
|
-
const getReadModeDisplayContext = (0,
|
|
23981
|
+
const getReadModeDisplayContext = (0, import_react38.useMemo)(() => {
|
|
23827
23982
|
const { ancestry, branchStack } = readingMode;
|
|
23828
23983
|
if (!ancestry) return null;
|
|
23829
23984
|
if (branchStack.length === 0) {
|
|
@@ -23866,7 +24021,7 @@ function XViewScene({
|
|
|
23866
24021
|
customProperties: branchProps
|
|
23867
24022
|
};
|
|
23868
24023
|
}, [readingMode, buildFullAncestryTree, ancestryDataRef.current]);
|
|
23869
|
-
const readModeAbstractionTree = (0,
|
|
24024
|
+
const readModeAbstractionTree = (0, import_react38.useMemo)(() => {
|
|
23870
24025
|
if (!readingMode.isActive || !readingMode.ancestry || !readingMode.ancestry.abstraction_tree) {
|
|
23871
24026
|
return null;
|
|
23872
24027
|
}
|
|
@@ -23885,7 +24040,7 @@ function XViewScene({
|
|
|
23885
24040
|
buildFullAncestryTree,
|
|
23886
24041
|
sceneVersion
|
|
23887
24042
|
]);
|
|
23888
|
-
const handleStartReadingAncestry = (0,
|
|
24043
|
+
const handleStartReadingAncestry = (0, import_react38.useCallback)(
|
|
23889
24044
|
async (ancestryObject, renderMode = "full") => {
|
|
23890
24045
|
setContextMenu(
|
|
23891
24046
|
(prev) => prev.visible ? { ...prev, visible: false } : prev
|
|
@@ -23928,7 +24083,7 @@ function XViewScene({
|
|
|
23928
24083
|
},
|
|
23929
24084
|
[handleRenderAncestry, handleRenderAbstractionTree]
|
|
23930
24085
|
);
|
|
23931
|
-
const handleReadModeSectionChange = (0,
|
|
24086
|
+
const handleReadModeSectionChange = (0, import_react38.useCallback)(
|
|
23932
24087
|
(activeSectionId) => {
|
|
23933
24088
|
const { ancestry, branchStack } = readingMode;
|
|
23934
24089
|
if (!ancestry || !readingMode.isActive) return;
|
|
@@ -24013,10 +24168,10 @@ function XViewScene({
|
|
|
24013
24168
|
ancestryDataRef.current
|
|
24014
24169
|
]
|
|
24015
24170
|
);
|
|
24016
|
-
const handleCloseReadMode = (0,
|
|
24171
|
+
const handleCloseReadMode = (0, import_react38.useCallback)(() => {
|
|
24017
24172
|
setReadingMode({ isActive: false, ancestry: null, branchStack: [] });
|
|
24018
24173
|
}, []);
|
|
24019
|
-
const handleAncestrySectionChange = (0,
|
|
24174
|
+
const handleAncestrySectionChange = (0, import_react38.useCallback)(
|
|
24020
24175
|
(activeSectionId, ancestryOverride = null, rotation = 0) => {
|
|
24021
24176
|
var _a2, _b2;
|
|
24022
24177
|
const currentMode = stateRef.current.ancestry;
|
|
@@ -24078,7 +24233,7 @@ function XViewScene({
|
|
|
24078
24233
|
},
|
|
24079
24234
|
[handleRenderAncestry]
|
|
24080
24235
|
);
|
|
24081
|
-
const handleEditAncestry = (0,
|
|
24236
|
+
const handleEditAncestry = (0, import_react38.useCallback)(
|
|
24082
24237
|
async (ancestryObject) => {
|
|
24083
24238
|
setContextMenu(
|
|
24084
24239
|
(prev) => prev.visible ? { ...prev, visible: false } : prev
|
|
@@ -24133,7 +24288,7 @@ function XViewScene({
|
|
|
24133
24288
|
const handleSelectAncestryParent = (nodeId) => {
|
|
24134
24289
|
setAncestryMode((prev) => ({ ...prev, selectedParentId: nodeId }));
|
|
24135
24290
|
};
|
|
24136
|
-
const handleRemoveFromAncestry = (0,
|
|
24291
|
+
const handleRemoveFromAncestry = (0, import_react38.useCallback)((pathToRemove) => {
|
|
24137
24292
|
if (!Array.isArray(pathToRemove) || pathToRemove.length === 0) {
|
|
24138
24293
|
console.warn("Tentativa de remover a raiz ou caminho inv\xE1lido.");
|
|
24139
24294
|
return;
|
|
@@ -24158,17 +24313,11 @@ function XViewScene({
|
|
|
24158
24313
|
return { ...prev, tree: newTree };
|
|
24159
24314
|
});
|
|
24160
24315
|
}, []);
|
|
24161
|
-
const handleSaveAncestry = (0,
|
|
24316
|
+
const handleSaveAncestry = (0, import_react38.useCallback)(
|
|
24162
24317
|
async (ancestryName, ancestryDescription, ancestrySections, keepOpen = false, treeOverride = null, ancestryCustomProps = {}) => {
|
|
24163
|
-
var _a2
|
|
24318
|
+
var _a2;
|
|
24164
24319
|
const treeToUse = treeOverride || ancestryMode.tree;
|
|
24165
24320
|
const { isEditMode, currentAncestryId } = ancestryMode;
|
|
24166
|
-
console.log("[handleSaveAncestry] received:", {
|
|
24167
|
-
name: ancestryName,
|
|
24168
|
-
descLength: ancestryDescription == null ? void 0 : ancestryDescription.length,
|
|
24169
|
-
sectionsCount: ancestrySections == null ? void 0 : ancestrySections.length,
|
|
24170
|
-
treeRoot: (_a2 = treeToUse.node) == null ? void 0 : _a2.id
|
|
24171
|
-
});
|
|
24172
24321
|
if (!treeToUse || !treeToUse.node) {
|
|
24173
24322
|
alert(
|
|
24174
24323
|
"Erro: A estrutura da ancestralidade \xE9 inv\xE1lida (Node raiz ausente)."
|
|
@@ -24373,7 +24522,7 @@ function XViewScene({
|
|
|
24373
24522
|
currentAncestryId: ancestryObjectToSave.ancestry_id
|
|
24374
24523
|
}));
|
|
24375
24524
|
}
|
|
24376
|
-
if (readingMode.isActive && ((
|
|
24525
|
+
if (readingMode.isActive && ((_a2 = readingMode.ancestry) == null ? void 0 : _a2.ancestry_id) === ancestryObjectToSave.ancestry_id) {
|
|
24377
24526
|
setReadingMode((prev) => ({
|
|
24378
24527
|
...prev,
|
|
24379
24528
|
ancestry: ancestryObjectToSave
|
|
@@ -24432,7 +24581,7 @@ function XViewScene({
|
|
|
24432
24581
|
});
|
|
24433
24582
|
setEditingAncestryRel({ visible: false, data: null, path: null });
|
|
24434
24583
|
};
|
|
24435
|
-
const handleDeleteAncestry = (0,
|
|
24584
|
+
const handleDeleteAncestry = (0, import_react38.useCallback)(
|
|
24436
24585
|
async (ancestryIdToDelete) => {
|
|
24437
24586
|
if (!ancestryIdToDelete) {
|
|
24438
24587
|
alert("ID da ancestralidade n\xE3o encontrado.");
|
|
@@ -24566,19 +24715,19 @@ function XViewScene({
|
|
|
24566
24715
|
},
|
|
24567
24716
|
[save_view_data, delete_file_action]
|
|
24568
24717
|
);
|
|
24569
|
-
const handleOpenBoards = (0,
|
|
24718
|
+
const handleOpenBoards = (0, import_react38.useCallback)(() => {
|
|
24570
24719
|
setIsBoardsOpen(true);
|
|
24571
24720
|
}, []);
|
|
24572
|
-
const allAvailableNodes = (0,
|
|
24721
|
+
const allAvailableNodes = (0, import_react38.useMemo)(() => {
|
|
24573
24722
|
if (!parentDataRef.current) return [];
|
|
24574
24723
|
return Object.values(parentDataRef.current).flatMap(
|
|
24575
24724
|
(fileData) => fileData.nodes || []
|
|
24576
24725
|
);
|
|
24577
24726
|
}, [sceneVersion, isInitialized]);
|
|
24578
|
-
const allAvailableAncestries = (0,
|
|
24727
|
+
const allAvailableAncestries = (0, import_react38.useMemo)(() => {
|
|
24579
24728
|
return ancestryDataRef.current || [];
|
|
24580
24729
|
}, [sceneVersion, isInitialized]);
|
|
24581
|
-
const handleFocusNode = (0,
|
|
24730
|
+
const handleFocusNode = (0, import_react38.useCallback)(
|
|
24582
24731
|
(nodeData) => {
|
|
24583
24732
|
var _a2;
|
|
24584
24733
|
if (!nodeData) return;
|
|
@@ -24594,7 +24743,7 @@ function XViewScene({
|
|
|
24594
24743
|
},
|
|
24595
24744
|
[tweenToTarget]
|
|
24596
24745
|
);
|
|
24597
|
-
const handleOpenReference = (0,
|
|
24746
|
+
const handleOpenReference = (0, import_react38.useCallback)(
|
|
24598
24747
|
(referenceData) => {
|
|
24599
24748
|
const { type, id } = referenceData;
|
|
24600
24749
|
if (type === "node") {
|
|
@@ -24630,7 +24779,7 @@ function XViewScene({
|
|
|
24630
24779
|
handleFocusNode
|
|
24631
24780
|
]
|
|
24632
24781
|
);
|
|
24633
|
-
const handleSelectAncestryFromBoard = (0,
|
|
24782
|
+
const handleSelectAncestryFromBoard = (0, import_react38.useCallback)(
|
|
24634
24783
|
(item) => {
|
|
24635
24784
|
setIsBoardsOpen(false);
|
|
24636
24785
|
setIsSidebarOpen(false);
|
|
@@ -24642,7 +24791,7 @@ function XViewScene({
|
|
|
24642
24791
|
},
|
|
24643
24792
|
[handleStartReadingAncestry, handleOpenReference]
|
|
24644
24793
|
);
|
|
24645
|
-
const handleSaveBoards = (0,
|
|
24794
|
+
const handleSaveBoards = (0, import_react38.useCallback)(
|
|
24646
24795
|
async (boardItems2) => {
|
|
24647
24796
|
if (!sceneConfigId || !viewParams || !session) return;
|
|
24648
24797
|
const sceneType = (viewParams.type || "").toLowerCase().includes("database") ? "database" : "view";
|
|
@@ -24656,7 +24805,7 @@ function XViewScene({
|
|
|
24656
24805
|
},
|
|
24657
24806
|
[sceneConfigId, viewParams, session, save_boards_action, ownerId]
|
|
24658
24807
|
);
|
|
24659
|
-
const existingNodeTypes = (0,
|
|
24808
|
+
const existingNodeTypes = (0, import_react38.useMemo)(() => {
|
|
24660
24809
|
if (!parentDataRef.current) {
|
|
24661
24810
|
return [];
|
|
24662
24811
|
}
|
|
@@ -24668,7 +24817,7 @@ function XViewScene({
|
|
|
24668
24817
|
).filter((t) => Boolean(t) && String(t).toLowerCase() !== "quest");
|
|
24669
24818
|
return [...new Set(allTypes)];
|
|
24670
24819
|
}, [parentDataRef.current, sceneVersion]);
|
|
24671
|
-
const searchableDbNodes = (0,
|
|
24820
|
+
const searchableDbNodes = (0, import_react38.useMemo)(() => {
|
|
24672
24821
|
if (!parentDataRef.current) {
|
|
24673
24822
|
return [];
|
|
24674
24823
|
}
|
|
@@ -24683,7 +24832,7 @@ function XViewScene({
|
|
|
24683
24832
|
return !((_a2 = node.version_node) == null ? void 0 : _a2.is_version);
|
|
24684
24833
|
});
|
|
24685
24834
|
}, [parentDataRef.current, sceneVersion]);
|
|
24686
|
-
const handleAddExistingNode = (0,
|
|
24835
|
+
const handleAddExistingNode = (0, import_react38.useCallback)(
|
|
24687
24836
|
(nodeId) => {
|
|
24688
24837
|
return userActionHandlers.handleAddExistingNodeById(
|
|
24689
24838
|
actionHandlerContext,
|
|
@@ -24692,7 +24841,7 @@ function XViewScene({
|
|
|
24692
24841
|
},
|
|
24693
24842
|
[actionHandlerContext]
|
|
24694
24843
|
);
|
|
24695
|
-
const handleUpdateMilestones = (0,
|
|
24844
|
+
const handleUpdateMilestones = (0, import_react38.useCallback)(
|
|
24696
24845
|
async (newMilestones) => {
|
|
24697
24846
|
var _a2, _b2, _c2;
|
|
24698
24847
|
if (!sceneDataRef.current) return;
|
|
@@ -24719,7 +24868,7 @@ function XViewScene({
|
|
|
24719
24868
|
},
|
|
24720
24869
|
[sceneConfigId, sceneSaveUrl, save_view_data, viewParams == null ? void 0 : viewParams.type]
|
|
24721
24870
|
);
|
|
24722
|
-
const handleSaveCurrentView = (0,
|
|
24871
|
+
const handleSaveCurrentView = (0, import_react38.useCallback)(async () => {
|
|
24723
24872
|
var _a2;
|
|
24724
24873
|
const { nodeObjects, allLinks } = stateRef.current;
|
|
24725
24874
|
if (!nodeObjects || !allLinks || !sceneSaveUrl || !parentDataRef.current) {
|
|
@@ -24758,13 +24907,13 @@ function XViewScene({
|
|
|
24758
24907
|
console.error("Erro na chamada de save_view_data:", error);
|
|
24759
24908
|
}
|
|
24760
24909
|
}, [sceneSaveUrl, save_view_data, sceneConfigId, viewParams == null ? void 0 : viewParams.type]);
|
|
24761
|
-
const handleToggleAncestryAddMode = (0,
|
|
24910
|
+
const handleToggleAncestryAddMode = (0, import_react38.useCallback)(() => {
|
|
24762
24911
|
setAncestryMode((prev) => ({
|
|
24763
24912
|
...prev,
|
|
24764
24913
|
isAddingNodes: !prev.isAddingNodes
|
|
24765
24914
|
}));
|
|
24766
24915
|
}, []);
|
|
24767
|
-
const availableDatasets = (0,
|
|
24916
|
+
const availableDatasets = (0, import_react38.useMemo)(() => {
|
|
24768
24917
|
if (!sceneDataRef.current || !parentDataRef.current) return [];
|
|
24769
24918
|
return sceneDataRef.current.parent_dbs.map((db) => {
|
|
24770
24919
|
var _a2;
|
|
@@ -24778,7 +24927,7 @@ function XViewScene({
|
|
|
24778
24927
|
String(creationMode.sourceNodeData.id)
|
|
24779
24928
|
)) == null ? void 0 : _b.parentFileId : null;
|
|
24780
24929
|
const detailsNodeDatasetInfo = detailsNode ? stateRef.current.nodeIdToParentFileMap.get(String(detailsNode.id)) : null;
|
|
24781
|
-
(0,
|
|
24930
|
+
(0, import_react38.useEffect)(() => {
|
|
24782
24931
|
if (!isInitialized || hasFocusedInitial) return;
|
|
24783
24932
|
const nodeObjects = stateRef.current.nodeObjects || {};
|
|
24784
24933
|
if (focusNodeId) {
|
|
@@ -24825,7 +24974,7 @@ function XViewScene({
|
|
|
24825
24974
|
hasFocusedInitial,
|
|
24826
24975
|
tweenToTarget
|
|
24827
24976
|
]);
|
|
24828
|
-
(0,
|
|
24977
|
+
(0, import_react38.useEffect)(() => {
|
|
24829
24978
|
if (isInitialized && focusAncestryId && !hasOpenedInitialAncestry) {
|
|
24830
24979
|
const ancestries = ancestryDataRef.current || [];
|
|
24831
24980
|
const targetAncestry = ancestries.find(
|
|
@@ -24850,7 +24999,7 @@ function XViewScene({
|
|
|
24850
24999
|
hasOpenedInitialAncestry,
|
|
24851
25000
|
handleStartReadingAncestry
|
|
24852
25001
|
]);
|
|
24853
|
-
(0,
|
|
25002
|
+
(0, import_react38.useEffect)(() => {
|
|
24854
25003
|
function handleKeyDown(event) {
|
|
24855
25004
|
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
24856
25005
|
const context = actionHandlerContext;
|
|
@@ -25073,7 +25222,7 @@ function XViewScene({
|
|
|
25073
25222
|
// <-- handleCancelQuest adicionado aqui
|
|
25074
25223
|
]);
|
|
25075
25224
|
if (isLoading || status === "loading" || permissionStatus === "loading") {
|
|
25076
|
-
return /* @__PURE__ */
|
|
25225
|
+
return /* @__PURE__ */ import_react38.default.createElement(LoadingScreen, null);
|
|
25077
25226
|
}
|
|
25078
25227
|
const overlayHiddenStyle = questTreeMode.isActive || processTreeMode.isActive ? {
|
|
25079
25228
|
opacity: 0,
|
|
@@ -25082,7 +25231,7 @@ function XViewScene({
|
|
|
25082
25231
|
transition: "all 300ms ease-in-out"
|
|
25083
25232
|
} : {};
|
|
25084
25233
|
if (permissionStatus === "corrupted") {
|
|
25085
|
-
return /* @__PURE__ */
|
|
25234
|
+
return /* @__PURE__ */ import_react38.default.createElement("div", { className: "flex flex-col items-center justify-center min-h-screen w-full bg-slate-950 text-white" }, /* @__PURE__ */ import_react38.default.createElement("div", { className: "bg-slate-900/50 p-8 rounded-2xl border border-slate-800 shadow-2xl text-center max-w-md animate-fade-in" }, /* @__PURE__ */ import_react38.default.createElement("div", { className: "mb-4 text-amber-500" }, /* @__PURE__ */ import_react38.default.createElement(
|
|
25086
25235
|
"svg",
|
|
25087
25236
|
{
|
|
25088
25237
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -25092,7 +25241,7 @@ function XViewScene({
|
|
|
25092
25241
|
stroke: "currentColor",
|
|
25093
25242
|
className: "w-16 h-16 mx-auto"
|
|
25094
25243
|
},
|
|
25095
|
-
/* @__PURE__ */
|
|
25244
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25096
25245
|
"path",
|
|
25097
25246
|
{
|
|
25098
25247
|
strokeLinecap: "round",
|
|
@@ -25100,13 +25249,13 @@ function XViewScene({
|
|
|
25100
25249
|
d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"
|
|
25101
25250
|
}
|
|
25102
25251
|
)
|
|
25103
|
-
)), /* @__PURE__ */
|
|
25252
|
+
)), /* @__PURE__ */ import_react38.default.createElement("h2", { className: "text-2xl font-bold mb-2" }, "Link Inv\xE1lido"), /* @__PURE__ */ import_react38.default.createElement("p", { className: "text-slate-400 mb-6" }, "O link de acesso a este cen\xE1rio est\xE1 corrompido, incompleto ou foi alterado de forma incorreta. Por favor, verifique a URL ou retorne ao dashboard."), /* @__PURE__ */ import_react38.default.createElement(
|
|
25104
25253
|
"button",
|
|
25105
25254
|
{
|
|
25106
25255
|
onClick: handleNavigateBack,
|
|
25107
25256
|
className: "flex items-center justify-center gap-2 w-full py-3 px-4 bg-blue-600 hover:bg-blue-700 text-white rounded-lg transition-colors font-medium cursor-pointer"
|
|
25108
25257
|
},
|
|
25109
|
-
/* @__PURE__ */
|
|
25258
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25110
25259
|
"svg",
|
|
25111
25260
|
{
|
|
25112
25261
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -25116,7 +25265,7 @@ function XViewScene({
|
|
|
25116
25265
|
stroke: "currentColor",
|
|
25117
25266
|
className: "w-5 h-5"
|
|
25118
25267
|
},
|
|
25119
|
-
/* @__PURE__ */
|
|
25268
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25120
25269
|
"path",
|
|
25121
25270
|
{
|
|
25122
25271
|
strokeLinecap: "round",
|
|
@@ -25129,7 +25278,7 @@ function XViewScene({
|
|
|
25129
25278
|
)));
|
|
25130
25279
|
}
|
|
25131
25280
|
if (permissionStatus === "denied") {
|
|
25132
|
-
return /* @__PURE__ */
|
|
25281
|
+
return /* @__PURE__ */ import_react38.default.createElement("div", { className: "flex flex-col items-center justify-center min-h-screen w-full bg-slate-950 text-white" }, /* @__PURE__ */ import_react38.default.createElement("div", { className: "bg-slate-900/50 p-8 rounded-2xl border border-slate-800 shadow-2xl text-center max-w-md" }, /* @__PURE__ */ import_react38.default.createElement("div", { className: "mb-4 text-red-500" }, /* @__PURE__ */ import_react38.default.createElement(
|
|
25133
25282
|
"svg",
|
|
25134
25283
|
{
|
|
25135
25284
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -25139,7 +25288,7 @@ function XViewScene({
|
|
|
25139
25288
|
stroke: "currentColor",
|
|
25140
25289
|
className: "w-16 h-16 mx-auto"
|
|
25141
25290
|
},
|
|
25142
|
-
/* @__PURE__ */
|
|
25291
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25143
25292
|
"path",
|
|
25144
25293
|
{
|
|
25145
25294
|
strokeLinecap: "round",
|
|
@@ -25147,13 +25296,13 @@ function XViewScene({
|
|
|
25147
25296
|
d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"
|
|
25148
25297
|
}
|
|
25149
25298
|
)
|
|
25150
|
-
)), /* @__PURE__ */
|
|
25299
|
+
)), /* @__PURE__ */ import_react38.default.createElement("h2", { className: "text-2xl font-bold mb-2" }, "Acesso Negado"), /* @__PURE__ */ import_react38.default.createElement("p", { className: "text-slate-400 mb-6" }, "Voc\xEA n\xE3o tem permiss\xE3o para acessar este conte\xFAdo. Solicite acesso ao propriet\xE1rio ou verifique se est\xE1 na conta correta."), /* @__PURE__ */ import_react38.default.createElement(
|
|
25151
25300
|
"button",
|
|
25152
25301
|
{
|
|
25153
25302
|
onClick: handleNavigateBack,
|
|
25154
25303
|
className: "flex items-center justify-center gap-2 w-full py-3 px-4 bg-blue-600 hover:bg-blue-700 text-white rounded-lg transition-colors font-medium"
|
|
25155
25304
|
},
|
|
25156
|
-
/* @__PURE__ */
|
|
25305
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25157
25306
|
"svg",
|
|
25158
25307
|
{
|
|
25159
25308
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -25163,7 +25312,7 @@ function XViewScene({
|
|
|
25163
25312
|
stroke: "currentColor",
|
|
25164
25313
|
className: "w-5 h-5"
|
|
25165
25314
|
},
|
|
25166
|
-
/* @__PURE__ */
|
|
25315
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25167
25316
|
"path",
|
|
25168
25317
|
{
|
|
25169
25318
|
strokeLinecap: "round",
|
|
@@ -25175,7 +25324,7 @@ function XViewScene({
|
|
|
25175
25324
|
"Voltar para o X.View"
|
|
25176
25325
|
)));
|
|
25177
25326
|
}
|
|
25178
|
-
return /* @__PURE__ */
|
|
25327
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
25179
25328
|
"div",
|
|
25180
25329
|
{
|
|
25181
25330
|
ref: mountRef,
|
|
@@ -25187,7 +25336,7 @@ function XViewScene({
|
|
|
25187
25336
|
cursor: isProcessing ? "progress" : stateRef.current.connection.isActive || stateRef.current.relink.isActive || ancestryMode.isActive ? "crosshair" : creationMode.isActive ? "default" : "grab"
|
|
25188
25337
|
}
|
|
25189
25338
|
},
|
|
25190
|
-
userPermissionRole !== "link_viewer" && /* @__PURE__ */
|
|
25339
|
+
userPermissionRole !== "link_viewer" && /* @__PURE__ */ import_react38.default.createElement(
|
|
25191
25340
|
XViewSidebar,
|
|
25192
25341
|
{
|
|
25193
25342
|
dbNodes: searchableDbNodes,
|
|
@@ -25216,7 +25365,7 @@ function XViewScene({
|
|
|
25216
25365
|
viewMembers
|
|
25217
25366
|
}
|
|
25218
25367
|
),
|
|
25219
|
-
creationMode.isActive && /* @__PURE__ */
|
|
25368
|
+
creationMode.isActive && /* @__PURE__ */ import_react38.default.createElement(
|
|
25220
25369
|
InSceneCreationForm,
|
|
25221
25370
|
{
|
|
25222
25371
|
onSave: (data) => userActionHandlers.handleSaveNode(actionHandlerContext, data),
|
|
@@ -25251,7 +25400,7 @@ function XViewScene({
|
|
|
25251
25400
|
view_google_folder_id: (_h = sceneDataRef.current) == null ? void 0 : _h.view_google_folder_id
|
|
25252
25401
|
}
|
|
25253
25402
|
),
|
|
25254
|
-
versionMode.isActive && /* @__PURE__ */
|
|
25403
|
+
versionMode.isActive && /* @__PURE__ */ import_react38.default.createElement(
|
|
25255
25404
|
InSceneVersionForm,
|
|
25256
25405
|
{
|
|
25257
25406
|
onSave: (data) => userActionHandlers.handleSaveVersionNode(actionHandlerContext, data),
|
|
@@ -25278,7 +25427,7 @@ function XViewScene({
|
|
|
25278
25427
|
availableAncestries: allAvailableAncestries
|
|
25279
25428
|
}
|
|
25280
25429
|
),
|
|
25281
|
-
questTreeMode.isActive && /* @__PURE__ */
|
|
25430
|
+
questTreeMode.isActive && /* @__PURE__ */ import_react38.default.createElement(
|
|
25282
25431
|
CreateQuestTreePanel,
|
|
25283
25432
|
{
|
|
25284
25433
|
questTreeMode,
|
|
@@ -25287,7 +25436,7 @@ function XViewScene({
|
|
|
25287
25436
|
onClose: handleCloseQuestTree
|
|
25288
25437
|
}
|
|
25289
25438
|
),
|
|
25290
|
-
processTreeMode.isActive && /* @__PURE__ */
|
|
25439
|
+
processTreeMode.isActive && /* @__PURE__ */ import_react38.default.createElement(
|
|
25291
25440
|
CreateProcessTreePanel,
|
|
25292
25441
|
{
|
|
25293
25442
|
processTreeMode,
|
|
@@ -25296,7 +25445,7 @@ function XViewScene({
|
|
|
25296
25445
|
onClose: handleCloseProcessTree
|
|
25297
25446
|
}
|
|
25298
25447
|
),
|
|
25299
|
-
questMode.isActive && /* @__PURE__ */
|
|
25448
|
+
questMode.isActive && /* @__PURE__ */ import_react38.default.createElement(
|
|
25300
25449
|
InSceneQuestForm,
|
|
25301
25450
|
{
|
|
25302
25451
|
onSave: (data) => handleSaveQuestNode(actionHandlerContext, data),
|
|
@@ -25327,7 +25476,7 @@ function XViewScene({
|
|
|
25327
25476
|
view_google_folder_id: (_m = sceneDataRef.current) == null ? void 0 : _m.view_google_folder_id
|
|
25328
25477
|
}
|
|
25329
25478
|
),
|
|
25330
|
-
processMode.isActive && /* @__PURE__ */
|
|
25479
|
+
processMode.isActive && /* @__PURE__ */ import_react38.default.createElement(
|
|
25331
25480
|
InSceneProcessForm,
|
|
25332
25481
|
{
|
|
25333
25482
|
onSave: (data) => handleSaveProcessNode(actionHandlerContext, data),
|
|
@@ -25354,7 +25503,7 @@ function XViewScene({
|
|
|
25354
25503
|
view_google_folder_id: (_n = sceneDataRef.current) == null ? void 0 : _n.view_google_folder_id
|
|
25355
25504
|
}
|
|
25356
25505
|
),
|
|
25357
|
-
readingMode.isActive && readingMode.ancestry && /* @__PURE__ */
|
|
25506
|
+
readingMode.isActive && readingMode.ancestry && /* @__PURE__ */ import_react38.default.createElement(
|
|
25358
25507
|
"div",
|
|
25359
25508
|
{
|
|
25360
25509
|
className: `ui-overlay absolute group rounded-2xl border border-white/10 bg-slate-950/70 backdrop-blur-xl shadow-[0_20px_80px_rgba(0,0,0,0.6)] ring-1 ring-white/10 text-white overflow-hidden flex flex-col ${isReadModeResizing ? "transition-none" : "transition-all duration-300 ease-out"}`,
|
|
@@ -25367,7 +25516,7 @@ function XViewScene({
|
|
|
25367
25516
|
maxWidth: "92vw"
|
|
25368
25517
|
}
|
|
25369
25518
|
},
|
|
25370
|
-
/* @__PURE__ */
|
|
25519
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25371
25520
|
"div",
|
|
25372
25521
|
{
|
|
25373
25522
|
onPointerDown: (e) => {
|
|
@@ -25378,7 +25527,7 @@ function XViewScene({
|
|
|
25378
25527
|
title: "Arraste para redimensionar"
|
|
25379
25528
|
}
|
|
25380
25529
|
),
|
|
25381
|
-
/* @__PURE__ */
|
|
25530
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25382
25531
|
DescriptionReadModePanel,
|
|
25383
25532
|
{
|
|
25384
25533
|
key: readingMode.branchStack.length > 0 ? readingMode.branchStack[readingMode.branchStack.length - 1].branchId : readingMode.ancestry.ancestry_id,
|
|
@@ -25413,7 +25562,7 @@ function XViewScene({
|
|
|
25413
25562
|
}
|
|
25414
25563
|
)
|
|
25415
25564
|
),
|
|
25416
|
-
ancestryMode.isActive && ancestryMode.tree && /* @__PURE__ */
|
|
25565
|
+
ancestryMode.isActive && ancestryMode.tree && /* @__PURE__ */ import_react38.default.createElement(
|
|
25417
25566
|
CreateAncestryPanel,
|
|
25418
25567
|
{
|
|
25419
25568
|
ancestryMode,
|
|
@@ -25449,7 +25598,7 @@ function XViewScene({
|
|
|
25449
25598
|
onRenderAbstractionTree: (data, targetId) => handleRenderAbstractionTree(data, targetId)
|
|
25450
25599
|
}
|
|
25451
25600
|
),
|
|
25452
|
-
editingAncestryRel.visible && /* @__PURE__ */
|
|
25601
|
+
editingAncestryRel.visible && /* @__PURE__ */ import_react38.default.createElement(
|
|
25453
25602
|
AncestryRelationshipPanel,
|
|
25454
25603
|
{
|
|
25455
25604
|
data: editingAncestryRel.data,
|
|
@@ -25463,8 +25612,8 @@ function XViewScene({
|
|
|
25463
25612
|
onUploadFile: upload_file_action
|
|
25464
25613
|
}
|
|
25465
25614
|
),
|
|
25466
|
-
isProcessing && /* @__PURE__ */
|
|
25467
|
-
detailsNode && detailsNode.is_quest && /* @__PURE__ */
|
|
25615
|
+
isProcessing && /* @__PURE__ */ import_react38.default.createElement("div", { className: "fixed bottom-8 right-8 z-[2000] flex items-center gap-3 px-4 py-2 bg-slate-900/80 backdrop-blur-md border border-white/10 rounded-full shadow-2xl animate-pulse" }, /* @__PURE__ */ import_react38.default.createElement("div", { className: "w-4 h-4 border-2 border-indigo-500 border-t-transparent rounded-full animate-spin" }), /* @__PURE__ */ import_react38.default.createElement("span", { className: "text-xs font-medium text-indigo-200 tracking-wider uppercase" }, "Sincronizando Processo...")),
|
|
25616
|
+
detailsNode && detailsNode.is_quest && /* @__PURE__ */ import_react38.default.createElement(
|
|
25468
25617
|
QuestDetailsPanel,
|
|
25469
25618
|
{
|
|
25470
25619
|
node: detailsNode,
|
|
@@ -25496,7 +25645,7 @@ function XViewScene({
|
|
|
25496
25645
|
style: overlayHiddenStyle
|
|
25497
25646
|
}
|
|
25498
25647
|
),
|
|
25499
|
-
detailsNode && detailsNode.is_process && /* @__PURE__ */
|
|
25648
|
+
detailsNode && detailsNode.is_process && /* @__PURE__ */ import_react38.default.createElement(
|
|
25500
25649
|
ProcessDetailsPanel,
|
|
25501
25650
|
{
|
|
25502
25651
|
node: detailsNode,
|
|
@@ -25526,7 +25675,7 @@ function XViewScene({
|
|
|
25526
25675
|
style: overlayHiddenStyle
|
|
25527
25676
|
}
|
|
25528
25677
|
),
|
|
25529
|
-
detailsNode && !detailsNode.is_quest && !detailsNode.is_process && /* @__PURE__ */
|
|
25678
|
+
detailsNode && !detailsNode.is_quest && !detailsNode.is_process && /* @__PURE__ */ import_react38.default.createElement(
|
|
25530
25679
|
NodeDetailsPanel,
|
|
25531
25680
|
{
|
|
25532
25681
|
node: detailsNode,
|
|
@@ -25561,7 +25710,7 @@ function XViewScene({
|
|
|
25561
25710
|
style: overlayHiddenStyle
|
|
25562
25711
|
}
|
|
25563
25712
|
),
|
|
25564
|
-
detailsLink && /* @__PURE__ */
|
|
25713
|
+
detailsLink && /* @__PURE__ */ import_react38.default.createElement(
|
|
25565
25714
|
RelationshipDetailsPanel,
|
|
25566
25715
|
{
|
|
25567
25716
|
link: detailsLink,
|
|
@@ -25576,7 +25725,7 @@ function XViewScene({
|
|
|
25576
25725
|
onHighlight: handleReadModeHighlight
|
|
25577
25726
|
}
|
|
25578
25727
|
),
|
|
25579
|
-
ancestryLinkDetails && /* @__PURE__ */
|
|
25728
|
+
ancestryLinkDetails && /* @__PURE__ */ import_react38.default.createElement(
|
|
25580
25729
|
AncestryLinkDetailsPanel,
|
|
25581
25730
|
{
|
|
25582
25731
|
data: ancestryLinkDetails,
|
|
@@ -25588,7 +25737,7 @@ function XViewScene({
|
|
|
25588
25737
|
onHighlight: handleReadModeHighlight
|
|
25589
25738
|
}
|
|
25590
25739
|
),
|
|
25591
|
-
/* @__PURE__ */
|
|
25740
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25592
25741
|
"div",
|
|
25593
25742
|
{
|
|
25594
25743
|
ref: tooltipRef,
|
|
@@ -25615,7 +25764,7 @@ function XViewScene({
|
|
|
25615
25764
|
}
|
|
25616
25765
|
}
|
|
25617
25766
|
),
|
|
25618
|
-
/* @__PURE__ */
|
|
25767
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25619
25768
|
ContextMenu,
|
|
25620
25769
|
{
|
|
25621
25770
|
data: contextMenu,
|
|
@@ -25654,7 +25803,7 @@ function XViewScene({
|
|
|
25654
25803
|
onInitiateProcess: (data) => userActionHandlers.handleInitiateProcess(actionHandlerContext, data)
|
|
25655
25804
|
}
|
|
25656
25805
|
),
|
|
25657
|
-
/* @__PURE__ */
|
|
25806
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25658
25807
|
MultiNodeContextMenu,
|
|
25659
25808
|
{
|
|
25660
25809
|
data: multiContextMenu,
|
|
@@ -25674,7 +25823,7 @@ function XViewScene({
|
|
|
25674
25823
|
)
|
|
25675
25824
|
}
|
|
25676
25825
|
),
|
|
25677
|
-
/* @__PURE__ */
|
|
25826
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25678
25827
|
RelationshipContextMenu,
|
|
25679
25828
|
{
|
|
25680
25829
|
data: relationshipMenu,
|
|
@@ -25692,14 +25841,14 @@ function XViewScene({
|
|
|
25692
25841
|
onDelete: (data) => userActionHandlers.handleDeleteLink(actionHandlerContext, data)
|
|
25693
25842
|
}
|
|
25694
25843
|
),
|
|
25695
|
-
/* @__PURE__ */
|
|
25844
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25696
25845
|
ImageViewer,
|
|
25697
25846
|
{
|
|
25698
25847
|
data: imageViewer,
|
|
25699
25848
|
onClose: () => setImageViewer({ ...imageViewer, visible: false })
|
|
25700
25849
|
}
|
|
25701
25850
|
),
|
|
25702
|
-
/* @__PURE__ */
|
|
25851
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25703
25852
|
Boards,
|
|
25704
25853
|
{
|
|
25705
25854
|
isOpen: isBoardsOpen,
|
|
@@ -25712,7 +25861,7 @@ function XViewScene({
|
|
|
25712
25861
|
userRole: userPermissionRole
|
|
25713
25862
|
}
|
|
25714
25863
|
),
|
|
25715
|
-
/* @__PURE__ */
|
|
25864
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25716
25865
|
MilestoneManager,
|
|
25717
25866
|
{
|
|
25718
25867
|
isOpen: isMilestoneManagerOpen,
|
|
@@ -25721,7 +25870,7 @@ function XViewScene({
|
|
|
25721
25870
|
onUpdateMilestones: handleUpdateMilestones
|
|
25722
25871
|
}
|
|
25723
25872
|
),
|
|
25724
|
-
/* @__PURE__ */
|
|
25873
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25725
25874
|
ImportParentFileModal,
|
|
25726
25875
|
{
|
|
25727
25876
|
isOpen: isImportModalOpen,
|
|
@@ -25734,7 +25883,7 @@ function XViewScene({
|
|
|
25734
25883
|
currentAncestries: ancestryDataRef.current || []
|
|
25735
25884
|
}
|
|
25736
25885
|
),
|
|
25737
|
-
invalidTargetError && /* @__PURE__ */
|
|
25886
|
+
invalidTargetError && /* @__PURE__ */ import_react38.default.createElement(
|
|
25738
25887
|
"div",
|
|
25739
25888
|
{
|
|
25740
25889
|
className: "ui-overlay",
|
|
@@ -25759,13 +25908,13 @@ function XViewScene({
|
|
|
25759
25908
|
animation: "fadeInDown 0.5s cubic-bezier(0.16, 1, 0.3, 1)"
|
|
25760
25909
|
}
|
|
25761
25910
|
},
|
|
25762
|
-
/* @__PURE__ */
|
|
25911
|
+
/* @__PURE__ */ import_react38.default.createElement("style", null, `
|
|
25763
25912
|
@keyframes fadeInDown {
|
|
25764
25913
|
from { opacity: 0; transform: translate(-50%, -20px); }
|
|
25765
25914
|
to { opacity: 1; transform: translate(-50%, 0); }
|
|
25766
25915
|
}
|
|
25767
25916
|
`),
|
|
25768
|
-
/* @__PURE__ */
|
|
25917
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25769
25918
|
"svg",
|
|
25770
25919
|
{
|
|
25771
25920
|
width: "20",
|
|
@@ -25777,12 +25926,12 @@ function XViewScene({
|
|
|
25777
25926
|
strokeLinecap: "round",
|
|
25778
25927
|
strokeLinejoin: "round"
|
|
25779
25928
|
},
|
|
25780
|
-
/* @__PURE__ */
|
|
25781
|
-
/* @__PURE__ */
|
|
25782
|
-
/* @__PURE__ */
|
|
25929
|
+
/* @__PURE__ */ import_react38.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
|
|
25930
|
+
/* @__PURE__ */ import_react38.default.createElement("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
|
|
25931
|
+
/* @__PURE__ */ import_react38.default.createElement("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
|
|
25783
25932
|
),
|
|
25784
|
-
/* @__PURE__ */
|
|
25785
|
-
/* @__PURE__ */
|
|
25933
|
+
/* @__PURE__ */ import_react38.default.createElement("span", { style: { fontSize: "14px", fontWeight: 500 } }, invalidTargetError),
|
|
25934
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25786
25935
|
"button",
|
|
25787
25936
|
{
|
|
25788
25937
|
onClick: () => setInvalidTargetError(null),
|
|
@@ -25810,7 +25959,7 @@ function XViewScene({
|
|
|
25810
25959
|
"Fechar"
|
|
25811
25960
|
)
|
|
25812
25961
|
),
|
|
25813
|
-
/* @__PURE__ */
|
|
25962
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
25814
25963
|
UpgradeModal,
|
|
25815
25964
|
{
|
|
25816
25965
|
isOpen: isUpgradeModalOpen,
|
|
@@ -25822,7 +25971,9 @@ function XViewScene({
|
|
|
25822
25971
|
const res = await onUpgrade();
|
|
25823
25972
|
if (res.success) {
|
|
25824
25973
|
setNodeLimit(-1);
|
|
25825
|
-
alert(
|
|
25974
|
+
alert(
|
|
25975
|
+
"Upgrade realizado com sucesso! Sua conta agora \xE9 Premium."
|
|
25976
|
+
);
|
|
25826
25977
|
} else {
|
|
25827
25978
|
alert("Erro ao realizar upgrade: " + res.error);
|
|
25828
25979
|
}
|