@rolatech/angular-course 17.6.4 → 19.0.0-beta.0
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-index.component-vjwivkqz.mjs → rolatech-angular-course-course-index.component-Ba8BsDP1.mjs} +6 -6
- package/fesm2022/rolatech-angular-course-course-index.component-Ba8BsDP1.mjs.map +1 -0
- package/fesm2022/rolatech-angular-course.mjs +275 -300
- package/fesm2022/rolatech-angular-course.mjs.map +1 -1
- package/lib/components/index.d.ts +0 -1
- package/package.json +8 -6
- package/themes/_default.scss +1 -1
- package/esm2022/index.mjs +0 -7
- package/esm2022/lib/components/course-action/course-action.component.mjs +0 -29
- package/esm2022/lib/components/course-details/course-details.component.mjs +0 -28
- package/esm2022/lib/components/course-details-dialog/course-details-dialog.component.mjs +0 -92
- package/esm2022/lib/components/course-edit-dialog/course-edit-dialog.component.mjs +0 -233
- package/esm2022/lib/components/course-info/course-info.component.mjs +0 -23
- package/esm2022/lib/components/course-item/course-item.component.mjs +0 -19
- package/esm2022/lib/components/course-media/course-media.component.mjs +0 -34
- package/esm2022/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.mjs +0 -20
- package/esm2022/lib/components/course-preview/course-preview.component.mjs +0 -11
- package/esm2022/lib/components/course-pricing/course-pricing.component.mjs +0 -15
- package/esm2022/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.mjs +0 -25
- package/esm2022/lib/components/course-pricing-dialog/course-pricing-dialog.component.mjs +0 -59
- package/esm2022/lib/components/course-schedule/course-schedule.component.mjs +0 -20
- package/esm2022/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.mjs +0 -26
- package/esm2022/lib/components/course-schedule-dialog/course-schedule-dialog.component.mjs +0 -56
- package/esm2022/lib/components/course-section-item/course-section-item.component.mjs +0 -52
- package/esm2022/lib/components/course-section-lecture-item/course-section-lecture-item.component.mjs +0 -112
- package/esm2022/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.mjs +0 -111
- package/esm2022/lib/components/course-section-lecture-video-item/course-section-lecture-video-item.component.mjs +0 -11
- package/esm2022/lib/components/course-sections/course-sections.component.mjs +0 -28
- package/esm2022/lib/components/detail-item/detail-item.component.mjs +0 -72
- package/esm2022/lib/components/index.mjs +0 -24
- package/esm2022/lib/components/pricing-item/pricing-item.component.mjs +0 -44
- package/esm2022/lib/components/schedule-item/schedule-item.component.mjs +0 -127
- package/esm2022/lib/interfaces/category.mjs +0 -2
- package/esm2022/lib/interfaces/course.mjs +0 -146
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/interfaces/media.mjs +0 -2
- package/esm2022/lib/pages/course/course-category/course-category.component.mjs +0 -74
- package/esm2022/lib/pages/course/course-detail/course-detail.component.mjs +0 -148
- package/esm2022/lib/pages/course/course-index/course-index.component.mjs +0 -53
- package/esm2022/lib/pages/course/course-layout/course-layout.component.mjs +0 -49
- package/esm2022/lib/pages/course/course-section-content/course-section-content.component.mjs +0 -133
- package/esm2022/lib/pages/course/course.routes.mjs +0 -33
- package/esm2022/lib/pages/course-manage/course-manage-content/course-manage-content.component.mjs +0 -12
- package/esm2022/lib/pages/course-manage/course-manage-details/course-manage-details.component.mjs +0 -159
- package/esm2022/lib/pages/course-manage/course-manage-info/course-manage-info.component.mjs +0 -139
- package/esm2022/lib/pages/course-manage/course-manage-layout/course-manage-layout.component.mjs +0 -68
- package/esm2022/lib/pages/course-manage/course-manage-media/course-manage-media.component.mjs +0 -137
- package/esm2022/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.mjs +0 -127
- package/esm2022/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.mjs +0 -131
- package/esm2022/lib/pages/course-manage/course-manage-section/course-manage-section.component.mjs +0 -341
- package/esm2022/lib/pages/course-manage/course-manage.routes.mjs +0 -40
- package/esm2022/lib/services/booking.service.mjs +0 -24
- package/esm2022/lib/services/category.service.mjs +0 -38
- package/esm2022/lib/services/course-section.service.mjs +0 -26
- package/esm2022/lib/services/course.service.mjs +0 -280
- package/esm2022/lib/services/index.mjs +0 -6
- package/esm2022/lib/services/instructor.service.mjs +0 -24
- package/esm2022/provider.mjs +0 -13
- package/esm2022/rolatech-angular-course.mjs +0 -5
- package/fesm2022/rolatech-angular-course-course-index.component-vjwivkqz.mjs.map +0 -1
- package/lib/components/course-item/course-item.component.d.ts +0 -9
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
export var CourseStatus;
|
|
2
|
-
(function (CourseStatus) {
|
|
3
|
-
CourseStatus[CourseStatus["ACTIVE"] = '已发布'] = "ACTIVE";
|
|
4
|
-
CourseStatus[CourseStatus["ACCEPTED"] = '已通过'] = "ACCEPTED";
|
|
5
|
-
CourseStatus[CourseStatus["AWAITING"] = '审核中'] = "AWAITING";
|
|
6
|
-
CourseStatus[CourseStatus["PENDING"] = '审核中'] = "PENDING";
|
|
7
|
-
CourseStatus[CourseStatus["STARTED"] = '已开始'] = "STARTED";
|
|
8
|
-
CourseStatus[CourseStatus["ENDED"] = '已完成'] = "ENDED";
|
|
9
|
-
CourseStatus[CourseStatus["DELETED"] = '已删除'] = "DELETED";
|
|
10
|
-
CourseStatus[CourseStatus["DRAFT"] = '草稿'] = "DRAFT";
|
|
11
|
-
})(CourseStatus || (CourseStatus = {}));
|
|
12
|
-
export var CourseRequestStatus;
|
|
13
|
-
(function (CourseRequestStatus) {
|
|
14
|
-
CourseRequestStatus["AWAITING"] = "\u5BA1\u6838\u4E2D";
|
|
15
|
-
CourseRequestStatus["ACTIVE"] = "\u5DF2\u901A\u8FC7";
|
|
16
|
-
CourseRequestStatus["REJECTED"] = "\u5DF2\u62D2\u7EDD";
|
|
17
|
-
})(CourseRequestStatus || (CourseRequestStatus = {}));
|
|
18
|
-
export var CourseReviewStatus;
|
|
19
|
-
(function (CourseReviewStatus) {
|
|
20
|
-
CourseReviewStatus["ACCEPTED"] = "\u5DF2\u901A\u8FC7";
|
|
21
|
-
CourseReviewStatus["REJECTED"] = "\u672A\u901A\u8FC7";
|
|
22
|
-
})(CourseReviewStatus || (CourseReviewStatus = {}));
|
|
23
|
-
export var CourseSectionLectureContentType;
|
|
24
|
-
(function (CourseSectionLectureContentType) {
|
|
25
|
-
CourseSectionLectureContentType[CourseSectionLectureContentType["VIDEO"] = '视频'] = "VIDEO";
|
|
26
|
-
CourseSectionLectureContentType[CourseSectionLectureContentType["ARTICLE"] = '文章'] = "ARTICLE";
|
|
27
|
-
})(CourseSectionLectureContentType || (CourseSectionLectureContentType = {}));
|
|
28
|
-
// export const CourseType = [
|
|
29
|
-
// {
|
|
30
|
-
// key: 'ONLINE',
|
|
31
|
-
// value: '线上',
|
|
32
|
-
// },
|
|
33
|
-
// {
|
|
34
|
-
// key: 'OFFLINE',
|
|
35
|
-
// value: '线下',
|
|
36
|
-
// },
|
|
37
|
-
// {
|
|
38
|
-
// key: 'MIXED',
|
|
39
|
-
// value: '混合',
|
|
40
|
-
// },
|
|
41
|
-
// ];
|
|
42
|
-
export var CourseType;
|
|
43
|
-
(function (CourseType) {
|
|
44
|
-
CourseType[CourseType["ONLINE"] = '线上'] = "ONLINE";
|
|
45
|
-
CourseType[CourseType["OFFLINE"] = '线下'] = "OFFLINE";
|
|
46
|
-
CourseType[CourseType["MIXED"] = '混合'] = "MIXED";
|
|
47
|
-
})(CourseType || (CourseType = {}));
|
|
48
|
-
export const ScheduleDate = [
|
|
49
|
-
'00:00',
|
|
50
|
-
'00:15',
|
|
51
|
-
'00:30',
|
|
52
|
-
'00:45',
|
|
53
|
-
'01:00',
|
|
54
|
-
'01:15',
|
|
55
|
-
'01:30',
|
|
56
|
-
'01:45',
|
|
57
|
-
'02:00',
|
|
58
|
-
'02:15',
|
|
59
|
-
'02:30',
|
|
60
|
-
'02:45',
|
|
61
|
-
'03:00',
|
|
62
|
-
'03:15',
|
|
63
|
-
'03:30',
|
|
64
|
-
'03:45',
|
|
65
|
-
'04:00',
|
|
66
|
-
'04:15',
|
|
67
|
-
'04:30',
|
|
68
|
-
'04:45',
|
|
69
|
-
'05:00',
|
|
70
|
-
'05:15',
|
|
71
|
-
'05:30',
|
|
72
|
-
'05:45',
|
|
73
|
-
'06:00',
|
|
74
|
-
'06:15',
|
|
75
|
-
'06:30',
|
|
76
|
-
'06:45',
|
|
77
|
-
'07:00',
|
|
78
|
-
'07:15',
|
|
79
|
-
'07:30',
|
|
80
|
-
'07:45',
|
|
81
|
-
'08:00',
|
|
82
|
-
'08:15',
|
|
83
|
-
'08:30',
|
|
84
|
-
'08:45',
|
|
85
|
-
'09:00',
|
|
86
|
-
'09:15',
|
|
87
|
-
'09:30',
|
|
88
|
-
'09:45',
|
|
89
|
-
'10:00',
|
|
90
|
-
'10:15',
|
|
91
|
-
'10:30',
|
|
92
|
-
'10:45',
|
|
93
|
-
'11:00',
|
|
94
|
-
'11:15',
|
|
95
|
-
'11:30',
|
|
96
|
-
'11:45',
|
|
97
|
-
'12:00',
|
|
98
|
-
'12:15',
|
|
99
|
-
'12:30',
|
|
100
|
-
'12:45',
|
|
101
|
-
'13:00',
|
|
102
|
-
'13:15',
|
|
103
|
-
'13:30',
|
|
104
|
-
'13:45',
|
|
105
|
-
'14:00',
|
|
106
|
-
'14:15',
|
|
107
|
-
'14:30',
|
|
108
|
-
'14:45',
|
|
109
|
-
'15:00',
|
|
110
|
-
'15:15',
|
|
111
|
-
'15:30',
|
|
112
|
-
'15:45',
|
|
113
|
-
'16:00',
|
|
114
|
-
'16:15',
|
|
115
|
-
'16:30',
|
|
116
|
-
'16:45',
|
|
117
|
-
'17:00',
|
|
118
|
-
'17:15',
|
|
119
|
-
'17:30',
|
|
120
|
-
'17:45',
|
|
121
|
-
'18:00',
|
|
122
|
-
'18:15',
|
|
123
|
-
'18:30',
|
|
124
|
-
'18:45',
|
|
125
|
-
'19:00',
|
|
126
|
-
'19:15',
|
|
127
|
-
'19:30',
|
|
128
|
-
'19:45',
|
|
129
|
-
'20:00',
|
|
130
|
-
'20:15',
|
|
131
|
-
'20:30',
|
|
132
|
-
'20:45',
|
|
133
|
-
'21:00',
|
|
134
|
-
'21:15',
|
|
135
|
-
'21:30',
|
|
136
|
-
'21:45',
|
|
137
|
-
'22:00',
|
|
138
|
-
'22:15',
|
|
139
|
-
'22:30',
|
|
140
|
-
'22:45',
|
|
141
|
-
'23:00',
|
|
142
|
-
'23:15',
|
|
143
|
-
'23:30',
|
|
144
|
-
'23:45',
|
|
145
|
-
];
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvdXJzZS9zcmMvbGliL2ludGVyZmFjZXMvY291cnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFEQSxNQUFNLENBQU4sSUFBWSxZQVNYO0FBVEQsV0FBWSxZQUFZO0lBQ3RCLHNDQUFjLEtBQUssWUFBQSxDQUFBO0lBQ25CLHdDQUFnQixLQUFLLGNBQUEsQ0FBQTtJQUNyQix3Q0FBZ0IsS0FBSyxjQUFBLENBQUE7SUFDckIsdUNBQWUsS0FBSyxhQUFBLENBQUE7SUFDcEIsdUNBQWUsS0FBSyxhQUFBLENBQUE7SUFDcEIscUNBQWEsS0FBSyxXQUFBLENBQUE7SUFDbEIsdUNBQWUsS0FBSyxhQUFBLENBQUE7SUFDcEIscUNBQWEsSUFBSSxXQUFBLENBQUE7QUFDbkIsQ0FBQyxFQVRXLFlBQVksS0FBWixZQUFZLFFBU3ZCO0FBQ0QsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUM3QixzREFBZ0IsQ0FBQTtJQUNoQixvREFBYyxDQUFBO0lBQ2Qsc0RBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFRRCxNQUFNLENBQU4sSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzVCLHFEQUFnQixDQUFBO0lBQ2hCLHFEQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCO0FBMkJELE1BQU0sQ0FBTixJQUFZLCtCQUdYO0FBSEQsV0FBWSwrQkFBK0I7SUFDekMsMkVBQWEsSUFBSSxXQUFBLENBQUE7SUFDakIsNkVBQWUsSUFBSSxhQUFBLENBQUE7QUFDckIsQ0FBQyxFQUhXLCtCQUErQixLQUEvQiwrQkFBK0IsUUFHMUM7QUErQkQsOEJBQThCO0FBQzlCLE1BQU07QUFDTixxQkFBcUI7QUFDckIsbUJBQW1CO0FBQ25CLE9BQU87QUFDUCxNQUFNO0FBQ04sc0JBQXNCO0FBQ3RCLG1CQUFtQjtBQUNuQixPQUFPO0FBQ1AsTUFBTTtBQUNOLG9CQUFvQjtBQUNwQixtQkFBbUI7QUFDbkIsT0FBTztBQUNQLEtBQUs7QUFDTCxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLGtDQUFjLElBQUksWUFBQSxDQUFBO0lBQ2xCLG1DQUFlLElBQUksYUFBQSxDQUFBO0lBQ25CLGlDQUFhLElBQUksV0FBQSxDQUFBO0FBQ25CLENBQUMsRUFKVyxVQUFVLEtBQVYsVUFBVSxRQUlyQjtBQUNELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFFUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUVQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBRVAsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsT0FBTztJQUNQLE9BQU87Q0FDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ291cnNlQ2F0ZWdvcnkgfSBmcm9tICcuL2NhdGVnb3J5JztcbmltcG9ydCB7IE1lZGlhIH0gZnJvbSAnLi9tZWRpYSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjYXRlZ29yaWVzPzogQ291cnNlQ2F0ZWdvcnlbXTtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBzdGF0dXM6IENvdXJzZVN0YXR1cyB8IHN0cmluZztcbiAgbWVkaWE6IE1lZGlhW107XG4gIHR5cGU6IENvdXJzZVR5cGU7XG4gIGluc3RydWN0b3JJZDogc3RyaW5nO1xuICBjbGFzc3Jvb206IENvdXJzZUNsYXNzcm9vbTtcbiAgZGV0YWlsczogQ291cnNlRGV0YWlsW107XG4gIHByaWNpbmc6IENvdXJzZVByaWNpbmdbXTtcbiAgc2NoZWR1bGU6IENvdXJzZVNjaGVkdWxlW107XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZVByaWNpbmcge1xuICBpZDogc3RyaW5nO1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZVNjaGVkdWxlIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nO1xuICBzdGFydERhdGU6IHN0cmluZztcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIHN0YXJ0QXQ6IHN0cmluZztcbiAgZW5kRGF0ZTogc3RyaW5nO1xuICBlbmRUaW1lOiBzdHJpbmc7XG4gIGVuZEF0OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZUNsYXNzcm9vbSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY29udGFjdDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBwcm92aW5jZTogc3RyaW5nO1xuICBjaXR5OiBzdHJpbmc7XG4gIGNvdW50eTogc3RyaW5nO1xuICB0b3duOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgZGV0YWlsOiBzdHJpbmc7XG4gIGxhdGl0dWRlOiBzdHJpbmc7XG4gIGxvbmdpdHVkZTogc3RyaW5nO1xuICBtZWRpYTogTWVkaWFbXTtcbiAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xuICByb29tPzogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gQ291cnNlU3RhdHVzIHtcbiAgQUNUSVZFID0gPGFueT4n5bey5Y+R5biDJyxcbiAgQUNDRVBURUQgPSA8YW55Piflt7LpgJrov4cnLFxuICBBV0FJVElORyA9IDxhbnk+J+WuoeaguOS4rScsXG4gIFBFTkRJTkcgPSA8YW55PiflrqHmoLjkuK0nLFxuICBTVEFSVEVEID0gPGFueT4n5bey5byA5aeLJyxcbiAgRU5ERUQgPSA8YW55Piflt7LlrozmiJAnLFxuICBERUxFVEVEID0gPGFueT4n5bey5Yig6ZmkJyxcbiAgRFJBRlQgPSA8YW55PifojYnnqL8nLFxufVxuZXhwb3J0IGVudW0gQ291cnNlUmVxdWVzdFN0YXR1cyB7XG4gIEFXQUlUSU5HID0gJ+WuoeaguOS4rScsXG4gIEFDVElWRSA9ICflt7LpgJrov4cnLFxuICBSRUpFQ1RFRCA9ICflt7Lmi5Lnu50nLFxufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vyc2VSZXZpZXdSZWNvcmQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHN0YXR1czogQ291cnNlUmV2aWV3U3RhdHVzO1xuICBjb3Vyc2U6IENvdXJzZTtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gQ291cnNlUmV2aWV3U3RhdHVzIHtcbiAgQUNDRVBURUQgPSAn5bey6YCa6L+HJyxcbiAgUkVKRUNURUQgPSAn5pyq6YCa6L+HJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlRGV0YWlsIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nO1xuICBtZWRpYTogTWVkaWFbXTtcbiAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vyc2VTZWN0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxlY3R1cmVzOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZVtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vyc2VTZWN0aW9uTGVjdHVyZSB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0eXBlOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZUNvbnRlbnRUeXBlIHwgc3RyaW5nO1xuICBpdGVtOiBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvO1xuICBpc1VwbG9hZGluZz86IGJvb2xlYW47XG4gIHByb2dyZXNzPzogbnVtYmVyIHwgMDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cnNlU2VjdGlvbkxlY3R1cmVJdGVtIHtcbiAgaWQ6IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIENvdXJzZVNlY3Rpb25MZWN0dXJlQ29udGVudFR5cGUge1xuICBWSURFTyA9IDxhbnk+J+inhumikScsXG4gIEFSVElDTEUgPSA8YW55Pifmlofnq6AnLFxufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICB0aHVtYm5haWw6IHN0cmluZztcbiAgZHVyYXRpb246IG51bWJlcjtcbiAgaXNVcGxvYWRpbmc/OiBib29sZWFuO1xuICBwcm9ncmVzczogbnVtYmVyIHwgMDtcbiAgY2FuQmVQcmV2aWV3ZWQ6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIENvdXJzZVNlY3Rpb25MZWN0dXJlVmlkZW9NZXRhZGF0YSB7XG4gIGR1cmF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGUge1xuICBpZD86IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nO1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIHN0YXJ0VGltZT86IHN0cmluZztcbiAgc3RhcnRBdDogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xuICBlbmRUaW1lPzogc3RyaW5nO1xuICBlbmRBdDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcmljaW5nIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbn1cbi8vIGV4cG9ydCBjb25zdCBDb3Vyc2VUeXBlID0gW1xuLy8gICB7XG4vLyAgICAga2V5OiAnT05MSU5FJyxcbi8vICAgICB2YWx1ZTogJ+e6v+S4iicsXG4vLyAgIH0sXG4vLyAgIHtcbi8vICAgICBrZXk6ICdPRkZMSU5FJyxcbi8vICAgICB2YWx1ZTogJ+e6v+S4iycsXG4vLyAgIH0sXG4vLyAgIHtcbi8vICAgICBrZXk6ICdNSVhFRCcsXG4vLyAgICAgdmFsdWU6ICfmt7flkIgnLFxuLy8gICB9LFxuLy8gXTtcbmV4cG9ydCBlbnVtIENvdXJzZVR5cGUge1xuICBPTkxJTkUgPSA8YW55Pifnur/kuIonLFxuICBPRkZMSU5FID0gPGFueT4n57q/5LiLJyxcbiAgTUlYRUQgPSA8YW55Pifmt7flkIgnLFxufVxuZXhwb3J0IGNvbnN0IFNjaGVkdWxlRGF0ZSA9IFtcbiAgJzAwOjAwJyxcbiAgJzAwOjE1JyxcbiAgJzAwOjMwJyxcbiAgJzAwOjQ1JyxcblxuICAnMDE6MDAnLFxuICAnMDE6MTUnLFxuICAnMDE6MzAnLFxuICAnMDE6NDUnLFxuXG4gICcwMjowMCcsXG4gICcwMjoxNScsXG4gICcwMjozMCcsXG4gICcwMjo0NScsXG4gICcwMzowMCcsXG4gICcwMzoxNScsXG4gICcwMzozMCcsXG4gICcwMzo0NScsXG5cbiAgJzA0OjAwJyxcbiAgJzA0OjE1JyxcbiAgJzA0OjMwJyxcbiAgJzA0OjQ1JyxcbiAgJzA1OjAwJyxcbiAgJzA1OjE1JyxcbiAgJzA1OjMwJyxcbiAgJzA1OjQ1JyxcblxuICAnMDY6MDAnLFxuICAnMDY6MTUnLFxuICAnMDY6MzAnLFxuICAnMDY6NDUnLFxuICAnMDc6MDAnLFxuICAnMDc6MTUnLFxuICAnMDc6MzAnLFxuICAnMDc6NDUnLFxuXG4gICcwODowMCcsXG4gICcwODoxNScsXG4gICcwODozMCcsXG4gICcwODo0NScsXG4gICcwOTowMCcsXG4gICcwOToxNScsXG4gICcwOTozMCcsXG4gICcwOTo0NScsXG5cbiAgJzEwOjAwJyxcbiAgJzEwOjE1JyxcbiAgJzEwOjMwJyxcbiAgJzEwOjQ1JyxcbiAgJzExOjAwJyxcbiAgJzExOjE1JyxcbiAgJzExOjMwJyxcbiAgJzExOjQ1JyxcblxuICAnMTI6MDAnLFxuICAnMTI6MTUnLFxuICAnMTI6MzAnLFxuICAnMTI6NDUnLFxuICAnMTM6MDAnLFxuICAnMTM6MTUnLFxuICAnMTM6MzAnLFxuICAnMTM6NDUnLFxuXG4gICcxNDowMCcsXG4gICcxNDoxNScsXG4gICcxNDozMCcsXG4gICcxNDo0NScsXG4gICcxNTowMCcsXG4gICcxNToxNScsXG4gICcxNTozMCcsXG4gICcxNTo0NScsXG5cbiAgJzE2OjAwJyxcbiAgJzE2OjE1JyxcbiAgJzE2OjMwJyxcbiAgJzE2OjQ1JyxcbiAgJzE3OjAwJyxcbiAgJzE3OjE1JyxcbiAgJzE3OjMwJyxcbiAgJzE3OjQ1JyxcblxuICAnMTg6MDAnLFxuICAnMTg6MTUnLFxuICAnMTg6MzAnLFxuICAnMTg6NDUnLFxuICAnMTk6MDAnLFxuICAnMTk6MTUnLFxuICAnMTk6MzAnLFxuICAnMTk6NDUnLFxuXG4gICcyMDowMCcsXG4gICcyMDoxNScsXG4gICcyMDozMCcsXG4gICcyMDo0NScsXG4gICcyMTowMCcsXG4gICcyMToxNScsXG4gICcyMTozMCcsXG4gICcyMTo0NScsXG5cbiAgJzIyOjAwJyxcbiAgJzIyOjE1JyxcbiAgJzIyOjMwJyxcbiAgJzIyOjQ1JyxcbiAgJzIzOjAwJyxcbiAgJzIzOjE1JyxcbiAgJzIzOjMwJyxcbiAgJzIzOjQ1Jyxcbl07XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { CourseStatus, CourseRequestStatus, ScheduleDate, CourseType, CourseReviewStatus, CourseSectionLectureContentType, } from './course';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsWUFBWSxFQUNaLG1CQUFtQixFQUtuQixZQUFZLEVBRVosVUFBVSxFQUVWLGtCQUFrQixFQUtsQiwrQkFBK0IsR0FFaEMsTUFBTSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNZWRpYSB9IGZyb20gJy4vbWVkaWEnO1xuZXhwb3J0IHtcbiAgQ291cnNlLFxuICBDb3Vyc2VTdGF0dXMsXG4gIENvdXJzZVJlcXVlc3RTdGF0dXMsXG4gIENvdXJzZURldGFpbCxcbiAgU2NoZWR1bGUsXG4gIENvdXJzZVNjaGVkdWxlLFxuICBDb3Vyc2VQcmljaW5nLFxuICBTY2hlZHVsZURhdGUsXG4gIFByaWNpbmcsXG4gIENvdXJzZVR5cGUsXG4gIENvdXJzZVJldmlld1JlY29yZCxcbiAgQ291cnNlUmV2aWV3U3RhdHVzLFxuICBDb3Vyc2VDbGFzc3Jvb20sXG4gIENvdXJzZVNlY3Rpb24sXG4gIENvdXJzZVNlY3Rpb25MZWN0dXJlLFxuICBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvLFxuICBDb3Vyc2VTZWN0aW9uTGVjdHVyZUNvbnRlbnRUeXBlLFxuICBDb3Vyc2VTZWN0aW9uTGVjdHVyZVZpZGVvTWV0YWRhdGEsXG59IGZyb20gJy4vY291cnNlJztcblxuZXhwb3J0IHsgQ291cnNlQ2F0ZWdvcnksIENvdXJzZUNhdGVnb3J5TWVkaWEgfSBmcm9tICcuL2NhdGVnb3J5JztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvaW50ZXJmYWNlcy9tZWRpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZWRpYSB7XG4gIGlkPzogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHV1aWQ/OiBzdHJpbmc7XG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { CategoryService, CourseService } from '../../../services';
|
|
3
|
-
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
4
|
-
import { AngularComponentsModule, BaseComponent, RichItemComponent, RichViewComponent } from '@rolatech/angular-components';
|
|
5
|
-
import { CourseItemComponent } from '../../../components/course-item/course-item.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
export class CourseCategoryComponent extends BaseComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.categoryService = inject(CategoryService);
|
|
12
|
-
this.courseService = inject(CourseService);
|
|
13
|
-
this.courses = [];
|
|
14
|
-
this.categories = [];
|
|
15
|
-
this.loading = false;
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.findAllCategories();
|
|
19
|
-
this.route.paramMap.subscribe((params) => {
|
|
20
|
-
const id = params.get('id');
|
|
21
|
-
this.findCategoryById(id);
|
|
22
|
-
this.findCoursesByCategoryId(id);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
findAllCategories() {
|
|
26
|
-
this.categoryService.find({}).subscribe({
|
|
27
|
-
next: (res) => {
|
|
28
|
-
this.categories = res.data;
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
findCategoryById(id) {
|
|
33
|
-
this.categoryService.get(id).subscribe({
|
|
34
|
-
next: (res) => {
|
|
35
|
-
this.category = res.data;
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
findAllCourses() {
|
|
40
|
-
this.courseService.find({}).subscribe({
|
|
41
|
-
next: (res) => {
|
|
42
|
-
this.courses = res.data;
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
findCoursesByCategoryId(id) {
|
|
47
|
-
this.loading = true;
|
|
48
|
-
const options = {
|
|
49
|
-
filter: `categories:${id},published:true`,
|
|
50
|
-
};
|
|
51
|
-
this.courseService.find(options).subscribe({
|
|
52
|
-
next: (res) => {
|
|
53
|
-
this.courses = res.data;
|
|
54
|
-
this.loading = false;
|
|
55
|
-
},
|
|
56
|
-
error: (error) => {
|
|
57
|
-
this.loading = false;
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
loadCoursesByCategory(item) {
|
|
62
|
-
// [routerLink] = "['../../', item.id]";
|
|
63
|
-
this.router.navigate([`../../${item.id}`], {
|
|
64
|
-
relativeTo: this.route,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseCategoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: CourseCategoryComponent, isStandalone: true, selector: "rolatech-course-category", usesInheritance: true, ngImport: i0, template: "<div>\n @if (category) {\n <div class=\"p-3 hidden md:block text-2xl font-medium\">{{ category.name }}</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]=\"['../../', 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: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }], deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseCategoryComponent, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, CourseItemComponent, RichViewComponent, RichItemComponent], selector: 'rolatech-course-category', template: "<div>\n @if (category) {\n <div class=\"p-3 hidden md:block text-2xl font-medium\">{{ category.name }}</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]=\"['../../', 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" }]
|
|
73
|
-
}] });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWNhdGVnb3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWNhdGVnb3J5L2NvdXJzZS1jYXRlZ29yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1jYXRlZ29yeS9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7OztBQVM1RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsYUFBYTtJQVAxRDs7UUFRRSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0QyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBcUIsRUFBRSxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxLQUFLLENBQUM7S0FxRGpCO0lBbkRDLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFnQixFQUFFLEVBQUU7WUFDakQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzdCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBVTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDckMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMzQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHVCQUF1QixDQUFDLEVBQVU7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNLEVBQUUsY0FBYyxFQUFFLGlCQUFpQjtTQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQVM7UUFDN0IseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0ExRFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMkdDZnBDLDZoREF3Q0EseUREOUJZLG1CQUFtQiw4QkFBRSx1QkFBdUIsK0JBQXVCLGlCQUFpQiw4R0FBRSxpQkFBaUI7OzJGQUt0Ryx1QkFBdUI7a0JBUG5DLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsWUFDeEcsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1NYXAgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ291cnNlQ2F0ZWdvcnksIENvdXJzZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlLCBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQmFzZUNvbXBvbmVudCwgUmljaEl0ZW1Db21wb25lbnQsIFJpY2hWaWV3Q29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb3Vyc2VJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtaXRlbS9jb3Vyc2UtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0FuZ3VsYXJDb21tb25Nb2R1bGUsIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb3Vyc2VJdGVtQ29tcG9uZW50LCBSaWNoVmlld0NvbXBvbmVudCwgUmljaEl0ZW1Db21wb25lbnRdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvdXJzZS1jYXRlZ29yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KENhdGVnb3J5U2VydmljZSk7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIGNhdGVnb3J5ITogQ291cnNlQ2F0ZWdvcnk7XG4gIGNvdXJzZXM6IENvdXJzZVtdID0gW107XG4gIGNhdGVnb3JpZXM6IENvdXJzZUNhdGVnb3J5W10gPSBbXTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZEFsbENhdGVnb3JpZXMoKTtcbiAgICB0aGlzLnJvdXRlLnBhcmFtTWFwLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbU1hcCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgICAgIHRoaXMuZmluZENhdGVnb3J5QnlJZChpZCk7XG4gICAgICB0aGlzLmZpbmRDb3Vyc2VzQnlDYXRlZ29yeUlkKGlkKTtcbiAgICB9KTtcbiAgfVxuICBmaW5kQWxsQ2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQ2F0ZWdvcnlCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXQoaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQWxsQ291cnNlcygpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZCh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvdXJzZXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZENvdXJzZXNCeUNhdGVnb3J5SWQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGZpbHRlcjogYGNhdGVnb3JpZXM6JHtpZH0scHVibGlzaGVkOnRydWVgLFxuICAgIH07XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmQob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvdXJzZXMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBsb2FkQ291cnNlc0J5Q2F0ZWdvcnkoaXRlbTogYW55KSB7XG4gICAgLy8gIFtyb3V0ZXJMaW5rXSA9IFwiWycuLi8uLi8nLCBpdGVtLmlkXVwiO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi4vLi4vJHtpdGVtLmlkfWBdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2PlxuICBAaWYgKGNhdGVnb3J5KSB7XG4gICAgPGRpdiBjbGFzcz1cInAtMyBoaWRkZW4gbWQ6YmxvY2sgdGV4dC0yeGwgZm9udC1tZWRpdW1cIj57eyBjYXRlZ29yeS5uYW1lIH19PC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFuaW1hdGUtcHVsc2Ugdy1mdWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaC00IGJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZCBjb2wtc3Bhbi0yXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChsb2FkaW5nKSB7XG4gICAgQGZvciAobnVtYmVyIG9mIFswLCAxLCAyLCAzLCA0LCA1XTsgdHJhY2sgbnVtYmVyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbmltYXRlLXB1bHNlIG10LTMgbXItNCBjdXJzb3ItcG9pbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImgtZml0IHctMi81IG1kOnctMS80IGFzcGVjdC12aWRlbyBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQtbGdcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctMy81IG1kOnctMy80IG1sLTMgcHktMSBmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTQgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTIgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTFcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTIgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTEgcHktMVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0yIGJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZCBjb2wtc3Bhbi0yIHB5LTFcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIDxyb2xhdGVjaC1yaWNoLXZpZXcgbGlzdD5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgY291cnNlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAZGVmZXIge1xuICAgICAgICAgIDxyb2xhdGVjaC1yaWNoLWl0ZW1cbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vJywgaXRlbS5pZF1cIlxuICAgICAgICAgICAgW3RodW1ibmFpbF09XCJpdGVtLm1lZGlhWzBdLnVybCArICchdzQwMCdcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0ubmFtZVwiXG4gICAgICAgICAgICBbc3VidGl0bGVdPVwiaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbcHJpY2VdPVwiaXRlbS5wcmljaW5nWzBdLnRvdGFsIC8gMTAwXCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1yaWNoLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L3JvbGF0ZWNoLXJpY2gtdmlldz5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { Component, effect, inject } from '@angular/core';
|
|
2
|
-
import { CourseSectionLectureContentType, CourseStatus } from '../../../interfaces';
|
|
3
|
-
import { CourseSectionService, CourseService } from '../../../services';
|
|
4
|
-
import { AuthService, AuthUserService } from '@rolatech/angular-auth';
|
|
5
|
-
import { AngularComponentsModule, ContainerComponent, BaseComponent } from '@rolatech/angular-components';
|
|
6
|
-
import { ViewportScroller } from '@angular/common';
|
|
7
|
-
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
8
|
-
import { CommentsComponent } from '@rolatech/angular-comment';
|
|
9
|
-
import { CourseActionComponent } from '../../../components/course-action/course-action.component';
|
|
10
|
-
import { CourseDetailsComponent } from '../../../components/course-details/course-details.component';
|
|
11
|
-
import { CourseInfoComponent } from '../../../components/course-info/course-info.component';
|
|
12
|
-
import { CourseMediaComponent } from '../../../components/course-media/course-media.component';
|
|
13
|
-
import { CoursePricingComponent } from '../../../components/course-pricing/course-pricing.component';
|
|
14
|
-
import { CourseScheduleComponent } from '../../../components/course-schedule/course-schedule.component';
|
|
15
|
-
import { CourseSectionsComponent } from '../../../components/course-sections/course-sections.component';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
export class CourseDetailComponent extends BaseComponent {
|
|
18
|
-
constructor() {
|
|
19
|
-
super();
|
|
20
|
-
this.status = CourseStatus;
|
|
21
|
-
this.authService = inject(AuthService);
|
|
22
|
-
this.authUserService = inject(AuthUserService);
|
|
23
|
-
this.courseService = inject(CourseService);
|
|
24
|
-
this.viewportScroller = inject(ViewportScroller);
|
|
25
|
-
this.courseSectionService = inject(CourseSectionService);
|
|
26
|
-
this.authenticated = this.authService.authenticated;
|
|
27
|
-
this.instructorName = '';
|
|
28
|
-
this.username = '';
|
|
29
|
-
this.inWishList = false;
|
|
30
|
-
this.purchased = false;
|
|
31
|
-
this.sections = [];
|
|
32
|
-
this.type = CourseSectionLectureContentType;
|
|
33
|
-
effect(() => {
|
|
34
|
-
if (this.authenticated()) {
|
|
35
|
-
this.findPurchasedByCourseId();
|
|
36
|
-
this.findWishlistBy();
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.findOne();
|
|
42
|
-
this.findSections();
|
|
43
|
-
}
|
|
44
|
-
scrollToAnchor(anchorId) {
|
|
45
|
-
// this.viewportScroller.setOffset([100, 100]);
|
|
46
|
-
document.getElementById(anchorId)?.scrollIntoView({
|
|
47
|
-
behavior: 'smooth',
|
|
48
|
-
block: 'start',
|
|
49
|
-
inline: 'nearest',
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
findOne() {
|
|
53
|
-
this.courseService.get(this.id).subscribe({
|
|
54
|
-
next: (res) => {
|
|
55
|
-
this.course = res.data;
|
|
56
|
-
this.findUserBaseInfo(this.course.instructorId);
|
|
57
|
-
this.titleService.setTitle(`${this.course.name} - 拼小课`);
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
findSections() {
|
|
62
|
-
this.courseSectionService.findSections(this.id).subscribe({
|
|
63
|
-
next: (res) => {
|
|
64
|
-
this.sections = res.data;
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
findUserBaseInfo(userId) {
|
|
69
|
-
this.authUserService.getPublicUserInfo(userId).subscribe({
|
|
70
|
-
next: (res) => {
|
|
71
|
-
this.instructorName = res.name;
|
|
72
|
-
this.username = res.username;
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
onWish(e) {
|
|
77
|
-
if (this.authenticated()) {
|
|
78
|
-
if (this.inWishList) {
|
|
79
|
-
this.removeFromWishlist();
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.addToWishlist();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
this.snackBarService.open('请先登录');
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
checkout(e) {
|
|
90
|
-
if (this.authenticated()) {
|
|
91
|
-
this.router.navigateByUrl(`/cart/checkout/courses/${this.id}`);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
this.snackBarService.open('请先登录');
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
removeFromWishlist() {
|
|
98
|
-
this.courseService.removeFromWishlist(this.id).subscribe({
|
|
99
|
-
next: (res) => {
|
|
100
|
-
this.inWishList = false;
|
|
101
|
-
},
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
addToWishlist() {
|
|
105
|
-
this.courseService.addToWishlist(this.id).subscribe({
|
|
106
|
-
next: (res) => {
|
|
107
|
-
this.inWishList = true;
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
onSection(event) {
|
|
112
|
-
const { section, lecture } = event;
|
|
113
|
-
this.router.navigate(['/courses', this.course.id, 'sections', section.id, 'lectures', lecture.id]);
|
|
114
|
-
}
|
|
115
|
-
findWishlistBy() {
|
|
116
|
-
this.courseService.findWishlistBy(this.id).subscribe({
|
|
117
|
-
next: (res) => {
|
|
118
|
-
this.inWishList = res.data;
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
findPurchasedByCourseId() {
|
|
123
|
-
this.courseService.findPurchasedByCourseId(this.id).subscribe({
|
|
124
|
-
next: (res) => {
|
|
125
|
-
this.purchased = res.data ? true : false;
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: CourseDetailComponent, isStandalone: true, selector: "rolatech-course-detail", usesInheritance: true, ngImport: i0, template: "@if (course) {\n <rolatech-container>\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" }] }); }
|
|
131
|
-
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseDetailComponent, decorators: [{
|
|
133
|
-
type: Component,
|
|
134
|
-
args: [{ standalone: true, imports: [
|
|
135
|
-
AngularCommonModule,
|
|
136
|
-
AngularComponentsModule,
|
|
137
|
-
CourseInfoComponent,
|
|
138
|
-
CourseSectionsComponent,
|
|
139
|
-
CourseScheduleComponent,
|
|
140
|
-
CourseDetailsComponent,
|
|
141
|
-
CourseMediaComponent,
|
|
142
|
-
CoursePricingComponent,
|
|
143
|
-
CourseActionComponent,
|
|
144
|
-
CommentsComponent,
|
|
145
|
-
ContainerComponent,
|
|
146
|
-
], selector: 'rolatech-course-detail', template: "@if (course) {\n <rolatech-container>\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" }]
|
|
147
|
-
}], ctorParameters: () => [] });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1kZXRhaWwvY291cnNlLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1kZXRhaWwvY291cnNlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFpQiwrQkFBK0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFv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RkFDcEIsc0JBQXNCLHlGQUN0QixxQkFBcUIsNElBQ3JCLGlCQUFpQixrRkFDakIsa0JBQWtCOzsyRkFNVCxxQkFBcUI7a0JBbkJqQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjtxQkFDbkIsWUFDUyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb24sIENvdXJzZVNlY3Rpb25MZWN0dXJlQ29udGVudFR5cGUsIENvdXJzZVN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ291cnNlU2VjdGlvblNlcnZpY2UsIENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQXV0aFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQ29udGFpbmVyQ29tcG9uZW50LCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tZW50JztcbmltcG9ydCB7IENvdXJzZUFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY291cnNlLWFjdGlvbi9jb3Vyc2UtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtZGV0YWlscy9jb3Vyc2UtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY291cnNlLWluZm8vY291cnNlLWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZU1lZGlhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtbWVkaWEvY291cnNlLW1lZGlhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VQcmljaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2UtcHJpY2luZy9jb3Vyc2UtcHJpY2luZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlU2NoZWR1bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1zY2hlZHVsZS9jb3Vyc2Utc2NoZWR1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb3Vyc2Utc2VjdGlvbnMvY291cnNlLXNlY3Rpb25zLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgQ291cnNlSW5mb0NvbXBvbmVudCxcbiAgICBDb3Vyc2VTZWN0aW9uc0NvbXBvbmVudCxcbiAgICBDb3Vyc2VTY2hlZHVsZUNvbXBvbmVudCxcbiAgICBDb3Vyc2VEZXRhaWxzQ29tcG9uZW50LFxuICAgIENvdXJzZU1lZGlhQ29tcG9uZW50LFxuICAgIENvdXJzZVByaWNpbmdDb21wb25lbnQsXG4gICAgQ291cnNlQWN0aW9uQ29tcG9uZW50LFxuICAgIENvbW1lbnRzQ29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZURldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb3Vyc2U6IGFueTtcbiAgc3RhdHVzOiBhbnkgPSBDb3Vyc2VTdGF0dXM7XG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIGNvdXJzZVNlcnZpY2UgPSBpbmplY3QoQ291cnNlU2VydmljZSk7XG4gIHZpZXdwb3J0U2Nyb2xsZXIgPSBpbmplY3QoVmlld3BvcnRTY3JvbGxlcik7XG4gIGNvdXJzZVNlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlY3Rpb25TZXJ2aWNlKTtcbiAgYXV0aGVudGljYXRlZCA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZDtcbiAgaW5zdHJ1Y3Rvck5hbWUgPSAnJztcbiAgdXNlcm5hbWUgPSAnJztcbiAgaW5XaXNoTGlzdCA9IGZhbHNlO1xuICBwdXJjaGFzZWQgPSBmYWxzZTtcbiAgc2VjdGlvbnM6IENvdXJzZVNlY3Rpb25bXSA9IFtdO1xuICB0eXBlID0gQ291cnNlU2VjdGlvbkxlY3R1cmVDb250ZW50VHlwZTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICAgIHRoaXMuZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQoKTtcbiAgICAgICAgdGhpcy5maW5kV2lzaGxpc3RCeSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZE9uZSgpO1xuICAgIHRoaXMuZmluZFNlY3Rpb25zKCk7XG4gIH1cbiAgc2Nyb2xsVG9BbmNob3IoYW5jaG9ySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIHRoaXMudmlld3BvcnRTY3JvbGxlci5zZXRPZmZzZXQoWzEwMCwgMTAwXSk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYW5jaG9ySWQpPy5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgIGlubGluZTogJ25lYXJlc3QnLFxuICAgIH0pO1xuICB9XG4gIGZpbmRPbmUoKSB7XG4gICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291cnNlID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuZmluZFVzZXJCYXNlSW5mbyh0aGlzLmNvdXJzZS5pbnN0cnVjdG9ySWQpO1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShgJHt0aGlzLmNvdXJzZS5uYW1lfSAtIOaLvOWwj+ivvmApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kU2VjdGlvbnMoKSB7XG4gICAgdGhpcy5jb3Vyc2VTZWN0aW9uU2VydmljZS5maW5kU2VjdGlvbnModGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVXNlckJhc2VJbmZvKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8odXNlcklkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluc3RydWN0b3JOYW1lID0gcmVzLm5hbWU7XG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSByZXMudXNlcm5hbWU7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uV2lzaChlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIGlmICh0aGlzLmluV2lzaExpc3QpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVGcm9tV2lzaGxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkVG9XaXNobGlzdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCfor7flhYjnmbvlvZUnKTtcbiAgICB9XG4gIH1cbiAgY2hlY2tvdXQoZTogYW55KSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvY2FydC9jaGVja291dC9jb3Vyc2VzLyR7dGhpcy5pZH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3Blbign6K+35YWI55m75b2VJyk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcmVtb3ZlRnJvbVdpc2hsaXN0KCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5yZW1vdmVGcm9tV2lzaGxpc3QodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5pbldpc2hMaXN0ID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgYWRkVG9XaXNobGlzdCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuYWRkVG9XaXNobGlzdCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmluV2lzaExpc3QgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHsgc2VjdGlvbiwgbGVjdHVyZSB9ID0gZXZlbnQ7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY291cnNlcycsIHRoaXMuY291cnNlLmlkLCAnc2VjdGlvbnMnLCBzZWN0aW9uLmlkLCAnbGVjdHVyZXMnLCBsZWN0dXJlLmlkXSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRXaXNobGlzdEJ5KCkge1xuICAgIHRoaXMuY291cnNlU2VydmljZS5maW5kV2lzaGxpc3RCeSh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaW5XaXNoTGlzdCA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUHVyY2hhc2VkQnlDb3Vyc2VJZCgpIHtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZFB1cmNoYXNlZEJ5Q291cnNlSWQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnB1cmNoYXNlZCA9IHJlcy5kYXRhID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChjb3Vyc2UpIHtcbiAgPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIGdhcC0zIG1kOmZsZXgtcm93IHctZnVsbCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZDp3LTMvNFwiPlxuICAgICAgICA8cm9sYXRlY2gtY291cnNlLWluZm8gW2NvdXJzZV09XCJjb3Vyc2VcIiBbaW5zdHJ1Y3Rvcl09XCJpbnN0cnVjdG9yTmFtZVwiIFt1c2VybmFtZV09XCJ1c2VybmFtZVwiPiA8L3JvbGF0ZWNoLWNvdXJzZS1pbmZvPlxuICAgICAgICA8cm9sYXRlY2gtY291cnNlLXNlY3Rpb25zXG4gICAgICAgICAgW3NlY3Rpb25zXT1cInNlY3Rpb25zXCJcbiAgICAgICAgICAoc2VjdGlvbik9XCJvblNlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNoZWNrb3V0KT1cImNoZWNrb3V0KCRldmVudClcIlxuICAgICAgICAgIFtwdXJjaGFzZWRdPVwicHVyY2hhc2VkXCJcbiAgICAgICAgPjwvcm9sYXRlY2gtY291cnNlLXNlY3Rpb25zPlxuICAgICAgICA8cm9sYXRlY2gtY291cnNlLXNjaGVkdWxlIFtzY2hlZHVsZV09XCJjb3Vyc2Uuc2NoZWR1bGVcIj48L3JvbGF0ZWNoLWNvdXJzZS1zY2hlZHVsZT5cbiAgICAgICAgPHJvbGF0ZWNoLWNvdXJzZS1kZXRhaWxzIFtkZXRhaWxzXT1cImNvdXJzZS5kZXRhaWxzXCI+PC9yb2xhdGVjaC1jb3Vyc2UtZGV0YWlscz5cbiAgICAgICAgPHJvbGF0ZWNoLWNvbW1lbnRzIFtpdGVtSWRdPVwiY291cnNlLmlkXCI+PC9yb2xhdGVjaC1jb21tZW50cz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1kOnB4LTNcIj5cbiAgICAgICAgPCEtLSA8cm9sYXRlY2gtY291cnNlLW1lZGlhIFttaW5dPVwiIXB1cmNoYXNlZFwiIFttZWRpYV09XCJjb3Vyc2UubWVkaWFcIiBbbWluXT1cInRydWVcIj48L3JvbGF0ZWNoLWNvdXJzZS1tZWRpYT4gLS0+XG4gICAgICAgIDxyb2xhdGVjaC1jb3Vyc2UtbWVkaWEgW21lZGlhXT1cImNvdXJzZS5tZWRpYVwiIFttaW5dPVwidHJ1ZVwiPjwvcm9sYXRlY2gtY291cnNlLW1lZGlhPlxuICAgICAgICBAaWYgKCFwdXJjaGFzZWQpIHtcbiAgICAgICAgICA8cm9sYXRlY2gtY291cnNlLXByaWNpbmcgW3ByaWNpbmddPVwiY291cnNlLnByaWNpbmdcIj48L3JvbGF0ZWNoLWNvdXJzZS1wcmljaW5nPlxuICAgICAgICAgIDxyb2xhdGVjaC1jb3Vyc2UtYWN0aW9uXG4gICAgICAgICAgICBbY291cnNlXT1cImNvdXJzZVwiXG4gICAgICAgICAgICAoY2hlY2tvdXQpPVwiY2hlY2tvdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAod2lzaCk9XCJvbldpc2goJGV2ZW50KVwiXG4gICAgICAgICAgICBbaW5XaXNoTGlzdF09XCJpbldpc2hMaXN0XCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1jb3Vyc2UtYWN0aW9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9yb2xhdGVjaC1jb250YWluZXI+XG59XG4iXX0=
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { CategoryService, CourseService } from '../../../services';
|
|
3
|
-
import { AngularCommonModule, FixedPipe } from '@rolatech/angular-common';
|
|
4
|
-
import { AngularComponentsModule, BaseComponent, RichItemComponent, RichViewComponent } from '@rolatech/angular-components';
|
|
5
|
-
import { CourseItemComponent } from '../../../components/course-item/course-item.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
export class CourseIndexComponent extends BaseComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.courses = [];
|
|
12
|
-
this.categories = [];
|
|
13
|
-
this.courseService = inject(CourseService);
|
|
14
|
-
this.categoryService = inject(CategoryService);
|
|
15
|
-
this.loading = false;
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.findCategories();
|
|
19
|
-
this.findCourses();
|
|
20
|
-
this.titleService.setTitle('课程 - 拼小课');
|
|
21
|
-
}
|
|
22
|
-
findCourses() {
|
|
23
|
-
this.loading = true;
|
|
24
|
-
const options = {
|
|
25
|
-
sort: 'updatedAt desc',
|
|
26
|
-
filter: 'published:true',
|
|
27
|
-
};
|
|
28
|
-
this.courseService.find(options).subscribe({
|
|
29
|
-
next: (res) => {
|
|
30
|
-
this.courses = res.data;
|
|
31
|
-
this.meta = res.meta;
|
|
32
|
-
this.loading = false;
|
|
33
|
-
},
|
|
34
|
-
error: (error) => {
|
|
35
|
-
this.loading = false;
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
findCategories() {
|
|
40
|
-
this.categoryService.find({}).subscribe({
|
|
41
|
-
next: (res) => {
|
|
42
|
-
this.categories = res.data;
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: CourseIndexComponent, isStandalone: true, selector: "rolatech-course-index", usesInheritance: true, ngImport: i0, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u8BFE\u7A0B</div>\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 hover: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 $index) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.pricing[0].total | fixed\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: ["img:before{border-radius:12px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }], deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent, FixedPipe]] }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseIndexComponent, decorators: [{
|
|
50
|
-
type: Component,
|
|
51
|
-
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, CourseItemComponent, RichViewComponent, RichItemComponent, FixedPipe], selector: 'rolatech-course-index', template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u8BFE\u7A0B</div>\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 hover: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 $index) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.pricing[0].total | fixed\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: ["img:before{border-radius:12px}\n"] }]
|
|
52
|
-
}] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLWluZGV4L2NvdXJzZS1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1pbmRleC9jb3Vyc2UtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFTNUYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFQdkQ7O1FBUUUsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQXFCLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxQyxZQUFPLEdBQUcsS0FBSyxDQUFDO0tBK0JqQjtJQTdCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3RDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcENVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHdHQ2RqQyw0NUNBa0NBLHlGRHpCWSxtQkFBbUIsOEJBQUUsdUJBQXVCLCtCQUF1QixpQkFBaUIsOEdBQUUsaUJBQWlCLEVBQUUsU0FBUzs7MkZBS2pILG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUMsWUFDbkgsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ291cnNlQ2F0ZWdvcnksIENvdXJzZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlLCBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSwgRml4ZWRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBCYXNlQ29tcG9uZW50LCBSaWNoSXRlbUNvbXBvbmVudCwgUmljaFZpZXdDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IENvdXJzZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvdXJzZS1pdGVtL2NvdXJzZS1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIENvdXJzZUl0ZW1Db21wb25lbnQsIFJpY2hWaWV3Q29tcG9uZW50LCBSaWNoSXRlbUNvbXBvbmVudCwgRml4ZWRQaXBlXSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtaW5kZXgnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291cnNlLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291cnNlLWluZGV4LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZUluZGV4Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvdXJzZXM6IENvdXJzZVtdID0gW107XG4gIGNhdGVnb3JpZXM6IENvdXJzZUNhdGVnb3J5W10gPSBbXTtcbiAgY291cnNlU2VydmljZSA9IGluamVjdChDb3Vyc2VTZXJ2aWNlKTtcbiAgY2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KENhdGVnb3J5U2VydmljZSk7XG4gIG1ldGE6IGFueTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZENhdGVnb3JpZXMoKTtcbiAgICB0aGlzLmZpbmRDb3Vyc2VzKCk7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoJ+ivvueoiyAtIOaLvOWwj+ivvicpO1xuICB9XG4gIGZpbmRDb3Vyc2VzKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICd1cGRhdGVkQXQgZGVzYycsXG4gICAgICBmaWx0ZXI6ICdwdWJsaXNoZWQ6dHJ1ZScsXG4gICAgfTtcbiAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZmluZChvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291cnNlcyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLm1ldGEgPSByZXMubWV0YTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZENhdGVnb3JpZXMoKSB7XG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZmluZCh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaW4tdy1bMzIwcHhdIG1heC13LVsxMTIwcHhdIG0tYXV0b1wiPlxuICA8ZGl2IGNsYXNzPVwicC0zIGhpZGRlbiBtZDpibG9jayB0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPuWFqOmDqOivvueoizwvZGl2PlxuICBAaWYgKGxvYWRpbmcpIHtcbiAgICBAZm9yIChudW1iZXIgb2YgWzAsIDEsIDIsIDMsIDQsIDVdOyB0cmFjayBudW1iZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFuaW1hdGUtcHVsc2UgbXQtMyBtci00IGN1cnNvci1wb2ludGVyIHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC1maXQgdy0yLzUgbWQ6dy0xLzQgYXNwZWN0LXZpZGVvIGhvdmVyOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0zLzUgbWQ6dy0zLzQgbWwtMyBweS0xIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMSBweS0xXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTIgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTIgcHktMVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPHJvbGF0ZWNoLXJpY2gtdmlldyBsaXN0PlxuICAgICAgQGZvciAoaXRlbSBvZiBjb3Vyc2VzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICA8cm9sYXRlY2gtcmljaC1pdGVtXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4vJywgaXRlbS5pZF1cIlxuICAgICAgICAgICAgW3RodW1ibmFpbF09XCJpdGVtLm1lZGlhWzBdLnVybCArICchdzQwMCdcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0ubmFtZVwiXG4gICAgICAgICAgICBbc3VidGl0bGVdPVwiaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbcHJpY2VdPVwiaXRlbS5wcmljaW5nWzBdLnRvdGFsIHwgZml4ZWRcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLXJpY2gtaXRlbT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvcm9sYXRlY2gtcmljaC12aWV3PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { CategoryService, CourseService } from '../../../services';
|
|
3
|
-
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
4
|
-
import { AngularComponentsModule, ContainerComponent, BaseComponent, ListComponent } from '@rolatech/angular-components';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
export class CourseLayoutComponent extends BaseComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.categories = [];
|
|
11
|
-
this.categoryService = inject(CategoryService);
|
|
12
|
-
this.courseService = inject(CourseService);
|
|
13
|
-
this.selectIndex = 0;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.findCategories();
|
|
17
|
-
}
|
|
18
|
-
findCategories() {
|
|
19
|
-
this.categoryService.find({}).subscribe({
|
|
20
|
-
next: (res) => {
|
|
21
|
-
this.categories = res.data;
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
loadCourseByCategoryIndex(index) {
|
|
26
|
-
this.selectIndex = index;
|
|
27
|
-
const id = this.categories[index].id;
|
|
28
|
-
if (index === 0) {
|
|
29
|
-
this.router.navigate([`/courses`]);
|
|
30
|
-
// this.courseService.find({}).subscribe({
|
|
31
|
-
// next: res => {
|
|
32
|
-
// }
|
|
33
|
-
// })
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.router.navigate([`../courses/categories/${id}`], {
|
|
37
|
-
relativeTo: this.route,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
nextCategory() { }
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.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"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }] }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: CourseLayoutComponent, decorators: [{
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent, ListComponent], 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"] }]
|
|
48
|
-
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1sYXlvdXQvY291cnNlLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvcGFnZXMvY291cnNlL2NvdXJzZS1sYXlvdXQvY291cnNlLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVN6SCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQVB4RDs7UUFRRSxlQUFVLEdBQXFCLEVBQUUsQ0FBQztRQUNsQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxnQkFBVyxHQUFHLENBQUMsQ0FBQztLQTRCakI7SUExQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzdCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QseUJBQXlCLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDbkMsMENBQTBDO1lBQzFDLG1CQUFtQjtZQUNuQixNQUFNO1lBQ04sS0FBSztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDcEQsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBWSxLQUFJLENBQUM7OEdBL0JOLHFCQUFxQjtrR0FBckIscUJBQXFCLHlHQ2JsQyw4cURBcUNBLG9jRDdCWSxtQkFBbUIsMHBCQUFFLHVCQUF1QiwrQkFBRSxrQkFBa0I7OzJGQUsvRCxxQkFBcUI7a0JBUGpDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLFlBQ2hGLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdXJzZUNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UsIENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb250YWluZXJDb21wb25lbnQsIEJhc2VDb21wb25lbnQsIExpc3RDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQ29udGFpbmVyQ29tcG9uZW50LCBMaXN0Q29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb3Vyc2UtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdXJzZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3Vyc2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZUxheW91dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjYXRlZ29yaWVzOiBDb3Vyc2VDYXRlZ29yeVtdID0gW107XG4gIGNhdGVnb3J5U2VydmljZSA9IGluamVjdChDYXRlZ29yeVNlcnZpY2UpO1xuICBjb3Vyc2VTZXJ2aWNlID0gaW5qZWN0KENvdXJzZVNlcnZpY2UpO1xuICBzZWxlY3RJbmRleCA9IDA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kQ2F0ZWdvcmllcygpO1xuICB9XG4gIGZpbmRDYXRlZ29yaWVzKCkge1xuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmZpbmQoe30pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGxvYWRDb3Vyc2VCeUNhdGVnb3J5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0SW5kZXggPSBpbmRleDtcbiAgICBjb25zdCBpZCA9IHRoaXMuY2F0ZWdvcmllc1tpbmRleF0uaWQ7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jb3Vyc2VzYF0pO1xuICAgICAgLy8gdGhpcy5jb3Vyc2VTZXJ2aWNlLmZpbmQoe30pLnN1YnNjcmliZSh7XG4gICAgICAvLyAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi4vY291cnNlcy9jYXRlZ29yaWVzLyR7aWR9YF0sIHtcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBuZXh0Q2F0ZWdvcnkoKSB7fVxufVxuIiwiQGlmIChjYXRlZ29yaWVzKSB7XG4gIDxyb2xhdGVjaC1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbWluLXctWzMyMHB4XSBtYXgtdy1bMTI4MHB4XSBtLWF1dG9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLTE0IG1kOmgtYXV0byBtaW4tdy1bMjQwcHhdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgdGV4dC0yeGwgZm9udC1tZWRpdW0gcHktMyBtZDpweC0xIHB4LTNcIj7liIbnsbs8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbCBtZDpoLWZ1bGwgaXRlbXMtY2VudGVyIG1kOml0ZW1zLXN0YXJ0IGgtMTQgb3ZlcmZsb3cteC1zY3JvbGwgb3ZlcmZsb3cteS1oaWRkZW4gc2Nyb2xsYmFyLWhpZGUgd2hpdGVzcGFjZS1wcmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgaC04IGJnLVstLXJ0LWJhZGdlLWNoaXAtYmFja2dyb3VuZF0gbWQ6YmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIG1kOm1iLTEgbXItMiBtZDptci0wXCJcbiAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJjb3Vyc2UtbGF5b3V0LWFjdGl2ZVwiXG4gICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2NvdXJzZXNcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZDpweC0xIHB4LTMgdGV4dC1tZCBtZDp0ZXh0LWxnXCI+5YWo6YOoPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayBjYXRlZ29yeTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGgtOCBiZy1bLS1ydC1iYWRnZS1jaGlwLWJhY2tncm91bmRdIG1kOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBtci0yIG1kOm1yLTAgbWQ6bWItMVwiXG4gICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJjb3Vyc2UtbGF5b3V0LWFjdGl2ZVwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vY291cnNlcy9jYXRlZ29yaWVzLycsIGNhdGVnb3J5LmlkXVwiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiB0cnVlIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kOnB4LTEgcHgtMyB0ZXh0LW1kIG1kOnRleHQtbGdcIj57eyBjYXRlZ29yeS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSA8cm9sYXRlY2gtbGlzdD5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICA8L3JvbGF0ZWNoLWxpc3Q+IC0tPlxuICA8L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbn1cbiJdfQ==
|