@rolatech/angular-course 19.0.0-beta.9 → 19.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{rolatech-angular-course-course-category-index.component-D5HIrVD-.mjs → rolatech-angular-course-course-category-index.component-DnDVtQf2.mjs} +4 -4
- package/fesm2022/rolatech-angular-course-course-category-index.component-DnDVtQf2.mjs.map +1 -0
- package/fesm2022/{rolatech-angular-course-course-index.component-Ds-a9GF7.mjs → rolatech-angular-course-course-index.component-VJOHMAD9.mjs} +4 -4
- package/fesm2022/rolatech-angular-course-course-index.component-VJOHMAD9.mjs.map +1 -0
- package/fesm2022/rolatech-angular-course.mjs +311 -216
- package/fesm2022/rolatech-angular-course.mjs.map +1 -1
- package/index.d.ts +628 -8
- package/package.json +7 -7
- package/themes/_default.scss +1 -1
- package/fesm2022/rolatech-angular-course-course-category-index.component-D5HIrVD-.mjs.map +0 -1
- package/fesm2022/rolatech-angular-course-course-index.component-Ds-a9GF7.mjs.map +0 -1
- package/lib/components/course-action/course-action.component.d.ts +0 -14
- package/lib/components/course-details/course-details.component.d.ts +0 -20
- package/lib/components/course-details-dialog/course-details-dialog.component.d.ts +0 -23
- package/lib/components/course-edit-dialog/course-edit-dialog.component.d.ts +0 -51
- package/lib/components/course-info/course-info.component.d.ts +0 -10
- package/lib/components/course-media/course-media.component.d.ts +0 -12
- package/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.d.ts +0 -8
- package/lib/components/course-preview/course-preview.component.d.ts +0 -5
- package/lib/components/course-pricing/course-pricing.component.d.ts +0 -7
- package/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.d.ts +0 -10
- package/lib/components/course-pricing-dialog/course-pricing-dialog.component.d.ts +0 -19
- package/lib/components/course-schedule/course-schedule.component.d.ts +0 -10
- package/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.d.ts +0 -10
- package/lib/components/course-schedule-dialog/course-schedule-dialog.component.d.ts +0 -14
- package/lib/components/course-section-item/course-section-item.component.d.ts +0 -24
- package/lib/components/course-section-lecture-item/course-section-lecture-item.component.d.ts +0 -40
- package/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.d.ts +0 -29
- package/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.d.ts +0 -5
- package/lib/components/course-sections/course-sections.component.d.ts +0 -18
- package/lib/components/detail-item/detail-item.component.d.ts +0 -31
- package/lib/components/index.d.ts +0 -22
- package/lib/components/pricing-item/pricing-item.component.d.ts +0 -16
- package/lib/components/schedule-item/schedule-item.component.d.ts +0 -33
- package/lib/interfaces/category.d.ts +0 -17
- package/lib/interfaces/course.d.ts +0 -143
- package/lib/interfaces/index.d.ts +0 -3
- package/lib/interfaces/media.d.ts +0 -9
- package/lib/pages/course/course-category/course-category.component.d.ts +0 -27
- package/lib/pages/course/course-category-index/course-category-index.component.d.ts +0 -22
- package/lib/pages/course/course-category-layout/course-category-layout.component.d.ts +0 -17
- package/lib/pages/course/course-category.routes.d.ts +0 -2
- package/lib/pages/course/course-detail/course-detail.component.d.ts +0 -43
- package/lib/pages/course/course-index/course-index.component.d.ts +0 -18
- package/lib/pages/course/course-layout/course-layout.component.d.ts +0 -17
- package/lib/pages/course/course-section-content/course-section-content.component.d.ts +0 -41
- package/lib/pages/course/course.routes.d.ts +0 -2
- package/lib/pages/course-manage/course-manage-application/course-manage-application.component.d.ts +0 -32
- package/lib/pages/course-manage/course-manage-application-detail/course-manage-application-detail.component.d.ts +0 -5
- package/lib/pages/course-manage/course-manage-content/course-manage-content.component.d.ts +0 -5
- package/lib/pages/course-manage/course-manage-create/course-manage-create.component.d.ts +0 -37
- package/lib/pages/course-manage/course-manage-details/course-manage-details.component.d.ts +0 -29
- package/lib/pages/course-manage/course-manage-index/course-manage-index.component.d.ts +0 -43
- package/lib/pages/course-manage/course-manage-info/course-manage-info.component.d.ts +0 -42
- package/lib/pages/course-manage/course-manage-layout/course-manage-layout.component.d.ts +0 -19
- package/lib/pages/course-manage/course-manage-media/course-manage-media.component.d.ts +0 -29
- package/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.d.ts +0 -20
- package/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.d.ts +0 -20
- package/lib/pages/course-manage/course-manage-section/course-manage-section.component.d.ts +0 -37
- package/lib/pages/course-manage/course-manage.routes.d.ts +0 -2
- package/lib/services/booking.service.d.ts +0 -9
- package/lib/services/category.service.d.ts +0 -12
- package/lib/services/course-section.service.d.ts +0 -10
- package/lib/services/course.service.d.ts +0 -65
- package/lib/services/index.d.ts +0 -5
- package/lib/services/instructor.service.d.ts +0 -25
- package/provider.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-course.mjs","sources":["../../../../packages/angular-course/src/lib/interfaces/course.ts","../../../../packages/angular-course/src/lib/services/course.service.ts","../../../../packages/angular-course/src/lib/services/course-section.service.ts","../../../../packages/angular-course/src/lib/services/category.service.ts","../../../../packages/angular-course/src/lib/services/index.ts","../../../../packages/angular-course/src/provider.ts","../../../../packages/angular-course/src/lib/components/course-preview/course-preview.component.ts","../../../../packages/angular-course/src/lib/components/course-preview/course-preview.component.html","../../../../packages/angular-course/src/lib/components/course-info/course-info.component.ts","../../../../packages/angular-course/src/lib/components/course-info/course-info.component.html","../../../../packages/angular-course/src/lib/components/course-media/course-media.component.ts","../../../../packages/angular-course/src/lib/components/course-media/course-media.component.html","../../../../packages/angular-course/src/lib/components/course-pricing/course-pricing.component.ts","../../../../packages/angular-course/src/lib/components/course-pricing/course-pricing.component.html","../../../../packages/angular-course/src/lib/components/course-action/course-action.component.ts","../../../../packages/angular-course/src/lib/components/course-action/course-action.component.html","../../../../packages/angular-course/src/lib/components/course-schedule/course-schedule.component.ts","../../../../packages/angular-course/src/lib/components/course-schedule/course-schedule.component.html","../../../../packages/angular-course/src/lib/components/course-sections/course-sections.component.ts","../../../../packages/angular-course/src/lib/components/course-sections/course-sections.component.html","../../../../packages/angular-course/src/lib/components/course-section-item/course-section-item.component.ts","../../../../packages/angular-course/src/lib/components/course-section-item/course-section-item.component.html","../../../../packages/angular-course/src/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.html","../../../../packages/angular-course/src/lib/components/course-section-lecture-item/course-section-lecture-item.component.ts","../../../../packages/angular-course/src/lib/components/course-section-lecture-item/course-section-lecture-item.component.html","../../../../packages/angular-course/src/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.ts","../../../../packages/angular-course/src/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.html","../../../../packages/angular-course/src/lib/components/pricing-item/pricing-item.component.ts","../../../../packages/angular-course/src/lib/components/pricing-item/pricing-item.component.html","../../../../packages/angular-course/src/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.html","../../../../packages/angular-course/src/lib/components/schedule-item/schedule-item.component.ts","../../../../packages/angular-course/src/lib/components/schedule-item/schedule-item.component.html","../../../../packages/angular-course/src/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.html","../../../../packages/angular-course/src/lib/components/course-pricing-dialog/course-pricing-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-pricing-dialog/course-pricing-dialog.component.html","../../../../packages/angular-course/src/lib/components/course-schedule-dialog/course-schedule-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-schedule-dialog/course-schedule-dialog.component.html","../../../../packages/angular-course/src/lib/components/detail-item/detail-item.component.ts","../../../../packages/angular-course/src/lib/components/detail-item/detail-item.component.html","../../../../packages/angular-course/src/lib/components/course-details-dialog/course-details-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-details-dialog/course-details-dialog.component.html","../../../../packages/angular-course/src/lib/components/course-edit-dialog/course-edit-dialog.component.ts","../../../../packages/angular-course/src/lib/components/course-edit-dialog/course-edit-dialog.component.html","../../../../packages/angular-course/src/lib/components/course-details/course-details.component.ts","../../../../packages/angular-course/src/lib/components/course-details/course-details.component.html","../../../../packages/angular-course/src/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.ts","../../../../packages/angular-course/src/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.html","../../../../packages/angular-course/src/lib/pages/course/course-detail/course-detail.component.ts","../../../../packages/angular-course/src/lib/pages/course/course-detail/course-detail.component.html","../../../../packages/angular-course/src/lib/pages/course/course-layout/course-layout.component.ts","../../../../packages/angular-course/src/lib/pages/course/course-layout/course-layout.component.html","../../../../packages/angular-course/src/lib/pages/course/course-section-content/course-section-content.component.ts","../../../../packages/angular-course/src/lib/pages/course/course-section-content/course-section-content.component.html","../../../../packages/angular-course/src/lib/pages/course/course.routes.ts","../../../../packages/angular-course/src/lib/pages/course/course-category/course-category.component.ts","../../../../packages/angular-course/src/lib/pages/course/course-category/course-category.component.html","../../../../packages/angular-course/src/lib/pages/course/course-category-layout/course-category-layout.component.ts","../../../../packages/angular-course/src/lib/pages/course/course-category-layout/course-category-layout.component.html","../../../../packages/angular-course/src/lib/pages/course/course-category.routes.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-content/course-manage-content.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-content/course-manage-content.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-details/course-manage-details.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-details/course-manage-details.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.html","../../../../packages/angular-course/src/lib/services/booking.service.ts","../../../../packages/angular-course/src/lib/services/instructor.service.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-info/course-manage-info.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-info/course-manage-info.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-media/course-manage-media.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-media/course-manage-media.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-section/course-manage-section.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-section/course-manage-section.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-layout/course-manage-layout.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-layout/course-manage-layout.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-index/course-manage-index.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-index/course-manage-index.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-create/course-manage-create.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-create/course-manage-create.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-application/course-manage-application.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-application/course-manage-application.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-application-detail/course-manage-application-detail.component.ts","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage-application-detail/course-manage-application-detail.component.html","../../../../packages/angular-course/src/lib/pages/course-manage/course-manage.routes.ts","../../../../packages/angular-course/src/index.ts","../../../../packages/angular-course/src/rolatech-angular-course.ts"],"sourcesContent":["import { CourseCategory } from './category';\nimport { Media } from './media';\n\nexport interface Course {\n id: string;\n name: string;\n description: string;\n categories: CourseCategory[];\n createdAt: string;\n updatedAt: string;\n status: CourseStatus | string;\n media: Media[];\n type: CourseType;\n instructorId: string;\n classroom: CourseClassroom;\n details: CourseDetail[];\n pricing: CoursePricing[];\n schedule: CourseSchedule[];\n}\nexport interface CoursePricing {\n id: string;\n min: number;\n max: number;\n total: number;\n}\nexport interface CourseSchedule {\n id: string;\n title: string;\n content: string;\n startDate: string;\n startTime: string;\n startAt: string;\n endDate: string;\n endTime: string;\n endAt: string;\n}\nexport interface CourseClassroom {\n id: string;\n name: string;\n contact: string;\n phone: string;\n province: string;\n city: string;\n county: string;\n town: string;\n address: string;\n detail: string;\n latitude: string;\n longitude: string;\n media: Media[];\n isUploading?: boolean;\n room?: string;\n}\nexport enum CourseStatus {\n ACTIVE = <any>'已发布',\n ACCEPTED = <any>'已通过',\n AWAITING = <any>'审核中',\n PENDING = <any>'审核中',\n STARTED = <any>'已开始',\n ENDED = <any>'已完成',\n DELETED = <any>'已删除',\n DRAFT = <any>'草稿',\n}\nexport enum CourseRequestStatus {\n AWAITING = '审核中',\n ACTIVE = '已通过',\n REJECTED = '已拒绝',\n}\nexport interface CourseReviewRecord {\n content: string;\n status: CourseReviewStatus;\n course: Course;\n createdAt: string;\n updatedAt: string;\n}\nexport enum CourseReviewStatus {\n ACCEPTED = '已通过',\n REJECTED = '未通过',\n}\nexport interface CourseDetail {\n id: string;\n title: string;\n description: string;\n content: string;\n media: Media[];\n isUploading?: boolean;\n}\nexport interface CourseSection {\n id?: string;\n title: string;\n description: string;\n lectures: CourseSectionLecture[];\n}\nexport interface CourseSectionLecture {\n id?: string;\n title: string;\n description: string;\n type: CourseSectionLectureContentType | string;\n item: CourseSectionLectureVideo;\n isUploading?: boolean;\n progress?: number | 0;\n}\nexport interface CourseSectionLectureItem {\n id: string;\n}\nexport enum CourseSectionLectureContentType {\n VIDEO = <any>'视频',\n ARTICLE = <any>'文章',\n}\nexport interface CourseSectionLectureVideo {\n id?: string;\n url: string;\n thumbnail: string;\n duration: number;\n isUploading?: boolean;\n progress: number | 0;\n canBePreviewed: boolean;\n}\nexport interface CourseSectionLectureVideoMetadata {\n duration: string;\n}\n\nexport interface Schedule {\n id?: string;\n title: string;\n content: string;\n startDate?: string;\n startTime?: string;\n startAt: string;\n endDate?: string;\n endTime?: string;\n endAt: string;\n}\nexport interface Pricing {\n id?: string;\n min: number;\n max: number;\n total: number;\n}\n// export const CourseType = [\n// {\n// key: 'ONLINE',\n// value: '线上',\n// },\n// {\n// key: 'OFFLINE',\n// value: '线下',\n// },\n// {\n// key: 'MIXED',\n// value: '混合',\n// },\n// ];\nexport enum CourseType {\n ONLINE = <any>'线上',\n OFFLINE = <any>'线下',\n MIXED = <any>'混合',\n}\nexport const ScheduleDate = [\n '00:00',\n '00:15',\n '00:30',\n '00:45',\n\n '01:00',\n '01:15',\n '01:30',\n '01:45',\n\n '02:00',\n '02:15',\n '02:30',\n '02:45',\n '03:00',\n '03:15',\n '03:30',\n '03:45',\n\n '04:00',\n '04:15',\n '04:30',\n '04:45',\n '05:00',\n '05:15',\n '05:30',\n '05:45',\n\n '06:00',\n '06:15',\n '06:30',\n '06:45',\n '07:00',\n '07:15',\n '07:30',\n '07:45',\n\n '08:00',\n '08:15',\n '08:30',\n '08:45',\n '09:00',\n '09:15',\n '09:30',\n '09:45',\n\n '10:00',\n '10:15',\n '10:30',\n '10:45',\n '11:00',\n '11:15',\n '11:30',\n '11:45',\n\n '12:00',\n '12:15',\n '12:30',\n '12:45',\n '13:00',\n '13:15',\n '13:30',\n '13:45',\n\n '14:00',\n '14:15',\n '14:30',\n '14:45',\n '15:00',\n '15:15',\n '15:30',\n '15:45',\n\n '16:00',\n '16:15',\n '16:30',\n '16:45',\n '17:00',\n '17:15',\n '17:30',\n '17:45',\n\n '18:00',\n '18:15',\n '18:30',\n '18:45',\n '19:00',\n '19:15',\n '19:30',\n '19:45',\n\n '20:00',\n '20:15',\n '20:30',\n '20:45',\n '21:00',\n '21:15',\n '21:30',\n '21:45',\n\n '22:00',\n '22:15',\n '22:30',\n '22:45',\n '23:00',\n '23:15',\n '23:30',\n '23:45',\n];\n","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport { Observable, of, map } from 'rxjs';\n@Injectable({\n providedIn: 'root',\n})\nexport class CourseService extends BaseService {\n override init() {\n this.endpoint = 'courses';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n\n findSchedule(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/schedule`, {\n withCredentials: true,\n });\n }\n findPricing(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/pricing`, {\n withCredentials: true,\n });\n }\n addDetail(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details`, data, {\n withCredentials: true,\n });\n }\n addBatchDetails(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details/batch`, data, {\n withCredentials: true,\n });\n }\n findDetails(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/details`, {\n withCredentials: true,\n });\n }\n updateDetail(id: string, detailId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/details/${detailId}`, data, {\n withCredentials: true,\n });\n }\n deleteDetail(id: string, detailId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/details/${detailId}`, {\n withCredentials: true,\n });\n }\n uploadDetailMedia(id: string, detailId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteDetailMedia(id: string, detailId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n review(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n start(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/start`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n finish(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/finish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n publish(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/upload`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n findAllRequests(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/requests`, {\n params: options,\n withCredentials: true,\n });\n }\n findRequestDetail(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/requests/${id}`, {\n withCredentials: true,\n });\n }\n accept(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reject(id: string, body: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n acceptRequest(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/requests/${id}/reviews/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectRequest(id: string, body: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/requests/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n addPricing(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(id: string, pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(id: string, pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n addSchedule(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/schedule`, data, {\n withCredentials: true,\n });\n }\n updateSchedule(id: string, scheduleId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/schedule/${scheduleId}`, data, {\n withCredentials: true,\n });\n }\n deleteSchedule(id: string, scheduleId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/schedule/${scheduleId}`, {\n withCredentials: true,\n });\n }\n findAllReviews(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/reviews`, {\n params: options,\n withCredentials: true,\n });\n }\n getReview(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/reviews/${id}`, {\n withCredentials: true,\n });\n }\n findReviews(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/reviews/me`, {\n params: options,\n withCredentials: true,\n });\n }\n countUsers(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/users/count/by`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: { ids },\n withCredentials: true,\n });\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(courseId: string) {\n return this.http.post(`${this.actionUrl}/${courseId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(courseId: string) {\n return this.http.delete(`${this.actionUrl}/${courseId}/wishlist`, { withCredentials: true });\n }\n findWishlistBy(courseId: string) {\n return this.http.get(`${this.actionUrl}/${courseId}/wishlist/by`, { withCredentials: true });\n }\n findMyCourses(options: any) {\n return this.http.get(`${this.actionUrl}/users`, { params: options, withCredentials: true });\n }\n findPurchasedByCourseId(courseId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?courseId=${courseId}`, {\n withCredentials: true,\n });\n }\n deleteFromWishlist(sectionId: string) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, { withCredentials: true });\n }\n\n // Course sections\n findCourseSections(options: any) {\n return this.http.get(`${this.actionUrl}/sections`, { params: options, withCredentials: false });\n }\n addCourseSection(courseId: any, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/${courseId}/sections`, data, { withCredentials: true });\n }\n updateCourseSection(sectionId: any, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, { withCredentials: true });\n }\n deleteCourseSection(sectionId: any): Observable<any> {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, { withCredentials: true });\n }\n getCourseSection(courseId: any): Observable<any> {\n return this.http.get(`${this.actionUrl}/${courseId}/sections`, { withCredentials: false });\n }\n addLecture(sectionId: string, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/lectures`, data, { withCredentials: true });\n }\n updateLecture(lectureId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/sections/lectures/${lectureId}`, data, { withCredentials: true });\n }\n deleteLecture(lectureId: any): Observable<any> {\n return this.http.delete(`${this.actionUrl}/sections/lectures/${lectureId}`, { withCredentials: true });\n }\n uploadVideoInit(lectureId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/lectures/${lectureId}/videos/init`, data, {\n withCredentials: true,\n });\n }\n uploadVideoPartsToLecture(lectureId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/lectures/${lectureId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n completePartUpload(lectureId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/lectures/${lectureId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n uploadVideoToLecture(lectureId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/lectures/${lectureId}/videos`, data, {\n withCredentials: true,\n });\n }\n deleteLectureVideo(videoId: any): Observable<any> {\n return this.http.delete(`${this.actionUrl}/sections/lectures/videos/${videoId}`, { withCredentials: true });\n }\n uploadLectureVideoThumbnail(videoId: any, data: FormData): Observable<any> {\n return this.http.post(`${this.actionUrl}/sections/lectures/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CourseSectionService extends BaseService {\n override init() {\n this.endpoint = 'courses';\n super.init();\n }\n findSections(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/sections`);\n }\n canBePreviewed(videoId: any, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/sections/lectures/videos/${videoId}/preview`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from '@rolatech/angular-services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CategoryService extends BaseService {\n override init() {\n this.endpoint = 'categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n}\n","import { CourseService } from './course.service';\nimport { CourseSectionService } from './course-section.service';\nimport { CategoryService } from './category.service';\nexport { CourseService, CourseSectionService, CategoryService };\nexport const services: any[] = [CourseService, CourseSectionService, CategoryService];\n","import { EnvironmentProviders, Provider, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport * as fromServices from './lib/services';\n\nexport function provideAngularCourse(): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n ...fromServices.services,\n importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-course-preview',\n imports: [],\n templateUrl: './course-preview.component.html',\n styleUrls: ['./course-preview.component.scss'],\n})\nexport class CoursePreviewComponent {}\n","<p>course-preview works!</p>\n","import { Component, Signal, computed, effect, input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Course } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-info',\n templateUrl: './course-info.component.html',\n styleUrls: ['./course-info.component.scss'],\n imports: [MatIconModule, RouterModule],\n})\nexport class CourseInfoComponent {\n course = input.required<Course>();\n instructor = input<string>();\n username = input<string>();\n dataToDisplay = effect(() => {\n return this.course();\n });\n}\n","<div>\n <div>\n <div class=\"text-2xl font-medium\">{{ course().name }}</div>\n @if (course().type && course().type.toString() !== 'ONLINE') {\n <div class=\"flex items-center pt-2\">\n <mat-icon>place</mat-icon>\n <span class=\"text-sm opacity-75\">{{ course().classroom.address }}</span>\n </div>\n }\n <div class=\"py-3 flex justify-between\">\n <div>\n <div class=\"mb-1 flex items-center\">\n <span class=\"font-medium\">创作者: </span>\n <a class=\"ml-2 underline text-[--rt-brand-color] text-[0.9rem]\" [routerLink]=\"['/@' + username()]\">{{\n instructor()\n }}</a>\n </div>\n <span class=\"text-sm opacity-75\">最后编辑: {{ course().updatedAt }} </span>\n </div>\n </div>\n </div>\n <!-- 描述 -->\n <div class=\"mb-3\">\n {{ course().description }}\n </div>\n</div>\n","import { Component, inject, input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgClass } from '@angular/common';\nimport { ImagePreviewDialogComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { Media } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-media',\n templateUrl: './course-media.component.html',\n styleUrls: ['./course-media.component.scss'],\n imports: [NgClass, ThumbnailComponent],\n})\nexport class CourseMediaComponent {\n dialog = inject(MatDialog);\n media = input<Media[]>([]);\n min = input<boolean>(false);\n mediaIndex = 0;\n onImageClick(i: any) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {});\n }\n}\n","@if (media()) {\n @if (min()) {\n <div class=\"md:w-80 object-cover aspect-video bg-[--rt-10-percent-layer] rounded-lg\">\n @if (media()) {\n <rolatech-thumbnail [src]=\"media()[0].url\" size=\"small\"></rolatech-thumbnail>\n }\n </div>\n } @else {\n <div>\n <div class=\"object-cover aspect-video bg-[--rt-10-percent-layer]\">\n <rolatech-thumbnail [src]=\"media()[mediaIndex].url\" size=\"small\"></rolatech-thumbnail>\n </div>\n @for (item of media(); track $index) {\n <div\n class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\"\n (click)=\"mediaIndex = $index\"\n [ngClass]=\"mediaIndex === $index ? '' : 'opacity-30'\"\n >\n <rolatech-thumbnail [src]=\"item.url\" size=\"small\"></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n}\n","import { Component, input } from '@angular/core';\nimport { CoursePricing } from '../../interfaces';\nimport { FixedPipe } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-course-pricing',\n templateUrl: './course-pricing.component.html',\n styleUrls: ['./course-pricing.component.scss'],\n imports: [FixedPipe],\n})\nexport class CoursePricingComponent {\n pricing = input<CoursePricing[]>([]);\n}\n","@if (pricing()) {\n <div class=\"py-3\">\n <div class=\"text-lg font-medium py-2\">价格</div>\n @for (item of pricing(); track $index) {\n <div>\n <span>{{ item.min }} 至 {{ item.max }}人</span>\n <span class=\"ml-3\">{{ item.total | fixed }}元</span>\n </div>\n }\n </div>\n}\n","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Course } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-action',\n templateUrl: './course-action.component.html',\n styleUrls: ['./course-action.component.scss'],\n imports: [MatButtonModule],\n})\nexport class CourseActionComponent {\n course = input.required<Course>();\n inWishList = input<boolean>(false);\n\n cart = output<Course>();\n wish = output<Course>();\n checkout = output<Course>();\n\n onCart(course: Course) {\n this.cart.emit(course);\n }\n onWish(course: Course) {\n this.wish.emit(course);\n }\n onCheckout(course: Course) {\n this.checkout.emit(course);\n }\n}\n","<div class=\"flex flex-col\">\n <!-- <a class=\"p-3 bg-[--rt-brand-color] text-center mt-3\" target=\"_blank\" (click)=\"onCart(course)\">加入购物车</a> -->\n <a mat-flat-button class=\"mt-3 min-h-11\" target=\"_blank\" (click)=\"onCheckout(course())\">立即购买</a>\n <a mat-stroked-button class=\"mt-3 min-h-11\" target=\"_blank\" (click)=\"onWish(course())\">{{\n inWishList() ? '移除收藏' : '加入收藏'\n }}</a>\n</div>\n","import { Component, OnInit, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CourseSchedule } from '../../interfaces';\nimport { AccordionComponent, PanelComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-course-schedule',\n templateUrl: './course-schedule.component.html',\n styleUrls: ['./course-schedule.component.scss'],\n imports: [MatIconModule, AccordionComponent, PanelComponent],\n})\nexport class CourseScheduleComponent implements OnInit {\n schedule = input<CourseSchedule[]>([]);\n\n ngOnInit(): void {\n // this.formatSchedule();\n }\n formatSchedule() {}\n}\n","@if (schedule()) {\n <div class=\"py-3\" id=\"schedule\">\n <div class=\"text-xl font-medium py-2\">课表</div>\n <rolatech-accordion>\n @for (item of schedule(); track $index) {\n <rolatech-panel [title]=\"item.title\" [expanded]=\"$index === 0\">\n <div>\n <div class=\"text-[--rt-text-secondary]pt-2 text-sm\">\n <span>{{ item.startAt }} - {{ item.endAt }}</span>\n </div>\n <div class=\"py-3\">\n <div>{{ item.content }}</div>\n </div>\n </div>\n </rolatech-panel>\n }\n </rolatech-accordion>\n </div>\n}\n","import { Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { DurationPipe } from '@rolatech/angular-common';\nimport { CourseSection, CourseSectionLecture } from '../../interfaces';\nimport { AccordionComponent, PanelComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-course-sections',\n templateUrl: './course-sections.component.html',\n styleUrls: ['./course-sections.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [MatIconModule, DurationPipe, MatCheckboxModule, AccordionComponent, PanelComponent],\n})\nexport class CourseSectionsComponent {\n purchased = input<boolean>(false);\n sections = input<CourseSection[]>([]);\n section = output<{ section: CourseSection; lecture: CourseSectionLecture }>();\n checkout = output<{ section: CourseSection; lecture: CourseSectionLecture }>();\n onSection(section: CourseSection, lecture: CourseSectionLecture) {\n this.section.emit({ section, lecture });\n }\n onCheckout(section: CourseSection, lecture: CourseSectionLecture) {\n this.checkout.emit({ section, lecture });\n }\n}\n","@if (sections()) {\n <div id=\"sections()\">\n <div class=\"text-2xl font-medium py-3 lg:pt-0\">课程内容</div>\n <rolatech-accordion>\n @for (item of sections(); track $index) {\n <rolatech-panel [expanded]=\"$index === 0\" [title]=\"item.title\">\n @for (lecture of item.lectures; track $index) {\n <div class=\"flex items-center justify-between py-1\">\n @if (lecture.item && lecture.type === 'VIDEO') {\n <div class=\"flex items-center gap-3\">\n <mat-icon>live_tv</mat-icon>\n <span class=\"text-md\"> {{ lecture.title }}</span>\n </div>\n <div>\n @if (purchased()) {\n <a\n class=\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\"\n (click)=\"onSection(item, lecture)\"\n >播放</a\n >\n } @else {\n @if (lecture.item.canBePreviewed) {\n <a\n class=\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\"\n (click)=\"onSection(item, lecture)\"\n >试看</a\n >\n } @else {\n <a\n class=\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\"\n (click)=\"onCheckout(item, lecture)\"\n >购买</a\n >\n }\n }\n\n <a class=\"text-[--rt-text-secondary] inline-block w-[60px] text-right\">{{\n lecture.item.duration | duration\n }}</a>\n </div>\n }\n </div>\n }\n </rolatech-panel>\n }\n </rolatech-accordion>\n </div>\n}\n","import { Component, OnInit, input, model, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { InputComponent } from '@rolatech/angular-components';\nimport { CourseSection } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-section-item',\n templateUrl: './course-section-item.component.html',\n styleUrls: ['./course-section-item.component.scss'],\n imports: [MatIconModule, FormsModule, MatButtonModule, InputComponent],\n})\nexport class CourseSectionItemComponent implements OnInit {\n section = model.required<CourseSection>();\n actions = model<boolean>();\n hasUnsaved = model<boolean[]>();\n editId = model<any>();\n save = output<CourseSection>();\n cancel = output<CourseSection>();\n delete = output<CourseSection>();\n edit = output<CourseSection>();\n addLecture = output<CourseSection>();\n editing = false;\n isExpand = false;\n\n ngOnInit(): void {}\n\n onSave(section: CourseSection) {\n this.editing = false;\n this.editId.set(null);\n this.save.emit(section);\n }\n onCancel(section: CourseSection) {\n this.editing = false;\n this.editId.set(null);\n this.cancel.emit(section);\n }\n onDelete(section: CourseSection) {\n this.delete.emit(section);\n }\n onEdit(section: CourseSection) {\n this.editId.set(null);\n this.editing = true;\n this.edit.emit(section);\n }\n onAddLecture(section: CourseSection) {\n this.addLecture.emit(section);\n }\n}\n","<div class=\"flex flex-col grow\">\n @if (section().id !== editId()) {\n <div>\n <div class=\"flex justify-between items-center cursor-pointer\" (click)=\"isExpand = !isExpand\">\n <div class=\"w-full flex items-center gap-3 pl-3\">\n <span>{{ section().title }}</span>\n <button mat-icon-button class=\"max-w-8 max-h-8 !p-1\" (click)=\"onEdit(section()); $event.stopPropagation()\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-icon-button class=\"max-w-8 max-h-8 !p-1\" (click)=\"onDelete(section()); $event.stopPropagation()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n <button mat-icon-button class=\"max-w-8 max-h-8 !p-1\">\n <mat-icon>{{ isExpand ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n </div>\n @if (isExpand) {\n <div>\n <ng-content></ng-content>\n </div>\n }\n </div>\n } @else {\n <div class=\"flex flex-col justify-between items-center\">\n <rolatech-input [(title)]=\"section().title\" placeholder=\"标题\"></rolatech-input>\n <div class=\"w-full flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onCancel(section())\">取消</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(section())\">保存</button>\n </div>\n </div>\n }\n</div>\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, OnInit, PLATFORM_ID, inject, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { isPlatformBrowser } from '@angular/common';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CourseSectionLecture } from '../../interfaces';\nimport { CourseSectionService, CourseService } from '../../services';\ndeclare const DPlayer: any;\n\n@Component({\n selector: 'rolatech-course-section-lecture-video-dialog',\n imports: [MatIconModule, MatDividerModule, FormsModule, MatStepperModule, MatButtonModule, MatCheckboxModule],\n templateUrl: './course-section-lecture-video-dialog.component.html',\n styleUrl: './course-section-lecture-video-dialog.component.scss',\n})\nexport class CourseSectionLectureVideoDialogComponent implements OnInit, AfterViewInit, OnDestroy {\n lecture!: CourseSectionLecture;\n thumbnailUpload = output<any>();\n courseService = inject(CourseService);\n courseSectionService = inject(CourseSectionService);\n\n snackBar = inject(MatSnackBar);\n platformId = inject(PLATFORM_ID);\n el = inject(ElementRef);\n mediaSrc: any;\n player: any;\n\n constructor(\n private dialogRef: MatDialogRef<CourseSectionLectureVideoDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) {\n this.lecture = data.data;\n }\n ngAfterViewInit(): void {\n this.initPlayer(this.lecture.item.url, this.lecture.item.thumbnail);\n }\n close() {\n this.dialogRef.close();\n }\n initPlayer(url: string, thumbnail?: string) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n // 'https://cos-video-1258344699.cos.ap-guangzhou.tencentcos.cn/test.mp4',\n if (!this.player) {\n const playerContainer = this.el.nativeElement.querySelector('#dplayer');\n this.player = new DPlayer({\n container: playerContainer,\n screenshot: true,\n preload: 'metadata',\n video: {\n url: url,\n pic: thumbnail,\n },\n });\n // this.player.on('loadedmetadata', () => {\n // });\n }\n }\n ngOnInit(): void {}\n ngOnDestroy(): void {\n if (this.player) {\n this.player.destroy();\n }\n }\n onThumbnailUpload(event: any) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n this.mediaSrc = reader.result;\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.uploadLectureVideoThumbnail(this.lecture.item.id, formData).subscribe({\n next: (res) => {\n this.lecture.item = res.data;\n this.snackBar.open('上传成功');\n this.player.switchVideo({\n url: this.lecture.item.url,\n pic: res.data.thumbnail,\n });\n },\n });\n };\n reader.onerror = (error) => {};\n }\n }\n onPreviewChange(event: any) {\n this.courseSectionService.canBePreviewed(this.lecture.item.id, { canBePreviewed: event.checked }).subscribe({\n next: (res) => {\n this.lecture.item.canBePreviewed = res.data.canBePreviewed;\n // this.lecture = res.data;\n },\n });\n }\n}\n","<div class=\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\">\n <div class=\"w-full md:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> 封面 </span>\n <span class=\"text-sm\">一个好的封面可以引起更多的关注</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">上传封面</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" alt />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" alt />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> 试看内容 </span>\n <span class=\"text-sm\">少量的试看内容, 可以增加购买率</span>\n </div>\n <mat-checkbox (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\">允许试看</mat-checkbox>\n </div>\n </div>\n <div class=\"w-full md:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video md:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n","import { Component, ElementRef, OnInit, PLATFORM_ID, inject, input, model, output, viewChild } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularComponentsModule, InputComponent } from '@rolatech/angular-components';\nimport { AngularCommonModule, DurationPipe } from '@rolatech/angular-common';\nimport { DialogService } from '@rolatech/angular-services';\nimport { CourseSectionLecture, CourseSectionLectureVideo } from '../../interfaces';\nimport { CourseSectionLectureVideoDialogComponent } from '../course-section-lecture-video-dialog/course-section-lecture-video-dialog.component';\nimport { CourseSectionLectureItem } from '../../interfaces/course';\n\n@Component({\n selector: 'rolatech-course-section-lecture-item',\n templateUrl: './course-section-lecture-item.component.html',\n styleUrls: ['./course-section-lecture-item.component.scss'],\n imports: [\n MatIconModule,\n AngularCommonModule,\n FormsModule,\n MatButtonModule,\n MatDividerModule,\n AngularComponentsModule,\n DurationPipe,\n InputComponent,\n ],\n})\nexport class CourseSectionLectureItemComponent implements OnInit {\n platformId = inject(PLATFORM_ID);\n el = inject(ElementRef);\n dialogService = inject(DialogService);\n myVideo = viewChild('video');\n progress = input<number>(0);\n lecture = input.required<CourseSectionLecture>();\n actions = input<boolean>(true);\n hasUnsaved = input<boolean>(false);\n editId = model<any>();\n\n save = output<CourseSectionLecture>();\n cancel = output<CourseSectionLecture>();\n delete = output<CourseSectionLecture>();\n edit = output<CourseSectionLecture>();\n mediaEdit = output<CourseSectionLectureVideo>();\n thumbnailUpload = output<CourseSectionLectureVideo>();\n upload = output<{ id: any; data: FormData | null }>();\n deleteMedia = output<CourseSectionLectureItem>();\n\n editing = false;\n ngOnInit(): void {}\n\n onSave(lecture: CourseSectionLecture) {\n this.editing = false;\n this.editId.set(null);\n this.save.emit(lecture);\n }\n onCancel(lecture: CourseSectionLecture) {\n this.editing = false;\n this.editId.set(null);\n this.cancel.emit(lecture);\n }\n onDelete(lecture: CourseSectionLecture) {\n this.delete.emit(lecture);\n }\n onEdit(lecture: CourseSectionLecture) {\n this.editId.set(lecture.id);\n this.editing = true;\n this.edit.emit(lecture);\n }\n onMediaEdit(lecture: CourseSectionLectureVideo) {\n this.editId.set(lecture.id);\n this.editing = true;\n // this.mediaEdit.emit(lecture);\n const options = {\n title: '编辑视频',\n cancelText: '取消',\n confirmText: '确定',\n data: this.lecture(),\n width: '80vw',\n maxWidth: '80vw',\n height: '100%',\n component: CourseSectionLectureVideoDialogComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n const data = {\n name: res,\n };\n }\n },\n });\n }\n onVideoThumbnailUpload(video: CourseSectionLectureVideo) {\n this.thumbnailUpload.emit(video);\n }\n onUpload(id: any, data: any) {\n this.lecture().isUploading = true;\n\n this.upload.emit({ id, data });\n }\n onDeleteMedia(data: any) {\n this.deleteMedia.emit(data);\n }\n onLoadedMetadata(event: Event): void {\n if (this.lecture().item.duration) {\n return;\n }\n const videoElement: HTMLVideoElement = event.target as HTMLVideoElement;\n this.lecture().item.duration = videoElement.duration;\n }\n}\n","<div class=\"flex flex-col grow p-2\">\n @if (lecture().id !== editId()) {\n <div class=\"w-full flex gap-3 p-3 items-center\">\n <span>{{ lecture().title }}</span>\n <button mat-icon-button (click)=\"onEdit(lecture()); $event.stopPropagation()\" class=\"max-w-8 max-h-8 !p-1\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-icon-button (click)=\"onDelete(lecture()); $event.stopPropagation()\" class=\"max-w-8 max-h-8 !p-1\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n } @else {\n <div class=\"flex flex-col justify-between items-center\">\n <rolatech-input [(title)]=\"lecture().title\" placeholder=\"标题\"></rolatech-input>\n <div class=\"w-full flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onCancel(lecture())\">取消</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(lecture())\">保存</button>\n </div>\n </div>\n }\n\n <div>\n @if (lecture().item) {\n <div class=\"flex flex-row p-2 gap-3\">\n <div class=\"bg-black h-fit\">\n <video\n id=\"video\"\n #video\n [src]=\"lecture().item.url\"\n class=\"w-32 aspect-video\"\n (loadedmetadata)=\"onLoadedMetadata($event)\"\n [poster]=\"lecture().item.thumbnail\"\n ></video>\n </div>\n <div class=\"flex flex-col justify-between w-full\">\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex justify-between items-center w-full px-2\">\n <span>视频内容</span>\n </div>\n @if (lecture().isUploading) {\n <div>\n <span> {{ lecture().item.progress }}%</span>\n </div>\n }\n </div>\n <div class=\"flex justify-between items-center\">\n <div>\n <button mat-button class=\"max-h-8\" (click)=\"onMediaEdit(lecture().item); $event.stopPropagation()\">\n <mat-icon>edit</mat-icon>\n <span>编辑</span>\n </button>\n <button mat-button class=\"max-h-8\" (click)=\"onDeleteMedia(lecture().item); $event.stopPropagation()\">\n <mat-icon>delete</mat-icon>\n <span>删除</span>\n </button>\n </div>\n <div>\n <span>{{ lecture().item.duration | duration }}</span>\n </div>\n </div>\n </div>\n </div>\n @if (lecture().isUploading) {\n <div class=\"p-2\">\n <mat-progress-bar mode=\"determinate\" [value]=\"lecture().item.progress\"> </mat-progress-bar>\n </div>\n }\n } @else {\n @if (lecture().id !== editId()) {\n <div class=\"px-3\">\n <input\n class=\"ud-sr-only\"\n type=\"file\"\n accept=\".avi,.mpg,.mpeg,.flv,.mov,.m2v,.m4v,.mp4,.rm,.ram,.vob,.ogv,.webm,.wmv\"\n (change)=\"onUpload(lecture().id, $event)\"\n #fileInput\n />\n <div class=\"flex justify-between items-center\">\n <div>无视频文件</div>\n <button mat-flat-button class=\"max-h-8\" (click)=\"fileInput.click()\">上传视频</button>\n </div>\n </div>\n }\n }\n </div>\n @if (!hasUnsaved) {\n <ng-content></ng-content>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-course-section-lecture-video-item',\n templateUrl: './course-section-lecture-video-item.component.html',\n styleUrls: ['./course-section-lecture-video-item.component.scss'],\n})\nexport class CourseSectionLectureVideoItemComponent {}\n","<p>course-section-lecture-video-item works!</p>\n","import { Component, OnInit, input, model, output } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { Pricing } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-pricing-item',\n templateUrl: './pricing-item.component.html',\n styleUrls: ['./pricing-item.component.scss'],\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatDividerModule],\n})\nexport class PricingItemComponent implements OnInit {\n actions = input<boolean>(false);\n pricing = model.required<Pricing>();\n delete = output<Pricing>();\n save = output<Pricing>();\n\n constructor() {}\n ngOnInit(): void {\n this.pricing().total = this.pricing().total / 100;\n }\n\n onSave(pricing: Pricing) {\n const finalPricing = {\n ...pricing,\n total: pricing.total * 100,\n };\n this.save.emit(finalPricing);\n }\n onDelete(pricing: Pricing) {\n this.delete.emit(pricing);\n }\n setTwoNumberDecimal(e: any) {\n this.pricing().total = e;\n }\n}\n","<div class=\"flex flex-col py-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 最少人数 </mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"pricing().min\" name=\"min\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 最多人数 </mat-label>\n <input matInput type=\"number\" [(ngModel)]=\"pricing().max\" name=\"max\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 价格 </mat-label>\n <!-- <input matInput type=\"number\" step=\"0.01\" [ngModel]=\"pricing().total\"\n (ngModelChange)=\"setTwoNumberDecimal($event)\" name=\"total\" required placeholder=\"20.23\" /> -->\n <input matInput rolatechDecimal type=\"text\" [(ngModel)]=\"pricing().total\" name=\"total\" required />\n </mat-form-field>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onDelete(pricing())\">删除</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(pricing())\">保存</button>\n </div>\n}\n<mat-divider></mat-divider>\n","import { Component, DoCheck, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PricingItemComponent } from '../pricing-item/pricing-item.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Pricing } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-pricing-add-dialog',\n templateUrl: './course-pricing-add-dialog.component.html',\n styleUrls: ['./course-pricing-add-dialog.component.scss'],\n imports: [MatIconModule, PricingItemComponent, MatButtonModule],\n})\nexport class CoursePricingAddDialogComponent implements DoCheck {\n output = output<any>();\n pricing: Pricing = {\n min: 0,\n max: 0,\n total: 0,\n };\n ngDoCheck(): void {\n this.output.emit(this.pricing);\n }\n}\n","<rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n","import { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { Component, OnInit, OnDestroy, output, model, input, effect, computed } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOptionModule } from '@angular/material/core';\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { Schedule, ScheduleDate } from '../../interfaces';\nexport const COURSE_SCHEDULE_DATE_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'rolatech-schedule-item',\n templateUrl: './schedule-item.component.html',\n styleUrls: ['./schedule-item.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: COURSE_SCHEDULE_DATE_FORMATS },\n DatePipe,\n ],\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatDatepickerModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n MatDividerModule,\n ],\n})\nexport class ScheduleItemComponent implements OnInit, OnDestroy {\n value = input<Schedule | undefined>();\n actions = input<boolean>(false);\n delete = output<Schedule>();\n save = output<Schedule>();\n date = ScheduleDate;\n schedule: any = effect(() => {\n this.schedule = this.value() || {\n title: '',\n content: '',\n startAt: '',\n endAt: '',\n };\n this.schedule.startDate = moment(this.schedule.startAt).format('YYYY-MM-DD');\n this.schedule.startTime = moment(this.schedule.startAt).format('HH:mm');\n this.schedule.endDate = moment(this.schedule.endAt).format('YYYY-MM-DD');\n this.schedule.endTime = moment(this.schedule.endAt).format('HH:mm');\n });\n // constructor() {\n // this.schedule = this.value();\n // }\n\n ngOnInit(): void {\n // this.schedule = computed(() => {\n // return this.value();\n // })();\n // this.schedule = this.value();\n // this.schedule.startDate = moment(this.schedule.startAt).format('YYYY-MM-DD');\n // this.schedule.startTime = moment(this.schedule.startAt).format('HH:mm');\n // this.schedule.endDate = moment(this.schedule.endAt).format('YYYY-MM-DD');\n // this.schedule.endTime = moment(this.schedule.endAt).format('HH:mm');\n }\n ngOnDestroy(): void {\n const { startAt, endAt, startTime, startDate, endDate, endTime } = this.schedule;\n this.schedule.startAt = this.schedule.startDate + ' ' + this.schedule.startTime;\n this.schedule.endAt = this.schedule.endDate + ' ' + this.schedule.endTime;\n delete this.schedule.startDate;\n delete this.schedule.startTime;\n delete this.schedule.endDate;\n delete this.schedule.endTime;\n }\n startDateChanged(event: any) {}\n startTimeChanged(event: any) {}\n\n endDateChanged(event: any) {}\n endTimeChanged(event: any) {}\n\n onSave(schedule: Schedule) {\n this.format();\n this.save.emit(schedule);\n }\n onDelete(schedule: Schedule) {\n this.delete.emit(schedule);\n }\n private format() {\n this.schedule.startAt = this.schedule.startDate + ' ' + this.schedule.startTime;\n this.schedule.endAt = this.schedule.endDate + ' ' + this.schedule.endTime;\n }\n}\n","<div class=\"flex flex-col py-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 标题 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"schedule.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 内容 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"schedule.content\"\n name=\"content\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>开始日期</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n (focus)=\"picker.open()\"\n name=\"startAt\"\n [(ngModel)]=\"schedule.startDate\"\n (ngModelChange)=\"startDateChanged($event)\"\n (dateInput)=\"schedule.startDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>开始时间</mat-label>\n <mat-select [(ngModel)]=\"schedule.startTime\" (selectionChange)=\"startTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"flex flex-row gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label>结束日期</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker2\"\n name=\"endAt\"\n (focus)=\"picker2.open()\"\n (ngModelChange)=\"endDateChanged($event)\"\n [(ngModel)]=\"schedule.endDate\"\n (dateInput)=\"schedule.endDate = $event.value.format('YYYY-MM-DD')\"\n readonly\n required\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker #picker2></mat-datepicker>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>结束时间</mat-label>\n <mat-select [(ngModel)]=\"schedule.endTime\" (selectionChange)=\"endTimeChanged($event)\" required readonly>\n @for (d of date; track d) {\n <mat-option [value]=\"d\">\n {{ d }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onDelete(schedule)\">删除</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(schedule)\">保存</button>\n </div>\n}\n<mat-divider></mat-divider>\n","import { Component, DoCheck, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ScheduleItemComponent } from '../schedule-item/schedule-item.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Schedule } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-schedule-add-dialog',\n templateUrl: './course-schedule-add-dialog.component.html',\n styleUrls: ['./course-schedule-add-dialog.component.scss'],\n imports: [MatIconModule, ScheduleItemComponent, MatButtonModule],\n})\nexport class CourseScheduleAddDialogComponent implements DoCheck {\n output = output<any>();\n schedule: Schedule = {\n title: '',\n content: '',\n startAt: '',\n endAt: '',\n };\n ngDoCheck(): void {\n this.output.emit(this.schedule);\n }\n}\n","<rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n","import { Component, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogClose } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PricingItemComponent } from '../pricing-item/pricing-item.component';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Pricing } from '../../interfaces';\nimport { CourseService } from '../../services';\n\n@Component({\n selector: 'rolatech-course-pricing-dialog',\n templateUrl: './course-pricing-dialog.component.html',\n styleUrls: ['./course-pricing-dialog.component.scss'],\n imports: [\n MatIconModule,\n MatDividerModule,\n FormsModule,\n MatStepperModule,\n PricingItemComponent,\n MatButtonModule,\n MatDialogClose,\n ],\n})\nexport class CoursePricingDialogComponent {\n courseId!: string;\n pricing: Pricing[] = [];\n constructor(\n private dialogRef: MatDialogRef<CoursePricingDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private courseService: CourseService,\n private snackBar: MatSnackBar,\n private dialog: MatDialog,\n ) {\n this.courseId = data.courseId;\n this.pricing = data.pricing;\n }\n close() {\n this.dialogRef.close();\n }\n addPricing() {\n this.pricing.push({\n min: 0,\n max: 0,\n total: 0,\n });\n }\n}\n","<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden mt-3 overflow-y-auto w-2/3 max-h-[55vh]\">\n <form #detailForm=\"ngForm\" class=\"p-3\">\n <ng-template matStepLabel>详情</ng-template>\n @for (item of pricing; track item) {\n <rolatech-pricing-item [pricing]=\"item\"> </rolatech-pricing-item>\n }\n <div class=\"mb-6\">\n <button mat-button (click)=\"addPricing()\">\n <mat-icon>add</mat-icon>\n <span>增加价格</span>\n </button>\n </div>\n </form>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-end items-center px-5\">\n <button mat-button [mat-dialog-close]=\"pricing\" cdkFocusInitial>保存</button>\n </div>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogClose } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ScheduleItemComponent } from '../schedule-item/schedule-item.component';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Schedule } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-schedule-dialog',\n templateUrl: './course-schedule-dialog.component.html',\n styleUrls: ['./course-schedule-dialog.component.scss'],\n imports: [\n MatIconModule,\n MatDividerModule,\n FormsModule,\n MatStepperModule,\n ScheduleItemComponent,\n MatButtonModule,\n MatDialogClose,\n ],\n})\nexport class CourseScheduleDialogComponent {\n courseId!: string;\n schedule: Schedule[] = [];\n constructor(\n private dialogRef: MatDialogRef<CourseScheduleDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) {\n this.courseId = data.courseId;\n this.schedule = data.schedule;\n }\n close() {\n this.dialogRef.close();\n }\n addSchedule() {\n if (!this.schedule) {\n this.schedule = [];\n }\n this.schedule.push({\n title: '',\n content: '',\n startAt: '',\n endAt: '',\n });\n }\n}\n","<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden mt-3 overflow-y-auto\">\n <form #detailForm=\"ngForm\" class=\"p-3\">\n <ng-template matStepLabel>详情</ng-template>\n @for (item of schedule; track item) {\n <rolatech-schedule-item [value]=\"item\"></rolatech-schedule-item>\n }\n <div class=\"mb-6\">\n <button mat-button (click)=\"addSchedule()\">\n <mat-icon>add</mat-icon>\n <span>增加课表</span>\n </button>\n </div>\n </form>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-end items-center px-5\">\n <button mat-button [mat-dialog-close]=\"schedule\" cdkFocusInitial>保存</button>\n </div>\n</div>\n","import { Component, OnInit, input, output } from '@angular/core';\nimport { first } from 'lodash';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { CourseDetail, Media } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-detail-item',\n templateUrl: './detail-item.component.html',\n styleUrls: ['./detail-item.component.scss'],\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatProgressBarModule,\n MatDividerModule,\n ],\n})\nexport class DetailItemComponent implements OnInit {\n isUploading = input<boolean>();\n detail = input.required<CourseDetail>();\n actions = input<boolean>(false);\n selectMedia = input<any>();\n\n upload = output<{ id: string; data: FormData | null }>();\n delete = output<CourseDetail>();\n save = output<CourseDetail>();\n deleteMedia = output<{ id: string; media: Media }>();\n selectedImg!: Media | any;\n\n constructor() {}\n\n ngOnInit(): void {\n this.selectedImg = this.detail().media ? this.detail().media[0] : null;\n }\n onUpload(id: string, data: any) {\n this.upload.emit({ id, data });\n }\n onMediaItemClick(image: Media) {\n this.selectedImg = image;\n }\n\n select(item: any) {\n this.selectedImg = item;\n }\n deleteImage() {}\n onSave(detail: CourseDetail) {\n this.save.emit(detail);\n }\n onDelete(detail: CourseDetail) {\n this.delete.emit(detail);\n }\n onDeleteMedia(id: string, media: Media) {\n this.deleteMedia.emit({ id, media });\n this.selectedImg = this.detail().media ? first(this.detail().media) : null;\n }\n}\n","<div class=\"mb-8\">\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"flex flex-col grow\">\n <mat-form-field appearance=\"fill\">\n <mat-label>标题</mat-label>\n <input matInput placeholder=\"标题\" [(ngModel)]=\"detail().title\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>描述</mat-label>\n <input matInput placeholder=\"描述\" [(ngModel)]=\"detail().description\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>内容</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"内容\"\n [(ngModel)]=\"detail().content\"\n ></textarea>\n </mat-form-field>\n </div>\n <!-- image -->\n <div class=\"lg:basis-1/2 px-3\">\n <div class=\"flex flex-row justify-center pb-4 p-1\">\n @if (selectedImg) {\n <img class=\"object-contain w-80 h-80\" [src]=\"selectedImg.url\" [alt]=\"selectedImg.alt\" />\n }\n @if (selectedImg) {\n <button mat-icon-button (click)=\"onDeleteMedia(detail().id, selectedImg)\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n <!-- media -->\n <div>\n <div class=\"flex flex-row flex-wrap cursor-pointer relative box-border\" fxLayout=\"row\">\n <div class=\"progress-bar\">\n @if (detail().isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n @for (media of detail().media; track media) {\n <div class=\"media-list-item\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n }\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload(detail().id, $event)\" #fileInput />\n <div class=\"add-button\">\n <div (click)=\"fileInput.click()\" class=\"tile-media flex justify-center items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n@if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onDelete(detail())\">删除</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(detail())\">保存</button>\n </div>\n}\n<mat-divider></mat-divider>\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogClose } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { last, remove } from 'lodash';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DetailItemComponent } from '../detail-item/detail-item.component';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CourseDetail } from '../../interfaces';\nimport { CourseService } from '../../services';\n\n@Component({\n selector: 'rolatech-course-details-dialog',\n templateUrl: './course-details-dialog.component.html',\n styleUrls: ['./course-details-dialog.component.scss'],\n imports: [\n MatIconModule,\n MatDividerModule,\n FormsModule,\n MatStepperModule,\n DetailItemComponent,\n MatButtonModule,\n MatDialogClose,\n ],\n})\nexport class CourseDetailsDialogComponent {\n courseId!: string;\n details: CourseDetail[] = [];\n constructor(\n private dialogRef: MatDialogRef<CourseDetailsDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private courseService: CourseService,\n private snackBar: MatSnackBar,\n private dialog: MatDialog,\n ) {\n this.courseId = data.courseId;\n }\n close() {\n this.dialogRef.close();\n }\n addDetail() {\n this.courseService\n .addDetail(this.courseId, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res: any) => {\n const detail = res.data;\n this.details.push({\n id: detail.id,\n title: '',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onDetailMediaUpload(event: any) {}\n onDetailMediaDelete(event: any) {}\n onDetailSave(event: any) {}\n onDetailDelete(detail: CourseDetail) {\n this.courseService.deleteDetail(this.courseId, detail.id).subscribe({\n next: (res: any) => {\n this.snackBar.open(res.data);\n remove(this.details, {\n id: detail.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n}\n","<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden mt-3 overflow-y-auto\">\n <form #detailForm=\"ngForm\" class=\"p-3\">\n <ng-template matStepLabel>详情</ng-template>\n @for (item of details; track item) {\n <rolatech-detail-item\n [detail]=\"item\"\n (upload)=\"onDetailMediaUpload($event)\"\n (deleteMedia)=\"onDetailMediaDelete($event)\"\n (save)=\"onDetailSave($event)\"\n (delete)=\"onDetailDelete($event)\"\n ></rolatech-detail-item>\n }\n <div class=\"mb-6\">\n <button mat-button (click)=\"addDetail()\">\n <mat-icon>add</mat-icon>\n <span>增加详情</span>\n </button>\n </div>\n </form>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-end items-center px-5\">\n <button mat-button [mat-dialog-close]=\"true\" cdkFocusInitial>保存</button>\n </div>\n</div>\n","import { Component, Inject, OnInit, viewChild } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogClose } from '@angular/material/dialog';\nimport { MatStepper, MatStepperModule } from '@angular/material/stepper';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { findLastIndex, remove } from 'lodash';\nimport { ScheduleItemComponent } from '../schedule-item/schedule-item.component';\nimport { PricingItemComponent } from '../pricing-item/pricing-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DetailItemComponent } from '../detail-item/detail-item.component';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ImagePreviewDialogComponent, MediaListComponent, MediaListItemComponent } from '@rolatech/angular-components';\nimport { ScheduleDate, CourseDetail, CourseCategory } from '../../interfaces';\nimport { CategoryService, CourseService } from '../../services';\n\n@Component({\n selector: 'rolatech-course-edit-dialog',\n templateUrl: './course-edit-dialog.component.html',\n styleUrls: ['./course-edit-dialog.component.scss'],\n imports: [\n MatIconModule,\n MatDividerModule,\n MatStepperModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MediaListComponent,\n MediaListItemComponent,\n DetailItemComponent,\n MatButtonModule,\n PricingItemComponent,\n ScheduleItemComponent,\n MatDialogClose,\n ],\n})\nexport class CourseEditDialogComponent implements OnInit {\n course: any;\n isUploading = false;\n details: any;\n pricing: any;\n schedule: any;\n courseType = [\n {\n key: 'ONLINE',\n value: '线上',\n },\n {\n key: 'OFFLINE',\n value: '线下',\n },\n {\n key: 'MIXED',\n value: '混合',\n },\n ];\n selectedCategoyIds!: string[];\n categories!: CourseCategory[];\n selectedCategory!: CourseCategory;\n classrooms: any;\n date = ScheduleDate;\n lastStepper = false;\n firstStepper = true;\n stepper = viewChild.required(MatStepper);\n\n constructor(\n private dialogRef: MatDialogRef<CourseEditDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private categoryService: CategoryService,\n private courseService: CourseService,\n private snackBar: MatSnackBar,\n private dialog: MatDialog,\n ) {\n this.course = data.course;\n this.classrooms = data.classrooms;\n }\n\n ngOnInit(): void {\n this.categoryService.find({}).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n }\n close() {\n this.dialogRef.close();\n }\n compareFn(o1: any, o2: any) {\n return o1.id === o2.id;\n }\n addDetail() {\n if (!this.course.details) {\n this.course.details = [];\n }\n this.courseService\n .addDetail(this.course.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res: any) => {\n const detail = res.data;\n this.course.details.push({\n id: detail.id,\n title: '',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n addSchedule() {\n if (!this.course.schedule) {\n this.course.schedule = [];\n }\n this.course.schedule.push({\n title: '',\n content: '',\n });\n }\n addPricing() {\n if (!this.course.pricing) {\n this.course.pricing = [];\n }\n this.course.pricing.push({\n min: 0,\n max: 0,\n total: 0,\n });\n }\n onSelectionChange(event: any) {\n this.selectedCategoyIds = event.value;\n }\n onStepperChange(event: any) {\n this.lastStepper = event.selectedIndex === 3;\n this.firstStepper = event.selectedIndex === 0;\n }\n previous() {\n this.stepper().previous();\n }\n next() {\n this.stepper().next();\n }\n onDetailMediaUpload(event: any) {}\n onDetailMediaDelete(event: any) {}\n onDetailSave(event: any) {}\n onDetailDelete(detail: CourseDetail) {\n this.courseService.deleteDetail(this.course.id, detail.id).subscribe({\n next: (res: any) => {\n this.snackBar.open(res.message);\n remove(this.details, {\n id: detail.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onImageClick(i: any) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.course.media,\n selected: i,\n },\n });\n }\n onUpload(event: any) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (this.course.media) {\n (this.course.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n } else {\n this.course.media = [];\n (this.course.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n }\n\n this.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n\n this.courseService.upload(formData).subscribe({\n next: (res: any) => {\n this.isUploading = false;\n const index = findLastIndex(this.course.media);\n // Replace item at index using native splice\n this.course.media.splice(index, 1, res.data);\n },\n error: (e: any) => {\n this.isUploading = false;\n this.snackBar.open('上传失败: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n}\n","<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden mt-3 overflow-y-auto\">\n <mat-stepper #stepper (selectionChange)=\"onStepperChange($event)\">\n <mat-step [editable]=\"true\">\n <form #infoForm=\"ngForm\" class=\"py-3\">\n <ng-template matStepLabel>基本信息</ng-template>\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 课程名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"course.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 课程描述 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"course.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\">\n <mat-label>分类</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareFn\"\n [(ngModel)]=\"course.categories\"\n #select=\"matSelect\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n @for (item of categories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label>类型</mat-label>\n <mat-select name=\"type\" [(ngModel)]=\"course.type\">\n @for (item of courseType; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (course.type.toString() !== 'ONLINE') {\n <mat-form-field appearance=\"fill\" ngModelGroup=\"classroom\">\n <mat-label>教室</mat-label>\n <mat-select [(ngModel)]=\"course.classroom\" name=\"id\">\n @for (classroom of classrooms; track classroom) {\n <mat-option [value]=\"classroom.id\">\n <div class=\"flex gap-3\">\n <span>{{ classroom.name }}</span>\n <span> {{ classroom.address }}</span>\n </div>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n <div>\n <div class=\"py-3\">\n <h2>图片信息</h2>\n </div>\n <rolatech-media-list (upload)=\"onUpload($event)\" [isUploading]=\"isUploading\">\n @for (item of course.media; track item; let i = $index) {\n <rolatech-media-list-item [media]=\"item\" (mediaItemClick)=\"onImageClick(i)\"></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </form>\n </mat-step>\n <mat-step [editable]=\"true\">\n <form #detailForm=\"ngForm\" class=\"py-3\">\n <ng-template matStepLabel>详情</ng-template>\n @for (item of course.details; track item) {\n <rolatech-detail-item\n [detail]=\"item\"\n (upload)=\"onDetailMediaUpload($event)\"\n (deleteMedia)=\"onDetailMediaDelete($event)\"\n (save)=\"onDetailSave($event)\"\n (delete)=\"onDetailDelete($event)\"\n ></rolatech-detail-item>\n }\n <div class=\"mb-6\">\n <button mat-button (click)=\"addDetail()\">\n <mat-icon>add</mat-icon>\n <span>增加详情</span>\n </button>\n </div>\n </form>\n </mat-step>\n <mat-step [editable]=\"true\">\n <form #pricingForm=\"ngForm\" class=\"py-3\">\n <ng-template matStepLabel>价格</ng-template>\n <div>\n @for (item of course.pricing; track item) {\n <rolatech-pricing-item [pricing]=\"item\"> </rolatech-pricing-item>\n }\n <div class=\"mb-6\">\n <button mat-button (click)=\"addPricing()\">\n <mat-icon>add</mat-icon>\n <span>增加价格</span>\n </button>\n </div>\n </div>\n </form>\n </mat-step>\n <mat-step>\n <form #scheduleForm=\"ngForm\">\n <ng-template matStepLabel>课表</ng-template>\n <div class=\"flex flex-col\">\n @for (item of course.schedule; track item) {\n <rolatech-schedule-item [value]=\"item\"></rolatech-schedule-item>\n }\n <div class=\"mb-6\">\n <button mat-button (click)=\"addSchedule()\">\n <mat-icon>add</mat-icon>\n <span>增加课表</span>\n </button>\n </div>\n </div>\n </form>\n </mat-step>\n </mat-stepper>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-end items-center px-5\">\n @if (!firstStepper) {\n <button mat-button mat-button (click)=\"previous()\">上一步</button>\n }\n @if (!lastStepper) {\n <button mat-button (click)=\"next()\">下一步</button>\n }\n @if (lastStepper) {\n <button mat-button [mat-dialog-close]=\"course\" cdkFocusInitial>保存</button>\n }\n </div>\n</div>\n","import { ViewportScroller } from '@angular/common';\nimport { Component, ElementRef, inject, input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport { CourseDetail } from '../../interfaces';\n\n@Component({\n selector: 'rolatech-course-details',\n templateUrl: './course-details.component.html',\n styleUrls: ['./course-details.component.scss'],\n imports: [ThumbnailComponent],\n})\nexport class CourseDetailsComponent implements OnInit {\n details = input.required<CourseDetail[]>();\n instructor = input<string>();\n username = input<string>();\n el = inject(ElementRef);\n\n viewportScroller = inject(ViewportScroller);\n platformId = inject(PLATFORM_ID);\n\n player: any;\n\n show = false;\n mediaIndex = 0;\n finalSchedule = [];\n ngOnInit(): void {}\n\n onClickScroller(id: string) {\n this.viewportScroller.scrollToAnchor(id);\n }\n}\n","<div class=\"py-3\" id=\"details\">\n <div class=\"text-xl font-medium py-2\">详情</div>\n @if (details()) {\n @for (detail of details(); track $index) {\n <div>\n @if (detail.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-[--rt-brand-color] inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ detail.title }}</span>\n </div>\n }\n @if (detail.content) {\n <div>\n {{ detail.content }}\n </div>\n }\n @if (detail.media) {\n <div class=\"w-80%\">\n @for (item of detail.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n</div>\n","import { Component, input } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-course-media-owner-renderer',\n imports: [AngularCommonModule, MatIconModule],\n templateUrl: './course-media-owner-renderer.component.html',\n styleUrl: './course-media-owner-renderer.component.scss',\n})\nexport class CourseMediaOwnerRendererComponent {\n name = input<string>();\n avatar = input<string>();\n username = input<string>();\n}\n","<div class=\"flex flex-row items-center\">\n <div class=\"flex mr-3 gap-2 items-center\">\n @if (avatar()) {\n <div class=\"cursor-pointer\" [routerLink]=\"['/', '@' + username()]\">\n <img [src]=\"avatar()\" class=\"w-11 h-11 rounded-full\" alt />\n </div>\n } @else {\n <div class=\"w-11 h-11 rounded-full bg-[--rt-brand-color]\"></div>\n }\n <div class=\"flex items-center text-lg font-bold cursor-pointer\">\n <a [routerLink]=\"['/', '@' + username()]\">\n <span>{{ name() }}</span>\n </a>\n <mat-icon class=\"verified-icon\">verified</mat-icon>\n </div>\n </div>\n</div>\n","import { Component, effect, inject, OnInit } from '@angular/core';\nimport { Course, CourseSection, CourseSectionLectureContentType, CourseStatus } from '../../../interfaces';\nimport { CourseSectionService, CourseService } from '../../../services';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { AngularComponentsModule, ContainerComponent, BaseComponent } from '@rolatech/angular-components';\nimport { ViewportScroller } from '@angular/common';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { CommentsComponent } from '@rolatech/angular-comment';\nimport { CourseActionComponent } from '../../../components/course-action/course-action.component';\nimport { CourseDetailsComponent } from '../../../components/course-details/course-details.component';\nimport { CourseInfoComponent } from '../../../components/course-info/course-info.component';\nimport { CourseMediaComponent } from '../../../components/course-media/course-media.component';\nimport { CoursePricingComponent } from '../../../components/course-pricing/course-pricing.component';\nimport { CourseScheduleComponent } from '../../../components/course-schedule/course-schedule.component';\nimport { CourseSectionsComponent } from '../../../components/course-sections/course-sections.component';\nimport { CategoryBreadcrumbComponent } from '@rolatech/angular-category';\n@Component({\n imports: [\n AngularCommonModule,\n AngularComponentsModule,\n CourseInfoComponent,\n CourseSectionsComponent,\n CourseScheduleComponent,\n CourseDetailsComponent,\n CourseMediaComponent,\n CoursePricingComponent,\n CourseActionComponent,\n CommentsComponent,\n ContainerComponent,\n CategoryBreadcrumbComponent,\n ],\n selector: 'rolatech-course-detail',\n templateUrl: './course-detail.component.html',\n styleUrls: ['./course-detail.component.scss'],\n})\nexport class CourseDetailComponent extends BaseComponent implements OnInit {\n course!: Course;\n status: any = CourseStatus;\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n courseService = inject(CourseService);\n viewportScroller = inject(ViewportScroller);\n courseSectionService = inject(CourseSectionService);\n authenticated = this.authService.authenticated;\n instructorName = '';\n username = '';\n inWishList = false;\n purchased = false;\n sections: CourseSection[] = [];\n type = CourseSectionLectureContentType;\n c = [{ name: '分类', path: '/categories' }];\n\n constructor() {\n super();\n effect(() => {\n if (this.authenticated()) {\n this.findPurchasedByCourseId();\n this.findWishlistBy();\n }\n });\n }\n ngOnInit(): void {\n this.findOne();\n this.findSections();\n }\n scrollToAnchor(anchorId: string): void {\n // this.viewportScroller.setOffset([100, 100]);\n document.getElementById(anchorId)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n findOne() {\n this.courseService.get(this.id).subscribe({\n next: (res: any) => {\n this.course = res.data;\n this.formatCategory();\n this.findUserBaseInfo(this.course.instructorId);\n this.titleService.setTitle(`${this.course.name}`);\n },\n });\n }\n findSections() {\n this.courseSectionService.findSections(this.id).subscribe({\n next: (res) => {\n this.sections = res.data;\n },\n });\n }\n findUserBaseInfo(userId: string) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.instructorName = res.name;\n this.username = res.username;\n },\n });\n }\n onWish(e: any) {\n if (this.authenticated()) {\n if (this.inWishList) {\n this.removeFromWishlist();\n } else {\n this.addToWishlist();\n }\n } else {\n this.snackBarService.open('请先登录');\n }\n }\n checkout(e: any) {\n if (this.authenticated()) {\n this.router.navigateByUrl(`/cart/checkout/courses/${this.id}`);\n } else {\n this.snackBarService.open('请先登录');\n }\n }\n private removeFromWishlist() {\n this.courseService.removeFromWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = false;\n },\n });\n }\n private addToWishlist() {\n this.courseService.addToWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = true;\n },\n });\n }\n onSection(event: any) {\n const { section, lecture } = event;\n this.router.navigate(['/courses', this.course.id, 'sections', section.id, 'lectures', lecture.id]);\n }\n\n private findWishlistBy() {\n this.courseService.findWishlistBy(this.id).subscribe({\n next: (res: any) => {\n this.inWishList = res.data;\n },\n });\n }\n findPurchasedByCourseId() {\n this.courseService.findPurchasedByCourseId(this.id).subscribe({\n next: (res: any) => {\n this.purchased = res.data ? true : false;\n },\n });\n }\n private formatCategory() {\n const { categories } = this.course;\n const parent = categories.filter((item) => item.level === 1);\n const children = categories.filter((item) => item.level === 2);\n this.c[1] = { name: parent[0].name, path: `/categories/${parent[0].id}` };\n // this.c[2] = { name: childCategory.name, path: `/categories/${id}/${child}` };\n }\n}\n","@if (course) {\n <rolatech-container>\n <rolatech-category-breadcrumb class=\"px-2\" [categories]=\"c\"></rolatech-category-breadcrumb>\n <div class=\"flex flex-col-reverse gap-3 md:flex-row w-full justify-between\">\n <div class=\"md:w-3/4\">\n <rolatech-course-info [course]=\"course\" [instructor]=\"instructorName\" [username]=\"username\"> </rolatech-course-info>\n <rolatech-course-sections\n [sections]=\"sections\"\n (section)=\"onSection($event)\"\n (checkout)=\"checkout($event)\"\n [purchased]=\"purchased\"\n ></rolatech-course-sections>\n <rolatech-course-schedule [schedule]=\"course.schedule\"></rolatech-course-schedule>\n <rolatech-course-details [details]=\"course.details\"></rolatech-course-details>\n <rolatech-comments [itemId]=\"course.id\"></rolatech-comments>\n </div>\n <div class=\"md:px-3\">\n <!-- <rolatech-course-media [min]=\"!purchased\" [media]=\"course.media\" [min]=\"true\"></rolatech-course-media> -->\n <rolatech-course-media [media]=\"course.media\" [min]=\"true\"></rolatech-course-media>\n @if (!purchased) {\n <rolatech-course-pricing [pricing]=\"course.pricing\"></rolatech-course-pricing>\n <rolatech-course-action\n [course]=\"course\"\n (checkout)=\"checkout($event)\"\n (wish)=\"onWish($event)\"\n [inWishList]=\"inWishList\"\n ></rolatech-course-action>\n }\n </div>\n </div>\n </rolatech-container>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CourseCategory } from '../../../interfaces';\nimport { CategoryService, CourseService } from '../../../services';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, BaseComponent } from '@rolatech/angular-components';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent],\n selector: 'rolatech-course-layout',\n templateUrl: './course-layout.component.html',\n styleUrls: ['./course-layout.component.scss'],\n})\nexport class CourseLayoutComponent extends BaseComponent implements OnInit {\n categories: CourseCategory[] = [];\n categoryService = inject(CategoryService);\n courseService = inject(CourseService);\n selectIndex = 0;\n\n ngOnInit(): void {\n this.findCategories();\n }\n findCategories() {\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n }\n loadCourseByCategoryIndex(index: number) {\n this.selectIndex = index;\n const id = this.categories[index].id;\n if (index === 0) {\n this.router.navigate([`/courses`]);\n // this.courseService.find({}).subscribe({\n // next: res => {\n // }\n // })\n } else {\n this.router.navigate([`../courses/categories/${id}`], {\n relativeTo: this.route,\n });\n }\n }\n nextCategory() {}\n}\n","@if (categories) {\n <rolatech-container>\n <div class=\"flex flex-col md:flex-row min-w-[320px] max-w-[1280px] m-auto\">\n <div class=\"h-14 md:h-auto min-w-[240px]\">\n <div class=\"hidden md:block text-2xl font-medium py-3 md:px-1 px-3\">分类</div>\n <div\n class=\"flex flex-row md:flex-col md:h-full items-center md:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <a\n class=\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center md:mb-1 mr-2 md:mr-0\"\n routerLinkActive=\"course-layout-active\"\n routerLink=\"/courses\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"md:px-1 px-3 text-md md:text-lg\">全部</span>\n </a>\n @for (category of categories; track category; let index = $index) {\n <a\n class=\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center mr-2 md:mr-0 md:mb-1\"\n routerLinkActive=\"course-layout-active\"\n [routerLink]=\"['../courses/categories/', category.id]\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"md:px-1 px-3 text-md md:text-lg\">{{ category.name }}</span>\n </a>\n }\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <!-- <rolatech-list>\n <router-outlet></router-outlet>\n </rolatech-list> -->\n </rolatech-container>\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CourseSection } from '../../../interfaces';\nimport { CourseSectionService, CourseService } from '../../../services';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { CommentsComponent } from '@rolatech/angular-comment';\nimport { CourseMediaOwnerRendererComponent } from '../../../components/course-media-owner-renderer/course-media-owner-renderer.component';\nimport { CourseSectionsComponent } from '../../../components/course-sections/course-sections.component';\n\n// import DPlayer from 'DPlayer';\ndeclare const DPlayer: any;\n\n@Component({\n imports: [\n AngularCommonModule,\n AngularComponentsModule,\n CourseSectionsComponent,\n CourseMediaOwnerRendererComponent,\n CommentsComponent,\n ],\n selector: 'rolatech-course-section-content',\n templateUrl: './course-section-content.component.html',\n styleUrls: ['./course-section-content.component.scss'],\n})\nexport class CourseSectionContentComponent implements OnInit, AfterViewInit, OnDestroy {\n route = inject(ActivatedRoute);\n router = inject(Router);\n courseSectionService = inject(CourseSectionService);\n courseService = inject(CourseService);\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n el = inject(ElementRef);\n platformId = inject(PLATFORM_ID);\n authenticated = this.authService.authenticated;\n player: any;\n sections: CourseSection[] = [];\n courseId = '';\n sectionId = '';\n lectureId = '';\n videoUrl: any = '';\n instructorName = '';\n instructorAvatar = '';\n instructorUsername = '';\n course: any;\n purchased = false;\n constructor() {\n effect(() => {\n if (this.authenticated()) {\n this.findPurchasedByCourseId();\n }\n });\n }\n ngOnInit(): void {\n this.route.params.subscribe((params) => {\n this.courseId = params['id'];\n this.sectionId = params['sectionId'];\n this.lectureId = params['lectureId'];\n this.findCourse(this.courseId);\n this.findSections(this.courseId);\n });\n }\n ngOnDestroy(): void {\n if (this.player) {\n this.player.destroy();\n }\n }\n ngAfterViewInit(): void {}\n initPlayer(url: string, thumbnail?: string) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n // 'https://cos-video-1258344699.cos.ap-guangzhou.tencentcos.cn/test.mp4',\n if (!this.player) {\n const playerContainer = this.el.nativeElement.querySelector('#dplayer');\n this.player = new DPlayer({\n container: playerContainer,\n screenshot: true,\n preload: 'metadata',\n video: {\n url: url,\n pic: thumbnail,\n },\n });\n } else {\n this.player.switchVideo({\n url: url,\n pic: thumbnail,\n });\n }\n }\n findSections(courseId: any) {\n this.courseSectionService.findSections(courseId).subscribe({\n next: (res) => {\n this.sections = res.data;\n const section = this.sections.find((item: any) => item.id === this.sectionId);\n const letcture = section?.lectures.find((item: any) => item.id === this.lectureId);\n this.videoUrl = letcture?.item.url;\n const thumbnail = letcture?.item.thumbnail;\n\n this.initPlayer(this.videoUrl, thumbnail);\n },\n });\n }\n findCourse(courseId: string) {\n this.courseService.get(courseId).subscribe({\n next: (res: any) => {\n this.course = res.data;\n this.findUserBaseInfo(this.course.instructorId);\n },\n });\n }\n findUserBaseInfo(userId: string) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.instructorName = res.name;\n this.instructorAvatar = res.avatar;\n this.instructorUsername = res.username;\n },\n });\n }\n findPurchasedByCourseId() {\n this.courseService.findPurchasedByCourseId(this.courseId).subscribe({\n next: (res: any) => {\n this.purchased = res.data ? true : false;\n },\n });\n }\n onSection(event: any) {\n const { section, lecture } = event;\n this.router.navigate(['/courses', this.courseId, 'sections', section.id, 'lectures', lecture.id]);\n }\n checkout(e: any) {\n this.router.navigateByUrl(`/cart/checkout/courses/${this.courseId}`);\n }\n}\n","<div class=\"flex lg:flex-row flex-col justify-between w-full mt-2 lg:mt-4\">\n <div class=\"lg:w-[70%] flex flex-col items-start justify-center px-4 lg:px-6 h-fit\">\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video rounded-xl\"></div>\n <div class=\"py-3 w-full\">\n @if (course) {\n <div class=\"text-xl font-medium py-3\">\n {{ course.name }}\n </div>\n <div>\n <rolatech-course-media-owner-renderer\n [name]=\"instructorName\"\n [avatar]=\"instructorAvatar\"\n [username]=\"instructorUsername\"\n ></rolatech-course-media-owner-renderer>\n </div>\n <div class=\"hidden lg:block\">\n <rolatech-comments [itemId]=\"lectureId\"></rolatech-comments>\n </div>\n }\n </div>\n </div>\n <div class=\"lg:w-[30%] px-4 lg:px-0 lg:pr-6\">\n <rolatech-course-sections\n [sections]=\"sections\"\n [purchased]=\"purchased\"\n (section)=\"onSection($event)\"\n (checkout)=\"checkout($event)\"\n ></rolatech-course-sections>\n </div>\n <div class=\"lg:hidden block px-4 lg:px-6\">\n <rolatech-comments [itemId]=\"lectureId\"></rolatech-comments>\n </div>\n</div>\n","import { Routes } from '@angular/router';\nimport { CourseCategoryComponent } from './course-category/course-category.component';\nimport { CourseDetailComponent } from './course-detail/course-detail.component';\nimport { CourseLayoutComponent } from './course-layout/course-layout.component';\nimport { CourseSectionContentComponent } from './course-section-content/course-section-content.component';\n\nexport const courseRoutes: Routes = [\n {\n path: '',\n component: CourseLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./course-index/course-index.component').then((x) => x.CourseIndexComponent),\n },\n ],\n },\n {\n path: ':id',\n component: CourseDetailComponent,\n },\n {\n path: ':id/sections/:sectionId/lectures/:lectureId',\n component: CourseSectionContentComponent,\n },\n {\n path: 'my-courses',\n component: CourseDetailComponent,\n },\n];\n","import { ChangeDetectorRef, Component, inject, model, OnInit } from '@angular/core';\nimport { ParamMap, RouterLink } from '@angular/router';\nimport { CourseCategory, Course } from '../../../interfaces';\nimport { CategoryService, CourseService } from '../../../services';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent, RichItemComponent, RichViewComponent } from '@rolatech/angular-components';\nimport { CategoryBreadcrumbComponent } from '@rolatech/angular-category';\n@Component({\n imports: [\n AngularCommonModule,\n AngularComponentsModule,\n RichViewComponent,\n RichItemComponent,\n CategoryBreadcrumbComponent,\n RouterLink,\n ],\n selector: 'rolatech-course-category',\n templateUrl: './course-category.component.html',\n styleUrls: ['./course-category.component.scss'],\n})\nexport class CourseCategoryComponent extends BaseComponent implements OnInit {\n categoryService = inject(CategoryService);\n courseService = inject(CourseService);\n cdr = inject(ChangeDetectorRef);\n category!: CourseCategory;\n courses: Course[] = [];\n categories: CourseCategory[] = [];\n loading = false;\n c = [{ name: '分类', path: '/categories' }];\n\n ngOnInit(): void {\n this.route.paramMap.subscribe((params: ParamMap) => {\n const id = params.get('id') as string;\n const child = params.get('child') as string;\n this.findCategoryById(id, child);\n const fetchId = child ? child : id;\n this.findCoursesByCategoryId(fetchId);\n });\n }\n\n findAllCategories() {\n this.categoryService.find({ limit: 100, filter: 'level:2' }).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n }\n findCategoryById(id: string, child: string) {\n this.categoryService.get(id).subscribe({\n next: (res: any) => {\n this.category = res.data;\n this.c[1] = { name: this.category.name, path: `/categories/${this.category.id}` };\n if (child) {\n const childCategory: any = this.category.children.find((item) => item.id === child);\n this.c[2] = { name: childCategory.name, path: `/categories/${id}/${child}` };\n }\n },\n });\n }\n toChildCategory(item: CourseCategory) {\n this.c[2] = { name: item.name, path: `/courses/categories/${this.category.id}/${item.id}` };\n // this.router.navigateByUrl(this.c[2].path);\n this.findCoursesByCategoryId(item.id);\n }\n findAllCourses() {\n this.courseService.find({}).subscribe({\n next: (res: any) => {\n this.courses = res.data;\n },\n });\n }\n findCoursesByCategoryId(id: string) {\n this.loading = true;\n const options = {\n filter: `categories:${id},published:true`,\n };\n this.courseService.find(options).subscribe({\n next: (res: any) => {\n this.courses = res.data;\n this.loading = false;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n loadCoursesByCategory(item: any) {\n this.router.navigate([`../../${item.id}`], {\n relativeTo: this.route,\n });\n }\n}\n","<div>\n <rolatech-category-breadcrumb [categories]=\"c\"></rolatech-category-breadcrumb>\n @if (category) {\n <div>\n <div class=\"hidden md:block text-2xl font-medium mt-2\">{{ category.name }}</div>\n @if (category.children) {\n <div class=\"flex flex-row flex-wrap gap-3 py-1\">\n @for (item of category.children; track $index) {\n <div\n class=\"px-3 py-2 hover:bg-[--rt-20-percent-layer] cursor-pointer bg-[--rt-10-percent-layer] rounded-lg\"\n [routerLink]=\"['/categories', category.id, item.id]\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <a (click)=\"toChildCategory(item)\" class=\"text-sm\"> {{ item.name }} </a>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"flex flex-row animate-pulse w-full\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n </div>\n }\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view list>\n @for (item of courses; track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['/courses/', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.pricing[0].total / 100\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { AngularComponentsModule, BaseComponent, ContainerComponent } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { CourseCategory } from '../../../interfaces';\nimport { CategoryService, CourseService } from '../../../services';\n\n@Component({\n selector: 'rolatech-course-category-layout',\n imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent],\n templateUrl: './course-category-layout.component.html',\n styleUrl: './course-category-layout.component.scss',\n})\nexport class CourseCategoryLayoutComponent extends BaseComponent implements OnInit {\n categories: CourseCategory[] = [];\n categoryService = inject(CategoryService);\n courseService = inject(CourseService);\n selectIndex = 0;\n\n ngOnInit(): void {\n this.findCategories();\n }\n findCategories() {\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n }\n loadCourseByCategoryIndex(index: number) {\n this.selectIndex = index;\n const id = this.categories[index].id;\n if (index === 0) {\n this.router.navigate([`/courses`]);\n // this.courseService.find({}).subscribe({\n // next: res => {\n // }\n // })\n } else {\n this.router.navigate([`../courses/categories/${id}`], {\n relativeTo: this.route,\n });\n }\n }\n nextCategory() {}\n}\n","@if (categories) {\n <rolatech-container>\n <div class=\"flex flex-col md:flex-row min-w-[320px] max-w-[1280px] m-auto\">\n <div class=\"h-14 md:h-auto min-w-[240px]\">\n <div class=\"hidden md:block text-2xl font-medium py-1 md:px-1 px-3\">分类</div>\n <div\n class=\"flex flex-row md:flex-col md:h-full items-center md:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <a\n class=\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center md:mb-1 mr-2 md:mr-0\"\n routerLinkActive=\"course-layout-active\"\n routerLink=\"./\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"md:px-1 px-3 text-md md:text-lg\">全部</span>\n </a>\n @for (category of categories; track category; let index = $index) {\n <a\n class=\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center mr-2 md:mr-0 md:mb-1\"\n routerLinkActive=\"course-layout-active\"\n [routerLink]=\"['../categories/', category.id]\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >\n <span class=\"md:px-1 px-3 text-md md:text-lg\">{{ category.name }}</span>\n </a>\n }\n </div>\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <!-- <rolatech-list>\n <router-outlet></router-outlet>\n </rolatech-list> -->\n </rolatech-container>\n}\n","import { Routes } from '@angular/router';\nimport { CourseCategoryComponent } from './course-category/course-category.component';\nimport { CourseCategoryLayoutComponent } from './course-category-layout/course-category-layout.component';\n\nexport const courseCategoryRoutes: Routes = [\n {\n path: '',\n component: CourseCategoryLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./course-category-index/course-category-index.component').then((x) => x.CourseCategoryIndexComponent),\n },\n {\n path: ':id',\n component: CourseCategoryComponent,\n },\n {\n path: ':id/:child',\n component: CourseCategoryComponent,\n },\n ],\n },\n];\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-course-manage-content',\n imports: [CommonModule],\n templateUrl: './course-manage-content.component.html',\n styleUrl: './course-manage-content.component.scss',\n})\nexport class CourseManageContentComponent {}\n","<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { findIndex, last, remove } from 'lodash';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { DetailItemComponent } from '../../../components';\nimport { CourseDetail, CourseStatus, CourseType } from '../../../interfaces';\nimport { CourseService } from '../../../services';\n\n@Component({\n selector: 'rolatech-course-manage-details',\n templateUrl: './course-manage-details.component.html',\n styleUrls: ['./course-manage-details.component.scss'],\n imports: [DetailItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent],\n})\nexport class CourseManageDetailsComponent implements OnInit {\n route = inject(ActivatedRoute);\n courseService = inject(CourseService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n\n id: string;\n isLoading = false;\n isUploading = false;\n details: CourseDetail[] = [];\n status = CourseStatus;\n courseType: any = CourseType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n }\n ngOnInit(): void {\n this.find();\n }\n find() {\n this.courseService.findDetails(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.details = res.data;\n }\n },\n });\n }\n addDetail() {\n if (!this.details) {\n this.details = [];\n }\n this.courseService\n .addDetail(this.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res: any) => {\n const detail = res.data;\n this.details.push({\n id: detail.id,\n title: '',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onDetailMediaUpload(event: any) {\n const detailId = event.id;\n const index = findIndex(this.details, (item) => item.id === detailId);\n const file = event.data.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (!this.details[index].media) {\n this.details[index].media = [];\n }\n (this.details[index].media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n this.details[index].isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.uploadDetailMedia(this.id, detailId, formData).subscribe({\n next: (res: any) => {\n this.isUploading = false;\n this.details[index].isUploading = false;\n const tmp = this.details[index].media as any;\n delete res.data.productDetail;\n this.details[index].media[this.details[index].media.length - 1] = res.data;\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('上传失败: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onDetailMediaDelete(event: any) {\n const detailId = event.id;\n const mediaId = event.media.id;\n this.courseService.deleteDetailMedia(this.id, detailId, mediaId).subscribe({\n next: (res: any) => {\n const detail: any = this.details.find((item) => item.id === detailId);\n remove(detail.media, {\n id: mediaId,\n });\n },\n });\n }\n onDetailSave(detail: CourseDetail) {\n delete detail.isUploading;\n this.courseService.updateDetail(this.id, detail.id, detail).subscribe({\n next: (res: any) => {\n this.snackBar.open('保存成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onDetailDelete(detail: CourseDetail) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除详情',\n message: '确定删除此详情吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.deleteDetail(this.id, detail.id).subscribe({\n next: (res: any) => {\n this.snackBar.open(res.data);\n remove(this.details, {\n id: detail.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-course-manage-content>\n <rolatech-toolbar title=\"详情\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (detail of details; track detail) {\n <rolatech-detail-item\n [detail]=\"detail\"\n (upload)=\"onDetailMediaUpload($event)\"\n (deleteMedia)=\"onDetailMediaDelete($event)\"\n (save)=\"onDetailSave($event)\"\n (delete)=\"onDetailDelete($event)\"\n [actions]=\"true\"\n ></rolatech-detail-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addDetail()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>添加详情</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { remove } from 'lodash';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseComponent, ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { ScheduleItemComponent, CourseScheduleAddDialogComponent, CourseScheduleDialogComponent } from '../../../components';\nimport { Schedule, CourseStatus, CourseType } from '../../../interfaces';\nimport { CourseService } from '../../../services';\n\n@Component({\n selector: 'rolatech-course-manage-schedule',\n templateUrl: './course-manage-schedule.component.html',\n styleUrls: ['./course-manage-schedule.component.scss'],\n imports: [ScheduleItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent],\n})\nexport class CourseManageScheduleComponent extends BaseComponent implements OnInit {\n courseService = inject(CourseService);\n isLoading = false;\n schedule: Schedule[] = [];\n status = CourseStatus;\n courseType: any = CourseType;\n ngOnInit(): void {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n this.find();\n }\n find() {\n this.courseService.findSchedule(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.schedule = res.data;\n }\n },\n });\n }\n addSchedule() {\n const options = {\n width: '500px',\n title: '添加课表',\n cancelText: '取消',\n confirmText: '确认',\n component: CourseScheduleAddDialogComponent,\n data: {},\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (schedule) => {\n if (schedule) {\n this.courseService.addSchedule(this.id, schedule).subscribe({\n next: (res) => {\n this.schedule.push(res.data);\n this.snackBarService.open('添加成功');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n editSchedule() {\n const options = {\n width: '500px',\n height: '90%',\n title: '编辑课表',\n cancelText: '取消',\n confirmText: '确认',\n component: ScheduleItemComponent,\n data: {\n courseId: this.id,\n schedule: this.schedule,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.courseService.addSchedule(this.id, { schedule: result }).subscribe({\n next: (res) => {\n this.snackBarService.open('编辑成功');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n onScheduleSave(schedule: Schedule | any) {\n this.courseService.updateSchedule(this.id, schedule.id, schedule).subscribe({\n next: (res: any) => {\n this.snackBarService.open('保存成功');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n onScheduleDelete(schedule: Schedule | any) {\n const options = {\n title: '删除课表',\n message: '确定删除此课表吗?',\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((result) => {\n if (result) {\n this.courseService.deleteSchedule(this.id, schedule.id).subscribe({\n next: (res: any) => {\n remove(this.schedule, {\n id: schedule.id,\n });\n this.snackBarService.open(res.data);\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-course-manage-content>\n <rolatech-toolbar title=\"课程表\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of schedule; track item) {\n <rolatech-schedule-item\n [value]=\"item\"\n [actions]=\"true\"\n (save)=\"onScheduleSave($event)\"\n (delete)=\"onScheduleDelete($event)\"\n >\n </rolatech-schedule-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSchedule()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>增加课表</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { remove } from 'lodash';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseComponent, ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { PricingItemComponent, CoursePricingDialogComponent, CoursePricingAddDialogComponent } from '../../../components';\nimport { Pricing, CourseStatus, CourseType } from '../../../interfaces';\nimport { CourseService } from '../../../services';\n\n@Component({\n selector: 'rolatech-course-manage-pricing',\n templateUrl: './course-manage-pricing.component.html',\n styleUrls: ['./course-manage-pricing.component.scss'],\n imports: [PricingItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent],\n})\nexport class CourseManagePricingComponent extends BaseComponent implements OnInit {\n courseService = inject(CourseService);\n isLoading = false;\n pricing: Pricing[] = [];\n status = CourseStatus;\n courseType: any = CourseType;\n ngOnInit(): void {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n this.find();\n }\n find() {\n this.courseService.findPricing(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.pricing = res.data;\n }\n },\n });\n }\n editPricing() {\n const options = {\n width: '500px',\n title: '编辑价格',\n height: '90%',\n cancelText: '取消',\n confirmText: '确认',\n component: CoursePricingAddDialogComponent,\n data: {\n courseId: this.id,\n pricing: this.pricing,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((result) => {\n if (result) {\n this.courseService.addPricing(this.id, { pricing: result }).subscribe({\n next: (res) => {\n this.snackBarService.open('编辑成功');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n addPricing() {\n const options = {\n width: '500px',\n title: '添加价格',\n cancelText: '取消',\n confirmText: '确认',\n component: CoursePricingAddDialogComponent,\n data: {},\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((pricing) => {\n if (pricing) {\n this.courseService.addPricing(this.id, { ...pricing, total: pricing.total * 100 }).subscribe({\n next: (res) => {\n this.pricing.push(res.data);\n this.snackBarService.open('添加成功');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n\n onPricingSave(pricing: Pricing | any) {\n this.courseService.updatePricing(this.id, pricing.id, pricing).subscribe({\n next: (res: any) => {\n this.snackBarService.open('保存成功');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n onPricingDelete(pricing: Pricing | any) {\n const options = {\n title: '删除价格',\n message: '确定删除此价格吗?',\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((result) => {\n if (result) {\n this.courseService.deletePricing(this.id, pricing.id).subscribe({\n next: (res: any) => {\n remove(this.pricing, {\n id: pricing.id,\n });\n this.snackBarService.open(res.data);\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-course-manage-content>\n <rolatech-toolbar title=\"价格\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>添加价格</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BookingService extends BaseService {\n override init() {\n this.endpoint = 'partners/bookings';\n super.init();\n }\n items(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items`, {\n params: options,\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InstructorService extends BaseService {\n override init() {\n this.endpoint = 'instructors';\n super.init();\n }\n createClassroom(data: any) {\n return this.http.post<any>(`${this.actionUrl}/classrooms`, data, {\n withCredentials: true,\n });\n }\n updateClassroom(id: string, data: any) {\n return this.http.put<any>(`${this.actionUrl}/classrooms/${id}`, data, {\n withCredentials: true,\n });\n }\n deleteClassroom(id: string) {\n return this.http.delete<any>(`${this.actionUrl}/classrooms/${id}`, {\n withCredentials: true,\n });\n }\n findClassrooms(options: any) {\n return this.http.get<any>(`${this.actionUrl}/classrooms`, {\n params: options,\n withCredentials: true,\n });\n }\n findMyClassrooms(options: any) {\n return this.http.get<any>(`${this.actionUrl}/classrooms/me`, {\n params: options,\n withCredentials: true,\n });\n }\n getClassroom(id: string) {\n return this.http.get<any>(`${this.actionUrl}/classrooms/${id}`, {\n withCredentials: true,\n });\n }\n findPublicInfoByUserId(id: string) {\n return this.http.get<any>(`${this.actionUrl}/${id}/info/public`);\n }\n findApplications(options: any) {\n return this.http.get<any>(`${this.actionUrl}/applications`, {\n params: options,\n withCredentials: true,\n });\n }\n findApplication(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/applications/${id}`, {\n withCredentials: true,\n });\n }\n findTransactions(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/transactions/me`, {\n params: options,\n withCredentials: true,\n });\n }\n getTransaction(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/transactions/${id}`, {\n withCredentials: true,\n });\n }\n getApplication(): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/applications/me`, {\n withCredentials: true,\n });\n }\n acceptApplication(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectApplication(id: string, body: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/classrooms/media`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/classrooms/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/classrooms/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { clone } from 'lodash';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { Course, CourseCategory, CourseStatus } from '../../../interfaces';\nimport { CategoryService, CourseService } from '../../../services';\nimport { BookingService } from '../../../services/booking.service';\nimport { InstructorService } from '../../../services/instructor.service';\n\n@Component({\n selector: 'rolatech-course-manage-info',\n templateUrl: './course-manage-info.component.html',\n styleUrls: ['./course-manage-info.component.scss'],\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ToolbarComponent,\n CourseManageContentComponent,\n ],\n})\nexport class CourseManageInfoComponent extends BaseComponent implements OnInit {\n courseService = inject(CourseService);\n categoryService = inject(CategoryService);\n instructorService = inject(InstructorService);\n bookingService = inject(BookingService);\n\n isLoading = false;\n course!: Course;\n status = CourseStatus;\n // courseType: any = CourseType;\n selectedCategoyIds!: string[];\n selectedClassroom: any;\n categories!: CourseCategory[];\n parentCategory!: CourseCategory;\n childrenCategories!: CourseCategory[];\n selectedChildrenCategories!: CourseCategory[];\n\n classrooms: any;\n bookedClassrooms: any;\n courseType = [\n {\n key: 'ONLINE',\n value: '线上',\n },\n {\n key: 'OFFLINE',\n value: '线下',\n },\n {\n key: 'MIXED',\n value: '混合',\n },\n ];\n\n ngOnInit(): void {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n this.find();\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n this.findClassrooms();\n this.findBookedClassrooms();\n }\n findBookedClassrooms() {\n this.bookingService.items({ status: 'paid' }).subscribe({\n next: (res: any) => {\n this.bookedClassrooms = res.data;\n },\n });\n }\n\n findClassrooms() {\n this.instructorService.findMyClassrooms({}).subscribe({\n next: (res) => {\n this.classrooms = res.data;\n },\n });\n }\n find() {\n this.courseService.get(this.id).subscribe({\n next: (res: any) => {\n this.course = res.data;\n this.parentCategory = this.course.categories?.filter((item) => item.level === 1)[0] as any;\n this.selectedChildrenCategories = this.course.categories?.filter((item) => item.level === 2) as any;\n this.findChildrenCategoryByParentId(this.parentCategory.id);\n },\n });\n }\n findChildrenCategoryByParentId(parentId: string) {\n this.categoryService.find({ limit: 100, filter: `parent:${parentId}` }).subscribe({\n next: (res: any) => {\n this.childrenCategories = res.data;\n },\n });\n }\n compareParentFn(o1: CourseCategory, o2: CourseCategory) {\n return o1.id === o2?.id;\n }\n compareChildrenFn(o1: CourseCategory, o2: CourseCategory) {\n return o1.id === o2?.id;\n }\n compareClassroom(o1: any, o2: any) {\n if (o1.room) {\n return (\n o1.latitude === o2?.latitude &&\n o1.longitude === o2?.longitude &&\n o1.room === o2.room &&\n o1.startAt === o2.startAt &&\n o1.endAt === o2.endAt\n );\n } else {\n return o1.latitude === o2?.latitude && o1.longitude === o2?.longitude;\n }\n }\n onParentCategoryChange(event: any) {\n this.parentCategory.id = event.value;\n this.childrenCategories = event.value.children;\n }\n onChildCategoryChange(event: any) {\n this.selectedChildrenCategories = event.value;\n }\n onClassroomSelected(event: any) {\n this.selectedClassroom = event.value;\n }\n update() {\n const { name, description, type, classroom } = this.course;\n const data = {\n name,\n description,\n categories: this.selectedChildrenCategories,\n type,\n };\n if (classroom) {\n const finalClassroom = clone(classroom);\n finalClassroom.address = classroom.room ? classroom.address + ' ' + classroom.room + '室' : classroom.address;\n data['classroom'] = finalClassroom;\n }\n this.courseService.update(this.id, data).subscribe({\n next: (res) => {\n this.snackBarService.open('保存成功');\n // this.router.navigate([`../${res.data.id}`], { relativeTo: this.route });\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n}\n","<rolatech-course-manage-content>\n <rolatech-toolbar title=\"基本信息\" class=\"hidden md:block\" divider></rolatech-toolbar>\n @if (course) {\n <div class=\"flex flex-col\">\n <form #courseForm=\"ngForm\" (ngSubmit)=\"update()\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 课程名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"course.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 课程描述 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"course.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <div class=\"flex gap-2\">\n <mat-form-field>\n <mat-label>一级分类</mat-label>\n <mat-select\n name=\"id\"\n [compareWith]=\"compareParentFn\"\n [(ngModel)]=\"parentCategory\"\n (selectionChange)=\"onParentCategoryChange($event)\"\n >\n @for (category of categories; track category) {\n <mat-option [value]=\"category\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\" required>\n <mat-label>二级分类</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareChildrenFn\"\n [(ngModel)]=\"selectedChildrenCategories\"\n #select=\"matSelect\"\n (selectionChange)=\"onChildCategoryChange($event)\"\n >\n @for (item of childrenCategories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label>类型</mat-label>\n <mat-select name=\"type\" [(ngModel)]=\"course.type\" required>\n @for (item of courseType; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (course.type && course.type.toString() !== 'ONLINE') {\n <mat-form-field appearance=\"fill\" ngModelGroup=\"classroom\">\n <mat-label>教室</mat-label>\n <mat-select\n name=\"id\"\n [(ngModel)]=\"course.classroom\"\n [compareWith]=\"compareClassroom\"\n (selectionChange)=\"onClassroomSelected($event)\"\n required\n >\n <mat-optgroup label=\"自有教室\">\n @for (classroom of classrooms; track classroom) {\n <mat-option [value]=\"classroom\">\n <div class=\"flex gap-3\">\n <span>{{ classroom.name }}</span>\n <span> {{ classroom.address }}</span>\n </div>\n </mat-option>\n }\n </mat-optgroup>\n <mat-optgroup label=\"已购教室\">\n @for (item of bookedClassrooms; track item) {\n <mat-option [value]=\"item\">\n <div class=\"flex flex-col py-3\">\n <span class=\"font-bold\"> {{ item.address }} {{ item.room }}室</span>\n <span class=\"text-md\"> {{ item.startAt }} - {{ item.endAt }}</span>\n </div>\n </mat-option>\n }\n </mat-optgroup>\n </mat-select>\n </mat-form-field>\n }\n </form>\n </div>\n <div>\n <button mat-flat-button (click)=\"update()\">保存</button>\n </div>\n }\n</rolatech-course-manage-content>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { findLastIndex } from 'lodash';\n\nimport {\n ConfirmationDialogComponent,\n ImagePreviewDialogComponent,\n MediaListComponent,\n MediaListItemComponent,\n ToolbarComponent,\n} from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { CourseService } from '../../../services';\nimport { Media, CourseStatus, CourseType } from '../../../interfaces';\n\nconst SIZE = 10 * 1024 * 1024; // file slice size 10MB\n\n@Component({\n selector: 'rolatech-course-manage-media',\n templateUrl: './course-manage-media.component.html',\n styleUrls: ['./course-manage-media.component.scss'],\n imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, CourseManageContentComponent],\n})\nexport class CourseManageMediaComponent implements OnInit {\n route = inject(ActivatedRoute);\n courseService = inject(CourseService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n id: string;\n isUploading = false;\n isLoading = false;\n media: Media[] = [];\n status = CourseStatus;\n courseType: any = CourseType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n }\n ngOnInit(): void {\n this.find();\n }\n find() {\n this.courseService.get(this.id).subscribe({\n next: (res: any) => {\n this.media = res.data.media || [];\n },\n });\n }\n onImageClick(i: any) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {});\n }\n private createFileChunk(file: any, size = SIZE) {\n const fileChunkList: any = [];\n let cur = 0;\n while (cur < file.size) {\n fileChunkList.push({ file: file.slice(cur, cur + size) });\n cur += size;\n }\n return fileChunkList;\n }\n\n onUploadMedia2(event: any) {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => {};\n\n const fileChunkList = this.createFileChunk(file);\n fileChunkList.forEach((item) => {});\n }\n onUploadMedia(event: any) {\n const file = event.target.files[0];\n // 5MB * 1024 * 1024 = 5242880\n // if (file?.size > 5242880) {\n // this.snackBar.open('尺寸过大, 请修改后上传');\n // this.isUploading = false;\n // return;\n // }\n\n if (file) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img: any = new Image();\n img.onload = () => {\n this.media.push({\n url: img.src,\n alt: 'upload image',\n width: img.width,\n height: img.height,\n });\n\n this.isUploading = true;\n };\n img.src = reader.result; // This is the data URL\n };\n this.courseService.uploadMedia(this.id, formData).subscribe({\n next: (res: any) => {\n this.isUploading = false;\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e: any) => {\n this.isUploading = false;\n this.snackBar.open('上传失败: ' + e.message);\n },\n });\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onMediaDelete(item: any) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: '确定删除这张课程图片吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.deleteMedia(this.id, item.id).subscribe({\n next: (res) => {\n this.media = this.media.filter((m) => m.id !== item.id);\n this.snackBar.open('删除成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-course-manage-content>\n <rolatech-toolbar title=\"图片信息\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div>\n <p>*图片文件大小限制在5MB以下*</p>\n <rolatech-media-list (upload)=\"onUploadMedia($event)\" [isUploading]=\"isUploading\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete(item)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n</rolatech-course-manage-content>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Observable, Observer, concatMap, from, map, take } from 'rxjs';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { CourseService } from '../../../services';\nimport {\n CourseSectionItemComponent,\n CourseSectionLectureItemComponent,\n CourseSectionLectureVideoDialogComponent,\n} from '../../../components';\nimport { CourseSection } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-course-manage-section',\n templateUrl: './course-manage-section.component.html',\n styleUrls: ['./course-manage-section.component.scss'],\n imports: [\n CourseSectionItemComponent,\n CourseSectionLectureItemComponent,\n MatButtonModule,\n MatIconModule,\n MatProgressBarModule,\n ToolbarComponent,\n CourseManageContentComponent,\n ],\n})\nexport class CourseManageSectionComponent extends BaseComponent implements OnInit {\n courseService = inject(CourseService);\n sections: CourseSection[] = [];\n hasUnsaved = false;\n editId = '';\n lectureEditId = '';\n chunkSize = 5 * 1024 * 1024; // 切片大小\n fileIndex = 0; // 当前正在被遍历的文件下标\n ngOnInit(): void {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n this.find();\n }\n find() {\n this.courseService.getCourseSection(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.sections = res.data;\n }\n },\n });\n }\n addSection() {\n const section = {\n title: '',\n description: '',\n };\n this.courseService.addCourseSection(this.id, section).subscribe({\n next: (res: any) => {\n this.sections.push(res.data);\n this.editId = res.data.id;\n },\n });\n this.hasUnsaved = false;\n }\n onCancel(event: any) {\n this.sections.pop();\n this.hasUnsaved = false;\n }\n onSectionSave(event: any) {\n const { id } = event;\n this.courseService.updateCourseSection(id, event).subscribe({\n next: (res) => {\n this.hasUnsaved = false;\n this.snackBarService.open('保存成功');\n },\n });\n this.hasUnsaved = false;\n }\n onSectionEdit(event: any) {\n this.editId = event.id;\n // this.editIndex = this.sections.find((item: any) => item.id === event.id);\n }\n onSectionDelete(event: any) {\n const { id } = event;\n\n const options = {\n title: '确认删除吗',\n message: '删除这个章节吗?',\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n const data = {\n name: res,\n };\n this.courseService.deleteCourseSection(id).subscribe({\n next: (res) => {\n this.sections.pop();\n\n this.hasUnsaved = false;\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n addLecture(section: any) {\n const lecture = {\n title: '',\n type: 'VIDEO',\n };\n this.courseService.addLecture(section.id, lecture).subscribe({\n next: (res: any) => {\n this.lectureEditId = res.data.id;\n if (section.lectures) {\n section.lectures.push(res.data);\n } else {\n const lectures: any = [];\n lectures.push(res.data);\n section.lectures = lectures;\n }\n },\n });\n }\n onAddLecture(event: any) {}\n onLectureSave(lecture: any) {\n this.courseService.updateLecture(lecture.id, lecture).subscribe({\n next: (res: any) => {\n this.snackBarService.open('保存成功');\n },\n });\n }\n onLectureEdit(lecture: any) {}\n onMediaEdit(lecture: any, video: any) {\n const { id } = lecture;\n const options = {\n title: lecture.title,\n cancelText: '取消',\n confirmText: '保存',\n data: lecture,\n width: '80vw',\n height: '100%',\n component: CourseSectionLectureVideoDialogComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n // this.courseService.deleteLecture(id).subscribe({\n // next: (res) => {},\n // error: (error) => {\n // this.snackBarService.open(error.message);\n // },\n // });\n }\n },\n });\n }\n onLectureDelete(section: any, lecture: any) {\n const { id } = lecture;\n const options = {\n title: '确认删除吗',\n message: '删除这一小节吗?',\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.courseService.deleteLecture(id).subscribe({\n next: (res) => {\n const index = section.lectures.findIndex((item: any) => item.id === id);\n section.lectures.splice(index, 1);\n this.hasUnsaved = false;\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n onMediaUploadInit(lecture: any, event: any) {\n const file = event.data.target.files[0];\n\n if (!file) {\n return;\n }\n const item = {\n url: URL.createObjectURL(file),\n };\n lecture.item = item;\n lecture.isUploading = true;\n lecture.item.progress = 0;\n\n const reader = new FileReader();\n if (reader.readyState === FileReader.EMPTY) {\n reader.onload = async (e: any) => {\n const fileBuffer = e.target.result;\n crypto.subtle.digest('SHA-256', fileBuffer).then((res) => {\n const hashArray = Array.from(new Uint8Array(res));\n const hashHex = hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('');\n const data: any = { hash: hashHex, filename: file.name, fileType: file.type };\n this.courseService.uploadVideoInit(lecture.id, data).subscribe({\n next: (res: any) => {\n this.uploadPart(lecture, res.data.uploadId, file);\n },\n error: (e) => {},\n });\n });\n };\n reader.onerror = (error) => {};\n reader.readAsArrayBuffer(file);\n }\n }\n uploadFile(lecture: any, file: any, index: number, uploadId: string) {\n const reader = new FileReader();\n return new Observable((observer: Observer<FormData>) => {\n reader.readAsArrayBuffer(file);\n reader.onload = (e: any) => {\n const fileBuffer = e.target.result;\n crypto.subtle.digest('SHA-256', fileBuffer).then((res) => {\n const hashArray = Array.from(new Uint8Array(res));\n const hashHex = hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('');\n const formData: any = new FormData();\n formData.append('file', file);\n formData.append('uploadId', uploadId);\n formData.append('number', index + 1);\n formData.append('hash', hashHex);\n\n this.courseService.uploadVideoPartsToLecture(lecture.id, formData).subscribe({\n next: (res: any) => {\n observer.next(res);\n observer.complete();\n },\n error: (e) => {\n this.snackBarService.open('上传失败: ' + e.message);\n },\n });\n });\n };\n reader.onerror = (error) => {\n this.snackBarService.open('上传失败: ' + error);\n };\n });\n }\n uploadPart(lecture: any, uploadId: string, file: any) {\n let uploadedCount = 0;\n const fileChunkList = this.createFileChunk(file);\n const numberOfChunks = fileChunkList.length;\n from(fileChunkList)\n .pipe(\n concatMap((val: any, index) => this.uploadFile(lecture, val.file, index, uploadId)),\n take(numberOfChunks),\n )\n .subscribe((res) => {\n uploadedCount++;\n const p = ((uploadedCount / numberOfChunks) * 100).toFixed(0);\n lecture.item.progress = parseFloat(p);\n if (uploadedCount === numberOfChunks) {\n this.completePartUpload(lecture, { uploadId });\n }\n });\n }\n completePartUpload(lecture: any, data: any) {\n data.duration = lecture.item.duration;\n this.courseService.completePartUpload(lecture.id, data).subscribe({\n next: (res: any) => {\n lecture.isUploading = false;\n lecture.item.id = res.data.id;\n },\n error: (e) => {\n this.snackBarService.open('上传失败: ' + e.message);\n },\n });\n }\n\n onMediaUpload(lecture: any, event: any) {\n const lectureId = event.id;\n const file = event.data.target.files[0];\n if (!file) {\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.uploadVideoToLecture(lectureId, formData).subscribe({\n next: (res: any) => {\n lecture.isUploading = false;\n lecture.item = res.data;\n },\n error: (e) => {\n lecture.isUploading = false;\n this.snackBarService.open('上传失败: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {};\n }\n onMediaDelete(lecture: any, event: any) {\n // lecture.item = null;\n const { id } = event;\n const options = {\n title: '确认删除吗',\n message: '删除这个视频吗?',\n cancelText: '取消',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.courseService.deleteLectureVideo(id).subscribe({\n next: (res) => {\n lecture.item = null;\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n createFileChunk(file: any, size = this.chunkSize) {\n const fileChunkList: any = [];\n let count = 0;\n while (count < file.size) {\n fileChunkList.push({\n file: file.slice(count, count + size),\n });\n count += size;\n }\n return fileChunkList;\n }\n}\n","<rolatech-course-manage-content>\n <rolatech-toolbar title=\"章节\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track $index) {\n <div class=\"bg-[--rt-raised-background] p-2 mb-2 rounded-lg\">\n <rolatech-course-section-item\n [section]=\"section\"\n (edit)=\"onSectionEdit($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [editId]=\"editId\"\n >\n <div\n class=\"bg-[--rt-base-background] md:ml-8 mt-3 rounded-md divide-y divide-[--rt-10-percent-layer] divide-dashed\"\n >\n @if (section?.lectures) {\n @for (lecture of section.lectures; track $index) {\n <div>\n <rolatech-course-section-lecture-item\n [lecture]=\"lecture\"\n (save)=\"onLectureSave($event)\"\n (delete)=\"onLectureDelete(section, $event)\"\n (edit)=\"onLectureEdit($event)\"\n (upload)=\"onMediaUploadInit(lecture, $event)\"\n (mediaEdit)=\"onMediaEdit(lecture, $event)\"\n (deleteMedia)=\"onMediaDelete(lecture, $event)\"\n [editId]=\"lectureEditId\"\n ></rolatech-course-section-lecture-item>\n </div>\n }\n }\n <div class=\"p-3\">\n <button mat-flat-button class=\"max-h-8\" (click)=\"addLecture(section)\">\n <mat-icon>add</mat-icon>\n <span>增加小节</span>\n </button>\n </div>\n </div>\n </rolatech-course-section-item>\n </div>\n }\n </div>\n @if (!hasUnsaved) {\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>增加章节</span>\n </button>\n }\n </div>\n</rolatech-course-manage-content>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { RouterLink, RouterLinkActive, RouterOutlet, ActivatedRoute } from '@angular/router';\nimport { CourseService } from '../../../services';\nimport { Course, CourseStatus } from '../../../interfaces';\nimport { BaseComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-course-manage-layout',\n templateUrl: './course-manage-layout.component.html',\n styleUrl: './course-manage-layout.component.scss',\n imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet],\n})\nexport class CourseManageLayoutComponent extends BaseComponent implements OnInit {\n course!: Course;\n submitted = false;\n accepted = false;\n isDraft = false;\n courseService = inject(CourseService);\n\n ngOnInit(): void {\n this.get();\n }\n get() {\n this.courseService.get(this.id).subscribe({\n next: (res: any) => {\n this.course = res.data;\n this.updateStatus();\n },\n });\n }\n updateStatus() {\n this.isDraft = this.course.status.toString() === 'DRAFT' || this.course.status.toString() === 'PENDING';\n this.accepted = this.course.status.toString() === 'ACCEPTED';\n }\n submitForReview() {\n this.courseService.review(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('提交成功, 等待审核');\n\n this.course.status = CourseStatus['审核中' as keyof typeof CourseStatus];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n publish() {\n this.courseService.publish(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('发布成功');\n this.course.status = CourseStatus['已发布' as keyof typeof CourseStatus];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">课程信息</div>\n <a routerLink=\"./info\" routerLinkActive=\"manage-active\" class=\"p-2\">基本信息</a>\n <a routerLink=\"./media\" routerLinkActive=\"manage-active\" class=\"p-2\">图片</a>\n <a routerLink=\"./details\" routerLinkActive=\"manage-active\" class=\"p-2\">详情</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">课程内容</div>\n <a routerLink=\"./section\" routerLinkActive=\"manage-active\" class=\"p-2\">章节</a>\n <a routerLink=\"./schedule\" routerLinkActive=\"manage-active\" class=\"p-2\">课表</a>\n </div>\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-2\">其他信息</div>\n <a routerLink=\"./pricing\" routerLinkActive=\"manage-active\" class=\"p-2\">价格</a>\n </div>\n\n @if (isDraft) {\n <div class=\"md:mt-6 ml-3 md:ml-2\">\n <!-- <button mat-stroked-button (click)=\"publish()\">预览</button> -->\n <button mat-flat-button (click)=\"submitForReview()\">提交审核</button>\n </div>\n }\n\n @if (accepted) {\n <div class=\"md:mt-6 md:ml-2\">\n <button mat-flat-button (click)=\"publish()\">发布课程</button>\n </div>\n }\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n","import { Component, inject, OnInit, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator, MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { ConfirmationDialogComponent, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseEditDialogComponent } from '../../../components';\nimport { Course, CourseStatus } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport { InstructorService } from '../../../services/instructor.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'rolatech-course-manage-index',\n imports: [\n MatButtonModule,\n RouterLink,\n MatIconModule,\n MatTableModule,\n MatMenuModule,\n MatPaginatorModule,\n ToolbarComponent,\n SpinnerComponent,\n ],\n templateUrl: './course-manage-index.component.html',\n styleUrl: './course-manage-index.component.scss',\n})\nexport class CourseManageIndexComponent implements OnInit {\n paginator = viewChild(MatPaginator);\n instructorService = inject(InstructorService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n courseService = inject(CourseService);\n isLoading = false;\n isSearch = false;\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n dataSource = new MatTableDataSource<any>();\n courses: Course[] = [];\n displayedColumns: string[] = ['name', 'status', 'createdAt', 'actions'];\n orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n status: any = CourseStatus;\n orderString = 'createdAt desc';\n classrooms: any;\n\n ngOnInit(): void {\n this.find(null);\n }\n find(event?: PageEvent | null): any {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const options = {\n page,\n limit,\n sort,\n };\n this.courseService.me(options).subscribe({\n next: (res: any) => {\n this.courses = res.data;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBar.open(e.message);\n },\n });\n }\n findClassrooms() {\n this.instructorService.findClassrooms({}).subscribe({\n next: (res) => {\n this.classrooms = res.data;\n },\n });\n }\n start(course: any) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '开始课程',\n message: `确定开始 ${course.name} 吗?`,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.start(course.id).subscribe({\n next: (res) => {\n const index = this.courses.findIndex((item) => item.id === course.id);\n const status = CourseStatus[CourseStatus.STARTED];\n this.courses[index].status = status;\n this.snackBar.open('开始成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n stop(course: any) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '结束课程',\n message: `确定结束 ${course.name} 吗?`,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.finish(course.id).subscribe({\n next: (res) => {\n const index = this.courses.findIndex((item) => item.id === course.id);\n const status = CourseStatus[CourseStatus.ENDED];\n this.courses[index].status = status;\n this.snackBar.open('结束成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n edit(item: any) {\n this.courseService.get(item.id).subscribe({\n next: (res: any) => {\n const dialogRef = this.dialog.open(CourseEditDialogComponent, {\n width: '90%',\n height: '90%',\n data: {\n title: '编辑课程',\n course: res.data,\n classrooms: this.classrooms,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n // this.courseService.update(this.id).subscribe({\n // next: (res) => {\n // this.snackBar.open('删除成功');\n // this.router.navigateByUrl('/categories');\n // },\n // error: (e) => {\n // this.snackBar.open(e.message);\n // },\n // });\n }\n });\n },\n });\n }\n delete(course: Course) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除课程',\n message: `确定删除 ${course.name} 吗?`,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.delete(course.id).subscribe({\n next: (res) => {\n const index = this.courses.findIndex((item) => item.id === course.id);\n this.courses.splice(index, 1);\n this.dataSource.data = this.courses;\n this.length--;\n this.snackBar.open('删除成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-toolbar title=\"课程\">\n <div class=\"flex items-center gap-2\">\n <button mat-button routerLink=\"./create\">\n <mat-icon>add</mat-icon>\n 创建课程\n </button>\n <a routerLink=\"./reviews\" class=\"hover:underline hover:text-orange-600 text-sm font-medium\">审核记录</a>\n </div>\n</rolatech-toolbar>\n@if (isLoading) {\n <div class=\"flex justify-center items-center\">\n <rolatech-spinner></rolatech-spinner>\n </div>\n} @else {\n <table mat-table [dataSource]=\"courses\">\n <!-- name Column -->\n <ng-container matColumnDef=\"name\" sticky>\n <th mat-header-cell *matHeaderCellDef>标题</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.name }}</td>\n </ng-container>\n <!-- status Column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>状态</th>\n <td mat-cell *matCellDef=\"let item\">{{ status[item.status] }}</td>\n </ng-container>\n <!-- createdAt Column -->\n <ng-container matColumnDef=\"createdAt\">\n <th mat-header-cell *matHeaderCellDef>创建日期</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.createdAt }}</td>\n </ng-container>\n <!-- actions Column -->\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">操作</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n aria-label=\"Example icon-button with a menu\"\n (click)=\"$event.stopPropagation()\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\n @if (item.status === 'ACTIVE') {\n <button mat-menu-item (click)=\"start(item)\">\n <span> 开始 </span>\n </button>\n }\n @if (item.status === 'STARTED') {\n <button mat-menu-item (click)=\"stop(item)\">\n <span> 结束 </span>\n </button>\n }\n @if (item.status !== 'ACTIVE') {\n <button mat-menu-item (click)=\"delete(item)\">\n <span> 删除 </span>\n </button>\n }\n <button mat-menu-item routerLink=\"./{{ item.id }}/manage/info\">\n <span> 更多... </span>\n </button>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n routerLink=\"./{{ row.id }}/manage/info\"\n class=\"hover:bg-[--rt-raised-background] cursor-pointer\"\n ></tr>\n </table>\n <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { Media } from '@rolatech/angular-common';\nimport {\n BaseComponent,\n ImagePreviewDialogComponent,\n MediaListComponent,\n MediaListItemComponent,\n ToolbarComponent,\n} from '@rolatech/angular-components';\nimport { findLastIndex } from 'lodash';\nimport { CourseService, CategoryService } from '../../../services';\nimport { InstructorService } from '../../../services/instructor.service';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CourseCategory } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-course-manage-create',\n imports: [\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MediaListComponent,\n MediaListItemComponent,\n MatButtonModule,\n ],\n templateUrl: './course-manage-create.component.html',\n styleUrl: './course-manage-create.component.scss',\n})\nexport class CourseManageCreateComponent extends BaseComponent implements OnInit {\n courseService = inject(CourseService);\n categoryService = inject(CategoryService);\n instructorService = inject(InstructorService);\n isUploading = false;\n media: Media[] = [];\n selectedCategoyIds!: string[];\n categories!: CourseCategory[];\n classrooms: any;\n selectedClassroom: any;\n parentCategory!: CourseCategory;\n childrenCategories!: CourseCategory[];\n selectedChildrenCategories!: CourseCategory[];\n courseType = [\n {\n key: 'ONLINE',\n value: '线上',\n },\n {\n key: 'OFFLINE',\n value: '线下',\n },\n {\n key: 'MIXED',\n value: '混合',\n },\n ];\n // course: any;\n course: any = {};\n\n ngOnInit(): void {\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n this.findClassrooms();\n }\n findClassrooms() {\n this.instructorService.findClassrooms({}).subscribe({\n next: (res) => {\n this.classrooms = res.data;\n },\n });\n }\n onMediaDelete(event: any) {\n const index = this.media.findIndex((item) => item.url === event.url);\n this.media.splice(index, 1);\n }\n create() {\n if (this.media.length <= 0) {\n this.snackBarService.open('图片信息不能为空');\n return;\n }\n const data = {\n ...this.course,\n media: this.media,\n categories: [...this.selectedChildrenCategories],\n };\n this.courseService.create(data).subscribe({\n next: (res) => {\n this.snackBarService.open('保存成功');\n this.router.navigate([`../${res.data.id}/manage/info`], {\n relativeTo: this.route,\n });\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n\n onParentCategoryChange(event: any) {\n this.parentCategory.id = event.value;\n this.childrenCategories = event.value.children;\n }\n onChildCategoryChange(event: any) {\n this.selectedChildrenCategories = event.value;\n }\n onClassroomSelected(event: any) {\n this.selectedClassroom = event.value;\n }\n onImageClick(i: any) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {});\n }\n onUpload(event: any) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (this.media) {\n (this.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n } else {\n this.media = [];\n (this.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n }\n\n this.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n\n this.courseService.upload(formData).subscribe({\n next: (res: any) => {\n this.isUploading = false;\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e: any) => {\n this.isUploading = false;\n this.snackBarService.open('上传失败: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n}\n","<rolatech-toolbar title=\"创建课程\" link=\"../\"> </rolatech-toolbar>\n<div class=\"p-3\">\n <section class=\"sample-app-content\">\n <form #courseForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> 课程名称 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"course.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> 课程描述 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"course.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <div class=\"flex gap-3\">\n <mat-form-field appearance=\"fill\" required>\n <mat-label>一级分类</mat-label>\n <mat-select name=\"id\" [(ngModel)]=\"parentCategory\" (selectionChange)=\"onParentCategoryChange($event)\">\n @for (item of categories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" required>\n <mat-label>二级分类</mat-label>\n <mat-select multiple name=\"id\" #select=\"matSelect\" (selectionChange)=\"onChildCategoryChange($event)\">\n @for (item of childrenCategories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label>类型</mat-label>\n <mat-select name=\"type\" [(ngModel)]=\"course.type\" required>\n @for (item of courseType; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (course.type && course.type.toString() !== 'ONLINE') {\n <mat-form-field appearance=\"fill\" ngModelGroup=\"classroom\">\n <mat-label>教室</mat-label>\n <mat-select [(ngModel)]=\"course.classroom\" name=\"id\" required>\n @for (classroom of classrooms; track classroom) {\n <mat-option [value]=\"classroom\" (selectionChange)=\"onClassroomSelected($event)\">\n <div class=\"flex gap-3\">\n <span>{{ classroom.name }}</span>\n <span> {{ classroom.address }}</span>\n </div>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n <div>\n <div class=\"py-3\">\n <div class=\"text-xl font-medium\">图片信息</div>\n <div class=\"text-sm font-thin text-gray-500\">图片文件大小限制在5MB以下</div>\n </div>\n <rolatech-media-list (upload)=\"onUpload($event)\" [isUploading]=\"isUploading\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete($event)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </form>\n </section>\n <div class=\"mt-3\">\n <button mat-flat-button class=\"w-28\" (click)=\"create()\">创建</button>\n </div>\n</div>\n","import { Component, inject, OnInit, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginatorModule, PageEvent, MatPaginator } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableModule, MatTableDataSource } from '@angular/material/table';\nimport { RouterLink } from '@angular/router';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { Course, CourseStatus } from '../../../interfaces';\nimport { CourseService } from '../../../services';\n\n@Component({\n selector: 'rolatech-course-manage-application',\n imports: [MatTableModule, RouterLink, MatPaginatorModule, ToolbarComponent],\n templateUrl: './course-manage-application.component.html',\n styleUrl: './course-manage-application.component.scss',\n})\nexport class CourseManageApplicationComponent extends BaseComponent implements OnInit {\n courseService = inject(CourseService);\n isLoading = false;\n isSearch = false;\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n dataSource = new MatTableDataSource<any>();\n courses: Course[] = [];\n displayedColumns: string[] = ['name', 'status', 'createdAt', 'actions'];\n paginator = viewChild(MatPaginator);\n\n orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n status: any = CourseStatus;\n orderString = 'createdAt desc';\n ngOnInit(): void {\n this.find(null);\n }\n find(event?: PageEvent | null): any {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const filter = 'status:active';\n const options = {\n page,\n limit,\n sort,\n filter,\n };\n this.courseService.findAllRequests(options).subscribe({\n next: (res: any) => {\n this.courses = res.data;\n this.dataSource.data = this.courses;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBarService.open(e.message);\n },\n });\n }\n}\n","<rolatech-toolbar title=\"学生求课\"></rolatech-toolbar>\n<table mat-table [dataSource]=\"dataSource\">\n <!-- name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>标题</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.title }}</td>\n </ng-container>\n\n <!-- status Column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>状态</th>\n <td mat-cell *matCellDef=\"let item\">{{ status[item.status] }}</td>\n </ng-container>\n\n <!-- createdAt Column -->\n <ng-container matColumnDef=\"createdAt\">\n <th mat-header-cell *matHeaderCellDef>创建日期</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.createdAt }}</td>\n </ng-container>\n\n <!-- actions Column -->\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">详情</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <!-- <a (click)=\"edit(item)\"> 编辑 </a> -->\n <!-- <a [routerLink]=\"['../', item.id]\"> 详情 </a> -->\n <a routerLink=\"/console/courses/applications/{{ item.id }}\" class=\"underline\"> 详情 </a>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n","import { Component } from '@angular/core';\nimport { ToolbarComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-course-manage-application-detail',\n imports: [ToolbarComponent],\n templateUrl: './course-manage-application-detail.component.html',\n styleUrl: './course-manage-application-detail.component.scss',\n})\nexport class CourseManageApplicationDetailComponent {}\n","<rolatech-toolbar title=\"详情\" link=\"../\"></rolatech-toolbar>\n","import { Routes } from '@angular/router';\nimport { CourseManageDetailsComponent } from './course-manage-details/course-manage-details.component';\nimport { CourseManageScheduleComponent } from './course-manage-schedule/course-manage-schedule.component';\nimport { CourseManagePricingComponent } from './course-manage-pricing/course-manage-pricing.component';\nimport { CourseManageInfoComponent } from './course-manage-info/course-manage-info.component';\nimport { CourseManageMediaComponent } from './course-manage-media/course-manage-media.component';\nimport { CourseManageSectionComponent } from './course-manage-section/course-manage-section.component';\nimport { CourseManageLayoutComponent } from './course-manage-layout/course-manage-layout.component';\nimport { CourseManageIndexComponent } from './course-manage-index/course-manage-index.component';\nimport { CourseManageCreateComponent } from './course-manage-create/course-manage-create.component';\nimport { CourseManageApplicationComponent } from './course-manage-application/course-manage-application.component';\nimport { CourseManageApplicationDetailComponent } from './course-manage-application-detail/course-manage-application-detail.component';\n\nexport const courseManageRoutes: Routes = [\n {\n path: '',\n component: CourseManageIndexComponent,\n },\n {\n path: 'create',\n component: CourseManageCreateComponent,\n },\n {\n path: 'applications',\n component: CourseManageApplicationComponent,\n },\n {\n path: 'applications/:id',\n component: CourseManageApplicationDetailComponent,\n },\n {\n path: ':id/manage',\n component: CourseManageLayoutComponent,\n children: [\n {\n path: 'info',\n component: CourseManageInfoComponent,\n },\n {\n path: 'media',\n component: CourseManageMediaComponent,\n },\n {\n path: 'details',\n component: CourseManageDetailsComponent,\n },\n {\n path: 'pricing',\n component: CourseManagePricingComponent,\n },\n {\n path: 'schedule',\n component: CourseManageScheduleComponent,\n },\n {\n path: 'section',\n component: CourseManageSectionComponent,\n },\n ],\n },\n];\n","export * from './lib/interfaces';\nexport * from './provider';\nexport * from './lib/components';\nexport * from './lib/services';\nexport { courseRoutes } from './lib/pages/course/course.routes';\nexport { courseCategoryRoutes } from './lib/pages/course/course-category.routes';\nexport { courseManageRoutes } from './lib/pages/course-manage/course-manage.routes';\nexport const loadCourseRoutes = () => import('./lib/pages/course/course.routes').then((m) => m.courseRoutes);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["fromServices.services","i2","i1","i3","i4","i6","i7","i9","i2.CourseService","i5","i8","i2.CategoryService","i10","i11","i12","i13"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-course.mjs","sources":["../tmp-esm2022/lib/interfaces/course.js","../tmp-esm2022/lib/services/course.service.js","../tmp-esm2022/lib/services/course-section.service.js","../tmp-esm2022/lib/services/category.service.js","../tmp-esm2022/lib/services/index.js","../tmp-esm2022/provider.js","../tmp-esm2022/lib/components/course-preview/course-preview.component.js","../tmp-esm2022/lib/components/course-info/course-info.component.js","../tmp-esm2022/lib/components/course-media/course-media.component.js","../tmp-esm2022/lib/components/course-pricing/course-pricing.component.js","../tmp-esm2022/lib/components/course-action/course-action.component.js","../tmp-esm2022/lib/components/course-schedule/course-schedule.component.js","../tmp-esm2022/lib/components/course-sections/course-sections.component.js","../tmp-esm2022/lib/components/course-section-item/course-section-item.component.js","../tmp-esm2022/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.js","../tmp-esm2022/lib/components/course-section-lecture-item/course-section-lecture-item.component.js","../tmp-esm2022/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.js","../tmp-esm2022/lib/components/pricing-item/pricing-item.component.js","../tmp-esm2022/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.js","../tmp-esm2022/lib/components/schedule-item/schedule-item.component.js","../tmp-esm2022/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.js","../tmp-esm2022/lib/components/course-pricing-dialog/course-pricing-dialog.component.js","../tmp-esm2022/lib/components/course-schedule-dialog/course-schedule-dialog.component.js","../tmp-esm2022/lib/components/detail-item/detail-item.component.js","../tmp-esm2022/lib/components/course-details-dialog/course-details-dialog.component.js","../tmp-esm2022/lib/components/course-edit-dialog/course-edit-dialog.component.js","../tmp-esm2022/lib/components/course-details/course-details.component.js","../tmp-esm2022/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.js","../tmp-esm2022/lib/pages/course/course-detail/course-detail.component.js","../tmp-esm2022/lib/pages/course/course-layout/course-layout.component.js","../tmp-esm2022/lib/pages/course/course-section-content/course-section-content.component.js","../tmp-esm2022/lib/pages/course/course.routes.js","../tmp-esm2022/lib/pages/course/course-category/course-category.component.js","../tmp-esm2022/lib/pages/course/course-category-layout/course-category-layout.component.js","../tmp-esm2022/lib/pages/course/course-category.routes.js","../tmp-esm2022/lib/pages/course-manage/course-manage-content/course-manage-content.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-details/course-manage-details.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.js","../tmp-esm2022/lib/services/booking.service.js","../tmp-esm2022/lib/services/instructor.service.js","../tmp-esm2022/lib/pages/course-manage/course-manage-info/course-manage-info.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-media/course-manage-media.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-section/course-manage-section.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-layout/course-manage-layout.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-index/course-manage-index.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-create/course-manage-create.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-application/course-manage-application.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-application-detail/course-manage-application-detail.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-review/course-manage-review.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-review-detail/course-manage-review-detail.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage-user-index/course-manage-user-index.component.js","../tmp-esm2022/lib/pages/course-manage/course-manage.routes.js","../tmp-esm2022/index.js","../tmp-esm2022/rolatech-angular-course.js"],"sourcesContent":["export var CourseStatus;\n(function (CourseStatus) {\n CourseStatus[CourseStatus[\"ACTIVE\"] = '已发布'] = \"ACTIVE\";\n CourseStatus[CourseStatus[\"ACCEPTED\"] = '已通过'] = \"ACCEPTED\";\n CourseStatus[CourseStatus[\"AWAITING\"] = '审核中'] = \"AWAITING\";\n CourseStatus[CourseStatus[\"PENDING\"] = '审核中'] = \"PENDING\";\n CourseStatus[CourseStatus[\"STARTED\"] = '已开始'] = \"STARTED\";\n CourseStatus[CourseStatus[\"ENDED\"] = '已完成'] = \"ENDED\";\n CourseStatus[CourseStatus[\"DELETED\"] = '已删除'] = \"DELETED\";\n CourseStatus[CourseStatus[\"DRAFT\"] = '草稿'] = \"DRAFT\";\n})(CourseStatus || (CourseStatus = {}));\nexport var CourseApplicationStatus;\n(function (CourseApplicationStatus) {\n CourseApplicationStatus[\"AWAITING\"] = \"\\u5BA1\\u6838\\u4E2D\";\n CourseApplicationStatus[\"ACTIVE\"] = \"\\u5DF2\\u901A\\u8FC7\";\n CourseApplicationStatus[\"REJECTED\"] = \"\\u5DF2\\u62D2\\u7EDD\";\n})(CourseApplicationStatus || (CourseApplicationStatus = {}));\nexport var CourseReviewStatus;\n(function (CourseReviewStatus) {\n CourseReviewStatus[\"ACCEPTED\"] = \"\\u5DF2\\u901A\\u8FC7\";\n CourseReviewStatus[\"REJECTED\"] = \"\\u672A\\u901A\\u8FC7\";\n})(CourseReviewStatus || (CourseReviewStatus = {}));\nexport var CourseSectionLectureContentType;\n(function (CourseSectionLectureContentType) {\n CourseSectionLectureContentType[CourseSectionLectureContentType[\"VIDEO\"] = '视频'] = \"VIDEO\";\n CourseSectionLectureContentType[CourseSectionLectureContentType[\"ARTICLE\"] = '文章'] = \"ARTICLE\";\n})(CourseSectionLectureContentType || (CourseSectionLectureContentType = {}));\n// export const CourseType = [\n// {\n// key: 'ONLINE',\n// value: '线上',\n// },\n// {\n// key: 'OFFLINE',\n// value: '线下',\n// },\n// {\n// key: 'MIXED',\n// value: '混合',\n// },\n// ];\nexport var CourseType;\n(function (CourseType) {\n CourseType[CourseType[\"ONLINE\"] = '线上'] = \"ONLINE\";\n CourseType[CourseType[\"OFFLINE\"] = '线下'] = \"OFFLINE\";\n CourseType[CourseType[\"MIXED\"] = '混合'] = \"MIXED\";\n})(CourseType || (CourseType = {}));\nexport const ScheduleDate = [\n '00:00',\n '00:15',\n '00:30',\n '00:45',\n '01:00',\n '01:15',\n '01:30',\n '01:45',\n '02:00',\n '02:15',\n '02:30',\n '02:45',\n '03:00',\n '03:15',\n '03:30',\n '03:45',\n '04:00',\n '04:15',\n '04:30',\n '04:45',\n '05:00',\n '05:15',\n '05:30',\n '05:45',\n '06:00',\n '06:15',\n '06:30',\n '06:45',\n '07:00',\n '07:15',\n '07:30',\n '07:45',\n '08:00',\n '08:15',\n '08:30',\n '08:45',\n '09:00',\n '09:15',\n '09:30',\n '09:45',\n '10:00',\n '10:15',\n '10:30',\n '10:45',\n '11:00',\n '11:15',\n '11:30',\n '11:45',\n '12:00',\n '12:15',\n '12:30',\n '12:45',\n '13:00',\n '13:15',\n '13:30',\n '13:45',\n '14:00',\n '14:15',\n '14:30',\n '14:45',\n '15:00',\n '15:15',\n '15:30',\n '15:45',\n '16:00',\n '16:15',\n '16:30',\n '16:45',\n '17:00',\n '17:15',\n '17:30',\n '17:45',\n '18:00',\n '18:15',\n '18:30',\n '18:45',\n '19:00',\n '19:15',\n '19:30',\n '19:45',\n '20:00',\n '20:15',\n '20:30',\n '20:45',\n '21:00',\n '21:15',\n '21:30',\n '21:45',\n '22:00',\n '22:15',\n '22:30',\n '22:45',\n '23:00',\n '23:15',\n '23:30',\n '23:45',\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9pbnRlcmZhY2VzL2NvdXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxREEsTUFBTSxDQUFOLElBQVksWUFTWDtBQVRELFdBQVksWUFBWTtJQUN0QixzQ0FBYyxLQUFLLFlBQUEsQ0FBQTtJQUNuQix3Q0FBZ0IsS0FBSyxjQUFBLENBQUE7SUFDckIsd0NBQWdCLEtBQUssY0FBQSxDQUFBO0lBQ3JCLHVDQUFlLEtBQUssYUFBQSxDQUFBO0lBQ3BCLHVDQUFlLEtBQUssYUFBQSxDQUFBO0lBQ3BCLHFDQUFhLEtBQUssV0FBQSxDQUFBO0lBQ2xCLHVDQUFlLEtBQUssYUFBQSxDQUFBO0lBQ3BCLHFDQUFhLElBQUksV0FBQSxDQUFBO0FBQ25CLENBQUMsRUFUVyxZQUFZLEtBQVosWUFBWSxRQVN2QjtBQUNELE1BQU0sQ0FBTixJQUFZLHVCQUlYO0FBSkQsV0FBWSx1QkFBdUI7SUFDakMsMERBQWdCLENBQUE7SUFDaEIsd0RBQWMsQ0FBQTtJQUNkLDBEQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFKVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSWxDO0FBUUQsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1QixxREFBZ0IsQ0FBQTtJQUNoQixxREFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQTJCRCxNQUFNLENBQU4sSUFBWSwrQkFHWDtBQUhELFdBQVksK0JBQStCO0lBQ3pDLDJFQUFhLElBQUksV0FBQSxDQUFBO0lBQ2pCLDZFQUFlLElBQUksYUFBQSxDQUFBO0FBQ3JCLENBQUMsRUFIVywrQkFBK0IsS0FBL0IsK0JBQStCLFFBRzFDO0FBK0JELDhCQUE4QjtBQUM5QixNQUFNO0FBQ04scUJBQXFCO0FBQ3JCLG1CQUFtQjtBQUNuQixPQUFPO0FBQ1AsTUFBTTtBQUNOLHNCQUFzQjtBQUN0QixtQkFBbUI7QUFDbkIsT0FBTztBQUNQLE1BQU07QUFDTixvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLE9BQU87QUFDUCxLQUFLO0FBQ0wsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNwQixrQ0FBYyxJQUFJLFlBQUEsQ0FBQTtJQUNsQixtQ0FBZSxJQUFJLGFBQUEsQ0FBQTtJQUNuQixpQ0FBYSxJQUFJLFdBQUEsQ0FBQTtBQUNuQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckI7QUFDRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0NBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdXJzZUNhdGVnb3J5IH0gZnJvbSAnLi9jYXRlZ29yeSc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJy4vbWVkaWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY2F0ZWdvcmllczogQ291cnNlQ2F0ZWdvcnlbXTtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBzdGF0dXM6IENvdXJzZVN0YXR1cyB8IHN0cmluZztcbiAgbWVkaWE6IE1lZGlhW107XG4gIHR5cGU6IENvdXJzZVR5cGU7XG4gIGluc3RydWN0b3JJZDogc3RyaW5nO1xuICBjbGFzc3Jvb206IENvdXJzZUNsYXNzcm9vbTtcbiAgZGV0YWlsczogQ291cnNlRGV0YWlsW107XG4gIHByaWNpbmc6IENvdXJzZVByaWNpbmdbXTtcbiAgc2NoZWR1bGU6IENvdXJzZVNjaGVkdWxlW107XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZVByaWNpbmcge1xuICBpZDogc3RyaW5nO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZVNjaGVkdWxlIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nO1xuICBzdGFydERhdGU6IHN0cmluZztcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIHN0YXJ0QXQ6IHN0cmluZztcbiAgZW5kRGF0ZTogc3RyaW5nO1xuICBlbmRUaW1lOiBzdHJpbmc7XG4gIGVuZEF0OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZUNsYXNzcm9vbSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY29udGFjdDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBwcm92aW5jZTogc3RyaW5nO1xuICBjaXR5OiBzdHJpbmc7XG4gIGNvdW50eTogc3RyaW5nO1xuICB0b3duOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmc7XG4gIGxhdGl0dWRlOiBzdHJpbmc7XG4gIGxvbmdpdHVkZTogc3RyaW5nO1xuICBtZWRpYTogTWVkaWFbXTtcbiAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xuICByb29tPzogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gQ291cnNlU3RhdHVzIHtcbiAgQUNUSVZFID0gPGFueT4n5bey5Y+R5biDJyxcbiAgQUNDRVBURUQgPSA8YW55Piflt7LpgJrov4cnLFxuICBBV0FJVElORyA9IDxhbnk+J+WuoeaguOS4rScsXG4gIFBFTkRJTkcgPSA8YW55PiflrqHmoLjkuK0nLFxuICBTVEFSVEVEID0gPGFueT4n5bey5byA5aeLJyxcbiAgRU5ERUQgPSA8YW55Piflt7LlrozmiJAnLFxuICBERUxFVEVEID0gPGFueT4n5bey5Yig6ZmkJyxcbiAgRFJBRlQgPSA8YW55PifojYnnqL8nLFxufVxuZXhwb3J0IGVudW0gQ291cnNlQXBwbGljYXRpb25TdGF0dXMge1xuICBBV0FJVElORyA9ICflrqHmoLjkuK0nLFxuICBBQ1RJVkUgPSAn5bey6YCa6L+HJyxcbiAgUkVKRUNURUQgPSAn5bey5ouS57udJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlUmV2aWV3UmVjb3JkIHtcbiAgY29udGVudDogc3RyaW5nO1xuICBzdGF0dXM6IENvdXJzZVJldmlld1N0YXR1cztcbiAgY291cnNlOiBDb3Vyc2U7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIENvdXJzZVJldmlld1N0YXR1cyB7XG4gIEFDQ0VQVEVEID0gJ+W3sumAmui/hycsXG4gIFJFSkVDVEVEID0gJ+acqumAmui/hycsXG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZURldGFpbCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgbWVkaWE6IE1lZGlhW107XG4gIGlzVXBsb2FkaW5nPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlU2VjdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBsZWN0dXJlczogQ291cnNlU2VjdGlvbkxlY3R1cmVbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlU2VjdGlvbkxlY3R1cmUge1xuICBpZD86IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdHlwZTogQ291cnNlU2VjdGlvbkxlY3R1cmVDb250ZW50VHlwZSB8IHN0cmluZztcbiAgaXRlbTogQ291cnNlU2VjdGlvbkxlY3R1cmVWaWRlbztcbiAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xuICBwcm9ncmVzcz86IG51bWJlciB8IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZVNlY3Rpb25MZWN0dXJlSXRlbSB7XG4gIGlkOiBzdHJpbmc7XG59XG5leHBvcnQgZW51bSBDb3Vyc2VTZWN0aW9uTGVjdHVyZUNvbnRlbnRUeXBlIHtcbiAgVklERU8gPSA8YW55Pifop4bpopEnLFxuICBBUlRJQ0xFID0gPGFueT4n5paH56ugJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlU2VjdGlvbkxlY3R1cmVWaWRlbyB7XG4gIGlkPzogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgdGh1bWJuYWlsOiBzdHJpbmc7XG4gIGR1cmF0aW9uOiBudW1iZXI7XG4gIGlzVXBsb2FkaW5nPzogYm9vbGVhbjtcbiAgcHJvZ3Jlc3M6IG51bWJlciB8IDA7XG4gIGNhbkJlUHJldmlld2VkOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvTWV0YWRhdGEge1xuICBkdXJhdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBzdGFydFRpbWU/OiBzdHJpbmc7XG4gIHN0YXJ0QXQ6IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbiAgZW5kVGltZT86IHN0cmluZztcbiAgZW5kQXQ6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2luZyB7XG4gIGlkPzogc3RyaW5nO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG59XG4vLyBleHBvcnQgY29uc3QgQ291cnNlVHlwZSA9IFtcbi8vICAge1xuLy8gICAgIGtleTogJ09OTElORScsXG4vLyAgICAgdmFsdWU6ICfnur/kuIonLFxuLy8gICB9LFxuLy8gICB7XG4vLyAgICAga2V5OiAnT0ZGTElORScsXG4vLyAgICAgdmFsdWU6ICfnur/kuIsnLFxuLy8gICB9LFxuLy8gICB7XG4vLyAgICAga2V5OiAnTUlYRUQnLFxuLy8gICAgIHZhbHVlOiAn5re35ZCIJyxcbi8vICAgfSxcbi8vIF07XG5leHBvcnQgZW51bSBDb3Vyc2VUeXBlIHtcbiAgT05MSU5FID0gPGFueT4n57q/5LiKJyxcbiAgT0ZGTElORSA9IDxhbnk+J+e6v+S4iycsXG4gIE1JWEVEID0gPGFueT4n5re35ZCIJyxcbn1cbmV4cG9ydCBjb25zdCBTY2hlZHVsZURhdGUgPSBbXG4gICcwMDowMCcsXG4gICcwMDoxNScsXG4gICcwMDozMCcsXG4gICcwMDo0NScsXG5cbiAgJzAxOjAwJyxcbiAgJzAxOjE1JyxcbiAgJzAxOjMwJyxcbiAgJzAxOjQ1JyxcblxuICAnMDI6MDAnLFxuICAnMDI6MTUnLFxuICAnMDI6MzAnLFxuICAnMDI6NDUnLFxuICAnMDM6MDAnLFxuICAnMDM6MTUnLFxuICAnMDM6MzAnLFxuICAnMDM6NDUnLFxuXG4gICcwNDowMCcsXG4gICcwNDoxNScsXG4gICcwNDozMCcsXG4gICcwNDo0NScsXG4gICcwNTowMCcsXG4gICcwNToxNScsXG4gICcwNTozMCcsXG4gICcwNTo0NScsXG5cbiAgJzA2OjAwJyxcbiAgJzA2OjE1JyxcbiAgJzA2OjMwJyxcbiAgJzA2OjQ1JyxcbiAgJzA3OjAwJyxcbiAgJzA3OjE1JyxcbiAgJzA3OjMwJyxcbiAgJzA3OjQ1JyxcblxuICAnMDg6MDAnLFxuICAnMDg6MTUnLFxuICAnMDg6MzAnLFxuICAnMDg6NDUnLFxuICAnMDk6MDAnLFxuICAnMDk6MTUnLFxuICAnMDk6MzAnLFxuICAnMDk6NDUnLFxuXG4gICcxMDowMCcsXG4gICcxMDoxNScsXG4gICcxMDozMCcsXG4gICcxMDo0NScsXG4gICcxMTowMCcsXG4gICcxMToxNScsXG4gICcxMTozMCcsXG4gICcxMTo0NScsXG5cbiAgJzEyOjAwJyxcbiAgJzEyOjE1JyxcbiAgJzEyOjMwJyxcbiAgJzEyOjQ1JyxcbiAgJzEzOjAwJyxcbiAgJzEzOjE1JyxcbiAgJzEzOjMwJyxcbiAgJzEzOjQ1JyxcblxuICAnMTQ6MDAnLFxuICAnMTQ6MTUnLFxuICAnMTQ6MzAnLFxuICAnMTQ6NDUnLFxuICAnMTU6MDAnLFxuICAnMTU6MTUnLFxuICAnMTU6MzAnLFxuICAnMTU6NDUnLFxuXG4gICcxNjowMCcsXG4gICcxNjoxNScsXG4gICcxNjozMCcsXG4gICcxNjo0NScsXG4gICcxNzowMCcsXG4gICcxNzoxNScsXG4gICcxNzozMCcsXG4gICcxNzo0NScsXG5cbiAgJzE4OjAwJyxcbiAgJzE4OjE1JyxcbiAgJzE4OjMwJyxcbiAgJzE4OjQ1JyxcbiAgJzE5OjAwJyxcbiAgJzE5OjE1JyxcbiAgJzE5OjMwJyxcbiAgJzE5OjQ1JyxcblxuICAnMjA6MDAnLFxuICAnMjA6MTUnLFxuICAnMjA6MzAnLFxuICAnMjA6NDUnLFxuICAnMjE6MDAnLFxuICAnMjE6MTUnLFxuICAnMjE6MzAnLFxuICAnMjE6NDUnLFxuXG4gICcyMjowMCcsXG4gICcyMjoxNScsXG4gICcyMjozMCcsXG4gICcyMjo0NScsXG4gICcyMzowMCcsXG4gICcyMzoxNScsXG4gICcyMzozMCcsXG4gICcyMzo0NScsXG5dO1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { BaseService } from '@rolatech/angular-services';\nimport { map, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport * as i0 from \"@angular/core\";\nexport class CourseService extends BaseService {\n constructor() {\n super(...arguments);\n this.authUserService = inject(AuthUserService);\n }\n init() {\n this.endpoint = 'courses';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findSchedule(id) {\n return this.http.get(`${this.actionUrl}/${id}/schedule`, {\n withCredentials: true,\n });\n }\n findPricing(id) {\n return this.http.get(`${this.actionUrl}/${id}/pricing`, {\n withCredentials: true,\n });\n }\n addDetail(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/details`, data, {\n withCredentials: true,\n });\n }\n addBatchDetails(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/details/batch`, data, {\n withCredentials: true,\n });\n }\n findDetails(id) {\n return this.http.get(`${this.actionUrl}/${id}/details`, {\n withCredentials: true,\n });\n }\n updateDetail(id, detailId, data) {\n return this.http.put(`${this.actionUrl}/${id}/details/${detailId}`, data, {\n withCredentials: true,\n });\n }\n deleteDetail(id, detailId) {\n return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}`, {\n withCredentials: true,\n });\n }\n uploadDetailMedia(id, detailId, data) {\n return this.http.post(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteDetailMedia(id, detailId, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n review(id) {\n return this.http.post(`${this.actionUrl}/${id}/review`, {}, {\n withCredentials: true,\n });\n }\n start(id) {\n return this.http.post(`${this.actionUrl}/${id}/start`, {}, {\n withCredentials: true,\n });\n }\n finish(id) {\n return this.http.post(`${this.actionUrl}/${id}/finish`, {}, {\n withCredentials: true,\n });\n }\n publish(id) {\n return this.http.post(`${this.actionUrl}/${id}/publish`, {}, {\n withCredentials: true,\n });\n }\n upload(data) {\n return this.http.post(`${this.actionUrl}/upload`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data) {\n return this.http.post(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data) {\n return this.http.post(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n findAllApplications(options) {\n return this.http\n .get(`${this.actionUrl}/applications`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const userIds = _.uniq(_.map(res.data, 'userId')); // [12, 14, 16, 18]\n return this.findApplicationsUser(userIds).pipe(map((users) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(users.data, { id: item.userId });\n item.user = matchingUser;\n });\n return res;\n }));\n }));\n }\n findApplicationsUser(ids) {\n return this.authUserService.findPublicInfoByIds(ids);\n }\n findApplicationDetail(id) {\n return this.http.get(`${this.actionUrl}/applications/${id}`, {\n withCredentials: true,\n });\n }\n accept(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, {}, {\n withCredentials: true,\n });\n }\n reject(id, body) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n acceptApplication(id) {\n return this.http.post(`${this.actionUrl}/applications/${id}/reviews/accept`, {}, {\n withCredentials: true,\n });\n }\n rejectApplication(id, body) {\n return this.http.post(`${this.actionUrl}/applications/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n addPricing(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(id, pricingId, data) {\n return this.http.put(`${this.actionUrl}/${id}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(id, pricingId) {\n return this.http.delete(`${this.actionUrl}/${id}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n addSchedule(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/schedule`, data, {\n withCredentials: true,\n });\n }\n updateSchedule(id, scheduleId, data) {\n return this.http.put(`${this.actionUrl}/${id}/schedule/${scheduleId}`, data, {\n withCredentials: true,\n });\n }\n deleteSchedule(id, scheduleId) {\n return this.http.delete(`${this.actionUrl}/${id}/schedule/${scheduleId}`, {\n withCredentials: true,\n });\n }\n findAllReviews(options) {\n return this.http.get(`${this.actionUrl}/reviews`, {\n params: options,\n withCredentials: true,\n });\n }\n getReview(id) {\n return this.http.get(`${this.actionUrl}/reviews/${id}`, {\n withCredentials: true,\n });\n }\n findReviews(options) {\n return this.http.get(`${this.actionUrl}/reviews/me`, {\n params: options,\n withCredentials: true,\n });\n }\n countUsers(options) {\n return this.http.get(`${this.actionUrl}/users/count/by`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n return this.http.get(`${this.actionUrl}/by`, {\n params: { ids },\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(courseId) {\n return this.http.post(`${this.actionUrl}/${courseId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(courseId) {\n return this.http.delete(`${this.actionUrl}/${courseId}/wishlist`, { withCredentials: true });\n }\n findWishlistBy(courseId) {\n return this.http.get(`${this.actionUrl}/${courseId}/wishlist/by`, { withCredentials: true });\n }\n findMyCourses(options) {\n return this.http.get(`${this.actionUrl}/users`, { params: options, withCredentials: true });\n }\n findPurchasedByCourseId(courseId) {\n return this.http.get(`${this.actionUrl}/users/me/by?courseId=${courseId}`, {\n withCredentials: true,\n });\n }\n deleteFromWishlist(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, { withCredentials: true });\n }\n // Course sections\n findCourseSections(options) {\n return this.http.get(`${this.actionUrl}/sections`, { params: options, withCredentials: false });\n }\n addCourseSection(courseId, data) {\n return this.http.post(`${this.actionUrl}/${courseId}/sections`, data, { withCredentials: true });\n }\n updateCourseSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, { withCredentials: true });\n }\n deleteCourseSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, { withCredentials: true });\n }\n getCourseSection(courseId) {\n return this.http.get(`${this.actionUrl}/${courseId}/sections`, { withCredentials: false });\n }\n addLecture(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/lectures`, data, { withCredentials: true });\n }\n updateLecture(lectureId, data) {\n return this.http.put(`${this.actionUrl}/sections/lectures/${lectureId}`, data, { withCredentials: true });\n }\n deleteLecture(lectureId) {\n return this.http.delete(`${this.actionUrl}/sections/lectures/${lectureId}`, { withCredentials: true });\n }\n uploadVideoInit(lectureId, data) {\n return this.http.post(`${this.actionUrl}/sections/lectures/${lectureId}/videos/init`, data, {\n withCredentials: true,\n });\n }\n uploadVideoPartsToLecture(lectureId, data) {\n return this.http.post(`${this.actionUrl}/sections/lectures/${lectureId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n completePartUpload(lectureId, data) {\n return this.http.put(`${this.actionUrl}/sections/lectures/${lectureId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n uploadVideoToLecture(lectureId, data) {\n return this.http.post(`${this.actionUrl}/sections/lectures/${lectureId}/videos`, data, {\n withCredentials: true,\n });\n }\n deleteLectureVideo(videoId) {\n return this.http.delete(`${this.actionUrl}/sections/lectures/videos/${videoId}`, { withCredentials: true });\n }\n uploadLectureVideoThumbnail(videoId, data) {\n return this.http.post(`${this.actionUrl}/sections/lectures/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3NlcnZpY2VzL2NvdXJzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFrQixHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLGFBQWMsU0FBUSxXQUFXO0lBSDlDOztRQUlFLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBeVQzQztJQXZUVSxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJ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QUFJLENBQUMsU0FBUyxzQkFBc0IsU0FBUyxlQUFlLEVBQUUsSUFBSSxFQUFFO1lBQy9GLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxTQUFpQixFQUFFLElBQVM7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLHNCQUFzQixTQUFTLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDMUYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQVk7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDZCQUE2QixPQUFPLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFDRCwyQkFBMkIsQ0FBQyxPQUFZLEVBQUUsSUFBYztRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsNkJBQTZCLE9BQU8sWUFBWSxFQUFFLElBQUksRUFBRTtZQUM3RixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXpUVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuXG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdjb3Vyc2VzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGZpbmRTY2hlZHVsZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9zY2hlZHVsZWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUHJpY2luZyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wcmljaW5nYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZERldGFpbChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZEJhdGNoRGV0YWlscyhpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzL2JhdGNoYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmREZXRhaWxzKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHNgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlRGV0YWlsKGlkOiBzdHJpbmcsIGRldGFpbElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy8ke2RldGFpbElkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVEZXRhaWwoaWQ6IHN0cmluZywgZGV0YWlsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy8ke2RldGFpbElkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWREZXRhaWxNZWRpYShpZDogc3RyaW5nLCBkZXRhaWxJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvJHtkZXRhaWxJZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlRGV0YWlsTWVkaWEoaWQ6IHN0cmluZywgZGV0YWlsSWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzLyR7ZGV0YWlsSWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcmV2aWV3KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld2AsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHN0YXJ0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3N0YXJ0YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgZmluaXNoKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2ZpbmlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHB1Ymxpc2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgdXBsb2FkKGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdXBsb2FkYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZE1lZGlhKGlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGltcG9ydEZyb21FeGNlbChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2V4Y2VsYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZyb21FeGNlbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9saXN0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGxBcHBsaWNhdGlvbnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2FwcGxpY2F0aW9uc2AsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXNlcklkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3VzZXJJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRBcHBsaWNhdGlvbnNVc2VyKHVzZXJJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHVzZXJzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVXNlciA9IF8uZmluZCh1c2Vycy5kYXRhLCB7IGlkOiBpdGVtLnVzZXJJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnVzZXIgPSBtYXRjaGluZ1VzZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRBcHBsaWNhdGlvbnNVc2VyKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmZpbmRQdWJsaWNJbmZvQnlJZHMoaWRzKTtcbiAgfVxuICBmaW5kQXBwbGljYXRpb25EZXRhaWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYXBwbGljYXRpb25zLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFjY2VwdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9yZXZpZXdzL2FjY2VwdGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJlamVjdChpZDogc3RyaW5nLCBib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9yZXZpZXdzL3JlamVjdGAsIGJvZHksIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhY2NlcHRBcHBsaWNhdGlvbihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS9hcHBsaWNhdGlvbnMvJHtpZH0vcmV2aWV3cy9hY2NlcHRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWplY3RBcHBsaWNhdGlvbihpZDogc3RyaW5nLCBib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9hcHBsaWNhdGlvbnMvJHtpZH0vcmV2aWV3cy9yZWplY3RgLCBib2R5LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkUHJpY2luZyhpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wcmljaW5nYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVByaWNpbmcoaWQ6IHN0cmluZywgcHJpY2luZ0lkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcHJpY2luZy8ke3ByaWNpbmdJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlUHJpY2luZyhpZDogc3RyaW5nLCBwcmljaW5nSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcHJpY2luZy8ke3ByaWNpbmdJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkU2NoZWR1bGUoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc2NoZWR1bGVgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlU2NoZWR1bGUoaWQ6IHN0cmluZywgc2NoZWR1bGVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3NjaGVkdWxlLyR7c2NoZWR1bGVJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlU2NoZWR1bGUoaWQ6IHN0cmluZywgc2NoZWR1bGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9zY2hlZHVsZS8ke3NjaGVkdWxlSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGxSZXZpZXdzKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV2aWV3c2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRSZXZpZXcoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV2aWV3cy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUmV2aWV3cyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3Jldmlld3MvbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY291bnRVc2VycyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3VzZXJzL2NvdW50L2J5YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeUlkcyhpZHM6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYnlgLCB7XG4gICAgICBwYXJhbXM6IHsgaWRzIH0sXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFdpc2hsaXN0KG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS93aXNobGlzdGAsIHsgcGFyYW1zOiBvcHRpb25zLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgYWRkVG9XaXNobGlzdChjb3Vyc2VJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS8ke2NvdXJzZUlkfS93aXNobGlzdGAsIHt9LCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICByZW1vdmVGcm9tV2lzaGxpc3QoY291cnNlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYWN0aW9uVXJsfS8ke2NvdXJzZUlkfS93aXNobGlzdGAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRXaXNobGlzdEJ5KGNvdXJzZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vJHtjb3Vyc2VJZH0vd2lzaGxpc3QvYnlgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBmaW5kTXlDb3Vyc2VzKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vyc2AsIHsgcGFyYW1zOiBvcHRpb25zLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQoY291cnNlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vycy9tZS9ieT9jb3Vyc2VJZD0ke2NvdXJzZUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVGcm9tV2lzaGxpc3Qoc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cblxuICAvLyBDb3Vyc2Ugc2VjdGlvbnNcbiAgZmluZENvdXJzZVNlY3Rpb25zKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9uc2AsIHsgcGFyYW1zOiBvcHRpb25zLCB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlIH0pO1xuICB9XG4gIGFkZENvdXJzZVNlY3Rpb24oY291cnNlSWQ6IGFueSwgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7Y291cnNlSWR9L3NlY3Rpb25zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlQ291cnNlU2VjdGlvbihzZWN0aW9uSWQ6IGFueSwgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9YCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZGVsZXRlQ291cnNlU2VjdGlvbihzZWN0aW9uSWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGdldENvdXJzZVNlY3Rpb24oY291cnNlSWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7Y291cnNlSWR9L3NlY3Rpb25zYCwgeyB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlIH0pO1xuICB9XG4gIGFkZExlY3R1cmUoc2VjdGlvbklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH0vbGVjdHVyZXNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVMZWN0dXJlKGxlY3R1cmVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy8ke2xlY3R1cmVJZH1gLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBkZWxldGVMZWN0dXJlKGxlY3R1cmVJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvJHtsZWN0dXJlSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBsb2FkVmlkZW9Jbml0KGxlY3R1cmVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy8ke2xlY3R1cmVJZH0vdmlkZW9zL2luaXRgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkVmlkZW9QYXJ0c1RvTGVjdHVyZShsZWN0dXJlSWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy8ke2xlY3R1cmVJZH0vdmlkZW9zL3BhcnRzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNvbXBsZXRlUGFydFVwbG9hZChsZWN0dXJlSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy8ke2xlY3R1cmVJZH0vdmlkZW9zL3BhcnRzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZFZpZGVvVG9MZWN0dXJlKGxlY3R1cmVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy8ke2xlY3R1cmVJZH0vdmlkZW9zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZUxlY3R1cmVWaWRlbyh2aWRlb0lkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy92aWRlb3MvJHt2aWRlb0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwbG9hZExlY3R1cmVWaWRlb1RodW1ibmFpbCh2aWRlb0lkOiBhbnksIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zL2xlY3R1cmVzL3ZpZGVvcy8ke3ZpZGVvSWR9L3RodW1ibmFpbGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class CourseSectionService extends BaseService {\n init() {\n this.endpoint = 'courses';\n super.init();\n }\n findSections(id) {\n return this.http.get(`${this.actionUrl}/${id}/sections`);\n }\n canBePreviewed(videoId, data) {\n return this.http.post(`${this.actionUrl}/sections/lectures/videos/${videoId}/preview`, data, {\n withCredentials: true,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvc2VydmljZXMvY291cnNlLXNlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNekQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUFDMUMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxZQUFZLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxjQUFjLENBQUMsT0FBWSxFQUFFLElBQVM7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDZCQUE2QixPQUFPLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDM0YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FaVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VTZWN0aW9uU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gJ2NvdXJzZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBmaW5kU2VjdGlvbnMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc2VjdGlvbnNgKTtcbiAgfVxuICBjYW5CZVByZXZpZXdlZCh2aWRlb0lkOiBhbnksIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy92aWRlb3MvJHt2aWRlb0lkfS9wcmV2aWV3YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class CategoryService extends BaseService {\n init() {\n this.endpoint = 'categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data) {\n return this.http.post(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data) {\n return this.http.post(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CategoryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvc2VydmljZXMvY2F0ZWdvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUNyQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsSUFBYztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDaEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzFELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN6RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhCVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnY2F0ZWdvcmllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHVwbG9hZE1lZGlhKGlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGltcG9ydEZyb21FeGNlbChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2V4Y2VsYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZyb21FeGNlbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9saXN0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { CourseService } from './course.service';\nimport { CourseSectionService } from './course-section.service';\nimport { CategoryService } from './category.service';\nexport { CourseService, CourseSectionService, CategoryService };\nexport const services = [CourseService, CourseSectionService, CategoryService];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi9jb3Vyc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb3Vyc2VTZWN0aW9uU2VydmljZSB9IGZyb20gJy4vY291cnNlLXNlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL2NhdGVnb3J5LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ291cnNlU2VydmljZSwgQ291cnNlU2VjdGlvblNlcnZpY2UsIENhdGVnb3J5U2VydmljZSB9O1xuZXhwb3J0IGNvbnN0IHNlcnZpY2VzOiBhbnlbXSA9IFtDb3Vyc2VTZXJ2aWNlLCBDb3Vyc2VTZWN0aW9uU2VydmljZSwgQ2F0ZWdvcnlTZXJ2aWNlXTtcbiJdfQ==","import { importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport * as fromServices from './lib/services';\nexport function provideAngularCourse() {\n const providers = [\n ...fromServices.services,\n importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),\n ];\n return makeEnvironmentProviders(providers);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQyxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsTUFBTSxTQUFTLEdBQXdDO1FBQ3JELEdBQUcsWUFBWSxDQUFDLFFBQVE7UUFDeEIsbUJBQW1CLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7S0FDbEYsQ0FBQztJQUNGLE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciwgaW1wb3J0UHJvdmlkZXJzRnJvbSwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0ICogYXMgZnJvbVNlcnZpY2VzIGZyb20gJy4vbGliL3NlcnZpY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBbmd1bGFyQ291cnNlKCk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgcHJvdmlkZXJzOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSA9IFtcbiAgICAuLi5mcm9tU2VydmljZXMuc2VydmljZXMsXG4gICAgaW1wb3J0UHJvdmlkZXJzRnJvbShDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBSb3V0ZXJNb2R1bGUpLFxuICBdO1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG4iXX0=","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class CoursePreviewComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CoursePreviewComponent, isStandalone: true, selector: \"rolatech-course-preview\", ngImport: i0, template: \"<p>course-preview works!</p>\\n\", styles: [\"\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePreviewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-preview', imports: [], template: \"<p>course-preview works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NvdXJzZS1wcmV2aWV3L2NvdXJzZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtcHJldmlldy9jb3Vyc2UtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVExQyxNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7a0dBQXRCLHNCQUFzQixtRkNSbkMsZ0NBQ0E7OzJGRE9hLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSx5QkFBeUIsV0FDMUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtcHJldmlldycsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VQcmV2aWV3Q29tcG9uZW50IHt9XG4iLCI8cD5jb3Vyc2UtcHJldmlldyB3b3JrcyE8L3A+XG4iXX0=","import { Component, effect, input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nimport * as i2 from \"@angular/router\";\nexport class CourseInfoComponent {\n constructor() {\n this.course = input.required();\n this.instructor = input();\n this.username = input();\n this.dataToDisplay = effect(() => {\n return this.course();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseInfoComponent, isStandalone: true, selector: \"rolatech-course-info\", inputs: { course: { classPropertyName: \"course\", publicName: \"course\", isSignal: true, isRequired: true, transformFunction: null }, instructor: { classPropertyName: \"instructor\", publicName: \"instructor\", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: \"username\", publicName: \"username\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div>\\n <div>\\n <div class=\\\"text-2xl font-medium\\\">{{ course().name }}</div>\\n @if (course().type && course().type.toString() !== 'ONLINE') {\\n <div class=\\\"flex items-center pt-2\\\">\\n <mat-icon>place</mat-icon>\\n <span class=\\\"text-sm opacity-75\\\">{{ course().classroom.address }}</span>\\n </div>\\n }\\n <div class=\\\"py-3 flex justify-between\\\">\\n <div>\\n <div class=\\\"mb-1 flex items-center\\\">\\n <span class=\\\"font-medium\\\" i18n>Instructor: </span>\\n <a class=\\\"ml-2 underline text-[--rt-brand-color] text-[0.9rem]\\\" [routerLink]=\\\"['/@' + username()]\\\">{{\\n instructor()\\n }}</a>\\n </div>\\n <span class=\\\"text-sm opacity-75\\\" i18n>Last edit: {{ course().updatedAt }} </span>\\n </div>\\n </div>\\n </div>\\n <!-- Description -->\\n <div class=\\\"mb-3\\\">\\n {{ course().description }}\\n </div>\\n</div>\\n\", styles: [\"mat-icon{transform:scale(.8)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseInfoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-info', imports: [MatIconModule, RouterModule], template: \"<div>\\n <div>\\n <div class=\\\"text-2xl font-medium\\\">{{ course().name }}</div>\\n @if (course().type && course().type.toString() !== 'ONLINE') {\\n <div class=\\\"flex items-center pt-2\\\">\\n <mat-icon>place</mat-icon>\\n <span class=\\\"text-sm opacity-75\\\">{{ course().classroom.address }}</span>\\n </div>\\n }\\n <div class=\\\"py-3 flex justify-between\\\">\\n <div>\\n <div class=\\\"mb-1 flex items-center\\\">\\n <span class=\\\"font-medium\\\" i18n>Instructor: </span>\\n <a class=\\\"ml-2 underline text-[--rt-brand-color] text-[0.9rem]\\\" [routerLink]=\\\"['/@' + username()]\\\">{{\\n instructor()\\n }}</a>\\n </div>\\n <span class=\\\"text-sm opacity-75\\\" i18n>Last edit: {{ course().updatedAt }} </span>\\n </div>\\n </div>\\n </div>\\n <!-- Description -->\\n <div class=\\\"mb-3\\\">\\n {{ course().description }}\\n </div>\\n</div>\\n\", styles: [\"mat-icon{transform:scale(.8)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NvdXJzZS1pbmZvL2NvdXJzZS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtaW5mby9jb3Vyc2UtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFTdkQsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQU9FLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDbEMsZUFBVSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzdCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7S0FDSjs4R0FQWSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4ZENYaEMsbzVCQTBCQSx3RkRqQlksYUFBYSxtTEFBRSxZQUFZOzsyRkFFMUIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLHNCQUFzQixXQUd2QixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBDb3Vyc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLWluZm8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtaW5mby5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlSW5mb0NvbXBvbmVudCB7XG4gIGNvdXJzZSA9IGlucHV0LnJlcXVpcmVkPENvdXJzZT4oKTtcbiAgaW5zdHJ1Y3RvciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGRhdGFUb0Rpc3BsYXkgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNvdXJzZSgpO1xuICB9KTtcbn1cbiIsIjxkaXY+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtbWVkaXVtXCI+e3sgY291cnNlKCkubmFtZSB9fTwvZGl2PlxuICAgIEBpZiAoY291cnNlKCkudHlwZSAmJiBjb3Vyc2UoKS50eXBlLnRvU3RyaW5nKCkgIT09ICdPTkxJTkUnKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHQtMlwiPlxuICAgICAgICA8bWF0LWljb24+cGxhY2U8L21hdC1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gb3BhY2l0eS03NVwiPnt7IGNvdXJzZSgpLmNsYXNzcm9vbS5hZGRyZXNzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJweS0zIGZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMSBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIiBpMThuPkluc3RydWN0b3I6IDwvc3Bhbj5cbiAgICAgICAgICA8YSBjbGFzcz1cIm1sLTIgdW5kZXJsaW5lIHRleHQtWy0tcnQtYnJhbmQtY29sb3JdIHRleHQtWzAuOXJlbV1cIiBbcm91dGVyTGlua109XCJbJy9AJyArIHVzZXJuYW1lKCldXCI+e3tcbiAgICAgICAgICAgIGluc3RydWN0b3IoKVxuICAgICAgICAgIH19PC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIG9wYWNpdHktNzVcIiBpMThuPkxhc3QgZWRpdDoge3sgY291cnNlKCkudXBkYXRlZEF0IH19IDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICB7eyBjb3Vyc2UoKS5kZXNjcmlwdGlvbiB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, inject, input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgClass } from '@angular/common';\nimport { ImagePreviewDialogComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class CourseMediaComponent {\n constructor() {\n this.dialog = inject(MatDialog);\n this.media = input([]);\n this.min = input(false);\n this.mediaIndex = 0;\n }\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => { });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseMediaComponent, isStandalone: true, selector: \"rolatech-course-media\", inputs: { media: { classPropertyName: \"media\", publicName: \"media\", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: \"min\", publicName: \"min\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (media()) {\\n @if (min()) {\\n <div class=\\\"md:w-80 object-cover aspect-video bg-[--rt-10-percent-layer] rounded-lg\\\">\\n @if (media()) {\\n <rolatech-thumbnail [src]=\\\"media()[0].url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n }\\n </div>\\n } @else {\\n <div>\\n <div class=\\\"object-cover aspect-video bg-[--rt-10-percent-layer]\\\">\\n <rolatech-thumbnail [src]=\\\"media()[mediaIndex].url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n @for (item of media(); track $index) {\\n <div\\n class=\\\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\\\"\\n (click)=\\\"mediaIndex = $index\\\"\\n [ngClass]=\\\"mediaIndex === $index ? '' : 'opacity-30'\\\"\\n >\\n <rolatech-thumbnail [src]=\\\"item.url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n }\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseMediaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-media', imports: [NgClass, ThumbnailComponent], template: \"@if (media()) {\\n @if (min()) {\\n <div class=\\\"md:w-80 object-cover aspect-video bg-[--rt-10-percent-layer] rounded-lg\\\">\\n @if (media()) {\\n <rolatech-thumbnail [src]=\\\"media()[0].url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n }\\n </div>\\n } @else {\\n <div>\\n <div class=\\\"object-cover aspect-video bg-[--rt-10-percent-layer]\\\">\\n <rolatech-thumbnail [src]=\\\"media()[mediaIndex].url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n @for (item of media(); track $index) {\\n <div\\n class=\\\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\\\"\\n (click)=\\\"mediaIndex = $index\\\"\\n [ngClass]=\\\"mediaIndex === $index ? '' : 'opacity-30'\\\"\\n >\\n <rolatech-thumbnail [src]=\\\"item.url\\\" size=\\\"small\\\"></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n }\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1lZGlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEvY291cnNlLW1lZGlhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEvY291cnNlLW1lZGlhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVMvRixNQUFNLE9BQU8sb0JBQW9CO0lBTmpDO1FBT0UsV0FBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLFFBQUcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFHLENBQUMsQ0FBQztLQWVoQjtJQWRDLFlBQVksQ0FBQyxDQUFNO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQzlELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLElBQUksRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFFBQVEsRUFBRSxDQUFDO2FBQ1o7U0FDRixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOzhHQWxCVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1VUNaakMscTJCQXdCQSwwRERkWSxPQUFPLG9GQUFFLGtCQUFrQjs7MkZBRTFCLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSx1QkFBdUIsV0FHeEIsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEltYWdlUHJldmlld0RpYWxvZ0NvbXBvbmVudCwgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtbWVkaWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLW1lZGlhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLW1lZGlhLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBUaHVtYm5haWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VNZWRpYUNvbXBvbmVudCB7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBtZWRpYSA9IGlucHV0PE1lZGlhW10+KFtdKTtcbiAgbWluID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBtZWRpYUluZGV4ID0gMDtcbiAgb25JbWFnZUNsaWNrKGk6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBtYXhXaWR0aDogJzgwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnODB2aCcsXG4gICAgICBoZWlnaHQ6ICc4MCUnLFxuICAgICAgd2lkdGg6ICc4MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtc2NyZWVuLW1vZGFsJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbWVkaWE6IHRoaXMubWVkaWEsXG4gICAgICAgIHNlbGVjdGVkOiBpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge30pO1xuICB9XG59XG4iLCJAaWYgKG1lZGlhKCkpIHtcbiAgQGlmIChtaW4oKSkge1xuICAgIDxkaXYgY2xhc3M9XCJtZDp3LTgwIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gYmctWy0tcnQtMTAtcGVyY2VudC1sYXllcl0gcm91bmRlZC1sZ1wiPlxuICAgICAgQGlmIChtZWRpYSgpKSB7XG4gICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWwgW3NyY109XCJtZWRpYSgpWzBdLnVybFwiIHNpemU9XCJzbWFsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gYmctWy0tcnQtMTAtcGVyY2VudC1sYXllcl1cIj5cbiAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIm1lZGlhKClbbWVkaWFJbmRleF0udXJsXCIgc2l6ZT1cInNtYWxsXCI+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgbWVkaWEoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGZsZXgtcm93IG10LTMgbXItMyBjdXJzb3ItcG9pbnRlciByb3VuZGVkLW1kXCJcbiAgICAgICAgICAoY2xpY2spPVwibWVkaWFJbmRleCA9ICRpbmRleFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwibWVkaWFJbmRleCA9PT0gJGluZGV4ID8gJycgOiAnb3BhY2l0eS0zMCdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIml0ZW0udXJsXCIgc2l6ZT1cInNtYWxsXCI+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG59XG4iXX0=","import { Component, input } from '@angular/core';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class CoursePricingComponent {\n constructor() {\n this.pricing = input([]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CoursePricingComponent, isStandalone: true, selector: \"rolatech-course-pricing\", inputs: { pricing: { classPropertyName: \"pricing\", publicName: \"pricing\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (pricing()) {\\n <div class=\\\"py-3\\\">\\n <div class=\\\"text-lg font-medium py-2\\\" i18n>Price</div>\\n @for (item of pricing(); track $index) {\\n <div>\\n <span>{{ item.min }} - {{ item.max }}\\u4EBA</span>\\n <span class=\\\"ml-3\\\">{{ item.total | fixed }}</span\\n ><span i18n>YMB</span>\\n </div>\\n }\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"pipe\", type: FixedPipe, name: \"fixed\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePricingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-pricing', imports: [FixedPipe], template: \"@if (pricing()) {\\n <div class=\\\"py-3\\\">\\n <div class=\\\"text-lg font-medium py-2\\\" i18n>Price</div>\\n @for (item of pricing(); track $index) {\\n <div>\\n <span>{{ item.min }} - {{ item.max }}\\u4EBA</span>\\n <span class=\\\"ml-3\\\">{{ item.total | fixed }}</span\\n ><span i18n>YMB</span>\\n </div>\\n }\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NvdXJzZS1wcmljaW5nL2NvdXJzZS1wcmljaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtcHJpY2luZy9jb3Vyc2UtcHJpY2luZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBUXJELE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFPRSxZQUFPLEdBQUcsS0FBSyxDQUFrQixFQUFFLENBQUMsQ0FBQztLQUN0Qzs4R0FGWSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw2TkNWbkMsaVdBWUEscURESlksU0FBUzs7MkZBRVIsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHlCQUF5QixXQUcxQixDQUFDLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdXJzZVByaWNpbmcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZpeGVkUGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1wcmljaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1wcmljaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLXByaWNpbmcuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0ZpeGVkUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVByaWNpbmdDb21wb25lbnQge1xuICBwcmljaW5nID0gaW5wdXQ8Q291cnNlUHJpY2luZ1tdPihbXSk7XG59XG4iLCJAaWYgKHByaWNpbmcoKSkge1xuICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHB5LTJcIiBpMThuPlByaWNlPC9kaXY+XG4gICAgQGZvciAoaXRlbSBvZiBwcmljaW5nKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdj5cbiAgICAgICAgPHNwYW4+e3sgaXRlbS5taW4gfX0gLSB7eyBpdGVtLm1heCB9feS6ujwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0zXCI+e3sgaXRlbS50b3RhbCB8IGZpeGVkIH19PC9zcGFuXG4gICAgICAgID48c3BhbiBpMThuPllNQjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class CourseActionComponent {\n constructor() {\n this.course = input.required();\n this.inWishList = input(false);\n this.cart = output();\n this.wish = output();\n this.checkout = output();\n }\n onCart(course) {\n this.cart.emit(course);\n }\n onWish(course) {\n this.wish.emit(course);\n }\n onCheckout(course) {\n this.checkout.emit(course);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: CourseActionComponent, isStandalone: true, selector: \"rolatech-course-action\", inputs: { course: { classPropertyName: \"course\", publicName: \"course\", isSignal: true, isRequired: true, transformFunction: null }, inWishList: { classPropertyName: \"inWishList\", publicName: \"inWishList\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cart: \"cart\", wish: \"wish\", checkout: \"checkout\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col\\\">\\n <!-- <a class=\\\"p-3 bg-[--rt-brand-color] text-center mt-3\\\" target=\\\"_blank\\\" (click)=\\\"onCart(course)\\\" i18n>Add to cart</a> -->\\n <a mat-flat-button class=\\\"mt-3 min-h-11\\\" target=\\\"_blank\\\" (click)=\\\"onCheckout(course())\\\" i18n>Checkout</a>\\n <a mat-stroked-button class=\\\"mt-3 min-h-11\\\" target=\\\"_blank\\\" (click)=\\\"onWish(course())\\\">{{\\n inWishList() ? '\\u79FB\\u9664\\u6536\\u85CF' : '\\u52A0\\u5165\\u6536\\u85CF'\\n }}</a>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseActionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-action', imports: [MatButtonModule], template: \"<div class=\\\"flex flex-col\\\">\\n <!-- <a class=\\\"p-3 bg-[--rt-brand-color] text-center mt-3\\\" target=\\\"_blank\\\" (click)=\\\"onCart(course)\\\" i18n>Add to cart</a> -->\\n <a mat-flat-button class=\\\"mt-3 min-h-11\\\" target=\\\"_blank\\\" (click)=\\\"onCheckout(course())\\\" i18n>Checkout</a>\\n <a mat-stroked-button class=\\\"mt-3 min-h-11\\\" target=\\\"_blank\\\" (click)=\\\"onWish(course())\\\">{{\\n inWishList() ? '\\u79FB\\u9664\\u6536\\u85CF' : '\\u52A0\\u5165\\u6536\\u85CF'\\n }}</a>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvY291cnNlLWFjdGlvbi9jb3Vyc2UtYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtYWN0aW9uL2NvdXJzZS1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBUzNELE1BQU0sT0FBTyxxQkFBcUI7SUFObEM7UUFPRSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbkMsU0FBSSxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQ3hCLFNBQUksR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxFQUFVLENBQUM7S0FXN0I7SUFUQyxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFjO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBaEJVLHFCQUFxQjtrR0FBckIscUJBQXFCLDhaQ1ZsQywyZEFPQSx5RERDWSxlQUFlOzsyRkFFZCxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usd0JBQXdCLFdBR3pCLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQ291cnNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1hY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZUFjdGlvbkNvbXBvbmVudCB7XG4gIGNvdXJzZSA9IGlucHV0LnJlcXVpcmVkPENvdXJzZT4oKTtcbiAgaW5XaXNoTGlzdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjYXJ0ID0gb3V0cHV0PENvdXJzZT4oKTtcbiAgd2lzaCA9IG91dHB1dDxDb3Vyc2U+KCk7XG4gIGNoZWNrb3V0ID0gb3V0cHV0PENvdXJzZT4oKTtcblxuICBvbkNhcnQoY291cnNlOiBDb3Vyc2UpIHtcbiAgICB0aGlzLmNhcnQuZW1pdChjb3Vyc2UpO1xuICB9XG4gIG9uV2lzaChjb3Vyc2U6IENvdXJzZSkge1xuICAgIHRoaXMud2lzaC5lbWl0KGNvdXJzZSk7XG4gIH1cbiAgb25DaGVja291dChjb3Vyc2U6IENvdXJzZSkge1xuICAgIHRoaXMuY2hlY2tvdXQuZW1pdChjb3Vyc2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICA8IS0tIDxhIGNsYXNzPVwicC0zIGJnLVstLXJ0LWJyYW5kLWNvbG9yXSB0ZXh0LWNlbnRlciBtdC0zXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cIm9uQ2FydChjb3Vyc2UpXCIgaTE4bj5BZGQgdG8gY2FydDwvYT4gLS0+XG4gIDxhIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm10LTMgbWluLWgtMTFcIiB0YXJnZXQ9XCJfYmxhbmtcIiAoY2xpY2spPVwib25DaGVja291dChjb3Vyc2UoKSlcIiBpMThuPkNoZWNrb3V0PC9hPlxuICA8YSBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJtdC0zIG1pbi1oLTExXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cIm9uV2lzaChjb3Vyc2UoKSlcIj57e1xuICAgIGluV2lzaExpc3QoKSA/ICfnp7vpmaTmlLbol48nIDogJ+WKoOWFpeaUtuiXjydcbiAgfX08L2E+XG48L2Rpdj5cbiJdfQ==","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AccordionComponent, PanelComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class CourseScheduleComponent {\n constructor() {\n this.schedule = input([]);\n }\n ngOnInit() {\n // this.formatSchedule();\n }\n formatSchedule() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseScheduleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseScheduleComponent, isStandalone: true, selector: \"rolatech-course-schedule\", inputs: { schedule: { classPropertyName: \"schedule\", publicName: \"schedule\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (schedule()) {\\n <div class=\\\"py-3\\\" id=\\\"schedule\\\">\\n <div class=\\\"text-xl font-medium py-2\\\">\\u8BFE\\u8868</div>\\n <rolatech-accordion>\\n @for (item of schedule(); track $index) {\\n <rolatech-panel [title]=\\\"item.title\\\" [expanded]=\\\"$index === 0\\\">\\n <div>\\n <div class=\\\"text-[--rt-text-secondary]pt-2 text-sm\\\">\\n <span>{{ item.startAt }} - {{ item.endAt }}</span>\\n </div>\\n <div class=\\\"py-3\\\">\\n <div>{{ item.content }}</div>\\n </div>\\n </div>\\n </rolatech-panel>\\n }\\n </rolatech-accordion>\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: AccordionComponent, selector: \"rolatech-accordion\" }, { kind: \"component\", type: PanelComponent, selector: \"rolatech-panel\", inputs: [\"border\", \"divider\", \"expanded\", \"title\", \"subtitle\"], outputs: [\"expandedChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseScheduleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-schedule', imports: [MatIconModule, AccordionComponent, PanelComponent], template: \"@if (schedule()) {\\n <div class=\\\"py-3\\\" id=\\\"schedule\\\">\\n <div class=\\\"text-xl font-medium py-2\\\">\\u8BFE\\u8868</div>\\n <rolatech-accordion>\\n @for (item of schedule(); track $index) {\\n <rolatech-panel [title]=\\\"item.title\\\" [expanded]=\\\"$index === 0\\\">\\n <div>\\n <div class=\\\"text-[--rt-text-secondary]pt-2 text-sm\\\">\\n <span>{{ item.startAt }} - {{ item.endAt }}</span>\\n </div>\\n <div class=\\\"py-3\\\">\\n <div>{{ item.content }}</div>\\n </div>\\n </div>\\n </rolatech-panel>\\n }\\n </rolatech-accordion>\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNjaGVkdWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2NoZWR1bGUvY291cnNlLXNjaGVkdWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2NoZWR1bGUvY291cnNlLXNjaGVkdWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBUWxGLE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFPRSxhQUFRLEdBQUcsS0FBSyxDQUFtQixFQUFFLENBQUMsQ0FBQztLQU14QztJQUpDLFFBQVE7UUFDTix5QkFBeUI7SUFDM0IsQ0FBQztJQUNELGNBQWMsS0FBSSxDQUFDOzhHQU5SLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlPQ1hwQyxrb0JBbUJBLHlERFZZLGFBQWEsK0JBQUUsa0JBQWtCLCtEQUFFLGNBQWM7OzJGQUVoRCx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UsMEJBQTBCLFdBRzNCLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQ291cnNlU2NoZWR1bGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjY29yZGlvbkNvbXBvbmVudCwgUGFuZWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLXNjaGVkdWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1zY2hlZHVsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1zY2hlZHVsZS5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgQWNjb3JkaW9uQ29tcG9uZW50LCBQYW5lbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNjaGVkdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2NoZWR1bGUgPSBpbnB1dDxDb3Vyc2VTY2hlZHVsZVtdPihbXSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5mb3JtYXRTY2hlZHVsZSgpO1xuICB9XG4gIGZvcm1hdFNjaGVkdWxlKCkge31cbn1cbiIsIkBpZiAoc2NoZWR1bGUoKSkge1xuICA8ZGl2IGNsYXNzPVwicHktM1wiIGlkPVwic2NoZWR1bGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LW1lZGl1bSBweS0yXCI+6K++6KGoPC9kaXY+XG4gICAgPHJvbGF0ZWNoLWFjY29yZGlvbj5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygc2NoZWR1bGUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxyb2xhdGVjaC1wYW5lbCBbdGl0bGVdPVwiaXRlbS50aXRsZVwiIFtleHBhbmRlZF09XCIkaW5kZXggPT09IDBcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtWy0tcnQtdGV4dC1zZWNvbmRhcnldcHQtMiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0uc3RhcnRBdCB9fSAtIHt7IGl0ZW0uZW5kQXQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgaXRlbS5jb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9yb2xhdGVjaC1wYW5lbD5cbiAgICAgIH1cbiAgICA8L3JvbGF0ZWNoLWFjY29yZGlvbj5cbiAgPC9kaXY+XG59XG4iXX0=","import { Component, ViewEncapsulation, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { DurationPipe } from '@rolatech/angular-common';\nimport { AccordionComponent, PanelComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nexport class CourseSectionsComponent {\n constructor() {\n this.purchased = input(false);\n this.sections = input([]);\n this.section = output();\n this.checkout = output();\n }\n onSection(section, lecture) {\n this.section.emit({ section, lecture });\n }\n onCheckout(section, lecture) {\n this.checkout.emit({ section, lecture });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseSectionsComponent, isStandalone: true, selector: \"rolatech-course-sections\", inputs: { purchased: { classPropertyName: \"purchased\", publicName: \"purchased\", isSignal: true, isRequired: false, transformFunction: null }, sections: { classPropertyName: \"sections\", publicName: \"sections\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { section: \"section\", checkout: \"checkout\" }, ngImport: i0, template: \"@if (sections()) {\\n <div id=\\\"sections()\\\">\\n <div class=\\\"text-2xl font-medium py-3 lg:pt-0\\\">\\u8BFE\\u7A0B\\u5185\\u5BB9</div>\\n <rolatech-accordion>\\n @for (item of sections(); track $index) {\\n <rolatech-panel [expanded]=\\\"$index === 0\\\" [title]=\\\"item.title\\\">\\n @for (lecture of item.lectures; track $index) {\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n @if (lecture.item && lecture.type === 'VIDEO') {\\n <div class=\\\"flex items-center gap-3\\\">\\n <mat-icon>live_tv</mat-icon>\\n <span class=\\\"text-md\\\"> {{ lecture.title }}</span>\\n </div>\\n <div>\\n @if (purchased()) {\\n <a\\n class=\\\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\\\"\\n (click)=\\\"onSection(item, lecture)\\\"\\n >\\u64AD\\u653E</a\\n >\\n } @else {\\n @if (lecture.item.canBePreviewed) {\\n <a\\n class=\\\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\\\"\\n (click)=\\\"onSection(item, lecture)\\\"\\n >\\u8BD5\\u770B</a\\n >\\n } @else {\\n <a\\n class=\\\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\\\"\\n (click)=\\\"onCheckout(item, lecture)\\\"\\n >\\u8D2D\\u4E70</a\\n >\\n }\\n }\\n\\n <a class=\\\"text-[--rt-text-secondary] inline-block w-[60px] text-right\\\">{{\\n lecture.item.duration | duration\\n }}</a>\\n </div>\\n }\\n </div>\\n }\\n </rolatech-panel>\\n }\\n </rolatech-accordion>\\n </div>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: DurationPipe, name: \"duration\" }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"component\", type: AccordionComponent, selector: \"rolatech-accordion\" }, { kind: \"component\", type: PanelComponent, selector: \"rolatech-panel\", inputs: [\"border\", \"divider\", \"expanded\", \"title\", \"subtitle\"], outputs: [\"expandedChange\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-sections', encapsulation: ViewEncapsulation.None, imports: [MatIconModule, DurationPipe, MatCheckboxModule, AccordionComponent, PanelComponent], template: \"@if (sections()) {\\n <div id=\\\"sections()\\\">\\n <div class=\\\"text-2xl font-medium py-3 lg:pt-0\\\">\\u8BFE\\u7A0B\\u5185\\u5BB9</div>\\n <rolatech-accordion>\\n @for (item of sections(); track $index) {\\n <rolatech-panel [expanded]=\\\"$index === 0\\\" [title]=\\\"item.title\\\">\\n @for (lecture of item.lectures; track $index) {\\n <div class=\\\"flex items-center justify-between py-1\\\">\\n @if (lecture.item && lecture.type === 'VIDEO') {\\n <div class=\\\"flex items-center gap-3\\\">\\n <mat-icon>live_tv</mat-icon>\\n <span class=\\\"text-md\\\"> {{ lecture.title }}</span>\\n </div>\\n <div>\\n @if (purchased()) {\\n <a\\n class=\\\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\\\"\\n (click)=\\\"onSection(item, lecture)\\\"\\n >\\u64AD\\u653E</a\\n >\\n } @else {\\n @if (lecture.item.canBePreviewed) {\\n <a\\n class=\\\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\\\"\\n (click)=\\\"onSection(item, lecture)\\\"\\n >\\u8BD5\\u770B</a\\n >\\n } @else {\\n <a\\n class=\\\"text-sm mr-1 underline underline-offset-2 cursor-pointer text-[--rt-brand-color]\\\"\\n (click)=\\\"onCheckout(item, lecture)\\\"\\n >\\u8D2D\\u4E70</a\\n >\\n }\\n }\\n\\n <a class=\\\"text-[--rt-text-secondary] inline-block w-[60px] text-right\\\">{{\\n lecture.item.duration | duration\\n }}</a>\\n </div>\\n }\\n </div>\\n }\\n </rolatech-panel>\\n }\\n </rolatech-accordion>\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbnMvY291cnNlLXNlY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbnMvY291cnNlLXNlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBU2xGLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFRRSxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxLQUFLLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxNQUFNLEVBQTZELENBQUM7UUFDOUUsYUFBUSxHQUFHLE1BQU0sRUFBNkQsQ0FBQztLQU9oRjtJQU5DLFNBQVMsQ0FBQyxPQUFzQixFQUFFLE9BQTZCO1FBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFzQixFQUFFLE9BQTZCO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs4R0FWVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0WkNkcEMsKytEQWdEQSx5RERwQ1ksYUFBYSwrS0FBRSxZQUFZLGdEQUFFLGlCQUFpQiwrQkFBRSxrQkFBa0IsK0RBQUUsY0FBYzs7MkZBRWpGLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSwwQkFBMEIsaUJBR3JCLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRHVyYXRpb25QaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb24sIENvdXJzZVNlY3Rpb25MZWN0dXJlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY2NvcmRpb25Db21wb25lbnQsIFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1zZWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2Utc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2Utc2VjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIER1cmF0aW9uUGlwZSwgTWF0Q2hlY2tib3hNb2R1bGUsIEFjY29yZGlvbkNvbXBvbmVudCwgUGFuZWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VTZWN0aW9uc0NvbXBvbmVudCB7XG4gIHB1cmNoYXNlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2VjdGlvbnMgPSBpbnB1dDxDb3Vyc2VTZWN0aW9uW10+KFtdKTtcbiAgc2VjdGlvbiA9IG91dHB1dDx7IHNlY3Rpb246IENvdXJzZVNlY3Rpb247IGxlY3R1cmU6IENvdXJzZVNlY3Rpb25MZWN0dXJlIH0+KCk7XG4gIGNoZWNrb3V0ID0gb3V0cHV0PHsgc2VjdGlvbjogQ291cnNlU2VjdGlvbjsgbGVjdHVyZTogQ291cnNlU2VjdGlvbkxlY3R1cmUgfT4oKTtcbiAgb25TZWN0aW9uKHNlY3Rpb246IENvdXJzZVNlY3Rpb24sIGxlY3R1cmU6IENvdXJzZVNlY3Rpb25MZWN0dXJlKSB7XG4gICAgdGhpcy5zZWN0aW9uLmVtaXQoeyBzZWN0aW9uLCBsZWN0dXJlIH0pO1xuICB9XG4gIG9uQ2hlY2tvdXQoc2VjdGlvbjogQ291cnNlU2VjdGlvbiwgbGVjdHVyZTogQ291cnNlU2VjdGlvbkxlY3R1cmUpIHtcbiAgICB0aGlzLmNoZWNrb3V0LmVtaXQoeyBzZWN0aW9uLCBsZWN0dXJlIH0pO1xuICB9XG59XG4iLCJAaWYgKHNlY3Rpb25zKCkpIHtcbiAgPGRpdiBpZD1cInNlY3Rpb25zKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgZm9udC1tZWRpdW0gcHktMyBsZzpwdC0wXCI+6K++56iL5YaF5a65PC9kaXY+XG4gICAgPHJvbGF0ZWNoLWFjY29yZGlvbj5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxyb2xhdGVjaC1wYW5lbCBbZXhwYW5kZWRdPVwiJGluZGV4ID09PSAwXCIgW3RpdGxlXT1cIml0ZW0udGl0bGVcIj5cbiAgICAgICAgICBAZm9yIChsZWN0dXJlIG9mIGl0ZW0ubGVjdHVyZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweS0xXCI+XG4gICAgICAgICAgICAgIEBpZiAobGVjdHVyZS5pdGVtICYmIGxlY3R1cmUudHlwZSA9PT0gJ1ZJREVPJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxpdmVfdHY8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW1kXCI+IHt7IGxlY3R1cmUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHVyY2hhc2VkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc20gbXItMSB1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC0yIGN1cnNvci1wb2ludGVyIHRleHQtWy0tcnQtYnJhbmQtY29sb3JdXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWN0aW9uKGl0ZW0sIGxlY3R1cmUpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+5pKt5pS+PC9hXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGxlY3R1cmUuaXRlbS5jYW5CZVByZXZpZXdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc20gbXItMSB1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC0yIGN1cnNvci1wb2ludGVyIHRleHQtWy0tcnQtYnJhbmQtY29sb3JdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlY3Rpb24oaXRlbSwgbGVjdHVyZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPuivleecizwvYVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBtci0xIHVuZGVybGluZSB1bmRlcmxpbmUtb2Zmc2V0LTIgY3Vyc29yLXBvaW50ZXIgdGV4dC1bLS1ydC1icmFuZC1jb2xvcl1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tvdXQoaXRlbSwgbGVjdHVyZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPui0reS5sDwvYVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInRleHQtWy0tcnQtdGV4dC1zZWNvbmRhcnldIGlubGluZS1ibG9jayB3LVs2MHB4XSB0ZXh0LXJpZ2h0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgbGVjdHVyZS5pdGVtLmR1cmF0aW9uIHwgZHVyYXRpb25cbiAgICAgICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvcm9sYXRlY2gtcGFuZWw+XG4gICAgICB9XG4gICAgPC9yb2xhdGVjaC1hY2NvcmRpb24+XG4gIDwvZGl2PlxufVxuIl19","import { Component, model, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { InputComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nimport * as i2 from \"@angular/material/button\";\nexport class CourseSectionItemComponent {\n constructor() {\n this.section = model.required();\n this.actions = model();\n this.hasUnsaved = model();\n this.editId = model();\n this.save = output();\n this.cancel = output();\n this.delete = output();\n this.edit = output();\n this.addLecture = output();\n this.editing = false;\n this.isExpand = false;\n }\n ngOnInit() { }\n onSave(section) {\n this.editing = false;\n this.editId.set(null);\n this.save.emit(section);\n }\n onCancel(section) {\n this.editing = false;\n this.editId.set(null);\n this.cancel.emit(section);\n }\n onDelete(section) {\n this.delete.emit(section);\n }\n onEdit(section) {\n this.editId.set(null);\n this.editing = true;\n this.edit.emit(section);\n }\n onAddLecture(section) {\n this.addLecture.emit(section);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseSectionItemComponent, isStandalone: true, selector: \"rolatech-course-section-item\", inputs: { section: { classPropertyName: \"section\", publicName: \"section\", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, hasUnsaved: { classPropertyName: \"hasUnsaved\", publicName: \"hasUnsaved\", isSignal: true, isRequired: false, transformFunction: null }, editId: { classPropertyName: \"editId\", publicName: \"editId\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { section: \"sectionChange\", actions: \"actionsChange\", hasUnsaved: \"hasUnsavedChange\", editId: \"editIdChange\", save: \"save\", cancel: \"cancel\", delete: \"delete\", edit: \"edit\", addLecture: \"addLecture\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col grow\\\">\\n @if (section().id !== editId()) {\\n <div>\\n <div class=\\\"flex justify-between items-center cursor-pointer\\\" (click)=\\\"isExpand = !isExpand\\\">\\n <div class=\\\"w-full flex items-center gap-3 pl-3\\\">\\n <span>{{ section().title }}</span>\\n <button mat-icon-button class=\\\"max-w-8 max-h-8 !p-1\\\" (click)=\\\"onEdit(section()); $event.stopPropagation()\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button class=\\\"max-w-8 max-h-8 !p-1\\\" (click)=\\\"onDelete(section()); $event.stopPropagation()\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n <button mat-icon-button class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>{{ isExpand ? 'expand_less' : 'expand_more' }}</mat-icon>\\n </button>\\n </div>\\n @if (isExpand) {\\n <div>\\n <ng-content></ng-content>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col justify-between items-center\\\">\\n <rolatech-input [(title)]=\\\"section().title\\\" placeholder=\\\"Title\\\"></rolatech-input>\\n <div class=\\\"w-full flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onCancel(section())\\\" i18n>Cancel</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(section())\\\" i18n>Save</button>\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: InputComponent, selector: \"rolatech-input\", inputs: [\"title\", \"placeholder\"], outputs: [\"titleChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-section-item', imports: [MatIconModule, FormsModule, MatButtonModule, InputComponent], template: \"<div class=\\\"flex flex-col grow\\\">\\n @if (section().id !== editId()) {\\n <div>\\n <div class=\\\"flex justify-between items-center cursor-pointer\\\" (click)=\\\"isExpand = !isExpand\\\">\\n <div class=\\\"w-full flex items-center gap-3 pl-3\\\">\\n <span>{{ section().title }}</span>\\n <button mat-icon-button class=\\\"max-w-8 max-h-8 !p-1\\\" (click)=\\\"onEdit(section()); $event.stopPropagation()\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button class=\\\"max-w-8 max-h-8 !p-1\\\" (click)=\\\"onDelete(section()); $event.stopPropagation()\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n <button mat-icon-button class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>{{ isExpand ? 'expand_less' : 'expand_more' }}</mat-icon>\\n </button>\\n </div>\\n @if (isExpand) {\\n <div>\\n <ng-content></ng-content>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col justify-between items-center\\\">\\n <rolatech-input [(title)]=\\\"section().title\\\" placeholder=\\\"Title\\\"></rolatech-input>\\n <div class=\\\"w-full flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onCancel(section())\\\" i18n>Cancel</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(section())\\\" i18n>Save</button>\\n </div>\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvY291cnNlLXNlY3Rpb24taXRlbS9jb3Vyc2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbi1pdGVtL2NvdXJzZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFTOUQsTUFBTSxPQUFPLDBCQUEwQjtJQU52QztRQU9FLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBQzFDLFlBQU8sR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUMzQixlQUFVLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDaEMsV0FBTSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBQ3RCLFNBQUksR0FBRyxNQUFNLEVBQWlCLENBQUM7UUFDL0IsV0FBTSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztRQUNqQyxXQUFNLEdBQUcsTUFBTSxFQUFpQixDQUFDO1FBQ2pDLFNBQUksR0FBRyxNQUFNLEVBQWlCLENBQUM7UUFDL0IsZUFBVSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztRQUNyQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7S0F5QmxCO0lBdkJDLFFBQVEsS0FBVSxDQUFDO0lBRW5CLE1BQU0sQ0FBQyxPQUFzQjtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsUUFBUSxDQUFDLE9BQXNCO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBc0I7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFzQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsWUFBWSxDQUFDLE9BQXNCO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBbkNVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLG96QkNidkMsdzZDQWlDQSx5RER0QlksYUFBYSxtTEFBRSxXQUFXLDhCQUFFLGVBQWUsMmlCQUFFLGNBQWM7OzJGQUUxRCwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UsOEJBQThCLFdBRy9CLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBJbnB1dENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNlY3Rpb25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2VjdGlvbiA9IG1vZGVsLnJlcXVpcmVkPENvdXJzZVNlY3Rpb24+KCk7XG4gIGFjdGlvbnMgPSBtb2RlbDxib29sZWFuPigpO1xuICBoYXNVbnNhdmVkID0gbW9kZWw8Ym9vbGVhbltdPigpO1xuICBlZGl0SWQgPSBtb2RlbDxhbnk+KCk7XG4gIHNhdmUgPSBvdXRwdXQ8Q291cnNlU2VjdGlvbj4oKTtcbiAgY2FuY2VsID0gb3V0cHV0PENvdXJzZVNlY3Rpb24+KCk7XG4gIGRlbGV0ZSA9IG91dHB1dDxDb3Vyc2VTZWN0aW9uPigpO1xuICBlZGl0ID0gb3V0cHV0PENvdXJzZVNlY3Rpb24+KCk7XG4gIGFkZExlY3R1cmUgPSBvdXRwdXQ8Q291cnNlU2VjdGlvbj4oKTtcbiAgZWRpdGluZyA9IGZhbHNlO1xuICBpc0V4cGFuZCA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBvblNhdmUoc2VjdGlvbjogQ291cnNlU2VjdGlvbikge1xuICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZWRpdElkLnNldChudWxsKTtcbiAgICB0aGlzLnNhdmUuZW1pdChzZWN0aW9uKTtcbiAgfVxuICBvbkNhbmNlbChzZWN0aW9uOiBDb3Vyc2VTZWN0aW9uKSB7XG4gICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5lZGl0SWQuc2V0KG51bGwpO1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoc2VjdGlvbik7XG4gIH1cbiAgb25EZWxldGUoc2VjdGlvbjogQ291cnNlU2VjdGlvbikge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQoc2VjdGlvbik7XG4gIH1cbiAgb25FZGl0KHNlY3Rpb246IENvdXJzZVNlY3Rpb24pIHtcbiAgICB0aGlzLmVkaXRJZC5zZXQobnVsbCk7XG4gICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVkaXQuZW1pdChzZWN0aW9uKTtcbiAgfVxuICBvbkFkZExlY3R1cmUoc2VjdGlvbjogQ291cnNlU2VjdGlvbikge1xuICAgIHRoaXMuYWRkTGVjdHVyZS5lbWl0KHNlY3Rpb24pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBncm93XCI+XG4gIEBpZiAoc2VjdGlvbigpLmlkICE9PSBlZGl0SWQoKSkge1xuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImlzRXhwYW5kID0gIWlzRXhwYW5kXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcGwtM1wiPlxuICAgICAgICAgIDxzcGFuPnt7IHNlY3Rpb24oKS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1heC13LTggbWF4LWgtOCAhcC0xXCIgKGNsaWNrKT1cIm9uRWRpdChzZWN0aW9uKCkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1heC13LTggbWF4LWgtOCAhcC0xXCIgKGNsaWNrKT1cIm9uRGVsZXRlKHNlY3Rpb24oKSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1heC13LTggbWF4LWgtOCAhcC0xXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnt7IGlzRXhwYW5kID8gJ2V4cGFuZF9sZXNzJyA6ICdleHBhbmRfbW9yZScgfX08L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChpc0V4cGFuZCkge1xuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxyb2xhdGVjaC1pbnB1dCBbKHRpdGxlKV09XCJzZWN0aW9uKCkudGl0bGVcIiBwbGFjZWhvbGRlcj1cIlRpdGxlXCI+PC9yb2xhdGVjaC1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBwLTMgZ2FwLTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvbkNhbmNlbChzZWN0aW9uKCkpXCIgaTE4bj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uU2F2ZShzZWN0aW9uKCkpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { Component, ElementRef, Inject, PLATFORM_ID, inject, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { isPlatformBrowser } from '@angular/common';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CourseSectionService, CourseService } from '../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/checkbox\";\nexport class CourseSectionLectureVideoDialogComponent {\n constructor(dialogRef, data) {\n this.dialogRef = dialogRef;\n this.data = data;\n this.thumbnailUpload = output();\n this.courseService = inject(CourseService);\n this.courseSectionService = inject(CourseSectionService);\n this.snackBar = inject(MatSnackBar);\n this.platformId = inject(PLATFORM_ID);\n this.el = inject(ElementRef);\n this.lecture = data.data;\n }\n ngAfterViewInit() {\n this.initPlayer(this.lecture.item.url, this.lecture.item.thumbnail);\n }\n close() {\n this.dialogRef.close();\n }\n initPlayer(url, thumbnail) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n // 'https://cos-video-1258344699.cos.ap-guangzhou.tencentcos.cn/test.mp4',\n if (!this.player) {\n const playerContainer = this.el.nativeElement.querySelector('#dplayer');\n this.player = new DPlayer({\n container: playerContainer,\n screenshot: true,\n preload: 'metadata',\n video: {\n url: url,\n pic: thumbnail,\n },\n });\n // this.player.on('loadedmetadata', () => {\n // });\n }\n }\n ngOnInit() { }\n ngOnDestroy() {\n if (this.player) {\n this.player.destroy();\n }\n }\n onThumbnailUpload(event) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n this.mediaSrc = reader.result;\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.uploadLectureVideoThumbnail(this.lecture.item.id, formData).subscribe({\n next: (res) => {\n this.lecture.item = res.data;\n this.snackBar.open('Upload successfully');\n this.player.switchVideo({\n url: this.lecture.item.url,\n pic: res.data.thumbnail,\n });\n },\n });\n };\n reader.onerror = (error) => { };\n }\n }\n onPreviewChange(event) {\n this.courseSectionService.canBePreviewed(this.lecture.item.id, { canBePreviewed: event.checked }).subscribe({\n next: (res) => {\n this.lecture.item.canBePreviewed = res.data.canBePreviewed;\n // this.lecture = res.data;\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionLectureVideoDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseSectionLectureVideoDialogComponent, isStandalone: true, selector: \"rolatech-course-section-lecture-video-dialog\", outputs: { thumbnailUpload: \"thumbnailUpload\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\\\">\\n <div class=\\\"w-full md:w-1/2\\\">\\n <div>\\n <div class=\\\"py-3 flex flex-col\\\">\\n <span class=\\\"text-lg font-bold\\\" i18n> Thumbnail </span>\\n <span class=\\\"text-sm\\\" i18n>Set a thumbnail that stands out and draws viewers' attention.</span>\\n </div>\\n\\n <div class=\\\"flex gap-3\\\">\\n <div\\n class=\\\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\\\"\\n (click)=\\\"fileInput.click()\\\"\\n >\\n <mat-icon>upload</mat-icon>\\n <span class=\\\"text-sm\\\" i18n>Upload</span>\\n </div>\\n <input type=\\\"file\\\" accept=\\\"image/*\\\" (change)=\\\"onThumbnailUpload($event)\\\" #fileInput style=\\\"display: none\\\" />\\n @if (lecture.item.thumbnail) {\\n <div class=\\\"aspect-video w-32 h-auto bg-black\\\">\\n <img [src]=\\\"lecture.item.thumbnail\\\" class=\\\"aspect-video object-contain\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"aspect-video w-32 h-auto\\\">\\n <img [src]=\\\"mediaSrc\\\" class=\\\"aspect-video object-contain\\\" alt />\\n </div>\\n }\\n </div>\\n </div>\\n <div class=\\\"mt-3\\\">\\n <div class=\\\"py-3 flex flex-col\\\">\\n <span class=\\\"text-lg font-bold\\\" i18n> Preview content </span>\\n <span class=\\\"text-sm\\\" i18n>A small amount of preview content can increase the purchase rate</span>\\n </div>\\n <mat-checkbox (change)=\\\"onPreviewChange($event)\\\" [checked]=\\\"lecture.item.canBePreviewed\\\" i18n\\n >Can be previewed</mat-checkbox\\n >\\n </div>\\n </div>\\n <div class=\\\"w-full md:w-1/2\\\">\\n @if (lecture) {\\n <div>\\n <div id=\\\"dplayer\\\" class=\\\"w-full h-auto aspect-video md:rounded-xl\\\"></div>\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatStepperModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"component\", type: i3.MatCheckbox, selector: \"mat-checkbox\", inputs: [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-expanded\", \"aria-controls\", \"aria-owns\", \"id\", \"required\", \"labelPosition\", \"name\", \"value\", \"disableRipple\", \"tabIndex\", \"color\", \"disabledInteractive\", \"checked\", \"disabled\", \"indeterminate\"], outputs: [\"change\", \"indeterminateChange\"], exportAs: [\"matCheckbox\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionLectureVideoDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-section-lecture-video-dialog', imports: [MatIconModule, MatDividerModule, FormsModule, MatStepperModule, MatButtonModule, MatCheckboxModule], template: \"<div class=\\\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\\\">\\n <div class=\\\"w-full md:w-1/2\\\">\\n <div>\\n <div class=\\\"py-3 flex flex-col\\\">\\n <span class=\\\"text-lg font-bold\\\" i18n> Thumbnail </span>\\n <span class=\\\"text-sm\\\" i18n>Set a thumbnail that stands out and draws viewers' attention.</span>\\n </div>\\n\\n <div class=\\\"flex gap-3\\\">\\n <div\\n class=\\\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\\\"\\n (click)=\\\"fileInput.click()\\\"\\n >\\n <mat-icon>upload</mat-icon>\\n <span class=\\\"text-sm\\\" i18n>Upload</span>\\n </div>\\n <input type=\\\"file\\\" accept=\\\"image/*\\\" (change)=\\\"onThumbnailUpload($event)\\\" #fileInput style=\\\"display: none\\\" />\\n @if (lecture.item.thumbnail) {\\n <div class=\\\"aspect-video w-32 h-auto bg-black\\\">\\n <img [src]=\\\"lecture.item.thumbnail\\\" class=\\\"aspect-video object-contain\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"aspect-video w-32 h-auto\\\">\\n <img [src]=\\\"mediaSrc\\\" class=\\\"aspect-video object-contain\\\" alt />\\n </div>\\n }\\n </div>\\n </div>\\n <div class=\\\"mt-3\\\">\\n <div class=\\\"py-3 flex flex-col\\\">\\n <span class=\\\"text-lg font-bold\\\" i18n> Preview content </span>\\n <span class=\\\"text-sm\\\" i18n>A small amount of preview content can increase the purchase rate</span>\\n </div>\\n <mat-checkbox (change)=\\\"onPreviewChange($event)\\\" [checked]=\\\"lecture.item.canBePreviewed\\\" i18n\\n >Can be previewed</mat-checkbox\\n >\\n </div>\\n </div>\\n <div class=\\\"w-full md:w-1/2\\\">\\n @if (lecture) {\\n <div>\\n <div id=\\\"dplayer\\\" class=\\\"w-full h-auto aspect-video md:rounded-xl\\\"></div>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_DIALOG_DATA]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24tbGVjdHVyZS12aWRlby1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NvdXJzZS1zZWN0aW9uLWxlY3R1cmUtdmlkZW8tZGlhbG9nL2NvdXJzZS1zZWN0aW9uLWxlY3R1cmUtdmlkZW8tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlC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LEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDOzswQkFrQjFHLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIGluamVjdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25MZWN0dXJlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb3Vyc2VTZWN0aW9uU2VydmljZSwgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmRlY2xhcmUgY29uc3QgRFBsYXllcjogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZycsXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBNYXREaXZpZGVyTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0U3RlcHBlck1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIGxlY3R1cmUhOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZTtcbiAgdGh1bWJuYWlsVXBsb2FkID0gb3V0cHV0PGFueT4oKTtcbiAgY291cnNlU2VydmljZSA9IGluamVjdChDb3Vyc2VTZXJ2aWNlKTtcbiAgY291cnNlU2VjdGlvblNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VjdGlvblNlcnZpY2UpO1xuXG4gIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBtZWRpYVNyYzogYW55O1xuICBwbGF5ZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9EaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICApIHtcbiAgICB0aGlzLmxlY3R1cmUgPSBkYXRhLmRhdGE7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFBsYXllcih0aGlzLmxlY3R1cmUuaXRlbS51cmwsIHRoaXMubGVjdHVyZS5pdGVtLnRodW1ibmFpbCk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuICBpbml0UGxheWVyKHVybDogc3RyaW5nLCB0aHVtYm5haWw/OiBzdHJpbmcpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gJ2h0dHBzOi8vY29zLXZpZGVvLTEyNTgzNDQ2OTkuY29zLmFwLWd1YW5nemhvdS50ZW5jZW50Y29zLmNuL3Rlc3QubXA0JyxcbiAgICBpZiAoIXRoaXMucGxheWVyKSB7XG4gICAgICBjb25zdCBwbGF5ZXJDb250YWluZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI2RwbGF5ZXInKTtcbiAgICAgIHRoaXMucGxheWVyID0gbmV3IERQbGF5ZXIoe1xuICAgICAgICBjb250YWluZXI6IHBsYXllckNvbnRhaW5lcixcbiAgICAgICAgc2NyZWVuc2hvdDogdHJ1ZSxcbiAgICAgICAgcHJlbG9hZDogJ21ldGFkYXRhJyxcbiAgICAgICAgdmlkZW86IHtcbiAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgICBwaWM6IHRodW1ibmFpbCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcy5wbGF5ZXIub24oJ2xvYWRlZG1ldGFkYXRhJywgKCkgPT4ge1xuICAgICAgLy8gfSk7XG4gICAgfVxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge31cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGxheWVyKSB7XG4gICAgICB0aGlzLnBsYXllci5kZXN0cm95KCk7XG4gICAgfVxuICB9XG4gIG9uVGh1bWJuYWlsVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm1lZGlhU3JjID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgICAgIHRoaXMuY291cnNlU2VydmljZS51cGxvYWRMZWN0dXJlVmlkZW9UaHVtYm5haWwodGhpcy5sZWN0dXJlLml0ZW0uaWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGVjdHVyZS5pdGVtID0gcmVzLmRhdGE7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1VwbG9hZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIHRoaXMucGxheWVyLnN3aXRjaFZpZGVvKHtcbiAgICAgICAgICAgICAgdXJsOiB0aGlzLmxlY3R1cmUuaXRlbS51cmwsXG4gICAgICAgICAgICAgIHBpYzogcmVzLmRhdGEudGh1bWJuYWlsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHt9O1xuICAgIH1cbiAgfVxuICBvblByZXZpZXdDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuY291cnNlU2VjdGlvblNlcnZpY2UuY2FuQmVQcmV2aWV3ZWQodGhpcy5sZWN0dXJlLml0ZW0uaWQsIHsgY2FuQmVQcmV2aWV3ZWQ6IGV2ZW50LmNoZWNrZWQgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5sZWN0dXJlLml0ZW0uY2FuQmVQcmV2aWV3ZWQgPSByZXMuZGF0YS5jYW5CZVByZXZpZXdlZDtcbiAgICAgICAgLy8gdGhpcy5sZWN0dXJlID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBoLWZ1bGwgZ2FwLTNcIj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDp3LTEvMlwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicHktMyBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIiBpMThuPiBUaHVtYm5haWwgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIiBpMThuPlNldCBhIHRodW1ibmFpbCB0aGF0IHN0YW5kcyBvdXQgYW5kIGRyYXdzIHZpZXdlcnMnIGF0dGVudGlvbi48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicC0zIHctMzYgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3V0bGluZS1kYXNoZWQgb3V0bGluZS0xIHJvdW5kZWQgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24+dXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIiBpMThuPlVwbG9hZDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiAoY2hhbmdlKT1cIm9uVGh1bWJuYWlsVXBsb2FkKCRldmVudClcIiAjZmlsZUlucHV0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XG4gICAgICAgIEBpZiAobGVjdHVyZS5pdGVtLnRodW1ibmFpbCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhc3BlY3QtdmlkZW8gdy0zMiBoLWF1dG8gYmctYmxhY2tcIj5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJsZWN0dXJlLml0ZW0udGh1bWJuYWlsXCIgY2xhc3M9XCJhc3BlY3QtdmlkZW8gb2JqZWN0LWNvbnRhaW5cIiBhbHQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFzcGVjdC12aWRlbyB3LTMyIGgtYXV0b1wiPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhU3JjXCIgY2xhc3M9XCJhc3BlY3QtdmlkZW8gb2JqZWN0LWNvbnRhaW5cIiBhbHQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJweS0zIGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiIGkxOG4+IFByZXZpZXcgY29udGVudCA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIGkxOG4+QSBzbWFsbCBhbW91bnQgb2YgcHJldmlldyBjb250ZW50IGNhbiBpbmNyZWFzZSB0aGUgcHVyY2hhc2UgcmF0ZTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIm9uUHJldmlld0NoYW5nZSgkZXZlbnQpXCIgW2NoZWNrZWRdPVwibGVjdHVyZS5pdGVtLmNhbkJlUHJldmlld2VkXCIgaTE4blxuICAgICAgICA+Q2FuIGJlIHByZXZpZXdlZDwvbWF0LWNoZWNrYm94XG4gICAgICA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMS8yXCI+XG4gICAgQGlmIChsZWN0dXJlKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGlkPVwiZHBsYXllclwiIGNsYXNzPVwidy1mdWxsIGgtYXV0byBhc3BlY3QtdmlkZW8gbWQ6cm91bmRlZC14bFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, ElementRef, PLATFORM_ID, inject, input, model, output, viewChild } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularComponentsModule, InputComponent } from '@rolatech/angular-components';\nimport { AngularCommonModule, DurationPipe } from '@rolatech/angular-common';\nimport { DialogService } from '@rolatech/angular-services';\nimport { CourseSectionLectureVideoDialogComponent } from '../course-section-lecture-video-dialog/course-section-lecture-video-dialog.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/progress-bar\";\nexport class CourseSectionLectureItemComponent {\n constructor() {\n this.platformId = inject(PLATFORM_ID);\n this.el = inject(ElementRef);\n this.dialogService = inject(DialogService);\n this.myVideo = viewChild('video');\n this.progress = input(0);\n this.lecture = input.required();\n this.actions = input(true);\n this.hasUnsaved = input(false);\n this.editId = model();\n this.save = output();\n this.cancel = output();\n this.delete = output();\n this.edit = output();\n this.mediaEdit = output();\n this.thumbnailUpload = output();\n this.upload = output();\n this.deleteMedia = output();\n this.editing = false;\n }\n ngOnInit() { }\n onSave(lecture) {\n this.editing = false;\n this.editId.set(null);\n this.save.emit(lecture);\n }\n onCancel(lecture) {\n this.editing = false;\n this.editId.set(null);\n this.cancel.emit(lecture);\n }\n onDelete(lecture) {\n this.delete.emit(lecture);\n }\n onEdit(lecture) {\n this.editId.set(lecture.id);\n this.editing = true;\n this.edit.emit(lecture);\n }\n onMediaEdit(lecture) {\n this.editId.set(lecture.id);\n this.editing = true;\n // this.mediaEdit.emit(lecture);\n const options = {\n title: '编辑视频',\n cancelText: 'Cancel',\n confirmText: '确定',\n data: this.lecture(),\n width: '80vw',\n maxWidth: '80vw',\n height: '100%',\n component: CourseSectionLectureVideoDialogComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n const data = {\n name: res,\n };\n }\n },\n });\n }\n onVideoThumbnailUpload(video) {\n this.thumbnailUpload.emit(video);\n }\n onUpload(id, data) {\n this.lecture().isUploading = true;\n this.upload.emit({ id, data });\n }\n onDeleteMedia(data) {\n this.deleteMedia.emit(data);\n }\n onLoadedMetadata(event) {\n if (this.lecture().item.duration) {\n return;\n }\n const videoElement = event.target;\n this.lecture().item.duration = videoElement.duration;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionLectureItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseSectionLectureItemComponent, isStandalone: true, selector: \"rolatech-course-section-lecture-item\", inputs: { progress: { classPropertyName: \"progress\", publicName: \"progress\", isSignal: true, isRequired: false, transformFunction: null }, lecture: { classPropertyName: \"lecture\", publicName: \"lecture\", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, hasUnsaved: { classPropertyName: \"hasUnsaved\", publicName: \"hasUnsaved\", isSignal: true, isRequired: false, transformFunction: null }, editId: { classPropertyName: \"editId\", publicName: \"editId\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editId: \"editIdChange\", save: \"save\", cancel: \"cancel\", delete: \"delete\", edit: \"edit\", mediaEdit: \"mediaEdit\", thumbnailUpload: \"thumbnailUpload\", upload: \"upload\", deleteMedia: \"deleteMedia\" }, viewQueries: [{ propertyName: \"myVideo\", first: true, predicate: [\"video\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<div class=\\\"flex flex-col grow p-2\\\">\\n @if (lecture().id !== editId()) {\\n <div class=\\\"w-full flex gap-3 p-3 items-center\\\">\\n <span>{{ lecture().title }}</span>\\n <button mat-icon-button (click)=\\\"onEdit(lecture()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onDelete(lecture()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col justify-between items-center\\\">\\n <rolatech-input [(title)]=\\\"lecture().title\\\" placeholder=\\\"Title\\\"></rolatech-input>\\n <div class=\\\"w-full flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onCancel(lecture())\\\" i18n>Cancel</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(lecture())\\\" i18n>Save</button>\\n </div>\\n </div>\\n }\\n\\n <div>\\n @if (lecture().item) {\\n <div class=\\\"flex flex-row p-2 gap-3\\\">\\n <div class=\\\"bg-black h-fit\\\">\\n <video\\n id=\\\"video\\\"\\n #video\\n [src]=\\\"lecture().item.url\\\"\\n class=\\\"w-32 aspect-video\\\"\\n (loadedmetadata)=\\\"onLoadedMetadata($event)\\\"\\n [poster]=\\\"lecture().item.thumbnail\\\"\\n ></video>\\n </div>\\n <div class=\\\"flex flex-col justify-between w-full\\\">\\n <div class=\\\"flex justify-between items-center w-full\\\">\\n <div class=\\\"flex justify-between items-center w-full px-2\\\">\\n <span i18n>Video</span>\\n </div>\\n @if (lecture().isUploading) {\\n <div>\\n <span> {{ lecture().item.progress }}%</span>\\n </div>\\n }\\n </div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div>\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onMediaEdit(lecture().item); $event.stopPropagation()\\\">\\n <mat-icon>edit</mat-icon>\\n <span i18n>Edit</span>\\n </button>\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDeleteMedia(lecture().item); $event.stopPropagation()\\\">\\n <mat-icon>delete</mat-icon>\\n <span i18n>Delete</span>\\n </button>\\n </div>\\n <div>\\n <span>{{ lecture().item.duration | duration }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n @if (lecture().isUploading) {\\n <div class=\\\"p-2\\\">\\n <mat-progress-bar mode=\\\"determinate\\\" [value]=\\\"lecture().item.progress\\\"> </mat-progress-bar>\\n </div>\\n }\\n } @else {\\n @if (lecture().id !== editId()) {\\n <div class=\\\"px-3\\\">\\n <input\\n class=\\\"ud-sr-only\\\"\\n type=\\\"file\\\"\\n accept=\\\".avi,.mpg,.mpeg,.flv,.mov,.m2v,.m4v,.mp4,.rm,.ram,.vob,.ogv,.webm,.wmv\\\"\\n (change)=\\\"onUpload(lecture().id, $event)\\\"\\n #fileInput\\n />\\n <div class=\\\"flex justify-between items-center\\\">\\n <div i18n>No videos</div>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"fileInput.click()\\\" i18n>Upload</button>\\n </div>\\n </div>\\n }\\n }\\n </div>\\n @if (!hasUnsaved) {\\n <ng-content></ng-content>\\n }\\n</div>\\n\", styles: [\".ud-sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i3.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"pipe\", type: DurationPipe, name: \"duration\" }, { kind: \"component\", type: InputComponent, selector: \"rolatech-input\", inputs: [\"title\", \"placeholder\"], outputs: [\"titleChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionLectureItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-section-lecture-item', imports: [\n MatIconModule,\n AngularCommonModule,\n FormsModule,\n MatButtonModule,\n MatDividerModule,\n AngularComponentsModule,\n DurationPipe,\n InputComponent,\n ], template: \"<div class=\\\"flex flex-col grow p-2\\\">\\n @if (lecture().id !== editId()) {\\n <div class=\\\"w-full flex gap-3 p-3 items-center\\\">\\n <span>{{ lecture().title }}</span>\\n <button mat-icon-button (click)=\\\"onEdit(lecture()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>edit</mat-icon>\\n </button>\\n <button mat-icon-button (click)=\\\"onDelete(lecture()); $event.stopPropagation()\\\" class=\\\"max-w-8 max-h-8 !p-1\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col justify-between items-center\\\">\\n <rolatech-input [(title)]=\\\"lecture().title\\\" placeholder=\\\"Title\\\"></rolatech-input>\\n <div class=\\\"w-full flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onCancel(lecture())\\\" i18n>Cancel</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(lecture())\\\" i18n>Save</button>\\n </div>\\n </div>\\n }\\n\\n <div>\\n @if (lecture().item) {\\n <div class=\\\"flex flex-row p-2 gap-3\\\">\\n <div class=\\\"bg-black h-fit\\\">\\n <video\\n id=\\\"video\\\"\\n #video\\n [src]=\\\"lecture().item.url\\\"\\n class=\\\"w-32 aspect-video\\\"\\n (loadedmetadata)=\\\"onLoadedMetadata($event)\\\"\\n [poster]=\\\"lecture().item.thumbnail\\\"\\n ></video>\\n </div>\\n <div class=\\\"flex flex-col justify-between w-full\\\">\\n <div class=\\\"flex justify-between items-center w-full\\\">\\n <div class=\\\"flex justify-between items-center w-full px-2\\\">\\n <span i18n>Video</span>\\n </div>\\n @if (lecture().isUploading) {\\n <div>\\n <span> {{ lecture().item.progress }}%</span>\\n </div>\\n }\\n </div>\\n <div class=\\\"flex justify-between items-center\\\">\\n <div>\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onMediaEdit(lecture().item); $event.stopPropagation()\\\">\\n <mat-icon>edit</mat-icon>\\n <span i18n>Edit</span>\\n </button>\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDeleteMedia(lecture().item); $event.stopPropagation()\\\">\\n <mat-icon>delete</mat-icon>\\n <span i18n>Delete</span>\\n </button>\\n </div>\\n <div>\\n <span>{{ lecture().item.duration | duration }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n @if (lecture().isUploading) {\\n <div class=\\\"p-2\\\">\\n <mat-progress-bar mode=\\\"determinate\\\" [value]=\\\"lecture().item.progress\\\"> </mat-progress-bar>\\n </div>\\n }\\n } @else {\\n @if (lecture().id !== editId()) {\\n <div class=\\\"px-3\\\">\\n <input\\n class=\\\"ud-sr-only\\\"\\n type=\\\"file\\\"\\n accept=\\\".avi,.mpg,.mpeg,.flv,.mov,.m2v,.m4v,.mp4,.rm,.ram,.vob,.ogv,.webm,.wmv\\\"\\n (change)=\\\"onUpload(lecture().id, $event)\\\"\\n #fileInput\\n />\\n <div class=\\\"flex justify-between items-center\\\">\\n <div i18n>No videos</div>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"fileInput.click()\\\" i18n>Upload</button>\\n </div>\\n </div>\\n }\\n }\\n </div>\\n @if (!hasUnsaved) {\\n <ng-content></ng-content>\\n }\\n</div>\\n\", styles: [\".ud-sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24tbGVjdHVyZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLWl0ZW0vY291cnNlLXNlY3Rpb24tbGVjdHVyZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLWl0ZW0vY291cnNlLXNlY3Rpb24tbGVjdHVyZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLHNGQUFzRixDQUFDOzs7OztBQWtCaEosTUFBTSxPQUFPLGlDQUFpQztJQWY5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QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osY0FBYztxQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBQTEFURk9STV9JRCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgSW5wdXRDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUsIER1cmF0aW9uUGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbkxlY3R1cmUsIENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbkxlY3R1cmVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb3Vyc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXNlY3Rpb24tbGVjdHVyZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLXNlY3Rpb24tbGVjdHVyZS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgRHVyYXRpb25QaXBlLFxuICAgIElucHV0Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VTZWN0aW9uTGVjdHVyZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XG4gIG15VmlkZW8gPSB2aWV3Q2hpbGQoJ3ZpZGVvJyk7XG4gIHByb2dyZXNzID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgbGVjdHVyZSA9IGlucHV0LnJlcXVpcmVkPENvdXJzZVNlY3Rpb25MZWN0dXJlPigpO1xuICBhY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIGhhc1Vuc2F2ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGVkaXRJZCA9IG1vZGVsPGFueT4oKTtcblxuICBzYXZlID0gb3V0cHV0PENvdXJzZVNlY3Rpb25MZWN0dXJlPigpO1xuICBjYW5jZWwgPSBvdXRwdXQ8Q291cnNlU2VjdGlvbkxlY3R1cmU+KCk7XG4gIGRlbGV0ZSA9IG91dHB1dDxDb3Vyc2VTZWN0aW9uTGVjdHVyZT4oKTtcbiAgZWRpdCA9IG91dHB1dDxDb3Vyc2VTZWN0aW9uTGVjdHVyZT4oKTtcbiAgbWVkaWFFZGl0ID0gb3V0cHV0PENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW8+KCk7XG4gIHRodW1ibmFpbFVwbG9hZCA9IG91dHB1dDxDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvPigpO1xuICB1cGxvYWQgPSBvdXRwdXQ8eyBpZDogYW55OyBkYXRhOiBGb3JtRGF0YSB8IG51bGwgfT4oKTtcbiAgZGVsZXRlTWVkaWEgPSBvdXRwdXQ8Q291cnNlU2VjdGlvbkxlY3R1cmVJdGVtPigpO1xuXG4gIGVkaXRpbmcgPSBmYWxzZTtcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG9uU2F2ZShsZWN0dXJlOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZSkge1xuICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZWRpdElkLnNldChudWxsKTtcbiAgICB0aGlzLnNhdmUuZW1pdChsZWN0dXJlKTtcbiAgfVxuICBvbkNhbmNlbChsZWN0dXJlOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZSkge1xuICAgIHRoaXMuZWRpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZWRpdElkLnNldChudWxsKTtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KGxlY3R1cmUpO1xuICB9XG4gIG9uRGVsZXRlKGxlY3R1cmU6IENvdXJzZVNlY3Rpb25MZWN0dXJlKSB7XG4gICAgdGhpcy5kZWxldGUuZW1pdChsZWN0dXJlKTtcbiAgfVxuICBvbkVkaXQobGVjdHVyZTogQ291cnNlU2VjdGlvbkxlY3R1cmUpIHtcbiAgICB0aGlzLmVkaXRJZC5zZXQobGVjdHVyZS5pZCk7XG4gICAgdGhpcy5lZGl0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVkaXQuZW1pdChsZWN0dXJlKTtcbiAgfVxuICBvbk1lZGlhRWRpdChsZWN0dXJlOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvKSB7XG4gICAgdGhpcy5lZGl0SWQuc2V0KGxlY3R1cmUuaWQpO1xuICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgLy8gdGhpcy5tZWRpYUVkaXQuZW1pdChsZWN0dXJlKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICfnvJbovpHop4bpopEnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ+ehruWumicsXG4gICAgICBkYXRhOiB0aGlzLmxlY3R1cmUoKSxcbiAgICAgIHdpZHRoOiAnODB2dycsXG4gICAgICBtYXhXaWR0aDogJzgwdncnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBjb21wb25lbnQ6IENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9EaWFsb2dDb21wb25lbnQsXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBuYW1lOiByZXMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblZpZGVvVGh1bWJuYWlsVXBsb2FkKHZpZGVvOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvKSB7XG4gICAgdGhpcy50aHVtYm5haWxVcGxvYWQuZW1pdCh2aWRlbyk7XG4gIH1cbiAgb25VcGxvYWQoaWQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgdGhpcy5sZWN0dXJlKCkuaXNVcGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy51cGxvYWQuZW1pdCh7IGlkLCBkYXRhIH0pO1xuICB9XG4gIG9uRGVsZXRlTWVkaWEoZGF0YTogYW55KSB7XG4gICAgdGhpcy5kZWxldGVNZWRpYS5lbWl0KGRhdGEpO1xuICB9XG4gIG9uTG9hZGVkTWV0YWRhdGEoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGVjdHVyZSgpLml0ZW0uZHVyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmlkZW9FbGVtZW50OiBIVE1MVmlkZW9FbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxWaWRlb0VsZW1lbnQ7XG4gICAgdGhpcy5sZWN0dXJlKCkuaXRlbS5kdXJhdGlvbiA9IHZpZGVvRWxlbWVudC5kdXJhdGlvbjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ3JvdyBwLTJcIj5cbiAgQGlmIChsZWN0dXJlKCkuaWQgIT09IGVkaXRJZCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGdhcC0zIHAtMyBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxzcGFuPnt7IGxlY3R1cmUoKS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkVkaXQobGVjdHVyZSgpKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgY2xhc3M9XCJtYXgtdy04IG1heC1oLTggIXAtMVwiPlxuICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkRlbGV0ZShsZWN0dXJlKCkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBjbGFzcz1cIm1heC13LTggbWF4LWgtOCAhcC0xXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxyb2xhdGVjaC1pbnB1dCBbKHRpdGxlKV09XCJsZWN0dXJlKCkudGl0bGVcIiBwbGFjZWhvbGRlcj1cIlRpdGxlXCI+PC9yb2xhdGVjaC1pbnB1dD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBwLTMgZ2FwLTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvbkNhbmNlbChsZWN0dXJlKCkpXCIgaTE4bj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uU2F2ZShsZWN0dXJlKCkpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXY+XG4gICAgQGlmIChsZWN0dXJlKCkuaXRlbSkge1xuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcC0yIGdhcC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiZy1ibGFjayBoLWZpdFwiPlxuICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgaWQ9XCJ2aWRlb1wiXG4gICAgICAgICAgICAjdmlkZW9cbiAgICAgICAgICAgIFtzcmNdPVwibGVjdHVyZSgpLml0ZW0udXJsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy0zMiBhc3BlY3QtdmlkZW9cIlxuICAgICAgICAgICAgKGxvYWRlZG1ldGFkYXRhKT1cIm9uTG9hZGVkTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcG9zdGVyXT1cImxlY3R1cmUoKS5pdGVtLnRodW1ibmFpbFwiXG4gICAgICAgICAgPjwvdmlkZW8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgdy1mdWxsIHB4LTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5WaWRlbzwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChsZWN0dXJlKCkuaXNVcGxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgbGVjdHVyZSgpLml0ZW0ucHJvZ3Jlc3MgfX0lPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uTWVkaWFFZGl0KGxlY3R1cmUoKS5pdGVtKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+RWRpdDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25EZWxldGVNZWRpYShsZWN0dXJlKCkuaXRlbSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGkxOG4+RGVsZXRlPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgbGVjdHVyZSgpLml0ZW0uZHVyYXRpb24gfCBkdXJhdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChsZWN0dXJlKCkuaXNVcGxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiPlxuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJkZXRlcm1pbmF0ZVwiIFt2YWx1ZV09XCJsZWN0dXJlKCkuaXRlbS5wcm9ncmVzc1wiPiA8L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChsZWN0dXJlKCkuaWQgIT09IGVkaXRJZCgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJweC0zXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInVkLXNyLW9ubHlcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgYWNjZXB0PVwiLmF2aSwubXBnLC5tcGVnLC5mbHYsLm1vdiwubTJ2LC5tNHYsLm1wNCwucm0sLnJhbSwudm9iLC5vZ3YsLndlYm0sLndtdlwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uVXBsb2FkKGxlY3R1cmUoKS5pZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGkxOG4+Tm8gdmlkZW9zPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBpMThuPlVwbG9hZDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKCFoYXNVbnNhdmVkKSB7XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class CourseSectionLectureVideoItemComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionLectureVideoItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CourseSectionLectureVideoItemComponent, isStandalone: true, selector: \"rolatech-course-section-lecture-video-item\", ngImport: i0, template: \"<p>course-section-lecture-video-item works!</p>\\n\", styles: [\"\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionLectureVideoItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-section-lecture-video-item', template: \"<p>course-section-lecture-video-item works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24tbGVjdHVyZS12aWRlby1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWl0ZW0vY291cnNlLXNlY3Rpb24tbGVjdHVyZS12aWRlby1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWl0ZW0vY291cnNlLXNlY3Rpb24tbGVjdHVyZS12aWRlby1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxzQ0FBc0M7OEdBQXRDLHNDQUFzQztrR0FBdEMsc0NBQXNDLHNHQ1BuRCxtREFDQTs7MkZETWEsc0NBQXNDO2tCQUxsRCxTQUFTOytCQUNFLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXNlY3Rpb24tbGVjdHVyZS12aWRlby1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLXNlY3Rpb24tbGVjdHVyZS12aWRlby1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9JdGVtQ29tcG9uZW50IHt9XG4iLCI8cD5jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLXZpZGVvLWl0ZW0gd29ya3MhPC9wPlxuIl19","import { Component, input, model, output } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@angular/material/button\";\nimport * as i5 from \"@angular/material/divider\";\nexport class PricingItemComponent {\n constructor() {\n this.actions = input(false);\n this.pricing = model.required();\n this.delete = output();\n this.save = output();\n }\n ngOnInit() {\n this.pricing().total = this.pricing().total / 100;\n }\n onSave(pricing) {\n const finalPricing = {\n ...pricing,\n total: pricing.total * 100,\n };\n this.save.emit(finalPricing);\n }\n onDelete(pricing) {\n this.delete.emit(pricing);\n }\n setTwoNumberDecimal(e) {\n this.pricing().total = e;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: PricingItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: PricingItemComponent, isStandalone: true, selector: \"rolatech-pricing-item\", inputs: { actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, pricing: { classPropertyName: \"pricing\", publicName: \"pricing\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pricing: \"pricingChange\", delete: \"delete\", save: \"save\" }, ngImport: i0, template: \"<div class=\\\"flex flex-col py-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Min </mat-label>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"pricing().min\\\" name=\\\"min\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Max </mat-label>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"pricing().max\\\" name=\\\"max\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Price </mat-label>\\n <!-- <input matInput type=\\\"number\\\" step=\\\"0.01\\\" [ngModel]=\\\"pricing().total\\\"\\n (ngModelChange)=\\\"setTwoNumberDecimal($event)\\\" name=\\\"total\\\" required placeholder=\\\"20.23\\\" /> -->\\n <input matInput rolatechDecimal type=\\\"text\\\" [(ngModel)]=\\\"pricing().total\\\" name=\\\"total\\\" required />\\n </mat-form-field>\\n</div>\\n@if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(pricing())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(pricing())\\\" i18n>Save</button>\\n </div>\\n}\\n<mat-divider></mat-divider>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i3.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i4.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i5.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: PricingItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-pricing-item', imports: [MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatDividerModule], template: \"<div class=\\\"flex flex-col py-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Min </mat-label>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"pricing().min\\\" name=\\\"min\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Max </mat-label>\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"pricing().max\\\" name=\\\"max\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Price </mat-label>\\n <!-- <input matInput type=\\\"number\\\" step=\\\"0.01\\\" [ngModel]=\\\"pricing().total\\\"\\n (ngModelChange)=\\\"setTwoNumberDecimal($event)\\\" name=\\\"total\\\" required placeholder=\\\"20.23\\\" /> -->\\n <input matInput rolatechDecimal type=\\\"text\\\" [(ngModel)]=\\\"pricing().total\\\" name=\\\"total\\\" required />\\n </mat-form-field>\\n</div>\\n@if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(pricing())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(pricing())\\\" i18n>Save</button>\\n </div>\\n}\\n<mat-divider></mat-divider>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2luZy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9wcmljaW5nLWl0ZW0vcHJpY2luZy1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9wcmljaW5nLWl0ZW0vcHJpY2luZy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFTbEUsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQjtRQUxBLFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEMsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUNwQyxXQUFNLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFDM0IsU0FBSSxHQUFHLE1BQU0sRUFBVyxDQUFDO0lBRVYsQ0FBQztJQUNoQixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdCO1FBQ3JCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLEdBQUcsT0FBTztZQUNWLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUc7U0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBZ0I7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELG1CQUFtQixDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0F2QlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsK1pDZGpDLHNuQ0F1QkEseUREWFksa0JBQWtCLDBTQUFFLGNBQWMsaVlBQUUsV0FBVyw2K0JBQUUsZUFBZSxtWEFBRSxnQkFBZ0I7OzJGQUVqRixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsdUJBQXVCLFdBR3hCLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBQcmljaW5nIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByaWNpbmctaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmljaW5nLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcmljaW5nLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW01hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdERpdmlkZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBQcmljaW5nSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGFjdGlvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHByaWNpbmcgPSBtb2RlbC5yZXF1aXJlZDxQcmljaW5nPigpO1xuICBkZWxldGUgPSBvdXRwdXQ8UHJpY2luZz4oKTtcbiAgc2F2ZSA9IG91dHB1dDxQcmljaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmljaW5nKCkudG90YWwgPSB0aGlzLnByaWNpbmcoKS50b3RhbCAvIDEwMDtcbiAgfVxuXG4gIG9uU2F2ZShwcmljaW5nOiBQcmljaW5nKSB7XG4gICAgY29uc3QgZmluYWxQcmljaW5nID0ge1xuICAgICAgLi4ucHJpY2luZyxcbiAgICAgIHRvdGFsOiBwcmljaW5nLnRvdGFsICogMTAwLFxuICAgIH07XG4gICAgdGhpcy5zYXZlLmVtaXQoZmluYWxQcmljaW5nKTtcbiAgfVxuICBvbkRlbGV0ZShwcmljaW5nOiBQcmljaW5nKSB7XG4gICAgdGhpcy5kZWxldGUuZW1pdChwcmljaW5nKTtcbiAgfVxuICBzZXRUd29OdW1iZXJEZWNpbWFsKGU6IGFueSkge1xuICAgIHRoaXMucHJpY2luZygpLnRvdGFsID0gZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktM1wiPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsIGkxOG4+IE1pbiA8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwicHJpY2luZygpLm1pblwiIG5hbWU9XCJtaW5cIiByZXF1aXJlZCAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsIGkxOG4+IE1heCA8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwicHJpY2luZygpLm1heFwiIG5hbWU9XCJtYXhcIiByZXF1aXJlZCAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICA8bWF0LWxhYmVsIGkxOG4+IFByaWNlIDwvbWF0LWxhYmVsPlxuICAgIDwhLS0gPGlucHV0IG1hdElucHV0ICB0eXBlPVwibnVtYmVyXCIgc3RlcD1cIjAuMDFcIiBbbmdNb2RlbF09XCJwcmljaW5nKCkudG90YWxcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFR3b051bWJlckRlY2ltYWwoJGV2ZW50KVwiIG5hbWU9XCJ0b3RhbFwiIHJlcXVpcmVkIHBsYWNlaG9sZGVyPVwiMjAuMjNcIiAvPiAtLT5cbiAgICA8aW5wdXQgbWF0SW5wdXQgcm9sYXRlY2hEZWNpbWFsIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJwcmljaW5nKCkudG90YWxcIiBuYW1lPVwidG90YWxcIiByZXF1aXJlZCAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG5AaWYgKGFjdGlvbnMoKSkge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBwLTMgZ2FwLTNcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uRGVsZXRlKHByaWNpbmcoKSlcIiBpMThuPkRlbGV0ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvblNhdmUocHJpY2luZygpKVwiIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbn1cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19","import { Component, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PricingItemComponent } from '../pricing-item/pricing-item.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nexport class CoursePricingAddDialogComponent {\n constructor() {\n this.output = output();\n this.pricing = {\n min: 0,\n max: 0,\n total: 0,\n };\n }\n ngDoCheck() {\n this.output.emit(this.pricing);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePricingAddDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CoursePricingAddDialogComponent, isStandalone: true, selector: \"rolatech-course-pricing-add-dialog\", outputs: { output: \"output\" }, ngImport: i0, template: \"<rolatech-pricing-item [pricing]=\\\"pricing\\\"></rolatech-pricing-item>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: PricingItemComponent, selector: \"rolatech-pricing-item\", inputs: [\"actions\", \"pricing\"], outputs: [\"pricingChange\", \"delete\", \"save\"] }, { kind: \"ngmodule\", type: MatButtonModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePricingAddDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-pricing-add-dialog', imports: [MatIconModule, PricingItemComponent, MatButtonModule], template: \"<rolatech-pricing-item [pricing]=\\\"pricing\\\"></rolatech-pricing-item>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXByaWNpbmctYWRkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvY291cnNlLXByaWNpbmctYWRkLWRpYWxvZy9jb3Vyc2UtcHJpY2luZy1hZGQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtcHJpY2luZy1hZGQtZGlhbG9nL2NvdXJzZS1wcmljaW5nLWFkZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFTdkQsTUFBTSxPQUFPLCtCQUErQjtJQU41QztRQU9FLFdBQU0sR0FBRyxNQUFNLEVBQU8sQ0FBQztRQUN2QixZQUFPLEdBQVk7WUFDakIsR0FBRyxFQUFFLENBQUM7WUFDTixHQUFHLEVBQUUsQ0FBQztZQUNOLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQztLQUlIO0lBSEMsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQVRVLCtCQUErQjtrR0FBL0IsK0JBQStCLDZIQ1o1Qyx5RUFDQSxxRkRTWSxhQUFhLCtCQUFFLG9CQUFvQiwrSUFBRSxlQUFlOzsyRkFFbkQsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLG9DQUFvQyxXQUdyQyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFByaWNpbmdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJpY2luZy1pdGVtL3ByaWNpbmctaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgUHJpY2luZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtcHJpY2luZy1hZGQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1wcmljaW5nLWFkZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtcHJpY2luZy1hZGQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBQcmljaW5nSXRlbUNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlUHJpY2luZ0FkZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBvdXRwdXQgPSBvdXRwdXQ8YW55PigpO1xuICBwcmljaW5nOiBQcmljaW5nID0ge1xuICAgIG1pbjogMCxcbiAgICBtYXg6IDAsXG4gICAgdG90YWw6IDAsXG4gIH07XG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLm91dHB1dC5lbWl0KHRoaXMucHJpY2luZyk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1wcmljaW5nLWl0ZW0gW3ByaWNpbmddPVwicHJpY2luZ1wiPjwvcm9sYXRlY2gtcHJpY2luZy1pdGVtPlxuIl19","import { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { Component, output, input, effect } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatOptionModule } from '@angular/material/core';\nimport moment from 'moment';\nimport { DatePipe } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ScheduleDate } from '../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/cdk/text-field\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/datepicker\";\nimport * as i6 from \"@angular/material/select\";\nimport * as i7 from \"@angular/material/autocomplete\";\nimport * as i8 from \"@angular/material/button\";\nimport * as i9 from \"@angular/material/divider\";\nexport const COURSE_SCHEDULE_DATE_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class ScheduleItemComponent {\n constructor() {\n this.value = input();\n this.actions = input(false);\n this.delete = output();\n this.save = output();\n this.date = ScheduleDate;\n this.schedule = effect(() => {\n this.schedule = this.value() || {\n title: '',\n content: '',\n startAt: '',\n endAt: '',\n };\n this.schedule.startDate = moment(this.schedule.startAt).format('YYYY-MM-DD');\n this.schedule.startTime = moment(this.schedule.startAt).format('HH:mm');\n this.schedule.endDate = moment(this.schedule.endAt).format('YYYY-MM-DD');\n this.schedule.endTime = moment(this.schedule.endAt).format('HH:mm');\n });\n }\n // constructor() {\n // this.schedule = this.value();\n // }\n ngOnInit() {\n // this.schedule = computed(() => {\n // return this.value();\n // })();\n // this.schedule = this.value();\n // this.schedule.startDate = moment(this.schedule.startAt).format('YYYY-MM-DD');\n // this.schedule.startTime = moment(this.schedule.startAt).format('HH:mm');\n // this.schedule.endDate = moment(this.schedule.endAt).format('YYYY-MM-DD');\n // this.schedule.endTime = moment(this.schedule.endAt).format('HH:mm');\n }\n ngOnDestroy() {\n const { startAt, endAt, startTime, startDate, endDate, endTime } = this.schedule;\n this.schedule.startAt = this.schedule.startDate + ' ' + this.schedule.startTime;\n this.schedule.endAt = this.schedule.endDate + ' ' + this.schedule.endTime;\n delete this.schedule.startDate;\n delete this.schedule.startTime;\n delete this.schedule.endDate;\n delete this.schedule.endTime;\n }\n startDateChanged(event) { }\n startTimeChanged(event) { }\n endDateChanged(event) { }\n endTimeChanged(event) { }\n onSave(schedule) {\n this.format();\n this.save.emit(schedule);\n }\n onDelete(schedule) {\n this.delete.emit(schedule);\n }\n format() {\n this.schedule.startAt = this.schedule.startDate + ' ' + this.schedule.startTime;\n this.schedule.endAt = this.schedule.endDate + ' ' + this.schedule.endTime;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ScheduleItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: ScheduleItemComponent, isStandalone: true, selector: \"rolatech-schedule-item\", inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: \"delete\", save: \"save\" }, providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: COURSE_SCHEDULE_DATE_FORMATS },\n DatePipe,\n ], ngImport: i0, template: \"<div class=\\\"flex flex-col py-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"schedule.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Content </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"schedule.content\\\"\\n name=\\\"content\\\"\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n required\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex flex-row gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Start at</mat-label>\\n <input\\n matInput\\n [matDatepicker]=\\\"picker\\\"\\n (focus)=\\\"picker.open()\\\"\\n name=\\\"startAt\\\"\\n [(ngModel)]=\\\"schedule.startDate\\\"\\n (ngModelChange)=\\\"startDateChanged($event)\\\"\\n (dateInput)=\\\"schedule.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #picker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Start time</mat-label>\\n <mat-select [(ngModel)]=\\\"schedule.startTime\\\" (selectionChange)=\\\"startTimeChanged($event)\\\" required readonly>\\n @for (d of date; track d) {\\n <mat-option [value]=\\\"d\\\">\\n {{ d }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-row gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>End at</mat-label>\\n <input\\n matInput\\n [matDatepicker]=\\\"picker2\\\"\\n name=\\\"endAt\\\"\\n (focus)=\\\"picker2.open()\\\"\\n (ngModelChange)=\\\"endDateChanged($event)\\\"\\n [(ngModel)]=\\\"schedule.endDate\\\"\\n (dateInput)=\\\"schedule.endDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconSuffix [for]=\\\"picker2\\\"></mat-datepicker-toggle>\\n <mat-datepicker #picker2></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>End time</mat-label>\\n <mat-select [(ngModel)]=\\\"schedule.endTime\\\" (selectionChange)=\\\"endTimeChanged($event)\\\" required readonly>\\n @for (d of date; track d) {\\n <mat-option [value]=\\\"d\\\">\\n {{ d }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n</div>\\n@if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(schedule)\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(schedule)\\\" i18n>Save</button>\\n </div>\\n}\\n<mat-divider></mat-divider>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i1.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i3.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i4.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i4.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i5.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i5.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i5.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i6.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i7.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i8.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i9.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ScheduleItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-schedule-item', providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: COURSE_SCHEDULE_DATE_FORMATS },\n DatePipe,\n ], imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatDatepickerModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n MatDividerModule,\n ], template: \"<div class=\\\"flex flex-col py-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"schedule.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Content </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"schedule.content\\\"\\n name=\\\"content\\\"\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n required\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex flex-row gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Start at</mat-label>\\n <input\\n matInput\\n [matDatepicker]=\\\"picker\\\"\\n (focus)=\\\"picker.open()\\\"\\n name=\\\"startAt\\\"\\n [(ngModel)]=\\\"schedule.startDate\\\"\\n (ngModelChange)=\\\"startDateChanged($event)\\\"\\n (dateInput)=\\\"schedule.startDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #picker></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Start time</mat-label>\\n <mat-select [(ngModel)]=\\\"schedule.startTime\\\" (selectionChange)=\\\"startTimeChanged($event)\\\" required readonly>\\n @for (d of date; track d) {\\n <mat-option [value]=\\\"d\\\">\\n {{ d }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"flex flex-row gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>End at</mat-label>\\n <input\\n matInput\\n [matDatepicker]=\\\"picker2\\\"\\n name=\\\"endAt\\\"\\n (focus)=\\\"picker2.open()\\\"\\n (ngModelChange)=\\\"endDateChanged($event)\\\"\\n [(ngModel)]=\\\"schedule.endDate\\\"\\n (dateInput)=\\\"schedule.endDate = $event.value.format('YYYY-MM-DD')\\\"\\n readonly\\n required\\n />\\n <mat-datepicker-toggle matIconSuffix [for]=\\\"picker2\\\"></mat-datepicker-toggle>\\n <mat-datepicker #picker2></mat-datepicker>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>End time</mat-label>\\n <mat-select [(ngModel)]=\\\"schedule.endTime\\\" (selectionChange)=\\\"endTimeChanged($event)\\\" required readonly>\\n @for (d of date; track d) {\\n <mat-option [value]=\\\"d\\\">\\n {{ d }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n</div>\\n@if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(schedule)\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(schedule)\\\" i18n>Save</button>\\n </div>\\n}\\n<mat-divider></mat-divider>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUtaXRlbS9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS1pdGVtL3NjaGVkdWxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFTLEtBQUssRUFBRSxNQUFNLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekcsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFB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QVc7NEJBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7NEJBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQzt5QkFDeEI7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFO3dCQUNyRSxRQUFRO3FCQUNULFdBQ1E7d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIG91dHB1dCwgbW9kZWwsIGlucHV0LCBlZmZlY3QsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU2NoZWR1bGUsIFNjaGVkdWxlRGF0ZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuZXhwb3J0IGNvbnN0IENPVVJTRV9TQ0hFRFVMRV9EQVRFX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXNjaGVkdWxlLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjaGVkdWxlLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IENPVVJTRV9TQ0hFRFVMRV9EQVRFX0ZPUk1BVFMgfSxcbiAgICBEYXRlUGlwZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHZhbHVlID0gaW5wdXQ8U2NoZWR1bGUgfCB1bmRlZmluZWQ+KCk7XG4gIGFjdGlvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGRlbGV0ZSA9IG91dHB1dDxTY2hlZHVsZT4oKTtcbiAgc2F2ZSA9IG91dHB1dDxTY2hlZHVsZT4oKTtcbiAgZGF0ZSA9IFNjaGVkdWxlRGF0ZTtcbiAgc2NoZWR1bGU6IGFueSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy5zY2hlZHVsZSA9IHRoaXMudmFsdWUoKSB8fCB7XG4gICAgICB0aXRsZTogJycsXG4gICAgICBjb250ZW50OiAnJyxcbiAgICAgIHN0YXJ0QXQ6ICcnLFxuICAgICAgZW5kQXQ6ICcnLFxuICAgIH07XG4gICAgdGhpcy5zY2hlZHVsZS5zdGFydERhdGUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5zdGFydEF0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB0aGlzLnNjaGVkdWxlLnN0YXJ0VGltZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLnN0YXJ0QXQpLmZvcm1hdCgnSEg6bW0nKTtcbiAgICB0aGlzLnNjaGVkdWxlLmVuZERhdGUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5lbmRBdCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgdGhpcy5zY2hlZHVsZS5lbmRUaW1lID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuZW5kQXQpLmZvcm1hdCgnSEg6bW0nKTtcbiAgfSk7XG4gIC8vIGNvbnN0cnVjdG9yKCkge1xuICAvLyAgIHRoaXMuc2NoZWR1bGUgPSB0aGlzLnZhbHVlKCk7XG4gIC8vIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLnNjaGVkdWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vICAgcmV0dXJuIHRoaXMudmFsdWUoKTtcbiAgICAvLyB9KSgpO1xuICAgIC8vIHRoaXMuc2NoZWR1bGUgPSB0aGlzLnZhbHVlKCk7XG4gICAgLy8gdGhpcy5zY2hlZHVsZS5zdGFydERhdGUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5zdGFydEF0KS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAvLyB0aGlzLnNjaGVkdWxlLnN0YXJ0VGltZSA9IG1vbWVudCh0aGlzLnNjaGVkdWxlLnN0YXJ0QXQpLmZvcm1hdCgnSEg6bW0nKTtcbiAgICAvLyB0aGlzLnNjaGVkdWxlLmVuZERhdGUgPSBtb21lbnQodGhpcy5zY2hlZHVsZS5lbmRBdCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgLy8gdGhpcy5zY2hlZHVsZS5lbmRUaW1lID0gbW9tZW50KHRoaXMuc2NoZWR1bGUuZW5kQXQpLmZvcm1hdCgnSEg6bW0nKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjb25zdCB7IHN0YXJ0QXQsIGVuZEF0LCBzdGFydFRpbWUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgZW5kVGltZSB9ID0gdGhpcy5zY2hlZHVsZTtcbiAgICB0aGlzLnNjaGVkdWxlLnN0YXJ0QXQgPSB0aGlzLnNjaGVkdWxlLnN0YXJ0RGF0ZSArICcgJyArIHRoaXMuc2NoZWR1bGUuc3RhcnRUaW1lO1xuICAgIHRoaXMuc2NoZWR1bGUuZW5kQXQgPSB0aGlzLnNjaGVkdWxlLmVuZERhdGUgKyAnICcgKyB0aGlzLnNjaGVkdWxlLmVuZFRpbWU7XG4gICAgZGVsZXRlIHRoaXMuc2NoZWR1bGUuc3RhcnREYXRlO1xuICAgIGRlbGV0ZSB0aGlzLnNjaGVkdWxlLnN0YXJ0VGltZTtcbiAgICBkZWxldGUgdGhpcy5zY2hlZHVsZS5lbmREYXRlO1xuICAgIGRlbGV0ZSB0aGlzLnNjaGVkdWxlLmVuZFRpbWU7XG4gIH1cbiAgc3RhcnREYXRlQ2hhbmdlZChldmVudDogYW55KSB7fVxuICBzdGFydFRpbWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHt9XG5cbiAgZW5kRGF0ZUNoYW5nZWQoZXZlbnQ6IGFueSkge31cbiAgZW5kVGltZUNoYW5nZWQoZXZlbnQ6IGFueSkge31cblxuICBvblNhdmUoc2NoZWR1bGU6IFNjaGVkdWxlKSB7XG4gICAgdGhpcy5mb3JtYXQoKTtcbiAgICB0aGlzLnNhdmUuZW1pdChzY2hlZHVsZSk7XG4gIH1cbiAgb25EZWxldGUoc2NoZWR1bGU6IFNjaGVkdWxlKSB7XG4gICAgdGhpcy5kZWxldGUuZW1pdChzY2hlZHVsZSk7XG4gIH1cbiAgcHJpdmF0ZSBmb3JtYXQoKSB7XG4gICAgdGhpcy5zY2hlZHVsZS5zdGFydEF0ID0gdGhpcy5zY2hlZHVsZS5zdGFydERhdGUgKyAnICcgKyB0aGlzLnNjaGVkdWxlLnN0YXJ0VGltZTtcbiAgICB0aGlzLnNjaGVkdWxlLmVuZEF0ID0gdGhpcy5zY2hlZHVsZS5lbmREYXRlICsgJyAnICsgdGhpcy5zY2hlZHVsZS5lbmRUaW1lO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweS0zXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgIDxtYXQtbGFiZWwgaTE4bj4gVGl0bGUgPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS50aXRsZVwiIG5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgIDxtYXQtbGFiZWwgaTE4bj4gQ29udGVudCA8L21hdC1sYWJlbD5cbiAgICA8dGV4dGFyZWFcbiAgICAgIG1hdElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNjaGVkdWxlLmNvbnRlbnRcIlxuICAgICAgbmFtZT1cImNvbnRlbnRcIlxuICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICByZXF1aXJlZFxuICAgID48L3RleHRhcmVhPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtM1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbCBpMThuPlN0YXJ0IGF0PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIlxuICAgICAgICBuYW1lPVwic3RhcnRBdFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2NoZWR1bGUuc3RhcnREYXRlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic3RhcnREYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKGRhdGVJbnB1dCk9XCJzY2hlZHVsZS5zdGFydERhdGUgPSAkZXZlbnQudmFsdWUuZm9ybWF0KCdZWVlZLU1NLUREJylcIlxuICAgICAgICByZWFkb25seVxuICAgICAgICByZXF1aXJlZFxuICAgICAgLz5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgPG1hdC1sYWJlbCBpMThuPlN0YXJ0IHRpbWU8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2NoZWR1bGUuc3RhcnRUaW1lXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzdGFydFRpbWVDaGFuZ2VkKCRldmVudClcIiByZXF1aXJlZCByZWFkb25seT5cbiAgICAgICAgQGZvciAoZCBvZiBkYXRlOyB0cmFjayBkKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImRcIj5cbiAgICAgICAgICAgIHt7IGQgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTNcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5FbmQgYXQ8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIyXCJcbiAgICAgICAgbmFtZT1cImVuZEF0XCJcbiAgICAgICAgKGZvY3VzKT1cInBpY2tlcjIub3BlbigpXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW5kRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2NoZWR1bGUuZW5kRGF0ZVwiXG4gICAgICAgIChkYXRlSW5wdXQpPVwic2NoZWR1bGUuZW5kRGF0ZSA9ICRldmVudC52YWx1ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAvPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwicGlja2VyMlwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5FbmQgdGltZTwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJzY2hlZHVsZS5lbmRUaW1lXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJlbmRUaW1lQ2hhbmdlZCgkZXZlbnQpXCIgcmVxdWlyZWQgcmVhZG9ubHk+XG4gICAgICAgIEBmb3IgKGQgb2YgZGF0ZTsgdHJhY2sgZCkge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJkXCI+XG4gICAgICAgICAgICB7eyBkIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoYWN0aW9ucygpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktZW5kIHAtMyBnYXAtM1wiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25EZWxldGUoc2NoZWR1bGUpXCIgaTE4bj5EZWxldGU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25TYXZlKHNjaGVkdWxlKVwiIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbn1cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19","import { Component, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ScheduleItemComponent } from '../schedule-item/schedule-item.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nexport class CourseScheduleAddDialogComponent {\n constructor() {\n this.output = output();\n this.schedule = {\n title: '',\n content: '',\n startAt: '',\n endAt: '',\n };\n }\n ngDoCheck() {\n this.output.emit(this.schedule);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseScheduleAddDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CourseScheduleAddDialogComponent, isStandalone: true, selector: \"rolatech-course-schedule-add-dialog\", outputs: { output: \"output\" }, ngImport: i0, template: \"<rolatech-schedule-item [value]=\\\"schedule\\\"></rolatech-schedule-item>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ScheduleItemComponent, selector: \"rolatech-schedule-item\", inputs: [\"value\", \"actions\"], outputs: [\"delete\", \"save\"] }, { kind: \"ngmodule\", type: MatButtonModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseScheduleAddDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-schedule-add-dialog', imports: [MatIconModule, ScheduleItemComponent, MatButtonModule], template: \"<rolatech-schedule-item [value]=\\\"schedule\\\"></rolatech-schedule-item>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNjaGVkdWxlLWFkZC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NvdXJzZS1zY2hlZHVsZS1hZGQtZGlhbG9nL2NvdXJzZS1zY2hlZHVsZS1hZGQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2NoZWR1bGUtYWRkLWRpYWxvZy9jb3Vyc2Utc2NoZWR1bGUtYWRkLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVN2RCxNQUFNLE9BQU8sZ0NBQWdDO0lBTjdDO1FBT0UsV0FBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO1FBQ3ZCLGFBQVEsR0FBYTtZQUNuQixLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7S0FJSDtJQUhDLFNBQVM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0FWVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyw4SENaN0MsMEVBQ0EseUREU1ksYUFBYSwrQkFBRSxxQkFBcUIsNkhBQUUsZUFBZTs7MkZBRXBELGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSxxQ0FBcUMsV0FHdEMsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBTY2hlZHVsZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9zY2hlZHVsZS1pdGVtL3NjaGVkdWxlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFNjaGVkdWxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1zY2hlZHVsZS1hZGQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1zY2hlZHVsZS1hZGQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLXNjaGVkdWxlLWFkZC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIFNjaGVkdWxlSXRlbUNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlU2NoZWR1bGVBZGREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgb3V0cHV0ID0gb3V0cHV0PGFueT4oKTtcbiAgc2NoZWR1bGU6IFNjaGVkdWxlID0ge1xuICAgIHRpdGxlOiAnJyxcbiAgICBjb250ZW50OiAnJyxcbiAgICBzdGFydEF0OiAnJyxcbiAgICBlbmRBdDogJycsXG4gIH07XG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLm91dHB1dC5lbWl0KHRoaXMuc2NoZWR1bGUpO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtc2NoZWR1bGUtaXRlbSBbdmFsdWVdPVwic2NoZWR1bGVcIj48L3JvbGF0ZWNoLXNjaGVkdWxlLWl0ZW0+XG4iXX0=","import { Component, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogClose } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { PricingItemComponent } from '../pricing-item/pricing-item.component';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CourseService } from '../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"../../services\";\nimport * as i3 from \"@angular/material/snack-bar\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/divider\";\nimport * as i6 from \"@angular/forms\";\nimport * as i7 from \"@angular/material/stepper\";\nimport * as i8 from \"@angular/material/button\";\nexport class CoursePricingDialogComponent {\n constructor(dialogRef, data, courseService, snackBar, dialog) {\n this.dialogRef = dialogRef;\n this.data = data;\n this.courseService = courseService;\n this.snackBar = snackBar;\n this.dialog = dialog;\n this.pricing = [];\n this.courseId = data.courseId;\n this.pricing = data.pricing;\n }\n close() {\n this.dialogRef.close();\n }\n addPricing() {\n this.pricing.push({\n min: 0,\n max: 0,\n total: 0,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePricingDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.CourseService }, { token: i3.MatSnackBar }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CoursePricingDialogComponent, isStandalone: true, selector: \"rolatech-course-pricing-dialog\", ngImport: i0, template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto w-2/3 max-h-[55vh]\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"p-3\\\">\\n <ng-template matStepLabel>\\u8BE6\\u60C5</ng-template>\\n @for (item of pricing; track item) {\\n <rolatech-pricing-item [pricing]=\\\"item\\\"> </rolatech-pricing-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addPricing()\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u4EF7\\u683C</span>\\n </button>\\n </div>\\n </form>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n <button mat-button [mat-dialog-close]=\\\"pricing\\\" cdkFocusInitial i18n>Save</button>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i5.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i6.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i6.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i6.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatStepperModule }, { kind: \"directive\", type: i7.MatStepLabel, selector: \"[matStepLabel]\" }, { kind: \"component\", type: PricingItemComponent, selector: \"rolatech-pricing-item\", inputs: [\"actions\", \"pricing\"], outputs: [\"pricingChange\", \"delete\", \"save\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i8.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CoursePricingDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-pricing-dialog', imports: [\n MatIconModule,\n MatDividerModule,\n FormsModule,\n MatStepperModule,\n PricingItemComponent,\n MatButtonModule,\n MatDialogClose,\n ], template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto w-2/3 max-h-[55vh]\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"p-3\\\">\\n <ng-template matStepLabel>\\u8BE6\\u60C5</ng-template>\\n @for (item of pricing; track item) {\\n <rolatech-pricing-item [pricing]=\\\"item\\\"> </rolatech-pricing-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addPricing()\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u4EF7\\u683C</span>\\n </button>\\n </div>\\n </form>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n <button mat-button [mat-dialog-close]=\\\"pricing\\\" cdkFocusInitial i18n>Save</button>\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_DIALOG_DATA]\n }] }, { type: i2.CourseService }, { type: i3.MatSnackBar }, { type: i1.MatDialog }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXByaWNpbmctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtcHJpY2luZy1kaWFsb2cvY291cnNlLXByaWNpbmctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtcHJpY2luZy1kaWFsb2cvY291cnNlLXByaWNpbmctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBZ0IvQyxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFlBQ1UsU0FBcUQsRUFDN0IsSUFBUyxFQUNqQyxhQUE0QixFQUM1QixRQUFxQixFQUNyQixNQUFpQjtRQUpqQixjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQU4zQixZQUFPLEdBQWMsRUFBRSxDQUFDO1FBUXRCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUM7WUFDTixHQUFHLEVBQUUsQ0FBQztZQUNOLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F0QlUsNEJBQTRCLDhDQUs3QixlQUFlO2tHQUxkLDRCQUE0QiwwRkMxQnpDLDBsQ0E2QkEseUREWkksYUFBYSxtTEFDYixnQkFBZ0Isa0lBQ2hCLFdBQVcsdWRBQ1gsZ0JBQWdCLHlHQUNoQixvQkFBb0IsK0lBQ3BCLGVBQWUsb1hBQ2YsY0FBYzs7MkZBR0wsNEJBQTRCO2tCQWR4QyxTQUFTOytCQUNFLGdDQUFnQyxXQUdqQzt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixjQUFjO3FCQUNmOzswQkFPRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQ2xvc2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFByaWNpbmdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJpY2luZy1pdGVtL3ByaWNpbmctaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBQcmljaW5nIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtcHJpY2luZy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXByaWNpbmctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLXByaWNpbmctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U3RlcHBlck1vZHVsZSxcbiAgICBQcmljaW5nSXRlbUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nQ2xvc2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVByaWNpbmdEaWFsb2dDb21wb25lbnQge1xuICBjb3Vyc2VJZCE6IHN0cmluZztcbiAgcHJpY2luZzogUHJpY2luZ1tdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q291cnNlUHJpY2luZ0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBjb3Vyc2VTZXJ2aWNlOiBDb3Vyc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICkge1xuICAgIHRoaXMuY291cnNlSWQgPSBkYXRhLmNvdXJzZUlkO1xuICAgIHRoaXMucHJpY2luZyA9IGRhdGEucHJpY2luZztcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIGFkZFByaWNpbmcoKSB7XG4gICAgdGhpcy5wcmljaW5nLnB1c2goe1xuICAgICAgbWluOiAwLFxuICAgICAgbWF4OiAwLFxuICAgICAgdG90YWw6IDAsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbCBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgPGRpdiBjbGFzcz1cImgtMTYgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB4LTVcIj5cbiAgICBAaWYgKGRhdGEudGl0bGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIGZvbnQtbWVkaXVtXCI+e3sgZGF0YS50aXRsZSB9fTwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgb3ZlcmZsb3ctaGlkZGVuIG10LTMgb3ZlcmZsb3cteS1hdXRvIHctMi8zIG1heC1oLVs1NXZoXVwiPlxuICAgIDxmb3JtICNkZXRhaWxGb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJwLTNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+6K+m5oOFPC9uZy10ZW1wbGF0ZT5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgcHJpY2luZzsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8cm9sYXRlY2gtcHJpY2luZy1pdGVtIFtwcmljaW5nXT1cIml0ZW1cIj4gPC9yb2xhdGVjaC1wcmljaW5nLWl0ZW0+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwibWItNlwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImFkZFByaWNpbmcoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuPuWinuWKoOS7t+agvDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPGRpdiBjbGFzcz1cImgtMTYgZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgcHgtNVwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJwcmljaW5nXCIgY2RrRm9jdXNJbml0aWFsIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogClose } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ScheduleItemComponent } from '../schedule-item/schedule-item.component';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/divider\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/stepper\";\nimport * as i6 from \"@angular/material/button\";\nexport class CourseScheduleDialogComponent {\n constructor(dialogRef, data) {\n this.dialogRef = dialogRef;\n this.data = data;\n this.schedule = [];\n this.courseId = data.courseId;\n this.schedule = data.schedule;\n }\n close() {\n this.dialogRef.close();\n }\n addSchedule() {\n if (!this.schedule) {\n this.schedule = [];\n }\n this.schedule.push({\n title: '',\n content: '',\n startAt: '',\n endAt: '',\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseScheduleDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseScheduleDialogComponent, isStandalone: true, selector: \"rolatech-course-schedule-dialog\", ngImport: i0, template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"p-3\\\">\\n <ng-template matStepLabel i18n>Details</ng-template>\\n @for (item of schedule; track item) {\\n <rolatech-schedule-item [value]=\\\"item\\\"></rolatech-schedule-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addSchedule()\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u8BFE\\u8868</span>\\n </button>\\n </div>\\n </form>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n <button mat-button [mat-dialog-close]=\\\"schedule\\\" cdkFocusInitial i18n>Save</button>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i3.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i4.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i4.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatStepperModule }, { kind: \"directive\", type: i5.MatStepLabel, selector: \"[matStepLabel]\" }, { kind: \"component\", type: ScheduleItemComponent, selector: \"rolatech-schedule-item\", inputs: [\"value\", \"actions\"], outputs: [\"delete\", \"save\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i6.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseScheduleDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-schedule-dialog', imports: [\n MatIconModule,\n MatDividerModule,\n FormsModule,\n MatStepperModule,\n ScheduleItemComponent,\n MatButtonModule,\n MatDialogClose,\n ], template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"p-3\\\">\\n <ng-template matStepLabel i18n>Details</ng-template>\\n @for (item of schedule; track item) {\\n <rolatech-schedule-item [value]=\\\"item\\\"></rolatech-schedule-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addSchedule()\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u8BFE\\u8868</span>\\n </button>\\n </div>\\n </form>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n <button mat-button [mat-dialog-close]=\\\"schedule\\\" cdkFocusInitial i18n>Save</button>\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_DIALOG_DATA]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNjaGVkdWxlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2NvbXBvbmVudHMvY291cnNlLXNjaGVkdWxlLWRpYWxvZy9jb3Vyc2Utc2NoZWR1bGUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2Utc2NoZWR1bGUtZGlhbG9nL2NvdXJzZS1zY2hlZHVsZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBaUJ2RCxNQUFNLE9BQU8sNkJBQTZCO0lBR3hDLFlBQ1UsU0FBc0QsRUFDOUIsSUFBUztRQURqQyxjQUFTLEdBQVQsU0FBUyxDQUE2QztRQUM5QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBSDNDLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFLeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdkJVLDZCQUE2Qiw4Q0FLOUIsZUFBZTtrR0FMZCw2QkFBNkIsMkZDeEIxQyx5a0NBNkJBLHlERGRJLGFBQWEsbUxBQ2IsZ0JBQWdCLGtJQUNoQixXQUFXLHVkQUNYLGdCQUFnQix5R0FDaEIscUJBQXFCLDZIQUNyQixlQUFlLG9YQUNmLGNBQWM7OzJGQUdMLDZCQUE2QjtrQkFkekMsU0FBUzsrQkFDRSxpQ0FBaUMsV0FHbEM7d0JBQ1AsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsY0FBYztxQkFDZjs7MEJBT0UsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dDbG9zZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgU2NoZWR1bGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZWR1bGUtaXRlbS9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFNjaGVkdWxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1zY2hlZHVsZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXNjaGVkdWxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1zY2hlZHVsZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgIFNjaGVkdWxlSXRlbUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nQ2xvc2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNjaGVkdWxlRGlhbG9nQ29tcG9uZW50IHtcbiAgY291cnNlSWQhOiBzdHJpbmc7XG4gIHNjaGVkdWxlOiBTY2hlZHVsZVtdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q291cnNlU2NoZWR1bGVEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICApIHtcbiAgICB0aGlzLmNvdXJzZUlkID0gZGF0YS5jb3Vyc2VJZDtcbiAgICB0aGlzLnNjaGVkdWxlID0gZGF0YS5zY2hlZHVsZTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIGFkZFNjaGVkdWxlKCkge1xuICAgIGlmICghdGhpcy5zY2hlZHVsZSkge1xuICAgICAgdGhpcy5zY2hlZHVsZSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnNjaGVkdWxlLnB1c2goe1xuICAgICAgdGl0bGU6ICcnLFxuICAgICAgY29udGVudDogJycsXG4gICAgICBzdGFydEF0OiAnJyxcbiAgICAgIGVuZEF0OiAnJyxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaC1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxuICA8ZGl2IGNsYXNzPVwiaC0xNiBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHgtNVwiPlxuICAgIEBpZiAoZGF0YS50aXRsZSkge1xuICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgZm9udC1tZWRpdW1cIj57eyBkYXRhLnRpdGxlIH19PC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICA8bWF0LWljb24gZm9udEljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMSBvdmVyZmxvdy1oaWRkZW4gbXQtMyBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICA8Zm9ybSAjZGV0YWlsRm9ybT1cIm5nRm9ybVwiIGNsYXNzPVwicC0zXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsIGkxOG4+RGV0YWlsczwvbmctdGVtcGxhdGU+XG4gICAgICBAZm9yIChpdGVtIG9mIHNjaGVkdWxlOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxyb2xhdGVjaC1zY2hlZHVsZS1pdGVtIFt2YWx1ZV09XCJpdGVtXCI+PC9yb2xhdGVjaC1zY2hlZHVsZS1pdGVtPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTZcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJhZGRTY2hlZHVsZSgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4+5aKe5Yqg6K++6KGoPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8ZGl2IGNsYXNzPVwiaC0xNiBmbGV4IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInNjaGVkdWxlXCIgY2RrRm9jdXNJbml0aWFsIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, input, output } from '@angular/core';\nimport { first } from 'lodash';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/cdk/text-field\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/icon\";\nimport * as i7 from \"@angular/material/progress-bar\";\nimport * as i8 from \"@angular/material/divider\";\nexport class DetailItemComponent {\n constructor() {\n this.isUploading = input();\n this.detail = input.required();\n this.actions = input(false);\n this.selectMedia = input();\n this.upload = output();\n this.delete = output();\n this.save = output();\n this.deleteMedia = output();\n }\n ngOnInit() {\n this.selectedImg = this.detail().media ? this.detail().media[0] : null;\n }\n onUpload(id, data) {\n this.upload.emit({ id, data });\n }\n onMediaItemClick(image) {\n this.selectedImg = image;\n }\n select(item) {\n this.selectedImg = item;\n }\n deleteImage() { }\n onSave(detail) {\n this.save.emit(detail);\n }\n onDelete(detail) {\n this.delete.emit(detail);\n }\n onDeleteMedia(id, media) {\n this.deleteMedia.emit({ id, media });\n this.selectedImg = this.detail().media ? first(this.detail().media) : null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DetailItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: DetailItemComponent, isStandalone: true, selector: \"rolatech-detail-item\", inputs: { isUploading: { classPropertyName: \"isUploading\", publicName: \"isUploading\", isSignal: true, isRequired: false, transformFunction: null }, detail: { classPropertyName: \"detail\", publicName: \"detail\", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, selectMedia: { classPropertyName: \"selectMedia\", publicName: \"selectMedia\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { upload: \"upload\", delete: \"delete\", save: \"save\", deleteMedia: \"deleteMedia\" }, ngImport: i0, template: \"<div class=\\\"mb-8\\\">\\n <div class=\\\"flex flex-col lg:flex-row\\\">\\n <div class=\\\"flex flex-col grow\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Title</mat-label>\\n <input matInput placeholder=\\\"Title\\\" [(ngModel)]=\\\"detail().title\\\" i18n />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Description</mat-label>\\n <input matInput placeholder=\\\"Description\\\" [(ngModel)]=\\\"detail().description\\\" i18n />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Content</mat-label>\\n <textarea\\n matInput\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n placeholder=\\\"Conte t\\\"\\n [(ngModel)]=\\\"detail().content\\\"\\n i18n\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <!-- image -->\\n <div class=\\\"lg:basis-1/2 px-3\\\">\\n <div class=\\\"flex flex-row justify-center pb-4 p-1\\\">\\n @if (selectedImg) {\\n <img class=\\\"object-contain w-80 h-80\\\" [src]=\\\"selectedImg.url\\\" [alt]=\\\"selectedImg.alt\\\" />\\n }\\n @if (selectedImg) {\\n <button mat-icon-button (click)=\\\"onDeleteMedia(detail().id, selectedImg)\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n }\\n </div>\\n <!-- media -->\\n <div>\\n <div class=\\\"flex flex-row flex-wrap cursor-pointer relative box-border\\\" fxLayout=\\\"row\\\">\\n <div class=\\\"progress-bar\\\">\\n @if (detail().isUploading) {\\n <mat-progress-bar mode=\\\"indeterminate\\\"></mat-progress-bar>\\n }\\n </div>\\n @for (media of detail().media; track media) {\\n <div class=\\\"media-list-item\\\">\\n <img class=\\\"tile-media\\\" (click)=\\\"onMediaItemClick(media)\\\" [src]=\\\"media.url\\\" [alt]=\\\"media.alt\\\" />\\n </div>\\n }\\n <input style=\\\"display: none\\\" type=\\\"file\\\" accept=\\\"image/*\\\" (change)=\\\"onUpload(detail().id, $event)\\\" #fileInput />\\n <div class=\\\"add-button\\\">\\n <div (click)=\\\"fileInput.click()\\\" class=\\\"tile-media flex justify-center items-center\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"48px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"48px\\\" fill=\\\"#5f6368\\\">\\n <path d=\\\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\\\" />\\n </svg>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n@if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(detail())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(detail())\\\" i18n>Save</button>\\n </div>\\n}\\n<mat-divider></mat-divider>\\n\", styles: [\".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;border:1px solid grey;padding:6px;position:relative;box-sizing:border-box}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i1.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i1.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i2.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i3.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i4.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i5.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i6.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: i7.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i8.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DetailItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-detail-item', imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatProgressBarModule,\n MatDividerModule,\n ], template: \"<div class=\\\"mb-8\\\">\\n <div class=\\\"flex flex-col lg:flex-row\\\">\\n <div class=\\\"flex flex-col grow\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Title</mat-label>\\n <input matInput placeholder=\\\"Title\\\" [(ngModel)]=\\\"detail().title\\\" i18n />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Description</mat-label>\\n <input matInput placeholder=\\\"Description\\\" [(ngModel)]=\\\"detail().description\\\" i18n />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Content</mat-label>\\n <textarea\\n matInput\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n placeholder=\\\"Conte t\\\"\\n [(ngModel)]=\\\"detail().content\\\"\\n i18n\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <!-- image -->\\n <div class=\\\"lg:basis-1/2 px-3\\\">\\n <div class=\\\"flex flex-row justify-center pb-4 p-1\\\">\\n @if (selectedImg) {\\n <img class=\\\"object-contain w-80 h-80\\\" [src]=\\\"selectedImg.url\\\" [alt]=\\\"selectedImg.alt\\\" />\\n }\\n @if (selectedImg) {\\n <button mat-icon-button (click)=\\\"onDeleteMedia(detail().id, selectedImg)\\\">\\n <mat-icon>delete</mat-icon>\\n </button>\\n }\\n </div>\\n <!-- media -->\\n <div>\\n <div class=\\\"flex flex-row flex-wrap cursor-pointer relative box-border\\\" fxLayout=\\\"row\\\">\\n <div class=\\\"progress-bar\\\">\\n @if (detail().isUploading) {\\n <mat-progress-bar mode=\\\"indeterminate\\\"></mat-progress-bar>\\n }\\n </div>\\n @for (media of detail().media; track media) {\\n <div class=\\\"media-list-item\\\">\\n <img class=\\\"tile-media\\\" (click)=\\\"onMediaItemClick(media)\\\" [src]=\\\"media.url\\\" [alt]=\\\"media.alt\\\" />\\n </div>\\n }\\n <input style=\\\"display: none\\\" type=\\\"file\\\" accept=\\\"image/*\\\" (change)=\\\"onUpload(detail().id, $event)\\\" #fileInput />\\n <div class=\\\"add-button\\\">\\n <div (click)=\\\"fileInput.click()\\\" class=\\\"tile-media flex justify-center items-center\\\">\\n <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"48px\\\" viewBox=\\\"0 -960 960 960\\\" width=\\\"48px\\\" fill=\\\"#5f6368\\\">\\n <path d=\\\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\\\" />\\n </svg>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n@if (actions()) {\\n <div class=\\\"flex flex-row justify-end p-3 gap-3\\\">\\n <button mat-button class=\\\"max-h-8\\\" (click)=\\\"onDelete(detail())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(detail())\\\" i18n>Save</button>\\n </div>\\n}\\n<mat-divider></mat-divider>\\n\", styles: [\".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:80px;width:80px;object-fit:contain;cursor:pointer;border:1px solid grey;padding:6px;position:relative;box-sizing:border-box}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2RldGFpbC1pdGVtL2RldGFpbC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9kZXRhaWwtaXRlbS9kZXRhaWwtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7O0FBa0JsRSxNQUFNLE9BQU8sbUJBQW1CO0lBWTlCO1FBWEEsZ0JBQVcsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUMvQixXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZ0IsQ0FBQztRQUN4QyxZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFFM0IsV0FBTSxHQUFHLE1BQU0sRUFBeUMsQ0FBQztRQUN6RCxXQUFNLEdBQUcsTUFBTSxFQUFnQixDQUFDO1FBQ2hDLFNBQUksR0FBRyxNQUFNLEVBQWdCLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxNQUFNLEVBQWdDLENBQUM7SUFHdEMsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUNELFFBQVEsQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBUztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFDRCxXQUFXLEtBQUksQ0FBQztJQUNoQixNQUFNLENBQUMsTUFBb0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFvQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsYUFBYSxDQUFDLEVBQVUsRUFBRSxLQUFZO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0UsQ0FBQzs4R0FyQ1UsbUJBQW1CO2tHQUFuQixtQkFBbUIsbXNCQzNCaEMseTFGQW9FQSxvZERuREksa0JBQWtCLDBTQUNsQixjQUFjLGdtQkFDZCxXQUFXLDhtQkFDWCxlQUFlLDhCQUNmLGVBQWUsMGlCQUNmLGFBQWEsbUxBQ2Isb0JBQW9CLHdOQUNwQixnQkFBZ0I7OzJGQUdQLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxzQkFBc0IsV0FHdkI7d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBDb3Vyc2VEZXRhaWwsIE1lZGlhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWRldGFpbC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RldGFpbC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV0YWlsLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGV0YWlsSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGlzVXBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgZGV0YWlsID0gaW5wdXQucmVxdWlyZWQ8Q291cnNlRGV0YWlsPigpO1xuICBhY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzZWxlY3RNZWRpYSA9IGlucHV0PGFueT4oKTtcblxuICB1cGxvYWQgPSBvdXRwdXQ8eyBpZDogc3RyaW5nOyBkYXRhOiBGb3JtRGF0YSB8IG51bGwgfT4oKTtcbiAgZGVsZXRlID0gb3V0cHV0PENvdXJzZURldGFpbD4oKTtcbiAgc2F2ZSA9IG91dHB1dDxDb3Vyc2VEZXRhaWw+KCk7XG4gIGRlbGV0ZU1lZGlhID0gb3V0cHV0PHsgaWQ6IHN0cmluZzsgbWVkaWE6IE1lZGlhIH0+KCk7XG4gIHNlbGVjdGVkSW1nITogTWVkaWEgfCBhbnk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSB0aGlzLmRldGFpbCgpLm1lZGlhID8gdGhpcy5kZXRhaWwoKS5tZWRpYVswXSA6IG51bGw7XG4gIH1cbiAgb25VcGxvYWQoaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgdGhpcy51cGxvYWQuZW1pdCh7IGlkLCBkYXRhIH0pO1xuICB9XG4gIG9uTWVkaWFJdGVtQ2xpY2soaW1hZ2U6IE1lZGlhKSB7XG4gICAgdGhpcy5zZWxlY3RlZEltZyA9IGltYWdlO1xuICB9XG5cbiAgc2VsZWN0KGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSBpdGVtO1xuICB9XG4gIGRlbGV0ZUltYWdlKCkge31cbiAgb25TYXZlKGRldGFpbDogQ291cnNlRGV0YWlsKSB7XG4gICAgdGhpcy5zYXZlLmVtaXQoZGV0YWlsKTtcbiAgfVxuICBvbkRlbGV0ZShkZXRhaWw6IENvdXJzZURldGFpbCkge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQoZGV0YWlsKTtcbiAgfVxuICBvbkRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhOiBNZWRpYSkge1xuICAgIHRoaXMuZGVsZXRlTWVkaWEuZW1pdCh7IGlkLCBtZWRpYSB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW1nID0gdGhpcy5kZXRhaWwoKS5tZWRpYSA/IGZpcnN0KHRoaXMuZGV0YWlsKCkubWVkaWEpIDogbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1iLThcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBncm93XCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPlRpdGxlPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlRpdGxlXCIgWyhuZ01vZGVsKV09XCJkZXRhaWwoKS50aXRsZVwiIGkxOG4gLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBbaGlkZVJlcXVpcmVkTWFya2VyXT1cInRydWVcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPkRlc2NyaXB0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkRlc2NyaXB0aW9uXCIgWyhuZ01vZGVsKV09XCJkZXRhaWwoKS5kZXNjcmlwdGlvblwiIGkxOG4gLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBbaGlkZVJlcXVpcmVkTWFya2VyXT1cInRydWVcIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPkNvbnRlbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXG4gICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJDb250ZSB0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImRldGFpbCgpLmNvbnRlbnRcIlxuICAgICAgICAgIGkxOG5cbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gaW1hZ2UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxnOmJhc2lzLTEvMiBweC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlciBwYi00IHAtMVwiPlxuICAgICAgICBAaWYgKHNlbGVjdGVkSW1nKSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cIm9iamVjdC1jb250YWluIHctODAgaC04MFwiIFtzcmNdPVwic2VsZWN0ZWRJbWcudXJsXCIgW2FsdF09XCJzZWxlY3RlZEltZy5hbHRcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2VsZWN0ZWRJbWcpIHtcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25EZWxldGVNZWRpYShkZXRhaWwoKS5pZCwgc2VsZWN0ZWRJbWcpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIG1lZGlhIC0tPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGN1cnNvci1wb2ludGVyIHJlbGF0aXZlIGJveC1ib3JkZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj5cbiAgICAgICAgICAgIEBpZiAoZGV0YWlsKCkuaXNVcGxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGZvciAobWVkaWEgb2YgZGV0YWlsKCkubWVkaWE7IHRyYWNrIG1lZGlhKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ0aWxlLW1lZGlhXCIgKGNsaWNrKT1cIm9uTWVkaWFJdGVtQ2xpY2sobWVkaWEpXCIgW3NyY109XCJtZWRpYS51cmxcIiBbYWx0XT1cIm1lZGlhLmFsdFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGlucHV0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIChjaGFuZ2UpPVwib25VcGxvYWQoZGV0YWlsKCkuaWQsICRldmVudClcIiAjZmlsZUlucHV0IC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1idXR0b25cIj5cbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgY2xhc3M9XCJ0aWxlLW1lZGlhIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjQ4cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjQ4cHhcIiBmaWxsPVwiIzVmNjM2OFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNDQ0LTQ0NEgyNDB2LTcyaDIwNHYtMjA0aDcydjIwNGgyMDR2NzJINTE2djIwNGgtNzJ2LTIwNFpcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChhY3Rpb25zKCkpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgcC0zIGdhcC0zXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvbkRlbGV0ZShkZXRhaWwoKSlcIiBpMThuPkRlbGV0ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvblNhdmUoZGV0YWlsKCkpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gIDwvZGl2PlxufVxuPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4iXX0=","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogClose } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { remove } from 'lodash';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DetailItemComponent } from '../detail-item/detail-item.component';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CourseService } from '../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"../../services\";\nimport * as i3 from \"@angular/material/snack-bar\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/divider\";\nimport * as i6 from \"@angular/forms\";\nimport * as i7 from \"@angular/material/stepper\";\nimport * as i8 from \"@angular/material/button\";\nexport class CourseDetailsDialogComponent {\n constructor(dialogRef, data, courseService, snackBar, dialog) {\n this.dialogRef = dialogRef;\n this.data = data;\n this.courseService = courseService;\n this.snackBar = snackBar;\n this.dialog = dialog;\n this.details = [];\n this.courseId = data.courseId;\n }\n close() {\n this.dialogRef.close();\n }\n addDetail() {\n this.courseService\n .addDetail(this.courseId, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res) => {\n const detail = res.data;\n this.details.push({\n id: detail.id,\n title: '',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onDetailMediaUpload(event) { }\n onDetailMediaDelete(event) { }\n onDetailSave(event) { }\n onDetailDelete(detail) {\n this.courseService.deleteDetail(this.courseId, detail.id).subscribe({\n next: (res) => {\n this.snackBar.open(res.data);\n remove(this.details, {\n id: detail.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseDetailsDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.CourseService }, { token: i3.MatSnackBar }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseDetailsDialogComponent, isStandalone: true, selector: \"rolatech-course-details-dialog\", ngImport: i0, template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"p-3\\\">\\n <ng-template matStepLabel>\\u8BE6\\u60C5</ng-template>\\n @for (item of details; track item) {\\n <rolatech-detail-item\\n [detail]=\\\"item\\\"\\n (upload)=\\\"onDetailMediaUpload($event)\\\"\\n (deleteMedia)=\\\"onDetailMediaDelete($event)\\\"\\n (save)=\\\"onDetailSave($event)\\\"\\n (delete)=\\\"onDetailDelete($event)\\\"\\n ></rolatech-detail-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addDetail()\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u8BE6\\u60C5</span>\\n </button>\\n </div>\\n </form>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n <button mat-button [mat-dialog-close]=\\\"true\\\" cdkFocusInitial i18n>Save</button>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i5.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i6.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i6.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i6.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatStepperModule }, { kind: \"directive\", type: i7.MatStepLabel, selector: \"[matStepLabel]\" }, { kind: \"component\", type: DetailItemComponent, selector: \"rolatech-detail-item\", inputs: [\"isUploading\", \"detail\", \"actions\", \"selectMedia\"], outputs: [\"upload\", \"delete\", \"save\", \"deleteMedia\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i8.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseDetailsDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-details-dialog', imports: [\n MatIconModule,\n MatDividerModule,\n FormsModule,\n MatStepperModule,\n DetailItemComponent,\n MatButtonModule,\n MatDialogClose,\n ], template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"p-3\\\">\\n <ng-template matStepLabel>\\u8BE6\\u60C5</ng-template>\\n @for (item of details; track item) {\\n <rolatech-detail-item\\n [detail]=\\\"item\\\"\\n (upload)=\\\"onDetailMediaUpload($event)\\\"\\n (deleteMedia)=\\\"onDetailMediaDelete($event)\\\"\\n (save)=\\\"onDetailSave($event)\\\"\\n (delete)=\\\"onDetailDelete($event)\\\"\\n ></rolatech-detail-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addDetail()\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u8BE6\\u60C5</span>\\n </button>\\n </div>\\n </form>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n <button mat-button [mat-dialog-close]=\\\"true\\\" cdkFocusInitial i18n>Save</button>\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_DIALOG_DATA]\n }] }, { type: i2.CourseService }, { type: i3.MatSnackBar }, { type: i1.MatDialog }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtZGV0YWlscy1kaWFsb2cvY291cnNlLWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtZGV0YWlscy1kaWFsb2cvY291cnNlLWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFRLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFnQi9DLE1BQU0sT0FBTyw0QkFB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YXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dDbG9zZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBsYXN0LCByZW1vdmUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IERldGFpbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9kZXRhaWwtaXRlbS9kZXRhaWwtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBDb3Vyc2VEZXRhaWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1kZXRhaWxzLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtZGV0YWlscy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgIERldGFpbEl0ZW1Db21wb25lbnQsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ0Nsb3NlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VEZXRhaWxzRGlhbG9nQ29tcG9uZW50IHtcbiAgY291cnNlSWQhOiBzdHJpbmc7XG4gIGRldGFpbHM6IENvdXJzZURldGFpbFtdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q291cnNlRGV0YWlsc0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBjb3Vyc2VTZXJ2aWNlOiBDb3Vyc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICkge1xuICAgIHRoaXMuY291cnNlSWQgPSBkYXRhLmNvdXJzZUlkO1xuICB9XG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbiAgYWRkRGV0YWlsKCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZVxuICAgICAgLmFkZERldGFpbCh0aGlzLmNvdXJzZUlkLCB7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgbWVkaWE6IFtdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXRhaWwgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLmRldGFpbHMucHVzaCh7XG4gICAgICAgICAgICBpZDogZGV0YWlsLmlkLFxuICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgICAgY29udGVudDogJycsXG4gICAgICAgICAgICBtZWRpYTogW10sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cbiAgb25EZXRhaWxNZWRpYVVwbG9hZChldmVudDogYW55KSB7fVxuICBvbkRldGFpbE1lZGlhRGVsZXRlKGV2ZW50OiBhbnkpIHt9XG4gIG9uRGV0YWlsU2F2ZShldmVudDogYW55KSB7fVxuICBvbkRldGFpbERlbGV0ZShkZXRhaWw6IENvdXJzZURldGFpbCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5kZWxldGVEZXRhaWwodGhpcy5jb3Vyc2VJZCwgZGV0YWlsLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihyZXMuZGF0YSk7XG4gICAgICAgIHJlbW92ZSh0aGlzLmRldGFpbHMsIHtcbiAgICAgICAgICBpZDogZGV0YWlsLmlkLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJoLTE2IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgQGlmIChkYXRhLnRpdGxlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBmb250LW1lZGl1bVwiPnt7IGRhdGEudGl0bGUgfX08L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIDxtYXQtaWNvbiBmb250SWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleC0xIG92ZXJmbG93LWhpZGRlbiBtdC0zIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIDxmb3JtICNkZXRhaWxGb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJwLTNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+6K+m5oOFPC9uZy10ZW1wbGF0ZT5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGV0YWlsczsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8cm9sYXRlY2gtZGV0YWlsLWl0ZW1cbiAgICAgICAgICBbZGV0YWlsXT1cIml0ZW1cIlxuICAgICAgICAgICh1cGxvYWQpPVwib25EZXRhaWxNZWRpYVVwbG9hZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZGVsZXRlTWVkaWEpPVwib25EZXRhaWxNZWRpYURlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoc2F2ZSk9XCJvbkRldGFpbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJvbkRldGFpbERlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvcm9sYXRlY2gtZGV0YWlsLWl0ZW0+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwibWItNlwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImFkZERldGFpbCgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4+5aKe5Yqg6K+m5oOFPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8ZGl2IGNsYXNzPVwiaC0xNiBmbGV4IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjZGtGb2N1c0luaXRpYWwgaTE4bj5TYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, Inject, viewChild } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogClose } from '@angular/material/dialog';\nimport { MatStepper, MatStepperModule } from '@angular/material/stepper';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { findLastIndex, remove } from 'lodash';\nimport { ScheduleItemComponent } from '../schedule-item/schedule-item.component';\nimport { PricingItemComponent } from '../pricing-item/pricing-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DetailItemComponent } from '../detail-item/detail-item.component';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ImagePreviewDialogComponent, MediaListComponent, MediaListItemComponent } from '@rolatech/angular-components';\nimport { ScheduleDate } from '../../interfaces';\nimport { CategoryService, CourseService } from '../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/dialog\";\nimport * as i2 from \"../../services\";\nimport * as i3 from \"@angular/material/snack-bar\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/divider\";\nimport * as i6 from \"@angular/material/stepper\";\nimport * as i7 from \"@angular/forms\";\nimport * as i8 from \"@angular/material/form-field\";\nimport * as i9 from \"@angular/material/input\";\nimport * as i10 from \"@angular/cdk/text-field\";\nimport * as i11 from \"@angular/material/select\";\nimport * as i12 from \"@angular/material/autocomplete\";\nimport * as i13 from \"@angular/material/button\";\nexport class CourseEditDialogComponent {\n constructor(dialogRef, data, categoryService, courseService, snackBar, dialog) {\n this.dialogRef = dialogRef;\n this.data = data;\n this.categoryService = categoryService;\n this.courseService = courseService;\n this.snackBar = snackBar;\n this.dialog = dialog;\n this.isUploading = false;\n this.courseType = [\n {\n key: 'ONLINE',\n value: '线上',\n },\n {\n key: 'OFFLINE',\n value: '线下',\n },\n {\n key: 'MIXED',\n value: '混合',\n },\n ];\n this.date = ScheduleDate;\n this.lastStepper = false;\n this.firstStepper = true;\n this.stepper = viewChild.required(MatStepper);\n this.course = data.course;\n this.classrooms = data.classrooms;\n }\n ngOnInit() {\n this.categoryService.find({}).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n }\n close() {\n this.dialogRef.close();\n }\n compareFn(o1, o2) {\n return o1.id === o2.id;\n }\n addDetail() {\n if (!this.course.details) {\n this.course.details = [];\n }\n this.courseService\n .addDetail(this.course.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res) => {\n const detail = res.data;\n this.course.details.push({\n id: detail.id,\n title: '',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n addSchedule() {\n if (!this.course.schedule) {\n this.course.schedule = [];\n }\n this.course.schedule.push({\n title: '',\n content: '',\n });\n }\n addPricing() {\n if (!this.course.pricing) {\n this.course.pricing = [];\n }\n this.course.pricing.push({\n min: 0,\n max: 0,\n total: 0,\n });\n }\n onSelectionChange(event) {\n this.selectedCategoyIds = event.value;\n }\n onStepperChange(event) {\n this.lastStepper = event.selectedIndex === 3;\n this.firstStepper = event.selectedIndex === 0;\n }\n previous() {\n this.stepper().previous();\n }\n next() {\n this.stepper().next();\n }\n onDetailMediaUpload(event) { }\n onDetailMediaDelete(event) { }\n onDetailSave(event) { }\n onDetailDelete(detail) {\n this.courseService.deleteDetail(this.course.id, detail.id).subscribe({\n next: (res) => {\n this.snackBar.open(res.message);\n remove(this.details, {\n id: detail.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.course.media,\n selected: i,\n },\n });\n }\n onUpload(event) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (this.course.media) {\n this.course.media.push({\n url: reader.result,\n alt: 'upload image',\n });\n }\n else {\n this.course.media = [];\n this.course.media.push({\n url: reader.result,\n alt: 'upload image',\n });\n }\n this.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.upload(formData).subscribe({\n next: (res) => {\n this.isUploading = false;\n const index = findLastIndex(this.course.media);\n // Replace item at index using native splice\n this.course.media.splice(index, 1, res.data);\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseEditDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.CategoryService }, { token: i2.CourseService }, { token: i3.MatSnackBar }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseEditDialogComponent, isStandalone: true, selector: \"rolatech-course-edit-dialog\", viewQueries: [{ propertyName: \"stepper\", first: true, predicate: MatStepper, descendants: true, isSignal: true }], ngImport: i0, template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto\\\">\\n <mat-stepper #stepper (selectionChange)=\\\"onStepperChange($event)\\\">\\n <mat-step [editable]=\\\"true\\\">\\n <form #infoForm=\\\"ngForm\\\" class=\\\"py-3\\\">\\n <ng-template matStepLabel i18n>Basic info</ng-template>\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Name </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"course.name\\\" name=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"course.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"categories\\\">\\n <mat-label i18n>Categories</mat-label>\\n <mat-select\\n multiple\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareFn\\\"\\n [(ngModel)]=\\\"course.categories\\\"\\n #select=\\\"matSelect\\\"\\n (selectionChange)=\\\"onSelectionChange($event)\\\"\\n >\\n @for (item of categories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Type</mat-label>\\n <mat-select name=\\\"type\\\" [(ngModel)]=\\\"course.type\\\">\\n @for (item of courseType; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n @if (course.type.toString() !== 'ONLINE') {\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"classroom\\\">\\n <mat-label i18n>Classroom</mat-label>\\n <mat-select [(ngModel)]=\\\"course.classroom\\\" name=\\\"id\\\">\\n @for (classroom of classrooms; track classroom) {\\n <mat-option [value]=\\\"classroom.id\\\">\\n <div class=\\\"flex gap-3\\\">\\n <span>{{ classroom.name }}</span>\\n <span> {{ classroom.address }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n }\\n </div>\\n <div>\\n <div class=\\\"py-3\\\">\\n <h2 i18n>Media info</h2>\\n </div>\\n <rolatech-media-list (upload)=\\\"onUpload($event)\\\" [isUploading]=\\\"isUploading\\\">\\n @for (item of course.media; track item; let i = $index) {\\n <rolatech-media-list-item [media]=\\\"item\\\" (mediaItemClick)=\\\"onImageClick(i)\\\"></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n </form>\\n </mat-step>\\n <mat-step [editable]=\\\"true\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"py-3\\\">\\n <ng-template matStepLabel i18n>Details</ng-template>\\n @for (item of course.details; track item) {\\n <rolatech-detail-item\\n [detail]=\\\"item\\\"\\n (upload)=\\\"onDetailMediaUpload($event)\\\"\\n (deleteMedia)=\\\"onDetailMediaDelete($event)\\\"\\n (save)=\\\"onDetailSave($event)\\\"\\n (delete)=\\\"onDetailDelete($event)\\\"\\n ></rolatech-detail-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addDetail()\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add detail</span>\\n </button>\\n </div>\\n </form>\\n </mat-step>\\n <mat-step [editable]=\\\"true\\\">\\n <form #pricingForm=\\\"ngForm\\\" class=\\\"py-3\\\">\\n <ng-template matStepLabel>\\u4EF7\\u683C</ng-template>\\n <div>\\n @for (item of course.pricing; track item) {\\n <rolatech-pricing-item [pricing]=\\\"item\\\"> </rolatech-pricing-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addPricing()\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add price</span>\\n </button>\\n </div>\\n </div>\\n </form>\\n </mat-step>\\n <mat-step>\\n <form #scheduleForm=\\\"ngForm\\\">\\n <ng-template matStepLabel i18n>Schedule</ng-template>\\n <div class=\\\"flex flex-col\\\">\\n @for (item of course.schedule; track item) {\\n <rolatech-schedule-item [value]=\\\"item\\\"></rolatech-schedule-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addSchedule()\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add schedule</span>\\n </button>\\n </div>\\n </div>\\n </form>\\n </mat-step>\\n </mat-stepper>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n @if (!firstStepper) {\\n <button mat-button mat-button (click)=\\\"previous()\\\" i18n>Prev</button>\\n }\\n @if (!lastStepper) {\\n <button mat-button (click)=\\\"next()\\\" i18n>Next</button>\\n }\\n @if (lastStepper) {\\n <button mat-button [mat-dialog-close]=\\\"course\\\" cdkFocusInitial i18n>Save</button>\\n }\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"component\", type: i5.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"ngmodule\", type: MatStepperModule }, { kind: \"component\", type: i6.MatStep, selector: \"mat-step\", inputs: [\"color\"], exportAs: [\"matStep\"] }, { kind: \"directive\", type: i6.MatStepLabel, selector: \"[matStepLabel]\" }, { kind: \"component\", type: i6.MatStepper, selector: \"mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]\", inputs: [\"disableRipple\", \"color\", \"labelPosition\", \"headerPosition\", \"animationDuration\"], outputs: [\"animationDone\"], exportAs: [\"matStepper\", \"matVerticalStepper\", \"matHorizontalStepper\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i7.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i7.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i7.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i7.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i7.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i7.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i7.NgModelGroup, selector: \"[ngModelGroup]\", inputs: [\"ngModelGroup\"], exportAs: [\"ngModelGroup\"] }, { kind: \"directive\", type: i7.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i8.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i8.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i9.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i10.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i11.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i12.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"component\", type: MediaListComponent, selector: \"rolatech-media-list\", inputs: [\"isUploading\", \"media\", \"showAdd\"], outputs: [\"mediaItemClick\", \"upload\"] }, { kind: \"component\", type: MediaListItemComponent, selector: \"rolatech-media-list-item\", inputs: [\"media\", \"uploadProgress\", \"uploading\"], outputs: [\"mediaItemClick\", \"deleteMedia\"] }, { kind: \"component\", type: DetailItemComponent, selector: \"rolatech-detail-item\", inputs: [\"isUploading\", \"detail\", \"actions\", \"selectMedia\"], outputs: [\"upload\", \"delete\", \"save\", \"deleteMedia\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i13.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: PricingItemComponent, selector: \"rolatech-pricing-item\", inputs: [\"actions\", \"pricing\"], outputs: [\"pricingChange\", \"delete\", \"save\"] }, { kind: \"component\", type: ScheduleItemComponent, selector: \"rolatech-schedule-item\", inputs: [\"value\", \"actions\"], outputs: [\"delete\", \"save\"] }, { kind: \"directive\", type: MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseEditDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-edit-dialog', imports: [\n MatIconModule,\n MatDividerModule,\n MatStepperModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MediaListComponent,\n MediaListItemComponent,\n DetailItemComponent,\n MatButtonModule,\n PricingItemComponent,\n ScheduleItemComponent,\n MatDialogClose,\n ], template: \"<div class=\\\"flex flex-col h-full overflow-hidden\\\">\\n <div class=\\\"h-16 flex justify-between items-center px-5\\\">\\n @if (data.title) {\\n <div class=\\\"text-md font-medium\\\">{{ data.title }}</div>\\n }\\n <div class=\\\"cursor-pointer\\\" (click)=\\\"close()\\\">\\n <mat-icon fontIcon=\\\"close\\\"></mat-icon>\\n </div>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"flex-1 overflow-hidden mt-3 overflow-y-auto\\\">\\n <mat-stepper #stepper (selectionChange)=\\\"onStepperChange($event)\\\">\\n <mat-step [editable]=\\\"true\\\">\\n <form #infoForm=\\\"ngForm\\\" class=\\\"py-3\\\">\\n <ng-template matStepLabel i18n>Basic info</ng-template>\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Name </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"course.name\\\" name=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"course.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"categories\\\">\\n <mat-label i18n>Categories</mat-label>\\n <mat-select\\n multiple\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareFn\\\"\\n [(ngModel)]=\\\"course.categories\\\"\\n #select=\\\"matSelect\\\"\\n (selectionChange)=\\\"onSelectionChange($event)\\\"\\n >\\n @for (item of categories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Type</mat-label>\\n <mat-select name=\\\"type\\\" [(ngModel)]=\\\"course.type\\\">\\n @for (item of courseType; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n @if (course.type.toString() !== 'ONLINE') {\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"classroom\\\">\\n <mat-label i18n>Classroom</mat-label>\\n <mat-select [(ngModel)]=\\\"course.classroom\\\" name=\\\"id\\\">\\n @for (classroom of classrooms; track classroom) {\\n <mat-option [value]=\\\"classroom.id\\\">\\n <div class=\\\"flex gap-3\\\">\\n <span>{{ classroom.name }}</span>\\n <span> {{ classroom.address }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n }\\n </div>\\n <div>\\n <div class=\\\"py-3\\\">\\n <h2 i18n>Media info</h2>\\n </div>\\n <rolatech-media-list (upload)=\\\"onUpload($event)\\\" [isUploading]=\\\"isUploading\\\">\\n @for (item of course.media; track item; let i = $index) {\\n <rolatech-media-list-item [media]=\\\"item\\\" (mediaItemClick)=\\\"onImageClick(i)\\\"></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n </form>\\n </mat-step>\\n <mat-step [editable]=\\\"true\\\">\\n <form #detailForm=\\\"ngForm\\\" class=\\\"py-3\\\">\\n <ng-template matStepLabel i18n>Details</ng-template>\\n @for (item of course.details; track item) {\\n <rolatech-detail-item\\n [detail]=\\\"item\\\"\\n (upload)=\\\"onDetailMediaUpload($event)\\\"\\n (deleteMedia)=\\\"onDetailMediaDelete($event)\\\"\\n (save)=\\\"onDetailSave($event)\\\"\\n (delete)=\\\"onDetailDelete($event)\\\"\\n ></rolatech-detail-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addDetail()\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add detail</span>\\n </button>\\n </div>\\n </form>\\n </mat-step>\\n <mat-step [editable]=\\\"true\\\">\\n <form #pricingForm=\\\"ngForm\\\" class=\\\"py-3\\\">\\n <ng-template matStepLabel>\\u4EF7\\u683C</ng-template>\\n <div>\\n @for (item of course.pricing; track item) {\\n <rolatech-pricing-item [pricing]=\\\"item\\\"> </rolatech-pricing-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addPricing()\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add price</span>\\n </button>\\n </div>\\n </div>\\n </form>\\n </mat-step>\\n <mat-step>\\n <form #scheduleForm=\\\"ngForm\\\">\\n <ng-template matStepLabel i18n>Schedule</ng-template>\\n <div class=\\\"flex flex-col\\\">\\n @for (item of course.schedule; track item) {\\n <rolatech-schedule-item [value]=\\\"item\\\"></rolatech-schedule-item>\\n }\\n <div class=\\\"mb-6\\\">\\n <button mat-button (click)=\\\"addSchedule()\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add schedule</span>\\n </button>\\n </div>\\n </div>\\n </form>\\n </mat-step>\\n </mat-stepper>\\n </div>\\n <mat-divider></mat-divider>\\n <div class=\\\"h-16 flex justify-end items-center px-5\\\">\\n @if (!firstStepper) {\\n <button mat-button mat-button (click)=\\\"previous()\\\" i18n>Prev</button>\\n }\\n @if (!lastStepper) {\\n <button mat-button (click)=\\\"next()\\\" i18n>Next</button>\\n }\\n @if (lastStepper) {\\n <button mat-button [mat-dialog-close]=\\\"course\\\" cdkFocusInitial i18n>Save</button>\\n }\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_DIALOG_DATA]\n }] }, { type: i2.CategoryService }, { type: i2.CourseService }, { type: i3.MatSnackBar }, { type: i1.MatDialog }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtZWRpdC1kaWFsb2cvY291cnNlLWVkaXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtZWRpdC1kaWFsb2cvY291cnNlLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVB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bUJBQW1CLG1MQUNuQixlQUFlLHFYQUNmLG9CQUFvQixnSkFDcEIscUJBQXFCLDhIQUNyQixjQUFjOzsyRkFHTCx5QkFBeUI7a0JBdkJyQyxTQUFTOytCQUNFLDZCQUE2QixXQUc5Qjt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixjQUFjO3FCQUNmOzswQkFpQ0UsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dDbG9zZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTdGVwcGVyLCBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4LCByZW1vdmUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU2NoZWR1bGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZWR1bGUtaXRlbS9zY2hlZHVsZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmljaW5nSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3ByaWNpbmctaXRlbS9wcmljaW5nLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEZXRhaWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZGV0YWlsLWl0ZW0vZGV0YWlsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LCBNZWRpYUxpc3RDb21wb25lbnQsIE1lZGlhTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFNjaGVkdWxlRGF0ZSwgQ291cnNlRGV0YWlsLCBDb3Vyc2VDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlLCBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtZWRpdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0U3RlcHBlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWVkaWFMaXN0Q29tcG9uZW50LFxuICAgIE1lZGlhTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgRGV0YWlsSXRlbUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUHJpY2luZ0l0ZW1Db21wb25lbnQsXG4gICAgU2NoZWR1bGVJdGVtQ29tcG9uZW50LFxuICAgIE1hdERpYWxvZ0Nsb3NlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VFZGl0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY291cnNlOiBhbnk7XG4gIGlzVXBsb2FkaW5nID0gZmFsc2U7XG4gIGRldGFpbHM6IGFueTtcbiAgcHJpY2luZzogYW55O1xuICBzY2hlZHVsZTogYW55O1xuICBjb3Vyc2VUeXBlID0gW1xuICAgIHtcbiAgICAgIGtleTogJ09OTElORScsXG4gICAgICB2YWx1ZTogJ+e6v+S4iicsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdPRkZMSU5FJyxcbiAgICAgIHZhbHVlOiAn57q/5LiLJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ01JWEVEJyxcbiAgICAgIHZhbHVlOiAn5re35ZCIJyxcbiAgICB9LFxuICBdO1xuICBzZWxlY3RlZENhdGVnb3lJZHMhOiBzdHJpbmdbXTtcbiAgY2F0ZWdvcmllcyE6IENvdXJzZUNhdGVnb3J5W107XG4gIHNlbGVjdGVkQ2F0ZWdvcnkhOiBDb3Vyc2VDYXRlZ29yeTtcbiAgY2xhc3Nyb29tczogYW55O1xuICBkYXRlID0gU2NoZWR1bGVEYXRlO1xuICBsYXN0U3RlcHBlciA9IGZhbHNlO1xuICBmaXJzdFN0ZXBwZXIgPSB0cnVlO1xuICBzdGVwcGVyID0gdmlld0NoaWxkLnJlcXVpcmVkKE1hdFN0ZXBwZXIpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q291cnNlRWRpdERpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcbiAgICBwcml2YXRlIGNvdXJzZVNlcnZpY2U6IENvdXJzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7XG4gICAgdGhpcy5jb3Vyc2UgPSBkYXRhLmNvdXJzZTtcbiAgICB0aGlzLmNsYXNzcm9vbXMgPSBkYXRhLmNsYXNzcm9vbXM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIGNvbXBhcmVGbihvMTogYW55LCBvMjogYW55KSB7XG4gICAgcmV0dXJuIG8xLmlkID09PSBvMi5pZDtcbiAgfVxuICBhZGREZXRhaWwoKSB7XG4gICAgaWYgKCF0aGlzLmNvdXJzZS5kZXRhaWxzKSB7XG4gICAgICB0aGlzLmNvdXJzZS5kZXRhaWxzID0gW107XG4gICAgfVxuICAgIHRoaXMuY291cnNlU2VydmljZVxuICAgICAgLmFkZERldGFpbCh0aGlzLmNvdXJzZS5pZCwge1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgY29udGVudDogJycsXG4gICAgICAgIG1lZGlhOiBbXSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGV0YWlsID0gcmVzLmRhdGE7XG4gICAgICAgICAgdGhpcy5jb3Vyc2UuZGV0YWlscy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBkZXRhaWwuaWQsXG4gICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgICAgIG1lZGlhOiBbXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGUubWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuICBhZGRTY2hlZHVsZSgpIHtcbiAgICBpZiAoIXRoaXMuY291cnNlLnNjaGVkdWxlKSB7XG4gICAgICB0aGlzLmNvdXJzZS5zY2hlZHVsZSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmNvdXJzZS5zY2hlZHVsZS5wdXNoKHtcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGNvbnRlbnQ6ICcnLFxuICAgIH0pO1xuICB9XG4gIGFkZFByaWNpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmNvdXJzZS5wcmljaW5nKSB7XG4gICAgICB0aGlzLmNvdXJzZS5wcmljaW5nID0gW107XG4gICAgfVxuICAgIHRoaXMuY291cnNlLnByaWNpbmcucHVzaCh7XG4gICAgICBtaW46IDAsXG4gICAgICBtYXg6IDAsXG4gICAgICB0b3RhbDogMCxcbiAgICB9KTtcbiAgfVxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3lJZHMgPSBldmVudC52YWx1ZTtcbiAgfVxuICBvblN0ZXBwZXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubGFzdFN0ZXBwZXIgPSBldmVudC5zZWxlY3RlZEluZGV4ID09PSAzO1xuICAgIHRoaXMuZmlyc3RTdGVwcGVyID0gZXZlbnQuc2VsZWN0ZWRJbmRleCA9PT0gMDtcbiAgfVxuICBwcmV2aW91cygpIHtcbiAgICB0aGlzLnN0ZXBwZXIoKS5wcmV2aW91cygpO1xuICB9XG4gIG5leHQoKSB7XG4gICAgdGhpcy5zdGVwcGVyKCkubmV4dCgpO1xuICB9XG4gIG9uRGV0YWlsTWVkaWFVcGxvYWQoZXZlbnQ6IGFueSkge31cbiAgb25EZXRhaWxNZWRpYURlbGV0ZShldmVudDogYW55KSB7fVxuICBvbkRldGFpbFNhdmUoZXZlbnQ6IGFueSkge31cbiAgb25EZXRhaWxEZWxldGUoZGV0YWlsOiBDb3Vyc2VEZXRhaWwpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZGVsZXRlRGV0YWlsKHRoaXMuY291cnNlLmlkLCBkZXRhaWwuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHJlcy5tZXNzYWdlKTtcbiAgICAgICAgcmVtb3ZlKHRoaXMuZGV0YWlscywge1xuICAgICAgICAgIGlkOiBkZXRhaWwuaWQsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25JbWFnZUNsaWNrKGk6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBtYXhXaWR0aDogJzgwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnODB2aCcsXG4gICAgICBoZWlnaHQ6ICc4MCUnLFxuICAgICAgd2lkdGg6ICc4MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtc2NyZWVuLW1vZGFsJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbWVkaWE6IHRoaXMuY291cnNlLm1lZGlhLFxuICAgICAgICBzZWxlY3RlZDogaSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25VcGxvYWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvdXJzZS5tZWRpYSkge1xuICAgICAgICAgICh0aGlzLmNvdXJzZS5tZWRpYSBhcyBhbnkpLnB1c2goe1xuICAgICAgICAgICAgdXJsOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgYWx0OiAndXBsb2FkIGltYWdlJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvdXJzZS5tZWRpYSA9IFtdO1xuICAgICAgICAgICh0aGlzLmNvdXJzZS5tZWRpYSBhcyBhbnkpLnB1c2goe1xuICAgICAgICAgICAgdXJsOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgYWx0OiAndXBsb2FkIGltYWdlJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UudXBsb2FkKGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBmaW5kTGFzdEluZGV4KHRoaXMuY291cnNlLm1lZGlhKTtcbiAgICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBhdCBpbmRleCB1c2luZyBuYXRpdmUgc3BsaWNlXG4gICAgICAgICAgICB0aGlzLmNvdXJzZS5tZWRpYS5zcGxpY2UoaW5kZXgsIDEsIHJlcy5kYXRhKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1VwbG9hZCBmYWlsZWQ6ICcgKyBlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJoLTE2IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgQGlmIChkYXRhLnRpdGxlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBmb250LW1lZGl1bVwiPnt7IGRhdGEudGl0bGUgfX08L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIDxtYXQtaWNvbiBmb250SWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8ZGl2IGNsYXNzPVwiZmxleC0xIG92ZXJmbG93LWhpZGRlbiBtdC0zIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIDxtYXQtc3RlcHBlciAjc3RlcHBlciAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU3RlcHBlckNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8bWF0LXN0ZXAgW2VkaXRhYmxlXT1cInRydWVcIj5cbiAgICAgICAgPGZvcm0gI2luZm9Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbCBpMThuPkJhc2ljIGluZm88L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBOYW1lIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImNvdXJzZS5uYW1lXCIgbmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IERlc2NyaXB0aW9uIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvdXJzZS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIzXCJcbiAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgbmdNb2RlbEdyb3VwPVwiY2F0ZWdvcmllc1wiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+Q2F0ZWdvcmllczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgbmFtZT1cImlkXCJcbiAgICAgICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvdXJzZS5jYXRlZ29yaWVzXCJcbiAgICAgICAgICAgICAgICAjc2VsZWN0PVwibWF0U2VsZWN0XCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBjYXRlZ29yaWVzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlR5cGU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgbmFtZT1cInR5cGVcIiBbKG5nTW9kZWwpXT1cImNvdXJzZS50eXBlXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBjb3Vyc2VUeXBlOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIEBpZiAoY291cnNlLnR5cGUudG9TdHJpbmcoKSAhPT0gJ09OTElORScpIHtcbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgbmdNb2RlbEdyb3VwPVwiY2xhc3Nyb29tXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkNsYXNzcm9vbTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiY291cnNlLmNsYXNzcm9vbVwiIG5hbWU9XCJpZFwiPlxuICAgICAgICAgICAgICAgICAgQGZvciAoY2xhc3Nyb29tIG9mIGNsYXNzcm9vbXM7IHRyYWNrIGNsYXNzcm9vbSkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2xhc3Nyb29tLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNsYXNzcm9vbS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGNsYXNzcm9vbS5hZGRyZXNzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgICAgICA8aDIgaTE4bj5NZWRpYSBpbmZvPC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHJvbGF0ZWNoLW1lZGlhLWxpc3QgKHVwbG9hZCk9XCJvblVwbG9hZCgkZXZlbnQpXCIgW2lzVXBsb2FkaW5nXT1cImlzVXBsb2FkaW5nXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY291cnNlLm1lZGlhOyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxyb2xhdGVjaC1tZWRpYS1saXN0LWl0ZW0gW21lZGlhXT1cIml0ZW1cIiAobWVkaWFJdGVtQ2xpY2spPVwib25JbWFnZUNsaWNrKGkpXCI+PC9yb2xhdGVjaC1tZWRpYS1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvcm9sYXRlY2gtbWVkaWEtbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9tYXQtc3RlcD5cbiAgICAgIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwidHJ1ZVwiPlxuICAgICAgICA8Zm9ybSAjZGV0YWlsRm9ybT1cIm5nRm9ybVwiIGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWwgaTE4bj5EZXRhaWxzPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGNvdXJzZS5kZXRhaWxzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICA8cm9sYXRlY2gtZGV0YWlsLWl0ZW1cbiAgICAgICAgICAgICAgW2RldGFpbF09XCJpdGVtXCJcbiAgICAgICAgICAgICAgKHVwbG9hZCk9XCJvbkRldGFpbE1lZGlhVXBsb2FkKCRldmVudClcIlxuICAgICAgICAgICAgICAoZGVsZXRlTWVkaWEpPVwib25EZXRhaWxNZWRpYURlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKHNhdmUpPVwib25EZXRhaWxTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAoZGVsZXRlKT1cIm9uRGV0YWlsRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvcm9sYXRlY2gtZGV0YWlsLWl0ZW0+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi02XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImFkZERldGFpbCgpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuPkFkZCBkZXRhaWw8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9tYXQtc3RlcD5cbiAgICAgIDxtYXQtc3RlcCBbZWRpdGFibGVdPVwidHJ1ZVwiPlxuICAgICAgICA8Zm9ybSAjcHJpY2luZ0Zvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cInB5LTNcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPuS7t+agvDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY291cnNlLnByaWNpbmc7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgPHJvbGF0ZWNoLXByaWNpbmctaXRlbSBbcHJpY2luZ109XCJpdGVtXCI+IDwvcm9sYXRlY2gtcHJpY2luZy1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJhZGRQcmljaW5nKClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkFkZCBwcmljZTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9tYXQtc3RlcD5cbiAgICAgIDxtYXQtc3RlcD5cbiAgICAgICAgPGZvcm0gI3NjaGVkdWxlRm9ybT1cIm5nRm9ybVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWwgaTE4bj5TY2hlZHVsZTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY291cnNlLnNjaGVkdWxlOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgIDxyb2xhdGVjaC1zY2hlZHVsZS1pdGVtIFt2YWx1ZV09XCJpdGVtXCI+PC9yb2xhdGVjaC1zY2hlZHVsZS1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJhZGRTY2hlZHVsZSgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gaTE4bj5BZGQgc2NoZWR1bGU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LXN0ZXA+XG4gICAgPC9tYXQtc3RlcHBlcj5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8ZGl2IGNsYXNzPVwiaC0xNiBmbGV4IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBweC01XCI+XG4gICAgQGlmICghZmlyc3RTdGVwcGVyKSB7XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwicHJldmlvdXMoKVwiIGkxOG4+UHJldjwvYnV0dG9uPlxuICAgIH1cbiAgICBAaWYgKCFsYXN0U3RlcHBlcikge1xuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJuZXh0KClcIiBpMThuPk5leHQ8L2J1dHRvbj5cbiAgICB9XG4gICAgQGlmIChsYXN0U3RlcHBlcikge1xuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImNvdXJzZVwiIGNka0ZvY3VzSW5pdGlhbCBpMThuPlNhdmU8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { ViewportScroller } from '@angular/common';\nimport { Component, ElementRef, inject, input, PLATFORM_ID } from '@angular/core';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class CourseDetailsComponent {\n constructor() {\n this.details = input.required();\n this.instructor = input();\n this.username = input();\n this.el = inject(ElementRef);\n this.viewportScroller = inject(ViewportScroller);\n this.platformId = inject(PLATFORM_ID);\n this.show = false;\n this.mediaIndex = 0;\n this.finalSchedule = [];\n }\n ngOnInit() { }\n onClickScroller(id) {\n this.viewportScroller.scrollToAnchor(id);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseDetailsComponent, isStandalone: true, selector: \"rolatech-course-details\", inputs: { details: { classPropertyName: \"details\", publicName: \"details\", isSignal: true, isRequired: true, transformFunction: null }, instructor: { classPropertyName: \"instructor\", publicName: \"instructor\", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: \"username\", publicName: \"username\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"py-3\\\" id=\\\"details\\\">\\n <div class=\\\"text-xl font-medium py-2\\\">\\u8BE6\\u60C5</div>\\n @if (details()) {\\n @for (detail of details(); track $index) {\\n <div>\\n @if (detail.title) {\\n <div class=\\\"py-3 flex items-center gap-3\\\">\\n <span class=\\\"h-4 w-1 bg-[--rt-brand-color] inline-block\\\"></span>\\n <span class=\\\"text-lg font-medium py-1\\\"> {{ detail.title }}</span>\\n </div>\\n }\\n @if (detail.content) {\\n <div>\\n {{ detail.content }}\\n </div>\\n }\\n @if (detail.media) {\\n <div class=\\\"w-80%\\\">\\n @for (item of detail.media; track item) {\\n <div class=\\\"py-3\\\">\\n <rolatech-thumbnail\\n [src]=\\\"item.url\\\"\\n size=\\\"small\\\"\\n mode=\\\"full\\\"\\n [width]=\\\"item.width\\\"\\n [height]=\\\"item.height\\\"\\n ></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n }\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: ThumbnailComponent, selector: \"rolatech-thumbnail\", inputs: [\"src\", \"size\", \"mode\", \"ratio\", \"width\", \"height\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseDetailsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-details', imports: [ThumbnailComponent], template: \"<div class=\\\"py-3\\\" id=\\\"details\\\">\\n <div class=\\\"text-xl font-medium py-2\\\">\\u8BE6\\u60C5</div>\\n @if (details()) {\\n @for (detail of details(); track $index) {\\n <div>\\n @if (detail.title) {\\n <div class=\\\"py-3 flex items-center gap-3\\\">\\n <span class=\\\"h-4 w-1 bg-[--rt-brand-color] inline-block\\\"></span>\\n <span class=\\\"text-lg font-medium py-1\\\"> {{ detail.title }}</span>\\n </div>\\n }\\n @if (detail.content) {\\n <div>\\n {{ detail.content }}\\n </div>\\n }\\n @if (detail.media) {\\n <div class=\\\"w-80%\\\">\\n @for (item of detail.media; track item) {\\n <div class=\\\"py-3\\\">\\n <rolatech-thumbnail\\n [src]=\\\"item.url\\\"\\n size=\\\"small\\\"\\n mode=\\\"full\\\"\\n [width]=\\\"item.width\\\"\\n [height]=\\\"item.height\\\"\\n ></rolatech-thumbnail>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NvdXJzZS1kZXRhaWxzL2NvdXJzZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtZGV0YWlscy9jb3Vyc2UtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFTbEUsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQU9FLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBQzNDLGVBQVUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM3QixhQUFRLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDM0IsT0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSWpDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2Ysa0JBQWEsR0FBRyxFQUFFLENBQUM7S0FNcEI7SUFMQyxRQUFRLEtBQVUsQ0FBQztJQUVuQixlQUFlLENBQUMsRUFBVTtRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBbEJVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLG9lQ1huQyxxa0NBbUNBLDBERDFCWSxrQkFBa0I7OzJGQUVqQixzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UseUJBQXlCLFdBRzFCLENBQUMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2VEZXRhaWwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbVGh1bWJuYWlsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRldGFpbHMgPSBpbnB1dC5yZXF1aXJlZDxDb3Vyc2VEZXRhaWxbXT4oKTtcbiAgaW5zdHJ1Y3RvciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHZpZXdwb3J0U2Nyb2xsZXIgPSBpbmplY3QoVmlld3BvcnRTY3JvbGxlcik7XG4gIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIHBsYXllcjogYW55O1xuXG4gIHNob3cgPSBmYWxzZTtcbiAgbWVkaWFJbmRleCA9IDA7XG4gIGZpbmFsU2NoZWR1bGUgPSBbXTtcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG9uQ2xpY2tTY3JvbGxlcihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvQW5jaG9yKGlkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTNcIiBpZD1cImRldGFpbHNcIj5cbiAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1tZWRpdW0gcHktMlwiPuivpuaDhTwvZGl2PlxuICBAaWYgKGRldGFpbHMoKSkge1xuICAgIEBmb3IgKGRldGFpbCBvZiBkZXRhaWxzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdj5cbiAgICAgICAgQGlmIChkZXRhaWwudGl0bGUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoLTQgdy0xIGJnLVstLXJ0LWJyYW5kLWNvbG9yXSBpbmxpbmUtYmxvY2tcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW0gcHktMVwiPiB7eyBkZXRhaWwudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChkZXRhaWwuY29udGVudCkge1xuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7eyBkZXRhaWwuY29udGVudCB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGV0YWlsLm1lZGlhKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctODAlXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRldGFpbC5tZWRpYTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWxcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIG1vZGU9XCJmdWxsXCJcbiAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCJpdGVtLndpZHRoXCJcbiAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiaXRlbS5oZWlnaHRcIlxuICAgICAgICAgICAgICAgID48L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=","import { Component, input } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/icon\";\nexport class CourseMediaOwnerRendererComponent {\n constructor() {\n this.name = input();\n this.avatar = input();\n this.username = input();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseMediaOwnerRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseMediaOwnerRendererComponent, isStandalone: true, selector: \"rolatech-course-media-owner-renderer\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: \"username\", publicName: \"username\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"flex flex-row items-center\\\">\\n <div class=\\\"flex mr-3 gap-2 items-center\\\">\\n @if (avatar()) {\\n <div class=\\\"cursor-pointer\\\" [routerLink]=\\\"['/', '@' + username()]\\\">\\n <img [src]=\\\"avatar()\\\" class=\\\"w-11 h-11 rounded-full\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"w-11 h-11 rounded-full bg-[--rt-brand-color]\\\"></div>\\n }\\n <div class=\\\"flex items-center text-lg font-bold cursor-pointer\\\">\\n <a [routerLink]=\\\"['/', '@' + username()]\\\">\\n <span>{{ name() }}</span>\\n </a>\\n <mat-icon class=\\\"verified-icon\\\">verified</mat-icon>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-icon{transform:scale(.8);color:var(--rt-brand-color)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseMediaOwnerRendererComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-media-owner-renderer', imports: [AngularCommonModule, MatIconModule], template: \"<div class=\\\"flex flex-row items-center\\\">\\n <div class=\\\"flex mr-3 gap-2 items-center\\\">\\n @if (avatar()) {\\n <div class=\\\"cursor-pointer\\\" [routerLink]=\\\"['/', '@' + username()]\\\">\\n <img [src]=\\\"avatar()\\\" class=\\\"w-11 h-11 rounded-full\\\" alt />\\n </div>\\n } @else {\\n <div class=\\\"w-11 h-11 rounded-full bg-[--rt-brand-color]\\\"></div>\\n }\\n <div class=\\\"flex items-center text-lg font-bold cursor-pointer\\\">\\n <a [routerLink]=\\\"['/', '@' + username()]\\\">\\n <span>{{ name() }}</span>\\n </a>\\n <mat-icon class=\\\"verified-icon\\\">verified</mat-icon>\\n </div>\\n </div>\\n</div>\\n\", styles: [\"mat-icon{transform:scale(.8);color:var(--rt-brand-color)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXIvY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXIvY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQVF2RCxNQUFNLE9BQU8saUNBQWlDO0lBTjlDO1FBT0UsU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3ZCLFdBQU0sR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxFQUFVLENBQUM7S0FDNUI7OEdBSlksaUNBQWlDO2tHQUFqQyxpQ0FBaUMsNmRDVjlDLGdvQkFpQkEsb0hEWFksbUJBQW1CLCtRQUFFLGFBQWE7OzJGQUlqQyxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0Usc0NBQXNDLFdBQ3ZDLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tZWRpYS1vd25lci1yZW5kZXJlcicsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1tZWRpYS1vd25lci1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VNZWRpYU93bmVyUmVuZGVyZXJDb21wb25lbnQge1xuICBuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBhdmF0YXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHVzZXJuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IG1yLTMgZ2FwLTIgaXRlbXMtY2VudGVyXCI+XG4gICAgQGlmIChhdmF0YXIoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW3JvdXRlckxpbmtdPVwiWycvJywgJ0AnICsgdXNlcm5hbWUoKV1cIj5cbiAgICAgICAgPGltZyBbc3JjXT1cImF2YXRhcigpXCIgY2xhc3M9XCJ3LTExIGgtMTEgcm91bmRlZC1mdWxsXCIgYWx0IC8+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTExIGgtMTEgcm91bmRlZC1mdWxsIGJnLVstLXJ0LWJyYW5kLWNvbG9yXVwiPjwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1sZyBmb250LWJvbGQgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdAJyArIHVzZXJuYW1lKCldXCI+XG4gICAgICAgIDxzcGFuPnt7IG5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInZlcmlmaWVkLWljb25cIj52ZXJpZmllZDwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, effect, inject } from '@angular/core';\nimport { CourseSectionLectureContentType, CourseStatus } from '../../../interfaces';\nimport { CourseSectionService, CourseService } from '../../../services';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { AngularComponentsModule, ContainerComponent, BaseComponent } from '@rolatech/angular-components';\nimport { ViewportScroller } from '@angular/common';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { CommentsComponent } from '@rolatech/angular-comment';\nimport { CourseActionComponent } from '../../../components/course-action/course-action.component';\nimport { CourseDetailsComponent } from '../../../components/course-details/course-details.component';\nimport { CourseInfoComponent } from '../../../components/course-info/course-info.component';\nimport { CourseMediaComponent } from '../../../components/course-media/course-media.component';\nimport { CoursePricingComponent } from '../../../components/course-pricing/course-pricing.component';\nimport { CourseScheduleComponent } from '../../../components/course-schedule/course-schedule.component';\nimport { CourseSectionsComponent } from '../../../components/course-sections/course-sections.component';\nimport { CategoryBreadcrumbComponent } from '@rolatech/angular-category';\nimport * as i0 from \"@angular/core\";\nexport class CourseDetailComponent extends BaseComponent {\n constructor() {\n super();\n this.status = CourseStatus;\n this.authService = inject(AuthService);\n this.authUserService = inject(AuthUserService);\n this.courseService = inject(CourseService);\n this.viewportScroller = inject(ViewportScroller);\n this.courseSectionService = inject(CourseSectionService);\n this.authenticated = this.authService.authenticated;\n this.instructorName = '';\n this.username = '';\n this.inWishList = false;\n this.purchased = false;\n this.sections = [];\n this.type = CourseSectionLectureContentType;\n this.c = [{ name: '分类', path: '/categories' }];\n effect(() => {\n if (this.authenticated()) {\n this.findPurchasedByCourseId();\n this.findWishlistBy();\n }\n });\n }\n ngOnInit() {\n this.findOne();\n this.findSections();\n }\n scrollToAnchor(anchorId) {\n // this.viewportScroller.setOffset([100, 100]);\n document.getElementById(anchorId)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n findOne() {\n this.courseService.get(this.id).subscribe({\n next: (res) => {\n this.course = res.data;\n this.formatCategory();\n this.findUserBaseInfo(this.course.instructorId);\n this.titleService.setTitle(`${this.course.name}`);\n },\n });\n }\n findSections() {\n this.courseSectionService.findSections(this.id).subscribe({\n next: (res) => {\n this.sections = res.data;\n },\n });\n }\n findUserBaseInfo(userId) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.instructorName = res.name;\n this.username = res.username;\n },\n });\n }\n onWish(e) {\n if (this.authenticated()) {\n if (this.inWishList) {\n this.removeFromWishlist();\n }\n else {\n this.addToWishlist();\n }\n }\n else {\n this.snackBarService.open('Please sign in');\n }\n }\n checkout(e) {\n if (this.authenticated()) {\n this.router.navigateByUrl(`/checkout/courses/${this.id}`);\n }\n else {\n this.snackBarService.open('Please sign in');\n }\n }\n removeFromWishlist() {\n this.courseService.removeFromWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = false;\n },\n });\n }\n addToWishlist() {\n this.courseService.addToWishlist(this.id).subscribe({\n next: (res) => {\n this.inWishList = true;\n },\n });\n }\n onSection(event) {\n const { section, lecture } = event;\n this.router.navigate(['/courses', this.course.id, 'sections', section.id, 'lectures', lecture.id]);\n }\n findWishlistBy() {\n this.courseService.findWishlistBy(this.id).subscribe({\n next: (res) => {\n this.inWishList = res.data;\n },\n });\n }\n findPurchasedByCourseId() {\n this.courseService.findPurchasedByCourseId(this.id).subscribe({\n next: (res) => {\n this.purchased = res.data ? true : false;\n },\n });\n }\n formatCategory() {\n const { categories } = this.course;\n const parent = categories.filter((item) => item.level === 1);\n const children = categories.filter((item) => item.level === 2);\n this.c[1] = { name: parent[0].name, path: `/categories/${parent[0].id}` };\n // this.c[2] = { name: childCategory.name, path: `/categories/${id}/${child}` };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseDetailComponent, isStandalone: true, selector: \"rolatech-course-detail\", usesInheritance: true, ngImport: i0, template: \"@if (course) {\\n <rolatech-container>\\n <rolatech-category-breadcrumb class=\\\"px-2\\\" [categories]=\\\"c\\\"></rolatech-category-breadcrumb>\\n <div class=\\\"flex flex-col-reverse gap-3 md:flex-row w-full justify-between\\\">\\n <div class=\\\"md:w-3/4\\\">\\n <rolatech-course-info [course]=\\\"course\\\" [instructor]=\\\"instructorName\\\" [username]=\\\"username\\\"> </rolatech-course-info>\\n <rolatech-course-sections\\n [sections]=\\\"sections\\\"\\n (section)=\\\"onSection($event)\\\"\\n (checkout)=\\\"checkout($event)\\\"\\n [purchased]=\\\"purchased\\\"\\n ></rolatech-course-sections>\\n <rolatech-course-schedule [schedule]=\\\"course.schedule\\\"></rolatech-course-schedule>\\n <rolatech-course-details [details]=\\\"course.details\\\"></rolatech-course-details>\\n <rolatech-comments [itemId]=\\\"course.id\\\"></rolatech-comments>\\n </div>\\n <div class=\\\"md:px-3\\\">\\n <!-- <rolatech-course-media [min]=\\\"!purchased\\\" [media]=\\\"course.media\\\" [min]=\\\"true\\\"></rolatech-course-media> -->\\n <rolatech-course-media [media]=\\\"course.media\\\" [min]=\\\"true\\\"></rolatech-course-media>\\n @if (!purchased) {\\n <rolatech-course-pricing [pricing]=\\\"course.pricing\\\"></rolatech-course-pricing>\\n <rolatech-course-action\\n [course]=\\\"course\\\"\\n (checkout)=\\\"checkout($event)\\\"\\n (wish)=\\\"onWish($event)\\\"\\n [inWishList]=\\\"inWishList\\\"\\n ></rolatech-course-action>\\n }\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: CourseInfoComponent, selector: \"rolatech-course-info\", inputs: [\"course\", \"instructor\", \"username\"] }, { kind: \"component\", type: CourseSectionsComponent, selector: \"rolatech-course-sections\", inputs: [\"purchased\", \"sections\"], outputs: [\"section\", \"checkout\"] }, { kind: \"component\", type: CourseScheduleComponent, selector: \"rolatech-course-schedule\", inputs: [\"schedule\"] }, { kind: \"component\", type: CourseDetailsComponent, selector: \"rolatech-course-details\", inputs: [\"details\", \"instructor\", \"username\"] }, { kind: \"component\", type: CourseMediaComponent, selector: \"rolatech-course-media\", inputs: [\"media\", \"min\"] }, { kind: \"component\", type: CoursePricingComponent, selector: \"rolatech-course-pricing\", inputs: [\"pricing\"] }, { kind: \"component\", type: CourseActionComponent, selector: \"rolatech-course-action\", inputs: [\"course\", \"inWishList\"], outputs: [\"cart\", \"wish\", \"checkout\"] }, { kind: \"component\", type: CommentsComponent, selector: \"rolatech-comments\", inputs: [\"itemId\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: CategoryBreadcrumbComponent, selector: \"rolatech-category-breadcrumb\", inputs: [\"categories\"], outputs: [\"categoriesChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseDetailComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n AngularCommonModule,\n AngularComponentsModule,\n CourseInfoComponent,\n CourseSectionsComponent,\n CourseScheduleComponent,\n CourseDetailsComponent,\n CourseMediaComponent,\n CoursePricingComponent,\n CourseActionComponent,\n CommentsComponent,\n ContainerComponent,\n CategoryBreadcrumbComponent,\n ], selector: 'rolatech-course-detail', template: \"@if (course) {\\n <rolatech-container>\\n <rolatech-category-breadcrumb class=\\\"px-2\\\" [categories]=\\\"c\\\"></rolatech-category-breadcrumb>\\n <div class=\\\"flex flex-col-reverse gap-3 md:flex-row w-full justify-between\\\">\\n <div class=\\\"md:w-3/4\\\">\\n <rolatech-course-info [course]=\\\"course\\\" [instructor]=\\\"instructorName\\\" [username]=\\\"username\\\"> </rolatech-course-info>\\n <rolatech-course-sections\\n [sections]=\\\"sections\\\"\\n (section)=\\\"onSection($event)\\\"\\n (checkout)=\\\"checkout($event)\\\"\\n [purchased]=\\\"purchased\\\"\\n ></rolatech-course-sections>\\n <rolatech-course-schedule [schedule]=\\\"course.schedule\\\"></rolatech-course-schedule>\\n <rolatech-course-details [details]=\\\"course.details\\\"></rolatech-course-details>\\n <rolatech-comments [itemId]=\\\"course.id\\\"></rolatech-comments>\\n </div>\\n <div class=\\\"md:px-3\\\">\\n <!-- <rolatech-course-media [min]=\\\"!purchased\\\" [media]=\\\"course.media\\\" [min]=\\\"true\\\"></rolatech-course-media> -->\\n <rolatech-course-media [media]=\\\"course.media\\\" [min]=\\\"true\\\"></rolatech-course-media>\\n @if (!purchased) {\\n <rolatech-course-pricing [pricing]=\\\"course.pricing\\\"></rolatech-course-pricing>\\n <rolatech-course-action\\n [course]=\\\"course\\\"\\n (checkout)=\\\"checkout($event)\\\"\\n (wish)=\\\"onWish($event)\\\"\\n [inWishList]=\\\"inWishList\\\"\\n ></rolatech-course-action>\\n }\\n </div>\\n </div>\\n </rolatech-container>\\n}\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS9jb3Vyc2UtZGV0YWlsL2NvdXJzZS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWRldGFpbC9jb3Vyc2UtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQXlCLCtCQUErQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdXJzZSwgQ291cnNlU2VjdGlvbiwgQ291cnNlU2VjdGlvbkxlY3R1cmVDb250ZW50VHlwZSwgQ291cnNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb3Vyc2VTZWN0aW9uU2VydmljZSwgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb250YWluZXJDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IFZpZXdwb3J0U2Nyb2xsZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1lbnQnO1xuaW1wb3J0IHsgQ291cnNlQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtYWN0aW9uL2NvdXJzZS1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1kZXRhaWxzL2NvdXJzZS1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtaW5mby9jb3Vyc2UtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWVkaWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1tZWRpYS9jb3Vyc2UtbWVkaWEuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZVByaWNpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1wcmljaW5nL2NvdXJzZS1wcmljaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VTY2hlZHVsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY291cnNlLXNjaGVkdWxlL2NvdXJzZS1zY2hlZHVsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1zZWN0aW9ucy9jb3Vyc2Utc2VjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IENhdGVnb3J5QnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNhdGVnb3J5JztcbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgQW5ndWxhckNvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSxcbiAgICBDb3Vyc2VJbmZvQ29tcG9uZW50LFxuICAgIENvdXJzZVNlY3Rpb25zQ29tcG9uZW50LFxuICAgIENvdXJzZVNjaGVkdWxlQ29tcG9uZW50LFxuICAgIENvdXJzZURldGFpbHNDb21wb25lbnQsXG4gICAgQ291cnNlTWVkaWFDb21wb25lbnQsXG4gICAgQ291cnNlUHJpY2luZ0NvbXBvbmVudCxcbiAgICBDb3Vyc2VBY3Rpb25Db21wb25lbnQsXG4gICAgQ29tbWVudHNDb21wb25lbnQsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIENhdGVnb3J5QnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgXSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZURldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb3Vyc2UhOiBDb3Vyc2U7XG4gIHN0YXR1czogYW55ID0gQ291cnNlU3RhdHVzO1xuICBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuICB2aWV3cG9ydFNjcm9sbGVyID0gaW5qZWN0KFZpZXdwb3J0U2Nyb2xsZXIpO1xuICBjb3Vyc2VTZWN0aW9uU2VydmljZSA9IGluamVjdChDb3Vyc2VTZWN0aW9uU2VydmljZSk7XG4gIGF1dGhlbnRpY2F0ZWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQ7XG4gIGluc3RydWN0b3JOYW1lID0gJyc7XG4gIHVzZXJuYW1lID0gJyc7XG4gIGluV2lzaExpc3QgPSBmYWxzZTtcbiAgcHVyY2hhc2VkID0gZmFsc2U7XG4gIHNlY3Rpb25zOiBDb3Vyc2VTZWN0aW9uW10gPSBbXTtcbiAgdHlwZSA9IENvdXJzZVNlY3Rpb25MZWN0dXJlQ29udGVudFR5cGU7XG4gIGMgPSBbeyBuYW1lOiAn5YiG57G7JywgcGF0aDogJy9jYXRlZ29yaWVzJyB9XTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgICAgdGhpcy5maW5kUHVyY2hhc2VkQnlDb3Vyc2VJZCgpO1xuICAgICAgICB0aGlzLmZpbmRXaXNobGlzdEJ5KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kT25lKCk7XG4gICAgdGhpcy5maW5kU2VjdGlvbnMoKTtcbiAgfVxuICBzY3JvbGxUb0FuY2hvcihhbmNob3JJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNldE9mZnNldChbMTAwLCAxMDBdKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhbmNob3JJZCk/LnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIGJsb2NrOiAnc3RhcnQnLFxuICAgICAgaW5saW5lOiAnbmVhcmVzdCcsXG4gICAgfSk7XG4gIH1cbiAgZmluZE9uZSgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb3Vyc2UgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5mb3JtYXRDYXRlZ29yeSgpO1xuICAgICAgICB0aGlzLmZpbmRVc2VyQmFzZUluZm8odGhpcy5jb3Vyc2UuaW5zdHJ1Y3RvcklkKTtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYCR7dGhpcy5jb3Vyc2UubmFtZX1gKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZFNlY3Rpb25zKCkge1xuICAgIHRoaXMuY291cnNlU2VjdGlvblNlcnZpY2UuZmluZFNlY3Rpb25zKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZFVzZXJCYXNlSW5mbyh1c2VySWQ6IHN0cmluZykge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKHVzZXJJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pbnN0cnVjdG9yTmFtZSA9IHJlcy5uYW1lO1xuICAgICAgICB0aGlzLnVzZXJuYW1lID0gcmVzLnVzZXJuYW1lO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbldpc2goZTogYW55KSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICBpZiAodGhpcy5pbldpc2hMaXN0KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRnJvbVdpc2hsaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFRvV2lzaGxpc3QoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignUGxlYXNlIHNpZ24gaW4nKTtcbiAgICB9XG4gIH1cbiAgY2hlY2tvdXQoZTogYW55KSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvY2hlY2tvdXQvY291cnNlcy8ke3RoaXMuaWR9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1BsZWFzZSBzaWduIGluJyk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcmVtb3ZlRnJvbVdpc2hsaXN0KCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5yZW1vdmVGcm9tV2lzaGxpc3QodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pbldpc2hMaXN0ID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgYWRkVG9XaXNobGlzdCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuYWRkVG9XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHsgc2VjdGlvbiwgbGVjdHVyZSB9ID0gZXZlbnQ7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY291cnNlcycsIHRoaXMuY291cnNlLmlkLCAnc2VjdGlvbnMnLCBzZWN0aW9uLmlkLCAnbGVjdHVyZXMnLCBsZWN0dXJlLmlkXSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRXaXNobGlzdEJ5KCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5maW5kV2lzaGxpc3RCeSh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaW5XaXNoTGlzdCA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUHVyY2hhc2VkQnlDb3Vyc2VJZCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnB1cmNoYXNlZCA9IHJlcy5kYXRhID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGZvcm1hdENhdGVnb3J5KCkge1xuICAgIGNvbnN0IHsgY2F0ZWdvcmllcyB9ID0gdGhpcy5jb3Vyc2U7XG4gICAgY29uc3QgcGFyZW50ID0gY2F0ZWdvcmllcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubGV2ZWwgPT09IDEpO1xuICAgIGNvbnN0IGNoaWxkcmVuID0gY2F0ZWdvcmllcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubGV2ZWwgPT09IDIpO1xuICAgIHRoaXMuY1sxXSA9IHsgbmFtZTogcGFyZW50WzBdLm5hbWUsIHBhdGg6IGAvY2F0ZWdvcmllcy8ke3BhcmVudFswXS5pZH1gIH07XG4gICAgLy8gdGhpcy5jWzJdID0geyBuYW1lOiBjaGlsZENhdGVnb3J5Lm5hbWUsIHBhdGg6IGAvY2F0ZWdvcmllcy8ke2lkfS8ke2NoaWxkfWAgfTtcbiAgfVxufVxuIiwiQGlmIChjb3Vyc2UpIHtcbiAgPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgICA8cm9sYXRlY2gtY2F0ZWdvcnktYnJlYWRjcnVtYiBjbGFzcz1cInB4LTJcIiBbY2F0ZWdvcmllc109XCJjXCI+PC9yb2xhdGVjaC1jYXRlZ29yeS1icmVhZGNydW1iPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sLXJldmVyc2UgZ2FwLTMgbWQ6ZmxleC1yb3cgdy1mdWxsIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1kOnctMy80XCI+XG4gICAgICAgIDxyb2xhdGVjaC1jb3Vyc2UtaW5mbyBbY291cnNlXT1cImNvdXJzZVwiIFtpbnN0cnVjdG9yXT1cImluc3RydWN0b3JOYW1lXCIgW3VzZXJuYW1lXT1cInVzZXJuYW1lXCI+IDwvcm9sYXRlY2gtY291cnNlLWluZm8+XG4gICAgICAgIDxyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbnNcbiAgICAgICAgICBbc2VjdGlvbnNdPVwic2VjdGlvbnNcIlxuICAgICAgICAgIChzZWN0aW9uKT1cIm9uU2VjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoY2hlY2tvdXQpPVwiY2hlY2tvdXQoJGV2ZW50KVwiXG4gICAgICAgICAgW3B1cmNoYXNlZF09XCJwdXJjaGFzZWRcIlxuICAgICAgICA+PC9yb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbnM+XG4gICAgICAgIDxyb2xhdGVjaC1jb3Vyc2Utc2NoZWR1bGUgW3NjaGVkdWxlXT1cImNvdXJzZS5zY2hlZHVsZVwiPjwvcm9sYXRlY2gtY291cnNlLXNjaGVkdWxlPlxuICAgICAgICA8cm9sYXRlY2gtY291cnNlLWRldGFpbHMgW2RldGFpbHNdPVwiY291cnNlLmRldGFpbHNcIj48L3JvbGF0ZWNoLWNvdXJzZS1kZXRhaWxzPlxuICAgICAgICA8cm9sYXRlY2gtY29tbWVudHMgW2l0ZW1JZF09XCJjb3Vyc2UuaWRcIj48L3JvbGF0ZWNoLWNvbW1lbnRzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWQ6cHgtM1wiPlxuICAgICAgICA8IS0tIDxyb2xhdGVjaC1jb3Vyc2UtbWVkaWEgW21pbl09XCIhcHVyY2hhc2VkXCIgW21lZGlhXT1cImNvdXJzZS5tZWRpYVwiIFttaW5dPVwidHJ1ZVwiPjwvcm9sYXRlY2gtY291cnNlLW1lZGlhPiAtLT5cbiAgICAgICAgPHJvbGF0ZWNoLWNvdXJzZS1tZWRpYSBbbWVkaWFdPVwiY291cnNlLm1lZGlhXCIgW21pbl09XCJ0cnVlXCI+PC9yb2xhdGVjaC1jb3Vyc2UtbWVkaWE+XG4gICAgICAgIEBpZiAoIXB1cmNoYXNlZCkge1xuICAgICAgICAgIDxyb2xhdGVjaC1jb3Vyc2UtcHJpY2luZyBbcHJpY2luZ109XCJjb3Vyc2UucHJpY2luZ1wiPjwvcm9sYXRlY2gtY291cnNlLXByaWNpbmc+XG4gICAgICAgICAgPHJvbGF0ZWNoLWNvdXJzZS1hY3Rpb25cbiAgICAgICAgICAgIFtjb3Vyc2VdPVwiY291cnNlXCJcbiAgICAgICAgICAgIChjaGVja291dCk9XCJjaGVja291dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh3aXNoKT1cIm9uV2lzaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtpbldpc2hMaXN0XT1cImluV2lzaExpc3RcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLWNvdXJzZS1hY3Rpb24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { CategoryService, CourseService } from '../../../services';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, BaseComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class CourseLayoutComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.categories = [];\n this.categoryService = inject(CategoryService);\n this.courseService = inject(CourseService);\n this.selectIndex = 0;\n }\n ngOnInit() {\n this.findCategories();\n }\n findCategories() {\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n }\n loadCourseByCategoryIndex(index) {\n this.selectIndex = index;\n const id = this.categories[index].id;\n if (index === 0) {\n this.router.navigate([`/courses`]);\n // this.courseService.find({}).subscribe({\n // next: res => {\n // }\n // })\n }\n else {\n this.router.navigate([`../courses/categories/${id}`], {\n relativeTo: this.route,\n });\n }\n }\n nextCategory() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseLayoutComponent, isStandalone: true, selector: \"rolatech-course-layout\", usesInheritance: true, ngImport: i0, template: \"@if (categories) {\\n <rolatech-container>\\n <div class=\\\"flex flex-col md:flex-row min-w-[320px] max-w-[1280px] m-auto\\\">\\n <div class=\\\"h-14 md:h-auto min-w-[240px]\\\">\\n <div class=\\\"hidden md:block text-2xl font-medium py-3 md:px-1 px-3\\\">\\u5206\\u7C7B</div>\\n <div\\n class=\\\"flex flex-row md:flex-col md:h-full items-center md:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center md:mb-1 mr-2 md:mr-0\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n routerLink=\\\"/courses\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">\\u5168\\u90E8</span>\\n </a>\\n @for (category of categories; track category; let index = $index) {\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center mr-2 md:mr-0 md:mb-1\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n [routerLink]=\\\"['../courses/categories/', category.id]\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">{{ category.name }}</span>\\n </a>\\n }\\n </div>\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n </div>\\n <!-- <rolatech-list>\\n <router-outlet></router-outlet>\\n </rolatech-list> -->\\n </rolatech-container>\\n}\\n\", styles: [\".course-layout-active{border-radius:var(--rt-rounded-base, 8px);background-color:var(-rt-base-background, #fff);color:var(--rt-brand-color, #000)}@media (max-width: 768px){.course-layout-active{background-color:var(--rt-text-primary, #000);color:var(--rt-text-primary-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i1.RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseLayoutComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent], selector: 'rolatech-course-layout', template: \"@if (categories) {\\n <rolatech-container>\\n <div class=\\\"flex flex-col md:flex-row min-w-[320px] max-w-[1280px] m-auto\\\">\\n <div class=\\\"h-14 md:h-auto min-w-[240px]\\\">\\n <div class=\\\"hidden md:block text-2xl font-medium py-3 md:px-1 px-3\\\">\\u5206\\u7C7B</div>\\n <div\\n class=\\\"flex flex-row md:flex-col md:h-full items-center md:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center md:mb-1 mr-2 md:mr-0\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n routerLink=\\\"/courses\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">\\u5168\\u90E8</span>\\n </a>\\n @for (category of categories; track category; let index = $index) {\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center mr-2 md:mr-0 md:mb-1\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n [routerLink]=\\\"['../courses/categories/', category.id]\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">{{ category.name }}</span>\\n </a>\\n }\\n </div>\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n </div>\\n <!-- <rolatech-list>\\n <router-outlet></router-outlet>\\n </rolatech-list> -->\\n </rolatech-container>\\n}\\n\", styles: [\".course-layout-active{border-radius:var(--rt-rounded-base, 8px);background-color:var(-rt-base-background, #fff);color:var(--rt-brand-color, #000)}@media (max-width: 768px){.course-layout-active{background-color:var(--rt-text-primary, #000);color:var(--rt-text-primary-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS9jb3Vyc2UtbGF5b3V0L2NvdXJzZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWxheW91dC9jb3Vyc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFRMUcsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQWE7SUFOeEQ7O1FBT0UsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7S0E0QmpCO0lBMUJDLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3JFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNuQywwQ0FBMEM7WUFDMUMsbUJBQW1CO1lBQ25CLE1BQU07WUFDTixLQUFLO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNwRCxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFDRCxZQUFZLEtBQUksQ0FBQzs4R0EvQk4scUJBQXFCO2tHQUFyQixxQkFBcUIseUdDWmxDLDhxREFxQ0Esb2NEOUJZLG1CQUFtQiw4cUJBQUUsdUJBQXVCLCtCQUFFLGtCQUFrQjs7MkZBSy9ELHFCQUFxQjtrQkFOakMsU0FBUzs4QkFDQyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDLFlBQ2pFLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdXJzZUNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UsIENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb250YWluZXJDb21wb25lbnQsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZUxheW91dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjYXRlZ29yaWVzOiBDb3Vyc2VDYXRlZ29yeVtdID0gW107XG4gIGNhdGVnb3J5U2VydmljZSA9IGluamVjdChDYXRlZ29yeVNlcnZpY2UpO1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuICBzZWxlY3RJbmRleCA9IDA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kQ2F0ZWdvcmllcygpO1xuICB9XG4gIGZpbmRDYXRlZ29yaWVzKCkge1xuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmZpbmQoeyBsaW1pdDogMTAwLCBmaWx0ZXI6ICdsZXZlbDoxJyB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBsb2FkQ291cnNlQnlDYXRlZ29yeUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gaW5kZXg7XG4gICAgY29uc3QgaWQgPSB0aGlzLmNhdGVnb3JpZXNbaW5kZXhdLmlkO1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY291cnNlc2BdKTtcbiAgICAgIC8vIHRoaXMuY291cnNlU2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgLy8gICBuZXh0OiByZXMgPT4ge1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC4uL2NvdXJzZXMvY2F0ZWdvcmllcy8ke2lkfWBdLCB7XG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgbmV4dENhdGVnb3J5KCkge31cbn1cbiIsIkBpZiAoY2F0ZWdvcmllcykge1xuICA8cm9sYXRlY2gtY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IG1pbi13LVszMjBweF0gbWF4LXctWzEyODBweF0gbS1hdXRvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xNCBtZDpoLWF1dG8gbWluLXctWzI0MHB4XVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIHRleHQtMnhsIGZvbnQtbWVkaXVtIHB5LTMgbWQ6cHgtMSBweC0zXCI+5YiG57G7PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgbWQ6ZmxleC1jb2wgbWQ6aC1mdWxsIGl0ZW1zLWNlbnRlciBtZDppdGVtcy1zdGFydCBoLTE0IG92ZXJmbG93LXgtc2Nyb2xsIG92ZXJmbG93LXktaGlkZGVuIHNjcm9sbGJhci1oaWRlIHdoaXRlc3BhY2UtcHJlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGgtOCBiZy1bLS1ydC1iYWRnZS1jaGlwLWJhY2tncm91bmRdIG1kOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBtZDptYi0xIG1yLTIgbWQ6bXItMFwiXG4gICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiY291cnNlLWxheW91dC1hY3RpdmVcIlxuICAgICAgICAgICAgcm91dGVyTGluaz1cIi9jb3Vyc2VzXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiB0cnVlIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWQ6cHgtMSBweC0zIHRleHQtbWQgbWQ6dGV4dC1sZ1wiPuWFqOmDqDwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgQGZvciAoY2F0ZWdvcnkgb2YgY2F0ZWdvcmllczsgdHJhY2sgY2F0ZWdvcnk7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBoLTggYmctWy0tcnQtYmFkZ2UtY2hpcC1iYWNrZ3JvdW5kXSBtZDpiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQtbWQgZmxleCBpdGVtcy1jZW50ZXIgbXItMiBtZDptci0wIG1kOm1iLTFcIlxuICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiY291cnNlLWxheW91dC1hY3RpdmVcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4uL2NvdXJzZXMvY2F0ZWdvcmllcy8nLCBjYXRlZ29yeS5pZF1cIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZDpweC0xIHB4LTMgdGV4dC1tZCBtZDp0ZXh0LWxnXCI+e3sgY2F0ZWdvcnkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPHJvbGF0ZWNoLWxpc3Q+XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9yb2xhdGVjaC1saXN0PiAtLT5cbiAgPC9yb2xhdGVjaC1jb250YWluZXI+XG59XG4iXX0=","import { isPlatformBrowser } from '@angular/common';\nimport { Component, ElementRef, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CourseSectionService, CourseService } from '../../../services';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { CommentsComponent } from '@rolatech/angular-comment';\nimport { CourseMediaOwnerRendererComponent } from '../../../components/course-media-owner-renderer/course-media-owner-renderer.component';\nimport { CourseSectionsComponent } from '../../../components/course-sections/course-sections.component';\nimport * as i0 from \"@angular/core\";\nexport class CourseSectionContentComponent {\n constructor() {\n this.route = inject(ActivatedRoute);\n this.router = inject(Router);\n this.courseSectionService = inject(CourseSectionService);\n this.courseService = inject(CourseService);\n this.authService = inject(AuthService);\n this.authUserService = inject(AuthUserService);\n this.el = inject(ElementRef);\n this.platformId = inject(PLATFORM_ID);\n this.authenticated = this.authService.authenticated;\n this.sections = [];\n this.courseId = '';\n this.sectionId = '';\n this.lectureId = '';\n this.videoUrl = '';\n this.instructorName = '';\n this.instructorAvatar = '';\n this.instructorUsername = '';\n this.purchased = false;\n effect(() => {\n if (this.authenticated()) {\n this.findPurchasedByCourseId();\n }\n });\n }\n ngOnInit() {\n this.route.params.subscribe((params) => {\n this.courseId = params['id'];\n this.sectionId = params['sectionId'];\n this.lectureId = params['lectureId'];\n this.findCourse(this.courseId);\n this.findSections(this.courseId);\n });\n }\n ngOnDestroy() {\n if (this.player) {\n this.player.destroy();\n }\n }\n ngAfterViewInit() { }\n initPlayer(url, thumbnail) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n // 'https://cos-video-1258344699.cos.ap-guangzhou.tencentcos.cn/test.mp4',\n if (!this.player) {\n const playerContainer = this.el.nativeElement.querySelector('#dplayer');\n this.player = new DPlayer({\n container: playerContainer,\n screenshot: true,\n preload: 'metadata',\n video: {\n url: url,\n pic: thumbnail,\n },\n });\n }\n else {\n this.player.switchVideo({\n url: url,\n pic: thumbnail,\n });\n }\n }\n findSections(courseId) {\n this.courseSectionService.findSections(courseId).subscribe({\n next: (res) => {\n this.sections = res.data;\n const section = this.sections.find((item) => item.id === this.sectionId);\n const letcture = section?.lectures.find((item) => item.id === this.lectureId);\n this.videoUrl = letcture?.item.url;\n const thumbnail = letcture?.item.thumbnail;\n this.initPlayer(this.videoUrl, thumbnail);\n },\n });\n }\n findCourse(courseId) {\n this.courseService.get(courseId).subscribe({\n next: (res) => {\n this.course = res.data;\n this.findUserBaseInfo(this.course.instructorId);\n },\n });\n }\n findUserBaseInfo(userId) {\n this.authUserService.getPublicUserInfo(userId).subscribe({\n next: (res) => {\n this.instructorName = res.name;\n this.instructorAvatar = res.avatar;\n this.instructorUsername = res.username;\n },\n });\n }\n findPurchasedByCourseId() {\n this.courseService.findPurchasedByCourseId(this.courseId).subscribe({\n next: (res) => {\n this.purchased = res.data ? true : false;\n },\n });\n }\n onSection(event) {\n const { section, lecture } = event;\n this.router.navigate(['/courses', this.courseId, 'sections', section.id, 'lectures', lecture.id]);\n }\n checkout(e) {\n this.router.navigateByUrl(`/checkout/courses/${this.courseId}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseSectionContentComponent, isStandalone: true, selector: \"rolatech-course-section-content\", ngImport: i0, template: \"<div class=\\\"flex lg:flex-row flex-col justify-between w-full mt-2 lg:mt-4\\\">\\n <div class=\\\"lg:w-[70%] flex flex-col items-start justify-center px-4 lg:px-6 h-fit\\\">\\n <div id=\\\"dplayer\\\" class=\\\"w-full h-auto aspect-video rounded-xl\\\"></div>\\n <div class=\\\"py-3 w-full\\\">\\n @if (course) {\\n <div class=\\\"text-xl font-medium py-3\\\">\\n {{ course.name }}\\n </div>\\n <div>\\n <rolatech-course-media-owner-renderer\\n [name]=\\\"instructorName\\\"\\n [avatar]=\\\"instructorAvatar\\\"\\n [username]=\\\"instructorUsername\\\"\\n ></rolatech-course-media-owner-renderer>\\n </div>\\n <div class=\\\"hidden lg:block\\\">\\n <rolatech-comments [itemId]=\\\"lectureId\\\"></rolatech-comments>\\n </div>\\n }\\n </div>\\n </div>\\n <div class=\\\"lg:w-[30%] px-4 lg:px-0 lg:pr-6\\\">\\n <rolatech-course-sections\\n [sections]=\\\"sections\\\"\\n [purchased]=\\\"purchased\\\"\\n (section)=\\\"onSection($event)\\\"\\n (checkout)=\\\"checkout($event)\\\"\\n ></rolatech-course-sections>\\n </div>\\n <div class=\\\"lg:hidden block px-4 lg:px-6\\\">\\n <rolatech-comments [itemId]=\\\"lectureId\\\"></rolatech-comments>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: CourseSectionsComponent, selector: \"rolatech-course-sections\", inputs: [\"purchased\", \"sections\"], outputs: [\"section\", \"checkout\"] }, { kind: \"component\", type: CourseMediaOwnerRendererComponent, selector: \"rolatech-course-media-owner-renderer\", inputs: [\"name\", \"avatar\", \"username\"] }, { kind: \"component\", type: CommentsComponent, selector: \"rolatech-comments\", inputs: [\"itemId\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseSectionContentComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n AngularCommonModule,\n AngularComponentsModule,\n CourseSectionsComponent,\n CourseMediaOwnerRendererComponent,\n CommentsComponent,\n ], selector: 'rolatech-course-section-content', template: \"<div class=\\\"flex lg:flex-row flex-col justify-between w-full mt-2 lg:mt-4\\\">\\n <div class=\\\"lg:w-[70%] flex flex-col items-start justify-center px-4 lg:px-6 h-fit\\\">\\n <div id=\\\"dplayer\\\" class=\\\"w-full h-auto aspect-video rounded-xl\\\"></div>\\n <div class=\\\"py-3 w-full\\\">\\n @if (course) {\\n <div class=\\\"text-xl font-medium py-3\\\">\\n {{ course.name }}\\n </div>\\n <div>\\n <rolatech-course-media-owner-renderer\\n [name]=\\\"instructorName\\\"\\n [avatar]=\\\"instructorAvatar\\\"\\n [username]=\\\"instructorUsername\\\"\\n ></rolatech-course-media-owner-renderer>\\n </div>\\n <div class=\\\"hidden lg:block\\\">\\n <rolatech-comments [itemId]=\\\"lectureId\\\"></rolatech-comments>\\n </div>\\n }\\n </div>\\n </div>\\n <div class=\\\"lg:w-[30%] px-4 lg:px-0 lg:pr-6\\\">\\n <rolatech-course-sections\\n [sections]=\\\"sections\\\"\\n [purchased]=\\\"purchased\\\"\\n (section)=\\\"onSection($event)\\\"\\n (checkout)=\\\"checkout($event)\\\"\\n ></rolatech-course-sections>\\n </div>\\n <div class=\\\"lg:hidden block px-4 lg:px-6\\\">\\n <rolatech-comments [itemId]=\\\"lectureId\\\"></rolatech-comments>\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS9jb3Vyc2Utc2VjdGlvbi1jb250ZW50L2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLXNlY3Rpb24tY29udGVudC9jb3Vyc2Utc2VjdGlvbi1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUMxSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7QUFpQnhHLE1BQU0sT0FB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QTZCLDJGQzNCMUMsMHNDQWlDQSx5RERoQkksbUJBQW1CLDhCQUNuQix1QkFBdUIsK0JBQ3ZCLHVCQUF1QiwwSUFDdkIsaUNBQWlDLHlIQUNqQyxpQkFBaUI7OzJGQU1SLDZCQUE2QjtrQkFaekMsU0FBUzs4QkFDQzt3QkFDUCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixpQ0FBaUM7d0JBQ2pDLGlCQUFpQjtxQkFDbEIsWUFDUyxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvblNlcnZpY2UsIENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWVkaWFPd25lclJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXIvY291cnNlLW1lZGlhLW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VTZWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY291cnNlLXNlY3Rpb25zL2NvdXJzZS1zZWN0aW9ucy5jb21wb25lbnQnO1xuXG4vLyBpbXBvcnQgRFBsYXllciBmcm9tICdEUGxheWVyJztcbmRlY2xhcmUgY29uc3QgRFBsYXllcjogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgQ291cnNlU2VjdGlvbnNDb21wb25lbnQsXG4gICAgQ291cnNlTWVkaWFPd25lclJlbmRlcmVyQ29tcG9uZW50LFxuICAgIENvbW1lbnRzQ29tcG9uZW50LFxuICBdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1zZWN0aW9uLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLXNlY3Rpb24tY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlU2VjdGlvbkNvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvdXJzZVNlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlY3Rpb25TZXJ2aWNlKTtcbiAgY291cnNlU2VydmljZSA9IGluamVjdChDb3Vyc2VTZXJ2aWNlKTtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBhdXRoVXNlclNlcnZpY2UgPSBpbmplY3QoQXV0aFVzZXJTZXJ2aWNlKTtcbiAgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBhdXRoZW50aWNhdGVkID0gdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkO1xuICBwbGF5ZXI6IGFueTtcbiAgc2VjdGlvbnM6IENvdXJzZVNlY3Rpb25bXSA9IFtdO1xuICBjb3Vyc2VJZCA9ICcnO1xuICBzZWN0aW9uSWQgPSAnJztcbiAgbGVjdHVyZUlkID0gJyc7XG4gIHZpZGVvVXJsOiBhbnkgPSAnJztcbiAgaW5zdHJ1Y3Rvck5hbWUgPSAnJztcbiAgaW5zdHJ1Y3RvckF2YXRhciA9ICcnO1xuICBpbnN0cnVjdG9yVXNlcm5hbWUgPSAnJztcbiAgY291cnNlOiBhbnk7XG4gIHB1cmNoYXNlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICAgIHRoaXMuZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5jb3Vyc2VJZCA9IHBhcmFtc1snaWQnXTtcbiAgICAgIHRoaXMuc2VjdGlvbklkID0gcGFyYW1zWydzZWN0aW9uSWQnXTtcbiAgICAgIHRoaXMubGVjdHVyZUlkID0gcGFyYW1zWydsZWN0dXJlSWQnXTtcbiAgICAgIHRoaXMuZmluZENvdXJzZSh0aGlzLmNvdXJzZUlkKTtcbiAgICAgIHRoaXMuZmluZFNlY3Rpb25zKHRoaXMuY291cnNlSWQpO1xuICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBsYXllcikge1xuICAgICAgdGhpcy5wbGF5ZXIuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuICBpbml0UGxheWVyKHVybDogc3RyaW5nLCB0aHVtYm5haWw/OiBzdHJpbmcpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gJ2h0dHBzOi8vY29zLXZpZGVvLTEyNTgzNDQ2OTkuY29zLmFwLWd1YW5nemhvdS50ZW5jZW50Y29zLmNuL3Rlc3QubXA0JyxcbiAgICBpZiAoIXRoaXMucGxheWVyKSB7XG4gICAgICBjb25zdCBwbGF5ZXJDb250YWluZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI2RwbGF5ZXInKTtcbiAgICAgIHRoaXMucGxheWVyID0gbmV3IERQbGF5ZXIoe1xuICAgICAgICBjb250YWluZXI6IHBsYXllckNvbnRhaW5lcixcbiAgICAgICAgc2NyZWVuc2hvdDogdHJ1ZSxcbiAgICAgICAgcHJlbG9hZDogJ21ldGFkYXRhJyxcbiAgICAgICAgdmlkZW86IHtcbiAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgICBwaWM6IHRodW1ibmFpbCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBsYXllci5zd2l0Y2hWaWRlbyh7XG4gICAgICAgIHVybDogdXJsLFxuICAgICAgICBwaWM6IHRodW1ibmFpbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBmaW5kU2VjdGlvbnMoY291cnNlSWQ6IGFueSkge1xuICAgIHRoaXMuY291cnNlU2VjdGlvblNlcnZpY2UuZmluZFNlY3Rpb25zKGNvdXJzZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNlY3Rpb25zID0gcmVzLmRhdGE7XG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLnNlY3Rpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5zZWN0aW9uSWQpO1xuICAgICAgICBjb25zdCBsZXRjdHVyZSA9IHNlY3Rpb24/LmxlY3R1cmVzLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5sZWN0dXJlSWQpO1xuICAgICAgICB0aGlzLnZpZGVvVXJsID0gbGV0Y3R1cmU/Lml0ZW0udXJsO1xuICAgICAgICBjb25zdCB0aHVtYm5haWwgPSBsZXRjdHVyZT8uaXRlbS50aHVtYm5haWw7XG5cbiAgICAgICAgdGhpcy5pbml0UGxheWVyKHRoaXMudmlkZW9VcmwsIHRodW1ibmFpbCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRDb3Vyc2UoY291cnNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5nZXQoY291cnNlSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb3Vyc2UgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5maW5kVXNlckJhc2VJbmZvKHRoaXMuY291cnNlLmluc3RydWN0b3JJZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRVc2VyQmFzZUluZm8odXNlcklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmF1dGhVc2VyU2VydmljZS5nZXRQdWJsaWNVc2VySW5mbyh1c2VySWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rvck5hbWUgPSByZXMubmFtZTtcbiAgICAgICAgdGhpcy5pbnN0cnVjdG9yQXZhdGFyID0gcmVzLmF2YXRhcjtcbiAgICAgICAgdGhpcy5pbnN0cnVjdG9yVXNlcm5hbWUgPSByZXMudXNlcm5hbWU7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRQdXJjaGFzZWRCeUNvdXJzZUlkKCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5maW5kUHVyY2hhc2VkQnlDb3Vyc2VJZCh0aGlzLmNvdXJzZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHVyY2hhc2VkID0gcmVzLmRhdGEgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uU2VjdGlvbihldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBzZWN0aW9uLCBsZWN0dXJlIH0gPSBldmVudDtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jb3Vyc2VzJywgdGhpcy5jb3Vyc2VJZCwgJ3NlY3Rpb25zJywgc2VjdGlvbi5pZCwgJ2xlY3R1cmVzJywgbGVjdHVyZS5pZF0pO1xuICB9XG4gIGNoZWNrb3V0KGU6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9jaGVja291dC9jb3Vyc2VzLyR7dGhpcy5jb3Vyc2VJZH1gKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggbGc6ZmxleC1yb3cgZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBtdC0yIGxnOm10LTRcIj5cbiAgPGRpdiBjbGFzcz1cImxnOnctWzcwJV0gZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCBqdXN0aWZ5LWNlbnRlciBweC00IGxnOnB4LTYgaC1maXRcIj5cbiAgICA8ZGl2IGlkPVwiZHBsYXllclwiIGNsYXNzPVwidy1mdWxsIGgtYXV0byBhc3BlY3QtdmlkZW8gcm91bmRlZC14bFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJweS0zIHctZnVsbFwiPlxuICAgICAgQGlmIChjb3Vyc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGwgZm9udC1tZWRpdW0gcHktM1wiPlxuICAgICAgICAgIHt7IGNvdXJzZS5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxyb2xhdGVjaC1jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXJcbiAgICAgICAgICAgIFtuYW1lXT1cImluc3RydWN0b3JOYW1lXCJcbiAgICAgICAgICAgIFthdmF0YXJdPVwiaW5zdHJ1Y3RvckF2YXRhclwiXG4gICAgICAgICAgICBbdXNlcm5hbWVdPVwiaW5zdHJ1Y3RvclVzZXJuYW1lXCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1jb3Vyc2UtbWVkaWEtb3duZXItcmVuZGVyZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIGxnOmJsb2NrXCI+XG4gICAgICAgICAgPHJvbGF0ZWNoLWNvbW1lbnRzIFtpdGVtSWRdPVwibGVjdHVyZUlkXCI+PC9yb2xhdGVjaC1jb21tZW50cz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGc6dy1bMzAlXSBweC00IGxnOnB4LTAgbGc6cHItNlwiPlxuICAgIDxyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbnNcbiAgICAgIFtzZWN0aW9uc109XCJzZWN0aW9uc1wiXG4gICAgICBbcHVyY2hhc2VkXT1cInB1cmNoYXNlZFwiXG4gICAgICAoc2VjdGlvbik9XCJvblNlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAoY2hlY2tvdXQpPVwiY2hlY2tvdXQoJGV2ZW50KVwiXG4gICAgPjwvcm9sYXRlY2gtY291cnNlLXNlY3Rpb25zPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxnOmhpZGRlbiBibG9jayBweC00IGxnOnB4LTZcIj5cbiAgICA8cm9sYXRlY2gtY29tbWVudHMgW2l0ZW1JZF09XCJsZWN0dXJlSWRcIj48L3JvbGF0ZWNoLWNvbW1lbnRzPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { CourseDetailComponent } from './course-detail/course-detail.component';\nimport { CourseLayoutComponent } from './course-layout/course-layout.component';\nimport { CourseSectionContentComponent } from './course-section-content/course-section-content.component';\nexport const courseRoutes = [\n {\n path: '',\n component: CourseLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./course-index/course-index.component').then((x) => x.CourseIndexComponent),\n },\n ],\n },\n {\n path: ':id',\n component: CourseDetailComponent,\n },\n {\n path: ':id/sections/:sectionId/lectures/:lectureId',\n component: CourseSectionContentComponent,\n },\n {\n path: 'my-courses',\n component: CourseDetailComponent,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFJMUcsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFXO0lBQ2xDO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQzthQUN6RztTQUNGO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDZDQUE2QztRQUNuRCxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixTQUFTLEVBQUUscUJBQXFCO0tBQ2pDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb3Vyc2VEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1kZXRhaWwvY291cnNlLWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2UtbGF5b3V0L2NvdXJzZS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2Utc2VjdGlvbi1jb250ZW50L2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZUFwcGxpY2F0aW9uSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1hcHBsaWNhdGlvbi1pbmRleC9jb3Vyc2UtYXBwbGljYXRpb24taW5kZXguY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZUFwcGxpY2F0aW9uRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2UtYXBwbGljYXRpb24tZGV0YWlsL2NvdXJzZS1hcHBsaWNhdGlvbi1kZXRhaWwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNvdXJzZVJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9jb3Vyc2UtaW5kZXgvY291cnNlLWluZGV4LmNvbXBvbmVudCcpLnRoZW4oKHgpID0+IHguQ291cnNlSW5kZXhDb21wb25lbnQpLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VEZXRhaWxDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkL3NlY3Rpb25zLzpzZWN0aW9uSWQvbGVjdHVyZXMvOmxlY3R1cmVJZCcsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VTZWN0aW9uQ29udGVudENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdteS1jb3Vyc2VzJyxcbiAgICBjb21wb25lbnQ6IENvdXJzZURldGFpbENvbXBvbmVudCxcbiAgfSxcbl07XG4iXX0=","import { ChangeDetectorRef, Component, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { CategoryService, CourseService } from '../../../services';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent, RichItemComponent, RichViewComponent } from '@rolatech/angular-components';\nimport { CategoryBreadcrumbComponent } from '@rolatech/angular-category';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class CourseCategoryComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.categoryService = inject(CategoryService);\n this.courseService = inject(CourseService);\n this.cdr = inject(ChangeDetectorRef);\n this.courses = [];\n this.categories = [];\n this.loading = false;\n this.c = [{ name: '分类', path: '/categories' }];\n }\n ngOnInit() {\n this.route.paramMap.subscribe((params) => {\n const id = params.get('id');\n const child = params.get('child');\n this.findCategoryById(id, child);\n const fetchId = child ? child : id;\n this.findCoursesByCategoryId(fetchId);\n });\n }\n findAllCategories() {\n this.categoryService.find({ limit: 100, filter: 'level:2' }).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n }\n findCategoryById(id, child) {\n this.categoryService.get(id).subscribe({\n next: (res) => {\n this.category = res.data;\n this.c[1] = { name: this.category.name, path: `/categories/${this.category.id}` };\n if (child) {\n const childCategory = this.category.children.find((item) => item.id === child);\n this.c[2] = { name: childCategory.name, path: `/categories/${id}/${child}` };\n }\n },\n });\n }\n toChildCategory(item) {\n this.c[2] = { name: item.name, path: `/courses/categories/${this.category.id}/${item.id}` };\n // this.router.navigateByUrl(this.c[2].path);\n this.findCoursesByCategoryId(item.id);\n }\n findAllCourses() {\n this.courseService.find({}).subscribe({\n next: (res) => {\n this.courses = res.data;\n },\n });\n }\n findCoursesByCategoryId(id) {\n this.loading = true;\n const options = {\n filter: `categories:${id},published:true`,\n };\n this.courseService.find(options).subscribe({\n next: (res) => {\n this.courses = res.data;\n this.loading = false;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n loadCoursesByCategory(item) {\n this.router.navigate([`../../${item.id}`], {\n relativeTo: this.route,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseCategoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseCategoryComponent, isStandalone: true, selector: \"rolatech-course-category\", usesInheritance: true, ngImport: i0, template: \"<div>\\n <rolatech-category-breadcrumb [categories]=\\\"c\\\"></rolatech-category-breadcrumb>\\n @if (category) {\\n <div>\\n <div class=\\\"hidden md:block text-2xl font-medium mt-2\\\">{{ category.name }}</div>\\n @if (category.children) {\\n <div class=\\\"flex flex-row flex-wrap gap-3 py-1\\\">\\n @for (item of category.children; track $index) {\\n <div\\n class=\\\"px-3 py-2 hover:bg-[--rt-20-percent-layer] cursor-pointer bg-[--rt-10-percent-layer] rounded-lg\\\"\\n [routerLink]=\\\"['/categories', category.id, item.id]\\\"\\n routerLinkActive=\\\"active\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <a (click)=\\\"toChildCategory(item)\\\" class=\\\"text-sm\\\"> {{ item.name }} </a>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"flex flex-row animate-pulse w-full\\\">\\n <div class=\\\"h-4 bg-[--rt-base-background] rounded col-span-2\\\"></div>\\n </div>\\n }\\n @if (loading) {\\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\\n <div class=\\\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\\\">\\n <div class=\\\"h-fit w-2/5 md:w-1/4 aspect-video bg-[--rt-base-background] rounded-lg\\\"></div>\\n <div class=\\\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\\\">\\n <div class=\\\"space-y-3\\\">\\n <div class=\\\"h-4 bg-[--rt-base-background] rounded col-span-2\\\"></div>\\n <div class=\\\"h-2 bg-[--rt-base-background] rounded col-span-1\\\"></div>\\n <div class=\\\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\\\"></div>\\n </div>\\n <div>\\n <div class=\\\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\\\"></div>\\n </div>\\n </div>\\n </div>\\n }\\n } @else {\\n <rolatech-rich-view list>\\n @for (item of courses; track item) {\\n @defer {\\n <rolatech-rich-item\\n [routerLink]=\\\"['/courses/', item.id]\\\"\\n [thumbnail]=\\\"item.media[0].url + '!w400'\\\"\\n [title]=\\\"item.name\\\"\\n [subtitle]=\\\"item.description\\\"\\n [price]=\\\"item.pricing[0].total / 100\\\"\\n ></rolatech-rich-item>\\n }\\n }\\n </rolatech-rich-view>\\n }\\n</div>\\n\", styles: [\".active{background-color:var(--rt-20-percent-layer)}rolatech-rich-item{--rt-rich-view-item-margin: 0px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i1.RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: RichViewComponent, selector: \"rolatech-rich-view\", inputs: [\"list\", \"wrap\"] }, { kind: \"component\", type: CategoryBreadcrumbComponent, selector: \"rolatech-category-breadcrumb\", inputs: [\"categories\"], outputs: [\"categoriesChange\"] }], deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseCategoryComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n AngularCommonModule,\n AngularComponentsModule,\n RichViewComponent,\n RichItemComponent,\n CategoryBreadcrumbComponent,\n RouterLink,\n ], selector: 'rolatech-course-category', template: \"<div>\\n <rolatech-category-breadcrumb [categories]=\\\"c\\\"></rolatech-category-breadcrumb>\\n @if (category) {\\n <div>\\n <div class=\\\"hidden md:block text-2xl font-medium mt-2\\\">{{ category.name }}</div>\\n @if (category.children) {\\n <div class=\\\"flex flex-row flex-wrap gap-3 py-1\\\">\\n @for (item of category.children; track $index) {\\n <div\\n class=\\\"px-3 py-2 hover:bg-[--rt-20-percent-layer] cursor-pointer bg-[--rt-10-percent-layer] rounded-lg\\\"\\n [routerLink]=\\\"['/categories', category.id, item.id]\\\"\\n routerLinkActive=\\\"active\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <a (click)=\\\"toChildCategory(item)\\\" class=\\\"text-sm\\\"> {{ item.name }} </a>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"flex flex-row animate-pulse w-full\\\">\\n <div class=\\\"h-4 bg-[--rt-base-background] rounded col-span-2\\\"></div>\\n </div>\\n }\\n @if (loading) {\\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\\n <div class=\\\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\\\">\\n <div class=\\\"h-fit w-2/5 md:w-1/4 aspect-video bg-[--rt-base-background] rounded-lg\\\"></div>\\n <div class=\\\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\\\">\\n <div class=\\\"space-y-3\\\">\\n <div class=\\\"h-4 bg-[--rt-base-background] rounded col-span-2\\\"></div>\\n <div class=\\\"h-2 bg-[--rt-base-background] rounded col-span-1\\\"></div>\\n <div class=\\\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\\\"></div>\\n </div>\\n <div>\\n <div class=\\\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\\\"></div>\\n </div>\\n </div>\\n </div>\\n }\\n } @else {\\n <rolatech-rich-view list>\\n @for (item of courses; track item) {\\n @defer {\\n <rolatech-rich-item\\n [routerLink]=\\\"['/courses/', item.id]\\\"\\n [thumbnail]=\\\"item.media[0].url + '!w400'\\\"\\n [title]=\\\"item.name\\\"\\n [subtitle]=\\\"item.description\\\"\\n [price]=\\\"item.pricing[0].total / 100\\\"\\n ></rolatech-rich-item>\\n }\\n }\\n </rolatech-rich-view>\\n }\\n</div>\\n\", styles: [\".active{background-color:var(--rt-20-percent-layer)}rolatech-rich-item{--rt-rich-view-item-margin: 0px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWNhdGVnb3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1jYXRlZ29yeS9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWNhdGVnb3J5L2NvdXJzZS1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFjekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFiMUQ7O1FBY0Usb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhDLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsWUFBTyxHQUFH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QUFDLEVBQVU7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNLEVBQUUsY0FBYyxFQUFFLGlCQUFpQjtTQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHFCQUFxQixDQUFDLElBQVM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3pDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXRFVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwyR0NwQnBDLHF3RUF5REEsa0tEaERJLG1CQUFtQixnZkFDbkIsdUJBQXVCLCtCQUN2QixpQkFBaUIseUZBRWpCLDJCQUEyQixxSkFEM0IsaUJBQWlCOzsyRkFRUix1QkFBdUI7a0JBYm5DLFNBQVM7OEJBQ0M7d0JBQ1AsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQiwyQkFBMkI7d0JBQzNCLFVBQVU7cUJBQ1gsWUFDUywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIG1vZGVsLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtTWFwLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvdXJzZUNhdGVnb3J5LCBDb3Vyc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENhdGVnb3J5U2VydmljZSwgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIEJhc2VDb21wb25lbnQsIFJpY2hJdGVtQ29tcG9uZW50LCBSaWNoVmlld0NvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY2F0ZWdvcnknO1xuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIFJpY2hWaWV3Q29tcG9uZW50LFxuICAgIFJpY2hJdGVtQ29tcG9uZW50LFxuICAgIENhdGVnb3J5QnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBSb3V0ZXJMaW5rLFxuICBdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1jYXRlZ29yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KENhdGVnb3J5U2VydmljZSk7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIGNhdGVnb3J5ITogQ291cnNlQ2F0ZWdvcnk7XG4gIGNvdXJzZXM6IENvdXJzZVtdID0gW107XG4gIGNhdGVnb3JpZXM6IENvdXJzZUNhdGVnb3J5W10gPSBbXTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBjID0gW3sgbmFtZTogJ+WIhuexuycsIHBhdGg6ICcvY2F0ZWdvcmllcycgfV07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUoKHBhcmFtczogUGFyYW1NYXApID0+IHtcbiAgICAgIGNvbnN0IGlkID0gcGFyYW1zLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCBjaGlsZCA9IHBhcmFtcy5nZXQoJ2NoaWxkJykgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5maW5kQ2F0ZWdvcnlCeUlkKGlkLCBjaGlsZCk7XG4gICAgICBjb25zdCBmZXRjaElkID0gY2hpbGQgPyBjaGlsZCA6IGlkO1xuICAgICAgdGhpcy5maW5kQ291cnNlc0J5Q2F0ZWdvcnlJZChmZXRjaElkKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZpbmRBbGxDYXRlZ29yaWVzKCkge1xuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmZpbmQoeyBsaW1pdDogMTAwLCBmaWx0ZXI6ICdsZXZlbDoyJyB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQ2F0ZWdvcnlCeUlkKGlkOiBzdHJpbmcsIGNoaWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXQoaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmNbMV0gPSB7IG5hbWU6IHRoaXMuY2F0ZWdvcnkubmFtZSwgcGF0aDogYC9jYXRlZ29yaWVzLyR7dGhpcy5jYXRlZ29yeS5pZH1gIH07XG4gICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgIGNvbnN0IGNoaWxkQ2F0ZWdvcnk6IGFueSA9IHRoaXMuY2F0ZWdvcnkuY2hpbGRyZW4uZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gY2hpbGQpO1xuICAgICAgICAgIHRoaXMuY1syXSA9IHsgbmFtZTogY2hpbGRDYXRlZ29yeS5uYW1lLCBwYXRoOiBgL2NhdGVnb3JpZXMvJHtpZH0vJHtjaGlsZH1gIH07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgdG9DaGlsZENhdGVnb3J5KGl0ZW06IENvdXJzZUNhdGVnb3J5KSB7XG4gICAgdGhpcy5jWzJdID0geyBuYW1lOiBpdGVtLm5hbWUsIHBhdGg6IGAvY291cnNlcy9jYXRlZ29yaWVzLyR7dGhpcy5jYXRlZ29yeS5pZH0vJHtpdGVtLmlkfWAgfTtcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuY1syXS5wYXRoKTtcbiAgICB0aGlzLmZpbmRDb3Vyc2VzQnlDYXRlZ29yeUlkKGl0ZW0uaWQpO1xuICB9XG4gIGZpbmRBbGxDb3Vyc2VzKCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291cnNlcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQ291cnNlc0J5Q2F0ZWdvcnlJZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgZmlsdGVyOiBgY2F0ZWdvcmllczoke2lkfSxwdWJsaXNoZWQ6dHJ1ZWAsXG4gICAgfTtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZChvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291cnNlcyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBsb2FkQ291cnNlc0J5Q2F0ZWdvcnkoaXRlbTogYW55KSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLi8uLi8ke2l0ZW0uaWR9YF0sIHtcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxyb2xhdGVjaC1jYXRlZ29yeS1icmVhZGNydW1iIFtjYXRlZ29yaWVzXT1cImNcIj48L3JvbGF0ZWNoLWNhdGVnb3J5LWJyZWFkY3J1bWI+XG4gIEBpZiAoY2F0ZWdvcnkpIHtcbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpibG9jayB0ZXh0LTJ4bCBmb250LW1lZGl1bSBtdC0yXCI+e3sgY2F0ZWdvcnkubmFtZSB9fTwvZGl2PlxuICAgICAgQGlmIChjYXRlZ29yeS5jaGlsZHJlbikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgZ2FwLTMgcHktMVwiPlxuICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY2F0ZWdvcnkuY2hpbGRyZW47IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInB4LTMgcHktMiBob3ZlcjpiZy1bLS1ydC0yMC1wZXJjZW50LWxheWVyXSBjdXJzb3ItcG9pbnRlciBiZy1bLS1ydC0xMC1wZXJjZW50LWxheWVyXSByb3VuZGVkLWxnXCJcbiAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvY2F0ZWdvcmllcycsIGNhdGVnb3J5LmlkLCBpdGVtLmlkXVwiXG4gICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInRvQ2hpbGRDYXRlZ29yeShpdGVtKVwiIGNsYXNzPVwidGV4dC1zbVwiPiB7eyBpdGVtLm5hbWUgfX0gPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYW5pbWF0ZS1wdWxzZSB3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLTQgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKGxvYWRpbmcpIHtcbiAgICBAZm9yIChudW1iZXIgb2YgWzAsIDEsIDIsIDMsIDQsIDVdOyB0cmFjayBudW1iZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFuaW1hdGUtcHVsc2UgbXQtMyBtci00IGN1cnNvci1wb2ludGVyIHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC1maXQgdy0yLzUgbWQ6dy0xLzQgYXNwZWN0LXZpZGVvIGJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0zLzUgbWQ6dy0zLzQgbWwtMyBweS0xIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMSBweS0xXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTIgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTIgcHktMVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPHJvbGF0ZWNoLXJpY2gtdmlldyBsaXN0PlxuICAgICAgQGZvciAoaXRlbSBvZiBjb3Vyc2VzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtaXRlbVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvY291cnNlcy8nLCBpdGVtLmlkXVwiXG4gICAgICAgICAgICBbdGh1bWJuYWlsXT1cIml0ZW0ubWVkaWFbMF0udXJsICsgJyF3NDAwJ1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS5uYW1lXCJcbiAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJpdGVtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJpdGVtLnByaWNpbmdbMF0udG90YWwgLyAxMDBcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLXJpY2gtaXRlbT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvcm9sYXRlY2gtcmljaC12aWV3PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { AngularComponentsModule, BaseComponent, ContainerComponent } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { CategoryService, CourseService } from '../../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class CourseCategoryLayoutComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.categories = [];\n this.categoryService = inject(CategoryService);\n this.courseService = inject(CourseService);\n this.selectIndex = 0;\n }\n ngOnInit() {\n this.findCategories();\n }\n findCategories() {\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n }\n loadCourseByCategoryIndex(index) {\n this.selectIndex = index;\n const id = this.categories[index].id;\n if (index === 0) {\n this.router.navigate([`/courses`]);\n // this.courseService.find({}).subscribe({\n // next: res => {\n // }\n // })\n }\n else {\n this.router.navigate([`../courses/categories/${id}`], {\n relativeTo: this.route,\n });\n }\n }\n nextCategory() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseCategoryLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseCategoryLayoutComponent, isStandalone: true, selector: \"rolatech-course-category-layout\", usesInheritance: true, ngImport: i0, template: \"@if (categories) {\\n <rolatech-container>\\n <div class=\\\"flex flex-col md:flex-row min-w-[320px] max-w-[1280px] m-auto\\\">\\n <div class=\\\"h-14 md:h-auto min-w-[240px]\\\">\\n <div class=\\\"hidden md:block text-2xl font-medium py-1 md:px-1 px-3\\\">\\u5206\\u7C7B</div>\\n <div\\n class=\\\"flex flex-row md:flex-col md:h-full items-center md:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center md:mb-1 mr-2 md:mr-0\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n routerLink=\\\"./\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">\\u5168\\u90E8</span>\\n </a>\\n @for (category of categories; track category; let index = $index) {\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center mr-2 md:mr-0 md:mb-1\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n [routerLink]=\\\"['../categories/', category.id]\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">{{ category.name }}</span>\\n </a>\\n }\\n </div>\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n </div>\\n <!-- <rolatech-list>\\n <router-outlet></router-outlet>\\n </rolatech-list> -->\\n </rolatech-container>\\n}\\n\", styles: [\".course-layout-active{border-radius:var(--rt-rounded-base, 8px);background-color:var(-rt-base-background, #fff);color:var(--rt-brand-color, #000)}@media (max-width: 768px){.course-layout-active{background-color:var(--rt-text-primary, #000);color:var(--rt-text-primary-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i1.RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseCategoryLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-category-layout', imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent], template: \"@if (categories) {\\n <rolatech-container>\\n <div class=\\\"flex flex-col md:flex-row min-w-[320px] max-w-[1280px] m-auto\\\">\\n <div class=\\\"h-14 md:h-auto min-w-[240px]\\\">\\n <div class=\\\"hidden md:block text-2xl font-medium py-1 md:px-1 px-3\\\">\\u5206\\u7C7B</div>\\n <div\\n class=\\\"flex flex-row md:flex-col md:h-full items-center md:items-start h-14 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center md:mb-1 mr-2 md:mr-0\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n routerLink=\\\"./\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">\\u5168\\u90E8</span>\\n </a>\\n @for (category of categories; track category; let index = $index) {\\n <a\\n class=\\\"cursor-pointer h-8 bg-[--rt-badge-chip-background] md:bg-[--rt-base-background] rounded-md flex items-center mr-2 md:mr-0 md:mb-1\\\"\\n routerLinkActive=\\\"course-layout-active\\\"\\n [routerLink]=\\\"['../categories/', category.id]\\\"\\n [routerLinkActiveOptions]=\\\"{ exact: true }\\\"\\n >\\n <span class=\\\"md:px-1 px-3 text-md md:text-lg\\\">{{ category.name }}</span>\\n </a>\\n }\\n </div>\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n </div>\\n <!-- <rolatech-list>\\n <router-outlet></router-outlet>\\n </rolatech-list> -->\\n </rolatech-container>\\n}\\n\", styles: [\".course-layout-active{border-radius:var(--rt-rounded-base, 8px);background-color:var(-rt-base-background, #fff);color:var(--rt-brand-color, #000)}@media (max-width: 768px){.course-layout-active{background-color:var(--rt-text-primary, #000);color:var(--rt-text-primary-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWNhdGVnb3J5LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS9jb3Vyc2UtY2F0ZWdvcnktbGF5b3V0L2NvdXJzZS1jYXRlZ29yeS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWNhdGVnb3J5LWxheW91dC9jb3Vyc2UtY2F0ZWdvcnktbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFRbkUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGFBQWE7SUFOaEU7O1FBT0UsZUFBVSxHQUFxQixFQUFFLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7S0E0QmpCO0lBMUJDLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3JFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNuQywwQ0FBMEM7WUFDMUMsbUJBQW1CO1lBQ25CLE1BQU07WUFDTixLQUFLO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNwRCxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFDRCxZQUFZLEtBQUksQ0FBQzs4R0EvQk4sNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa0hDWjFDLGdxREFxQ0Esb2NEN0JZLG1CQUFtQiw4cUJBQUUsdUJBQXVCLCtCQUFFLGtCQUFrQjs7MkZBSS9ELDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSxpQ0FBaUMsV0FDbEMsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBCYXNlQ29tcG9uZW50LCBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQ291cnNlQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENhdGVnb3J5U2VydmljZSwgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLWNhdGVnb3J5LWxheW91dCcsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1jYXRlZ29yeS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291cnNlLWNhdGVnb3J5LWxheW91dC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZUNhdGVnb3J5TGF5b3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNhdGVnb3JpZXM6IENvdXJzZUNhdGVnb3J5W10gPSBbXTtcbiAgY2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KENhdGVnb3J5U2VydmljZSk7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIHNlbGVjdEluZGV4ID0gMDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmRDYXRlZ29yaWVzKCk7XG4gIH1cbiAgZmluZENhdGVnb3JpZXMoKSB7XG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZmluZCh7IGxpbWl0OiAxMDAsIGZpbHRlcjogJ2xldmVsOjEnIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGxvYWRDb3Vyc2VCeUNhdGVnb3J5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0SW5kZXggPSBpbmRleDtcbiAgICBjb25zdCBpZCA9IHRoaXMuY2F0ZWdvcmllc1tpbmRleF0uaWQ7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jb3Vyc2VzYF0pO1xuICAgICAgLy8gdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmQoe30pLnN1YnNjcmliZSh7XG4gICAgICAvLyAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi4vY291cnNlcy9jYXRlZ29yaWVzLyR7aWR9YF0sIHtcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBuZXh0Q2F0ZWdvcnkoKSB7fVxufVxuIiwiQGlmIChjYXRlZ29yaWVzKSB7XG4gIDxyb2xhdGVjaC1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbWluLXctWzMyMHB4XSBtYXgtdy1bMTI4MHB4XSBtLWF1dG9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLTE0IG1kOmgtYXV0byBtaW4tdy1bMjQwcHhdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgdGV4dC0yeGwgZm9udC1tZWRpdW0gcHktMSBtZDpweC0xIHB4LTNcIj7liIbnsbs8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbCBtZDpoLWZ1bGwgaXRlbXMtY2VudGVyIG1kOml0ZW1zLXN0YXJ0IGgtMTQgb3ZlcmZsb3cteC1zY3JvbGwgb3ZlcmZsb3cteS1oaWRkZW4gc2Nyb2xsYmFyLWhpZGUgd2hpdGVzcGFjZS1wcmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgaC04IGJnLVstLXJ0LWJhZGdlLWNoaXAtYmFja2dyb3VuZF0gbWQ6YmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIG1kOm1iLTEgbXItMiBtZDptci0wXCJcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJjb3Vyc2UtbGF5b3V0LWFjdGl2ZVwiXG4gICAgICAgICAgICByb3V0ZXJMaW5rPVwiLi9cIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZDpweC0xIHB4LTMgdGV4dC1tZCBtZDp0ZXh0LWxnXCI+5YWo6YOoPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayBjYXRlZ29yeTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGgtOCBiZy1bLS1ydC1iYWRnZS1jaGlwLWJhY2tncm91bmRdIG1kOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBtci0yIG1kOm1yLTAgbWQ6bWItMVwiXG4gICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJjb3Vyc2UtbGF5b3V0LWFjdGl2ZVwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vY2F0ZWdvcmllcy8nLCBjYXRlZ29yeS5pZF1cIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZDpweC0xIHB4LTMgdGV4dC1tZCBtZDp0ZXh0LWxnXCI+e3sgY2F0ZWdvcnkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPHJvbGF0ZWNoLWxpc3Q+XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9yb2xhdGVjaC1saXN0PiAtLT5cbiAgPC9yb2xhdGVjaC1jb250YWluZXI+XG59XG4iXX0=","import { CourseCategoryComponent } from './course-category/course-category.component';\nimport { CourseCategoryLayoutComponent } from './course-category-layout/course-category-layout.component';\nexport const courseCategoryRoutes = [\n {\n path: '',\n component: CourseCategoryLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./course-category-index/course-category-index.component').then((x) => x.CourseCategoryIndexComponent),\n },\n {\n path: ':id',\n component: CourseCategoryComponent,\n },\n {\n path: ':id/:child',\n component: CourseCategoryComponent,\n },\n ],\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWNhdGVnb3J5LnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1jYXRlZ29yeS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFMUcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQVc7SUFDMUM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSw2QkFBNkI7UUFDeEMsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMseURBQXlELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQzthQUNoSDtZQUNEO2dCQUNFLElBQUksRUFBRSxLQUFLO2dCQUNYLFNBQVMsRUFBRSx1QkFBdUI7YUFDbkM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsU0FBUyxFQUFFLHVCQUF1QjthQUNuQztTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvdXJzZUNhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2UtY2F0ZWdvcnkvY291cnNlLWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VDYXRlZ29yeUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLWNhdGVnb3J5LWxheW91dC9jb3Vyc2UtY2F0ZWdvcnktbGF5b3V0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBjb3Vyc2VDYXRlZ29yeVJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VDYXRlZ29yeUxheW91dENvbXBvbmVudCxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICBpbXBvcnQoJy4vY291cnNlLWNhdGVnb3J5LWluZGV4L2NvdXJzZS1jYXRlZ29yeS1pbmRleC5jb21wb25lbnQnKS50aGVuKCh4KSA9PiB4LkNvdXJzZUNhdGVnb3J5SW5kZXhDb21wb25lbnQpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJzppZCcsXG4gICAgICAgIGNvbXBvbmVudDogQ291cnNlQ2F0ZWdvcnlDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnOmlkLzpjaGlsZCcsXG4gICAgICAgIGNvbXBvbmVudDogQ291cnNlQ2F0ZWdvcnlDb21wb25lbnQsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuIl19","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class CourseManageContentComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CourseManageContentComponent, isStandalone: true, selector: \"rolatech-course-manage-content\", ngImport: i0, template: \"<ng-content select=\\\"rolatech-toolbar\\\"></ng-content>\\n<div class=\\\"p-3\\\">\\n <ng-content></ng-content>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-content', imports: [CommonModule], template: \"<ng-content select=\\\"rolatech-toolbar\\\"></ng-content>\\n<div class=\\\"p-3\\\">\\n <ng-content></ng-content>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWNvbnRlbnQvY291cnNlLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWNvbnRlbnQvY291cnNlLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sNEJBQTRCOzhHQUE1Qiw0QkFBNEI7a0dBQTVCLDRCQUE0QiwwRkNUekMsbUhBSUEseUREQ1ksWUFBWTs7MkZBSVgsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLGdDQUFnQyxXQUNqQyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLW1hbmFnZS1jb250ZW50JyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291cnNlLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlTWFuYWdlQ29udGVudENvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwicm9sYXRlY2gtdG9vbGJhclwiPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { findIndex, remove } from 'lodash';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { DetailItemComponent } from '../../../components';\nimport { CourseStatus, CourseType } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class CourseManageDetailsComponent {\n constructor() {\n this.route = inject(ActivatedRoute);\n this.courseService = inject(CourseService);\n this.dialog = inject(MatDialog);\n this.snackBar = inject(MatSnackBar);\n this.isLoading = false;\n this.isUploading = false;\n this.details = [];\n this.status = CourseStatus;\n this.courseType = CourseType;\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n }\n ngOnInit() {\n this.find();\n }\n find() {\n this.courseService.findDetails(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.details = res.data;\n }\n },\n });\n }\n addDetail() {\n if (!this.details) {\n this.details = [];\n }\n this.courseService\n .addDetail(this.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res) => {\n const detail = res.data;\n this.details.push({\n id: detail.id,\n title: '',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onDetailMediaUpload(event) {\n const detailId = event.id;\n const index = findIndex(this.details, (item) => item.id === detailId);\n const file = event.data.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (!this.details[index].media) {\n this.details[index].media = [];\n }\n this.details[index].media.push({\n url: reader.result,\n alt: 'upload image',\n });\n this.details[index].isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.uploadDetailMedia(this.id, detailId, formData).subscribe({\n next: (res) => {\n this.isUploading = false;\n this.details[index].isUploading = false;\n const tmp = this.details[index].media;\n delete res.data.productDetail;\n this.details[index].media[this.details[index].media.length - 1] = res.data;\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onDetailMediaDelete(event) {\n const detailId = event.id;\n const mediaId = event.media.id;\n this.courseService.deleteDetailMedia(this.id, detailId, mediaId).subscribe({\n next: (res) => {\n const detail = this.details.find((item) => item.id === detailId);\n remove(detail.media, {\n id: mediaId,\n });\n },\n });\n }\n onDetailSave(detail) {\n delete detail.isUploading;\n this.courseService.updateDetail(this.id, detail.id, detail).subscribe({\n next: (res) => {\n this.snackBar.open('Success');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onDetailDelete(detail) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除详情',\n message: '确定删除此详情吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.deleteDetail(this.id, detail.id).subscribe({\n next: (res) => {\n this.snackBar.open(res.data);\n remove(this.details, {\n id: detail.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageDetailsComponent, isStandalone: true, selector: \"rolatech-course-manage-details\", ngImport: i0, template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u8BE6\\u60C5\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (detail of details; track detail) {\\n <rolatech-detail-item\\n [detail]=\\\"detail\\\"\\n (upload)=\\\"onDetailMediaUpload($event)\\\"\\n (deleteMedia)=\\\"onDetailMediaDelete($event)\\\"\\n (save)=\\\"onDetailSave($event)\\\"\\n (delete)=\\\"onDetailDelete($event)\\\"\\n [actions]=\\\"true\\\"\\n ></rolatech-detail-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addDetail()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u6DFB\\u52A0\\u8BE6\\u60C5</span>\\n </button>\\n </div>\\n</rolatech-course-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: DetailItemComponent, selector: \"rolatech-detail-item\", inputs: [\"isUploading\", \"detail\", \"actions\", \"selectMedia\"], outputs: [\"upload\", \"delete\", \"save\", \"deleteMedia\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: CourseManageContentComponent, selector: \"rolatech-course-manage-content\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageDetailsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-details', imports: [DetailItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u8BE6\\u60C5\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (detail of details; track detail) {\\n <rolatech-detail-item\\n [detail]=\\\"detail\\\"\\n (upload)=\\\"onDetailMediaUpload($event)\\\"\\n (deleteMedia)=\\\"onDetailMediaDelete($event)\\\"\\n (save)=\\\"onDetailSave($event)\\\"\\n (delete)=\\\"onDetailDelete($event)\\\"\\n [actions]=\\\"true\\\"\\n ></rolatech-detail-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addDetail()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u6DFB\\u52A0\\u8BE6\\u60C5</span>\\n </button>\\n </div>\\n</rolatech-course-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWRldGFpbHMvY291cnNlLW1hbmFnZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWRldGFpbHMvY291cnNlLW1hbmFnZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQVEsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFnQixZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFD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QVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBeklVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDBGQ25CekMsc3ZCQXFCQSwwRERKWSxtQkFBbUIsbUxBQUUsZUFBZSxtWEFBRSxhQUFhLG9MQUFFLGdCQUFnQixnSUFBRSw0QkFBNEI7OzJGQUVsRyw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsZ0NBQWdDLFdBR2pDLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaW5kSW5kZXgsIGxhc3QsIHJlbW92ZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY291cnNlLW1hbmFnZS1jb250ZW50L2NvdXJzZS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV0YWlsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ291cnNlRGV0YWlsLCBDb3Vyc2VTdGF0dXMsIENvdXJzZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtbWFuYWdlLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0RldGFpbEl0ZW1Db21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgVG9vbGJhckNvbXBvbmVudCwgQ291cnNlTWFuYWdlQ29udGVudENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZU1hbmFnZURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG5cbiAgaWQ6IHN0cmluZztcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIGlzVXBsb2FkaW5nID0gZmFsc2U7XG4gIGRldGFpbHM6IENvdXJzZURldGFpbFtdID0gW107XG4gIHN0YXR1cyA9IENvdXJzZVN0YXR1cztcbiAgY291cnNlVHlwZTogYW55ID0gQ291cnNlVHlwZTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZCgpO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmREZXRhaWxzKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMuZGF0YSkge1xuICAgICAgICAgIHRoaXMuZGV0YWlscyA9IHJlcy5kYXRhO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGFkZERldGFpbCgpIHtcbiAgICBpZiAoIXRoaXMuZGV0YWlscykge1xuICAgICAgdGhpcy5kZXRhaWxzID0gW107XG4gICAgfVxuICAgIHRoaXMuY291cnNlU2VydmljZVxuICAgICAgLmFkZERldGFpbCh0aGlzLmlkLCB7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgbWVkaWE6IFtdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXRhaWwgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLmRldGFpbHMucHVzaCh7XG4gICAgICAgICAgICBpZDogZGV0YWlsLmlkLFxuICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgICAgY29udGVudDogJycsXG4gICAgICAgICAgICBtZWRpYTogW10sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cbiAgb25EZXRhaWxNZWRpYVVwbG9hZChldmVudDogYW55KSB7XG4gICAgY29uc3QgZGV0YWlsSWQgPSBldmVudC5pZDtcbiAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleCh0aGlzLmRldGFpbHMsIChpdGVtKSA9PiBpdGVtLmlkID09PSBkZXRhaWxJZCk7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGEudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZGV0YWlsc1tpbmRleF0ubWVkaWEpIHtcbiAgICAgICAgICB0aGlzLmRldGFpbHNbaW5kZXhdLm1lZGlhID0gW107XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuZGV0YWlsc1tpbmRleF0ubWVkaWEgYXMgYW55KS5wdXNoKHtcbiAgICAgICAgICB1cmw6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgYWx0OiAndXBsb2FkIGltYWdlJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGV0YWlsc1tpbmRleF0uaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcbiAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLnVwbG9hZERldGFpbE1lZGlhKHRoaXMuaWQsIGRldGFpbElkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc1tpbmRleF0uaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHRtcCA9IHRoaXMuZGV0YWlsc1tpbmRleF0ubWVkaWEgYXMgYW55O1xuICAgICAgICAgICAgZGVsZXRlIHJlcy5kYXRhLnByb2R1Y3REZXRhaWw7XG4gICAgICAgICAgICB0aGlzLmRldGFpbHNbaW5kZXhdLm1lZGlhW3RoaXMuZGV0YWlsc1tpbmRleF0ubWVkaWEubGVuZ3RoIC0gMV0gPSByZXMuZGF0YTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBvbkRldGFpbE1lZGlhRGVsZXRlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBkZXRhaWxJZCA9IGV2ZW50LmlkO1xuICAgIGNvbnN0IG1lZGlhSWQgPSBldmVudC5tZWRpYS5pZDtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZGVsZXRlRGV0YWlsTWVkaWEodGhpcy5pZCwgZGV0YWlsSWQsIG1lZGlhSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZGV0YWlsOiBhbnkgPSB0aGlzLmRldGFpbHMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gZGV0YWlsSWQpO1xuICAgICAgICByZW1vdmUoZGV0YWlsLm1lZGlhLCB7XG4gICAgICAgICAgaWQ6IG1lZGlhSWQsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkRldGFpbFNhdmUoZGV0YWlsOiBDb3Vyc2VEZXRhaWwpIHtcbiAgICBkZWxldGUgZGV0YWlsLmlzVXBsb2FkaW5nO1xuICAgIHRoaXMuY291cnNlU2VydmljZS51cGRhdGVEZXRhaWwodGhpcy5pZCwgZGV0YWlsLmlkLCBkZXRhaWwpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdTdWNjZXNzJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkRldGFpbERlbGV0ZShkZXRhaWw6IENvdXJzZURldGFpbCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICfliKDpmaTor6bmg4UnLFxuICAgICAgICBtZXNzYWdlOiAn56Gu5a6a5Yig6Zmk5q2k6K+m5oOF5ZCXPycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMuY291cnNlU2VydmljZS5kZWxldGVEZXRhaWwodGhpcy5pZCwgZGV0YWlsLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHJlcy5kYXRhKTtcbiAgICAgICAgICAgIHJlbW92ZSh0aGlzLmRldGFpbHMsIHtcbiAgICAgICAgICAgICAgaWQ6IGRldGFpbC5pZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLor6bmg4VcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgQGZvciAoZGV0YWlsIG9mIGRldGFpbHM7IHRyYWNrIGRldGFpbCkge1xuICAgICAgICA8cm9sYXRlY2gtZGV0YWlsLWl0ZW1cbiAgICAgICAgICBbZGV0YWlsXT1cImRldGFpbFwiXG4gICAgICAgICAgKHVwbG9hZCk9XCJvbkRldGFpbE1lZGlhVXBsb2FkKCRldmVudClcIlxuICAgICAgICAgIChkZWxldGVNZWRpYSk9XCJvbkRldGFpbE1lZGlhRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgIChzYXZlKT1cIm9uRGV0YWlsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoZGVsZXRlKT1cIm9uRGV0YWlsRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgIFthY3Rpb25zXT1cInRydWVcIlxuICAgICAgICA+PC9yb2xhdGVjaC1kZXRhaWwtaXRlbT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkRGV0YWlsKClcIiBjbGFzcz1cIm10LTNcIj5cbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgPHNwYW4+5re75Yqg6K+m5oOFPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtY291cnNlLW1hbmFnZS1jb250ZW50PlxuIl19","import { Component, inject } from '@angular/core';\nimport { remove } from 'lodash';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { ScheduleItemComponent, CourseScheduleAddDialogComponent } from '../../../components';\nimport { CourseStatus, CourseType } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class CourseManageScheduleComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.isLoading = false;\n this.schedule = [];\n this.status = CourseStatus;\n this.courseType = CourseType;\n }\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n }\n find() {\n this.courseService.findSchedule(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.schedule = res.data;\n }\n },\n });\n }\n addSchedule() {\n const options = {\n width: '500px',\n title: '添加课表',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: CourseScheduleAddDialogComponent,\n data: {},\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (schedule) => {\n if (schedule) {\n this.courseService.addSchedule(this.id, schedule).subscribe({\n next: (res) => {\n this.schedule.push(res.data);\n this.snackBarService.open('Add successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n editSchedule() {\n const options = {\n width: '500px',\n height: '90%',\n title: '编辑课表',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: ScheduleItemComponent,\n data: {\n courseId: this.id,\n schedule: this.schedule,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.courseService.addSchedule(this.id, { schedule: result }).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n onScheduleSave(schedule) {\n this.courseService.updateSchedule(this.id, schedule.id, schedule).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n onScheduleDelete(schedule) {\n const options = {\n title: '删除课表',\n message: '确定删除此课表吗?',\n cancelText: 'Cancel',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((result) => {\n if (result) {\n this.courseService.deleteSchedule(this.id, schedule.id).subscribe({\n next: (res) => {\n remove(this.schedule, {\n id: schedule.id,\n });\n this.snackBarService.open(res.data);\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageScheduleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageScheduleComponent, isStandalone: true, selector: \"rolatech-course-manage-schedule\", usesInheritance: true, ngImport: i0, template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u8BFE\\u7A0B\\u8868\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (item of schedule; track item) {\\n <rolatech-schedule-item\\n [value]=\\\"item\\\"\\n [actions]=\\\"true\\\"\\n (save)=\\\"onScheduleSave($event)\\\"\\n (delete)=\\\"onScheduleDelete($event)\\\"\\n >\\n </rolatech-schedule-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addSchedule()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u8BFE\\u8868</span>\\n </button>\\n </div>\\n</rolatech-course-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: ScheduleItemComponent, selector: \"rolatech-schedule-item\", inputs: [\"value\", \"actions\"], outputs: [\"delete\", \"save\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: CourseManageContentComponent, selector: \"rolatech-course-manage-content\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageScheduleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-schedule', imports: [ScheduleItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u8BFE\\u7A0B\\u8868\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (item of schedule; track item) {\\n <rolatech-schedule-item\\n [value]=\\\"item\\\"\\n [actions]=\\\"true\\\"\\n (save)=\\\"onScheduleSave($event)\\\"\\n (delete)=\\\"onScheduleDelete($event)\\\"\\n >\\n </rolatech-schedule-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addSchedule()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u8BFE\\u8868</span>\\n </button>\\n </div>\\n</rolatech-course-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1zY2hlZHVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS1tYW5hZ2UvY291cnNlLW1hbmFnZS1zY2hlZHVsZS9jb3Vyc2UtbWFuYWdlLXNjaGVkdWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXNjaGVkdWxlL2NvdXJzZS1tYW5hZ2Utc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQStCLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdDQUFnQyxFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdILE9BQU8sRUFBWSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBUWxELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxhQUFhO0lBTmhFOztRQU9FLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFD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QUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDaEUsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7d0JBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFOzRCQUNwQixFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUU7eUJBQ2hCLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2QyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBM0dVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtIQ2pCMUMsNnBCQW9CQSwwRERMWSxxQkFBcUIsNkhBQUUsZUFBZSxtWEFBRSxhQUFhLG9MQUFFLGdCQUFnQixnSUFBRSw0QkFBNEI7OzJGQUVwRyw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBQ0UsaUNBQWlDLFdBR2xDLENBQUMscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IHJlbW92ZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY291cnNlLW1hbmFnZS1jb250ZW50L2NvdXJzZS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NoZWR1bGVJdGVtQ29tcG9uZW50LCBDb3Vyc2VTY2hlZHVsZUFkZERpYWxvZ0NvbXBvbmVudCwgQ291cnNlU2NoZWR1bGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFNjaGVkdWxlLCBDb3Vyc2VTdGF0dXMsIENvdXJzZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2Utc2NoZWR1bGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLW1hbmFnZS1zY2hlZHVsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1tYW5hZ2Utc2NoZWR1bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1NjaGVkdWxlSXRlbUNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlTWFuYWdlU2NoZWR1bGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY291cnNlU2VydmljZSA9IGluamVjdChDb3Vyc2VTZXJ2aWNlKTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHNjaGVkdWxlOiBTY2hlZHVsZVtdID0gW107XG4gIHN0YXR1cyA9IENvdXJzZVN0YXR1cztcbiAgY291cnNlVHlwZTogYW55ID0gQ291cnNlVHlwZTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmRTY2hlZHVsZSh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLmRhdGEpIHtcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlID0gcmVzLmRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgYWRkU2NoZWR1bGUoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgdGl0bGU6ICfmt7vliqDor77ooagnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgICBjb21wb25lbnQ6IENvdXJzZVNjaGVkdWxlQWRkRGlhbG9nQ29tcG9uZW50LFxuICAgICAgZGF0YToge30sXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChzY2hlZHVsZSkgPT4ge1xuICAgICAgICBpZiAoc2NoZWR1bGUpIHtcbiAgICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuYWRkU2NoZWR1bGUodGhpcy5pZCwgc2NoZWR1bGUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUucHVzaChyZXMuZGF0YSk7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ0FkZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGVkaXRTY2hlZHVsZSgpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgd2lkdGg6ICc1MDBweCcsXG4gICAgICBoZWlnaHQ6ICc5MCUnLFxuICAgICAgdGl0bGU6ICfnvJbovpHor77ooagnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgICBjb21wb25lbnQ6IFNjaGVkdWxlSXRlbUNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY291cnNlSWQ6IHRoaXMuaWQsXG4gICAgICAgIHNjaGVkdWxlOiB0aGlzLnNjaGVkdWxlLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmFkZFNjaGVkdWxlKHRoaXMuaWQsIHsgc2NoZWR1bGU6IHJlc3VsdCB9KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVcGRhdGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNjaGVkdWxlU2F2ZShzY2hlZHVsZTogU2NoZWR1bGUgfCBhbnkpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UudXBkYXRlU2NoZWR1bGUodGhpcy5pZCwgc2NoZWR1bGUuaWQsIHNjaGVkdWxlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1N1Y2Nlc3MnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNjaGVkdWxlRGVsZXRlKHNjaGVkdWxlOiBTY2hlZHVsZSB8IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogJ+WIoOmZpOivvuihqCcsXG4gICAgICBtZXNzYWdlOiAn56Gu5a6a5Yig6Zmk5q2k6K++6KGo5ZCXPycsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAn56Gu6K6kJyxcbiAgICB9O1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZGVsZXRlU2NoZWR1bGUodGhpcy5pZCwgc2NoZWR1bGUuaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICByZW1vdmUodGhpcy5zY2hlZHVsZSwge1xuICAgICAgICAgICAgICBpZDogc2NoZWR1bGUuaWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4ocmVzLmRhdGEpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwi6K++56iL6KGoXCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXY+XG4gICAgPGRpdj5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygc2NoZWR1bGU7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPHJvbGF0ZWNoLXNjaGVkdWxlLWl0ZW1cbiAgICAgICAgICBbdmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgW2FjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgKHNhdmUpPVwib25TY2hlZHVsZVNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJvblNjaGVkdWxlRGVsZXRlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvcm9sYXRlY2gtc2NoZWR1bGUtaXRlbT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU2NoZWR1bGUoKVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3Bhbj7lop7liqDor77ooag8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { remove } from 'lodash';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { PricingItemComponent, CoursePricingAddDialogComponent } from '../../../components';\nimport { CourseStatus, CourseType } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class CourseManagePricingComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.isLoading = false;\n this.pricing = [];\n this.status = CourseStatus;\n this.courseType = CourseType;\n }\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n }\n find() {\n this.courseService.findPricing(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.pricing = res.data;\n }\n },\n });\n }\n editPricing() {\n const options = {\n width: '500px',\n title: '编辑价格',\n height: '90%',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: CoursePricingAddDialogComponent,\n data: {\n courseId: this.id,\n pricing: this.pricing,\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((result) => {\n if (result) {\n this.courseService.addPricing(this.id, { pricing: result }).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n addPricing() {\n const options = {\n width: '500px',\n title: '添加价格',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: CoursePricingAddDialogComponent,\n data: {},\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((pricing) => {\n if (pricing) {\n this.courseService.addPricing(this.id, { ...pricing, total: pricing.total * 100 }).subscribe({\n next: (res) => {\n this.pricing.push(res.data);\n this.snackBarService.open('Add successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n onPricingSave(pricing) {\n this.courseService.updatePricing(this.id, pricing.id, pricing).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n onPricingDelete(pricing) {\n const options = {\n title: '删除价格',\n message: '确定删除此价格吗?',\n cancelText: 'Cancel',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((result) => {\n if (result) {\n this.courseService.deletePricing(this.id, pricing.id).subscribe({\n next: (res) => {\n remove(this.pricing, {\n id: pricing.id,\n });\n this.snackBarService.open(res.data);\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManagePricingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManagePricingComponent, isStandalone: true, selector: \"rolatech-course-manage-pricing\", usesInheritance: true, ngImport: i0, template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u4EF7\\u683C\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (item of pricing; track item) {\\n <rolatech-pricing-item\\n [pricing]=\\\"item\\\"\\n [actions]=\\\"true\\\"\\n (save)=\\\"onPricingSave($event)\\\"\\n (delete)=\\\"onPricingDelete($event)\\\"\\n >\\n </rolatech-pricing-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addPricing()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u6DFB\\u52A0\\u4EF7\\u683C</span>\\n </button>\\n </div>\\n</rolatech-course-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: PricingItemComponent, selector: \"rolatech-pricing-item\", inputs: [\"actions\", \"pricing\"], outputs: [\"pricingChange\", \"delete\", \"save\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: CourseManageContentComponent, selector: \"rolatech-course-manage-content\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManagePricingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-pricing', imports: [PricingItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u4EF7\\u683C\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (item of pricing; track item) {\\n <rolatech-pricing-item\\n [pricing]=\\\"item\\\"\\n [actions]=\\\"true\\\"\\n (save)=\\\"onPricingSave($event)\\\"\\n (delete)=\\\"onPricingDelete($event)\\\"\\n >\\n </rolatech-pricing-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addPricing()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u6DFB\\u52A0\\u4EF7\\u683C</span>\\n </button>\\n </div>\\n</rolatech-course-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXByaWNpbmcvY291cnNlLW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXByaWNpbmcvY291cnNlLW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUErQixnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0MsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxSCxPQUFPLEVBQVcsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVFsRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsYUFBYTtJQU4vRDs7UUFPRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0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LENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDOUQsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7d0JBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFOzRCQUNuQixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7eUJBQ2YsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEMsQ0FBQztvQkFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3ZDLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4R1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsaUhDaEJ6QyxtcEJBb0JBLDBERE5ZLG9CQUFvQiwrSUFBRSxlQUFlLG1YQUFFLGFBQWEsb0xBQUUsZ0JBQWdCLGdJQUFFLDRCQUE0Qjs7MkZBRW5HLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FHakMsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IENvdXJzZU1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9jb3Vyc2UtbWFuYWdlLWNvbnRlbnQvY291cnNlLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmljaW5nSXRlbUNvbXBvbmVudCwgQ291cnNlUHJpY2luZ0RpYWxvZ0NvbXBvbmVudCwgQ291cnNlUHJpY2luZ0FkZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJpY2luZywgQ291cnNlU3RhdHVzLCBDb3Vyc2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLXByaWNpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtQcmljaW5nSXRlbUNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlTWFuYWdlUHJpY2luZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpY2luZzogUHJpY2luZ1tdID0gW107XG4gIHN0YXR1cyA9IENvdXJzZVN0YXR1cztcbiAgY291cnNlVHlwZTogYW55ID0gQ291cnNlVHlwZTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMucm91dGUucGFyZW50Py5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAgIHRoaXMuZmluZCgpO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmRQcmljaW5nKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMuZGF0YSkge1xuICAgICAgICAgIHRoaXMucHJpY2luZyA9IHJlcy5kYXRhO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGVkaXRQcmljaW5nKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB3aWR0aDogJzUwMHB4JyxcbiAgICAgIHRpdGxlOiAn57yW6L6R5Lu35qC8JyxcbiAgICAgIGhlaWdodDogJzkwJScsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAn56Gu6K6kJyxcbiAgICAgIGNvbXBvbmVudDogQ291cnNlUHJpY2luZ0FkZERpYWxvZ0NvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY291cnNlSWQ6IHRoaXMuaWQsXG4gICAgICAgIHByaWNpbmc6IHRoaXMucHJpY2luZyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmFkZFByaWNpbmcodGhpcy5pZCwgeyBwcmljaW5nOiByZXN1bHQgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVcGRhdGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGFkZFByaWNpbmcoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgdGl0bGU6ICfmt7vliqDku7fmoLwnLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgICBjb21wb25lbnQ6IENvdXJzZVByaWNpbmdBZGREaWFsb2dDb21wb25lbnQsXG4gICAgICBkYXRhOiB7fSxcbiAgICB9O1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoKHByaWNpbmcpID0+IHtcbiAgICAgIGlmIChwcmljaW5nKSB7XG4gICAgICAgIHRoaXMuY291cnNlU2VydmljZS5hZGRQcmljaW5nKHRoaXMuaWQsIHsgLi4ucHJpY2luZywgdG90YWw6IHByaWNpbmcudG90YWwgKiAxMDAgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByaWNpbmcucHVzaChyZXMuZGF0YSk7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdBZGQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25QcmljaW5nU2F2ZShwcmljaW5nOiBQcmljaW5nIHwgYW55KSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLnVwZGF0ZVByaWNpbmcodGhpcy5pZCwgcHJpY2luZy5pZCwgcHJpY2luZykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdTdWNjZXNzJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25QcmljaW5nRGVsZXRlKHByaWNpbmc6IFByaWNpbmcgfCBhbnkpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICfliKDpmaTku7fmoLwnLFxuICAgICAgbWVzc2FnZTogJ+ehruWumuWIoOmZpOatpOS7t+agvOWQlz8nLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmRlbGV0ZVByaWNpbmcodGhpcy5pZCwgcHJpY2luZy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlbW92ZSh0aGlzLnByaWNpbmcsIHtcbiAgICAgICAgICAgICAgaWQ6IHByaWNpbmcuaWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4ocmVzLmRhdGEpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwi5Lu35qC8XCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXY+XG4gICAgPGRpdj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgcHJpY2luZzsgdHJhY2sgaXRlbSkge1xuICAgICAgICA8cm9sYXRlY2gtcHJpY2luZy1pdGVtXG4gICAgICAgICAgW3ByaWNpbmddPVwiaXRlbVwiXG4gICAgICAgICAgW2FjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgKHNhdmUpPVwib25QcmljaW5nU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoZGVsZXRlKT1cIm9uUHJpY2luZ0RlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3JvbGF0ZWNoLXByaWNpbmctaXRlbT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkUHJpY2luZygpXCIgY2xhc3M9XCJtdC0zXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPua3u+WKoOS7t+agvDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtY29udGVudD5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class BookingService extends BaseService {\n init() {\n this.endpoint = 'partners/bookings';\n super.init();\n }\n items(options) {\n return this.http.get(`${this.actionUrl}/items`, {\n params: options,\n withCredentials: true,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: BookingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: BookingService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: BookingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9zZXJ2aWNlcy9ib29raW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTXpELE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQUNwQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztRQUNwQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRTtZQUNuRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBVlUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJvb2tpbmdTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncGFydG5lcnMvYm9va2luZ3MnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBpdGVtcyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class InstructorService extends BaseService {\n init() {\n this.endpoint = 'instructors';\n super.init();\n }\n createClassroom(data) {\n return this.http.post(`${this.actionUrl}/classrooms`, data, {\n withCredentials: true,\n });\n }\n updateClassroom(id, data) {\n return this.http.put(`${this.actionUrl}/classrooms/${id}`, data, {\n withCredentials: true,\n });\n }\n deleteClassroom(id) {\n return this.http.delete(`${this.actionUrl}/classrooms/${id}`, {\n withCredentials: true,\n });\n }\n findClassrooms(options) {\n return this.http.get(`${this.actionUrl}/classrooms`, {\n params: options,\n withCredentials: true,\n });\n }\n findMyClassrooms(options) {\n return this.http.get(`${this.actionUrl}/classrooms/me`, {\n params: options,\n withCredentials: true,\n });\n }\n getClassroom(id) {\n return this.http.get(`${this.actionUrl}/classrooms/${id}`, {\n withCredentials: true,\n });\n }\n findPublicInfoByUserId(id) {\n return this.http.get(`${this.actionUrl}/${id}/info/public`);\n }\n findApplications(options) {\n return this.http.get(`${this.actionUrl}/applications`, {\n params: options,\n withCredentials: true,\n });\n }\n findApplication(id) {\n return this.http.get(`${this.actionUrl}/applications/${id}`, {\n withCredentials: true,\n });\n }\n findTransactions(options) {\n return this.http.get(`${this.actionUrl}/transactions/me`, {\n params: options,\n withCredentials: true,\n });\n }\n getTransaction(id) {\n return this.http.get(`${this.actionUrl}/transactions/${id}`, {\n withCredentials: true,\n });\n }\n getApplication() {\n return this.http.get(`${this.actionUrl}/applications/me`, {\n withCredentials: true,\n });\n }\n acceptApplication(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, {}, {\n withCredentials: true,\n });\n }\n rejectApplication(id, body) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n upload(data) {\n return this.http.post(`${this.actionUrl}/classrooms/media`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/classrooms/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/classrooms/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: InstructorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: InstructorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: InstructorService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9zZXJ2aWNlcy9pbnN0cnVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTXpELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBQ3ZDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztRQUM5QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsZUFBZSxDQUFDLElBQVM7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsRUFBRSxJQUFJLEVBQUU7WUFDL0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsZUFBZSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDcEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxlQUFlLEVBQUUsRUFBRSxFQUFFO1lBQ2pFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxjQUFjLENBQUMsT0FBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FB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QUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsZUFBZSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsZUFBZSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDbEYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvRlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSW5zdHJ1Y3RvclNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdpbnN0cnVjdG9ycyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIGNyZWF0ZUNsYXNzcm9vbShkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vY2xhc3Nyb29tc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVDbGFzc3Jvb20oaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vY2xhc3Nyb29tcy8ke2lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVDbGFzc3Jvb20oaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2NsYXNzcm9vbXMvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZENsYXNzcm9vbXMob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vY2xhc3Nyb29tc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kTXlDbGFzc3Jvb21zKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2NsYXNzcm9vbXMvbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZ2V0Q2xhc3Nyb29tKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9jbGFzc3Jvb21zLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRQdWJsaWNJbmZvQnlVc2VySWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2luZm8vcHVibGljYCk7XG4gIH1cbiAgZmluZEFwcGxpY2F0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9hcHBsaWNhdGlvbnNgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZEFwcGxpY2F0aW9uKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2FwcGxpY2F0aW9ucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVHJhbnNhY3Rpb25zKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdHJhbnNhY3Rpb25zL21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldFRyYW5zYWN0aW9uKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3RyYW5zYWN0aW9ucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRBcHBsaWNhdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2FwcGxpY2F0aW9ucy9tZWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhY2NlcHRBcHBsaWNhdGlvbihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9yZXZpZXdzL2FjY2VwdGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJlamVjdEFwcGxpY2F0aW9uKGlkOiBzdHJpbmcsIGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld3MvcmVqZWN0YCwgYm9keSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2NsYXNzcm9vbXMvbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkTWVkaWEoaWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9jbGFzc3Jvb21zLyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vY2xhc3Nyb29tcy8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { clone } from 'lodash';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { CourseStatus } from '../../../interfaces';\nimport { CategoryService, CourseService } from '../../../services';\nimport { BookingService } from '../../../services/booking.service';\nimport { InstructorService } from '../../../services/instructor.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/autocomplete\";\nimport * as i7 from \"@angular/material/button\";\nexport class CourseManageInfoComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.categoryService = inject(CategoryService);\n this.instructorService = inject(InstructorService);\n this.bookingService = inject(BookingService);\n this.isLoading = false;\n this.status = CourseStatus;\n this.courseType = [\n {\n key: 'ONLINE',\n value: '线上',\n },\n {\n key: 'OFFLINE',\n value: '线下',\n },\n {\n key: 'MIXED',\n value: '混合',\n },\n ];\n }\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n this.findClassrooms();\n this.findBookedClassrooms();\n }\n findBookedClassrooms() {\n this.bookingService.items({ status: 'paid' }).subscribe({\n next: (res) => {\n this.bookedClassrooms = res.data;\n },\n });\n }\n findClassrooms() {\n this.instructorService.findMyClassrooms({}).subscribe({\n next: (res) => {\n this.classrooms = res.data;\n },\n });\n }\n find() {\n this.courseService.get(this.id).subscribe({\n next: (res) => {\n this.course = res.data;\n this.parentCategory = this.course.categories?.filter((item) => item.level === 1)[0];\n this.selectedChildrenCategories = this.course.categories?.filter((item) => item.level === 2);\n this.findChildrenCategoryByParentId(this.parentCategory.id);\n },\n });\n }\n findChildrenCategoryByParentId(parentId) {\n this.categoryService.find({ limit: 100, filter: `parent:${parentId}` }).subscribe({\n next: (res) => {\n this.childrenCategories = res.data;\n },\n });\n }\n compareParentFn(o1, o2) {\n return o1.id === o2?.id;\n }\n compareChildrenFn(o1, o2) {\n return o1.id === o2?.id;\n }\n compareClassroom(o1, o2) {\n if (o1.room) {\n return (o1.latitude === o2?.latitude &&\n o1.longitude === o2?.longitude &&\n o1.room === o2.room &&\n o1.startAt === o2.startAt &&\n o1.endAt === o2.endAt);\n }\n else {\n return o1.latitude === o2?.latitude && o1.longitude === o2?.longitude;\n }\n }\n onParentCategoryChange(event) {\n this.parentCategory.id = event.value;\n this.childrenCategories = event.value.children;\n }\n onChildCategoryChange(event) {\n this.selectedChildrenCategories = event.value;\n }\n onClassroomSelected(event) {\n this.selectedClassroom = event.value;\n }\n update() {\n const { name, description, type, classroom } = this.course;\n const data = {\n name,\n description,\n categories: this.selectedChildrenCategories,\n type,\n };\n if (classroom) {\n const finalClassroom = clone(classroom);\n finalClassroom.address = classroom.room ? classroom.address + ' ' + classroom.room + '室' : classroom.address;\n data['classroom'] = finalClassroom;\n }\n this.courseService.update(this.id, data).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n // this.router.navigate([`../${res.data.id}`], { relativeTo: this.route });\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageInfoComponent, isStandalone: true, selector: \"rolatech-course-manage-info\", usesInheritance: true, ngImport: i0, template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"Basic info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n @if (course) {\\n <div class=\\\"flex flex-col\\\">\\n <form #courseForm=\\\"ngForm\\\" (ngSubmit)=\\\"update()\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"course.name\\\" name=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"course.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex gap-2\\\">\\n <mat-form-field>\\n <mat-label i18n>Level 1</mat-label>\\n <mat-select\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareParentFn\\\"\\n [(ngModel)]=\\\"parentCategory\\\"\\n (selectionChange)=\\\"onParentCategoryChange($event)\\\"\\n >\\n @for (category of categories; track category) {\\n <mat-option [value]=\\\"category\\\">{{ category.name }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"categories\\\" required>\\n <mat-label i18n>Level 2</mat-label>\\n <mat-select\\n multiple\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareChildrenFn\\\"\\n [(ngModel)]=\\\"selectedChildrenCategories\\\"\\n #select=\\\"matSelect\\\"\\n (selectionChange)=\\\"onChildCategoryChange($event)\\\"\\n >\\n @for (item of childrenCategories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Type</mat-label>\\n <mat-select name=\\\"type\\\" [(ngModel)]=\\\"course.type\\\" required>\\n @for (item of courseType; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n @if (course.type && course.type.toString() !== 'ONLINE') {\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"classroom\\\">\\n <mat-label i18n>Classroom</mat-label>\\n <mat-select\\n name=\\\"id\\\"\\n [(ngModel)]=\\\"course.classroom\\\"\\n [compareWith]=\\\"compareClassroom\\\"\\n (selectionChange)=\\\"onClassroomSelected($event)\\\"\\n required\\n >\\n <mat-optgroup label=\\\"My\\\" i18n>\\n @for (classroom of classrooms; track classroom) {\\n <mat-option [value]=\\\"classroom\\\">\\n <div class=\\\"flex gap-3\\\">\\n <span>{{ classroom.name }}</span>\\n <span> {{ classroom.address }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-optgroup>\\n <mat-optgroup label=\\\"Purchased\\\" i18n>\\n @for (item of bookedClassrooms; track item) {\\n <mat-option [value]=\\\"item\\\">\\n <div class=\\\"flex flex-col py-3\\\">\\n <span class=\\\"font-bold\\\"> {{ item.address }} {{ item.room }}\\u5BA4</span>\\n <span class=\\\"text-md\\\"> {{ item.startAt }} - {{ item.endAt }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-optgroup>\\n </mat-select>\\n </mat-form-field>\\n }\\n </form>\\n </div>\\n <div>\\n <button mat-flat-button (click)=\\\"update()\\\" i18n>Save</button>\\n </div>\\n }\\n</rolatech-course-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.NgModelGroup, selector: \"[ngModelGroup]\", inputs: [\"ngModelGroup\"], exportAs: [\"ngModelGroup\"] }, { kind: \"directive\", type: i1.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i6.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"component\", type: i6.MatOptgroup, selector: \"mat-optgroup\", inputs: [\"label\", \"disabled\"], exportAs: [\"matOptgroup\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i7.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: CourseManageContentComponent, selector: \"rolatech-course-manage-content\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageInfoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-info', imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ToolbarComponent,\n CourseManageContentComponent,\n ], template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"Basic info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n @if (course) {\\n <div class=\\\"flex flex-col\\\">\\n <form #courseForm=\\\"ngForm\\\" (ngSubmit)=\\\"update()\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"course.name\\\" name=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"course.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex gap-2\\\">\\n <mat-form-field>\\n <mat-label i18n>Level 1</mat-label>\\n <mat-select\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareParentFn\\\"\\n [(ngModel)]=\\\"parentCategory\\\"\\n (selectionChange)=\\\"onParentCategoryChange($event)\\\"\\n >\\n @for (category of categories; track category) {\\n <mat-option [value]=\\\"category\\\">{{ category.name }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"categories\\\" required>\\n <mat-label i18n>Level 2</mat-label>\\n <mat-select\\n multiple\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareChildrenFn\\\"\\n [(ngModel)]=\\\"selectedChildrenCategories\\\"\\n #select=\\\"matSelect\\\"\\n (selectionChange)=\\\"onChildCategoryChange($event)\\\"\\n >\\n @for (item of childrenCategories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Type</mat-label>\\n <mat-select name=\\\"type\\\" [(ngModel)]=\\\"course.type\\\" required>\\n @for (item of courseType; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n @if (course.type && course.type.toString() !== 'ONLINE') {\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"classroom\\\">\\n <mat-label i18n>Classroom</mat-label>\\n <mat-select\\n name=\\\"id\\\"\\n [(ngModel)]=\\\"course.classroom\\\"\\n [compareWith]=\\\"compareClassroom\\\"\\n (selectionChange)=\\\"onClassroomSelected($event)\\\"\\n required\\n >\\n <mat-optgroup label=\\\"My\\\" i18n>\\n @for (classroom of classrooms; track classroom) {\\n <mat-option [value]=\\\"classroom\\\">\\n <div class=\\\"flex gap-3\\\">\\n <span>{{ classroom.name }}</span>\\n <span> {{ classroom.address }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-optgroup>\\n <mat-optgroup label=\\\"Purchased\\\" i18n>\\n @for (item of bookedClassrooms; track item) {\\n <mat-option [value]=\\\"item\\\">\\n <div class=\\\"flex flex-col py-3\\\">\\n <span class=\\\"font-bold\\\"> {{ item.address }} {{ item.room }}\\u5BA4</span>\\n <span class=\\\"text-md\\\"> {{ item.startAt }} - {{ item.endAt }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-optgroup>\\n </mat-select>\\n </mat-form-field>\\n }\\n </form>\\n </div>\\n <div>\\n <button mat-flat-button (click)=\\\"update()\\\" i18n>Save</button>\\n </div>\\n }\\n</rolatech-course-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWluZm8vY291cnNlLW1hbmFnZS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWluZm8vY291cnNlLW1hbmFnZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFBMEIsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENB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QUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLDJFQUEyRTtZQUM3RSxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhJVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qiw4R0NoQ3RDLHFrSUF1R0EscUZEbEZJLFdBQVcsbzRDQUNYLGtCQUFrQiwwU0FDbEIsY0FBYyxnbUJBQ2QsZUFBZSw4QkFDZixlQUFlLGcxQkFDZixlQUFlLDhCQUNmLGVBQWUsb1hBQ2YsZ0JBQWdCLGdJQUNoQiw0QkFBNEI7OzJGQUduQix5QkFBeUI7a0JBaEJyQyxTQUFTOytCQUNFLDZCQUE2QixXQUc5Qjt3QkFDUCxXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3FCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY291cnNlLW1hbmFnZS1jb250ZW50L2NvdXJzZS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlLCBDb3Vyc2VDYXRlZ29yeSwgQ291cnNlU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UsIENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBCb29raW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jvb2tpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJbnN0cnVjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2luc3RydWN0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtaW5mbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtbWFuYWdlLWluZm8uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VNYW5hZ2VJbmZvQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGNhdGVnb3J5U2VydmljZSA9IGluamVjdChDYXRlZ29yeVNlcnZpY2UpO1xuICBpbnN0cnVjdG9yU2VydmljZSA9IGluamVjdChJbnN0cnVjdG9yU2VydmljZSk7XG4gIGJvb2tpbmdTZXJ2aWNlID0gaW5qZWN0KEJvb2tpbmdTZXJ2aWNlKTtcblxuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgY291cnNlITogQ291cnNlO1xuICBzdGF0dXMgPSBDb3Vyc2VTdGF0dXM7XG4gIC8vIGNvdXJzZVR5cGU6IGFueSA9IENvdXJzZVR5cGU7XG4gIHNlbGVjdGVkQ2F0ZWdveUlkcyE6IHN0cmluZ1tdO1xuICBzZWxlY3RlZENsYXNzcm9vbTogYW55O1xuICBjYXRlZ29yaWVzITogQ291cnNlQ2F0ZWdvcnlbXTtcbiAgcGFyZW50Q2F0ZWdvcnkhOiBDb3Vyc2VDYXRlZ29yeTtcbiAgY2hpbGRyZW5DYXRlZ29yaWVzITogQ291cnNlQ2F0ZWdvcnlbXTtcbiAgc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMhOiBDb3Vyc2VDYXRlZ29yeVtdO1xuXG4gIGNsYXNzcm9vbXM6IGFueTtcbiAgYm9va2VkQ2xhc3Nyb29tczogYW55O1xuICBjb3Vyc2VUeXBlID0gW1xuICAgIHtcbiAgICAgIGtleTogJ09OTElORScsXG4gICAgICB2YWx1ZTogJ+e6v+S4iicsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdPRkZMSU5FJyxcbiAgICAgIHZhbHVlOiAn57q/5LiLJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ01JWEVEJyxcbiAgICAgIHZhbHVlOiAn5re35ZCIJyxcbiAgICB9LFxuICBdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgICB0aGlzLmZpbmQoKTtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5maW5kKHsgbGltaXQ6IDEwMCwgZmlsdGVyOiAnbGV2ZWw6MScgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5maW5kQ2xhc3Nyb29tcygpO1xuICAgIHRoaXMuZmluZEJvb2tlZENsYXNzcm9vbXMoKTtcbiAgfVxuICBmaW5kQm9va2VkQ2xhc3Nyb29tcygpIHtcbiAgICB0aGlzLmJvb2tpbmdTZXJ2aWNlLml0ZW1zKHsgc3RhdHVzOiAncGFpZCcgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmJvb2tlZENsYXNzcm9vbXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBmaW5kQ2xhc3Nyb29tcygpIHtcbiAgICB0aGlzLmluc3RydWN0b3JTZXJ2aWNlLmZpbmRNeUNsYXNzcm9vbXMoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY2xhc3Nyb29tcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvdXJzZSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnBhcmVudENhdGVnb3J5ID0gdGhpcy5jb3Vyc2UuY2F0ZWdvcmllcz8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLmxldmVsID09PSAxKVswXSBhcyBhbnk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMgPSB0aGlzLmNvdXJzZS5jYXRlZ29yaWVzPy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubGV2ZWwgPT09IDIpIGFzIGFueTtcbiAgICAgICAgdGhpcy5maW5kQ2hpbGRyZW5DYXRlZ29yeUJ5UGFyZW50SWQodGhpcy5wYXJlbnRDYXRlZ29yeS5pZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRDaGlsZHJlbkNhdGVnb3J5QnlQYXJlbnRJZChwYXJlbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZmluZCh7IGxpbWl0OiAxMDAsIGZpbHRlcjogYHBhcmVudDoke3BhcmVudElkfWAgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNoaWxkcmVuQ2F0ZWdvcmllcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjb21wYXJlUGFyZW50Rm4obzE6IENvdXJzZUNhdGVnb3J5LCBvMjogQ291cnNlQ2F0ZWdvcnkpIHtcbiAgICByZXR1cm4gbzEuaWQgPT09IG8yPy5pZDtcbiAgfVxuICBjb21wYXJlQ2hpbGRyZW5GbihvMTogQ291cnNlQ2F0ZWdvcnksIG8yOiBDb3Vyc2VDYXRlZ29yeSkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzI/LmlkO1xuICB9XG4gIGNvbXBhcmVDbGFzc3Jvb20obzE6IGFueSwgbzI6IGFueSkge1xuICAgIGlmIChvMS5yb29tKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBvMS5sYXRpdHVkZSA9PT0gbzI/LmxhdGl0dWRlICYmXG4gICAgICAgIG8xLmxvbmdpdHVkZSA9PT0gbzI/LmxvbmdpdHVkZSAmJlxuICAgICAgICBvMS5yb29tID09PSBvMi5yb29tICYmXG4gICAgICAgIG8xLnN0YXJ0QXQgPT09IG8yLnN0YXJ0QXQgJiZcbiAgICAgICAgbzEuZW5kQXQgPT09IG8yLmVuZEF0XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbzEubGF0aXR1ZGUgPT09IG8yPy5sYXRpdHVkZSAmJiBvMS5sb25naXR1ZGUgPT09IG8yPy5sb25naXR1ZGU7XG4gICAgfVxuICB9XG4gIG9uUGFyZW50Q2F0ZWdvcnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucGFyZW50Q2F0ZWdvcnkuaWQgPSBldmVudC52YWx1ZTtcbiAgICB0aGlzLmNoaWxkcmVuQ2F0ZWdvcmllcyA9IGV2ZW50LnZhbHVlLmNoaWxkcmVuO1xuICB9XG4gIG9uQ2hpbGRDYXRlZ29yeUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZENoaWxkcmVuQ2F0ZWdvcmllcyA9IGV2ZW50LnZhbHVlO1xuICB9XG4gIG9uQ2xhc3Nyb29tU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDbGFzc3Jvb20gPSBldmVudC52YWx1ZTtcbiAgfVxuICB1cGRhdGUoKSB7XG4gICAgY29uc3QgeyBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSwgY2xhc3Nyb29tIH0gPSB0aGlzLmNvdXJzZTtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgY2F0ZWdvcmllczogdGhpcy5zZWxlY3RlZENoaWxkcmVuQ2F0ZWdvcmllcyxcbiAgICAgIHR5cGUsXG4gICAgfTtcbiAgICBpZiAoY2xhc3Nyb29tKSB7XG4gICAgICBjb25zdCBmaW5hbENsYXNzcm9vbSA9IGNsb25lKGNsYXNzcm9vbSk7XG4gICAgICBmaW5hbENsYXNzcm9vbS5hZGRyZXNzID0gY2xhc3Nyb29tLnJvb20gPyBjbGFzc3Jvb20uYWRkcmVzcyArICcgJyArIGNsYXNzcm9vbS5yb29tICsgJ+WupCcgOiBjbGFzc3Jvb20uYWRkcmVzcztcbiAgICAgIGRhdGFbJ2NsYXNzcm9vbSddID0gZmluYWxDbGFzc3Jvb207XG4gICAgfVxuICAgIHRoaXMuY291cnNlU2VydmljZS51cGRhdGUodGhpcy5pZCwgZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignU3VjY2VzcycpO1xuICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC4uLyR7cmVzLmRhdGEuaWR9YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJCYXNpYyBpbmZvXCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPjwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgQGlmIChjb3Vyc2UpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPGZvcm0gI2NvdXJzZUZvcm09XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwidXBkYXRlKClcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBUaXRsZSA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImNvdXJzZS5uYW1lXCIgbmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IERlc2NyaXB0aW9uIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY291cnNlLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkxldmVsIDE8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgIG5hbWU9XCJpZFwiXG4gICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlUGFyZW50Rm5cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhcmVudENhdGVnb3J5XCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblBhcmVudENhdGVnb3J5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayBjYXRlZ29yeSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjYXRlZ29yeVwiPnt7IGNhdGVnb3J5Lm5hbWUgfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIG5nTW9kZWxHcm91cD1cImNhdGVnb3JpZXNcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5MZXZlbCAyPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgICAgICBuYW1lPVwiaWRcIlxuICAgICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUNoaWxkcmVuRm5cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ2hpbGRyZW5DYXRlZ29yaWVzXCJcbiAgICAgICAgICAgICAgI3NlbGVjdD1cIm1hdFNlbGVjdFwiXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGlsZENhdGVnb3J5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNoaWxkcmVuQ2F0ZWdvcmllczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlR5cGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBuYW1lPVwidHlwZVwiIFsobmdNb2RlbCldPVwiY291cnNlLnR5cGVcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY291cnNlVHlwZTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5rZXlcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIEBpZiAoY291cnNlLnR5cGUgJiYgY291cnNlLnR5cGUudG9TdHJpbmcoKSAhPT0gJ09OTElORScpIHtcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBuZ01vZGVsR3JvdXA9XCJjbGFzc3Jvb21cIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5DbGFzc3Jvb208L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgIG5hbWU9XCJpZFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY291cnNlLmNsYXNzcm9vbVwiXG4gICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlQ2xhc3Nyb29tXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNsYXNzcm9vbVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LW9wdGdyb3VwIGxhYmVsPVwiTXlcIiBpMThuPlxuICAgICAgICAgICAgICAgIEBmb3IgKGNsYXNzcm9vbSBvZiBjbGFzc3Jvb21zOyB0cmFjayBjbGFzc3Jvb20pIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjbGFzc3Jvb21cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjbGFzc3Jvb20ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgY2xhc3Nyb29tLmFkZHJlc3MgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgICAgICAgIDxtYXQtb3B0Z3JvdXAgbGFiZWw9XCJQdXJjaGFzZWRcIiBpMThuPlxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYm9va2VkQ2xhc3Nyb29tczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+IHt7IGl0ZW0uYWRkcmVzcyB9fSB7eyBpdGVtLnJvb20gfX3lrqQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW1kXCI+IHt7IGl0ZW0uc3RhcnRBdCB9fSAtIHt7IGl0ZW0uZW5kQXQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwidXBkYXRlKClcIiBpMThuPlNhdmU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9yb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { findLastIndex } from 'lodash';\nimport { ConfirmationDialogComponent, ImagePreviewDialogComponent, MediaListComponent, MediaListItemComponent, ToolbarComponent, } from '@rolatech/angular-components';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { CourseService } from '../../../services';\nimport { CourseStatus, CourseType } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nconst SIZE = 10 * 1024 * 1024; // file slice size 10MB\nexport class CourseManageMediaComponent {\n constructor() {\n this.route = inject(ActivatedRoute);\n this.courseService = inject(CourseService);\n this.dialog = inject(MatDialog);\n this.snackBar = inject(MatSnackBar);\n this.isUploading = false;\n this.isLoading = false;\n this.media = [];\n this.status = CourseStatus;\n this.courseType = CourseType;\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n }\n ngOnInit() {\n this.find();\n }\n find() {\n this.courseService.get(this.id).subscribe({\n next: (res) => {\n this.media = res.data.media || [];\n },\n });\n }\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => { });\n }\n createFileChunk(file, size = SIZE) {\n const fileChunkList = [];\n let cur = 0;\n while (cur < file.size) {\n fileChunkList.push({ file: file.slice(cur, cur + size) });\n cur += size;\n }\n return fileChunkList;\n }\n onUploadMedia2(event) {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => { };\n const fileChunkList = this.createFileChunk(file);\n fileChunkList.forEach((item) => { });\n }\n onUploadMedia(event) {\n const file = event.target.files[0];\n // 5MB * 1024 * 1024 = 5242880\n // if (file?.size > 5242880) {\n // this.snackBar.open('尺寸过大, 请修改后上传');\n // this.isUploading = false;\n // return;\n // }\n if (file) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n this.media.push({\n url: img.src,\n alt: 'upload image',\n width: img.width,\n height: img.height,\n });\n this.isUploading = true;\n };\n img.src = reader.result; // This is the data URL\n };\n this.courseService.uploadMedia(this.id, formData).subscribe({\n next: (res) => {\n this.isUploading = false;\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onMediaDelete(item) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: '确定删除这张课程图片吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.deleteMedia(this.id, item.id).subscribe({\n next: (res) => {\n this.media = this.media.filter((m) => m.id !== item.id);\n this.snackBar.open('Delete successfully');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageMediaComponent, isStandalone: true, selector: \"rolatech-course-manage-media\", ngImport: i0, template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u56FE\\u7247\\u4FE1\\u606F\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n <p>*\\u56FE\\u7247\\u6587\\u4EF6\\u5927\\u5C0F\\u9650\\u5236\\u57285MB\\u4EE5\\u4E0B*</p>\\n <rolatech-media-list (upload)=\\\"onUploadMedia($event)\\\" [isUploading]=\\\"isUploading\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete(item)\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n</rolatech-course-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MediaListComponent, selector: \"rolatech-media-list\", inputs: [\"isUploading\", \"media\", \"showAdd\"], outputs: [\"mediaItemClick\", \"upload\"] }, { kind: \"component\", type: MediaListItemComponent, selector: \"rolatech-media-list-item\", inputs: [\"media\", \"uploadProgress\", \"uploading\"], outputs: [\"mediaItemClick\", \"deleteMedia\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: CourseManageContentComponent, selector: \"rolatech-course-manage-content\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageMediaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-media', imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, CourseManageContentComponent], template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u56FE\\u7247\\u4FE1\\u606F\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n <p>*\\u56FE\\u7247\\u6587\\u4EF6\\u5927\\u5C0F\\u9650\\u5236\\u57285MB\\u4EE5\\u4E0B*</p>\\n <rolatech-media-list (upload)=\\\"onUploadMedia($event)\\\" [isUploading]=\\\"isUploading\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete(item)\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n</rolatech-course-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1tZWRpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS1tYW5hZ2UvY291cnNlLW1hbmFnZS1tZWRpYS9jb3Vyc2UtbWFuYWdlLW1lZGlhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLW1lZGlhL2NvdXJzZS1tYW5hZ2UtbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQVMsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUV0RSxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLHVCQUF1QjtBQVF0RCxN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QUFDLENBQUM7d0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7b0JBQzVDLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBM0hVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHdGQ3pCdkMsNnBCQWVBLDBERFFZLGtCQUFrQixvSkFBRSxzQkFBc0IsbUtBQUUsZ0JBQWdCLGdJQUFFLDRCQUE0Qjs7MkZBRXpGLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSw4QkFBOEIsV0FHL0IsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4IH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtcbiAgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LFxuICBJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsXG4gIE1lZGlhTGlzdENvbXBvbmVudCxcbiAgTWVkaWFMaXN0SXRlbUNvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2VNYW5hZ2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY291cnNlLW1hbmFnZS1jb250ZW50L2NvdXJzZS1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE1lZGlhLCBDb3Vyc2VTdGF0dXMsIENvdXJzZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuY29uc3QgU0laRSA9IDEwICogMTAyNCAqIDEwMjQ7IC8vIGZpbGUgc2xpY2Ugc2l6ZSAxME1CXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtbWVkaWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLW1hbmFnZS1tZWRpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdXJzZS1tYW5hZ2UtbWVkaWEuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW01lZGlhTGlzdENvbXBvbmVudCwgTWVkaWFMaXN0SXRlbUNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCwgQ291cnNlTWFuYWdlQ29udGVudENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZU1hbmFnZU1lZGlhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBpZDogc3RyaW5nO1xuICBpc1VwbG9hZGluZyA9IGZhbHNlO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgbWVkaWE6IE1lZGlhW10gPSBbXTtcbiAgc3RhdHVzID0gQ291cnNlU3RhdHVzO1xuICBjb3Vyc2VUeXBlOiBhbnkgPSBDb3Vyc2VUeXBlO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kKCk7XG4gIH1cbiAgZmluZCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tZWRpYSA9IHJlcy5kYXRhLm1lZGlhIHx8IFtdO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkltYWdlQ2xpY2soaTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIGhlaWdodDogJzgwJScsXG4gICAgICB3aWR0aDogJzgwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZnVsbC1zY3JlZW4tbW9kYWwnLFxuICAgICAgZGF0YToge1xuICAgICAgICBtZWRpYTogdGhpcy5tZWRpYSxcbiAgICAgICAgc2VsZWN0ZWQ6IGksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7fSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVGaWxlQ2h1bmsoZmlsZTogYW55LCBzaXplID0gU0laRSkge1xuICAgIGNvbnN0IGZpbGVDaHVua0xpc3Q6IGFueSA9IFtdO1xuICAgIGxldCBjdXIgPSAwO1xuICAgIHdoaWxlIChjdXIgPCBmaWxlLnNpemUpIHtcbiAgICAgIGZpbGVDaHVua0xpc3QucHVzaCh7IGZpbGU6IGZpbGUuc2xpY2UoY3VyLCBjdXIgKyBzaXplKSB9KTtcbiAgICAgIGN1ciArPSBzaXplO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZUNodW5rTGlzdDtcbiAgfVxuXG4gIG9uVXBsb2FkTWVkaWEyKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7fTtcblxuICAgIGNvbnN0IGZpbGVDaHVua0xpc3QgPSB0aGlzLmNyZWF0ZUZpbGVDaHVuayhmaWxlKTtcbiAgICBmaWxlQ2h1bmtMaXN0LmZvckVhY2goKGl0ZW0pID0+IHt9KTtcbiAgfVxuICBvblVwbG9hZE1lZGlhKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIC8vIDVNQiAqIDEwMjQgKiAxMDI0ID0gNTI0Mjg4MFxuICAgIC8vIGlmIChmaWxlPy5zaXplID4gNTI0Mjg4MCkge1xuICAgIC8vICAgdGhpcy5zbmFja0Jhci5vcGVuKCflsLrlr7jov4flpKcsIOivt+S/ruaUueWQjuS4iuS8oCcpO1xuICAgIC8vICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgIC8vICAgcmV0dXJuO1xuICAgIC8vIH1cblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZzogYW55ID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZWRpYS5wdXNoKHtcbiAgICAgICAgICAgIHVybDogaW1nLnNyYyxcbiAgICAgICAgICAgIGFsdDogJ3VwbG9hZCBpbWFnZScsXG4gICAgICAgICAgICB3aWR0aDogaW1nLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBpbWcuaGVpZ2h0LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGltZy5zcmMgPSByZWFkZXIucmVzdWx0OyAvLyBUaGlzIGlzIHRoZSBkYXRhIFVSTFxuICAgICAgfTtcbiAgICAgIHRoaXMuY291cnNlU2VydmljZS51cGxvYWRNZWRpYSh0aGlzLmlkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZmluZExhc3RJbmRleCh0aGlzLm1lZGlhKTtcbiAgICAgICAgICAvLyBSZXBsYWNlIGl0ZW0gYXQgaW5kZXggdXNpbmcgbmF0aXZlIHNwbGljZVxuICAgICAgICAgIHRoaXMubWVkaWEuc3BsaWNlKGluZGV4LCAxLCByZXMuZGF0YSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignVXBsb2FkIGZhaWxlZDogJyArIGUubWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIG9uTWVkaWFEZWxldGUoaXRlbTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+WIoOmZpOWbvueJhycsXG4gICAgICAgIG1lc3NhZ2U6ICfnoa7lrprliKDpmaTov5nlvKDor77nqIvlm77niYflkJc/JyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmRlbGV0ZU1lZGlhKHRoaXMuaWQsIGl0ZW0uaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZWRpYSA9IHRoaXMubWVkaWEuZmlsdGVyKChtKSA9PiBtLmlkICE9PSBpdGVtLmlkKTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignRGVsZXRlIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLlm77niYfkv6Hmga9cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2PlxuICAgIDxwPirlm77niYfmlofku7blpKflsI/pmZDliLblnKg1TULku6XkuIsqPC9wPlxuICAgIDxyb2xhdGVjaC1tZWRpYS1saXN0ICh1cGxvYWQpPVwib25VcGxvYWRNZWRpYSgkZXZlbnQpXCIgW2lzVXBsb2FkaW5nXT1cImlzVXBsb2FkaW5nXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIG1lZGlhOyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8cm9sYXRlY2gtbWVkaWEtbGlzdC1pdGVtXG4gICAgICAgICAgW21lZGlhXT1cIml0ZW1cIlxuICAgICAgICAgIChtZWRpYUl0ZW1DbGljayk9XCJvbkltYWdlQ2xpY2soaSlcIlxuICAgICAgICAgIChkZWxldGVNZWRpYSk9XCJvbk1lZGlhRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgPjwvcm9sYXRlY2gtbWVkaWEtbGlzdC1pdGVtPlxuICAgICAgfVxuICAgIDwvcm9sYXRlY2gtbWVkaWEtbGlzdD5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtY29udGVudD5cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Observable, concatMap, from, take } from 'rxjs';\nimport { CourseManageContentComponent } from '../course-manage-content/course-manage-content.component';\nimport { CourseService } from '../../../services';\nimport { CourseSectionItemComponent, CourseSectionLectureItemComponent, CourseSectionLectureVideoDialogComponent, } from '../../../components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class CourseManageSectionComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.sections = [];\n this.hasUnsaved = false;\n this.editId = '';\n this.lectureEditId = '';\n this.chunkSize = 5 * 1024 * 1024; // 切片大小\n this.fileIndex = 0; // 当前正在被遍历的文件下标\n }\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n }\n find() {\n this.courseService.getCourseSection(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.sections = res.data;\n }\n },\n });\n }\n addSection() {\n const section = {\n title: '',\n description: '',\n };\n this.courseService.addCourseSection(this.id, section).subscribe({\n next: (res) => {\n this.sections.push(res.data);\n this.editId = res.data.id;\n },\n });\n this.hasUnsaved = false;\n }\n onCancel(event) {\n this.sections.pop();\n this.hasUnsaved = false;\n }\n onSectionSave(event) {\n const { id } = event;\n this.courseService.updateCourseSection(id, event).subscribe({\n next: (res) => {\n this.hasUnsaved = false;\n this.snackBarService.open('Success');\n },\n });\n this.hasUnsaved = false;\n }\n onSectionEdit(event) {\n this.editId = event.id;\n // this.editIndex = this.sections.find((item: any) => item.id === event.id);\n }\n onSectionDelete(event) {\n const { id } = event;\n const options = {\n title: '确认删除吗',\n message: '删除这个章节吗?',\n cancelText: 'Cancel',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n const data = {\n name: res,\n };\n this.courseService.deleteCourseSection(id).subscribe({\n next: (res) => {\n this.sections.pop();\n this.hasUnsaved = false;\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n addLecture(section) {\n const lecture = {\n title: '',\n type: 'VIDEO',\n };\n this.courseService.addLecture(section.id, lecture).subscribe({\n next: (res) => {\n this.lectureEditId = res.data.id;\n if (section.lectures) {\n section.lectures.push(res.data);\n }\n else {\n const lectures = [];\n lectures.push(res.data);\n section.lectures = lectures;\n }\n },\n });\n }\n onAddLecture(event) { }\n onLectureSave(lecture) {\n this.courseService.updateLecture(lecture.id, lecture).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n });\n }\n onLectureEdit(lecture) { }\n onMediaEdit(lecture, video) {\n const { id } = lecture;\n const options = {\n title: lecture.title,\n cancelText: 'Cancel',\n confirmText: 'Save',\n data: lecture,\n width: '80vw',\n height: '100%',\n component: CourseSectionLectureVideoDialogComponent,\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n // this.courseService.deleteLecture(id).subscribe({\n // next: (res) => {},\n // error: (error) => {\n // this.snackBarService.open(error.message);\n // },\n // });\n }\n },\n });\n }\n onLectureDelete(section, lecture) {\n const { id } = lecture;\n const options = {\n title: '确认删除吗',\n message: '删除这一小节吗?',\n cancelText: 'Cancel',\n confirmText: 'Save',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.courseService.deleteLecture(id).subscribe({\n next: (res) => {\n const index = section.lectures.findIndex((item) => item.id === id);\n section.lectures.splice(index, 1);\n this.hasUnsaved = false;\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n onMediaUploadInit(lecture, event) {\n const file = event.data.target.files[0];\n if (!file) {\n return;\n }\n const item = {\n url: URL.createObjectURL(file),\n };\n lecture.item = item;\n lecture.isUploading = true;\n lecture.item.progress = 0;\n const reader = new FileReader();\n if (reader.readyState === FileReader.EMPTY) {\n reader.onload = async (e) => {\n const fileBuffer = e.target.result;\n crypto.subtle.digest('SHA-256', fileBuffer).then((res) => {\n const hashArray = Array.from(new Uint8Array(res));\n const hashHex = hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('');\n const data = { hash: hashHex, filename: file.name, fileType: file.type };\n this.courseService.uploadVideoInit(lecture.id, data).subscribe({\n next: (res) => {\n this.uploadPart(lecture, res.data.uploadId, file);\n },\n error: (e) => { },\n });\n });\n };\n reader.onerror = (error) => { };\n reader.readAsArrayBuffer(file);\n }\n }\n uploadFile(lecture, file, index, uploadId) {\n const reader = new FileReader();\n return new Observable((observer) => {\n reader.readAsArrayBuffer(file);\n reader.onload = (e) => {\n const fileBuffer = e.target.result;\n crypto.subtle.digest('SHA-256', fileBuffer).then((res) => {\n const hashArray = Array.from(new Uint8Array(res));\n const hashHex = hashArray.map((byte) => byte.toString(16).padStart(2, '0')).join('');\n const formData = new FormData();\n formData.append('file', file);\n formData.append('uploadId', uploadId);\n formData.append('number', index + 1);\n formData.append('hash', hashHex);\n this.courseService.uploadVideoPartsToLecture(lecture.id, formData).subscribe({\n next: (res) => {\n observer.next(res);\n observer.complete();\n },\n error: (e) => {\n this.snackBarService.open('Upload failed: ' + e.message);\n },\n });\n });\n };\n reader.onerror = (error) => {\n this.snackBarService.open('Upload failed: ' + error);\n };\n });\n }\n uploadPart(lecture, uploadId, file) {\n let uploadedCount = 0;\n const fileChunkList = this.createFileChunk(file);\n const numberOfChunks = fileChunkList.length;\n from(fileChunkList)\n .pipe(concatMap((val, index) => this.uploadFile(lecture, val.file, index, uploadId)), take(numberOfChunks))\n .subscribe((res) => {\n uploadedCount++;\n const p = ((uploadedCount / numberOfChunks) * 100).toFixed(0);\n lecture.item.progress = parseFloat(p);\n if (uploadedCount === numberOfChunks) {\n this.completePartUpload(lecture, { uploadId });\n }\n });\n }\n completePartUpload(lecture, data) {\n data.duration = lecture.item.duration;\n this.courseService.completePartUpload(lecture.id, data).subscribe({\n next: (res) => {\n lecture.isUploading = false;\n lecture.item.id = res.data.id;\n },\n error: (e) => {\n this.snackBarService.open('Upload failed: ' + e.message);\n },\n });\n }\n onMediaUpload(lecture, event) {\n const lectureId = event.id;\n const file = event.data.target.files[0];\n if (!file) {\n return;\n }\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.uploadVideoToLecture(lectureId, formData).subscribe({\n next: (res) => {\n lecture.isUploading = false;\n lecture.item = res.data;\n },\n error: (e) => {\n lecture.isUploading = false;\n this.snackBarService.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => { };\n }\n onMediaDelete(lecture, event) {\n // lecture.item = null;\n const { id } = event;\n const options = {\n title: '确认删除吗',\n message: '删除这个视频吗?',\n cancelText: 'Cancel',\n confirmText: '确认',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (res) => {\n if (res) {\n this.courseService.deleteLectureVideo(id).subscribe({\n next: (res) => {\n lecture.item = null;\n this.snackBarService.open(res.data);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n createFileChunk(file, size = this.chunkSize) {\n const fileChunkList = [];\n let count = 0;\n while (count < file.size) {\n fileChunkList.push({\n file: file.slice(count, count + size),\n });\n count += size;\n }\n return fileChunkList;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageSectionComponent, isStandalone: true, selector: \"rolatech-course-manage-section\", usesInheritance: true, ngImport: i0, template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u7AE0\\u8282\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (section of sections; track $index) {\\n <div class=\\\"bg-[--rt-raised-background] p-2 mb-2 rounded-lg\\\">\\n <rolatech-course-section-item\\n [section]=\\\"section\\\"\\n (edit)=\\\"onSectionEdit($event)\\\"\\n (save)=\\\"onSectionSave($event)\\\"\\n (delete)=\\\"onSectionDelete($event)\\\"\\n [editId]=\\\"editId\\\"\\n >\\n <div\\n class=\\\"bg-[--rt-base-background] md:ml-8 mt-3 rounded-md divide-y divide-[--rt-10-percent-layer] divide-dashed\\\"\\n >\\n @if (section?.lectures) {\\n @for (lecture of section.lectures; track $index) {\\n <div>\\n <rolatech-course-section-lecture-item\\n [lecture]=\\\"lecture\\\"\\n (save)=\\\"onLectureSave($event)\\\"\\n (delete)=\\\"onLectureDelete(section, $event)\\\"\\n (edit)=\\\"onLectureEdit($event)\\\"\\n (upload)=\\\"onMediaUploadInit(lecture, $event)\\\"\\n (mediaEdit)=\\\"onMediaEdit(lecture, $event)\\\"\\n (deleteMedia)=\\\"onMediaDelete(lecture, $event)\\\"\\n [editId]=\\\"lectureEditId\\\"\\n ></rolatech-course-section-lecture-item>\\n </div>\\n }\\n }\\n <div class=\\\"p-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"addLecture(section)\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u5C0F\\u8282</span>\\n </button>\\n </div>\\n </div>\\n </rolatech-course-section-item>\\n </div>\\n }\\n </div>\\n @if (!hasUnsaved) {\\n <button mat-stroked-button (click)=\\\"addSection()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u7AE0\\u8282</span>\\n </button>\\n }\\n </div>\\n</rolatech-course-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: CourseSectionItemComponent, selector: \"rolatech-course-section-item\", inputs: [\"section\", \"actions\", \"hasUnsaved\", \"editId\"], outputs: [\"sectionChange\", \"actionsChange\", \"hasUnsavedChange\", \"editIdChange\", \"save\", \"cancel\", \"delete\", \"edit\", \"addLecture\"] }, { kind: \"component\", type: CourseSectionLectureItemComponent, selector: \"rolatech-course-section-lecture-item\", inputs: [\"progress\", \"lecture\", \"actions\", \"hasUnsaved\", \"editId\"], outputs: [\"editIdChange\", \"save\", \"cancel\", \"delete\", \"edit\", \"mediaEdit\", \"thumbnailUpload\", \"upload\", \"deleteMedia\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: CourseManageContentComponent, selector: \"rolatech-course-manage-content\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageSectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-section', imports: [\n CourseSectionItemComponent,\n CourseSectionLectureItemComponent,\n MatButtonModule,\n MatIconModule,\n MatProgressBarModule,\n ToolbarComponent,\n CourseManageContentComponent,\n ], template: \"<rolatech-course-manage-content>\\n <rolatech-toolbar title=\\\"\\u7AE0\\u8282\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (section of sections; track $index) {\\n <div class=\\\"bg-[--rt-raised-background] p-2 mb-2 rounded-lg\\\">\\n <rolatech-course-section-item\\n [section]=\\\"section\\\"\\n (edit)=\\\"onSectionEdit($event)\\\"\\n (save)=\\\"onSectionSave($event)\\\"\\n (delete)=\\\"onSectionDelete($event)\\\"\\n [editId]=\\\"editId\\\"\\n >\\n <div\\n class=\\\"bg-[--rt-base-background] md:ml-8 mt-3 rounded-md divide-y divide-[--rt-10-percent-layer] divide-dashed\\\"\\n >\\n @if (section?.lectures) {\\n @for (lecture of section.lectures; track $index) {\\n <div>\\n <rolatech-course-section-lecture-item\\n [lecture]=\\\"lecture\\\"\\n (save)=\\\"onLectureSave($event)\\\"\\n (delete)=\\\"onLectureDelete(section, $event)\\\"\\n (edit)=\\\"onLectureEdit($event)\\\"\\n (upload)=\\\"onMediaUploadInit(lecture, $event)\\\"\\n (mediaEdit)=\\\"onMediaEdit(lecture, $event)\\\"\\n (deleteMedia)=\\\"onMediaDelete(lecture, $event)\\\"\\n [editId]=\\\"lectureEditId\\\"\\n ></rolatech-course-section-lecture-item>\\n </div>\\n }\\n }\\n <div class=\\\"p-3\\\">\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"addLecture(section)\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u5C0F\\u8282</span>\\n </button>\\n </div>\\n </div>\\n </rolatech-course-section-item>\\n </div>\\n }\\n </div>\\n @if (!hasUnsaved) {\\n <button mat-stroked-button (click)=\\\"addSection()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span>\\u589E\\u52A0\\u7AE0\\u8282</span>\\n </button>\\n }\\n </div>\\n</rolatech-course-manage-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXNlY3Rpb24vY291cnNlLW1hbmFnZS1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXNlY3Rpb24vY291cnNlLW1hbmFnZS1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQVksU0FBUyxFQUFFLElBQUksRUFBTyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDeEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLHdDQUF3QyxHQUN6QyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBaUI3QixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsYUFBYTtJQWQvRDs7UUFlRSxrQkFB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Q0FBZ0MsV0FHakM7d0JBQ1AsMEJBQTBCO3dCQUMxQixpQ0FBaUM7d0JBQ2pDLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3FCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciwgY29uY2F0TWFwLCBmcm9tLCBtYXAsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvdXJzZU1hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9jb3Vyc2UtbWFuYWdlLWNvbnRlbnQvY291cnNlLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQ291cnNlU2VjdGlvbkl0ZW1Db21wb25lbnQsXG4gIENvdXJzZVNlY3Rpb25MZWN0dXJlSXRlbUNvbXBvbmVudCxcbiAgQ291cnNlU2VjdGlvbkxlY3R1cmVWaWRlb0RpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2VTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2Utc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtbWFuYWdlLXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIENvdXJzZVNlY3Rpb25JdGVtQ29tcG9uZW50LFxuICAgIENvdXJzZVNlY3Rpb25MZWN0dXJlSXRlbUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIENvdXJzZU1hbmFnZUNvbnRlbnRDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZU1hbmFnZVNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY291cnNlU2VydmljZSA9IGluamVjdChDb3Vyc2VTZXJ2aWNlKTtcbiAgc2VjdGlvbnM6IENvdXJzZVNlY3Rpb25bXSA9IFtdO1xuICBoYXNVbnNhdmVkID0gZmFsc2U7XG4gIGVkaXRJZCA9ICcnO1xuICBsZWN0dXJlRWRpdElkID0gJyc7XG4gIGNodW5rU2l6ZSA9IDUgKiAxMDI0ICogMTAyNDsgLy8g5YiH54mH5aSn5bCPXG4gIGZpbGVJbmRleCA9IDA7IC8vIOW9k+WJjeato+WcqOiiq+mBjeWOhueahOaWh+S7tuS4i+agh1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5maW5kKCk7XG4gIH1cbiAgZmluZCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZ2V0Q291cnNlU2VjdGlvbih0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLmRhdGEpIHtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25zID0gcmVzLmRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgYWRkU2VjdGlvbigpIHtcbiAgICBjb25zdCBzZWN0aW9uID0ge1xuICAgICAgdGl0bGU6ICcnLFxuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgIH07XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmFkZENvdXJzZVNlY3Rpb24odGhpcy5pZCwgc2VjdGlvbikuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNlY3Rpb25zLnB1c2gocmVzLmRhdGEpO1xuICAgICAgICB0aGlzLmVkaXRJZCA9IHJlcy5kYXRhLmlkO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmhhc1Vuc2F2ZWQgPSBmYWxzZTtcbiAgfVxuICBvbkNhbmNlbChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWN0aW9ucy5wb3AoKTtcbiAgICB0aGlzLmhhc1Vuc2F2ZWQgPSBmYWxzZTtcbiAgfVxuICBvblNlY3Rpb25TYXZlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB7IGlkIH0gPSBldmVudDtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UudXBkYXRlQ291cnNlU2VjdGlvbihpZCwgZXZlbnQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzVW5zYXZlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdTdWNjZXNzJyk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuaGFzVW5zYXZlZCA9IGZhbHNlO1xuICB9XG4gIG9uU2VjdGlvbkVkaXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZWRpdElkID0gZXZlbnQuaWQ7XG4gICAgLy8gdGhpcy5lZGl0SW5kZXggPSB0aGlzLnNlY3Rpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gZXZlbnQuaWQpO1xuICB9XG4gIG9uU2VjdGlvbkRlbGV0ZShldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBpZCB9ID0gZXZlbnQ7XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgdGl0bGU6ICfnoa7orqTliKDpmaTlkJcnLFxuICAgICAgbWVzc2FnZTogJ+WIoOmZpOi/meS4queroOiKguWQlz8nLFxuICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICBjb25maXJtVGV4dDogJ+ehruiupCcsXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBuYW1lOiByZXMsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZGVsZXRlQ291cnNlU2VjdGlvbihpZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZWN0aW9ucy5wb3AoKTtcblxuICAgICAgICAgICAgICB0aGlzLmhhc1Vuc2F2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihyZXMuZGF0YSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBhZGRMZWN0dXJlKHNlY3Rpb246IGFueSkge1xuICAgIGNvbnN0IGxlY3R1cmUgPSB7XG4gICAgICB0aXRsZTogJycsXG4gICAgICB0eXBlOiAnVklERU8nLFxuICAgIH07XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmFkZExlY3R1cmUoc2VjdGlvbi5pZCwgbGVjdHVyZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxlY3R1cmVFZGl0SWQgPSByZXMuZGF0YS5pZDtcbiAgICAgICAgaWYgKHNlY3Rpb24ubGVjdHVyZXMpIHtcbiAgICAgICAgICBzZWN0aW9uLmxlY3R1cmVzLnB1c2gocmVzLmRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxlY3R1cmVzOiBhbnkgPSBbXTtcbiAgICAgICAgICBsZWN0dXJlcy5wdXNoKHJlcy5kYXRhKTtcbiAgICAgICAgICBzZWN0aW9uLmxlY3R1cmVzID0gbGVjdHVyZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25BZGRMZWN0dXJlKGV2ZW50OiBhbnkpIHt9XG4gIG9uTGVjdHVyZVNhdmUobGVjdHVyZTogYW55KSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLnVwZGF0ZUxlY3R1cmUobGVjdHVyZS5pZCwgbGVjdHVyZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdTdWNjZXNzJyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uTGVjdHVyZUVkaXQobGVjdHVyZTogYW55KSB7fVxuICBvbk1lZGlhRWRpdChsZWN0dXJlOiBhbnksIHZpZGVvOiBhbnkpIHtcbiAgICBjb25zdCB7IGlkIH0gPSBsZWN0dXJlO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogbGVjdHVyZS50aXRsZSxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxuICAgICAgY29uZmlybVRleHQ6ICdTYXZlJyxcbiAgICAgIGRhdGE6IGxlY3R1cmUsXG4gICAgICB3aWR0aDogJzgwdncnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBjb21wb25lbnQ6IENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9EaWFsb2dDb21wb25lbnQsXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIC8vIHRoaXMuY291cnNlU2VydmljZS5kZWxldGVMZWN0dXJlKGlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIC8vICAgbmV4dDogKHJlcykgPT4ge30sXG4gICAgICAgICAgLy8gICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgLy8gICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgLy8gICB9LFxuICAgICAgICAgIC8vIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uTGVjdHVyZURlbGV0ZShzZWN0aW9uOiBhbnksIGxlY3R1cmU6IGFueSkge1xuICAgIGNvbnN0IHsgaWQgfSA9IGxlY3R1cmU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiAn56Gu6K6k5Yig6Zmk5ZCXJyxcbiAgICAgIG1lc3NhZ2U6ICfliKDpmaTov5nkuIDlsI/oioLlkJc/JyxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxuICAgICAgY29uZmlybVRleHQ6ICdTYXZlJyxcbiAgICB9O1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtZWQoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmRlbGV0ZUxlY3R1cmUoaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gc2VjdGlvbi5sZWN0dXJlcy5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCA9PT0gaWQpO1xuICAgICAgICAgICAgICBzZWN0aW9uLmxlY3R1cmVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgIHRoaXMuaGFzVW5zYXZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKHJlcy5kYXRhKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uTWVkaWFVcGxvYWRJbml0KGxlY3R1cmU6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhLnRhcmdldC5maWxlc1swXTtcblxuICAgIGlmICghZmlsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0ge1xuICAgICAgdXJsOiBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpLFxuICAgIH07XG4gICAgbGVjdHVyZS5pdGVtID0gaXRlbTtcbiAgICBsZWN0dXJlLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICBsZWN0dXJlLml0ZW0ucHJvZ3Jlc3MgPSAwO1xuXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBpZiAocmVhZGVyLnJlYWR5U3RhdGUgPT09IEZpbGVSZWFkZXIuRU1QVFkpIHtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSBhc3luYyAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVCdWZmZXIgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgZmlsZUJ1ZmZlcikudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShyZXMpKTtcbiAgICAgICAgICBjb25zdCBoYXNoSGV4ID0gaGFzaEFycmF5Lm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gICAgICAgICAgY29uc3QgZGF0YTogYW55ID0geyBoYXNoOiBoYXNoSGV4LCBmaWxlbmFtZTogZmlsZS5uYW1lLCBmaWxlVHlwZTogZmlsZS50eXBlIH07XG4gICAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLnVwbG9hZFZpZGVvSW5pdChsZWN0dXJlLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkUGFydChsZWN0dXJlLCByZXMuZGF0YS51cGxvYWRJZCwgZmlsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7fSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHt9O1xuICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgIH1cbiAgfVxuICB1cGxvYWRGaWxlKGxlY3R1cmU6IGFueSwgZmlsZTogYW55LCBpbmRleDogbnVtYmVyLCB1cGxvYWRJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxGb3JtRGF0YT4pID0+IHtcbiAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVCdWZmZXIgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgZmlsZUJ1ZmZlcikudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShyZXMpKTtcbiAgICAgICAgICBjb25zdCBoYXNoSGV4ID0gaGFzaEFycmF5Lm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gICAgICAgICAgY29uc3QgZm9ybURhdGE6IGFueSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgndXBsb2FkSWQnLCB1cGxvYWRJZCk7XG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdudW1iZXInLCBpbmRleCArIDEpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaGFzaCcsIGhhc2hIZXgpO1xuXG4gICAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLnVwbG9hZFZpZGVvUGFydHNUb0xlY3R1cmUobGVjdHVyZS5pZCwgZm9ybURhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXMpO1xuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1VwbG9hZCBmYWlsZWQ6ICcgKyBlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIHVwbG9hZFBhcnQobGVjdHVyZTogYW55LCB1cGxvYWRJZDogc3RyaW5nLCBmaWxlOiBhbnkpIHtcbiAgICBsZXQgdXBsb2FkZWRDb3VudCA9IDA7XG4gICAgY29uc3QgZmlsZUNodW5rTGlzdCA9IHRoaXMuY3JlYXRlRmlsZUNodW5rKGZpbGUpO1xuICAgIGNvbnN0IG51bWJlck9mQ2h1bmtzID0gZmlsZUNodW5rTGlzdC5sZW5ndGg7XG4gICAgZnJvbShmaWxlQ2h1bmtMaXN0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNvbmNhdE1hcCgodmFsOiBhbnksIGluZGV4KSA9PiB0aGlzLnVwbG9hZEZpbGUobGVjdHVyZSwgdmFsLmZpbGUsIGluZGV4LCB1cGxvYWRJZCkpLFxuICAgICAgICB0YWtlKG51bWJlck9mQ2h1bmtzKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB1cGxvYWRlZENvdW50Kys7XG4gICAgICAgIGNvbnN0IHAgPSAoKHVwbG9hZGVkQ291bnQgLyBudW1iZXJPZkNodW5rcykgKiAxMDApLnRvRml4ZWQoMCk7XG4gICAgICAgIGxlY3R1cmUuaXRlbS5wcm9ncmVzcyA9IHBhcnNlRmxvYXQocCk7XG4gICAgICAgIGlmICh1cGxvYWRlZENvdW50ID09PSBudW1iZXJPZkNodW5rcykge1xuICAgICAgICAgIHRoaXMuY29tcGxldGVQYXJ0VXBsb2FkKGxlY3R1cmUsIHsgdXBsb2FkSWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG4gIGNvbXBsZXRlUGFydFVwbG9hZChsZWN0dXJlOiBhbnksIGRhdGE6IGFueSkge1xuICAgIGRhdGEuZHVyYXRpb24gPSBsZWN0dXJlLml0ZW0uZHVyYXRpb247XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmNvbXBsZXRlUGFydFVwbG9hZChsZWN0dXJlLmlkLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGxlY3R1cmUuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgbGVjdHVyZS5pdGVtLmlkID0gcmVzLmRhdGEuaWQ7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1VwbG9hZCBmYWlsZWQ6ICcgKyBlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uTWVkaWFVcGxvYWQobGVjdHVyZTogYW55LCBldmVudDogYW55KSB7XG4gICAgY29uc3QgbGVjdHVyZUlkID0gZXZlbnQuaWQ7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LmRhdGEudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmICghZmlsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgICB0aGlzLmNvdXJzZVNlcnZpY2UudXBsb2FkVmlkZW9Ub0xlY3R1cmUobGVjdHVyZUlkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgbGVjdHVyZS5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGxlY3R1cmUuaXRlbSA9IHJlcy5kYXRhO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICBsZWN0dXJlLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBsb2FkIGZhaWxlZDogJyArIGUubWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7fTtcbiAgfVxuICBvbk1lZGlhRGVsZXRlKGxlY3R1cmU6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIC8vIGxlY3R1cmUuaXRlbSA9IG51bGw7XG4gICAgY29uc3QgeyBpZCB9ID0gZXZlbnQ7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiAn56Gu6K6k5Yig6Zmk5ZCXJyxcbiAgICAgIG1lc3NhZ2U6ICfliKDpmaTov5nkuKrop4bpopHlkJc/JyxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxuICAgICAgY29uZmlybVRleHQ6ICfnoa7orqQnLFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZGVsZXRlTGVjdHVyZVZpZGVvKGlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICBsZWN0dXJlLml0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKHJlcy5kYXRhKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZpbGVDaHVuayhmaWxlOiBhbnksIHNpemUgPSB0aGlzLmNodW5rU2l6ZSkge1xuICAgIGNvbnN0IGZpbGVDaHVua0xpc3Q6IGFueSA9IFtdO1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgd2hpbGUgKGNvdW50IDwgZmlsZS5zaXplKSB7XG4gICAgICBmaWxlQ2h1bmtMaXN0LnB1c2goe1xuICAgICAgICBmaWxlOiBmaWxlLnNsaWNlKGNvdW50LCBjb3VudCArIHNpemUpLFxuICAgICAgfSk7XG4gICAgICBjb3VudCArPSBzaXplO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZUNodW5rTGlzdDtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLnq6DoioJcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gcC0yIG1iLTIgcm91bmRlZC1sZ1wiPlxuICAgICAgICAgIDxyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1pdGVtXG4gICAgICAgICAgICBbc2VjdGlvbl09XCJzZWN0aW9uXCJcbiAgICAgICAgICAgIChlZGl0KT1cIm9uU2VjdGlvbkVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2F2ZSk9XCJvblNlY3Rpb25TYXZlKCRldmVudClcIlxuICAgICAgICAgICAgKGRlbGV0ZSk9XCJvblNlY3Rpb25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZWRpdElkXT1cImVkaXRJZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gbWQ6bWwtOCBtdC0zIHJvdW5kZWQtbWQgZGl2aWRlLXkgZGl2aWRlLVstLXJ0LTEwLXBlcmNlbnQtbGF5ZXJdIGRpdmlkZS1kYXNoZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24/LmxlY3R1cmVzKSB7XG4gICAgICAgICAgICAgICAgQGZvciAobGVjdHVyZSBvZiBzZWN0aW9uLmxlY3R1cmVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxyb2xhdGVjaC1jb3Vyc2Utc2VjdGlvbi1sZWN0dXJlLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICBbbGVjdHVyZV09XCJsZWN0dXJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAoc2F2ZSk9XCJvbkxlY3R1cmVTYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIChkZWxldGUpPVwib25MZWN0dXJlRGVsZXRlKHNlY3Rpb24sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIChlZGl0KT1cIm9uTGVjdHVyZUVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHVwbG9hZCk9XCJvbk1lZGlhVXBsb2FkSW5pdChsZWN0dXJlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAobWVkaWFFZGl0KT1cIm9uTWVkaWFFZGl0KGxlY3R1cmUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVNZWRpYSk9XCJvbk1lZGlhRGVsZXRlKGxlY3R1cmUsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtlZGl0SWRdPVwibGVjdHVyZUVkaXRJZFwiXG4gICAgICAgICAgICAgICAgICAgID48L3JvbGF0ZWNoLWNvdXJzZS1zZWN0aW9uLWxlY3R1cmUtaXRlbT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cImFkZExlY3R1cmUoc2VjdGlvbilcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+5aKe5Yqg5bCP6IqCPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcm9sYXRlY2gtY291cnNlLXNlY3Rpb24taXRlbT5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmICghaGFzVW5zYXZlZCkge1xuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImFkZFNlY3Rpb24oKVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+5aKe5Yqg56ug6IqCPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtY291cnNlLW1hbmFnZS1jb250ZW50PlxuIl19","import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\nimport { CourseService } from '../../../services';\nimport { CourseStatus } from '../../../interfaces';\nimport { BaseComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class CourseManageLayoutComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.submitted = false;\n this.accepted = false;\n this.isDraft = false;\n this.courseService = inject(CourseService);\n }\n ngOnInit() {\n this.get();\n }\n get() {\n this.courseService.get(this.id).subscribe({\n next: (res) => {\n this.course = res.data;\n this.updateStatus();\n },\n });\n }\n updateStatus() {\n this.isDraft = this.course.status.toString() === 'DRAFT' || this.course.status.toString() === 'PENDING';\n this.accepted = this.course.status.toString() === 'ACCEPTED';\n }\n submitForReview() {\n this.courseService.review(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('提交成功, 等待审核');\n this.course.status = CourseStatus['审核中'];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n publish() {\n this.courseService.publish(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('发布成功');\n this.course.status = CourseStatus['已发布'];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageLayoutComponent, isStandalone: true, selector: \"rolatech-course-manage-layout\", usesInheritance: true, ngImport: i0, template: \"<div class=\\\"flex flex-col md:flex-row m-auto\\\">\\n <div\\n class=\\\"min-w-[256px] px-3 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\">\\u8BFE\\u7A0B\\u4FE1\\u606F</div>\\n <a routerLink=\\\"./info\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u57FA\\u672C\\u4FE1\\u606F</a>\\n <a routerLink=\\\"./media\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u56FE\\u7247</a>\\n <a routerLink=\\\"./details\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u8BE6\\u60C5</a>\\n </div>\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\">\\u8BFE\\u7A0B\\u5185\\u5BB9</div>\\n <a routerLink=\\\"./section\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u7AE0\\u8282</a>\\n <a routerLink=\\\"./schedule\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u8BFE\\u8868</a>\\n </div>\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\">\\u5176\\u4ED6\\u4FE1\\u606F</div>\\n <a routerLink=\\\"./pricing\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u4EF7\\u683C</a>\\n </div>\\n\\n @if (isDraft) {\\n <div class=\\\"md:mt-6 ml-3 md:ml-2\\\">\\n <!-- <button mat-stroked-button (click)=\\\"publish()\\\">\\u9884\\u89C8</button> -->\\n <button mat-flat-button (click)=\\\"submitForReview()\\\">\\u63D0\\u4EA4\\u5BA1\\u6838</button>\\n </div>\\n }\\n\\n @if (accepted) {\\n <div class=\\\"md:mt-6 md:ml-2\\\">\\n <button mat-flat-button (click)=\\\"publish()\\\">\\u53D1\\u5E03\\u8BFE\\u7A0B</button>\\n </div>\\n }\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n</div>\\n\", styles: [\".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}\\n\"], dependencies: [{ kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-layout', imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet], template: \"<div class=\\\"flex flex-col md:flex-row m-auto\\\">\\n <div\\n class=\\\"min-w-[256px] px-3 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\">\\u8BFE\\u7A0B\\u4FE1\\u606F</div>\\n <a routerLink=\\\"./info\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u57FA\\u672C\\u4FE1\\u606F</a>\\n <a routerLink=\\\"./media\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u56FE\\u7247</a>\\n <a routerLink=\\\"./details\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u8BE6\\u60C5</a>\\n </div>\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\">\\u8BFE\\u7A0B\\u5185\\u5BB9</div>\\n <a routerLink=\\\"./section\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u7AE0\\u8282</a>\\n <a routerLink=\\\"./schedule\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u8BFE\\u8868</a>\\n </div>\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-2\\\">\\u5176\\u4ED6\\u4FE1\\u606F</div>\\n <a routerLink=\\\"./pricing\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\">\\u4EF7\\u683C</a>\\n </div>\\n\\n @if (isDraft) {\\n <div class=\\\"md:mt-6 ml-3 md:ml-2\\\">\\n <!-- <button mat-stroked-button (click)=\\\"publish()\\\">\\u9884\\u89C8</button> -->\\n <button mat-flat-button (click)=\\\"submitForReview()\\\">\\u63D0\\u4EA4\\u5BA1\\u6838</button>\\n </div>\\n }\\n\\n @if (accepted) {\\n <div class=\\\"md:mt-6 md:ml-2\\\">\\n <button mat-flat-button (click)=\\\"publish()\\\">\\u53D1\\u5E03\\u8BFE\\u7A0B</button>\\n </div>\\n }\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n</div>\\n\", styles: [\".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UtbWFuYWdlL2NvdXJzZS1tYW5hZ2UtbGF5b3V0L2NvdXJzZS1tYW5hZ2UtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWxheW91dC9jb3Vyc2UtbWFuYWdlLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVE3RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQU45RDs7UUFRRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQTBDdkM7SUF4Q0MsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFDRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN4QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQy9ELENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQWtDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQWtDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBOUNVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdIQ2R4QyxnNERBcUNBLHdVRHpCWSxVQUFVLG9PQUFFLGdCQUFnQiw2TUFBRSxlQUFlLG9YQUFFLFlBQVk7OzJGQUUxRCwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsK0JBQStCLFdBR2hDLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSwgUm91dGVyT3V0bGV0LCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ291cnNlLCBDb3Vyc2VTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLW1hbmFnZS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLW1hbmFnZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291cnNlLW1hbmFnZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnLFxuICBpbXBvcnRzOiBbUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSwgTWF0QnV0dG9uTW9kdWxlLCBSb3V0ZXJPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VNYW5hZ2VMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY291cnNlITogQ291cnNlO1xuICBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgYWNjZXB0ZWQgPSBmYWxzZTtcbiAgaXNEcmFmdCA9IGZhbHNlO1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cbiAgZ2V0KCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvdXJzZSA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVTdGF0dXMoKSB7XG4gICAgdGhpcy5pc0RyYWZ0ID0gdGhpcy5jb3Vyc2Uuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdEUkFGVCcgfHwgdGhpcy5jb3Vyc2Uuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdQRU5ESU5HJztcbiAgICB0aGlzLmFjY2VwdGVkID0gdGhpcy5jb3Vyc2Uuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdBQ0NFUFRFRCc7XG4gIH1cbiAgc3VibWl0Rm9yUmV2aWV3KCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5yZXZpZXcodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3Blbign5o+Q5Lqk5oiQ5YqfLCDnrYnlvoXlrqHmoLgnKTtcblxuICAgICAgICB0aGlzLmNvdXJzZS5zdGF0dXMgPSBDb3Vyc2VTdGF0dXNbJ+WuoeaguOS4rScgYXMga2V5b2YgdHlwZW9mIENvdXJzZVN0YXR1c107XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaXNoKCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5wdWJsaXNoKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ+WPkeW4g+aIkOWKnycpO1xuICAgICAgICB0aGlzLmNvdXJzZS5zdGF0dXMgPSBDb3Vyc2VTdGF0dXNbJ+W3suWPkeW4gycgYXMga2V5b2YgdHlwZW9mIENvdXJzZVN0YXR1c107XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbS1hdXRvXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1pbi13LVsyNTZweF0gcHgtMyBmbGV4IGZsZXgtcm93IG1kOmZsZXgtY29sIG1kOmgtZnVsbCBpdGVtcy1jZW50ZXIgbWQ6aXRlbXMtc3RhcnQgaC0xNiBvdmVyZmxvdy14LXNjcm9sbCBvdmVyZmxvdy15LWhpZGRlbiBzY3JvbGxiYXItaGlkZSB3aGl0ZXNwYWNlLXByZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbCBtZDp3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6ZmxleCB0ZXh0LXhsIGZvbnQtYm9sZCBoLTE0IGl0ZW1zLWNlbnRlciBweC0yXCI+6K++56iL5L+h5oGvPC9kaXY+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9pbmZvXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiPuWfuuacrOS/oeaBrzwvYT5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL21lZGlhXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiPuWbvueJhzwvYT5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL2RldGFpbHNcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCI+6K+m5oOFPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG1kOmZsZXgtY29sIG1kOnctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IHRleHQteGwgZm9udC1ib2xkIGgtMTQgaXRlbXMtY2VudGVyIHB4LTJcIj7or77nqIvlhoXlrrk8L2Rpdj5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL3NlY3Rpb25cIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCI+56ug6IqCPC9hPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi4vc2NoZWR1bGVcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCI+6K++6KGoPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG1kOmZsZXgtY29sIG1kOnctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IHRleHQteGwgZm9udC1ib2xkIGgtMTQgaXRlbXMtY2VudGVyIHB4LTJcIj7lhbbku5bkv6Hmga88L2Rpdj5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL3ByaWNpbmdcIiByb3V0ZXJMaW5rQWN0aXZlPVwibWFuYWdlLWFjdGl2ZVwiIGNsYXNzPVwicC0yXCI+5Lu35qC8PC9hPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpc0RyYWZ0KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibWQ6bXQtNiBtbC0zIG1kOm1sLTJcIj5cbiAgICAgICAgPCEtLSA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwicHVibGlzaCgpXCI+6aKE6KeIPC9idXR0b24+IC0tPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwic3VibWl0Rm9yUmV2aWV3KClcIj7mj5DkuqTlrqHmoLg8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoYWNjZXB0ZWQpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJtZDptdC02IG1kOm1sLTJcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInB1Ymxpc2goKVwiPuWPkeW4g+ivvueoizwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbFwiPlxuICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { ConfirmationDialogComponent, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseEditDialogComponent } from '../../../components';\nimport { CourseStatus } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport { InstructorService } from '../../../services/instructor.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { RouterLink } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nimport * as i3 from \"@angular/material/table\";\nimport * as i4 from \"@angular/material/menu\";\nimport * as i5 from \"@angular/material/paginator\";\nexport class CourseManageIndexComponent {\n constructor() {\n this.paginator = viewChild(MatPaginator);\n this.instructorService = inject(InstructorService);\n this.dialog = inject(MatDialog);\n this.snackBar = inject(MatSnackBar);\n this.courseService = inject(CourseService);\n this.isLoading = false;\n this.isSearch = false;\n this.length = 100;\n this.pageSize = 15;\n this.pageSizeOptions = [5, 10, 25, 100];\n this.dataSource = new MatTableDataSource();\n this.courses = [];\n this.displayedColumns = ['name', 'status', 'createdAt', 'actions'];\n this.orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n this.status = CourseStatus;\n this.orderString = 'createdAt desc';\n }\n ngOnInit() {\n this.find(null);\n }\n find(event) {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const options = {\n page,\n limit,\n sort,\n };\n this.courseService.me(options).subscribe({\n next: (res) => {\n this.courses = res.data;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBar.open(e.message);\n },\n });\n }\n findClassrooms() {\n this.instructorService.findClassrooms({}).subscribe({\n next: (res) => {\n this.classrooms = res.data;\n },\n });\n }\n start(course) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '开始课程',\n message: `确定开始 ${course.name} 吗?`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.start(course.id).subscribe({\n next: (res) => {\n const index = this.courses.findIndex((item) => item.id === course.id);\n const status = CourseStatus[CourseStatus.STARTED];\n this.courses[index].status = status;\n this.snackBar.open('开始成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n stop(course) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '结束课程',\n message: `确定结束 ${course.name} 吗?`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.finish(course.id).subscribe({\n next: (res) => {\n const index = this.courses.findIndex((item) => item.id === course.id);\n const status = CourseStatus[CourseStatus.ENDED];\n this.courses[index].status = status;\n this.snackBar.open('结束成功');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n edit(item) {\n this.courseService.get(item.id).subscribe({\n next: (res) => {\n const dialogRef = this.dialog.open(CourseEditDialogComponent, {\n width: '90%',\n height: '90%',\n data: {\n title: '编辑课程',\n course: res.data,\n classrooms: this.classrooms,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n // this.courseService.update(this.id).subscribe({\n // next: (res) => {\n // this.snackBar.open('Delete successfully');\n // this.router.navigateByUrl('/categories');\n // },\n // error: (e) => {\n // this.snackBar.open(e.message);\n // },\n // });\n }\n });\n },\n });\n }\n delete(course) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除课程',\n message: `确定删除 ${course.name} 吗?`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.courseService.delete(course.id).subscribe({\n next: (res) => {\n const index = this.courses.findIndex((item) => item.id === course.id);\n this.courses.splice(index, 1);\n this.dataSource.data = this.courses;\n this.length--;\n this.snackBar.open('Delete successfully');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageIndexComponent, isStandalone: true, selector: \"rolatech-course-manage-index\", viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-toolbar title=\\\"Course\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Create</span>\\n </button>\\n <a routerLink=\\\"./reviews\\\" class=\\\"hover:underline hover:text-orange-600 text-sm font-medium\\\" i18n>Reviews</a>\\n </div>\\n</rolatech-toolbar>\\n@if (isLoading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <table mat-table [dataSource]=\\\"courses\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\" sticky>\\n <th mat-header-cell *matHeaderCellDef i18n>Title</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.name }}</td>\\n </ng-container>\\n <!-- status Column -->\\n <ng-container matColumnDef=\\\"status\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Status</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ status[item.status] }}</td>\\n </ng-container>\\n <!-- createdAt Column -->\\n <ng-container matColumnDef=\\\"createdAt\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Created At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.createdAt }}</td>\\n </ng-container>\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\" i18n>Actions</th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <button\\n mat-icon-button\\n [matMenuTriggerFor]=\\\"menu\\\"\\n aria-label=\\\"Example icon-button with a menu\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n >\\n <mat-icon>more_vert</mat-icon>\\n </button>\\n <mat-menu #menu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n @if (item.status === 'ACTIVE') {\\n <button mat-menu-item (click)=\\\"start(item)\\\">\\n <span i18n> Start </span>\\n </button>\\n }\\n @if (item.status === 'STARTED') {\\n <button mat-menu-item (click)=\\\"stop(item)\\\">\\n <span i18n> Stop </span>\\n </button>\\n }\\n @if (item.status !== 'ACTIVE') {\\n <button mat-menu-item (click)=\\\"delete(item)\\\">\\n <span i18n> Delete </span>\\n </button>\\n }\\n <button mat-menu-item routerLink=\\\"./{{ item.id }}/manage/info\\\">\\n <span i18n> More... </span>\\n </button>\\n </mat-menu>\\n </td>\\n </ng-container>\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n routerLink=\\\"./{{ row.id }}/manage/info\\\"\\n class=\\\"hover:bg-[--rt-raised-background] cursor-pointer\\\"\\n ></tr>\\n </table>\\n <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator>\\n}\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i3.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i3.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i3.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i3.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i3.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i3.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i3.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i3.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"component\", type: i3.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i3.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i4.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i4.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i4.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: i5.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-index', imports: [\n MatButtonModule,\n RouterLink,\n MatIconModule,\n MatTableModule,\n MatMenuModule,\n MatPaginatorModule,\n ToolbarComponent,\n SpinnerComponent,\n ], template: \"<rolatech-toolbar title=\\\"Course\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Create</span>\\n </button>\\n <a routerLink=\\\"./reviews\\\" class=\\\"hover:underline hover:text-orange-600 text-sm font-medium\\\" i18n>Reviews</a>\\n </div>\\n</rolatech-toolbar>\\n@if (isLoading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <table mat-table [dataSource]=\\\"courses\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\" sticky>\\n <th mat-header-cell *matHeaderCellDef i18n>Title</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.name }}</td>\\n </ng-container>\\n <!-- status Column -->\\n <ng-container matColumnDef=\\\"status\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Status</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ status[item.status] }}</td>\\n </ng-container>\\n <!-- createdAt Column -->\\n <ng-container matColumnDef=\\\"createdAt\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Created At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.createdAt }}</td>\\n </ng-container>\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\" i18n>Actions</th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <button\\n mat-icon-button\\n [matMenuTriggerFor]=\\\"menu\\\"\\n aria-label=\\\"Example icon-button with a menu\\\"\\n (click)=\\\"$event.stopPropagation()\\\"\\n >\\n <mat-icon>more_vert</mat-icon>\\n </button>\\n <mat-menu #menu=\\\"matMenu\\\" xPosition=\\\"before\\\">\\n @if (item.status === 'ACTIVE') {\\n <button mat-menu-item (click)=\\\"start(item)\\\">\\n <span i18n> Start </span>\\n </button>\\n }\\n @if (item.status === 'STARTED') {\\n <button mat-menu-item (click)=\\\"stop(item)\\\">\\n <span i18n> Stop </span>\\n </button>\\n }\\n @if (item.status !== 'ACTIVE') {\\n <button mat-menu-item (click)=\\\"delete(item)\\\">\\n <span i18n> Delete </span>\\n </button>\\n }\\n <button mat-menu-item routerLink=\\\"./{{ item.id }}/manage/info\\\">\\n <span i18n> More... </span>\\n </button>\\n </mat-menu>\\n </td>\\n </ng-container>\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n routerLink=\\\"./{{ row.id }}/manage/info\\\"\\n class=\\\"hover:bg-[--rt-raised-background] cursor-pointer\\\"\\n ></tr>\\n </table>\\n <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator>\\n}\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS1tYW5hZ2UvY291cnNlLW1hbmFnZS1pbmRleC9jb3Vyc2UtbWFuYWdlLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWluZGV4L2NvdXJzZS1tYW5hZ2UtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFB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Q0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBMVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixtSUFDZixZQUFZLGdFQy9CcEMsMCtGQW1GQSwwaEJEakVJLGVBQWUsMmlCQUNmLFVBQVUsbU9BQ1YsYUFBYSxtTEFDYixjQUFjLHNnQ0FDZCxhQUFhLDZ2QkFDYixrQkFBa0Isb1NBQ2xCLGdCQUFnQixnSUFDaEIsZ0JBQWdCOzsyRkFLUCwwQkFBMEI7a0JBZnRDLFNBQVM7K0JBQ0UsOEJBQThCLFdBQy9CO3dCQUNQLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwgU3Bpbm5lckNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ291cnNlRWRpdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ291cnNlLCBDb3Vyc2VTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJbnN0cnVjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2luc3RydWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1tYW5hZ2UtaW5kZXgnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFJvdXRlckxpbmssXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdXJzZS1tYW5hZ2UtaW5kZXguY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3Vyc2VNYW5hZ2VJbmRleENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBhZ2luYXRvciA9IHZpZXdDaGlsZChNYXRQYWdpbmF0b3IpO1xuICBpbnN0cnVjdG9yU2VydmljZSA9IGluamVjdChJbnN0cnVjdG9yU2VydmljZSk7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBwYWdlRXZlbnQhOiBQYWdlRXZlbnQ7XG4gIGxlbmd0aCA9IDEwMDtcbiAgcGFnZVNpemUgPSAxNTtcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDEwMF07XG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4oKTtcbiAgY291cnNlczogQ291cnNlW10gPSBbXTtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ25hbWUnLCAnc3RhdHVzJywgJ2NyZWF0ZWRBdCcsICdhY3Rpb25zJ107XG4gIG9yZGVyT3B0aW9ucyA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdjcmVhdGVkQXQnLFxuICAgICAgdmFsdWU6ICfliJvlu7rml7bpl7QnLFxuICAgICAgaWNvbjogJ2Fycm93X3Vwd2FyZCcsXG4gICAgICBzb3J0OiAnYXNjJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2NyZWF0ZWRBdCcsXG4gICAgICB2YWx1ZTogJ+WIm+W7uuaXtumXtCcsXG4gICAgICBpY29uOiAnYXJyb3dfZG93bndhcmQnLFxuICAgICAgc29ydDogJ2Rlc2MnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnc3RhdHVzJyxcbiAgICAgIHZhbHVlOiAn54q25oCBJyxcbiAgICAgIGljb246ICdhcnJvd191cHdhcmQnLFxuICAgICAgc29ydDogJ2FzYycsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdzdGF0dXMnLFxuICAgICAgdmFsdWU6ICfnirbmgIEnLFxuICAgICAgaWNvbjogJ2Fycm93X2Rvd253YXJkJyxcbiAgICAgIHNvcnQ6ICdkZXNjJyxcbiAgICB9LFxuICBdO1xuICBzdGF0dXM6IGFueSA9IENvdXJzZVN0YXR1cztcbiAgb3JkZXJTdHJpbmcgPSAnY3JlYXRlZEF0IGRlc2MnO1xuICBjbGFzc3Jvb21zOiBhbnk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kKG51bGwpO1xuICB9XG4gIGZpbmQoZXZlbnQ/OiBQYWdlRXZlbnQgfCBudWxsKTogYW55IHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgcGFnZSA9IGV2ZW50ID8gZXZlbnQucGFnZUluZGV4ICsgMSA6IDE7XG4gICAgY29uc3QgbGltaXQgPSBldmVudCA/IGV2ZW50LnBhZ2VTaXplIDogMTU7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMub3JkZXJTdHJpbmc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHBhZ2UsXG4gICAgICBsaW1pdCxcbiAgICAgIHNvcnQsXG4gICAgfTtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UubWUob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvdXJzZXMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSByZXMubWV0YS5wYWdpbmF0aW9uLmNvdW50O1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZENsYXNzcm9vbXMoKSB7XG4gICAgdGhpcy5pbnN0cnVjdG9yU2VydmljZS5maW5kQ2xhc3Nyb29tcyh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5jbGFzc3Jvb21zID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHN0YXJ0KGNvdXJzZTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+W8gOWni+ivvueoiycsXG4gICAgICAgIG1lc3NhZ2U6IGDnoa7lrprlvIDlp4sgJHtjb3Vyc2UubmFtZX0g5ZCXP2AsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLnN0YXJ0KGNvdXJzZS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY291cnNlcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGNvdXJzZS5pZCk7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBDb3Vyc2VTdGF0dXNbQ291cnNlU3RhdHVzLlNUQVJURURdO1xuICAgICAgICAgICAgdGhpcy5jb3Vyc2VzW2luZGV4XS5zdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ+W8gOWni+aIkOWKnycpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBzdG9wKGNvdXJzZTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+e7k+adn+ivvueoiycsXG4gICAgICAgIG1lc3NhZ2U6IGDnoa7lrprnu5PmnZ8gJHtjb3Vyc2UubmFtZX0g5ZCXP2AsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmlzaChjb3Vyc2UuaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvdXJzZXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmlkID09PSBjb3Vyc2UuaWQpO1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gQ291cnNlU3RhdHVzW0NvdXJzZVN0YXR1cy5FTkRFRF07XG4gICAgICAgICAgICB0aGlzLmNvdXJzZXNbaW5kZXhdLnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3Blbign57uT5p2f5oiQ5YqfJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGVkaXQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmdldChpdGVtLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ291cnNlRWRpdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgIHdpZHRoOiAnOTAlJyxcbiAgICAgICAgICBoZWlnaHQ6ICc5MCUnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRpdGxlOiAn57yW6L6R6K++56iLJyxcbiAgICAgICAgICAgIGNvdXJzZTogcmVzLmRhdGEsXG4gICAgICAgICAgICBjbGFzc3Jvb21zOiB0aGlzLmNsYXNzcm9vbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgLy8gIHRoaXMuY291cnNlU2VydmljZS51cGRhdGUodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIC8vICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIC8vICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdEZWxldGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICAvLyAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9jYXRlZ29yaWVzJyk7XG4gICAgICAgICAgICAvLyAgICB9LFxuICAgICAgICAgICAgLy8gICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICAvLyAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gICAgfSxcbiAgICAgICAgICAgIC8vICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGUoY291cnNlOiBDb3Vyc2UpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAn5Yig6Zmk6K++56iLJyxcbiAgICAgICAgbWVzc2FnZTogYOehruWumuWIoOmZpCAke2NvdXJzZS5uYW1lfSDlkJc/YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZGVsZXRlKGNvdXJzZS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY291cnNlcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGNvdXJzZS5pZCk7XG4gICAgICAgICAgICB0aGlzLmNvdXJzZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jb3Vyc2VzO1xuICAgICAgICAgICAgdGhpcy5sZW5ndGgtLTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignRGVsZXRlIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJDb3Vyc2VcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHJvdXRlckxpbms9XCIuL2NyZWF0ZVwiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkNyZWF0ZTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YSByb3V0ZXJMaW5rPVwiLi9yZXZpZXdzXCIgY2xhc3M9XCJob3Zlcjp1bmRlcmxpbmUgaG92ZXI6dGV4dC1vcmFuZ2UtNjAwIHRleHQtc20gZm9udC1tZWRpdW1cIiBpMThuPlJldmlld3M8L2E+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC10b29sYmFyPlxuQGlmIChpc0xvYWRpbmcpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gICAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImNvdXJzZXNcIj5cbiAgICA8IS0tIG5hbWUgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmFtZVwiIHN0aWNreT5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgaTE4bj5UaXRsZTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0ubmFtZSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBzdGF0dXMgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhdHVzXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGkxOG4+U3RhdHVzPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCI+e3sgc3RhdHVzW2l0ZW0uc3RhdHVzXSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBjcmVhdGVkQXQgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY3JlYXRlZEF0XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGkxOG4+Q3JlYXRlZCBBdDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0uY3JlYXRlZEF0IH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIGFjdGlvbnMgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiIHN0aWNreUVuZD5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJhY3Rpb25zXCIgaTE4bj5BY3Rpb25zPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkV4YW1wbGUgaWNvbi1idXR0b24gd2l0aCBhIG1lbnVcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgICAgQGlmIChpdGVtLnN0YXR1cyA9PT0gJ0FDVElWRScpIHtcbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic3RhcnQoaXRlbSlcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj4gU3RhcnQgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICdTVEFSVEVEJykge1xuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzdG9wKGl0ZW0pXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGkxOG4+IFN0b3AgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgIT09ICdBQ1RJVkUnKSB7XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRlbGV0ZShpdGVtKVwiPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuPiBEZWxldGUgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSByb3V0ZXJMaW5rPVwiLi97eyBpdGVtLmlkIH19L21hbmFnZS9pbmZvXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPiBNb3JlLi4uIDwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8dHJcbiAgICAgIG1hdC1yb3dcbiAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgIHJvdXRlckxpbms9XCIuL3t7IHJvdy5pZCB9fS9tYW5hZ2UvaW5mb1wiXG4gICAgICBjbGFzcz1cImhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBjdXJzb3ItcG9pbnRlclwiXG4gICAgPjwvdHI+XG4gIDwvdGFibGU+XG4gIDxtYXQtcGFnaW5hdG9yXG4gICAgI3BhZ2luYXRvclxuICAgIFtsZW5ndGhdPVwibGVuZ3RoXCJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAocGFnZSk9XCJwYWdlRXZlbnQgPSBmaW5kKCRldmVudClcIlxuICAgIGhpZGVQYWdlU2l6ZVxuICAgIHNob3dGaXJzdExhc3RCdXR0b25zXG4gID5cbiAgPC9tYXQtcGFnaW5hdG9yPlxufVxuIl19","import { Component, inject } from '@angular/core';\nimport { BaseComponent, ImagePreviewDialogComponent, MediaListComponent, MediaListItemComponent, ToolbarComponent, } from '@rolatech/angular-components';\nimport { findLastIndex } from 'lodash';\nimport { CourseService, CategoryService } from '../../../services';\nimport { InstructorService } from '../../../services/instructor.service';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/autocomplete\";\nimport * as i7 from \"@angular/material/button\";\nexport class CourseManageCreateComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.categoryService = inject(CategoryService);\n this.instructorService = inject(InstructorService);\n this.isUploading = false;\n this.media = [];\n this.courseType = [\n {\n key: 'ONLINE',\n value: '线上',\n },\n {\n key: 'OFFLINE',\n value: '线下',\n },\n {\n key: 'MIXED',\n value: '混合',\n },\n ];\n // course: any;\n this.course = {};\n }\n ngOnInit() {\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n this.findClassrooms();\n }\n findClassrooms() {\n this.instructorService.findClassrooms({}).subscribe({\n next: (res) => {\n this.classrooms = res.data;\n },\n });\n }\n onMediaDelete(event) {\n const index = this.media.findIndex((item) => item.url === event.url);\n this.media.splice(index, 1);\n }\n create() {\n if (this.media.length <= 0) {\n this.snackBarService.open('图片信息不能为空');\n return;\n }\n const data = {\n ...this.course,\n media: this.media,\n categories: [...this.selectedChildrenCategories],\n };\n this.courseService.create(data).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n this.router.navigate([`../${res.data.id}/manage/info`], {\n relativeTo: this.route,\n });\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n onParentCategoryChange(event) {\n this.parentCategory.id = event.value;\n this.childrenCategories = event.value.children;\n }\n onChildCategoryChange(event) {\n this.selectedChildrenCategories = event.value;\n }\n onClassroomSelected(event) {\n this.selectedClassroom = event.value;\n }\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => { });\n }\n onUpload(event) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (this.media) {\n this.media.push({\n url: reader.result,\n alt: 'upload image',\n });\n }\n else {\n this.media = [];\n this.media.push({\n url: reader.result,\n alt: 'upload image',\n });\n }\n this.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.courseService.upload(formData).subscribe({\n next: (res) => {\n this.isUploading = false;\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBarService.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageCreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: CourseManageCreateComponent, isStandalone: true, selector: \"rolatech-course-manage-create\", usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"\\u521B\\u5EFA\\u8BFE\\u7A0B\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <section class=\\\"sample-app-content\\\">\\n <form #courseForm=\\\"ngForm\\\">\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"course.name\\\" name=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"course.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Level 1</mat-label>\\n <mat-select name=\\\"id\\\" [(ngModel)]=\\\"parentCategory\\\" (selectionChange)=\\\"onParentCategoryChange($event)\\\">\\n @for (item of categories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Level 2</mat-label>\\n <mat-select multiple name=\\\"id\\\" #select=\\\"matSelect\\\" (selectionChange)=\\\"onChildCategoryChange($event)\\\">\\n @for (item of childrenCategories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Type</mat-label>\\n <mat-select name=\\\"type\\\" [(ngModel)]=\\\"course.type\\\" required>\\n @for (item of courseType; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n @if (course.type && course.type.toString() !== 'ONLINE') {\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"classroom\\\">\\n <mat-label i18n>Classroom</mat-label>\\n <mat-select [(ngModel)]=\\\"course.classroom\\\" name=\\\"id\\\" required>\\n @for (classroom of classrooms; track classroom) {\\n <mat-option [value]=\\\"classroom\\\" (selectionChange)=\\\"onClassroomSelected($event)\\\">\\n <div class=\\\"flex gap-3\\\">\\n <span>{{ classroom.name }}</span>\\n <span> {{ classroom.address }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n }\\n </div>\\n <div>\\n <div class=\\\"py-3\\\">\\n <div class=\\\"text-xl font-medium\\\" i18n>Media info</div>\\n <div class=\\\"text-sm font-thin text-gray-500\\\">\\u56FE\\u7247\\u6587\\u4EF6\\u5927\\u5C0F\\u9650\\u5236\\u57285MB\\u4EE5\\u4E0B</div>\\n </div>\\n <rolatech-media-list (upload)=\\\"onUpload($event)\\\" [isUploading]=\\\"isUploading\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete($event)\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n </form>\\n </section>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Create</button>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.NgModelGroup, selector: \"[ngModelGroup]\", inputs: [\"ngModelGroup\"], exportAs: [\"ngModelGroup\"] }, { kind: \"directive\", type: i1.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i6.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"component\", type: MediaListComponent, selector: \"rolatech-media-list\", inputs: [\"isUploading\", \"media\", \"showAdd\"], outputs: [\"mediaItemClick\", \"upload\"] }, { kind: \"component\", type: MediaListItemComponent, selector: \"rolatech-media-list-item\", inputs: [\"media\", \"uploadProgress\", \"uploading\"], outputs: [\"mediaItemClick\", \"deleteMedia\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i7.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageCreateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-create', imports: [\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MediaListComponent,\n MediaListItemComponent,\n MatButtonModule,\n ], template: \"<rolatech-toolbar title=\\\"\\u521B\\u5EFA\\u8BFE\\u7A0B\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <section class=\\\"sample-app-content\\\">\\n <form #courseForm=\\\"ngForm\\\">\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"course.name\\\" name=\\\"name\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"course.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex gap-3\\\">\\n <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Level 1</mat-label>\\n <mat-select name=\\\"id\\\" [(ngModel)]=\\\"parentCategory\\\" (selectionChange)=\\\"onParentCategoryChange($event)\\\">\\n @for (item of categories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" required>\\n <mat-label i18n>Level 2</mat-label>\\n <mat-select multiple name=\\\"id\\\" #select=\\\"matSelect\\\" (selectionChange)=\\\"onChildCategoryChange($event)\\\">\\n @for (item of childrenCategories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n>Type</mat-label>\\n <mat-select name=\\\"type\\\" [(ngModel)]=\\\"course.type\\\" required>\\n @for (item of courseType; track item) {\\n <mat-option [value]=\\\"item.key\\\">\\n {{ item.value }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n @if (course.type && course.type.toString() !== 'ONLINE') {\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"classroom\\\">\\n <mat-label i18n>Classroom</mat-label>\\n <mat-select [(ngModel)]=\\\"course.classroom\\\" name=\\\"id\\\" required>\\n @for (classroom of classrooms; track classroom) {\\n <mat-option [value]=\\\"classroom\\\" (selectionChange)=\\\"onClassroomSelected($event)\\\">\\n <div class=\\\"flex gap-3\\\">\\n <span>{{ classroom.name }}</span>\\n <span> {{ classroom.address }}</span>\\n </div>\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n }\\n </div>\\n <div>\\n <div class=\\\"py-3\\\">\\n <div class=\\\"text-xl font-medium\\\" i18n>Media info</div>\\n <div class=\\\"text-sm font-thin text-gray-500\\\">\\u56FE\\u7247\\u6587\\u4EF6\\u5927\\u5C0F\\u9650\\u5236\\u57285MB\\u4EE5\\u4E0B</div>\\n </div>\\n <rolatech-media-list (upload)=\\\"onUpload($event)\\\" [isUploading]=\\\"isUploading\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete($event)\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n </form>\\n </section>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Create</button>\\n </div>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UtbWFuYWdlL2NvdXJzZS1tYW5hZ2UtY3JlYXRlL2NvdXJzZS1tYW5hZ2UtY3JlYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWNyZWF0ZS9jb3Vyc2UtbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFB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QUssQ0FBQzt3QkFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMzRCxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7OEdBeElVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdIQ3RDeEMseXZIQTBGQSxzRkRsRUksZ0JBQWdCLCtIQUNoQixXQUFXLG80Q0FDWCxrQkFBa0IsMFNBQ2xCLGNBQWMsZ21CQUNkLGVBQWUsOEJBQ2YsZUFBZSwrc0JBQ2YsZUFBZSwrQkFDZixrQkFBa0Isb0pBQ2xCLHNCQUFzQixrS0FDdEIsZUFBZTs7MkZBS04sMkJBQTJCO2tCQWpCdkMsU0FBUzsrQkFDRSwrQkFBK0IsV0FDaEM7d0JBQ1AsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsZUFBZTtxQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge1xuICBCYXNlQ29tcG9uZW50LFxuICBJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsXG4gIE1lZGlhTGlzdENvbXBvbmVudCxcbiAgTWVkaWFMaXN0SXRlbUNvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvdXJzZVNlcnZpY2UsIENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEluc3RydWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW5zdHJ1Y3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBDb3Vyc2VDYXRlZ29yeSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLWNyZWF0ZScsXG4gIGltcG9ydHM6IFtcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNZWRpYUxpc3RDb21wb25lbnQsXG4gICAgTWVkaWFMaXN0SXRlbUNvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZU1hbmFnZUNyZWF0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuICBjYXRlZ29yeVNlcnZpY2UgPSBpbmplY3QoQ2F0ZWdvcnlTZXJ2aWNlKTtcbiAgaW5zdHJ1Y3RvclNlcnZpY2UgPSBpbmplY3QoSW5zdHJ1Y3RvclNlcnZpY2UpO1xuICBpc1VwbG9hZGluZyA9IGZhbHNlO1xuICBtZWRpYTogTWVkaWFbXSA9IFtdO1xuICBzZWxlY3RlZENhdGVnb3lJZHMhOiBzdHJpbmdbXTtcbiAgY2F0ZWdvcmllcyE6IENvdXJzZUNhdGVnb3J5W107XG4gIGNsYXNzcm9vbXM6IGFueTtcbiAgc2VsZWN0ZWRDbGFzc3Jvb206IGFueTtcbiAgcGFyZW50Q2F0ZWdvcnkhOiBDb3Vyc2VDYXRlZ29yeTtcbiAgY2hpbGRyZW5DYXRlZ29yaWVzITogQ291cnNlQ2F0ZWdvcnlbXTtcbiAgc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMhOiBDb3Vyc2VDYXRlZ29yeVtdO1xuICBjb3Vyc2VUeXBlID0gW1xuICAgIHtcbiAgICAgIGtleTogJ09OTElORScsXG4gICAgICB2YWx1ZTogJ+e6v+S4iicsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdPRkZMSU5FJyxcbiAgICAgIHZhbHVlOiAn57q/5LiLJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ01JWEVEJyxcbiAgICAgIHZhbHVlOiAn5re35ZCIJyxcbiAgICB9LFxuICBdO1xuICAvLyBjb3Vyc2U6IGFueTtcbiAgY291cnNlOiBhbnkgPSB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5maW5kKHsgbGltaXQ6IDEwMCwgZmlsdGVyOiAnbGV2ZWw6MScgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5maW5kQ2xhc3Nyb29tcygpO1xuICB9XG4gIGZpbmRDbGFzc3Jvb21zKCkge1xuICAgIHRoaXMuaW5zdHJ1Y3RvclNlcnZpY2UuZmluZENsYXNzcm9vbXMoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY2xhc3Nyb29tcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbk1lZGlhRGVsZXRlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWVkaWEuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLnVybCA9PT0gZXZlbnQudXJsKTtcbiAgICB0aGlzLm1lZGlhLnNwbGljZShpbmRleCwgMSk7XG4gIH1cbiAgY3JlYXRlKCkge1xuICAgIGlmICh0aGlzLm1lZGlhLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCflm77niYfkv6Hmga/kuI3og73kuLrnqbonKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIC4uLnRoaXMuY291cnNlLFxuICAgICAgbWVkaWE6IHRoaXMubWVkaWEsXG4gICAgICBjYXRlZ29yaWVzOiBbLi4udGhpcy5zZWxlY3RlZENoaWxkcmVuQ2F0ZWdvcmllc10sXG4gICAgfTtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuY3JlYXRlKGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLi8ke3Jlcy5kYXRhLmlkfS9tYW5hZ2UvaW5mb2BdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBvblBhcmVudENhdGVnb3J5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnBhcmVudENhdGVnb3J5LmlkID0gZXZlbnQudmFsdWU7XG4gICAgdGhpcy5jaGlsZHJlbkNhdGVnb3JpZXMgPSBldmVudC52YWx1ZS5jaGlsZHJlbjtcbiAgfVxuICBvbkNoaWxkQ2F0ZWdvcnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMgPSBldmVudC52YWx1ZTtcbiAgfVxuICBvbkNsYXNzcm9vbVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2xhc3Nyb29tID0gZXZlbnQudmFsdWU7XG4gIH1cbiAgb25JbWFnZUNsaWNrKGk6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBtYXhXaWR0aDogJzgwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnODB2aCcsXG4gICAgICBoZWlnaHQ6ICc4MCUnLFxuICAgICAgd2lkdGg6ICc4MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtc2NyZWVuLW1vZGFsJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbWVkaWE6IHRoaXMubWVkaWEsXG4gICAgICAgIHNlbGVjdGVkOiBpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge30pO1xuICB9XG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tZWRpYSkge1xuICAgICAgICAgICh0aGlzLm1lZGlhIGFzIGFueSkucHVzaCh7XG4gICAgICAgICAgICB1cmw6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICBhbHQ6ICd1cGxvYWQgaW1hZ2UnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWVkaWEgPSBbXTtcbiAgICAgICAgICAodGhpcy5tZWRpYSBhcyBhbnkpLnB1c2goe1xuICAgICAgICAgICAgdXJsOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgYWx0OiAndXBsb2FkIGltYWdlJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgICAgICB0aGlzLmNvdXJzZVNlcnZpY2UudXBsb2FkKGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBmaW5kTGFzdEluZGV4KHRoaXMubWVkaWEpO1xuICAgICAgICAgICAgLy8gUmVwbGFjZSBpdGVtIGF0IGluZGV4IHVzaW5nIG5hdGl2ZSBzcGxpY2VcbiAgICAgICAgICAgIHRoaXMubWVkaWEuc3BsaWNlKGluZGV4LCAxLCByZXMuZGF0YSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbignVXBsb2FkIGZhaWxlZDogJyArIGUubWVzc2FnZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiIsIjxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwi5Yib5bu66K++56iLXCIgbGluaz1cIi4uL1wiPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG48ZGl2IGNsYXNzPVwicC0zXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwic2FtcGxlLWFwcC1jb250ZW50XCI+XG4gICAgPGZvcm0gI2NvdXJzZUZvcm09XCJuZ0Zvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gVGl0bGUgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJjb3Vyc2UubmFtZVwiIG5hbWU9XCJuYW1lXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBEZXNjcmlwdGlvbiA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvdXJzZS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjNcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkxldmVsIDE8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IG5hbWU9XCJpZFwiIFsobmdNb2RlbCldPVwicGFyZW50Q2F0ZWdvcnlcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uUGFyZW50Q2F0ZWdvcnlDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNhdGVnb3JpZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5MZXZlbCAyPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBtdWx0aXBsZSBuYW1lPVwiaWRcIiAjc2VsZWN0PVwibWF0U2VsZWN0XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoaWxkQ2F0ZWdvcnlDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNoaWxkcmVuQ2F0ZWdvcmllczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPlR5cGU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8bWF0LXNlbGVjdCBuYW1lPVwidHlwZVwiIFsobmdNb2RlbCldPVwiY291cnNlLnR5cGVcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY291cnNlVHlwZTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5rZXlcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIEBpZiAoY291cnNlLnR5cGUgJiYgY291cnNlLnR5cGUudG9TdHJpbmcoKSAhPT0gJ09OTElORScpIHtcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBuZ01vZGVsR3JvdXA9XCJjbGFzc3Jvb21cIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5DbGFzc3Jvb208L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiY291cnNlLmNsYXNzcm9vbVwiIG5hbWU9XCJpZFwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICBAZm9yIChjbGFzc3Jvb20gb2YgY2xhc3Nyb29tczsgdHJhY2sgY2xhc3Nyb29tKSB7XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImNsYXNzcm9vbVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DbGFzc3Jvb21TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjbGFzc3Jvb20ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IGNsYXNzcm9vbS5hZGRyZXNzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtbWVkaXVtXCIgaTE4bj5NZWRpYSBpbmZvPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gZm9udC10aGluIHRleHQtZ3JheS01MDBcIj7lm77niYfmlofku7blpKflsI/pmZDliLblnKg1TULku6XkuIs8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxyb2xhdGVjaC1tZWRpYS1saXN0ICh1cGxvYWQpPVwib25VcGxvYWQoJGV2ZW50KVwiIFtpc1VwbG9hZGluZ109XCJpc1VwbG9hZGluZ1wiPlxuICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVkaWE7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8cm9sYXRlY2gtbWVkaWEtbGlzdC1pdGVtXG4gICAgICAgICAgICAgIFttZWRpYV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgKG1lZGlhSXRlbUNsaWNrKT1cIm9uSW1hZ2VDbGljayhpKVwiXG4gICAgICAgICAgICAgIChkZWxldGVNZWRpYSk9XCJvbk1lZGlhRGVsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvcm9sYXRlY2gtbWVkaWEtbGlzdC1pdGVtPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9yb2xhdGVjaC1tZWRpYS1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L3NlY3Rpb24+XG4gIDxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJ3LTI4XCIgKGNsaWNrKT1cImNyZWF0ZSgpXCIgaTE4bj5DcmVhdGU8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, viewChild } from '@angular/core';\nimport { MatPaginatorModule, MatPaginator } from '@angular/material/paginator';\nimport { MatTableModule, MatTableDataSource } from '@angular/material/table';\nimport { RouterLink } from '@angular/router';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseStatus } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/table\";\nimport * as i2 from \"@angular/material/paginator\";\nexport class CourseManageApplicationComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.isLoading = false;\n this.isSearch = false;\n this.length = 100;\n this.pageSize = 15;\n this.pageSizeOptions = [5, 10, 25, 100];\n this.dataSource = new MatTableDataSource();\n this.courses = [];\n this.displayedColumns = ['name', 'status', 'createdAt', 'actions'];\n this.paginator = viewChild(MatPaginator);\n this.orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n this.status = CourseStatus;\n this.orderString = 'createdAt desc';\n }\n ngOnInit() {\n this.find(null);\n }\n find(event) {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const filter = 'status:active';\n const options = {\n page,\n limit,\n sort,\n filter,\n };\n this.courseService.findAllApplications(options).subscribe({\n next: (res) => {\n this.courses = res.data;\n this.dataSource.data = this.courses;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBarService.open(e.message);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageApplicationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.3\", type: CourseManageApplicationComponent, isStandalone: true, selector: \"rolatech-course-manage-application\", viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Course applications\\\"></rolatech-toolbar>\\n<table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Title</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.title }}</td>\\n </ng-container>\\n\\n <!-- status Column -->\\n <ng-container matColumnDef=\\\"status\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Status</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ status[item.status] }}</td>\\n </ng-container>\\n\\n <!-- createdAt Column -->\\n <ng-container matColumnDef=\\\"createdAt\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Created At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.createdAt }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\" i18n>Details</th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <a routerLink=\\\"/console/courses/applications/{{ item.id }}\\\" class=\\\"underline\\\"> Details </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr mat-row *matRowDef=\\\"let row; columns: displayedColumns\\\"></tr>\\n</table>\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i1.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i1.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i1.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i1.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i1.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i1.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i1.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i1.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"component\", type: i1.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i1.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: i2.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageApplicationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-application', imports: [MatTableModule, RouterLink, MatPaginatorModule, ToolbarComponent], template: \"<rolatech-toolbar title=\\\"Course applications\\\"></rolatech-toolbar>\\n<table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Title</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.title }}</td>\\n </ng-container>\\n\\n <!-- status Column -->\\n <ng-container matColumnDef=\\\"status\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Status</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ status[item.status] }}</td>\\n </ng-container>\\n\\n <!-- createdAt Column -->\\n <ng-container matColumnDef=\\\"createdAt\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Created At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.createdAt }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\" stickyEnd>\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\" i18n>Details</th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <a routerLink=\\\"/console/courses/applications/{{ item.id }}\\\" class=\\\"underline\\\"> Details </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr mat-row *matRowDef=\\\"let row; columns: displayedColumns\\\"></tr>\\n</table>\\n<mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n>\\n</mat-paginator>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS1tYW5hZ2UvY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbi9jb3Vyc2UtbWFuYWdlLWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWFwcGxpY2F0aW9uL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRSxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBUWxELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxhQUFhO0lBTm5FOztRQU9FLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixXQUFN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NUMsU0FBUzsrQkFDRSxvQ0FBb0MsV0FDckMsQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQsIE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSwgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2UsIENvdXJzZVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbicsXG4gIGltcG9ydHM6IFtNYXRUYWJsZU1vZHVsZSwgUm91dGVyTGluaywgTWF0UGFnaW5hdG9yTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZU1hbmFnZUFwcGxpY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBwYWdlRXZlbnQhOiBQYWdlRXZlbnQ7XG4gIGxlbmd0aCA9IDEwMDtcbiAgcGFnZVNpemUgPSAxNTtcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDEwMF07XG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4oKTtcbiAgY291cnNlczogQ291cnNlW10gPSBbXTtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ25hbWUnLCAnc3RhdHVzJywgJ2NyZWF0ZWRBdCcsICdhY3Rpb25zJ107XG4gIHBhZ2luYXRvciA9IHZpZXdDaGlsZChNYXRQYWdpbmF0b3IpO1xuXG4gIG9yZGVyT3B0aW9ucyA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdjcmVhdGVkQXQnLFxuICAgICAgdmFsdWU6ICfliJvlu7rml7bpl7QnLFxuICAgICAgaWNvbjogJ2Fycm93X3Vwd2FyZCcsXG4gICAgICBzb3J0OiAnYXNjJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2NyZWF0ZWRBdCcsXG4gICAgICB2YWx1ZTogJ+WIm+W7uuaXtumXtCcsXG4gICAgICBpY29uOiAnYXJyb3dfZG93bndhcmQnLFxuICAgICAgc29ydDogJ2Rlc2MnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnc3RhdHVzJyxcbiAgICAgIHZhbHVlOiAn54q25oCBJyxcbiAgICAgIGljb246ICdhcnJvd191cHdhcmQnLFxuICAgICAgc29ydDogJ2FzYycsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdzdGF0dXMnLFxuICAgICAgdmFsdWU6ICfnirbmgIEnLFxuICAgICAgaWNvbjogJ2Fycm93X2Rvd253YXJkJyxcbiAgICAgIHNvcnQ6ICdkZXNjJyxcbiAgICB9LFxuICBdO1xuICBzdGF0dXM6IGFueSA9IENvdXJzZVN0YXR1cztcbiAgb3JkZXJTdHJpbmcgPSAnY3JlYXRlZEF0IGRlc2MnO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQobnVsbCk7XG4gIH1cbiAgZmluZChldmVudD86IFBhZ2VFdmVudCB8IG51bGwpOiBhbnkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBwYWdlID0gZXZlbnQgPyBldmVudC5wYWdlSW5kZXggKyAxIDogMTtcbiAgICBjb25zdCBsaW1pdCA9IGV2ZW50ID8gZXZlbnQucGFnZVNpemUgOiAxNTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5vcmRlclN0cmluZztcbiAgICBjb25zdCBmaWx0ZXIgPSAnc3RhdHVzOmFjdGl2ZSc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHBhZ2UsXG4gICAgICBsaW1pdCxcbiAgICAgIHNvcnQsXG4gICAgICBmaWx0ZXIsXG4gICAgfTtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZEFsbEFwcGxpY2F0aW9ucyhvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291cnNlcyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY291cnNlcztcbiAgICAgICAgdGhpcy5sZW5ndGggPSByZXMubWV0YS5wYWdpbmF0aW9uLmNvdW50O1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkNvdXJzZSBhcHBsaWNhdGlvbnNcIj48L3JvbGF0ZWNoLXRvb2xiYXI+XG48dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIj5cbiAgPCEtLSBuYW1lIENvbHVtbiAtLT5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBpMThuPlRpdGxlPC90aD5cbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0udGl0bGUgfX08L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIHN0YXR1cyBDb2x1bW4gLS0+XG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhdHVzXCI+XG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBpMThuPlN0YXR1czwvdGg+XG4gICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBzdGF0dXNbaXRlbS5zdGF0dXNdIH19PC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBjcmVhdGVkQXQgQ29sdW1uIC0tPlxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNyZWF0ZWRBdFwiPlxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgaTE4bj5DcmVhdGVkIEF0PC90aD5cbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0uY3JlYXRlZEF0IH19PC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBhY3Rpb25zIENvbHVtbiAtLT5cbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCIgc3RpY2t5RW5kPlxuICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJhY3Rpb25zXCIgaTE4bj5EZXRhaWxzPC90aD5cbiAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGEgcm91dGVyTGluaz1cIi9jb25zb2xlL2NvdXJzZXMvYXBwbGljYXRpb25zL3t7IGl0ZW0uaWQgfX1cIiBjbGFzcz1cInVuZGVybGluZVwiPiBEZXRhaWxzIDwvYT5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG48L3RhYmxlPlxuPG1hdC1wYWdpbmF0b3JcbiAgI3BhZ2luYXRvclxuICBbbGVuZ3RoXT1cImxlbmd0aFwiXG4gIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgKHBhZ2UpPVwicGFnZUV2ZW50ID0gZmluZCgkZXZlbnQpXCJcbiAgaGlkZVBhZ2VTaXplXG4gIHNob3dGaXJzdExhc3RCdXR0b25zXG4+XG48L21hdC1wYWdpbmF0b3I+XG4iXX0=","import { Component } from '@angular/core';\nimport { ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nexport class CourseManageApplicationDetailComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageApplicationDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CourseManageApplicationDetailComponent, isStandalone: true, selector: \"rolatech-course-manage-application-detail\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"\\u8BE6\\u60C5\\\" link=\\\"../\\\"></rolatech-toolbar>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageApplicationDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-application-detail', imports: [ToolbarComponent], template: \"<rolatech-toolbar title=\\\"\\u8BE6\\u60C5\\\" link=\\\"../\\\"></rolatech-toolbar>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbi1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UtbWFuYWdlL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24tZGV0YWlsL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLWFwcGxpY2F0aW9uLWRldGFpbC9jb3Vyc2UtbWFuYWdlLWFwcGxpY2F0aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVFoRSxNQUFNLE9BQU8sc0NBQXNDOzhHQUF0QyxzQ0FBc0M7a0dBQXRDLHNDQUFzQyxxR0NUbkQsNkVBQ0EsMERESVksZ0JBQWdCOzsyRkFJZixzQ0FBc0M7a0JBTmxELFNBQVM7K0JBQ0UsMkNBQTJDLFdBQzVDLENBQUMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbi1kZXRhaWwnLFxuICBpbXBvcnRzOiBbVG9vbGJhckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWFwcGxpY2F0aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLWFwcGxpY2F0aW9uLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZU1hbmFnZUFwcGxpY2F0aW9uRGV0YWlsQ29tcG9uZW50IHt9XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIuivpuaDhVwiIGxpbms9XCIuLi9cIj48L3JvbGF0ZWNoLXRvb2xiYXI+XG4iXX0=","import { Component, inject, viewChild } from '@angular/core';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { CourseReviewStatus } from '../../../interfaces';\nimport { CourseService } from '../../../services';\nimport { RouterLink } from '@angular/router';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/table\";\nimport * as i2 from \"@angular/material/paginator\";\nexport class CourseManageReviewComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.courseService = inject(CourseService);\n this.isLoading = false;\n this.isSearch = false;\n this.length = 100;\n this.pageSize = 15;\n this.pageSizeOptions = [5, 10, 25, 100];\n this.dataSource = new MatTableDataSource();\n this.records = [];\n this.displayedColumns = ['name', 'status', 'updatedAt', 'actions'];\n this.paginator = viewChild(MatPaginator);\n this.status = CourseReviewStatus;\n }\n ngOnInit() {\n this.find();\n }\n find(event) {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const options = {\n page,\n limit,\n };\n this.courseService.findReviews(options).subscribe({\n next: (res) => {\n this.records = res.data;\n this.dataSource.data = this.records;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBarService.open(e.message);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageReviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.3\", type: CourseManageReviewComponent, isStandalone: true, selector: \"rolatech-course-manage-review\", viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<rolatech-toolbar title=\\\"Reviews\\\"></rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Title</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.course.name }}</td>\\n </ng-container>\\n\\n <!-- status Column -->\\n <ng-container matColumnDef=\\\"status\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Status</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ status[item.status] }}</td>\\n </ng-container>\\n\\n <!-- updatedAt Column -->\\n <ng-container matColumnDef=\\\"updatedAt\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Updated At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.updatedAt }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\">\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\" i18n>Details</th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <a routerLink=\\\"/console/courses/{{ item.course.id }}/manage/info\\\" class=\\\"underline\\\" i18n> Details </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n routerLink=\\\"/console/courses/{{ row.course.id }}/manage/info\\\"\\n class=\\\"hover:bg-[--rt-raised-background] cursor-pointer\\\"\\n ></tr>\\n </table>\\n <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"], dependencies: [{ kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i1.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i1.MatHeaderCellDef, selector: \"[matHeaderCellDef]\" }, { kind: \"directive\", type: i1.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i1.MatColumnDef, selector: \"[matColumnDef]\", inputs: [\"matColumnDef\"] }, { kind: \"directive\", type: i1.MatCellDef, selector: \"[matCellDef]\" }, { kind: \"directive\", type: i1.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"directive\", type: i1.MatHeaderCell, selector: \"mat-header-cell, th[mat-header-cell]\" }, { kind: \"directive\", type: i1.MatCell, selector: \"mat-cell, td[mat-cell]\" }, { kind: \"component\", type: i1.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i1.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: i2.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageReviewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-review', imports: [ToolbarComponent, MatTableModule, RouterLink, MatPaginatorModule], template: \"<rolatech-toolbar title=\\\"Reviews\\\"></rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <table mat-table [dataSource]=\\\"dataSource\\\">\\n <!-- name Column -->\\n <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Title</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.course.name }}</td>\\n </ng-container>\\n\\n <!-- status Column -->\\n <ng-container matColumnDef=\\\"status\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Status</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ status[item.status] }}</td>\\n </ng-container>\\n\\n <!-- updatedAt Column -->\\n <ng-container matColumnDef=\\\"updatedAt\\\">\\n <th mat-header-cell *matHeaderCellDef i18n>Updated At</th>\\n <td mat-cell *matCellDef=\\\"let item\\\">{{ item.updatedAt }}</td>\\n </ng-container>\\n\\n <!-- actions Column -->\\n <ng-container matColumnDef=\\\"actions\\\">\\n <th mat-header-cell *matHeaderCellDef class=\\\"actions\\\" i18n>Details</th>\\n <td mat-cell *matCellDef=\\\"let item\\\" class=\\\"actions\\\">\\n <a routerLink=\\\"/console/courses/{{ item.course.id }}/manage/info\\\" class=\\\"underline\\\" i18n> Details </a>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr\\n mat-row\\n *matRowDef=\\\"let row; columns: displayedColumns\\\"\\n routerLink=\\\"/console/courses/{{ row.course.id }}/manage/info\\\"\\n class=\\\"hover:bg-[--rt-raised-background] cursor-pointer\\\"\\n ></tr>\\n </table>\\n <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator>\\n</div>\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1yZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UtbWFuYWdlL2NvdXJzZS1tYW5hZ2UtcmV2aWV3L2NvdXJzZS1tYW5hZ2UtcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXJldmlldy9jb3Vyc2UtbWFuYWdlLXJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFhLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQXNCLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFRL0UsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFOOUQ7O1FBT0Usa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFDYixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Qsb0JBQWUsR0FBYSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFPLENBQUM7UUFDM0MsWUFBTyxHQUF5QixFQUFFLENBQUM7UUFDbkMscUJBQWdCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RSxjQUFTLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBUSxrQkFBa0IsQ0FBQztLQTBCbEM7SUF4QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBd0I7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSTtZQUNKLEtBQUs7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hELElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBckNVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9JQVdoQixZQUFZLHVGQ3pCcEMsMnREQWdEQSwrZ0JEdENZLGdCQUFnQiwrSEFBRSxjQUFjLHVnQ0FBRSxVQUFVLG1PQUFFLGtCQUFrQjs7MkZBSS9ELDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwrQkFBK0IsV0FDaEMsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlRXZlbnQsIE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBDb3Vyc2VSZXZpZXdSZWNvcmQsIENvdXJzZVJldmlld1N0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ291cnNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtbWFuYWdlLXJldmlldycsXG4gIGltcG9ydHM6IFtUb29sYmFyQ29tcG9uZW50LCBNYXRUYWJsZU1vZHVsZSwgUm91dGVyTGluaywgTWF0UGFnaW5hdG9yTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1tYW5hZ2UtcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdXJzZS1tYW5hZ2UtcmV2aWV3LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlTWFuYWdlUmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBwYWdlRXZlbnQhOiBQYWdlRXZlbnQ7XG4gIGxlbmd0aCA9IDEwMDtcbiAgcGFnZVNpemUgPSAxNTtcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDEwMF07XG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4oKTtcbiAgcmVjb3JkczogQ291cnNlUmV2aWV3UmVjb3JkW10gPSBbXTtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ25hbWUnLCAnc3RhdHVzJywgJ3VwZGF0ZWRBdCcsICdhY3Rpb25zJ107XG4gIHBhZ2luYXRvciA9IHZpZXdDaGlsZChNYXRQYWdpbmF0b3IpO1xuICBzdGF0dXM6IGFueSA9IENvdXJzZVJldmlld1N0YXR1cztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKGV2ZW50PzogUGFnZUV2ZW50IHwgbnVsbCk6IGFueSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHBhZ2UgPSBldmVudCA/IGV2ZW50LnBhZ2VJbmRleCArIDEgOiAxO1xuICAgIGNvbnN0IGxpbWl0ID0gZXZlbnQgPyBldmVudC5wYWdlU2l6ZSA6IDE1O1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBwYWdlLFxuICAgICAgbGltaXQsXG4gICAgfTtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZFJldmlld3Mob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlY29yZHMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnJlY29yZHM7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gcmVzLm1ldGEucGFnaW5hdGlvbi5jb3VudDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIlJldmlld3NcIj48L3JvbGF0ZWNoLXRvb2xiYXI+XG48ZGl2IGNsYXNzPVwicC0zXCI+XG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxuICAgIDwhLS0gbmFtZSBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJuYW1lXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGkxOG4+VGl0bGU8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj57eyBpdGVtLmNvdXJzZS5uYW1lIH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gc3RhdHVzIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXR1c1wiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBpMThuPlN0YXR1czwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IHN0YXR1c1tpdGVtLnN0YXR1c10gfX08L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSB1cGRhdGVkQXQgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXBkYXRlZEF0XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGkxOG4+VXBkYXRlZCBBdDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiPnt7IGl0ZW0udXBkYXRlZEF0IH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gYWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiYWN0aW9uc1wiIGkxOG4+RGV0YWlsczwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YSByb3V0ZXJMaW5rPVwiL2NvbnNvbGUvY291cnNlcy97eyBpdGVtLmNvdXJzZS5pZCB9fS9tYW5hZ2UvaW5mb1wiIGNsYXNzPVwidW5kZXJsaW5lXCIgaTE4bj4gRGV0YWlscyA8L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8dHJcbiAgICAgIG1hdC1yb3dcbiAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgIHJvdXRlckxpbms9XCIvY29uc29sZS9jb3Vyc2VzL3t7IHJvdy5jb3Vyc2UuaWQgfX0vbWFuYWdlL2luZm9cIlxuICAgICAgY2xhc3M9XCJob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXJcIlxuICAgID48L3RyPlxuICA8L3RhYmxlPlxuICA8bWF0LXBhZ2luYXRvclxuICAgICNwYWdpbmF0b3JcbiAgICBbbGVuZ3RoXT1cImxlbmd0aFwiXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gICAgKHBhZ2UpPVwicGFnZUV2ZW50ID0gZmluZCgkZXZlbnQpXCJcbiAgICBoaWRlUGFnZVNpemVcbiAgICBzaG93Rmlyc3RMYXN0QnV0dG9uc1xuICA+XG4gIDwvbWF0LXBhZ2luYXRvcj5cbjwvZGl2PlxuIl19","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class CourseManageReviewDetailComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageReviewDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CourseManageReviewDetailComponent, isStandalone: true, selector: \"rolatech-course-manage-review-detail\", ngImport: i0, template: \"<p>course-manage-review-detail works!</p>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageReviewDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-review-detail', imports: [CommonModule], template: \"<p>course-manage-review-detail works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXJldmlldy1kZXRhaWwvY291cnNlLW1hbmFnZS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXJldmlldy1kZXRhaWwvY291cnNlLW1hbmFnZS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8saUNBQWlDOzhHQUFqQyxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxnR0NUOUMsNkNBQ0EseURESVksWUFBWTs7MkZBSVgsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNFLHNDQUFzQyxXQUN2QyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLW1hbmFnZS1yZXZpZXctZGV0YWlsJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLXJldmlldy1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291cnNlLW1hbmFnZS1yZXZpZXctZGV0YWlsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlTWFuYWdlUmV2aWV3RGV0YWlsQ29tcG9uZW50IHt9XG4iLCI8cD5jb3Vyc2UtbWFuYWdlLXJldmlldy1kZXRhaWwgd29ya3MhPC9wPlxuIl19","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class CourseManageUserIndexComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageUserIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: CourseManageUserIndexComponent, isStandalone: true, selector: \"rolatech-course-manage-user-index\", ngImport: i0, template: \"<p>course-manage-user-index works!</p>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: CourseManageUserIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-course-manage-user-index', imports: [CommonModule], template: \"<p>course-manage-user-index works!</p>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS11c2VyLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXVzZXItaW5kZXgvY291cnNlLW1hbmFnZS11c2VyLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlLW1hbmFnZS9jb3Vyc2UtbWFuYWdlLXVzZXItaW5kZXgvY291cnNlLW1hbmFnZS11c2VyLWluZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sOEJBQThCOzhHQUE5Qiw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw2RkNUM0MsMENBQ0EseURESVksWUFBWTs7MkZBSVgsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLG1DQUFtQyxXQUNwQyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY291cnNlLW1hbmFnZS11c2VyLWluZGV4JyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtbWFuYWdlLXVzZXItaW5kZXguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY291cnNlLW1hbmFnZS11c2VyLWluZGV4LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlTWFuYWdlVXNlckluZGV4Q29tcG9uZW50IHt9XG4iLCI8cD5jb3Vyc2UtbWFuYWdlLXVzZXItaW5kZXggd29ya3MhPC9wPlxuIl19","import { CourseManageDetailsComponent } from './course-manage-details/course-manage-details.component';\nimport { CourseManageScheduleComponent } from './course-manage-schedule/course-manage-schedule.component';\nimport { CourseManagePricingComponent } from './course-manage-pricing/course-manage-pricing.component';\nimport { CourseManageInfoComponent } from './course-manage-info/course-manage-info.component';\nimport { CourseManageMediaComponent } from './course-manage-media/course-manage-media.component';\nimport { CourseManageSectionComponent } from './course-manage-section/course-manage-section.component';\nimport { CourseManageLayoutComponent } from './course-manage-layout/course-manage-layout.component';\nimport { CourseManageIndexComponent } from './course-manage-index/course-manage-index.component';\nimport { CourseManageCreateComponent } from './course-manage-create/course-manage-create.component';\nimport { CourseManageApplicationComponent } from './course-manage-application/course-manage-application.component';\nimport { CourseManageApplicationDetailComponent } from './course-manage-application-detail/course-manage-application-detail.component';\nimport { CourseManageReviewComponent } from './course-manage-review/course-manage-review.component';\nimport { CourseManageReviewDetailComponent } from './course-manage-review-detail/course-manage-review-detail.component';\nimport { CourseManageUserIndexComponent } from './course-manage-user-index/course-manage-user-index.component';\nexport const courseManageRoutes = [\n {\n path: '',\n component: CourseManageIndexComponent,\n },\n {\n path: 'create',\n component: CourseManageCreateComponent,\n },\n {\n path: 'applications',\n component: CourseManageApplicationComponent,\n },\n {\n path: 'applications/:id',\n component: CourseManageApplicationDetailComponent,\n },\n {\n path: 'reviews',\n component: CourseManageReviewComponent,\n },\n {\n path: 'users',\n component: CourseManageUserIndexComponent,\n },\n {\n path: 'reviews/:id',\n component: CourseManageReviewDetailComponent,\n },\n {\n path: ':id/manage',\n component: CourseManageLayoutComponent,\n children: [\n {\n path: 'info',\n component: CourseManageInfoComponent,\n },\n {\n path: 'media',\n component: CourseManageMediaComponent,\n },\n {\n path: 'details',\n component: CourseManageDetailsComponent,\n },\n {\n path: 'pricing',\n component: CourseManagePricingComponent,\n },\n {\n path: 'schedule',\n component: CourseManageScheduleComponent,\n },\n {\n path: 'section',\n component: CourseManageSectionComponent,\n },\n ],\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLW1hbmFnZS5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL3BhZ2VzL2NvdXJzZS1tYW5hZ2UvY291cnNlLW1hbmFnZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDbkgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDdkksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFL0csTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQVc7SUFDeEM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSwwQkFBMEI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLDJCQUEyQjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsU0FBUyxFQUFFLGdDQUFnQztLQUM1QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixTQUFTLEVBQUUsc0NBQXNDO0tBQ2xEO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsU0FBUztRQUNmLFNBQVMsRUFBRSwyQkFBMkI7S0FDdkM7SUFDRDtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLDhCQUE4QjtLQUMxQztJQUNEO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsU0FBUyxFQUFFLGlDQUFpQztLQUM3QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsU0FBUyxFQUFFLDJCQUEyQjtRQUN0QyxRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixTQUFTLEVBQUUseUJBQXlCO2FBQ3JDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLDBCQUEwQjthQUN0QztZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLFNBQVMsRUFBRSw0QkFBNEI7YUFDeEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixTQUFTLEVBQUUsNEJBQTRCO2FBQ3hDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSw2QkFBNkI7YUFDekM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixTQUFTLEVBQUUsNEJBQTRCO2FBQ3hDO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLW1hbmFnZS1kZXRhaWxzL2NvdXJzZS1tYW5hZ2UtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlU2NoZWR1bGVDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2Utc2NoZWR1bGUvY291cnNlLW1hbmFnZS1zY2hlZHVsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlUHJpY2luZ0NvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLW1hbmFnZS1wcmljaW5nL2NvdXJzZS1tYW5hZ2UtcHJpY2luZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLW1hbmFnZS1pbmZvL2NvdXJzZS1tYW5hZ2UtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlTWVkaWFDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2UtbWVkaWEvY291cnNlLW1hbmFnZS1tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLW1hbmFnZS1zZWN0aW9uL2NvdXJzZS1tYW5hZ2Utc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2UtbWFuYWdlLWxheW91dC9jb3Vyc2UtbWFuYWdlLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2UtaW5kZXgvY291cnNlLW1hbmFnZS1pbmRleC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2UtbWFuYWdlLWNyZWF0ZS9jb3Vyc2UtbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlQXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24vY291cnNlLW1hbmFnZS1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTWFuYWdlQXBwbGljYXRpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24tZGV0YWlsL2NvdXJzZS1tYW5hZ2UtYXBwbGljYXRpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VNYW5hZ2VSZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2UtcmV2aWV3L2NvdXJzZS1tYW5hZ2UtcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VNYW5hZ2VSZXZpZXdEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1tYW5hZ2UtcmV2aWV3LWRldGFpbC9jb3Vyc2UtbWFuYWdlLXJldmlldy1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZU1hbmFnZVVzZXJJbmRleENvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLW1hbmFnZS11c2VyLWluZGV4L2NvdXJzZS1tYW5hZ2UtdXNlci1pbmRleC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgY291cnNlTWFuYWdlUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IENvdXJzZU1hbmFnZUluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2NyZWF0ZScsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VNYW5hZ2VDcmVhdGVDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25zJyxcbiAgICBjb21wb25lbnQ6IENvdXJzZU1hbmFnZUFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9ucy86aWQnLFxuICAgIGNvbXBvbmVudDogQ291cnNlTWFuYWdlQXBwbGljYXRpb25EZXRhaWxDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncmV2aWV3cycsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VNYW5hZ2VSZXZpZXdDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndXNlcnMnLFxuICAgIGNvbXBvbmVudDogQ291cnNlTWFuYWdlVXNlckluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Jldmlld3MvOmlkJyxcbiAgICBjb21wb25lbnQ6IENvdXJzZU1hbmFnZVJldmlld0RldGFpbENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICc6aWQvbWFuYWdlJyxcbiAgICBjb21wb25lbnQ6IENvdXJzZU1hbmFnZUxheW91dENvbXBvbmVudCxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICBwYXRoOiAnaW5mbycsXG4gICAgICAgIGNvbXBvbmVudDogQ291cnNlTWFuYWdlSW5mb0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdtZWRpYScsXG4gICAgICAgIGNvbXBvbmVudDogQ291cnNlTWFuYWdlTWVkaWFDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnZGV0YWlscycsXG4gICAgICAgIGNvbXBvbmVudDogQ291cnNlTWFuYWdlRGV0YWlsc0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwcmljaW5nJyxcbiAgICAgICAgY29tcG9uZW50OiBDb3Vyc2VNYW5hZ2VQcmljaW5nQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3NjaGVkdWxlJyxcbiAgICAgICAgY29tcG9uZW50OiBDb3Vyc2VNYW5hZ2VTY2hlZHVsZUNvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzZWN0aW9uJyxcbiAgICAgICAgY29tcG9uZW50OiBDb3Vyc2VNYW5hZ2VTZWN0aW9uQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXTtcbiJdfQ==","export * from './lib/interfaces';\nexport * from './provider';\nexport * from './lib/components';\nexport * from './lib/services';\nexport { courseRoutes } from './lib/pages/course/course.routes';\nexport { courseCategoryRoutes } from './lib/pages/course/course-category.routes';\nexport { courseManageRoutes } from './lib/pages/course-manage/course-manage.routes';\nexport const loadCourseRoutes = () => import('./lib/pages/course/course.routes').then((m) => m.courseRoutes);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xuZXhwb3J0IHsgY291cnNlUm91dGVzIH0gZnJvbSAnLi9saWIvcGFnZXMvY291cnNlL2NvdXJzZS5yb3V0ZXMnO1xuZXhwb3J0IHsgY291cnNlQ2F0ZWdvcnlSb3V0ZXMgfSBmcm9tICcuL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWNhdGVnb3J5LnJvdXRlcyc7XG5leHBvcnQgeyBjb3Vyc2VNYW5hZ2VSb3V0ZXMgfSBmcm9tICcuL2xpYi9wYWdlcy9jb3Vyc2UtbWFuYWdlL2NvdXJzZS1tYW5hZ2Uucm91dGVzJztcbmV4cG9ydCBjb25zdCBsb2FkQ291cnNlUm91dGVzID0gKCkgPT4gaW1wb3J0KCcuL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLnJvdXRlcycpLnRoZW4oKG0pID0+IG0uY291cnNlUm91dGVzKTtcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1jb3Vyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWNvdXJzZS9zcmMvcm9sYXRlY2gtYW5ndWxhci1jb3Vyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["fromServices.services","i1","i2","i3","i4","i5","i6","i7","i8","i9","i2.CourseService","i2.CategoryService","i10","i11","i12","i13"],"mappings":"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"}
|