@lv-x-software-house/x_view 1.2.4-dev.24 → 1.2.4-dev.25
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/README.md +1 -1
- package/dist/index.js +37 -23
- package/dist/index.mjs +37 -23
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
x.view - from ŀv.x - Software Engineering
|
package/dist/index.js
CHANGED
|
@@ -7971,10 +7971,13 @@ function InSceneQuestForm({
|
|
|
7971
7971
|
availableAncestries = [],
|
|
7972
7972
|
onMentionClick,
|
|
7973
7973
|
onUploadFile,
|
|
7974
|
-
// NOVAS PROPS PARA O GHOST NODE
|
|
7975
7974
|
onNameChange,
|
|
7976
7975
|
onColorChange,
|
|
7977
|
-
onSizeChange
|
|
7976
|
+
onSizeChange,
|
|
7977
|
+
viewName = "Projeto",
|
|
7978
|
+
// NOVA PROP
|
|
7979
|
+
questCounter = 1
|
|
7980
|
+
// NOVA PROP
|
|
7978
7981
|
}) {
|
|
7979
7982
|
const [name, setName] = (0, import_react16.useState)("");
|
|
7980
7983
|
const [types, setTypes] = (0, import_react16.useState)(["quest"]);
|
|
@@ -7987,6 +7990,7 @@ function InSceneQuestForm({
|
|
|
7987
7990
|
const [customProps, setCustomProps] = (0, import_react16.useState)([]);
|
|
7988
7991
|
const [isDescriptionModalOpen, setIsDescriptionModalOpen] = (0, import_react16.useState)(false);
|
|
7989
7992
|
const propsEndRef = (0, import_react16.useRef)(null);
|
|
7993
|
+
const standardizedName = `${viewName} - ${questCounter} - \xBB ${name || "Nova Quest"}`;
|
|
7990
7994
|
const handleAddProp = () => {
|
|
7991
7995
|
const newProp = createNewCustomProperty(customProps);
|
|
7992
7996
|
setCustomProps([...customProps, newProp]);
|
|
@@ -8023,7 +8027,7 @@ function InSceneQuestForm({
|
|
|
8023
8027
|
const handleSubmit = (e) => {
|
|
8024
8028
|
e.preventDefault();
|
|
8025
8029
|
if (!name.trim()) {
|
|
8026
|
-
alert("O campo '
|
|
8030
|
+
alert("O campo 'T\xEDtulo' \xE9 obrigat\xF3rio.");
|
|
8027
8031
|
return;
|
|
8028
8032
|
}
|
|
8029
8033
|
const additionalData = toObjectFromCustomProps(
|
|
@@ -8031,7 +8035,10 @@ function InSceneQuestForm({
|
|
|
8031
8035
|
);
|
|
8032
8036
|
const processedSections = processDescriptionForSave(description, []);
|
|
8033
8037
|
onSave({
|
|
8034
|
-
name:
|
|
8038
|
+
name: standardizedName,
|
|
8039
|
+
// SALVA O NOME FORMATADO
|
|
8040
|
+
raw_title: name.trim(),
|
|
8041
|
+
// Salva o título puro como fallback ou metadado útil
|
|
8035
8042
|
type: types,
|
|
8036
8043
|
color: QUEST_STATUS_COLORS[status],
|
|
8037
8044
|
status,
|
|
@@ -8070,7 +8077,21 @@ function InSceneQuestForm({
|
|
|
8070
8077
|
},
|
|
8071
8078
|
"\xD7"
|
|
8072
8079
|
)),
|
|
8073
|
-
/* @__PURE__ */ import_react16.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col max-h-[68vh]" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "px-6 pb-28 overflow-y-auto overscroll-contain space-y-4 custom-scrollbar" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "space-y-1.5
|
|
8080
|
+
/* @__PURE__ */ import_react16.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col max-h-[68vh]" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "px-6 pb-28 overflow-y-auto overscroll-contain space-y-4 custom-scrollbar" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react16.default.createElement("label", { className: "text-xs text-slate-300" }, "T\xEDtulo da Quest"), /* @__PURE__ */ import_react16.default.createElement(
|
|
8081
|
+
"input",
|
|
8082
|
+
{
|
|
8083
|
+
required: true,
|
|
8084
|
+
type: "text",
|
|
8085
|
+
placeholder: "Ex.: Refatorar M\xF3dulo X",
|
|
8086
|
+
value: name,
|
|
8087
|
+
onChange: (e) => {
|
|
8088
|
+
const val = e.target.value;
|
|
8089
|
+
setName(val);
|
|
8090
|
+
onNameChange == null ? void 0 : onNameChange(`${viewName} - ${questCounter} - \xBB ${val || "Nova Quest"}`);
|
|
8091
|
+
},
|
|
8092
|
+
className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60"
|
|
8093
|
+
}
|
|
8094
|
+
), /* @__PURE__ */ import_react16.default.createElement("div", { className: "pt-1 flex items-center gap-1.5" }, /* @__PURE__ */ import_react16.default.createElement("span", { className: "text-[10px] uppercase font-bold text-slate-500 tracking-wider" }, "Preview:"), /* @__PURE__ */ import_react16.default.createElement("p", { className: "text-xs text-indigo-300 font-medium truncate", title: standardizedName }, standardizedName))), /* @__PURE__ */ import_react16.default.createElement("div", { className: "space-y-1.5 relative mt-2" }, /* @__PURE__ */ import_react16.default.createElement("label", { className: "text-xs text-slate-300" }, "Status da Quest"), /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative" }, /* @__PURE__ */ import_react16.default.createElement(
|
|
8074
8095
|
"button",
|
|
8075
8096
|
{
|
|
8076
8097
|
type: "button",
|
|
@@ -8092,20 +8113,7 @@ function InSceneQuestForm({
|
|
|
8092
8113
|
},
|
|
8093
8114
|
/* @__PURE__ */ import_react16.default.createElement("span", { className: "w-3 h-3 rounded-full", style: { backgroundColor: QUEST_STATUS_COLORS[s] } }),
|
|
8094
8115
|
s
|
|
8095
|
-
)))))), /* @__PURE__ */ import_react16.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react16.default.createElement("label", { className: "text-xs text-slate-300" }, "
|
|
8096
|
-
"input",
|
|
8097
|
-
{
|
|
8098
|
-
required: true,
|
|
8099
|
-
type: "text",
|
|
8100
|
-
placeholder: "Ex.: Refatorar M\xF3dulo X",
|
|
8101
|
-
value: name,
|
|
8102
|
-
onChange: (e) => {
|
|
8103
|
-
setName(e.target.value);
|
|
8104
|
-
onNameChange == null ? void 0 : onNameChange(e.target.value);
|
|
8105
|
-
},
|
|
8106
|
-
className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60"
|
|
8107
|
-
}
|
|
8108
|
-
)), /* @__PURE__ */ import_react16.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react16.default.createElement("label", { className: "text-xs text-slate-300" }, "Tipos Adicionais"), /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative w-full bg-slate-800/70 p-1.5 min-h-[42px] flex flex-wrap gap-1.5 rounded-lg border border-white/10 focus-within:ring-2 focus-within:ring-indigo-400/60 transition-all" }, types.map((t, index) => /* @__PURE__ */ import_react16.default.createElement("span", { key: index, className: `flex items-center gap-1 px-1.5 py-0.5 rounded-md text-xs font-medium border ${t === "quest" ? "bg-sky-500/20 text-sky-200 border-sky-500/30" : "bg-indigo-500/30 text-indigo-100 border-indigo-500/20"}` }, t, t !== "quest" && /* @__PURE__ */ import_react16.default.createElement("button", { type: "button", onClick: () => handleRemoveType(index), className: "hover:text-white transition-colors" }, /* @__PURE__ */ import_react16.default.createElement(import_fi14.FiX, { size: 12 })))), /* @__PURE__ */ import_react16.default.createElement(
|
|
8116
|
+
)))))), /* @__PURE__ */ import_react16.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react16.default.createElement("label", { className: "text-xs text-slate-300" }, "Tipos Adicionais"), /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative w-full bg-slate-800/70 p-1.5 min-h-[42px] flex flex-wrap gap-1.5 rounded-lg border border-white/10 focus-within:ring-2 focus-within:ring-indigo-400/60 transition-all" }, types.map((t, index) => /* @__PURE__ */ import_react16.default.createElement("span", { key: index, className: `flex items-center gap-1 px-1.5 py-0.5 rounded-md text-xs font-medium border ${t === "quest" ? "bg-sky-500/20 text-sky-200 border-sky-500/30" : "bg-indigo-500/30 text-indigo-100 border-indigo-500/20"}` }, t, t !== "quest" && /* @__PURE__ */ import_react16.default.createElement("button", { type: "button", onClick: () => handleRemoveType(index), className: "hover:text-white transition-colors" }, /* @__PURE__ */ import_react16.default.createElement(import_fi14.FiX, { size: 12 })))), /* @__PURE__ */ import_react16.default.createElement(
|
|
8109
8117
|
"input",
|
|
8110
8118
|
{
|
|
8111
8119
|
type: "text",
|
|
@@ -10303,7 +10311,7 @@ function XViewScene({
|
|
|
10303
10311
|
delete_file_action,
|
|
10304
10312
|
check_user_permission
|
|
10305
10313
|
}) {
|
|
10306
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
10314
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
10307
10315
|
const { data: session, status } = (0, import_react27.useSession)();
|
|
10308
10316
|
const router = (0, import_navigation.useRouter)();
|
|
10309
10317
|
const searchParams = (0, import_navigation.useSearchParams)();
|
|
@@ -11978,6 +11986,7 @@ function XViewScene({
|
|
|
11978
11986
|
const handleSaveQuestNode = async (context, newQuestData) => {
|
|
11979
11987
|
const { graphDataRef, sceneDataRef: sceneDataRef2, stateRef: stateRef2, setters, actions, sceneSaveUrl: sceneSaveUrl2, viewType, sceneConfigId: sceneConfigId2, ownerId: ownerId2 } = context;
|
|
11980
11988
|
if (!graphDataRef.current || (viewType == null ? void 0 : viewType.toLowerCase()) !== "view") return;
|
|
11989
|
+
const currentCounter = sceneDataRef2.current.quest_counter || 1;
|
|
11981
11990
|
const newNode = {
|
|
11982
11991
|
id: import_short_uuid2.default.generate(),
|
|
11983
11992
|
...newQuestData,
|
|
@@ -11993,10 +12002,13 @@ function XViewScene({
|
|
|
11993
12002
|
nodes: sceneDataRef2.current.nodes,
|
|
11994
12003
|
links: sceneDataRef2.current.links,
|
|
11995
12004
|
quest_nodes: graphDataRef.current[sceneConfigId2].nodes,
|
|
11996
|
-
quest_links: graphDataRef.current[sceneConfigId2].links
|
|
12005
|
+
quest_links: graphDataRef.current[sceneConfigId2].links,
|
|
12006
|
+
quest_counter: currentCounter + 1
|
|
12007
|
+
// NOVO: Incrementa o contador nos metadados
|
|
11997
12008
|
};
|
|
11998
12009
|
try {
|
|
11999
12010
|
await actions.save_view_data(sceneSaveUrl2, sceneFileData);
|
|
12011
|
+
sceneDataRef2.current.quest_counter = currentCounter + 1;
|
|
12000
12012
|
stateRef2.current.nodeIdToParentFileMap.set(String(newNode.id), {
|
|
12001
12013
|
parentFileId: sceneConfigId2,
|
|
12002
12014
|
ownerId: ownerId2,
|
|
@@ -13658,7 +13670,9 @@ function XViewScene({
|
|
|
13658
13670
|
onMentionClick: handleAddExistingNode,
|
|
13659
13671
|
onUploadFile: upload_file_action,
|
|
13660
13672
|
availableNodes: allAvailableNodes,
|
|
13661
|
-
availableAncestries: allAvailableAncestries
|
|
13673
|
+
availableAncestries: allAvailableAncestries,
|
|
13674
|
+
viewName: viewParams == null ? void 0 : viewParams.name,
|
|
13675
|
+
questCounter: ((_g = sceneDataRef.current) == null ? void 0 : _g.quest_counter) || 1
|
|
13662
13676
|
}
|
|
13663
13677
|
),
|
|
13664
13678
|
readingMode.isActive && readingMode.ancestry && /* @__PURE__ */ import_react26.default.createElement(
|
|
@@ -13927,7 +13941,7 @@ function XViewScene({
|
|
|
13927
13941
|
onClose: () => setIsImportModalOpen(false),
|
|
13928
13942
|
onConfirm: handleConfirmImport,
|
|
13929
13943
|
session,
|
|
13930
|
-
parentDbs: ((
|
|
13944
|
+
parentDbs: ((_h = sceneDataRef.current) == null ? void 0 : _h.parent_dbs) || [],
|
|
13931
13945
|
onFetchAvailableFiles: import_parent_file_modal_get,
|
|
13932
13946
|
currentViewName: viewParams == null ? void 0 : viewParams.name,
|
|
13933
13947
|
currentAncestries: ancestryDataRef.current || []
|
package/dist/index.mjs
CHANGED
|
@@ -7958,10 +7958,13 @@ function InSceneQuestForm({
|
|
|
7958
7958
|
availableAncestries = [],
|
|
7959
7959
|
onMentionClick,
|
|
7960
7960
|
onUploadFile,
|
|
7961
|
-
// NOVAS PROPS PARA O GHOST NODE
|
|
7962
7961
|
onNameChange,
|
|
7963
7962
|
onColorChange,
|
|
7964
|
-
onSizeChange
|
|
7963
|
+
onSizeChange,
|
|
7964
|
+
viewName = "Projeto",
|
|
7965
|
+
// NOVA PROP
|
|
7966
|
+
questCounter = 1
|
|
7967
|
+
// NOVA PROP
|
|
7965
7968
|
}) {
|
|
7966
7969
|
const [name, setName] = useState16("");
|
|
7967
7970
|
const [types, setTypes] = useState16(["quest"]);
|
|
@@ -7974,6 +7977,7 @@ function InSceneQuestForm({
|
|
|
7974
7977
|
const [customProps, setCustomProps] = useState16([]);
|
|
7975
7978
|
const [isDescriptionModalOpen, setIsDescriptionModalOpen] = useState16(false);
|
|
7976
7979
|
const propsEndRef = useRef12(null);
|
|
7980
|
+
const standardizedName = `${viewName} - ${questCounter} - \xBB ${name || "Nova Quest"}`;
|
|
7977
7981
|
const handleAddProp = () => {
|
|
7978
7982
|
const newProp = createNewCustomProperty(customProps);
|
|
7979
7983
|
setCustomProps([...customProps, newProp]);
|
|
@@ -8010,7 +8014,7 @@ function InSceneQuestForm({
|
|
|
8010
8014
|
const handleSubmit = (e) => {
|
|
8011
8015
|
e.preventDefault();
|
|
8012
8016
|
if (!name.trim()) {
|
|
8013
|
-
alert("O campo '
|
|
8017
|
+
alert("O campo 'T\xEDtulo' \xE9 obrigat\xF3rio.");
|
|
8014
8018
|
return;
|
|
8015
8019
|
}
|
|
8016
8020
|
const additionalData = toObjectFromCustomProps(
|
|
@@ -8018,7 +8022,10 @@ function InSceneQuestForm({
|
|
|
8018
8022
|
);
|
|
8019
8023
|
const processedSections = processDescriptionForSave(description, []);
|
|
8020
8024
|
onSave({
|
|
8021
|
-
name:
|
|
8025
|
+
name: standardizedName,
|
|
8026
|
+
// SALVA O NOME FORMATADO
|
|
8027
|
+
raw_title: name.trim(),
|
|
8028
|
+
// Salva o título puro como fallback ou metadado útil
|
|
8022
8029
|
type: types,
|
|
8023
8030
|
color: QUEST_STATUS_COLORS[status],
|
|
8024
8031
|
status,
|
|
@@ -8057,7 +8064,21 @@ function InSceneQuestForm({
|
|
|
8057
8064
|
},
|
|
8058
8065
|
"\xD7"
|
|
8059
8066
|
)),
|
|
8060
|
-
/* @__PURE__ */ React15.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col max-h-[68vh]" }, /* @__PURE__ */ React15.createElement("div", { className: "px-6 pb-28 overflow-y-auto overscroll-contain space-y-4 custom-scrollbar" }, /* @__PURE__ */ React15.createElement("div", { className: "space-y-1.5
|
|
8067
|
+
/* @__PURE__ */ React15.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col max-h-[68vh]" }, /* @__PURE__ */ React15.createElement("div", { className: "px-6 pb-28 overflow-y-auto overscroll-contain space-y-4 custom-scrollbar" }, /* @__PURE__ */ React15.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React15.createElement("label", { className: "text-xs text-slate-300" }, "T\xEDtulo da Quest"), /* @__PURE__ */ React15.createElement(
|
|
8068
|
+
"input",
|
|
8069
|
+
{
|
|
8070
|
+
required: true,
|
|
8071
|
+
type: "text",
|
|
8072
|
+
placeholder: "Ex.: Refatorar M\xF3dulo X",
|
|
8073
|
+
value: name,
|
|
8074
|
+
onChange: (e) => {
|
|
8075
|
+
const val = e.target.value;
|
|
8076
|
+
setName(val);
|
|
8077
|
+
onNameChange == null ? void 0 : onNameChange(`${viewName} - ${questCounter} - \xBB ${val || "Nova Quest"}`);
|
|
8078
|
+
},
|
|
8079
|
+
className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60"
|
|
8080
|
+
}
|
|
8081
|
+
), /* @__PURE__ */ React15.createElement("div", { className: "pt-1 flex items-center gap-1.5" }, /* @__PURE__ */ React15.createElement("span", { className: "text-[10px] uppercase font-bold text-slate-500 tracking-wider" }, "Preview:"), /* @__PURE__ */ React15.createElement("p", { className: "text-xs text-indigo-300 font-medium truncate", title: standardizedName }, standardizedName))), /* @__PURE__ */ React15.createElement("div", { className: "space-y-1.5 relative mt-2" }, /* @__PURE__ */ React15.createElement("label", { className: "text-xs text-slate-300" }, "Status da Quest"), /* @__PURE__ */ React15.createElement("div", { className: "relative" }, /* @__PURE__ */ React15.createElement(
|
|
8061
8082
|
"button",
|
|
8062
8083
|
{
|
|
8063
8084
|
type: "button",
|
|
@@ -8079,20 +8100,7 @@ function InSceneQuestForm({
|
|
|
8079
8100
|
},
|
|
8080
8101
|
/* @__PURE__ */ React15.createElement("span", { className: "w-3 h-3 rounded-full", style: { backgroundColor: QUEST_STATUS_COLORS[s] } }),
|
|
8081
8102
|
s
|
|
8082
|
-
)))))), /* @__PURE__ */ React15.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React15.createElement("label", { className: "text-xs text-slate-300" }, "
|
|
8083
|
-
"input",
|
|
8084
|
-
{
|
|
8085
|
-
required: true,
|
|
8086
|
-
type: "text",
|
|
8087
|
-
placeholder: "Ex.: Refatorar M\xF3dulo X",
|
|
8088
|
-
value: name,
|
|
8089
|
-
onChange: (e) => {
|
|
8090
|
-
setName(e.target.value);
|
|
8091
|
-
onNameChange == null ? void 0 : onNameChange(e.target.value);
|
|
8092
|
-
},
|
|
8093
|
-
className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60"
|
|
8094
|
-
}
|
|
8095
|
-
)), /* @__PURE__ */ React15.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React15.createElement("label", { className: "text-xs text-slate-300" }, "Tipos Adicionais"), /* @__PURE__ */ React15.createElement("div", { className: "relative w-full bg-slate-800/70 p-1.5 min-h-[42px] flex flex-wrap gap-1.5 rounded-lg border border-white/10 focus-within:ring-2 focus-within:ring-indigo-400/60 transition-all" }, types.map((t, index) => /* @__PURE__ */ React15.createElement("span", { key: index, className: `flex items-center gap-1 px-1.5 py-0.5 rounded-md text-xs font-medium border ${t === "quest" ? "bg-sky-500/20 text-sky-200 border-sky-500/30" : "bg-indigo-500/30 text-indigo-100 border-indigo-500/20"}` }, t, t !== "quest" && /* @__PURE__ */ React15.createElement("button", { type: "button", onClick: () => handleRemoveType(index), className: "hover:text-white transition-colors" }, /* @__PURE__ */ React15.createElement(FiX4, { size: 12 })))), /* @__PURE__ */ React15.createElement(
|
|
8103
|
+
)))))), /* @__PURE__ */ React15.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React15.createElement("label", { className: "text-xs text-slate-300" }, "Tipos Adicionais"), /* @__PURE__ */ React15.createElement("div", { className: "relative w-full bg-slate-800/70 p-1.5 min-h-[42px] flex flex-wrap gap-1.5 rounded-lg border border-white/10 focus-within:ring-2 focus-within:ring-indigo-400/60 transition-all" }, types.map((t, index) => /* @__PURE__ */ React15.createElement("span", { key: index, className: `flex items-center gap-1 px-1.5 py-0.5 rounded-md text-xs font-medium border ${t === "quest" ? "bg-sky-500/20 text-sky-200 border-sky-500/30" : "bg-indigo-500/30 text-indigo-100 border-indigo-500/20"}` }, t, t !== "quest" && /* @__PURE__ */ React15.createElement("button", { type: "button", onClick: () => handleRemoveType(index), className: "hover:text-white transition-colors" }, /* @__PURE__ */ React15.createElement(FiX4, { size: 12 })))), /* @__PURE__ */ React15.createElement(
|
|
8096
8104
|
"input",
|
|
8097
8105
|
{
|
|
8098
8106
|
type: "text",
|
|
@@ -10303,7 +10311,7 @@ function XViewScene({
|
|
|
10303
10311
|
delete_file_action,
|
|
10304
10312
|
check_user_permission
|
|
10305
10313
|
}) {
|
|
10306
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
10314
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
10307
10315
|
const { data: session, status } = useSession();
|
|
10308
10316
|
const router = useRouter();
|
|
10309
10317
|
const searchParams = useSearchParams();
|
|
@@ -11978,6 +11986,7 @@ function XViewScene({
|
|
|
11978
11986
|
const handleSaveQuestNode = async (context, newQuestData) => {
|
|
11979
11987
|
const { graphDataRef, sceneDataRef: sceneDataRef2, stateRef: stateRef2, setters, actions, sceneSaveUrl: sceneSaveUrl2, viewType, sceneConfigId: sceneConfigId2, ownerId: ownerId2 } = context;
|
|
11980
11988
|
if (!graphDataRef.current || (viewType == null ? void 0 : viewType.toLowerCase()) !== "view") return;
|
|
11989
|
+
const currentCounter = sceneDataRef2.current.quest_counter || 1;
|
|
11981
11990
|
const newNode = {
|
|
11982
11991
|
id: short2.generate(),
|
|
11983
11992
|
...newQuestData,
|
|
@@ -11993,10 +12002,13 @@ function XViewScene({
|
|
|
11993
12002
|
nodes: sceneDataRef2.current.nodes,
|
|
11994
12003
|
links: sceneDataRef2.current.links,
|
|
11995
12004
|
quest_nodes: graphDataRef.current[sceneConfigId2].nodes,
|
|
11996
|
-
quest_links: graphDataRef.current[sceneConfigId2].links
|
|
12005
|
+
quest_links: graphDataRef.current[sceneConfigId2].links,
|
|
12006
|
+
quest_counter: currentCounter + 1
|
|
12007
|
+
// NOVO: Incrementa o contador nos metadados
|
|
11997
12008
|
};
|
|
11998
12009
|
try {
|
|
11999
12010
|
await actions.save_view_data(sceneSaveUrl2, sceneFileData);
|
|
12011
|
+
sceneDataRef2.current.quest_counter = currentCounter + 1;
|
|
12000
12012
|
stateRef2.current.nodeIdToParentFileMap.set(String(newNode.id), {
|
|
12001
12013
|
parentFileId: sceneConfigId2,
|
|
12002
12014
|
ownerId: ownerId2,
|
|
@@ -13658,7 +13670,9 @@ function XViewScene({
|
|
|
13658
13670
|
onMentionClick: handleAddExistingNode,
|
|
13659
13671
|
onUploadFile: upload_file_action,
|
|
13660
13672
|
availableNodes: allAvailableNodes,
|
|
13661
|
-
availableAncestries: allAvailableAncestries
|
|
13673
|
+
availableAncestries: allAvailableAncestries,
|
|
13674
|
+
viewName: viewParams == null ? void 0 : viewParams.name,
|
|
13675
|
+
questCounter: ((_g = sceneDataRef.current) == null ? void 0 : _g.quest_counter) || 1
|
|
13662
13676
|
}
|
|
13663
13677
|
),
|
|
13664
13678
|
readingMode.isActive && readingMode.ancestry && /* @__PURE__ */ React25.createElement(
|
|
@@ -13927,7 +13941,7 @@ function XViewScene({
|
|
|
13927
13941
|
onClose: () => setIsImportModalOpen(false),
|
|
13928
13942
|
onConfirm: handleConfirmImport,
|
|
13929
13943
|
session,
|
|
13930
|
-
parentDbs: ((
|
|
13944
|
+
parentDbs: ((_h = sceneDataRef.current) == null ? void 0 : _h.parent_dbs) || [],
|
|
13931
13945
|
onFetchAvailableFiles: import_parent_file_modal_get,
|
|
13932
13946
|
currentViewName: viewParams == null ? void 0 : viewParams.name,
|
|
13933
13947
|
currentAncestries: ancestryDataRef.current || []
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lv-x-software-house/x_view",
|
|
3
|
-
"version": "1.2.4-dev.
|
|
3
|
+
"version": "1.2.4-dev.25",
|
|
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",
|