@lv-x-software-house/x_view 1.2.8-dev.1 → 1.2.8-dev.3
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 +79 -70
- package/dist/index.mjs +79 -70
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1545,17 +1545,11 @@ var userActionHandlers = {
|
|
|
1545
1545
|
links: sceneDataRef.current.links,
|
|
1546
1546
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
1547
1547
|
};
|
|
1548
|
-
const questFilePayload = {
|
|
1549
|
-
nodes: specificParentData.nodes,
|
|
1550
|
-
links: specificParentData.links,
|
|
1551
|
-
milestones: sceneDataRef.current.milestones || []
|
|
1552
|
-
};
|
|
1553
1548
|
await context.actions.save_view_data(
|
|
1554
1549
|
context.sceneSaveUrl,
|
|
1555
1550
|
viewFilePayload
|
|
1556
1551
|
);
|
|
1557
|
-
|
|
1558
|
-
await context.actions.save_view_data(questSaveUrl, questFilePayload);
|
|
1552
|
+
await context.actions.save_quest_link(context.ownerId, context.sceneConfigId, newLink);
|
|
1559
1553
|
} else {
|
|
1560
1554
|
const specificParentData = JSON.parse(
|
|
1561
1555
|
JSON.stringify(graphDataRef.current[parentFileIdToSave])
|
|
@@ -1842,20 +1836,14 @@ var userActionHandlers = {
|
|
|
1842
1836
|
links: sceneDataRef.current.links,
|
|
1843
1837
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
1844
1838
|
};
|
|
1845
|
-
questSaveUrl = context.sceneSaveUrl.replace("x_view_scenes", "x_view_quests");
|
|
1846
|
-
questFilePayload = {
|
|
1847
|
-
nodes: specificParentData.nodes,
|
|
1848
|
-
links: specificParentData.links,
|
|
1849
|
-
milestones: sceneDataRef.current.milestones || []
|
|
1850
|
-
};
|
|
1851
1839
|
} else {
|
|
1852
1840
|
filenameToSave = `x_view_dbs/${ownerId}/${parentFileId}`;
|
|
1853
1841
|
payloadToSave = specificParentData;
|
|
1854
1842
|
}
|
|
1855
1843
|
try {
|
|
1856
1844
|
await context.actions.save_view_data(filenameToSave, payloadToSave);
|
|
1857
|
-
if (
|
|
1858
|
-
await context.actions.
|
|
1845
|
+
if (isView && parentFileId === context.sceneConfigId && context.actions.delete_quest_link) {
|
|
1846
|
+
await context.actions.delete_quest_link(ownerId, context.sceneConfigId, linkIdToDelete);
|
|
1859
1847
|
}
|
|
1860
1848
|
graphDataRef.current[parentFileId] = specificParentData;
|
|
1861
1849
|
setters.setDetailsLink(
|
|
@@ -2087,13 +2075,15 @@ var userActionHandlers = {
|
|
|
2087
2075
|
links: sceneDataRef.current.links,
|
|
2088
2076
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
2089
2077
|
};
|
|
2090
|
-
const
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2078
|
+
for (const nodeId of nodesToDelete) {
|
|
2079
|
+
const questNode = (originalData.nodes || []).find((n) => String(n.id) === String(nodeId));
|
|
2080
|
+
if (questNode && questNode.is_quest) {
|
|
2081
|
+
await context.actions.delete_quest(ownerId, context.sceneConfigId, nodeId);
|
|
2082
|
+
}
|
|
2083
|
+
}
|
|
2084
|
+
for (const linkId of linksToDelete) {
|
|
2085
|
+
await context.actions.delete_quest_link(ownerId, context.sceneConfigId, linkId);
|
|
2086
|
+
}
|
|
2097
2087
|
} else {
|
|
2098
2088
|
filenameToSave = `x_view_dbs/${ownerId}/${parentFileId}`;
|
|
2099
2089
|
payloadToSave = originalData;
|
|
@@ -2185,15 +2175,9 @@ var userActionHandlers = {
|
|
|
2185
2175
|
links: newVisualLinks,
|
|
2186
2176
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
2187
2177
|
};
|
|
2188
|
-
const questFilePayload = {
|
|
2189
|
-
nodes: specificParentData.nodes,
|
|
2190
|
-
links: specificParentData.links,
|
|
2191
|
-
milestones: sceneDataRef.current.milestones || []
|
|
2192
|
-
};
|
|
2193
|
-
const questSaveUrl = context.sceneSaveUrl.replace("x_view_scenes", "x_view_quests");
|
|
2194
2178
|
try {
|
|
2195
2179
|
await context.actions.save_view_data(filenameToSave, payloadToSave);
|
|
2196
|
-
await context.actions.
|
|
2180
|
+
await context.actions.delete_quest(ownerId, context.sceneConfigId, nodeIdToDelete);
|
|
2197
2181
|
graphDataRef.current[parentFileId] = specificParentData;
|
|
2198
2182
|
setters.setDetailsNode(
|
|
2199
2183
|
(prev) => String(prev == null ? void 0 : prev.id) === String(nodeIdToDelete) ? null : prev
|
|
@@ -2356,17 +2340,11 @@ var userActionHandlers = {
|
|
|
2356
2340
|
links: sceneDataRef.current.links,
|
|
2357
2341
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
2358
2342
|
};
|
|
2359
|
-
const questFilePayload = {
|
|
2360
|
-
nodes: specificParentData.nodes,
|
|
2361
|
-
links: specificParentData.links,
|
|
2362
|
-
milestones: sceneDataRef.current.milestones || []
|
|
2363
|
-
};
|
|
2364
2343
|
await context.actions.save_view_data(
|
|
2365
2344
|
context.sceneSaveUrl,
|
|
2366
2345
|
viewFilePayload
|
|
2367
2346
|
);
|
|
2368
|
-
|
|
2369
|
-
await context.actions.save_view_data(questSaveUrl, questFilePayload);
|
|
2347
|
+
await context.actions.save_quest(ownerId, context.sceneConfigId, nodeToSave);
|
|
2370
2348
|
} else {
|
|
2371
2349
|
const filenameForSpecificParent = `x_view_dbs/${ownerId}/${parentFileId}`;
|
|
2372
2350
|
await context.actions.save_view_data(
|
|
@@ -15477,7 +15455,11 @@ function XViewScene({
|
|
|
15477
15455
|
check_user_permission,
|
|
15478
15456
|
get_view_members,
|
|
15479
15457
|
create_google_doc_action,
|
|
15480
|
-
open_google_picker_action
|
|
15458
|
+
open_google_picker_action,
|
|
15459
|
+
save_quest_action,
|
|
15460
|
+
delete_quest_action,
|
|
15461
|
+
save_quest_link_action,
|
|
15462
|
+
delete_quest_link_action
|
|
15481
15463
|
}) {
|
|
15482
15464
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
|
|
15483
15465
|
const { data: session, status } = (0, import_react34.useSession)();
|
|
@@ -17984,7 +17966,11 @@ function XViewScene({
|
|
|
17984
17966
|
get_single_parent_file,
|
|
17985
17967
|
get_scene_view_data,
|
|
17986
17968
|
upload_file: upload_file_action,
|
|
17987
|
-
delete_file: delete_file_action
|
|
17969
|
+
delete_file: delete_file_action,
|
|
17970
|
+
save_quest: save_quest_action,
|
|
17971
|
+
delete_quest: delete_quest_action,
|
|
17972
|
+
save_quest_link: save_quest_link_action,
|
|
17973
|
+
delete_quest_link: delete_quest_link_action
|
|
17988
17974
|
}
|
|
17989
17975
|
};
|
|
17990
17976
|
},
|
|
@@ -18003,7 +17989,11 @@ function XViewScene({
|
|
|
18003
17989
|
get_single_parent_file,
|
|
18004
17990
|
get_scene_view_data,
|
|
18005
17991
|
upload_file_action,
|
|
18006
|
-
delete_file_action
|
|
17992
|
+
delete_file_action,
|
|
17993
|
+
save_quest_action,
|
|
17994
|
+
delete_quest_action,
|
|
17995
|
+
save_quest_link_action,
|
|
17996
|
+
delete_quest_link_action
|
|
18007
17997
|
]
|
|
18008
17998
|
);
|
|
18009
17999
|
const handleStartVersioning = (nodeData) => {
|
|
@@ -18221,11 +18211,7 @@ function XViewScene({
|
|
|
18221
18211
|
milestones: sceneData.milestones || []
|
|
18222
18212
|
};
|
|
18223
18213
|
await save_view_data(sceneSaveUrl, sceneFileData);
|
|
18224
|
-
|
|
18225
|
-
"x_view_scenes",
|
|
18226
|
-
"x_view_quests"
|
|
18227
|
-
);
|
|
18228
|
-
await save_view_data(questSaveUrl, questFileData);
|
|
18214
|
+
await save_quest_action(ownerId, sceneConfigId, updatedNodeData);
|
|
18229
18215
|
}
|
|
18230
18216
|
const updatedNodeData = sceneData.quest_nodes[questIndex];
|
|
18231
18217
|
const nodeMesh = (_a2 = stateRef.current.nodeObjects) == null ? void 0 : _a2[String(questNodeId)];
|
|
@@ -18313,8 +18299,7 @@ function XViewScene({
|
|
|
18313
18299
|
};
|
|
18314
18300
|
try {
|
|
18315
18301
|
await actions.save_view_data(sceneSaveUrl2, sceneFileData);
|
|
18316
|
-
|
|
18317
|
-
await actions.save_view_data(questSaveUrl, questFileData);
|
|
18302
|
+
await actions.save_quest(ownerId2, sceneConfigId2, newNode);
|
|
18318
18303
|
sceneDataRef2.current.quest_counter = currentCounter + 1;
|
|
18319
18304
|
stateRef2.current.nodeIdToParentFileMap.set(String(newNode.id), {
|
|
18320
18305
|
parentFileId: sceneConfigId2,
|
|
@@ -18437,7 +18422,9 @@ function XViewScene({
|
|
|
18437
18422
|
if (line.material) line.material.dispose();
|
|
18438
18423
|
});
|
|
18439
18424
|
renderedAncestries.splice(renderIndex, 1);
|
|
18440
|
-
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
18425
|
+
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
18426
|
+
(a) => a.lines
|
|
18427
|
+
);
|
|
18441
18428
|
}
|
|
18442
18429
|
}, []);
|
|
18443
18430
|
const handleRenderAncestry = (0, import_react33.useCallback)(
|
|
@@ -19010,7 +18997,9 @@ function XViewScene({
|
|
|
19010
18997
|
});
|
|
19011
18998
|
};
|
|
19012
18999
|
renderVertical(fullTree, rootNodeMesh, rootTargetPos, 1);
|
|
19013
|
-
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
19000
|
+
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
19001
|
+
(a) => a.lines
|
|
19002
|
+
);
|
|
19014
19003
|
tweenToTarget(rootTargetPos, 0.7);
|
|
19015
19004
|
},
|
|
19016
19005
|
[
|
|
@@ -19145,7 +19134,10 @@ function XViewScene({
|
|
|
19145
19134
|
};
|
|
19146
19135
|
const descriptionText = targetAncestryInfo.description || "";
|
|
19147
19136
|
const savedSections = targetAncestryInfo.description_sections || [];
|
|
19148
|
-
const sections = parseDescriptionSections(
|
|
19137
|
+
const sections = parseDescriptionSections(
|
|
19138
|
+
descriptionText,
|
|
19139
|
+
savedSections
|
|
19140
|
+
);
|
|
19149
19141
|
let focusTargetId = null;
|
|
19150
19142
|
if (popped && popped.nodeId) {
|
|
19151
19143
|
const mentionTag = `[[MENTION:node:${popped.nodeId}]]`;
|
|
@@ -19922,7 +19914,10 @@ function XViewScene({
|
|
|
19922
19914
|
}
|
|
19923
19915
|
if (ancestry_save_url && isExternalSave && get_ancestry_file) {
|
|
19924
19916
|
try {
|
|
19925
|
-
const viewDbResponse = await get_ancestry_file(
|
|
19917
|
+
const viewDbResponse = await get_ancestry_file(
|
|
19918
|
+
sceneConfigId,
|
|
19919
|
+
ownerId
|
|
19920
|
+
);
|
|
19926
19921
|
if (viewDbResponse.success && Array.isArray(viewDbResponse.data)) {
|
|
19927
19922
|
const hasInViewDb = viewDbResponse.data.some(
|
|
19928
19923
|
(anc) => String(anc.ancestry_id) === String(ancestryIdToDelete)
|
|
@@ -20886,12 +20881,18 @@ function XViewScene({
|
|
|
20886
20881
|
data: multiContextMenu,
|
|
20887
20882
|
userRole: userPermissionRole,
|
|
20888
20883
|
onClose: () => setMultiContextMenu((prev) => ({ ...prev, visible: false })),
|
|
20889
|
-
onDismissNodes: (ids) => userActionHandlers.handleDismissMultipleNodes(
|
|
20884
|
+
onDismissNodes: (ids) => userActionHandlers.handleDismissMultipleNodes(
|
|
20885
|
+
actionHandlerContext,
|
|
20886
|
+
ids
|
|
20887
|
+
),
|
|
20890
20888
|
onDismissOtherNodes: (ids) => userActionHandlers.handleDismissOtherMultipleNodes(
|
|
20891
20889
|
actionHandlerContext,
|
|
20892
20890
|
ids
|
|
20893
20891
|
),
|
|
20894
|
-
onDeleteNodes: (ids) => userActionHandlers.handleDeleteMultipleNodes(
|
|
20892
|
+
onDeleteNodes: (ids) => userActionHandlers.handleDeleteMultipleNodes(
|
|
20893
|
+
actionHandlerContext,
|
|
20894
|
+
ids
|
|
20895
|
+
)
|
|
20895
20896
|
}
|
|
20896
20897
|
),
|
|
20897
20898
|
/* @__PURE__ */ import_react33.default.createElement(
|
|
@@ -21044,7 +21045,7 @@ async function save_view_data_logic(db_services, filename, data) {
|
|
|
21044
21045
|
}
|
|
21045
21046
|
}
|
|
21046
21047
|
async function get_scene_view_data_logic(db_services, scene_config, owner_id, type, session, focusNodeId = null, focusAncestryId = null) {
|
|
21047
|
-
var _a, _b
|
|
21048
|
+
var _a, _b;
|
|
21048
21049
|
try {
|
|
21049
21050
|
if (!session || !session.user) {
|
|
21050
21051
|
return { success: false, error: "Usu\xE1rio n\xE3o autenticado." };
|
|
@@ -21071,35 +21072,43 @@ async function get_scene_view_data_logic(db_services, scene_config, owner_id, ty
|
|
|
21071
21072
|
const parentResponsesPromises = parentDbObjects.map(
|
|
21072
21073
|
(db_info) => db_services.get_file(`x_view_dbs/${db_info.owner_id}/${db_info.db_id}`)
|
|
21073
21074
|
);
|
|
21074
|
-
if (isView) {
|
|
21075
|
-
parentResponsesPromises.push(
|
|
21076
|
-
db_services.get_file(`x_view_quests/${owner_id}/${scene_config}`)
|
|
21077
|
-
);
|
|
21078
|
-
}
|
|
21079
21075
|
const parentResponsesResults = await Promise.allSettled(parentResponsesPromises);
|
|
21080
21076
|
const parentData = {};
|
|
21081
|
-
let
|
|
21082
|
-
|
|
21083
|
-
|
|
21084
|
-
|
|
21085
|
-
|
|
21086
|
-
|
|
21077
|
+
let currentQuestNodes = [];
|
|
21078
|
+
let currentQuestLinks = [];
|
|
21079
|
+
let currentMilestones = [];
|
|
21080
|
+
if (isView) {
|
|
21081
|
+
const firestoreQuestsRes = await db_services.get_view_quests_and_links(owner_id, scene_config);
|
|
21082
|
+
const isMigrated = sceneData.quests_migrated === true;
|
|
21083
|
+
if (firestoreQuestsRes.success && (firestoreQuestsRes.data.nodes.length > 0 || isMigrated)) {
|
|
21084
|
+
currentQuestNodes = firestoreQuestsRes.data.nodes;
|
|
21085
|
+
currentQuestLinks = firestoreQuestsRes.data.links;
|
|
21086
|
+
currentMilestones = sceneData.milestones || [];
|
|
21087
|
+
} else {
|
|
21088
|
+
console.log(`Iniciando Lazy Migration para View ${scene_config}...`);
|
|
21089
|
+
const legacyQuestsRes = await db_services.get_file(`x_view_quests/${owner_id}/${scene_config}`);
|
|
21090
|
+
if (legacyQuestsRes.success && legacyQuestsRes.data) {
|
|
21091
|
+
const legacyData = legacyQuestsRes.data;
|
|
21092
|
+
currentQuestNodes = legacyData.nodes || [];
|
|
21093
|
+
currentQuestLinks = legacyData.links || [];
|
|
21094
|
+
currentMilestones = legacyData.milestones || [];
|
|
21095
|
+
sceneData.milestones = currentMilestones;
|
|
21096
|
+
await db_services.migrate_legacy_quests(owner_id, scene_config, legacyData);
|
|
21087
21097
|
}
|
|
21088
|
-
continue;
|
|
21089
21098
|
}
|
|
21099
|
+
}
|
|
21100
|
+
for (let i = 0; i < parentResponsesResults.length; i++) {
|
|
21101
|
+
const result = parentResponsesResults[i];
|
|
21090
21102
|
const db_info = parentDbObjects[i];
|
|
21091
|
-
if (result.status === "fulfilled" && ((
|
|
21103
|
+
if (result.status === "fulfilled" && ((_a = result.value) == null ? void 0 : _a.success)) {
|
|
21092
21104
|
parentData[db_info.db_id] = result.value.data;
|
|
21093
21105
|
} else {
|
|
21094
21106
|
console.warn(
|
|
21095
21107
|
`Arquivo pai n\xE3o carregado: ${db_info.db_id}. Pode ter sido deletado.`,
|
|
21096
|
-
result.status === "rejected" ? result.reason : (
|
|
21108
|
+
result.status === "rejected" ? result.reason : (_b = result.value) == null ? void 0 : _b.error
|
|
21097
21109
|
);
|
|
21098
21110
|
}
|
|
21099
21111
|
}
|
|
21100
|
-
const currentQuestNodes = (questDataObj == null ? void 0 : questDataObj.nodes) || [];
|
|
21101
|
-
const currentQuestLinks = (questDataObj == null ? void 0 : questDataObj.links) || [];
|
|
21102
|
-
const currentMilestones = (questDataObj == null ? void 0 : questDataObj.milestones) || [];
|
|
21103
21112
|
if (isView) {
|
|
21104
21113
|
parentData[scene_config] = {
|
|
21105
21114
|
dataset_name: "Quests Internas (View)",
|
package/dist/index.mjs
CHANGED
|
@@ -1506,17 +1506,11 @@ var userActionHandlers = {
|
|
|
1506
1506
|
links: sceneDataRef.current.links,
|
|
1507
1507
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
1508
1508
|
};
|
|
1509
|
-
const questFilePayload = {
|
|
1510
|
-
nodes: specificParentData.nodes,
|
|
1511
|
-
links: specificParentData.links,
|
|
1512
|
-
milestones: sceneDataRef.current.milestones || []
|
|
1513
|
-
};
|
|
1514
1509
|
await context.actions.save_view_data(
|
|
1515
1510
|
context.sceneSaveUrl,
|
|
1516
1511
|
viewFilePayload
|
|
1517
1512
|
);
|
|
1518
|
-
|
|
1519
|
-
await context.actions.save_view_data(questSaveUrl, questFilePayload);
|
|
1513
|
+
await context.actions.save_quest_link(context.ownerId, context.sceneConfigId, newLink);
|
|
1520
1514
|
} else {
|
|
1521
1515
|
const specificParentData = JSON.parse(
|
|
1522
1516
|
JSON.stringify(graphDataRef.current[parentFileIdToSave])
|
|
@@ -1803,20 +1797,14 @@ var userActionHandlers = {
|
|
|
1803
1797
|
links: sceneDataRef.current.links,
|
|
1804
1798
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
1805
1799
|
};
|
|
1806
|
-
questSaveUrl = context.sceneSaveUrl.replace("x_view_scenes", "x_view_quests");
|
|
1807
|
-
questFilePayload = {
|
|
1808
|
-
nodes: specificParentData.nodes,
|
|
1809
|
-
links: specificParentData.links,
|
|
1810
|
-
milestones: sceneDataRef.current.milestones || []
|
|
1811
|
-
};
|
|
1812
1800
|
} else {
|
|
1813
1801
|
filenameToSave = `x_view_dbs/${ownerId}/${parentFileId}`;
|
|
1814
1802
|
payloadToSave = specificParentData;
|
|
1815
1803
|
}
|
|
1816
1804
|
try {
|
|
1817
1805
|
await context.actions.save_view_data(filenameToSave, payloadToSave);
|
|
1818
|
-
if (
|
|
1819
|
-
await context.actions.
|
|
1806
|
+
if (isView && parentFileId === context.sceneConfigId && context.actions.delete_quest_link) {
|
|
1807
|
+
await context.actions.delete_quest_link(ownerId, context.sceneConfigId, linkIdToDelete);
|
|
1820
1808
|
}
|
|
1821
1809
|
graphDataRef.current[parentFileId] = specificParentData;
|
|
1822
1810
|
setters.setDetailsLink(
|
|
@@ -2048,13 +2036,15 @@ var userActionHandlers = {
|
|
|
2048
2036
|
links: sceneDataRef.current.links,
|
|
2049
2037
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
2050
2038
|
};
|
|
2051
|
-
const
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2039
|
+
for (const nodeId of nodesToDelete) {
|
|
2040
|
+
const questNode = (originalData.nodes || []).find((n) => String(n.id) === String(nodeId));
|
|
2041
|
+
if (questNode && questNode.is_quest) {
|
|
2042
|
+
await context.actions.delete_quest(ownerId, context.sceneConfigId, nodeId);
|
|
2043
|
+
}
|
|
2044
|
+
}
|
|
2045
|
+
for (const linkId of linksToDelete) {
|
|
2046
|
+
await context.actions.delete_quest_link(ownerId, context.sceneConfigId, linkId);
|
|
2047
|
+
}
|
|
2058
2048
|
} else {
|
|
2059
2049
|
filenameToSave = `x_view_dbs/${ownerId}/${parentFileId}`;
|
|
2060
2050
|
payloadToSave = originalData;
|
|
@@ -2146,15 +2136,9 @@ var userActionHandlers = {
|
|
|
2146
2136
|
links: newVisualLinks,
|
|
2147
2137
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
2148
2138
|
};
|
|
2149
|
-
const questFilePayload = {
|
|
2150
|
-
nodes: specificParentData.nodes,
|
|
2151
|
-
links: specificParentData.links,
|
|
2152
|
-
milestones: sceneDataRef.current.milestones || []
|
|
2153
|
-
};
|
|
2154
|
-
const questSaveUrl = context.sceneSaveUrl.replace("x_view_scenes", "x_view_quests");
|
|
2155
2139
|
try {
|
|
2156
2140
|
await context.actions.save_view_data(filenameToSave, payloadToSave);
|
|
2157
|
-
await context.actions.
|
|
2141
|
+
await context.actions.delete_quest(ownerId, context.sceneConfigId, nodeIdToDelete);
|
|
2158
2142
|
graphDataRef.current[parentFileId] = specificParentData;
|
|
2159
2143
|
setters.setDetailsNode(
|
|
2160
2144
|
(prev) => String(prev == null ? void 0 : prev.id) === String(nodeIdToDelete) ? null : prev
|
|
@@ -2317,17 +2301,11 @@ var userActionHandlers = {
|
|
|
2317
2301
|
links: sceneDataRef.current.links,
|
|
2318
2302
|
quest_counter: sceneDataRef.current.quest_counter || 1
|
|
2319
2303
|
};
|
|
2320
|
-
const questFilePayload = {
|
|
2321
|
-
nodes: specificParentData.nodes,
|
|
2322
|
-
links: specificParentData.links,
|
|
2323
|
-
milestones: sceneDataRef.current.milestones || []
|
|
2324
|
-
};
|
|
2325
2304
|
await context.actions.save_view_data(
|
|
2326
2305
|
context.sceneSaveUrl,
|
|
2327
2306
|
viewFilePayload
|
|
2328
2307
|
);
|
|
2329
|
-
|
|
2330
|
-
await context.actions.save_view_data(questSaveUrl, questFilePayload);
|
|
2308
|
+
await context.actions.save_quest(ownerId, context.sceneConfigId, nodeToSave);
|
|
2331
2309
|
} else {
|
|
2332
2310
|
const filenameForSpecificParent = `x_view_dbs/${ownerId}/${parentFileId}`;
|
|
2333
2311
|
await context.actions.save_view_data(
|
|
@@ -15540,7 +15518,11 @@ function XViewScene({
|
|
|
15540
15518
|
check_user_permission,
|
|
15541
15519
|
get_view_members,
|
|
15542
15520
|
create_google_doc_action,
|
|
15543
|
-
open_google_picker_action
|
|
15521
|
+
open_google_picker_action,
|
|
15522
|
+
save_quest_action,
|
|
15523
|
+
delete_quest_action,
|
|
15524
|
+
save_quest_link_action,
|
|
15525
|
+
delete_quest_link_action
|
|
15544
15526
|
}) {
|
|
15545
15527
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
|
|
15546
15528
|
const { data: session, status } = useSession();
|
|
@@ -18047,7 +18029,11 @@ function XViewScene({
|
|
|
18047
18029
|
get_single_parent_file,
|
|
18048
18030
|
get_scene_view_data,
|
|
18049
18031
|
upload_file: upload_file_action,
|
|
18050
|
-
delete_file: delete_file_action
|
|
18032
|
+
delete_file: delete_file_action,
|
|
18033
|
+
save_quest: save_quest_action,
|
|
18034
|
+
delete_quest: delete_quest_action,
|
|
18035
|
+
save_quest_link: save_quest_link_action,
|
|
18036
|
+
delete_quest_link: delete_quest_link_action
|
|
18051
18037
|
}
|
|
18052
18038
|
};
|
|
18053
18039
|
},
|
|
@@ -18066,7 +18052,11 @@ function XViewScene({
|
|
|
18066
18052
|
get_single_parent_file,
|
|
18067
18053
|
get_scene_view_data,
|
|
18068
18054
|
upload_file_action,
|
|
18069
|
-
delete_file_action
|
|
18055
|
+
delete_file_action,
|
|
18056
|
+
save_quest_action,
|
|
18057
|
+
delete_quest_action,
|
|
18058
|
+
save_quest_link_action,
|
|
18059
|
+
delete_quest_link_action
|
|
18070
18060
|
]
|
|
18071
18061
|
);
|
|
18072
18062
|
const handleStartVersioning = (nodeData) => {
|
|
@@ -18284,11 +18274,7 @@ function XViewScene({
|
|
|
18284
18274
|
milestones: sceneData.milestones || []
|
|
18285
18275
|
};
|
|
18286
18276
|
await save_view_data(sceneSaveUrl, sceneFileData);
|
|
18287
|
-
|
|
18288
|
-
"x_view_scenes",
|
|
18289
|
-
"x_view_quests"
|
|
18290
|
-
);
|
|
18291
|
-
await save_view_data(questSaveUrl, questFileData);
|
|
18277
|
+
await save_quest_action(ownerId, sceneConfigId, updatedNodeData);
|
|
18292
18278
|
}
|
|
18293
18279
|
const updatedNodeData = sceneData.quest_nodes[questIndex];
|
|
18294
18280
|
const nodeMesh = (_a2 = stateRef.current.nodeObjects) == null ? void 0 : _a2[String(questNodeId)];
|
|
@@ -18376,8 +18362,7 @@ function XViewScene({
|
|
|
18376
18362
|
};
|
|
18377
18363
|
try {
|
|
18378
18364
|
await actions.save_view_data(sceneSaveUrl2, sceneFileData);
|
|
18379
|
-
|
|
18380
|
-
await actions.save_view_data(questSaveUrl, questFileData);
|
|
18365
|
+
await actions.save_quest(ownerId2, sceneConfigId2, newNode);
|
|
18381
18366
|
sceneDataRef2.current.quest_counter = currentCounter + 1;
|
|
18382
18367
|
stateRef2.current.nodeIdToParentFileMap.set(String(newNode.id), {
|
|
18383
18368
|
parentFileId: sceneConfigId2,
|
|
@@ -18500,7 +18485,9 @@ function XViewScene({
|
|
|
18500
18485
|
if (line.material) line.material.dispose();
|
|
18501
18486
|
});
|
|
18502
18487
|
renderedAncestries.splice(renderIndex, 1);
|
|
18503
|
-
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
18488
|
+
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
18489
|
+
(a) => a.lines
|
|
18490
|
+
);
|
|
18504
18491
|
}
|
|
18505
18492
|
}, []);
|
|
18506
18493
|
const handleRenderAncestry = useCallback7(
|
|
@@ -19073,7 +19060,9 @@ function XViewScene({
|
|
|
19073
19060
|
});
|
|
19074
19061
|
};
|
|
19075
19062
|
renderVertical(fullTree, rootNodeMesh, rootTargetPos, 1);
|
|
19076
|
-
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
19063
|
+
stateRef.current.ancestryLinks = renderedAncestries.flatMap(
|
|
19064
|
+
(a) => a.lines
|
|
19065
|
+
);
|
|
19077
19066
|
tweenToTarget(rootTargetPos, 0.7);
|
|
19078
19067
|
},
|
|
19079
19068
|
[
|
|
@@ -19208,7 +19197,10 @@ function XViewScene({
|
|
|
19208
19197
|
};
|
|
19209
19198
|
const descriptionText = targetAncestryInfo.description || "";
|
|
19210
19199
|
const savedSections = targetAncestryInfo.description_sections || [];
|
|
19211
|
-
const sections = parseDescriptionSections(
|
|
19200
|
+
const sections = parseDescriptionSections(
|
|
19201
|
+
descriptionText,
|
|
19202
|
+
savedSections
|
|
19203
|
+
);
|
|
19212
19204
|
let focusTargetId = null;
|
|
19213
19205
|
if (popped && popped.nodeId) {
|
|
19214
19206
|
const mentionTag = `[[MENTION:node:${popped.nodeId}]]`;
|
|
@@ -19985,7 +19977,10 @@ function XViewScene({
|
|
|
19985
19977
|
}
|
|
19986
19978
|
if (ancestry_save_url && isExternalSave && get_ancestry_file) {
|
|
19987
19979
|
try {
|
|
19988
|
-
const viewDbResponse = await get_ancestry_file(
|
|
19980
|
+
const viewDbResponse = await get_ancestry_file(
|
|
19981
|
+
sceneConfigId,
|
|
19982
|
+
ownerId
|
|
19983
|
+
);
|
|
19989
19984
|
if (viewDbResponse.success && Array.isArray(viewDbResponse.data)) {
|
|
19990
19985
|
const hasInViewDb = viewDbResponse.data.some(
|
|
19991
19986
|
(anc) => String(anc.ancestry_id) === String(ancestryIdToDelete)
|
|
@@ -20949,12 +20944,18 @@ function XViewScene({
|
|
|
20949
20944
|
data: multiContextMenu,
|
|
20950
20945
|
userRole: userPermissionRole,
|
|
20951
20946
|
onClose: () => setMultiContextMenu((prev) => ({ ...prev, visible: false })),
|
|
20952
|
-
onDismissNodes: (ids) => userActionHandlers.handleDismissMultipleNodes(
|
|
20947
|
+
onDismissNodes: (ids) => userActionHandlers.handleDismissMultipleNodes(
|
|
20948
|
+
actionHandlerContext,
|
|
20949
|
+
ids
|
|
20950
|
+
),
|
|
20953
20951
|
onDismissOtherNodes: (ids) => userActionHandlers.handleDismissOtherMultipleNodes(
|
|
20954
20952
|
actionHandlerContext,
|
|
20955
20953
|
ids
|
|
20956
20954
|
),
|
|
20957
|
-
onDeleteNodes: (ids) => userActionHandlers.handleDeleteMultipleNodes(
|
|
20955
|
+
onDeleteNodes: (ids) => userActionHandlers.handleDeleteMultipleNodes(
|
|
20956
|
+
actionHandlerContext,
|
|
20957
|
+
ids
|
|
20958
|
+
)
|
|
20958
20959
|
}
|
|
20959
20960
|
),
|
|
20960
20961
|
/* @__PURE__ */ React32.createElement(
|
|
@@ -21107,7 +21108,7 @@ async function save_view_data_logic(db_services, filename, data) {
|
|
|
21107
21108
|
}
|
|
21108
21109
|
}
|
|
21109
21110
|
async function get_scene_view_data_logic(db_services, scene_config, owner_id, type, session, focusNodeId = null, focusAncestryId = null) {
|
|
21110
|
-
var _a, _b
|
|
21111
|
+
var _a, _b;
|
|
21111
21112
|
try {
|
|
21112
21113
|
if (!session || !session.user) {
|
|
21113
21114
|
return { success: false, error: "Usu\xE1rio n\xE3o autenticado." };
|
|
@@ -21134,35 +21135,43 @@ async function get_scene_view_data_logic(db_services, scene_config, owner_id, ty
|
|
|
21134
21135
|
const parentResponsesPromises = parentDbObjects.map(
|
|
21135
21136
|
(db_info) => db_services.get_file(`x_view_dbs/${db_info.owner_id}/${db_info.db_id}`)
|
|
21136
21137
|
);
|
|
21137
|
-
if (isView) {
|
|
21138
|
-
parentResponsesPromises.push(
|
|
21139
|
-
db_services.get_file(`x_view_quests/${owner_id}/${scene_config}`)
|
|
21140
|
-
);
|
|
21141
|
-
}
|
|
21142
21138
|
const parentResponsesResults = await Promise.allSettled(parentResponsesPromises);
|
|
21143
21139
|
const parentData = {};
|
|
21144
|
-
let
|
|
21145
|
-
|
|
21146
|
-
|
|
21147
|
-
|
|
21148
|
-
|
|
21149
|
-
|
|
21140
|
+
let currentQuestNodes = [];
|
|
21141
|
+
let currentQuestLinks = [];
|
|
21142
|
+
let currentMilestones = [];
|
|
21143
|
+
if (isView) {
|
|
21144
|
+
const firestoreQuestsRes = await db_services.get_view_quests_and_links(owner_id, scene_config);
|
|
21145
|
+
const isMigrated = sceneData.quests_migrated === true;
|
|
21146
|
+
if (firestoreQuestsRes.success && (firestoreQuestsRes.data.nodes.length > 0 || isMigrated)) {
|
|
21147
|
+
currentQuestNodes = firestoreQuestsRes.data.nodes;
|
|
21148
|
+
currentQuestLinks = firestoreQuestsRes.data.links;
|
|
21149
|
+
currentMilestones = sceneData.milestones || [];
|
|
21150
|
+
} else {
|
|
21151
|
+
console.log(`Iniciando Lazy Migration para View ${scene_config}...`);
|
|
21152
|
+
const legacyQuestsRes = await db_services.get_file(`x_view_quests/${owner_id}/${scene_config}`);
|
|
21153
|
+
if (legacyQuestsRes.success && legacyQuestsRes.data) {
|
|
21154
|
+
const legacyData = legacyQuestsRes.data;
|
|
21155
|
+
currentQuestNodes = legacyData.nodes || [];
|
|
21156
|
+
currentQuestLinks = legacyData.links || [];
|
|
21157
|
+
currentMilestones = legacyData.milestones || [];
|
|
21158
|
+
sceneData.milestones = currentMilestones;
|
|
21159
|
+
await db_services.migrate_legacy_quests(owner_id, scene_config, legacyData);
|
|
21150
21160
|
}
|
|
21151
|
-
continue;
|
|
21152
21161
|
}
|
|
21162
|
+
}
|
|
21163
|
+
for (let i = 0; i < parentResponsesResults.length; i++) {
|
|
21164
|
+
const result = parentResponsesResults[i];
|
|
21153
21165
|
const db_info = parentDbObjects[i];
|
|
21154
|
-
if (result.status === "fulfilled" && ((
|
|
21166
|
+
if (result.status === "fulfilled" && ((_a = result.value) == null ? void 0 : _a.success)) {
|
|
21155
21167
|
parentData[db_info.db_id] = result.value.data;
|
|
21156
21168
|
} else {
|
|
21157
21169
|
console.warn(
|
|
21158
21170
|
`Arquivo pai n\xE3o carregado: ${db_info.db_id}. Pode ter sido deletado.`,
|
|
21159
|
-
result.status === "rejected" ? result.reason : (
|
|
21171
|
+
result.status === "rejected" ? result.reason : (_b = result.value) == null ? void 0 : _b.error
|
|
21160
21172
|
);
|
|
21161
21173
|
}
|
|
21162
21174
|
}
|
|
21163
|
-
const currentQuestNodes = (questDataObj == null ? void 0 : questDataObj.nodes) || [];
|
|
21164
|
-
const currentQuestLinks = (questDataObj == null ? void 0 : questDataObj.links) || [];
|
|
21165
|
-
const currentMilestones = (questDataObj == null ? void 0 : questDataObj.milestones) || [];
|
|
21166
21175
|
if (isView) {
|
|
21167
21176
|
parentData[scene_config] = {
|
|
21168
21177
|
dataset_name: "Quests Internas (View)",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lv-x-software-house/x_view",
|
|
3
|
-
"version": "1.2.8-dev.
|
|
3
|
+
"version": "1.2.8-dev.3",
|
|
4
4
|
"description": "Pacote privado contendo os componentes e lógica de renderização 3D do X View.",
|
|
5
5
|
"author": "iv.x - Engenharia de Software - ivxsoftwarehouse@gmail.com",
|
|
6
6
|
"license": "UNLICENSED",
|