analytica-frontend-lib 1.2.54 → 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 (50) 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/index.d.ts +2 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +180 -59
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +178 -59
  49. package/dist/index.mjs.map +1 -1
  50. package/package.json +1 -1
@@ -5455,7 +5455,7 @@ function validateActivityStep(data) {
5455
5455
  function validateRecipientStep(data) {
5456
5456
  const errors = {};
5457
5457
  const result = recipientStepSchema.safeParse({
5458
- students: data.students
5458
+ students: data.students ?? []
5459
5459
  });
5460
5460
  if (!result.success) {
5461
5461
  result.error.issues.forEach((issue) => {
@@ -5585,14 +5585,26 @@ var useSendActivityModalStore = (0, import_zustand5.create)(
5585
5585
  },
5586
5586
  validateCurrentStep: () => {
5587
5587
  const state = get();
5588
- const errors = validateStep(state.currentStep, state.formData);
5589
- set({ errors });
5588
+ let formDataToValidate = state.formData;
5589
+ let updatedFormData = state.formData;
5590
+ if (state.currentStep === 2 && state.categories.length > 0) {
5591
+ const students = extractStudentsFromCategories(state.categories);
5592
+ formDataToValidate = { ...state.formData, students };
5593
+ updatedFormData = formDataToValidate;
5594
+ }
5595
+ const errors = validateStep(state.currentStep, formDataToValidate);
5596
+ set({ formData: updatedFormData, errors });
5590
5597
  return Object.keys(errors).length === 0;
5591
5598
  },
5592
5599
  validateAllSteps: () => {
5593
5600
  const state = get();
5601
+ let formDataForStep2 = state.formData;
5602
+ if (state.categories.length > 0) {
5603
+ const students = extractStudentsFromCategories(state.categories);
5604
+ formDataForStep2 = { ...state.formData, students };
5605
+ }
5594
5606
  const errors1 = validateStep(1, state.formData);
5595
- const errors2 = validateStep(2, state.formData);
5607
+ const errors2 = validateStep(2, formDataForStep2);
5596
5608
  const errors3 = validateStep(3, state.formData);
5597
5609
  const allErrors = { ...errors1, ...errors2, ...errors3 };
5598
5610
  set({ errors: allErrors });
@@ -5621,6 +5633,87 @@ var ACTIVITY_TYPE_OPTIONS = [
5621
5633
  { value: "PROVA", label: "Prova" }
5622
5634
  ];
5623
5635
 
5636
+ // src/components/CheckBoxGroup/CheckBoxGroup.helpers.ts
5637
+ var areSelectedIdsEqual = (ids1, ids2) => {
5638
+ if (ids1 === ids2) return true;
5639
+ if (!ids1 || !ids2) return ids1 === ids2;
5640
+ if (ids1.length !== ids2.length) return false;
5641
+ for (let i = 0; i < ids1.length; i++) {
5642
+ if (ids1[i] !== ids2[i]) return false;
5643
+ }
5644
+ return true;
5645
+ };
5646
+ var isCategoryEnabled = (category, allCategories) => {
5647
+ if (!category.dependsOn || category.dependsOn.length === 0) {
5648
+ return true;
5649
+ }
5650
+ return category.dependsOn.every((depKey) => {
5651
+ const depCat = allCategories.find((c) => c.key === depKey);
5652
+ return depCat?.selectedIds && depCat.selectedIds.length > 0;
5653
+ });
5654
+ };
5655
+ var isItemMatchingFilter = (item, filter, allCategories) => {
5656
+ const parentCat = allCategories.find((c) => c.key === filter.key);
5657
+ const parentSelectedIds = parentCat?.selectedIds || [];
5658
+ const itemFieldValue = item[filter.internalField];
5659
+ return parentSelectedIds.includes(String(itemFieldValue));
5660
+ };
5661
+ var getBadgeText = (category, formattedItems) => {
5662
+ const visibleIds = formattedItems.flatMap((group) => group.itens || []).map((i) => i.id);
5663
+ const selectedVisibleCount = visibleIds.filter(
5664
+ (id) => category.selectedIds?.includes(id)
5665
+ ).length;
5666
+ const totalVisible = visibleIds.length;
5667
+ return `${selectedVisibleCount} de ${totalVisible} ${selectedVisibleCount === 1 ? "selecionado" : "selecionados"}`;
5668
+ };
5669
+ var handleAccordionValueChange = (value, categories, isCategoryEnabledFn) => {
5670
+ if (typeof value !== "string") {
5671
+ if (!value) {
5672
+ return "";
5673
+ }
5674
+ return null;
5675
+ }
5676
+ if (!value) {
5677
+ return "";
5678
+ }
5679
+ const category = categories.find((c) => c.key === value);
5680
+ if (!category) {
5681
+ return null;
5682
+ }
5683
+ const isEnabled = isCategoryEnabledFn(category);
5684
+ if (!isEnabled) {
5685
+ return null;
5686
+ }
5687
+ return value;
5688
+ };
5689
+ var calculateFormattedItemsForAutoSelection = (category, allCategories) => {
5690
+ if (!category?.dependsOn || category.dependsOn.length === 0) {
5691
+ return category?.itens || [];
5692
+ }
5693
+ const isEnabled = isCategoryEnabled(category, allCategories);
5694
+ if (!isEnabled) {
5695
+ return [];
5696
+ }
5697
+ const filters = category.filteredBy || [];
5698
+ if (filters.length === 0) {
5699
+ return category?.itens || [];
5700
+ }
5701
+ const selectedIdsArr = filters.map((f) => {
5702
+ const parentCat = allCategories.find((c) => c.key === f.key);
5703
+ if (!parentCat?.selectedIds?.length) {
5704
+ return [];
5705
+ }
5706
+ return parentCat.selectedIds;
5707
+ });
5708
+ if (selectedIdsArr.some((arr) => arr.length === 0)) {
5709
+ return [];
5710
+ }
5711
+ const filteredItems = (category.itens || []).filter(
5712
+ (item) => filters.every((filter) => isItemMatchingFilter(item, filter, allCategories))
5713
+ );
5714
+ return filteredItems;
5715
+ };
5716
+
5624
5717
  // src/components/CheckBoxGroup/CheckBoxGroup.tsx
5625
5718
  var import_jsx_runtime25 = require("react/jsx-runtime");
5626
5719
  var CheckboxGroup = ({
@@ -5637,21 +5730,16 @@ var CheckboxGroup = ({
5637
5730
  (0, import_react16.useEffect)(() => {
5638
5731
  onCategoriesChangeRef.current = onCategoriesChange;
5639
5732
  }, [onCategoriesChange]);
5640
- const areSelectedIdsEqual = (ids1, ids2) => {
5641
- if (ids1 === ids2) return true;
5642
- if (!ids1 || !ids2) return ids1 === ids2;
5643
- if (ids1.length !== ids2.length) return false;
5644
- for (let i = 0; i < ids1.length; i++) {
5645
- if (ids1[i] !== ids2[i]) return false;
5646
- }
5647
- return true;
5648
- };
5649
5733
  const categoriesWithAutoSelection = (0, import_react16.useMemo)(() => {
5650
5734
  return categories.map((category) => {
5651
- if (category.itens?.length === 1 && (!category.selectedIds || category.selectedIds.length === 0)) {
5735
+ const filteredItems = calculateFormattedItemsForAutoSelection(
5736
+ category,
5737
+ categories
5738
+ );
5739
+ if (filteredItems.length === 1 && (!category.selectedIds || category.selectedIds.length === 0)) {
5652
5740
  return {
5653
5741
  ...category,
5654
- selectedIds: [category.itens[0].id]
5742
+ selectedIds: [filteredItems[0].id]
5655
5743
  };
5656
5744
  }
5657
5745
  return category;
@@ -5786,6 +5874,23 @@ var CheckboxGroup = ({
5786
5874
  const getFormattedItems = (categoryKey) => {
5787
5875
  return formattedItemsMap[categoryKey] || [{ itens: [] }];
5788
5876
  };
5877
+ const getBadgeText2 = (category) => {
5878
+ const formattedItems = getFormattedItems(category.key);
5879
+ return getBadgeText(category, formattedItems);
5880
+ };
5881
+ const isCategoryEnabled2 = (category) => {
5882
+ return isCategoryEnabled(category, categories);
5883
+ };
5884
+ const handleAccordionValueChange2 = (value) => {
5885
+ const newValue = handleAccordionValueChange(
5886
+ value,
5887
+ categories,
5888
+ isCategoryEnabled2
5889
+ );
5890
+ if (newValue !== null) {
5891
+ setOpenAccordion(newValue);
5892
+ }
5893
+ };
5789
5894
  const getDependentCategories = (categoryKey) => {
5790
5895
  return categories.filter((cat) => cat.dependsOn?.includes(categoryKey)).map((cat) => cat.key);
5791
5896
  };
@@ -5978,14 +6083,7 @@ var CheckboxGroup = ({
5978
6083
  }
5979
6084
  )
5980
6085
  ] }),
5981
- (openAccordion === category.key || isEnabled) && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Badge_default, { variant: "solid", action: "info", children: (() => {
5982
- const visibleIds = getFormattedItems(category.key).flatMap((group) => group.itens || []).map((i) => i.id);
5983
- const selectedVisibleCount = visibleIds.filter(
5984
- (id) => category.selectedIds?.includes(id)
5985
- ).length;
5986
- const totalVisible = visibleIds.length;
5987
- return `${selectedVisibleCount} de ${totalVisible} ${selectedVisibleCount === 1 ? "selecionado" : "selecionados"}`;
5988
- })() })
6086
+ (openAccordion === category.key || isEnabled) && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Badge_default, { variant: "solid", action: "info", children: getBadgeText2(category) })
5989
6087
  ] });
5990
6088
  const renderCompactSingleItem = (category) => {
5991
6089
  const formattedItems = getFormattedItems(category.key);
@@ -6007,10 +6105,7 @@ var CheckboxGroup = ({
6007
6105
  );
6008
6106
  };
6009
6107
  const renderCategoryAccordion = (category) => {
6010
- const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
6011
- const depCat = categories.find((c) => c.key === depKey);
6012
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
6013
- });
6108
+ const isEnabled = isCategoryEnabled2(category);
6014
6109
  const hasOnlyOneItem = category.itens?.length === 1;
6015
6110
  if (hasOnlyOneItem && !compactSingleItem && !showSingleItem) {
6016
6111
  return null;
@@ -6050,10 +6145,7 @@ var CheckboxGroup = ({
6050
6145
  if (!openAccordion) return;
6051
6146
  const category = categories.find((c) => c.key === openAccordion);
6052
6147
  if (!category) return;
6053
- const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
6054
- const depCat = categories.find((c) => c.key === depKey);
6055
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
6056
- });
6148
+ const isEnabled = isCategoryEnabled2(category);
6057
6149
  if (!isEnabled) {
6058
6150
  setTimeout(() => {
6059
6151
  setOpenAccordion("");
@@ -6066,21 +6158,7 @@ var CheckboxGroup = ({
6066
6158
  type: "single",
6067
6159
  collapsible: true,
6068
6160
  value: openAccordion,
6069
- onValueChange: (value) => {
6070
- if (typeof value === "string") {
6071
- if (value) {
6072
- const category = categories.find((c) => c.key === value);
6073
- const isEnabled = !category?.dependsOn || category.dependsOn.every((depKey) => {
6074
- const depCat = categories.find((c) => c.key === depKey);
6075
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
6076
- });
6077
- if (!isEnabled) {
6078
- return;
6079
- }
6080
- }
6081
- setOpenAccordion(value);
6082
- }
6083
- },
6161
+ onValueChange: handleAccordionValueChange2,
6084
6162
  children: categories.map(renderCategoryAccordion)
6085
6163
  }
6086
6164
  );