@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 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
- const typeLower = viewType.toLowerCase();
631
- if (typeLower === "database") {
632
- return `Dataset: ${viewName}`;
633
- } else if (typeLower === "view") {
634
- return `View: ${viewName}`;
635
- } else if (typeLower === "node") {
636
- return `Node: ${viewName}`;
637
- }
638
- return `${viewType}: ${viewName}`;
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 = "") => String(str).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[._\-–—:,;!?'"()\[\]{}/\\]/g, " ").replace(/\s+/g, " ").trim();
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
- return Array.from(typesSet).sort();
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
- if (filter.type === "Type") {
673
- const nodeTypes = Array.isArray(node.type) ? node.type : [node.type];
674
- return nodeTypes.some((t) => String(t).toLowerCase() === String(filter.value).toLowerCase());
675
- } else if (filter.type === "Color") {
676
- return String(node.color).toLowerCase() === String(filter.value).toLowerCase();
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
- const lowercasedInput = typeInput.toLowerCase();
7765
- result = validExistingTypes.filter(
7766
- (t) => t.toLowerCase().includes(lowercasedInput) && !types.includes(t)
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
- const lowercasedInput = typeInput.toLowerCase();
8618
- setFilteredTypes(
8619
- validExistingTypes.filter(
8620
- (t) => t.toLowerCase().includes(lowercasedInput) && !types.includes(t)
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
- const lowercasedInput = typeInput.toLowerCase();
9120
- setFilteredTypes(
9121
- validExistingTypes.filter(
9122
- (t) => t.toLowerCase().includes(lowercasedInput) && !types.includes(t)
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
- const typeLower = viewType.toLowerCase();
592
- if (typeLower === "database") {
593
- return `Dataset: ${viewName}`;
594
- } else if (typeLower === "view") {
595
- return `View: ${viewName}`;
596
- } else if (typeLower === "node") {
597
- return `Node: ${viewName}`;
598
- }
599
- return `${viewType}: ${viewName}`;
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 = "") => String(str).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[._\-–—:,;!?'"()\[\]{}/\\]/g, " ").replace(/\s+/g, " ").trim();
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
- return Array.from(typesSet).sort();
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
- if (filter.type === "Type") {
634
- const nodeTypes = Array.isArray(node.type) ? node.type : [node.type];
635
- return nodeTypes.some((t) => String(t).toLowerCase() === String(filter.value).toLowerCase());
636
- } else if (filter.type === "Color") {
637
- return String(node.color).toLowerCase() === String(filter.value).toLowerCase();
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
- const lowercasedInput = typeInput.toLowerCase();
7757
- result = validExistingTypes.filter(
7758
- (t) => t.toLowerCase().includes(lowercasedInput) && !types.includes(t)
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
- const lowercasedInput = typeInput.toLowerCase();
8610
- setFilteredTypes(
8611
- validExistingTypes.filter(
8612
- (t) => t.toLowerCase().includes(lowercasedInput) && !types.includes(t)
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
- const lowercasedInput = typeInput.toLowerCase();
9112
- setFilteredTypes(
9113
- validExistingTypes.filter(
9114
- (t) => t.toLowerCase().includes(lowercasedInput) && !types.includes(t)
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.16",
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",