@hed-hog/lms 0.0.358 → 0.0.364
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/bitcode-wallet/bitcode-wallet.service.d.ts +65 -0
- package/dist/bitcode-wallet/bitcode-wallet.service.d.ts.map +1 -1
- package/dist/bitcode-wallet/bitcode-wallet.service.js +72 -0
- package/dist/bitcode-wallet/bitcode-wallet.service.js.map +1 -1
- package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.d.ts +8 -0
- package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.d.ts.map +1 -0
- package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.js +40 -0
- package/dist/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.js.map +1 -0
- package/dist/class-group/class-group.controller.d.ts +16 -16
- package/dist/class-group/class-group.service.d.ts +12 -12
- package/dist/course/course-audio-transcription.service.d.ts +3 -2
- package/dist/course/course-audio-transcription.service.d.ts.map +1 -1
- package/dist/course/course-audio-transcription.service.js +49 -8
- package/dist/course/course-audio-transcription.service.js.map +1 -1
- package/dist/course/course-lesson.controller.d.ts +4 -0
- package/dist/course/course-lesson.controller.d.ts.map +1 -1
- package/dist/course/course-lesson.controller.js +10 -0
- package/dist/course/course-lesson.controller.js.map +1 -1
- package/dist/course/course-structure.controller.d.ts +11 -4
- package/dist/course/course-structure.controller.d.ts.map +1 -1
- package/dist/course/course-structure.controller.js +14 -0
- package/dist/course/course-structure.controller.js.map +1 -1
- package/dist/course/course-structure.service.d.ts +15 -1
- package/dist/course/course-structure.service.d.ts.map +1 -1
- package/dist/course/course-structure.service.js +139 -4
- package/dist/course/course-structure.service.js.map +1 -1
- package/dist/course/course-video-conversion.service.d.ts +8 -0
- package/dist/course/course-video-conversion.service.d.ts.map +1 -1
- package/dist/course/course-video-conversion.service.js +87 -51
- package/dist/course/course-video-conversion.service.js.map +1 -1
- package/dist/course/course.controller.d.ts +73 -1
- package/dist/course/course.controller.d.ts.map +1 -1
- package/dist/course/course.controller.js +27 -3
- package/dist/course/course.controller.js.map +1 -1
- package/dist/course/course.module.d.ts.map +1 -1
- package/dist/course/course.module.js +15 -3
- package/dist/course/course.module.js.map +1 -1
- package/dist/course/course.service.d.ts +108 -4
- package/dist/course/course.service.d.ts.map +1 -1
- package/dist/course/course.service.js +631 -30
- package/dist/course/course.service.js.map +1 -1
- package/dist/course/dto/cleanup-course-storage.dto.d.ts +6 -0
- package/dist/course/dto/cleanup-course-storage.dto.d.ts.map +1 -0
- package/dist/course/dto/cleanup-course-storage.dto.js +33 -0
- package/dist/course/dto/cleanup-course-storage.dto.js.map +1 -0
- package/dist/course/dto/cleanup-upload-history.dto.d.ts +9 -0
- package/dist/course/dto/cleanup-upload-history.dto.d.ts.map +1 -0
- package/dist/course/dto/cleanup-upload-history.dto.js +36 -0
- package/dist/course/dto/cleanup-upload-history.dto.js.map +1 -0
- package/dist/course/dto/create-course-bulk-job.dto.d.ts +4 -0
- package/dist/course/dto/create-course-bulk-job.dto.d.ts.map +1 -0
- package/dist/course/dto/create-course-bulk-job.dto.js +21 -0
- package/dist/course/dto/create-course-bulk-job.dto.js.map +1 -0
- package/dist/course/lms-bulk-upload-automation.service.d.ts +39 -0
- package/dist/course/lms-bulk-upload-automation.service.d.ts.map +1 -0
- package/dist/course/lms-bulk-upload-automation.service.js +443 -0
- package/dist/course/lms-bulk-upload-automation.service.js.map +1 -0
- package/dist/course/lms-bulk-upload-infra.service.d.ts +31 -0
- package/dist/course/lms-bulk-upload-infra.service.d.ts.map +1 -0
- package/dist/course/lms-bulk-upload-infra.service.js +277 -0
- package/dist/course/lms-bulk-upload-infra.service.js.map +1 -0
- package/dist/course/lms-bulk-upload.constants.d.ts +4 -0
- package/dist/course/lms-bulk-upload.constants.d.ts.map +1 -0
- package/dist/course/lms-bulk-upload.constants.js +7 -0
- package/dist/course/lms-bulk-upload.constants.js.map +1 -0
- package/dist/course/lms-bulk-upload.controller.d.ts +153 -0
- package/dist/course/lms-bulk-upload.controller.d.ts.map +1 -0
- package/dist/course/lms-bulk-upload.controller.js +129 -0
- package/dist/course/lms-bulk-upload.controller.js.map +1 -0
- package/dist/course/lms-bulk-upload.service.d.ts +181 -0
- package/dist/course/lms-bulk-upload.service.d.ts.map +1 -0
- package/dist/course/lms-bulk-upload.service.js +754 -0
- package/dist/course/lms-bulk-upload.service.js.map +1 -0
- package/dist/course/lms-setting.controller.d.ts +7 -1
- package/dist/course/lms-setting.controller.d.ts.map +1 -1
- package/dist/course/lms-setting.controller.js +26 -3
- package/dist/course/lms-setting.controller.js.map +1 -1
- package/dist/enterprise/enterprise.controller.d.ts +20 -20
- package/dist/enterprise/enterprise.service.d.ts +20 -20
- package/dist/enterprise/training/training-admin.controller.d.ts +11 -11
- package/dist/enterprise/training/training-admin.service.d.ts +11 -11
- package/dist/enterprise/training/training-instructor.controller.d.ts +2 -2
- package/dist/enterprise/training/training-instructor.service.d.ts +2 -2
- package/dist/enterprise/training/training-student.controller.d.ts +1 -1
- package/dist/enterprise/training/training-student.service.d.ts +1 -1
- package/dist/enterprise/training/training-viewer.controller.d.ts +2 -2
- package/dist/evaluation/evaluation.controller.d.ts +8 -8
- package/dist/evaluation/evaluation.service.d.ts +8 -8
- package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.d.ts +6 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.d.ts.map +1 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.js +34 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-map.dto.js.map +1 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.d.ts +28 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.d.ts.map +1 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.js +123 -0
- package/dist/lesson-xp-map/dto/create-lesson-xp-segment.dto.js.map +1 -0
- package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.d.ts +4 -0
- package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.d.ts.map +1 -0
- package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.js +22 -0
- package/dist/lesson-xp-map/dto/review-lesson-xp-map.dto.js.map +1 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.d.ts +10 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.d.ts.map +1 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.js +52 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-map.dto.js.map +1 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.d.ts +15 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.d.ts.map +1 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.js +86 -0
- package/dist/lesson-xp-map/dto/update-lesson-xp-segment.dto.js.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts +26 -0
- package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.d.ts.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js +304 -0
- package/dist/lesson-xp-map/lesson-xp-ai-calculation.service.js.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-map.controller.d.ts +87 -0
- package/dist/lesson-xp-map/lesson-xp-map.controller.d.ts.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-map.controller.js +185 -0
- package/dist/lesson-xp-map/lesson-xp-map.controller.js.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-map.module.d.ts +3 -0
- package/dist/lesson-xp-map/lesson-xp-map.module.d.ts.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-map.module.js +34 -0
- package/dist/lesson-xp-map/lesson-xp-map.module.js.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-map.service.d.ts +84 -0
- package/dist/lesson-xp-map/lesson-xp-map.service.d.ts.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-map.service.js +353 -0
- package/dist/lesson-xp-map/lesson-xp-map.service.js.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-segment.controller.d.ts +10 -0
- package/dist/lesson-xp-map/lesson-xp-segment.controller.d.ts.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-segment.controller.js +63 -0
- package/dist/lesson-xp-map/lesson-xp-segment.controller.js.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-segment.service.d.ts +27 -0
- package/dist/lesson-xp-map/lesson-xp-segment.service.d.ts.map +1 -0
- package/dist/lesson-xp-map/lesson-xp-segment.service.js +194 -0
- package/dist/lesson-xp-map/lesson-xp-segment.service.js.map +1 -0
- package/dist/libraries/lms/tsconfig.tsbuildinfo +1 -0
- package/dist/lms.module.d.ts.map +1 -1
- package/dist/lms.module.js +17 -2
- package/dist/lms.module.js.map +1 -1
- package/dist/platforma/dto/update-profile.dto.d.ts +17 -0
- package/dist/platforma/dto/update-profile.dto.d.ts.map +1 -0
- package/dist/platforma/dto/update-profile.dto.js +87 -0
- package/dist/platforma/dto/update-profile.dto.js.map +1 -0
- package/dist/platforma/platforma.controller.d.ts +94 -7
- package/dist/platforma/platforma.controller.d.ts.map +1 -1
- package/dist/platforma/platforma.controller.js +85 -2
- package/dist/platforma/platforma.controller.js.map +1 -1
- package/dist/platforma/platforma.service.d.ts +27 -0
- package/dist/platforma/platforma.service.d.ts.map +1 -0
- package/dist/platforma/platforma.service.js +274 -0
- package/dist/platforma/platforma.service.js.map +1 -0
- package/dist/student-xp/student-xp.controller.d.ts +41 -0
- package/dist/student-xp/student-xp.controller.d.ts.map +1 -0
- package/dist/student-xp/student-xp.controller.js +114 -0
- package/dist/student-xp/student-xp.controller.js.map +1 -0
- package/dist/student-xp/student-xp.module.d.ts +3 -0
- package/dist/student-xp/student-xp.module.d.ts.map +1 -0
- package/dist/student-xp/student-xp.module.js +25 -0
- package/dist/student-xp/student-xp.module.js.map +1 -0
- package/dist/student-xp/student-xp.service.d.ts +65 -0
- package/dist/student-xp/student-xp.service.d.ts.map +1 -0
- package/dist/student-xp/student-xp.service.js +197 -0
- package/dist/student-xp/student-xp.service.js.map +1 -0
- package/dist/xp-catalog/dto/create-xp-area.dto.d.ts +12 -0
- package/dist/xp-catalog/dto/create-xp-area.dto.d.ts.map +1 -0
- package/dist/xp-catalog/dto/create-xp-area.dto.js +63 -0
- package/dist/xp-catalog/dto/create-xp-area.dto.js.map +1 -0
- package/dist/xp-catalog/dto/create-xp-learning-type.dto.d.ts +11 -0
- package/dist/xp-catalog/dto/create-xp-learning-type.dto.d.ts.map +1 -0
- package/dist/xp-catalog/dto/create-xp-learning-type.dto.js +57 -0
- package/dist/xp-catalog/dto/create-xp-learning-type.dto.js.map +1 -0
- package/dist/xp-catalog/dto/create-xp-skill.dto.d.ts +11 -0
- package/dist/xp-catalog/dto/create-xp-skill.dto.d.ts.map +1 -0
- package/dist/xp-catalog/dto/create-xp-skill.dto.js +57 -0
- package/dist/xp-catalog/dto/create-xp-skill.dto.js.map +1 -0
- package/dist/xp-catalog/dto/update-xp-area.dto.d.ts +12 -0
- package/dist/xp-catalog/dto/update-xp-area.dto.d.ts.map +1 -0
- package/dist/xp-catalog/dto/update-xp-area.dto.js +66 -0
- package/dist/xp-catalog/dto/update-xp-area.dto.js.map +1 -0
- package/dist/xp-catalog/dto/update-xp-learning-type.dto.d.ts +11 -0
- package/dist/xp-catalog/dto/update-xp-learning-type.dto.d.ts.map +1 -0
- package/dist/xp-catalog/dto/update-xp-learning-type.dto.js +60 -0
- package/dist/xp-catalog/dto/update-xp-learning-type.dto.js.map +1 -0
- package/dist/xp-catalog/dto/update-xp-skill.dto.d.ts +11 -0
- package/dist/xp-catalog/dto/update-xp-skill.dto.d.ts.map +1 -0
- package/dist/xp-catalog/dto/update-xp-skill.dto.js +60 -0
- package/dist/xp-catalog/dto/update-xp-skill.dto.js.map +1 -0
- package/dist/xp-catalog/xp-area.controller.d.ts +25 -0
- package/dist/xp-catalog/xp-area.controller.d.ts.map +1 -0
- package/dist/xp-catalog/xp-area.controller.js +105 -0
- package/dist/xp-catalog/xp-area.controller.js.map +1 -0
- package/dist/xp-catalog/xp-area.service.d.ts +35 -0
- package/dist/xp-catalog/xp-area.service.d.ts.map +1 -0
- package/dist/xp-catalog/xp-area.service.js +168 -0
- package/dist/xp-catalog/xp-area.service.js.map +1 -0
- package/dist/xp-catalog/xp-catalog.module.d.ts +3 -0
- package/dist/xp-catalog/xp-catalog.module.d.ts.map +1 -0
- package/dist/xp-catalog/xp-catalog.module.js +29 -0
- package/dist/xp-catalog/xp-catalog.module.js.map +1 -0
- package/dist/xp-catalog/xp-learning-type.controller.d.ts +20 -0
- package/dist/xp-catalog/xp-learning-type.controller.d.ts.map +1 -0
- package/dist/xp-catalog/xp-learning-type.controller.js +96 -0
- package/dist/xp-catalog/xp-learning-type.controller.js.map +1 -0
- package/dist/xp-catalog/xp-learning-type.service.d.ts +30 -0
- package/dist/xp-catalog/xp-learning-type.service.d.ts.map +1 -0
- package/dist/xp-catalog/xp-learning-type.service.js +146 -0
- package/dist/xp-catalog/xp-learning-type.service.js.map +1 -0
- package/dist/xp-catalog/xp-skill.controller.d.ts +26 -0
- package/dist/xp-catalog/xp-skill.controller.d.ts.map +1 -0
- package/dist/xp-catalog/xp-skill.controller.js +113 -0
- package/dist/xp-catalog/xp-skill.controller.js.map +1 -0
- package/dist/xp-catalog/xp-skill.service.d.ts +37 -0
- package/dist/xp-catalog/xp-skill.service.d.ts.map +1 -0
- package/dist/xp-catalog/xp-skill.service.js +174 -0
- package/dist/xp-catalog/xp-skill.service.js.map +1 -0
- package/hedhog/data/menu.yaml +101 -0
- package/hedhog/data/role.yaml +8 -0
- package/hedhog/data/route.yaml +547 -0
- package/hedhog/data/setting_group.yaml +33 -0
- package/hedhog/data/xp_area.yaml +164 -0
- package/hedhog/data/xp_learning_type.yaml +131 -0
- package/hedhog/data/xp_skill.yaml +1834 -0
- package/hedhog/frontend/app/achievements/page.tsx.ejs +108 -118
- package/hedhog/frontend/app/bitcodes/page.tsx.ejs +22 -34
- package/hedhog/frontend/app/bulk-upload-sessions/page.tsx.ejs +1453 -0
- package/hedhog/frontend/app/certificates/models/page.tsx.ejs +21 -45
- package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +40 -74
- package/hedhog/frontend/app/classes/page.tsx.ejs +56 -85
- package/hedhog/frontend/app/courses/[id]/_components/CourseDangerZoneCard.tsx.ejs +3 -2
- package/hedhog/frontend/app/courses/[id]/_components/CourseMediaCard.tsx.ejs +48 -5
- package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +4 -4
- package/hedhog/frontend/app/courses/[id]/structure/_components/course-operations-tab.tsx.ejs +19 -2
- package/hedhog/frontend/app/courses/[id]/structure/_components/course-overview-tab.tsx.ejs +1170 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree-dnd.tsx.ejs +16 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/course-tree.tsx.ejs +2 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/course-xp-overview-tab.tsx.ejs +623 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson-xp-tab.tsx.ejs +1458 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/detail-lesson.tsx.ejs +55 -2
- package/hedhog/frontend/app/courses/[id]/structure/_components/editor-course.tsx.ejs +442 -104
- package/hedhog/frontend/app/courses/[id]/structure/_components/editor-lesson.tsx.ejs +296 -49
- package/hedhog/frontend/app/courses/[id]/structure/_components/sortable-tree-row.tsx.ejs +3 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/store.ts.ejs +1 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/tree-display-settings-popover.tsx.ejs +101 -85
- package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row-lesson.tsx.ejs +21 -1
- package/hedhog/frontend/app/courses/[id]/structure/_components/tree-row.tsx.ejs +3 -0
- package/hedhog/frontend/app/courses/[id]/structure/_components/use-tree-display-settings.ts.ejs +7 -1
- package/hedhog/frontend/app/courses/[id]/structure/_components/xp-premium-pills.tsx.ejs +44 -0
- package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-content-overview.ts.ejs +54 -0
- package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-structure-mutations.ts.ejs +52 -0
- package/hedhog/frontend/app/courses/[id]/structure/_data/use-course-xp-overview.ts.ejs +76 -0
- package/hedhog/frontend/app/courses/[id]/structure/_data/use-lesson-xp-map.ts.ejs +128 -0
- package/hedhog/frontend/app/courses/[id]/structure/_data/use-transcription-segments.ts.ejs +30 -0
- package/hedhog/frontend/app/courses/[id]/structure/_utils/xp-color-config.ts.ejs +115 -0
- package/hedhog/frontend/app/courses/_components/CourseDeleteDialog.tsx.ejs +223 -0
- package/hedhog/frontend/app/courses/_components/CourseRowActions.tsx.ejs +89 -0
- package/hedhog/frontend/app/courses/page.tsx.ejs +400 -230
- package/hedhog/frontend/app/enterprise/page.tsx.ejs +39 -63
- package/hedhog/frontend/app/exams/[id]/questions/page.tsx.ejs +53 -77
- package/hedhog/frontend/app/exams/page.tsx.ejs +54 -90
- package/hedhog/frontend/app/instructor-skills/page.tsx.ejs +23 -36
- package/hedhog/frontend/app/instructors/page.tsx.ejs +72 -81
- package/hedhog/frontend/app/paths/page.tsx.ejs +40 -68
- package/hedhog/frontend/app/training/page.tsx.ejs +40 -68
- package/hedhog/frontend/app/xp/areas/page.tsx.ejs +782 -0
- package/hedhog/frontend/app/xp/learning-types/page.tsx.ejs +690 -0
- package/hedhog/frontend/app/xp/skills/page.tsx.ejs +811 -0
- package/hedhog/frontend/messages/en.json +386 -3
- package/hedhog/frontend/messages/pt.json +386 -3
- package/hedhog/table/lesson_xp_map.yaml +50 -0
- package/hedhog/table/lesson_xp_segment.yaml +40 -0
- package/hedhog/table/lesson_xp_segment_area.yaml +24 -0
- package/hedhog/table/lesson_xp_segment_learning_type.yaml +24 -0
- package/hedhog/table/lesson_xp_segment_skill.yaml +24 -0
- package/hedhog/table/lms_bulk_upload_item.yaml +44 -0
- package/hedhog/table/lms_bulk_upload_session.yaml +42 -0
- package/hedhog/table/student_area_xp.yaml +30 -0
- package/hedhog/table/student_learning_type_xp.yaml +30 -0
- package/hedhog/table/student_skill_xp.yaml +30 -0
- package/hedhog/table/student_xp_event.yaml +34 -0
- package/hedhog/table/xp_area.yaml +39 -0
- package/hedhog/table/xp_learning_type.yaml +34 -0
- package/hedhog/table/xp_skill.yaml +39 -0
- package/package.json +9 -8
- package/src/bitcode-wallet/bitcode-wallet.service.ts +113 -0
- package/src/bitcode-wallet/dto/create-current-bitcode-wallet-transaction.dto.ts +32 -0
- package/src/course/course-audio-transcription.service.ts +58 -21
- package/src/course/course-lesson.controller.ts +6 -1
- package/src/course/course-structure.controller.ts +10 -0
- package/src/course/course-structure.service.ts +174 -1
- package/src/course/course-video-conversion.service.ts +113 -75
- package/src/course/course.controller.ts +22 -3
- package/src/course/course.module.ts +15 -3
- package/src/course/course.service.ts +847 -30
- package/src/course/dto/cleanup-course-storage.dto.ts +22 -0
- package/src/course/dto/cleanup-upload-history.dto.ts +26 -0
- package/src/course/dto/create-course-bulk-job.dto.ts +6 -0
- package/src/course/lms-bulk-upload-automation.service.ts +560 -0
- package/src/course/lms-bulk-upload-infra.service.ts +327 -0
- package/src/course/lms-bulk-upload.constants.ts +5 -0
- package/src/course/lms-bulk-upload.controller.ts +103 -0
- package/src/course/lms-bulk-upload.service.ts +1029 -0
- package/src/course/lms-setting.controller.ts +28 -1
- package/src/lesson-xp-map/dto/create-lesson-xp-map.dto.ts +17 -0
- package/src/lesson-xp-map/dto/create-lesson-xp-segment.dto.ts +102 -0
- package/src/lesson-xp-map/dto/review-lesson-xp-map.dto.ts +7 -0
- package/src/lesson-xp-map/dto/update-lesson-xp-map.dto.ts +36 -0
- package/src/lesson-xp-map/dto/update-lesson-xp-segment.dto.ts +78 -0
- package/src/lesson-xp-map/lesson-xp-ai-calculation.service.ts +396 -0
- package/src/lesson-xp-map/lesson-xp-map.controller.ts +116 -0
- package/src/lesson-xp-map/lesson-xp-map.module.ts +21 -0
- package/src/lesson-xp-map/lesson-xp-map.service.ts +442 -0
- package/src/lesson-xp-map/lesson-xp-segment.controller.ts +36 -0
- package/src/lesson-xp-map/lesson-xp-segment.service.ts +229 -0
- package/src/lms.module.ts +17 -2
- package/src/platforma/dto/update-profile.dto.ts +59 -0
- package/src/platforma/platforma.controller.ts +57 -2
- package/src/platforma/platforma.service.ts +268 -0
- package/src/student-xp/student-xp.controller.ts +76 -0
- package/src/student-xp/student-xp.module.ts +12 -0
- package/src/student-xp/student-xp.service.ts +236 -0
- package/src/xp-catalog/dto/create-xp-area.dto.ts +40 -0
- package/src/xp-catalog/dto/create-xp-learning-type.dto.ts +35 -0
- package/src/xp-catalog/dto/create-xp-skill.dto.ts +35 -0
- package/src/xp-catalog/dto/update-xp-area.dto.ts +43 -0
- package/src/xp-catalog/dto/update-xp-learning-type.dto.ts +38 -0
- package/src/xp-catalog/dto/update-xp-skill.dto.ts +38 -0
- package/src/xp-catalog/xp-area.controller.ts +64 -0
- package/src/xp-catalog/xp-area.service.ts +196 -0
- package/src/xp-catalog/xp-catalog.module.ts +16 -0
- package/src/xp-catalog/xp-learning-type.controller.ts +59 -0
- package/src/xp-catalog/xp-learning-type.service.ts +170 -0
- package/src/xp-catalog/xp-skill.controller.ts +71 -0
- package/src/xp-catalog/xp-skill.service.ts +205 -0
|
@@ -20,15 +20,8 @@ import {
|
|
|
20
20
|
} from '@/components/ui/alert-dialog';
|
|
21
21
|
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
|
22
22
|
import { Badge } from '@/components/ui/badge';
|
|
23
|
-
import { Button } from '@/components/ui/button';
|
|
24
23
|
import { Card, CardContent } from '@/components/ui/card';
|
|
25
|
-
import {
|
|
26
|
-
DropdownMenu,
|
|
27
|
-
DropdownMenuContent,
|
|
28
|
-
DropdownMenuItem,
|
|
29
|
-
DropdownMenuSeparator,
|
|
30
|
-
DropdownMenuTrigger,
|
|
31
|
-
} from '@/components/ui/dropdown-menu';
|
|
24
|
+
import { IconActionGroup } from '@/components/ui/icon-action-group';
|
|
32
25
|
import { KpiCardsGrid } from '@/components/ui/kpi-cards-grid';
|
|
33
26
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
34
27
|
import {
|
|
@@ -40,13 +33,13 @@ import {
|
|
|
40
33
|
TableRow,
|
|
41
34
|
} from '@/components/ui/table';
|
|
42
35
|
import { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';
|
|
36
|
+
import { usePersistedPageSize } from '@/hooks/use-persisted-page-size';
|
|
43
37
|
import { cn } from '@/lib/utils';
|
|
44
38
|
import { useApp, useQuery } from '@hed-hog/next-app-provider';
|
|
45
39
|
import {
|
|
46
40
|
LayoutGrid,
|
|
47
41
|
List,
|
|
48
42
|
Mail,
|
|
49
|
-
MoreHorizontal,
|
|
50
43
|
Pencil,
|
|
51
44
|
Phone,
|
|
52
45
|
Plus,
|
|
@@ -56,7 +49,6 @@ import {
|
|
|
56
49
|
} from 'lucide-react';
|
|
57
50
|
import { useTranslations } from 'next-intl';
|
|
58
51
|
import { useEffect, useState } from 'react';
|
|
59
|
-
import { usePersistedPageSize } from '@/hooks/use-persisted-page-size';
|
|
60
52
|
import { toast } from 'sonner';
|
|
61
53
|
import { InstructorFormSheet } from './_components/instructor-form-sheet';
|
|
62
54
|
import type {
|
|
@@ -569,36 +561,27 @@ export default function InstructorsPage() {
|
|
|
569
561
|
</Badge>
|
|
570
562
|
</TableCell>
|
|
571
563
|
<TableCell>
|
|
572
|
-
<
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
<Pencil className="mr-2 h-4 w-4" />
|
|
587
|
-
{t('actions.edit')}
|
|
588
|
-
</DropdownMenuItem>
|
|
589
|
-
<DropdownMenuSeparator />
|
|
590
|
-
<DropdownMenuItem
|
|
591
|
-
className="text-red-600"
|
|
592
|
-
onClick={() => {
|
|
564
|
+
<IconActionGroup
|
|
565
|
+
className="ml-auto"
|
|
566
|
+
actions={[
|
|
567
|
+
{
|
|
568
|
+
key: 'edit',
|
|
569
|
+
label: t('actions.edit'),
|
|
570
|
+
icon: <Pencil className="size-4" />,
|
|
571
|
+
onClick: () => openEditSheet(instructor),
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
key: 'delete',
|
|
575
|
+
label: t('actions.delete'),
|
|
576
|
+
icon: <Trash2 className="size-4" />,
|
|
577
|
+
onClick: () => {
|
|
593
578
|
setInstructorToDelete(instructor);
|
|
594
579
|
setDeleteDialogOpen(true);
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
</DropdownMenuContent>
|
|
601
|
-
</DropdownMenu>
|
|
580
|
+
},
|
|
581
|
+
destructive: true,
|
|
582
|
+
},
|
|
583
|
+
]}
|
|
584
|
+
/>
|
|
602
585
|
</TableCell>
|
|
603
586
|
</TableRow>
|
|
604
587
|
))}
|
|
@@ -648,36 +631,27 @@ export default function InstructorsPage() {
|
|
|
648
631
|
</div>
|
|
649
632
|
</div>
|
|
650
633
|
|
|
651
|
-
<
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
<Pencil className="mr-2 h-4 w-4" />
|
|
666
|
-
{t('actions.edit')}
|
|
667
|
-
</DropdownMenuItem>
|
|
668
|
-
<DropdownMenuSeparator />
|
|
669
|
-
<DropdownMenuItem
|
|
670
|
-
className="text-red-600"
|
|
671
|
-
onClick={() => {
|
|
634
|
+
<IconActionGroup
|
|
635
|
+
className="opacity-0 transition-opacity group-hover:opacity-100"
|
|
636
|
+
actions={[
|
|
637
|
+
{
|
|
638
|
+
key: 'edit',
|
|
639
|
+
label: t('actions.edit'),
|
|
640
|
+
icon: <Pencil className="size-4" />,
|
|
641
|
+
onClick: () => openEditSheet(instructor),
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
key: 'delete',
|
|
645
|
+
label: t('actions.delete'),
|
|
646
|
+
icon: <Trash2 className="size-4" />,
|
|
647
|
+
onClick: () => {
|
|
672
648
|
setInstructorToDelete(instructor);
|
|
673
649
|
setDeleteDialogOpen(true);
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
</DropdownMenuContent>
|
|
680
|
-
</DropdownMenu>
|
|
650
|
+
},
|
|
651
|
+
destructive: true,
|
|
652
|
+
},
|
|
653
|
+
]}
|
|
654
|
+
/>
|
|
681
655
|
</div>
|
|
682
656
|
|
|
683
657
|
<div className="flex flex-wrap gap-1.5">
|
|
@@ -694,30 +668,47 @@ export default function InstructorsPage() {
|
|
|
694
668
|
? t('form.fields.active')
|
|
695
669
|
: t('form.fields.inactive')}
|
|
696
670
|
</Badge>
|
|
697
|
-
|
|
671
|
+
|
|
672
|
+
{instructor.hasTrainingAccess ? (
|
|
698
673
|
<Badge
|
|
699
|
-
key={slug}
|
|
700
674
|
variant="outline"
|
|
701
|
-
className="border-
|
|
675
|
+
className="border-amber-500/20 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-600"
|
|
702
676
|
>
|
|
703
|
-
{
|
|
677
|
+
{t('training.active')}
|
|
704
678
|
</Badge>
|
|
705
|
-
)
|
|
706
|
-
{(instructor.skills ?? []).map((skill) => (
|
|
679
|
+
) : instructor.userId ? (
|
|
707
680
|
<Badge
|
|
708
|
-
key={skill.slug}
|
|
709
681
|
variant="outline"
|
|
710
|
-
className="border-
|
|
682
|
+
className="border-gray-500/20 bg-gray-500/10 px-2 py-0.5 text-[11px] font-medium text-gray-500"
|
|
711
683
|
>
|
|
712
|
-
{
|
|
684
|
+
{t('training.disabled')}
|
|
713
685
|
</Badge>
|
|
714
|
-
)
|
|
686
|
+
) : null}
|
|
687
|
+
</div>
|
|
688
|
+
|
|
689
|
+
<div className="flex flex-wrap gap-1">
|
|
690
|
+
{(instructor.skills ?? []).length > 0 ? (
|
|
691
|
+
(instructor.skills ?? []).map((skill) => (
|
|
692
|
+
<Badge
|
|
693
|
+
key={skill.slug}
|
|
694
|
+
variant="outline"
|
|
695
|
+
className="border-purple-500/20 bg-purple-500/10 px-2 py-0.5 text-[11px] font-medium text-purple-600"
|
|
696
|
+
>
|
|
697
|
+
{skill.name}
|
|
698
|
+
</Badge>
|
|
699
|
+
))
|
|
700
|
+
) : (
|
|
701
|
+
<span className="text-xs text-muted-foreground">—</span>
|
|
702
|
+
)}
|
|
703
|
+
</div>
|
|
704
|
+
|
|
705
|
+
<div className="text-xs text-muted-foreground">
|
|
706
|
+
{instructor.hourlyRate != null
|
|
707
|
+
? `R$ ${instructor.hourlyRate.toLocaleString('pt-BR', {
|
|
708
|
+
minimumFractionDigits: 2,
|
|
709
|
+
})}`
|
|
710
|
+
: '—'}
|
|
715
711
|
</div>
|
|
716
|
-
{instructor.hourlyRate != null && (
|
|
717
|
-
<p className="text-xs text-muted-foreground">
|
|
718
|
-
{`R$ ${instructor.hourlyRate.toLocaleString('pt-BR', { minimumFractionDigits: 2 })}`}
|
|
719
|
-
</p>
|
|
720
|
-
)}
|
|
721
712
|
</CardContent>
|
|
722
713
|
</Card>
|
|
723
714
|
))}
|
|
@@ -27,16 +27,11 @@ import {
|
|
|
27
27
|
DialogHeader,
|
|
28
28
|
DialogTitle,
|
|
29
29
|
} from '@/components/ui/dialog';
|
|
30
|
-
import {
|
|
31
|
-
DropdownMenu,
|
|
32
|
-
DropdownMenuContent,
|
|
33
|
-
DropdownMenuItem,
|
|
34
|
-
DropdownMenuSeparator,
|
|
35
|
-
DropdownMenuTrigger,
|
|
36
|
-
} from '@/components/ui/dropdown-menu';
|
|
37
30
|
import { Field, FieldError, FieldLabel } from '@/components/ui/field';
|
|
31
|
+
import { IconActionGroup } from '@/components/ui/icon-action-group';
|
|
38
32
|
import { Input } from '@/components/ui/input';
|
|
39
33
|
import { KpiCardsGrid } from '@/components/ui/kpi-cards-grid';
|
|
34
|
+
import { ResizableSheetContent } from '@/components/ui/resizable-sheet-content';
|
|
40
35
|
import {
|
|
41
36
|
Select,
|
|
42
37
|
SelectContent,
|
|
@@ -52,7 +47,6 @@ import {
|
|
|
52
47
|
SheetHeader,
|
|
53
48
|
SheetTitle,
|
|
54
49
|
} from '@/components/ui/sheet';
|
|
55
|
-
import { ResizableSheetContent } from '@/components/ui/resizable-sheet-content';
|
|
56
50
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
57
51
|
import { Switch } from '@/components/ui/switch';
|
|
58
52
|
import {
|
|
@@ -93,7 +87,6 @@ import {
|
|
|
93
87
|
GripVertical,
|
|
94
88
|
Layers,
|
|
95
89
|
Loader2,
|
|
96
|
-
MoreHorizontal,
|
|
97
90
|
Pencil,
|
|
98
91
|
Plus,
|
|
99
92
|
Target,
|
|
@@ -950,8 +943,8 @@ export default function TrainingPage() {
|
|
|
950
943
|
filtroStatusInput !== 'todos' ||
|
|
951
944
|
filtroNivelInput !== 'todos';
|
|
952
945
|
|
|
953
|
-
function openDeleteDialog(formacao: Formacao, e
|
|
954
|
-
e
|
|
946
|
+
function openDeleteDialog(formacao: Formacao, e?: React.MouseEvent) {
|
|
947
|
+
e?.stopPropagation();
|
|
955
948
|
setFormacaoToDelete(formacao);
|
|
956
949
|
setDeleteDialogOpen(true);
|
|
957
950
|
}
|
|
@@ -1668,35 +1661,24 @@ export default function TrainingPage() {
|
|
|
1668
1661
|
{statusCfg.label}
|
|
1669
1662
|
</Badge>
|
|
1670
1663
|
</div>
|
|
1671
|
-
<
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
</DropdownMenuItem>
|
|
1690
|
-
<DropdownMenuSeparator />
|
|
1691
|
-
<DropdownMenuItem
|
|
1692
|
-
className="text-destructive focus:text-destructive"
|
|
1693
|
-
onClick={(e) => openDeleteDialog(formacao, e)}
|
|
1694
|
-
>
|
|
1695
|
-
<Trash2 className="mr-2 size-4" />{' '}
|
|
1696
|
-
{t('cards.actions.delete')}
|
|
1697
|
-
</DropdownMenuItem>
|
|
1698
|
-
</DropdownMenuContent>
|
|
1699
|
-
</DropdownMenu>
|
|
1664
|
+
<IconActionGroup
|
|
1665
|
+
className="-mr-2 -mt-1"
|
|
1666
|
+
actions={[
|
|
1667
|
+
{
|
|
1668
|
+
key: 'edit',
|
|
1669
|
+
label: t('cards.actions.edit'),
|
|
1670
|
+
icon: <Pencil className="size-4" />,
|
|
1671
|
+
onClick: () => openEditSheet(formacao),
|
|
1672
|
+
},
|
|
1673
|
+
{
|
|
1674
|
+
key: 'delete',
|
|
1675
|
+
label: t('cards.actions.delete'),
|
|
1676
|
+
icon: <Trash2 className="size-4" />,
|
|
1677
|
+
onClick: () => openDeleteDialog(formacao),
|
|
1678
|
+
destructive: true,
|
|
1679
|
+
},
|
|
1680
|
+
]}
|
|
1681
|
+
/>
|
|
1700
1682
|
</div>
|
|
1701
1683
|
|
|
1702
1684
|
<h3 className="mb-0.5 font-semibold leading-tight">
|
|
@@ -1825,34 +1807,24 @@ export default function TrainingPage() {
|
|
|
1825
1807
|
{formacao.alunos.toLocaleString('pt-BR')}
|
|
1826
1808
|
</TableCell>
|
|
1827
1809
|
<TableCell onClick={(e) => e.stopPropagation()}>
|
|
1828
|
-
<
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
onClick
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
<DropdownMenuSeparator />
|
|
1847
|
-
<DropdownMenuItem
|
|
1848
|
-
className="text-destructive focus:text-destructive"
|
|
1849
|
-
onClick={(e) => openDeleteDialog(formacao, e)}
|
|
1850
|
-
>
|
|
1851
|
-
<Trash2 className="mr-2 size-4" />{' '}
|
|
1852
|
-
{t('cards.actions.delete')}
|
|
1853
|
-
</DropdownMenuItem>
|
|
1854
|
-
</DropdownMenuContent>
|
|
1855
|
-
</DropdownMenu>
|
|
1810
|
+
<IconActionGroup
|
|
1811
|
+
className="ml-auto"
|
|
1812
|
+
actions={[
|
|
1813
|
+
{
|
|
1814
|
+
key: 'edit',
|
|
1815
|
+
label: t('cards.actions.edit'),
|
|
1816
|
+
icon: <Pencil className="size-4" />,
|
|
1817
|
+
onClick: () => openEditSheet(formacao),
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
key: 'delete',
|
|
1821
|
+
label: t('cards.actions.delete'),
|
|
1822
|
+
icon: <Trash2 className="size-4" />,
|
|
1823
|
+
onClick: () => openDeleteDialog(formacao),
|
|
1824
|
+
destructive: true,
|
|
1825
|
+
},
|
|
1826
|
+
]}
|
|
1827
|
+
/>
|
|
1856
1828
|
</TableCell>
|
|
1857
1829
|
</TableRow>
|
|
1858
1830
|
);
|
|
@@ -26,16 +26,11 @@ import {
|
|
|
26
26
|
DialogHeader,
|
|
27
27
|
DialogTitle,
|
|
28
28
|
} from '@/components/ui/dialog';
|
|
29
|
-
import {
|
|
30
|
-
DropdownMenu,
|
|
31
|
-
DropdownMenuContent,
|
|
32
|
-
DropdownMenuItem,
|
|
33
|
-
DropdownMenuSeparator,
|
|
34
|
-
DropdownMenuTrigger,
|
|
35
|
-
} from '@/components/ui/dropdown-menu';
|
|
36
29
|
import { Field, FieldError, FieldLabel } from '@/components/ui/field';
|
|
30
|
+
import { IconActionGroup } from '@/components/ui/icon-action-group';
|
|
37
31
|
import { Input } from '@/components/ui/input';
|
|
38
32
|
import { KpiCardsGrid } from '@/components/ui/kpi-cards-grid';
|
|
33
|
+
import { ResizableSheetContent } from '@/components/ui/resizable-sheet-content';
|
|
39
34
|
import {
|
|
40
35
|
Select,
|
|
41
36
|
SelectContent,
|
|
@@ -51,7 +46,6 @@ import {
|
|
|
51
46
|
SheetHeader,
|
|
52
47
|
SheetTitle,
|
|
53
48
|
} from '@/components/ui/sheet';
|
|
54
|
-
import { ResizableSheetContent } from '@/components/ui/resizable-sheet-content';
|
|
55
49
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
56
50
|
import { Switch } from '@/components/ui/switch';
|
|
57
51
|
import {
|
|
@@ -92,7 +86,6 @@ import {
|
|
|
92
86
|
GripVertical,
|
|
93
87
|
Layers,
|
|
94
88
|
Loader2,
|
|
95
|
-
MoreHorizontal,
|
|
96
89
|
Pencil,
|
|
97
90
|
Plus,
|
|
98
91
|
Target,
|
|
@@ -936,8 +929,8 @@ export default function TrainingPage() {
|
|
|
936
929
|
filtroStatusInput !== 'todos' ||
|
|
937
930
|
filtroNivelInput !== 'todos';
|
|
938
931
|
|
|
939
|
-
function openDeleteDialog(formacao: Formacao, e
|
|
940
|
-
e
|
|
932
|
+
function openDeleteDialog(formacao: Formacao, e?: React.MouseEvent) {
|
|
933
|
+
e?.stopPropagation();
|
|
941
934
|
setFormacaoToDelete(formacao);
|
|
942
935
|
setDeleteDialogOpen(true);
|
|
943
936
|
}
|
|
@@ -1658,35 +1651,24 @@ export default function TrainingPage() {
|
|
|
1658
1651
|
{statusCfg.label}
|
|
1659
1652
|
</Badge>
|
|
1660
1653
|
</div>
|
|
1661
|
-
<
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
</DropdownMenuItem>
|
|
1680
|
-
<DropdownMenuSeparator />
|
|
1681
|
-
<DropdownMenuItem
|
|
1682
|
-
className="text-destructive focus:text-destructive"
|
|
1683
|
-
onClick={(e) => openDeleteDialog(formacao, e)}
|
|
1684
|
-
>
|
|
1685
|
-
<Trash2 className="mr-2 size-4" />{' '}
|
|
1686
|
-
{t('cards.actions.delete')}
|
|
1687
|
-
</DropdownMenuItem>
|
|
1688
|
-
</DropdownMenuContent>
|
|
1689
|
-
</DropdownMenu>
|
|
1654
|
+
<IconActionGroup
|
|
1655
|
+
className="-mr-2 -mt-1"
|
|
1656
|
+
actions={[
|
|
1657
|
+
{
|
|
1658
|
+
key: 'edit',
|
|
1659
|
+
label: t('cards.actions.edit'),
|
|
1660
|
+
icon: <Pencil className="size-4" />,
|
|
1661
|
+
onClick: () => openEditSheet(formacao),
|
|
1662
|
+
},
|
|
1663
|
+
{
|
|
1664
|
+
key: 'delete',
|
|
1665
|
+
label: t('cards.actions.delete'),
|
|
1666
|
+
icon: <Trash2 className="size-4" />,
|
|
1667
|
+
onClick: () => openDeleteDialog(formacao),
|
|
1668
|
+
destructive: true,
|
|
1669
|
+
},
|
|
1670
|
+
]}
|
|
1671
|
+
/>
|
|
1690
1672
|
</div>
|
|
1691
1673
|
|
|
1692
1674
|
<h3 className="mb-0.5 font-semibold leading-tight">
|
|
@@ -1815,34 +1797,24 @@ export default function TrainingPage() {
|
|
|
1815
1797
|
{formacao.alunos.toLocaleString('pt-BR')}
|
|
1816
1798
|
</TableCell>
|
|
1817
1799
|
<TableCell onClick={(e) => e.stopPropagation()}>
|
|
1818
|
-
<
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
onClick
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
<DropdownMenuSeparator />
|
|
1837
|
-
<DropdownMenuItem
|
|
1838
|
-
className="text-destructive focus:text-destructive"
|
|
1839
|
-
onClick={(e) => openDeleteDialog(formacao, e)}
|
|
1840
|
-
>
|
|
1841
|
-
<Trash2 className="mr-2 size-4" />{' '}
|
|
1842
|
-
{t('cards.actions.delete')}
|
|
1843
|
-
</DropdownMenuItem>
|
|
1844
|
-
</DropdownMenuContent>
|
|
1845
|
-
</DropdownMenu>
|
|
1800
|
+
<IconActionGroup
|
|
1801
|
+
className="ml-auto"
|
|
1802
|
+
actions={[
|
|
1803
|
+
{
|
|
1804
|
+
key: 'edit',
|
|
1805
|
+
label: t('cards.actions.edit'),
|
|
1806
|
+
icon: <Pencil className="size-4" />,
|
|
1807
|
+
onClick: () => openEditSheet(formacao),
|
|
1808
|
+
},
|
|
1809
|
+
{
|
|
1810
|
+
key: 'delete',
|
|
1811
|
+
label: t('cards.actions.delete'),
|
|
1812
|
+
icon: <Trash2 className="size-4" />,
|
|
1813
|
+
onClick: () => openDeleteDialog(formacao),
|
|
1814
|
+
destructive: true,
|
|
1815
|
+
},
|
|
1816
|
+
]}
|
|
1817
|
+
/>
|
|
1846
1818
|
</TableCell>
|
|
1847
1819
|
</TableRow>
|
|
1848
1820
|
);
|