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
@@ -5415,6 +5415,87 @@ var AccordionGroup = forwardRef9(
5415
5415
  );
5416
5416
  AccordionGroup.displayName = "AccordionGroup";
5417
5417
 
5418
+ // src/components/CheckBoxGroup/CheckBoxGroup.helpers.ts
5419
+ var areSelectedIdsEqual = (ids1, ids2) => {
5420
+ if (ids1 === ids2) return true;
5421
+ if (!ids1 || !ids2) return ids1 === ids2;
5422
+ if (ids1.length !== ids2.length) return false;
5423
+ for (let i = 0; i < ids1.length; i++) {
5424
+ if (ids1[i] !== ids2[i]) return false;
5425
+ }
5426
+ return true;
5427
+ };
5428
+ var isCategoryEnabled = (category, allCategories) => {
5429
+ if (!category.dependsOn || category.dependsOn.length === 0) {
5430
+ return true;
5431
+ }
5432
+ return category.dependsOn.every((depKey) => {
5433
+ const depCat = allCategories.find((c) => c.key === depKey);
5434
+ return depCat?.selectedIds && depCat.selectedIds.length > 0;
5435
+ });
5436
+ };
5437
+ var isItemMatchingFilter = (item, filter, allCategories) => {
5438
+ const parentCat = allCategories.find((c) => c.key === filter.key);
5439
+ const parentSelectedIds = parentCat?.selectedIds || [];
5440
+ const itemFieldValue = item[filter.internalField];
5441
+ return parentSelectedIds.includes(String(itemFieldValue));
5442
+ };
5443
+ var getBadgeText = (category, formattedItems) => {
5444
+ const visibleIds = formattedItems.flatMap((group) => group.itens || []).map((i) => i.id);
5445
+ const selectedVisibleCount = visibleIds.filter(
5446
+ (id) => category.selectedIds?.includes(id)
5447
+ ).length;
5448
+ const totalVisible = visibleIds.length;
5449
+ return `${selectedVisibleCount} de ${totalVisible} ${selectedVisibleCount === 1 ? "selecionado" : "selecionados"}`;
5450
+ };
5451
+ var handleAccordionValueChange = (value, categories, isCategoryEnabledFn) => {
5452
+ if (typeof value !== "string") {
5453
+ if (!value) {
5454
+ return "";
5455
+ }
5456
+ return null;
5457
+ }
5458
+ if (!value) {
5459
+ return "";
5460
+ }
5461
+ const category = categories.find((c) => c.key === value);
5462
+ if (!category) {
5463
+ return null;
5464
+ }
5465
+ const isEnabled = isCategoryEnabledFn(category);
5466
+ if (!isEnabled) {
5467
+ return null;
5468
+ }
5469
+ return value;
5470
+ };
5471
+ var calculateFormattedItemsForAutoSelection = (category, allCategories) => {
5472
+ if (!category?.dependsOn || category.dependsOn.length === 0) {
5473
+ return category?.itens || [];
5474
+ }
5475
+ const isEnabled = isCategoryEnabled(category, allCategories);
5476
+ if (!isEnabled) {
5477
+ return [];
5478
+ }
5479
+ const filters = category.filteredBy || [];
5480
+ if (filters.length === 0) {
5481
+ return category?.itens || [];
5482
+ }
5483
+ const selectedIdsArr = filters.map((f) => {
5484
+ const parentCat = allCategories.find((c) => c.key === f.key);
5485
+ if (!parentCat?.selectedIds?.length) {
5486
+ return [];
5487
+ }
5488
+ return parentCat.selectedIds;
5489
+ });
5490
+ if (selectedIdsArr.some((arr) => arr.length === 0)) {
5491
+ return [];
5492
+ }
5493
+ const filteredItems = (category.itens || []).filter(
5494
+ (item) => filters.every((filter) => isItemMatchingFilter(item, filter, allCategories))
5495
+ );
5496
+ return filteredItems;
5497
+ };
5498
+
5418
5499
  // src/components/CheckBoxGroup/CheckBoxGroup.tsx
5419
5500
  import { jsx as jsx25, jsxs as jsxs20 } from "react/jsx-runtime";
5420
5501
  var CheckboxGroup = ({
@@ -5431,21 +5512,16 @@ var CheckboxGroup = ({
5431
5512
  useEffect10(() => {
5432
5513
  onCategoriesChangeRef.current = onCategoriesChange;
5433
5514
  }, [onCategoriesChange]);
5434
- const areSelectedIdsEqual = (ids1, ids2) => {
5435
- if (ids1 === ids2) return true;
5436
- if (!ids1 || !ids2) return ids1 === ids2;
5437
- if (ids1.length !== ids2.length) return false;
5438
- for (let i = 0; i < ids1.length; i++) {
5439
- if (ids1[i] !== ids2[i]) return false;
5440
- }
5441
- return true;
5442
- };
5443
5515
  const categoriesWithAutoSelection = useMemo3(() => {
5444
5516
  return categories.map((category) => {
5445
- if (category.itens?.length === 1 && (!category.selectedIds || category.selectedIds.length === 0)) {
5517
+ const filteredItems = calculateFormattedItemsForAutoSelection(
5518
+ category,
5519
+ categories
5520
+ );
5521
+ if (filteredItems.length === 1 && (!category.selectedIds || category.selectedIds.length === 0)) {
5446
5522
  return {
5447
5523
  ...category,
5448
- selectedIds: [category.itens[0].id]
5524
+ selectedIds: [filteredItems[0].id]
5449
5525
  };
5450
5526
  }
5451
5527
  return category;
@@ -5580,6 +5656,23 @@ var CheckboxGroup = ({
5580
5656
  const getFormattedItems = (categoryKey) => {
5581
5657
  return formattedItemsMap[categoryKey] || [{ itens: [] }];
5582
5658
  };
5659
+ const getBadgeText2 = (category) => {
5660
+ const formattedItems = getFormattedItems(category.key);
5661
+ return getBadgeText(category, formattedItems);
5662
+ };
5663
+ const isCategoryEnabled2 = (category) => {
5664
+ return isCategoryEnabled(category, categories);
5665
+ };
5666
+ const handleAccordionValueChange2 = (value) => {
5667
+ const newValue = handleAccordionValueChange(
5668
+ value,
5669
+ categories,
5670
+ isCategoryEnabled2
5671
+ );
5672
+ if (newValue !== null) {
5673
+ setOpenAccordion(newValue);
5674
+ }
5675
+ };
5583
5676
  const getDependentCategories = (categoryKey) => {
5584
5677
  return categories.filter((cat) => cat.dependsOn?.includes(categoryKey)).map((cat) => cat.key);
5585
5678
  };
@@ -5772,14 +5865,7 @@ var CheckboxGroup = ({
5772
5865
  }
5773
5866
  )
5774
5867
  ] }),
5775
- (openAccordion === category.key || isEnabled) && /* @__PURE__ */ jsx25(Badge_default, { variant: "solid", action: "info", children: (() => {
5776
- const visibleIds = getFormattedItems(category.key).flatMap((group) => group.itens || []).map((i) => i.id);
5777
- const selectedVisibleCount = visibleIds.filter(
5778
- (id) => category.selectedIds?.includes(id)
5779
- ).length;
5780
- const totalVisible = visibleIds.length;
5781
- return `${selectedVisibleCount} de ${totalVisible} ${selectedVisibleCount === 1 ? "selecionado" : "selecionados"}`;
5782
- })() })
5868
+ (openAccordion === category.key || isEnabled) && /* @__PURE__ */ jsx25(Badge_default, { variant: "solid", action: "info", children: getBadgeText2(category) })
5783
5869
  ] });
5784
5870
  const renderCompactSingleItem = (category) => {
5785
5871
  const formattedItems = getFormattedItems(category.key);
@@ -5801,10 +5887,7 @@ var CheckboxGroup = ({
5801
5887
  );
5802
5888
  };
5803
5889
  const renderCategoryAccordion = (category) => {
5804
- const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
5805
- const depCat = categories.find((c) => c.key === depKey);
5806
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
5807
- });
5890
+ const isEnabled = isCategoryEnabled2(category);
5808
5891
  const hasOnlyOneItem = category.itens?.length === 1;
5809
5892
  if (hasOnlyOneItem && !compactSingleItem && !showSingleItem) {
5810
5893
  return null;
@@ -5844,10 +5927,7 @@ var CheckboxGroup = ({
5844
5927
  if (!openAccordion) return;
5845
5928
  const category = categories.find((c) => c.key === openAccordion);
5846
5929
  if (!category) return;
5847
- const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
5848
- const depCat = categories.find((c) => c.key === depKey);
5849
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
5850
- });
5930
+ const isEnabled = isCategoryEnabled2(category);
5851
5931
  if (!isEnabled) {
5852
5932
  setTimeout(() => {
5853
5933
  setOpenAccordion("");
@@ -5860,21 +5940,7 @@ var CheckboxGroup = ({
5860
5940
  type: "single",
5861
5941
  collapsible: true,
5862
5942
  value: openAccordion,
5863
- onValueChange: (value) => {
5864
- if (typeof value === "string") {
5865
- if (value) {
5866
- const category = categories.find((c) => c.key === value);
5867
- const isEnabled = !category?.dependsOn || category.dependsOn.every((depKey) => {
5868
- const depCat = categories.find((c) => c.key === depKey);
5869
- return depCat?.selectedIds && depCat.selectedIds.length > 0;
5870
- });
5871
- if (!isEnabled) {
5872
- return;
5873
- }
5874
- }
5875
- setOpenAccordion(value);
5876
- }
5877
- },
5943
+ onValueChange: handleAccordionValueChange2,
5878
5944
  children: categories.map(renderCategoryAccordion)
5879
5945
  }
5880
5946
  );
@@ -5957,7 +6023,7 @@ function validateActivityStep(data) {
5957
6023
  function validateRecipientStep(data) {
5958
6024
  const errors = {};
5959
6025
  const result = recipientStepSchema.safeParse({
5960
- students: data.students
6026
+ students: data.students ?? []
5961
6027
  });
5962
6028
  if (!result.success) {
5963
6029
  result.error.issues.forEach((issue) => {
@@ -6094,14 +6160,26 @@ var useSendActivityModalStore = create5(
6094
6160
  },
6095
6161
  validateCurrentStep: () => {
6096
6162
  const state = get();
6097
- const errors = validateStep(state.currentStep, state.formData);
6098
- set({ errors });
6163
+ let formDataToValidate = state.formData;
6164
+ let updatedFormData = state.formData;
6165
+ if (state.currentStep === 2 && state.categories.length > 0) {
6166
+ const students = extractStudentsFromCategories(state.categories);
6167
+ formDataToValidate = { ...state.formData, students };
6168
+ updatedFormData = formDataToValidate;
6169
+ }
6170
+ const errors = validateStep(state.currentStep, formDataToValidate);
6171
+ set({ formData: updatedFormData, errors });
6099
6172
  return Object.keys(errors).length === 0;
6100
6173
  },
6101
6174
  validateAllSteps: () => {
6102
6175
  const state = get();
6176
+ let formDataForStep2 = state.formData;
6177
+ if (state.categories.length > 0) {
6178
+ const students = extractStudentsFromCategories(state.categories);
6179
+ formDataForStep2 = { ...state.formData, students };
6180
+ }
6103
6181
  const errors1 = validateStep(1, state.formData);
6104
- const errors2 = validateStep(2, state.formData);
6182
+ const errors2 = validateStep(2, formDataForStep2);
6105
6183
  const errors3 = validateStep(3, state.formData);
6106
6184
  const allErrors = { ...errors1, ...errors2, ...errors3 };
6107
6185
  set({ errors: allErrors });