@lv-x-software-house/x_view 1.2.5-dev.16 → 1.2.5-dev.17
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 -32
- package/dist/index.mjs +79 -32
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -627,22 +627,34 @@ function XViewSidebar({
|
|
|
627
627
|
}, [userRole]);
|
|
628
628
|
const contextLabel = (0, import_react2.useMemo)(() => {
|
|
629
629
|
if (!viewType || !viewName) return null;
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
630
|
+
console.log("XViewSidebar: contextLabel viewType", viewType);
|
|
631
|
+
try {
|
|
632
|
+
const typeLower = viewType.toLowerCase();
|
|
633
|
+
if (typeLower === "database") {
|
|
634
|
+
return `Dataset: ${viewName}`;
|
|
635
|
+
} else if (typeLower === "view") {
|
|
636
|
+
return `View: ${viewName}`;
|
|
637
|
+
} else if (typeLower === "node") {
|
|
638
|
+
return `Node: ${viewName}`;
|
|
639
|
+
}
|
|
640
|
+
return `${viewType}: ${viewName}`;
|
|
641
|
+
} catch (err) {
|
|
642
|
+
console.error("XViewSidebar: Erro no contextLabel ao converter viewType:", viewType, err);
|
|
643
|
+
return `${viewType}: ${viewName}`;
|
|
644
|
+
}
|
|
639
645
|
}, [viewType, viewName]);
|
|
640
|
-
const normalize = (str = "") =>
|
|
646
|
+
const normalize = (str = "") => {
|
|
647
|
+
if (str === void 0 || str === null) {
|
|
648
|
+
console.warn("XViewSidebar: normalize recebeu valor nulo/indefinido:", str);
|
|
649
|
+
}
|
|
650
|
+
return String(str).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[._\-–—:,;!?'"()\[\]{}/\\]/g, " ").replace(/\s+/g, " ").trim();
|
|
651
|
+
};
|
|
641
652
|
const collator = (0, import_react2.useMemo)(
|
|
642
653
|
() => new Intl.Collator("pt-BR", { sensitivity: "base", numeric: true }),
|
|
643
654
|
[]
|
|
644
655
|
);
|
|
645
656
|
const availableTypes = (0, import_react2.useMemo)(() => {
|
|
657
|
+
console.log("XViewSidebar: recalculando availableTypes, dbNodes count:", dbNodes == null ? void 0 : dbNodes.length);
|
|
646
658
|
const typesSet = /* @__PURE__ */ new Set();
|
|
647
659
|
(dbNodes || []).forEach((node) => {
|
|
648
660
|
if (Array.isArray(node.type)) {
|
|
@@ -653,7 +665,9 @@ function XViewSidebar({
|
|
|
653
665
|
typesSet.add(node.type);
|
|
654
666
|
}
|
|
655
667
|
});
|
|
656
|
-
|
|
668
|
+
const result = Array.from(typesSet).sort();
|
|
669
|
+
console.log("XViewSidebar: availableTypes final:", result);
|
|
670
|
+
return result;
|
|
657
671
|
}, [dbNodes]);
|
|
658
672
|
const filteredAndSorted = (0, import_react2.useMemo)(() => {
|
|
659
673
|
const base = Array.isArray(dbNodes) ? dbNodes : [];
|
|
@@ -667,13 +681,22 @@ function XViewSidebar({
|
|
|
667
681
|
});
|
|
668
682
|
}
|
|
669
683
|
if (activeFilters.length > 0) {
|
|
684
|
+
console.log("XViewSidebar: aplicando activeFilters:", activeFilters);
|
|
670
685
|
pool = pool.filter((node) => {
|
|
671
686
|
return activeFilters.every((filter) => {
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
687
|
+
try {
|
|
688
|
+
if (filter.type === "Type") {
|
|
689
|
+
const nodeTypes = Array.isArray(node.type) ? node.type : [node.type];
|
|
690
|
+
return nodeTypes.some((t) => {
|
|
691
|
+
if (t === void 0) console.log("XViewSidebar: t \xE9 undefined no node:", node.id);
|
|
692
|
+
if (filter.value === void 0) console.log("XViewSidebar: filter.value \xE9 undefined");
|
|
693
|
+
return String(t).toLowerCase() === String(filter.value).toLowerCase();
|
|
694
|
+
});
|
|
695
|
+
} else if (filter.type === "Color") {
|
|
696
|
+
return String(node.color).toLowerCase() === String(filter.value).toLowerCase();
|
|
697
|
+
}
|
|
698
|
+
} catch (err) {
|
|
699
|
+
console.error("XViewSidebar: Erro ao filtrar node:", node, "com filtro:", filter, err);
|
|
677
700
|
}
|
|
678
701
|
return true;
|
|
679
702
|
});
|
|
@@ -7761,10 +7784,19 @@ function InSceneCreationForm({
|
|
|
7761
7784
|
if (typeInput.trim() === "") {
|
|
7762
7785
|
result = validExistingTypes.filter((t) => !types.includes(t));
|
|
7763
7786
|
} else {
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7787
|
+
console.log("InSceneCreationForm: Filtrando tipos com input:", typeInput);
|
|
7788
|
+
try {
|
|
7789
|
+
const lowercasedInput = typeInput.toLowerCase();
|
|
7790
|
+
result = validExistingTypes.filter((t) => {
|
|
7791
|
+
if (!t) {
|
|
7792
|
+
console.warn("InSceneCreationForm: Tipo encontrado como undefined/null durante filtragem");
|
|
7793
|
+
return false;
|
|
7794
|
+
}
|
|
7795
|
+
return t.toLowerCase().includes(lowercasedInput) && !types.includes(t);
|
|
7796
|
+
});
|
|
7797
|
+
} catch (err) {
|
|
7798
|
+
console.error("InSceneCreationForm: Erro ao filtrar tipos:", err, "typeInput:", typeInput);
|
|
7799
|
+
}
|
|
7768
7800
|
}
|
|
7769
7801
|
if (sourceTypes) {
|
|
7770
7802
|
const priorityTypes = Array.isArray(sourceTypes) ? sourceTypes : [sourceTypes];
|
|
@@ -8614,12 +8646,18 @@ function NodeDetailsPanel({
|
|
|
8614
8646
|
if (typeInput.trim() === "") {
|
|
8615
8647
|
setFilteredTypes(validExistingTypes.filter((t) => !types.includes(t)));
|
|
8616
8648
|
} else {
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8649
|
+
console.log("NodeDetailsPanel: Filtrando tipos com input:", typeInput);
|
|
8650
|
+
try {
|
|
8651
|
+
const lowercasedInput = typeInput.toLowerCase();
|
|
8652
|
+
setFilteredTypes(
|
|
8653
|
+
validExistingTypes.filter((t) => {
|
|
8654
|
+
if (!t) return false;
|
|
8655
|
+
return t.toLowerCase().includes(lowercasedInput) && !types.includes(t);
|
|
8656
|
+
})
|
|
8657
|
+
);
|
|
8658
|
+
} catch (err) {
|
|
8659
|
+
console.error("NodeDetailsPanel: Erro ao filtrar tipos:", err, "typeInput:", typeInput);
|
|
8660
|
+
}
|
|
8623
8661
|
}
|
|
8624
8662
|
}, [typeInput, existingTypes, types]);
|
|
8625
8663
|
const handleIntensityChangeLocal = (e) => {
|
|
@@ -9116,12 +9154,21 @@ function QuestDetailsPanel({
|
|
|
9116
9154
|
if (typeInput.trim() === "") {
|
|
9117
9155
|
setFilteredTypes(validExistingTypes.filter((t) => !types.includes(t)));
|
|
9118
9156
|
} else {
|
|
9119
|
-
|
|
9120
|
-
|
|
9121
|
-
|
|
9122
|
-
|
|
9123
|
-
|
|
9124
|
-
|
|
9157
|
+
console.log("QuestDetailsPanel: Filtrando tipos com input:", typeInput);
|
|
9158
|
+
try {
|
|
9159
|
+
const lowercasedInput = typeInput.toLowerCase();
|
|
9160
|
+
setFilteredTypes(
|
|
9161
|
+
validExistingTypes.filter((t) => {
|
|
9162
|
+
if (!t) {
|
|
9163
|
+
console.warn("QuestDetailsPanel: Tipo encontrado como undefined/null durante filtragem");
|
|
9164
|
+
return false;
|
|
9165
|
+
}
|
|
9166
|
+
return t.toLowerCase().includes(lowercasedInput) && !types.includes(t);
|
|
9167
|
+
})
|
|
9168
|
+
);
|
|
9169
|
+
} catch (err) {
|
|
9170
|
+
console.error("QuestDetailsPanel: Erro ao filtrar tipos:", err, "typeInput:", typeInput);
|
|
9171
|
+
}
|
|
9125
9172
|
}
|
|
9126
9173
|
}, [typeInput, existingTypes, types]);
|
|
9127
9174
|
const handleCopyLink = () => {
|
package/dist/index.mjs
CHANGED
|
@@ -588,22 +588,34 @@ function XViewSidebar({
|
|
|
588
588
|
}, [userRole]);
|
|
589
589
|
const contextLabel = useMemo2(() => {
|
|
590
590
|
if (!viewType || !viewName) return null;
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
591
|
+
console.log("XViewSidebar: contextLabel viewType", viewType);
|
|
592
|
+
try {
|
|
593
|
+
const typeLower = viewType.toLowerCase();
|
|
594
|
+
if (typeLower === "database") {
|
|
595
|
+
return `Dataset: ${viewName}`;
|
|
596
|
+
} else if (typeLower === "view") {
|
|
597
|
+
return `View: ${viewName}`;
|
|
598
|
+
} else if (typeLower === "node") {
|
|
599
|
+
return `Node: ${viewName}`;
|
|
600
|
+
}
|
|
601
|
+
return `${viewType}: ${viewName}`;
|
|
602
|
+
} catch (err) {
|
|
603
|
+
console.error("XViewSidebar: Erro no contextLabel ao converter viewType:", viewType, err);
|
|
604
|
+
return `${viewType}: ${viewName}`;
|
|
605
|
+
}
|
|
600
606
|
}, [viewType, viewName]);
|
|
601
|
-
const normalize = (str = "") =>
|
|
607
|
+
const normalize = (str = "") => {
|
|
608
|
+
if (str === void 0 || str === null) {
|
|
609
|
+
console.warn("XViewSidebar: normalize recebeu valor nulo/indefinido:", str);
|
|
610
|
+
}
|
|
611
|
+
return String(str).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[._\-–—:,;!?'"()\[\]{}/\\]/g, " ").replace(/\s+/g, " ").trim();
|
|
612
|
+
};
|
|
602
613
|
const collator = useMemo2(
|
|
603
614
|
() => new Intl.Collator("pt-BR", { sensitivity: "base", numeric: true }),
|
|
604
615
|
[]
|
|
605
616
|
);
|
|
606
617
|
const availableTypes = useMemo2(() => {
|
|
618
|
+
console.log("XViewSidebar: recalculando availableTypes, dbNodes count:", dbNodes == null ? void 0 : dbNodes.length);
|
|
607
619
|
const typesSet = /* @__PURE__ */ new Set();
|
|
608
620
|
(dbNodes || []).forEach((node) => {
|
|
609
621
|
if (Array.isArray(node.type)) {
|
|
@@ -614,7 +626,9 @@ function XViewSidebar({
|
|
|
614
626
|
typesSet.add(node.type);
|
|
615
627
|
}
|
|
616
628
|
});
|
|
617
|
-
|
|
629
|
+
const result = Array.from(typesSet).sort();
|
|
630
|
+
console.log("XViewSidebar: availableTypes final:", result);
|
|
631
|
+
return result;
|
|
618
632
|
}, [dbNodes]);
|
|
619
633
|
const filteredAndSorted = useMemo2(() => {
|
|
620
634
|
const base = Array.isArray(dbNodes) ? dbNodes : [];
|
|
@@ -628,13 +642,22 @@ function XViewSidebar({
|
|
|
628
642
|
});
|
|
629
643
|
}
|
|
630
644
|
if (activeFilters.length > 0) {
|
|
645
|
+
console.log("XViewSidebar: aplicando activeFilters:", activeFilters);
|
|
631
646
|
pool = pool.filter((node) => {
|
|
632
647
|
return activeFilters.every((filter) => {
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
648
|
+
try {
|
|
649
|
+
if (filter.type === "Type") {
|
|
650
|
+
const nodeTypes = Array.isArray(node.type) ? node.type : [node.type];
|
|
651
|
+
return nodeTypes.some((t) => {
|
|
652
|
+
if (t === void 0) console.log("XViewSidebar: t \xE9 undefined no node:", node.id);
|
|
653
|
+
if (filter.value === void 0) console.log("XViewSidebar: filter.value \xE9 undefined");
|
|
654
|
+
return String(t).toLowerCase() === String(filter.value).toLowerCase();
|
|
655
|
+
});
|
|
656
|
+
} else if (filter.type === "Color") {
|
|
657
|
+
return String(node.color).toLowerCase() === String(filter.value).toLowerCase();
|
|
658
|
+
}
|
|
659
|
+
} catch (err) {
|
|
660
|
+
console.error("XViewSidebar: Erro ao filtrar node:", node, "com filtro:", filter, err);
|
|
638
661
|
}
|
|
639
662
|
return true;
|
|
640
663
|
});
|
|
@@ -7753,10 +7776,19 @@ function InSceneCreationForm({
|
|
|
7753
7776
|
if (typeInput.trim() === "") {
|
|
7754
7777
|
result = validExistingTypes.filter((t) => !types.includes(t));
|
|
7755
7778
|
} else {
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7779
|
+
console.log("InSceneCreationForm: Filtrando tipos com input:", typeInput);
|
|
7780
|
+
try {
|
|
7781
|
+
const lowercasedInput = typeInput.toLowerCase();
|
|
7782
|
+
result = validExistingTypes.filter((t) => {
|
|
7783
|
+
if (!t) {
|
|
7784
|
+
console.warn("InSceneCreationForm: Tipo encontrado como undefined/null durante filtragem");
|
|
7785
|
+
return false;
|
|
7786
|
+
}
|
|
7787
|
+
return t.toLowerCase().includes(lowercasedInput) && !types.includes(t);
|
|
7788
|
+
});
|
|
7789
|
+
} catch (err) {
|
|
7790
|
+
console.error("InSceneCreationForm: Erro ao filtrar tipos:", err, "typeInput:", typeInput);
|
|
7791
|
+
}
|
|
7760
7792
|
}
|
|
7761
7793
|
if (sourceTypes) {
|
|
7762
7794
|
const priorityTypes = Array.isArray(sourceTypes) ? sourceTypes : [sourceTypes];
|
|
@@ -8606,12 +8638,18 @@ function NodeDetailsPanel({
|
|
|
8606
8638
|
if (typeInput.trim() === "") {
|
|
8607
8639
|
setFilteredTypes(validExistingTypes.filter((t) => !types.includes(t)));
|
|
8608
8640
|
} else {
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8641
|
+
console.log("NodeDetailsPanel: Filtrando tipos com input:", typeInput);
|
|
8642
|
+
try {
|
|
8643
|
+
const lowercasedInput = typeInput.toLowerCase();
|
|
8644
|
+
setFilteredTypes(
|
|
8645
|
+
validExistingTypes.filter((t) => {
|
|
8646
|
+
if (!t) return false;
|
|
8647
|
+
return t.toLowerCase().includes(lowercasedInput) && !types.includes(t);
|
|
8648
|
+
})
|
|
8649
|
+
);
|
|
8650
|
+
} catch (err) {
|
|
8651
|
+
console.error("NodeDetailsPanel: Erro ao filtrar tipos:", err, "typeInput:", typeInput);
|
|
8652
|
+
}
|
|
8615
8653
|
}
|
|
8616
8654
|
}, [typeInput, existingTypes, types]);
|
|
8617
8655
|
const handleIntensityChangeLocal = (e) => {
|
|
@@ -9108,12 +9146,21 @@ function QuestDetailsPanel({
|
|
|
9108
9146
|
if (typeInput.trim() === "") {
|
|
9109
9147
|
setFilteredTypes(validExistingTypes.filter((t) => !types.includes(t)));
|
|
9110
9148
|
} else {
|
|
9111
|
-
|
|
9112
|
-
|
|
9113
|
-
|
|
9114
|
-
|
|
9115
|
-
|
|
9116
|
-
|
|
9149
|
+
console.log("QuestDetailsPanel: Filtrando tipos com input:", typeInput);
|
|
9150
|
+
try {
|
|
9151
|
+
const lowercasedInput = typeInput.toLowerCase();
|
|
9152
|
+
setFilteredTypes(
|
|
9153
|
+
validExistingTypes.filter((t) => {
|
|
9154
|
+
if (!t) {
|
|
9155
|
+
console.warn("QuestDetailsPanel: Tipo encontrado como undefined/null durante filtragem");
|
|
9156
|
+
return false;
|
|
9157
|
+
}
|
|
9158
|
+
return t.toLowerCase().includes(lowercasedInput) && !types.includes(t);
|
|
9159
|
+
})
|
|
9160
|
+
);
|
|
9161
|
+
} catch (err) {
|
|
9162
|
+
console.error("QuestDetailsPanel: Erro ao filtrar tipos:", err, "typeInput:", typeInput);
|
|
9163
|
+
}
|
|
9117
9164
|
}
|
|
9118
9165
|
}, [typeInput, existingTypes, types]);
|
|
9119
9166
|
const handleCopyLink = () => {
|
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.17",
|
|
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",
|