analytica-frontend-lib 1.2.53 → 1.2.55

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.
Files changed (52) hide show
  1. package/dist/ActivitiesHistory/index.js +108 -42
  2. package/dist/ActivitiesHistory/index.js.map +1 -1
  3. package/dist/ActivitiesHistory/index.mjs +108 -42
  4. package/dist/ActivitiesHistory/index.mjs.map +1 -1
  5. package/dist/ActivityDetails/index.js +108 -42
  6. package/dist/ActivityDetails/index.js.map +1 -1
  7. package/dist/ActivityDetails/index.mjs +108 -42
  8. package/dist/ActivityDetails/index.mjs.map +1 -1
  9. package/dist/ActivityFilters/index.js +110 -42
  10. package/dist/ActivityFilters/index.js.map +1 -1
  11. package/dist/ActivityFilters/index.mjs +110 -42
  12. package/dist/ActivityFilters/index.mjs.map +1 -1
  13. package/dist/AlertManager/index.js +110 -42
  14. package/dist/AlertManager/index.js.map +1 -1
  15. package/dist/AlertManager/index.mjs +110 -42
  16. package/dist/AlertManager/index.mjs.map +1 -1
  17. package/dist/RecommendedLessonsHistory/index.js +108 -42
  18. package/dist/RecommendedLessonsHistory/index.js.map +1 -1
  19. package/dist/RecommendedLessonsHistory/index.mjs +108 -42
  20. package/dist/RecommendedLessonsHistory/index.mjs.map +1 -1
  21. package/dist/SendActivityModal/SendActivityModal.js +124 -46
  22. package/dist/SendActivityModal/SendActivityModal.js.map +1 -1
  23. package/dist/SendActivityModal/SendActivityModal.mjs +124 -46
  24. package/dist/SendActivityModal/SendActivityModal.mjs.map +1 -1
  25. package/dist/SendActivityModal/hooks/useSendActivityModal.d.ts.map +1 -1
  26. package/dist/SendActivityModal/hooks/useSendActivityModal.js +16 -4
  27. package/dist/SendActivityModal/hooks/useSendActivityModal.js.map +1 -1
  28. package/dist/SendActivityModal/hooks/useSendActivityModal.mjs +16 -4
  29. package/dist/SendActivityModal/hooks/useSendActivityModal.mjs.map +1 -1
  30. package/dist/SendActivityModal/index.js +124 -46
  31. package/dist/SendActivityModal/index.js.map +1 -1
  32. package/dist/SendActivityModal/index.mjs +124 -46
  33. package/dist/SendActivityModal/index.mjs.map +1 -1
  34. package/dist/SendActivityModal/validation.js +1 -1
  35. package/dist/SendActivityModal/validation.js.map +1 -1
  36. package/dist/SendActivityModal/validation.mjs +1 -1
  37. package/dist/SendActivityModal/validation.mjs.map +1 -1
  38. package/dist/TableProvider/index.js +108 -42
  39. package/dist/TableProvider/index.js.map +1 -1
  40. package/dist/TableProvider/index.mjs +108 -42
  41. package/dist/TableProvider/index.mjs.map +1 -1
  42. package/dist/hooks/useActivityModels/index.d.ts +6 -6
  43. package/dist/hooks/useActivityModels.d.ts +6 -6
  44. package/dist/hooks/useAppContent.d.ts +1 -0
  45. package/dist/hooks/useAppContent.d.ts.map +1 -1
  46. package/dist/index.d.ts +2 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +183 -60
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.mjs +181 -60
  51. package/dist/index.mjs.map +1 -1
  52. package/package.json +1 -1
@@ -5492,7 +5492,7 @@ function validateActivityStep(data) {
5492
5492
  function validateRecipientStep(data) {
5493
5493
  const errors = {};
5494
5494
  const result = recipientStepSchema.safeParse({
5495
- students: data.students
5495
+ students: data.students ?? []
5496
5496
  });
5497
5497
  if (!result.success) {
5498
5498
  result.error.issues.forEach((issue) => {
@@ -5622,14 +5622,26 @@ var useSendActivityModalStore = create5(
5622
5622
  },
5623
5623
  validateCurrentStep: () => {
5624
5624
  const state = get();
5625
- const errors = validateStep(state.currentStep, state.formData);
5626
- set({ errors });
5625
+ let formDataToValidate = state.formData;
5626
+ let updatedFormData = state.formData;
5627
+ if (state.currentStep === 2 && state.categories.length > 0) {
5628
+ const students = extractStudentsFromCategories(state.categories);
5629
+ formDataToValidate = { ...state.formData, students };
5630
+ updatedFormData = formDataToValidate;
5631
+ }
5632
+ const errors = validateStep(state.currentStep, formDataToValidate);
5633
+ set({ formData: updatedFormData, errors });
5627
5634
  return Object.keys(errors).length === 0;
5628
5635
  },
5629
5636
  validateAllSteps: () => {
5630
5637
  const state = get();
5638
+ let formDataForStep2 = state.formData;
5639
+ if (state.categories.length > 0) {
5640
+ const students = extractStudentsFromCategories(state.categories);
5641
+ formDataForStep2 = { ...state.formData, students };
5642
+ }
5631
5643
  const errors1 = validateStep(1, state.formData);
5632
- const errors2 = validateStep(2, state.formData);
5644
+ const errors2 = validateStep(2, formDataForStep2);
5633
5645
  const errors3 = validateStep(3, state.formData);
5634
5646
  const allErrors = { ...errors1, ...errors2, ...errors3 };
5635
5647
  set({ errors: allErrors });
@@ -5658,6 +5670,87 @@ var ACTIVITY_TYPE_OPTIONS = [
5658
5670
  { value: "PROVA", label: "Prova" }
5659
5671
  ];
5660
5672
 
5673
+ // src/components/CheckBoxGroup/CheckBoxGroup.helpers.ts
5674
+ var areSelectedIdsEqual = (ids1, ids2) => {
5675
+ if (ids1 === ids2) return true;
5676
+ if (!ids1 || !ids2) return ids1 === ids2;
5677
+ if (ids1.length !== ids2.length) return false;
5678
+ for (let i = 0; i < ids1.length; i++) {
5679
+ if (ids1[i] !== ids2[i]) return false;
5680
+ }
5681
+ return true;
5682
+ };
5683
+ var isCategoryEnabled = (category, allCategories) => {
5684
+ if (!category.dependsOn || category.dependsOn.length === 0) {
5685
+ return true;
5686
+ }
5687
+ return category.dependsOn.every((depKey) => {
5688
+ const depCat = allCategories.find((c) => c.key === depKey);
5689
+ return depCat?.selectedIds && depCat.selectedIds.length > 0;
5690
+ });
5691
+ };
5692
+ var isItemMatchingFilter = (item, filter, allCategories) => {
5693
+ const parentCat = allCategories.find((c) => c.key === filter.key);
5694
+ const parentSelectedIds = parentCat?.selectedIds || [];
5695
+ const itemFieldValue = item[filter.internalField];
5696
+ return parentSelectedIds.includes(String(itemFieldValue));
5697
+ };
5698
+ var getBadgeText = (category, formattedItems) => {
5699
+ const visibleIds = formattedItems.flatMap((group) => group.itens || []).map((i) => i.id);
5700
+ const selectedVisibleCount = visibleIds.filter(
5701
+ (id) => category.selectedIds?.includes(id)
5702
+ ).length;
5703
+ const totalVisible = visibleIds.length;
5704
+ return `${selectedVisibleCount} de ${totalVisible} ${selectedVisibleCount === 1 ? "selecionado" : "selecionados"}`;
5705
+ };
5706
+ var handleAccordionValueChange = (value, categories, isCategoryEnabledFn) => {
5707
+ if (typeof value !== "string") {
5708
+ if (!value) {
5709
+ return "";
5710
+ }
5711
+ return null;
5712
+ }
5713
+ if (!value) {
5714
+ return "";
5715
+ }
5716
+ const category = categories.find((c) => c.key === value);
5717
+ if (!category) {
5718
+ return null;
5719
+ }
5720
+ const isEnabled = isCategoryEnabledFn(category);
5721
+ if (!isEnabled) {
5722
+ return null;
5723
+ }
5724
+ return value;
5725
+ };
5726
+ var calculateFormattedItemsForAutoSelection = (category, allCategories) => {
5727
+ if (!category?.dependsOn || category.dependsOn.length === 0) {
5728
+ return category?.itens || [];
5729
+ }
5730
+ const isEnabled = isCategoryEnabled(category, allCategories);
5731
+ if (!isEnabled) {
5732
+ return [];
5733
+ }
5734
+ const filters = category.filteredBy || [];
5735
+ if (filters.length === 0) {
5736
+ return category?.itens || [];
5737
+ }
5738
+ const selectedIdsArr = filters.map((f) => {
5739
+ const parentCat = allCategories.find((c) => c.key === f.key);
5740
+ if (!parentCat?.selectedIds?.length) {
5741
+ return [];
5742
+ }
5743
+ return parentCat.selectedIds;
5744
+ });
5745
+ if (selectedIdsArr.some((arr) => arr.length === 0)) {
5746
+ return [];
5747
+ }
5748
+ const filteredItems = (category.itens || []).filter(
5749
+ (item) => filters.every((filter) => isItemMatchingFilter(item, filter, allCategories))
5750
+ );
5751
+ return filteredItems;
5752
+ };
5753
+
5661
5754
  // src/components/CheckBoxGroup/CheckBoxGroup.tsx
5662
5755
  import { jsx as jsx25, jsxs as jsxs20 } from "react/jsx-runtime";
5663
5756
  var CheckboxGroup = ({
@@ -5674,21 +5767,16 @@ var CheckboxGroup = ({
5674
5767
  useEffect10(() => {
5675
5768
  onCategoriesChangeRef.current = onCategoriesChange;
5676
5769
  }, [onCategoriesChange]);
5677
- const areSelectedIdsEqual = (ids1, ids2) => {
5678
- if (ids1 === ids2) return true;
5679
- if (!ids1 || !ids2) return ids1 === ids2;
5680
- if (ids1.length !== ids2.length) return false;
5681
- for (let i = 0; i < ids1.length; i++) {
5682
- if (ids1[i] !== ids2[i]) return false;
5683
- }
5684
- return true;
5685
- };
5686
5770
  const categoriesWithAutoSelection = useMemo3(() => {
5687
5771
  return categories.map((category) => {
5688
- if (category.itens?.length === 1 && (!category.selectedIds || category.selectedIds.length === 0)) {
5772
+ const filteredItems = calculateFormattedItemsForAutoSelection(
5773
+ category,
5774
+ categories
5775
+ );
5776
+ if (filteredItems.length === 1 && (!category.selectedIds || category.selectedIds.length === 0)) {
5689
5777
  return {
5690
5778
  ...category,
5691
- selectedIds: [category.itens[0].id]
5779
+ selectedIds: [filteredItems[0].id]
5692
5780
  };
5693
5781
  }
5694
5782
  return category;
@@ -5823,6 +5911,23 @@ var CheckboxGroup = ({
5823
5911
  const getFormattedItems = (categoryKey) => {
5824
5912
  return formattedItemsMap[categoryKey] || [{ itens: [] }];
5825
5913
  };
5914
+ const getBadgeText2 = (category) => {
5915
+ const formattedItems = getFormattedItems(category.key);
5916
+ return getBadgeText(category, formattedItems);
5917
+ };
5918
+ const isCategoryEnabled2 = (category) => {
5919
+ return isCategoryEnabled(category, categories);
5920
+ };
5921
+ const handleAccordionValueChange2 = (value) => {
5922
+ const newValue = handleAccordionValueChange(
5923
+ value,
5924
+ categories,
5925
+ isCategoryEnabled2
5926
+ );
5927
+ if (newValue !== null) {
5928
+ setOpenAccordion(newValue);
5929
+ }
5930
+ };
5826
5931
  const getDependentCategories = (categoryKey) => {
5827
5932
  return categories.filter((cat) => cat.dependsOn?.includes(categoryKey)).map((cat) => cat.key);
5828
5933
  };
@@ -6015,14 +6120,7 @@ var CheckboxGroup = ({
6015
6120
  }
6016
6121
  )
6017
6122
  ] }),
6018
- (openAccordion === category.key || isEnabled) && /* @__PURE__ */ jsx25(Badge_default, { variant: "solid", action: "info", children: (() => {
6019
- const visibleIds = getFormattedItems(category.key).flatMap((group) => group.itens || []).map((i) => i.id);
6020
- const selectedVisibleCount = visibleIds.filter(
6021
- (id) => category.selectedIds?.includes(id)
6022
- ).length;
6023
- const totalVisible = visibleIds.length;
6024
- return `${selectedVisibleCount} de ${totalVisible} ${selectedVisibleCount === 1 ? "selecionado" : "selecionados"}`;
6025
- })() })
6123
+ (openAccordion === category.key || isEnabled) && /* @__PURE__ */ jsx25(Badge_default, { variant: "solid", action: "info", children: getBadgeText2(category) })
6026
6124
  ] });
6027
6125
  const renderCompactSingleItem = (category) => {
6028
6126
  const formattedItems = getFormattedItems(category.key);
@@ -6044,10 +6142,7 @@ var CheckboxGroup = ({
6044
6142
  );
6045
6143
  };
6046
6144
  const renderCategoryAccordion = (category) => {
6047
- const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
6048
- const depCat = categories.find((c) => c.key === depKey);
6049
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
6050
- });
6145
+ const isEnabled = isCategoryEnabled2(category);
6051
6146
  const hasOnlyOneItem = category.itens?.length === 1;
6052
6147
  if (hasOnlyOneItem && !compactSingleItem && !showSingleItem) {
6053
6148
  return null;
@@ -6087,10 +6182,7 @@ var CheckboxGroup = ({
6087
6182
  if (!openAccordion) return;
6088
6183
  const category = categories.find((c) => c.key === openAccordion);
6089
6184
  if (!category) return;
6090
- const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
6091
- const depCat = categories.find((c) => c.key === depKey);
6092
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
6093
- });
6185
+ const isEnabled = isCategoryEnabled2(category);
6094
6186
  if (!isEnabled) {
6095
6187
  setTimeout(() => {
6096
6188
  setOpenAccordion("");
@@ -6103,21 +6195,7 @@ var CheckboxGroup = ({
6103
6195
  type: "single",
6104
6196
  collapsible: true,
6105
6197
  value: openAccordion,
6106
- onValueChange: (value) => {
6107
- if (typeof value === "string") {
6108
- if (value) {
6109
- const category = categories.find((c) => c.key === value);
6110
- const isEnabled = !category?.dependsOn || category.dependsOn.every((depKey) => {
6111
- const depCat = categories.find((c) => c.key === depKey);
6112
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
6113
- });
6114
- if (!isEnabled) {
6115
- return;
6116
- }
6117
- }
6118
- setOpenAccordion(value);
6119
- }
6120
- },
6198
+ onValueChange: handleAccordionValueChange2,
6121
6199
  children: categories.map(renderCategoryAccordion)
6122
6200
  }
6123
6201
  );