{"version":3,"file":"vineforce-modules-learning-management-vineforce-modules-learning-management-D6_Y_54q.mjs","sources":["../../../projects/learning-management/src/lib/services/learning-management.service.ts","../../../projects/learning-management/src/lib/proxy/assignment-submissions/assignment-submission.service.ts","../../../projects/learning-management/src/lib/proxy/assignments/assignment.service.ts","../../../projects/learning-management/src/lib/proxy/course-modules/course-module.service.ts","../../../projects/learning-management/src/lib/proxy/courses/course.service.ts","../../../projects/learning-management/src/lib/proxy/enrollments/enrollment.service.ts","../../../projects/learning-management/src/lib/proxy/products.service.ts","../../../projects/learning-management/src/lib/components/learning-management.component.ts","../../../projects/learning-management/src/lib/components/learning-management.component.html","../../../projects/learning-management/src/lib/defaults/default-learning-management-toolbar-actions.ts","../../../projects/learning-management/src/lib/defaults/default-learning-management-form-props.ts","../../../projects/learning-management/src/lib/defaults/default-learning-management-entity-props.ts","../../../projects/learning-management/src/lib/defaults/default-learning-management-entity-actions.ts","../../../projects/learning-management/src/lib/tokens/extensions.token.ts","../../../projects/learning-management/src/lib/resolvers/extensions.resolver.ts","../../../projects/learning-management/src/lib/courses/course/services/course.abstract.service.ts","../../../projects/learning-management/src/lib/courses/course/services/course.service.ts","../../../projects/learning-management/src/lib/courses/course/services/course-detail.abstract.service.ts","../../../projects/learning-management/src/lib/courses/course/services/course-detail.service.ts","../../../projects/learning-management/src/lib/courses/enrollment/services/enrollment-child.abstract.service.ts","../../../projects/learning-management/src/lib/courses/enrollment/services/enrollment-child.service.ts","../../../projects/learning-management/src/lib/courses/enrollment/services/enrollment-child-detail.abstract.service.ts","../../../projects/learning-management/src/lib/courses/enrollment/services/enrollment-child-detail.service.ts","../../../projects/learning-management/src/lib/courses/enrollment/components/enrollment-child.abstract.component.ts","../../../projects/learning-management/src/lib/courses/enrollment/components/enrollment-child.component.ts","../../../projects/learning-management/src/lib/courses/enrollment/components/enrollment-child.component.html","../../../projects/learning-management/src/lib/courses/course-module/services/course-module-child.abstract.service.ts","../../../projects/learning-management/src/lib/courses/course-module/services/course-module-child.service.ts","../../../projects/learning-management/src/lib/courses/course-module/services/course-module-child-detail.abstract.service.ts","../../../projects/learning-management/src/lib/courses/course-module/services/course-module-child-detail.service.ts","../../../projects/learning-management/src/lib/courses/course-module/components/course-module-child.abstract.component.ts","../../../projects/learning-management/src/lib/courses/course-module/components/course-module-child.component.ts","../../../projects/learning-management/src/lib/courses/course-module/components/course-module-child.component.html","../../../projects/learning-management/src/lib/courses/course/components/course.abstract.component.ts","../../../projects/learning-management/src/lib/courses/course/components/course.component.ts","../../../projects/learning-management/src/lib/courses/course/components/course.component.html","../../../projects/learning-management/src/lib/courses/course/course-routing.module.ts","../../../projects/learning-management/src/lib/courses/course/course.module.ts","../../../projects/learning-management/src/lib/assignments/assignment/services/assignment.abstract.service.ts","../../../projects/learning-management/src/lib/assignments/assignment/services/assignment.service.ts","../../../projects/learning-management/src/lib/assignments/assignment/services/assignment-detail.abstract.service.ts","../../../projects/learning-management/src/lib/assignments/assignment/services/assignment-detail.service.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/services/assignment-submission-child.abstract.service.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/services/assignment-submission-child.service.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/services/assignment-submission-child-detail.abstract.service.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/services/assignment-submission-child-detail.service.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/components/assignment-submission-child.abstract.component.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/components/assignment-submission-child.component.ts","../../../projects/learning-management/src/lib/assignments/assignment-submission/components/assignment-submission-child.component.html","../../../projects/learning-management/src/lib/assignments/assignment/components/assignment.abstract.component.ts","../../../projects/learning-management/src/lib/assignments/assignment/components/assignment.component.ts","../../../projects/learning-management/src/lib/assignments/assignment/components/assignment.component.html","../../../projects/learning-management/src/lib/assignments/assignment/assignment-routing.module.ts","../../../projects/learning-management/src/lib/assignments/assignment/assignment.module.ts","../../../projects/learning-management/src/lib/learning-management-routing.module.ts","../../../projects/learning-management/src/lib/learning-management.module.ts","../../../projects/learning-management/src/public-api.ts","../../../projects/learning-management/src/vineforce-modules-learning-management.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { RestService } from '@abp/ng.core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LearningManagementService {\n  apiName = 'LearningManagement';\n\n  constructor(private restService: RestService) {}\n\n  sample() {\n    return this.restService.request<void, any>(\n      { method: 'GET', url: '/api/LearningManagement/sample' },\n      { apiName: this.apiName }\n    );\n  }\n}\n","import type {\n  AssignmentSubmissionCreateDto,\n  AssignmentSubmissionDto,\n  AssignmentSubmissionUpdateDto,\n  AssignmentSubmissionWithNavigationPropertiesDto,\n  GetAssignmentSubmissionListInput,\n  GetAssignmentSubmissionsInput,\n} from './models';\nimport { RestService, Rest } from '@abp/ng.core';\nimport type { PagedResultDto } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport type {\n  AppFileDescriptorDto,\n  DownloadTokenResultDto,\n  GetFileInput,\n  LookupDto,\n  LookupRequestDto,\n} from '../shared/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AssignmentSubmissionService {\n  apiName = 'LearningManagement';\n\n  create = (input: AssignmentSubmissionCreateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentSubmissionDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/assignment-submissions',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  delete = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: `/api/learning-management/assignment-submissions/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  get = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentSubmissionDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/assignment-submissions/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\n    this.restService.request<any, DownloadTokenResultDto>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignment-submissions/download-token',\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/assignment-submissions/file',\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getIdentityUserLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignment-submissions/identity-user-lookup',\n        params: {\n          filter: input.filter,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getList = (input: GetAssignmentSubmissionsInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<AssignmentSubmissionWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignment-submissions',\n        params: {\n          assignmentId: input.assignmentId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          filePath: input.filePath,\n          gradeMin: input.gradeMin,\n          gradeMax: input.gradeMax,\n          feedBack: input.feedBack,\n          submissionUserId: input.submissionUserId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListByAssignmentId = (\n    input: GetAssignmentSubmissionListInput,\n    config?: Partial<Rest.Config>,\n  ) =>\n    this.restService.request<any, PagedResultDto<AssignmentSubmissionWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignment-submissions/by-assignment',\n        params: {\n          assignmentId: input.assignmentId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListWithNavigationPropertiesByAssignmentId = (\n    input: GetAssignmentSubmissionListInput,\n    config?: Partial<Rest.Config>,\n  ) =>\n    this.restService.request<any, PagedResultDto<AssignmentSubmissionWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignment-submissions/detailed/by-assignment',\n        params: {\n          assignmentId: input.assignmentId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentSubmissionWithNavigationPropertiesDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/assignment-submissions/with-navigation-properties/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  update = (id: string, input: AssignmentSubmissionUpdateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentSubmissionDto>(\n      {\n        method: 'PUT',\n        url: `/api/learning-management/assignment-submissions/${id}`,\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AppFileDescriptorDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/assignment-submissions/upload-file',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  constructor(private restService: RestService) {}\n}\n","import type {\n  AssignmentCreateDto,\n  AssignmentDto,\n  AssignmentExcelDownloadDto,\n  AssignmentUpdateDto,\n  AssignmentWithNavigationPropertiesDto,\n  GetAssignmentsInput,\n} from './models';\nimport { RestService, Rest } from '@abp/ng.core';\nimport type { PagedResultDto } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport type {\n  AppFileDescriptorDto,\n  DownloadTokenResultDto,\n  GetFileInput,\n  LookupDto,\n  LookupRequestDto,\n} from '../shared/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AssignmentService {\n  apiName = 'LearningManagement';\n\n  create = (input: AssignmentCreateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/assignments',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  delete = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: `/api/learning-management/assignments/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  deleteAll = (input: GetAssignmentsInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: '/api/learning-management/assignments/all',\n        params: {\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          title: input.title,\n          description: input.description,\n          dueDateMin: input.dueDateMin,\n          dueDateMax: input.dueDateMax,\n          courseId: input.courseId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  deleteByIds = (assignmentIds: string[], config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: '/api/learning-management/assignments',\n        params: { assignmentIds },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  get = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/assignments/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getCourseLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignments/course-lookup',\n        params: {\n          filter: input.filter,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\n    this.restService.request<any, DownloadTokenResultDto>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignments/download-token',\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/assignments/file',\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getList = (input: GetAssignmentsInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<AssignmentWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/assignments',\n        params: {\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          title: input.title,\n          description: input.description,\n          dueDateMin: input.dueDateMin,\n          dueDateMax: input.dueDateMax,\n          courseId: input.courseId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListAsExcelFile = (input: AssignmentExcelDownloadDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/assignments/as-excel-file',\n        params: {\n          downloadToken: input.downloadToken,\n          filterText: input.filterText,\n          title: input.title,\n          description: input.description,\n          dueDateMin: input.dueDateMin,\n          dueDateMax: input.dueDateMax,\n          courseId: input.courseId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentWithNavigationPropertiesDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/assignments/with-navigation-properties/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  update = (id: string, input: AssignmentUpdateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AssignmentDto>(\n      {\n        method: 'PUT',\n        url: `/api/learning-management/assignments/${id}`,\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AppFileDescriptorDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/assignments/upload-file',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  constructor(private restService: RestService) {}\n}\n","import type {\n  CourseModuleCreateDto,\n  CourseModuleDto,\n  CourseModuleUpdateDto,\n  GetCourseModuleListInput,\n  GetCourseModulesInput,\n} from './models';\nimport { RestService, Rest } from '@abp/ng.core';\nimport type { PagedResultDto } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport type { AppFileDescriptorDto, DownloadTokenResultDto, GetFileInput } from '../shared/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CourseModuleService {\n  apiName = 'LearningManagement';\n\n  create = (input: CourseModuleCreateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseModuleDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/course-modules',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  delete = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: `/api/learning-management/course-modules/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  get = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseModuleDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/course-modules/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\n    this.restService.request<any, DownloadTokenResultDto>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/course-modules/download-token',\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/course-modules/file',\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getList = (input: GetCourseModulesInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<CourseModuleDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/course-modules',\n        params: {\n          courseId: input.courseId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          title: input.title,\n          content: input.content,\n          orderIndexMin: input.orderIndexMin,\n          orderIndexMax: input.orderIndexMax,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListByCourseId = (input: GetCourseModuleListInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<CourseModuleDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/course-modules/by-course',\n        params: {\n          courseId: input.courseId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  update = (id: string, input: CourseModuleUpdateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseModuleDto>(\n      {\n        method: 'PUT',\n        url: `/api/learning-management/course-modules/${id}`,\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AppFileDescriptorDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/course-modules/upload-file',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  constructor(private restService: RestService) {}\n}\n","import type {\n  CourseCreateDto,\n  CourseDto,\n  CourseExcelDownloadDto,\n  CourseUpdateDto,\n  CourseWithNavigationPropertiesDto,\n  GetCoursesInput,\n} from './models';\nimport { RestService, Rest } from '@abp/ng.core';\nimport type { PagedResultDto } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport type {\n  AppFileDescriptorDto,\n  DownloadTokenResultDto,\n  GetFileInput,\n  LookupDto,\n  LookupRequestDto,\n} from '../shared/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CourseService {\n  apiName = 'LearningManagement';\n\n  create = (input: CourseCreateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/courses',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  delete = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: `/api/learning-management/courses/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  deleteAll = (input: GetCoursesInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: '/api/learning-management/courses/all',\n        params: {\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          courseName: input.courseName,\n          description: input.description,\n          instructorUserId: input.instructorUserId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  deleteByIds = (courseIds: string[], config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: '/api/learning-management/courses',\n        params: { courseIds },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  get = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/courses/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\n    this.restService.request<any, DownloadTokenResultDto>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/courses/download-token',\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/courses/file',\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getIdentityUserLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/courses/identity-user-lookup',\n        params: {\n          filter: input.filter,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getList = (input: GetCoursesInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<CourseWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/courses',\n        params: {\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          courseName: input.courseName,\n          description: input.description,\n          instructorUserId: input.instructorUserId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListAsExcelFile = (input: CourseExcelDownloadDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/courses/as-excel-file',\n        params: {\n          downloadToken: input.downloadToken,\n          filterText: input.filterText,\n          courseName: input.courseName,\n          description: input.description,\n          instructorUserId: input.instructorUserId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseWithNavigationPropertiesDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/courses/with-navigation-properties/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  update = (id: string, input: CourseUpdateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, CourseDto>(\n      {\n        method: 'PUT',\n        url: `/api/learning-management/courses/${id}`,\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AppFileDescriptorDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/courses/upload-file',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  constructor(private restService: RestService) {}\n}\n","import type {\n  EnrollmentCreateDto,\n  EnrollmentDto,\n  EnrollmentUpdateDto,\n  EnrollmentWithNavigationPropertiesDto,\n  GetEnrollmentListInput,\n  GetEnrollmentsInput,\n} from './models';\nimport { RestService, Rest } from '@abp/ng.core';\nimport type { PagedResultDto } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\nimport type {\n  AppFileDescriptorDto,\n  DownloadTokenResultDto,\n  GetFileInput,\n  LookupDto,\n  LookupRequestDto,\n} from '../shared/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EnrollmentService {\n  apiName = 'LearningManagement';\n\n  create = (input: EnrollmentCreateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, EnrollmentDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/enrollments',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  delete = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, void>(\n      {\n        method: 'DELETE',\n        url: `/api/learning-management/enrollments/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  get = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, EnrollmentDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/enrollments/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getDownloadToken = (config?: Partial<Rest.Config>) =>\n    this.restService.request<any, DownloadTokenResultDto>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/enrollments/download-token',\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getFile = (input: GetFileInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, Blob>(\n      {\n        method: 'GET',\n        responseType: 'blob',\n        url: '/api/learning-management/enrollments/file',\n        params: { downloadToken: input.downloadToken, fileId: input.fileId },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getIdentityUserLookup = (input: LookupRequestDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<LookupDto<string>>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/enrollments/identity-user-lookup',\n        params: {\n          filter: input.filter,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getList = (input: GetEnrollmentsInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<EnrollmentWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/enrollments',\n        params: {\n          courseId: input.courseId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n          enrollmentUserId: input.enrollmentUserId,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListByCourseId = (input: GetEnrollmentListInput, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, PagedResultDto<EnrollmentWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/enrollments/by-course',\n        params: {\n          courseId: input.courseId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getListWithNavigationPropertiesByCourseId = (\n    input: GetEnrollmentListInput,\n    config?: Partial<Rest.Config>,\n  ) =>\n    this.restService.request<any, PagedResultDto<EnrollmentWithNavigationPropertiesDto>>(\n      {\n        method: 'GET',\n        url: '/api/learning-management/enrollments/detailed/by-course',\n        params: {\n          courseId: input.courseId,\n          filterText: input.filterText,\n          sorting: input.sorting,\n          skipCount: input.skipCount,\n          maxResultCount: input.maxResultCount,\n        },\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  getWithNavigationProperties = (id: string, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, EnrollmentWithNavigationPropertiesDto>(\n      {\n        method: 'GET',\n        url: `/api/learning-management/enrollments/with-navigation-properties/${id}`,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  update = (id: string, input: EnrollmentUpdateDto, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, EnrollmentDto>(\n      {\n        method: 'PUT',\n        url: `/api/learning-management/enrollments/${id}`,\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  uploadFile = (input: FormData, config?: Partial<Rest.Config>) =>\n    this.restService.request<any, AppFileDescriptorDto>(\n      {\n        method: 'POST',\n        url: '/api/learning-management/enrollments/upload-file',\n        body: input,\n      },\n      { apiName: this.apiName, ...config },\n    );\n\n  constructor(private restService: RestService) {}\n}\n","import { PagedResultDto, uuid } from '@abp/ng.core';\nimport { Injectable, WritableSignal, signal } from '@angular/core';\nimport { ProductDto } from './models';\n\n@Injectable()\nexport class ProductsService {\n  readonly brands = signal([\n    { id: uuid(), name: 'Brand 1' },\n    { id: uuid(), name: 'Brand 2' },\n    { id: uuid(), name: 'Brand 3' },\n    { id: uuid(), name: 'Brand 4' },\n  ]);\n\n  readonly genres = signal([\n    { id: uuid(), name: 'Genre 1' },\n    { id: uuid(), name: 'Genre 2' },\n    { id: uuid(), name: 'Genre 3' },\n  ]);\n\n  readonly products = signal([\n    { id: uuid(), name: 'Product 1', brand: 'Brand 1', genre: 'Genre 1' },\n    { id: uuid(), name: 'Product 2', brand: 'Brand 2', genre: 'Genre 2' },\n    { id: uuid(), name: 'Product 3', brand: 'Brand 3', genre: 'Genre 3' },\n  ]);\n\n  readonly boughtProducts: WritableSignal<PagedResultDto<ProductDto>> = signal({\n    items: [\n      {\n        id: uuid(),\n        name: 'Product 1',\n        brand: 'Brand 1',\n        genre: 'Genre 2',\n        returnDate: new Date('2024-01-01'),\n      },\n      {\n        id: uuid(),\n        name: 'Product 2',\n        brand: 'Brand 1',\n        genre: 'Genre 2',\n        returnDate: new Date('2024-02-01'),\n      },\n      {\n        id: uuid(),\n        name: 'Product 3',\n        brand: 'Brand 2',\n        genre: 'Genre 3',\n        returnDate: new Date('2024-03-01'),\n      },\n    ],\n    totalCount: 3,\n  });\n}\n","import { Component, Injector, OnInit, inject } from '@angular/core';\nimport { LearningManagementService } from '../services/learning-management.service';\nimport {\n  EXTENSIONS_IDENTIFIER,\n  FormPropData,\n  generateFormFromProps,\n} from '@abp/ng.components/extensible';\nimport { ListService, PagedResultDto, uuid } from '@abp/ng.core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { GetLearningManagementProducts, ProductDto, ProductsService } from '../../lib/proxy';\nimport { eLearningManagementComponents } from '../enums/components';\n\n@Component({\n  standalone: false,\n  selector: 'lib-learning-management',\n  templateUrl: './learning-management.component.html',\n  providers: [\n    ProductsService,\n    ListService,\n    {\n      provide: EXTENSIONS_IDENTIFIER,\n      useValue: eLearningManagementComponents.LearningManagement,\n    },\n  ],\n})\nexport class LearningManagementComponent implements OnInit {\n  private service = inject(LearningManagementService);\n  protected readonly injector = inject(Injector);\n  protected readonly productsService = inject(ProductsService);\n  public readonly list = inject(ListService<GetLearningManagementProducts>);\n\n  data: PagedResultDto<ProductDto> = { items: [], totalCount: 0 };\n\n  //#region Just for demo\n  readonly #brands = this.productsService.brands();\n  readonly #genres = this.productsService.genres();\n  readonly #products = this.productsService.products();\n  //#endregion\n\n  protected modalBusy = false;\n  protected isModalVisible = false;\n\n  form: UntypedFormGroup;\n  selectedProduct = {};\n\n  ngOnInit(): void {\n    this.service.sample().subscribe(console.log);\n    this.refreshData();\n  }\n\n  protected buildForm(): void {\n    const data = new FormPropData(this.injector, this.selectedProduct);\n    this.form = generateFormFromProps(data);\n  }\n\n  openModal() {\n    this.buildForm();\n    this.isModalVisible = true;\n  }\n\n  onAdd() {\n    this.selectedProduct = {} as ProductDto;\n    this.openModal();\n  }\n\n  save(): void {\n    if (this.form.invalid) {\n      return;\n    }\n\n    this.modalBusy = true;\n\n    const { genreId, productId, returnDate, brandId } = this.form.value;\n\n    //#region Just for demo\n    const genreName = this.#genres.find(({ id }) => id === genreId).name;\n    const productName = this.#products.find(({ id }) => id === productId).name;\n    const brandName = this.#brands.find(({ id }) => id === brandId).name;\n    //#endregion\n\n    const productItems = [\n      ...this.productsService.boughtProducts().items,\n      {\n        id: uuid(),\n        name: productName,\n        genre: genreName,\n        brand: brandName,\n        returnDate,\n      },\n    ];\n    this.productsService.boughtProducts.update(() => {\n      return {\n        items: [...productItems],\n        totalCount: productItems.length,\n      };\n    });\n\n    this.refreshData();\n    this.modalBusy = false;\n    this.isModalVisible = false;\n  }\n\n  onEdit(selectedProduct) {\n    const { brand, genre, returnDate, name } = selectedProduct;\n\n    //#region Just for demo\n    const genreId = this.#genres.find(({ name }) => name === genre).id;\n    const productId = this.#products.find(({ name }) => name === name).id;\n    const brandId = this.#brands.find(({ name }) => name === brand).id;\n    //#endregion\n\n    this.selectedProduct = {\n      brandId,\n      genreId,\n      productId,\n      returnDate,\n    };\n    this.openModal();\n  }\n\n  delete(selectedProduct) {\n    const filteredProducts = this.productsService.boughtProducts().items.filter(product => {\n      return product.id !== selectedProduct.id;\n    });\n\n    this.productsService.boughtProducts.set({\n      items: filteredProducts,\n      totalCount: filteredProducts.length,\n    });\n\n    this.refreshData();\n  }\n\n  refreshData() {\n    this.data = this.productsService.boughtProducts();\n  }\n}\n","<abp-page [title]=\"'LearningManagement::Menu:LearningManagement' | abpLocalization\" [toolbar]=\"data.items\">\n  <div class=\"card\">\n    <abp-extensible-table\n      [data]=\"data.items\"\n      [recordsTotal]=\"data.totalCount\"\n      [list]=\"list\"\n    ></abp-extensible-table>\n  </div>\n</abp-page>\n\n<abp-modal [(visible)]=\"isModalVisible\" [busy]=\"modalBusy\" (disappear)=\"form = null\">\n  <ng-template #abpHeader>\n    <h3>\n      {{ (selectedProduct.productId ? 'AbpUi::Edit' : 'AbpUi::AddNew') | abpLocalization }}\n    </h3>\n  </ng-template>\n\n  <ng-template #abpBody>\n    @if (form) {\n    <form [formGroup]=\"form\" id=\"productForm\" (ngSubmit)=\"save()\" validateOnSubmit>\n      <abp-extensible-form class=\"row gap-x2\" [selectedRecord]=\"selected\"></abp-extensible-form>\n    </form>\n    }\n  </ng-template>\n  <ng-template #abpFooter>\n    <button type=\"button\" class=\"btn btn-outline-primary\" abpClose>\n      {{ 'AbpUi::Cancel' | abpLocalization }}\n    </button>\n    <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"productForm\">{{\n      'AbpUi::Save' | abpLocalization\n    }}</abp-button>\n  </ng-template>\n</abp-modal>\n","import { ToolbarAction } from '@abp/ng.components/extensible';\nimport { LearningManagementComponent } from '../components';\nimport { ProductDto } from '../../lib/proxy';\n\nexport const DEFAULT_PRODUCT_ENTITY_TOOLBAR_ACTIONS = ToolbarAction.createMany<ProductDto[]>([\n  {\n    text: 'AbpUi::AddNew',\n    action: data => {\n      const component = data.getInjected(LearningManagementComponent);\n      component.onAdd();\n    },\n    icon: 'fa fa-plus',\n  },\n]);\n","import { FormProp, ePropType } from '@abp/ng.components/extensible';\nimport { ABP } from '@abp/ng.core';\nimport { Validators } from '@angular/forms';\nimport { ProductDto, ProductsService } from '../../lib/proxy';\nimport { of } from 'rxjs';\n\nconst { required } = Validators;\nconst DefaultOption = {\n  value: null,\n  key: '-',\n} as ABP.Option<any>;\n\nexport const DEFAULT_CREATE_PRODUCT_FORM_PROPS = FormProp.createMany<ProductDto>([\n  {\n    type: ePropType.String,\n    id: 'productId',\n    name: 'productId',\n    displayName: 'Product',\n    defaultValue: null,\n    validators: () => [required],\n    options: data => {\n      const { products } = data.getInjected(ProductsService);\n\n      return of([\n        DefaultOption,\n        ...products().map(product => ({ value: product.id, key: product.name })),\n      ]);\n    },\n  },\n  {\n    type: ePropType.String,\n    id: 'brandId',\n    name: 'brandId',\n    displayName: 'Brand',\n    defaultValue: null,\n    validators: () => [required],\n    options: data => {\n      const { brands } = data.getInjected(ProductsService);\n\n      return of([DefaultOption, ...brands().map(brand => ({ value: brand.id, key: brand.name }))]);\n    },\n  },\n  {\n    type: ePropType.String,\n    id: 'genreId',\n    name: 'genreId',\n    displayName: 'Genre',\n    defaultValue: null,\n    validators: () => [required],\n    options: data => {\n      const { genres } = data.getInjected(ProductsService);\n\n      return of([DefaultOption, ...genres().map(genre => ({ value: genre.id, key: genre.name }))]);\n    },\n  },\n  {\n    type: ePropType.Date,\n    id: 'returnDate',\n    name: 'returnDate',\n    displayName: 'Return Date',\n    defaultValue: null,\n    validators: () => [required],\n  },\n]);\n\nexport const DEFAULT_EDIT_PRODUCT_FORM_PROPS = DEFAULT_CREATE_PRODUCT_FORM_PROPS;\n","import { EntityProp, ePropType } from '@abp/ng.components/extensible';\nimport { ProductDto } from '../../lib/proxy';\n\nexport const DEFAULT_PRODUCT_ENTITY_PROPS = EntityProp.createMany<ProductDto>([\n  {\n    type: ePropType.String,\n    name: 'name',\n    displayName: 'Name',\n    sortable: true,\n    columnWidth: 250,\n  },\n  {\n    type: ePropType.String,\n    name: 'brand',\n    displayName: 'Brand',\n    sortable: true,\n    columnWidth: 250,\n  },\n  {\n    type: ePropType.String,\n    name: 'genre',\n    displayName: 'Genre',\n    sortable: true,\n    columnWidth: 250,\n  },\n  {\n    type: ePropType.Date,\n    name: 'returnDate',\n    displayName: 'Return Date',\n    sortable: true,\n    columnWidth: 250,\n  },\n]);\n","import { EntityAction } from '@abp/ng.components/extensible';\nimport { LearningManagementComponent } from '../components';\nimport { ProductDto } from '../../lib/proxy';\n\nexport const DEFAULT_PRODUCT_ENTITY_ACTIONS = EntityAction.createMany<ProductDto[]>([\n  {\n    text: 'AbpUi::Edit',\n    action: data => {\n      const component = data.getInjected(LearningManagementComponent);\n      component.onEdit(data.record);\n    },\n  },\n  {\n    text: 'AbpUi::Delete',\n    action: data => {\n      const component = data.getInjected(LearningManagementComponent);\n      component.delete(data.record);\n    },\n  },\n]);\n","import { InjectionToken } from '@angular/core';\nimport { eLearningManagementComponents } from '../enums/components';\nimport {\n  CreateFormPropContributorCallback,\n  EditFormPropContributorCallback,\n  EntityActionContributorCallback,\n  EntityPropContributorCallback,\n  ToolbarActionContributorCallback,\n} from '@abp/ng.components/extensible';\nimport { DEFAULT_PRODUCT_ENTITY_TOOLBAR_ACTIONS } from '../defaults/default-learning-management-toolbar-actions';\nimport { ProductDto } from '../../lib/proxy';\nimport {\n  DEFAULT_CREATE_PRODUCT_FORM_PROPS,\n  DEFAULT_EDIT_PRODUCT_FORM_PROPS,\n} from '../defaults/default-learning-management-form-props';\nimport { DEFAULT_PRODUCT_ENTITY_PROPS } from '../defaults/default-learning-management-entity-props';\nimport { DEFAULT_PRODUCT_ENTITY_ACTIONS } from '../defaults/default-learning-management-entity-actions';\n\n//#region Default Actions\nexport const DEFAULT_LEARNING_MANAGEMENT_TOOLBAR_ACTIONS = {\n  [eLearningManagementComponents.LearningManagement]: DEFAULT_PRODUCT_ENTITY_TOOLBAR_ACTIONS,\n};\nexport const DEFAULT_LEARNING_MANAGEMENT_ENTITY_ACTIONS = {\n  [eLearningManagementComponents.LearningManagement]: DEFAULT_PRODUCT_ENTITY_ACTIONS,\n};\n//#endregion\n\n//#region Default Properties\nexport const DEFAULT_LEARNING_MANAGEMENT_ENTITY_PROPS = {\n  [eLearningManagementComponents.LearningManagement]: DEFAULT_PRODUCT_ENTITY_PROPS,\n};\nexport const DEFAULT_LEARNING_MANAGEMENT_CREATE_FORM_PROPS = {\n  [eLearningManagementComponents.LearningManagement]: DEFAULT_CREATE_PRODUCT_FORM_PROPS,\n};\nexport const DEFAULT_LEARNING_MANAGEMENT_EDIT_FORM_PROPS = {\n  [eLearningManagementComponents.LearningManagement]: DEFAULT_EDIT_PRODUCT_FORM_PROPS,\n};\n//#endregion\n\n//#region Action Injection Tokens\nexport const LEARNING_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS =\n  new InjectionToken<ToolbarActionContributors>('LEARNING_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS');\n\nexport const LEARNING_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS =\n  new InjectionToken<EntityActionContributors>('LEARNING_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS');\n//#endregion\n\n//#region Property Injection Tokens\nexport const LEARNING_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS = new InjectionToken<EntityPropContributors>(\n  'LEARNING_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS'\n);\n\nexport const LEARNING_MANAGEMENT_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS =\n  new InjectionToken<CreateFormPropContributors>(\n    'LEARNING_MANAGEMENT_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS'\n  );\n\nexport const LEARNING_MANAGEMENT_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS =\n  new InjectionToken<EditFormPropContributors>(\n    'LEARNING_MANAGEMENT_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS'\n  );\n//#endregion\n\ntype EntityActionContributors = Partial<{\n  [eLearningManagementComponents.LearningManagement]: EntityActionContributorCallback<ProductDto>[];\n}>;\n\ntype ToolbarActionContributors = Partial<{\n  [eLearningManagementComponents.LearningManagement]: ToolbarActionContributorCallback<ProductDto>[];\n}>;\n\ntype EntityPropContributors = Partial<{\n  [eLearningManagementComponents.LearningManagement]: EntityPropContributorCallback<ProductDto>[];\n}>;\n\ntype CreateFormPropContributors = Partial<{\n  [eLearningManagementComponents.LearningManagement]: CreateFormPropContributorCallback<ProductDto>[];\n}>;\n\ntype EditFormPropContributors = Partial<{\n  [eLearningManagementComponents.LearningManagement]: EditFormPropContributorCallback<ProductDto>[];\n}>;\n","import {\n  ExtensionsService,\n  getObjectExtensionEntitiesFromStore,\n  mapEntitiesToContributors,\n  mergeWithDefaultActions,\n  mergeWithDefaultProps,\n} from '@abp/ng.components/extensible';\nimport { Injector, inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\n\nimport { ConfigStateService } from '@abp/ng.core';\nimport { map, tap } from 'rxjs';\nimport { eLearningManagementComponents } from '../enums/components';\nimport {\n  LEARNING_MANAGEMENT_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS,\n  LEARNING_MANAGEMENT_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS,\n  DEFAULT_LEARNING_MANAGEMENT_ENTITY_ACTIONS,\n  DEFAULT_LEARNING_MANAGEMENT_TOOLBAR_ACTIONS,\n  DEFAULT_LEARNING_MANAGEMENT_CREATE_FORM_PROPS,\n  DEFAULT_LEARNING_MANAGEMENT_EDIT_FORM_PROPS,\n  LEARNING_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\n  LEARNING_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\n  DEFAULT_LEARNING_MANAGEMENT_ENTITY_PROPS,\n  LEARNING_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,\n} from '../tokens/extensions.token';\nimport {\n  LearningManagementEntityActionContributors,\n  LearningManagementEntityPropContributors,\n  LearningManagementToolbarActionContributors,\n} from '../models/config-options';\n\nexport const learningManagementExtensionsResolver: ResolveFn<any> = () => {\n  const injector = inject(Injector);\n\n  const extensions: ExtensionsService = injector.get(ExtensionsService);\n\n  const propContributors: LearningManagementEntityPropContributors =\n    injector.get(LEARNING_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, null) || {};\n\n  const actionContributors: LearningManagementEntityActionContributors =\n    injector.get(LEARNING_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, null) || {};\n  const toolbarContributors: LearningManagementToolbarActionContributors =\n    injector.get(LEARNING_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};\n\n  const createFormContributors =\n    inject(LEARNING_MANAGEMENT_CREATE_PRODUCT_FORM_PROP_CONTRIBUTORS, { optional: true }) || {};\n  const editFormContributors =\n    inject(LEARNING_MANAGEMENT_EDIT_PRODUCT_FORM_PROP_CONTRIBUTORS, { optional: true }) || {};\n\n  const configState = injector.get(ConfigStateService);\n  return getObjectExtensionEntitiesFromStore(injector, 'LearningManagement').pipe(\n    map(entities => ({\n      [eLearningManagementComponents.LearningManagement]: entities.LearningManagement,\n    })),\n    mapEntitiesToContributors(injector, 'LearningManagement'),\n    tap(objectExtensionContributors => {\n      mergeWithDefaultActions(\n        extensions.entityActions,\n        DEFAULT_LEARNING_MANAGEMENT_ENTITY_ACTIONS,\n        actionContributors\n      );\n      mergeWithDefaultActions(\n        extensions.toolbarActions,\n        DEFAULT_LEARNING_MANAGEMENT_TOOLBAR_ACTIONS,\n        toolbarContributors\n      );\n      mergeWithDefaultProps(\n        extensions.entityProps,\n        DEFAULT_LEARNING_MANAGEMENT_ENTITY_PROPS,\n        objectExtensionContributors.prop,\n        propContributors\n      );\n      mergeWithDefaultProps(\n        extensions.createFormProps,\n        DEFAULT_LEARNING_MANAGEMENT_CREATE_FORM_PROPS,\n        objectExtensionContributors.createForm,\n        createFormContributors\n      );\n      mergeWithDefaultProps(\n        extensions.editFormProps,\n        DEFAULT_LEARNING_MANAGEMENT_EDIT_FORM_PROPS,\n        objectExtensionContributors.editForm,\n        editFormContributors\n      );\n    })\n  );\n};\n","import { inject, computed, signal } from '@angular/core';\nimport { SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\nimport { filter, switchMap, finalize } from 'rxjs/operators';\nimport type {\n  GetCoursesInput,\n  CourseWithNavigationPropertiesDto,\n} from '../../../proxy/courses/models';\nimport { CourseService } from '../../../proxy/courses/course.service';\n\nexport abstract class AbstractCourseViewService {\n  protected readonly proxyService = inject(CourseService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n  protected readonly abpWindowService = inject(AbpWindowService);\n\n  isExportToExcelBusy = false;\n\n  data: PagedResultDto<CourseWithNavigationPropertiesDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  selectionType = SelectionType;\n  selected = signal<CourseWithNavigationPropertiesDto[]>([]);\n  allSelected = signal(false);\n  selectedCount = computed(() => this.selected().length);\n\n  filters = {} as GetCoursesInput;\n\n  protected clearAllSelection() {\n    this.selected.set([]);\n    this.allSelected.set(false);\n  }\n\n  protected bulkDeleteRequest() {\n    const ids = this.selected().map(({ course: { id } }) => id);\n\n    const request = !this.allSelected()\n      ? this.proxyService.deleteByIds(ids)\n      : this.proxyService.deleteAll({\n          filterText: this.list.filter,\n          ...this.filters,\n        });\n\n    return request.pipe(finalize(this.list.get));\n  }\n\n  delete(record: CourseWithNavigationPropertiesDto) {\n    this.confirmationService\n      .warn('LearningManagement::DeleteConfirmationMessage', 'LearningManagement::AreYouSure', {\n        messageLocalizationParams: [],\n      })\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.course.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  bulkDelete() {\n    if (this.selectedCount() < 1) {\n      return;\n    }\n\n    let message = 'LearningManagement::';\n    let messageParam = null;\n\n    if (this.allSelected()) {\n      message += 'DeleteAllRecords';\n    } else {\n      message += 'DeleteSelectedRecords';\n      messageParam = this.selectedCount().toString();\n    }\n\n    this.confirmationService\n      .warn(message, 'AbpUi::AreYouSure', {\n        messageLocalizationParams: [messageParam],\n      })\n      .pipe(\n        filter(result => result === Confirmation.Status.confirm),\n        switchMap(() => this.bulkDeleteRequest()),\n      )\n      .subscribe();\n  }\n\n  selectAll() {\n    this.allSelected.set(!this.allSelected());\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\n  }\n\n  onSelect({ selected }) {\n    if (selected.length < 1) {\n      this.clearAllSelection();\n      return;\n    }\n\n    if (selected.length === this.data.totalCount) {\n      this.allSelected.set(true);\n      this.selected.set(selected);\n      return;\n    }\n\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\n      this.allSelected.set(false);\n    }\n\n    if (selected.length === 1) {\n      if (this.selected().length < 1) {\n        this.selected.set(selected);\n        return;\n      }\n\n      this.selected.set([...this.selected()]);\n      return;\n    }\n\n    this.selected.set(selected);\n  }\n\n  hookToQuery() {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getList({\n        ...query,\n        ...this.filters,\n        filterText: query.filter,\n      });\n\n    const setData = (list: PagedResultDto<CourseWithNavigationPropertiesDto>) => {\n      this.data = list;\n\n      if (this.selectedCount() > 0) {\n        this.clearAllSelection();\n      }\n    };\n\n    this.list.hookToQuery(getData).subscribe(setData);\n  }\n\n  clearFilters() {\n    this.filters = {} as GetCoursesInput;\n    this.list.get();\n  }\n\n  exportToExcel() {\n    this.isExportToExcelBusy = true;\n    this.proxyService\n      .getDownloadToken()\n      .pipe(\n        switchMap(({ token }) =>\n          this.proxyService.getListAsExcelFile({\n            downloadToken: token,\n            filterText: this.list.filter,\n            ...this.filters,\n          }),\n        ),\n        finalize(() => (this.isExportToExcelBusy = false)),\n      )\n      .subscribe(result => {\n        this.abpWindowService.downloadBlob(result, 'Course.xlsx');\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractCourseViewService } from './course.abstract.service';\n\n@Injectable()\nexport class CourseViewService extends AbstractCourseViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { CourseWithNavigationPropertiesDto } from '../../../proxy/courses/models';\nimport { CourseService } from '../../../proxy/courses/course.service';\n\nexport abstract class AbstractCourseDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(CourseService);\n  public readonly list = inject(ListService);\n\n  public readonly getIdentityUserLookup = this.proxyService.getIdentityUserLookup;\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    const formValues = {\n      ...this.form.value,\n    };\n\n    if (this.selected) {\n      return this.proxyService.update(this.selected.course.id, {\n        ...formValues,\n        concurrencyStamp: this.selected.course.concurrencyStamp,\n      });\n    }\n\n    return this.proxyService.create(formValues);\n  }\n\n  buildForm() {\n    const { courseName, description, instructorUserId } = this.selected?.course || {};\n\n    this.form = this.fb.group({\n      courseName: [courseName ?? null, [Validators.required, Validators.maxLength(100)]],\n      description: [description ?? null, []],\n      instructorUserId: [instructorUserId ?? null, []],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: CourseWithNavigationPropertiesDto) {\n    this.selected = record;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible($event: boolean) {\n    this.isVisible = $event;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractCourseDetailViewService } from './course-detail.abstract.service';\n\n@Injectable()\nexport class CourseDetailViewService extends AbstractCourseDetailViewService {}\n","import { inject, ChangeDetectorRef } from '@angular/core';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { ABP, ListService, PagedResultDto } from '@abp/ng.core';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport type {\n  GetEnrollmentListInput,\n  EnrollmentWithNavigationPropertiesDto,\n} from '../../../proxy/enrollments/models';\nimport { EnrollmentService } from '../../../proxy/enrollments/enrollment.service';\n\nexport abstract class AbstractEnrollmentViewService {\n  protected readonly cdr = inject(ChangeDetectorRef);\n  protected readonly proxyService = inject(EnrollmentService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n\n  data: PagedResultDto<EnrollmentWithNavigationPropertiesDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  delete(record: EnrollmentWithNavigationPropertiesDto) {\n    this.confirmationService\n      .warn('LearningManagement::DeleteConfirmationMessage', 'LearningManagement::AreYouSure', {\n        messageLocalizationParams: [],\n      })\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.enrollment.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  hookToQuery(courseId: string) {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getListWithNavigationPropertiesByCourseId({\n        ...(query as GetEnrollmentListInput),\n        courseId,\n      });\n\n    const setData = (list: PagedResultDto<EnrollmentWithNavigationPropertiesDto>) =>\n      (this.data = list);\n\n    this.list.hookToQuery(getData).subscribe(list => {\n      setData(list);\n      this.cdr.markForCheck();\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractEnrollmentViewService } from './enrollment-child.abstract.service';\n\n@Injectable()\nexport class EnrollmentViewService extends AbstractEnrollmentViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { EnrollmentWithNavigationPropertiesDto } from '../../../proxy/enrollments/models';\nimport { EnrollmentService } from '../../../proxy/enrollments/enrollment.service';\n\nexport abstract class AbstractEnrollmentDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(EnrollmentService);\n  public readonly list = inject(ListService);\n\n  public readonly getIdentityUserLookup = this.proxyService.getIdentityUserLookup;\n\n  courseId: string;\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    if (this.selected) {\n      return this.proxyService.update(this.selected.id, this.form.value);\n    }\n    return this.proxyService.create(this.form.value);\n  }\n\n  buildForm() {\n    const { enrollmentUserId } = this.selected || {};\n\n    this.form = this.fb.group({\n      courseId: [this.courseId],\n      enrollmentUserId: [enrollmentUserId ?? null, []],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: EnrollmentWithNavigationPropertiesDto) {\n    this.selected = record.enrollment;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible(isVisible: boolean) {\n    this.isVisible = isVisible;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractEnrollmentDetailViewService } from './enrollment-child-detail.abstract.service';\n\n@Injectable()\nexport class EnrollmentDetailViewService extends AbstractEnrollmentDetailViewService {}\n","import { Directive, OnInit, inject, Input } from '@angular/core';\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport type { EnrollmentWithNavigationPropertiesDto } from '../../../proxy/enrollments/models';\nimport { EnrollmentViewService } from '../services/enrollment-child.service';\nimport { EnrollmentDetailViewService } from '../services/enrollment-child-detail.service';\n\n@Directive()\nexport abstract class AbstractEnrollmentComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(EnrollmentViewService);\n  public readonly serviceDetail = inject(EnrollmentDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected isActionButtonVisible: boolean | null = null;\n\n  @Input() title = 'LearningManagement::Enrollments';\n  @Input() courseId: string;\n\n  ngOnInit() {\n    this.serviceDetail.courseId = this.courseId;\n    this.service.hookToQuery(this.courseId);\n    this.checkActionButtonVisibility();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: EnrollmentWithNavigationPropertiesDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: EnrollmentWithNavigationPropertiesDto) {\n    this.service.delete(record);\n  }\n\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy('LearningManagement.Enrollments.Edit');\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'LearningManagement.Enrollments.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { PageModule } from '@abp/ng.components/page';\nimport { ThemeSharedModule, DateAdapter } from '@abp/ng.theme.shared';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { EnrollmentViewService } from '../services/enrollment-child.service';\nimport { EnrollmentDetailViewService } from '../services/enrollment-child-detail.service';\nimport { EnrollmentDetailModalComponent } from './enrollment-child-detail.component';\nimport { AbstractEnrollmentComponent } from './enrollment-child.abstract.component';\n\n@Component({\n  selector: 'lib-enrollment',\n  imports: [\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    CoreModule,\n    PageModule,\n    ThemeSharedModule,\n    EnrollmentDetailModalComponent,\n    CommercialUiModule,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    ListService,\n    EnrollmentViewService,\n    EnrollmentDetailViewService,\n  ],\n  templateUrl: './enrollment-child.component.html',\n})\nexport class EnrollmentComponent extends AbstractEnrollmentComponent {}\n","<div class=\"text-lg-end py-1\">\n  <!--<suite-custom-code-block-0>-->\n  <!--</suite-custom-code-block-0>-->\n  <button\n    *abpPermission=\"'LearningManagement.Enrollments.Create'\"\n    class=\"btn btn-primary btn-sm\"\n    type=\"button\"\n    (click)=\"create()\"\n  >\n    <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n    {{ 'LearningManagement::NewEnrollment' | abpLocalization }}\n  </button>\n  <!--<suite-custom-code-block-1>-->\n  <!--</suite-custom-code-block-1>-->\n</div>\n<!--<suite-custom-code-block-2>-->\n<!--</suite-custom-code-block-2>-->\n<ngx-datatable default [list]=\"list\" [rows]=\"service.data.items\" [count]=\"service.data.totalCount\">\n  @if (isActionButtonVisible) {\n    <ngx-datatable-column\n      [name]=\"'AbpUi::Actions' | abpLocalization\"\n      [maxWidth]=\"150\"\n      [width]=\"150\"\n      [sortable]=\"false\"\n    >\n      <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n        <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n          <button\n            class=\"btn btn-primary btn-sm dropdown-toggle\"\n            data-toggle=\"dropdown\"\n            aria-haspopup=\"true\"\n            ngbDropdownToggle\n          >\n            <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Actions' | abpLocalization }}\n          </button>\n\n          <div ngbDropdownMenu>\n            <button\n              ngbDropdownItem\n              *abpPermission=\"'LearningManagement.Enrollments.Edit'\"\n              (click)=\"update(row)\"\n            >\n              {{ 'AbpUi::Edit' | abpLocalization }}\n            </button>\n\n            <button\n              ngbDropdownItem\n              *abpPermission=\"'LearningManagement.Enrollments.Delete'\"\n              (click)=\"delete(row)\"\n            >\n              {{ 'AbpUi::Delete' | abpLocalization }}\n            </button>\n          </div>\n        </div>\n      </ng-template>\n\n      <!--<suite-custom-code-block-3>-->\n      <!--</suite-custom-code-block-3>-->\n    </ngx-datatable-column>\n  }\n\n  <ngx-datatable-column\n    name=\"{{ 'LearningManagement::EnrollmentIdentityUser' | abpLocalization }}\"\n    prop=\"identityUser.id\"\n  >\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n  <span *ngIf=\"row.identityUser?.name && row.identityUser?.surname; else fallback\">\n    {{ (row.identityUser.name + ' ' + row.identityUser.surname) | titlecase }}\n  </span>\n  <ng-template #fallback>\n    {{ row.identityUser?.name| titlecase  }}\n  </ng-template>\n</ng-template>\n  </ngx-datatable-column>\n  <!--<suite-custom-code-block-4>-->\n  <!--</suite-custom-code-block-4>-->\n</ngx-datatable>\n\n<!--<suite-custom-code-block-5>-->\n<!--</suite-custom-code-block-5>-->\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-enrollment-detail-modal />\n  }\n}\n","import { inject, ChangeDetectorRef } from '@angular/core';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { ABP, ListService, PagedResultDto } from '@abp/ng.core';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport type {\n  GetCourseModuleListInput,\n  CourseModuleDto,\n} from '../../../proxy/course-modules/models';\nimport { CourseModuleService } from '../../../proxy/course-modules/course-module.service';\n\nexport abstract class AbstractCourseModuleViewService {\n  protected readonly cdr = inject(ChangeDetectorRef);\n  protected readonly proxyService = inject(CourseModuleService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n\n  data: PagedResultDto<CourseModuleDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  delete(record: CourseModuleDto) {\n    this.confirmationService\n      .warn('LearningManagement::DeleteConfirmationMessage', 'LearningManagement::AreYouSure', {\n        messageLocalizationParams: [],\n      })\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  hookToQuery(courseId: string) {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getListByCourseId({\n        ...(query as GetCourseModuleListInput),\n        courseId,\n      });\n\n    const setData = (list: PagedResultDto<CourseModuleDto>) => (this.data = list);\n\n    this.list.hookToQuery(getData).subscribe(list => {\n      setData(list);\n      this.cdr.markForCheck();\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractCourseModuleViewService } from './course-module-child.abstract.service';\n\n@Injectable()\nexport class CourseModuleViewService extends AbstractCourseModuleViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { CourseModuleDto } from '../../../proxy/course-modules/models';\nimport { CourseModuleService } from '../../../proxy/course-modules/course-module.service';\n\nexport abstract class AbstractCourseModuleDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(CourseModuleService);\n  public readonly list = inject(ListService);\n\n  courseId: string;\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    if (this.selected) {\n      return this.proxyService.update(this.selected.id, this.form.value);\n    }\n    return this.proxyService.create(this.form.value);\n  }\n\n  buildForm() {\n    const { title, content, orderIndex } = this.selected || {};\n\n    this.form = this.fb.group({\n      courseId: [this.courseId],\n      title: [title ?? null, [Validators.required, Validators.maxLength(100)]],\n      content: [content ?? null, []],\n      orderIndex: [orderIndex ?? null, [Validators.required]],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: CourseModuleDto) {\n    this.selected = record;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible(isVisible: boolean) {\n    this.isVisible = isVisible;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractCourseModuleDetailViewService } from './course-module-child-detail.abstract.service';\n\n@Injectable()\nexport class CourseModuleDetailViewService extends AbstractCourseModuleDetailViewService {}\n","import { Directive, OnInit, inject, Input } from '@angular/core';\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport type { CourseModuleDto } from '../../../proxy/course-modules/models';\nimport { CourseModuleViewService } from '../services/course-module-child.service';\nimport { CourseModuleDetailViewService } from '../services/course-module-child-detail.service';\n\n@Directive()\nexport abstract class AbstractCourseModuleComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(CourseModuleViewService);\n  public readonly serviceDetail = inject(CourseModuleDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected isActionButtonVisible: boolean | null = null;\n\n  @Input() title = 'LearningManagement::CourseModules';\n  @Input() courseId: string;\n\n  ngOnInit() {\n    this.serviceDetail.courseId = this.courseId;\n    this.service.hookToQuery(this.courseId);\n    this.checkActionButtonVisibility();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: CourseModuleDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: CourseModuleDto) {\n    this.service.delete(record);\n  }\n\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy(\n      'LearningManagement.CourseModules.Edit',\n    );\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'LearningManagement.CourseModules.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { PageModule } from '@abp/ng.components/page';\nimport { ThemeSharedModule, DateAdapter } from '@abp/ng.theme.shared';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { CourseModuleViewService } from '../services/course-module-child.service';\nimport { CourseModuleDetailViewService } from '../services/course-module-child-detail.service';\nimport { CourseModuleDetailModalComponent } from './course-module-child-detail.component';\nimport { AbstractCourseModuleComponent } from './course-module-child.abstract.component';\n\n@Component({\n  selector: 'lib-course-module',\n  imports: [\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    CoreModule,\n    PageModule,\n    ThemeSharedModule,\n    CourseModuleDetailModalComponent,\n    CommercialUiModule,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    ListService,\n    CourseModuleViewService,\n    CourseModuleDetailViewService,\n  ],\n  templateUrl: './course-module-child.component.html',\n})\nexport class CourseModuleComponent extends AbstractCourseModuleComponent {}\n","<div class=\"text-lg-end py-1\">\n  <!--<suite-custom-code-block-0>-->\n  <!--</suite-custom-code-block-0>-->\n  <button\n    *abpPermission=\"'LearningManagement.CourseModules.Create'\"\n    class=\"btn btn-primary btn-sm\"\n    type=\"button\"\n    (click)=\"create()\"\n  >\n    <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n    {{ 'LearningManagement::NewCourseModule' | abpLocalization }}\n  </button>\n  <!--<suite-custom-code-block-1>-->\n  <!--</suite-custom-code-block-1>-->\n</div>\n<!--<suite-custom-code-block-2>-->\n<!--</suite-custom-code-block-2>-->\n<ngx-datatable default [list]=\"list\" [rows]=\"service.data.items\" [count]=\"service.data.totalCount\">\n  @if (isActionButtonVisible) {\n    <ngx-datatable-column\n      [name]=\"'AbpUi::Actions' | abpLocalization\"\n      [maxWidth]=\"150\"\n      [width]=\"150\"\n      [sortable]=\"false\"\n    >\n      <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n        <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n          <button\n            class=\"btn btn-primary btn-sm dropdown-toggle\"\n            data-toggle=\"dropdown\"\n            aria-haspopup=\"true\"\n            ngbDropdownToggle\n          >\n            <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Actions' | abpLocalization }}\n          </button>\n\n          <div ngbDropdownMenu>\n            <button\n              ngbDropdownItem\n              *abpPermission=\"'LearningManagement.CourseModules.Edit'\"\n              (click)=\"update(row)\"\n            >\n              {{ 'AbpUi::Edit' | abpLocalization }}\n            </button>\n\n            <button\n              ngbDropdownItem\n              *abpPermission=\"'LearningManagement.CourseModules.Delete'\"\n              (click)=\"delete(row)\"\n            >\n              {{ 'AbpUi::Delete' | abpLocalization }}\n            </button>\n          </div>\n        </div>\n      </ng-template>\n\n      <!--<suite-custom-code-block-3>-->\n      <!--</suite-custom-code-block-3>-->\n    </ngx-datatable-column>\n  }\n  <ngx-datatable-column name=\"{{ 'LearningManagement::Title' | abpLocalization }}\" prop=\"title\">\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n      {{ row.title }}\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column\n    name=\"{{ 'LearningManagement::OrderIndex' | abpLocalization }}\"\n    prop=\"orderIndex\"\n  >\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n      {{ row.orderIndex }}\n    </ng-template>\n  </ngx-datatable-column>\n  <!--<suite-custom-code-block-4>-->\n  <!--</suite-custom-code-block-4>-->\n</ngx-datatable>\n\n<!--<suite-custom-code-block-5>-->\n<!--</suite-custom-code-block-5>-->\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-course-module-detail-modal />\n  }\n}\n","import { Directive, OnInit, inject, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n  NgbNav,\r\n  NgbNavItem,\r\n  NgbNavLink,\r\n  NgbNavContent,\r\n  NgbNavOutlet,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\r\n\r\nimport type { CourseWithNavigationPropertiesDto } from '../../../proxy/courses/models';\r\nimport { CourseViewService } from '../services/course.service';\r\nimport { CourseDetailViewService } from '../services/course-detail.service';\r\nimport { EnrollmentComponent } from '../../enrollment/components/enrollment-child.component';\r\n\r\nimport { CourseModuleComponent } from '../../course-module/components/course-module-child.component';\r\n\r\nexport const ChildTabDependencies = [NgbNav, NgbNavItem, NgbNavLink, NgbNavContent, NgbNavOutlet];\r\n\r\nexport const ChildComponentDependencies = [EnrollmentComponent, CourseModuleComponent];\r\n\r\n@Directive()\r\nexport abstract class AbstractCourseComponent implements OnInit {\r\n  public readonly list = inject(ListService);\r\n  public readonly track = inject(TrackByService);\r\n  public readonly service = inject(CourseViewService);\r\n  public readonly serviceDetail = inject(CourseDetailViewService);\r\n  public readonly permissionService = inject(PermissionService);\r\n\r\n  protected title = 'LearningManagement::Courses';\r\n  protected isActionButtonVisible: boolean | null = null;\r\n  protected isChildEntitiesPermitted: boolean | null = null;\r\n\r\n  @ViewChild('courseTable') table: any;\r\n\r\n  ngOnInit() {\r\n    this.service.hookToQuery();\r\n    this.checkActionButtonVisibility();\r\n    this.checkChildEntityPermissions();\r\n  }\r\n\r\n  clearFilters() {\r\n    this.service.clearFilters();\r\n  }\r\n\r\n  showForm() {\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  create() {\r\n    this.serviceDetail.selected = undefined;\r\n    this.serviceDetail.showForm();\r\n  }\r\n\r\n  update(record: CourseWithNavigationPropertiesDto) {\r\n    this.serviceDetail.update(record);\r\n  }\r\n\r\n  delete(record: CourseWithNavigationPropertiesDto) {\r\n    this.service.delete(record);\r\n  }\r\n\r\n  exportToExcel() {\r\n    this.service.exportToExcel();\r\n  }\r\n\r\n  toggleExpandRow(row) {\r\n    this.table.rowDetail.toggleExpandRow(row);\r\n  }\r\n\r\n  checkChildEntityPermissions() {\r\n    if (this.isChildEntitiesPermitted !== null) {\r\n      return;\r\n    }\r\n\r\n    const childPermissions = ['LearningManagement.Enrollments', 'LearningManagement.CourseModules'];\r\n    this.isChildEntitiesPermitted = childPermissions.some(permission =>\r\n      this.permissionService.getGrantedPolicy(permission),\r\n    );\r\n  }\r\n\r\n  checkActionButtonVisibility() {\r\n    if (this.isActionButtonVisible !== null) {\r\n      return;\r\n    }\r\n\r\n    const canEdit = this.permissionService.getGrantedPolicy('LearningManagement.Courses.Edit');\r\n    const canDelete = this.permissionService.getGrantedPolicy('LearningManagement.Courses.Delete');\r\n    this.isActionButtonVisible = canEdit || canDelete;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbTimeAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbTimepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { CourseViewService } from '../services/course.service';\nimport { CourseDetailViewService } from '../services/course-detail.service';\nimport { CourseDetailModalComponent } from './course-detail.component';\nimport {\n  AbstractCourseComponent,\n  ChildTabDependencies,\n  ChildComponentDependencies,\n} from './course.abstract.component';\n\n@Component({\n  selector: 'lib-course',\n  changeDetection: ChangeDetectionStrategy.Default,\n  imports: [\n    ...ChildTabDependencies,\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbTimepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    PageModule,\n    CoreModule,\n    ThemeSharedModule,\n    CommercialUiModule,   \n    CourseDetailModalComponent,\n    ...ChildComponentDependencies,\n  ],\n  providers: [\n    ListService,\n    CourseViewService,\n    CourseDetailViewService,\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\n  ],\n  templateUrl: './course.component.html',\n  styles: `\n    ::ng-deep.datatable-row-detail {\n      background: transparent !important;\n    }\n  `,\n})\nexport class CourseComponent extends AbstractCourseComponent {}\n","<abp-page [title]=\"title | abpLocalization\">\r\n  <abp-page-toolbar-container class=\"col\">\r\n    <!--<suite-custom-code-block-0>-->\r\n    <!--</suite-custom-code-block-0>-->\r\n    <div class=\"text-lg-end pt-2\">\r\n      <!--<suite-custom-code-block-1>-->\r\n      <!--</suite-custom-code-block-1>-->\r\n\r\n      <button\r\n        class=\"btn btn-primary btn-sm mx-2\"\r\n        type=\"button\"\r\n        [disabled]=\"service.isExportToExcelBusy\"\r\n        (click)=\"exportToExcel()\"\r\n      >\r\n        {{ 'LearningManagement::ExportToExcel' | abpLocalization }}\r\n      </button>\r\n\r\n      <button\r\n        *abpPermission=\"'LearningManagement.Courses.Create'\"\r\n        class=\"btn btn-primary btn-sm\"\r\n        type=\"button\"\r\n        (click)=\"create()\"\r\n      >\r\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n        {{ 'LearningManagement::NewCourse' | abpLocalization }}\r\n      </button>\r\n      <!--<suite-custom-code-block-2>-->\r\n      <!--</suite-custom-code-block-2>-->\r\n    </div>\r\n  </abp-page-toolbar-container>\r\n\r\n  <abp-advanced-entity-filters localizationSourceName=\"LearningManagement\" [list]=\"list\">\r\n    @if (service.filters; as filters) {\r\n      <abp-advanced-entity-filters-form>\r\n        <form #filterForm (keyup.enter)=\"list.get()\">\r\n          <!--<suite-custom-code-block-3>-->\r\n          <!--</suite-custom-code-block-3>-->\r\n          <div class=\"row\">\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"courseNameFilter\">\r\n                  {{ 'LearningManagement::CourseName' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"courseNameFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.courseName\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"descriptionFilter\">\r\n                  {{ 'LearningManagement::Description' | abpLocalization }}\r\n                </label>\r\n\r\n                <input\r\n                  id=\"descriptionFilter\"\r\n                  class=\"form-control\"\r\n                  [(ngModel)]=\"filters.description\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                />\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto\">\r\n              <div class=\"mb-3\">\r\n                <label class=\"form-label\" for=\"instructorUserIdFilter\">\r\n                  {{ 'LearningManagement::CourseIdentityUser' | abpLocalization }}\r\n                </label>\r\n                <abp-lookup-select\r\n                  cid=\"instructorUserIdFilter\"\r\n                  [getFn]=\"serviceDetail.getIdentityUserLookup\"\r\n                  [(ngModel)]=\"filters.instructorUserId\"\r\n                  [ngModelOptions]=\"{ standalone: true }\"\r\n                ></abp-lookup-select>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n              <div class=\"row\">\r\n                <div class=\"col-6 col-sm-auto d-grid\">\r\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n                  </button>\r\n                </div>\r\n                <div class=\"col-6 col-sm-auto d-grid\">\r\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <!--<suite-custom-code-block-4>-->\r\n          <!--</suite-custom-code-block-4>-->\r\n        </form>\r\n      </abp-advanced-entity-filters-form>\r\n    }\r\n  </abp-advanced-entity-filters>\r\n  <!--<suite-custom-code-block-5>-->\r\n  <!--</suite-custom-code-block-5>-->\r\n  <div class=\"card\">\r\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n      @if (service.selectedCount() > 0) {\r\n        <h4 class=\"card-title\">\r\n          {{\r\n            'LearningManagement::AllItemsAreSelected'\r\n              | abpLocalization\r\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\r\n          }}\r\n        </h4>\r\n\r\n        <div>\r\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\r\n            @if (service.allSelected()) {\r\n              {{ 'LearningManagement::ClearSelection' | abpLocalization }}\r\n            } @else {\r\n              {{ 'LearningManagement::SelectAllItems' | abpLocalization: service.data.totalCount }}\r\n            }\r\n          </button>\r\n\r\n          <button\r\n            *abpPermission=\"'LearningManagement.Courses.Delete'\"\r\n            class=\"btn btn-danger btn-sm mx-1\"\r\n            (click)=\"service.bulkDelete()\"\r\n          >\r\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\r\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\r\n          </button>\r\n        </div>\r\n      }\r\n    </div>\r\n\r\n    <!--<suite-custom-code-block-6>-->\r\n    <!--</suite-custom-code-block-6>-->\r\n    <div class=\"card-body\">\r\n      <!--<suite-custom-code-block-7>-->\r\n      <!--</suite-custom-code-block-7>-->\r\n      <ngx-datatable\r\n        #courseTable\r\n        default\r\n        [rows]=\"service.data.items\"\r\n        [count]=\"service.data.totalCount\"\r\n        [list]=\"list\"\r\n        [selected]=\"service.selected()\"\r\n        [selectionType]=\"service.selectionType.checkbox\"\r\n        (select)=\"service.onSelect($event)\"\r\n      >\r\n        <!--<suite-custom-code-block-8>-->\r\n        <!--</suite-custom-code-block-8>-->\r\n\r\n        <ngx-datatable-column\r\n          [width]=\"40\"\r\n          [sortable]=\"false\"\r\n          [canAutoResize]=\"false\"\r\n          [draggable]=\"false\"\r\n          [resizeable]=\"false\"\r\n        >\r\n          <ng-template\r\n            ngx-datatable-header-template\r\n            let-value=\"value\"\r\n            let-allRowsSelected=\"allRowsSelected\"\r\n            let-selectFn=\"selectFn\"\r\n          >\r\n            @if (service.data.items.length > 0) {\r\n              <input\r\n                type=\"checkbox\"\r\n                class=\"form-check-input\"\r\n                [checked]=\"allRowsSelected\"\r\n                (change)=\"selectFn(!allRowsSelected)\"\r\n              />\r\n            }\r\n          </ng-template>\r\n          <ng-template\r\n            ngx-datatable-cell-template\r\n            let-value=\"value\"\r\n            let-isSelected=\"isSelected\"\r\n            let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n          >\r\n            <input\r\n              class=\"form-check-input\"\r\n              type=\"checkbox\"\r\n              [checked]=\"isSelected\"\r\n              (change)=\"onCheckboxChangeFn($event)\"\r\n            />\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n\r\n        <!-- Row Detail Template -->\r\n        <ngx-datatable-row-detail rowHeight=\"100%\">\r\n          <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-row-detail-template>\r\n            <ul id=\"course-nav-tabs mb-0\" ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n              <li\r\n                *abpPermission=\"'LearningManagement.Enrollments'\"\r\n                id=\"enrollment-informations\"\r\n                ngbNavItem\r\n              >\r\n                <a ngbNavLink>{{ 'LearningManagement::Enrollment' | abpLocalization }}</a>\r\n\r\n                <ng-template ngbNavContent>\r\n                  <lib-enrollment [courseId]=\"row.course.id\" />\r\n                </ng-template>\r\n              </li>\r\n\r\n              <li\r\n                *abpPermission=\"'LearningManagement.CourseModules'\"\r\n                id=\"course-module-informations\"\r\n                ngbNavItem\r\n              >\r\n                <a ngbNavLink>{{ 'LearningManagement::CourseModule' | abpLocalization }}</a>\r\n\r\n                <ng-template ngbNavContent>\r\n                  <lib-course-module [courseId]=\"row.course.id\" />\r\n                </ng-template>\r\n              </li>\r\n            </ul>\r\n\r\n            <div [ngbNavOutlet]=\"nav\" class=\"m-0 fade-in-top\"></div>\r\n          </ng-template>\r\n        </ngx-datatable-row-detail>\r\n        @if (isChildEntitiesPermitted) {\r\n          <ngx-datatable-column\r\n            [width]=\"50\"\r\n            [resizeable]=\"false\"\r\n            [sortable]=\"false\"\r\n            [draggable]=\"false\"\r\n            [canAutoResize]=\"false\"\r\n          >\r\n            <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-cell-template>\r\n              <a\r\n                href=\"javascript:void(0)\"\r\n                class=\"ngx-datatable-toggle text-decoration-none text-muted fa\"\r\n                [class.fa-angle-down]=\"!expanded\"\r\n                [class.fa-angle-up]=\"expanded\"\r\n                title=\"Expand/Collapse Row\"\r\n                (click)=\"toggleExpandRow(row)\"\r\n              >\r\n              </a>\r\n            </ng-template>\r\n          </ngx-datatable-column>\r\n        }\r\n\r\n        @if (isActionButtonVisible) {\r\n          <ngx-datatable-column\r\n            [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n            [maxWidth]=\"150\"\r\n            [width]=\"150\"\r\n            [sortable]=\"false\"\r\n          >\r\n            <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n              <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n                <button\r\n                  class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n                  data-toggle=\"dropdown\"\r\n                  aria-haspopup=\"true\"\r\n                  ngbDropdownToggle\r\n                >\r\n                  <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n                  {{ 'AbpUi::Actions' | abpLocalization }}\r\n                </button>\r\n\r\n                <div ngbDropdownMenu>\r\n                  <button\r\n                    ngbDropdownItem\r\n                    *abpPermission=\"'LearningManagement.Courses.Edit'\"\r\n                    (click)=\"update(row)\"\r\n                  >\r\n                    {{ 'AbpUi::Edit' | abpLocalization }}\r\n                  </button>\r\n\r\n                  <button\r\n                    ngbDropdownItem\r\n                    *abpPermission=\"'LearningManagement.Courses.Delete'\"\r\n                    (click)=\"delete(row)\"\r\n                  >\r\n                    {{ 'AbpUi::Delete' | abpLocalization }}\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </ng-template>\r\n          </ngx-datatable-column>\r\n        }\r\n        <ngx-datatable-column\r\n          name=\"{{ 'LearningManagement::CourseName' | abpLocalization }}\"\r\n          prop=\"course.courseName\"\r\n        >\r\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n            {{ row.course.courseName }}\r\n          </ng-template>\r\n        </ngx-datatable-column>\r\n        <ngx-datatable-column\r\n          name=\"{{ 'LearningManagement::CourseIdentityUser' | abpLocalization }}\"\r\n          prop=\"identityUser.userName\"\r\n        >\r\n           <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n  <span *ngIf=\"row.identityUser?.name && row.identityUser?.surname; else fallback\">\r\n    {{ (row.identityUser.name + ' ' + row.identityUser.surname) | titlecase }}\r\n  </span>\r\n  <ng-template #fallback>\r\n    {{ row.identityUser?.name| titlecase  }}\r\n  </ng-template>\r\n</ng-template>\r\n        </ngx-datatable-column>\r\n        <!--<suite-custom-code-block-9>-->\r\n        <!--</suite-custom-code-block-9>-->\r\n      </ngx-datatable>\r\n      <!--<suite-custom-code-block-10>-->\r\n      <!--</suite-custom-code-block-10>-->\r\n    </div>\r\n  </div>\r\n  <!--<suite-custom-code-block-11>-->\r\n  <!--</suite-custom-code-block-11>-->\r\n</abp-page>\r\n<!--<suite-custom-code-block-12>-->\r\n<!--</suite-custom-code-block-12>-->\r\n\r\n@defer (when serviceDetail.isVisible) {\r\n  @if (serviceDetail.isVisible) {\r\n    <lib-course-detail-modal />\r\n  }\r\n}\r\n","import { authGuard, permissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { CourseComponent } from './components/course.component';\n\nexport const routes: Routes = [\n  {\n    path: '',\n    component: CourseComponent,\n    canActivate: [authGuard, permissionGuard],\n  },\n];\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class CourseRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CourseComponent } from './components/course.component';\nimport { CourseRoutingModule } from './course-routing.module';\n\n@NgModule({\n  declarations: [],\n  imports: [CourseComponent, CourseRoutingModule],\n})\nexport class CourseModule {}\n\nexport function loadCourseModuleAsChild() {\n  return Promise.resolve(CourseModule);\n}\n","import { inject, computed, signal } from '@angular/core';\nimport { SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport { ABP, AbpWindowService, ListService, PagedResultDto } from '@abp/ng.core';\nimport { filter, switchMap, finalize } from 'rxjs/operators';\nimport type {\n  GetAssignmentsInput,\n  AssignmentWithNavigationPropertiesDto,\n} from '../../../proxy/assignments/models';\nimport { AssignmentService } from '../../../proxy/assignments/assignment.service';\n\nexport abstract class AbstractAssignmentViewService {\n  protected readonly proxyService = inject(AssignmentService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n  protected readonly abpWindowService = inject(AbpWindowService);\n\n  isExportToExcelBusy = false;\n\n  data: PagedResultDto<AssignmentWithNavigationPropertiesDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  selectionType = SelectionType;\n  selected = signal<AssignmentWithNavigationPropertiesDto[]>([]);\n  allSelected = signal(false);\n  selectedCount = computed(() => this.selected().length);\n\n  filters = {} as GetAssignmentsInput;\n\n  protected clearAllSelection() {\n    this.selected.set([]);\n    this.allSelected.set(false);\n  }\n\n  protected bulkDeleteRequest() {\n    const ids = this.selected().map(({ assignment: { id } }) => id);\n\n    const request = !this.allSelected()\n      ? this.proxyService.deleteByIds(ids)\n      : this.proxyService.deleteAll({\n          filterText: this.list.filter,\n          ...this.filters,\n        });\n\n    return request.pipe(finalize(this.list.get));\n  }\n\n  delete(record: AssignmentWithNavigationPropertiesDto) {\n    this.confirmationService\n      .warn('LearningManagement::DeleteConfirmationMessage', 'LearningManagement::AreYouSure', {\n        messageLocalizationParams: [],\n      })\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.assignment.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  bulkDelete() {\n    if (this.selectedCount() < 1) {\n      return;\n    }\n\n    let message = 'LearningManagement::';\n    let messageParam = null;\n\n    if (this.allSelected()) {\n      message += 'DeleteAllRecords';\n    } else {\n      message += 'DeleteSelectedRecords';\n      messageParam = this.selectedCount().toString();\n    }\n\n    this.confirmationService\n      .warn(message, 'AbpUi::AreYouSure', {\n        messageLocalizationParams: [messageParam],\n      })\n      .pipe(\n        filter(result => result === Confirmation.Status.confirm),\n        switchMap(() => this.bulkDeleteRequest()),\n      )\n      .subscribe();\n  }\n\n  selectAll() {\n    this.allSelected.set(!this.allSelected());\n    this.selected.set(this.allSelected() ? [...this.data.items] : []);\n  }\n\n  onSelect({ selected }) {\n    if (selected.length < 1) {\n      this.clearAllSelection();\n      return;\n    }\n\n    if (selected.length === this.data.totalCount) {\n      this.allSelected.set(true);\n      this.selected.set(selected);\n      return;\n    }\n\n    if (selected.length !== this.data.totalCount && this.allSelected()) {\n      this.allSelected.set(false);\n    }\n\n    if (selected.length === 1) {\n      if (this.selected().length < 1) {\n        this.selected.set(selected);\n        return;\n      }\n\n      this.selected.set([...this.selected()]);\n      return;\n    }\n\n    this.selected.set(selected);\n  }\n\n  hookToQuery() {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getList({\n        ...query,\n        ...this.filters,\n        filterText: query.filter,\n      });\n\n    const setData = (list: PagedResultDto<AssignmentWithNavigationPropertiesDto>) => {\n      this.data = list;\n\n      if (this.selectedCount() > 0) {\n        this.clearAllSelection();\n      }\n    };\n\n    this.list.hookToQuery(getData).subscribe(setData);\n  }\n\n  clearFilters() {\n    this.filters = {} as GetAssignmentsInput;\n    this.list.get();\n  }\n\n  exportToExcel() {\n    this.isExportToExcelBusy = true;\n    this.proxyService\n      .getDownloadToken()\n      .pipe(\n        switchMap(({ token }) =>\n          this.proxyService.getListAsExcelFile({\n            downloadToken: token,\n            filterText: this.list.filter,\n            ...this.filters,\n          }),\n        ),\n        finalize(() => (this.isExportToExcelBusy = false)),\n      )\n      .subscribe(result => {\n        this.abpWindowService.downloadBlob(result, 'Assignment.xlsx');\n      });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractAssignmentViewService } from './assignment.abstract.service';\n\n@Injectable()\nexport class AssignmentViewService extends AbstractAssignmentViewService {}\n","import { inject } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { AssignmentWithNavigationPropertiesDto } from '../../../proxy/assignments/models';\nimport { AssignmentService } from '../../../proxy/assignments/assignment.service';\n\nexport abstract class AbstractAssignmentDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(AssignmentService);\n  public readonly list = inject(ListService);\n\n  public readonly getCourseLookup = this.proxyService.getCourseLookup;\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    const formValues = {\n      ...this.form.value,\n    };\n\n    if (this.selected) {\n      return this.proxyService.update(this.selected.assignment.id, {\n        ...formValues,\n        concurrencyStamp: this.selected.assignment.concurrencyStamp,\n      });\n    }\n\n    return this.proxyService.create(formValues);\n  }\n\n  buildForm() {\n    const { title, description, dueDate, courseId } = this.selected?.assignment || {};\n\n    this.form = this.fb.group({\n      title: [title ?? null, [Validators.required, Validators.maxLength(100)]],\n      description: [description ?? null, []],\n      dueDate: [dueDate ?? null, this.optionalPastDateValidator()],\n      courseId: [courseId ?? null, []],\n    });\n  }\n  private optionalPastDateValidator(): ValidatorFn {\n  const isEdit = !!this.selected?.vfTask?.id;\n\n  return (control: AbstractControl): ValidationErrors | null => {\n    const value = control.value;\n    if (!value || isEdit) return null;\n\n    const today = new Date();\n    today.setHours(0, 0, 0, 0);\n    const selected = new Date(value.year, value.month - 1, value.day);\n\n    return selected < today ? { pastDate: true } : null;\n  };\n}\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: AssignmentWithNavigationPropertiesDto) {\n    this.selected = record;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible($event: boolean) {\n    this.isVisible = $event;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractAssignmentDetailViewService } from './assignment-detail.abstract.service';\n\n@Injectable()\nexport class AssignmentDetailViewService extends AbstractAssignmentDetailViewService {}\n","import { inject, ChangeDetectorRef } from '@angular/core';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { ABP, ListService, PagedResultDto } from '@abp/ng.core';\nimport { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';\nimport type {\n  GetAssignmentSubmissionListInput,\n  AssignmentSubmissionWithNavigationPropertiesDto,\n} from '../../../proxy/assignment-submissions/models';\nimport { AssignmentSubmissionService } from '../../../proxy/assignment-submissions/assignment-submission.service';\n\nexport abstract class AbstractAssignmentSubmissionViewService {\n  protected readonly cdr = inject(ChangeDetectorRef);\n  protected readonly proxyService = inject(AssignmentSubmissionService);\n  protected readonly confirmationService = inject(ConfirmationService);\n  protected readonly list = inject(ListService);\n\n  data: PagedResultDto<AssignmentSubmissionWithNavigationPropertiesDto> = {\n    items: [],\n    totalCount: 0,\n  };\n\n  delete(record: AssignmentSubmissionWithNavigationPropertiesDto) {\n    this.confirmationService\n      .warn('LearningManagement::DeleteConfirmationMessage', 'LearningManagement::AreYouSure', {\n        messageLocalizationParams: [],\n      })\n      .pipe(\n        filter(status => status === Confirmation.Status.confirm),\n        switchMap(() => this.proxyService.delete(record.assignmentSubmission.id)),\n      )\n      .subscribe(this.list.get);\n  }\n\n  hookToQuery(assignmentId: string) {\n    const getData = (query: ABP.PageQueryParams) =>\n      this.proxyService.getListWithNavigationPropertiesByAssignmentId({\n        ...(query as GetAssignmentSubmissionListInput),\n        assignmentId,\n      });\n\n    const setData = (list: PagedResultDto<AssignmentSubmissionWithNavigationPropertiesDto>) =>\n      (this.data = list);\n\n    this.list.hookToQuery(getData).subscribe(list => {\n      setData(list);\n      this.cdr.markForCheck();\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractAssignmentSubmissionViewService } from './assignment-submission-child.abstract.service';\n\n@Injectable()\nexport class AssignmentSubmissionViewService extends AbstractAssignmentSubmissionViewService {}\n","import { inject } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ListService, TrackByService } from '@abp/ng.core';\n\nimport { finalize, tap } from 'rxjs/operators';\n\nimport type { AssignmentSubmissionWithNavigationPropertiesDto } from '../../../proxy/assignment-submissions/models';\nimport { AssignmentSubmissionService } from '../../../proxy/assignment-submissions/assignment-submission.service';\n\nexport abstract class AbstractAssignmentSubmissionDetailViewService {\n  protected readonly fb = inject(FormBuilder);\n  protected readonly track = inject(TrackByService);\n\n  public readonly proxyService = inject(AssignmentSubmissionService);\n  public readonly list = inject(ListService);\n\n  public readonly getIdentityUserLookup = this.proxyService.getIdentityUserLookup;\n\n  assignmentId: string;\n\n  isBusy = false;\n  isVisible = false;\n  selected = {} as any;\n  form: FormGroup | undefined;\n\n  protected createRequest() {\n    if (this.selected) {\n      return this.proxyService.update(this.selected.id, this.form.value);\n    }\n    return this.proxyService.create(this.form.value);\n  }\n\n  buildForm() {\n    const { submissionUserId, filePath, grade, feedBack } = this.selected || {};\n\n    this.form = this.fb.group({\n      assignmentId: [this.assignmentId],\n      submissionUserId: [submissionUserId ?? null, []],\n      filePath: [filePath ?? null, [Validators.maxLength(255)]],\n      grade: [grade ?? null, [Validators.required]],\n      feedBack: [feedBack ?? null, []],\n    });\n  }\n\n  showForm() {\n    this.buildForm();\n    this.isVisible = true;\n  }\n\n  create() {\n    this.selected = undefined;\n    this.showForm();\n  }\n\n  update(record: AssignmentSubmissionWithNavigationPropertiesDto) {\n    this.selected = record.assignmentSubmission;\n    this.showForm();\n  }\n\n  hideForm() {\n    this.isVisible = false;\n  }\n\n  submitForm() {\n    if (this.form.invalid) return;\n\n    this.isBusy = true;\n\n    const request = this.createRequest().pipe(\n      finalize(() => (this.isBusy = false)),\n      tap(() => this.hideForm()),\n    );\n\n    request.subscribe(this.list.get);\n  }\n\n  changeVisible(isVisible: boolean) {\n    this.isVisible = isVisible;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractAssignmentSubmissionDetailViewService } from './assignment-submission-child-detail.abstract.service';\n\n@Injectable()\nexport class AssignmentSubmissionDetailViewService extends AbstractAssignmentSubmissionDetailViewService {}\n","import { Directive, OnInit, inject, Input } from '@angular/core';\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport type { AssignmentSubmissionWithNavigationPropertiesDto } from '../../../proxy/assignment-submissions/models';\nimport { AssignmentSubmissionViewService } from '../services/assignment-submission-child.service';\nimport { AssignmentSubmissionDetailViewService } from '../services/assignment-submission-child-detail.service';\n\n@Directive()\nexport abstract class AbstractAssignmentSubmissionComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(AssignmentSubmissionViewService);\n  public readonly serviceDetail = inject(AssignmentSubmissionDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected isActionButtonVisible: boolean | null = null;\n\n  @Input() title = 'LearningManagement::AssignmentSubmissions';\n  @Input() assignmentId: string;\n\n  ngOnInit() {\n    this.serviceDetail.assignmentId = this.assignmentId;\n    this.service.hookToQuery(this.assignmentId);\n    this.checkActionButtonVisibility();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: AssignmentSubmissionWithNavigationPropertiesDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: AssignmentSubmissionWithNavigationPropertiesDto) {\n    this.service.delete(record);\n  }\n\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy(\n      'LearningManagement.AssignmentSubmissions.Edit',\n    );\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'LearningManagement.AssignmentSubmissions.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule } from '@abp/ng.core';\nimport { PageModule } from '@abp/ng.components/page';\nimport { ThemeSharedModule, DateAdapter } from '@abp/ng.theme.shared';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { AssignmentSubmissionViewService } from '../services/assignment-submission-child.service';\nimport { AssignmentSubmissionDetailViewService } from '../services/assignment-submission-child-detail.service';\nimport { AssignmentSubmissionDetailModalComponent } from './assignment-submission-child-detail.component';\nimport { AbstractAssignmentSubmissionComponent } from './assignment-submission-child.abstract.component';\n\n@Component({\n  selector: 'lib-assignment-submission',\n  imports: [\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    CoreModule,\n    PageModule,\n    ThemeSharedModule,\n    AssignmentSubmissionDetailModalComponent,\n    CommercialUiModule,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    ListService,\n    AssignmentSubmissionViewService,\n    AssignmentSubmissionDetailViewService,\n  ],\n  templateUrl: './assignment-submission-child.component.html',\n})\nexport class AssignmentSubmissionComponent extends AbstractAssignmentSubmissionComponent {}\n","<div class=\"text-lg-end py-1\">\n  <!--<suite-custom-code-block-0>-->\n  <!--</suite-custom-code-block-0>-->\n  <button\n    *abpPermission=\"'LearningManagement.AssignmentSubmissions.Create'\"\n    class=\"btn btn-primary btn-sm\"\n    type=\"button\"\n    (click)=\"create()\"\n  >\n    <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n    {{ 'LearningManagement::NewAssignmentSubmission' | abpLocalization }}\n  </button>\n  <!--<suite-custom-code-block-1>-->\n  <!--</suite-custom-code-block-1>-->\n</div>\n<!--<suite-custom-code-block-2>-->\n<!--</suite-custom-code-block-2>-->\n<ngx-datatable default [list]=\"list\" [rows]=\"service.data.items\" [count]=\"service.data.totalCount\">\n  @if (isActionButtonVisible) {\n    <ngx-datatable-column\n      [name]=\"'AbpUi::Actions' | abpLocalization\"\n      [maxWidth]=\"150\"\n      [width]=\"150\"\n      [sortable]=\"false\"\n    >\n      <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n        <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n          <button\n            class=\"btn btn-primary btn-sm dropdown-toggle\"\n            data-toggle=\"dropdown\"\n            aria-haspopup=\"true\"\n            ngbDropdownToggle\n          >\n            <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Actions' | abpLocalization }}\n          </button>\n\n          <div ngbDropdownMenu>\n            <button\n              ngbDropdownItem\n              *abpPermission=\"'LearningManagement.AssignmentSubmissions.Edit'\"\n              (click)=\"update(row)\"\n            >\n              {{ 'AbpUi::Edit' | abpLocalization }}\n            </button>\n\n            <button\n              ngbDropdownItem\n              *abpPermission=\"'LearningManagement.AssignmentSubmissions.Delete'\"\n              (click)=\"delete(row)\"\n            >\n              {{ 'AbpUi::Delete' | abpLocalization }}\n            </button>\n          </div>\n        </div>\n      </ng-template>\n\n      <!--<suite-custom-code-block-3>-->\n      <!--</suite-custom-code-block-3>-->\n    </ngx-datatable-column>\n  }\n  <ngx-datatable-column\n    name=\"{{ 'LearningManagement::Grade' | abpLocalization }}\"\n    prop=\"assignmentSubmission.grade\"\n  >\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n      {{ row.assignmentSubmission.grade }}\n    </ng-template>\n  </ngx-datatable-column>\n\n  <ngx-datatable-column\n    name=\"{{ 'LearningManagement::SubmissionIdentityUser' | abpLocalization }}\"\n    prop=\"identityUser.id\"\n  >\n  \n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n  <span *ngIf=\"row.identityUser?.name && row.identityUser?.surname; else fallback\">\n    {{ (row.identityUser.name + ' ' + row.identityUser.surname) | titlecase }}\n  </span>\n  <ng-template #fallback>\n    {{ row.identityUser?.name| titlecase  }}\n  </ng-template>\n</ng-template>\n  </ngx-datatable-column>\n  <!--<suite-custom-code-block-4>-->\n  <!--</suite-custom-code-block-4>-->\n</ngx-datatable>\n\n<!--<suite-custom-code-block-5>-->\n<!--</suite-custom-code-block-5>-->\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-assignment-submission-detail-modal />\n  }\n}\n","import { Directive, OnInit, inject, ViewChild } from '@angular/core';\n\nimport {\n  NgbNav,\n  NgbNavItem,\n  NgbNavLink,\n  NgbNavContent,\n  NgbNavOutlet,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { ListService, PermissionService, TrackByService } from '@abp/ng.core';\n\nimport type { AssignmentWithNavigationPropertiesDto } from '../../../proxy/assignments/models';\nimport { AssignmentViewService } from '../services/assignment.service';\nimport { AssignmentDetailViewService } from '../services/assignment-detail.service';\nimport { AssignmentSubmissionComponent } from '../../assignment-submission/components/assignment-submission-child.component';\n\nexport const ChildTabDependencies = [NgbNav, NgbNavItem, NgbNavLink, NgbNavContent, NgbNavOutlet];\n\nexport const ChildComponentDependencies = [AssignmentSubmissionComponent];\n\n@Directive()\nexport abstract class AbstractAssignmentComponent implements OnInit {\n  public readonly list = inject(ListService);\n  public readonly track = inject(TrackByService);\n  public readonly service = inject(AssignmentViewService);\n  public readonly serviceDetail = inject(AssignmentDetailViewService);\n  public readonly permissionService = inject(PermissionService);\n\n  protected title = 'LearningManagement::Assignments';\n  protected isActionButtonVisible: boolean | null = null;\n  protected isChildEntitiesPermitted: boolean | null = null;\n\n  @ViewChild('assignmentTable') table: any;\n\n  ngOnInit() {\n    this.service.hookToQuery();\n    this.checkActionButtonVisibility();\n    this.checkChildEntityPermissions();\n  }\n\n  clearFilters() {\n    this.service.clearFilters();\n  }\n\n  showForm() {\n    this.serviceDetail.showForm();\n  }\n\n  create() {\n    this.serviceDetail.selected = undefined;\n    this.serviceDetail.showForm();\n  }\n\n  update(record: AssignmentWithNavigationPropertiesDto) {\n    this.serviceDetail.update(record);\n  }\n\n  delete(record: AssignmentWithNavigationPropertiesDto) {\n    this.service.delete(record);\n  }\n\n  exportToExcel() {\n    this.service.exportToExcel();\n  }\n\n  toggleExpandRow(row) {\n    this.table.rowDetail.toggleExpandRow(row);\n  }\n\n  checkChildEntityPermissions() {\n    if (this.isChildEntitiesPermitted !== null) {\n      return;\n    }\n\n    const childPermissions = ['LearningManagement.AssignmentSubmissions'];\n    this.isChildEntitiesPermitted = childPermissions.some(permission =>\n      this.permissionService.getGrantedPolicy(permission),\n    );\n  }\nisOverdue(dueDate: string | Date | null | undefined): boolean {\n  if (!dueDate) return false;\n\n  const due = new Date(dueDate);\n  const now = new Date();\n\n  // Optional: Strip time for strict date-only comparison\n  due.setHours(0, 0, 0, 0);\n  now.setHours(0, 0, 0, 0);\n\n  return due < now;\n}\n  checkActionButtonVisibility() {\n    if (this.isActionButtonVisible !== null) {\n      return;\n    }\n\n    const canEdit = this.permissionService.getGrantedPolicy('LearningManagement.Assignments.Edit');\n    const canDelete = this.permissionService.getGrantedPolicy(\n      'LearningManagement.Assignments.Delete',\n    );\n    this.isActionButtonVisible = canEdit || canDelete;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport {\n  NgbDateAdapter,\n  NgbTimeAdapter,\n  NgbCollapseModule,\n  NgbDatepickerModule,\n  NgbTimepickerModule,\n  NgbDropdownModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ListService, CoreModule, UtcToLocalPipe } from '@abp/ng.core';\nimport { ThemeSharedModule, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { AssignmentViewService } from '../services/assignment.service';\nimport { AssignmentDetailViewService } from '../services/assignment-detail.service';\nimport { AssignmentDetailModalComponent } from './assignment-detail.component';\nimport {\n  AbstractAssignmentComponent,\n  ChildTabDependencies,\n  ChildComponentDependencies,\n} from './assignment.abstract.component';\n\n@Component({\n  selector: 'lib-assignment',\n  changeDetection: ChangeDetectionStrategy.Default,\n  imports: [\n    ...ChildTabDependencies,\n    NgbCollapseModule,\n    NgbDatepickerModule,\n    NgbTimepickerModule,\n    NgbDropdownModule,\n    NgxValidateCoreModule,\n    PageModule,\n    CoreModule,\n    ThemeSharedModule,\n    CommercialUiModule,  \n    UtcToLocalPipe ,\n    AssignmentDetailModalComponent,\n    ...ChildComponentDependencies,\n  ],\n  providers: [\n    ListService,\n    AssignmentViewService,\n    AssignmentDetailViewService,\n    { provide: NgbDateAdapter, useClass: DateAdapter },\n    { provide: NgbTimeAdapter, useClass: TimeAdapter },\n  ],\n  templateUrl: './assignment.component.html',\n  styles: `\n    ::ng-deep.datatable-row-detail {\n      background: transparent !important;\n    }\n  `,\n})\nexport class AssignmentComponent extends AbstractAssignmentComponent {}\n","<abp-page [title]=\"title | abpLocalization\">\n  <abp-page-toolbar-container class=\"col\">\n    <!--<suite-custom-code-block-0>-->\n    <!--</suite-custom-code-block-0>-->\n    <div class=\"text-lg-end pt-2\">\n      <!--<suite-custom-code-block-1>-->\n      <!--</suite-custom-code-block-1>-->\n\n      <button\n        class=\"btn btn-primary btn-sm mx-2\"\n        type=\"button\"\n        [disabled]=\"service.isExportToExcelBusy\"\n        (click)=\"exportToExcel()\"\n      >\n        {{ 'LearningManagement::ExportToExcel' | abpLocalization }}\n      </button>\n\n      <button\n        *abpPermission=\"'LearningManagement.Assignments.Create'\"\n        class=\"btn btn-primary btn-sm\"\n        type=\"button\"\n        (click)=\"create()\"\n      >\n        <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\n        {{ 'LearningManagement::NewAssignment' | abpLocalization }}\n      </button>\n      <!--<suite-custom-code-block-2>-->\n      <!--</suite-custom-code-block-2>-->\n    </div>\n  </abp-page-toolbar-container>\n\n  <abp-advanced-entity-filters localizationSourceName=\"LearningManagement\" [list]=\"list\">\n    @if (service.filters; as filters) {\n      <abp-advanced-entity-filters-form>\n        <form #filterForm (keyup.enter)=\"list.get()\">\n          <!--<suite-custom-code-block-3>-->\n          <!--</suite-custom-code-block-3>-->\n          <div class=\"row\">\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"titleFilter\">\n                  {{ 'LearningManagement::Title' | abpLocalization }}\n                </label>\n\n                <input\n                  id=\"titleFilter\"\n                  class=\"form-control\"\n                  [(ngModel)]=\"filters.title\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                />\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"minDueDate\">\n                  {{ 'LearningManagement::MinDueDate' | abpLocalization }}\n                </label>\n\n                <div class=\"input-group\" validationTarget>\n                  <input\n                    id=\"minDueDate\"\n                    class=\"form-control\"\n                    #minDueDateInput\n                    #minDueDateDatepicker=\"ngbDatepicker\"\n                    name=\"minDueDate\"\n                    ngbDatepicker\n                    container=\"body\"\n                    readonly\n                    (click)=\"minDueDateDatepicker.toggle()\"\n                    (keyup.space)=\"minDueDateDatepicker.toggle()\"\n                    [(ngModel)]=\"filters.dueDateMin\"\n                    [ngModelOptions]=\"{ standalone: true }\"\n                  />\n                  @if (minDueDateInput.value) {\n                    <div class=\"input-group-append\">\n                      <button\n                        class=\"btn btn-link px-2\"\n                        type=\"button\"\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\n                        (click)=\"\n                          minDueDateDatepicker.writeValue(null);\n                          minDueDateDatepicker.manualDateChange(null, true)\n                        \"\n                      >\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n                      </button>\n                    </div>\n                  }\n                </div>\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"maxDueDate\">\n                  {{ 'LearningManagement::MaxDueDate' | abpLocalization }}\n                </label>\n\n                <div class=\"input-group\" validationTarget>\n                  <input\n                    id=\"maxDueDate\"\n                    class=\"form-control\"\n                    #maxDueDateInput\n                    #maxDueDateDatepicker=\"ngbDatepicker\"\n                    name=\"maxDueDate\"\n                    ngbDatepicker\n                    readonly\n                    (click)=\"maxDueDateDatepicker.toggle()\"\n                    (keyup.space)=\"maxDueDateDatepicker.toggle()\"\n                    [(ngModel)]=\"filters.dueDateMax\"\n                    [ngModelOptions]=\"{ standalone: true }\"\n                  />\n                  @if (maxDueDateInput.value) {\n                    <div class=\"input-group-append\">\n                      <button\n                        class=\"btn btn-link px-2\"\n                        type=\"button\"\n                        [title]=\"'AbpUi::Clear' | abpLocalization\"\n                        (click)=\"\n                          maxDueDateDatepicker.writeValue(null);\n                          maxDueDateDatepicker.manualDateChange(null, true)\n                        \"\n                      >\n                        <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\n                      </button>\n                    </div>\n                  }\n                </div>\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto\">\n              <div class=\"mb-3\">\n                <label class=\"form-label\" for=\"courseIdFilter\">\n                  {{ 'LearningManagement::Course' | abpLocalization }}\n                </label>\n                <abp-lookup-select\n                  cid=\"courseIdFilter\"\n                  [getFn]=\"serviceDetail.getCourseLookup\"\n                  [(ngModel)]=\"filters.courseId\"\n                  [ngModelOptions]=\"{ standalone: true }\"\n                ></abp-lookup-select>\n              </div>\n            </div>\n\n            <div class=\"col-12 col-sm-auto align-self-end mb-3\">\n              <div class=\"row\">\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\n                    <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\n                  </button>\n                </div>\n                <div class=\"col-6 col-sm-auto d-grid\">\n                  <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\n                    <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\n                  </button>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!--<suite-custom-code-block-4>-->\n          <!--</suite-custom-code-block-4>-->\n        </form>\n      </abp-advanced-entity-filters-form>\n    }\n  </abp-advanced-entity-filters>\n  <!--<suite-custom-code-block-5>-->\n  <!--</suite-custom-code-block-5>-->\n  <div class=\"card\">\n    <div class=\"card-header d-flex justify-content-between align-items-center\">\n      @if (service.selectedCount() > 0) {\n        <h4 class=\"card-title\">\n          {{\n            'LearningManagement::AllItemsAreSelected'\n              | abpLocalization\n                : (service.allSelected() ? service.data.totalCount : service.selectedCount())\n          }}\n        </h4>\n\n        <div>\n          <button class=\"btn btn-outline-primary btn-sm\" (click)=\"service.selectAll()\">\n            @if (service.allSelected()) {\n              {{ 'LearningManagement::ClearSelection' | abpLocalization }}\n            } @else {\n              {{ 'LearningManagement::SelectAllItems' | abpLocalization: service.data.totalCount }}\n            }\n          </button>\n\n          <button\n            *abpPermission=\"'LearningManagement.Assignments.Delete'\"\n            class=\"btn btn-danger btn-sm mx-1\"\n            (click)=\"service.bulkDelete()\"\n          >\n            <i class=\"fa fa-trash me-1\" aria-hidden=\"true\"></i>\n            {{ 'AbpUi::Delete' | abpLocalization: service.selectedCount() }}\n          </button>\n        </div>\n      }\n    </div>\n\n    <!--<suite-custom-code-block-6>-->\n    <!--</suite-custom-code-block-6>-->\n    <div class=\"card-body\">\n      <!--<suite-custom-code-block-7>-->\n      <!--</suite-custom-code-block-7>-->\n      <ngx-datatable\n        #assignmentTable\n        default\n        [rows]=\"service.data.items\"\n        [count]=\"service.data.totalCount\"\n        [list]=\"list\"\n        [selected]=\"service.selected()\"\n        [selectionType]=\"service.selectionType.checkbox\"\n        (select)=\"service.onSelect($event)\"\n      >\n        <!--<suite-custom-code-block-8>-->\n        <!--</suite-custom-code-block-8>-->\n\n        <ngx-datatable-column\n          [width]=\"40\"\n          [sortable]=\"false\"\n          [canAutoResize]=\"false\"\n          [draggable]=\"false\"\n          [resizeable]=\"false\"\n        >\n          <ng-template\n            ngx-datatable-header-template\n            let-value=\"value\"\n            let-allRowsSelected=\"allRowsSelected\"\n            let-selectFn=\"selectFn\"\n          >\n            @if (service.data.items.length > 0) {\n              <input\n                type=\"checkbox\"\n                class=\"form-check-input\"\n                [checked]=\"allRowsSelected\"\n                (change)=\"selectFn(!allRowsSelected)\"\n              />\n            }\n          </ng-template>\n          <ng-template\n            ngx-datatable-cell-template\n            let-value=\"value\"\n            let-isSelected=\"isSelected\"\n            let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n          >\n            <input\n              class=\"form-check-input\"\n              type=\"checkbox\"\n              [checked]=\"isSelected\"\n              (change)=\"onCheckboxChangeFn($event)\"\n            />\n          </ng-template>\n        </ngx-datatable-column>\n\n        <!-- Row Detail Template -->\n        <ngx-datatable-row-detail rowHeight=\"100%\">\n          <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-row-detail-template>\n            <ul id=\"assignment-nav-tabs mb-0\" ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\n              <li\n                *abpPermission=\"'LearningManagement.AssignmentSubmissions'\"\n                id=\"assignment-submission-informations\"\n                ngbNavItem\n              >\n                <a ngbNavLink>{{ 'LearningManagement::AssignmentSubmission' | abpLocalization }}</a>\n\n                <ng-template ngbNavContent>\n                  <lib-assignment-submission [assignmentId]=\"row.assignment.id\" />\n                </ng-template>\n              </li>\n            </ul>\n\n            <div [ngbNavOutlet]=\"nav\" class=\"m-0 fade-in-top\"></div>\n          </ng-template>\n        </ngx-datatable-row-detail>\n        @if (isChildEntitiesPermitted) {\n          <ngx-datatable-column\n            [width]=\"50\"\n            [resizeable]=\"false\"\n            [sortable]=\"false\"\n            [draggable]=\"false\"\n            [canAutoResize]=\"false\"\n          >\n            <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-cell-template>\n              <a\n                href=\"javascript:void(0)\"\n                class=\"ngx-datatable-toggle text-decoration-none text-muted fa\"\n                [class.fa-angle-down]=\"!expanded\"\n                [class.fa-angle-up]=\"expanded\"\n                title=\"Expand/Collapse Row\"\n                (click)=\"toggleExpandRow(row)\"\n              >\n              </a>\n            </ng-template>\n          </ngx-datatable-column>\n        }\n\n        @if (isActionButtonVisible) {\n          <ngx-datatable-column\n            [name]=\"'AbpUi::Actions' | abpLocalization\"\n            [maxWidth]=\"150\"\n            [width]=\"150\"\n            [sortable]=\"false\"\n          >\n            <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n              <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n                <button\n                  class=\"btn btn-primary btn-sm dropdown-toggle\"\n                  data-toggle=\"dropdown\"\n                  aria-haspopup=\"true\"\n                  ngbDropdownToggle\n                >\n                  <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\n                  {{ 'AbpUi::Actions' | abpLocalization }}\n                </button>\n\n                <div ngbDropdownMenu>\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'LearningManagement.Assignments.Edit'\"\n                    (click)=\"update(row)\"\n                  >\n                    {{ 'AbpUi::Edit' | abpLocalization }}\n                  </button>\n\n                  <button\n                    ngbDropdownItem\n                    *abpPermission=\"'LearningManagement.Assignments.Delete'\"\n                    (click)=\"delete(row)\"\n                  >\n                    {{ 'AbpUi::Delete' | abpLocalization }}\n                  </button>\n                </div>\n              </div>\n            </ng-template>\n          </ngx-datatable-column>\n        }\n        <ngx-datatable-column\n          name=\"{{ 'LearningManagement::Title' | abpLocalization }}\"\n          prop=\"assignment.title\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.assignment.title }}\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'LearningManagement::DueDate' | abpLocalization }}\"\n          prop=\"assignment.dueDate\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.assignment.dueDate | abpUtcToLocal: 'date' }}\n            <span  *ngIf=\"isOverdue(row.assignment.dueDate)\"\n  class=\"badge bg-danger\"\n  ngbTooltip=\"Key Indicator: Task is overdue\">\n      <i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"></i> Overdue\n    </span>\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-column\n          name=\"{{ 'LearningManagement::Course' | abpLocalization }}\"\n          prop=\"course.courseName\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            {{ row.course?.courseName }}\n          </ng-template>\n        </ngx-datatable-column>\n        <!--<suite-custom-code-block-9>-->\n        <!--</suite-custom-code-block-9>-->\n      </ngx-datatable>\n      <!--<suite-custom-code-block-10>-->\n      <!--</suite-custom-code-block-10>-->\n    </div>\n  </div>\n \n</abp-page>\n\n\n@defer (when serviceDetail.isVisible) {\n  @if (serviceDetail.isVisible) {\n    <lib-assignment-detail-modal />\n  }\n}\n","import { authGuard, permissionGuard } from '@abp/ng.core';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AssignmentComponent } from './components/assignment.component';\n\nexport const routes: Routes = [\n  {\n    path: '',\n    component: AssignmentComponent,\n    canActivate: [authGuard, permissionGuard],\n  },\n];\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class AssignmentRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { AssignmentComponent } from './components/assignment.component';\nimport { AssignmentRoutingModule } from './assignment-routing.module';\n\n@NgModule({\n  declarations: [],\n  imports: [AssignmentComponent, AssignmentRoutingModule],\n})\nexport class AssignmentModule {}\n\nexport function loadAssignmentModuleAsChild() {\n  return Promise.resolve(AssignmentModule);\n}\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LearningManagementComponent } from './components/learning-management.component';\r\nimport { learningManagementExtensionsResolver } from './resolvers';\r\nimport { loadCourseModuleAsChild } from './courses/course/course.module';\r\nimport { loadAssignmentModuleAsChild } from './assignments/assignment/assignment.module';\r\n\r\nconst routes: Routes = [\r\n  {\r\n    path: '',\r\n    pathMatch: 'full',\r\n    component: LearningManagementComponent,\r\n    resolve: [learningManagementExtensionsResolver],\r\n  },\r\n  { path: 'courses', loadChildren: loadCourseModuleAsChild },\r\n  { path: 'assignments', loadChildren: loadAssignmentModuleAsChild },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule],\r\n})\r\nexport class LearningManagementRoutingModule {}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CoreModule, LazyModuleFactory } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { LearningManagementComponent } from './components/learning-management.component';\r\nimport { LearningManagementRoutingModule } from './learning-management-routing.module';\r\nimport { LearningManagementConfigOptions } from './models/config-options';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { ExtensibleModule } from '@abp/ng.components/extensible';\r\nimport {\r\n  LEARNING_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n  LEARNING_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n} from './tokens/extensions.token';\r\n\r\n@NgModule({\r\n  declarations: [LearningManagementComponent],\r\n  imports: [\r\n    CoreModule,\r\n    ThemeSharedModule,\r\n    LearningManagementRoutingModule,\r\n    PageModule,\r\n    ExtensibleModule,\r\n  ],\r\n  exports: [LearningManagementComponent],\r\n})\r\nexport class LearningManagementModule {\r\n  static forChild(\r\n    options: LearningManagementConfigOptions = {}\r\n  ): ModuleWithProviders<LearningManagementModule> {\r\n    return {\r\n      ngModule: LearningManagementModule,\r\n      providers: [\r\n        {\r\n          provide: LEARNING_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,\r\n          useValue: options.entityActionContributors,\r\n        },\r\n        {\r\n          provide: LEARNING_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,\r\n          useValue: options.toolbarActionContributors,\r\n        },\r\n      ],\r\n    };\r\n  }\r\n\r\n  static forLazy(options?: LearningManagementConfigOptions): LazyModuleFactory<LearningManagementModule> {\r\n    return new LazyModuleFactory(LearningManagementModule.forChild(options));\r\n  }\r\n}\r\n","/*\n * Public API Surface of learning-management\n */\n\nexport * from './lib/components/learning-management.component';\nexport * from './lib/services/learning-management.service';\nexport * from './lib/learning-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5","tap","i2","i3","ChildTabDependencies","ChildComponentDependencies","i4","i8","i9.EnrollmentComponent","i10.CourseModuleComponent","routes","i6","i7","i10.AssignmentSubmissionComponent"],"mappings":"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"}