analytica-frontend-lib 1.2.30 → 1.2.32

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.
@@ -1,12 +1,14 @@
1
- import { type CategoryConfig } from '../..';
2
- import type { ActivityFiltersData, Bank, KnowledgeArea, KnowledgeStructureState } from '../../types/activityFilters';
1
+ import { type CategoryConfig, QUESTION_TYPE } from '../..';
2
+ import type { ActivityFiltersData, Bank, BankYear, KnowledgeArea, KnowledgeStructureState } from '../../types/activityFilters';
3
3
  export interface ActivityFiltersProps {
4
4
  onFiltersChange: (filters: ActivityFiltersData) => void;
5
5
  variant?: 'default' | 'popover';
6
6
  banks?: Bank[];
7
+ bankYears?: BankYear[];
7
8
  knowledgeAreas?: KnowledgeArea[];
8
9
  knowledgeStructure?: KnowledgeStructureState;
9
10
  knowledgeCategories?: CategoryConfig[];
11
+ allowedQuestionTypes?: QUESTION_TYPE[];
10
12
  loadingBanks?: boolean;
11
13
  loadingKnowledge?: boolean;
12
14
  loadingSubjects?: boolean;
@@ -18,12 +20,6 @@ export interface ActivityFiltersProps {
18
20
  loadSubtopics?: (topicIds: string[]) => void | Promise<void>;
19
21
  loadContents?: (subtopicIds: string[]) => void | Promise<void>;
20
22
  handleCategoriesChange?: (updatedCategories: CategoryConfig[]) => void;
21
- selectedKnowledgeSummary?: {
22
- topics: string[];
23
- subtopics: string[];
24
- contents: string[];
25
- };
26
- enableSummary?: boolean;
27
23
  onClearFilters?: () => void;
28
24
  onApplyFilters?: () => void;
29
25
  }
@@ -31,7 +27,7 @@ export interface ActivityFiltersProps {
31
27
  * ActivityFilters component for filtering questions
32
28
  * Manages question types, banks, subjects, and knowledge structure selections
33
29
  */
34
- export declare const ActivityFilters: ({ onFiltersChange, variant, banks, knowledgeAreas, knowledgeStructure, knowledgeCategories, loadingBanks, loadingKnowledge: _loadingKnowledge, loadingSubjects, banksError, subjectsError, loadBanks, loadKnowledge, loadTopics, loadSubtopics: _loadSubtopics, loadContents: _loadContents, handleCategoriesChange, selectedKnowledgeSummary, enableSummary, onClearFilters, onApplyFilters, }: ActivityFiltersProps) => import("react/jsx-runtime").JSX.Element;
30
+ export declare const ActivityFilters: ({ onFiltersChange, variant, banks, bankYears, knowledgeAreas, knowledgeStructure, knowledgeCategories, allowedQuestionTypes, loadingBanks, loadingKnowledge: _loadingKnowledge, loadingSubjects, banksError, subjectsError, loadBanks, loadKnowledge, loadTopics, loadSubtopics: _loadSubtopics, loadContents: _loadContents, handleCategoriesChange, onClearFilters, onApplyFilters, }: ActivityFiltersProps) => import("react/jsx-runtime").JSX.Element;
35
31
  export interface ActivityFiltersPopoverProps extends Omit<ActivityFiltersProps, 'variant' | 'onFiltersChange'> {
36
32
  onFiltersChange: (filters: ActivityFiltersData) => void;
37
33
  triggerLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityFilters.d.ts","sourceRoot":"","sources":["../../../src/components/ActivityFilters/ActivityFilters.tsx"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,cAAc,EAMpB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AA0UrC,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;IAC7C,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/D,sBAAsB,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACvE,wBAAwB,CAAC,EAAE;QACzB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,iYAsC7B,oBAAoB,4CA8ItB,CAAC;AAEF,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACjE,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,4DAIpC,2BAA2B,4CAoB7B,CAAC"}
1
+ {"version":3,"file":"ActivityFilters.d.ts","sourceRoot":"","sources":["../../../src/components/ActivityFilters/ActivityFilters.tsx"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,cAAc,EAKnB,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,mBAAmB,EACnB,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AA4PrC,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;IAC7C,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEvC,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;IAEvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/D,sBAAsB,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAEvE,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,yXAmC7B,oBAAoB,4CA8OtB,CAAC;AAEF,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACjE,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,4DAIpC,2BAA2B,4CAoB7B,CAAC"}
@@ -4597,11 +4597,13 @@ var questionTypes = [
4597
4597
  ];
4598
4598
  var QuestionTypeFilter = ({
4599
4599
  selectedTypes,
4600
- onToggleType
4600
+ onToggleType,
4601
+ allowedQuestionTypes
4601
4602
  }) => {
4603
+ const availableQuestionTypes = allowedQuestionTypes || questionTypes;
4602
4604
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
4603
4605
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", weight: "bold", className: "mb-3 block", children: "Tipo de quest\xE3o" }),
4604
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-2 gap-2", children: questionTypes.map((questionType) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4606
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-2 gap-2", children: availableQuestionTypes.map((questionType) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4605
4607
  Chips_default,
4606
4608
  {
4607
4609
  selected: selectedTypes.includes(questionType),
@@ -4612,10 +4614,11 @@ var QuestionTypeFilter = ({
4612
4614
  )) })
4613
4615
  ] });
4614
4616
  };
4615
- var BanksFilter = ({
4617
+ var BanksAndYearsFilter = ({
4616
4618
  banks,
4617
- selectedBanks,
4618
- onToggleBank,
4619
+ bankYears,
4620
+ bankCategories,
4621
+ onBankCategoriesChange,
4619
4622
  loading = false,
4620
4623
  error = null
4621
4624
  }) => {
@@ -4625,18 +4628,21 @@ var BanksFilter = ({
4625
4628
  if (error) {
4626
4629
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", className: "text-text-600", children: error });
4627
4630
  }
4628
- if (banks.length === 0) {
4631
+ if (banks.length === 0 && bankYears.length === 0) {
4629
4632
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", className: "text-text-600", children: "Nenhuma banca encontrada" });
4630
4633
  }
4631
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-2 gap-2", children: banks.map((bank) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4632
- Chips_default,
4633
- {
4634
- selected: selectedBanks.includes(bank.examInstitution),
4635
- onClick: () => onToggleBank(bank.examInstitution),
4636
- children: bank.examInstitution
4637
- },
4638
- bank.examInstitution
4639
- )) });
4634
+ if (bankCategories.length > 0) {
4635
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4636
+ CheckboxGroup,
4637
+ {
4638
+ categories: bankCategories,
4639
+ onCategoriesChange: onBankCategoriesChange,
4640
+ compactSingleItem: true,
4641
+ showSingleItem: true
4642
+ }
4643
+ );
4644
+ }
4645
+ return null;
4640
4646
  };
4641
4647
  var SubjectsFilter = ({
4642
4648
  knowledgeAreas,
@@ -4685,38 +4691,10 @@ var SubjectsFilter = ({
4685
4691
  area.id
4686
4692
  )) });
4687
4693
  };
4688
- var KnowledgeSummary = ({
4689
- knowledgeStructure,
4690
- selectedKnowledgeSummary
4691
- }) => {
4692
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "mt-4 p-3 bg-background-50 rounded-lg border border-border-200", children: [
4693
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", weight: "bold", className: "mb-2 block", children: "Resumo da sele\xE7\xE3o" }),
4694
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex flex-col gap-2", children: [
4695
- knowledgeStructure.topics.length === 1 && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
4696
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "xs", weight: "medium", className: "text-text-600", children: "Tema:" }),
4697
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex flex-wrap gap-1 mt-1", children: selectedKnowledgeSummary.topics.map((topic) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Chips_default, { selected: true, children: topic }, topic)) })
4698
- ] }),
4699
- knowledgeStructure.subtopics.length === 1 && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
4700
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "xs", weight: "medium", className: "text-text-600", children: "Subtema:" }),
4701
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex flex-wrap gap-1 mt-1", children: selectedKnowledgeSummary.subtopics.map((subtopic) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Chips_default, { selected: true, children: subtopic }, subtopic)) })
4702
- ] }),
4703
- knowledgeStructure.contents.length === 1 && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
4704
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "xs", weight: "medium", className: "text-text-600", children: "Assunto:" }),
4705
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex flex-wrap gap-1 mt-1", children: selectedKnowledgeSummary.contents.map((content) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Chips_default, { selected: true, children: content }, content)) })
4706
- ] })
4707
- ] })
4708
- ] });
4709
- };
4710
4694
  var KnowledgeStructureFilter = ({
4711
4695
  knowledgeStructure,
4712
4696
  knowledgeCategories,
4713
- handleCategoriesChange,
4714
- selectedKnowledgeSummary = {
4715
- topics: [],
4716
- subtopics: [],
4717
- contents: []
4718
- },
4719
- enableSummary = false
4697
+ handleCategoriesChange
4720
4698
  }) => {
4721
4699
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "mt-4", children: [
4722
4700
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", weight: "bold", className: "mb-3 block", children: "Tema, Subtema e Assunto" }),
@@ -4726,17 +4704,12 @@ var KnowledgeStructureFilter = ({
4726
4704
  CheckboxGroup,
4727
4705
  {
4728
4706
  categories: knowledgeCategories,
4729
- onCategoriesChange: handleCategoriesChange
4707
+ onCategoriesChange: handleCategoriesChange,
4708
+ compactSingleItem: false,
4709
+ showSingleItem: true
4730
4710
  }
4731
4711
  ),
4732
- !knowledgeStructure.loading && knowledgeCategories.length === 0 && knowledgeStructure.topics.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", className: "text-text-600", children: "Nenhum tema dispon\xEDvel para as mat\xE9rias selecionadas" }),
4733
- enableSummary && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4734
- KnowledgeSummary,
4735
- {
4736
- knowledgeStructure,
4737
- selectedKnowledgeSummary
4738
- }
4739
- )
4712
+ !knowledgeStructure.loading && knowledgeCategories.length === 0 && knowledgeStructure.topics.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", className: "text-text-600", children: "Nenhum tema dispon\xEDvel para as mat\xE9rias selecionadas" })
4740
4713
  ] });
4741
4714
  };
4742
4715
  var FilterActions = ({
@@ -4756,6 +4729,7 @@ var ActivityFilters = ({
4756
4729
  variant = "default",
4757
4730
  // Data
4758
4731
  banks = [],
4732
+ bankYears = [],
4759
4733
  knowledgeAreas = [],
4760
4734
  knowledgeStructure = {
4761
4735
  topics: [],
@@ -4765,6 +4739,8 @@ var ActivityFilters = ({
4765
4739
  error: null
4766
4740
  },
4767
4741
  knowledgeCategories = [],
4742
+ // Question types
4743
+ allowedQuestionTypes,
4768
4744
  // Loading states
4769
4745
  loadingBanks = false,
4770
4746
  loadingKnowledge: _loadingKnowledge = false,
@@ -4780,19 +4756,47 @@ var ActivityFilters = ({
4780
4756
  loadContents: _loadContents,
4781
4757
  // Handlers
4782
4758
  handleCategoriesChange,
4783
- selectedKnowledgeSummary = {
4784
- topics: [],
4785
- subtopics: [],
4786
- contents: []
4787
- },
4788
- enableSummary = false,
4789
4759
  // Action buttons
4790
4760
  onClearFilters,
4791
4761
  onApplyFilters
4792
4762
  }) => {
4793
4763
  const [selectedQuestionTypes, setSelectedQuestionTypes] = (0, import_react13.useState)([]);
4794
- const [selectedBanks, setSelectedBanks] = (0, import_react13.useState)([]);
4795
4764
  const [selectedSubject, setSelectedSubject] = (0, import_react13.useState)(null);
4765
+ const prevAllowedQuestionTypesRef = (0, import_react13.useRef)(null);
4766
+ (0, import_react13.useEffect)(() => {
4767
+ if (!allowedQuestionTypes || allowedQuestionTypes.length === 0) {
4768
+ prevAllowedQuestionTypesRef.current = null;
4769
+ return;
4770
+ }
4771
+ const currentKey = allowedQuestionTypes.slice().sort((a, b) => {
4772
+ return a === b ? 0 : allowedQuestionTypes.indexOf(a) - allowedQuestionTypes.indexOf(b);
4773
+ }).join(",");
4774
+ const prevKey = prevAllowedQuestionTypesRef.current;
4775
+ if (currentKey === prevKey) {
4776
+ return;
4777
+ }
4778
+ prevAllowedQuestionTypesRef.current = currentKey;
4779
+ setSelectedQuestionTypes((prev) => {
4780
+ const filtered = prev.filter(
4781
+ (type) => allowedQuestionTypes.includes(type)
4782
+ );
4783
+ if (filtered.length !== prev.length) {
4784
+ return filtered;
4785
+ }
4786
+ const prevSet = new Set(prev);
4787
+ const filteredSet = new Set(filtered);
4788
+ if (prevSet.size !== filteredSet.size) {
4789
+ return filtered;
4790
+ }
4791
+ for (const item of prevSet) {
4792
+ if (!filteredSet.has(item)) {
4793
+ return filtered;
4794
+ }
4795
+ }
4796
+ return prev;
4797
+ });
4798
+ }, [allowedQuestionTypes]);
4799
+ const [bankCategories, setBankCategories] = (0, import_react13.useState)([]);
4796
4800
  const selectedSubjects = (0, import_react13.useMemo)(
4797
4801
  () => selectedSubject ? [selectedSubject] : [],
4798
4802
  [selectedSubject]
@@ -4800,12 +4804,38 @@ var ActivityFilters = ({
4800
4804
  const toggleQuestionType = (questionType) => {
4801
4805
  setSelectedQuestionTypes((prev) => toggleArrayItem(prev, questionType));
4802
4806
  };
4803
- const toggleBank = (bankName) => {
4804
- setSelectedBanks((prev) => toggleArrayItem(prev, bankName));
4805
- };
4806
4807
  const handleSubjectChange = (subjectId) => {
4807
4808
  setSelectedSubject(toggleSingleValue(selectedSubject, subjectId));
4808
4809
  };
4810
+ const handleBankCategoriesChange = (updatedCategories) => {
4811
+ setBankCategories(updatedCategories);
4812
+ };
4813
+ (0, import_react13.useEffect)(() => {
4814
+ setBankCategories((prevCategories) => {
4815
+ const bankCategory = {
4816
+ key: "banca",
4817
+ label: "Banca",
4818
+ itens: banks.map((bank) => ({
4819
+ id: bank.id,
4820
+ name: bank.name || bank.examInstitution
4821
+ })),
4822
+ selectedIds: prevCategories.find((c) => c.key === "banca")?.selectedIds || []
4823
+ };
4824
+ const yearCategory = {
4825
+ key: "ano",
4826
+ label: "Ano",
4827
+ dependsOn: ["banca"],
4828
+ itens: bankYears.map((year) => ({
4829
+ id: year.id,
4830
+ name: year.name,
4831
+ bankId: year.bankId
4832
+ })),
4833
+ filteredBy: [{ key: "banca", internalField: "bankId" }],
4834
+ selectedIds: prevCategories.find((c) => c.key === "ano")?.selectedIds || []
4835
+ };
4836
+ return [bankCategory, yearCategory];
4837
+ });
4838
+ }, [banks, bankYears]);
4809
4839
  (0, import_react13.useEffect)(() => {
4810
4840
  if (loadBanks) {
4811
4841
  loadBanks();
@@ -4826,24 +4856,36 @@ var ActivityFilters = ({
4826
4856
  contentIds: "assunto"
4827
4857
  });
4828
4858
  }, [knowledgeCategories]);
4859
+ const getSelectedBankIds = (0, import_react13.useCallback)(() => {
4860
+ return getSelectedIdsFromCategories(bankCategories, {
4861
+ bankIds: "banca",
4862
+ yearIds: "ano"
4863
+ });
4864
+ }, [bankCategories]);
4865
+ const onFiltersChangeRef = (0, import_react13.useRef)(onFiltersChange);
4866
+ (0, import_react13.useEffect)(() => {
4867
+ onFiltersChangeRef.current = onFiltersChange;
4868
+ }, [onFiltersChange]);
4829
4869
  (0, import_react13.useEffect)(() => {
4830
4870
  const knowledgeIds = getSelectedKnowledgeIds();
4871
+ const bankIds = getSelectedBankIds();
4831
4872
  const filters = {
4832
4873
  types: selectedQuestionTypes,
4833
- bankIds: selectedBanks,
4874
+ bankIds: bankIds.bankIds || [],
4875
+ yearIds: bankIds.yearIds || [],
4834
4876
  knowledgeIds: selectedSubjects,
4835
4877
  topicIds: knowledgeIds.topicIds,
4836
4878
  subtopicIds: knowledgeIds.subtopicIds,
4837
4879
  contentIds: knowledgeIds.contentIds
4838
4880
  };
4839
- onFiltersChange(filters);
4881
+ onFiltersChangeRef.current(filters);
4840
4882
  }, [
4841
4883
  selectedQuestionTypes,
4842
- selectedBanks,
4843
4884
  selectedSubjects,
4844
4885
  knowledgeCategories,
4886
+ bankCategories,
4845
4887
  getSelectedKnowledgeIds,
4846
- onFiltersChange
4888
+ getSelectedBankIds
4847
4889
  ]);
4848
4890
  const containerClassName = variant === "popover" ? "w-full bg-background" : "w-[400px] flex-shrink-0 p-4 bg-background";
4849
4891
  const contentClassName = variant === "popover" ? "p-4" : "";
@@ -4854,17 +4896,19 @@ var ActivityFilters = ({
4854
4896
  QuestionTypeFilter,
4855
4897
  {
4856
4898
  selectedTypes: selectedQuestionTypes,
4857
- onToggleType: toggleQuestionType
4899
+ onToggleType: toggleQuestionType,
4900
+ allowedQuestionTypes
4858
4901
  }
4859
4902
  ),
4860
4903
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
4861
4904
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text_default, { size: "sm", weight: "bold", className: "mb-3 block", children: "Banca de vestibular" }),
4862
4905
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4863
- BanksFilter,
4906
+ BanksAndYearsFilter,
4864
4907
  {
4865
4908
  banks,
4866
- selectedBanks,
4867
- onToggleBank: toggleBank,
4909
+ bankYears,
4910
+ bankCategories,
4911
+ onBankCategoriesChange: handleBankCategoriesChange,
4868
4912
  loading: loadingBanks,
4869
4913
  error: banksError
4870
4914
  }
@@ -4888,9 +4932,7 @@ var ActivityFilters = ({
4888
4932
  {
4889
4933
  knowledgeStructure,
4890
4934
  knowledgeCategories,
4891
- handleCategoriesChange,
4892
- selectedKnowledgeSummary,
4893
- enableSummary
4935
+ handleCategoriesChange
4894
4936
  }
4895
4937
  ),
4896
4938
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(