UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

1 lines 5.42 kB
{"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":[]}