analytica-frontend-lib 1.2.47 → 1.2.48
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.
- package/dist/SendActivityModal/SendActivityModal.css +19327 -0
- package/dist/SendActivityModal/SendActivityModal.css.map +1 -0
- package/dist/SendActivityModal/SendActivityModal.d.ts +12 -0
- package/dist/SendActivityModal/SendActivityModal.d.ts.map +1 -0
- package/dist/SendActivityModal/SendActivityModal.js +6446 -0
- package/dist/SendActivityModal/SendActivityModal.js.map +1 -0
- package/dist/SendActivityModal/SendActivityModal.mjs +6486 -0
- package/dist/SendActivityModal/SendActivityModal.mjs.map +1 -0
- package/dist/SendActivityModal/hooks/useSendActivityModal.d.ts +43 -0
- package/dist/SendActivityModal/hooks/useSendActivityModal.d.ts.map +1 -0
- package/dist/SendActivityModal/hooks/useSendActivityModal.js +269 -0
- package/dist/SendActivityModal/hooks/useSendActivityModal.js.map +1 -0
- package/dist/SendActivityModal/hooks/useSendActivityModal.mjs +243 -0
- package/dist/SendActivityModal/hooks/useSendActivityModal.mjs.map +1 -0
- package/dist/SendActivityModal/types.d.ts +95 -0
- package/dist/SendActivityModal/types.d.ts.map +1 -0
- package/dist/SendActivityModal/types.js +35 -0
- package/dist/SendActivityModal/types.js.map +1 -0
- package/dist/SendActivityModal/types.mjs +10 -0
- package/dist/SendActivityModal/types.mjs.map +1 -0
- package/dist/SendActivityModal/validation.d.ts +133 -0
- package/dist/SendActivityModal/validation.d.ts.map +1 -0
- package/dist/SendActivityModal/validation.js +178 -0
- package/dist/SendActivityModal/validation.js.map +1 -0
- package/dist/SendActivityModal/validation.mjs +144 -0
- package/dist/SendActivityModal/validation.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/SendActivityModal/validation.ts"],"sourcesContent":["import { z } from 'zod';\nimport { SendActivityFormData, StepErrors } from './types';\n\n/**\n * Error messages for validation\n */\nexport const ERROR_MESSAGES = {\n SUBTYPE_REQUIRED:\n 'Campo obrigatório! Por favor, selecione uma opção para continuar.',\n TITLE_REQUIRED:\n 'Campo obrigatório! Por favor, preencha este campo para continuar.',\n STUDENTS_REQUIRED:\n 'Campo obrigatório! Por favor, selecione pelo menos um aluno para continuar.',\n START_DATE_REQUIRED:\n 'Campo obrigatório! Por favor, preencha este campo para continuar.',\n FINAL_DATE_REQUIRED:\n 'Campo obrigatório! Por favor, preencha este campo para continuar.',\n FINAL_DATE_INVALID: 'A data final deve ser maior ou igual à data inicial.',\n} as const;\n\n/**\n * Zod schema for activity step (Step 1)\n */\nexport const activityStepSchema = z.object({\n subtype: z.enum(['TAREFA', 'TRABALHO', 'PROVA'], {\n errorMap: () => ({ message: ERROR_MESSAGES.SUBTYPE_REQUIRED }),\n }),\n title: z\n .string({ required_error: ERROR_MESSAGES.TITLE_REQUIRED })\n .transform((val) => val.trim())\n .refine((val) => val.length > 0, {\n message: ERROR_MESSAGES.TITLE_REQUIRED,\n }),\n notification: z.string().optional(),\n});\n\n/**\n * Zod schema for recipient step (Step 2)\n */\nexport const recipientStepSchema = z.object({\n students: z\n .array(\n z.object({\n studentId: z.string(),\n userInstitutionId: z.string(),\n }),\n {\n required_error: ERROR_MESSAGES.STUDENTS_REQUIRED,\n invalid_type_error: ERROR_MESSAGES.STUDENTS_REQUIRED,\n }\n )\n .min(1, ERROR_MESSAGES.STUDENTS_REQUIRED),\n});\n\n/**\n * Regex patterns for date and time validation\n */\nconst DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst TIME_REGEX = /^\\d{2}:\\d{2}$/;\n\n/**\n * Zod schema for deadline step (Step 3) - base validation\n */\nconst deadlineStepBaseSchema = z.object({\n startDate: z\n .string({\n required_error: ERROR_MESSAGES.START_DATE_REQUIRED,\n invalid_type_error: ERROR_MESSAGES.START_DATE_REQUIRED,\n })\n .min(1, ERROR_MESSAGES.START_DATE_REQUIRED)\n .regex(DATE_REGEX, ERROR_MESSAGES.START_DATE_REQUIRED),\n startTime: z.string().regex(TIME_REGEX).default('00:00'),\n finalDate: z\n .string({\n required_error: ERROR_MESSAGES.FINAL_DATE_REQUIRED,\n invalid_type_error: ERROR_MESSAGES.FINAL_DATE_REQUIRED,\n })\n .min(1, ERROR_MESSAGES.FINAL_DATE_REQUIRED)\n .regex(DATE_REGEX, ERROR_MESSAGES.FINAL_DATE_REQUIRED),\n finalTime: z.string().regex(TIME_REGEX).default('23:59'),\n canRetry: z.boolean().default(false),\n});\n\n/**\n * Zod schema for deadline step with date comparison refinement\n */\nexport const deadlineStepSchema = deadlineStepBaseSchema.refine(\n (data) => {\n const start = new Date(`${data.startDate}T${data.startTime}`);\n const end = new Date(`${data.finalDate}T${data.finalTime}`);\n return end >= start;\n },\n { message: ERROR_MESSAGES.FINAL_DATE_INVALID, path: ['finalDate'] }\n);\n\n/**\n * Type inference from Zod schemas\n */\nexport type ActivityStepData = z.infer<typeof activityStepSchema>;\nexport type RecipientStepData = z.infer<typeof recipientStepSchema>;\nexport type DeadlineStepData = z.infer<typeof deadlineStepSchema>;\n\n/**\n * Validates the activity step (Step 1) using Zod\n * @param data - Partial form data\n * @returns StepErrors object with any validation errors\n */\nexport function validateActivityStep(\n data: Partial<SendActivityFormData>\n): StepErrors {\n const errors: StepErrors = {};\n\n const result = activityStepSchema.safeParse({\n subtype: data.subtype,\n title: data.title,\n notification: data.notification,\n });\n\n if (!result.success) {\n result.error.issues.forEach((issue) => {\n const field = issue.path[0] as keyof StepErrors;\n if (field === 'subtype' || field === 'title') {\n errors[field] = issue.message;\n }\n });\n }\n\n return errors;\n}\n\n/**\n * Validates the recipient step (Step 2) using Zod\n * @param data - Partial form data\n * @returns StepErrors object with any validation errors\n */\nexport function validateRecipientStep(\n data: Partial<SendActivityFormData>\n): StepErrors {\n const errors: StepErrors = {};\n\n const result = recipientStepSchema.safeParse({\n students: data.students,\n });\n\n if (!result.success) {\n result.error.issues.forEach((issue) => {\n if (issue.path[0] === 'students') {\n errors.students = issue.message;\n }\n });\n }\n\n return errors;\n}\n\n/**\n * Validates the deadline step (Step 3) using Zod\n * @param data - Partial form data\n * @returns StepErrors object with any validation errors\n */\nexport function validateDeadlineStep(\n data: Partial<SendActivityFormData>\n): StepErrors {\n const errors: StepErrors = {};\n\n // First validate individual fields\n if (!data.startDate) {\n errors.startDate = ERROR_MESSAGES.START_DATE_REQUIRED;\n }\n\n if (!data.finalDate) {\n errors.finalDate = ERROR_MESSAGES.FINAL_DATE_REQUIRED;\n }\n\n // If both dates exist, validate with the full schema (including refinement)\n if (data.startDate && data.finalDate) {\n const result = deadlineStepSchema.safeParse({\n startDate: data.startDate,\n startTime: data.startTime ?? '00:00',\n finalDate: data.finalDate,\n finalTime: data.finalTime ?? '23:59',\n canRetry: data.canRetry ?? false,\n });\n\n if (!result.success) {\n result.error.issues.forEach((issue) => {\n const field = issue.path[0] as keyof StepErrors;\n if (field === 'startDate' || field === 'finalDate') {\n errors[field] = issue.message;\n }\n });\n }\n }\n\n return errors;\n}\n\n/**\n * Validates a specific step\n * @param step - Step number (1, 2, or 3)\n * @param data - Partial form data\n * @returns StepErrors object with any validation errors\n */\nexport function validateStep(\n step: number,\n data: Partial<SendActivityFormData>\n): StepErrors {\n switch (step) {\n case 1:\n return validateActivityStep(data);\n case 2:\n return validateRecipientStep(data);\n case 3:\n return validateDeadlineStep(data);\n default:\n return {};\n }\n}\n\n/**\n * Checks if a specific step is valid\n * @param step - Step number (1, 2, or 3)\n * @param data - Partial form data\n * @returns true if the step is valid\n */\nexport function isStepValid(\n step: number,\n data: Partial<SendActivityFormData>\n): boolean {\n const errors = validateStep(step, data);\n return Object.keys(errors).length === 0;\n}\n\n/**\n * Checks if all steps are valid (form can be submitted)\n * @param data - Partial form data\n * @returns true if all steps are valid\n */\nexport function isFormValid(data: Partial<SendActivityFormData>): boolean {\n return isStepValid(1, data) && isStepValid(2, data) && isStepValid(3, data);\n}\n"],"mappings":";AAAA,SAAS,SAAS;AAMX,IAAM,iBAAiB;AAAA,EAC5B,kBACE;AAAA,EACF,gBACE;AAAA,EACF,mBACE;AAAA,EACF,qBACE;AAAA,EACF,qBACE;AAAA,EACF,oBAAoB;AACtB;AAKO,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,SAAS,EAAE,KAAK,CAAC,UAAU,YAAY,OAAO,GAAG;AAAA,IAC/C,UAAU,OAAO,EAAE,SAAS,eAAe,iBAAiB;AAAA,EAC9D,CAAC;AAAA,EACD,OAAO,EACJ,OAAO,EAAE,gBAAgB,eAAe,eAAe,CAAC,EACxD,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,EAC7B,OAAO,CAAC,QAAQ,IAAI,SAAS,GAAG;AAAA,IAC/B,SAAS,eAAe;AAAA,EAC1B,CAAC;AAAA,EACH,cAAc,EAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAKM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,UAAU,EACP;AAAA,IACC,EAAE,OAAO;AAAA,MACP,WAAW,EAAE,OAAO;AAAA,MACpB,mBAAmB,EAAE,OAAO;AAAA,IAC9B,CAAC;AAAA,IACD;AAAA,MACE,gBAAgB,eAAe;AAAA,MAC/B,oBAAoB,eAAe;AAAA,IACrC;AAAA,EACF,EACC,IAAI,GAAG,eAAe,iBAAiB;AAC5C,CAAC;AAKD,IAAM,aAAa;AACnB,IAAM,aAAa;AAKnB,IAAM,yBAAyB,EAAE,OAAO;AAAA,EACtC,WAAW,EACR,OAAO;AAAA,IACN,gBAAgB,eAAe;AAAA,IAC/B,oBAAoB,eAAe;AAAA,EACrC,CAAC,EACA,IAAI,GAAG,eAAe,mBAAmB,EACzC,MAAM,YAAY,eAAe,mBAAmB;AAAA,EACvD,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,EAAE,QAAQ,OAAO;AAAA,EACvD,WAAW,EACR,OAAO;AAAA,IACN,gBAAgB,eAAe;AAAA,IAC/B,oBAAoB,eAAe;AAAA,EACrC,CAAC,EACA,IAAI,GAAG,eAAe,mBAAmB,EACzC,MAAM,YAAY,eAAe,mBAAmB;AAAA,EACvD,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,EAAE,QAAQ,OAAO;AAAA,EACvD,UAAU,EAAE,QAAQ,EAAE,QAAQ,KAAK;AACrC,CAAC;AAKM,IAAM,qBAAqB,uBAAuB;AAAA,EACvD,CAAC,SAAS;AACR,UAAM,QAAQ,oBAAI,KAAK,GAAG,KAAK,SAAS,IAAI,KAAK,SAAS,EAAE;AAC5D,UAAM,MAAM,oBAAI,KAAK,GAAG,KAAK,SAAS,IAAI,KAAK,SAAS,EAAE;AAC1D,WAAO,OAAO;AAAA,EAChB;AAAA,EACA,EAAE,SAAS,eAAe,oBAAoB,MAAM,CAAC,WAAW,EAAE;AACpE;AAcO,SAAS,qBACd,MACY;AACZ,QAAM,SAAqB,CAAC;AAE5B,QAAM,SAAS,mBAAmB,UAAU;AAAA,IAC1C,SAAS,KAAK;AAAA,IACd,OAAO,KAAK;AAAA,IACZ,cAAc,KAAK;AAAA,EACrB,CAAC;AAED,MAAI,CAAC,OAAO,SAAS;AACnB,WAAO,MAAM,OAAO,QAAQ,CAAC,UAAU;AACrC,YAAM,QAAQ,MAAM,KAAK,CAAC;AAC1B,UAAI,UAAU,aAAa,UAAU,SAAS;AAC5C,eAAO,KAAK,IAAI,MAAM;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAOO,SAAS,sBACd,MACY;AACZ,QAAM,SAAqB,CAAC;AAE5B,QAAM,SAAS,oBAAoB,UAAU;AAAA,IAC3C,UAAU,KAAK;AAAA,EACjB,CAAC;AAED,MAAI,CAAC,OAAO,SAAS;AACnB,WAAO,MAAM,OAAO,QAAQ,CAAC,UAAU;AACrC,UAAI,MAAM,KAAK,CAAC,MAAM,YAAY;AAChC,eAAO,WAAW,MAAM;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAOO,SAAS,qBACd,MACY;AACZ,QAAM,SAAqB,CAAC;AAG5B,MAAI,CAAC,KAAK,WAAW;AACnB,WAAO,YAAY,eAAe;AAAA,EACpC;AAEA,MAAI,CAAC,KAAK,WAAW;AACnB,WAAO,YAAY,eAAe;AAAA,EACpC;AAGA,MAAI,KAAK,aAAa,KAAK,WAAW;AACpC,UAAM,SAAS,mBAAmB,UAAU;AAAA,MAC1C,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK,aAAa;AAAA,MAC7B,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK,aAAa;AAAA,MAC7B,UAAU,KAAK,YAAY;AAAA,IAC7B,CAAC;AAED,QAAI,CAAC,OAAO,SAAS;AACnB,aAAO,MAAM,OAAO,QAAQ,CAAC,UAAU;AACrC,cAAM,QAAQ,MAAM,KAAK,CAAC;AAC1B,YAAI,UAAU,eAAe,UAAU,aAAa;AAClD,iBAAO,KAAK,IAAI,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAQO,SAAS,aACd,MACA,MACY;AACZ,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,qBAAqB,IAAI;AAAA,IAClC,KAAK;AACH,aAAO,sBAAsB,IAAI;AAAA,IACnC,KAAK;AACH,aAAO,qBAAqB,IAAI;AAAA,IAClC;AACE,aAAO,CAAC;AAAA,EACZ;AACF;AAQO,SAAS,YACd,MACA,MACS;AACT,QAAM,SAAS,aAAa,MAAM,IAAI;AACtC,SAAO,OAAO,KAAK,MAAM,EAAE,WAAW;AACxC;AAOO,SAAS,YAAY,MAA8C;AACxE,SAAO,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,IAAI;AAC5E;","names":[]}
|
package/package.json
CHANGED