@lv-x-software-house/x_view 1.2.5-dev.50 → 1.2.5-dev.51
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 +21 -5
- package/dist/index.mjs +21 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -641,6 +641,7 @@ function XViewSidebar({
|
|
|
641
641
|
const [questFilterAssignee, setQuestFilterAssignee] = (0, import_react2.useState)("");
|
|
642
642
|
const [questFilterStatus, setQuestFilterStatus] = (0, import_react2.useState)("");
|
|
643
643
|
const [isQuestLensMenuOpen, setIsQuestLensMenuOpen] = (0, import_react2.useState)(false);
|
|
644
|
+
const [questFilterMilestone, setQuestFilterMilestone] = (0, import_react2.useState)("");
|
|
644
645
|
const [isTypeDropdownOpen, setIsTypeDropdownOpen] = (0, import_react2.useState)(false);
|
|
645
646
|
const [highlightedTypeIndex, setHighlightedTypeIndex] = (0, import_react2.useState)(-1);
|
|
646
647
|
const containerRef = (0, import_react2.useRef)(null);
|
|
@@ -1040,12 +1041,12 @@ function XViewSidebar({
|
|
|
1040
1041
|
"button",
|
|
1041
1042
|
{
|
|
1042
1043
|
onClick: () => setIsQuestLensMenuOpen(!isQuestLensMenuOpen),
|
|
1043
|
-
className: `${buttonBaseClass} ${isQuestLensMenuOpen || questFilterAssignee || questFilterStatus ? "bg-indigo-500/30 border-indigo-400" : ""}`,
|
|
1044
|
+
className: `${buttonBaseClass} ${isQuestLensMenuOpen || questFilterAssignee || questFilterStatus || questFilterMilestone ? "bg-indigo-500/30 border-indigo-400" : ""}`,
|
|
1044
1045
|
title: "Abrir filtros da Lente de Quests"
|
|
1045
1046
|
},
|
|
1046
1047
|
/* @__PURE__ */ import_react2.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react2.default.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }), /* @__PURE__ */ import_react2.default.createElement("path", { d: "M9 12l2 2 4-4" })),
|
|
1047
1048
|
"Quest Lens",
|
|
1048
|
-
(questFilterAssignee || questFilterStatus) && /* @__PURE__ */ import_react2.default.createElement("span", { className: "ml-1 px-1.5 py-0.5 rounded-full bg-indigo-500 text-[9px] font-bold" }, "!")
|
|
1049
|
+
(questFilterAssignee || questFilterStatus || questFilterMilestone) && /* @__PURE__ */ import_react2.default.createElement("span", { className: "ml-1 px-1.5 py-0.5 rounded-full bg-indigo-500 text-[9px] font-bold" }, "!")
|
|
1049
1050
|
), isQuestLensMenuOpen && /* @__PURE__ */ import_react2.default.createElement("div", { className: "absolute left-0 bottom-full mb-2 w-full p-4 rounded-xl bg-slate-900 border border-white/10 shadow-2xl z-50 flex flex-col gap-4 animate-in fade-in slide-in-from-bottom-2 duration-200" }, /* @__PURE__ */ import_react2.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react2.default.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Respons\xE1vel"), /* @__PURE__ */ import_react2.default.createElement(
|
|
1050
1051
|
"select",
|
|
1051
1052
|
{
|
|
@@ -1067,12 +1068,22 @@ function XViewSidebar({
|
|
|
1067
1068
|
/* @__PURE__ */ import_react2.default.createElement("option", { value: "In Progress" }, "In Progress"),
|
|
1068
1069
|
/* @__PURE__ */ import_react2.default.createElement("option", { value: "Review" }, "Review"),
|
|
1069
1070
|
/* @__PURE__ */ import_react2.default.createElement("option", { value: "Done" }, "Done")
|
|
1071
|
+
)), /* @__PURE__ */ import_react2.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react2.default.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Milestone"), /* @__PURE__ */ import_react2.default.createElement(
|
|
1072
|
+
"select",
|
|
1073
|
+
{
|
|
1074
|
+
value: questFilterMilestone,
|
|
1075
|
+
onChange: (e) => setQuestFilterMilestone(e.target.value),
|
|
1076
|
+
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
1077
|
+
},
|
|
1078
|
+
/* @__PURE__ */ import_react2.default.createElement("option", { value: "" }, "Todos os Milestones"),
|
|
1079
|
+
milestones.map((ms) => /* @__PURE__ */ import_react2.default.createElement("option", { key: ms.id, value: ms.id }, ms.name, " ", ms.status === "inactive" ? "(Inativo)" : ""))
|
|
1070
1080
|
)), /* @__PURE__ */ import_react2.default.createElement("div", { className: "flex gap-2 pt-1" }, /* @__PURE__ */ import_react2.default.createElement(
|
|
1071
1081
|
"button",
|
|
1072
1082
|
{
|
|
1073
1083
|
onClick: () => {
|
|
1074
1084
|
setQuestFilterAssignee("");
|
|
1075
1085
|
setQuestFilterStatus("");
|
|
1086
|
+
setQuestFilterMilestone("");
|
|
1076
1087
|
},
|
|
1077
1088
|
className: "flex-1 py-2 bg-white/5 hover:bg-white/10 text-slate-300 text-[11px] font-medium rounded-lg transition-colors border border-white/5"
|
|
1078
1089
|
},
|
|
@@ -1081,7 +1092,11 @@ function XViewSidebar({
|
|
|
1081
1092
|
"button",
|
|
1082
1093
|
{
|
|
1083
1094
|
onClick: () => {
|
|
1084
|
-
onActivateQuestLens({
|
|
1095
|
+
onActivateQuestLens({
|
|
1096
|
+
assigneeId: questFilterAssignee,
|
|
1097
|
+
status: questFilterStatus,
|
|
1098
|
+
milestoneId: questFilterMilestone
|
|
1099
|
+
});
|
|
1085
1100
|
setIsQuestLensMenuOpen(false);
|
|
1086
1101
|
onToggle(false);
|
|
1087
1102
|
},
|
|
@@ -14337,7 +14352,7 @@ function XViewScene({
|
|
|
14337
14352
|
},
|
|
14338
14353
|
[]
|
|
14339
14354
|
);
|
|
14340
|
-
const handleActivateQuestLens = (0, import_react29.useCallback)(({ assigneeId, status: status2 }) => {
|
|
14355
|
+
const handleActivateQuestLens = (0, import_react29.useCallback)(({ assigneeId, status: status2, milestoneId }) => {
|
|
14341
14356
|
var _a2;
|
|
14342
14357
|
const { nodeObjects, tweenGroup, graphGroup } = stateRef.current;
|
|
14343
14358
|
if (!nodeObjects || !tweenGroup || !graphGroup) return;
|
|
@@ -14345,7 +14360,8 @@ function XViewScene({
|
|
|
14345
14360
|
const filteredQuests = allQuests.filter((q) => {
|
|
14346
14361
|
const matchAssignee = !assigneeId || String(q.assignee_id) === String(assigneeId);
|
|
14347
14362
|
const matchStatus = !status2 ? q.status !== "Done" : String(q.status) === String(status2);
|
|
14348
|
-
|
|
14363
|
+
const matchMilestone = !milestoneId || q.milestone_ids && q.milestone_ids.includes(milestoneId);
|
|
14364
|
+
return matchAssignee && matchStatus && matchMilestone;
|
|
14349
14365
|
});
|
|
14350
14366
|
if (filteredQuests.length === 0) {
|
|
14351
14367
|
console.warn("Nenhuma quest encontrada para os filtros selecionados.");
|
package/dist/index.mjs
CHANGED
|
@@ -602,6 +602,7 @@ function XViewSidebar({
|
|
|
602
602
|
const [questFilterAssignee, setQuestFilterAssignee] = useState2("");
|
|
603
603
|
const [questFilterStatus, setQuestFilterStatus] = useState2("");
|
|
604
604
|
const [isQuestLensMenuOpen, setIsQuestLensMenuOpen] = useState2(false);
|
|
605
|
+
const [questFilterMilestone, setQuestFilterMilestone] = useState2("");
|
|
605
606
|
const [isTypeDropdownOpen, setIsTypeDropdownOpen] = useState2(false);
|
|
606
607
|
const [highlightedTypeIndex, setHighlightedTypeIndex] = useState2(-1);
|
|
607
608
|
const containerRef = useRef2(null);
|
|
@@ -1001,12 +1002,12 @@ function XViewSidebar({
|
|
|
1001
1002
|
"button",
|
|
1002
1003
|
{
|
|
1003
1004
|
onClick: () => setIsQuestLensMenuOpen(!isQuestLensMenuOpen),
|
|
1004
|
-
className: `${buttonBaseClass} ${isQuestLensMenuOpen || questFilterAssignee || questFilterStatus ? "bg-indigo-500/30 border-indigo-400" : ""}`,
|
|
1005
|
+
className: `${buttonBaseClass} ${isQuestLensMenuOpen || questFilterAssignee || questFilterStatus || questFilterMilestone ? "bg-indigo-500/30 border-indigo-400" : ""}`,
|
|
1005
1006
|
title: "Abrir filtros da Lente de Quests"
|
|
1006
1007
|
},
|
|
1007
1008
|
/* @__PURE__ */ React2.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React2.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }), /* @__PURE__ */ React2.createElement("path", { d: "M9 12l2 2 4-4" })),
|
|
1008
1009
|
"Quest Lens",
|
|
1009
|
-
(questFilterAssignee || questFilterStatus) && /* @__PURE__ */ React2.createElement("span", { className: "ml-1 px-1.5 py-0.5 rounded-full bg-indigo-500 text-[9px] font-bold" }, "!")
|
|
1010
|
+
(questFilterAssignee || questFilterStatus || questFilterMilestone) && /* @__PURE__ */ React2.createElement("span", { className: "ml-1 px-1.5 py-0.5 rounded-full bg-indigo-500 text-[9px] font-bold" }, "!")
|
|
1010
1011
|
), isQuestLensMenuOpen && /* @__PURE__ */ React2.createElement("div", { className: "absolute left-0 bottom-full mb-2 w-full p-4 rounded-xl bg-slate-900 border border-white/10 shadow-2xl z-50 flex flex-col gap-4 animate-in fade-in slide-in-from-bottom-2 duration-200" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Respons\xE1vel"), /* @__PURE__ */ React2.createElement(
|
|
1011
1012
|
"select",
|
|
1012
1013
|
{
|
|
@@ -1028,12 +1029,22 @@ function XViewSidebar({
|
|
|
1028
1029
|
/* @__PURE__ */ React2.createElement("option", { value: "In Progress" }, "In Progress"),
|
|
1029
1030
|
/* @__PURE__ */ React2.createElement("option", { value: "Review" }, "Review"),
|
|
1030
1031
|
/* @__PURE__ */ React2.createElement("option", { value: "Done" }, "Done")
|
|
1032
|
+
)), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Milestone"), /* @__PURE__ */ React2.createElement(
|
|
1033
|
+
"select",
|
|
1034
|
+
{
|
|
1035
|
+
value: questFilterMilestone,
|
|
1036
|
+
onChange: (e) => setQuestFilterMilestone(e.target.value),
|
|
1037
|
+
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
1038
|
+
},
|
|
1039
|
+
/* @__PURE__ */ React2.createElement("option", { value: "" }, "Todos os Milestones"),
|
|
1040
|
+
milestones.map((ms) => /* @__PURE__ */ React2.createElement("option", { key: ms.id, value: ms.id }, ms.name, " ", ms.status === "inactive" ? "(Inativo)" : ""))
|
|
1031
1041
|
)), /* @__PURE__ */ React2.createElement("div", { className: "flex gap-2 pt-1" }, /* @__PURE__ */ React2.createElement(
|
|
1032
1042
|
"button",
|
|
1033
1043
|
{
|
|
1034
1044
|
onClick: () => {
|
|
1035
1045
|
setQuestFilterAssignee("");
|
|
1036
1046
|
setQuestFilterStatus("");
|
|
1047
|
+
setQuestFilterMilestone("");
|
|
1037
1048
|
},
|
|
1038
1049
|
className: "flex-1 py-2 bg-white/5 hover:bg-white/10 text-slate-300 text-[11px] font-medium rounded-lg transition-colors border border-white/5"
|
|
1039
1050
|
},
|
|
@@ -1042,7 +1053,11 @@ function XViewSidebar({
|
|
|
1042
1053
|
"button",
|
|
1043
1054
|
{
|
|
1044
1055
|
onClick: () => {
|
|
1045
|
-
onActivateQuestLens({
|
|
1056
|
+
onActivateQuestLens({
|
|
1057
|
+
assigneeId: questFilterAssignee,
|
|
1058
|
+
status: questFilterStatus,
|
|
1059
|
+
milestoneId: questFilterMilestone
|
|
1060
|
+
});
|
|
1046
1061
|
setIsQuestLensMenuOpen(false);
|
|
1047
1062
|
onToggle(false);
|
|
1048
1063
|
},
|
|
@@ -14381,7 +14396,7 @@ function XViewScene({
|
|
|
14381
14396
|
},
|
|
14382
14397
|
[]
|
|
14383
14398
|
);
|
|
14384
|
-
const handleActivateQuestLens = useCallback4(({ assigneeId, status: status2 }) => {
|
|
14399
|
+
const handleActivateQuestLens = useCallback4(({ assigneeId, status: status2, milestoneId }) => {
|
|
14385
14400
|
var _a2;
|
|
14386
14401
|
const { nodeObjects, tweenGroup, graphGroup } = stateRef.current;
|
|
14387
14402
|
if (!nodeObjects || !tweenGroup || !graphGroup) return;
|
|
@@ -14389,7 +14404,8 @@ function XViewScene({
|
|
|
14389
14404
|
const filteredQuests = allQuests.filter((q) => {
|
|
14390
14405
|
const matchAssignee = !assigneeId || String(q.assignee_id) === String(assigneeId);
|
|
14391
14406
|
const matchStatus = !status2 ? q.status !== "Done" : String(q.status) === String(status2);
|
|
14392
|
-
|
|
14407
|
+
const matchMilestone = !milestoneId || q.milestone_ids && q.milestone_ids.includes(milestoneId);
|
|
14408
|
+
return matchAssignee && matchStatus && matchMilestone;
|
|
14393
14409
|
});
|
|
14394
14410
|
if (filteredQuests.length === 0) {
|
|
14395
14411
|
console.warn("Nenhuma quest encontrada para os filtros selecionados.");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lv-x-software-house/x_view",
|
|
3
|
-
"version": "1.2.5-dev.
|
|
3
|
+
"version": "1.2.5-dev.51",
|
|
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",
|