@rolatech/angular-course 17.2.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.
Files changed (56) hide show
  1. package/README.md +7 -0
  2. package/esm2022/index.mjs +4 -0
  3. package/esm2022/lib/components/course-action/course-action.component.mjs +27 -0
  4. package/esm2022/lib/components/course-details/course-details.component.mjs +27 -0
  5. package/esm2022/lib/components/course-info/course-info.component.mjs +19 -0
  6. package/esm2022/lib/components/course-item/course-item.component.mjs +15 -0
  7. package/esm2022/lib/components/course-media/course-media.component.mjs +34 -0
  8. package/esm2022/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.mjs +20 -0
  9. package/esm2022/lib/components/course-pricing/course-pricing.component.mjs +14 -0
  10. package/esm2022/lib/components/course-schedule/course-schedule.component.mjs +22 -0
  11. package/esm2022/lib/components/course-sections/course-sections.component.mjs +30 -0
  12. package/esm2022/lib/interfaces/category.mjs +2 -0
  13. package/esm2022/lib/interfaces/course.mjs +146 -0
  14. package/esm2022/lib/interfaces/index.mjs +2 -0
  15. package/esm2022/lib/interfaces/media.mjs +2 -0
  16. package/esm2022/lib/pages/course/course-category/course-category.component.mjs +74 -0
  17. package/esm2022/lib/pages/course/course-detail/course-detail.component.mjs +157 -0
  18. package/esm2022/lib/pages/course/course-index/course-index.component.mjs +53 -0
  19. package/esm2022/lib/pages/course/course-layout/course-layout.component.mjs +49 -0
  20. package/esm2022/lib/pages/course/course-section-content/course-section-content.component.mjs +140 -0
  21. package/esm2022/lib/pages/course/course.routes.mjs +34 -0
  22. package/esm2022/lib/services/category.service.mjs +38 -0
  23. package/esm2022/lib/services/course-section.service.mjs +26 -0
  24. package/esm2022/lib/services/course.service.mjs +280 -0
  25. package/esm2022/lib/services/index.mjs +6 -0
  26. package/esm2022/provider.mjs +13 -0
  27. package/esm2022/rolatech-angular-course.mjs +5 -0
  28. package/fesm2022/rolatech-angular-course.mjs +1139 -0
  29. package/fesm2022/rolatech-angular-course.mjs.map +1 -0
  30. package/index.d.ts +3 -0
  31. package/lib/components/course-action/course-action.component.d.ts +14 -0
  32. package/lib/components/course-details/course-details.component.d.ts +20 -0
  33. package/lib/components/course-info/course-info.component.d.ts +9 -0
  34. package/lib/components/course-item/course-item.component.d.ts +8 -0
  35. package/lib/components/course-media/course-media.component.d.ts +12 -0
  36. package/lib/components/course-media-owner-renderer/course-media-owner-renderer.component.d.ts +8 -0
  37. package/lib/components/course-pricing/course-pricing.component.d.ts +7 -0
  38. package/lib/components/course-schedule/course-schedule.component.d.ts +10 -0
  39. package/lib/components/course-sections/course-sections.component.d.ts +19 -0
  40. package/lib/interfaces/category.d.ts +16 -0
  41. package/lib/interfaces/course.d.ts +143 -0
  42. package/lib/interfaces/index.d.ts +3 -0
  43. package/lib/interfaces/media.d.ts +9 -0
  44. package/lib/pages/course/course-category/course-category.component.d.ts +21 -0
  45. package/lib/pages/course/course-detail/course-detail.component.d.ts +36 -0
  46. package/lib/pages/course/course-index/course-index.component.d.ts +18 -0
  47. package/lib/pages/course/course-layout/course-layout.component.d.ts +17 -0
  48. package/lib/pages/course/course-section-content/course-section-content.component.d.ts +40 -0
  49. package/lib/pages/course/course.routes.d.ts +2 -0
  50. package/lib/services/category.service.d.ts +12 -0
  51. package/lib/services/course-section.service.d.ts +10 -0
  52. package/lib/services/course.service.d.ts +65 -0
  53. package/lib/services/index.d.ts +5 -0
  54. package/package.json +31 -0
  55. package/provider.d.ts +2 -0
  56. package/themes/_default.scss +1 -0
@@ -0,0 +1,34 @@
1
+ import { CourseCategoryComponent } from './course-category/course-category.component';
2
+ import { CourseDetailComponent } from './course-detail/course-detail.component';
3
+ import { CourseIndexComponent } from './course-index/course-index.component';
4
+ import { CourseLayoutComponent } from './course-layout/course-layout.component';
5
+ import { CourseSectionContentComponent } from './course-section-content/course-section-content.component';
6
+ export const courseRoutes = [
7
+ {
8
+ path: '',
9
+ component: CourseLayoutComponent,
10
+ children: [
11
+ {
12
+ path: '',
13
+ component: CourseIndexComponent,
14
+ },
15
+ {
16
+ path: 'categories/:id',
17
+ component: CourseCategoryComponent,
18
+ },
19
+ ],
20
+ },
21
+ {
22
+ path: ':id',
23
+ component: CourseDetailComponent,
24
+ },
25
+ {
26
+ path: ':id/sections/:sectionId/lectures/:lectureId',
27
+ component: CourseSectionContentComponent,
28
+ },
29
+ {
30
+ path: 'my-courses',
31
+ component: CourseDetailComponent,
32
+ },
33
+ ];
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9wYWdlcy9jb3Vyc2UvY291cnNlLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUUxRyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVc7SUFDbEM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsU0FBUyxFQUFFLG9CQUFvQjthQUNoQztZQUNEO2dCQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLFNBQVMsRUFBRSx1QkFBdUI7YUFDbkM7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsS0FBSztRQUNYLFNBQVMsRUFBRSxxQkFBcUI7S0FDakM7SUFDRDtRQUNFLElBQUksRUFBRSw2Q0FBNkM7UUFDbkQsU0FBUyxFQUFFLDZCQUE2QjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ291cnNlQ2F0ZWdvcnlDb21wb25lbnQgfSBmcm9tICcuL2NvdXJzZS1jYXRlZ29yeS9jb3Vyc2UtY2F0ZWdvcnkuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLWRldGFpbC9jb3Vyc2UtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3Vyc2VJbmRleENvbXBvbmVudCB9IGZyb20gJy4vY291cnNlLWluZGV4L2NvdXJzZS1pbmRleC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291cnNlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2UtbGF5b3V0L2NvdXJzZS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb3Vyc2Utc2VjdGlvbi1jb250ZW50L2NvdXJzZS1zZWN0aW9uLWNvbnRlbnQuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNvdXJzZVJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGNvbXBvbmVudDogQ291cnNlSW5kZXhDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnY2F0ZWdvcmllcy86aWQnLFxuICAgICAgICBjb21wb25lbnQ6IENvdXJzZUNhdGVnb3J5Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZCcsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VEZXRhaWxDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnOmlkL3NlY3Rpb25zLzpzZWN0aW9uSWQvbGVjdHVyZXMvOmxlY3R1cmVJZCcsXG4gICAgY29tcG9uZW50OiBDb3Vyc2VTZWN0aW9uQ29udGVudENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdteS1jb3Vyc2VzJyxcbiAgICBjb21wb25lbnQ6IENvdXJzZURldGFpbENvbXBvbmVudCxcbiAgfSxcbl07XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseService } from '@rolatech/angular-services';
3
+ import * as i0 from "@angular/core";
4
+ export class CategoryService extends BaseService {
5
+ init() {
6
+ this.endpoint = 'categories';
7
+ super.init();
8
+ }
9
+ uploadMedia(id, data) {
10
+ return this.http.post(`${this.actionUrl}/${id}/media`, data, {
11
+ withCredentials: true,
12
+ });
13
+ }
14
+ deleteMedia(id, mediaId) {
15
+ return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {
16
+ withCredentials: true,
17
+ });
18
+ }
19
+ importFromExcel(data) {
20
+ return this.http.post(`${this.actionUrl}/excel`, data, {
21
+ withCredentials: true,
22
+ });
23
+ }
24
+ createFromExcel(data) {
25
+ return this.http.post(`${this.actionUrl}/list`, data, {
26
+ withCredentials: true,
27
+ });
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CategoryService, decorators: [{
33
+ type: Injectable,
34
+ args: [{
35
+ providedIn: 'root',
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9zZXJ2aWNlcy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUt6RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZUFBZSxDQUFDLElBQWM7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDMUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3pELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBeEJVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdjYXRlZ29yaWVzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbiAgdXBsb2FkTWVkaWEoaWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVNZWRpYShpZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgaW1wb3J0RnJvbUV4Y2VsKGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vZXhjZWxgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY3JlYXRlRnJvbUV4Y2VsKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2xpc3RgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseService } from '@rolatech/angular-services';
3
+ import * as i0 from "@angular/core";
4
+ export class CourseSectionService extends BaseService {
5
+ init() {
6
+ this.endpoint = 'courses';
7
+ super.init();
8
+ }
9
+ findSections(id) {
10
+ return this.http.get(`${this.actionUrl}/${id}/sections`);
11
+ }
12
+ canBePreviewed(videoId, data) {
13
+ return this.http.post(`${this.actionUrl}/sections/lectures/videos/${videoId}/preview`, data, {
14
+ withCredentials: true,
15
+ });
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CourseSectionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CourseSectionService, providedIn: 'root' }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CourseSectionService, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root',
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLXNlY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb3Vyc2Uvc3JjL2xpYi9zZXJ2aWNlcy9jb3Vyc2Utc2VjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU16RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUMxQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsNkJBQTZCLE9BQU8sVUFBVSxFQUFFLElBQUksRUFBRTtZQUMzRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQVpVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvdXJzZVNlY3Rpb25TZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnY291cnNlcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIGZpbmRTZWN0aW9ucyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9zZWN0aW9uc2ApO1xuICB9XG4gIGNhbkJlUHJldmlld2VkKHZpZGVvSWQ6IGFueSwgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zL2xlY3R1cmVzL3ZpZGVvcy8ke3ZpZGVvSWR9L3ByZXZpZXdgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,280 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseService } from '@rolatech/angular-services';
3
+ import * as i0 from "@angular/core";
4
+ export class CourseService extends BaseService {
5
+ init() {
6
+ this.endpoint = 'courses';
7
+ super.init();
8
+ }
9
+ me(options) {
10
+ return this.http.get(`${this.actionUrl}/me`, {
11
+ params: options,
12
+ withCredentials: true,
13
+ });
14
+ }
15
+ findSchedule(id) {
16
+ return this.http.get(`${this.actionUrl}/${id}/schedule`, {
17
+ withCredentials: true,
18
+ });
19
+ }
20
+ findPricing(id) {
21
+ return this.http.get(`${this.actionUrl}/${id}/pricing`, {
22
+ withCredentials: true,
23
+ });
24
+ }
25
+ addDetail(id, data) {
26
+ return this.http.post(`${this.actionUrl}/${id}/details`, data, {
27
+ withCredentials: true,
28
+ });
29
+ }
30
+ addBatchDetails(id, data) {
31
+ return this.http.post(`${this.actionUrl}/${id}/details/batch`, data, {
32
+ withCredentials: true,
33
+ });
34
+ }
35
+ findDetails(id) {
36
+ return this.http.get(`${this.actionUrl}/${id}/details`, {
37
+ withCredentials: true,
38
+ });
39
+ }
40
+ updateDetail(id, detailId, data) {
41
+ return this.http.put(`${this.actionUrl}/${id}/details/${detailId}`, data, {
42
+ withCredentials: true,
43
+ });
44
+ }
45
+ deleteDetail(id, detailId) {
46
+ return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}`, {
47
+ withCredentials: true,
48
+ });
49
+ }
50
+ uploadDetailMedia(id, detailId, data) {
51
+ return this.http.post(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {
52
+ withCredentials: true,
53
+ });
54
+ }
55
+ deleteDetailMedia(id, detailId, mediaId) {
56
+ return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {
57
+ withCredentials: true,
58
+ });
59
+ }
60
+ review(id) {
61
+ return this.http.post(`${this.actionUrl}/${id}/review`, {}, {
62
+ withCredentials: true,
63
+ });
64
+ }
65
+ start(id) {
66
+ return this.http.post(`${this.actionUrl}/${id}/start`, {}, {
67
+ withCredentials: true,
68
+ });
69
+ }
70
+ finish(id) {
71
+ return this.http.post(`${this.actionUrl}/${id}/finish`, {}, {
72
+ withCredentials: true,
73
+ });
74
+ }
75
+ publish(id) {
76
+ return this.http.post(`${this.actionUrl}/${id}/publish`, {}, {
77
+ withCredentials: true,
78
+ });
79
+ }
80
+ upload(data) {
81
+ return this.http.post(`${this.actionUrl}/upload`, data, {
82
+ withCredentials: true,
83
+ });
84
+ }
85
+ uploadMedia(id, data) {
86
+ return this.http.post(`${this.actionUrl}/${id}/media`, data, {
87
+ withCredentials: true,
88
+ });
89
+ }
90
+ deleteMedia(id, mediaId) {
91
+ return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {
92
+ withCredentials: true,
93
+ });
94
+ }
95
+ importFromExcel(data) {
96
+ return this.http.post(`${this.actionUrl}/excel`, data, {
97
+ withCredentials: true,
98
+ });
99
+ }
100
+ createFromExcel(data) {
101
+ return this.http.post(`${this.actionUrl}/list`, data, {
102
+ withCredentials: true,
103
+ });
104
+ }
105
+ findAllRequests(options) {
106
+ return this.http.get(`${this.actionUrl}/requests`, {
107
+ params: options,
108
+ withCredentials: true,
109
+ });
110
+ }
111
+ findRequestDetail(id) {
112
+ return this.http.get(`${this.actionUrl}/requests/${id}`, {
113
+ withCredentials: true,
114
+ });
115
+ }
116
+ accept(id) {
117
+ return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, {}, {
118
+ withCredentials: true,
119
+ });
120
+ }
121
+ reject(id, body) {
122
+ return this.http.post(`${this.actionUrl}/${id}/reviews/reject`, body, {
123
+ withCredentials: true,
124
+ });
125
+ }
126
+ acceptRequest(id) {
127
+ return this.http.post(`${this.actionUrl}/requests/${id}/reviews/accept`, {}, {
128
+ withCredentials: true,
129
+ });
130
+ }
131
+ rejectRequest(id, body) {
132
+ return this.http.post(`${this.actionUrl}/requests/${id}/reviews/reject`, body, {
133
+ withCredentials: true,
134
+ });
135
+ }
136
+ addPricing(id, data) {
137
+ return this.http.post(`${this.actionUrl}/${id}/pricing`, data, {
138
+ withCredentials: true,
139
+ });
140
+ }
141
+ updatePricing(id, pricingId, data) {
142
+ return this.http.put(`${this.actionUrl}/${id}/pricing/${pricingId}`, data, {
143
+ withCredentials: true,
144
+ });
145
+ }
146
+ deletePricing(id, pricingId) {
147
+ return this.http.delete(`${this.actionUrl}/${id}/pricing/${pricingId}`, {
148
+ withCredentials: true,
149
+ });
150
+ }
151
+ addSchedule(id, data) {
152
+ return this.http.post(`${this.actionUrl}/${id}/schedule`, data, {
153
+ withCredentials: true,
154
+ });
155
+ }
156
+ updateSchedule(id, scheduleId, data) {
157
+ return this.http.put(`${this.actionUrl}/${id}/schedule/${scheduleId}`, data, {
158
+ withCredentials: true,
159
+ });
160
+ }
161
+ deleteSchedule(id, scheduleId) {
162
+ return this.http.delete(`${this.actionUrl}/${id}/schedule/${scheduleId}`, {
163
+ withCredentials: true,
164
+ });
165
+ }
166
+ findAllReviews(options) {
167
+ return this.http.get(`${this.actionUrl}/reviews`, {
168
+ params: options,
169
+ withCredentials: true,
170
+ });
171
+ }
172
+ getReview(id) {
173
+ return this.http.get(`${this.actionUrl}/reviews/${id}`, {
174
+ withCredentials: true,
175
+ });
176
+ }
177
+ findReviews(options) {
178
+ return this.http.get(`${this.actionUrl}/reviews/me`, {
179
+ params: options,
180
+ withCredentials: true,
181
+ });
182
+ }
183
+ countUsers(options) {
184
+ return this.http.get(`${this.actionUrl}/users/count/by`, {
185
+ params: options,
186
+ withCredentials: true,
187
+ });
188
+ }
189
+ findByIds(ids) {
190
+ return this.http.get(`${this.actionUrl}/by`, {
191
+ params: { ids },
192
+ withCredentials: true,
193
+ });
194
+ }
195
+ findWishlist(options) {
196
+ return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });
197
+ }
198
+ addToWishlist(courseId) {
199
+ return this.http.post(`${this.actionUrl}/${courseId}/wishlist`, {}, { withCredentials: true });
200
+ }
201
+ removeFromWishlist(courseId) {
202
+ return this.http.delete(`${this.actionUrl}/${courseId}/wishlist`, { withCredentials: true });
203
+ }
204
+ findWishlistBy(courseId) {
205
+ return this.http.get(`${this.actionUrl}/${courseId}/wishlist/by`, { withCredentials: true });
206
+ }
207
+ findMyCourses(options) {
208
+ return this.http.get(`${this.actionUrl}/users`, { params: options, withCredentials: true });
209
+ }
210
+ findPurchasedByCourseId(courseId) {
211
+ return this.http.get(`${this.actionUrl}/users/me/by?courseId=${courseId}`, {
212
+ withCredentials: true,
213
+ });
214
+ }
215
+ deleteFromWishlist(sectionId) {
216
+ return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, { withCredentials: true });
217
+ }
218
+ // Course sections
219
+ findCourseSections(options) {
220
+ return this.http.get(`${this.actionUrl}/sections`, { params: options, withCredentials: false });
221
+ }
222
+ addCourseSection(courseId, data) {
223
+ return this.http.post(`${this.actionUrl}/${courseId}/sections`, data, { withCredentials: true });
224
+ }
225
+ updateCourseSection(sectionId, data) {
226
+ return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, { withCredentials: true });
227
+ }
228
+ deleteCourseSection(sectionId) {
229
+ return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, { withCredentials: true });
230
+ }
231
+ getCourseSection(courseId) {
232
+ return this.http.get(`${this.actionUrl}/${courseId}/sections`, { withCredentials: false });
233
+ }
234
+ addLecture(sectionId, data) {
235
+ return this.http.post(`${this.actionUrl}/sections/${sectionId}/lectures`, data, { withCredentials: true });
236
+ }
237
+ updateLecture(lectureId, data) {
238
+ return this.http.put(`${this.actionUrl}/sections/lectures/${lectureId}`, data, { withCredentials: true });
239
+ }
240
+ deleteLecture(lectureId) {
241
+ return this.http.delete(`${this.actionUrl}/sections/lectures/${lectureId}`, { withCredentials: true });
242
+ }
243
+ uploadVideoInit(lectureId, data) {
244
+ return this.http.post(`${this.actionUrl}/sections/lectures/${lectureId}/videos/init`, data, {
245
+ withCredentials: true,
246
+ });
247
+ }
248
+ uploadVideoPartsToLecture(lectureId, data) {
249
+ return this.http.post(`${this.actionUrl}/sections/lectures/${lectureId}/videos/parts`, data, {
250
+ withCredentials: true,
251
+ });
252
+ }
253
+ completePartUpload(lectureId, data) {
254
+ return this.http.put(`${this.actionUrl}/sections/lectures/${lectureId}/videos/parts`, data, {
255
+ withCredentials: true,
256
+ });
257
+ }
258
+ uploadVideoToLecture(lectureId, data) {
259
+ return this.http.post(`${this.actionUrl}/sections/lectures/${lectureId}/videos`, data, {
260
+ withCredentials: true,
261
+ });
262
+ }
263
+ deleteLectureVideo(videoId) {
264
+ return this.http.delete(`${this.actionUrl}/sections/lectures/videos/${videoId}`, { withCredentials: true });
265
+ }
266
+ uploadLectureVideoThumbnail(videoId, data) {
267
+ return this.http.post(`${this.actionUrl}/sections/lectures/videos/${videoId}/thumbnail`, data, {
268
+ withCredentials: true,
269
+ });
270
+ }
271
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CourseService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
272
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CourseService, providedIn: 'root' }); }
273
+ }
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CourseService, decorators: [{
275
+ type: Injectable,
276
+ args: [{
277
+ providedIn: 'root',
278
+ }]
279
+ }] });
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cnNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvc2VydmljZXMvY291cnNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBS3pELE1BQU0sT0FBTyxhQUFjLFNBQVEsV0FBVztJQUNuQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDM0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFB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QyxTQUFpQixFQUFFLElBQVM7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLHNCQUFzQixTQUFTLGVBQWUsRUFBRSxJQUFJLEVBQUU7WUFDL0YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELG9CQUFvQixDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUMvQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsc0JBQXNCLFNBQVMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUMxRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsNkJBQTZCLE9BQU8sRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUNELDJCQUEyQixDQUFDLE9BQVksRUFBRSxJQUFjO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyw2QkFBNkIsT0FBTyxZQUFZLEVBQUUsSUFBSSxFQUFFO1lBQzdGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBclNVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ291cnNlU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gJ2NvdXJzZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgZmluZFNjaGVkdWxlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3NjaGVkdWxlYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRQcmljaW5nKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ByaWNpbmdgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkRGV0YWlsKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkQmF0Y2hEZXRhaWxzKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvYmF0Y2hgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZERldGFpbHMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlsc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVEZXRhaWwoaWQ6IHN0cmluZywgZGV0YWlsSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzLyR7ZGV0YWlsSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZURldGFpbChpZDogc3RyaW5nLCBkZXRhaWxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzLyR7ZGV0YWlsSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZERldGFpbE1lZGlhKGlkOiBzdHJpbmcsIGRldGFpbElkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy8ke2RldGFpbElkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVEZXRhaWxNZWRpYShpZDogc3RyaW5nLCBkZXRhaWxJZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvJHtkZXRhaWxJZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZXZpZXcoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgc3RhcnQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc3RhcnRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBmaW5pc2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZmluaXNoYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgcHVibGlzaChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wdWJsaXNoYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICB1cGxvYWQoZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS91cGxvYWRgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkTWVkaWEoaWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVNZWRpYShpZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgaW1wb3J0RnJvbUV4Y2VsKGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vZXhjZWxgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY3JlYXRlRnJvbUV4Y2VsKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2xpc3RgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZEFsbFJlcXVlc3RzKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmVxdWVzdHNgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFJlcXVlc3REZXRhaWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmVxdWVzdHMvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWNjZXB0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld3MvYWNjZXB0YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgcmVqZWN0KGlkOiBzdHJpbmcsIGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld3MvcmVqZWN0YCwgYm9keSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFjY2VwdFJlcXVlc3QoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vcmVxdWVzdHMvJHtpZH0vcmV2aWV3cy9hY2NlcHRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWplY3RSZXF1ZXN0KGlkOiBzdHJpbmcsIGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3JlcXVlc3RzLyR7aWR9L3Jldmlld3MvcmVqZWN0YCwgYm9keSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZFByaWNpbmcoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcHJpY2luZ2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcmljaW5nKGlkOiBzdHJpbmcsIHByaWNpbmdJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByaWNpbmcoaWQ6IHN0cmluZywgcHJpY2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZFNjaGVkdWxlKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3NjaGVkdWxlYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVNjaGVkdWxlKGlkOiBzdHJpbmcsIHNjaGVkdWxlSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9zY2hlZHVsZS8ke3NjaGVkdWxlSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVNjaGVkdWxlKGlkOiBzdHJpbmcsIHNjaGVkdWxlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc2NoZWR1bGUvJHtzY2hlZHVsZUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQWxsUmV2aWV3cyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3Jldmlld3NgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZ2V0UmV2aWV3KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3Jldmlld3MvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFJldmlld3Mob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9yZXZpZXdzL21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNvdW50VXNlcnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vycy9jb3VudC9ieWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQnlJZHMoaWRzOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2J5YCwge1xuICAgICAgcGFyYW1zOiB7IGlkcyB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRXaXNobGlzdChvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vd2lzaGxpc3RgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFRvV2lzaGxpc3QoY291cnNlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vJHtjb3Vyc2VJZH0vd2lzaGxpc3RgLCB7fSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgcmVtb3ZlRnJvbVdpc2hsaXN0KGNvdXJzZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vJHtjb3Vyc2VJZH0vd2lzaGxpc3RgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBmaW5kV2lzaGxpc3RCeShjb3Vyc2VJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7Y291cnNlSWR9L3dpc2hsaXN0L2J5YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZE15Q291cnNlcyhvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vdXNlcnNgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRQdXJjaGFzZWRCeUNvdXJzZUlkKGNvdXJzZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vdXNlcnMvbWUvYnk/Y291cnNlSWQ9JHtjb3Vyc2VJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlRnJvbVdpc2hsaXN0KHNlY3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG5cbiAgLy8gQ291cnNlIHNlY3Rpb25zXG4gIGZpbmRDb3Vyc2VTZWN0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnNgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICBhZGRDb3Vyc2VTZWN0aW9uKGNvdXJzZUlkOiBhbnksIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS8ke2NvdXJzZUlkfS9zZWN0aW9uc2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZUNvdXJzZVNlY3Rpb24oc2VjdGlvbklkOiBhbnksIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUNvdXJzZVNlY3Rpb24oc2VjdGlvbklkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBnZXRDb3Vyc2VTZWN0aW9uKGNvdXJzZUlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS8ke2NvdXJzZUlkfS9zZWN0aW9uc2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICBhZGRMZWN0dXJlKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9L2xlY3R1cmVzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlTGVjdHVyZShsZWN0dXJlSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvJHtsZWN0dXJlSWR9YCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZGVsZXRlTGVjdHVyZShsZWN0dXJlSWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zL2xlY3R1cmVzLyR7bGVjdHVyZUlkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwbG9hZFZpZGVvSW5pdChsZWN0dXJlSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvJHtsZWN0dXJlSWR9L3ZpZGVvcy9pbml0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZFZpZGVvUGFydHNUb0xlY3R1cmUobGVjdHVyZUlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvJHtsZWN0dXJlSWR9L3ZpZGVvcy9wYXJ0c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjb21wbGV0ZVBhcnRVcGxvYWQobGVjdHVyZUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvJHtsZWN0dXJlSWR9L3ZpZGVvcy9wYXJ0c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWaWRlb1RvTGVjdHVyZShsZWN0dXJlSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvJHtsZWN0dXJlSWR9L3ZpZGVvc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVMZWN0dXJlVmlkZW8odmlkZW9JZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvbGVjdHVyZXMvdmlkZW9zLyR7dmlkZW9JZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGxvYWRMZWN0dXJlVmlkZW9UaHVtYm5haWwodmlkZW9JZDogYW55LCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy9sZWN0dXJlcy92aWRlb3MvJHt2aWRlb0lkfS90aHVtYm5haWxgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { CourseService } from './course.service';
2
+ import { CourseSectionService } from './course-section.service';
3
+ import { CategoryService } from './category.service';
4
+ export { CourseService, CourseSectionService, CategoryService };
5
+ export const services = [CourseService, CourseSectionService, CategoryService];
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBVSxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdXJzZVNlcnZpY2UgfSBmcm9tICcuL2NvdXJzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvdXJzZVNlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb3Vyc2Utc2VjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vY2F0ZWdvcnkuc2VydmljZSc7XG5leHBvcnQgeyBDb3Vyc2VTZXJ2aWNlLCBDb3Vyc2VTZWN0aW9uU2VydmljZSwgQ2F0ZWdvcnlTZXJ2aWNlIH07XG5leHBvcnQgY29uc3Qgc2VydmljZXM6IGFueVtdID0gW0NvdXJzZVNlcnZpY2UsIENvdXJzZVNlY3Rpb25TZXJ2aWNlLCBDYXRlZ29yeVNlcnZpY2VdO1xuIl19
@@ -0,0 +1,13 @@
1
+ import { importProvidersFrom, makeEnvironmentProviders } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { RouterModule } from '@angular/router';
5
+ import * as fromServices from './lib/services';
6
+ export function provideAngulaCourse() {
7
+ const providers = [
8
+ ...fromServices.services,
9
+ importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),
10
+ ];
11
+ return makeEnvironmentProviders(providers);
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxNQUFNLFNBQVMsR0FBd0M7UUFDckQsR0FBRyxZQUFZLENBQUMsUUFBUTtRQUN4QixtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQztLQUNsRixDQUFDO0lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFByb3ZpZGVyLCBpbXBvcnRQcm92aWRlcnNGcm9tLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgKiBhcyBmcm9tU2VydmljZXMgZnJvbSAnLi9saWIvc2VydmljZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFuZ3VsYUNvdXJzZSgpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IHByb3ZpZGVyczogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10gPSBbXG4gICAgLi4uZnJvbVNlcnZpY2VzLnNlcnZpY2VzLFxuICAgIGltcG9ydFByb3ZpZGVyc0Zyb20oQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgUm91dGVyTW9kdWxlKSxcbiAgXTtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1jb3Vyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY291cnNlL3NyYy9yb2xhdGVjaC1hbmd1bGFyLWNvdXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==