{"version":3,"sources":["../src/components/TypeSelector/TypeSelector.types.ts"],"sourcesContent":["import { ACTIVITY_FILTER_STATUS_OPTIONS } from '../../types/activitiesHistory';\nimport { EXAM_STATUS_OPTIONS } from '../../utils/examFilterHelpers';\n\n/**\n * Activity type enum\n */\nexport type ActivityCategory = 'ATIVIDADE' | 'PROVA';\n\n/**\n * Active tab type for activity pages\n */\nexport type ActiveTab = 'history' | 'drafts' | 'models';\n\n/**\n * Labels configuration for each activity type\n */\nexport interface TypeLabels {\n  pageTitle: Record<ActiveTab, string>;\n  createButton: string;\n  selectorLabel: string;\n  itemLabel: Record<ActiveTab, string>;\n  searchPlaceholder: Record<ActiveTab, string>;\n  emptyState: {\n    title: string;\n    description: string;\n    buttonText: string;\n  };\n  statusLabel: string;\n}\n\n/**\n * Routes configuration for each activity type\n */\nexport interface TypeRoutes {\n  base: string;\n  create: string;\n  details: (id: string) => string;\n  editDraft: (id: string) => string;\n  editModel: (id: string) => string;\n}\n\n/**\n * Complete configuration for an activity type\n */\nexport interface TypeConfig {\n  labels: TypeLabels;\n  routes: TypeRoutes;\n  statusOptions: Array<{ id: string; name: string }>;\n}\n\n/**\n * Default labels for ATIVIDADE type\n */\nexport const ATIVIDADE_LABELS: TypeLabels = {\n  pageTitle: {\n    history: 'Histórico de atividades',\n    drafts: 'Rascunhos de atividades',\n    models: 'Modelos de atividades',\n  },\n  createButton: 'Criar atividade',\n  selectorLabel: 'Atividades',\n  itemLabel: {\n    history: 'atividades',\n    drafts: 'rascunhos',\n    models: 'modelos',\n  },\n  searchPlaceholder: {\n    history: 'Buscar atividade',\n    drafts: 'Buscar rascunho',\n    models: 'Buscar modelo',\n  },\n  emptyState: {\n    title: 'Incentive sua turma ao aprendizado',\n    description:\n      'Crie uma nova atividade e ajude seus alunos a colocarem o conteúdo em prática!',\n    buttonText: 'Criar atividade',\n  },\n  statusLabel: 'Status da Atividade',\n};\n\n/**\n * Default labels for PROVA type\n */\nexport const PROVA_LABELS: TypeLabels = {\n  pageTitle: {\n    history: 'Histórico de provas',\n    drafts: 'Rascunhos de provas',\n    models: 'Modelos de provas',\n  },\n  createButton: 'Criar prova',\n  selectorLabel: 'Provas',\n  itemLabel: {\n    history: 'provas',\n    drafts: 'rascunhos',\n    models: 'modelos',\n  },\n  searchPlaceholder: {\n    history: 'Buscar prova',\n    drafts: 'Buscar rascunho',\n    models: 'Buscar modelo',\n  },\n  emptyState: {\n    title: 'Avalie o conhecimento da sua turma',\n    description:\n      'Crie uma nova prova e acompanhe o desempenho dos seus alunos!',\n    buttonText: 'Criar prova',\n  },\n  statusLabel: 'Status da Prova',\n};\n\n/**\n * Default status options by type\n */\nexport const DEFAULT_STATUS_OPTIONS: Record<\n  ActivityCategory,\n  Array<{ id: string; name: string }>\n> = {\n  ATIVIDADE: ACTIVITY_FILTER_STATUS_OPTIONS,\n  PROVA: EXAM_STATUS_OPTIONS,\n};\n\n/**\n * Get tab path segment based on active tab\n */\nexport const getTabPath = (tab: ActiveTab): string => {\n  switch (tab) {\n    case 'drafts':\n      return '/rascunhos';\n    case 'models':\n      return '/modelos';\n    default:\n      return '';\n  }\n};\n\n/**\n * Get tab value from URL path segment\n */\nexport const getTabFromPath = (pathname: string): ActiveTab => {\n  const cleanPath = pathname.split('?')[0].split('#')[0];\n\n  if (/(^|\\/)rascunhos(\\/|$)/.test(cleanPath)) return 'drafts';\n  if (/(^|\\/)modelos(\\/|$)/.test(cleanPath)) return 'models';\n  return 'history';\n};\n\n/**\n * Create activity type config with custom routes\n */\nexport const createActivityCategoryConfig = (\n  routes: Record<ActivityCategory, TypeRoutes>\n): Record<ActivityCategory, TypeConfig> => ({\n  ATIVIDADE: {\n    labels: ATIVIDADE_LABELS,\n    routes: routes.ATIVIDADE,\n    statusOptions: DEFAULT_STATUS_OPTIONS.ATIVIDADE,\n  },\n  PROVA: {\n    labels: PROVA_LABELS,\n    routes: routes.PROVA,\n    statusOptions: DEFAULT_STATUS_OPTIONS.PROVA,\n  },\n});\n"],"mappings":";;;;;;;;AAqDO,IAAM,mBAA+B;AAAA,EAC1C,WAAW;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,EACd,eAAe;AAAA,EACf,WAAW;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,OAAO;AAAA,IACP,aACE;AAAA,IACF,YAAY;AAAA,EACd;AAAA,EACA,aAAa;AACf;AAKO,IAAM,eAA2B;AAAA,EACtC,WAAW;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,cAAc;AAAA,EACd,eAAe;AAAA,EACf,WAAW;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,OAAO;AAAA,IACP,aACE;AAAA,IACF,YAAY;AAAA,EACd;AAAA,EACA,aAAa;AACf;AAKO,IAAM,yBAGT;AAAA,EACF,WAAW;AAAA,EACX,OAAO;AACT;AAKO,IAAM,aAAa,CAAC,QAA2B;AACpD,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAKO,IAAM,iBAAiB,CAAC,aAAgC;AAC7D,QAAM,YAAY,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAErD,MAAI,wBAAwB,KAAK,SAAS,EAAG,QAAO;AACpD,MAAI,sBAAsB,KAAK,SAAS,EAAG,QAAO;AAClD,SAAO;AACT;AAKO,IAAM,+BAA+B,CAC1C,YAC0C;AAAA,EAC1C,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ,OAAO;AAAA,IACf,eAAe,uBAAuB;AAAA,EACxC;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ,OAAO;AAAA,IACf,eAAe,uBAAuB;AAAA,EACxC;AACF;","names":[]}